avd*_*per 2 localization 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 存储库,您会发现它并未被弃用。它实际上是动态翻译角度应用程序最常用的库之一。
我仍然更喜欢默认的 Angular i18n。尽管在我们的一个项目中,因为它非常大,我们创建了自己的动态翻译文本的方式,它是使用标准 i18n 和管道的混合。