<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<title>Translate Task</title>
</head>

<body>

<h2><a name="translate">Translate</a></h2>
<h3>Description</h3>
<p>Identifies keys in files delimited by special tokens
and translates them with values read from resource bundles.
</p>
<p>
A resource bundle contains locale-specific key-value pairs.
A resource bundle is a hierarchical set of property files.
A bundle name makes up its base family name.  Each file that
makes up this bundle has this name plus its locale.  For example,
if the resource bundle name is MyResources, the file that contains
German text will take the name MyResources_de.  In addition to
language, country and variant are also used to form the files in
the bundle.
</p>
<p>
The resource bundle lookup searches for resource files with various
suffixes on the basis of (1) the desired locale and (2) the default
locale (basebundlename), in the following order from lower-level
(more specific) to parent-level (less specific):
</p>
<pre>
basebundlename + &quot;_&quot; + language1 + &quot;_&quot; + country1 + &quot;_&quot; + variant1
basebundlename + &quot;_&quot; + language1 + &quot;_&quot; + country1
basebundlename + &quot;_&quot; + language1
basebundlename
basebundlename + &quot;_&quot; + language2 + &quot;_&quot; + country2 + &quot;_&quot; + variant2
basebundlename + &quot;_&quot; + language2 + &quot;_&quot; + country2
basebundlename + &quot;_&quot; + language2
</pre>
<p>
The file names generated thus are appended with the string &quot;.properties&quot;
to make up the file names that are to be used.
</p>
<p>
File encoding is supported.  The encoding scheme of the source files,
destination files and the bundle files can be specified.

Destination files can be exlicitly overwritten using the
<var>forceoverwrite</var> attribute.  If <var>forceoverwrite</var>
is false, the destination file is overwritten only if either the
source file or any of the files that make up the bundle have been
modified after the destination file was last modified.
</p>
<p><a href="../CoreTypes/fileset.html">FileSet</a>s are used to select files to
translate.
</p>
<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0">
  <tr>
    <td valign="top"><b>Attribute</b></td>
    <td valign="top"><b>Description</b></td>
    <td align="center" valign="top"><b>Required</b></td>
  </tr>
  <tr>
    <td valign="top">todir</td>
    <td valign="top">Destination directory where destination files are
      to be created.</td>
    <td valign="top" align="center">Yes</td>
  </tr>
  <tr>
    <td valign="top">starttoken</td>
    <td valign="top">The starting token to identify keys.</td>
    <td valign="top" align="center">Yes</td>
  </tr>
  <tr>
    <td valign="top">endtoken</td>
    <td valign="top">The ending token to identify keys.</td>
    <td valign="top" align="center">Yes</td>
  </tr>
  <tr>
    <td valign="top">bundle</td>
    <td valign="top">Family name of resource bundle.</td>
    <td valign="top" align="center">Yes</td>
  </tr>
  <tr>
    <td valign="top">bundlelanguage</td>
    <td valign="top">
        Locale specific language of resource bundle.  Defaults to
        default locale's language.
    </td>
    <td valign="top" align="center">No</td>
  </tr>
  <tr>
    <td valign="top">bundlecountry</td>
    <td valign="top">
        Locale specific country of resource bundle.  Defaults to
        default locale's country.
    </td>
    <td valign="top" align="center">No</td>
  </tr>
  <tr>
    <td valign="top">bundlevariant</td>
    <td valign="top">
        Locale specific variant of resource bundle.  Defaults to
        the default variant of the country and language being used.
    </td>
    <td valign="top" align="center">No</td>
  </tr>
  <tr>
    <td valign="top">srcencoding</td>
    <td valign="top">Source file encoding scheme.  Defaults to
    system default file encoding.</td>
    <td valign="top" align="center">No</td>
  </tr>
  <tr>
    <td valign="top">destencoding</td>
    <td valign="top">Destination file encoding scheme.  Defaults to
    source file encoding.</td>
    <td valign="top" align="center">No</td>
  </tr>
  <tr>
    <td valign="top">bundleencoding</td>
    <td valign="top">Resource Bundle file encoding scheme.  Defaults to
    source file encoding.</td>
    <td valign="top" align="center">No</td>
  </tr>
  <tr>
    <td valign="top">forceoverwrite</td>
    <td valign="top">Overwrite existing files even if the destination
      files are newer. Defaults to &quot;no&quot;.</td>
    <td valign="top" align="center">No</td>
  </tr>
</table>
<h3>Parameters specified as nested elements</h3>

<h4>fileset</h4>
 <p><a href="../CoreTypes/fileset.html">FileSets</a> are used to select files that
 contain keys for which value translated files are to be generated.
</p>
<h3>Examples</h3>
<p><b>Translate source file encoded in english into its japanese
equivalent using a resource bundle encoded in japanese.
</b></p>
<pre>
  &lt;translate toDir=&quot;$(dest.dir}/ja&quot;
        starttoken=&quot;#&quot;
        endtoken=&quot;#&quot;
        bundle=&quot;resource/BaseResource&quot;
        bundlelanguage=&quot;ja&quot;
        forceoverwrite=&quot;yes&quot;
        srcencoding=&quot;ISO8859_1&quot;
        destencoding=&quot;SJIS&quot;
        bundleencoding=&quot;SJIS&quot;&gt;
        &lt;fileset dir=&quot;${src.dir}&quot;&gt;
            &lt;include name=&quot;**/*.jsp&quot;/&gt;
        &lt;/fileset&gt;
  &lt;/translate&gt;
</pre>
<hr>
<p align="center">Copyright &copy; 2001 Apache Software Foundation. All rights
Reserved.</p>
</body>
</html>
