Raju has mentioned it before about how to do this.
as far as i understand, i think he says that generate swf's for each
stylesheet and then use the related swf depend on the language selection, is
it right ?
If it is, isnT this so laborious, bec. in this case i need to change the
stylesheet src in each lzx on my application.
Thanks
Cem

2010/2/16 cem sonmez <[email protected]>

> Today, I have looked at the css page of developer doc [1] and decided to
> use the css style:) Bec. it looks more lucid than using dataset.
>
> my css' are :
> *turkish.css*
> ---------------------
> [text_id="1"] {
>     string: "giriş";
> }
> [text_id="2"] {
>     string: "kaydol";
> }
> [text_id="3"] {
>     string: "gönder";
> }
> *english.css*
> ---------------------
> [text_id="1"] {
>     string: "login";
> }
> [text_id="2"] {
>     string: "register";
> }
> [text_id="3"] {
>     string: "submit";
> }
>
> and i use one of it in my class like
>
> <canvas debug="true">
>     <stylesheet src="turkish.css"/>
>     <simplelayout />
>     <button>change css
>         <handler name="onclick">
>            * <!--how to change the stylesheet here during runtime-->*
>         </handler>
>     </button>
>     <button text="$style{'string'}">
>         <attribute name="text_id" value="3"/>
>     </button>
> </canvas>
>
> as i commented in the canvas code, is it possible to change the stylesheet
> src during runtime?
> Thanks in advance
>
> [1] - http://www.openlaszlo.org/lps4.7/docs/developers/css.html
>
>
> Cem
>
> 2010/2/16 P T Withington <[email protected]>
>
>> I never get datasets myself.  Just to verify that the CSS way works, I did
>> test the following:
>>
>> <canvas layout="axis: y; spacing: 5">
>>   <stylesheet>
>>     i18nbutton[name='submit'] { text: "gönder"; }
>>     i18nbutton[name="reset"] { text: "reset"; }
>>   </stylesheet>
>>
>>   <class name="i18nbutton" extends="button">
>>      <attribute name="text" style="text" />
>>   </class>
>>
>>    <i18nbutton name="submit" />
>>   <i18nbutton name="reset" />
>>
>> </canvas>
>>
>> and it works for me.
>>
>> On 2010-02-15, at 19:01, cem sonmez wrote:
>>
>> > i am sorry, maybe this thread has become so long bec. of me but donT
>> > understand why this happens
>> >
>> > <canvas>
>> >    <dataset name="localized">
>> >        <string name="submit" value="gönder"/>
>> >        <string name="reset" value="reset"/>
>> >    </dataset>
>> >
>> >    <button text="$path{'localized:/stri...@name=\'submit\']/@value'}" />
>> >
>> > </canvas>
>> >
>> > I am just trying this code and see nothing.
>> >
>> > Cem
>> >
>> > 2010/2/16 P T Withington <[email protected]>
>> >
>> >> The value of the expression in the $path{} statement needs to be a
>> string,
>> >> so I think you would need to say:
>> >>
>> >> <button text="$path{'localized:/stri...@name=\'submit\']/@value'}"
>> >>
>> >> but I have not tested this.
>> >>
>> >> On 2010-02-15, at 18:38, cem sonmez wrote:
>> >>
>> >>> jamesr, I have used your same notation, but i m getting error
>> >>> *Syntax error: the token ":" was not expected at this position.*
>> >>> I have made lots of changes at the $path expression. Still nothing
>> >> happens
>> >>> Another error that  i m getting
>> >>> *Lexical error. The source location is for the element that contains
>> the
>> >>> erroneous script. The error may come from an unterminated comment.*
>> >>> Do you have an idea why this happens? Did you used this code snippet
>> >> before
>> >>> you post it?
>> >>> And also does anyone have an idea about this issue?
>> >>>
>> >>> Regards
>> >>> Cem
>> >>>
>> >>> 2010/2/15 cem sonmez <[email protected]>
>> >>>>
>> >>>> Yes i have seen $path before, but i have never used it for any
>> >> constraint.
>> >>> $path usage has been explained well at [1].
>> >>>> I will take a look at it again and try this form.
>> >>>> Thanks a lot
>> >>>> Cem
>> >>>>
>> >>>> [1] -
>> >>>
>> >>
>> http://www.openlaszlo.org/lps4.7/docs/developers/databinding.html#d0e96468
>> >>>>
>> >>>>> 2010/2/15 jamesr <[email protected]>
>> >>>>>>
>> >>>>>> Sure! as PT mentioned, there may be overhead for using the $path
>> >> method
>> >>> i'll direct you toward, for very large applications. There are a few
>> >>> manager/registry based ways around this overhead, no problem, but the
>> >>> conversation is out of scope to your direct question to get into -- in
>> >> this
>> >>> email.
>> >>>>>>
>> >>>>>> Have you ever used the $path{} form of constraints? they take a
>> >>> dataset:datapath pair and bind to a specific location in a dataset,
>> which
>> >>> will update when the dataset changes. From your code snippets i'm
>> >> guessing
>> >>> you haven't seen them.
>> >>>>>>
>> >>>>>> if you have a dataset thus,
>> >>>>>>
>> >>>>>> <dataset name="localized">
>> >>>>>> <string name="submit" value="(submit in another language)"/>
>> >>>>>> <string name="resest" value="(reset in another language)"/>
>> >>>>>> </dataset>
>> >>>>>>
>> >>>>>> then you can set up a path constraint by saying,
>> >>>>>>
>> >>>>>> <button text="$path{localized:/stri...@name='submit']/@value}"
>> >>>>>>
>> >>>>>> and this will *find* the string node with name "submit" (be sure to
>> >> have
>> >>> unique names or you'll get mulitple nodes back and the expression will
>> be
>> >>> invalid) and use its value attribute as the text for the button.
>> >>>>>>
>> >>>>>> more info is in the laszlo docs... i don't have a link to it handy,
>> >>> sorry
>> >>>>>>
>> >>>>>> -j
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> cem sonmez wrote:
>> >>>>>>>
>> >>>>>>> Thanks all for your replies.
>> >>>>>>> But i just can say that i am inexperienced about css. So all along
>> i
>> >>> have thought to use dataset. The problem is to change the texts
>> >> dynamically
>> >>> when i set the datapath's src attribute during runtime.
>> >>>>>>> But as you said ptw, itS more about skinning, css is more
>> convenient
>> >> to
>> >>> use. I will look at it as well.
>> >>>>>>> For the dataset usage. It may looks like :
>> >>>>>>>
>> >>>>>>> <dataset name="dset" src="words.xml" />
>> >>>>>>>  <datapointer id="dpointer" xpath="dset:/language">
>> >>>>>>>      <method name="getMessage" args="textId">
>> >>>>>>>          this.setAttribute('xpath', 'dset:/language');
>> >>>>>>>          this.selectChild();
>> >>>>>>>          do {
>> >>>>>>>              if (this.xpathQuery('@id') == textId) {
>> >>>>>>>                  var message = this.xpathQuery('value/text()');
>> >>>>>>>                  if ($debug)
>> >>>>>>>                      Debug.write("datapointer : " + message);
>> >>>>>>>                  return message;
>> >>>>>>>              }
>> >>>>>>>          } while (this.selectNext());
>> >>>>>>>      </method>
>> >>>>>>>  </datapointer>
>> >>>>>>>
>> >>>>>>> and i also can use it
>> >>>>>>> <button name="button1" text="${dpointer.getMessage(1)}" />
>> >>>>>>>
>> >>>>>>> I havenT just tried, but the problem is going to occur when i want
>> to
>> >>> change the dataset src at runtime. jamesr, the way that u mentioned
>> likes
>> >>> mine. Can you instruct a bit more please.
>> >>>>>>>
>> >>>>>>> thanks all again .
>> >>>>>>> Kind regards
>> >>>>>>> Cem
>> >>>>>>>
>> >>>>>>> 2010/2/15 P T Withington <[email protected] <mailto:[email protected]>>
>> >>>>>>>
>> >>>>>>>  Using a dataset is an equally valid approach, but I think it was
>> >>>>>>>  tried and found to require too much overhead.  Of course, if CSS
>> >>>>>>>  is made dynamic, perhaps it will have equivalent overhead.
>> >>>>>>>
>> >>>>>>>  Perhaps the reason some people think of CSS first is because it
>> >>>>>>>  seems i18n is like "skinning" or styling your app.
>> >>>>>>>
>> >>>>>>>  On 2010-02-15, at 12:09, jamesr wrote:
>> >>>>>>>
>> >>>>>>>> Would it not be more expedient to write a class, called perhaps
>> >>>>>>>  localtext, that takes a single field to index inside of a dataset
>> >>>>>>>  wherein a given real-world language sentence is kept, so that by
>> >>>>>>>  changing datasets you change all displayed localized text?
>> >>>>>>>>
>> >>>>>>>> Why use CSS?
>> >>>>>>>>
>> >>>>>>>> P T Withington wrote:
>> >>>>>>>>> There are two improvements targeted for 5.0 that will help this
>> >>>>>>>  situation:
>> >>>>>>>>>
>> >>>>>>>>> LPP-8556 Add default CSS style properties to <view>
>> >>>>>>>>> LPP-7359 Make CSS attribute selectors dynamic
>> >>>>>>>>>
>> >>>>>>>>> There should also be one to make it so you can load a
>> >>>>>>>  stylesheet at runtime, but I can't seem to find that.  Maybe Max
>> >>>>>>>  and I only talked about it...
>> >>>>>>>>>
>> >>>>>>>>> With all three of those, it should be possible to have a single
>> >>>>>>>  app that will be localized when it is loaded.  For now, you are
>> >>>>>>>  correct, you need to compile your app for each language.
>> >>>>>>>>>
>> >>>>>>>>> ---
>> >>>>>>>>>
>> >>>>>>>>> With LPP-7184 Binary libraries don't work in swf9 resolved (and
>> >>>>>>>  integrated to 4.7), we believe that LZO's are now fully supported
>> >>>>>>>  in swf9 for 4.7.1 (soon to be released) and 5.0.x (in
>> >>>>>>>  development).  We'd welcome testing by anyone who needs this
>> >>>>>>>  feature.  Grab the latest 4.7.1 here:
>> >>>>>>>>>
>> >>>>>>>>> http://download.openlaszlo.org/nightly/4.7/
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> On 2010-02-15, at 11:39, Raju Bitter wrote:
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>> All the internationalization based on CSS for Webtop (at least
>> >>>>>>>  with
>> >>>>>>>>>> the version I've used) requires you to recompile the app for a
>> >>>>>>>>>> different language. That's not too much of a problem, just
>> >>>>>>>  generate
>> >>>>>>>>>> different versions of the app for different languages.
>> >>>>>>>>>>
>> >>>>>>>>>> It would be good to have dynamic CSS support at runtime, but a
>> >>>>>>>>>> workaround could be to put all the strings into an LZO, with
>> >>>>>>>  different
>> >>>>>>>>>> LZOs for different languages. That should work, shouldn't it?
>> Of
>> >>>>>>>>>> course you are limited to SWF8 and DHTML then, since there's
>> >>>>>>>  still no
>> >>>>>>>>>> support for LZOs with AS3 based runtimes, as far as I know.
>> >>>>>>>>>>
>> >>>>>>>>>> 2010/2/15 P T Withington <[email protected] <mailto:[email protected]
>> >>:
>> >>>>>>>>>>
>> >>>>>>>>>>> I believe some use CSS styles to achieve
>> >>>>>>>  internationalization, although currently LZX does not support
>> >>>>>>>  dynamically changing styles, so I'm not sure exactly how this is
>> >>>>>>>  handled.  Currently, styles need to be pre-processed by the
>> >>>>>>>  compiler.  Ideally, you would have your application server
>> looking
>> >>>>>>>  at the browser request language preference and serve up different
>> >>>>>>>  style sheets based on that.  It may be that people are using a
>> >>>>>>>  .jsp to do this kind of dispatching.
>> >>>>>>>>>>>
>> >>>>>>>>>>> In theory, you would write something like:
>> >>>>>>>>>>>
>> >>>>>>>>>>> <!-- supply style sheet based on browser language -->
>> >>>>>>>>>>> <stylesheet>
>> >>>>>>>>>>> i18ntext [label="hi"] { text: "hello" }
>> >>>>>>>>>>> </stylesheet>
>> >>>>>>>>>>>
>> >>>>>>>>>>> <class name="i18ntext" extends="text">
>> >>>>>>>>>>> <attribute name="label" type="string" />
>> >>>>>>>>>>> <attribute name="text" style="text" />
>> >>>>>>>>>>> </class>
>> >>>>>>>>>>>
>> >>>>>>>>>>> <i18ntext label="hi" />
>> >>>>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> [...]
>> >>>>>>>>>
>> >>>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> --
>> >>>>>>> Cem SONMEZ
>> >>>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> --
>> >>>>> Cem SONMEZ
>> >>>>
>> >>>>
>> >>>>
>> >>>> --
>> >>>> Cem SONMEZ
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> Cem SONMEZ
>> >>
>> >>
>> >
>> >
>> > --
>> > Cem SONMEZ
>>
>>
>
>
> --
> Cem SONMEZ
>



-- 
Cem SONMEZ

Reply via email to