$ translatePartialLoader get prefferdLanguage不起作用

时间:2016-08-03 07:01:45

标签: angularjs translation

我有一个主应用程序,其中包含很少的独立组件,每个组件都加载了自己的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语言是什么?

1 个答案:

答案 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();
    }])