2016-11-15 34 views
1

我已經設置了ng2-translate,它翻譯了我的整個應用程序,並且我有一個包含我所有翻譯的en-GB.json文件。我現在遇到的問題是,如果用戶的設備設置爲其他語言(例如'en-US'),我會收到404錯誤,指出文件en-US.json不存在。Ng2-translate - 文件不存在時回退到默認語言

我試過這個解決方案https://github.com/ocombe/ng2-translate#how-to-handle-missing-translations但似乎我不得不爲每一個不好的翻譯設置一個默認值。

如果en-US.json(和其他語言文件)不存在,是否有辦法自動回退到使用en-GB.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

啊當然!我試圖過度使用它,並使用某種ng2-translate方法,但這種方法要簡單得多。謝謝! –