...
Tip | ||
---|---|---|
| ||
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 (every of every base class, the folder where class is located and every parent folder all the way to java/lang/package.propertiesroot folder)
6. search up the i18n message key hierarchy itself
7. global resource properties (webwork.custom.i18n.resources) defined in webwork.properties
For more information, checkout the LocalizedTextUtil class.
Examples
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 inf not found com/package.properties, etc.
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} |
You may also use the text tag:
Wiki Markup |
---|
{snippet:id=i18nExample|javadoc=true|lang=xml|url=com.opensymphony.webwork.components.Text} |
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.
...