Re: Logout and localization problem
Re: Logout and localization problem
- Subject: Re: Logout and localization problem
- From: "WebObjects" <email@hidden>
- Date: Mon, 10 Apr 2006 15:01:27 +0200
This should not be a joke . I mean it seriously.
I belive, cos the people who created WO are developers, and they think only
in english, they completely forgot that there is another languages, and dont
add the language part in a correct Object Oriented solution to the
applications.
We (at least I) still face problems using non ASCII characters in databases.
First God created developers(Her started the real problem :) ). Developers
created databases in English. Then Developers added languages to almost
close-System.
To be honest. I develop my applications and after monthes i think "oh i need
another languages".
Solutions: reengineering. Who says, it goes well? :/)
peaSakoe
----- Original Message -----
From: "Miguel Arroz" <email@hidden>
To: "WebObjects-Dev Apple" <email@hidden>
Sent: Saturday, April 08, 2006 6:15 PM
Subject: Re: Logout and localization problem
> Hi!
>
> Well, I could mate it work... (I removed some verifications code
> from the snippet blow to make it simpler to read):
>
> public WOActionResults logoutAction() {
> String language = (String)request().formValueForKey
> ("language");
> changeLanguage(language);
>
> WOComponent result = pageWithName("LogoutComponent");
>
> Session theSession = (Session)result.context().session();
> theSession.changeLanguage(language);
>
> return result;
> }
>
> The strange this is that I have to call changeLanguage in the DA,
> and in the session... if I call only in the Session, I have the
> reverse effect, that is, I get the LogoutComponent in english and
> everything else in the desired language.
>
> Why does this happen?
>
> Yours
>
> MigueL Arroz
>
> On 2006/04/08, at 16:55, Miguel Arroz wrote:
>
> > Hi!
> >
> > We have an application where the preferred user language is
> > stored in his account. So, he may see the application in English,
> > but as soon as he logs-in, the app switches to the language he
> > choose before. We do this by removing his language from the session
> > language list, and adding it again as the first one.
> >
> > I'm implementing Logout now. To implement Logout, I have used
> > code from Practical WebObjects book:
> >
> > public WOComponent logout() {
> > NSMutableDictionary arguments = new NSMutableDictionary();
> > arguments.setObjectForKey(Boolean.FALSE, "wosid");
> >
> > session().terminate();
> > WORedirect mainPage = (WORedirect) pageWithName("WORedirect");
> > mainPage.setUrl(context().directActionURLForActionNamed
> > ("logout", arguments));
> >
> > return mainPage;
> > }
> >
> > When using this, it's obvious that, whatever the language was
> > before, the Logout page will appear in english. So, I did a small
> > modification:
> >
> > public WOComponent logout() {
> > NSMutableDictionary arguments = new NSMutableDictionary();
> > arguments.setObjectForKey(Boolean.FALSE, "wosid");
> > arguments.setObjectForKey(session().languages
> > ().objectAtIndex(0), "language");
> >
> > session().terminate();
> > WORedirect mainPage = (WORedirect) pageWithName("WORedirect");
> > mainPage.setUrl(context().directActionURLForActionNamed
> > ("logout", arguments));
> >
> > return mainPage;
> > }
> >
> > And, in DirectAction, I tried this:
> >
> > public WOActionResults logoutAction() {
> > String language = (String)request().formValueForKey
> > ("language");
> > changeLanguage(language);
> > return pageWithName("LogoutComponent");
> > }
> >
> > public void changeLanguage(String newLanguage) {
> > NSMutableArray languagesArray = new NSMutableArray
> > (this.languages());
> >
> > languagesArray.removeObject(newLanguage);
> > languagesArray.insertObjectAtIndex(newLanguage,0);
> >
> > this.setLanguages(languagesArray);
> > }
> >
> > This almost works, but I'm having a problem... the
> > "LogoutComponent" itself appears in the correct language, but all
> > the sub-components it includes appear in English. I suspect this
> > happens because they have WOHyperlinks, so a new session is created
> > somewhere between by return pageWithName and the page actually gets
> > sent to the browser. Probably, the other subcomponents are getting
> > the language from the Session (which, at that point, i cannot
> > control) and not from the Direct Action.
> >
> > As the session does not exist during the execution of my
> > logoutAction() method, I cannot change it's languages array. Is
> > there any way to solve this? Maybe forcing the creation of a
> > session in the logoutAction() method, but I could not find out how
> > to do it.
> >
> > Yours
> >
> > Miguel Arroz
> >
> > "GUERRA E' PAZ
> > LIBERDADE E' ESCRAVIDAO
> > IGNORANCIA E' FORCA" -- 1984
> >
> > Miguel Arroz
> > http://www.ipragma.com
> >
> >
> >
> > _______________________________________________
> > Do not post admin requests to the list. They will be ignored.
> > Webobjects-dev mailing list (email@hidden)
> > Help/Unsubscribe/Update your Subscription:
> > 40guiamac.com
> >
> > This email sent to email@hidden
>
>
> "I felt like putting a bullet between
> the eyes of every Panda that wouldn't
> scr*w to save its species." -- Fight Club
>
> Miguel Arroz
> http://www.ipragma.com
>
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
>
> This email sent to email@hidden
>
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden