Sunday, April 06, 2008

Simplify localization contribution for open source projects

Recently I've been played a bit with VLC player (mostly fixing bugs in ftp and avi modules). Their idea of localization is that someone has to request corresponding .po-file in mailing list and load it in poEdit. I think this is a wrong idea for open source projects. Here you suppose to welcome and simplify contribution of the people, maintaining reasonable level of quality at the same time. A lot of people is willing to donate some of their time for localization on their native language, if setup is not complicated. Aiming to use those, who is willing to spent 15+ minutes can make a real difference in timeline for getting localized versions.
So, first of all, the solution should be web-based (like Rosetta). Second, it should be as simple in setting up/login as possible (username/password/captcha). Third - show one resource-string to be translated at the time. poEdit and other professional translating tools are showing the whole table of "language pairs" - correspondence between phrases on the source and target language. And this make sense if you are targeting on professional translator, not occasional one. Here the whole concept of UI should be build around this "one phrase" translation. In addition to source phrase you can show google translation (using their unofficial api), and translation of phrases, that has some specific terms for the application (to ensure consitent vocabulary across all translation). User should be able to skip this translation and proceed to the next one, or save one's translation, if it passes certain verification rules (such as presents of %d, %s in translated text, which is corresponding to source one, etc)
Ability to perform translation on the level of individual phrases makes it easy to perform simultaneous translation of one file by several people (does not have to merge changes afterwards)


Anonymous said...

Going further I would suggest to have one localization tool/manner/way whatever you call it for all open source projects.

You know name=value pairs + locale are enough to localize everything but language should have something to make it simple to use.

Reinventing the wheel is not a good way but the most common one :)

Andrew Zaikin said...

Not sure man. Transit expierence told us that context of the segment can easily change semantics/translation.