翻译

描述

识别文件中由特殊标记分隔的键,并使用从资源包中读取的值对其进行翻译。

资源包包含特定于区域设置的键值对。资源包是属性文件的层次结构集。包名构成其基本族名。构成此包的每个文件都具有此名称加上其区域设置。例如,如果资源包名称为 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 属性显式覆盖目标文件。如果 forceoverwritefalse,则仅当源文件或构成包的任何文件在上次修改目标文件后被修改时,才会覆盖目标文件。

自 Apache Ant 1.6 起,源文件的行尾将保留在翻译后的文件中。

文件集 用于选择要翻译的文件。

参数

属性 描述 必需
todir 要创建目标文件的目标目录。
starttoken 用于识别键的起始标记。
endtoken 用于识别键的结束标记。
bundle 资源包的族名。
bundlelanguage 资源包的特定于区域设置的语言。 否;默认为默认区域设置的语言
bundlecountry 资源包的特定于区域设置的国家/地区。 否;默认为默认区域设置的国家/地区
bundlevariant 资源包的特定于区域设置的变体。 否;默认为 bundlelanguage_bundlecountry
srcencoding 源文件编码方案。 否;默认为默认 JVM 字符编码
destencoding 目标文件编码方案。 否;默认为 srcencoding
bundleencoding 资源包文件编码方案。 否;默认为 srcencoding
forceoverwrite 即使目标文件较新,也覆盖现有文件。 否;默认为 no

作为嵌套元素指定的参数

fileset

文件集 用于选择包含要为其生成翻译值的文件的文件。

示例

使用以日语编码的资源包将以英语编码的源文件翻译成其日语等效项。

<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>