Angular 翻译:针对特定区域设置使用不同的后备语言
Angular Translate: Use different fallback languages for specific locales
我想支持之间的翻译,例如不同版本的英语,但有共同的回退。
以下是设置的示例:
locales/en_AU.json
locales/en_US.json
locales/en.json
locales/fr_BE.json
locales/fr_FR.json
locales/fr.json
...
我想要例如en_AU.json 中有一些澳大利亚特定的字符串,但 en.json 中有其余字符串。
在代码中我想要这样的东西:
$translateProvider.fallbackLanguage(['en_*' : 'en', 'fr_*' : 'fr'])
或者通常尝试回退到下划线之前的任何内容。
我也想要一个通用的后备语言
有没有办法做到这一点?
我最终监听了语言更改,如果新语言键包含下划线(例如 da_DK),我将回退堆栈更改为 ['da','en'] 和调用的刷新。
$translate.use(languageKey);
// Check if language has a country code and add general language as fallback along with English
if (languageKey.indexOf('_') !== -1) {
$translate.fallbackLanguage([languageKey.substring(0,languageKey.indexOf('_')), 'en']);
}
$translate.refresh();
我正在使用部分加载器,但它最初对我不起作用。它加载了我更改为 OK 的语言,但没有加载额外的后备语言。最后一个 $translate.refresh()
很重要
我想支持之间的翻译,例如不同版本的英语,但有共同的回退。
以下是设置的示例:
locales/en_AU.json
locales/en_US.json
locales/en.json
locales/fr_BE.json
locales/fr_FR.json
locales/fr.json
...
我想要例如en_AU.json 中有一些澳大利亚特定的字符串,但 en.json 中有其余字符串。
在代码中我想要这样的东西:
$translateProvider.fallbackLanguage(['en_*' : 'en', 'fr_*' : 'fr'])
或者通常尝试回退到下划线之前的任何内容。
我也想要一个通用的后备语言
有没有办法做到这一点?
我最终监听了语言更改,如果新语言键包含下划线(例如 da_DK),我将回退堆栈更改为 ['da','en'] 和调用的刷新。
$translate.use(languageKey);
// Check if language has a country code and add general language as fallback along with English
if (languageKey.indexOf('_') !== -1) {
$translate.fallbackLanguage([languageKey.substring(0,languageKey.indexOf('_')), 'en']);
}
$translate.refresh();
我正在使用部分加载器,但它最初对我不起作用。它加载了我更改为 OK 的语言,但没有加载额外的后备语言。最后一个 $translate.refresh()
很重要