First public contribution.
1 // Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // f32test\locl\t_lat1.cpp
15 // WINDOWS ISO LATIN 1 Western European Alphabetic Conversions etc (excludes Scandinavia).
19 #include <kernel/localise.h>
21 // This file is only used in the non-Unicode build.
24 // The character type conversion table
25 const TUint8 LAlphabet::TypeTable[KMaxTranslateTable] =
36 (__C|__S), // 0x09 - HT
37 (__C|__S), // 0x0a - NL
38 (__C|__S), // 0x0b - VT
39 (__C|__S), // 0x0c - FF
40 (__C|__S), // 0x0d - CR
43 (__C|__S), // 0x10 - DLE
59 (__S|__B), // 0x20 - ' '
75 (__D|__X), // 0x30 - '0'
76 (__D|__X), // 0x31 - '1'
77 (__D|__X), // 0x32 - '2'
78 (__D|__X), // 0x33 - '3'
79 (__D|__X), // 0x34 - '4'
80 (__D|__X), // 0x35 - '5'
81 (__D|__X), // 0x36 - '6'
82 (__D|__X), // 0x37 - '7'
83 (__D|__X), // 0x38 - '8'
84 (__D|__X), // 0x39 - '9'
92 (__U|__X), // 0x41 - 'A'
93 (__U|__X), // 0x42 - 'B'
94 (__U|__X), // 0x43 - 'C'
95 (__U|__X), // 0x44 - 'D'
96 (__U|__X), // 0x45 - 'E'
97 (__U|__X), // 0x46 - 'F'
124 (__L|__X), // 0x61 - 'a'
125 (__L|__X), // 0x62 - 'b'
126 (__L|__X), // 0x63 - 'c'
127 (__L|__X), // 0x64 - 'd'
128 (__L|__X), // 0x65 - 'e'
129 (__L|__X), // 0x66 - 'f'
155 (__P), // 0x80 - euro currency symbol
156 (__C), // 0x81 - <control>
157 (__P), // 0x82 - single low-9 quotation mark
158 (__L), // 0x83 - small f with hook
159 (__P), // 0x84 - double low-9 quotation mark
160 (__P), // 0x85 - horizontal ellipsis (...)
161 (__P), // 0x86 - dagger
162 (__P), // 0x87 - double dagger
163 (__P), // 0x88 - circumflex accent
164 (__P), // 0x89 - per mille sign
165 (__U), // 0x8a - S with caron
166 (__P), // 0x8b - single left-pointing angle quotation mark
167 (__U), // 0x8c - capital ligature OE
168 (__C), // 0x8d - <control>
169 (__U), // 0x8e - Z with caron
170 (__C), // 0x8f - <control>
171 (__C), // 0x90 - <control>
172 (__P), // 0x91 - left single quotation mark
173 (__P), // 0x92 - right single quotation mark
174 (__P), // 0x93 - left double quotation mark
175 (__P), // 0x94 - right double quotation mark
176 (__P), // 0x95 - bullet
177 (__P), // 0x96 - en dash
178 (__P), // 0x97 - em dash
179 (__P), // 0x98 - small tilde
180 (__P), // 0x99 - trade mark sign
181 (__L), // 0x9a - small s with caron
182 (__P), // 0x9b - single right-pointing angle quotation mark
183 (__L), // 0x9c - small ligature oe
184 (__C), // 0x9d - <control>
185 (__L), // 0x9e - small z with caron
186 (__U), // 0x9f - Y umlaut
187 (__C), // 0xa0 - no-break space
188 (__P), // 0xa1 - inverted exclamation mark
189 (__P), // 0xa2 - cent sign
190 (__P), // 0xa3 - pound sign
191 (__P), // 0xa4 - currency sign
192 (__P), // 0xa5 - yen sign
193 (__P), // 0xa6 - broken bar
194 (__P), // 0xa7 - section sign
195 (__P), // 0xa8 - diaresis
196 (__P), // 0xa9 - copyright sign
197 (__P), // 0xaa - feminine ordinal indicator
199 (__P), // 0xac - ¬ logical not sign
200 (__P), // 0xad - soft hyphen
201 (__P), // 0xae - registered sign
202 (__P), // 0xaf - macron
203 (__P), // 0xb0 - degree sign
204 (__P), // 0xb1 - plus-minus sign
205 (__P), // 0xb2 - superscript 2
206 (__P), // 0xb3 - superscript 3
207 (__P), // 0xb4 - acute accent
208 (__L), // 0xb5 - micro sign **** lower case letter or symbol??? ****
209 (__P), // 0xb6 - pilcrow sign
210 (__P), // 0xb7 - middle dot
211 (__P), // 0xb8 - cedilla
212 (__P), // 0xb9 - superscript 1
213 (__P), // 0xba - masculine ordinal indicator
218 (__P), // 0xbf - inverted ?
219 (__U), // 0xc0 - A grave
220 (__U), // 0xc1 - A acute
221 (__U), // 0xc2 - A circumflex
222 (__U), // 0xc3 - A tilde
223 (__U), // 0xc4 - A umlaut
224 (__U), // 0xc5 - A with ring above
225 (__U), // 0xc6 - AE ligature
226 (__U), // 0xc7 - C cedilla
227 (__U), // 0xc8 - E grave
228 (__U), // 0xc9 - E acute
229 (__U), // 0xca - E circumflex
230 (__U), // 0xcb - E umlaut
231 (__U), // 0xcc - I grave
232 (__U), // 0xcd - I acute
233 (__U), // 0xce - I circumflex
234 (__U), // 0xcf - I umlaut
236 (__U), // 0xd1 - N tilde
237 (__U), // 0xd2 - O grave
238 (__U), // 0xd3 - O acute
239 (__U), // 0xd4 - O circumflex
240 (__U), // 0xd5 - O tilde
241 (__U), // 0xd6 - O umlaut
242 (__P), // 0xd7 - multiplication
243 (__U), // 0xd8 - O slash
244 (__U), // 0xd9 - U grave
245 (__U), // 0xda - U acute
246 (__U), // 0xdb - U circumflex
247 (__U), // 0xdc - U umlaut
248 (__U), // 0xdd - Y acute
249 (__U), // 0xde - Thorn
250 (__L), // 0xdf - small letter sharp s
251 (__L), // 0xe0 - a grave
252 (__L), // 0xe1 - a acute
253 (__L), // 0xe2 - a circumflex
254 (__L), // 0xe3 - a tilde
255 (__L), // 0xe4 - a umlaut
256 (__L), // 0xe5 - a ring
257 (__L), // 0xe6 - ae ligature
258 (__L), // 0xe7 - c cedilla
259 (__L), // 0xe8 - e grave
260 (__L), // 0xe9 - e acute
261 (__L), // 0xea - e circumflex
262 (__L), // 0xeb - e umlaut
263 (__L), // 0xec - i grave
264 (__L), // 0xed - i acute
265 (__L), // 0xee - i circumflex
266 (__L), // 0xef - i umlaut
268 (__L), // 0xf1 - n tilde
269 (__L), // 0xf2 - o grave
270 (__L), // 0xf3 - o acute
271 (__L), // 0xf4 - o circumflex
272 (__L), // 0xf5 - o tilde
273 (__L), // 0xf6 - o umlaut
274 (__P), // 0xf7 - division sign
275 (__L), // 0xf8 - o slash
276 (__L), // 0xf9 - u grave
277 (__L), // 0xfa - u acute
278 (__L), // 0xfb - u circumflex
279 (__L), // 0xfc - u umlaut
280 (__L), // 0xfd - y acute
281 (__L), // 0xfe - thorn
282 (__L) // 0xff - y umlaut
285 // The uppercase table
286 const TText LAlphabet::UpperTable[KMaxTranslateTable] =
288 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, // 0x00
289 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
290 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, // 0x10
291 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
292 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, // 0x20
293 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
294 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, // 0x30
295 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
296 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, // 0x40
297 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
298 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, // 0x50
299 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
300 0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47, // 0x60
301 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
302 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, // 0x70
303 0x58,0x59,0x5a,0x7b,0x7c,0x7d,0x7e,0x7f,
304 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, // 0x80
305 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
306 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, // 0x90
307 0x98,0x99,0x8a,0x9b,0x8c,0x9d,0x8e,0x9f,
308 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7, // 0xa0
309 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
310 0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7, // 0xb0
311 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
312 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7, // 0xc0
313 0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
314 0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7, // 0xd0
315 0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
316 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7, // 0xe0
317 0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
318 0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xf7, // 0xf0
319 0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0x9f
322 // The lowercase table
323 const TText LAlphabet::LowerTable[KMaxTranslateTable] =
325 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, // 0x00
326 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
327 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, // 0x10
328 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
329 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, // 0x20
330 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
331 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, // 0x30
332 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
333 0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67, // 0x40
334 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
335 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, // 0x50
336 0x78,0x79,0x7a,0x5b,0x5c,0x5d,0x5e,0x5f,
337 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67, // 0x60
338 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
339 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77, // 0x70
340 0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
341 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, // 0x80
342 0x88,0x89,0x9a,0x8b,0x9c,0x8d,0x9e,0x8f,
343 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, // 0x90
344 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0xff,
345 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7, // 0xa0
346 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
347 0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7, // 0xb0
348 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
349 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7, // 0xc0
350 0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
351 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xd7, // 0xd0
352 0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xdf,
353 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7, // 0xe0
354 0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
355 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7, // 0xf0
356 0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff
359 // The new fold table
360 const TText LAlphabet::FoldTable[KMaxTranslateTable] =
362 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, // 0x00
363 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
364 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, // 0x10
365 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
366 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, // 0x20
367 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
368 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, // 0x30
369 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
370 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, // 0x40
371 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
372 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, // 0x50
373 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
374 0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47, // 0x60
375 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
376 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, // 0x70
377 0x58,0x59,0x5a,0x7b,0x7c,0x7d,0x7e,0x7f,
378 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, // 0x80
379 0x88,0x89,0x53,0x8b,0x8c,0x8d,0x5a,0x8f,
380 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, // 0x90
381 0x98,0x99,0x53,0x9b,0x8c,0x9d,0x5a,0x59,
382 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7, // 0xa0
383 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
384 0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7, // 0xb0
385 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
386 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x43, // 0xc0
387 0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49,
388 0xd0,0x4e,0x4f,0x4f,0x4f,0x4f,0x4f,0xd7, // 0xd0
389 0x4f,0x55,0x55,0x55,0x55,0x59,0xde,0xdf,
390 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x43, // 0xe0
391 0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49,
392 0xd0,0x4e,0x4f,0x4f,0x4f,0x4f,0x4f,0xf7, // 0xf0
393 0x4f,0x55,0x55,0x55,0x55,0x59,0xde,0x59
396 // The new collate table
397 const TText LAlphabet::CollTable[KMaxTranslateTable] =
399 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07, // 0x00
400 0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
401 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, // 0x10
402 0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
403 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, // 0x20
404 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
405 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37, // 0x30
406 0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
407 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47, // 0x40
408 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
409 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, // 0x50
410 0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
411 0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47, // 0x60
412 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
413 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57, // 0x70
414 0x58,0x59,0x5a,0x7b,0x7c,0x7d,0x7e,0x7f,
415 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, // 0x80
416 0x88,0x89,0x53,0x8b,0x8c,0x8d,0x5a,0x8f,
417 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, // 0x90
418 0x98,0x99,0x53,0x9b,0x8c,0x9d,0x5a,0x59,
419 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7, // 0xa0
420 0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
421 0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7, // 0xb0
422 0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
423 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x43, // 0xc0
424 0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49,
425 0xd0,0x4e,0x4f,0x4f,0x4f,0x4f,0x4f,0xd7, // 0xd0
426 0x4f,0x55,0x55,0x55,0x55,0x59,0xde,0xdf,
427 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x43, // 0xe0
428 0x45,0x45,0x45,0x45,0x49,0x49,0x49,0x49,
429 0xd0,0x4e,0x4f,0x4f,0x4f,0x4f,0x4f,0xf7, // 0xf0
430 0x4f,0x55,0x55,0x55,0x55,0x59,0xde,0x59
433 #endif // #ifndef _UNICODE