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