我的应用程序中使用了
angular-translate.如果resolvePreferredLanguage()返回一个我的代码不知道的语言密钥,我如何注册一个后备语言?
我想要回到英语,如果有人从例如瑞典访问我的网站(语言密钥:sv).但是由于我没有在我的registerAvailableLanguageKeys函数中列出sv,所以它失败,并且语言密钥被显示给用户而不是翻译.
$translateProvider .registerAvailableLanguageKeys(['da-dk','en-us'],{ 'en_US': 'en-us','en_UK': 'en-us','da': 'da-dk',}) .determinePreferredLanguage();
使用通配符是最好的解决方案,你可以设置en_ *如下:
$translateProvider.useStaticFilesLoader({ prefix: 'locales/locale-',suffix: '.json' }) .registerAvailableLanguageKeys(['en','fr','pt'],{ 'en_*': 'en','fr_*': 'fr','pt_*': 'pt','*': 'en' }) .determinePreferredLanguage() .fallbackLanguage('en');
对于文件:
locales/locale-en.json locales/locale-fr.json locales/locale-pt.json