2015-09-25 44 views
0

Angular translate在支持多種語言異步加載方面做得不錯。但它不支持爲同一種語言加載不同的文件,區別在於區域。Angular translate - 同一種語言的不同異步文件?

$translateProvider 
.determinePreferredLanguage() 
.registerAvailableLanguageKeys([ 'en', 'de' ], { 
    en_us: 'us', 
    en_uk: 'uk', 
    de_de: 'de' 
}) 
.useStaticFilesLoader({ 
    prefix: '/localization/i18n/', 
    suffix: '.json' 
}) 

我試圖讓這個使用回退和語言的談判工作,但沒有其他解決辦法將是有益的。

我想要避免的一個特別不好的方法是創建一個虛擬語言來'英國'。下面的代碼有效,

$translateProvider 
.determinePreferredLanguage() 
.registerAvailableLanguageKeys([ 'en', 'uk', 'de' ], { 
    us: 'us', 
    uk: 'uk', 
    de: 'de' 
}) 
.useStaticFilesLoader({ 
    prefix: '/localization/i18n/', 
    suffix: '.json' 
}) 

這改變了很多其他需要en_uk的區域(區域特定的API調用)。

回答

0

的問題是同程determinePreferredLanguage總是牽強瀏覽器語言EN_US,所以應用程序在結束了通話en.json。

我最後不得不在我的控制器中使用$translate.use(langKey),其中langKey是基於我所需區域的語言。