seB*_*a28 7 xliff angular-i18n angular
我目前正在向我们公司使用的Angular应用添加语言环境。经过一番思考,我们决定采用Angular 5+本机i18n支持。
但是据我了解,每次生成翻译文件时都会创建ng xi18n --outputPath src/locale/ --locale en一个新文件。这意味着,每次添加新的i18n标记时,已经包含旧翻译的先前XLF文件都需要与新翻译合并。
这似乎很麻烦,因此我的问题是:是否有办法将新的反式单元仅附加到已经存在的XLF文件中?还是已经有一个工具可以将这两者合并在一起?
dan*_*-sc 11
替代/新的解决方案(针对未维护的 ngx-i18nsupport)是https://github.com/daniel-sc/ng-extract-i18n-merge
安装后通过
ng add ng-extract-i18n-merge
Run Code Online (Sandbox Code Playgroud)
翻译将被提取并与命令合并:
ng extract-i18n
Run Code Online (Sandbox Code Playgroud)
(透明:我创建了这个库。)
编辑答案
您可以使用xliffmerge工具。在html中添加新翻译后,它可以合并翻译文件
这是角度的教程
基本上,在运行常规提取命令之后,您可以调用xliffmerge并传递要为其生成翻译文件的语言
ng xi18n --outputPath src/locale/ --locale en && xliffmerge --profile xliffmerge.json en fr
Run Code Online (Sandbox Code Playgroud)
您可以为该工具指定一个json配置
{
"xliffmergeOptions": {
"srcDir": "src/locale",
"genDir": "src/locale"
}
}
Run Code Online (Sandbox Code Playgroud)
原始答案
尝试为您的翻译设置自定义ID
https://angular.io/guide/i18n#set-a-custom-id-for-persistence-and-maintenance
<h1 i18n="@@introductionHeader">Hello i18n!</h1>
Run Code Online (Sandbox Code Playgroud)
Nex在运行extract命令时,它只会添加新的块,而不会触及现有的块
顺便说一句,我认为使用本机选项是一个不错的选择,因为主要替代方案(ngx-translate)的维护者实际上正在与角度小组一起使用本机方法
| 归档时间: |
|
| 查看次数: |
2968 次 |
| 最近记录: |