Angular7国际化与翻译模块

问题描述 投票:0回答:2

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

我应该使用翻译模块吗?

谢谢

internationalization angular7 ngx-translate
2个回答
1
投票

如果我理解,您可以使用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在我的应用中没有任何问题


0
投票

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

翻译服务一切皆有可能。

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

亲切的问候

© www.soinside.com 2019 - 2024. All rights reserved.