xref: /netbsd-src/external/gpl2/gettext/dist/gettext-tools/doc/gettext_6.html (revision 946379e7b37692fc43f68eb0d1c10daa0a7f3b6c)
1*946379e7Schristos<HTML>
2*946379e7Schristos<HEAD>
3*946379e7Schristos<!-- This HTML file has been created by texi2html 1.52b
4*946379e7Schristos     from gettext.texi on 27 November 2006 -->
5*946379e7Schristos
6*946379e7Schristos<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
7*946379e7Schristos<TITLE>GNU gettext utilities - 6  Creating a New PO File</TITLE>
8*946379e7Schristos</HEAD>
9*946379e7Schristos<BODY>
10*946379e7SchristosGo to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_5.html">previous</A>, <A HREF="gettext_7.html">next</A>, <A HREF="gettext_25.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>.
11*946379e7Schristos<P><HR><P>
12*946379e7Schristos
13*946379e7Schristos
14*946379e7Schristos<H1><A NAME="SEC31" HREF="gettext_toc.html#TOC31">6  Creating a New PO File</A></H1>
15*946379e7Schristos<P>
16*946379e7Schristos<A NAME="IDX216"></A>
17*946379e7Schristos
18*946379e7Schristos</P>
19*946379e7Schristos<P>
20*946379e7SchristosWhen starting a new translation, the translator creates a file called
21*946379e7Schristos<TT>&lsquo;<VAR>LANG</VAR>.po&rsquo;</TT>, as a copy of the <TT>&lsquo;<VAR>package</VAR>.pot&rsquo;</TT> template
22*946379e7Schristosfile with modifications in the initial comments (at the beginning of the file)
23*946379e7Schristosand in the header entry (the first entry, near the beginning of the file).
24*946379e7Schristos
25*946379e7Schristos</P>
26*946379e7Schristos<P>
27*946379e7SchristosThe easiest way to do so is by use of the <SAMP>&lsquo;msginit&rsquo;</SAMP> program.
28*946379e7SchristosFor example:
29*946379e7Schristos
30*946379e7Schristos</P>
31*946379e7Schristos
32*946379e7Schristos<PRE>
33*946379e7Schristos$ cd <VAR>PACKAGE</VAR>-<VAR>VERSION</VAR>
34*946379e7Schristos$ cd po
35*946379e7Schristos$ msginit
36*946379e7Schristos</PRE>
37*946379e7Schristos
38*946379e7Schristos<P>
39*946379e7SchristosThe alternative way is to do the copy and modifications by hand.
40*946379e7SchristosTo do so, the translator copies <TT>&lsquo;<VAR>package</VAR>.pot&rsquo;</TT> to
41*946379e7Schristos<TT>&lsquo;<VAR>LANG</VAR>.po&rsquo;</TT>.  Then she modifies the initial comments and
42*946379e7Schristosthe header entry of this file.
43*946379e7Schristos
44*946379e7Schristos</P>
45*946379e7Schristos
46*946379e7Schristos
47*946379e7Schristos
48*946379e7Schristos<H2><A NAME="SEC32" HREF="gettext_toc.html#TOC32">6.1  Invoking the <CODE>msginit</CODE> Program</A></H2>
49*946379e7Schristos
50*946379e7Schristos<P>
51*946379e7Schristos<A NAME="IDX217"></A>
52*946379e7Schristos<A NAME="IDX218"></A>
53*946379e7Schristos
54*946379e7Schristos<PRE>
55*946379e7Schristosmsginit [<VAR>option</VAR>]
56*946379e7Schristos</PRE>
57*946379e7Schristos
58*946379e7Schristos<P>
59*946379e7Schristos<A NAME="IDX219"></A>
60*946379e7Schristos<A NAME="IDX220"></A>
61*946379e7SchristosThe <CODE>msginit</CODE> program creates a new PO file, initializing the meta
62*946379e7Schristosinformation with values from the user's environment.
63*946379e7Schristos
64*946379e7Schristos</P>
65*946379e7Schristos
66*946379e7Schristos
67*946379e7Schristos<H3><A NAME="SEC33" HREF="gettext_toc.html#TOC33">6.1.1  Input file location</A></H3>
68*946379e7Schristos
69*946379e7Schristos<DL COMPACT>
70*946379e7Schristos
71*946379e7Schristos<DT><SAMP>&lsquo;-i <VAR>inputfile</VAR>&rsquo;</SAMP>
72*946379e7Schristos<DD>
73*946379e7Schristos<DT><SAMP>&lsquo;--input=<VAR>inputfile</VAR>&rsquo;</SAMP>
74*946379e7Schristos<DD>
75*946379e7Schristos<A NAME="IDX221"></A>
76*946379e7Schristos<A NAME="IDX222"></A>
77*946379e7SchristosInput POT file.
78*946379e7Schristos
79*946379e7Schristos</DL>
80*946379e7Schristos
81*946379e7Schristos<P>
82*946379e7SchristosIf no <VAR>inputfile</VAR> is given, the current directory is searched for the
83*946379e7SchristosPOT file.  If it is <SAMP>&lsquo;-&rsquo;</SAMP>, standard input is read.
84*946379e7Schristos
85*946379e7Schristos</P>
86*946379e7Schristos
87*946379e7Schristos
88*946379e7Schristos<H3><A NAME="SEC34" HREF="gettext_toc.html#TOC34">6.1.2  Output file location</A></H3>
89*946379e7Schristos
90*946379e7Schristos<DL COMPACT>
91*946379e7Schristos
92*946379e7Schristos<DT><SAMP>&lsquo;-o <VAR>file</VAR>&rsquo;</SAMP>
93*946379e7Schristos<DD>
94*946379e7Schristos<DT><SAMP>&lsquo;--output-file=<VAR>file</VAR>&rsquo;</SAMP>
95*946379e7Schristos<DD>
96*946379e7Schristos<A NAME="IDX223"></A>
97*946379e7Schristos<A NAME="IDX224"></A>
98*946379e7SchristosWrite output to specified PO file.
99*946379e7Schristos
100*946379e7Schristos</DL>
101*946379e7Schristos
102*946379e7Schristos<P>
103*946379e7SchristosIf no output file is given, it depends on the <SAMP>&lsquo;--locale&rsquo;</SAMP> option or the
104*946379e7Schristosuser's locale setting.  If it is <SAMP>&lsquo;-&rsquo;</SAMP>, the results are written to
105*946379e7Schristosstandard output.
106*946379e7Schristos
107*946379e7Schristos</P>
108*946379e7Schristos
109*946379e7Schristos
110*946379e7Schristos<H3><A NAME="SEC35" HREF="gettext_toc.html#TOC35">6.1.3  Input file syntax</A></H3>
111*946379e7Schristos
112*946379e7Schristos<DL COMPACT>
113*946379e7Schristos
114*946379e7Schristos<DT><SAMP>&lsquo;-P&rsquo;</SAMP>
115*946379e7Schristos<DD>
116*946379e7Schristos<DT><SAMP>&lsquo;--properties-input&rsquo;</SAMP>
117*946379e7Schristos<DD>
118*946379e7Schristos<A NAME="IDX225"></A>
119*946379e7Schristos<A NAME="IDX226"></A>
120*946379e7SchristosAssume the input file is a Java ResourceBundle in Java <CODE>.properties</CODE>
121*946379e7Schristossyntax, not in PO file syntax.
122*946379e7Schristos
123*946379e7Schristos<DT><SAMP>&lsquo;--stringtable-input&rsquo;</SAMP>
124*946379e7Schristos<DD>
125*946379e7Schristos<A NAME="IDX227"></A>
126*946379e7SchristosAssume the input file is a NeXTstep/GNUstep localized resource file in
127*946379e7Schristos<CODE>.strings</CODE> syntax, not in PO file syntax.
128*946379e7Schristos
129*946379e7Schristos</DL>
130*946379e7Schristos
131*946379e7Schristos
132*946379e7Schristos
133*946379e7Schristos<H3><A NAME="SEC36" HREF="gettext_toc.html#TOC36">6.1.4  Output details</A></H3>
134*946379e7Schristos
135*946379e7Schristos<DL COMPACT>
136*946379e7Schristos
137*946379e7Schristos<DT><SAMP>&lsquo;-l <VAR>ll_CC</VAR>&rsquo;</SAMP>
138*946379e7Schristos<DD>
139*946379e7Schristos<DT><SAMP>&lsquo;--locale=<VAR>ll_CC</VAR>&rsquo;</SAMP>
140*946379e7Schristos<DD>
141*946379e7Schristos<A NAME="IDX228"></A>
142*946379e7Schristos<A NAME="IDX229"></A>
143*946379e7SchristosSet target locale.  <VAR>ll</VAR> should be a language code, and <VAR>CC</VAR> should
144*946379e7Schristosbe a country code.  The command <SAMP>&lsquo;locale -a&rsquo;</SAMP> can be used to output a list
145*946379e7Schristosof all installed locales.  The default is the user's locale setting.
146*946379e7Schristos
147*946379e7Schristos<DT><SAMP>&lsquo;--no-translator&rsquo;</SAMP>
148*946379e7Schristos<DD>
149*946379e7Schristos<A NAME="IDX230"></A>
150*946379e7SchristosDeclares that the PO file will not have a human translator and is instead
151*946379e7Schristosautomatically generated.
152*946379e7Schristos
153*946379e7Schristos<DT><SAMP>&lsquo;-p&rsquo;</SAMP>
154*946379e7Schristos<DD>
155*946379e7Schristos<DT><SAMP>&lsquo;--properties-output&rsquo;</SAMP>
156*946379e7Schristos<DD>
157*946379e7Schristos<A NAME="IDX231"></A>
158*946379e7Schristos<A NAME="IDX232"></A>
159*946379e7SchristosWrite out a Java ResourceBundle in Java <CODE>.properties</CODE> syntax.  Note
160*946379e7Schristosthat this file format doesn't support plural forms and silently drops
161*946379e7Schristosobsolete messages.
162*946379e7Schristos
163*946379e7Schristos<DT><SAMP>&lsquo;--stringtable-output&rsquo;</SAMP>
164*946379e7Schristos<DD>
165*946379e7Schristos<A NAME="IDX233"></A>
166*946379e7SchristosWrite out a NeXTstep/GNUstep localized resource file in <CODE>.strings</CODE> syntax.
167*946379e7SchristosNote that this file format doesn't support plural forms.
168*946379e7Schristos
169*946379e7Schristos<DT><SAMP>&lsquo;-w <VAR>number</VAR>&rsquo;</SAMP>
170*946379e7Schristos<DD>
171*946379e7Schristos<DT><SAMP>&lsquo;--width=<VAR>number</VAR>&rsquo;</SAMP>
172*946379e7Schristos<DD>
173*946379e7Schristos<A NAME="IDX234"></A>
174*946379e7Schristos<A NAME="IDX235"></A>
175*946379e7SchristosSet the output page width.  Long strings in the output files will be
176*946379e7Schristossplit across multiple lines in order to ensure that each line's width
177*946379e7Schristos(= number of screen columns) is less or equal to the given <VAR>number</VAR>.
178*946379e7Schristos
179*946379e7Schristos<DT><SAMP>&lsquo;--no-wrap&rsquo;</SAMP>
180*946379e7Schristos<DD>
181*946379e7Schristos<A NAME="IDX236"></A>
182*946379e7SchristosDo not break long message lines.  Message lines whose width exceeds the
183*946379e7Schristosoutput page width will not be split into several lines.  Only file reference
184*946379e7Schristoslines which are wider than the output page width will be split.
185*946379e7Schristos
186*946379e7Schristos</DL>
187*946379e7Schristos
188*946379e7Schristos
189*946379e7Schristos
190*946379e7Schristos<H3><A NAME="SEC37" HREF="gettext_toc.html#TOC37">6.1.5  Informative output</A></H3>
191*946379e7Schristos
192*946379e7Schristos<DL COMPACT>
193*946379e7Schristos
194*946379e7Schristos<DT><SAMP>&lsquo;-h&rsquo;</SAMP>
195*946379e7Schristos<DD>
196*946379e7Schristos<DT><SAMP>&lsquo;--help&rsquo;</SAMP>
197*946379e7Schristos<DD>
198*946379e7Schristos<A NAME="IDX237"></A>
199*946379e7Schristos<A NAME="IDX238"></A>
200*946379e7SchristosDisplay this help and exit.
201*946379e7Schristos
202*946379e7Schristos<DT><SAMP>&lsquo;-V&rsquo;</SAMP>
203*946379e7Schristos<DD>
204*946379e7Schristos<DT><SAMP>&lsquo;--version&rsquo;</SAMP>
205*946379e7Schristos<DD>
206*946379e7Schristos<A NAME="IDX239"></A>
207*946379e7Schristos<A NAME="IDX240"></A>
208*946379e7SchristosOutput version information and exit.
209*946379e7Schristos
210*946379e7Schristos</DL>
211*946379e7Schristos
212*946379e7Schristos
213*946379e7Schristos
214*946379e7Schristos<H2><A NAME="SEC38" HREF="gettext_toc.html#TOC38">6.2  Filling in the Header Entry</A></H2>
215*946379e7Schristos<P>
216*946379e7Schristos<A NAME="IDX241"></A>
217*946379e7Schristos
218*946379e7Schristos</P>
219*946379e7Schristos<P>
220*946379e7SchristosThe initial comments "SOME DESCRIPTIVE TITLE", "YEAR" and
221*946379e7Schristos"FIRST AUTHOR &#60;EMAIL@ADDRESS&#62;, YEAR" ought to be replaced by sensible
222*946379e7Schristosinformation.  This can be done in any text editor; if Emacs is used
223*946379e7Schristosand it switched to PO mode automatically (because it has recognized
224*946379e7Schristosthe file's suffix), you can disable it by typing <KBD>M-x fundamental-mode</KBD>.
225*946379e7Schristos
226*946379e7Schristos</P>
227*946379e7Schristos<P>
228*946379e7SchristosModifying the header entry can already be done using PO mode: in Emacs,
229*946379e7Schristostype <KBD>M-x po-mode RET</KBD> and then <KBD>RET</KBD> again to start editing the
230*946379e7Schristosentry.  You should fill in the following fields.
231*946379e7Schristos
232*946379e7Schristos</P>
233*946379e7Schristos<DL COMPACT>
234*946379e7Schristos
235*946379e7Schristos<DT>Project-Id-Version
236*946379e7Schristos<DD>
237*946379e7SchristosThis is the name and version of the package.
238*946379e7Schristos
239*946379e7Schristos<DT>Report-Msgid-Bugs-To
240*946379e7Schristos<DD>
241*946379e7SchristosThis has already been filled in by <CODE>xgettext</CODE>.  It contains an email
242*946379e7Schristosaddress or URL where you can report bugs in the untranslated strings:
243*946379e7Schristos
244*946379e7Schristos
245*946379e7Schristos<UL>
246*946379e7Schristos<LI>Strings which are not entire sentences, see the maintainer guidelines
247*946379e7Schristos
248*946379e7Schristosin section <A HREF="gettext_4.html#SEC14">4.3  Preparing Translatable Strings</A>.
249*946379e7Schristos<LI>Strings which use unclear terms or require additional context to be
250*946379e7Schristos
251*946379e7Schristosunderstood.
252*946379e7Schristos<LI>Strings which make invalid assumptions about notation of date, time or
253*946379e7Schristos
254*946379e7Schristosmoney.
255*946379e7Schristos<LI>Pluralisation problems.
256*946379e7Schristos
257*946379e7Schristos<LI>Incorrect English spelling.
258*946379e7Schristos
259*946379e7Schristos<LI>Incorrect formatting.
260*946379e7Schristos
261*946379e7Schristos</UL>
262*946379e7Schristos
263*946379e7Schristos<DT>POT-Creation-Date
264*946379e7Schristos<DD>
265*946379e7SchristosThis has already been filled in by <CODE>xgettext</CODE>.
266*946379e7Schristos
267*946379e7Schristos<DT>PO-Revision-Date
268*946379e7Schristos<DD>
269*946379e7SchristosYou don't need to fill this in.  It will be filled by the PO file editor
270*946379e7Schristoswhen you save the file.
271*946379e7Schristos
272*946379e7Schristos<DT>Last-Translator
273*946379e7Schristos<DD>
274*946379e7SchristosFill in your name and email address (without double quotes).
275*946379e7Schristos
276*946379e7Schristos<DT>Language-Team
277*946379e7Schristos<DD>
278*946379e7SchristosFill in the English name of the language, and the email address or
279*946379e7Schristoshomepage URL of the language team you are part of.
280*946379e7Schristos
281*946379e7SchristosBefore starting a translation, it is a good idea to get in touch with
282*946379e7Schristosyour translation team, not only to make sure you don't do duplicated work,
283*946379e7Schristosbut also to coordinate difficult linguistic issues.
284*946379e7Schristos
285*946379e7Schristos<A NAME="IDX242"></A>
286*946379e7SchristosIn the Free Translation Project, each translation team has its own mailing
287*946379e7Schristoslist.  The up-to-date list of teams can be found at the Free Translation
288*946379e7SchristosProject's homepage, <A HREF="http://www.iro.umontreal.ca/contrib/po/HTML/">http://www.iro.umontreal.ca/contrib/po/HTML/</A>,
289*946379e7Schristosin the "National teams" area.
290*946379e7Schristos
291*946379e7Schristos<DT>Content-Type
292*946379e7Schristos<DD>
293*946379e7Schristos<A NAME="IDX243"></A>
294*946379e7Schristos<A NAME="IDX244"></A>
295*946379e7SchristosReplace <SAMP>&lsquo;CHARSET&rsquo;</SAMP> with the character encoding used for your language,
296*946379e7Schristosin your locale, or UTF-8.  This field is needed for correct operation of the
297*946379e7Schristos<CODE>msgmerge</CODE> and <CODE>msgfmt</CODE> programs, as well as for users whose
298*946379e7Schristoslocale's character encoding differs from yours (see section <A HREF="gettext_11.html#SEC172">11.2.4  How to specify the output character set <CODE>gettext</CODE> uses</A>).
299*946379e7Schristos
300*946379e7Schristos<A NAME="IDX245"></A>
301*946379e7SchristosYou get the character encoding of your locale by running the shell command
302*946379e7Schristos<SAMP>&lsquo;locale charmap&rsquo;</SAMP>.  If the result is <SAMP>&lsquo;C&rsquo;</SAMP> or <SAMP>&lsquo;ANSI_X3.4-1968&rsquo;</SAMP>,
303*946379e7Schristoswhich is equivalent to <SAMP>&lsquo;ASCII&rsquo;</SAMP> (= <SAMP>&lsquo;US-ASCII&rsquo;</SAMP>), it means that your
304*946379e7Schristoslocale is not correctly configured.  In this case, ask your translation
305*946379e7Schristosteam which charset to use.  <SAMP>&lsquo;ASCII&rsquo;</SAMP> is not usable for any language
306*946379e7Schristosexcept Latin.
307*946379e7Schristos
308*946379e7Schristos<A NAME="IDX246"></A>
309*946379e7SchristosBecause the PO files must be portable to operating systems with less advanced
310*946379e7Schristosinternationalization facilities, the character encodings that can be used
311*946379e7Schristosare limited to those supported by both GNU <CODE>libc</CODE> and GNU
312*946379e7Schristos<CODE>libiconv</CODE>.  These are:
313*946379e7Schristos<CODE>ASCII</CODE>, <CODE>ISO-8859-1</CODE>, <CODE>ISO-8859-2</CODE>, <CODE>ISO-8859-3</CODE>,
314*946379e7Schristos<CODE>ISO-8859-4</CODE>, <CODE>ISO-8859-5</CODE>, <CODE>ISO-8859-6</CODE>, <CODE>ISO-8859-7</CODE>,
315*946379e7Schristos<CODE>ISO-8859-8</CODE>, <CODE>ISO-8859-9</CODE>, <CODE>ISO-8859-13</CODE>, <CODE>ISO-8859-14</CODE>,
316*946379e7Schristos<CODE>ISO-8859-15</CODE>,
317*946379e7Schristos<CODE>KOI8-R</CODE>, <CODE>KOI8-U</CODE>, <CODE>KOI8-T</CODE>,
318*946379e7Schristos<CODE>CP850</CODE>, <CODE>CP866</CODE>, <CODE>CP874</CODE>,
319*946379e7Schristos<CODE>CP932</CODE>, <CODE>CP949</CODE>, <CODE>CP950</CODE>, <CODE>CP1250</CODE>, <CODE>CP1251</CODE>,
320*946379e7Schristos<CODE>CP1252</CODE>, <CODE>CP1253</CODE>, <CODE>CP1254</CODE>, <CODE>CP1255</CODE>, <CODE>CP1256</CODE>,
321*946379e7Schristos<CODE>CP1257</CODE>, <CODE>GB2312</CODE>, <CODE>EUC-JP</CODE>, <CODE>EUC-KR</CODE>, <CODE>EUC-TW</CODE>,
322*946379e7Schristos<CODE>BIG5</CODE>, <CODE>BIG5-HKSCS</CODE>, <CODE>GBK</CODE>, <CODE>GB18030</CODE>, <CODE>SHIFT_JIS</CODE>,
323*946379e7Schristos<CODE>JOHAB</CODE>, <CODE>TIS-620</CODE>, <CODE>VISCII</CODE>, <CODE>GEORGIAN-PS</CODE>, <CODE>UTF-8</CODE>.
324*946379e7Schristos
325*946379e7Schristos<A NAME="IDX247"></A>
326*946379e7SchristosIn the GNU system, the following encodings are frequently used for the
327*946379e7Schristoscorresponding languages.
328*946379e7Schristos
329*946379e7Schristos<A NAME="IDX248"></A>
330*946379e7Schristos
331*946379e7Schristos<UL>
332*946379e7Schristos<LI><CODE>ISO-8859-1</CODE> for
333*946379e7Schristos
334*946379e7SchristosAfrikaans, Albanian, Basque, Breton, Catalan, Cornish, Danish, Dutch,
335*946379e7SchristosEnglish, Estonian, Faroese, Finnish, French, Galician, German,
336*946379e7SchristosGreenlandic, Icelandic, Indonesian, Irish, Italian, Malay, Manx,
337*946379e7SchristosNorwegian, Occitan, Portuguese, Spanish, Swedish, Tagalog, Uzbek,
338*946379e7SchristosWalloon,
339*946379e7Schristos<LI><CODE>ISO-8859-2</CODE> for
340*946379e7Schristos
341*946379e7SchristosBosnian, Croatian, Czech, Hungarian, Polish, Romanian, Serbian, Slovak,
342*946379e7SchristosSlovenian,
343*946379e7Schristos<LI><CODE>ISO-8859-3</CODE> for Maltese,
344*946379e7Schristos
345*946379e7Schristos<LI><CODE>ISO-8859-5</CODE> for Macedonian, Serbian,
346*946379e7Schristos
347*946379e7Schristos<LI><CODE>ISO-8859-6</CODE> for Arabic,
348*946379e7Schristos
349*946379e7Schristos<LI><CODE>ISO-8859-7</CODE> for Greek,
350*946379e7Schristos
351*946379e7Schristos<LI><CODE>ISO-8859-8</CODE> for Hebrew,
352*946379e7Schristos
353*946379e7Schristos<LI><CODE>ISO-8859-9</CODE> for Turkish,
354*946379e7Schristos
355*946379e7Schristos<LI><CODE>ISO-8859-13</CODE> for Latvian, Lithuanian, Maori,
356*946379e7Schristos
357*946379e7Schristos<LI><CODE>ISO-8859-14</CODE> for Welsh,
358*946379e7Schristos
359*946379e7Schristos<LI><CODE>ISO-8859-15</CODE> for
360*946379e7Schristos
361*946379e7SchristosBasque, Catalan, Dutch, English, Finnish, French, Galician, German, Irish,
362*946379e7SchristosItalian, Portuguese, Spanish, Swedish, Walloon,
363*946379e7Schristos<LI><CODE>KOI8-R</CODE> for Russian,
364*946379e7Schristos
365*946379e7Schristos<LI><CODE>KOI8-U</CODE> for Ukrainian,
366*946379e7Schristos
367*946379e7Schristos<LI><CODE>KOI8-T</CODE> for Tajik,
368*946379e7Schristos
369*946379e7Schristos<LI><CODE>CP1251</CODE> for Bulgarian, Byelorussian,
370*946379e7Schristos
371*946379e7Schristos<LI><CODE>GB2312</CODE>, <CODE>GBK</CODE>, <CODE>GB18030</CODE>
372*946379e7Schristos
373*946379e7Schristosfor simplified writing of Chinese,
374*946379e7Schristos<LI><CODE>BIG5</CODE>, <CODE>BIG5-HKSCS</CODE>
375*946379e7Schristos
376*946379e7Schristosfor traditional writing of Chinese,
377*946379e7Schristos<LI><CODE>EUC-JP</CODE> for Japanese,
378*946379e7Schristos
379*946379e7Schristos<LI><CODE>EUC-KR</CODE> for Korean,
380*946379e7Schristos
381*946379e7Schristos<LI><CODE>TIS-620</CODE> for Thai,
382*946379e7Schristos
383*946379e7Schristos<LI><CODE>GEORGIAN-PS</CODE> for Georgian,
384*946379e7Schristos
385*946379e7Schristos<LI><CODE>UTF-8</CODE> for any language, including those listed above.
386*946379e7Schristos
387*946379e7Schristos</UL>
388*946379e7Schristos
389*946379e7Schristos<A NAME="IDX249"></A>
390*946379e7Schristos<A NAME="IDX250"></A>
391*946379e7SchristosWhen single quote characters or double quote characters are used in
392*946379e7Schristostranslations for your language, and your locale's encoding is one of the
393*946379e7SchristosISO-8859-* charsets, it is best if you create your PO files in UTF-8
394*946379e7Schristosencoding, instead of your locale's encoding.  This is because in UTF-8
395*946379e7Schristosthe real quote characters can be represented (single quote characters:
396*946379e7SchristosU+2018, U+2019, double quote characters: U+201C, U+201D), whereas none of
397*946379e7SchristosISO-8859-* charsets has them all.  Users in UTF-8 locales will see the
398*946379e7Schristosreal quote characters, whereas users in ISO-8859-* locales will see the
399*946379e7Schristosvertical apostrophe and the vertical double quote instead (because that's
400*946379e7Schristoswhat the character set conversion will transliterate them to).
401*946379e7Schristos
402*946379e7Schristos<A NAME="IDX251"></A>
403*946379e7SchristosTo enter such quote characters under X11, you can change your keyboard
404*946379e7Schristosmapping using the <CODE>xmodmap</CODE> program.  The X11 names of the quote
405*946379e7Schristoscharacters are "leftsinglequotemark", "rightsinglequotemark",
406*946379e7Schristos"leftdoublequotemark", "rightdoublequotemark", "singlelowquotemark",
407*946379e7Schristos"doublelowquotemark".
408*946379e7Schristos
409*946379e7SchristosNote that only recent versions of GNU Emacs support the UTF-8 encoding:
410*946379e7SchristosEmacs 20 with Mule-UCS, and Emacs 21.  As of January 2001, XEmacs doesn't
411*946379e7Schristossupport the UTF-8 encoding.
412*946379e7Schristos
413*946379e7SchristosThe character encoding name can be written in either upper or lower case.
414*946379e7SchristosUsually upper case is preferred.
415*946379e7Schristos
416*946379e7Schristos<DT>Content-Transfer-Encoding
417*946379e7Schristos<DD>
418*946379e7SchristosSet this to <CODE>8bit</CODE>.
419*946379e7Schristos
420*946379e7Schristos<DT>Plural-Forms
421*946379e7Schristos<DD>
422*946379e7SchristosThis field is optional.  It is only needed if the PO file has plural forms.
423*946379e7SchristosYou can find them by searching for the <SAMP>&lsquo;msgid_plural&rsquo;</SAMP> keyword.  The
424*946379e7Schristosformat of the plural forms field is described in section <A HREF="gettext_11.html#SEC174">11.2.6  Additional functions for plural forms</A>.
425*946379e7Schristos</DL>
426*946379e7Schristos
427*946379e7Schristos<P><HR><P>
428*946379e7SchristosGo to the <A HREF="gettext_1.html">first</A>, <A HREF="gettext_5.html">previous</A>, <A HREF="gettext_7.html">next</A>, <A HREF="gettext_25.html">last</A> section, <A HREF="gettext_toc.html">table of contents</A>.
429*946379e7Schristos</BODY>
430*946379e7Schristos</HTML>
431