2017-10-16 96 views
0

希望这里有人能帮我弄清楚发生了什么。我有一个Angular 1.5.8应用程序,使用angular-translate 2.15.2。我为英语和日语设置了语言文件,并且可以在运行时交换语言,但页面加载时的默认语言始终为'en'。我已将计算机语言设置为日语,但无法让我的网站默认使用该语言。角度翻译总是使用英语

这是我翻译的配置:

'use strict'; 

(function() { 
    angular.module('app') 
     .config(translation); 

/** 
* @name translation 
* @desc Loads the string resource file associated with the selected language code. 
* @ngInject 
*/ 
function translation($translateProvider) { 

    // Specifies mappings of alternative language codes to a root language. 
    $translateProvider.registerAvailableLanguageKeys([ 
     'en', 
     'ja', 
    ], { 
     'en': 'en', 
     'en_*': 'en', 
     'ja': 'ja', 
     'ja_JP': 'ja', 
    }); 
    $translateProvider.useLocalStorage(); 
    $translateProvider.useSanitizeValueStrategy('escape'); 
    $translateProvider.useLocalStorage(); 
    $translateProvider.useStaticFilesLoader({ 
     prefix: 'assets/languages/strings-', 
     suffix: '.json', 
    }); 

    $translateProvider.fallbackLanguage('en'); 
    $translateProvider.determinePreferredLanguage(); 
} 
})(); 

我的计算机设置为日语和其他网站默认为日语。 如果我检查NG_TRANSLATE_LANG_KEY,它是'en'。如果我控制日志navigator.languages,它是['ja','en','en-US']。 Navigator.language是'en'。

我在接下来要检查什么的理论的末尾。任何人有想法?

回答

0

的命令如下设置默认语言:

$translateProvider.preferredLanguage('de'); 

我想这在下面的例子中plunker和语言设置为德语页面加载。请检查。

http://plnkr.co/edit/6ON0weZvpqczHjsW9gfw?p=preview

我看得出来,你有没有在你的配置尝试了上述命令。请检查这是否工作。

+0

对,我没有试图手动设置它。我要去检测预先通知的语言调用来从window.navigator.languages中获取它,如下所述:https://angular-translate.github.io/docs/#/guide/07_multilanguage –

+0

当你做一个console.log (window.navigator.languages [0]),它显示日语吗? –

+0

是的,它显示'ja'。与window.navigator.language相同 –

0

由于维贾伊·梅诺提到:

$translateProvider.fallbackLanguage('en'); 

这是你的后备,如果没有设置语言。而你的电脑语言与它无关。

翻译的工作原理是如何检查浏览器本地存储中是否存在名为NG_TRANSLATE_LANG_KEY的密钥,并检查其值和行为。如果是'en',它会加载文件

assets/languages/strings-en.json 
+0

根据文档,这一行应该从window,navigator.languages&window.navigator.language中读取。 $ translateProvider.determinePreferredLanguage(); https://angular-translate.github.io/docs/#/guide/07_multi-language –