<br><br><div><span class="gmail_quote">On 10/26/07, <b class="gmail_sendername">Ed Trager</b> <<a href="mailto:ed.trager@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">ed.trager@gmail.com
</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi, everyone,<br><br>In response to Xavier Alvarez' request on 10/25 for translators and<br>coordinators, I decided to get off the sidelines and take a look at<br>OLPC's new Pootle-based L10N infrastructure.<br><br>
Here are a few things I noticed which I think will be of general<br>interest and concern:<br><br>(0) CASING/NAMING OF PO FILES PROBLEM:<br><br> (Upper/Lower) Casing of names of po files is inconsistent: For<br>example, in Core there is
<br> "journal-activity.Journal.po" with upper case "J" for the 2nd<br>occurrence of "Journal" but<br> then why isn't "write.write.po" written "write.Write.po"?
<br><br> This is a small point, but consistent and inuitive naming of<br>these PO files will help<br> everyone. Or am I just failing to understand or intuit what the<br>pattern is supposed to be<br> here?</blockquote>
<div><br>Yes this is a matter of standardisation that had to be discussed, our independent pootle platform is still to young. <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
(1) INCONSISTENT NUMBER OF MSGIDs ACROSS DIFFERENT LANGUAGES:<br><br> The other day when I looked at write.write.po for French, there<br>were only 10<br> messages in the catalog. Today, I see that there are 36
<br>messages which looks a<br> lot closer to what I myself get from "xgettext toolbar.py" on<br>the latest code.<br> However, when I<br> checked write.write.po for Thai today, I see that it still has
<br>only 10 messages.<br><br> Solution (Or at least A Question Posing As A Possible Solution):<br><br> Does everyone agree that there needs to be a way that all of<br>the ".po" files for<br> all languages get updated with the latest messages extracted
<br>via "xgettext"<br> from the latest codebase (toolbar.py, etc.)?</blockquote><div><br>What you are saying is the ideal, we need an automatic way of doing the .POT update each time a new release of each activity is done, and also provide a method to update each AVAILABLE .PO in consequence to the .POT update.
<br><br>Can this be done with the actual method of making activity bundles? <br></div><br><div><br> </div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
What appears to be happening right now is perhaps that someone<br>decided to work on<br> the French so maybe they ran "xgettext" against Write
<br>Activity's latest "toolbar.py" and<br> so for French we've now got 36 messages (not all translated --<br>in fact, Pootle says there<br> are only 9 out of 58 translated and I have no clue where that
<br>"58" is coming from<br> because I only find 30 or so when I run "xgettext toolbar.py"<br>myself). BUT, as nobody<br> has yet worked on Thai, there are only 10 messages present for Thai.
<br><br> I suspect that it is overly optimistic to believe that the best and<br> most willing translators out in the community will always<br>double-check by<br> running "xgettext" themselves against the latest code to make
<br>sure that messages<br> are not missing. So computer-assisted updating of the PO files<br>to contain the<br> very latest set of msgids sounds like a necessary step.</blockquote><div><br>Agree, ok ill let others answer your other concerns..
<br><br>thx. <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">(3) SOFTWARE I18N/L10N REVIEW PROCESS:
<br><br> While beginning to translate write.write.po for Thai earlier<br>today, I got to this set of<br> msgids:<br><br> #: toolbar.py:543<br> msgid "Lower Case List"<br><br> #:
toolbar.py:544<br> msgid "Upper Case List"<br><br> These are two msgids from a dropdown list which also includes<br>"Numbered List" and<br> "Bulleted List". The first item thus refers to a list
<br>enumerated with lower case<br> Latin letters:<br><br> a. Item One<br> b. Item Two<br> c. Item Three<br><br> ... while the second obviously refers to enumerating a list<br>
with A, B, C, etc.
<br><br> Do we all recognize what the problem is here? OK, I'm waiting<br>for your answers :-).<br> Yes, it also took me half a second to recognize the problem too!<br><br> Using Thailand as an example, it is true that Thais will
<br>sometimes enumerate lists<br> using Latin upper or lower case letters. But the norm in a<br>Thai document (when one's<br> keyboard in any case is already set to Thai) is to enumerate<br>lists using Thai letters,
<br> ก, ข, ค, . . . etc.<br><br> And of course in the Arabic speaking world it is common to<br>enumerate lists using<br> ت, ب, ا , (aleph, be, te, etc. ... )<br><br> And when not enumerating by letters, it is even more common to
<br>enumerate by digits,<br> which of course must include native Thai, native Arabic, and a<br>host of other native<br> numbering systems for other languages and scripts.<br><br> So, in addition to :<br>
<br> msgid "Numbered List"<br> msgid "Lower Case List"<br> msgid "Upper Case List"<br><br> ... we really need to add:<br><br> msgid "Arabic Numbered List"
<br> ...<br> msgid "Devanagari Numbered List"<br> ...<br> msgid "Thai Numbered List"<br> ... etc ...<br><br> If memory serves me, I believe there may be on the order of 17
<br>or so different native digit sets currently in Unicode.<br><br> And of course, there need to be msgids for enumerating lists<br>using different,<br> alphabets:<br><br> msgid "Arabic List"
<br> msgid "Devanagari List"<br> msgid "Thai List"<br><br> Of course we cannot have a drop-down list with hundreds of<br>different list styles. That would be completely innappropriate for
<br>school children.<br><br> So my initial thought is that the Python code for the Write<br>application (and any application that requires a drop-down list with<br>different list styles -- i.e., probably break the whole thing out into
<br>a separate reusable class) should include all of the different list<br>styles (getting those needed for the "green countries" would be an<br>excellent place to start).<br><br>Such a Python class should, by default at least, dynamically display
<br>only those lists appropriate for the current locale. These should be<br>displayed in the dropdown first -- that is, in an Arabic script<br>locale, we want to put "Arabic Numeric List" and "Arabic Alphabetical
<br>List" ahead of "Numbered List" (using Arabic-Indic "Western" digits),<br>"Lower Case List",<br>and "Upper Case List" (the latter two being Latin letters).<br><br>Just my 2 cents ...
<br><br>Best - Ed<br><br>On 10/25/07, Xavier Alvarez <<a href="mailto:xavi.alvarez@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">xavi.alvarez@gmail.com</a>> wrote:<br>> Hi!<br>
><br>> We seem to be getting the L10n effort under way (in a new server),
<br>> and the subject pretty much sums up the situation:<br>><br>> We need<br>> - translators (obviously),<br>> - coordinators (that can actually manage each language) and<br>> - volunteers (the universal glue?)
<br>><br>> All languages are welcome, but it should be noted that there's a<br>> need for those languages used in the 'green countries', which<br>> are: Amharic, Arabic, English, Spanish, French, Hausa, Hindi,
<br>> Igbo, Nepali, Portuguese, Romanian, Russian, Kinyarwanda, Thai,<br>> Urdu, & Yoruba.<br>><br>> I've updated the [[Localization]] page, noting that the previous<br>> workflow for submitting translations using tickets is being
<br>> dropped (translations are going to be primarily on-line), making<br>> reference to the [[Pootle]] page (that still needs some<br>> club^H^H^H^H polishing) about its use. For future administrators<br>> the [[Pootle/Administration]] could be of interest.
<br>><br>><br>> One of the nice features of Pootle is the ability to have<br>> glossaries that are used to propose translated terms dynamically<br>> in the web-gui (thus helping keep a homogeneous terminology). So
<br>> I made rude first approach in [[Pootle/Glossary]] that could also<br>> do with some reviewing...<br>><br>> If you are interested in participating, at the bottom of the<br>> [[Pootle]] page there's a table for signing up.
<br>> Note: From previous mails, I took the liberty of signing up Khaled<br>> Hosny [ar], Simos Xenitellis [el] and Maxim Osipov [ru].<br>><br>> Questions, suggestions, ideas, etc. are all welcome!<br>><br>
><br>> Cheers,<br>> Xavier<br>><br>> [[Localization]] <a href="http://wiki.laptop.org/go/Localization" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://wiki.laptop.org/go/Localization
</a><br>> [[Pootle]] <a href="http://wiki.laptop.org/go/Pootle" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://wiki.laptop.org/go/Pootle</a><br>> [[Pootle/Administration]]<br>> <a href="http://wiki.laptop.org/go/Pootle/Admininstration" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://wiki.laptop.org/go/Pootle/Admininstration
</a><br>> [[Pootle/Glossary]] <a href="http://wiki.laptop.org/go/Pootle/Glossary" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://wiki.laptop.org/go/Pootle/Glossary</a><br>><br>> --<br>> XA<br>> =========<br>> Don't Panic! The Answer is 42<br>> _______________________________________________<br>> Localization mailing list
<br>> <a href="mailto:Localization@lists.laptop.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Localization@lists.laptop.org</a><br>> <a href="http://lists.laptop.org/listinfo/localization" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://lists.laptop.org/listinfo/localization</a><br>><br></blockquote>
</div><br><br clear="all"><br>-- <br>Rafael Enrique Ortiz Guerrero <br>One Laptop Per Child<br><a href="mailto:rafael@laptop.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">rafael@laptop.org</a>