Recipe14.5.Using Tiles for I18N


Recipe 14.5. Using Tiles for I18N

Problem

You want to customize a Tiles definition based upon the user's language and country.

Solution

Create a separate version of your Tiles definition file for the specific locale; appending the locale code to the file name. If you saved your Tiles definition file as tiles-def.xml, you would save the locale-specific definitions file for Spanish as tiles-def_es.xml.

Discussion

Developers commonly localize JSP pages in a Struts application using a localized message resources file and the bean:message tag. If you need to display a different page and you are using Tiles, you can set aside a Tiles definition for a specific locale by placing it in a locale-specific Tiles definition file. At runtime, Tiles searches for a matching definition by considering the definition name and the current locale. You indicate the locale that applies to the definition by appending the locale's language and country code to the file name, as you would for localizing a message resources properties file. For example, if your Tiles definitions are specified in tiles-def.xml, definitions specific to the Spanish language will be placed in tiles-def_es.xml. If you needed definitions specific for French-Canadians, you would store them in tiles-def_fr_CA.xml.

Example 14-9 shows the Tiles definition file, tiles-def_es.xml, that overrides the .pageOne definition from Example 14-5.

Example 14-9. Overriding a definition for a specific locale
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE tiles-definitions PUBLIC        "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"        "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"> <tiles-definitions>     <definition name=".pageOne" extends="mainLayoutDef2">         <put name="title" value=" Page One"/>         <put name="body"  value="/pages/pageOneEs.jsp"/>     </definition> </tiles-definitions>

This technique is useful for localizing the layout. For some locales, you may want to reorient the sidebars so the predominant sidebar is on the right instead of the left. Tiles localization solves this problem.

See Also

Development of an internationalized application takes planning and forethought. Chapter 12 addresses a number of problems that you may run into when localizing a Struts application.



    Jakarta Struts Cookbook
    Jakarta Struts Cookbook
    ISBN: 059600771X
    EAN: 2147483647
    Year: 2005
    Pages: 200

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net