2011-11-09 28 views
3

我有一个非常棘手的任务要做:有一个现有的Web项目(2个HTML文件,几个插件和一个包含大约2000行代码的主JavaScript文件),我现在必须进行本地化。毫无疑问,这应该早已考虑过,但他们错过了它。你将如何去寻找解决方案?我应该如何着手本地化现有的JavaScript Web应用程序?

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

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

我只有几个想法,但没有任何“真实”的。

请问您有什么想法吗?服务器必须处理什么,脚本将如何处理以及如何处理?

Thx。

+0

有可能是在回答这个问题的一些想法体面:http://stackoverflow.com/questions/104022/localize-strings-in-javascript –

+0

什么你的服务器端技术? PHP的? asp.net? asp.net mvc? – Patricia

+0

很抱歉回答迟到:asp.net .. –

回答

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

相关问题