Software poses unique language challenges that make the work of translation into other languages very difficult.
Still, there’s one job I routinely turn down: Anything to do with software. For a translation professional, software translation agencies are a nightmare, for several insurmountable reasons.
First and foremost, there is the way programmer think of and deal with language. Most programmers know English to some extent, and as with many other technical areas Englishhas become the universal language for software. The comments, documentation, interfaces, and error messages are are written in English. What makes translating them so hard is the way they are constructed: In most source code messages are constructed by combining strings. Strings are almost impossible to translate because they exist outside of context – they aren’t sentences, so how can you possibly predict whether they will combine correctly in the target language? You can’t.
Another issue is the fact that programmers have very specific tools that they work in, and usually require you to work in them as well. While source code can be written as plain text, usually when you’re asked to translate some software you’ll hear reference to tools like Git, SVN, Mercurial, Perforce or ClearCase – and be expected to do your document translation work inside those tools, soelly for the convenience of the programmer. Needless to say, this is usually not ideal.
Finally, the list of potential cultural bombs in the software is endless. English is written left-to-right, and as a result most software is designed left-to-right as well. This makes translating into a language that is written and read right-to-left (such as Hebrew) a nightmare. They often use “they” when writing documentation or messages, thinking this avoids any gender issues – but in many languages you must use a gender-specific pronoun, leaving the task to me to figure out. Even decisions such as colour choices can be English-specific (is red universally understood to mean danger or stop? It’s not).
And, of course, the final difficulty is that if your end users don’t speak English, they won’t even know how poor the translation is, and therefore cannot report problems. This means that bad translations get “baked in” and persist from version to version, until they are so deeply buried in the code you have no chance of fixing them.