gettext: Names
1
1 4.9 Marking Proper Names for Translation
1 ========================================
1
1 Should names of persons, cities, locations etc. be marked for
1 translation or not? People who only know languages that can be written
1 with Latin letters (English, Spanish, French, German, etc.) are tempted
1 to say “no”, because names usually do not change when transported
1 between these languages. However, in general when translating from one
1 script to another, names are translated too, usually phonetically or by
1 transliteration. For example, Russian or Greek names are converted to
1 the Latin alphabet when being translated to English, and English or
1 French names are converted to the Katakana script when being translated
1 to Japanese. This is necessary because the speakers of the target
1 language in general cannot read the script the name is originally
1 written in.
1
1 As a programmer, you should therefore make sure that names are marked
1 for translation, with a special comment telling the translators that it
1 is a proper name and how to pronounce it. In its simple form, it looks
1 like this:
1
1 printf (_("Written by %s.\n"),
1 /* TRANSLATORS: This is a proper name. See the gettext
1 manual, section Names. Note this is actually a non-ASCII
1 name: The first name is (with Unicode escapes)
1 "Fran\u00e7ois" or (with HTML entities) "François".
1 Pronunciation is like "fraa-swa pee-nar". */
1 _("Francois Pinard"));
1
1 The GNU gnulib library offers a module ‘propername’
1 (<http://www.gnu.org/software/gnulib/MODULES.html#module=propername>)
1 which takes care to automatically append the original name, in
1 parentheses, to the translated name. For names that cannot be written
1 in ASCII, it also frees the translator from the task of entering the
1 appropriate non-ASCII characters if no script change is needed. In this
1 more comfortable form, it looks like this:
1
1 printf (_("Written by %s and %s.\n"),
1 proper_name ("Ulrich Drepper"),
1 /* TRANSLATORS: This is a proper name. See the gettext
1 manual, section Names. Note this is actually a non-ASCII
1 name: The first name is (with Unicode escapes)
1 "Fran\u00e7ois" or (with HTML entities) "François".
1 Pronunciation is like "fraa-swa pee-nar". */
1 proper_name_utf8 ("Francois Pinard", "Fran\303\247ois Pinard"));
1
1 You can also write the original name directly in Unicode (rather than
1 with Unicode escapes or HTML entities) and denote the pronunciation
1 using the International Phonetic Alphabet (see
1 <http://www.wikipedia.org/wiki/International_Phonetic_Alphabet>).
1
1 As a translator, you should use some care when translating names,
1 because it is frustrating if people see their names mutilated or
1 distorted.
1
1 If your language uses the Latin script, all you need to do is to
1 reproduce the name as perfectly as you can within the usual character
1 set of your language. In this particular case, this means to provide a
1 translation containing the c-cedilla character. If your language uses a
1 different script and the people speaking it don’t usually read Latin
1 words, it means transliteration. If the programmer used the simple
1 case, you should still give, in parentheses, the original writing of the
1 name – for the sake of the people that do read the Latin script. If the
1 programmer used the ‘propername’ module mentioned above, you don’t need
1 to give the original writing of the name in parentheses, because the
1 program will already do so. Here is an example, using Greek as the
1 target script:
1
1 #. This is a proper name. See the gettext
1 #. manual, section Names. Note this is actually a non-ASCII
1 #. name: The first name is (with Unicode escapes)
1 #. "Fran\u00e7ois" or (with HTML entities) "François".
1 #. Pronunciation is like "fraa-swa pee-nar".
1 msgid "Francois Pinard"
1 msgstr "\phi\rho\alpha\sigma\omicron\alpha \pi\iota\nu\alpha\rho"
1 " (Francois Pinard)"
1
1 Because translation of names is such a sensitive domain, it is a good
1 idea to test your translation before submitting it.
1