Angular 国际化 ( ngx-translate/ i18n OR i18next )

Aks*_*ana 5 internationalization i18next angular-i18n ngx-translate angular

我需要在 Angular 的一个大型项目中实现国际化。根据我的发现,有两个主要选择:Angular 的官方i18nngx-translate

为了了解两者的优缺点,我进行了很多讨论:

https://github.com/angular/angular/issues/16477

https://github.com/ngx-translate/core/issues/495

https://github.com/ngx-translate/core/issues/783

ngx-translate 与 i18n 的差异

现在,第三个选项是“ angular-i18next ”。这方面的文档并不多。我知道它是 i18next 的包装器。但它是否克服了任何缺点,例如:

  • 翻译非模板文本。

  • 无需重新加载页面的动态翻译。

  • 使用 AOT 编译进行单一构建。

或者,我最好的选择是在i18nngx-translate之间进行选择?另外,有人在使用“ angular-i18next ”吗?

Aks*_*ana 3

经过更多研究后,我得出的结论是 i18-next 不提供任何超过官方 Angular 的 i18n 的功能。另外,要使用 i18-next,您必须依赖外部依赖项angular-i18next,并且我不相信在大型应用程序中这样做。

\n\n

有趣的是,一篇文章发布在Angular-i18next上指出了以下内容:

\n\n
\n

我的观点是:I18next 基本上不支持任何功能,并且内置的 I18n Angular 模块不\xe2\x80\x99t。因此,如果差异相对较小,为什么要让你的生活变得更加复杂并包含一些第三方 I18n 框架呢?特别是,当它依赖于一个单独的插件(由另一个人维​​护)来使一切正常工作时?

\n
\n\n

考虑到这些事情,以及 i18next 库的重量和学习时间,我立即放弃了继续 i18next 的想法。

\n\n

相反,目前我认为最好的选择是使用 Angular 的官方 i18n,以及用于模板外部翻译的 i18n-polyfill。一旦 i18n 获得此功能,我将完全迁移到 i18n。

\n