One more application fully localized, one started!

Still actually working on that new project of mine, we (Pockey and I) finished Gcompris localization in Chinese last Saturday. Ok, most of the work was done with 98% completed, which shows a huge increase from 6 months ago actually where less than half was translated into Chinese. Gcompris is an educational software suite which proposes different activities to children from 2 to 10 years old. Gcompris po files are available from the Gnome website where you can find a few other languages that need completion. Coordinating the Gnome Chinese translation effort it is worth mentioning that you can find BLUG member and occasional presenter Funda Wang (Yeah BLUG again).

This being said we have also started localizing Hex-a-hop, a puzzle game with 100 levels. The internationalization process was completed last year in July by Jens Seidel, who has developed the patches for making it work with SDLPango and to support all the spectrum of Unicode characters. With debian packages, the process of getting the po file is a big more “complicated”. In fact there are two ways, one given to me by Miriam Ruiz (Hex-a-hop maintainer at debian) and one by Anthony Fok (BLUG member among so many other things, and great Linux contributor). So here we go (for those who would like to actually translate other debian projects):

miriam@miriam:~/tmp$ apt-get source hex-a-hop
Reading package lists... Done
Building dependency tree
Reading state information... Done
Need to get 1020kB of source archives.
Get:1 sid/main hex-a-hop 0.0.20070315-6 (dsc) [1004B]
Get:2 sid/main hex-a-hop 0.0.20070315-6 (tar) [892kB]
Get:3 sid/main hex-a-hop 0.0.20070315-6 (diff) [127kB]
Fetched 1020kB in 1s (577kB/s)
dpkg-source: extracting hex-a-hop in hex-a-hop-0.0.20070315
dpkg-source: info: unpacking hex-a-hop_0.0.20070315.orig.tar.gz
dpkg-source: info: applying hex-a-hop_0.0.20070315-6.diff.gz
miriam@miriam:~/tmp$ find . -name "*.po"
miriam@miriam:~/tmp$ find . -name "*.pot"

Then you just need to open the .pot file with poedit. Second method is to convert the .mo file which you can get from the binary deb file back into a .po file typing:

dpkg-deb -x hex-a-hop_0.0.20070315-6_i386.deb testdir
cd testdir/usr/share/locale/de/LC_MESSAGES
msgunfmt > hex-a-hop.po

Now there is a good explanation here on the translation process used in FOSS for those of you wanting to understand more. Should you want to join us and help, please don’t hesitate to contact me. If you want to translate other applications that you feel should be in your language but are having problems with it, I won’t mind helping out neither.

Localizing HTML documents

Continuing my search into internationalizing and localizing the 48 lessons for RUR-PLE and asking all around I have raised a few very meaningful feedbacks from my community: it’s a lot of work to recode HTML pages and insert language tags, it also makes authoring a lot more complicated and not for everyone. Imagine a teacher wanting to add lesson No.49, he’ll have to understand the technique behind it and thus learning a bit of HTML is probably a lot easier. So what you gain from simplifying the work for translators is lost in hindering authoring.

Well actually NO! A big THANK YOU to Elly for pointing out this great Java application to me: OmegaT. OmegaT let you open XHTML, HTML, Microsoft Office 2007 XML,, XLIFF (Okapi), MediaWiki and plain text files and hides the code to the translator. Translators just see what needs to be translated, can use shared memory per project (you create projects inside the application) and thus avoids you to re-translate something you already translated, and export in the same format as the original document without touching the markup. I’ve tried with HTML and presentation files and wow it just works as it should. Great gain of time, no need to internationalize anything for your project (and mine) and anyone can now generate new lessons without having to worry about the translators.

This is also going to help me in my daily work, where I get presentation files in different languages all the time and spend hours editing them slide by slide. On top of that, this is Open Source Software (GPL) and cross platform (using Java). What else could you ask for? I just regret to have discovered it so late. đŸ˜‰

First stone to the edifice

RUR-PLEJust as I am talking about my new project, last weekend, Pockey and I have already localized a great educational application called RUR-PLE. RUR-PLE is an environment designed to help kids learn computer programming using the Python language. Teaching kids algorithm are without any doubts going to enhance their problem solving abilities, analytical skills and passion to create things out of nothing.

The whole process of localizing this application took half a day as the author, André Roberge, had already internationalized its software. So basically it was just a matter of installing PoEdit, finding the po files in the right directly and just providing the Chinese version.

There are 48 lessons (not all are online, but they come with the package) bundled with RUR-PLE which are in HTML format. Now those have not been internationalized and we have so far only localized the main pages and the documentation. I am therefore starting to dive into the process of HTML internationalizing and I have much to learn. From what Freeflying told me I had to look into XML and DocBook for that. At first sight it does appear fairly complicated, so if anyone has the time to give me a crash course on the ABC’s of HTML internationalization and localization, please feel free to contact me.

What you can remember of this article however is that to port something as useful as RUR-PLE only took one afternoon! So if you want to help and join our efforts do come and visit our group.

Full speed into my new project

As some of you know, I have decided to resign from the Beijing LUG presidency in order to have more time to do things that I feel more useful for Open Source in China. To continue on the topic actually, I think it will be good for the BLUG to have a new leadership. It was a very rewarding experience for me and I am really glad it happened.

So just as I feel so free I am getting myself into pushing Linux to schools, and building something useful for that purpose. I already had one opportunity last summer (July 2007) in Qingdao and unfortunately the lack of good solution in Chinese killed the project. Early this year a second opportunity arose and I have decided not to let it vanish again. Benjamin Cooperman, teacher at BISS, brought this one on a tray and we now “just need to execute”.

For those not familiar with the details, we’re collecting old PCs from schools or companies, refurbishing them, installing a light weight Linux distribution with a suite of usable educational applications in Chinese and donating those to poor schools as well as providing training to the teachers.

The project wants to be distribution agnostic and (as the OLPC project should have been – I hope you sense my disappointment now) about providing the right tools for teachers and students to be successful.

First phase will be based on PuppyLinux as we have hardware limitations but ultimately we’ll have a software stack easily installable for a few distributions. CECC, one of the main Chinese contributor to E-pup, the Chinese PuppyLinux, is helping us in our endeavor and of course a few BLUG members as well.

More information on the BLUG wiki. We will need translators and people with experience in internationalization. Should you feel interested please do join our group, or contact me.

Riding the small dog

For those of you regularly reading the Beijing LUG site (or even participating in our events) you might remember our Old PCs Refurbishing Party lead by Ben from BISS and held early March of this year. After struggling with various flavors of Ubuntu because of bad Chinese support and heavy resource usage, we settled on 256MB of ram as a minimum requirement and had to manually customize every single install we did.

Not satisfied we decided to study other options such as mastering our own light-weight derivative distribution with the right packages and good Chinese support. We did get a lot of positive supporting offers from ThizLinux, Mandriva and Novell and it’s nice to feel you’re part of a group of great people.

After a few weeks, Ben pointed out a few Puppylinux variants and I am now playing with it: IMPRESSIVE! I am testing it on an old Thinkpad X30 with 256MB of ram with a Pentium III: so fast, so flexible. All the necessary applications are available, it’s very easy to make your own build (actually 2 ways of doing it) and you can even install deb packages (experimental feature).

We still have a long way to go, but it really seems we’ve solved our first issue: small footprint and easy setup. Puppylinux has also a very active IRC channel on freenode (#puppylinux) and a fairly good documentation. I’m almost considering using it as my full time distribution!

So whatever distribution we use at the end, I’m quite pleased to have had to dive into Puppylinux. It’ll give us a base to chose the right applications and do our own customization in order to get the project rolling!