On using the English language versions of your software
Tomasz Szynalski wrote a blog post about using the English language versions of the software. His primary argument for doing this is one that I agree with wholeheartedly... it makes searching for answers or solutions to problems on the internet a lot easier. Far more people use the English versions than the localised versions. The English versions are often the originals, too. This means that you're more likely to get more results when you search for any error messages received in English.
I started using computers at a time when software wasn't even available in other languages, including my native Dutch and I wouldn't dream of using software in any language other than English, but that's not just because of habit. I also do try to keep up with the Dutch language versions of the software so I can help the poor saps who call me when they're experiencing trouble and I thus know where to direct them. Still, there are other reasons for using the English language versions as well.
- As mentioned before, they are often the originals, which means that patches or updates will often be available in English first. This isn't strictly necessarily so, if the language resources and program code have been properly separated, as should be the case with products that were built from the group up with internationalisation in mind, but that does not always appear to be the case. Especially when extra strings need to be translated for the updated software, the non-English versions often lag behind.
- Translations are often incomplete. This problem is seen most often with free/open source software, as the translations are contributed mostly by volunteers (still, kudos to them!) who may not always have the time to release fully up to date translations along with the main software. Perhaps they've even moved on to other projects. This often results in a very inconsistent user interface with some, probably most, strings translated and some in English or displaying placeholders. That can be confusing to end users.
- Translations are often inconsistent. Sometimes within the same product, which is quite bad, but oftentimes between multiple products. Sometimes this is because there is more than one valid translation for an English word, sometimes it is because the user interface is designed for the relatively compact English language and longer, more correct words wouldn't fit. The string "Edit" can be translated into Dutch as "bewerken" (which is the more literal translation) or as "wijzigen" (meaning "to change"). Both strings might not fit if a button is rather small. This may be an even greater problem in other languages. Frequently, the English terms are used in some places as well, especially in Dutch. Also, if your software has a different language than the core OS, you will frequently see both intermixed. Stuff like an English language message with OK/Annulieren buttons or a German language message with OK/Cancel options underneath it.
- Operating a program using the keyboard. Some programs even change their shortcut keys to be localised. In English language software, using Ctrl-S for save is perfectly logical. Alt-F-S, to open the file menu, then select save is another good option. What happens in Dutch software? "Open" and "Save" get translated to "Openen" and "Opslaan" respectively. Both starting with O, which is bad enough, but they often still use the Ctrl-S shortcut key or Alt-B-S ("Bestand" menu rather than "File"). It gets a little worse with "Print." The Dutch word for that is "Afdrukken," which doesn't even have a P in it, yet the shortcut key remains Ctrl-P and the menu selection is Alt-B-D, because the A is used for "Afsluiten" meaning "Exit").
Does that mean there's no place for localised software? Of course it doesn't. There are some people who are incapable of using English language versions simply because they've never learnt English or they're not (sufficiently) fluent in it. Having localised software makes the user experience a lot more pleasant for those people.
Another thing to take into account is that the software should at least be able to handle the language of the locale. This is easy in Dutch, as the language only has one letter that doesn't exist in the English alphabet (the "ĳ" (a single letter), which is obviously easily worked around by using the I and J rather than that single letter, although it does mess up the sorting somewhat. In other languages, this is not so easy, especially if software is written for ASCII text only, rather than UTF-8 or any of the other Unicode variants. That's nasty if your name is "孙博凯". That might end up being rendered as "Y[ZSďQ" or "ĺ™ĺŤšĺ‡Ż"
Update (2011-06-24): Microsoft have a special page to help translating to/from localised error message in Microsoft products available at http://www.microsoft.com/Language/en-US/Search.aspx