FAM - Multiidioma

1. Introducció

JSF permet fer aplicacions multiidioma de una manera molt senzilla. A més, al FAM, s'ha intentat treballar de la manera correcta per tal que internacionalitzar una aplicació sigui fàcil.

 

2. Backed Bean 

Per mirar de modularitzar la internacionalització de les aplicacions dintre del FAM, s'ha preparat un Backed Bean que inclogui la lògica multiidioma.

Aquest Bean inclou:

  • getIdioma() Que permet a les jsp accedir al idioma seleccionat
  • canviIdioma() Mètode que es crida en canviar d'idioma (que s'envia per paràmetre) 
  • isXXX() Mètode que permet a les jsps saber si ha de pintar un canvi d'idioma concret

 

public class IdiomaBB extends AbstractDibaBB {

    private static final String PARAM_IDIOMA = "codiIdioma";

    enum IDIOMAS {ca, es}

    private String idioma = IDIOMAS.ca.name();

    public String getIdioma() {
        return idioma;
    }

    public String canviIdioma() {
        idioma = WebUtils.facesRequestParam(PARAM_IDIOMA);

        updateLocale(idioma);

        return NavigationConstants.OK;
    }

    private void updateLocale(String idioma) {
        Locale locale = new Locale(idioma);

        FacesContext context = FacesContext.getCurrentInstance();
        context.getViewRoot().setLocale(locale);
        context.getApplication().setDefaultLocale(locale);
    }

    public boolean isCastella() {
        return IDIOMAS.es.name().equals(idioma);
    }

    public boolean isCatala() {
        return IDIOMAS.es.name().equals(idioma);
    }
}

 

3. Jps

A les jsp's s'ha d'indicar que la vista agafi l'idioma del bean de sessió que hem creat

<f:view locale="#{idiomaBB.idioma}">

 

Al menú s'han d'afegir les opcions de canvi d'idioma, visibles o no en funció de l'idioma seleccionat

<li style="float: right"><ice:commandLink
title="Cambio de idioma a Castellano" rendered="#{idiomaBB.catala}"
action="#{idiomaBB.castellaAction}">[es]</ice:commandLink></li>
<li style="float: right"><ice:commandLink
title="Cambio de idioma a Catalán" rendered="#{idiomaBB.castella}"
action="#{idiomaBB.catalaAction}">[ca]</ice:commandLink></li>

 

 

5. Editor

L'editor de l'eclipse permet definir els literals per diferents idiomes. 

També s'ha d'indicar el valor per defecte.

 

 

2
Etiquetes:
FAM, I18N
1
Grups de treball:
Plataforma JEE