Software Globalization: Localization on the Cheap
dan_darnell 27000038BE Comment (1) Visits (2434)
One of the challenges of creating software for a global audience is language localization. The act of translating text from one language to another requires great skill. Literal translations of the type provided by a service such as Yahoo!'s Babel Fish are insufficient. There is only way to get linguistically and culturally accurate translations that also take the context of a software application into account – human translators. Large software development firms either employ their own translators or outsource translation to a firm that specializes in software localization. Either way, the cost of localization is typically high. I have a long history of working with firms that market software to an international audience and I enjoy designing and developing software for the global marketplace. When I migrated my Java-based Solitaire card game to EGL Rich UI I already knew that the capabilities of the programming language and tooling were great but the obvious sticking point for me, working on this as a solo developer, was the prohibitively high cost of obtaining translations.
My initial goal was to make the game available in English, Spanish, and Russian. I am a native English speaker with some knowledge of Russian and I had ready access to people who could validate a Spanish translation. As I contemplated my goal it was clear that I had very little text requiring translation – just button text, the options panel, and a few messages. In a flash of inspiration it occurred to me that one potential approach to translation would be to use Amazon's Mechanical Turk service. “Mechanical Turk” refers to a device created in the 18th century to play chess against human opponents. Unbeknown to the human players, the Mechanical Turk wasn't a machine at all. Inside the device was a human chess master manipulating the machine. Amazon's Mechanical Turk service employs people to perform tasks that computers don't do well or can't do at all. Anyone can sign up and submit tasks to be performed. The submitter of a task provides a definition of the task to be performed, sets a price, and indicates a number of unique submissions that he or she will accept. Workers from all over the world can browse outstanding tasks and do the work required. The submitter has final say over whether the work performed is accepted and payment made. The submitter pre-pays Amazon for work to be performed and, when the submitter approves a worker's task, Amazon pays the worker. (Amazon assesses a small fee for providing the service infrastructure). The submitter and workers are never directly known to one another.
I set aside $30 (USD) for my Amazon Mechanical Turk translation experiment. I submitted requests for translation tasks offering $2.00 per translation with a maximum number of five Russian and five Spanish translations. I made it clear in my task description that I only wanted professional, context-relevant translations and that payment would not be made to anyone who had obviously used something like Babel Fish. To my surprise, within just a couple hours I had ten translations waiting for me. I assessed these using, in the case of Russian, my own knowledge of the language and, in the case of Spanish, the help of a Spanish-speaking colleague. Translation is never a straightforward or obvious task. Ask five people to translate something (even five professional translators) and you will likely get five largely unique results and they will all be technically accurate. The ten translations I received looked like good work on the part of the translators and I paid all of them. I had enough language knowledge and help to choose translations that seemed to be the best fit for my game and I was happy with the initial release of the game in English, Spanish, and Russian.
For my next experiment (and given that I still had $10 to spend in my Amazon account) I expanded my language coverage to include French, German, and Portuguese. I realized from my first experience with the Amazon service that the translations I received were pretty raw. The translators did not provide much beyond the translated text. In order too better understand a translator's linguistic choices I revised my task request and asked for the translators to provide notes on their process along with the translated text. Also, I was curious to see if I could get good results at an even lower price point. For this next round of work I offered only $.50 per translation. I submitted requests for five French, five German, and five Portuguese translations and, again, within a couple of hours all available requests had been completed. The additional information I requested from the translators made it possible to determine which of the translators put real effort into their work (as well as applying a skilled translator's techniques).
The price was right but the downside of using the Amazon Mechanical Turk was the anonymity. I wanted at times to be able to have a two-way conversion about a particular translation and in some cases I wanted to reach out and make direct contact with a translator so that I might hire or recommend that person for future translation work. If this trade-off is acceptable though then my experience with low-cost translations via the Amazon Mechanical Turk leads me to believe that even this specialized and historically expensive aspect of software globalization is accessible to even the smallest software companies and independent developers.