我已经检查了以下更改语言的可能性:
我目前正在学习本教程: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 存储库,您会发现它并未被弃用。它实际上是动态翻译角度应用程序最常用的库之一。
我还是更喜欢默认的 Angular i18n。尽管在我们的一个项目中,因为它非常大,我们创建了自己的动态翻译文本的方式,它是使用标准 i18n 和管道的混合。