[英]Using Resource (.resx) files in kendo ui grid with angularjs
[英]Using resource files (.resx) in javascript
我正在尝试在我的项目中使用本地化,但我找不到从javascript访问我的resx文件的方法。 我一直在四处寻找,我不认为'AJAX调用'方法对我的项目来说是理想的,因为我已经安静了许多需要获取的字符串,它只需要垃圾邮件服务器!
如果我只是把它放在我的HTML中,那么它适用于这段代码:
@using Resources
<p>@Html.Raw(ISt_Localization.January)</p>
我想我可以做的一件事就是将所有字符串放在一个隐藏的div中,然后在我的javascript中从div中获取内容,但这不会非常有效。
我有类似的情况,在我的情况下,我创建了一个单独的局部视图,其中只包含一个javascript块,我将所有需要的资源字符串放在客户端逻辑中。 每个资源字符串都定义为javascript变量。 您还可以创建关联数组。
在您的局部视图中:
var Resources = {
January : "@Html.Raw(ISt_Localization.January)",
February : "@Html.Raw(ISt_Localization.February)",
...
};
你也可以直接尝试以下的东西
@using Resources
<script>
var value = '@Resource.January';
/* work with value
.......
.....
*/
</script>
我采取了完全不同的方法。
我想让我的Javascript文件所需的资源字符串成为我的resx文件的一部分。
我的资源文件中以js开头的每个键都必须在Javascript中可用。
在global.asax中,在Application_OnStart中,我动态地为所有支持的语言构建Javascript文件。 因为这只发生在应用程序的开始,所以如果需要几秒钟则无关紧要。
好处:
构建Javascript文件很简单。 遍历所有resx文件中的所有键值对。 只需挑选以_js_
开头的密钥。 将键值对保存在Javascript文件中。
因此,如果resx文件(languageSupport_es.resx)中的键值对是'_js_Hello','Hola',我在我的Javascript文件(languageSupport_es.js)中写入var Hello = 'Hola';
如果当前语言是西班牙语,那么alert(Hello)
会给你'Hola'。
我现在唯一需要处理的是使用正确的'语言Javascript文件'在我的其他Javascript文件之前加载。 因此,如果语言是西班牙语,我首先只包括我的“西班牙语Javascript文件”(languageSupport_es.js)。
容易没? 如果有人感兴趣,我可以展示一些示例代码......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.