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 “Software”), 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 “AS IS”, 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><XPCS except NL, Space or unescaped reserved symbols></entry> 243e9fcaa8aSmrg </row> 244e9fcaa8aSmrg <row rowsep="0"> 245e9fcaa8aSmrg <entry>QuotedChar</entry> 246e9fcaa8aSmrg <entry>::=</entry> 247e9fcaa8aSmrg <entry><XPCS except unescaped """></entry> 248e9fcaa8aSmrg </row> 249e9fcaa8aSmrg <row rowsep="0"> 250e9fcaa8aSmrg <entry>OctDigit</entry> 251e9fcaa8aSmrg <entry>::=</entry> 252e9fcaa8aSmrg <entry><character in the range of "0" - "7"></entry> 253e9fcaa8aSmrg </row> 254e9fcaa8aSmrg <row rowsep="0"> 255e9fcaa8aSmrg <entry>DecDigit</entry> 256e9fcaa8aSmrg <entry>::=</entry> 257e9fcaa8aSmrg <entry><character in the range of "0" - "9"></entry> 258e9fcaa8aSmrg </row> 259e9fcaa8aSmrg <row rowsep="0"> 260e9fcaa8aSmrg <entry>HexDigit</entry> 261e9fcaa8aSmrg <entry>::=</entry> 262e9fcaa8aSmrg <entry><character in the range of "0" - "9", "a" - "f", "A" - "F"></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><space> | <horizontal tab></entry> 273e9fcaa8aSmrg </row> 274e9fcaa8aSmrg <row rowsep="0"> 275e9fcaa8aSmrg <entry>NL</entry> 276e9fcaa8aSmrg <entry>::=</entry> 277e9fcaa8aSmrg <entry><newline></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>"<SS>"|"<LSL>"|"<LSR>"</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 <LSL> \x1b \x28 \x4a; <LSL> \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 <SS> \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 <SS> \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