为了提取翻译,我将i18n与xliffmerge结合使用。 我在package.json
中添加了extract-i18n
命令,如下所示:
"extract-i18n": "ng extract-i18n project --i18n-format xlf --output-path src/locale --i18n-locale en-US && ng run project:xliffmerge"
angular.json
xliffmergeOptions
是:
"xliffmerge": {
"builder": "@ngx-i18nsupport/tooling:xliffmerge",
"options": {
"xliffmergeOptions": {
"format": "xlf",
"srcDir": "src/locale",
"genDir": "src/locale",
"defaultLanguage": "en-US",
"languages": [
"en-US",
"nl-NL"
]
}
}
}
每当我运行extract-i18n
命令时,messages.xlf 文件仍然会导出到根文件夹而不是 src/locale。
我不知道为什么它没有导出到 src/locale 文件夹。
更新
从 Angular 11 升级到 Angular 12 后,此问题仍然存在。
我在package.json的脚本中配置ng extract-i18n
时犯了运行的错误。相反,我应该使用npm run extract-i18n
.
不过,这只能解决部分问题,因为不再支持--i18n-format
和--18n-locale
(或者看起来如此)。
正确的命令应该是:
"extract-i18n": "ng extract-i18n [projectname] --format xlf --output-path src/locale && ng run [projectname]:xliffmerge"
由于 Angular 弃用了模式中的关键字"id",转而使用"$id",我不确定 xliffmerge 会继续工作多久,因为 ngx-i18nsupport 的开发几年前就停止了。
请使用此命令
extract-i18n --output-path src/locale
你没有定义路径,这就是为什么你面临问题你必须定义路径 现在生成XML文件的路径 一天我也在工作 i18n 如果您对 i18n 有任何疑问,请告诉我我会帮助你。