特殊なトークンで区切られたファイルのキーを識別し、リソースバンドルから読み込まれた値を使って翻訳します。
リソースバンドルには、ロケール固有のキーと値のペアが含まれます。リソースバンドルは、プロパティファイルの階層セットです。バンドル名は、基盤となるファミリ名で構成されます。このバンドルを構成する各ファイルには、この名前とそれぞれのロケールが追加されています。たとえば、リソースバンドルの名前がMyResourcesの場合、ドイツ語のテキストを含むファイルの名前はMyResources_deになります。言語に加えて、国とバリアントもバンドルのファイルを作成するために用いられます。
リソースバンドルの検索では、(1) 必要なロケールと (2) デフォルトのロケール(basebundlename) に基づいて、次の順番でさまざまなサフィックスを持つリソースファイルが検索されます(低レベル(より具体的)から親レベル(あまり具体的ではない)へ)
basebundlename + "_" + language1 + "_" + country1 + "_" + variant1 basebundlename + "_" + language1 + "_" + country1 basebundlename + "_" + language1 basebundlename basebundlename + "_" + language2 + "_" + country2 + "_" + variant2 basebundlename + "_" + language2 + "_" + country2 basebundlename + "_" + language2
このようにして生成されたファイル名に文字列.propertiesを追加して、使用するファイル名にします。
ファイルのエンコーディングがサポートされています。ソースファイル、宛先ファイル、およびバンドルファイルのエンコーディング方式を指定できます。
forceoverwrite属性を使用して、宛先ファイルを明示的に上書きできます。forceoverwriteがfalse
の場合、宛先ファイルは、宛先ファイルの前回の変更以降にソースファイルまたはバンドルを構成するファイルが変更された場合にのみ上書きされます。
Apache Ant 1.6以降 ソースファイルの行末は、翻訳されたファイルに保持されます。
ファイルセットを使用して、翻訳するファイルを指定します。
| 属性 | 説明 | 必須 |
|---|---|---|
| todir | 宛先ファイルが作成される宛先ディレクトリ。 | はい |
| starttoken | キーを識別するための開始トークン。 | はい |
| endtoken | キーを識別するための終了トークン。 | はい |
| bundle | リソースバンドルのファミリ名。 | はい |
| bundlelanguage | リソースバンドルのロケール固有の言語。 | いいえ、デフォルトではデフォルトのロケールの言語 |
| bundlecountry | リソースバンドルのロケール固有の国。 | いいえ、デフォルトではデフォルトのロケールの国 |
| bundlevariant | リソースバンドルのロケール固有のバリアント。 | いいえ、デフォルトではbundlelanguage_bundlecountry |
| srcencoding | ソースファイルのエンコーディング方式。 | いいえ、デフォルトではデフォルトの JVM 文字エンコーディング |
| destencoding | 宛先ファイルのエンコーディング方式。 | いいえ、デフォルトではsrcencoding |
| bundleencoding | リソースバンドルファイルのエンコーディング方式。 | いいえ、デフォルトではsrcencoding |
| forceoverwrite | 宛先ファイルが新しい場合でも、既存のファイルを上書きします。 | いいえ、デフォルトではno |
ファイルセットを使用して、翻訳されたファイルの値が生成されるキーを含むファイルを選択します。
日本語でエンコードされたリソースバンドルを使用して、英語でエンコードされたソースファイルを日本語の同義語に翻訳します。
<translate toDir="$(dest.dir}/ja"
starttoken="#"
endtoken="#"
bundle="resource/BaseResource"
bundlelanguage="ja"
forceoverwrite="yes"
srcencoding="ISO8859_1"
destencoding="SJIS"
bundleencoding="SJIS">
<fileset dir="${src.dir}">
<include name="**/*.jsp"/>
</fileset>
</translate>