localedb.xml revision e9fcaa8a
1e9fcaa8aSmrg<?xml version="1.0" encoding="UTF-8" ?>
2e9fcaa8aSmrg<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
3e9fcaa8aSmrg                   "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
4e9fcaa8aSmrg
5e9fcaa8aSmrg<book id="localedbspec">
6e9fcaa8aSmrg
7e9fcaa8aSmrg<bookinfo>
8e9fcaa8aSmrg   <title>X Locale Database Specification</title>
9e9fcaa8aSmrg   <authorgroup>
10e9fcaa8aSmrg      <author>
11e9fcaa8aSmrg         <firstname>Yoshio</firstname><surname>Horiuchi</surname>
12e9fcaa8aSmrg         <affiliation><orgname>IBM Japan</orgname></affiliation>
13e9fcaa8aSmrg      </author>
14e9fcaa8aSmrg   </authorgroup>
15e9fcaa8aSmrg   <copyright><year>1994</year><holder>IBM Corporation</holder></copyright>
16e9fcaa8aSmrg   <copyright><year>1994</year><holder>X Consortium</holder></copyright>
17e9fcaa8aSmrg
18e9fcaa8aSmrg
19e9fcaa8aSmrg<legalnotice>
20e9fcaa8aSmrg
21e9fcaa8aSmrg<para>
22e9fcaa8aSmrgLicense to use, copy, modify, and distribute this software and its documentation for
23e9fcaa8aSmrgany purpose and without fee is hereby granted, provided that the above copyright notice
24e9fcaa8aSmrgappear in all copies and that both that copyright notice and this permission notice
25e9fcaa8aSmrgappear in supporting documentation, and that the name of IBM not be used in advertising
26e9fcaa8aSmrgor publicity pertaining to distribution of the software without specific, written
27e9fcaa8aSmrgprior permission.
28e9fcaa8aSmrg</para>
29e9fcaa8aSmrg<para>
30e9fcaa8aSmrgIBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
31e9fcaa8aSmrgWARRANTIES OF MERCHANTABILITY, FITNESS, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS,
32e9fcaa8aSmrgIN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES
33e9fcaa8aSmrgOR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
34e9fcaa8aSmrgAN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
35e9fcaa8aSmrgWITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
36e9fcaa8aSmrg</para>
37e9fcaa8aSmrg
38e9fcaa8aSmrg<para>
39e9fcaa8aSmrgPermission is hereby granted, free of charge, to any person obtaining a copy
40e9fcaa8aSmrgof this software and associated documentation files
41e9fcaa8aSmrg(the &ldquo;Software&rdquo;), to deal in the Software without restriction,
42e9fcaa8aSmrgincluding without limitation the rights to use, copy, modify, merge, publish,
43e9fcaa8aSmrgdistribute, sublicense, and/or sell copies of the Software, and to permit
44e9fcaa8aSmrgpersons to whom the Software is furnished to do so, subject to the following
45e9fcaa8aSmrgconditions:
46e9fcaa8aSmrg</para>
47e9fcaa8aSmrg
48e9fcaa8aSmrg<para>
49e9fcaa8aSmrgThe above copyright notice and this permission notice shall be included in all
50e9fcaa8aSmrgcopies or substantial portions of the Software.
51e9fcaa8aSmrg</para>
52e9fcaa8aSmrg
53e9fcaa8aSmrg<para>
54e9fcaa8aSmrgTHE SOFTWARE IS PROVIDED &ldquo;AS IS&rdquo;, WITHOUT WARRANTY OF ANY KIND,
55e9fcaa8aSmrgEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
56e9fcaa8aSmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN
57e9fcaa8aSmrgNO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
58e9fcaa8aSmrgLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
59e9fcaa8aSmrgOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
60e9fcaa8aSmrgTHE SOFTWARE.
61e9fcaa8aSmrg</para>
62e9fcaa8aSmrg
63e9fcaa8aSmrg<para>
64e9fcaa8aSmrgExcept as contained in this notice, the name of The Open Group shall not
65e9fcaa8aSmrgbe used in advertising or otherwise to promote the sale, use or other dealings
66e9fcaa8aSmrgin this Software without prior written authorization from X Consortium.
67e9fcaa8aSmrg</para>
68e9fcaa8aSmrg
69e9fcaa8aSmrg<para>X Window System is a trademark of The Open Group.</para>
70e9fcaa8aSmrg
71e9fcaa8aSmrg</legalnotice>
72e9fcaa8aSmrg</bookinfo>
73e9fcaa8aSmrg
74e9fcaa8aSmrg<chapter id="localedb">
75e9fcaa8aSmrg<title>LocaleDB</title>
76e9fcaa8aSmrg
77e9fcaa8aSmrg<sect1 id="General">
78e9fcaa8aSmrg<title>General</title>
79e9fcaa8aSmrg<para>
80e9fcaa8aSmrgAn X Locale Database contains the subset of a user's environment that
81e9fcaa8aSmrgdepends on language, in X Window System.  It is made up from one or more
82e9fcaa8aSmrgcategories.  Each category consists of some classes and sub-classes.
83e9fcaa8aSmrg</para>
84e9fcaa8aSmrg
85e9fcaa8aSmrg<para>
86e9fcaa8aSmrgIt is provided as a plain ASCII text file, so a user can change its
87e9fcaa8aSmrgcontents easily.  It allows a user to customize the behavior of
88e9fcaa8aSmrginternationalized portion of Xlib without changing Xlib itself.
89e9fcaa8aSmrg</para>
90e9fcaa8aSmrg
91e9fcaa8aSmrg<para>
92e9fcaa8aSmrgThis document describes;
93e9fcaa8aSmrg</para>
94e9fcaa8aSmrg
95e9fcaa8aSmrg<itemizedlist>
96e9fcaa8aSmrg  <listitem>
97e9fcaa8aSmrg    <para>
98e9fcaa8aSmrgDatabase Format Definition
99e9fcaa8aSmrg    </para>
100e9fcaa8aSmrg  </listitem>
101e9fcaa8aSmrg  <listitem>
102e9fcaa8aSmrg    <para>
103e9fcaa8aSmrgContents of Database in sample implementation
104e9fcaa8aSmrg<!-- .RE -->
105e9fcaa8aSmrg    </para>
106e9fcaa8aSmrg  </listitem>
107e9fcaa8aSmrg</itemizedlist>
108e9fcaa8aSmrg
109e9fcaa8aSmrg<para>
110e9fcaa8aSmrgSince it is hard to define the set of required information for all
111e9fcaa8aSmrgplatforms, only the flexible database format is defined.
112e9fcaa8aSmrgThe available entries in database are implementation dependent.
113e9fcaa8aSmrg</para>
114e9fcaa8aSmrg
115e9fcaa8aSmrg</sect1>
116e9fcaa8aSmrg<sect1 id="Database_Format_Definition">
117e9fcaa8aSmrg<title>Database Format Definition</title>
118e9fcaa8aSmrg<para>
119e9fcaa8aSmrgThe X Locale Database contains one or more category definitions.
120e9fcaa8aSmrgThis section describes the format of each category definition.
121e9fcaa8aSmrg</para>
122e9fcaa8aSmrg
123e9fcaa8aSmrg<para>
124e9fcaa8aSmrgThe category definition consists of one or more class definitions.
125e9fcaa8aSmrgEach class definition has a pair of class name and class value, or
126e9fcaa8aSmrghas several subclasses which are enclosed by the left brace ({) and
127e9fcaa8aSmrgthe right brace (}).
128e9fcaa8aSmrg</para>
129e9fcaa8aSmrg
130e9fcaa8aSmrg<para>
131e9fcaa8aSmrgComments can be placed by using the number sign character (#).
132e9fcaa8aSmrgPutting the number sign character on the top of the line indicates
133e9fcaa8aSmrgthat the entire line is comment.  Also, putting any whitespace character
134e9fcaa8aSmrgfollowed by the number sign character indicates that a part of the line
135e9fcaa8aSmrg(from the number sign to the end of the line) is comment.
136e9fcaa8aSmrgA line can be continued by placing backslash (\) character as the
137e9fcaa8aSmrglast character on the line;  this continuation character will be
138e9fcaa8aSmrgdiscarded from the input.  Comment lines cannot be continued on
139e9fcaa8aSmrga subsequent line using an escaped new line character.
140e9fcaa8aSmrg</para>
141e9fcaa8aSmrg
142e9fcaa8aSmrg<para>
143e9fcaa8aSmrgX Locale Database only accepts XPCS, the X Portable Character Set.
144e9fcaa8aSmrgThe reserved symbols are;  the quotation mark("), the number sign (#),
145e9fcaa8aSmrgthe semicolon(;), the backslash(\), the left brace({) and
146e9fcaa8aSmrgthe right brace(}).
147e9fcaa8aSmrg</para>
148e9fcaa8aSmrg
149e9fcaa8aSmrg<para>
150e9fcaa8aSmrgThe format of category definition is;
151e9fcaa8aSmrg</para>
152e9fcaa8aSmrg
153e9fcaa8aSmrg<informaltable frame="none">
154e9fcaa8aSmrg  <tgroup cols='3' align='left'>
155e9fcaa8aSmrg  <colspec colname='c1' colwidth="3*" colsep="0"/>
156e9fcaa8aSmrg  <colspec colname='c2' colwidth="1*" colsep="0"/>
157e9fcaa8aSmrg  <colspec colname='c3' colwidth="6*" colsep="0"/>
158e9fcaa8aSmrg  <tbody>
159e9fcaa8aSmrg    <row rowsep="0">
160e9fcaa8aSmrg      <entry>CategoryDefinition</entry>
161e9fcaa8aSmrg      <entry>::=</entry>
162e9fcaa8aSmrg      <entry>CategoryHeader CategorySpec CategoryTrailer</entry>
163e9fcaa8aSmrg    </row>
164e9fcaa8aSmrg    <row rowsep="0">
165e9fcaa8aSmrg      <entry>CategoryHeader</entry>
166e9fcaa8aSmrg      <entry>::=</entry>
167e9fcaa8aSmrg      <entry>CategoryName NL</entry>
168e9fcaa8aSmrg    </row>
169e9fcaa8aSmrg    <row rowsep="0">
170e9fcaa8aSmrg      <entry>CategorySpec</entry>
171e9fcaa8aSmrg      <entry>::=</entry>
172e9fcaa8aSmrg      <entry>{ ClassSpec }</entry>
173e9fcaa8aSmrg    </row>
174e9fcaa8aSmrg    <row rowsep="0">
175e9fcaa8aSmrg      <entry>CategoryTrailer</entry>
176e9fcaa8aSmrg      <entry>::=</entry>
177e9fcaa8aSmrg      <entry>"END" Delimiter CategoryName NL</entry>
178e9fcaa8aSmrg    </row>
179e9fcaa8aSmrg    <row rowsep="0">
180e9fcaa8aSmrg      <entry>CategoryName</entry>
181e9fcaa8aSmrg      <entry>::=</entry>
182e9fcaa8aSmrg      <entry>String</entry>
183e9fcaa8aSmrg    </row>
184e9fcaa8aSmrg    <row rowsep="0">
185e9fcaa8aSmrg      <entry>ClassSpec</entry>
186e9fcaa8aSmrg      <entry>::=</entry>
187e9fcaa8aSmrg      <entry>ClassName Delimiter ClassValue NL</entry>
188e9fcaa8aSmrg    </row>
189e9fcaa8aSmrg    <row rowsep="0">
190e9fcaa8aSmrg      <entry>ClassName</entry>
191e9fcaa8aSmrg      <entry>::=</entry>
192e9fcaa8aSmrg      <entry>String</entry>
193e9fcaa8aSmrg    </row>
194e9fcaa8aSmrg    <row rowsep="0">
195e9fcaa8aSmrg      <entry>ClassValue</entry>
196e9fcaa8aSmrg      <entry>::=</entry>
197e9fcaa8aSmrg      <entry>ValueList | "{" NL { ClassSpec } "}"</entry>
198e9fcaa8aSmrg    </row>
199e9fcaa8aSmrg    <row rowsep="0">
200e9fcaa8aSmrg      <entry>ValueList</entry>
201e9fcaa8aSmrg      <entry>::=</entry>
202e9fcaa8aSmrg      <entry>Value | Value ";" ValueList</entry>
203e9fcaa8aSmrg    </row>
204e9fcaa8aSmrg    <row rowsep="0">
205e9fcaa8aSmrg      <entry>Value</entry>
206e9fcaa8aSmrg      <entry>::=</entry>
207e9fcaa8aSmrg      <entry>ValuePiece | ValuePiece Value</entry>
208e9fcaa8aSmrg    </row>
209e9fcaa8aSmrg    <row rowsep="0">
210e9fcaa8aSmrg      <entry>ValuePiece</entry>
211e9fcaa8aSmrg      <entry>::=</entry>
212e9fcaa8aSmrg      <entry>String | QuotedString | NumericString</entry>
213e9fcaa8aSmrg    </row>
214e9fcaa8aSmrg    <row rowsep="0">
215e9fcaa8aSmrg      <entry>String</entry>
216e9fcaa8aSmrg      <entry>::=</entry>
217e9fcaa8aSmrg      <entry>Char { Char }</entry>
218e9fcaa8aSmrg    </row>
219e9fcaa8aSmrg    <row rowsep="0">
220e9fcaa8aSmrg      <entry>QuotedString</entry>
221e9fcaa8aSmrg      <entry>::=</entry>
222e9fcaa8aSmrg      <entry>""" QuotedChar { QuotedChar } """</entry>
223e9fcaa8aSmrg    </row>
224e9fcaa8aSmrg    <row rowsep="0">
225e9fcaa8aSmrg      <entry>NumericString</entry>
226e9fcaa8aSmrg      <entry>::=</entry>
227e9fcaa8aSmrg      <entry>"\\o" OctDigit { OctDigit }</entry>
228e9fcaa8aSmrg    </row>
229e9fcaa8aSmrg    <row rowsep="0">
230e9fcaa8aSmrg      <entry></entry>
231e9fcaa8aSmrg      <entry>|</entry>
232e9fcaa8aSmrg      <entry>"\\d" DecDigit { DecDigit }</entry>
233e9fcaa8aSmrg    </row>
234e9fcaa8aSmrg    <row rowsep="0">
235e9fcaa8aSmrg      <entry></entry>
236e9fcaa8aSmrg      <entry>|</entry>
237e9fcaa8aSmrg      <entry>"\\x" HexDigit { HexDigit }</entry>
238e9fcaa8aSmrg    </row>
239e9fcaa8aSmrg    <row rowsep="0">
240e9fcaa8aSmrg      <entry>Char</entry>
241e9fcaa8aSmrg      <entry>::=</entry>
242e9fcaa8aSmrg      <entry>&lt;XPCS except NL, Space or unescaped reserved symbols&gt;</entry>
243e9fcaa8aSmrg    </row>
244e9fcaa8aSmrg    <row rowsep="0">
245e9fcaa8aSmrg      <entry>QuotedChar</entry>
246e9fcaa8aSmrg      <entry>::=</entry>
247e9fcaa8aSmrg      <entry>&lt;XPCS except unescaped """&gt;</entry>
248e9fcaa8aSmrg    </row>
249e9fcaa8aSmrg    <row rowsep="0">
250e9fcaa8aSmrg      <entry>OctDigit</entry>
251e9fcaa8aSmrg      <entry>::=</entry>
252e9fcaa8aSmrg      <entry>&lt;character in the range of "0" - "7"&gt;</entry>
253e9fcaa8aSmrg    </row>
254e9fcaa8aSmrg    <row rowsep="0">
255e9fcaa8aSmrg      <entry>DecDigit</entry>
256e9fcaa8aSmrg      <entry>::=</entry>
257e9fcaa8aSmrg      <entry>&lt;character in the range of "0" - "9"&gt;</entry>
258e9fcaa8aSmrg    </row>
259e9fcaa8aSmrg    <row rowsep="0">
260e9fcaa8aSmrg      <entry>HexDigit</entry>
261e9fcaa8aSmrg      <entry>::=</entry>
262e9fcaa8aSmrg      <entry>&lt;character in the range of "0" - "9", "a" - "f", "A" - "F"&gt;</entry>
263e9fcaa8aSmrg    </row>
264e9fcaa8aSmrg    <row rowsep="0">
265e9fcaa8aSmrg      <entry>Delimiter</entry>
266e9fcaa8aSmrg      <entry>::=</entry>
267e9fcaa8aSmrg      <entry>Space { Space }</entry>
268e9fcaa8aSmrg    </row>
269e9fcaa8aSmrg    <row rowsep="0">
270e9fcaa8aSmrg      <entry>Space</entry>
271e9fcaa8aSmrg      <entry>::=</entry>
272e9fcaa8aSmrg      <entry>&lt;space&gt; | &lt;horizontal tab&gt;</entry>
273e9fcaa8aSmrg    </row>
274e9fcaa8aSmrg    <row rowsep="0">
275e9fcaa8aSmrg      <entry>NL</entry>
276e9fcaa8aSmrg      <entry>::=</entry>
277e9fcaa8aSmrg      <entry>&lt;newline&gt;</entry>
278e9fcaa8aSmrg    </row>
279e9fcaa8aSmrg  </tbody>
280e9fcaa8aSmrg  </tgroup>
281e9fcaa8aSmrg</informaltable>
282e9fcaa8aSmrg
283e9fcaa8aSmrg<para>
284e9fcaa8aSmrgElements separated by vertical bar (|) are alternatives.  Curly
285e9fcaa8aSmrgbraces ({...}) indicate zero or more repetitions of the enclosed
286e9fcaa8aSmrgelements.  Square brackets ([...]) indicate that the enclosed element
287e9fcaa8aSmrgis optional. Quotes ("...") are used around literal characters.
288e9fcaa8aSmrg</para>
289e9fcaa8aSmrg
290e9fcaa8aSmrg<para>
291e9fcaa8aSmrgThe backslash, which is not the top character of the NumericString, is
292e9fcaa8aSmrgrecognized as an escape character, so that the next one character is
293e9fcaa8aSmrgtreated as a literal character.  For example, the two-character
294e9fcaa8aSmrgsequence, ""\"""(the backslash followed by the quotation mark) is
295e9fcaa8aSmrgrecognized and replaced with a quotation mark character.
296e9fcaa8aSmrgAny whitespace character, that is not the Delimiter, unquoted and
297e9fcaa8aSmrgunescaped, is ignored.
298e9fcaa8aSmrg</para>
299e9fcaa8aSmrg
300e9fcaa8aSmrg</sect1>
301e9fcaa8aSmrg<sect1 id="Contents_of_Database_">
302e9fcaa8aSmrg<title>Contents of Database </title>
303e9fcaa8aSmrg<para>
304e9fcaa8aSmrgThe available categories and classes depend on implementation, because
305e9fcaa8aSmrgdifferent platform will require different information set.
306e9fcaa8aSmrgFor example, some platform have system locale but some platform don't.
307e9fcaa8aSmrgFurthermore, there might be a difference in functionality even if the
308e9fcaa8aSmrgplatform has system locale.
309e9fcaa8aSmrg</para>
310e9fcaa8aSmrg
311e9fcaa8aSmrg<para>
312e9fcaa8aSmrgIn current sample implementation, categories listed below are available.
313e9fcaa8aSmrg</para>
314e9fcaa8aSmrg
315e9fcaa8aSmrg<informaltable frame="none">
316e9fcaa8aSmrg  <tgroup cols='3' align='left'>
317e9fcaa8aSmrg  <colspec colname='c1' colwidth="2*" colsep="0"/>
318e9fcaa8aSmrg  <colspec colname='c2' colwidth="1*" colsep="0"/>
319e9fcaa8aSmrg  <tbody>
320e9fcaa8aSmrg    <row rowsep="0">
321e9fcaa8aSmrg      <entry>XLC_FONTSET:XFontSet relative information</entry>
322e9fcaa8aSmrg    </row>
323e9fcaa8aSmrg    <row rowsep="0">
324e9fcaa8aSmrg      <entry>XLC_XLOCALE:Character classification and conversion information</entry>
325e9fcaa8aSmrg    </row>
326e9fcaa8aSmrg  </tbody>
327e9fcaa8aSmrg  </tgroup>
328e9fcaa8aSmrg</informaltable>
329e9fcaa8aSmrg
330e9fcaa8aSmrg</sect1>
331e9fcaa8aSmrg<sect1 id="XLC_FONTSET_Category">
332e9fcaa8aSmrg<title>XLC_FONTSET Category</title>
333e9fcaa8aSmrg<para>
334e9fcaa8aSmrgThe XLC_FONTSET category defines the XFontSet relative information.
335e9fcaa8aSmrgIt contains the CHARSET_REGISTRY-CHARSET_ENCODING name and character
336e9fcaa8aSmrgmapping side (GL, GR, etc), and is used in Output Method (OM).
337e9fcaa8aSmrg</para>
338e9fcaa8aSmrg
339e9fcaa8aSmrg<informaltable frame="none">
340e9fcaa8aSmrg  <tgroup cols='3' align='left'>
341e9fcaa8aSmrg  <thead>
342e9fcaa8aSmrg  <colspec colname='c1' colwidth="3*" colsep="0"/>
343e9fcaa8aSmrg  <colspec colname='c2' colwidth="1*" colsep="0"/>
344e9fcaa8aSmrg  <colspec colname='c3' colwidth="3*" colsep="0"/>
345e9fcaa8aSmrg    <row>
346e9fcaa8aSmrg      <entry>class</entry>
347e9fcaa8aSmrg      <entry>super class</entry>
348e9fcaa8aSmrg      <entry>description</entry>
349e9fcaa8aSmrg    </row>
350e9fcaa8aSmrg  </thead>
351e9fcaa8aSmrg  <tbody>
352e9fcaa8aSmrg    <row rowsep="0">
353e9fcaa8aSmrg      <entry>fsN</entry>
354e9fcaa8aSmrg      <entry></entry>
355e9fcaa8aSmrg      <entry>Nth fontset (N=0,1,2, ...)</entry>
356e9fcaa8aSmrg    </row>
357e9fcaa8aSmrg    <row rowsep="0">
358e9fcaa8aSmrg      <entry>charset</entry>
359e9fcaa8aSmrg      <entry>fsN</entry>
360e9fcaa8aSmrg      <entry>list of encoding name</entry>
361e9fcaa8aSmrg    </row>
362e9fcaa8aSmrg    <row rowsep="0">
363e9fcaa8aSmrg      <entry>font</entry>
364e9fcaa8aSmrg      <entry>fsN</entry>
365e9fcaa8aSmrg      <entry>list of font encoding name</entry>
366e9fcaa8aSmrg    </row>
367e9fcaa8aSmrg  </tbody>
368e9fcaa8aSmrg  </tgroup>
369e9fcaa8aSmrg</informaltable>
370e9fcaa8aSmrg
371e9fcaa8aSmrg<variablelist>
372e9fcaa8aSmrg  <varlistentry>
373e9fcaa8aSmrg    <term>fsN</term>
374e9fcaa8aSmrg    <listitem>
375e9fcaa8aSmrg      <para>
376e9fcaa8aSmrgIncludes an encoding information for Nth charset, where N is
377e9fcaa8aSmrgthe index number (0,1,2,...).  If there are 4 charsets available
378e9fcaa8aSmrgin current locale, 4 fontsets, fs0, fs1, fs2 and fs3, should be
379e9fcaa8aSmrgdefined.
380e9fcaa8aSmrgThis class has two subclasses, 'charset' and 'font'.
381e9fcaa8aSmrg      </para>
382e9fcaa8aSmrg    </listitem>
383e9fcaa8aSmrg  </varlistentry>
384e9fcaa8aSmrg  <varlistentry>
385e9fcaa8aSmrg    <term>charset</term>
386e9fcaa8aSmrg    <listitem>
387e9fcaa8aSmrg      <para>
388e9fcaa8aSmrgSpecifies an encoding information to be used internally in Xlib
389e9fcaa8aSmrgfor this fontset.  The format of value is;
390e9fcaa8aSmrg      </para>
391e9fcaa8aSmrg<informaltable frame="none">
392e9fcaa8aSmrg  <tgroup cols='3' align='left'>
393e9fcaa8aSmrg  <colspec colname='c1' colwidth="3*" colsep="0"/>
394e9fcaa8aSmrg  <colspec colname='c2' colwidth="1*" colsep="0"/>
395e9fcaa8aSmrg  <colspec colname='c3' colwidth="4*" colsep="0"/>
396e9fcaa8aSmrg  <tbody>
397e9fcaa8aSmrg    <row rowsep="0">
398e9fcaa8aSmrg      <entry>EncodingInfo</entry>
399e9fcaa8aSmrg      <entry>::=</entry>
400e9fcaa8aSmrg      <entry>EncodingName [ ":" EncodingSide ]</entry>
401e9fcaa8aSmrg    </row>
402e9fcaa8aSmrg    <row rowsep="0">
403e9fcaa8aSmrg      <entry>EncodingName</entry>
404e9fcaa8aSmrg      <entry>::=</entry>
405e9fcaa8aSmrg      <entry>CHARSET_REGISTRY-CHARSET_ENCODING</entry>
406e9fcaa8aSmrg    </row>
407e9fcaa8aSmrg    <row rowsep="0">
408e9fcaa8aSmrg      <entry>EncodingSide</entry>
409e9fcaa8aSmrg      <entry>::=</entry>
410e9fcaa8aSmrg      <entry>"GL" | "GR"</entry>
411e9fcaa8aSmrg    </row>
412e9fcaa8aSmrg  </tbody>
413e9fcaa8aSmrg  </tgroup>
414e9fcaa8aSmrg</informaltable>
415e9fcaa8aSmrg
416e9fcaa8aSmrg<para>
417e9fcaa8aSmrgFor detail definition of CHARSET_REGISTRY-CHARSET_ENCODING, refer
418e9fcaa8aSmrg"X Logical Font Descriptions" document.
419e9fcaa8aSmrg</para>
420e9fcaa8aSmrg<literallayout>
421e9fcaa8aSmrgexample:
422e9fcaa8aSmrg     ISO8859-1:GL
423e9fcaa8aSmrg</literallayout>
424e9fcaa8aSmrg    </listitem>
425e9fcaa8aSmrg  </varlistentry>
426e9fcaa8aSmrg  <varlistentry>
427e9fcaa8aSmrg    <term>font</term>
428e9fcaa8aSmrg    <listitem>
429e9fcaa8aSmrg      <para>
430e9fcaa8aSmrgSpecifies a list of encoding information which is used for searching
431e9fcaa8aSmrgappropriate font for this fontset.  The left most entry has highest
432e9fcaa8aSmrgpriority.
433e9fcaa8aSmrg      </para>
434e9fcaa8aSmrg    </listitem>
435e9fcaa8aSmrg  </varlistentry>
436e9fcaa8aSmrg</variablelist>
437e9fcaa8aSmrg
438e9fcaa8aSmrg</sect1>
439e9fcaa8aSmrg<sect1 id="XLC_XLOCALE_Category">
440e9fcaa8aSmrg<title>XLC_XLOCALE Category</title>
441e9fcaa8aSmrg<para>
442e9fcaa8aSmrgThe XLC_XLOCALE category defines character classification, conversion
443e9fcaa8aSmrgand other character attributes.
444e9fcaa8aSmrg</para>
445e9fcaa8aSmrg
446e9fcaa8aSmrg<informaltable frame="none">
447e9fcaa8aSmrg  <tgroup cols='3' align='left'>
448e9fcaa8aSmrg  <colspec colname='c1' colwidth="3*" colsep="0"/>
449e9fcaa8aSmrg  <colspec colname='c2' colwidth="1*" colsep="0"/>
450e9fcaa8aSmrg  <colspec colname='c3' colwidth="3*" colsep="0"/>
451e9fcaa8aSmrg  <thead>
452e9fcaa8aSmrg    <row>
453e9fcaa8aSmrg      <entry>class</entry>
454e9fcaa8aSmrg      <entry>super class</entry>
455e9fcaa8aSmrg      <entry>description</entry>
456e9fcaa8aSmrg    </row>
457e9fcaa8aSmrg  </thead>
458e9fcaa8aSmrg  <tbody>
459e9fcaa8aSmrg    <row rowsep="0">
460e9fcaa8aSmrg      <entry>encoding_name</entry>
461e9fcaa8aSmrg      <entry></entry>
462e9fcaa8aSmrg      <entry>codeset name</entry>
463e9fcaa8aSmrg    </row>
464e9fcaa8aSmrg    <row rowsep="0">
465e9fcaa8aSmrg      <entry>mb_cur_max</entry>
466e9fcaa8aSmrg      <entry></entry>
467e9fcaa8aSmrg      <entry>MB_CUR_MAX</entry>
468e9fcaa8aSmrg    </row>
469e9fcaa8aSmrg    <row rowsep="0">
470e9fcaa8aSmrg      <entry>state_depend_encoding</entry>
471e9fcaa8aSmrg      <entry></entry>
472e9fcaa8aSmrg      <entry>state dependent or not</entry>
473e9fcaa8aSmrg    </row>
474e9fcaa8aSmrg    <row rowsep="0">
475e9fcaa8aSmrg      <entry>wc_encoding_mask</entry>
476e9fcaa8aSmrg      <entry></entry>
477e9fcaa8aSmrg      <entry>for parsing wc string</entry>
478e9fcaa8aSmrg    </row>
479e9fcaa8aSmrg    <row rowsep="0">
480e9fcaa8aSmrg      <entry>wc_shift_bits</entry>
481e9fcaa8aSmrg      <entry></entry>
482e9fcaa8aSmrg      <entry>for conversion between wc and mb</entry>
483e9fcaa8aSmrg    </row>
484e9fcaa8aSmrg    <row rowsep="0">
485e9fcaa8aSmrg      <entry>csN</entry>
486e9fcaa8aSmrg      <entry></entry>
487e9fcaa8aSmrg      <entry>Nth charset (N=0,1,2,...)</entry>
488e9fcaa8aSmrg    </row>
489e9fcaa8aSmrg    <row rowsep="0">
490e9fcaa8aSmrg      <entry>side</entry>
491e9fcaa8aSmrg      <entry>csN</entry>
492e9fcaa8aSmrg      <entry>mapping side (GL, etc)</entry>
493e9fcaa8aSmrg    </row>
494e9fcaa8aSmrg    <row rowsep="0">
495e9fcaa8aSmrg      <entry>length</entry>
496e9fcaa8aSmrg      <entry>csN</entry>
497e9fcaa8aSmrg      <entry>length of a character</entry>
498e9fcaa8aSmrg    </row>
499e9fcaa8aSmrg    <row rowsep="0">
500e9fcaa8aSmrg      <entry>mb_encoding</entry>
501e9fcaa8aSmrg      <entry>csN</entry>
502e9fcaa8aSmrg      <entry>for parsing mb string</entry>
503e9fcaa8aSmrg    </row>
504e9fcaa8aSmrg    <row rowsep="0">
505e9fcaa8aSmrg      <entry>wc_encoding</entry>
506e9fcaa8aSmrg      <entry>csN</entry>
507e9fcaa8aSmrg      <entry>for parsing wc string</entry>
508e9fcaa8aSmrg    </row>
509e9fcaa8aSmrg    <row rowsep="0">
510e9fcaa8aSmrg      <entry>ct_encoding</entry>
511e9fcaa8aSmrg      <entry>csN</entry>
512e9fcaa8aSmrg      <entry>list of encoding name for ct</entry>
513e9fcaa8aSmrg    </row>
514e9fcaa8aSmrg  </tbody>
515e9fcaa8aSmrg  </tgroup>
516e9fcaa8aSmrg</informaltable>
517e9fcaa8aSmrg
518e9fcaa8aSmrg<variablelist>
519e9fcaa8aSmrg  <varlistentry>
520e9fcaa8aSmrg    <term>encoding_name</term>
521e9fcaa8aSmrg    <listitem>
522e9fcaa8aSmrg      <para>
523e9fcaa8aSmrgSpecifies a codeset name of current locale.
524e9fcaa8aSmrg      </para>
525e9fcaa8aSmrg    </listitem>
526e9fcaa8aSmrg  </varlistentry>
527e9fcaa8aSmrg  <varlistentry>
528e9fcaa8aSmrg    <term>mb_cur_max</term>
529e9fcaa8aSmrg    <listitem>
530e9fcaa8aSmrg      <para>
531e9fcaa8aSmrgSpecifies a maximum allowable number of bytes in a multi-byte character.
532e9fcaa8aSmrgIt is corresponding to MB_CUR_MAX of "ISO/IEC 9899:1990 C Language Standard".
533e9fcaa8aSmrg      </para>
534e9fcaa8aSmrg    </listitem>
535e9fcaa8aSmrg  </varlistentry>
536e9fcaa8aSmrg  <varlistentry>
537e9fcaa8aSmrg    <term>state_depend_encoding</term>
538e9fcaa8aSmrg    <listitem>
539e9fcaa8aSmrg      <para>
540e9fcaa8aSmrgIndicates a current locale is state dependent. The value should be
541e9fcaa8aSmrgspecified "True" or "False".
542e9fcaa8aSmrg      </para>
543e9fcaa8aSmrg    </listitem>
544e9fcaa8aSmrg  </varlistentry>
545e9fcaa8aSmrg  <varlistentry>
546e9fcaa8aSmrg    <term>wc_encoding_mask</term>
547e9fcaa8aSmrg    <listitem>
548e9fcaa8aSmrg      <para>
549e9fcaa8aSmrgSpecifies a bit-mask for parsing wide-char string.  Each wide character is
550e9fcaa8aSmrgapplied bit-and operation with this bit-mask, then is classified into
551e9fcaa8aSmrgthe unique charset, by using 'wc_encoding'.
552e9fcaa8aSmrg      </para>
553e9fcaa8aSmrg    </listitem>
554e9fcaa8aSmrg  </varlistentry>
555e9fcaa8aSmrg  <varlistentry>
556e9fcaa8aSmrg    <term>wc_shift_bits</term>
557e9fcaa8aSmrg    <listitem>
558e9fcaa8aSmrg      <para>
559e9fcaa8aSmrgSpecifies a number of bit to be shifted for converting from a multi-byte
560e9fcaa8aSmrgcharacter to a wide character, and vice-versa.
561e9fcaa8aSmrg      </para>
562e9fcaa8aSmrg    </listitem>
563e9fcaa8aSmrg  </varlistentry>
564e9fcaa8aSmrg  <varlistentry>
565e9fcaa8aSmrg    <term>csN</term>
566e9fcaa8aSmrg    <listitem>
567e9fcaa8aSmrg      <para>
568e9fcaa8aSmrg<!-- .br -->
569e9fcaa8aSmrgIncludes a character set information for Nth charset, where N is the
570e9fcaa8aSmrgindex number (0,1,2,...).  If there are 4 charsets available in current
571e9fcaa8aSmrglocale, cs0, cs1, cs2 and cs3 should be defined. This class has five
572e9fcaa8aSmrgsubclasses, 'side', 'length', 'mb_encoding' 'wc_encoding' and 'ct_encoding'.
573e9fcaa8aSmrg      </para>
574e9fcaa8aSmrg    </listitem>
575e9fcaa8aSmrg  </varlistentry>
576e9fcaa8aSmrg  <varlistentry>
577e9fcaa8aSmrg    <term>side</term>
578e9fcaa8aSmrg    <listitem>
579e9fcaa8aSmrg      <para>
580e9fcaa8aSmrgSpecifies a mapping side of this charset. The format of this value is;
581e9fcaa8aSmrg      </para>
582e9fcaa8aSmrg      <literallayout>
583e9fcaa8aSmrg   Side    ::=  EncodingSide[":Default"]
584e9fcaa8aSmrg      </literallayout>
585e9fcaa8aSmrg      <para>
586e9fcaa8aSmrgThe suffix ":Default" can be specified.  It indicates that a character
587e9fcaa8aSmrgbelongs to the specified side is mapped to this charset in initial state.
588e9fcaa8aSmrg      </para>
589e9fcaa8aSmrg    </listitem>
590e9fcaa8aSmrg  </varlistentry>
591e9fcaa8aSmrg  <varlistentry>
592e9fcaa8aSmrg    <term>length</term>
593e9fcaa8aSmrg    <listitem>
594e9fcaa8aSmrg      <para>
595e9fcaa8aSmrg<!-- .br -->
596e9fcaa8aSmrgSpecifies a number of bytes of a multi-byte character of this charset.
597e9fcaa8aSmrgIt should not contain the length of any single-shift sequence.
598e9fcaa8aSmrg      </para>
599e9fcaa8aSmrg    </listitem>
600e9fcaa8aSmrg  </varlistentry>
601e9fcaa8aSmrg  <varlistentry>
602e9fcaa8aSmrg    <term>mb_encoding</term>
603e9fcaa8aSmrg    <listitem>
604e9fcaa8aSmrg      <para>
605e9fcaa8aSmrgSpecifies a list of shift sequence for parsing multi-byte string.
606e9fcaa8aSmrgThe format of this value is;
607e9fcaa8aSmrg      </para>
608e9fcaa8aSmrg<informaltable frame="none">
609e9fcaa8aSmrg  <tgroup cols='3' align='left'>
610e9fcaa8aSmrg  <colspec colname='c1' colwidth="3*" colsep="0"/>
611e9fcaa8aSmrg  <colspec colname='c2' colwidth="1*" colsep="0"/>
612e9fcaa8aSmrg  <colspec colname='c3' colwidth="5*" colsep="0"/>
613e9fcaa8aSmrg  <tbody>
614e9fcaa8aSmrg    <row rowsep="0">
615e9fcaa8aSmrg      <entry>MBEncoding</entry>
616e9fcaa8aSmrg      <entry>::=</entry>
617e9fcaa8aSmrg      <entry>ShiftType ShiftSequence</entry>
618e9fcaa8aSmrg    </row>
619e9fcaa8aSmrg    <row rowsep="0">
620e9fcaa8aSmrg      <entry></entry>
621e9fcaa8aSmrg      <entry>|</entry>
622e9fcaa8aSmrg      <entry>ShiftType ShiftSequence ";" MBEncoding</entry>
623e9fcaa8aSmrg    </row>
624e9fcaa8aSmrg    <row rowsep="0">
625e9fcaa8aSmrg      <entry>ShiftType</entry>
626e9fcaa8aSmrg      <entry>::=</entry>
627e9fcaa8aSmrg      <entry>"&lt;SS&gt;"|"&lt;LSL&gt;"|"&lt;LSR&gt;"</entry>
628e9fcaa8aSmrg    </row>
629e9fcaa8aSmrg    <row rowsep="0">
630e9fcaa8aSmrg      <entry>ShiftSequence</entry>
631e9fcaa8aSmrg      <entry>::=</entry>
632e9fcaa8aSmrg      <entry>SequenceValue|SequenceValue ShiftSequence</entry>
633e9fcaa8aSmrg    </row>
634e9fcaa8aSmrg    <row rowsep="0">
635e9fcaa8aSmrg      <entry>SequenceValue</entry>
636e9fcaa8aSmrg      <entry>::=</entry>
637e9fcaa8aSmrg      <entry>NumericString</entry>
638e9fcaa8aSmrg    </row>
639e9fcaa8aSmrg  </tbody>
640e9fcaa8aSmrg  </tgroup>
641e9fcaa8aSmrg</informaltable>
642e9fcaa8aSmrg
643e9fcaa8aSmrg      <literallayout>
644e9fcaa8aSmrgexample:
645e9fcaa8aSmrg     &lt;LSL&gt; \x1b \x28 \x4a; &lt;LSL&gt; \x1b \x28 \x42
646e9fcaa8aSmrg      </literallayout>
647e9fcaa8aSmrg    </listitem>
648e9fcaa8aSmrg  </varlistentry>
649e9fcaa8aSmrg  <varlistentry>
650e9fcaa8aSmrg    <term>wc_encoding</term>
651e9fcaa8aSmrg    <listitem>
652e9fcaa8aSmrg      <para>
653e9fcaa8aSmrgSpecifies an integer value for parsing wide-char string.
654e9fcaa8aSmrgIt is used to determine the charset for each wide character, after
655e9fcaa8aSmrgapplying bit-and operation using 'wc_encoding_mask'.
656e9fcaa8aSmrgThis value should be unique in all csN classes.
657e9fcaa8aSmrg      </para>
658e9fcaa8aSmrg    </listitem>
659e9fcaa8aSmrg  </varlistentry>
660e9fcaa8aSmrg  <varlistentry>
661e9fcaa8aSmrg    <term>ct_encoding</term>
662e9fcaa8aSmrg    <listitem>
663e9fcaa8aSmrg      <para>
664e9fcaa8aSmrgSpecifies a list of encoding information that can be used for Compound
665e9fcaa8aSmrgText.
666e9fcaa8aSmrg      </para>
667e9fcaa8aSmrg    </listitem>
668e9fcaa8aSmrg  </varlistentry>
669e9fcaa8aSmrg</variablelist>
670e9fcaa8aSmrg</sect1>
671e9fcaa8aSmrg
672e9fcaa8aSmrg<sect1 id="Sample_of_X_Locale_Database">
673e9fcaa8aSmrg<title>Sample of X Locale Database</title>
674e9fcaa8aSmrg<para>
675e9fcaa8aSmrgThe following is sample X Locale Database file.
676e9fcaa8aSmrg</para>
677e9fcaa8aSmrg
678e9fcaa8aSmrg<literallayout class="monospaced">
679e9fcaa8aSmrg#  XLocale Database Sample for ja_JP.euc
680e9fcaa8aSmrg#
681e9fcaa8aSmrg
682e9fcaa8aSmrg#
683e9fcaa8aSmrg#      XLC_FONTSET category
684e9fcaa8aSmrg#
685e9fcaa8aSmrgXLC_FONTSET
686e9fcaa8aSmrg#      fs0 class (7 bit ASCII)
687e9fcaa8aSmrgfs0     {
688e9fcaa8aSmrg        charset              ISO8859-1:GL
689e9fcaa8aSmrg        font                 ISO8859-1:GL; JISX0201.1976-0:GL
690e9fcaa8aSmrg}
691e9fcaa8aSmrg#      fs1 class (Kanji)
692e9fcaa8aSmrgfs1     {
693e9fcaa8aSmrg        charset              JISX0208.1983-0:GL
694e9fcaa8aSmrg        font                 JISX0208.1983-0:GL
695e9fcaa8aSmrg}
696e9fcaa8aSmrg#      fs2 class (Half Kana)
697e9fcaa8aSmrgfs2     {
698e9fcaa8aSmrg        charset              JISX0201.1976-0:GR
699e9fcaa8aSmrg        font                 JISX0201.1976-0:GR
700e9fcaa8aSmrg}
701e9fcaa8aSmrg#      fs3 class (User Defined Character)
702e9fcaa8aSmrg# fs3     {
703e9fcaa8aSmrg#        charset             JISX0212.1990-0:GL
704e9fcaa8aSmrg#        font                JISX0212.1990-0:GL
705e9fcaa8aSmrg# }
706e9fcaa8aSmrgEND XLC_FONTSET
707e9fcaa8aSmrg
708e9fcaa8aSmrg#
709e9fcaa8aSmrg#      XLC_XLOCALE category
710e9fcaa8aSmrg#
711e9fcaa8aSmrgXLC_XLOCALE
712e9fcaa8aSmrg
713e9fcaa8aSmrgencoding_name             ja.euc
714e9fcaa8aSmrgmb_cur_max                3
715e9fcaa8aSmrgstate_depend_encoding     False
716e9fcaa8aSmrg
717e9fcaa8aSmrgwc_encoding_mask          \x00008080
718e9fcaa8aSmrgwc_shift_bits             8
719e9fcaa8aSmrg
720e9fcaa8aSmrg#      cs0 class
721e9fcaa8aSmrgcs0     {
722e9fcaa8aSmrg        side                 GL:Default
723e9fcaa8aSmrg        length               1
724e9fcaa8aSmrg        wc_encoding          \x00000000
725e9fcaa8aSmrg        ct_encoding          ISO8859-1:GL; JISX0201.1976-0:GL
726e9fcaa8aSmrg}
727e9fcaa8aSmrg#      cs1 class
728e9fcaa8aSmrgcs1     {
729e9fcaa8aSmrg        side                 GR:Default
730e9fcaa8aSmrg        length               2
731e9fcaa8aSmrg
732e9fcaa8aSmrg        wc_encoding          \x00008080
733e9fcaa8aSmrg
734e9fcaa8aSmrg        ct_encoding          JISX0208.1983-0:GL; JISX0208.1983-0:GR;\
735e9fcaa8aSmrg                             JISX0208.1983-1:GL; JISX0208.1983-1:GR
736e9fcaa8aSmrg}
737e9fcaa8aSmrg
738e9fcaa8aSmrg#      cs2 class
739e9fcaa8aSmrgcs2     {
740e9fcaa8aSmrg        side                 GR
741e9fcaa8aSmrg        length               1
742e9fcaa8aSmrg        mb_encoding          &lt;SS&gt; \x8e
743e9fcaa8aSmrg
744e9fcaa8aSmrg        wc_encoding          \x00000080
745e9fcaa8aSmrg
746e9fcaa8aSmrg        ct_encoding          JISX0201.1976-0:GR
747e9fcaa8aSmrg}
748e9fcaa8aSmrg
749e9fcaa8aSmrg#      cs3 class
750e9fcaa8aSmrg# cs3     {
751e9fcaa8aSmrg#         side               GL
752e9fcaa8aSmrg#         length             2
753e9fcaa8aSmrg#         mb_encoding        &lt;SS&gt; \x8f
754e9fcaa8aSmrg# #if HasWChar32
755e9fcaa8aSmrg#         wc_encoding        \x20000000
756e9fcaa8aSmrg# #else
757e9fcaa8aSmrg#         wc_encoding        \x00008000
758e9fcaa8aSmrg# #endif
759e9fcaa8aSmrg#         ct_encoding        JISX0212.1990-0:GL; JISX0212.1990-0:GR
760e9fcaa8aSmrg# }
761e9fcaa8aSmrg
762e9fcaa8aSmrgEND XLC_XLOCALE
763e9fcaa8aSmrg</literallayout>
764e9fcaa8aSmrg</sect1>
765e9fcaa8aSmrg
766e9fcaa8aSmrg<sect1 id="Reference">
767e9fcaa8aSmrg<title>Reference</title>
768e9fcaa8aSmrg<para>
769e9fcaa8aSmrg[1] <emphasis remap='I'>ISO/IEC 9899:1990 C Language Standard</emphasis>
770e9fcaa8aSmrg</para>
771e9fcaa8aSmrg<para>
772e9fcaa8aSmrg[2] <emphasis remap='I'>X Logical Font Descriptions</emphasis>
773e9fcaa8aSmrg</para>
774e9fcaa8aSmrg
775e9fcaa8aSmrg</sect1>
776e9fcaa8aSmrg</chapter>
777e9fcaa8aSmrg</book>
778