Bonjour,
Après avoir suivi un guide trouvé sur internet (FrançoisXavier SENNESAL), je suis arrivé à faire le site suivant:
Page xhtml:
Faces-config:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
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>
ManagedBean:
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
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>
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 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
Partager