diff options
Diffstat (limited to 'libX11/specs/i18n/LocaleDB.ms')
-rw-r--r-- | libX11/specs/i18n/LocaleDB.ms | 502 |
1 files changed, 502 insertions, 0 deletions
diff --git a/libX11/specs/i18n/LocaleDB.ms b/libX11/specs/i18n/LocaleDB.ms new file mode 100644 index 000000000..5ba792297 --- /dev/null +++ b/libX11/specs/i18n/LocaleDB.ms @@ -0,0 +1,502 @@ +.\" $Xorg: LocaleDB.ms,v 1.3 2000/08/17 19:42:49 cpqbld Exp $ +.\" $XdotOrg: xc/doc/specs/i18n/LocaleDB.ms,v 1.2 2004/04/23 18:42:19 eich Exp $ +.\" To print this out, type tbl macros.t ThisFile | troff -ms +.EH '''' +.OH '''' +.EF '''' +.OF '''' +.ps 11 +.nr PS 11 +\& +.TL +\s+3\fBX Locale Database Definition\fP\s-3 +.sp 2 +.AU +Yoshio Horiuchi +.AI +IBM Japan +.LP +.bp +.br +\& +.ps 9 +.nr PS 9 +.sp 2 +.LP +Copyright \(co IBM Corporation 1994 +.LP +All Rights Reserved +.LP +License to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of IBM not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. +.LP +IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS, AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS, IN NO EVENT SHALL +IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. +.sp 5 +Copyright \(co 1994 X Consortium +.LP +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the ``Software''), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: +.LP +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +.LP +THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +.LP +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the X Consortium. +.sp 3 +\fIX Window System\fP is a trademark of The Open Group. +.LP +.bp 1 +.ps 11 +.nr PS 11 +.EH '\fBX Locale Database Definition\fP''\fB\*(xV\fP' +.OH '\fBX Locale Database Definition\fP''\fB\*(xV\fP' +.EF ''\fB % \fP'' +.OF ''\fB % \fP'' +.NH 1 +General +.XS +\*(SN General +.XE +.LP +An X Locale Database contains the subset of a user's environment that +depends on language, in X Window System. It is made up from one or more +categories. Each category consists of some classes and sub-classes. +.LP +It is provided as a plain ASCII text file, so a user can change its +contents easily. It allows a user to customize the behavior of +internationalized portion of Xlib without changing Xlib itself. +.LP +This document describes; +.RS +.IP +Database Format Definition +.IP +Contents of Database in sample implementation +.RE +.LP +Since it is hard to define the set of required information for all +platforms, only the flexible database format is defined. +The available entries in database are implementation dependent. +.LP +.NH 1 +Database Format Definition +.XS +\*(SN Database Format Definition +.XE +.LP +The X Locale Database contains one or more category definitions. +This section describes the format of each category definition. +.LP +The category definition consists of one or more class definitions. +Each class definition has a pair of class name and class value, or +has several subclasses which are enclosed by the left brace ({) and +the right brace (}). +.LP +Comments can be placed by using the number sign character (#). +Putting the number sign character on the top of the line indicates +that the entire line is comment. Also, putting any whitespace character +followed by the number sign character indicates that a part of the line +(from the number sign to the end of the line) is comment. +A line can be continued by placing backslash (\\) character as the +last character on the line; this continuation character will be +discarded from the input. Comment lines cannot be continued on +a subsequent line using an escaped new line character. +.LP +X Locale Database only accepts XPCS, the X Portable Character Set. +The reserved symbols are; the quotation mark("), the number sign (#), +the semicolon(;), the backslash(\\), the left brace({) and +the right brace(}). +.LP +The format of category definition is; +.RS +.TS +tab(@); +l l l +l l l +l l l +l l l +l l l +l l l +l l l +l l l +l l l +l l l +l l l +l l l +l l l +l l l +l r l +l r l +l l l. +CategoryDefinition@::=@CategoryHeader CategorySpec CategoryTrailer +CategoryHeader@::=@CategoryName NL +CategorySpec@::=@{ ClassSpec } +CategoryTrailer@::=@"END" Delimiter CategoryName NL +CategoryName@::=@String +ClassSpec@::=@ClassName Delimiter ClassValue NL +ClassName@::=@String +ClassValue@::=@ValueList | "{" NL { ClassSpec } "}" +ValueList@::=@Value | Value ";" ValueList +Value@::=@ValuePiece | ValuePiece Value +ValuePiece@::=@String | QuotedString | NumericString +String@::=@Char { Char } +QuotedString@::=@""" QuotedChar { QuotedChar } """ +NumericString@::=@"\\\\o" OctDigit { OctDigit } +@|@"\\\\d" DecDigit { DecDigit } +@|@"\\\\x" HexDigit { HexDigit } +Char@::=@<XPCS except NL, Space or unescaped reserved symbols> +QuotedChar@::=@<XPCS except unescaped """> +OctDigit@::=@<character in the range of "0" - "7"> +DecDigit@::=@<character in the range of "0" - "9"> +HexDigit@::=@<character in the range of "0" - "9", "a" - "f", "A" - "F"> +Delimiter@::=@ Space { Space } +Space@::=@<space> | <horizontal tab> +NL@::=@<newline> +.TE +.RE +.LP +Elements separated by vertical bar (|) are alternatives. Curly +braces ({...}) indicate zero or more repetitions of the enclosed +elements. Square brackets ([...]) indicate that the enclosed element +is optional. Quotes ("...") are used around literal characters. +.LP +The backslash, which is not the top character of the NumericString, is +recognized as an escape character, so that the next one character is +treated as a literal character. For example, the two-character +sequence, ``\\"''(the backslash followed by the quotation mark) is +recognized and replaced with a quotation mark character. +Any whitespace character, that is not the Delimiter, unquoted and +unescaped, is ignored. +.LP +.NH 1 +Contents of Database +.XS +\*(SN Contents of Database +.XE +.LP +The available categories and classes depend on implementation, because +different platform will require different information set. +For example, some platform have system locale but some platform don't. +Furthermore, there might be a difference in functionality even if the +platform has system locale. +.LP +In current sample implementation, categories listed below are available. +.RS +.TS +tab(:); +l l. +XLC_FONTSET:XFontSet relative information +XLC_XLOCALE:Character classification and conversion information +.TE +.RE +.LP +.NH 1 +XLC_FONTSET Category +.XS +\*(SN XLC_FONTSET Category +.XE +.LP +The XLC_FONTSET category defines the XFontSet relative information. +It contains the CHARSET_REGISTRY-CHARSET_ENCODING name and character +mapping side (GL, GR, etc), and is used in Output Method (OM). +.RS +.TS H +tab(:); +lw(1.5i) l l. +_ +.sp 6p +.B +class:super class:description +.sp 6p +_ +.sp 6p +.TH +.R +fsN::Nth fontset (N=0,1,2, ...) +.sp +charset:fsN:list of encoding name +font:fsN:list of font encoding name +.sp 6p +_ +.TE +.RE +.LP +.IP "fsN" +.br +Includes an encoding information for Nth charset, where N is +the index number (0,1,2,...). If there are 4 charsets available +in current locale, 4 fontsets, fs0, fs1, fs2 and fs3, should be +defined. +This class has two subclasses, `charset' and `font'. +.IP "charset" +Specifies an encoding information to be used internally in Xlib +for this fontset. The format of value is; +.RS +.TS +tab(;); +l l l. +EncodingInfo;::=;EncodingName [ ":" EncodingSide ] +EncodingName;::=;CHARSET_REGISTRY-CHARSET_ENCODING +EncodingSide;::=;"GL" | "GR" +.TE +.RE +For detail definition of CHARSET_REGISTRY-CHARSET_ENCODING, refer +"X Logical Font Descriptions" document. +.IP +example: +.br + ISO8859-1:GL +.IP "font" +.br +Specifies a list of encoding information which is used for searching +appropriate font for this fontset. The left most entry has highest +priority. +.LP +.NH 1 +XLC_XLOCALE Category +.XS +\*(SN XLC_XLOCALE Category +.XE +.LP +The XLC_XLOCALE category defines character classification, conversion +and other character attributes. +.RS +.TS H +tab(:); +lw(1.5i) l l. +_ +.sp 6p +.B +class:super class:description +.sp 6p +_ +.sp 6p +.TH +.R +encoding_name::codeset name +mb_cur_max::MB_CUR_MAX +state_depend_encoding::state dependent or not +wc_encoding_mask::for parsing wc string +wc_shift_bits::for conversion between wc and mb +csN::Nth charset (N=0,1,2,...) +.sp +side:csN:mapping side (GL, etc) +length:csN:length of a character +mb_encoding:csN:for parsing mb string +wc_encoding:csN:for parsing wc string +ct_encoding:csN:list of encoding name for ct +.sp 6p +_ +.TE +.RE +.LP +.IP "encoding_name" +Specifies a codeset name of current locale. +.IP "mb_cur_max" +Specifies a maximum allowable number of bytes in a multi-byte character. +It is corresponding to MB_CUR_MAX of "ISO/IEC 9899:1990 C Language Standard". +.IP "state_depend_encoding" +Indicates a current locale is state dependent. The value should be +specified "True" or "False". +.IP "wc_encoding_mask" +Specifies a bit-mask for parsing wide-char string. Each wide character is +applied bit-and operation with this bit-mask, then is classified into +the unique charset, by using `wc_encoding'. +.IP "wc_shift_bits" +Specifies a number of bit to be shifted for converting from a multi-byte +character to a wide character, and vice-versa. +.IP "csN" +.br +Includes a character set information for Nth charset, where N is the +index number (0,1,2,...). If there are 4 charsets available in current +locale, cs0, cs1, cs2 and cs3 should be defined. This class has five +subclasses, `side', `length', `mb_encoding' `wc_encoding' and `ct_encoding'. +.IP "side" +.br +Specifies a mapping side of this charset. The format of this value is; +.RS +.TS +tab(@); +l l l. +Side@::=@EncodingSide [``:Default''] +.TE +.RE +The suffix ":Default" can be specified. It indicates that a character +belongs to the specified side is mapped to this charset in initial state. +.IP "length" +.br +Specifies a number of bytes of a multi-byte character of this charset. +It should not contain the length of any single-shift sequence. +.IP "mb_encoding" +Specifies a list of shift sequence for parsing multi-byte string. +The format of this value is; +.RS +.TS +tab(@); +l l l +l r l +l l l +l l l +l l l +l l l +c l s +c l s. +MBEncoding@::=@ShiftType ShiftSequence +@|@ShiftType ShiftSequence ";" MBEncoding +ShiftType@::=@"<SS>" | "<LSL>" | "<LSR>" +ShiftSequence@::=@SequenceValue | SequenceValue ShiftSequence +SequenceValue@::=@NumericString +.sp +shift types: +<SS>@Indicates single shift sequence +<LSL>@Indicates locking shift left sequence +<LSR>@Indicates locking shift right sequence +.TE +.RE +example: +.br + <LSL> \\x1b \\x28 \\x4a; <LSL> \\x1b \\x28 \\x42 +.LP +.IP "wc_encoding" +Specifies an integer value for parsing wide-char string. +It is used to determine the charset for each wide character, after +applying bit-and operation using `wc_encoding_mask'. +This value should be unique in all csN classes. +.IP "ct_encoding" +Specifies a list of encoding information that can be used for Compound +Text. +.LP +.NH 1 +Sample of X Locale Database +.XS +\*(SN Sample of X Locale Database +.XE +.LP +The following is sample X Locale Database file. +.LP +.sp +.RS +.nf +# $Xorg: LocaleDB.ms,v 1.3 2000/08/17 19:42:49 cpqbld Exp $ +# XLocale Database Sample for ja_JP.euc +# + +# +# XLC_FONTSET category +# +XLC_FONTSET +# fs0 class (7 bit ASCII) +fs0 { + charset ISO8859-1:GL + font ISO8859-1:GL; JISX0201.1976-0:GL +} +# fs1 class (Kanji) +fs1 { + charset JISX0208.1983-0:GL + font JISX0208.1983-0:GL +} +# fs2 class (Half Kana) +fs2 { + charset JISX0201.1976-0:GR + font JISX0201.1976-0:GR +} +# fs3 class (User Defined Character) +# fs3 { +# charset JISX0212.1990-0:GL +# font JISX0212.1990-0:GL +# } +END XLC_FONTSET + +# +# XLC_XLOCALE category +# +XLC_XLOCALE + +encoding_name ja.euc +mb_cur_max 3 +state_depend_encoding False + +wc_encoding_mask \\x00008080 +wc_shift_bits 8 + +# cs0 class +cs0 { + side GL:Default + length 1 + wc_encoding \\x00000000 + ct_encoding ISO8859-1:GL; JISX0201.1976-0:GL +} +# cs1 class +cs1 { + side GR:Default + length 2 + + wc_encoding \\x00008080 + + ct_encoding JISX0208.1983-0:GL; JISX0208.1983-0:GR;\\ + JISX0208.1983-1:GL; JISX0208.1983-1:GR +} + +# cs2 class +cs2 { + side GR + length 1 + mb_encoding <SS> \\x8e + + wc_encoding \\x00000080 + + ct_encoding JISX0201.1976-0:GR +} + +# cs3 class +# cs3 { +# side GL +# length 2 +# mb_encoding <SS> \\x8f +# #if HasWChar32 +# wc_encoding \\x20000000 +# #else +# wc_encoding \\x00008000 +# #endif +# ct_encoding JISX0212.1990-0:GL; JISX0212.1990-0:GR +# } + +END XLC_XLOCALE +.fi +.RE +.LP +.NH 1 +Reference +.XS +\*(SN Reference +.XE +.LP +.XP +[1] \fIISO/IEC 9899:1990 C Language Standard\fP +.XP +[2] \fIX Logical Font Descriptions\fP +.LP |