I tried to edit the FAQ but I'm not allowed to do so. http://struts.apache.org/2.x/docs/faqs.html
________________________________ De : Musachy Barroso <musa...@gmail.com> À : Struts Users Mailing List <user@struts.apache.org> Envoyé le : Samedi, 15 Août 2009, 0h39mn 27s Objet : Re: Re : Re : Re : Struts2 + I18N This would make a good FAQ if it is not there already. On Fri, Aug 14, 2009 at 3:25 PM, Julien HENRY<henr...@yahoo.fr> wrote: > Very, very hackish... but I like it ;) > > Thanks for this very good trick. > > > > > ________________________________ > De : Chris Pratt <thechrispr...@gmail.com> > À : Struts Users Mailing List <user@struts.apache.org> > Envoyé le : Samedi, 15 Août 2009, 0h13mn 19s > Objet : Re: Re : Re : Struts2 + I18N > > One trick I've used in the past is to put an empty (usually containing a > comment saying to look in default.properties) default_en.properties file in > the application. Since all entries roll up to the default.properties > anyway, if the bundle loader finds the empty file, he gets all warm and > fuzzy and everything just seems to work. > (*Chris*) > > On Fri, Aug 14, 2009 at 3:03 PM, Musachy Barroso <musa...@gmail.com> wrote: > >> There is a major refactoring planned for xwork's I18n, this should >> probably be part of it. Rene you watching this? >> >> musachy >> >> On Fri, Aug 14, 2009 at 2:16 PM, Julien HENRY<henr...@yahoo.fr> wrote: >> > After digging into Struts2 code, here is what I discovered: this bug is >> simply caused by the normal behavior of getBundle ( >> http://java.sun.com/j2se/1.4.2/docs/api/java/util/ResourceBundle.html#getBundle(java.lang.String,%20java.util.Locale,%20java.lang.ClassLoader)<http://java.sun.com/j2se/1.4.2/docs/api/java/util/ResourceBundle.html#getBundle%28java.lang.String,%20java.util.Locale,%20java.lang.ClassLoader%29> >> ) >> > >> > Here is the explanation >> > >> > In my Struts2 application I have the following language files: >> > >> > >> > default_de.properties >> > default_fr.properties >> > default.properties (contains EN) >> > >> > JVM Defaut Locale: fr_FR >> > >> > >> > Scenario 1: >> > struts.locale not set so fr_FR is the default >> > When hitting the first action, default_fr.properties is used >> > OK >> > >> > Scenario2: >> > Now I want to switch to English so I append ?request_locale=en to the URL >> > According to getBundle algorithm: >> > 1) default_en.properties is looked but not found >> > 2) default_fr.properties is found and used >> > KO >> > >> > Scenario 3: >> > struts.locale is set to en_US >> > When hitting the first action, we are in the same case as scenario 2 >> because JVM default is still fr_FR >> > >> > The issue lay in LocalizedTextUtil.findResourceBundle(String >> > bundleName, Locale locale) because here we only know that the user >> > wants the given locale but we have no idea of what is the fallback >> > locale. >> > >> > Proposed solutions: >> > >> > 1) default.properties should always match JVM language. Because an >> application may be developped for several country it means forcing default >> JVM with -Duser.language=XX. But this is not a good solution because the >> same JVM may host several applications with possibly different default >> Locale. >> > >> > 2) Force JVM default locale on Struts startup to be equal to >> struts.locale. The main concern is I'm not sure it will works fine with >> multi-threading and it will have many side effects (like changing language >> for stacktraces in the log) >> > >> > 3) Clean solution : have a clear separation between requested locale >> (with potentialy a default struts.default.request.locale) and default local >> (mean the locale that is contained in the resource bundle without >> extension). Then use the Java 1.6 feature (I know, I know, don't shout at >> me) ResourceBundle.Control that allow to change the fallback locale. >> > >> > Interesting read: >> > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5086301 >> > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4303146 >> > >> > It seems that JSF implements its own lookup algorithm. IMHO this is the >> only solution if you don't want to use the JDK 1.6 feature >> ResourceBundle.Control. >> > >> > >> > Regards, >> > >> > Julien >> > >> > >> > >> > >> > ________________________________ >> > De : "mailtolouis2020-str...@yahoo.com" < >> mailtolouis2020-str...@yahoo.com> >> > À : Struts Users Mailing List <user@struts.apache.org> >> > Envoyé le : Vendredi, 14 Août 2009, 18h12mn 52s >> > Objet : Re: Re : Struts2 + I18N >> > >> > Not long ago, someone also got similar problem: >> > >> > >> http://markmail.org/message/mozukqgrnhfbq7od?q=s2+and+default+locale/language+list:org.apache.struts.users/ >> > >> > >> > >> > >> > ________________________________ >> > From: Julien HENRY <henr...@yahoo.fr> >> > To: Struts Users Mailing List <user@struts.apache.org> >> > Sent: Friday, August 14, 2009 4:52:28 PM >> > Subject: Re : Struts2 + I18N >> > >> > Hi, >> > >> > AFAIK this is the same as adding <constant name="struts.locale" >> value="en" /> in struts.xml. >> > >> > BTW I tried your suggestion without much improvement. >> > >> > I even tried to rename default.properties in default_en.properties => >> still no english. >> > >> > >> > >> > >> > ________________________________ >> > De : BALAJI CRB <balaji_...@spanservices.com> >> > À : Struts Users Mailing List <user@struts.apache.org> >> > Envoyé le : Vendredi, 14 Août 2009, 17h47mn 37s >> > Objet : RE: Struts2 + I18N >> > >> > Hi, >> > >> > >> > >> > Use struts.locale=en in your struts.properties file. Hope this works. >> > >> > Regards, >> > >> > Balaji C R B >> > >> > >> > >> > -----Original Message----- >> > From: Julien HENRY [mailto:henr...@yahoo.fr] >> > Sent: Friday, August 14, 2009 9:11 PM >> > To: user@struts.apache.org >> > Subject: Struts2 + I18N >> > >> > >> > >> > Hi, >> > >> > >> > >> > In my Struts2 application I have the following language files: >> > >> > >> > >> > default_de.properties >> > >> > default_fr.properties >> > >> > default.properties (contains EN) >> > >> > >> > >> > When I start my application, the application is in French (probably >> because JVM default locale is french). Then I tried to change language by >> appending ?request_locale=XX in the URL. >> > >> > >> > >> > Adding ?request_locale=de works fine. All texts are in German. >> > >> > >> > >> > Adding ?request_locale=en doesn't work. All texts are in French. >> > >> > >> > >> > I tried to add >> > >> > <constant name="struts.locale" value="en" /> >> > >> > to struts.xml but no luck. >> > >> > >> > >> > How can I tell Struts that the default.properties file is English? >> > >> > >> > >> > Thanks, >> > >> > >> > >> > Julien >> > >> > >> > >> > >> > >> > >> > >> > >> > DISCLAIMER: >> > >> > This email message and all attachments are confidential and may contain >> information that >> > is privileged, confidential or exempt from disclosure under applicable >> law. If you are >> > not the intended recipient, you are notified that any dissemination, >> distribution or >> > copying of this email is strictly prohibited. If you have received this >> email in error, >> > please notify us immediately by return email or to >> mailad...@spanservices.com and destroy >> > the original message. >> > >> > Opinions, conclusions, and other information in this message that do >> not relate to the >> > official business of SPAN, shall be understood to be neither given nor >> endorsed by SPAN. >> > >> > >> > >> >> >> >> -- >> "Hey you! Would you help me to carry the stone?" Pink Floyd >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >> For additional commands, e-mail: user-h...@struts.apache.org >> >> > > > > -- "Hey you! Would you help me to carry the stone?" Pink Floyd --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org