我应该如何本地化现有的JavaScript Web应用程序?
我有一个非常棘手的任务:有一个现有的Web项目(2个HTML文件,一些插件,以及一个包含大约2000行代码的主要JavaScript文件),我现在必须进行本地化。 毫无疑问,这应该早点考虑过,但他们只是错过了它。 你会如何找到解决方案?
有一些元素只有几个文本元素,这些元素在最初加载页面时存在。 但是还有很多DOM元素和错误警报可以动态地附加和移除(使用jQuery)。
我想我将在服务器上使用具有唯一名称/数字的文本资源(哪种文件?)(即.NET / C#)。 在加载网页时,我可以检测用户代理的语言,然后将其发送到服务器,以便“它”准备正确的资源。 然后我应该有一个像getText(uniqueName)
这样的方法,它通过AJAX从服务器请求正确的文本。 但这会产生大量的AJAX请求。
我只有一些想法,但还没有任何“真实”。
你能帮忙解决一下想法吗? 服务器必须处理什么,脚本将处理什么,以及如何处理?
谢谢。
我使用单独的.js
文件,如strings-en.js
。 我根据用户数据库中的设置动态加载.js
文件。
演示: http : //jsfiddle.net/ThinkingStiff/uUTkN/
字符串,en.js:
var STRINGS = { "userLabel": "username", "userPlaceholder": "enter username..." //... };
HTML:
CSS:
#user-label::after { content: ":"; }
脚本:
document.getElementById( 'user-label' ).textContent = STRINGS.userLabel; document.getElementById( 'user' ).setAttribute( 'placeholder', STRINGS.userPlaceholder );
输出:
如果您希望在resx文件中进行翻译,可能需要查看ASP.NET中JavaScript文件中的Localize文本
如果您想要纯客户端本地化,可以使用jquery.localize