You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by o3005659 <o3...@rtrtr.com> on 2012/11/19 13:10:22 UTC

Changing to default localization without extension for the language

I have made localization ro and en. Ro is by default, however I didn't extend
my property files with_ro extension, but I simply put
thisispropertyfile.properties. Now I have implemented for English

  public String onActionFromGoEnglish()
    {
        persistentLocale.set(new Locale("en"));
        return null;
    }

however, I don't know how to access property files that have no _ro
extension in example when user switches from en to ro. What to points my
persistenLocale then?



--
View this message in context: http://tapestry.1045711.n5.nabble.com/Changing-to-default-localization-without-extension-for-the-language-tp5718092.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

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


Re: Changing to default localization without extension for the language

Posted by Magnus Kvalheim <ma...@kvalheim.eu>.
Yes, decorating didn't seem possible - so have (for now) copied and
overridden PersistentLocaleImpl to allow null.

It is part of a requirement to always force locale through uri, except for
english which is on unlocalized. So need to clear persistentlocale when
switching to english.

Locale switch also set's cookie, so preferred locale is
remembered(redirect).
Approach is similar to how aws locale resolution works,
http://aws.amazon.com/ .

Have also replaced and overridden PageRender/- and
ComponentEventDispatchers to insert locale resolution logic in between
decoding of request parameters and it's delegation to request handler.
Seems to work, but let me know if someone can think of a more elegant
solution.

/magnus

On Tue, Dec 17, 2013 at 9:03 PM, Lance Java <la...@googlemail.com>wrote:

> I'm surprised that PersistentLocale does not have the ability to clear the
> value once it's set. Looking at PersistentLocaleImpl it doesn't allow
> setting to null.
>
> Perhaps you could override / decorate PersistentLocale to support clearing
> the value (by setting null).
>
> If decorating, you'll likely require a PerThreadValue. If overriding,
> you'll likely copy / paste / tweak PersistentLocaleImpl.
>

Re: Changing to default localization without extension for the language

Posted by Thiago H de Paula Figueiredo <th...@gmail.com>.
Or file a JIRA. A beta has just came out, so a new release isn't far. :)

On Tue, 17 Dec 2013 18:03:04 -0200, Lance Java <la...@googlemail.com>  
wrote:

> I'm surprised that PersistentLocale does not have the ability to clear  
> the
> value once it's set. Looking at PersistentLocaleImpl it doesn't allow
> setting to null.
>
> Perhaps you could override / decorate PersistentLocale to support  
> clearing
> the value (by setting null).
>
> If decorating, you'll likely require a PerThreadValue. If overriding,
> you'll likely copy / paste / tweak PersistentLocaleImpl.


-- 
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

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


Re: Changing to default localization without extension for the language

Posted by Lance Java <la...@googlemail.com>.
I'm surprised that PersistentLocale does not have the ability to clear the
value once it's set. Looking at PersistentLocaleImpl it doesn't allow
setting to null.

Perhaps you could override / decorate PersistentLocale to support clearing
the value (by setting null).

If decorating, you'll likely require a PerThreadValue. If overriding,
you'll likely copy / paste / tweak PersistentLocaleImpl.

Re: Changing to default localization without extension for the language

Posted by Magnus Kvalheim <ma...@kvalheim.eu>.
Hi Geoff.

A bit of an old thread now, but am also looking for a way to clear/reset
persistent locale.

Did you/anyone come up with a solution?

/magnus


On Sat, Nov 24, 2012 at 3:57 AM, Geoff Callender <
geoff.callender.jumpstart@gmail.com> wrote:

> Once I have gone to a specific locale I can't get back to the default
> locale in a way that leaves locale out of the URL.
>
> eg. from
>         http://localhost:8080/myapp/mypage
> to
>         http://localhost:8080/myapp/en_GB/mypage
> and back to
>         http://localhost:8080/myapp/mypage
>
> I have tried LocalizationSetter#setLocaleFromLocaleName("") but the locale
> won't change because it isn't supported.
> So I tried adding "" to the SUPPORTED_LOCALES, and that gave me an invalid
> URL:
>
>         http://localhost:8080/myapp//mypage
>
> Exactly the same effect using Locale.ROOT, because Locale.ROOT.toString()
> is "" and Locale.ROOT.getDisplayName() is "".
>
> The source of the problem seems to be that locale starts off as null in
> ThreadLocaleImpl and PersistentLocaleImpl but it's not possible to set it
> back to null.
>
> What have I missed?
>
> On 20/11/2012, at 12:55 AM, Ivan Khalopik wrote:
>
> > I don't understand your question.
> > But if you change locale using PersistentLocale service it will be
> > persisted in URL and be changed for next page request. The new localale
> > should also be configured in "tapestry.supported-locales" symbol.
> > If you want to chnge locale just for this request you can use
> > ThreadLocale#setLocale(...) method.
> > If you need both variants with safety and advantage of finding the
> closest
> > supported locale use LocalizationSetter#setLocaleFromLocaleName("en")
> >
> > All message catalogs will be accessed by tapestry with right choose. Just
> > use .properties for default locale, _ro.properties to override properties
> > for ro locale, _en.properties for en locale.
> > If you want to change locale to default (not ro) use Locale.ROOT constant
> > for java 6, and new Locale("") for older versions.
> >
> > On Mon, Nov 19, 2012 at 3:10 PM, o3005659 <o3...@rtrtr.com> wrote:
> >
> >> I have made localization ro and en. Ro is by default, however I didn't
> >> extend
> >> my property files with_ro extension, but I simply put
> >> thisispropertyfile.properties. Now I have implemented for English
> >>
> >>  public String onActionFromGoEnglish()
> >>    {
> >>        persistentLocale.set(new Locale("en"));
> >>        return null;
> >>    }
> >>
> >> however, I don't know how to access property files that have no _ro
> >> extension in example when user switches from en to ro. What to points my
> >> persistenLocale then?
> >>
> >>
> >>
> >> --
> >> View this message in context:
> >>
> http://tapestry.1045711.n5.nabble.com/Changing-to-default-localization-without-extension-for-the-language-tp5718092.html
> >> Sent from the Tapestry - User mailing list archive at Nabble.com.
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> >> For additional commands, e-mail: users-help@tapestry.apache.org
> >>
> >>
> >
> >
> > --
> > BR
> > Ivan
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

Re: Changing to default localization without extension for the language

Posted by Geoff Callender <ge...@gmail.com>.
Once I have gone to a specific locale I can't get back to the default locale in a way that leaves locale out of the URL.

eg. from 
	http://localhost:8080/myapp/mypage
to 
	http://localhost:8080/myapp/en_GB/mypage
and back to
	http://localhost:8080/myapp/mypage

I have tried LocalizationSetter#setLocaleFromLocaleName("") but the locale won't change because it isn't supported.
So I tried adding "" to the SUPPORTED_LOCALES, and that gave me an invalid URL:

	http://localhost:8080/myapp//mypage

Exactly the same effect using Locale.ROOT, because Locale.ROOT.toString() is "" and Locale.ROOT.getDisplayName() is "".

The source of the problem seems to be that locale starts off as null in ThreadLocaleImpl and PersistentLocaleImpl but it's not possible to set it back to null.

What have I missed?

On 20/11/2012, at 12:55 AM, Ivan Khalopik wrote:

> I don't understand your question.
> But if you change locale using PersistentLocale service it will be
> persisted in URL and be changed for next page request. The new localale
> should also be configured in "tapestry.supported-locales" symbol.
> If you want to chnge locale just for this request you can use
> ThreadLocale#setLocale(...) method.
> If you need both variants with safety and advantage of finding the closest
> supported locale use LocalizationSetter#setLocaleFromLocaleName("en")
> 
> All message catalogs will be accessed by tapestry with right choose. Just
> use .properties for default locale, _ro.properties to override properties
> for ro locale, _en.properties for en locale.
> If you want to change locale to default (not ro) use Locale.ROOT constant
> for java 6, and new Locale("") for older versions.
> 
> On Mon, Nov 19, 2012 at 3:10 PM, o3005659 <o3...@rtrtr.com> wrote:
> 
>> I have made localization ro and en. Ro is by default, however I didn't
>> extend
>> my property files with_ro extension, but I simply put
>> thisispropertyfile.properties. Now I have implemented for English
>> 
>>  public String onActionFromGoEnglish()
>>    {
>>        persistentLocale.set(new Locale("en"));
>>        return null;
>>    }
>> 
>> however, I don't know how to access property files that have no _ro
>> extension in example when user switches from en to ro. What to points my
>> persistenLocale then?
>> 
>> 
>> 
>> --
>> View this message in context:
>> http://tapestry.1045711.n5.nabble.com/Changing-to-default-localization-without-extension-for-the-language-tp5718092.html
>> Sent from the Tapestry - User mailing list archive at Nabble.com.
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 
> 
> 
> -- 
> BR
> Ivan


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


Re: Changing to default localization without extension for the language

Posted by o3005659 <o3...@rtrtr.com>.
Thanks, Sody! :)



--
View this message in context: http://tapestry.1045711.n5.nabble.com/Changing-to-default-localization-without-extension-for-the-language-tp5718092p5718175.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

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


Re: Changing to default localization without extension for the language

Posted by Ivan Khalopik <ik...@gmail.com>.
I don't understand your question.
But if you change locale using PersistentLocale service it will be
persisted in URL and be changed for next page request. The new localale
should also be configured in "tapestry.supported-locales" symbol.
If you want to chnge locale just for this request you can use
ThreadLocale#setLocale(...) method.
If you need both variants with safety and advantage of finding the closest
supported locale use LocalizationSetter#setLocaleFromLocaleName("en")

All message catalogs will be accessed by tapestry with right choose. Just
use .properties for default locale, _ro.properties to override properties
for ro locale, _en.properties for en locale.
If you want to change locale to default (not ro) use Locale.ROOT constant
for java 6, and new Locale("") for older versions.

On Mon, Nov 19, 2012 at 3:10 PM, o3005659 <o3...@rtrtr.com> wrote:

> I have made localization ro and en. Ro is by default, however I didn't
> extend
> my property files with_ro extension, but I simply put
> thisispropertyfile.properties. Now I have implemented for English
>
>   public String onActionFromGoEnglish()
>     {
>         persistentLocale.set(new Locale("en"));
>         return null;
>     }
>
> however, I don't know how to access property files that have no _ro
> extension in example when user switches from en to ro. What to points my
> persistenLocale then?
>
>
>
> --
> View this message in context:
> http://tapestry.1045711.n5.nabble.com/Changing-to-default-localization-without-extension-for-the-language-tp5718092.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>


-- 
BR
Ivan