Angular7 国际化与翻译模块

Angular7 internationalization vs translate module

我对如何国际化我的 angular7 webapp 有很大的疑问。我想要的是从浏览器区域设置了解用户语言并以该语言显示 webapp。然后如果用户想改变它,他可以在组合框中选择语言。 现在......我花了两天时间阅读了所有官方和非官方文档,但我不明白哪种方法是实现这一目标的最佳方式。阅读官方文档我可以使用新的默认 i18n 系统,但我不明白如何在运行时更改语言。

我应该使用翻译模块吗?

谢谢

如果我理解的话,您可以使用 ngx-translate,它将按文档中的预期工作:

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-translate 的应用程序中没有遇到任何问题

默认 i18n 目前您无法在运行时更改翻译。您需要以用户选择的语言切换到应用程序的不同实例。 我喜欢你如何翻译你的应用程序。不可能以任何方式通过控制器中的代码完成翻译。有时你需要那个。 目前不推荐。但也许以后它是更可取的解决方案。

翻译服务 一切皆有可能。

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

亲切的问候