Re: Changing to default localization without extension for the language
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.jumpst...@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 o3005...@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-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org -- BR Ivan - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Changing to default localization without extension for the language
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 lance.j...@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-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Changing to default localization without extension for the language
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
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 lance.j...@googlemail.comwrote: 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
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 o3005...@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-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org -- BR Ivan - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Changing to default localization without extension for the language
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-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
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-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Changing to default localization without extension for the language
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 o3005...@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-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org -- BR Ivan