Ng2-translate - 当文件不存在时回退到默认语言
Ng2-translate - Fallback to default language when file doesn't exist
我已经设置了 ng2-translate 来翻译我的整个应用程序,并且我有一个包含我所有翻译的 en-GB.json
文件。我现在遇到的问题是,如果用户的设备设置为另一种语言(例如 'en-US'),我会收到 404 错误提示文件 en-US.json
不存在。
我已经尝试过这个解决方案 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);
}
);
您可以在数组中保留对您支持的所有语言的引用,并检查 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')
我已经设置了 ng2-translate 来翻译我的整个应用程序,并且我有一个包含我所有翻译的 en-GB.json
文件。我现在遇到的问题是,如果用户的设备设置为另一种语言(例如 'en-US'),我会收到 404 错误提示文件 en-US.json
不存在。
我已经尝试过这个解决方案 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);
}
);
您可以在数组中保留对您支持的所有语言的引用,并检查 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')