Angular可以在运行时更改语言吗



我检查了以下更改语言的可能性:i18n——不允许在运行时更改语言,我们每次都必须构建应用程序。ngx-translate——显然允许在运行时更改语言,但可能会被弃用@angular/localize——有些帖子建议它允许在运行时更改语言,但我找不到。

我目前正在学习本教程:https://www.codeandweb.com/babeledit/tutorials/how-to-translate-your-angular9-app-with-xlf-files,它使用了@angular/localize模块,但这仍然不允许在运行时进行翻译。

我的问题是:有没有允许在运行时进行翻译的库?我可以使用ngx-translate吗(它是被弃用的还是有缺陷的(?

@angular/localize是来自angular的i18n的一部分,使用该包,您需要不同的构建来更改语言,这是有原因的,因为用户多久更改一次语言所以您不能使用它进行动态翻译。此外,如果您使用Angular Universal进行服务器端渲染,这是翻译页面的正确方式,因为否则您渲染的页面将无法正确显示文本。你可以看看这篇关于ngx-translate和SSR的文章。

即使在你分享的帖子中,你也可以看到上面写着:You can't change the locale at runtime

你可以使用ngx-translate。如果您查看github repo,您可以看到它没有被弃用。它实际上是最常用的动态翻译angular应用程序的库之一。

我仍然更喜欢默认的Angular i18n。尽管在我们的一个项目中,因为它非常大,我们已经创建了自己的动态翻译文本的方法,这是使用标准i18n和管道的混合。

最新更新