【问题标题】:Ng2-translate - Fallback to default language when file doesn't existNg2-translate - 当文件不存在时回退到默认语言
【发布时间】:2016-11-15 11:09:58
【问题描述】:

我已经设置了 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);
    }
  );

【问题讨论】:

    标签: angular ionic2 ng2-translate


    【解决方案1】:

    您可以在数组中保留对您支持的所有语言的引用,并检查 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 方法,但这种方法要简单得多。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多