Ada*_*zyk 42 internationalization angular
我们决定给它一个旋转,我们开始使用Angular2进行新项目.到目前为止一直很好,但此时我们正面临着一个问题.在这一点上,对于Angular2,i18n的正确方法是什么?我们研究了一下,发现了这个:
然而,最后一次提交已超过5个月......看起来不像是积极的开发.
有人试过使用angular-translate或angular-gettext吗?或者也许使用Angular2最好包装像i18next这样的JS?有谁可以分享他们的想法?也许你遇到了同样的问题?
And*_*ich 19
Plunk更新为Angular 2 Final:https://plnkr.co/edit/4euRQQ .事情似乎和RC7一样.
Angular 2官方文档中添加了新的i18n部分.基本上,它详细解释了上面的plunkr发生了什么.
XLIFF是唯一的翻译格式,没有json支持.应使用ng-xi18n工具创建翻译源文件(xliff,xlf):
package.json:
"scripts": {
"i18n": "ng-xi18n",
...
}
Run Code Online (Sandbox Code Playgroud)
和
npm run i18n
Run Code Online (Sandbox Code Playgroud)
有关将转换合并到组件模板的详细信息,请参阅合并转换部分.它是使用SystemJS Text插件完成的.
另一个使用Gulp的例子http://www.savethecode.com/angular2-i18n-native-support/
老员工:根据RC7更新和Herman Fransen提供的链接:
我做了一个最小的Plunkr示例:https://plnkr.co/edit/4W3LqZYAJWdHjb4Q5EbM
对plunkr的评论:
bootstrap
应该提供TRANSLATIONS
,TRANSLATIONS_FORMAT
,LOCALE_ID
其值- >设置翻译i18n
.xlf
文件中.语言之间的关系是完成的,通过标签的值Id
与html联系起来<source>
xlf
xlf
文件不直接使用; 一个.ts
文件是手动创建包装的内容xlf
中可导出的变量.我想,这应该在最终版本中自动运行(甚至可能是现在).这是我发现的第一个官方记录的方法.但是,它仍然几乎无法使用.我在当前的实现中看到以下问题:
bootstrap
,无法在运行时更改它.这应该在Final中改变.xlf
生成SHA.获取此ID的当前方法有点混乱:您创建一个新的可翻译项目,使用它,从错误中复制SHA ID并粘贴到您的i18n.lang.xlf
文件中.关于i18n 有一个很大的文档拉取请求
老员工:发布说明https://github.com/angular/angular/blob/master/CHANGELOG.md有记录
i18n:合并翻译7a8ef1e
在Angular 2 RC5中引入了一大块i18n
不幸的是,仍然没有文件可用.
Sam*_*nes 16
每个人都渴望正式实施,但这个适用于我的用例:https: //github.com/ocombe/ng2-translate
README是相当彻底的,如果你需要一些真正特别的东西(对我而言是代码分裂),代码本身不会太长或难以阅读.
支持i18n现已成为Angular 2 RC6的正式版
官方发布博客:https:
//angularjs.blogspot.nl/2016/09/angular-2-rc6_1.html
Angular 2 RC6的国际化样本
https://github.com/StephenFluin/i18n-sample
更多信息i18n的新概念如何在angular2中运行:https://lingohub.com/blog/2015/03/angular-2-i18n-update-ng-conf-2015