You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

WebWork supports internationalization (in short, i18n) in two different places: the UI tags and the action/field error messages.

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.

Resource bundles are searched in the following order:

  • ActionClass.properties
  • BaseClass.properties (all the way to Object.properties)
  • Interface.properties (every interface and sub-interface)
  • package.properties (every of every base class, all the way to java/lang/package.properties)

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

<ww:property value="getText('some.key')"/>

You may also use the text tag:

<ww:text name="'some.key'"/>

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.

<ww:i18n name="some/package/bundle">
    <ww:text name="'some.key'"/>
</ww:i18n>

Using a master application catalog

Struts users should be familiar with the application.properties resource bundle, where you can put all the messages in the application that are going to be translated. WebWork2, though, splits the resource bundles per action or model class, and you may end up with duplicated messages in those resource bundles. A quick fix for that is to create a file called ActionSupport.properties in com/opensymphony/xwork and put it on your classpath. This will only work well if all your actions subclass ActionSupport.

Global resource bundles can also be specified
via setting the webwork.custom.i18n.resources in webwork.properties.

  • No labels