Angular 可以在运行时更改语言吗? [已关闭]

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

我已经检查了以下更改语言的可能性:

  • 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 localization
1个回答
7
投票

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

即使在您分享的帖子中,您也可以看到它说:

You can't change the locale at runtime

您可以使用ngx-translate。如果您查看 github 存储库,您会发现它并未被弃用。它实际上是动态翻译角度应用程序最常用的库之一。

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

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