extract-i18n --output-path 在根文件夹中提取

问题描述

为了提取翻译,我将 i18n 与 xliffmerge 结合使用。 我在 extract-i18n添加package.json 命令,如下所示:

"extract-i18n": "ng extract-i18n project --i18n-format xlf --output-path src/locale --i18n-locale en-US && ng run project:xliffmerge"

xliffmergeOptions 中的 angular.json 是:

"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 后,这个问题仍然存在。

解决方法


请使用此命令


extract-i18n --output-path src/locale
您没有定义路径,这就是您遇到问题的原因,您现在必须定义生成 xml 文件的路径,我也在 i18n 工作,如果您对 i18n 有任何疑问,请告诉我,我会帮助您。



,

我在 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 的开发几年前就停止了。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...