1 '''
2 Spelling constants.
3
4 @var SPELLED_MAP: Mapping from unicode values to words describing common
5 letters, numbers, punctuation, and symbols
6 @type SPELLED_MAP: dictionary
7 @var NATO_MAP: Mapping from unicode values to NATO phonetic words describing
8 letters, numbers, punctuation, and symbols
9 @type NATO_MAP: dictionary
10
11 @author: Peter Parente
12 @organization: IBM Corporation
13 @copyright: Copyright (c) 2005, 2007 IBM Corporation
14 @license: The BSD License
15
16 All rights reserved. This program and the accompanying materials are made
17 available under the terms of the BSD license which accompanies
18 this distribution, and is available at
19 U{http://www.opensource.org/licenses/bsd-license.php}
20 '''
21 from Tools.i18n import _
22
23 SPELLED_MAP = {
24 u'\u0009': _('tab'),
25 u'\u000a': _('new line'),
26 u'\u0020': _('space'),
27 u'\u0021': _('exclamation!'),
28 u'\u0022': _('quotes'),
29 u'\u0023': _('pound'),
30 u'\u0024': _('dollar'),
31 u'\u0025': _('percent'),
32 u'\u0026': _('ampersand'),
33 u'\u0027': _('quote'),
34 u'\u0028': _('left paren'),
35 u'\u0029': _('right paren'),
36 u'\u002a': _('star'),
37 u'\u002b': _('plus'),
38 u'\u002c': _('comma,'),
39 u'\u002d': _('hyphen'),
40 u'\u002e': _('dot.'),
41 u'\u002f': _('slash'),
42 u'\u0030': _('0'),
43 u'\u0031': _('1'),
44 u'\u0032': _('2'),
45 u'\u0033': _('3'),
46 u'\u0034': _('4'),
47 u'\u0035': _('5'),
48 u'\u0036': _('6'),
49 u'\u0037': _('7'),
50 u'\u0038': _('8'),
51 u'\u0039': _('9'),
52 u'\u003a': _('colon'),
53 u'\u003b': _('semicolon'),
54 u'\u003c': _('less than'),
55 u'\u003d': _('equals'),
56 u'\u003e': _('greater than'),
57 u'\u003f': _('question?'),
58 u'\u0040': _('at'),
59 u'\u0041': _('A'),
60 u'\u0042': _('B'),
61 u'\u0043': _('C'),
62 u'\u0044': _('D'),
63 u'\u0045': _('E'),
64 u'\u0046': _('F'),
65 u'\u0047': _('G'),
66 u'\u0048': _('H'),
67 u'\u0049': _('I'),
68 u'\u004a': _('J'),
69 u'\u004b': _('K'),
70 u'\u004c': _('L'),
71 u'\u004d': _('M'),
72 u'\u004e': _('N'),
73 u'\u004f': _('O'),
74 u'\u0050': _('P'),
75 u'\u0051': _('Q'),
76 u'\u0052': _('R'),
77 u'\u0053': _('S'),
78 u'\u0054': _('T'),
79 u'\u0055': _('U'),
80 u'\u0056': _('V'),
81 u'\u0057': _('W'),
82 u'\u0058': _('X'),
83 u'\u0059': _('Y'),
84 u'\u005a': _('Z'),
85 u'\u005b': _('left bracket'),
86 u'\u005c': _('back slash'),
87 u'\u005d': _('right bracket'),
88 u'\u005e': _('circumflex'),
89 u'\u005f': _('underscore'),
90 u'\u0060': _('back quote'),
91 u'\u0061': _('a'),
92 u'\u0062': _('b'),
93 u'\u0063': _('c'),
94 u'\u0064': _('d'),
95 u'\u0065': _('e'),
96 u'\u0066': _('f'),
97 u'\u0067': _('g'),
98 u'\u0068': _('h'),
99 u'\u0069': _('i'),
100 u'\u006a': _('j'),
101 u'\u006b': _('k'),
102 u'\u006c': _('l'),
103 u'\u006d': _('m'),
104 u'\u006e': _('n'),
105 u'\u006f': _('o'),
106 u'\u0070': _('p'),
107 u'\u0071': _('q'),
108 u'\u0072': _('r'),
109 u'\u0073': _('s'),
110 u'\u0074': _('t'),
111 u'\u0075': _('u'),
112 u'\u0076': _('v'),
113 u'\u0077': _('w'),
114 u'\u0078': _('x'),
115 u'\u0079': _('y'),
116 u'\u007a': _('z'),
117 u'\u007b': _('left brace'),
118 u'\u007c': _('vertical line'),
119 u'\u007d': _('right brace'),
120 u'\u007e': _('tilde'),
121 u'\u00a0': _('no break space'),
122 u'\u00a1': _('inverted exclamation'),
123 u'\u00a2': _('cent sign'),
124 u'\u00a3': _('pound sterling'),
125 u'\u00a4': _('currency symbol'),
126 u'\u00a5': _('yen symbol'),
127 u'\u00a6': _('broken bar'),
128 u'\u00a7': _('section symbol'),
129 u'\u00a8': _('diaeresis'),
130 u'\u00a9': _('copyright symbol'),
131 u'\u00aa': _('feminine ordinal'),
132 u'\u00ab': _('left angle quotes'),
133 u'\u00ac': _('not sign'),
134 u'\u00ad': _('soft hyphen'),
135 u'\u00ae': _('registered symbol'),
136 u'\u00af': _('macron'),
137 u'\u00b0': _('degree'),
138 u'\u00b1': _('plus minus'),
139 u'\u00b2': _('superscript 2'),
140 u'\u00b3': _('superscript 3'),
141 u'\u00b4': _('acute accent'),
142 u'\u00b5': _('micro'),
143 u'\u00b6': _('pilcrow'),
144 u'\u00b7': _('middle dot'),
145 u'\u00b8': _('cedilla'),
146 u'\u00b9': _('superscript 1'),
147 u'\u00ba': _('masculine ordinal'),
148 u'\u00bb': _('right angle quotes'),
149 u'\u00bc': _('one quarter'),
150 u'\u00bd': _('one half'),
151 u'\u00be': _('three quarters'),
152 u'\u00bf': _('inverted question'),
153 u'\u00c0': _('A grave'),
154 u'\u00c1': _('A acute'),
155 u'\u00c2': _('A circumflex'),
156 u'\u00c3': _('A tilde'),
157 u'\u00c4': _('A diaeresis'),
158 u'\u00c5': _('A overcircle'),
159 u'\u00c6': _('A e'),
160 u'\u00c7': _('C cedilla'),
161 u'\u00c8': _('E grave'),
162 u'\u00c9': _('E acute'),
163 u'\u00ca': _('E circumflex'),
164 u'\u00cb': _('E diaeresis'),
165 u'\u00cc': _('I grave'),
166 u'\u00cd': _('I acute'),
167 u'\u00ce': _('I circumflex'),
168 u'\u00cf': _('I diaeresis'),
169 u'\u00d0': _('Eth'),
170 u'\u00d1': _('N tilde'),
171 u'\u00d2': _('O grave'),
172 u'\u00d3': _('O acute'),
173 u'\u00d4': _('O circumflex'),
174 u'\u00d5': _('O tilde'),
175 u'\u00d6': _('O diaeresis'),
176 u'\u00d7': _('multiplication sign'),
177 u'\u00d8': _('O stroke'),
178 u'\u00d9': _('U grave'),
179 u'\u00da': _('U acute'),
180 u'\u00db': _('U circumflex'),
181 u'\u00dc': _('U diaeresis'),
182 u'\u00dd': _('Y acute'),
183 u'\u00de': _('Thorn'),
184 u'\u00df': _('sharp s'),
185 u'\u00e0': _('a grave'),
186 u'\u00e1': _('a acute'),
187 u'\u00e2': _('a circumflex'),
188 u'\u00e3': _('a tilde'),
189 u'\u00e4': _('a diaeresis'),
190 u'\u00e5': _('a overcircle'),
191 u'\u00e6': _('a e'),
192 u'\u00e7': _('c cedilla'),
193 u'\u00e8': _('e grave'),
194 u'\u00e9': _('e acute'),
195 u'\u00ea': _('e circumflex'),
196 u'\u00eb': _('e diaeresis'),
197 u'\u00ec': _('i grave'),
198 u'\u00ed': _('i acute'),
199 u'\u00ee': _('i circumflex'),
200 u'\u00ef': _('i diaeresis'),
201 u'\u00f0': _('eth'),
202 u'\u00f1': _('n tilde'),
203 u'\u00f2': _('o grave'),
204 u'\u00f3': _('o acute'),
205 u'\u00f4': _('o circumflex'),
206 u'\u00f5': _('o tilde'),
207 u'\u00f6': _('o diaeresis'),
208 u'\u00f7': _('division sign'),
209 u'\u00f8': _('o stroke'),
210 u'\u00f9': _('u grave'),
211 u'\u00fa': _('u acute'),
212 u'\u00fb': _('u circumflex'),
213 u'\u00fc': _('u diaeresis'),
214 u'\u00fd': _('y acute'),
215 u'\u00fe': _('thorn'),
216 u'\u00ff': _('y diaeresis'),
217 u'\u0152': _('O E'),
218 u'\u0153': _('o e'),
219 u'\u0160': _('S caron'),
220 u'\u0161': _('s caron'),
221 u'\u0178': _('Y diaeresis'),
222 u'\u017d': _('Z caron'),
223 u'\u017e': _('z caron'),
224 u'\u0192': _('florin'),
225 u'\u02c6': _('circumflex'),
226 u'\u02dc': _('tilde'),
227 u'\u2013': _('en dash'),
228 u'\u2014': _('em dash'),
229 u'\u2018': _('left quote'),
230 u'\u2019': _('right quote'),
231 u'\u201a': _('left low quote'),
232 u'\u201c': _('left quotes'),
233 u'\u201d': _('right quotes'),
234 u'\u201e': _('left low quotes'),
235 u'\u2020': _('dagger'),
236 u'\u2021': _('double dagger'),
237 u'\u2022': _('bullet'),
238 u'\u2026': _('ellipsis'),
239 u'\u2028': _('end of line'),
240 u'\u2030': _('per mille'),
241 u'\u2039': _('left angle quote'),
242 u'\u203a': _('right angle quote'),
243 u'\u20ac': _('euro'),
244 u'\u2122': _('trademark')
245 }
246
247 NATO_MAP = dict(SPELLED_MAP)
248 NATO_MAP.update({
249 u'\u0041': _('Alpha'),
250 u'\u0042': _('Bravo'),
251 u'\u0043': _('Charlie'),
252 u'\u0044': _('Delta'),
253 u'\u0045': _('Echo'),
254 u'\u0046': _('Foxtrot'),
255 u'\u0047': _('Golf'),
256 u'\u0048': _('Hotel'),
257 u'\u0049': _('India'),
258 u'\u004a': _('Juliet'),
259 u'\u004b': _('Kilo'),
260 u'\u004c': _('Lima'),
261 u'\u004d': _('Mike'),
262 u'\u004e': _('November'),
263 u'\u004f': _('Oscar'),
264 u'\u0050': _('Papa'),
265 u'\u0051': _('Quebec'),
266 u'\u0052': _('Romeo'),
267 u'\u0053': _('Sierra'),
268 u'\u0054': _('Tango'),
269 u'\u0055': _('Uniform'),
270 u'\u0056': _('Victor'),
271 u'\u0057': _('Whiskey'),
272 u'\u0058': _('X ray'),
273 u'\u0059': _('Yankee'),
274 u'\u005a': _('Zulu'),
275 u'\u0061': _('alpha'),
276 u'\u0062': _('bravo'),
277 u'\u0063': _('charlie'),
278 u'\u0064': _('delta'),
279 u'\u0065': _('echo'),
280 u'\u0066': _('foxtrot'),
281 u'\u0067': _('golf'),
282 u'\u0068': _('hotel'),
283 u'\u0069': _('india'),
284 u'\u006a': _('juliet'),
285 u'\u006b': _('kilo'),
286 u'\u006c': _('lima'),
287 u'\u006d': _('mike'),
288 u'\u006e': _('november'),
289 u'\u006f': _('oscar'),
290 u'\u0070': _('papa'),
291 u'\u0071': _('quebec'),
292 u'\u0072': _('romeo'),
293 u'\u0073': _('sierra'),
294 u'\u0074': _('tango'),
295 u'\u0075': _('uniform'),
296 u'\u0076': _('victor'),
297 u'\u0077': _('whiskey'),
298 u'\u0078': _('x ray'),
299 u'\u0079': _('yankee'),
300 u'\u007a': _('zulu'),
301 u'\u00c0': _('Alpha grave'),
302 u'\u00c1': _('Alpha acute'),
303 u'\u00c2': _('Alpha circumflex'),
304 u'\u00c3': _('Alpha tilde'),
305 u'\u00c4': _('Alpha diaeresis'),
306 u'\u00c5': _('Alpha overcircle'),
307 u'\u00c6': _('A e'),
308 u'\u00c7': _('Charlie cedilla'),
309 u'\u00c8': _('Echo grave'),
310 u'\u00c9': _('Echo acute'),
311 u'\u00ca': _('Echo circumflex'),
312 u'\u00cb': _('Echo diaeresis'),
313 u'\u00cc': _('India grave'),
314 u'\u00cd': _('India acute'),
315 u'\u00ce': _('India circumflex'),
316 u'\u00cf': _('India diaeresis'),
317 u'\u00d1': _('November tilde'),
318 u'\u00d2': _('Oscar grave'),
319 u'\u00d3': _('Oscar acute'),
320 u'\u00d4': _('Oscar circumflex'),
321 u'\u00d5': _('Oscar tilde'),
322 u'\u00d6': _('Oscar diaeresis'),
323 u'\u00d8': _('Oscar stroke'),
324 u'\u00d9': _('Uniform grave'),
325 u'\u00da': _('Uniform acute'),
326 u'\u00db': _('Uniform circumflex'),
327 u'\u00dc': _('Uniform diaeresis'),
328 u'\u00dd': _('Yankee acute'),
329 u'\u00de': _('Thorn'),
330 u'\u00df': _('sharp sierra'),
331 u'\u00e0': _('alpha grave'),
332 u'\u00e1': _('alpha acute'),
333 u'\u00e2': _('alpha circumflex'),
334 u'\u00e3': _('alpha tilde'),
335 u'\u00e4': _('alpha diaeresis'),
336 u'\u00e5': _('alpha overcircle'),
337 u'\u00e7': _('charlie cedilla'),
338 u'\u00e8': _('echo grave'),
339 u'\u00e9': _('echo acute'),
340 u'\u00ea': _('echo circumflex'),
341 u'\u00eb': _('echo diaeresis'),
342 u'\u00ec': _('india grave'),
343 u'\u00ed': _('india acute'),
344 u'\u00ee': _('india circumflex'),
345 u'\u00ef': _('india diaeresis'),
346 u'\u00f1': _('november tilde'),
347 u'\u00f2': _('oscar grave'),
348 u'\u00f3': _('oscar acute'),
349 u'\u00f4': _('oscar circumflex'),
350 u'\u00f5': _('oscar tilde'),
351 u'\u00f6': _('oscar diaeresis'),
352 u'\u00f8': _('oscar stroke'),
353 u'\u00f9': _('uniform grave'),
354 u'\u00fa': _('uniform acute'),
355 u'\u00fb': _('uniform circumflex'),
356 u'\u00fc': _('uniform diaeresis'),
357 u'\u00fd': _('yankee acute'),
358 u'\u00fe': _('thorn'),
359 u'\u00ff': _('yankee diaeresis'),
360 u'\u0160': _('Sierra caron'),
361 u'\u0161': _('sierra caron'),
362 u'\u0178': _('Yankee diaeresis'),
363 u'\u017d': _('Zulu caron'),
364 u'\u017e': _('zulu caron'),
365 u'\u2039': _('left angle quote'),
366 u'\u203a': _('right angle quote')
367 })
368
369 FUNCTION_KEYS = {
370 'ISO_Level3_Shift': _('ISO_Level3_Shift'),
371 'Shift_R': _('Shift_R'),
372 'Shift_L': _('Shift_L'),
373 'Caps_Lock': _('Caps_Lock'),
374 'Control_R': _('Control_R'),
375 'Control_L': _('Control_L'),
376 'Alt_L': _('Alt_L')
377 }
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392