Skip to main content

Soporte de Idioma en JSF

Creamos una clase

import java.io.Serializable;
import java.util.Locale;
import javax.faces.context.FacesContext;
import javax.annotation.ManagedBean;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;

/**
*
* @author avbravo
*/
@ManagedBean
@SessionScoped
@Named(value = "idiomas")
public class Idiomas implements Serializable {

private static final long serialVersionUID = 1L;

public Idiomas() {
}
private static String locale = Locale.getDefault().getDisplayLanguage();

public void setLocale(String locale) {
this.locale = locale;
}

public synchronized String getLocale() {
return locale;
}

public synchronized String changeLanguage() {
return "changed";
}

public String englishAction() {
FacesContext context = FacesContext.getCurrentInstance();
context.getViewRoot().setLocale(Locale.ENGLISH);
this.locale = "en";
return null;
}

public String spanishAction() {
FacesContext context = FacesContext.getCurrentInstance();
context.getViewRoot().setLocale(new Locale("es"));
this.locale = "es";
return null;
}
}


En la pagina xhtml, en el head


< f:view locale="#{idiomas.locale}">
y creamos commandLink
< h:commandLink action="#{idiomas.englishAction}" value="#{mensajes['idioma.english']}" />
< h:commandLink action="#{idiomas.spanishAction}" value="#{mensajes['idioma.spanish']}" />

Comments

Popular posts from this blog

Primefaces v13

 La versión nueva de primefaces v13.0 elimina el componente <p:repeat>  Consulte los cambios en  https://github.com/primefaces/primefaces/releases/tag/13.0.0 por lo tanto si necesita una solución similar considere utilizar  <p:carousel>  o  <ui:repeat> En la versión 13 genera una excepción

Jmoordb-Core @UpdateMany y @DeleteMany

 Jmoordb-Core @UpdateMany y @DeleteMany Estoy trabajando en una versión nueva de jmoordb-core en la cual se estarĆ” implementando nuevas funcionalidades como lo son @DeleteMany y    @UpdateMany con la finalidad de hacer operaciones sobre mĆŗltiples documentos de la colección.