2016-11-15 6 views
1

存在しないとき、私はNG2-翻訳私の全体のアプリを変換し、私は私の翻訳のすべてが含まれているen-GB.jsonファイルを持っているに設定した言語をデフォルトに。私の今の問題は、ユーザーのデバイスが別の言語(たとえば「en-US」)に設定されていると、ファイルen-US.jsonが存在しないという404エラーが表示されることです。NG2 - 翻訳 - フォールバックファイルは

私は、このソリューションhttps://github.com/ocombe/ng2-translate#how-to-handle-missing-translationsを試してみましたが、私は素晴らしいではありませんすべての単一の翻訳のためのデフォルト値を設定しなければならないようです。

ファイルを自動的に使用して、en-US.json(および他の言語のファイル)が存在しない場合は、自動的にフォールバックする方法はありますか?

ありがとうございました。

編集:

は、私もそうのようなデフォルトの言語を設定することを言及し忘れ:

Globalization.getPreferredLanguage().then(
    res => { 
     language = res.value; 
     self.translate.setDefaultLang('en-GB'); 
     self.translate.use(language); 
    } 
); 

答えて

0

あなたは配列にあなたがサポートするすべての言語への参照を保持してlanguageが内側にあるかどうかを確認できました配列。存在する場合は、languageを設定します(デフォルト言語を設定しない場合)。

const langs = [ 
    'en-GB', 
    'fr-FR', 
    'de-DE' 
]; 

let isSupported = this.langs.find(supportedLanguage => supportedLanguage === language); 

if(isSupported) self.language.set(language); 
else self.language.set('en-GB') 
+0

もちろん!私はそれをoverthinkとNG2-translateメソッドのいくつかの並べ替えを使用しようとしていたが、この方法は、はるかに簡単です。ありがとう! –