When starting a new translation, the translator creates a file called ‘LANG.po’, as a copy of the ‘package.pot’ template file with modifications in the initial comments (at the beginning of the file) and in the header entry (the first entry, near the beginning of the file).
The easiest way to do so is by use of the ‘msginit’ program. For example:
$ cd PACKAGE-VERSION $ cd po $ msginit
The alternative way is to do the copy and modifications by hand. To do so, the translator copies ‘package.pot’ to ‘LANG.po’. Then she modifies the initial comments and the header entry of this file.
msginit
Programmsginit [option]
The msginit
program creates a new PO file, initializing the meta
information with values from the user's environment.
If no inputfile is given, the current directory is searched for the POT file. If it is ‘-’, standard input is read.
If no output file is given, it depends on the ‘--locale’ option or the user's locale setting. If it is ‘-’, the results are written to standard output.
.properties
syntax, not in PO file syntax.
.strings
syntax, not in PO file syntax.
.properties
syntax. Note
that this file format doesn't support plural forms and silently drops
obsolete messages.
.strings
syntax.
Note that this file format doesn't support plural forms.
The initial comments "SOME DESCRIPTIVE TITLE", "YEAR" and "FIRST AUTHOR <EMAIL@ADDRESS>, YEAR" ought to be replaced by sensible information. This can be done in any text editor; if Emacs is used and it switched to PO mode automatically (because it has recognized the file's suffix), you can disable it by typing M-x fundamental-mode.
Modifying the header entry can already be done using PO mode: in Emacs, type M-x po-mode RET and then RET again to start editing the entry. You should fill in the following fields.
xgettext
. It contains an email
address or URL where you can report bugs in the untranslated strings:
xgettext
.
msgmerge
and msgfmt
programs, as well as for users whose
locale's character encoding differs from yours (see section 11.2.4 How to specify the output character set gettext
uses).
You get the character encoding of your locale by running the shell command
‘locale charmap’. If the result is ‘C’ or ‘ANSI_X3.4-1968’,
which is equivalent to ‘ASCII’ (= ‘US-ASCII’), it means that your
locale is not correctly configured. In this case, ask your translation
team which charset to use. ‘ASCII’ is not usable for any language
except Latin.
Because the PO files must be portable to operating systems with less advanced
internationalization facilities, the character encodings that can be used
are limited to those supported by both GNU libc
and GNU
libiconv
. These are:
ASCII
, ISO-8859-1
, ISO-8859-2
, ISO-8859-3
,
ISO-8859-4
, ISO-8859-5
, ISO-8859-6
, ISO-8859-7
,
ISO-8859-8
, ISO-8859-9
, ISO-8859-13
, ISO-8859-14
,
ISO-8859-15
,
KOI8-R
, KOI8-U
, KOI8-T
,
CP850
, CP866
, CP874
,
CP932
, CP949
, CP950
, CP1250
, CP1251
,
CP1252
, CP1253
, CP1254
, CP1255
, CP1256
,
CP1257
, GB2312
, EUC-JP
, EUC-KR
, EUC-TW
,
BIG5
, BIG5-HKSCS
, GBK
, GB18030
, SHIFT_JIS
,
JOHAB
, TIS-620
, VISCII
, GEORGIAN-PS
, UTF-8
.
In the GNU system, the following encodings are frequently used for the
corresponding languages.
ISO-8859-1
for
Afrikaans, Albanian, Basque, Breton, Catalan, Cornish, Danish, Dutch,
English, Estonian, Faroese, Finnish, French, Galician, German,
Greenlandic, Icelandic, Indonesian, Irish, Italian, Malay, Manx,
Norwegian, Occitan, Portuguese, Spanish, Swedish, Tagalog, Uzbek,
Walloon,
ISO-8859-2
for
Bosnian, Croatian, Czech, Hungarian, Polish, Romanian, Serbian, Slovak,
Slovenian,
ISO-8859-3
for Maltese,
ISO-8859-5
for Macedonian, Serbian,
ISO-8859-6
for Arabic,
ISO-8859-7
for Greek,
ISO-8859-8
for Hebrew,
ISO-8859-9
for Turkish,
ISO-8859-13
for Latvian, Lithuanian, Maori,
ISO-8859-14
for Welsh,
ISO-8859-15
for
Basque, Catalan, Dutch, English, Finnish, French, Galician, German, Irish,
Italian, Portuguese, Spanish, Swedish, Walloon,
KOI8-R
for Russian,
KOI8-U
for Ukrainian,
KOI8-T
for Tajik,
CP1251
for Bulgarian, Byelorussian,
GB2312
, GBK
, GB18030
for simplified writing of Chinese,
BIG5
, BIG5-HKSCS
for traditional writing of Chinese,
EUC-JP
for Japanese,
EUC-KR
for Korean,
TIS-620
for Thai,
GEORGIAN-PS
for Georgian,
UTF-8
for any language, including those listed above.
xmodmap
program. The X11 names of the quote
characters are "leftsinglequotemark", "rightsinglequotemark",
"leftdoublequotemark", "rightdoublequotemark", "singlelowquotemark",
"doublelowquotemark".
Note that only recent versions of GNU Emacs support the UTF-8 encoding:
Emacs 20 with Mule-UCS, and Emacs 21. As of January 2001, XEmacs doesn't
support the UTF-8 encoding.
The character encoding name can be written in either upper or lower case.
Usually upper case is preferred.
8bit
.
Go to the first, previous, next, last section, table of contents.