我有一个主应用程序,其中包含很少的独立组件,每个组件都加载了自己的strring文件。 我希望在主应用程序配置中我将定义preferrd语言,并且在每个组件中我将使用这种prefferd语言。
设置器:
$translateProvider.uses('en_EN');
吸气剂:
$translate.uses() === 'en_EN'? $translate.uses('de_DE') : $translate.uses('en_EN');
我知道我无法在配置中使用$ translate
$translateProvider.useLoader('$translatePartialLoader', {
urlTemplate: './{part}/strings_{lang}.json'
});
$translatePartialLoaderProvider.addPart('assets');
如何使用translatePartialLoaderProvider获取prefferdlanguage? 我怎么知道主应用程序中设置的prefferd语言是什么?
答案 0 :(得分:1)
解决方案: 因为在app配置中你无法知道什么是prefferd语言(数据在$ translate中)你可以在app运行中获取该数据:
.config(['$translateProvider', '$translatePartialLoaderProvider', function ( $translateProvider, $translatePartialLoaderProvider) {
'use strict';
$translatePartialLoaderProvider.addPart('./niceComponents/nice-add-and-edit-inut-text/dist/asstes/src');
//default lang that will change in run
$translateProvider.preferredLanguage('en_US');
}])
.run(['$translate' , function($translate){
var lan = $translate.preferredLanguage();
console.log('lan---- ' + lan);
$translate.use(lan);
$translate.refresh();
}])