1 pièce(s) jointe(s)
Internationalisation: la langue du site ne change pas
Bonjour,
Après avoir suivi un guide trouvé sur internet (FrançoisXavier SENNESAL), je suis arrivé à faire le site suivant:
Page xhtml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<ui:composition>
<f:view>
<div align="right">
<table><tr>
<td><h:link value="#{txtl.sortir}" outcome="logout.jsp" /></td>
<td><h:link id="pt_BR" actionListener="#{beanInternationalisation.choixLangue}" >
<h:graphicImage value="images/brasilFlag.jpg" width="25" height="15" />
</h:link></td>
<td><h:link id="en_US" actionListener="#{beanInternationalisation.choixLangue}" >
<h:graphicImage value="images/usaFlag.jpg" width="25" height="15" />
</h:link></td>
</tr></table>
</div>
<h:graphicImage value="images/logo.JPG" /><br />
</f:view>
</ui:composition>
</html> |
Faces-config:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<resource-bundle>
<base-name>resources.text</base-name>
<var>txtl</var>
</resource-bundle>
<locale-config>
<default-locale>pt_BR</default-locale>
<supported-locale>en_US</supported-locale>
</locale-config>
</application>
</faces-config> |
ManagedBean:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| package app;
import java.util.Locale;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
@ManagedBean
@SessionScoped
public class BeanInternationalisation {
public void choixLangue(ActionEvent actionEvent){
Locale locale;
String idComposant=actionEvent.getComponent().getId();
int index=idComposant.indexOf("_");
if (index>0){
String langue=idComposant.substring(0,index);
String pays=idComposant.substring(index+1);
locale=new Locale(langue,pays);
}else{
locale=new Locale(idComposant);
}
FacesContext.getCurrentInstance().getViewRoot().setLocale(locale);
}
} |
J'ai aussi défini les fichiers text_en_US et text_pt_BR qui sont dans le dossier src/resources de mon application. Le site marche bien, lors que je charge la page j'ai le libele du site en pt_BR qu'est affiché, mais lorsque je clique sur le drapeau en_US, il n'y a rien qu'arrive, le site continue en pt_BR...
J'ai l'image du site en pièce jointe, le libele #{txtl.sortir} doit changer entre LogoutPT et LogoutUS :(
Est-ce que quelqu'un pourrait m'aider svp?
Merci d'avance,
Marc