Is it "right" to translate error messages?
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:
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?)
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."
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 transla开发者_C百科tion 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.
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.
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.
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...
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.
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.
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:
- 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.
- 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.
- 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.
There are typically a lot of error messages, and they are typically shown only sporadically. Therefore, translating them sometimes seems too much effort.
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.
精彩评论