Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment:


WW-924

...

Resource Bundle Search Order

Resource bundles are searched in the following order:

Tip
titlePackage Hierarchy

While transversing the package hierarchy, WW will look for a file package.properties

 
 
 

1. ActionClass.properties
2. BaseClass.properties (all the way to Object.properties)
3. Interface.properties (every interface and sub-interface)
4. ModelDriven's model (if implements ModelDriven), for the model object repeat from 1
5. package.properties (of the directory where class is located and every parent directory all the way to the root directory)
6. search up the i18n message key hierarchy itself
7. global resource properties (webwork.custom.i18n.resources) defined in webwork.properties

Wiki Markup
{snippet:id=searchorder|javadoc=true|url=com.opensymphony.xwork.util.LocalizedTextUtil}

For more information, checkout the LocalizedTextUtil class.

To clarify item #5:

com/
  acme/
     package.properties
     actions/
          package.properties
          FooAction.java
          FooAction.properties

If FooAction.properties does not exist com/acme/action/package.properties will be searched for if not found com/acme/package.properties if not found com/package.properties, etc.

 

...

Tip
titlePackage Hierarchy
Wiki Markup
{snippet:id=packagenote|javadoc=true|url=com.opensymphony.xwork.util.LocalizedTextUtil}

Examples

Using getText()

To display i18n text, you can use a call to getText() in the property tag, or any other tag such as the UI tags (this is especially useful for labels of UI tags):

Wiki Markup
{snippet:id=i18nExample|javadoc=true|lang=xml|url=com.opensymphony.webwork.components.Property}

 

 

...

Text Tag

You may also use the text tag:

Wiki Markup
{snippet:id=i18nExample|javadoc=true|lang=xml|url=com.opensymphony.webwork.components.Text}

 

 

 

I18n Tag

Also, note that there is an i18n tag that will push a resource bundle on to the stack, allowing you to display text that would otherwise not be part of the resource bundle search hierarchy mentioned previously.

Wiki Markup
{snippet:id=i18nExample|javadoc=true|lang=xml|url=com.opensymphony.webwork.components.I18n}

 

...

 

Warning

Internationalization in SiteMesh decorators is possible, but there are a few quirks about it. Check out the SiteMesh page to learn how to be integrate WebWork and SiteMesh, including integration tips.

 
 
 
 
 

I18n Interceptor

See I18n Interceptorfor more info. It basically pushes a locale into the ActionContext map upon every request. Webwork (components, ActionSupport etc.) honours this and hence every i18n related aspect will used this locale. Its a pretty elegant way of changing locale upon request as well.

Global

...

resource (webwork.custom.i18n.resources) in webwork.properties

...

A global resource bundle could be specified through the 'webwork.custom.i18n.resources' property in webwork.properties. The locale can be siwtched by 'webwork.locale' in the webwork.properties as well.

Comparison with Struts

...

Wiki Markup
{snippet:id=globalresource|javadoc=true|url=com.opensymphony.xwork.util.LocalizedTextUtil}

Comparison with Struts

Wiki Markup
{snippet:id=strutscomparison|javadoc=true|url=com.opensymphony.xwork.util.LocalizedTextUtil}