代码之家  ›  专栏  ›  技术社区  ›  Giamma

Angular7国际化vs翻译模块

  •  0
  • Giamma  · 技术社区  · 6 年前

    我对如何国际化我的angular7网络应用程序有很大的疑问。我想要的是从浏览器语言环境中理解用户语言,并用这种语言显示webapp。然后,如果用户想要更改它,他可以在组合框中选择语言。 现在……我花了两天时间阅读了所有官方和非官方文件,但我不明白哪种方式是实现这一目标的最佳途径。阅读官方文档,我可以使用新的默认i18n系统,但我不知道如何在运行时更改语言。

    我应该使用翻译模块吗?

    谢谢

    1 回复  |  直到 6 年前
        1
  •  1
  •   Srdan    6 年前

    如果我理解了,你可以使用ngx翻译,它将按照文档中的预期工作:

    this.translate.setDefaultLang('en');

    虽然您可以在运行时更改语言,例如:

    useLang(){
    const lang = localStorage.getItem('language');
    
    if (lang === null) {
      this.translate.use('en');
      console.log('Language is null! Using english');
    } else {
      this.translate.use(lang);
      console.log(lang);
    }
    }
    

    我的应用程序使用ngx翻译没有问题

        2
  •  0
  •   Markus Benz    5 年前

    默认i18n 当前无法在运行时更改转换。您需要切换到用户所选语言的应用程序的其他实例。 我喜欢你翻译应用程序的方式。通过控制器中的代码执行的翻译是不可能的。有时候你需要。 目前不推荐。但也许以后这是更可取的解决办法。

    翻译服务 一切皆有可能。

    我会使用TranslationService或translate模块,因为它更简单。做了和你现在一样的调查;-)

    亲切的问候

    推荐文章