【发布时间】:2021-03-25 22:54:38
【问题描述】:
Some years ago 我使用@ngx-translate 在我的 Angular 应用程序中处理字符串替换。
现在我需要国际化我的应用程序,尽管@ngx-translate 似乎仍然是更好的选择,但我会给 Angular i18n 内置功能一个机会*。
我已经阅读了Angular i18n documentation 并且拥有应用程序的翻译版本似乎非常简单(尽管使用 XML 而不是 JSON!)。
如文档所述:
由于 i18n 的部署复杂性和最小化重建时间的需要,开发服务器一次只支持本地化一个语言环境
此外,我必须为每种语言构建不同的应用程序,这会导致应用程序重复:
ng build --configuration=production,fr
ng build --configuration=production,es
ng build --configuration=production,it
ng build --configuration=production,de
我说的对吗?我们不应该只有一个应用程序和与运行时加载的语言一样多的“message.xlf”文件(或类似文件)吗?
*我在某处读到 ngx-translate 的维护者认为,一旦 Angular “赶上”,他的解决方案就会被弃用。事实上,他受雇于 Angular 团队从事 I18n 模块的工作;他指出,内置解决方案要复杂得多且没有错误。所以,虽然 ngx-translate 还在被广泛使用,但或许我们迟早应该考虑转移到内置模块。
【问题讨论】:
-
你关心的是正确的。如果您对内置解决方案不满意,则不应再使用 ngx-translate 而应使用 Transloco。如果您想阅读更多内容,我刚刚对本文进行了大量研究:medium.com/dailyjs/… 可能只有一个应用程序,但支持并非一直存在。不过,有 3rd 方库可以帮助您。
标签: angular localization internationalization angular-i18n angular-localize