Improving Kubuntu’s l10n + Icon making

The best mail in all of June 😀
Which made me create:
… a fancy ruby script to parse KDE’s process_orphans.txt file in order to track po movements (which need to be applied manually to the Launchpad templates), the design is as wicked as it can get, but it seems to work (at least for core KDE).
Talking about ruby… the ruby tutorial at the Kubuntu Tutorials Day was kind of weird (I still find the concept of IRC talks rather confusing TBH), it certainly could have been worse though. I think that it is pretty diffcult to squeeze the awesomeness of ruby into a one hour tutorial. Pretty lame excuse, huh? 😛
Later on kwwii did an awesome talk about artworking which made me create:
Though it might be better to use the Kubuntu icon rather than the text, because you really wouldn’t notice that this icon is about Kubuntu at 48×48.
All in all, the tutorials were really awesome and totally worth almost falling asleep at the dentist’s today 🙂

Facts about Rosetta and Kubuntu l10n


  • Kubuntu (needs to) import KDE’s translations (+po templates, +desktop file translations, +desktop file po templates) into Launchpad’s translations system Rosetta
  • Those translations then can be changed and/or enhanced
  • Changed translations don’t automagically get overriden by a new upstream import but have to be reviewed by the translation team
  • Changed translations have to be manually upstreamed by the translator or the translation team (thus implying that one should either have direct access to upstream’s po files or file loads of bug reports)
  • Rosetta makes new contributors contribute to out-of-date translations
  • Rosetta failed to properly support KDE 3’s po format for years
  • Rosetta’s interface is difficult to use
  • Rosetta has no clue when a package gets removed from the archives or superseded with a new major version that does not ship the once available translation template
  • Kubuntu’s localization breaks at least once every release cycle, always as close to release as possible
  • Kubuntu string changes/additions don’t get translated at times
  • Kubuntu needs to maintain patches to keep that whole construct of import-breakage-export working



Having to import all main applications’ l10n related data to a distribution specific tool for enhancement and bug fixing is a completely sane thing to do. Of course, if the whole process would not be bound to the build process (i.e. if it could be supervised outside the build process) it would be a lot easier to notice/track/find issues, and god knows there are loads of those (at least for KDE imports). It probably would also help if rosetta wouldn’t need ages to process the data for import. But hey, what can you do, it’s a bottlenecked design.


So, assuming that the data ended up properly in Rosetta (which is not always the case, though it arrived there … I guess you can imagine what I’m talking about), now a nice community member can start fixing bugs or enhance the translation (to pick up on the bottleneck: if the template is imported but the po is not, there will be loads of untranslated strings … again I’m quite confident that you see the implication here).

Let’s use the following example:

Leon is Kubuntu user. He is speaking German and wants to help translate KDE. Being a user who actually knows about the need of translation he knows that the translations are being handled over at Launchpad. So he commands to konquer Right at the top there is a link to Translations. Leon clicks.

On the translations main page he finds a link to the translations for Ubuntu 9.04. Again he follows that link.

Oh dear, what a load of red!!!!

Anyway, he scrolls down and eventually finds german.

So far so good, now Leon just needs to find some KDE application.

Hum… Leon reads kdesktop and kicker, having used KDE for quite some time he knows that this stuff was replaced in KDE 4 and is not even available in the archives anymore, so he avoids them, luckily they are fully translated anyway.

On the very same page he finds konqueror with one untranslated string. He thinks that one untranslated string would be a perfect starting point so he wants to give it a shot.

Our character filters for untranslated items having no clue what the guide filter means as there is only none or german.

The suggested translation “Textmarken” from openoffice’s translations sounds about right so he applies that. For those who don’t know, the KDE default translation for bookmark in german is “Lesezeichen”, Leon doesn’t know that, and neither does Rosetta. JohnTooray suggested “Lesezeichen” but that was almost 2 months ago, so one must assume it was not very much liked, so for the scenario’s sake we will just ignore that there is already a suggestion.

Leon submits his suggestion “Textmarke” and goes on walking through >20 pages of templates trying to find more KDE stuff to translate.


3 months later still no one approved his suggestions (in Rosetta someone from the managing team, i.e. the ubuntu translation team for $language, needs to approve the translation … those poor people have to know all common translations for GNOME, KDE, GNU, $someothersoftwarestackinmain). Leon is right now pretty pissed off and decides to never try helping again.

I hope you see the flaws I tired to highlight, in that very simple example use. Those are mostly non-technical problems, I have talked about the technical ones so often on IRC and in various meetings that I am simply tired of repeating myself all the time.


If we are super lucky someone didn’t decrease the translations quality and the language teams were not too busy fighting with Rosetta’s interface to not be able to approve new suggestions. At some point (post string freeze, so someone like Apachelogger, who would actually care if import and export are working correctly before that, doesn’t have a chance to fix quirks before translators start working there arse off) a ubuntu langpack gets generated and spit upon the archives.


Ubuntu must be high on something since it seems pretty much impossible that Ubuntu and Kubuntu communicate just for once. It goes like that: Ubuntu does something -> Kubuntu notices it -> hell breaks loose -> Kubuntu tries to catch up -> Kubuntu barely (read: only partially) manages to catch up before release. That seems to be some kind of law of nature.

Latest example: “lets go rape our packages of their desktop file translations” which was done less than one month before release of 9.04 without any warning.

Result: Systemsettings was speaking english most of the time, so did the menu, so did loads of other stuff

Cause: The Kubuntu patch for grabing desktop file translations from .mo files was not working + the translations were not imorted + the templates were not imported + no-one ever warned us

This isn’t news at all. A flickr image set is watching the progress of Kubuntu since 8.04 (though it is, with exception of 8.10, mostly tracking in-development progress, then again how much localization QA can you expect when it is horribly broken half the time).

Also if you speak german you might want to check out the latest KDE-de thread about Kubuntu’s state of translation, they also had a similar one for 8.10, where they considered various crude but understandable actions in how to handle this issue. After all the KDE l10n teams probably get most of the complaints, because the user is lead to believe that it’s a problem there.


So, finally just let me get my position straight.

  1. Rosetta is the best example why rolling release does not work in every case
  2. I raised my concerns about the constant issues and lack of quality coming out of Rosetta… for I think the last year or so
  3. Most people do not speak English, and if they do as second language I find it doubtable that they do well enough to use an operating system in English
  4. Ubuntu touts itself as believing it’s important for everyone to have a computer that works in their own language, yet the project as whole (Kubuntu being part of that larger Ubuntu) fails to meet that very claim most of the time
  5. I pity all those that have to use Rosetta in order to make their desktop not speak 2 languages at the same time, as well as those that have to live with constant complaints coming from Kubuntu users
  6. I am deeply sorry that I can’t help either of them, due to the very nature of Rosetta still not being open source
  7. Should this crap continue I am going to leave the Project and join Debian or Fedora, I am not going to waste my time on a system that is constantly breaking due to external (meaning not caused by the Kubuntu crew) screwups
  8. Comments on how to improve the situtation (i.e. what Kubuntu should do in order to get out of all this) are greatly, because I’d rather not leave a project I have spent most of my spare time on for the last couple of years