You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Martin Carel <ma...@pricerunner.com> on 2006/02/24 14:07:46 UTC

Setting the default locale

Hi!

For many days I've been trying to get my validation messages in English 
(from computers (both client and server) with Swedish regional 
settings). Today I got a certain success fulfilling my needs, but I need 
you guys to shed the light on some details... I believe I read all the 
pertinent material regarding the issue both in the Tapestry docs and in 
the archives for this mailing-list.

I overrode the setLocale() method in my custom Engine so that it would 
be set to "Locale.UK".

This took care of the Engine for the locale UK, and indeed it was the 
Engine called for all my requests. A <span jwcid="@Insert" 
value="ognl:engine.locale"/> on my page proved to me that the locale for 
my page was "en_GB". So I expected to see my validation error messages 
in English... but they actually were in Swedish.

I'm guessing since there is no "ValidationStrings_en.properties" in 
org/apache/tapestry/valid/ ("ValidationStrings.properties" is present 
though, with English messages), it defaulted to Swedish, and therefore 
took "ValidationStrings_sv.properties".

I thought that this line in my app.application would make the default 
locale to English:

<meta key="org.apache.tapestry.accepted-locales" value="en" />


I also (unsuccessfully) tried to provide my own implementation of 
tapestry.request.RequestLocaleManager like this (in hivemodule.xml):

<implementation service-id="tapestry.request.RequestLocaleManager">
 <invoke-factory>
   <construct class="com.pricerunner.carhire.utils.PRRequestLocaleManager">
     <set-service property="threadLocale" 
service-id="hivemind.ThreadLocale"/>
   </construct>
 </invoke-factory>
</implementation>


Here is what my RequestLocaleManager implementation looks like:

public class PRRequestLocaleManager implements RequestLocaleManager {
 private ThreadLocale _threadLocale;
 public Locale extractLocaleForCurrentRequest() {
 _threadLocale.setLocale(Locale.UK);
   return Locale.UK;
 }
 public void setThreadLocale(ThreadLocale threadLocale) {
   _threadLocale = threadLocale;
 }
}

Although I know my PRRequestLocaleManager was called according to my 
logs, it didn't help to set the default locale to English (since my 
validation messages were still in Swedish). And there is no trace 
whatsoever of a creation of an Engine for the Swedish locale (I was 
logging in both getLocale() and setLocale() of my custom Engine).

So after all those unsuccessful experiments, I included a 
"ValidationStrings_en.properties" file in org/apache/tapestry/valid and 
it worked out.

But my question still holds. How can I force the default locale (to 
English in my case)?

/Martin


---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org


Re: Setting the default locale

Posted by Rudolf Baloun <Ru...@atron.de>.
I had the same Problem. The validator seems not to use the locale from 
engine.
I use JBoss. I added this in my JAVA_OPTS:

-Duser.language=de -Duser.country=de


For me this worked.


Martin Carel wrote:

> Hi!
>
> For many days I've been trying to get my validation messages in 
> English (from computers (both client and server) with Swedish regional 
> settings). Today I got a certain success fulfilling my needs, but I 
> need you guys to shed the light on some details... I believe I read 
> all the pertinent material regarding the issue both in the Tapestry 
> docs and in the archives for this mailing-list.
>
> I overrode the setLocale() method in my custom Engine so that it would 
> be set to "Locale.UK".
>
> This took care of the Engine for the locale UK, and indeed it was the 
> Engine called for all my requests. A <span jwcid="@Insert" 
> value="ognl:engine.locale"/> on my page proved to me that the locale 
> for my page was "en_GB". So I expected to see my validation error 
> messages in English... but they actually were in Swedish.
>
> I'm guessing since there is no "ValidationStrings_en.properties" in 
> org/apache/tapestry/valid/ ("ValidationStrings.properties" is present 
> though, with English messages), it defaulted to Swedish, and therefore 
> took "ValidationStrings_sv.properties".
>
> I thought that this line in my app.application would make the default 
> locale to English:
>
> <meta key="org.apache.tapestry.accepted-locales" value="en" />
>
>
> I also (unsuccessfully) tried to provide my own implementation of 
> tapestry.request.RequestLocaleManager like this (in hivemodule.xml):
>
> <implementation service-id="tapestry.request.RequestLocaleManager">
> <invoke-factory>
>   <construct 
> class="com.pricerunner.carhire.utils.PRRequestLocaleManager">
>     <set-service property="threadLocale" 
> service-id="hivemind.ThreadLocale"/>
>   </construct>
> </invoke-factory>
> </implementation>
>
>
> Here is what my RequestLocaleManager implementation looks like:
>
> public class PRRequestLocaleManager implements RequestLocaleManager {
> private ThreadLocale _threadLocale;
> public Locale extractLocaleForCurrentRequest() {
> _threadLocale.setLocale(Locale.UK);
>   return Locale.UK;
> }
> public void setThreadLocale(ThreadLocale threadLocale) {
>   _threadLocale = threadLocale;
> }
> }
>
> Although I know my PRRequestLocaleManager was called according to my 
> logs, it didn't help to set the default locale to English (since my 
> validation messages were still in Swedish). And there is no trace 
> whatsoever of a creation of an Engine for the Swedish locale (I was 
> logging in both getLocale() and setLocale() of my custom Engine).
>
> So after all those unsuccessful experiments, I included a 
> "ValidationStrings_en.properties" file in org/apache/tapestry/valid 
> and it worked out.
>
> But my question still holds. How can I force the default locale (to 
> English in my case)?
>
> /Martin
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>



---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org