views:

97

answers:

5

I maintain an Open Source Android app. Every once in a while, some anonymous hero localizes to its mother tongue, sending files or using our online tool.

At first I thought the magic of collaboration would be enough to provide timely localizations, but actually, the UI strings change, and each release ships with roughly:

  • 5 languages localized at 100%
  • 8 languages localized at 70% (because recent strings have not been localized)

I am extremely thankful, but is there something I can do to bring the localizations from 70% to 100% when the release comes?

I send messages on the mailing list at code freeze a month before each release, and then a week before, but most of the people who contributed localizations don't read the mailing list, in fact most of them were probably just good samaritans passing by.

Should I stalk the translators and ask them personally?

I have been thinking about having a person responsible for each language. This person (how should I call the role?) would be "responsible" for bringing the translation to 100% before each release. Their names would be listed in the "About" dialog. Is it a good or a bad strategy? Any tips?

A: 

Well, you get what you paid for. The strategy that you are planing to implement will not give you anything. That's because heroes have their own lives. The only way to get this done, is to engage more people to translate, because completion percentage is a function of a community size.

If your application is useful enough, you may try to give a link "help to translate into your language" and this could do for a while.

Think of creating discussion group or board that you could post "Call for translation" when you are ready to ship. Translators usually don't have a time to track changes.

Paweł Dyda
+2  A: 

It's the 90-9-1 principle - http://www.90-9-1.com/ - and designating people in charge of things isn't going to do it. You can offer cash - rewards/pay - or you can groom them. If you bring money into the mix, remember that it quickly becomes tradeoff analysis. People will compare what you offer versus what they can earn on their own. Since I assume you don't have that much money, you don't want that sort of comparison.

Realistically, grooming them is a better option. You've done the first step - include them - show that their fixes, updates, etc are included and help the product. The next step is publicly thanking them and appreciating them. That will get the first 80% as you've seen. The next step is getting them personally committed. Start interacting with them directly. Send them your thanks.. not just in email. If you have a product t-shirt, send them one with a hand written note. In your release notes, link to their sites. If you ever see them in person, buy their coffee.. whatever. The point is that you go out of your way - however small - to acknowledge that they're going out of their own way.

  • I'm the Project Lead of the Open Source Project Management System web2project and have been doing this longer than I care to consider. ;)
CaseySoftware
+1  A: 

Use both a carrot and a stick approach. Giving people credit in your "About" screen, and calling them the lead translator for a particular language (if they're willing to accept that responsibility) is a good thing. Don't include a translation until you've gotten someone to commit to being the lead translator for that language; just like with code, you don't want to accept contributions unless (a) you are able and willing to maintain those contributions or (b) someone who you consider reliable has volunteered to be responsible for maintaining it.

The "stick" is that if someone stops maintaining a language, and fails to appropriately pass the responsibility off to someone else, you will remove that language from the next version of your application. Most people who translate your app probably do so because they would prefer to use your app in their native language. The threat of removing the language from the next version, or the wake-up call when they find that the next version doesn't contain their language, might inspire them to come back and finish up the last 30% translation work.

Brian Campbell
The stick seems quite extreme to me... And actually I consider 70% translated to be much better than not translated. Localization volunteers can speak English, so I guess they can survive with the English version and probably just translate because they like the app and want to make it more popular in their country. I do this often for other software, even though my whole system is in English.
Nicolas Raoul
A: 

One thing to note is that localization people need time to do the localizations, and the less they're getting paid for it, the longer they need. This means that you should at least try to avoid changing the localization keys (especially including defining new ones) shortly before a release. I know it's nice to not be constrained like that, but the reality is that if you're not paying then you're not going to get a fast turnaround in the majority of cases, so you have to plan for this and mitigate in your schedule. In effect, you have to stop thinking about the text shown to a user as something that can be finalized late in the project and instead start treating it as an important interface matter that you'll plan to lock down much earlier.

Donal Fellows
+2  A: 

You are getting it wrong, community translation is an ongoing process or lets say never ending approach.

This doesn't meant that is wrong, but you have to live with the fact that localization is always a compromise and that Usually, it is better to have 20 languages with 50% translation than having 10 languages 100% translated.

If one language is important, it will have more users, so it will have more contributors and the translation rate will be greater.

You don't know when and if the translation for a specific language will be 100%, probably never.

The good part is that you shouldn't care about obtaining 100%, you should spend your effort in motivating people to contribute.

Probably you already know, community translation doesn't play well with packed products.

The solution to this problem is to change the way you work and provide partial translations in your release and a simple update system that updates them (preferably a silent one, like the Chromium update).

PS. If you need to assure a 100% translation rate for a limited number of languages before your release, consider paying a translation vendor to do it.

Sorin Sbarnea
+1 The update idea is interesting, but I guess Android applications can't really do that (if using the standard i18n framework). Releasing more often would probably get us a bit closer to the 100% ideal.
Nicolas Raoul
I think that Google is open to make changes here, file a bug requesting ability to update localization from your application for Android and put the link here, I will for it. Anyway, the speed is not so important as you may think, if you release every month it will be enough and you will add in each changelist: increase average translation by x%.
Sorin Sbarnea