yk,

  But if only one person change the language ( to ms_MY).

  Then the other users of the website will also see the page as ms_MY
language not the default language en_US.

  I test in my computer it will affect the other browsers.

  So...

Cheers,
  Neil

On Nov 10, 3:16 pm, YING-KWANG TU <ying.kwang...@gmail.com> wrote:
> Neil,
>
> In my Boot.scala:
>
>     def localeCalculator(request : Box[HTTPRequest]): Locale =
>       request.flatMap(
>         _.param("locale") match {
>           case Nil => Full(Locale.getDefault())
>           case myLocale :: _ => {
>             def iLocale = new Locale(myLocale.substring(0, 2),
> myLocale.substring(3, 5))
>             Locale.setDefault(iLocale) *// this is where I set the default
> locale to the new one*
>             Full(iLocale)
>           }
>         }
>       ).openOr(Locale.getDefault())
>     LiftRules.localeCalculator = localeCalculator _
>
> On Tue, Nov 10, 2009 at 3:10 PM, Neil.Lv <anim...@gmail.com> wrote:
>
> > yk,
>
> >  About the setLocale method in the demo (  http://219.94.110.243 )
>
> >  1:) First, I open the Firefox and type this link, i see the menu
> > label is English.
>
> >  2:) Second, I open the IE or other browser to view this page, and
> > click the  "ms_MY" link to change the language,
> >       it works fine.
>
> >  3:) Then I refresh the index page in the Firefox (First step), the
> > menu label is not English now, it's ms_MY.
>
> >  4:) Is there the set locale is global for whole website or only in
> > my computer ?
>
> > Cheers,
> >  Neil
>
> > ####
> >  ....
> >  def iLocale = new Locale(myLocale)
> >   Locale.setDefault(iLocale)
> >   Full(iLocale)
> >  ...
> > ####
>
> > On Nov 10, 1:58 pm, "Neil.Lv" <anim...@gmail.com> wrote:
> > >    Maybe it's a bug with <lift:loc locid=""/>  ....
>
> > >    It's so confused.
>
> > > Cheers,
> > >   Neil
>
> > > On Nov 10, 12:11 pm, YING-KWANG TU <ying.kwang...@gmail.com> wrote:
>
> > > > By adding a println line in my localeCalculator churned the following
> > > > output:
>
> > > > en_US
> > > > en_us
> > > > en_us
> > > > en_us
> > > > en_us
> > > > INFO - Service request (GET) / took 53 Milliseconds
> > > > en_us
> > > > ms_my
> > > > ms_my
> > > > ms_my
> > > > ms_my
> > > > INFO - Service request (GET) / took 37 Milliseconds
> > > > ms_my
> > > > th_th
> > > > th_th
> > > > th_th
> > > > th_th
> > > > INFO - Service request (GET) / took 37 Milliseconds
>
> > > > It almost seems like it is java.util.Locale... Mysteriously, adding
> > symlinks
> > > > helps. For e.g.
>
> > > > lift-core_en_us.properties -> lift-core_en_US.properties
>
> > > > On Tue, Nov 10, 2009 at 9:58 AM, YING-KWANG TU <
> > ying.kwang...@gmail.com>wrote:
>
> > > > > Tim,
>
> > > > > You can browse tohttp://219.94.110.243forthetest site running on
> > > > > Ubuntu Server 9.10.
> > > > > There is a down-loadable test project which you can test out.
>
> > > > > Before this discussion thread on UTF-8 or ISO8859-1,
>
> > > > >    1. localization is running great on
> > windows+maven2.2.1+liftweb1.1-M7
> > > > >    2. <lift:loc locid=""/> yet to work for both platform
> > > > >    3. on linux, even S.??("") not working at all.
>
> > > > > Cheers,
> > > > >   yk
>
> > > > > On Sat, Nov 7, 2009 at 8:29 PM, Timothy Perrett
> > <timo...@getintheloop.eu>wrote:
>
> > > > >> You should always be working with UTF-8 files for properties /
> > > > >> localisation - I think the encoding reported by jetty is something
> > > > >> different (that it reads from the system)... ensure your props files
> > > > >> are UTF-8 and go from there.
>
> > > > >> Cheers, Tim
>
> > > > >> On Nov 7, 12:48 am, yk <ying.kwang...@gmail.com> wrote:
> > > > >> > Hi Tim,
>
> > > > >> > I've developed n tested localization on windows and it worked
> > > > >> > perfectly. however, localization of the same project placed on
> > ubuntu
> > > > >> > server 9.10 did not.
>
> > > > >> > WinXP
> > > > >> > -----------
> > > > >> > jdk1.6
> > > > >> > maven 2.2.1
> > > > >> > lifeweb 1.1-M7
> > > > >> > encoding=cp1252 (as reported by "mvn jetty:run")
>
> > > > >> > Ubuntu 9.10 server
> > > > >> > ---------------------------
> > > > >> > openjdk OR sun-jdk6
> > > > >> > maven 2.2.1
> > > > >> > liftweb 1.1-M7
> > > > >> > encoding=UTF-8 (as reported by "mvn jetty:run")
>
> > > > >> > I can't quite point my finger on why it worked on windows but not
> > on
> > > > >> > linux. Do i have to convert all files that need to be deployed to
> > > > >> > UTF-8 encoding?
>
> > > > >> > Thank you in advance.
>
> > > > >> > Cheers,
> > > > >> >   yk
>
> > > > >> > On Oct 26, 9:12 pm, Timothy Perrett <timo...@getintheloop.eu>
> > wrote:
>
> > > > >> > > The browser already knows the locale, you have it backward! Your
> > > > >> > > localeCalculator is so that the browser can get lift to return
> > the
> > > > >> > > right content.
>
> > > > >> > > Take a look at:
>
> >http://scala-tools.org/mvnsites/liftweb-1.1-M6/lift-webkit/scaladocs/.
> > > > >> ..
>
> > > > >> > > I would start with just getting lift to explicitly set locale
> > based on
>
> > > > >> > > a query string or something... it will help you understand how
> > the
> > > > >> > > mechanism works.
>
> > > > >> > > Cheers, Tim
>
> > > > >> > > On 26 Oct 2009, at 12:34, Neil.Lv wrote:
>
> > > > >> > > >  ...
>
> > > > >> > > >  Where is the locale to be set that the browser can know the
> > > > >> > > > locale ?
>
> > > > >> > > >  Thanks very much!
>
> > > > >> > > > Cheers,
> > > > >> > > >  Neil
>
> > > > >> > > > On Oct 26, 7:50 pm, Timothy Perrett <timo...@getintheloop.eu>
> > > > >> wrote:
> > > > >> > > >> setLocale was a method created by me, specific to my
> > application -
> > > > >> it
> > > > >> > > >> does not exist in Lift... hence why I removed it in my
> > simplified
> > > > >> > > >> example.
>
> > > > >> > > >> Cheers, Tim
>
> > > > >> > > >> On 26 Oct 2009, at 11:45, Neil.Lv wrote:
>
> > > > >> > > >>> I have a silly question ,  where is the setLocale method ?
>
> > > > >> > > >>> I don't know where the package located.
>
> > > > >> > > >>> src\main\scala\bootstrap\liftweb\Boot.scala:63: error: not
> > found:
> > > > >> > > >>> value setLocale
> > > > >> > > >>>   setLocale(selectedLocale)
>
> > > > >> > > >>> :)
>
> > > > >> > > >>> Cheers,
> > > > >> > > >>>  Neil
>
> > > > >> > > >>> On Oct 26, 5:50 pm, Timothy Perrett <timo...@getintheloop.eu
>
> > > > >> wrote:
> > > > >> > > >>>> Yes, your template code is right - your just seeing the
> > default
> > > > >> > > >>>> value
> > > > >> > > >>>> because you have not told lift what resources to use when
> > it gets
>
> > > > >> > > >>>> the
> > > > >> > > >>>> locale header from the browser.
>
> > > > >> > > >>>> tryo() is like try/catch however, it will catch exceptions
> > and
> > > > >> > > >>>> returns
> > > > >> > > >>>> Box[T]
>
> > > > >> > > >>>> I would really suggest starting with something a lot
> > simpler than
>
> > > > >> > > >>>> the
> > > > >> > > >>>> one i detailed that uses cookies and all sorts. Perhaps
> > something
> > > > >> > > >>>> like:
>
> > > > >> > > >>>> def localeCalculator(request : Box[HTTPRequest]): Locale =
> > > > >> > > >>>>    request.flatMap(r => {
> > > > >> > > >>>>    tryo(r.locale) match {
> > > > >> > > >>>>      // your match here
> > > > >> > > >>>>    }
>
> > > > >> > > >>>> }).openOr(java.util.Locale.getDefault())
>
> > > > >> > > >>>> Hope that helps
>
> > > > >> > > >>>> Cheers, Tim
>
> > > > >> > > >>>> On 26 Oct 2009, at 09:21, Neil.Lv wrote:
>
> > > > >> > > >>>>>  <lift:loc locid="login">Log in 222</lift:loc>
> > > > >> > > >>>>>  That means this code is correctly, the problem is that
> > the
> > > > >> > > >>>>> browser
> > > > >> > > >>>>> doesn't know the locale?
>
> > > > >> > > >>>>>  So we need to calculate the locale in the Boot.scala file
> > ?
>
> > > > >> > > >>>>> Cheers,
> > > > >> > > >>>>>  Neil
>
> > > > >> > > >>>>> On Oct 26, 5:09 pm, "Neil.Lv" <anim...@gmail.com> wrote:
> > > > >> > > >>>>>> tryo(r.getParameter("locale")) match {
> > > > >> > > >>>>>>    case Full(null) => workOutLocale
> > > > >> > > >>>>>>    case Empty => workOutLocale
> > > > >> > > >>>>>>    case Failure(_,_,_) => workOutLocale
> > > > >> > > >>>>>>    case Full(selectedLocale) => {
> > > > >> > > >>>>>>      setLocale(selectedLocale)
> > > > >> > > >>>>>>      selectedLocale
> > > > >> > > >>>>>>    }
> > > > >> > > >>>>>>  }
>
> > > > >> > > >>>>>>  In this code ,  what's the tryo ? is try ?
> > > > >> > > >>>>>>  tryo () match {}
>
> > > > >> > > >>>>>>  What's the changes about the HTTP container providers?
>
> > > > >> > > >>>>>>  Thanks very much!
>
> > > > >> > > >>>>>> Cheers,
> > > > >> > > >>>>>>  Neil
>
> > > > >> > > >>>>>> On Oct 26, 4:44 pm, Timothy Perrett
> > <timo...@getintheloop.eu>
> > > > >> > > >>>>>> wrote:
>
> > > > >> > > >>>>>>> Hmm - you posted a link to my article at the begining of
> > this
> > > > >> > > >>>>>>> thread;
> > > > >> > > >>>>>>> in that article I explain lifts locale calculator.
> > Without
> > > > >> this,
> > > > >> > > >>>>>>> Lift
> > > > >> > > >>>>>>> has no idea how you want to handle different locales. By
> > > > >> > > >>>>>>> default,
> > > > >> > > >>>>>>> the
> > > > >> > > >>>>>>> following is used:
>
> > > > >> > > >>>>>>>  var localeCalculator: Box[HTTPRequest] => Locale =
> > > > >> > > >>>>>>> defaultLocaleCalculator _
>
> > > > >> > > >>>>>>>  def defaultLocaleCalculator(request: Box[HTTPRequest])
> > =
> > > > >> > > >>>>>>>  request.flatMap(_.locale).openOr(Locale.getDefault())
>
> > > > >> > > >>>>>>> As you can see, that will get only the locale of your
> > JVM, not
>
> > > > >> > > >>>>>>> the
> > > > >> > > >>>>>>> browser. You will need to write the appropriate locale
> > > > >> > > >>>>>>> calculator;
> > > > >> > > >>>>>>> the
> > > > >> > > >>>>>>> one in my article is a little out of date as there was a
> > > > >> > > >>>>>>> breaking
> > > > >> > > >>>>>>> change not so long ago to the HTTP container providers
> > but it
> > > > >> > > >>>>>>> should
> > > > >> > > >>>>>>> give you enough to go on.
>
> > > > >> > > >>>>>>> Does that help?
>
> > > > >> > > >>>>>>> Cheers, Tim
>
> > > > >> > > >>>>>>> On Oct 26, 8:35 am, "Neil.Lv" <anim...@gmail.com>
> > wrote:
>
> > > > >> > > >>>>>>>> 1:)   I create a file in the i18n folder
>
> ...
>
> read more ยป
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to