Hi list,

I have the same problem as described in this thread. I have an app that uses 
only direct actions (no sessions) but stores the current language in a cookie. 
By default I check for that language setting and set the current ERXLocalizer 
accordingly. But when calling pageWithName I get every time the German 
component (there is a German and an English component) even if I set the 
localizer to English.

The setting er.extensions.ERXApplication.fixCachingEnabled=false as mentioned 
by Ramsey didn't show any effect and digging inside the WOContext source I 
found the method _languages() that should return the language(s) to be used:

If there is no session that method returns a _languagesAction array if non-null 
but this var and its setter are private so I don't see how to change its value. 
If it is null, which is its default value, then the browser languages are 
returned. I think there should be a check, if the localization is enabled in 
the app and return the language of the current localizer instead, shouldn't it?

Any thoughts? I altered my ERXWOContext for now and could put a patch on jira.

Happy Christmas,
jw


Am 02.12.2008 um 23:55 schrieb Ramsey Lee Gurley:

> 
> On Dec 2, 2008, at 2:53 AM, Anjo Krank wrote:
> 
>> 
>> Am 02.12.2008 um 08:04 schrieb Anjo Krank:
>> 
>>> If it doesn't, rewrite the method so it re-orders the nsarray so that it 
>>> still has all items from _expectedLanguages, but the ones from nsarray come 
>>> first and in order and post a patch.
>> 
>> I checked in an (untested) interim patch. See if the problem persists.
>> 
>> Cheers, Anjo
> 
> Nice patch :-)  Oh, and for the record, what I was saying earlier about 
> needing to return something from session languages() is complete garbage... I 
> see you've already taken care of that in ERXSession's setLanguage().  The 
> problem here was my test app was returning null from the updateLanguage() 
> action instead of a page. [Are you listening to this Mike? :-) ]  I think 
> this must be different from Mike and Chuck's debate though, because even 
> returning context().page() causes the contents of the current page object to 
> be re-rendered instead of refreshing the localized  component.  I actually 
> needed to do
> 
>       public WOActionResults updateLang() {
>               return 
> WOApplication.application().pageWithName(context().page().name(), context());
>       }
> 
> to get the right localized page component when changing languages.  Perhaps 
> there's another way to invalidate the page and cause the whole thing to 
> refresh, but I'm satisfied with that for now...
> 
> Ramsey


Attachment: smime.p7s
Description: S/MIME cryptographic signature

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to