Show Menu
トピック×

翻訳のための文字列の抽出

xgettext-maven-plugin を使用して、ソースコードから翻訳する必要のある文字列を抽出します。Maven プラグインは、翻訳のために送信する XLIFF ファイルに文字列を抽出します。文字列は次の場所から抽出されます。
  • Java ソースファイル
  • Javascript ソースファイル
  • XML ファイル形式の SVN リソース(JCR ノード)

文字列の抽出の設定

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 テンプレートファイルの解析を設定します。このセクションを変更する必要はありません。
/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のすべての子ノードを含めます。

文字列の抽出

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

出力ファイル

  • raw.xliff :抽出文字列
  • warn.log :警告(存在する場合)を表示する場合は、 CQ.I18n.getMessage() APIが正しく使用されていない場合に限ります。 これらは常に修正が必要で、再実行する必要があります。
  • parserwarn.log :パーサーの警告(ある場合)。js パーサーの問題など。
  • potentials.xliff :抽出されなかったものの、翻訳が必要な、人間が判読できる文字列である可能性がある「候補」(無視してかまいません。大量の誤検出が生じます)。
  • strings.xliff :ALF にインポートするために、フラット化された xliff ファイル。
  • backrefs.txt :これにより、指定された文字列のソースコードの場所を簡単に調べることができます。