Add one more entry for the indirect table. Remove reference to
[kopensolaris-gnu/glibc.git] / locale / categories.def
1 /* Definition of all available locale categories and their items.  -*- C -*-
2    Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
3
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Library General Public License as
6    published by the Free Software Foundation; either version 2 of the
7    License, or (at your option) any later version.
8
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Library General Public License for more details.
13
14    You should have received a copy of the GNU Library General Public
15    License along with the GNU C Library; see the file COPYING.LIB.  If not,
16    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17    Boston, MA 02111-1307, USA.  */
18
19 /* These definitions are used by the locale-related files in the C library
20    and the programs `localedef' and `locale'.
21
22    The general format of the descriptions is like this:
23
24      DEFINE_CATEGORY (ID, name, ( items ), setlocale-postload)
25
26    where items itself is an array of entries in the form
27
28      { ID, name, standard, value-type, min, max }
29
30    The usage of the load, check, output functions depends on the individual
31    program code which loads this file.
32
33    The various value types for the items are `string', `stringarray', `byte'
34    `bytearray', and `word'.  These cover all possible values in the current
35    locale definitions.  `min' and `max' can be individually used again.  */
36
37 #ifndef NO_POSTLOAD
38 #define NO_POSTLOAD NULL
39 #endif
40
41 DEFINE_CATEGORY
42 (
43  LC_COLLATE, "LC_COLLATE",
44  (
45   DEFINE_ELEMENT (_NL_COLLATE_NRULES,         "collate-nrules",           std, word)
46   DEFINE_ELEMENT (_NL_COLLATE_RULESETS,       "collate-rulesets",         std, string)
47   DEFINE_ELEMENT (_NL_COLLATE_TABLEMB,        "collate-tablemb",          std, string)
48   DEFINE_ELEMENT (_NL_COLLATE_WEIGHTMB,       "collate-weightmb",         std, string)
49   DEFINE_ELEMENT (_NL_COLLATE_EXTRAMB,        "collate-extramb",          std, string)
50   DEFINE_ELEMENT (_NL_COLLATE_INDIRECTMB,     "collate-indirectmb",       std, string)
51   ), NO_POSTLOAD)
52
53
54 /* The actual definition of ctype is meaningless here.  It is hard coded in
55    the code because it has to be handled very specially.  Only the names of
56    the functions and the value types are important.  */
57 DEFINE_CATEGORY
58 (
59  LC_CTYPE, "LC_CTYPE",
60  (
61   DEFINE_ELEMENT (_NL_CTYPE_CLASS,        "ctype-class",        std, string)
62   DEFINE_ELEMENT (_NL_CTYPE_TOUPPER,      "ctype-toupper",      std, string)
63   DEFINE_ELEMENT (_NL_CTYPE_TOLOWER,      "ctype-tolower",      std, string)
64   DEFINE_ELEMENT (_NL_CTYPE_CLASS32,      "ctype-class32",      std, string)
65   DEFINE_ELEMENT (_NL_CTYPE_NAMES,        "ctype-names",        std, string)
66   DEFINE_ELEMENT (_NL_CTYPE_HASH_SIZE,    "ctype-hash-size",    std, word)
67   DEFINE_ELEMENT (_NL_CTYPE_HASH_LAYERS,  "ctype-hash-layers",  std, word)
68   DEFINE_ELEMENT (_NL_CTYPE_CLASS_NAMES,  "ctype-class-names",  std, stringlist)
69   DEFINE_ELEMENT (_NL_CTYPE_MAP_NAMES,    "ctype-map-names",    std, stringlist)
70   DEFINE_ELEMENT (_NL_CTYPE_WIDTH,        "ctype-width",        std, bytearray)
71   DEFINE_ELEMENT (_NL_CTYPE_MB_CUR_MAX,   "ctype-mb-cur-max",   std, word)
72   DEFINE_ELEMENT (_NL_CTYPE_CODESET_NAME, "charmap",            std, string)
73   ), _nl_postload_ctype)
74
75
76 DEFINE_CATEGORY
77 (
78  LC_MONETARY, "LC_MONETARY",
79  (
80   DEFINE_ELEMENT (INT_CURR_SYMBOL,                     "int_curr_symbol",        std, string)
81   DEFINE_ELEMENT (CURRENCY_SYMBOL,                     "currency_symbol",        std, string)
82   DEFINE_ELEMENT (MON_DECIMAL_POINT,                   "mon_decimal_point",      std, string)
83   DEFINE_ELEMENT (MON_THOUSANDS_SEP,                   "mon_thousands_sep",      std, string)
84   DEFINE_ELEMENT (MON_GROUPING,                        "mon_grouping",           std, bytearray)
85   DEFINE_ELEMENT (POSITIVE_SIGN,                       "positive_sign",          std, string)
86   DEFINE_ELEMENT (NEGATIVE_SIGN,                       "negative_sign",          std, string)
87   DEFINE_ELEMENT (INT_FRAC_DIGITS,                     "int_frac_digits",        std, byte)
88   DEFINE_ELEMENT (FRAC_DIGITS,                         "frac_digits",            std, byte)
89   DEFINE_ELEMENT (P_CS_PRECEDES,                       "p_cs_precedes",          std, byte, 0, 1)
90   DEFINE_ELEMENT (P_SEP_BY_SPACE,                      "p_sep_by_space",         std, byte, 0, 2)
91   DEFINE_ELEMENT (N_CS_PRECEDES,                       "n_cs_precedes",          std, byte, 0, 1)
92   DEFINE_ELEMENT (N_SEP_BY_SPACE,                      "n_sep_by_space",         std, byte, 0, 2)
93   DEFINE_ELEMENT (P_SIGN_POSN,                         "p_sign_posn",            std, byte, 0, 4)
94   DEFINE_ELEMENT (N_SIGN_POSN,                         "n_sign_posn",            std, byte, 0, 4)
95   DEFINE_ELEMENT (_NL_MONETARY_INT_P_CS_PRECEDES,      "int_p_cs_precedes",      std, byte, 0, 1)
96   DEFINE_ELEMENT (_NL_MONETARY_INT_P_SEP_BY_SPACE,     "int_p_sep_by_space",     std, byte, 0, 2)
97   DEFINE_ELEMENT (_NL_MONETARY_INT_N_CS_PRECEDES,      "int_n_cs_precedes",      std, byte, 0, 1)
98   DEFINE_ELEMENT (_NL_MONETARY_INT_N_SEP_BY_SPACE,     "int_n_sep_by_space",     std, byte, 0, 2)
99   DEFINE_ELEMENT (_NL_MONETARY_INT_P_SIGN_POSN,        "int_p_sign_posn",        std, byte, 0, 4)
100   DEFINE_ELEMENT (_NL_MONETARY_INT_N_SIGN_POSN,        "int_n_sign_posn",        std, byte, 0, 4)
101   DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_CURR_SYMBOL,    "duo_int_curr_symbol",    std, string)
102   DEFINE_ELEMENT (_NL_MONETARY_DUO_CURRENCY_SYMBOL,    "duo_currency_symbol",    std, string)
103   DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_FRAC_DIGITS,    "duo_int_frac_digits",    std, byte)
104   DEFINE_ELEMENT (_NL_MONETARY_DUO_FRAC_DIGITS,        "duo_frac_digits",        std, byte)
105   DEFINE_ELEMENT (_NL_MONETARY_DUO_P_CS_PRECEDES,      "duo_p_cs_precedes",      std, byte, 0, 1)
106   DEFINE_ELEMENT (_NL_MONETARY_DUO_P_SEP_BY_SPACE,     "duo_p_sep_by_space",     std, byte, 0, 2)
107   DEFINE_ELEMENT (_NL_MONETARY_DUO_N_CS_PRECEDES,      "duo_n_cs_precedes",      std, byte, 0, 1)
108   DEFINE_ELEMENT (_NL_MONETARY_DUO_N_SEP_BY_SPACE,     "duo_n_sep_by_space",     std, byte, 0, 2)
109   DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_P_CS_PRECEDES,  "duo_int_p_cs_precedes",  std, byte, 0, 1)
110   DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_P_SEP_BY_SPACE, "duo_int_p_sep_by_space", std, byte, 0, 2)
111   DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_N_CS_PRECEDES,  "duo_int_n_cs_precedes",  std, byte, 0, 1)
112   DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_N_SEP_BY_SPACE, "duo_int_n_sep_by_space", std, byte, 0, 2)
113   DEFINE_ELEMENT (_NL_MONETARY_DUO_P_SIGN_POSN,        "duo_p_sign_posn",        std, byte, 0, 4)
114   DEFINE_ELEMENT (_NL_MONETARY_DUO_N_SIGN_POSN,        "duo_n_sign_posn",        std, byte, 0, 4)
115   DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_P_SIGN_POSN,    "duo_int_p_sign_posn",    std, byte, 0, 4)
116   DEFINE_ELEMENT (_NL_MONETARY_DUO_INT_N_SIGN_POSN,    "duo_int_n_sign_posn",    std, byte, 0, 4)
117   DEFINE_ELEMENT (_NL_MONETARY_UNO_VALID_FROM,         "uno_valid_from",         std, word)
118   DEFINE_ELEMENT (_NL_MONETARY_UNO_VALID_TO,           "uno_valid_to",           std, word)
119   DEFINE_ELEMENT (_NL_MONETARY_DUO_VALID_FROM,         "duo_valid_from",         std, word)
120   DEFINE_ELEMENT (_NL_MONETARY_DUO_VALID_TO,           "duo_valid_to",           std, word)
121   DEFINE_ELEMENT (_NL_MONETARY_CONVERSION_RATE,        "conversion_rate",         std, wordarray, 2, 2)
122   ), NO_POSTLOAD)
123
124
125 DEFINE_CATEGORY
126 (
127  LC_NUMERIC, "LC_NUMERIC",
128  (
129   DEFINE_ELEMENT (DECIMAL_POINT, "decimal_point", std, string)
130   DEFINE_ELEMENT (THOUSANDS_SEP, "thousands_sep", std, string)
131   DEFINE_ELEMENT (GROUPING,      "grouping",      std, bytearray)
132   ), NO_POSTLOAD)
133
134
135 DEFINE_CATEGORY
136 (
137  LC_TIME, "LC_TIME",
138  (
139   DEFINE_ELEMENT (ABDAY_1,     "abday",       std, stringarray,  7,  7)
140   DEFINE_ELEMENT (DAY_1,       "day",         std, stringarray,  7,  7)
141   DEFINE_ELEMENT (ABMON_1,     "abmon",       std, stringarray, 12, 12)
142   DEFINE_ELEMENT (MON_1,       "mon",         std, stringarray, 12, 12)
143   DEFINE_ELEMENT (AM_STR,      "am_pm",       std, stringarray,  2,  2)
144   DEFINE_ELEMENT (D_T_FMT,     "d_t_fmt",     std, string)
145   DEFINE_ELEMENT (D_FMT,       "d_fmt",       std, string)
146   DEFINE_ELEMENT (T_FMT,       "t_fmt",       std, string)
147   DEFINE_ELEMENT (T_FMT_AMPM,  "t_fmt_ampm",  std, string)
148   DEFINE_ELEMENT (ERA,         "era",         opt, stringarray)
149   DEFINE_ELEMENT (ERA_YEAR,    "era_year",    opt, string)
150   DEFINE_ELEMENT (ERA_D_FMT,   "era_d_fmt",   opt, string)
151   DEFINE_ELEMENT (ALT_DIGITS,  "alt_digits",  opt, stringarray,  0, 100)
152   DEFINE_ELEMENT (ERA_D_T_FMT, "era_d_t_fmt", opt, string)
153   DEFINE_ELEMENT (ERA_T_FMT,   "era_t_fmt",   opt, string)
154   DEFINE_ELEMENT (_NL_TIME_ERA_NUM_ENTRIES,    "time-era-num-entries",    opt, word)
155   DEFINE_ELEMENT (_NL_TIME_ERA_ENTRIES,   "time-era-entries", opt, string)
156   DEFINE_ELEMENT (_NL_WABDAY_1,  "wide-abday",    std, stringarray,  7,  7)
157   DEFINE_ELEMENT (_NL_WDAY_1,    "wide-day",      std, stringarray,  7,  7)
158   DEFINE_ELEMENT (_NL_WABMON_1,  "wide-abmon",    std, stringarray, 12, 12)
159   DEFINE_ELEMENT (_NL_WMON_1,    "wide-mon",      std, stringarray, 12, 12)
160   DEFINE_ELEMENT (_NL_WAM_STR,   "wide-am_pm",    std, stringarray,  2,  2)
161   DEFINE_ELEMENT (_NL_WD_T_FMT,  "wide-d_t_fmt",  std, string)
162   DEFINE_ELEMENT (_NL_WD_FMT,    "wide-d_fmt",    std, string)
163   DEFINE_ELEMENT (_NL_WT_FMT,    "wide-t_fmt",    std, string)
164   DEFINE_ELEMENT (_NL_WT_FMT_AMPM, "wide-t_fmt_ampm", std, string)
165   DEFINE_ELEMENT (_NL_WERA_YEAR,   "wide-era_year",    opt, string)
166   DEFINE_ELEMENT (_NL_WERA_D_FMT,  "wide-era_d_fmt",   opt, string)
167   DEFINE_ELEMENT (_NL_WALT_DIGITS,  "wide-alt_digits",  opt, stringarray,  0, 100)
168   DEFINE_ELEMENT (_NL_WERA_D_T_FMT, "wide-era_d_t_fmt", opt, string)
169   DEFINE_ELEMENT (_NL_WERA_T_FMT,   "wide-era_t_fmt",   opt, string)
170   DEFINE_ELEMENT (_NL_TIME_WEEK_NDAYS,      "week-ndays",          std, byte)
171   DEFINE_ELEMENT (_NL_TIME_WEEK_1STDAY,     "week-1stday",         std, word)
172   DEFINE_ELEMENT (_NL_TIME_WEEK_1STWEEK,    "week-1stweek",        std, byte)
173   DEFINE_ELEMENT (_NL_TIME_FIRST_WEEKDAY,   "first_weekday",       std, byte)
174   DEFINE_ELEMENT (_NL_TIME_FIRST_WORKDAY,   "first_workday",       std, byte)
175   DEFINE_ELEMENT (_NL_TIME_CAL_DIRECTION,   "cal_direction",       std, byte)
176   DEFINE_ELEMENT (_NL_TIME_TIMEZONE,        "timezone",            std, string)
177   ), _nl_postload_time)
178
179
180 DEFINE_CATEGORY
181 (
182  LC_MESSAGES, "LC_MESSAGES",
183  (
184   DEFINE_ELEMENT (YESEXPR, "yesexpr", std, string)
185   DEFINE_ELEMENT (NOEXPR,  "noexpr",  std, string)
186   DEFINE_ELEMENT (YESSTR,  "yesstr",  opt, string)
187   DEFINE_ELEMENT (NOSTR,   "nostr",   opt, string)
188   ), NO_POSTLOAD)
189
190 DEFINE_CATEGORY
191 (
192  LC_PAPER, "LC_PAPER",
193  (
194   DEFINE_ELEMENT (_NL_PAPER_HEIGHT, "height", std, word)
195   DEFINE_ELEMENT (_NL_PAPER_WIDTH,  "width",  std, word)
196   ), NO_POSTLOAD)
197
198 DEFINE_CATEGORY
199 (
200  LC_NAME, "LC_NAME",
201  (
202   DEFINE_ELEMENT (_NL_NAME_NAME_FMT,  "name_fmt",  std, string)
203   DEFINE_ELEMENT (_NL_NAME_NAME_GEN,  "name_gen",  std, string)
204   DEFINE_ELEMENT (_NL_NAME_NAME_MR,   "name_mr",   std, string)
205   DEFINE_ELEMENT (_NL_NAME_NAME_MRS,  "name_mrs",  std, string)
206   DEFINE_ELEMENT (_NL_NAME_NAME_MISS, "name_miss", std, string)
207   DEFINE_ELEMENT (_NL_NAME_NAME_MS,   "name_ms",   std, string)
208   ), NO_POSTLOAD)
209
210 DEFINE_CATEGORY
211 (
212  LC_ADDRESS, "LC_ADDRESS",
213  (
214   DEFINE_ELEMENT (_NL_ADDRESS_POSTAL_FMT,      "postal_fmt",      std, string)
215   DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_NAME,    "country_name",    std, string)
216   DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_POST,    "country_post",    std, string)
217   DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_AB2,     "country_ab2",     std, string)
218   DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_AB3,     "country_ab3",     std, string)
219   DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_CAR,     "country_car",     std, string)
220   DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_NUM,     "country_num",     std, word)
221   DEFINE_ELEMENT (_NL_ADDRESS_COUNTRY_ISBN,    "country_isbn",    std, string)
222   DEFINE_ELEMENT (_NL_ADDRESS_LANG_NAME,       "lang_name",       std, string)
223   DEFINE_ELEMENT (_NL_ADDRESS_LANG_AB,         "lang_ab",         std, string)
224   DEFINE_ELEMENT (_NL_ADDRESS_LANG_TERM,       "lang_term",       std, string)
225   DEFINE_ELEMENT (_NL_ADDRESS_LANG_LIB,        "lang_lib",        std, string)
226   ), NO_POSTLOAD)
227
228 DEFINE_CATEGORY
229 (
230  LC_TELEPHONE, "LC_TELEPHONE",
231  (
232   DEFINE_ELEMENT (_NL_TELEPHONE_TEL_INT_FMT, "tel_int_fmt", std, string)
233   DEFINE_ELEMENT (_NL_TELEPHONE_TEL_DOM_FMT, "tel_dom_fmt", std, string)
234   DEFINE_ELEMENT (_NL_TELEPHONE_INT_SELECT,  "int_select",  std, string)
235   DEFINE_ELEMENT (_NL_TELEPHONE_INT_PREFIX,  "int_prefix",  std, string)
236   ), NO_POSTLOAD)
237
238 DEFINE_CATEGORY
239 (
240  LC_MEASUREMENT, "LC_MEASUREMENT",
241  (
242   DEFINE_ELEMENT (_NL_MEASUREMENT_MEASUREMENT, "measurement", std, byte)
243   ), NO_POSTLOAD)
244
245 DEFINE_CATEGORY
246 (
247  LC_IDENTIFICATION, "LC_IDENTIFICATION",
248  (
249   DEFINE_ELEMENT (_NL_IDENTIFICATION_TITLE,        "title",        std, string)
250   DEFINE_ELEMENT (_NL_IDENTIFICATION_SOURCE,       "source",       std, string)
251   DEFINE_ELEMENT (_NL_IDENTIFICATION_ADDRESS,      "address",      std, string)
252   DEFINE_ELEMENT (_NL_IDENTIFICATION_CONTACT,      "contact",      std, string)
253   DEFINE_ELEMENT (_NL_IDENTIFICATION_EMAIL,        "email",        std, string)
254   DEFINE_ELEMENT (_NL_IDENTIFICATION_TEL,          "tel",          std, string)
255   DEFINE_ELEMENT (_NL_IDENTIFICATION_FAX,          "fax",          std, string)
256   DEFINE_ELEMENT (_NL_IDENTIFICATION_LANGUAGE,     "language",     std, string)
257   DEFINE_ELEMENT (_NL_IDENTIFICATION_TERRITORY,    "territory",    std, string)
258   DEFINE_ELEMENT (_NL_IDENTIFICATION_AUDIENCE,     "audience",     std, string)
259   DEFINE_ELEMENT (_NL_IDENTIFICATION_APPLICATION,  "applcation",   std, string)
260   DEFINE_ELEMENT (_NL_IDENTIFICATION_ABBREVIATION, "abbreviation", std, string)
261   DEFINE_ELEMENT (_NL_IDENTIFICATION_REVISION,     "revision",     std, string)
262   DEFINE_ELEMENT (_NL_IDENTIFICATION_DATE,         "date",         std, string)
263   DEFINE_ELEMENT (_NL_IDENTIFICATION_CATEGORY,      "category",    std, stringarray, 13, 13)
264   ), NO_POSTLOAD)