Translating documentation in Google Code In program

Half a year ago the annual Google Code In contest was held. And, thanks to Andre Klapper’s enthusiasm, the GNOME Latvian localization team chose to participate and provide 20 translation tasks for secondary school students. Although the contest itself ended in January, we finished our part of the work only a few weeks ago, in time for the release of GNOME 3.4.1. This blog post describes how it went and what we learned.

Preparation

Since we need people with knowledge of English and Latvian (a small language), we knew hardly anyone could help us if we didn’t spread the word. To do this, we contacted the national ICT teachers’ organisation and sent them digital leaflets to give to their students. The leaflets contained information about the Code In program itself and only a slight nudge toward tasks specific to Latvian. This worked quite well, and we attracted a decent amount of interest, with six pupils actually completing our tasks.

We chose documentation for the tasks because it should be understandable for a layperson. Arguably, translating Inkscape or the like would be more useful, but UI strings are much harder to tackle without prior experience. Our estimate of the time to translate 50 strings was one day (an “after school” day, not a full 8-hour workday). For the first round, we prepared five tasks, which looked something like this:

Translate into Latvian the Gnome Desktop Help chapters about Shell (strings from 1994 to 2231). It consists of approximately 500 sentences. You can take a look at the rendered English version here. General information on translating GNOME can be found here.

First wave

After the first few exchanges we found out that absolute beginners need a lot of hand-holding. Worst of all, they were afraid to ask for advice. So there were a few misunderstandings and unneeded stress. Having learned from this, we added some tips, which had been obvious to us, but not to the pupils:

  • Translating is easier with specialised tools, such as poEdit or Lokalize.
  • A spelling check is always a good idea.
  • User interface translations can and should be taken from the corresponding UI .po file.

We also learned that phrasing a task like “go take that file over there and translate strings X through Y” doesn’t work, because the master branch is a moving target, not all editors have string numbering, and pupils don’t ask for assistance. To solve this, we sliced[1] larger .po files into task sized bites and hosted them on our own FTP server.

For quality control, we checked a handful of random strings for common issues, and if the translations were good enough, the work was accepted. In a couple of cases, we did request improvements, which the students then made quite promptly.

So, five pupils completed five tasks, and we started preparing for the next round. This time we thought 15 tasks would be enough. We weren’t quite right.

Second wave

Not all pupils from the first round stayed, but those who did seemed very efficient (e.g., finishing a four-day task in a single day). At first this made us concerned about quality, but our usual random sampling showed no significant issues. In the end, all 15 tasks were completed in less than two weeks, much sooner than planned, so we had clearly underestimated our participants.

Review and editing

For best results, all translations should be reviewed, and first-time translations must be. We did expect to do extra work at this stage, but in hindsight, much of it could have been avoided. Lessons learned from the editing process:

  • More communication with the participants would have helped a lot. Google’s Melange system discourages personal communication, but having an IRC room would have let us resolve some issues much earlier.
  • Provide some style guidelines and a list of common mistakes as required reading. Fixing such subtle problems afterwards can be time consuming.
  • Inexperienced translators tend to translate word-for-word, forgetting that grammar and phrasing differ between English and the target language.
  • Before being given a full task, the participant should translate a small test file with common pitfalls, and the mentor should give detailed feedback. Simply making pupils aware of the issues increases their performance significantly.
  • Did I mention the need for communication?

Conclusions

The overall result is positive — the documentation for Latvian language is finally finished and shipped for distributions that use Gnome 3.4.1. One of the students expressed interest in continuing translation work. We hope all the other participants enjoyed the process as well.

—-

[1] To convert a 600 string file into three files of 200 strings each, make three copies of the original file. Open each one with a text editor and delete the unneeded strings, but keep the header information. When the translations are done, paste or merge the .po files in one. Don’t forget to manually combine the copyright information from .po headers and the “translator-credits” string, if there is one.

This entry was posted in Uncategorized and tagged , , , . Bookmark the permalink.

6 Responses to Translating documentation in Google Code In program

  1. Daniel Mustieles says:

    What about using Gtranslator for this kind of tasks? Lokalize is based on KDE and PoEdit sometime breaks po files structure…

    I’m trying to spread the word about Gtranslator, since it has no sense to use a KDE tool to translate GNOME (would you develope Linux kernel under Visual Studio? 😉 ).

    Also, I’m trying to get some people to help with some bugs in Gtranslator. Please, if you know somebody that could be interested in helping us, please let me know.

    Many thanks

    • tranzistors says:

      I moved to localize because gtranslator crashed for no good reason. I did poke it a bit recently and it seemed to be ok. Will have to investigate a bit closer and see, if it can be recommended. Localize has its own list of annoying bugs.

      PoEdit is fine, because it works on windows and lot students in this program were mainly windows users, so this option stayed.

      About adopting Gtranslator, one thing, that would help is more autoconfig. For example, when making profile choosing language should automatically configure language code and plural forms. Character set and transfer encoding is some scary stuff as well. Database generation suffers similar problems.

      Hmm, maybe I should have written a bug report 🙂

      • Daniel Mustieles says:

        Which version have you tested? I think when you select your language, it autofills some fields, like plural forms, but now I’m not 100% sure. If it doesn’t work in master branch, please open a bug to report it.

        There are several bugs opened we are trying to solv, but, since I am not a developer, I’m just doing marleting campaign 😉

        Many thanks for your comments. I hope we´ll keep in contact!

      • tranzistors says:

        It was Ubuntu packed gtranslator 2.90.8-1. Not sure how far it is from master branch.
        If you happen to be in guadec this year, we can certainly discuss these things in detail there.

  2. Daniel Mustieles says:

    Sure I’ll be in GUADEC-ES, which will be inside GUADEC.

    BTW, maybe it’s more confortable for both us to communicate via e-mail 😉

Leave a comment