我应该如何本地化现有的JavaScript Web应用程序?

时间:2011-11-09 08:43:54

标签: javascript jquery localization

我有一个非常棘手的任务:有一个现有的Web项目(2个HTML文件,一些插件和一个主要的JavaScript文件,大约有2000行代码),我现在必须进行本地化。毫无疑问,这应该早点考虑过,但他们只是错过了它。您将如何找到解决方案?

有一些元素只有几个文本元素,这些元素在最初加载页面时存在。但是还有很多DOM元素和错误警报可以动态地附加和移除(使用jQuery)。

我想我将在服务器上使用具有唯一名称/号码的文本资源(哪种文件?)(即.NET / C#)。在加载网页时,我可以检测用户代理的语言,然后将其发送到服务器,以便“它”准备正确的资源。然后我应该有一个像getText(uniqueName)这样的方法,通过AJAX从服务器请求正确的文本。但这会产生大量的AJAX请求。

我只有一些想法,但根本没有“真实”。

你能帮忙解决一下想法吗?服务器必须处理什么,脚本将处理什么,以及如何处理?

THX。

2 个答案:

答案 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 );

输出:

enter image description here

答案 1 :(得分:1)

如果您希望在resx文件中进行翻译,可能需要查看Localize text in JavaScript files in ASP.NET

如果您想要纯客户端本地化,可以使用jquery.localize