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.Generic;
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 = {
50 "I18N.CJK.ENCshift_jis",
51 "I18N.CJK.ENCiso_2022_jp",
55 "I18N.CJK.ENCgb18030",
56 "I18N.MidEast.CP1254",
57 "I18N.MidEast.ENCwindows_1254",
58 "I18N.MidEast.CP1255",
59 "I18N.MidEast.ENCwindows_1255",
60 "I18N.MidEast.CP1256",
61 "I18N.MidEast.ENCwindows_1256",
62 "I18N.MidEast.CP28596",
63 "I18N.MidEast.ENCiso_8859_6",
64 "I18N.MidEast.CP28598",
65 "I18N.MidEast.ENCiso_8859_8",
66 "I18N.MidEast.CP28599",
67 "I18N.MidEast.ENCiso_8859_9",
68 "I18N.MidEast.CP38598",
69 "I18N.MidEast.ENCwindows_38598",
71 "I18N.Other.ENCwindows_1251",
73 "I18N.Other.ENCwindows_1257",
75 "I18N.Other.ENCwindows_1258",
77 "I18N.Other.ENCkoi8_r",
79 "I18N.Other.ENCkoi8_u",
81 "I18N.Other.ENCiso_8859_4",
83 "I18N.Other.ENCiso_8859_5",
84 "I18N.Other.ISCIIEncoding",
95 "I18N.Other.ENCx_iscii_de",
96 "I18N.Other.ENCx_iscii_be",
97 "I18N.Other.ENCx_iscii_ta",
98 "I18N.Other.ENCx_iscii_te",
99 "I18N.Other.ENCx_iscii_as",
100 "I18N.Other.ENCx_iscii_or",
101 "I18N.Other.ENCx_iscii_ka",
102 "I18N.Other.ENCx_iscii_ma",
103 "I18N.Other.ENCx_iscii_gu",
104 "I18N.Other.ENCx_iscii_pa",
106 "I18N.Other.ENCwindows_874",
108 "I18N.Rare.ENCibm1026",
110 "I18N.Rare.ENCibm1047",
112 "I18N.Rare.ENCibm01140",
114 "I18N.Rare.ENCibm01141",
116 "I18N.Rare.ENCibm01142",
118 "I18N.Rare.ENCibm01143",
120 "I18N.Rare.ENCibm1144",
122 "I18N.Rare.ENCibm1145",
124 "I18N.Rare.ENCibm1146",
126 "I18N.Rare.ENCibm1147",
128 "I18N.Rare.ENCibm1148",
130 "I18N.Rare.ENCibm1149",
132 "I18N.Rare.ENCibm273",
134 "I18N.Rare.ENCibm277",
136 "I18N.Rare.ENCibm278",
138 "I18N.Rare.ENCibm280",
140 "I18N.Rare.ENCibm284",
142 "I18N.Rare.ENCibm285",
144 "I18N.Rare.ENCibm290",
146 "I18N.Rare.ENCibm297",
148 "I18N.Rare.ENCibm420",
150 "I18N.Rare.ENCibm424",
152 "I18N.Rare.ENCibm871",
154 "I18N.Rare.ENCibm1025",
156 "I18N.Rare.ENCibm037",
158 "I18N.Rare.ENCibm500",
160 "I18N.Rare.ENCasmo_708",
162 "I18N.Rare.ENCibm852",
164 "I18N.Rare.ENCibm855",
166 "I18N.Rare.ENCibm857",
168 "I18N.Rare.ENCibm00858",
170 "I18N.Rare.ENCibm862",
172 "I18N.Rare.ENCibm864",
174 "I18N.Rare.ENCibm866",
176 "I18N.Rare.ENCibm869",
178 "I18N.Rare.ENCibm870",
180 "I18N.Rare.ENCibm875",
182 "I18N.West.ENCmacintosh",
184 "I18N.West.ENCx_mac_icelandic",
186 "I18N.West.ENCwindows_1250",
188 "I18N.West.ENCwindows_1252",
190 "I18N.West.ENCwindows_1253",
192 "I18N.West.ENCiso_8859_2",
194 "I18N.West.ENCiso_8859_3",
196 "I18N.West.ENCiso_8859_7",
198 "I18N.West.ENCiso_8859_15",
200 "I18N.West.ENCibm437",
202 "I18N.West.ENCibm850",
204 "I18N.West.ENCibm860",
206 "I18N.West.ENCibm861",
208 "I18N.West.ENCibm863",
210 "I18N.West.ENCibm865"
213 static Dictionary<string, string> aliases;
214 public static string GetAlias (string name)
220 aliases.TryGetValue (name, out v);
224 static void BuildHash ()
226 aliases = new Dictionary<string, string> (StringComparer.OrdinalIgnoreCase);
228 aliases.Add ("arabic", "iso_8859_6");
229 aliases.Add ("csISOLatinArabic", "iso_8859_6");
230 aliases.Add ("ECMA_114", "iso_8859_6");
231 aliases.Add ("ISO_8859_6:1987", "iso_8859_6");
232 aliases.Add ("iso_ir_127", "iso_8859_6");
234 aliases.Add ("cp1256" ,"windows_1256");
236 aliases.Add ("csISOLatin4", "iso_8859_4");
237 aliases.Add ("ISO_8859_4:1988", "iso_8859_4");
238 aliases.Add ("iso_ir_110", "iso_8859_4");
239 aliases.Add ("l4", "iso_8859_4");
240 aliases.Add ("latin4", "iso_8859_4");
242 aliases.Add ("cp852" ,"ibm852");
244 aliases.Add ("csISOLatin2", "iso_8859_2");
245 aliases.Add ("iso_8859_2:1987", "iso_8859_2");
246 aliases.Add ("iso8859_2", "iso_8859_2");
247 aliases.Add ("iso_ir_101", "iso_8859_2");
248 aliases.Add ("l2", "iso_8859_2");
249 aliases.Add ("latin2", "iso_8859_2");
251 aliases.Add ("x-cp1250", "windows_1250");
253 aliases.Add ("chinese", "gb2312");
254 aliases.Add ("CN-GB", "gb2312");
255 aliases.Add ("csGB2312", "gb2312");
256 aliases.Add ("csGB231280", "gb2312");
257 aliases.Add ("csISO58GB231280", "gb2312");
258 aliases.Add ("GB_2312_80", "gb2312");
259 aliases.Add ("GB231280", "gb2312");
260 aliases.Add ("GB2312_80", "gb2312");
261 aliases.Add ("GBK", "gb2312");
262 aliases.Add ("iso_ir_58", "gb2312");
264 aliases.Add ("cn-big5", "big5");
265 aliases.Add ("csbig5", "big5");
266 aliases.Add ("x-x-big5", "big5");
268 aliases.Add ("cp866", "ibm866");
270 aliases.Add ("csISOLatin5", "iso_8859_5");
271 aliases.Add ("csISOLatinCyrillic", "iso_8859_5");
272 aliases.Add ("cyrillic", "iso_8859_5");
273 aliases.Add ("ISO_8859_5:1988", "iso_8859_5");
274 aliases.Add ("iso_ir_144", "iso_8859_5");
275 aliases.Add ("l5", "iso_8859_5");
277 aliases.Add ("csKOI8R", "koi8_r");
278 aliases.Add ("koi", "koi8_r");
279 aliases.Add ("koi8", "koi8_r");
280 aliases.Add ("koi8r", "koi8_r");
282 aliases.Add ("koi8ru", "koi8_u");
284 aliases.Add ("x-cp1251", "windows_1251");
286 aliases.Add ("csISOLatinGreek", "iso_8859_7");
287 aliases.Add ("ECMA_118", "iso_8859_7");
288 aliases.Add ("ELOT_928", "iso_8859_7");
289 aliases.Add ("greek", "iso_8859_7");
290 aliases.Add ("greek8", "iso_8859_7");
291 aliases.Add ("ISO_8859_7:1987", "iso_8859_7");
292 aliases.Add ("iso_ir_126", "iso_8859_7");
294 aliases.Add ("csISOLatinHebrew", "iso_8859_8");
295 aliases.Add ("hebrew", "iso_8859_8");
296 aliases.Add ("ISO_8859_8:1988", "iso_8859_8");
297 aliases.Add ("iso_ir_138", "iso_8859_8");
299 aliases.Add ("csShiftJIS", "shift_jis");
300 aliases.Add ("csWindows31J", "shift_jis");
301 aliases.Add ("ms_Kanji", "shift_jis");
302 aliases.Add ("shift-jis", "shift_jis");
303 aliases.Add ("x-ms-cp932", "shift_jis");
304 aliases.Add ("x-sjis", "shift_jis");
306 aliases.Add ("csISOLatin3", "iso_8859_3");
307 aliases.Add ("ISO_8859_3:1988", "iso_8859_3");
308 aliases.Add ("iso_ir_109", "iso_8859_3");
309 aliases.Add ("l3", "iso_8859_3");
310 aliases.Add ("latin3", "iso_8859_3");
312 aliases.Add ("csISOLatin9", "iso_8859_15");
313 aliases.Add ("l9", "iso_8859_15");
314 aliases.Add ("latin9", "iso_8859_15");
316 aliases.Add ("cp437", "ibm437");
317 aliases.Add ("csPC8", "ibm437");
318 aliases.Add ("CodePage437", "ibm437");
320 aliases.Add ("DOS_874", "windows_874");
321 aliases.Add ("iso_8859_11", "windows_874");
322 aliases.Add ("TIS_620", "windows_874");
328 }; // namespace I18N.Common