原文引自:http://fjy26.itpub.net/
- configure web.xml,insert following tag:
<init-param>
<param-name>locale</param-name>
<param-value>true</param-value>
</init-param>
codes above enable localization. - configure web.xml,insert following tag:
<init-param>
<param-name>application</param-name>
<paramvalue>ApplicationResources</param-value>
</init-param>
codes above indicate where default resource(ApplicationResources.properties) file reside in.If a specific resource locale is required, the actionServlet will look for resource file named ApplicationResources_xx_XX.properties according to locale. for example:ApplicationResources_en_us.properties
hint:the default path of resource file is WEB-INF/classes/. - using the struts framework locale object.
after above two steps, struts stores a locale object in session context,you can get the object using following codes:
Locale locale=(Locale)request.getSession().getAttribute(Action.LOCALE_KEY); - changing user's locale
Since locale is immutable ,you must create a new locale object to replace existing one:
Locale locale=new Locale(myForm.getLanguage(),myForm.getCountry());
HttpSession session=request.getSession(true);
session.setAttribute(Action.LOCALE_KEY,locale); - placing labels and messages in properties files.
- creating language-specified properties file for every locale you will support. if properly named,these files will be loaded automatically.if the application can't find a key in the resource for a user's locale,it will use the resource for the default locale.
- localization-aware components VS other components
usually,most struts components support I18N automatically.for the components that do not have lacalization built in,you can usually use<bean:message> to provide localized message. - localizing other components: validation and tiles
validation:all the labels and messages used by validator are linked to resource file and will be localized automatically.if additional localization be needed ,say to verify the format of a postal code or telephone number ,you can define a locale-specfic formset element like this:
<form name="testform" locale="fr" country="CA">...
tiles:you can define xml file according to locale like resource file :
tiles_fr_CA.xml