16th February, 2009

  • Pootle migration: We are moving the OLPC/Sugarlabs Pootle instance to a newer dedicated server, which should speed it up considerably. This has also given me some opportunity to fine-tune and polish our l10n workflow – things should be a bit more easier and smoother (and faster) for translators. I also managed to gather some interesting data from the log and user registration files. It turns out that we have more than 1000 translators registered with the system, among whom about half have actively contributed translations in the past one year. I’m not sure what the user statistics for other Pootle installations are like, but it seems that we are one of the larger users of Pootle out there.
  • Read hacking: I have been also spending some time hacking on Read. While Mr Super Awesome Tomeu has been pushing our Evince patches upstream, I have been working on a few interesting features for Read (we have moved to Gitorious, which is so cool):
    • Support for books from the Universal Library: Many of the scanned childrens’ book from the Universal Library Project are too graphics heavy for the XO hardware to be handled in PDF form. However, it looks like the project also stores the book as zip files with each scanned page archived inside the zip file as individual jpegs – which in other words, is very similar to the comic book archive format which Evince (Read’s backend) supports quite nicely. More importantly, this format seems to have lesser performance issues on the XO hardware (compared to graphics heavy PDF files). So I have been making sure that Read also handles this format gracefully.
      Book from the Universal Library in Read
    • Bookmarks support:This has been one of the oft requested features for Read, apart from annotations. The original design specs for Read already provided me with ideas on how the UI should look like, so with some amount of coding, I have bookmark support which mostly works :-) . I am also trying to do the implementation in such a way so that it would be easy to add support for sharing of bookmarks later on in the future. If anyone is interested in doing a project, contact me (hint.. hint ;-) )
      Bookmarks in Read

    Code for the above lives in the sayamindu-sandbox branch of Read’s Git repository. I plan to take a stab at annotations during the next few weeks – I have some ideas which, with some luck, may work. I also have some plans about a saner full-screen/ebook mode for Read – let’s see if I get the time to implement those as well.

  • This came up in one of the mailing lists a few days back. Serves as a reminder as to why the work we all do is so relevant and so important.

l10n: More than one language

Falling back to English when translation of a particular string is not found is not always the best solution. As a practical example, our Aymara users would prefer that the fallback language be Spanish, and only if the Spanish translation is not found, English should be shown.

I was wondering how to implement this for Sugar and its activities, and I realized that something like this is already implemented in Python’s gettext implementation. So after some changes to Sugar, I had the following:

In the screenshot, the Restart Game pop-up is not translated into Aymara, and so it shows up in Spanish as Reiniciar Juego, while the rest of the strings are in Aymara.

Of course, there is a lot more to be done – the Sugar control panel language selector needs to be changed to allow selection and ordering of multiple languages, and currently this works for activities, core Sugar needs to support this feature as well.

Quote of the week

From this week’s community news:

Among them was the mayor of South Beirut, with whom I spoke. ‘The American government sends bombs to kill the innocent,’ he said, ‘and the American people send us computers for our children. We are very grateful to OLPC. This means opening up the world to our children.’



Also, in related news, Sugar is being translated into Aymara. If you can help in this effort, or for that matter, any of the translation efforts, you are more than welcome to jump in ;-) .

“Local Language Efforts” by the various government agencies

The government has recently shown a lot of interest about Free/Open Software, especially in the area of localization for Indian/Indic languages. However, this well meaning interest has resulted in some totally clueless individuals and agencies being delegated to work on these issues, resulting in a major mess. The prime example of this would be BOSS Linux, which has not bothered to work with the community in any way (at least for the translations), and a result, it looks like a large amount of work (paid for from the tax payer’s money) is going to be wasted. Gora has started a thread on the gnome-i18n mailing list on this, and we can see no easy way to reutilize the work done. Interestingly, as per the comments in Sankarshan-da’s blog post on this matter, the government agency responsible for this had actually contacted some people in the community (via a 3rd party), offering to pay around USD 0.07 per string translated. The condition was that the work needed to be secret and exclusive for BOSS. That’s interesting for an “Open Source” project, funded by the government.

Closer home, there’s this “Baishakhi Linux” distribution, which makes quite dubious claims such as “All Bangla compound words can be viewed and written in Baishakhi Linux, and this special feature distinguishes it from the other localized Linux distributions.“. After making this statement, they go on to show a list of “compound words” (conjuncts, or yuktakshars), of which, I believe only _one_ is not writeable in stock OpenOffice.org/GNOME, and the fix for that is a one liner (bug, with patch).
I downloaded the ISO image from their website (I didn’t see any link to any source code), and started it up in a VM. It looks like they took the existing upstream translations, made minor modifications to them (which includes adding the English msgid in parenthesis at the end of each msgstr). They took care, however, to replace each translator_credit translation with their own name. I ran msgunfmt on the Evolution mo file, and though the translator_credit had been changed, the header read:

“Last-Translator: Promathesh Mandal <promatesh@mat3impex.com>\n”
“Language-Team: Bengali <gnome-translation@bengalinux.org>\n”

In case you are wondering, gnome-translation@bengalinux.org is the email address of the upstream GNOME translation community for Bengali.
This kind of approach makes me pretty pissed off. In the past, we have included all the names possible in the translator_credit translation, IMHO that is the least the Baishakhi Linux people could have done.

It’s a sad state of affairs – it really is.

Free software translations for people who do not know English

Whenever we work on a PO file, we usually translate from English to the translate language. However, recently at OLPC, we had some Aymara translators who did not know English, but were quite comfortable with Spanish. We had been receiving such requests for supporting the display of an intermediate language in our translation system for quite some time now, and it was also a prominent feature request for Pootle, the web based translation software that we use. I was feeling a bit bored with my usual work, and decided to see if I could do something.


The straight forward way of implementing the feature would be to add yet another user preference which would store the list of languages in which the user would want to see the translations, but that seemed to involve significant amount of coding, and I was too lazy to do that. After thinking for sometime, I decided to take a short cut which should help us quite nicely now. Pootle can optionally show it’s interface in a non-English language, and I thought I would take advantage of that. Within around an hour (which included figuring out some of the Pootle code and understanding jToolkit), I had a patch which produced this:
Pootle with an intermediate language
So, if you select your UI language as Spanish, along with the original msgid, you will also get the corresponding Spanish translation when you are translating a message. I think this should do for now – though the “proper way” is probably the right thing to implement at some point.

23rd December, 2007

  • Exams
    End semester exams are over. Only one more semester to go before I graduate. Yay!!

  • Hyderabad
    I’ll spending Christmas in Hyderabad – and will be probably there fpr most of the week as well. I will be online though (hopefully), except when I’m travelling (it looks like I’ll be coming back by train – a 30 hour journey).

  • New Camera
    I finally decided to replace my aging Canon A95, and thought that I would move to a DSLR. Kushal had got a Nikon D80 a few months back, and after playing around with his camera for sometime, I decided to go for the same. I also bought a 50mm prime lense to go with it. ..and I’m having fun with it :-)
     

      


     

  • OLPC Translations
    I must admit that the rapid progress of the OLPC translations has somewhat surprised me. The project is barely over a month old, and we have a very active and enthusiastic community growing up very quickly. I think that the decision to use Pootle has worked out very well for us, inspite of the initial pains, primarily due to

    • Low barrier of entry for translators
      You need not worry about VCS access, or having to understand PO files – you simply create an account, and start to translate the strings.
      This of course, requires that the language coordinator has to be extra careful before pressing the “commit” button, and check that all the translations actually make sense before they go into the master git repository at dev.laptop.org. But in some ways, this is also applicable to translations being done via other methods as well, and Pootle has a system where the language coordinator can actually approve each translated string before it is integrated into the PO file.
    • Support for offline translations
      This is very important, because it is wrong to assume that volunteer translators have good quality internet access all the time. Pootle allows you to download PO files, and upload them (with options for either merging the translations, or overwriting them) when you are done.

    In the end however, all of this boils down to having an active l10n community, and I would really like to thank each and everyone of the translation community for pushing things so far. You all rock :-) .

  • A report on XO deployment at Peru

    Parents in Arahuay are asking Mendoza, the visiting psychologist, what the Internet can do for them.
    Among them is Charito Arrendondo, 39, who sheds brief tears of joy when a reporter asks what the laptop belonging to ruddy-cheeked Miluska — the youngest of her six children — has meant to her. Miluska’s father, it turns out, abandoned the family when she was 1.
    “We never imagined having a computer,” said Arrendondo, a cook.

    The entire article makes for a fascinating read – it is available online here.

OLPC: Call for translators

The Pootle server running at dev.laptop.org is now up and running. If you are interested in helping translate the software going to be bundled with the laptops, please do jump in :-) . More information is available in the mailing list post that I made.
If you have any questions – you can take a look at the FAQ and if you still have questions, feel free to join us on #olpc-pootle on Freenode, or ask on the mailing list.
Helping setup Pootle was an interesting project for us, since this is probably the first time a Pootle deployment is talking to a GIT repository, and adding support for GIT to Pootle (and adapting it for use in our scenario) was a bit of a battle. The results of the initial “beta tests” seem to be pretty satisfactory, and the next few days will hopefully tell us how well the entire system is working.