looks great, thanks a lot ptw. css style looks more neat. definetly i am going to try this form as well.
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
