我正在努力让我的应用程序具有多语言支持。我正在使用资源文件方法。到目前为止一切顺利,但有没有办法在我的JS文件中使用资源字符串?
我可以在JS文件中访问它们,还是不可能?
答案 0 :(得分:0)
在JavaScript中进行本地化的常用方法是通过在主要文件之后加载的本地化JavaScript文件覆盖字段。
即你的主要app.js或其他任何你称之为对象:
DateTime = {}
DateTime.days = ["Sunday", "Monday", "Tuesday", ...];
DateTime.dateFormat = "m/d/Y";
DateTime.getToday = function(date) {
var dayOfWeek = ...;
return DateTime.days[dayofWeek];
}
然后在您的本地化文件中,让我们将其称为locale_de-de.js您添加
DateTime.days = ["Sonntag", "Montag", "Dienstag", ...];
DateTime.dateFormat = "d.m.Y";
这也是大多数javascript框架(即ExtJS,AngularJS)进行本地化的方式。在你的模板中只需
@Scripts.Render("~/bundles/app")
@Scripts.Render("~/bundles/locale_de-de")
不需要资源字符串和"解析"您的JavaScript文件将值替换为资源字符串
中的值答案 1 :(得分:0)
我发现最简单的方法是使用带有资源的razor在_Layout.cshtml中创建一个javascript键值对:
var resourceData = { 'register_account_pesel_incorrect': '@LanguageResources.register_account_login_incorrect', 'register_account_password_incorrect': '@LanguageResources.register_account_password_incorrect' }
然后在* .js文件中,您只需使用resourceData:
options.messages["isLogin"] = resourceData['register_account_login_incorrect'];
甚至更简单:
options.messages["isLogin"] = resourceData.register_account_login_incorrect;