23
votes

This is somehow subjective depending on the target translation language, but bear with me for a sec.

I have recently been involved in a translation project. The goal was to translate the strings of an MVC framework to the Greek language.

70% of the language strings of the framework where translated, however 30% where intentionally left out. The decision was that we will not translate error messages aimed towards the developer of the application.

The reasoning behind this (in short) was:

  1. are aimed towards designers/programmers. Programmers ( and even designers :) ) should have a basic understanding of English, at least enough so they can search on it on Google if they do not know what it means. (racist?)

  2. are aimed towards the developer and in a perfect world should not be displayed to the end user of the application as they concern the inner workings of the web application itself. i.e "You must set the database name in your database config file."

  3. and perhaps most importantly, they make the life of the developer harder when he tries to get more information/help regarding the error. For example the above error yields 8 results in Google (in quotes), whereas its Greek translation yields exactly 0.

I know that this depends on the popularity of the target translation language and the application itself. For example I'm guessing that there are is vast amount of documentation regarding German SAP error messages (i know, i know, SAP IS German, but you get the point), as opposed to Greek Error Messages documentation regarding random application X which has about 500 installations worldwide.

So to summarize: When you develop language translation packs for your applications do you translate error messages? Do you only do for predominant languages like English/Spanish/German/French? Or do you leave them intact? I'm not looking for the "right" or "correct" answer, I'm looking for a "best-practices" answer, or if this problem is defined in any "official" standard/policy that you have had experience with.

8
My personal experience: being French, most exception messages coming from Java or Java dev tools get translated into French unless I force en_US. In almost any localized application I had to use, translations were poor. I don't exactly understand the process: French people with poor English skills wasting time localizing (badly) in hope to help those who have even poorer English skills? Anyway, I'm nearly always forced to guess the original English message before jumping to Google otherwise I can't find any sensible help. So yes, English is the mother tongue of computers, live with it.Gregory Pakosz
"whereas its Greek translation yields exactly 0" - I mostly get something from finderr.net (as a single hit) when searching for german version of an error message. Is this not the case of Greek as well?Marek

8 Answers

21
votes

A good framework that includes built-in error messages should have an option to i18n them. This is important entirely for the user.

Exceptions messages on the other hand must not be translated. You already pointed out an important reason - searching. And yes, they are for developers, not end-users.

If an exception message is also used as a display message to the user, this is wrong design. Exceptions may contain i18n keys.

10
votes

Translated or not, make sure to always use a unique ID and allow the user to copy it.


TIP: in some applications, hitting Ctrl+C makes a copy of the message without being editable, would be nice to implement the same hidden feature.

4
votes

I can only offer my own opinion, but for me as a German developer it's always annoying to get translated error messages, especially for widely spread software such as MS software. That's for two reasons:

  • German error messages are usually more difficult to understand because the German language makes everything sound more complicated. Also, there are often no good translations for IT-related words. German Developers either have to use English words instead or replace them with cumbersome literal translations. Same goes for MSDN websites, BTW.

  • Also, as you already mentioned, it makes it much harder to find solutions to those erorrs with google on English websites. The German developer community is much smaller than the English community...

3
votes

If the application is for common business or consumer users and the error messages are displayed to them so that they can understand or take some action based on that then I believe it should be translated. If the error messages are purely for logging and troubleshooting then translation should be unnecessary.

2
votes

What about printing them in both languages? The user/local admin knows what is going on and can search it and communicate with the developers.

2
votes

Do not translate exception messages; It might turn to a translation nightmare.

I'm working a lot with Microsoft Office automation. Exception messages that were translated to Hebrew give me a real hard time:

  1. Most of them I can't find on Google/MSDN, so I have to translate them back to English myself just for the sake of googleing it.
  2. Some of them refer to objects by their translated class names. The object classes I'm manipulating (as a programmer) are always named in English. This just makes the messages less understandable.
  3. Some of them are formatted strings, where the message itself is translated but the arguments constructing the message are not; this makes the message even less understandable, and sometimes it means the message won't display properly in a default MsgBox (Right-To-Left languages can be a nightmare).

From my experience, a developer needs his Exception messages in English, so translating those will simply require more effort on both sides, and will not gain you much.

0
votes

There are typically a lot of error messages, and they are typically shown only sporadically. Therefore, translating them sometimes seems too much effort.

0
votes

Depends on the app. A highly technical application that will be used by people that understand English and the target language, you might be OK with English error messages.

If it's a message that will be seen by the end user, it should be translated. Think about if you were using an application that was written by a Japanese developer and you saw an error message in Japanese. That's probably not going to be all that helpful to you -- you won't have any idea what it says, whether or not you could do anything about it.