Neil,

1. I've tried creating life-core_th_TH.utf-8 by copying from
life-core_en_US.properties file.
2. Open the th_TH file in notepad and overwritten as "UTF-8"
3. I've copied some thai characters from the internet and replaced
login=ที่อยู่ปัจจุบัน and saved.
3. native2ascii comes with java, so I open cmd, change directory to
src/main/resources/i18n
4. at > prompt, native2ascii -encoding UTF-8 life-core_th_TH.utf-8
life-core_th_TH.properties

Voilà!

On Thu, Nov 5, 2009 at 7:56 AM, yk <ying.kwang...@gmail.com> wrote:

>
> Neil,
>
> 1. I've copied life-core_en_US.properties from lift-webkit.jar to src/
> main/resources/i18n like u did n renamed to life-
> core_ms_MY.properties.
> 2. I've changed the login=Login (BM) for in file life-
> core_ms_MY.properties for testing
> 3. I am able to test localization on the fly successfully (for e.g.
> http://localhost:8080/?locale=ms_MY)
>
> here is the code that is working for me:
>
>    def localeCalculator(request : Box[HTTPRequest]): Locale =
>      request.flatMap(
>         _.param("locale") match {
>          case Nil => Full(Locale.getDefault())
>          case myLocale :: _ => {
>            // println(myLocale)
>            Full(new Locale(myLocale))
>          }
>        }
>      ).openOr(Locale.getDefault())
>
>    LiftRules.localeCalculator = localeCalculator _
>
> Not the best of thing but enough to get localization going at this
> point.
>
> On Oct 26, 10:34 pm, "Neil.Lv" <anim...@gmail.com> wrote:
> >   I feel the information of this page is less for me,
> >
> >   but Thanks all the same !   :)
> >
> > Cheers,
> >   Neil
> >
> > 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:
> > > >>setLocalewas 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 thesetLocalemethod ?
> >
> > > >>> I don't know where the package located.
> >
> > > >>> src\main\scala\bootstrap\liftweb\Boot.scala:63: error: not found:
> > > >>> valuesetLocale
> > > >>>  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
> > > >>>>>>>> /src/main/resources/i18n/lift-core_zh_CN.properties
> > > >>>>>>>> .....
> > > >>>>>>>> login = \u767b\u5f55
> > > >>>>>>>> logout = \u9000\u51fa
> > > >>>>>>>> log.in = \u767b\u5f55
> > > >>>>>>>> log.out = \u9000\u51fa
> > > >>>>>>>> sign.up = \u6ce8\u518c
> > > >>>>>>>> logged.in = \u5df2\u7ecf\u767b\u5f55
> > > >>>>>>>> ......
> > > >>>>>>>> the others are default (copy from lift-core_en_US.properties)
> >
> > > >>>>>>>> 2:)
> > > >>>>>>>> ### index.html
> > > >>>>>>>> <lift:surround with="default" at="content">
> > > >>>>>>>>  <lift:loc id="login">Log in 111</lift:loc>
> > > >>>>>>>>  <lift:loc locid="login">Log in 222</lift:loc>
> > > >>>>>>>> </lift:surround>
> >
> > > >>>>>>>> The lift:loc doesn't work that it should read the i18n string
> > > >>>>>>>> from the
> > > >>>>>>>> lift-core_zh_CN.properties and show the chinese chars, (login
> =
> > > >>>>>>>> \u767b
> > > >>>>>>>> \u5f55)
> >
> > > >>>>>>>> but it always shows the default string (Log in 111, Log in
> > > >>>>>>>> 222).
> >
> > > >>>>>>>> Has anything will be config ?
> >
> > > >>>>>>>> Cheers,
> > > >>>>>>>>  Neil
> >
> > > >>>>>>>> On Oct 26, 4:17 pm, Timothy Perrett <timo...@getintheloop.eu>
> > > >>>>>>>> wrote:
> >
> > > >>>>>>>>> Neil,
> >
> > > >>>>>>>>> Can you zip and send me an example? It's quite likley your
> > > >>>>>>>>> missing
> > > >>>>>>>>> something and without seeing the code it's difficult to say.
> >
> > > >>>>>>>>> Cheers, Tim
> >
> > > >>>>>>>>> Sent from my iPhone
> >
> > > >>>>>>>>> On 26 Oct 2009, at 03:54, "Neil.Lv" <anim...@gmail.com>
> wrote:
> >
> > > >>>>>>>>>> in the /index.html
> > > >>>>>>>>>> ###  both of them are not work !
> > > >>>>>>>>>> <lift:loc locid="log.in">Log in</lift:loc>
> > > >>>>>>>>>> <lift:loc id="log.in">Log in</lift:loc>
> > > >>>>>>>>>> ###
> >
> > > >>>>>>>>>> Cheers,
> > > >>>>>>>>>> Neil
> >
> > > >>>>>>>>>> On Oct 25, 6:27 pm, Timothy Perrett <timo...@getintheloop.eu
> >
> > > >>>>>>>>>> wrote:
> > > >>>>>>>>>>> Neil,
> >
> > > >>>>>>>>>>> This is normal practice with java localisation - the best
> > > >>>>>>>>>>> thing is do
> > > >>>>>>>>>>> write all your strings then use native2ascii or similar
> > > >>>>>>>>>>> tooling to
> > > >>>>>>>>>>> convert it into the unicode representation.
> >
> > > >>>>>>>>>>> Glad you found my article helpful.
> >
> > > >>>>>>>>>>> Cheers, Tim
> >
> > > >>>>>>>>>>> On Oct 25, 5:02 am, "Neil.Lv" <anim...@gmail.com> wrote:
> >
> > > >>>>>>>>>>>>  if i use this code and it works correctly !
> >
> > > >>>>>>>>>>>> Code:
> > > >>>>>>>>>>>> ###
> > > >>>>>>>>>>>>   login = \u52a8\u4f5c
> > > >>>>>>>>>>>> ###
> >
> > > >>>>>>>>>>>> But it's so difficult to write code !
> >
> > > >>>>>>>>>>>> I don't know what happens with it .
> >
> > > >>>>>>>>>>>> Cheers,
> > > >>>>>>>>>>>> Neil
> >
> > > >>>>>>>>>>>> On Oct 25, 7:19 am, David Pollak
> > > >>>>>>>>>>>> <feeder.of.the.be...@gmail.com>
> > > >>>>>>>>>>>> wrote:
> >
> > > >>>>>>>>>>>>> Please make sure your lift-core_zh_CN.properties was
> saved
> > > >>>>>>>>>>>>> as UTF-8
> >
> > > >>>>>>>>>>>>> On Sat, Oct 24, 2009 at 11:31 AM, Neil.Lv
> > > >>>>>>>>>>>>> <anim...@gmail.com>
> > > >>>>>>>>>>>>> wrote:
> >
> > > >>>>>>>>>>>>>> Hi all,
> >
> > > >>>>>>>>>>>>>> I create a props file in the resources folder
>  /src/main/
> > > >>>>>>>>>>>>>> resources/
> > > >>>>>>>>>>>>>> i18n/lift-core_zh_CN.properties
> >
> > > >>>>>>>>>>>>>> And i changed the "log.in" text value.
> >
> > > >>>>>>>>>>>>>> Now i use this code in my index.html page, and it
> doesn't
> > > >>>>>>>>>>>>>> corretly.
> > > >>>>>>>>>>>>>> (garbled)
> >
> > > >>>>>>>>>>>>>> ### it doesn't work
> > > >>>>>>>>>>>>>>   <lift:loc locid="log.in">Log in</lift:loc>
> > > >>>>>>>>>>>>>> ###
> >
> > > >>>>>>>>>>>>>> This information from:
> >
> > > >>>>>>>>>>>>>>
> http://blog.getintheloop.eu/2009/7/26/how-to-extensive-localization-w
> > > >>>>>>>>>>>>>> ...
> >
> > > >>>>>>>>>>>>>> Cheers,
> > > >>>>>>>>>>>>>> Neil
> >
> > > >>>>>>>>>>>>> --
> > > >>>>>>>>>>>>> Lift, the simply functional web frameworkhttp://
> > > >>>>>>>>>>>>> liftweb.net
> > > >>>>>>>>>>>>> Beginning Scalahttp://
> www.apress.com/book/view/1430219890
> > > >>>>>>>>>>>>> Follow me:http://twitter.com/dpp
> > > >>>>>>>>>>>>> Surf the harmonics
> >
>

--~--~---------~--~----~------------~-------~--~----~
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