Angular 角度国际化(ngx翻译/i18n或i18next)

Angular 角度国际化(ngx翻译/i18n或i18next),angular,internationalization,i18next,ngx-translate,angular-i18n,Angular,Internationalization,I18next,Ngx Translate,Angular I18n,我需要在一个大型项目中实现国际化。从我的发现来看,有两个主要选择:Angular的官方i18n或ngx translate 为了了解两者的优缺点,我进行了很多讨论: 现在,第三个选项是“angular-i18next”。关于这方面的文档并不多。我知道这是我的下一个目标。但它是否克服了以下缺点: 翻译非模板文本 动态翻译,无需重新加载页面 具有AOT编译的单一构建 或者,我的最佳选择是在i18n和ngx-translate之间进行选择? 此外,是否有人使用“angular-i18nex

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

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

现在,第三个选项是“angular-i18next”。关于这方面的文档并不多。我知道这是我的下一个目标。但它是否克服了以下缺点:

  • 翻译非模板文本

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

  • 具有AOT编译的单一构建

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

angular的未来版本(8.1?)应支持翻译沉思文本和动态翻译,而无需重新加载页面。在此之前,还有Olivier Combe编写的i18 polyfill(),他加入了angular core团队,致力于i18n

这个库是一个推测性的polyfill,这意味着它应该取代未来的API。一旦Angular中的代码翻译可用,此库将被弃用。但由于它是一个polyfill,我们希望API非常类似。如果API不同,如果可能和必要,将提供迁移工具


经过更多的研究,我得出结论,i18next并没有提供任何超过官方Angular的i18n的东西。另外,要下一步使用i18,您必须依赖于外部依赖,我不相信在大规模应用程序中这样做

有趣的是,一个张贴在页面上的声明如下:

我的观点是:I18next基本上不支持任何功能,而内置I18n角度模块则不支持。所以,如果有一个相对较小的差异,为什么你会让你的生活更复杂,并包括一些第三方I18n框架?特别是,当它依赖于一个单独的插件(由另一个人维护)使一切正常工作时

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


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

我想我的问题还不够清楚。我理解同时使用i18n和ngx translate的这些注意事项。我更感兴趣的问题是,“i18 angular”是否提供了超过i18n或ngx的翻译。