

<chapter id="localization">
    <title>Localization</title>
    <para>
One of the most powerful and useful features of the Tapestry framework is the way in which it
assists with localization of a web application.  This is normally an ugly area in web applications,
with tremendous amounts of ad-hoc coding necessary.
</para>
    <para>
Because Tapestry does such a strong job of seperating the presentation of a component (its
HTML template) from its control logic (its specification and Java class) it becomes easy for it to
perform localization automatically.  It's as simple as providing additional localized HTML
templates for the component, and letting the framework select the proper one.
</para>
    <para>
However, the static text of an application, provided by the HTML templates, is not all.
</para>
    <para>
Applications also have assets (images, stylesheets and the like) that must also be localized: that
fancy button labeled "Search" is fine for your English clients, but your
French clients will require
a similar button labeled "Recherche".
</para>
    <para>
Again, the framework assists, because it can look for localized versions of the assets as it runs.
</para>
    <para>
The locale application demostrates this.  It is a very simply application that demonstrates changing
the locale of a running application
	<footnote>
        <para>
		All the translations were performed using
		<ulink url="http://world.altavista.com/">Babelfish</ulink>, and are probably quite laughable to
		someone who actually speaks the alternate
		languages.
		</para>
      </footnote>
    </para>
    <para>
A demonstration of localization is built into the Workbench, under the <acronym>L10N</acronym>
      <footnote>
        <para>
The "10" refers to the number of letters between 'l' and 'n' in the word 'localization'
</para>
      </footnote> tab.
The page allows the user to select a new language for the application:
</para>
    <figure>
      <title>L10N Page (English)</title>
      <mediaobject>
        <imageobject>
          <imagedata fileref="images/localize-home-english.jpg" format="JPEG"/>
        </imageobject>
      </mediaobject>
    </figure>
    <para>
Selecting "German" from the list and clicking the "Change" button brings you to a new page that
acknowledges your selection:
</para>
    <figure>
      <title>Locale Changed (German)</title>
      <mediaobject>
        <imageobject>
          <imagedata fileref="images/localize-changed-german.jpg" format="JPEG"/>
        </imageobject>
      </mediaobject>
    </figure>
    <para>
Clicking the button (it's labeled "Return" in German) returns you to the L10N page to
select a new language:
</para>
    <figure>
      <title>L10N Page (German)</title>
      <mediaobject>
        <imageobject>
          <imagedata fileref="images/localize-home-german.jpg" format="JPEG"/>
        </imageobject>
      </mediaobject>
    </figure>
    <para>
The neat thing here is that the <classname>L10N</classname> page has been localized into
German as well; it shows
equivalent German text, the options in the popup list are in German, and the "Change" button
has been replaced with a German equivalent.
</para>

<section id="locale.template">
	<title>Localization of HTML Templates</title>

<para>
Localization of HTML templates ia automatic.  When Tapestry reads a template, it looks for a localized version of it.
In this example, in addition to the English language <filename>Localization.html</filename>, three additional files were created:
<filename>Localization_de.html</filename>, <filename>Localization_fr.html</filename> and <filename>Localization_it.html</filename>.
</para>

<para>
Tapestry tracks the locale for each user using either an HTTP Cookie, or the &HttpSession;.  It makes sure that all templates for all components
on the page use the best available template; it does a standard search.
</para>

	</section>

<section id="locale.assets">
	<title>Localization of Assets</title>

<para>
In the L10N pages, there are images that are also localized.
Tapestry has a hand in this as well.  As with HTML templates, Tapestry
searches for matches based on the user's locale.

</para>

<para>
Both context assets (assets that are part of the WAR) and private assets (assets that are stored in Java frameworks) can be localized.  This is demonstrated
on the L10N page:  the "Change" button is a private asset; the "Back" button is a context asset.

</para>

</section>

  <section id="locale.other-options">
      <title>Other Options for Localization</title>
      <para>
In some cases, different localizations of the a component will be very similar, perhaps having only
one or two small snippets of text that is different.
In those cases, it may be easier on the developer to not localize the HTML template, but to
replace the variant text with an
&Insert; component.
</para>
      <para>
The page can read a localized strings file (a <filename>.properties</filename> file) to get
appropriate localized text.  This
saves the bother of maintaining multiple HTML templates.  This is the same approach taken
by the Apache Struts framework.
</para>
      <para>
All components on a page share the single locale for the page, but each performs its own search
for its HTML template.  This means that some components may not have to be localized, if they
never contain any static HTML text.  This is sometimes the case for reusable components, even
navigational borders.
</para>
    </section>
</chapter>