2012-01-26 20 views
0

我有以下的resourceBundle Javascript對象。ResourceBundle Javascript對象的國際化使用方法

var resourceBundle = { 
    en : { 
     "MSG1" : "Message 1", 
     "MSG2" : "Message 2" 
    } 
} 

正如你所見,這是英文版。然後,我可以爲法語(fr)創建另一個brance。因爲我所要做的只是獲取resourceBundle ['en'] [key],所以得到'Message 1','Message 2'沒問題。但是,如果我想要使用參數創建消息,我可以做什麼。我可以使用方法,如果是的話,如何。

我的意思是這樣的,我想添加MSG3爲;

"MSG3" : "welcome "+userName; 

不準確的方式,解決方法

回答

1

嘗試以下操作:

resourceBundle['fr'] = []; // create new 
resourceBundle['fr']['MSG1'] = "test"; // add value 

alert(resourceBundle['fr']['MSG1']); // test 

或使用@大衛的回答爲基礎:

function createMessage(key, value, locale) { 
    if (resourceBundle[locale] == undefined) { 
     resourceBundle[locale] = []; 
    } 
    resourceBundle[locale][key] = value; 
} 

createMessage('Pardon my french', 'MSG1', 'FR'); 
+0

請參閱編輯的question.pardon我在 – ghTvNath

+0

之前是尼特明確的@ghTvNath相同的答案 - 你只需傳遞你的參數即'createMessage('me ssage'+ username,'MSG1','FR');' – ManseUK