如何从单独的js文件加载语言键?

时间:2016-12-20 07:13:35

标签: javascript angularjs angular-translate

这是我的app.js

app.js
    $translateProvider.registerAvailableLanguageKeys(['en_US','es_ES', 'pt_PT','fr_FR','de_DE','ja_JP','it_IT'], {  
                                'en-*':'en_US',
                                'es-*':'es_ES', 
                                'pt-*':'pt_PT',
                                'fr-*':'fr_FR',
                                'de-*':'de_DE',
                                'ja-*':'ja_JP',
                                'it-*':'it_IT',
                                 '*':'en_US'
                                })    
                    }
                    ]

(['en_US','es_ES', 'pt_PT','fr_FR','de_DE','ja_JP','it_IT']

'en-*':'en_US',
'es-*':'es_ES', 
'pt-*':'pt_PT',
'fr-*':'fr_FR',
'de-*':'de_DE',
'ja-*':'ja_JP',
'it-*':'it_IT',
 '*':'en_US'

如何在外部javascript文件中从全局对象获取这些键,因为我在其他地方重复这些键。

我的javascript文件有这两个数组。

keys.js

var keys=['en_US','es_ES', 'pt_PT','fr_FR','de_DE','ja_JP','it_IT']
var commonKeys=['en-*','es-*', 'pt-*','fr-*','de-*','ja-*','it-*', '*']

如何使用此javascript文件在app.js和其他地方获取迭代键值对,而不是在任何地方重复它。

1 个答案:

答案 0 :(得分:0)

如果您的目标是使用两个数组中的键值对创建对象,则可以执行以下操作:

var obj = {};
for (var i = 0; i < commonKeys.length; i++) {
    obj[commonKeys[i]] = keys[i];
}
console.log(obj);

或者,如果你可以使用第三方库,你可以include underscore.js and use the _.object function这样:

var obj = _.object(commonKeys, keys);
console.log(obj);

在这两种情况下,js控制台的输出都是

Object {en-*: "en_US", es-*: "es_ES", pt-*: "pt_PT", fr-*: "fr_FR", de-*: "de_DE"…}