Hi Martin

Thanks for the answer. However, your solution relies on JSTL alone, and this
works for me without any problems (see my code).
What doesn't work is setting a resource bundle with my Java class, without
having to set the bundle in the JSP.

Best regards,
Eric

-----Original Message-----
From: Martin van Dijken [mailto:[EMAIL PROTECTED]
Sent: Montag, 7. Juli 2003 15:58
To: Tag Libraries Users List
Subject: RE: How to create a general resource bundle for JSTL?


Hey Eric,

Let me give you an educated yet untested guess. I'm not very experienced
with JSTL, but noticed you weren't getting any response so let me try. 

Have you tried setting the Locale of the ServletResponse object? I'm not
100% certain, but it seems to me JSTL *SHOULD* check this when using their
I18N tags. Furthermore if you want to use a resource bundle for a bunch of
tags it might do you some good to put the other I18N tags below them as
nested tags:

<fmt:setBundle basename="vulgarInsults"/>

<!-- Notice how the bundle tag surrounds the others... -->
<fmt:bundle basename="org.apache.bookies">
  <fmt:message key="threat" >
    <fmt:param value="${address}"/>
    <fmt:param value="${numberOfChildren}"/>
    <fmt:param value="${nameOfSpouse}"/>
  </fmt:message>
</fmt:bundle>

Greetings,

Martin van Dijken
Madocke Interactive Media


> Hi all
> 
> Till now, all JSP pages in our application had to have the 
> following header
> for internationalization:
> <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"; %>
> <fmt:setLocale value="${currentLocale}"/>
> <fmt:setBundle basename="ch.xobix.i18n.translations.X2Resources"
> var="bundle" scope="page"/>
> 
> Then a message would be output like this:
> <fmt:message key="longWeekday_0" bundle="${bundle}"/>
> 
> Note that "currentLocale" is set by the controller, and
> ch.xobix...X2Resources is a class that loads the messages 
> from a database
> table.
> This works well, however I think it's tedious for the web 
> designer to do
> this manually all the time.
> 
> My goal is to have the following:
> <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"; %>
> 
> And the message output like this:
> <fmt:message key="longWeekday_0"/>
> 
> So I tried to set it in the controller, as described in "JSTL 
> in Action". I
> managed to set the Locale right, but I don't know how to do 
> the same with
> the resources. First I tried according to the book to create a
> ResourceBundle and a Locale and set JSTL's 
> FMT_LOCALIZATIONCONTEXT (does
> anyone know why this is written like this?). Didn't work...
> 
> Now I've seen that I can change the web.xml to read
> <web-app>
>    ...
>    <context-param>
>  
> <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</pa
> ram-name>
>       
> <param-value>ch.xobix.i18n.translations.X2Resources</param-value>
>    </context-param>
>    ...
> </web-app>
> 
> Now, in the controller, I set the Locale with
> Config.set(this.getRequest(), Config.FMT_LOCALE, <the 
> language code> );
> 
> and I see it in Tomcat's output:
> DEBUG  - Request: javax.servlet.jsp.jstl.fmt.locale = it   
> (when changing to
> Italian)
> 
> BUT the message itself doesn't change!
> 
> What am I doing wrong? Or how should I do it right?
> 
> Also, has anyone of you succeeded in dynamically changing 
> resources? Right
> now, when someone enters a new key in the database, we have to restart
> Tomcat.
> 
> 
> Thanks for any help!
> Eric
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to