许多我都需要建设网站时,支持多国语言次,但还没有拿出从服务器传送中的语言字符串的好方法给客户,让他们能在JavaScript中用于对话框,消息等什么是推荐的方式,使多语言支持Javascript的显示文本
你有什么建议或经验,用这个?
编辑:我倾向于动态生成JavaScript语言文件,并希望如果有人知道任何第三方库可以做到这一点。
许多我都需要建设网站时,支持多国语言次,但还没有拿出从服务器传送中的语言字符串的好方法给客户,让他们能在JavaScript中用于对话框,消息等什么是推荐的方式,使多语言支持Javascript的显示文本
你有什么建议或经验,用这个?
编辑:我倾向于动态生成JavaScript语言文件,并希望如果有人知道任何第三方库可以做到这一点。
我通常将所有字符串规范独立的文件,然后包括在页面上一个合适的,这样的事情:
在ST/JS /消息-ru.js:
hello = "Привет"
bye = "Пока"
在ST/JS /消息-en.js:
hello = "Hello!"
bye = "Good bye!"
当生成页面,您可以确定语言和在页面上插入相应的JS文件。
没有很好的方法来完成这个问题。但是我或我们的团队有一个沉重的方法,在js中为不同的语言编写不同的字符串,例如,在英国,我们写了一个名为uk.js的js,并且在fr中我们写了一个fr.js用于在对话框或消息中进行静态表达。
生成JavaScript的上飞处理语言环境依赖于语言的部分。为性能缓存语言特定的JavaScript,一旦它为给定的语言环境生成。这样可以节省从维护太多的语言特定的JavaScript
我们传递一个对象到需要翻译的JavaScript方法,并填充从服务器端代码对象:
<script type="text/javascript">
var dialogl10n = {
caption: '<%= Resources.GetString(x => x.DialogCaption) %>',
okButton: '<%= SharedResources.GetTerm(x => x.Ok) %>'
cancelButton: '<%= SharedResources.GetTerm(x => x.Cancel) %>'
};
</script>
在javascript函数:
Foo.Bar.doSomething = function(l10n) {
alert(l1n0.caption);
}
我们正在加强这自动创建JSON对象:
onClick='Foo.Bar.doSomething(<%= Resources.GetPackageAsJson(); %>);'
这将创建上面手动创建的等效对象。
如果您使用ASP.NET AJAX框架,ScriptManager控件包含各种机制,用于从本地化的.resx文件自动生成JavaScript,并根据标准CultureInfo设置向用户发送正确的语言,其余部分该网站正在使用。有关教程,请参阅this MSDN article。
无definetly不使用ScriptManager – eaglestorm 2011-01-22 10:41:27
我明白这一点来看;-)我认为你必须自己编写或找到一个第三方工具,然后。 – 2011-01-22 18:48:17
目前我使用一个命名空间的数组存储使用数字键的字符串,主要是因为服务器端已经使用这种格式,但它是不是很适合开发者都在大量的评论,指出那些关键的是指结果。我试图设计的东西更通用 – eaglestorm 2011-01-22 10:46:09