翻訳のための文字列の抽出 extracting-strings-for-translating
xgettext-maven-plugin を使用して、ソースコードから翻訳する必要のある文字列を抽出します。Maven プラグインは、翻訳のために送信する XLIFF ファイルに文字列を抽出します。文字列は次の場所から抽出されます。
- Java ソースファイル
- JavaScript ソースファイル
- XML ファイル形式の SVN リソース(JCR ノード)
文字列の抽出の設定 configuring-string-extraction
xgettext-maven-plugin ツールでプロジェクトの文字列を抽出する方法を設定します。
/filter { }
/parsers {
/vaultxml { }
/javascript { }
/regexp {
/files {
/java { }
/jsp { }
/extjstemplate { }
}
}
}
/potentials { }
解析するファイルの識別 identifying-the-files-to-parse
i18n.any ファイルの /filter セクションでは、xgettext-maven-plugin ツールで解析するファイルを識別します。解析するファイルと無視するファイルを識別するために、include 規則と exclude 規則をいくつか追加します。すべてのファイルを含めてから、解析する必要のないファイルを除外する必要があります。通常、UI に影響しないファイルの種類や、翻訳しない UI 定義ファイルは除外します。include 規則と exclude 規則には以下の形式を使用します。
{ /include "pattern" }
{ /exclude "pattern" }
規則の pattern の部分は、含めるファイルまたは除外するファイルの名前を照合するために使用します。pattern のプレフィックスにより、JCR ノード(コンテナでの形式)と照合するか、ファイルシステムと照合するかを指定します。
pattern 内で使用されている場合、「/」文字はサブディレクトリを指定し、「*」文字はすべてのファイルと照合されます。次の表に、規則の例をいくつか示します。
文字列の抽出 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
:ALF にインポートするために、フラット化された xliff ファイル。 -
backrefs.txt
:これにより、指定された文字列のソースコードの場所を簡単に調べることができます。