我对如何使我的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或翻译模块,因为它更容易。和你现在做的调查一样;-)
亲切的问候