gettext: Names

 
 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çois".
                 Pronunciation is like "fraa-swa pee-nar".  */
              _("Francois Pinard"));
 
 The GNU gnulib library offers a module ‘propername’
 (<https://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
 <https://en.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.