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