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&ccedil;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&ccedil;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