mercoledì 7 gennaio 2015

Internalizzazione con Struts 1.3

Con la vecchia versione di Struts per realizzare l'internazionalizzazione occorre:

1) definire nello struts-config.xml l'elemento message-resources
2) definire un package con i file di properties, tenendo conto che il parameter impostato al punto 1 dovrà puntare al nome del file di properties senza estensione nè localizzazione
3) caricare in sessione nella variabile org.apache.struts.Globals.LOCALE_KEY il locale prescelto

Esempio

definisco un package denominato org.common.i18

con dentro 3 files:
  • messages.properties;
  • messages_en.properties;
  • messages_it.properties
Ogni file ha una proprietà soltanto

welcome.message=Benvenuto (DEF) per il messages.properties
welcome.message=Benvenuto (EN)  per il messages_en.properties
welcome.message=Benvenuto (IT) per il messages_it.properties

Nello struts config definiamo il seguente elemento:


<message-resources key="localeBundle" parameter="org.common.i18.messages">
</message-resources>

La key serve ad individuare univocamente il bundle e quindi consente di definirne più di uno.

Sulla prima action chiamata dall'applicazione si setta il locale in questo modo:


request.getSession().setAttribute(Globals.LOCALE_KEY, request.getLocale());


Nella jsp occorre importare la taglib di struts


<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> 


Per accedere alla proprietà è sufficiente quindi scrivere:


<bean:message key="welcome.message" bundle="localeBundle" />


1 commento: