Asturian translation completed

With just two months passed since the completion of the Hebrew translation, another language can be added to the list of completed translations for GetGNULinux.org. I’m very happy to announce that the Asturian translation is now online! Many thanks to the Softastur translators team, and especially to their member Iñigo Varela who took the translation to Asturian upon himself. At first I was skeptic when he told me via email that he could do the translation in one or two days. Imagine how surprised I was when I got an email from him the very next day, with the words: “All translations done!”

In fact, Iñigo did the translation of getgnulinux.org in collaboration with Marcos Costales  (from Softastur) back in 2009. But the getgnulinux.org project was stalled and Iñigo and Marcos decided not to wait longer. Marcos downloaded the structure of getgnulinux.org, Iñigo translated the .html files, and they hosted it at faiteconlinux.softastur.org in collaboration with Mikel González (also from Softastur).

Last week I noticed visitors coming from that website which brought me to their Asturian version of GetGNULinux. I was very surprised to find a fully translated GetGNULinux in a language I, at that point, never even heard of. What’s even stranger, is that there were no traces of translation files for Asturian to be found in the original GGL repository (but that makes sense now, knowing that the .html files were translated manually). So I contacted the Softastur translators team who responded very quickly. Iñigo offered to translate it again using Transifex, Mikel provided an icon of the Asturian flag, and the next day there was http://getgnulinux.org/ast/.

This is yet another big step forward in encouraging more people to try Linux. More translations coming soon (I hope)!

First translation completed

I am happy to announce that the very first translation of GetGNULinux.org was completed today! Many thanks to Yaron Shahrabani, a Hebrew translator from Israel, who started the translation for Hebrew exactly one month ago. That he was able to finish the translation by himself in just one month truly amazes me. And that for a language that is so very different from English. Like Arabic, Hebrew is written from right to left. Yaron had a helping hand in improving the display for right-to-left languages as well. Some images needed to be updated for right-to-left languages.

It turns out that Transifex, the new translation platform for GetGNULinux.org, is working pretty good (at least, I have not received any complaints). Some kind individuals have joined a translation team to help out with the translations. Since the switch to the new translation platform, translations for a few new languages have been started. These include Bulgarian, Esperanto, Hebrew and Interlingua. I’m looking forward to the completion of more translations so we can reach an even larger audience.

There used to be a trimmed edition of GetGNULinux.org which contains less pages. For the trimmed edition, some translations had been completed already. Translations for the trimmed edition are now simply being used for the full edition. I have not had the time to implement a trimmed edition yet. Mainly because I haven’t figured out the best way to implement this yet. Until then, the full edition will be used to publish any translations.

Server downtime

The server behind getgnulinux.org experienced some troubles today. For some reason the server had rebooted and the GRUB configuration file was gone, welcoming me with the message,

error: file not found
grub rescue>

So it was no longer able to boot into the operating system. Not knowing how to use the grub command-line, I used the rescue mode of the Ubuntu server CD to re-generate the GRUB configuration file. After rebooting the system it seems that everything is working again. All data still seems to be intact and the websites are back up. I have not found any indications of the server being cracked, so I have no idea what caused this.

Update 2012/03/13: I found the cause of the problem. This issue was caused by an external hard disk drive that is permanently connected to the server via USB. Backups are automatically written to this external hard drive. The server’s BIOS was setup to boot from USB devices first and so the server tries to boot from this external drive. However, the boot fails because GRUB was looking in this drive for a GRUB configuration file (which isn’t there). What was GRUB doing on that external drive? Well, that is a leftover from a previous Ubuntu installation (GRUB was installed on the MBR). So I deleted GRUB from the MBR with,

dd if=/dev/zero of=/dev/sdb bs=446 count=1

Of course “/dev/sdb” is the external drive. But after this the server still tried booting from the external drive, leaving me with a black screen and a blinking underscore at boot time. *sigh* Why is the BIOS still trying to boot from this external drive when GRUB is removed from the MBR?

Ultimately I had to solve work around this issue by just setting in the BIOS to not boot from USB devices.

Switch: gNewSense to Trisquel

Of course this replacement needs to be, like gNewSense, an entirely free GNU/Linux distribution – no restrictions. The website of the GNU project contains a list of free GNU/Linux distributions which I used as a list of candidates for the replacement. There I looked for a general purpose Linux distribution which is both beginner-friendly and up-to-date.

http://trisquel.info/files/trisquel-logo-compact.pngHaving had a quick look at the different distributions, I thought Trisquel GNU/Linux was the best choice. It’s an entirely free Ubuntu-based Linux distribution designed for various audience. Installation is easy and very similar to that of Ubuntu. The standard version of the recently released Trisquel 5.0 comes with a very nice looking GNOME 2 desktop. And best of all, Trisquel is being actively developed. The latest version, Trisquel GNU/Linux 5.0 STS, was released on the 17th of this month.

As of today, getgnulinux.org recommends Trisquel GNU/Linux to people who want a 100% free and beginner-friendly Linux distribution. Head over to the Choose a distribution page and check out the new face in the list. Its description is an edited version of the description for gNewSense. Most part is the same which should make it easier for translators. Now, writing is not my strongest skill, so if you find any flaws in the description (or anywhere else for that matter), please let me know, or better even, file a bug.

Any thoughts on the switch? Please leave a comment.

Updated translations and transfer to Transifex

It’s been a while since my last update. These last weeks have been a busy period for me with other projects I’m working on and school just having started. Last night I felt like working on GGL.org again and I spent about 4 hours on merging the rest of the translations (amongst other improvements to the site). It turns out I initially merged only half of the original translation files (doh!). Hence a lot of the translations were missing on the website. I’m pretty sure I merged everything this time, so head over to getgnulinux.org and see if all your translations are there. Note that some translations might be marked as fuzzy which won’t be displayed on the website.

I’ve also spent some time testing this new translation system called Transifex  (thanks Vyacheslav for the tip!). I must say it’s a great translation system which, unlike Launchpad Translations, has good support for fuzzy translations. It even has an auto translate feature. The only downside is that I’m missing a few basic functionalities, but that won’t be a deal breaker (unlike the lack of support for fuzzy translations).

Another translation system I tested is Pootle. Pootle seems like a great system as well, but it was too much trouble for me to set up. I had it running on the web server eventually, but then there were problems with dependencies that could not be satisfied. Not to mention that it would have to run on our server which would mean even more system load and maintenance.

So I’ve decided to give Transifex the green light. All translation files have been transfered to Transifex; the project page can be found here. At this moment only authorized users are able to submit translations. I’m still figuring out how to allow anyone to submit translations like it is possible with Launchpad Translations. For now, translators can create an account on Transifex and join a translation team which gives you permission to make translations.

I’d be glad to hear from you translators whether the new system works for you.

No fuzzy translations support in Launchpad

Launchpad Translations isn’t the right translation system for getgnulinux.org after all. At this moment, Launchpad does not support “fuzzy” entries. This is bad news, because this means that translations will disappear from Launchpad Translations each time the English texts are changed.

So what are those “fuzzy” translations? The project’s original English texts are stored in a PO template (POT) file. Whenever some English text in the POT file is changed, the corresponding translations (stored in separate PO files) are marked as “fuzzy” by gettext – the software used for creating and updating PO files. Fuzzy translations need to be revised by the translator because the original English text has changed.

The PO files for the project are automatically loaded into Launchpad Translations. Ideally, fuzzy entries that are loaded into Launchpad should be marked as “Needs review” so that the translator can update her translation. Sadly, this is not the case. Launchpad currently has no support for fuzzy translations, and as a result fuzzy entries appear as untranslated. This means that translated entries will be removed from Launchpad each time the corresponding English text is changed. As described in bug #493084, this is a conscious design decision.

Launchpad Translations is a great tool, but the lack of support for fuzzy translations is a real problem. I will start looking at alternatives that do have support for fuzzy translations.

Does ggl.org need another distribution?

I’ve been thinking about adding a fourth GNU/Linux distribution to the list of recommended distributions on getgnulinux.org.

One of the reasons for this is because the distributions currently recommended (Ubuntu, Fedora and gNewSense) all use the GNOME desktop environment by default. Some people might not like the simplistic GNOME desktop and may prefer a fancier desktop environment like KDE. Personally, I would like to also see a Linux distribution with KDE as its default desktop environment so people can see a variety in desktop environments as well when browsing the screenshots. Maybe this will get even more people interested in GNU/Linux. It’s not all about the freedom; the eye wants something too.

Personally, I think openSUSE belongs in that list as well. It perfectly fits the description of a “beginner-friendly distribution” and it’s been around for quite some time. But what do you think?

Fresh GNU/Linux screenshots

The out-dated screenshots on getgnulinux.org have been replaced by new ones. GGL.org now features screenshots of Ubuntu 10.10, Fedora 15, and gNewSense 2.3. I first installed all three distributions on the latest VirtualBox. It needed to be the latest VirtualBox because it easily enables desktop effects and has support for GNOME Shell. This means I can now show off the GNU/Linux desktop with Compiz and such enabled.

The screenshots page has been updated as well; it now uses FancyBox for displaying screenshots in a Mac-style “lightbox” that floats above the page. Sweeeet! See it in action here.

Translations imported

The language files from the GLM svn repository have finally been imported into Launchpad Translations. You can see the progress of each language with the Translation overview on Launchpad (click on “View all languages”).

Translation progressThe translation files had been in the GGL bzr repository for some time now, but they weren’t being imported by Launchpad. In order for the translation files to be automatically imported, one must follow the Import policy. This policy describes the following rules when uploading translation files:

  • The file must be in GNU gettext .po format.
  • Translation files should be in the same directory as the template to which they relate.
  • The translation files should be named for the appropriate language code: e.g. pt_BR.po for Portugese as spoken in Brazil or fr.po for French as spoken in France. Launchpad only accepts languages that have an ISO 639 code.

The second rule was a problem. PHP looks in the folder `locale/xx_XX/LC_MESSAGES/` for language files and this can’t be changed. Here `locale` is the directory for storing language files, `xx_XX` is the appropriate language code, and `x.mo` is the compiled .po file. At first I put the .po and .mo file of a language in the directory `locale/xx_XX/LC_MESSAGES/`. As a result, Launchpad could find the language files, but could not import them.

After some asking around on the #launchpad IRC channel I finally found the solution. As PHP only requires the compiled language files (*.mo) to be in the `locale/xx_XX/LC_MESSAGES/` directory, I moved the template file (getgnulinux.pot) and all language files (*.po) to a directory `locale/getgnulinux/`. I also changed the PHP code so that the language files are named for the appropriate ISO 639 language code. After these changes, translations would still work (PHP still has access to the .mo files) and Launchpad could now import the translation files because all three rules are met.

ggl.org redirected

Olivier has just redirected getgnulinux.org to getgnulinux.no-ip.info. Now all visitors of getgnulinux.org will be automatically redirected to getgnulinux.no-ip.info.

Olivier has also sent me the files from the public GNU/Linux Matters svn repository. It turns out that a lot of the work I’ve done so far (creating PHP pages and implementing gettext support) was already done. The repository contains PHP pages very similar to the ones I’ve created. So I’ve basically reinvented the wheel here. But I don’t see this as a bad thing because it was fun hacking on ggl.org data and I learned some new stuff as well. What I’ll do next is optimize the website with the help of the data from the GLM svn repository. This includes copying the internationalization (i18n) comments that were used in the original PHP files. These comments can be automatically extracted by `gettext’ and saved to the PO files. These i18n comments support the translator in translating the English strings to his/her own language.

The GLM svn repository also contains the other languages files in gettext format. So I’m going to add these to the GGL bzr repository so that these will be automatically imported into Launchpad Translations.