4

angular-translate を使用して Angular アプリをローカライズする場合、(静的ファイル ローダーを介して) 優先言語の読み込みに失敗したか、何らかの理由で存在しない場合、フォールバック言語は試行されません。

$translateProvider.useStaticFilesLoader({
    prefix: 'locale-',
    suffix: '.json'
});
$translateProvider
    .preferredLanguage('ja')
    .fallbackLanguage('en');

plnkr が利用可能です: http://plnkr.co/edit/tHrBeY0Ur0rhp0xNuWpA?p=preview

空の locale-ja.json ファイルがある場合、フォールバックは正しく読み込まれます。指摘されたように、これはライブラリのバグである可能性があります。誰かが回避策を見つけましたか?

4

2 に答える 2

3

FallbackLanguge 関数には別の目的があります。翻訳テーブルに特定のキーがない場合、フォールバック言語からの翻訳が使用されます。デフォルトの言語を指定する場合は、registerAvailableLanguageKeys 関数でワイルドカードを使用できます。

.registerAvailableLanguageKeys(['en, da'], {
    'en_US': 'en',
    'en_UK': 'en',
    'da_DK': 'da',
    '*': 'en'
})

この例では、「en」がデフォルトの言語です。優先言語が存在しない場合に読み込まれます。

于 2015-09-28T07:36:00.280 に答える
0

現在、同じ問題に遭遇しました。それを解決できる唯一の方法は、$translateProvider.use()オプションを追加することです。したがって、次のようになります。

 $translateProvider
    .preferredLanguage('ja')
    .use('ja')
    .fallbackLanguage('en');
于 2016-01-28T13:31:27.660 に答える