【发布时间】:2015-05-13 17:03:12
【问题描述】:
问题
我需要本地化我的 Web 应用程序。我使用两种语言 - 英语和挪威语(这不重要)。
我使用资源文件来本地化标准视图。他们位于一个名为 Myproject.Localisation 的单独项目中:
- Localized.resx
- Localized.no.resx
在剃刀视图中看起来像这样:
<li>@Localised.WhatEverINeedToLocalise</li>
然后我有两个标准的部分 html 文件,其中包含一些 html 和一些 knockout.js,它们像这样作为 amd 依赖项加载并稍后在我的 typescript 类中使用:
///<amd-dependency path="text!./productTemplate.html" />
///<amd-dependency path="text!./anotherTemplate .html" />
var contentTemplate = require("text!./productTemplate.html");
var anotherTemplate = require("text!./anotherTemplate .html");
问题
显然,我也必须在其中进行翻译。有没有办法可以使用 razor 并使用我拥有的资源文件生成这些部分 html 文件?
如果没有,是否还有其他选择,可能比我的解决方案更简单(阅读下文)?
我的解决方案
我想出的唯一方法是安装 i18next 及其敲除绑定,编写一个 T4 模板,该模板将从 resx 文件生成翻译 json,然后使用敲除翻译部分 html。 但是,它似乎过于复杂。
【问题讨论】:
-
mvc 中的局部视图呢?你试过了吗?
-
我在应用程序的管理部分使用了一些局部视图,但它们是在运行时编译的。我还没有尝试过,但我相信如果我直接通过 amd-dependecy 请求 cshtml,它不会被编译,我最终会加载无效代码。但是,我不确定我是否理解正确。这些部分html文件不是我自己写的,现在得自己处理了。
-
我也找到了这篇文章:afana.me/post/… 但是动态加载静态内容似乎很傻
-
ASP 应该查看它从浏览器获取的标题/语言,并根据您发送的内容更改字符串变量。你确定你用对了吗?
-
我会尝试,如果它不起作用,会回复你。
标签: asp.net-mvc razor knockout.js typescript requirejs-text