1

我已经设置了 ng2-translate 来翻译我的整个应用程序,并且我有一个en-GB.json包含我所有翻译的文件。我现在遇到的问题是,如果用户的设备设置为另一种语言(例如“en-US”),我会收到 404 错误,指出该文件en-US.json不存在。

我已经尝试过这个解决方案https://github.com/ocombe/ng2-translate#how-to-handle-missing-translations但似乎我必须为每个翻译设置一个默认值,这不是很好.

en-GB.json如果en-US.json(和其他语言文件)不存在,有没有办法自动回退到使用该文件?

谢谢你的帮助。

编辑:

忘了提到我还设置了默认语言,如下所示:

Globalization.getPreferredLanguage().then(
    res => {
      language = res.value;
      self.translate.setDefaultLang('en-GB');
      self.translate.use(language);
    }
  );
4

1 回答 1

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')
于 2016-11-15T11:17:51.933 回答