Thumbs up! "Make qooxdoo great again" ;)

P.S. Could you please elaborate a bit on what projects you are using
qooxdoo in? Ours is a communication application (think web-based Pidgin
embeddable into virtually any website).

> Dimitri,
> 
> I think it is a good idea.
> We have developed language support for different "direction"
> languages...not only LTR instead including RTL, TB, BT, MTR etc. It
> also includes different calendars etc...
> It might be something we could include in that package and then make
> a pull request on both.
> 
> Stefan
> 
> 
> > 
> > In qooxdoo's translation mechanism, multiple plural forms are not
> > supported. The corresponding issue has been reported almost 10
> > years
> > ago. Time to revise it?
> > 
> > This is essential for many languages, eg. of Baltic and Slavic
> > families. Contrary to English, these languages may have, say, one
> > plural form to denote 2, 3,4 items and another for >=5 items. For
> > example, let's take the word "korova" ("cow" in Russian and
> > Ukrainian):
> > 
> > 1 korova [singluar]
> > 2,3,4 korovy [plural 1]
> > 5-20 korov [plural 2]
> > 21,31,41... korova [plural equals to singular]
> > 22,23,24 korovy
> > 25-30 korov etc.
> > 
> > The original GNU gettext (which qooxdoo's translation facility is
> > modeled after) provides such a mechanism. There is a special
> > "Plural-
> > Forms" PO file header that contains:
> > - total number of plural forms;
> > - a formula to factorize ordinals into classes of plurals. msgstr
> > lookup is then done based on the plural class (the result of
> > evaluation
> > of the formula), rather than on the ordinal itself.
> > 
> > For Russian, Ukrainian, Belarusian, Serbian and Croatian, the
> > formula
> > looks like this:
> > 
> > Plural-Forms: nplurals=3;plural=n%10==1 && n%100!=11 ? 0 : n%10>=2
> > &&
> > n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
> > 
> > With the above, the translation itself would look like this
> > (transliterated for better perception):
> > 
> > msgid "cow"
> > msgid_plural "cows"
> > msgstr[0] "korova"
> > msgstr[1] "korovy"
> > msgstr[2] "korov"
> > 
> > Per specification, the formula should be a valid C language
> > expression,
> > limited to one variable (n).
> > 
> > It would be nice to have it implemented in qooxdoo. However, that
> > would
> > require changes in both framework and toolchain. At the moment,
> > internal translations structure looks like that:
> > 
> > translations: {
> >  ...
> >  "ru": {
> >   "cow": "korova",
> >   "cows": "korovy"
> >  }
> > }
> > 
> > This could be changed to:
> > 
> > translations: {
> >  ...
> >  "ru": {
> >   "cow": "korova",
> >   "cows": [ "korova", "korovy", "korov" ]
> >  }
> > }
> > 
> > and locales structure could contain a function to compute plural
> > form
> > from ordinal, created from a Plural-Forms PO header by the
> > compiler. A
> > valid C expression will be a valid JavaScript expression, too, and
> > we
> > can benefit from this. I've examined several gettext
> > implementations
> > for JavaScript; those that do support Plural-Forms simply evaluate
> > this
> > expression unchanged as JavaScript. For security purposes, we could
> > validate the expression first, to make sure it is restricted to
> > arithmetic, logical and ternary operators.
> > 
> > I think that we could start with implementing minimal, non-breaking
> > changes in framework, namely internal structure for translations,
> > plural classifier in locales, translation logic in tr*() functions.
> > Meanwhile, we could experiment with John Spackman's QxCompiler to
> > introduce Plural-Form parsing##SELECTION_END##. As soon as POC is
> > ready, it can be ported to generate.py or Grunt based toolchain,
> > whichever becomes mainstream at that moment.
> > 
> > John, guys, what do you think?
> > 
> > Dimitri
> 
> > 
> > -----------------------------------------------------------------
> > -------------
> > Site24x7 APM Insight: Get Deep Visibility into Application
> > Performance
> > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> > Monitor end-to-end web transactions and take corrective actions now
> > Troubleshoot faster and improve end-user experience. Signup Now!
> > http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
> 
> > 
> > _______________________________________________
> > qooxdoo-devel mailing list
> > qooxdoo-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel
> 
> 
> -------------------------------------------------------------------
> -----------
> Site24x7 APM Insight: Get Deep Visibility into Application
> Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
> _______________________________________________
> qooxdoo-devel mailing list
> qooxdoo-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to