I18n with gettext

The getgnulinux.org website was put for download as an archive containing static HTML pages. The HTML pages were automatically generated from source files and it would help if I had access to those source files, but unfortunately I don’t. Before I can start focusing on implementing the new translation system I need to get rid of those static HTML pages.

So I’ve started to convert all HTML pages to PHP pages. At the same time I was looking around for a translation solution;  that’s when I found GNU gettext. It turns out that PHP has support for GNU `gettext’. This means that translation files (*.po) can easily be extracted from the PHP pages. The translation files can then be translated with translation systems like Pootle or Launchpad Translate (not yet tested), and best of all, the same PHP pages can load the translation files of different languages (all using tools from the same `gettext’ package). I did some quick hacks to test this (I converted all pages to PHP with `gettext’ support), and it works like a charm!

I’ll be working hard on fully implementing `gettext’ support. This means that all English text strings in the PHP files need to be marked as translatable, and this is a lot of work.

get GNU/Linux! second life

As of 2010 GNU/Linux Matters have ceased activity. And with it, GetGNULinux.org has come to its end. “GNU/Linux Matters” was a small non-profit delivering effective, high quality advocacy for free software. Despite their best efforts they just haven’t been able to find the time to keep the project going. They did a very good job with GetGNULinux.org and it would be a waste to let such a great website disappear into thin air. This is why I’ve decided to host the website on my web server (which is basically an old and slow desktop PC running Ubuntu Server Edition). A mirror of GetGNULinux.org is already up and running at getgnulinux.no-ip.info.

At this moment the website just consists of static HTML pages. This makes it very hard to maintain the website, so things need to be improved. One of the things that I want to implement is a simple and user friendly way for users to contribute translations. This must be in the form of an online web interface that allows users to contribute translations in a collaborative manner. Options I’m currently looking at are Pootle and Launchpad Translations.

There are currently two activities for me to consider. I can either concentrate on implementing the translation system, or I can concentrate on the advocacy content. I’ve shared some thoughts with Olivier Cleynen, one of the founders of GNU/Linux Matters, and he explained that both require tremendous energy and know-how. His advise was to pick one of these two activities if I’m alone for a while, which I am at the moment (hopefully more people will join me in this project). Actually, I had already decided to work on getting the website up and running the way I think is best (the translation system being the first thing to implement), and leave the latter activity to someone with better writing skills and more knowledge of the subject. Another good advice from Olivier,

“Pay attention to the ergonomics. The ease of use and scalability of community work tools often end-up defining the success or failure of the project.”

This makes a lot of sense and should definitely be something to keep in the back of my head. These are important factors that must be taken into account when choosing a translation system or any other tool for optimizing the website. If for some reason I am unable to continue this effort, it should be easy for someone to pick up where I left off. He or she should be able to get the website back up and running on their web server in a matter of minutes (with a working translation system).