GetGNULinux.org gets a facelift

For the past two weeks I’ve been working on a new design for the website. I have just published the result – http://getgnulinux.org/

New design

The old design has been bugging me for a while now, and these days you see so many websites with beautiful designs, that I thought that getgnulinux.org couldn’t stay behind. In addition to that, viewing the website on a mobile devices with a small screen was absolutely horrible. The typeface was just not suitable for small screens, making it almost impossible to read the text (one would have to zoom in to read). Not to mention that desktops these days have bigger screens, and you want to fill those wide screens up nicely too.

So I’m hoping that this new layout will solve the above issues. It is far from perfect, I realize that. Designing has never really been up my alley (I prefer coding and back-end stuff), and I had to learn from existing websites to get an idea of how things should be done. But to my surprise, working on this new design has actually been a lot of fun (and a little addictive, I must say).

Recent advances in web technology allow you to do very neat things, with very little effort. And so I haven’t been shy to use these technologies to the fullest. For starters, I made the transition from XHTML to HTML5, which is supposed to be friendlier with mobile devices. I used HTML5 Boilerplate to implement what are considered to be best practices when building websites with HTML5 and CSS3. JQuery and several jQuery plug-ins were used to make the website more interactive. What’s also exciting is that modern web browsers have excellent support for Scalable Vector Graphics (SVG) now, so I’ve replaced some of the PNG images on the website with SVG images. These images can scale to any size, and as a result they will look sharp no matter the size of the screen. Some older web browsers don’t support SVG, however, so I used Modernizr and SVGeezy to provide PNG fallbacks.

Fixing the layout was the first step to get to the next milestone, getgnulinux 2.0. There are some open bug reports that still need to be taken care of. I’ve been postponing them because they require that the content of the website be updated, and I don’t think my writing skills are so great.  But now that I’ve taken care of the layout, I feel like working on the content too.

I am considering the new layout a work-in-progress. I’m still not 100% satisfied with it, but I feel I’ve kind of reached a maximum of my capabilities with this layout. If anyone wants to help out with improving the layout or the content, don’t hesitate to get in touch! I could really use the extra help. And of course I would like to hear from you, the reader, what you think of the new layout (positive or negative).

Russian and Traditional Chinese translations completed

Not much has changed on the website lately, but I’m glad to see that many people are still kindly donating their time to help with the translations. Two more translations were completed recently: Russian and Chinese (Taiwan).

Russian was completed back in July. Many thanks to Alissa, Фёдор Ходьков, and V’yacheslav Stetskevych! It had been stuck at 85% for some time, but Alissa managed to complete the remaining percentage in a single day.

And this week the translations for Traditional Chinese were completed. Many thanks to 冥王歐西里斯, Agustín Wu, BrLi, Max Wu, Po-Chun Huang, and V字龍, for they completed the translation from scratch in a little over a month!

Order GNU/Linux!

A few days ago I stumbled upon OSDisc.com where you can order CDs and DVDs for as many as 195 GNU/Linux distributions. They even sell flavors of BSD and Solaris. The prices are low, the CDs are professionally labeled, and you can order from almost any location in the world. Even the website looks very professional, so I thought this would be the perfect website to send newcomers to GNU/Linux to (as an alternative to downloading).

Today I released an update (commit 562e490e59) for the Try or install page which adds links to OSDisc.com for ordering the Linux distribution of choice. The instructions on this page were improved as well, with links to the official installation instructions for each distribution.

Before

Before the update

After

After the update

This update meant that some translations needed to be updated as well, so that completed translations remain complete after releasing this update. The translators responded very fast to my request to update the translations. Thank you Xuacu Saturio, Jason Lau, AstroFloyd, mauron, Yaron Shahrabani, Manuel Meixide, Bastián Núñez, and Alissa for updating the translations!

I can imagine that for some people it might be difficult to download a 700+ MB ISO file and burn it to a CD/DVD themselves, as not everybody has access to high speed internet, blank CDs, and a CD burner. So hopefully this update helps more people get access to GNU/Linux.

Dutch and French translations completed

I am again happy to announce that more translations were completed for getgnulinux.org: Dutch and French.

Many thanks to Anthony Verez, Bruno Bord, Bruno Ethvignot, Fabián Rodríguez, Joseph Maillardert, KIAaze, Laurent Richard, Loïs Di Qual, mauron, nh2amine, Olivier Cleynen, Stéphane Aulery, and Thiébaut Hillenweck for realizing the French translation! The French translation had been stuck at 77% for a few months, but mauron gave it a final push about a month ago.

Also many thanks to AstroFloyd, Johan Vervloet, and Tim Speetjens for helping with the Dutch translation! The Dutch translation was completed by AstroFloyd yesterday, who also spotted a few typos in the original English text which have been fixed as of today. I don’t know who have been responsible for 32% of the Dutch translation, as there were no credits for Dutch on the Credits page before AstroFloyd joined. I did manage to extract a few names from the old PO files. Forgive me if your name is missing, but do send me a message so that I can correct it.

Project moved to GitHub

The GetGNULinux project source code has been moved to a different version control system and code hosting service. When I started managing this project I used Bazaar for version control and Launchpad for project hosting. During my internship last summer I started using Git for version control because I heard good things about it. It didn’t take long before I was sold, partly because the book Pro Git by Scott Chacon was a delight to read and easy to understand. I soon started converting my personal Bazaar repositories to Git (see Convert bzr to git by AstroFloyd for instructions).

I later converted getgnulinux’ repository to Git as well. You can check out the new project page at GitHub. From now on this is where you can find the source code, report bugs, and make suggestions for the website. Patches, suggestions, and comments are welcome.

Belated update

The getgnulinux project had come to a halt for about 6 months due to my 5 months internship to which my focus was drawn. But the internship has come to a successful end in December 2012 and I have some spare time on my hands once again. So there is some catching up to do because the translators didn’t stop contributing to the project, for which I’m grateful. I’m pleased to announce that two more translations were completed:

Other translations have undergone updates as well. These include Arabic (56%), German (53%), Finnish (13%), French (77%), Interlingua (30%), Italian (74%), and Russian (85%). And a new language was added: Lithuanian (28%). I can’t help but wonder which will finish next.

Chinese translation completed

It’s unbelievable, but true. Yet another translation for GetGNULinux.org was completed today! GetGNULinux.org is now available in Chinese (中文), more specifically Modern Standard Chinese, also known as Mandarin. Who knows how many more people we can reach now?

Many thanks to Sayson Peng, leonfeng, Jason Lau and others who worked on the Chinese translation! We couldn’t thank you enough!

Jason pointed out that the Chinese translation requires more improvement (grammar, spelling, fluidity, etc.) and that he will continue to make improvements where he can. But this kind of work shouldn’t be done by just one person. So if you are fluid in Mandarin and happen to have some spare time on your hands, please consider helping out with improving the Chinese translation. Head over to our translation section to get started.

The completion of the translation for Standard Chinese also opens the doors for other variants of Chinese. Transifex has a clone feature which makes it possible to copy all translations from one language to a new language for a project. Cantonese anyone?

Language negotiation implemented

Two posts back I was writing about my plans to implement language negotiation for getgnulinux.org. I’m happy to announce that its implementation was completed today.

“Language negotiation is a function of the HTTP protocol which lets a server choose among several language versions of a page, based on the URL and on preference information sent by the browser (specifically in the Accept-Language header).” – http://www.w3.org/International/questions/qa-when-lang-neg

Before language negotiation was implemented, http://getgnulinux.org/ would always bring the visitor to the website in its default language (i.e. English). Now, when the language preferences are properly set in the visitor’s web browser and the website is available in one of the preferred languages, the website will automatically display the page in the visitor’s preferred language. It will only do this for languages for which the translation is complete (at the time of writing this, these are Hebrew and Asturian). This was a conscious design decision – it wouldn’t be very nice to display a page which is only partly translated.

Other changes came along with the implementation of language negotiation. The language menu on the top of each page now only shows the languages for which the translation is complete. Incomplete translations are still accessible from the “More languages” item in the language menu. This link brings the user to the new language selection page which gives an overview of all translations and their status.

The implementation of language negotiation was actually very simple. Language negotiation is a common feature for websites which means that there is a good chance that someone has already written freely available code for it. And indeed, someone has. There is HTTP::negotiateLanguage from PEAR, PHP’s own structured library of code. However, I used a modified version of that function which I got from Matthew Somerville’s website. The reason I chose Somerville’s version is because apparently PEAR’s version fails on one criterion (see Somerville’s page for details). This also allowed me to adapt some code to GGL’s code which made implementation even easier.

Flag as a symbol of language – not a good idea

While working on the GetGNULinux.org project in June 2011, I decided to update the look of the website as I wasn’t very satisfied with it. It just wasn’t very nice on the eye and I’m not easily satisfied. One of the things I thought definitely needed a face-lift was the language menu. One of the changes I made was anchoring images of country flags to the language links in the language menu. I mainly did this because I thought it looked nice and because it could make it easier for someone to select the preferred language (the flag of your own country is very recognizable). But I recently realized that this wasn’t such a good idea.

This decision has given some issues. For example, GetGNULinux.org is written in English, American English to be more specific. But from the start I’ve been using the flag of the United Kingdom for the English language. This obviously doesn’t make sense. I later changed this to the flag of the United States. This however doesn’t solve the problem, as I later found out.

Last week I got an email from a translator who explained that I was using the wrong flag for the Catalan language. Fact is that I was using the flag for Andorra for the Catalan language. According to Wikipedia, “Catalan [is] the national and only official language of Andorra and a co-official language in the Spanish autonomous communities of Catalonia.” So which flag should be used to link to the Catalan language: the flag for Andorra or the Catalonian flag? I was later told by a Catalan translator that the Catalonian flag should be used to refer to the Catalan language, for historical reasons and because it was used more often. So I changed it.

To get back to the issue with the “English flag”. I still wasn’t sure whether this use of the UK or USA flag for the English language was correct. So I googled “flags language” and the first result read: “Why you should not use a flag as a symbol of language”. This of course drew my attention, so I clicked on that link which brought me to an article with the title “Flag as a symbol of language – stupidity or insult?“. It is a very well written article which explains the issue very clearly. To keep things short: a flag is a symbol of a country, not a language. And there is no reason to bind the country and the language strictly together.

“Why should, for example, a Brasilian select the flag of Portugal to select his native language? It’s quite possible that a Brasilian does not even know the flag of Portugal.” - http://www.cs.tut.fi/~jkorpela/flags.html

Hence the use of flags to refer to languages doesn’t make sense. So today I followed the advice from that article and I removed all flags from the language menu of GetGNULinux.org.

But it doesn’t stop there. On that same website I found a section “Techniques for multilingual Web sites” with more useful documents from the same author. I took more advice from those documents in order to optimize GetGNULinux.org. For example, the language menu has been moved to the bottom of the documents in order to emphasize the content at the beginning of a page in indexing. And language negotiation is something I wanted to make use of for some time now, and this is something those documents also cover. So this is something I’ll work on in the near future.