提取字符串以进行翻译 extracting-strings-for-translating

CAUTION
AEM 6.4已结束扩展支持,本文档将不再更新。 有关更多详细信息,请参阅 技术支助期. 查找支持的版本 此处.

使用xgettext-maven-plugin从需要翻译的源代码中提取字符串。 Maven插件会将字符串提取到您发送以进行翻译的XLIFF文件。 字符串将从以下位置提取:

  • Java源文件
  • Javascript源文件
  • SVN资源(JCR节点)的XML表示

配置字符串提取 configuring-string-extraction

配置xgettext-maven-plugin工具如何为您的项目提取字符串。

/filter { }
/parsers {
   /vaultxml { }
   /javascript { }
   /regexp {
      /files {
         /java { }
         /jsp { }
         /extjstemplate { }
      }
   }
}
/potentials { }
分区
描述
/filter
标识要解析的文件。
/parsers/vaultxml
配置对保管库文件的解析。 标识包含外部字符串和本地化提示的JCR节点。 还标识要忽略的JCR节点。
/parsers/javascript
标识将字符串外部化的Javascript函数。 您无需更改此部分。
/parsers/regexp
配置对Java、JSP和ExtJS模板文件的解析。 您无需更改此部分。
/potents
用于检测要国际化的字符串的公式。

标识要解析的文件 identifying-the-files-to-parse

i18n.any文件的/filter部分标识xgettext-maven-plugin工具解析的文件。 添加多个包含和排除规则,以分别标识已解析和忽略的文件。 您应包括所有文件,然后排除您不想解析的文件。 通常,您会排除不对UI做出贡献的文件类型,或者排除定义UI但未翻译的文件。 包含和排除规则的格式如下:

{ /include "pattern" }
{ /exclude "pattern" }

规则的模式部分用于匹配要包含或排除的文件的名称。 模式前缀指示您是匹配JCR节点(其在Vault中的表示形式)还是文件系统。

前缀
效果
/
指示JCR路径。 因此,此前缀匹配jcr_root目录下的文件。
*
指示文件系统上的常规文件。
没有前缀或以文件夹或文件名开头的模式表示文件系统上的常规文件。

在模式中使用时,/字符表示子目录和*字符与全部匹配。 下表列出了几个示例规则。

示例规则
效果
{ /include "*" }
包含所有文件。
{ /exclude "*.pdf" }
排除所有PDF文件。
{ /exclude "*/pom.xml" }
排除POM文件。
{ /exclude "/content/*" } { /include "/content/catalogs/geometrixx/templatepages" } { /include "/content/catalogs/geometrixx/templatepages/*" }

排除/content节点下的所有文件。

包括/content/catalogs/geometrixx/templatepages节点。

包括/content/catalogs/geometrixx/templatepages的所有子节点。

提取字符串 extracting-the-strings

无POM:

mvn -N com.adobe.granite.maven:xgettext-maven-plugin:1.2.2:extract  -Dxgettext.verbose=true -Dxgettext.target=out -Dxgettext.rules=i18n.any -Dxgettext.root=.

使用POM:将此项添加到POM:

<build>
    <plugins>
        <plugin>
            <groupId>com.adobe.granite.maven</groupId>
            <artifactId>xgettext-maven-plugin</artifactId>
            <version>1.1</version>
            <configuration>
                <rules>i18n.any</rules>
                <root>jcr_root</root>
                <xliff>cq.xliff</xliff>
                <verbose>true</verbose>
            </configuration>
        </plugin>
    </plugins>
</build>

命令:

mvn xgettext:extract

输出文件 output-files

  • raw.xliff:提取字符串

  • warn.log:警告(如果有),如果 CQ.I18n.getMessage() API使用不正确。 这些操作始终需要修复,然后重新运行。

  • parserwarn.log:解析器警告(如果有),例如js解析器问题

  • potentials.xliff:未提取的“潜在”候选项,但可能是需要翻译的人类可读字符串(可以忽略,仍会产生大量误报)

  • strings.xliff:扁平xliff文件,将导入ALF中

  • backrefs.txt:允许快速查找给定字符串的源代码位置

recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e