翻訳のための文字列の抽出 extracting-strings-for-translating
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 { }
解析するファイルの識別 identifying-the-files-to-parse
i18n.any ファイルの/filter セクションは、xgettext-maven-plugin ツールが解析するファイルを識別します。 解析するファイルと無視するファイルを識別するために、include 規則と exclude 規則をいくつか追加します。すべてのファイルを含めてから、解析する必要のないファイルを除外する必要があります。通常、UI に影響を与えないファイルタイプや、UI を定義するが翻訳されていないファイルを除外します。 「含む」ルールと「除外する」ルールの形式は次のとおりです。
{ /include "pattern" }
{ /exclude "pattern" }
ルールのパターン部分は、含めるまたは除外するファイルの名前の照合に使用されます。 パターンのプレフィックスは、JCR ノード(Vault での表現)とファイルシステムのどちらと一致しているかを示します。
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
:これにより、指定された文字列のソースコードの場所を簡単に調べることができます。