This site has been retired. For up to date information, see handbook.gnome.org or gitlab.gnome.org.


[Home] [TitleIndex] [WordIndex

What should be localized?

A common source for questions is what should be localized and marked for translation. This is of course a broad question without exact and always applicable answers. A good rule of thumb is to reverse the question, and localize and mark for translation everything, with a few exceptions. Such exceptions generally include debug messages that are only intended for the developers themselves, and data such as file names, variable names, binary names etc.

In this context, we classify a debug message as a message that is just there for debugging purposes for the developers themselves and would be incomprehensible to any other technical person that wouldn't have looked at the code in question. Such messages should not be marked for translation. On the other hand, messages that could be of use to any other user or administrator other than the developers should be marked for translation. Fictive examples of the first category we could be:

  "Entered do_funcy_stuff () loop..."
  "Division by zero when calculating sector_size variable"

Messages like this are clearly debuggy to their nature, and are most likely useful to noone but the very developers themselves. As such, they shouldn't be marked for translation. As examples of the second category we could have:

  "Couldn't read the media -- make sure the appropriate kernel modules are loaded"
  "The device couldn't be mounted writable because of a NFS permission issue"
  "Call to cdrecord returned with an error"
  "apm wasn't found"

These messages are of technical nature, yet they aren't only usable for the developers when debugging, but may sometimes help other technical people to resolve an issue themselves. As such, these messages should be marked for translation, since in many places in the world being technical and skilled with administering computers, and having good skills in technical English, isn't necessarily the same.

Sometimes there is a danger of feedback from users that would not be understandable by the developers, due to the error messages reported being translated. However, this can often be avoided by using error codes, which still allows for the descriptive portion of an error message to be translated.

Innocent unmarked messages

Almost anything that may appear to the user in some way or other needs getting marked for translation. Even very innocent messages like a simple "%d" may need to be localized for some language (like Persian, which localizes it to "%Id" to use localized digits in the user interface). Following is a list of examples that need to be marked for translation, but were not in some cases:

Important Note: On the contrary, make sure things that may need to be process by other things later (saved in configuration files or logs, sent over the wire, etc are not marked for localization. Also, if a certain localization should follow a certain non-trivial format, make sure you check the returned localization for errors and fall back to a sane alternative if the translator has made a mistake.


2024-10-23 11:49