2012-06-24 85 views
0

如果我有不同的語言短語JSON:JSON獲取特定語言

var lang = { 
    'topic' : { 
     'en' : 'Topic', 
     'et' : 'Teema', 
     'fi' : 'Aihe' 
    }, 
    'MainPage' : { 
     'en' : 'Main page', 
     'et' : 'Pealeht', 
     'fi' : 'Pääsivu' 
    }//, 
    //...etc 
}; 

如何定義功能選擇特定的語言:

function getText(lang, langKey) { 
    //??????? 
    return langJson; 
} 

輸出相同的短語,如:

getText(lang, 'en'); //outputs {topic:'Topic',MainPage:'Main page',..} 
getText(lang, 'et'); //outputs {topic:'Teema',MainPage:'Pealeht',..} 
getText(lang, 'fi'); //outputs {topic:'Aihe',MainPage:'Pääsivu',..} 

所有最好的:我

回答

3

基本上你必須通過整個lang對象和正確的語言值。

Object.keys將返回一個Array包含您的初始lang對象的鍵。 您可以使用這些來創建一個新對象。 你可以使用一個for循環遍歷這些密鑰和相應的值添加到生成的對象,但我喜歡用reduce這樣做:

function getText(lang, langKey) { 
    return Object.keys(lang).reduce(function(re, key) { 
    re[key] = lang[key][langKey]; 
    return re; 
    }, {}) 
}