**** Merged from MCS ****
[mono-project.git] / mcs / class / I18N / Common / Handlers.cs
blobae3633170a292570eb60ff9c89bca1ed152d1116
1 /*
2 * Handlers.cs - Implementation of the "I18N.Common.Handlers" class.
4 * Copyright (c) 2002 Southern Storm Software, Pty Ltd
6 * Permission is hereby granted, free of charge, to any person obtaining
7 * a copy of this software and associated documentation files (the "Software"),
8 * to deal in the Software without restriction, including without limitation
9 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 * and/or sell copies of the Software, and to permit persons to whom the
11 * Software is furnished to do so, subject to the following conditions:
13 * The above copyright notice and this permission notice shall be included
14 * in all copies or substantial portions of the Software.
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 * OTHER DEALINGS IN THE SOFTWARE.
25 namespace I18N.Common
28 using System;
29 using System.Collections;
31 // This class provides an internal list of handlers, for runtime
32 // engines that do not implement the altered "GetFile" semantics.
33 // The list must be kept up to date manually.
35 public sealed class Handlers
37 public static readonly String[] List = {
38 "I18N.CJK.CP932",
39 "I18N.CJK.CP936",
40 "I18N.CJK.CP949",
41 "I18N.CJK.CP950",
42 "I18N.CJK.CP51932",
43 "I18N.CJK.ENCbig5",
44 "I18N.CJK.ENCgb2312",
45 "I18N.CJK.ENCshift_jis",
46 "I18N.CJK.ENCeuc_jp",
47 "I18N.CJK.ENCuhc",
48 "I18N.MidEast.CP1254",
49 "I18N.MidEast.ENCwindows_1254",
50 "I18N.MidEast.CP1255",
51 "I18N.MidEast.ENCwindows_1255",
52 "I18N.MidEast.CP1256",
53 "I18N.MidEast.ENCwindows_1256",
54 "I18N.MidEast.CP28596",
55 "I18N.MidEast.ENCiso_8859_6",
56 "I18N.MidEast.CP28598",
57 "I18N.MidEast.ENCiso_8859_8",
58 "I18N.MidEast.CP28599",
59 "I18N.MidEast.ENCiso_8859_9",
60 "I18N.MidEast.CP38598",
61 "I18N.MidEast.ENCwindows_38598",
62 "I18N.Other.CP1251",
63 "I18N.Other.ENCwindows_1251",
64 "I18N.Other.CP1257",
65 "I18N.Other.ENCwindows_1257",
66 "I18N.Other.CP1258",
67 "I18N.Other.ENCwindows_1258",
68 "I18N.Other.CP20866",
69 "I18N.Other.ENCkoi8_r",
70 "I18N.Other.CP21866",
71 "I18N.Other.ENCkoi8_u",
72 "I18N.Other.CP28594",
73 "I18N.Other.ENCiso_8859_4",
74 "I18N.Other.CP28595",
75 "I18N.Other.ENCiso_8859_5",
76 "I18N.Other.ISCIIEncoding",
77 "I18N.Other.CP57002",
78 "I18N.Other.CP57003",
79 "I18N.Other.CP57004",
80 "I18N.Other.CP57005",
81 "I18N.Other.CP57006",
82 "I18N.Other.CP57007",
83 "I18N.Other.CP57008",
84 "I18N.Other.CP57009",
85 "I18N.Other.CP57010",
86 "I18N.Other.CP57011",
87 "I18N.Other.ENCx_iscii_de",
88 "I18N.Other.ENCx_iscii_be",
89 "I18N.Other.ENCx_iscii_ta",
90 "I18N.Other.ENCx_iscii_te",
91 "I18N.Other.ENCx_iscii_as",
92 "I18N.Other.ENCx_iscii_or",
93 "I18N.Other.ENCx_iscii_ka",
94 "I18N.Other.ENCx_iscii_ma",
95 "I18N.Other.ENCx_iscii_gu",
96 "I18N.Other.ENCx_iscii_pa",
97 "I18N.Other.CP874",
98 "I18N.Other.ENCwindows_874",
99 "I18N.Rare.CP1026",
100 "I18N.Rare.ENCibm1026",
101 "I18N.Rare.CP1047",
102 "I18N.Rare.ENCibm1047",
103 "I18N.Rare.CP1140",
104 "I18N.Rare.ENCibm01140",
105 "I18N.Rare.CP1141",
106 "I18N.Rare.ENCibm01141",
107 "I18N.Rare.CP1142",
108 "I18N.Rare.ENCibm01142",
109 "I18N.Rare.CP1143",
110 "I18N.Rare.ENCibm01143",
111 "I18N.Rare.CP1144",
112 "I18N.Rare.ENCibm1144",
113 "I18N.Rare.CP1145",
114 "I18N.Rare.ENCibm1145",
115 "I18N.Rare.CP1146",
116 "I18N.Rare.ENCibm1146",
117 "I18N.Rare.CP1147",
118 "I18N.Rare.ENCibm1147",
119 "I18N.Rare.CP1148",
120 "I18N.Rare.ENCibm1148",
121 "I18N.Rare.CP1149",
122 "I18N.Rare.ENCibm1149",
123 "I18N.Rare.CP20273",
124 "I18N.Rare.ENCibm273",
125 "I18N.Rare.CP20277",
126 "I18N.Rare.ENCibm277",
127 "I18N.Rare.CP20278",
128 "I18N.Rare.ENCibm278",
129 "I18N.Rare.CP20280",
130 "I18N.Rare.ENCibm280",
131 "I18N.Rare.CP20284",
132 "I18N.Rare.ENCibm284",
133 "I18N.Rare.CP20285",
134 "I18N.Rare.ENCibm285",
135 "I18N.Rare.CP20290",
136 "I18N.Rare.ENCibm290",
137 "I18N.Rare.CP20297",
138 "I18N.Rare.ENCibm297",
139 "I18N.Rare.CP20420",
140 "I18N.Rare.ENCibm420",
141 "I18N.Rare.CP20424",
142 "I18N.Rare.ENCibm424",
143 "I18N.Rare.CP20871",
144 "I18N.Rare.ENCibm871",
145 "I18N.Rare.CP21025",
146 "I18N.Rare.ENCibm1025",
147 "I18N.Rare.CP37",
148 "I18N.Rare.ENCibm037",
149 "I18N.Rare.CP500",
150 "I18N.Rare.ENCibm500",
151 "I18N.Rare.CP708",
152 "I18N.Rare.ENCasmo_708",
153 "I18N.Rare.CP852",
154 "I18N.Rare.ENCibm852",
155 "I18N.Rare.CP855",
156 "I18N.Rare.ENCibm855",
157 "I18N.Rare.CP857",
158 "I18N.Rare.ENCibm857",
159 "I18N.Rare.CP858",
160 "I18N.Rare.ENCibm00858",
161 "I18N.Rare.CP862",
162 "I18N.Rare.ENCibm862",
163 "I18N.Rare.CP864",
164 "I18N.Rare.ENCibm864",
165 "I18N.Rare.CP866",
166 "I18N.Rare.ENCibm866",
167 "I18N.Rare.CP869",
168 "I18N.Rare.ENCibm869",
169 "I18N.Rare.CP870",
170 "I18N.Rare.ENCibm870",
171 "I18N.Rare.CP875",
172 "I18N.Rare.ENCibm875",
173 "I18N.West.CP10000",
174 "I18N.West.ENCmacintosh",
175 "I18N.West.CP10079",
176 "I18N.West.ENCx_mac_icelandic",
177 "I18N.West.CP1250",
178 "I18N.West.ENCwindows_1250",
179 "I18N.West.CP1252",
180 "I18N.West.ENCwindows_1252",
181 "I18N.West.CP1253",
182 "I18N.West.ENCwindows_1253",
183 "I18N.West.CP28592",
184 "I18N.West.ENCiso_8859_2",
185 "I18N.West.CP28593",
186 "I18N.West.ENCiso_8859_3",
187 "I18N.West.CP28597",
188 "I18N.West.ENCiso_8859_7",
189 "I18N.West.CP28605",
190 "I18N.West.ENCiso_8859_15",
191 "I18N.West.CP437",
192 "I18N.West.ENCibm437",
193 "I18N.West.CP850",
194 "I18N.West.ENCibm850",
195 "I18N.West.CP860",
196 "I18N.West.ENCibm860",
197 "I18N.West.CP861",
198 "I18N.West.ENCibm861",
199 "I18N.West.CP863",
200 "I18N.West.ENCibm863",
201 "I18N.West.CP865",
202 "I18N.West.ENCibm865"
205 static Hashtable aliases;
206 public static string GetAlias (string name)
208 if (aliases == null)
209 BuildHash ();
211 return aliases [name] as string;
214 static void BuildHash ()
216 aliases = new Hashtable (new CaseInsensitiveHashCodeProvider (),
217 new CaseInsensitiveComparer ());
219 aliases.Add ("arabic", "iso_8859_6");
220 aliases.Add ("csISOLatinArabic", "iso_8859_6");
221 aliases.Add ("ECMA_114", "iso_8859_6");
222 aliases.Add ("ISO_8859_6:1987", "iso_8859_6");
223 aliases.Add ("iso_ir_127", "iso_8859_6");
225 aliases.Add ("cp1256" ,"windows_1256");
227 aliases.Add ("csISOLatin4", "iso_8859_4");
228 aliases.Add ("ISO_8859_4:1988", "iso_8859_4");
229 aliases.Add ("iso_ir_110", "iso_8859_4");
230 aliases.Add ("l4", "iso_8859_4");
231 aliases.Add ("latin4", "iso_8859_4");
233 aliases.Add ("cp852" ,"ibm852");
235 aliases.Add ("csISOLatin2", "iso_8859_2");
236 aliases.Add ("iso_8859_2:1987", "iso_8859_2");
237 aliases.Add ("iso8859_2", "iso_8859_2");
238 aliases.Add ("iso_ir_101", "iso_8859_2");
239 aliases.Add ("l2", "iso_8859_2");
240 aliases.Add ("latin2", "iso_8859_2");
242 aliases.Add ("x-cp1250", "windows_1250");
244 aliases.Add ("chinese", "gb2312");
245 aliases.Add ("CN-GB", "gb2312");
246 aliases.Add ("csGB2312", "gb2312");
247 aliases.Add ("csGB231280", "gb2312");
248 aliases.Add ("csISO58GB231280", "gb2312");
249 aliases.Add ("GB_2312_80", "gb2312");
250 aliases.Add ("GB231280", "gb2312");
251 aliases.Add ("GB2312_80", "gb2312");
252 aliases.Add ("GBK", "gb2312");
253 aliases.Add ("iso_ir_58", "gb2312");
255 aliases.Add ("cn-big5", "big5");
256 aliases.Add ("csbig5", "big5");
257 aliases.Add ("x-x-big5", "big5");
259 aliases.Add ("cp866", "ibm866");
261 aliases.Add ("csISOLatin5", "iso_8859_5");
262 aliases.Add ("csISOLatinCyrillic", "iso_8859_5");
263 aliases.Add ("cyrillic", "iso_8859_5");
264 aliases.Add ("ISO_8859_5:1988", "iso_8859_5");
265 aliases.Add ("iso_ir_144", "iso_8859_5");
266 aliases.Add ("l5", "iso_8859_5");
268 aliases.Add ("csKOI8R", "koi8_r");
269 aliases.Add ("koi", "koi8_r");
270 aliases.Add ("koi8", "koi8_r");
271 aliases.Add ("koi8r", "koi8_r");
273 aliases.Add ("koi8ru", "koi8_u");
275 aliases.Add ("x-cp1251", "windows_1251");
277 aliases.Add ("csISOLatinGreek", "iso_8859_7");
278 aliases.Add ("ECMA_118", "iso_8859_7");
279 aliases.Add ("ELOT_928", "iso_8859_7");
280 aliases.Add ("greek", "iso_8859_7");
281 aliases.Add ("greek8", "iso_8859_7");
282 aliases.Add ("ISO_8859_7:1987", "iso_8859_7");
283 aliases.Add ("iso_ir_126", "iso_8859_7");
285 aliases.Add ("csISOLatinHebrew", "iso_8859_8");
286 aliases.Add ("hebrew", "iso_8859_8");
287 aliases.Add ("ISO_8859_8:1988", "iso_8859_8");
288 aliases.Add ("iso_ir_138", "iso_8859_8");
290 aliases.Add ("csShiftJIS", "shift_jis");
291 aliases.Add ("csWindows31J", "shift_jis");
292 aliases.Add ("ms_Kanji", "shift_jis");
293 aliases.Add ("shift-jis", "shift_jis");
294 aliases.Add ("x-ms-cp932", "shift_jis");
295 aliases.Add ("x-sjis", "shift_jis");
297 aliases.Add ("csISOLatin3", "iso_8859_3");
298 aliases.Add ("ISO_8859_3:1988", "iso_8859_3");
299 aliases.Add ("iso_ir_109", "iso_8859_3");
300 aliases.Add ("l3", "iso_8859_3");
301 aliases.Add ("latin3", "iso_8859_3");
303 aliases.Add ("csISOLatin9", "iso_8859_15");
304 aliases.Add ("l9", "iso_8859_15");
305 aliases.Add ("latin9", "iso_8859_15");
307 aliases.Add ("cp437", "ibm437");
308 aliases.Add ("csPC8", "ibm437");
309 aliases.Add ("CodePage437", "ibm437");
311 aliases.Add ("DOS_874", "windows_874");
312 aliases.Add ("iso_8859_11", "windows_874");
313 aliases.Add ("TIS_620", "windows_874");
317 }; // class Handlers
319 }; // namespace I18N.Common