xgettext-maven-plugin を使用して、ソースコードから翻訳する必要のある文字列を抽出します。 maven プラグインは、翻訳のために送信する XLIFF ファイルに文字列を抽出します。 文字列は次の場所から抽出されます。
- Java ソースファイル
- Javascript ソースファイル
- XML ファイル形式の SVN リソース(JCR ノード)
/filter { } /parsers { /vaultxml { } /javascript { } /regexp { /files { /java { } /jsp { } /extjstemplate { } } } } /potentials { }
セクション | 説明 |
---|---|
/filter | 解析するファイルを識別します。 |
/parsers/vaultxml | コンテナファイルの解析を設定します。 外部化された文字列と翻訳のヒントを含む JCR ノードを識別します。 さらに、処理を行わない JCR ノードも識別します。 |
/parsers/javascript | 文字列を外部化する Javascript 関数を識別します。 このセクションを変更する必要はありません。 |
/parsers/regexp | Java、JSP、ExtJS テンプレートファイルの解析を設定します。 このセクションを変更する必要はありません。 |
/potentials | 国際化する文字列を検出するための式。 |
i18n.any ファイルの /filter セクションでは、xgettext-maven-plugin ツールで解析するファイルを識別します。 解析するファイルと無視するファイルを識別するために、include 規則と exclude 規則をいくつか追加します。 すべてのファイルを含めてから、解析する必要のないファイルを除外する必要があります。 通常、UI に影響しないファイルの種類や、翻訳しない UI 定義ファイルは除外します。 include 規則と exclude 規則には以下の形式を使用します。
{ /include "pattern" }
{ /exclude "pattern" }
規則の pattern の部分は、含めるファイルまたは除外するファイルの名前を照合するために使用します。 pattern のプレフィックスにより、JCR ノード(コンテナでの形式)と照合するか、ファイルシステムと照合するかを指定します。
プレフィックス | 効果 |
---|---|
/ | JCR パスを指定します。 したがって、このプレフィックスを指定した場合は、jcr_root ディレクトリの下のファイルと照合されます。 |
* | ファイルシステム上の標準ファイルを指定します。 |
なし | プレフィックスがない場合または pattern がフォルダーまたはファイル名で始まる場合は、ファイルシステム上の標準ファイルを指定します。 |
規則の例 | 効果 |
---|---|
{ /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 のすべての子ノードを含めます。 |
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=.
<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
- raw.xliff:抽出された文字列。
- warn.log:警告(ある場合)。CQ.I18n.getMessage() API が正しく使用されていない場合は、修正し、再実行する必要があります。
- parserwarn.log:パーサーの警告(ある場合)。js パーサーの問題など。
- potentials.xliff: 抽出されなかったものの、翻訳が必要な、人間が判読できる文字列である可能性がある「候補」(無視してかまいません。大量の誤検出が生じます)。
- strings.xliff:ALF にインポートするために、フラット化された xliff ファイル。
- backrefs.txt:これにより、指定された文字列のソースコードの場所を簡単に調べることができます。