Localization ============ This software package can output messages in languages other than its default (which is typically English). To operate in this way, you need translation catalogs for the locales you want to support. By convention, a locale's name is the lower-case two-letter ISO 639 code for the name of the locale's language. See for a list of language codes. Here are some example names of locales: de German en English es Spanish fr French ja Japanese ru Russian zh Chinese For a locale with territorial variants, an underscore and the capitalized two-letter ISO 3166 territory code is appended to the locale name. See for a list of territory codes. Here are some example names of locales that are particular to territories: de_CH German in Switzerland en_UK English in the United Kingdom en_US English in the United States fr_BE French in Belgium fr_CA French in Canada fr_CH French in Switzerland zh_TW Chinese in Taiwan If the `message' directory does not have a translation catalog for your locale L, you can write one by copying `message/template.po' to `message3/L.po' and then editing each `msgstr' entry in the copy until it is a faithful translation of the preceding `msgid' entry. * You can omit a msgid-msgstr pair if the two entries are identical. This is commen in en_* locales. * Be careful about msgstr entries that contain `printf'-style formats, e.g. "%s: invalid option -- %c\n"; your translations must have formats for exactly the same arguments, otherwise the program may behave incorrectly. Your C library should support formats like `%2$s' to let you reorder the arguments; if not, your translations must format the arguments in the same order as the originals.