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.
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 = {
44 "I18N.CJK.ENCshift_jis",
46 "I18N.MidEast.CP1254",
47 "I18N.MidEast.ENCwindows_1254",
48 "I18N.MidEast.CP1255",
49 "I18N.MidEast.ENCwindows_1255",
50 "I18N.MidEast.CP1256",
51 "I18N.MidEast.ENCwindows_1256",
52 "I18N.MidEast.CP28596",
53 "I18N.MidEast.ENCiso_8859_6",
54 "I18N.MidEast.CP28598",
55 "I18N.MidEast.ENCiso_8859_8",
56 "I18N.MidEast.CP28599",
57 "I18N.MidEast.ENCiso_8859_9",
58 "I18N.MidEast.CP38598",
59 "I18N.MidEast.ENCwindows_38598",
61 "I18N.Other.ENCwindows_1251",
63 "I18N.Other.ENCwindows_1257",
65 "I18N.Other.ENCwindows_1258",
67 "I18N.Other.ENCkoi8_r",
69 "I18N.Other.ENCkoi8_u",
71 "I18N.Other.ENCiso_8859_4",
73 "I18N.Other.ENCiso_8859_5",
74 "I18N.Other.ISCIIEncoding",
85 "I18N.Other.ENCx_iscii_de",
86 "I18N.Other.ENCx_iscii_be",
87 "I18N.Other.ENCx_iscii_ta",
88 "I18N.Other.ENCx_iscii_te",
89 "I18N.Other.ENCx_iscii_as",
90 "I18N.Other.ENCx_iscii_or",
91 "I18N.Other.ENCx_iscii_ka",
92 "I18N.Other.ENCx_iscii_ma",
93 "I18N.Other.ENCx_iscii_gu",
94 "I18N.Other.ENCx_iscii_pa",
96 "I18N.Other.ENCwindows_874",
98 "I18N.Rare.ENCibm1026",
100 "I18N.Rare.ENCibm1047",
102 "I18N.Rare.ENCibm01140",
104 "I18N.Rare.ENCibm01141",
106 "I18N.Rare.ENCibm01142",
108 "I18N.Rare.ENCibm01143",
110 "I18N.Rare.ENCibm1144",
112 "I18N.Rare.ENCibm1145",
114 "I18N.Rare.ENCibm1146",
116 "I18N.Rare.ENCibm1147",
118 "I18N.Rare.ENCibm1148",
120 "I18N.Rare.ENCibm1149",
122 "I18N.Rare.ENCibm273",
124 "I18N.Rare.ENCibm277",
126 "I18N.Rare.ENCibm278",
128 "I18N.Rare.ENCibm280",
130 "I18N.Rare.ENCibm284",
132 "I18N.Rare.ENCibm285",
134 "I18N.Rare.ENCibm290",
136 "I18N.Rare.ENCibm297",
138 "I18N.Rare.ENCibm420",
140 "I18N.Rare.ENCibm424",
142 "I18N.Rare.ENCibm871",
144 "I18N.Rare.ENCibm1025",
146 "I18N.Rare.ENCibm037",
148 "I18N.Rare.ENCibm500",
150 "I18N.Rare.ENCasmo_708",
152 "I18N.Rare.ENCibm852",
154 "I18N.Rare.ENCibm855",
156 "I18N.Rare.ENCibm857",
158 "I18N.Rare.ENCibm00858",
160 "I18N.Rare.ENCibm862",
162 "I18N.Rare.ENCibm864",
164 "I18N.Rare.ENCibm866",
166 "I18N.Rare.ENCibm869",
168 "I18N.Rare.ENCibm870",
170 "I18N.Rare.ENCibm875",
172 "I18N.West.ENCmacintosh",
174 "I18N.West.ENCx_mac_icelandic",
176 "I18N.West.ENCwindows_1250",
178 "I18N.West.ENCwindows_1252",
180 "I18N.West.ENCwindows_1253",
182 "I18N.West.ENCiso_8859_2",
184 "I18N.West.ENCiso_8859_3",
186 "I18N.West.ENCiso_8859_7",
188 "I18N.West.ENCiso_8859_15",
190 "I18N.West.ENCibm437",
192 "I18N.West.ENCibm850",
194 "I18N.West.ENCibm860",
196 "I18N.West.ENCibm861",
198 "I18N.West.ENCibm863",
200 "I18N.West.ENCibm865"
203 static Hashtable aliases;
204 public static string GetAlias (string name)
209 return aliases [name] as string;
212 static void BuildHash ()
214 aliases = new Hashtable (new CaseInsensitiveHashCodeProvider (),
215 new CaseInsensitiveComparer ());
217 aliases.Add ("arabic", "iso_8859_6");
218 aliases.Add ("csISOLatinArabic", "iso_8859_6");
219 aliases.Add ("ECMA_114", "iso_8859_6");
220 aliases.Add ("ISO_8859_6:1987", "iso_8859_6");
221 aliases.Add ("iso_ir_127", "iso_8859_6");
223 aliases.Add ("cp1256" ,"windows_1256");
225 aliases.Add ("csISOLatin4", "iso_8859_4");
226 aliases.Add ("ISO_8859_4:1988", "iso_8859_4");
227 aliases.Add ("iso_ir_110", "iso_8859_4");
228 aliases.Add ("l4", "iso_8859_4");
229 aliases.Add ("latin4", "iso_8859_4");
231 aliases.Add ("cp852" ,"ibm852");
233 aliases.Add ("csISOLatin2", "iso_8859_2");
234 aliases.Add ("iso_8859_2:1987", "iso_8859_2");
235 aliases.Add ("iso8859_2", "iso_8859_2");
236 aliases.Add ("iso_ir_101", "iso_8859_2");
237 aliases.Add ("l2", "iso_8859_2");
238 aliases.Add ("latin2", "iso_8859_2");
240 aliases.Add ("x-cp1250", "windows_1250");
242 aliases.Add ("chinese", "gb2312");
243 aliases.Add ("CN-GB", "gb2312");
244 aliases.Add ("csGB2312", "gb2312");
245 aliases.Add ("csGB231280", "gb2312");
246 aliases.Add ("csISO58GB231280", "gb2312");
247 aliases.Add ("GB_2312_80", "gb2312");
248 aliases.Add ("GB231280", "gb2312");
249 aliases.Add ("GB2312_80", "gb2312");
250 aliases.Add ("GBK", "gb2312");
251 aliases.Add ("iso_ir_58", "gb2312");
253 aliases.Add ("cn-big5", "big5");
254 aliases.Add ("csbig5", "big5");
255 aliases.Add ("x-x-big5", "big5");
257 aliases.Add ("cp866", "ibm866");
259 aliases.Add ("csISOLatin5", "iso_8859_5");
260 aliases.Add ("csISOLatinCyrillic", "iso_8859_5");
261 aliases.Add ("cyrillic", "iso_8859_5");
262 aliases.Add ("ISO_8859_5:1988", "iso_8859_5");
263 aliases.Add ("iso_ir_144", "iso_8859_5");
264 aliases.Add ("l5", "iso_8859_5");
266 aliases.Add ("csKOI8R", "koi8_r");
267 aliases.Add ("koi", "koi8_r");
268 aliases.Add ("koi8", "koi8_r");
269 aliases.Add ("koi8r", "koi8_r");
271 aliases.Add ("koi8ru", "koi8_u");
273 aliases.Add ("x-cp1251", "windows_1251");
275 aliases.Add ("csISOLatinGreek", "iso_8859_7");
276 aliases.Add ("ECMA_118", "iso_8859_7");
277 aliases.Add ("ELOT_928", "iso_8859_7");
278 aliases.Add ("greek", "iso_8859_7");
279 aliases.Add ("greek8", "iso_8859_7");
280 aliases.Add ("ISO_8859_7:1987", "iso_8859_7");
281 aliases.Add ("iso_ir_126", "iso_8859_7");
283 aliases.Add ("csISOLatinHebrew", "iso_8859_8");
284 aliases.Add ("hebrew", "iso_8859_8");
285 aliases.Add ("ISO_8859_8:1988", "iso_8859_8");
286 aliases.Add ("iso_ir_138", "iso_8859_8");
288 aliases.Add ("csShiftJIS", "shift_jis");
289 aliases.Add ("csWindows31J", "shift_jis");
290 aliases.Add ("ms_Kanji", "shift_jis");
291 aliases.Add ("shift-jis", "shift_jis");
292 aliases.Add ("x-ms-cp932", "shift_jis");
293 aliases.Add ("x-sjis", "shift_jis");
295 aliases.Add ("csISOLatin3", "iso_8859_3");
296 aliases.Add ("ISO_8859_3:1988", "iso_8859_3");
297 aliases.Add ("iso_ir_109", "iso_8859_3");
298 aliases.Add ("l3", "iso_8859_3");
299 aliases.Add ("latin3", "iso_8859_3");
301 aliases.Add ("csISOLatin9", "iso_8859_15");
302 aliases.Add ("l9", "iso_8859_15");
303 aliases.Add ("latin9", "iso_8859_15");
305 aliases.Add ("cp437", "ibm437");
306 aliases.Add ("csPC8", "ibm437");
307 aliases.Add ("CodePage437", "ibm437");
309 aliases.Add ("DOS_874", "windows_874");
310 aliases.Add ("iso_8859_11", "windows_874");
311 aliases.Add ("TIS_620", "windows_874");
317 }; // namespace I18N.Common