2017-10-16 9 views
0

ここにいる誰かが何が起こっているか把握するのに役立ちます。 Angular 1.5.8アプリがあり、角度翻訳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'になります。私がlog navigator.languagesをコンソールにすると、それは['ja'、 'en'、 'en-US']です。 Navigator.languageは 'en'です。

私は次にチェックするべきものについての私の理論の終わりです。誰でもアイデアはありますか?

答えて

0

以下のコマンドは、デフォルトの言語を設定します。

$translateProvider.preferredLanguage('de'); 

私は以下の例のplunker上でこれを試してみました言語が、ページの読み込みにドイツ語に設定されています。チェックしてください。

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

私はあなたの設定で上記のコマンドしようとしていないことを見ることができました。これが機能するかどうか確認してください。

+0

私は手動で設定しようとしていません。ここで説明するように、detectPreferredLanguageコールをwindow.navigator.languagesから取得します。https://angular-translate.github.io/docs/#/guide/07_multi-language –

+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

ドキュメントによれば、この行は、ウィンドウ、navigator.languages&window.navigator.languageから読み取る必要があります。 $ translateProvider.determinePreferredLanguage(); https://angular-translate.github.io/docs/#/guide/07_multi-language –

関連する問題