Would you like to try translating?

This article is especially for you. :)

Table of Contents:

Do I know enough about translation?

The most important thing to realize is that you don't have to be a professional translator, or an expert in your language. Translation teams help each other. As long as you think you could do an effective job of translating some information (it might be only one kind of information, but that's fine) then you're very welcome in any Open Source community. :)

So, where do we start?

The first and best resource for a translator, in my experience, is the Translate Wiki. It covers all major projects, gives you all the essential information you need to start translating. It's been developed all the time: we'd like to see you sharing your knowledge and experience there. :) No hurry, just when you're ready.

What if everyone else knows more than I do?

There are plenty of new translators, and we all understand what it's like to be starting out. Please don't feel intimidated: we're there to help you settle in and feel comfortable about translating. We all start somewhere. I started with The Translation Project, a project which accepts open source files from anyone. Since that was where I learnt about PO files, my Friendly Howto on the TP in the Translate Wiki contains Probably All You Need To Know About PO Files as well. :) Please bookmark the Translate Wiki, and read parts of it whenever you can. It's a really useful resource.

Do I have to translate only for Gnome?

I started out by translating one of my favourite programs (the cross-platform Jabber client, Psi), encouraged by the fact that it had a very welcoming and supportive community, and an effective translators' group. I learnt a lot in that one project. After that, I'd become interested in translating. Sometimes, I asked to translate things; sometimes, I was invited to do so. Please don't hesitate to offer your time and effort: it will be valued, and will make a difference to your language community. I currently translate for several main OSS projects, and several single-program projects. I do a bit here, and a bit there, and it really does add up and help my community. You can translate for one project, or for several, it's up to you. :)

What's the Gnome Translation Project like?

Gnome has a vibrant and very impressive translation program. It is, in my experience, the best-organized major Open Source Software (OSS) project, after the TP. Its translator community is enthusiastic, and we support each other and help each other solve any problems that come up. I really believe that is the key to a successful translator group. I think you will learn a lot, and find it really rewarding, to translate for Gnome. :)

So, where do I start?

There's an excellent homepage for the Gnome Translation Project: from there, you can see the whole project. It includes a useful introductory page for translators. Does your language have a team yet? You can look on the Teams Page — it's a really amazing list of languages!

My language isn't there.

If your language is not listed there, at the bottom of the page there is information on how to start a language team. Starting a team is not necessarily a big commitment: it's just a start, ;) and means new people interested in translating into your language have someone they can contact. Once other people contact you, you can do more translations together, and share the few things that need to be done by a team leader. A new team leader might only be able to keep an eye on important announcements on the mailing list, and do a bit of translating now and then, but that's a lot better than nothing. Don't undervalue your contribution: we do need you.

I found my language on the Teams page.

If your language is listed there, you are very welcome to contact your team leader, introduce yourself, and say how much time you would like to give to translating for your language. This is only a guide: how much you do is entirely up to you: at busy times you might do less, or none, and at other times get a lot done: nobody will pressure you, it's entirely your decision. However, it does help your team leader to know roughly how much you would like to start doing, what areas you are interested in. For example:

Hello (name)

My name is X, and I'd like to join the Y translation team. I think I could contribute an hour or so here and there, maybe more on weekends or holidays. I'd like to help. I've read the (whichever pages mentioned here you have read), and would like to start translating into our language.

I look forward to hearing from you.

from (name)

So, what would I be translating?

It really helps to translate for applications you actually use, and in which you are interested. Here, your experience helps you, and helps your language community. However, as long as you are willing to test out your translation by running that program, or reading that Help document, you can translate pretty much anything. Understandably, there are priorities: at the time of writing, we are in string freeze for the Gnome 2.10 release.1 Your team leader might ask you to spend most of your time on this or that section, perhaps there is an important Read-Me or Help file that needs doing. However, whatever you do really is up to you: you plan the best time, you decide what suits you best.

How do I join the Gnome translators?

You join the Gnome Translation Project by introducing yourself on the gnome-i18n2 mailing list. You can join the list here. This list is our common-room, the place where we can discuss anything about Gnome translation, ask questions about translation in general, feel welcome and accepted for who we are and what we do. A large part of the excellent atmosphere on the list is due to one of the i18n co-ordinators, Danilo Šegan. He is a wonderful person: I have asked him many questions, sometimes directly when the topic was not really Gnome-specific, and he has been invariably friendly, helpful and extremely well-informed. We translators all share our experience and help each other, and it's the very experienced translators like Danilo who show us how to do that. When you first write to the mailing list, introducing yourself, he will probably be the person who answers.

Welcome to Gnome Translation!

You will probably also get welcomed to the list: I'll certainly do that if I can. :) I'm always happy to meet new translators, and I'll help you out if possible. You are welcome to contact me directly if you are confused about what to do, or have run into problems that aren't being easily resolved on the mailing list. I'm particularly keen to hear from new women translators, so please write to me if you're thinking about translating for Gnome. I'd like to invite you to join Gnome-Women, too. This is another place where we share our experience and help each other, but it doesn't have to be just about translation. :)

Do I need special software?

Please see my TP article about this. In summary, you really only need gettext and a text editor, but there are specialist translation editors that can save you a lot of time. It's all very easy, and if you run into any problems installing or using something, or don't understand something, you're welcome to ask about that on the gnome-i18n mailing list. :)

Where do I get the files to translate?

This is where I think Gnome is particularly well-organized. It shows you all the files available for translation, on the translation status pages. The spreading tree of status pages starts here. The date shown is how up-to-date the status information is (usually today's date). You can see there are currently three sections to Gnome software: the Gnome 2.10 and 2.12 branches, and HEAD. Gnome 2.10 is the version of the Gnome system which is about to be released as I write this; Gnome 2.12 will be the next version, so people are working on that already, and HEAD is the latest version for each program: some programs will have branched3 for the new version, Gnome 2.12, already, but most are still listed just as HEAD. The Gnome 2.10 files should not be changing any more. Gnome 2.12 files will continue to change, and HEAD files change a lot: they're what's called "the bleeding edge" of software, where developers are changing their minds faster than their software caches. ;)

If you click on the Gnome 2.12 link, you will then see a list of all current Gnome languages. This table shows you how much of Gnome 2.10 has been translated into each language. You would get a similar page, with different quantities, by clicking on either the Gnome 2.12 link or the HEAD link on the "root" page of this tree of status information. How is your team going, if it's there? Don't feel discouraged if your team, or practically every team, doesn't show up as having completely translated Gnome 2.10: the Gnome desktop system is made up of a huge number of programs, only some of which are used by the majority of users. Those busy programs generally get translated first. Let's have a look at how this is displayed. Please click on my language, Vietnamese.

On my team page, now, you can still see the list of all languages down the left-hand-side. This is handy in case you want to compare languages, or swap back and forth between languages. Where is all the information? Well, here Gnome 2.10 is separated into two main sections: Desktop and Developer Libs. As you might imagine, the programs the average user needs to use, and those used by developers, may be quite different, so this is a useful separation. Let's click on the Desktop link. My team actually has this one at 100%, so I'm feeling very happy about this achievement. :D

You'll notice along the top of the page that the crumb trail4 shows you where we are:

gnome-2.10 release / Vietnamese team / desktop group

This is useful, keeping track on where you are in the status-information "tree". We've chosen the Gnome 2.10 release, then the Vietnamese team, then the Desktop section. We're not lost ... really! :D

You can now see all the programs in the Desktop section, and if you're a Gnome user, I think you will recognize many of them.5 Have a look down the list, see how many programs' names you recognize. Looking at the way the page is laid out, you can see we are no longer taking up space with the long list of language teams, since we can go back to that list simply by clickin on Gnome 2.10 in the "crumb trail" at the top of the page. You can also see that the last division of the tree, into Desktop and Developer-Libs, is still show in the top left-hand corner, so you can swap between them if you like.

Now for the status table. The first column shows you the name of each program. Clicking on the name of a file, in this column, will show you the latest version of that file. You can download it by right-clicking (or command-clicking on my iBook) on the filename and selecting Download to Disk or similar. Sometimes it's handy just to click on the filename and look at the file, to see any quick changes, how recent it is, etc.

The second column shows you where the files are kept in the Gnome repository.6 This is important for checking them out, updating them and committing the finished file. I'll talk about this process under Getting and Putting files, further down the page. The third column shows you that all these files have "branched" into Gnome 2.10: their developers have put the main shape of what they think will be the final version of this program for the Gnome 2.10 release, here. They will still make minor changes, but all the major changes should occur in the HEAD file, not here.

The rest of the columns in the table are all about how big the file is, and how much of it has been translated. I rather wish there was a column that showed how many strings7 in total are in each file. I think I'll suggest that on the gnome-i18n mailing list. It makes it easier to see how big each file is.

Column four tells you how many strings are already translated in this file. For a completely untranslated file, this will be zero, and the graph at the right will be all coloured red. The fifth column shows the number of translated strings as a percentage: in the case of a completely untranslated file, this will also be zero. If the file is completely translated, it will be 100%, and the graph at the right-hand-side will be all coloured green. I keep an eye on this fifth percentage-translated column, when I want to see which files have changed.

Column six shows you how many "fuzzy" strings there are left in the file. Fuzzies are strings which are uncertain: they may be correct, but gettext (which checks all files) is not sure. Fuzzies occur when:

  • the original string has been changed by the developer(s), and the translation has not been updated;
  • empty strings in the file have been matched with the translation-memory collection of strings from other files, to help you, by not requiring you to fill in the same things over and over, but gettext isn't sure if it has made the right choices, or maybe doesn't have an exact match, and wants you to check if the strings are correct.

The gettext program on the Gnome server will often try to fill in strings for you, and you can do the same thing on your computer, using translation memory built from files you and other translators have completed. This saves a lot of time. This is also covered in my TP article in the Translate Wiki. (I feel a bit embarrassed to keep mentioning it, but I don't want to waste your time and mine writing it here, when it's already available there.)

The seventh column on our status page shows the number of fuzzy strings left in the file as a percentage. The eighth column shows the number of empty, untranslated strings left in the file. These occur when:

  • gettext can't find even an approximate match for the string;
  • the file is completely empty, and hasn't been initialized from translation memory.

And the eighth column shows the number of empty strings as a percentage. The last, and widest column is a very good quick indicator to you of which files need work. On this page, they are all filled with green, which is very satisfying for me and for my team. I find this graph a good quick indicator, but it is based on the proportion of strings, so if a file is very large, there may be several strings fuzzy or empty, and it will only show a sliver of red (empty) or blue (fuzzy) at the right-hand edge of the graph. Small files will show their differences very obviously, but keep an eye on the percentage of strings completed, in column five, if you want an accurate indication. I run my eye down that column, when trying to keep an eye on which files have changed. It's more effective than watching the graph, for programs that vary in size so much.

You will also notice the date, in the top, right-hand corner of this status page. These pages are normally updated daily, which is very efficient, and helps us a lot. I can submit a file in the evening, and the page has updated by the time I get up the next day. This really helps me keep an eye on what is complete, and what is not. I don't have to wait for changes (apart from sleeping, and I should probably do that anyway. I wonder where the manual is... ;) ).

All the other status pages are structured in the same way, so the other pages will only vary (in order from the root page) in the Gnome release, the language team, and the group of programs. In HEAD, there is a greater range of programs, and the groups are Fifth Toe, Office and Extras, with Office being the highest priority. The Fifth Toe description probably comes from the Gnome logo, a foot. :) It may not be a high priority, but we don't stand or walk too well without a toe, so I need to ask a few questions to work that one out.

We all have questions. Please feel free to ask them on the Gnome-Women list, in particular, on the gnome-i18n list, to Danilo, to me personally if none of the others have worked for you. There is always a way. We help each other to get there. :)

We got into the status pages from the question, Where do I get the files to translate? As you've seen, you can download them by clicking on their names in the status graph. It's very important that you do download them that way, as often the version accessible by CVS is not the latest version. I was quite confused over this for a while: I'd checkout a file via CVS, complete the translation, commit it via CVS, then the next day the graph would not have updated! This turned out to be because the file I'd checked out was not the latest version of that file, so I hadn't translated any new changes. Fortunately, the other translators on gnome-i18n helped me sort this one out. Now, it all works! :)

Getting and Putting Files

Gnome files are normally submitted by CVS. CVS is the Concurrent Versioning System, a way to make sure that multiple people working on the same files don't get them mixed up, and can all have access to the current version. Other versioning systems are SVN (Subversion) and Perforce. Gnome uses CVS. There is an excellent page on Using CVS as a Gnome Translator. It took me a while to work through that page, learning one bit, trying it out, then going back to the next bit. It's well-worth bookmarking that page, and using it as a reference. If you have any problems with using CVS, please email cvsmaster@gnome.org. I did have some problems setting mine up, and the CVS-masters were very helpful. Now I have it set up, it works perfectly, and is a very quick and easy way to get and submit files.

You may find that there are GUI programs for your system which make CVS even easier. I use LinCVS, which is available for all main systems, and it makes CVS very simple, giving you an overview that saves a lot of time. It works with SSH, so you can use your keys. SSH keys save you time with logins, including CVS logins, so you might like to read this SSH Keys howto. My remarkable text editor, BBEdit, has all three versioning systems integrated, so I can add, update and commit my files from within that editor. You may find your text editor or translation editor also handles CVS.

I've downloaded my file, what do I do now?


If there are many empty strings, and especially if it is a POT8 file, completely empty, then you can save a lot of time by initializing it with your translation memory. Please see my TP howto] for this, and how to create and use translation memory files. You can also read the gettext manual on these topics, and your translation editor's manual.


Having filled in what saved strings you can, you then open the file and translate any remaining empty strings, checking and editing, if required, any fuzzy strings. Have a look at the last revision date in the header: if it's quite recent, then you may only need to check the fuzzy strings and translate the empty ones. However, if the file hasn't been edited in a while, I've found it very useful to check through the whole file. It can take a while, but means you are familiar with the way the existing terms have been translated, can edit and improve an out-of-date translation, and at the end, you really know how well that file has been translated. You can then submit it, and add it to your translation memory, secure in the knoweldge that the whole file is up to your standards. Your name is on it, and you want to be able to feel proud of your work. You should be: it's important and very valuable work. Every user who can use a program more easily, or access a program for the first time, because you have helped with its translation, will appreciate what you have done. I also believe, quite strongly, that translating software is not about how good your English is. It's about who you are. I am much more comfortable using my software in Vietnamese. Every program that comes up on my screen in my language, especially for the first time, is like coming home. I find I relax more, and thus think more effectively, get more work done, when using software in my language. It's about accepting who we are, and making computing accessible to all of us.

I'm not sure about the meaning of this English string.

You are welcome to write in to the gnome-i18n mailing list, where translators who have worked on that file can help you, and where the developer can be asked, if necessary. Quite often, our queries about unclear strings have resulted in the original string being improved, making it clearer for users of any language to understand. Developers are not necessarily experts in how to express things in English to the average user. if the string is not clear to you, and you usually can understand what your programs are trying to say, then it is probably not clear enough. Ask about it on the list, and we'll help you. You'll often see questions of this kind. There have even been quite long threads on the list, on how to improve the way original strings are created. If an original string is inappropriate in your culture, please say. For example, developers should not be allowing the computer to talk to the user as if it were a person, e.g. "I don't understand what you typed into my screen." These strings should be mentioned, and fixed. However, it's important to remember that developers work very hard on what they do, and generally try their best with their strings. It's important to be positive and helpful about strings, suggest improvements, and not use any kind of adversarial tone. if you're unsure about how to approach any topic online, please ask your team leader or team colleagues, or write to Danilo or to me, and we can help. Remember: your input is important. Please speak up. :)

There is an error in this original string.

Here, again, you're doing an important job. Improving the English strings improves the resulting application, including the translations. When you find errors, keep a note of them if there are several, then report them at Bugzilla. If you don't have a Bugzilla account, you can register for one there. Reporting a bug is quite easy. Again, if you are unsure, please check with your team, with Danilo or with me. We're here to help. We're looking forward to sharing your experiences, too. :)

When reporting a string error or typo9 at Bugzilla:

  1. You log on. Make sure you have cookies turned on. If you have cookies enabled, and still have to login for each page, please mention this on the gnome-i18n list, as it is an issue we need to solve. I had this problem, and the Bugzilla people had to hack their installation to stop it happening to me personally. We need a better solution, so your experience will help.
  2. You choose which program file has the bug. If the filename doesn't appear to be in the list, ask on the gnome-i18n list. Always ask about anything that's bothering you, any difficulties, please. :)

  3. You fill in the bug-reporting form. It's really more for program errors, so it's not really set up for our situation. We're also discussing this on the gnome-i18n list, trying to work out a better way to report string errors. We'll look forward to hearing your experience and opinions on this. :) All you need to do is:

    • Write a quick description in the first field. For example, I usually write something like this:

Some typos in the (program-name) PO file

  • Fill in the details. Here, I just copy and paste the notes I've made while going through the file and translating. This is usually a list of strings blocks (copy the whole string block, because that contains the numbers that identify each string, but you don't need to include the translated strings). Each string block has an error, then underneath, I show the correction, or ask about the error. For example: (from some notes I'm about to take to Bugzilla):

{{{1. #: ../src/preferences.glade.h:11 msgid "<b>Prefered packet rejection method</b>"


2. #: ../src/preferences.glade.h:79 msgid "" "Type of Service filtering allows you to prioritize network traffic in order\n" "for certain applications to recieve higher troughput rates or better\n" "interactivity."



  • from Clytie, Vietnamese translator}}}
    • You make the choices that suit your file, as you go down the form.
      • Component: usually General

      • Severity: usually Minor

      • Version: unless this is shown on your file, choose Unspecified

      • Gnome Version: you should know if your file is Gnome 2.12, 2.12 etc. if it is HEAD, and this is not shown in that drop-down menu, put "Gnome HEAD" in the Other Version Details field.

      • Operating System is All. This field is really for people having trouble running a program. PO file data is used by the program on all systems, all distros10 and versions. So you don't fill anything in the Distribution/Version field.

      • Keywords should be "i18n, l10n"

      • Cc is in case you want to copy this report to someone in particular. Usually you won't need to use this.

    • Then you hit Commit.

You will notice that you can Bookmark some of these choices. You might try doing that.

You will get a copy of your report sent to your email address, and then each change made will be copied to you. Occasionally, the developer may ask you a question, but usually the mistakes are just fixed ... thanks to you. :)

You may need to update the translation file due to these fixes, and that probably won't mean changing your translation, but it is worth it, a quick update, to have correct strings.

I'm not sure how to translate this string.

In this case, the first people to ask are your translation team. You can also ask other members of your language community. It may also help to ask on the gnome-i18n list about the exact meaning of the string, as that may well help you translate it. This is also where translation memory, especially that created by several translators, is such a useful resource. You can search a translation memory compendium or other format, for a particular term or way of expressing something. One way or another, you will find the way. We all help each other, and I think that's the most important thing you need to remember. It's our strength. :)

I've finished translating.

Now you check your file carefully. You don't want your effort marred by simple errors. Using the checks described in my TP howto and the gettext manual, you can pick up many common errors, such as missing quotation marks, extra quotation marks, line-break characters not matching, variables not matching, headers not correct, which will prevent you submitting your finished file.

The msgfmt program will show you any errors, with line numbers. If it has been translated into your language, the error messages will be in your language. if you are unsure what an error message means, please ask your team (if it's in your language) or on the gnome-i18n list (if it's in English). I certainly find the error messages cryptic, and I found them quite difficult to translate. Understanding what they mean saves us time. If you can't find a way to fix an error, please ask about it on the list.

This has happened to me more than once. Sometimes, it is an error in the way the string is created, and needs to be referred to the developer. Never think everything is your fault. :) Always, other translators have helped me fix the problem. I think I'm very lucky to have such helpful and knowledgeable colleagues. :)

When your check is "clean", has no remaining errors, msgfmt will simply say:

(Number) translated messages.

if there are any remaining fuzzy or untranslated strings, it will tell you after you fix the errors. Translate those strings, then run the check again. All done! :)

My file is checked and correct.

Now, you submit the file. If you have CVS set up, you can commit it directly. If not, you can send it to your team leader. Either way, you've done an important job, maybe only by using a few minutes here and there, but it adds up to something really useful for your community. Thankyou. :)

Then you choose your next victim, uh, file. :D

I'm using a program translated into my language, and some of it is not correct/appropriate/translated.

This is important, whether it's your translation file being used, or not. As a member of your language community, you play an vital part by using the programs and thus trying out the translations.

It's my translation

This situation is pretty easy. You simply download that file again, edit the translation, and submit the file. It won't show up next time you use that program, but the fix will most likely be in the next release. Good work. :)

It's not my translation
The best thing to do is click on that program file and look at who was the most recent translator. For example, the second part of the header block in my files includes:

"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"

  • so anyone using one of my translations knows to whom to write with suggestions, lots of praise :) and corrections. I certainly hope they will tell me if something is wrong. You may have users, or other translators, writing to you, pointing out something incorrect in your file. This is helpful, although you may feel embarrassed. It gives you an opportunity to fix the error. Recently, my team leader emailed me with a correction. I opened the current file, but couldn't find the error. The PO file compiled in the program people are using, is often not the latest version. It turned out that I had already fixed that error (phew! :) ), but it helped that I could tell him that, that I knew he would help me by finding any error, and he knew that I was working to fix them.

    So, if that Last-Translator is currently working in your team, you can email her or him, and politely point out the error. Please include:

    • The program name
    • The program version
    • The string itself
    • Where it appears in the program (e.g. Edit menu, third item ; error message when I try to close a window with open tabs)

S/he will most likely appreciate the help.

If s/he hasn't the time to fix it, or is not currently working on that file, you can ask your team leader if s/he would like you to fix the error.

As you can see, by working together, we improve the quality of our translations all the time. This helps us feel we are not alone in doing this work, that we have help and will succeed. :)

Now, this article has turned out a *lot* longer than I expected. However, I expect people will still have questions. if you have a question which you think would apply to other new translators, particularly Gnome-Women, and isn't covered in the references I've given here, or is hard to understand in those references, please contact me, and I'll try to include it. :)

Clytie Siddall, Gnome-Woman, Vietnamese translator.


GnomeWomenTrans/PtBrBrazilianPortuguese GnomeWomenTrans/ViVietnamese

  1. Strings are the sentences and paragraphs translated. Freezing them stops anyone editing and changing them, or introducing new strings which haven't been translated yet, for the Gnome 2.10 release. This means the developers are not allowed to change anything in the files (unless it's Really Really Important, in which case they have to ask the internationalization co-ordinator for permission), so we can finish translations and have them ready for release. (1)

  2. i18n is an abbreviation for the long word we use often, internationalization, making information work for everyone. There are actually 18 letters in between the i and the n, so you can see how the abbreviation was created, and why we don't want to write that word all the time! :) (2)

  3. Branching is deciding on a definite format for that program for a particular release, in this case, of Gnome. Branching for 2.10 means you have pretty much worked out what your 2.10 version will be like, won't be making any more major changes, and want to concentrate your development on the next release cycle. You can stiill test and fine-tune your branched version, but it's not a big arena for change. Now we're this close to release of Gnome 2.10, all programs that have branched for it should be finished. (3)

  4. This is possibly named from stories about people leaving crumbs from bread or similar foods, to show where they have been. Fortunately, html does not require actual bread-crumbs (now, there is a freshness, or currency issue for you ;) ), so the links across the top of the page show a trail of where you've been, instead. (4)

  5. You don't have to be a Gnome user to translate for Gnome: I use Mac OSX, and love it! But it does help if you can run and test the Gnome programs, as I can on OSX, since it's a Unix/Linux system. (5)

  6. Repository is a word used to describe an archive, usually fairly definitive, for a particular group of files. The implication is both that it can be used to provide this data, and that data can be added to it. It literally means a place where things stay. (6)

  7. separate text bites, possibly a menu item, instruction, error message, button name (7)

  8. Portable Object Template. (8)

  9. Typing error, typographical error. (9)

  10. distributions (10)

GnomeWomen/Translations (last edited 2013-12-02 18:48:20 by WilliamJonMcCann)