2011-11-09 30 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

相關問題