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