我正在使用 Angular 6 进行一个大型项目。这个项目需要大量的 i18n 集成。我正在努力就如何进行做出正确的决定。
我看到它的方式是我可以选择:
- ngx-translate ( https://github.com/ngx-translate/core )
- 角 i18n ( https://angular.io/guide/i18n )
我倾向于选择选项 2;Angular 的 i18n。这是因为它是 Angular 自己的内置包,对我来说更合适。显然,它对 SEO 也更好,并且在没有任何工作的情况下对性能稍微好一点。另外,现在它发布了,我认为 ngx-translate 可能已被弃用。这里有很多信息:Angular 5 国际化。
但是,这是我的保留意见:
- 显然 Angular 的版本是相当新的/仍在追赶(https://github.com/ngx-translate/core/issues/495)。是不是太新了?
- 显然我必须为每种语言建立一个单独的网站(https://angular.io/guide/i18n#template-translations)???我真的不认为这会是一件好事。是对的吗?还是每次都动态插入模板文件?我知道使用 ngx-translate 翻译的单词只是存储在 .json 文件中 - 我喜欢它的简洁性。我不认为我们想要一堆不同的网站构建。
有没有办法使用 Angular i18n 进行实时语言切换?即在页面上切换语言而不从服务器重新加载/重新获取数据?这就是他们所说的JIT吗?
有没有人尝试过https://github.com/robisim74/angular-l10n?看起来也很好。