### 4.9 Marking Proper Names for Translation

Should names of persons, cities, locations etc. be marked for translation or not? People who only know languages that can be written with Latin letters (English, Spanish, French, German, etc.) are tempted to say “no”, because names usually do not change when transported between these languages. However, in general when translating from one script to another, names are translated too, usually phonetically or by transliteration. For example, Russian or Greek names are converted to the Latin alphabet when being translated to English, and English or French names are converted to the Katakana script when being translated to Japanese. This is necessary because the speakers of the target language in general cannot read the script the name is originally written in.

As a programmer, you should therefore make sure that names are marked for translation, with a special comment telling the translators that it is a proper name and how to pronounce it. In its simple form, it looks like this:

printf (_("Written by %s.\n"),
/* TRANSLATORS: This is a proper name.  See the gettext
manual, section Names.  Note this is actually a non-ASCII
name: The first name is (with Unicode escapes)
"Fran\u00e7ois" or (with HTML entities) "Fran&ccedil;ois".
Pronunciation is like "fraa-swa pee-nar".  */
_("Francois Pinard"));


The GNU gnulib library offers a module ‘propername’ (http://www.gnu.org/software/gnulib/MODULES.html#module=propername) which takes care to automatically append the original name, in parentheses, to the translated name. For names that cannot be written in ASCII, it also frees the translator from the task of entering the appropriate non-ASCII characters if no script change is needed. In this more comfortable form, it looks like this:

printf (_("Written by %s and %s.\n"),
proper_name ("Ulrich Drepper"),
/* TRANSLATORS: This is a proper name.  See the gettext
manual, section Names.  Note this is actually a non-ASCII
name: The first name is (with Unicode escapes)
"Fran\u00e7ois" or (with HTML entities) "Fran&ccedil;ois".
Pronunciation is like "fraa-swa pee-nar".  */
proper_name_utf8 ("Francois Pinard", "Fran\303\247ois Pinard"));


You can also write the original name directly in Unicode (rather than with Unicode escapes or HTML entities) and denote the pronunciation using the International Phonetic Alphabet (see http://www.wikipedia.org/wiki/International_Phonetic_Alphabet).

As a translator, you should use some care when translating names, because it is frustrating if people see their names mutilated or distorted.

If your language uses the Latin script, all you need to do is to reproduce the name as perfectly as you can within the usual character set of your language. In this particular case, this means to provide a translation containing the c-cedilla character. If your language uses a different script and the people speaking it don’t usually read Latin words, it means transliteration. If the programmer used the simple case, you should still give, in parentheses, the original writing of the name – for the sake of the people that do read the Latin script. If the programmer used the ‘propername’ module mentioned above, you don’t need to give the original writing of the name in parentheses, because the program will already do so. Here is an example, using Greek as the target script:

#. This is a proper name.  See the gettext
#. manual, section Names.  Note this is actually a non-ASCII
#. name: The first name is (with Unicode escapes)
#. "Fran\u00e7ois" or (with HTML entities) "Fran&ccedil;ois".
#. Pronunciation is like "fraa-swa pee-nar".
msgid "Francois Pinard"
msgstr "\phi\rho\alpha\sigma\omicron\alpha \pi\iota\nu\alpha\rho"
" (Francois Pinard)"


Because translation of names is such a sensitive domain, it is a good idea to test your translation before submitting it.