]> code.delx.au - gnu-emacs/blob - leim/quail/cyrillic.el
82d113be5a2d011e505aa22960e0e26a855cac21
[gnu-emacs] / leim / quail / cyrillic.el
1 ;;; cyrillic.el --- Quail package for inputting Cyrillic characters
2
3 ;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
4 ;; Licensed to the Free Software Foundation.
5 ;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
6
7 ;; Author: TAKAHASHI Naoto <ntakahas@m17n.org>
8 ;; Keywords: multilingual, input method, Cyrillic, i18n
9
10 ;; This file is part of GNU Emacs.
11
12 ;; GNU Emacs is free software; you can redistribute it and/or modify
13 ;; it under the terms of the GNU General Public License as published by
14 ;; the Free Software Foundation; either version 2, or (at your option)
15 ;; any later version.
16
17 ;; GNU Emacs is distributed in the hope that it will be useful,
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 ;; GNU General Public License for more details.
21
22 ;; You should have received a copy of the GNU General Public License
23 ;; along with GNU Emacs; see the file COPYING. If not, write to the
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
25 ;; Boston, MA 02111-1307, USA.
26
27 ;;; Commentary:
28
29 ;; These methods use a mixture of 8859-5 and Unicode. Quail, used
30 ;; with ucs-tables provides suport for translating on the fly to
31 ;; what's appropriate for aa buffer's file coding system, so the
32 ;; encoding shouldn't matter too much provided it supports the
33 ;; necessary characters.
34
35 ;;; Code:
36
37 (require 'quail)
38
39 ;; This was `cyrillic-jcuken'. Alexander Mikhailian
40 ;; <mikhailian@altern.org> says: "cyrillic-jcuken" is actually
41 ;; russian. It is ok but a bit outdated. This layout has been used
42 ;; in typewriters for ages but it has been superceeded on desktops by
43 ;; a variation of this layout, implemented in M$ Windows software.
44 ;; The Windows layout is greatly preferred because of the comma and
45 ;; period being placed more conviniently and, of course, because of
46 ;; the popularity of Windows software. This layout is a common option
47 ;; in X Windows and console layouts for GNU/Linux. [See
48 ;; `russian-computer' below.]
49 (quail-define-package
50 "russian-typewriter" "Russian" "\e,L69\e(B" nil
51 "\e,L9FC:5=\e(B Russian typewriter layout (ISO 8859-5 encoding)."
52 nil t t t t nil nil nil nil nil t)
53
54 ;; 1! 2" 3' 4* 5: 6, 7. 8; 9( 0) -_ =+ \e,L!\e(B
55 ;; \e,L9\e(B \e,LF\e(B \e,LC\e(B \e,L:\e(B \e,L5\e(B \e,L=\e(B \e,L3\e(B \e,LH\e(B \e,LI\e(B \e,L7\e(B \e,LE\e(B \e,LJ\e(B
56 ;; \e,LD\e(B \e,LK\e(B \e,L2\e(B \e,L0\e(B \e,L?\e(B \e,L@\e(B \e,L>\e(B \e,L;\e(B \e,L4\e(B \e,L6\e(B \e,LM\e(B
57 ;; \e,LO\e(B \e,LG\e(B \e,LA\e(B \e,L<\e(B \e,L8\e(B \e,LB\e(B \e,LL\e(B \e,L1\e(B \e,LN\e(B /?
58
59 (quail-define-rules
60 ("1" ?1)
61 ("2" ?2)
62 ("3" ?3)
63 ("4" ?4)
64 ("5" ?5)
65 ("6" ?6)
66 ("7" ?7)
67 ("8" ?8)
68 ("9" ?9)
69 ("0" ?0)
70 ("-" ?-)
71 ("=" ?=)
72 ("`" ?\e,Lq\e(B)
73 ("q" ?\e,LY\e(B)
74 ("w" ?\e,Lf\e(B)
75 ("e" ?\e,Lc\e(B)
76 ("r" ?\e,LZ\e(B)
77 ("t" ?\e,LU\e(B)
78 ("y" ?\e,L]\e(B)
79 ("u" ?\e,LS\e(B)
80 ("i" ?\e,Lh\e(B)
81 ("o" ?\e,Li\e(B)
82 ("p" ?\e,LW\e(B)
83 ("[" ?\e,Le\e(B)
84 ("]" ?\e,Lj\e(B)
85 ("a" ?\e,Ld\e(B)
86 ("s" ?\e,Lk\e(B)
87 ("d" ?\e,LR\e(B)
88 ("f" ?\e,LP\e(B)
89 ("g" ?\e,L_\e(B)
90 ("h" ?\e,L`\e(B)
91 ("j" ?\e,L^\e(B)
92 ("k" ?\e,L[\e(B)
93 ("l" ?\e,LT\e(B)
94 (";" ?\e,LV\e(B)
95 ("'" ?\e,Lm\e(B)
96 ("\\" ?\\)
97 ("z" ?\e,Lo\e(B)
98 ("x" ?\e,Lg\e(B)
99 ("c" ?\e,La\e(B)
100 ("v" ?\e,L\\e(B)
101 ("b" ?\e,LX\e(B)
102 ("n" ?\e,Lb\e(B)
103 ("m" ?\e,Ll\e(B)
104 ("," ?\e,LQ\e(B)
105 ("." ?\e,Ln\e(B)
106 ("/" ?/)
107
108 ("!" ?!)
109 ("@" ?\")
110 ("#" ?')
111 ("$" ?*)
112 ("%" ?:)
113 ("^" ?,)
114 ("&" ?.)
115 ("*" ?\;)
116 ("(" ?\()
117 (")" ?\))
118 ("_" ?_)
119 ("+" ?+)
120 ("~" ?\e,L!\e(B)
121 ("Q" ?\e,L9\e(B)
122 ("W" ?\e,LF\e(B)
123 ("E" ?\e,LC\e(B)
124 ("R" ?\e,L:\e(B)
125 ("T" ?\e,L5\e(B)
126 ("Y" ?\e,L=\e(B)
127 ("U" ?\e,L3\e(B)
128 ("I" ?\e,LH\e(B)
129 ("O" ?\e,LI\e(B)
130 ("P" ?\e,L7\e(B)
131 ("{" ?\e,LE\e(B)
132 ("}" ?\e,LJ\e(B)
133 ("A" ?\e,LD\e(B)
134 ("S" ?\e,LK\e(B)
135 ("D" ?\e,L2\e(B)
136 ("F" ?\e,L0\e(B)
137 ("G" ?\e,L?\e(B)
138 ("H" ?\e,L@\e(B)
139 ("J" ?\e,L>\e(B)
140 ("K" ?\e,L;\e(B)
141 ("L" ?\e,L4\e(B)
142 (":" ?\e,L6\e(B)
143 ("\"" ?\e,LM\e(B)
144 ("|" ?|)
145 ("Z" ?\e,LO\e(B)
146 ("X" ?\e,LG\e(B)
147 ("C" ?\e,LA\e(B)
148 ("V" ?\e,L<\e(B)
149 ("B" ?\e,L8\e(B)
150 ("N" ?\e,LB\e(B)
151 ("M" ?\e,LL\e(B)
152 ("<" ?\e,L1\e(B)
153 (">" ?\e,LN\e(B)
154 ("?" ??)
155 )
156
157 ;; Maintain the obsolete name for now.
158 (push (cons "cyrillic-jcuken"
159 (cdr (assoc "russian-typewriter" quail-package-alist)))
160 quail-package-alist)
161
162 ;; This needs to be seen by quail-update-leim-list-file, but cannot be
163 ;; commented out because quail-update-leim-list-file ignores
164 ;; commented-out lines.
165 (if nil
166 (quail-define-package
167 "cyrillic-jcuken" "Russian" "\e,L69\e(B" nil
168 "\e,L9FC:5=\e(B Russian typewriter layout (ISO 8859-5 encoding)."))
169
170 ;; See comment above. This is the variant `winkeys' from `ru' in XKB.
171 (quail-define-package
172 "russian-computer" "Russian" "RU" nil
173 "\e,L9FC:5=\e(B Russian computer layout"
174 nil t t t t nil nil nil nil nil t)
175
176 ;; 1! 2" 3\e,Lp\e(B 4; 5% 6: 7? 8* 9( 0) -_ =+ \e,Lq!\e(B
177 ;; \e,L9\e(B \e,LF\e(B \e,LC\e(B \e,L:\e(B \e,L5\e(B \e,L=\e(B \e,L3\e(B \e,LH\e(B \e,LI\e(B \e,L7\e(B \e,LE\e(B \e,LJ\e(B
178 ;; \e,LD\e(B \e,LK\e(B \e,L2\e(B \e,L0\e(B \e,L?\e(B \e,L@\e(B \e,L>\e(B \e,L;\e(B \e,L4\e(B \e,L6\e(B \e,LM\e(B
179 ;; \e,LO\e(B \e,LG\e(B \e,LA\e(B \e,L<\e(B \e,L8\e(B \e,LB\e(B \e,LL\e(B \e,L1\e(B \e,LN\e(B .,
180
181 (quail-define-rules
182 ("1" ?1)
183 ("2" ?2)
184 ("3" ?3)
185 ("4" ?4)
186 ("5" ?5)
187 ("6" ?6)
188 ("7" ?7)
189 ("8" ?8)
190 ("9" ?9)
191 ("0" ?0)
192 ("-" ?-)
193 ("=" ?=)
194 ("`" ?\e,Lq\e(B)
195 ("q" ?\e,LY\e(B)
196 ("w" ?\e,Lf\e(B)
197 ("e" ?\e,Lc\e(B)
198 ("r" ?\e,LZ\e(B)
199 ("t" ?\e,LU\e(B)
200 ("y" ?\e,L]\e(B)
201 ("u" ?\e,LS\e(B)
202 ("i" ?\e,Lh\e(B)
203 ("o" ?\e,Li\e(B)
204 ("p" ?\e,LW\e(B)
205 ("[" ?\e,Le\e(B)
206 ("]" ?\e,Lj\e(B)
207 ("a" ?\e,Ld\e(B)
208 ("s" ?\e,Lk\e(B)
209 ("d" ?\e,LR\e(B)
210 ("f" ?\e,LP\e(B)
211 ("g" ?\e,L_\e(B)
212 ("h" ?\e,L`\e(B)
213 ("j" ?\e,L^\e(B)
214 ("k" ?\e,L[\e(B)
215 ("l" ?\e,LT\e(B)
216 (";" ?\e,LV\e(B)
217 ("'" ?\e,Lm\e(B)
218 ("\\" ?\\)
219 ("z" ?\e,Lo\e(B)
220 ("x" ?\e,Lg\e(B)
221 ("c" ?\e,La\e(B)
222 ("v" ?\e,L\\e(B)
223 ("b" ?\e,LX\e(B)
224 ("n" ?\e,Lb\e(B)
225 ("m" ?\e,Ll\e(B)
226 ("," ?\e,LQ\e(B)
227 ("." ?\e,Ln\e(B)
228 ("/" ?.)
229 ("!" ?!)
230 ("@" ?\")
231 ("#" ?\e,Lp\e(B)
232 ("$" ?\;)
233 ("%" ?%)
234 ("^" ?:)
235 ("&" ??)
236 ("*" ?*)
237 ("(" ?()
238 (")" ?))
239 ("_" ?_)
240 ("+" ?+)
241 ("~" ?\e,L!\e(B)
242 ("Q" ?\e,L9\e(B)
243 ("W" ?\e,LF\e(B)
244 ("E" ?\e,LC\e(B)
245 ("R" ?\e,L:\e(B)
246 ("T" ?\e,L5\e(B)
247 ("Y" ?\e,L=\e(B)
248 ("U" ?\e,L3\e(B)
249 ("I" ?\e,LH\e(B)
250 ("O" ?\e,LI\e(B)
251 ("P" ?\e,L7\e(B)
252 ("{" ?\e,LE\e(B)
253 ("}" ?\e,LJ\e(B)
254 ("A" ?\e,LD\e(B)
255 ("S" ?\e,LK\e(B)
256 ("D" ?\e,L2\e(B)
257 ("F" ?\e,L0\e(B)
258 ("G" ?\e,L?\e(B)
259 ("H" ?\e,L@\e(B)
260 ("J" ?\e,L>\e(B)
261 ("K" ?\e,L;\e(B)
262 ("L" ?\e,L4\e(B)
263 (":" ?\e,L6\e(B)
264 ("\"" ?\e,LM\e(B)
265 ("|" ?|)
266 ("Z" ?\e,LO\e(B)
267 ("X" ?\e,LG\e(B)
268 ("C" ?\e,LA\e(B)
269 ("V" ?\e,L<\e(B)
270 ("B" ?\e,L8\e(B)
271 ("N" ?\e,LB\e(B)
272 ("M" ?\e,LL\e(B)
273 ("<" ?\e,L1\e(B)
274 (">" ?\e,LN\e(B)
275 ("?" ?,))
276
277 ;; Mikhailian couldn't check the next two.
278
279 ;; This seems to have the same layout for letters as mk in XKB, but at
280 ;; least the top row is different.
281 (quail-define-package
282 "cyrillic-macedonian" "Cyrillic" "\e,L6\e(BM" nil
283 "\e,L)*5@B7\e(B-\e,L#,\e(B keyboard layout based on JUS.I.K1.004 (ISO 8859-5 encoding)"
284 nil t t t t nil nil nil nil nil t)
285
286 ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
287 ;; \e,L)\e(B \e,L*\e(B \e,L5\e(B \e,L@\e(B \e,LB\e(B \e,L7\e(B \e,LC\e(B \e,L8\e(B \e,L>\e(B \e,L?\e(B \e,LH\e(B \e,L#\e(B
288 ;; \e,L0\e(B \e,LA\e(B \e,L4\e(B \e,LD\e(B \e,L3\e(B \e,LE\e(B \e,L(\e(B \e,L:\e(B \e,L;\e(B \e,LG\e(B \e,L,\e(B \e,L6\e(B
289 ;; \e,L%\e(B \e,L/\e(B \e,LF\e(B \e,L2\e(B \e,L1\e(B \e,L=\e(B \e,L<\e(B ,; .: -_
290
291 (quail-define-rules
292 ("1" ?1)
293 ("2" ?2)
294 ("3" ?3)
295 ("4" ?4)
296 ("5" ?5)
297 ("6" ?6)
298 ("7" ?7)
299 ("8" ?8)
300 ("9" ?9)
301 ("0" ?0)
302 ("-" ?/)
303 ("=" ?+)
304 ("`" ?<)
305 ("q" ?\e,Ly\e(B)
306 ("w" ?\e,Lz\e(B)
307 ("e" ?\e,LU\e(B)
308 ("r" ?\e,L`\e(B)
309 ("t" ?\e,Lb\e(B)
310 ("y" ?\e,LW\e(B)
311 ("u" ?\e,Lc\e(B)
312 ("i" ?\e,LX\e(B)
313 ("o" ?\e,L^\e(B)
314 ("p" ?\e,L_\e(B)
315 ("[" ?\e,Lh\e(B)
316 ("]" ?\e,Ls\e(B)
317 ("a" ?\e,LP\e(B)
318 ("s" ?\e,La\e(B)
319 ("d" ?\e,LT\e(B)
320 ("f" ?\e,Ld\e(B)
321 ("g" ?\e,LS\e(B)
322 ("h" ?\e,Le\e(B)
323 ("j" ?\e,Lx\e(B)
324 ("k" ?\e,LZ\e(B)
325 ("l" ?\e,L[\e(B)
326 (";" ?\e,Lg\e(B)
327 ("'" ?\e,L|\e(B)
328 ("\\" ?\e,LV\e(B)
329 ("z" ?\e,Lu\e(B)
330 ("x" ?\e,L\7f\e(B)
331 ("c" ?\e,Lf\e(B)
332 ("v" ?\e,LR\e(B)
333 ("b" ?\e,LQ\e(B)
334 ("n" ?\e,L]\e(B)
335 ("m" ?\e,L\\e(B)
336 ("," ?,)
337 ("." ?.)
338 ("/" ?-)
339
340 ("!" ?!)
341 ("@" ?\")
342 ("#" ?#)
343 ("$" ?$)
344 ("%" ?%)
345 ("^" ?&)
346 ("&" ?')
347 ("*" ?\()
348 ("(" ?\))
349 (")" ?=)
350 ("_" ??)
351 ("+" ?*)
352 ("~" ?>)
353 ("Q" ?\e,L)\e(B)
354 ("W" ?\e,L*\e(B)
355 ("E" ?\e,L5\e(B)
356 ("R" ?\e,L@\e(B)
357 ("T" ?\e,LB\e(B)
358 ("Y" ?\e,L7\e(B)
359 ("U" ?\e,LC\e(B)
360 ("I" ?\e,L8\e(B)
361 ("O" ?\e,L>\e(B)
362 ("P" ?\e,L?\e(B)
363 ("{" ?\e,LH\e(B)
364 ("}" ?\e,L#\e(B)
365 ("A" ?\e,L0\e(B)
366 ("S" ?\e,LA\e(B)
367 ("D" ?\e,L4\e(B)
368 ("F" ?\e,LD\e(B)
369 ("G" ?\e,L3\e(B)
370 ("H" ?\e,LE\e(B)
371 ("J" ?\e,L(\e(B)
372 ("K" ?\e,L:\e(B)
373 ("L" ?\e,L;\e(B)
374 (":" ?\e,LG\e(B)
375 ("\"" ?\e,L,\e(B)
376 ("|" ?\e,L6\e(B)
377 ("Z" ?\e,L%\e(B)
378 ("X" ?\e,L/\e(B)
379 ("C" ?\e,LF\e(B)
380 ("V" ?\e,L2\e(B)
381 ("B" ?\e,L1\e(B)
382 ("N" ?\e,L=\e(B)
383 ("M" ?\e,L<\e(B)
384 ("<" ?\;)
385 (">" ?:)
386 ("?" ?_))
387
388 ;;
389
390 (quail-define-package
391 "cyrillic-serbian" "Cyrillic" "\e,L6\e(BS" nil
392 "\e,L)*5@B7\e(B-\e,L"+\e(B keyboard layout based on JUS.I.K1.005 (ISO 8859-5 encoding)"
393 nil t t t t nil nil nil nil nil t)
394
395 ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
396 ;; \e,L)\e(B \e,L*\e(B \e,L5\e(B \e,L@\e(B \e,LB\e(B \e,L7\e(B \e,LC\e(B \e,L8\e(B \e,L>\e(B \e,L?\e(B \e,LH\e(B \e,L"\e(B
397 ;; \e,L0\e(B \e,LA\e(B \e,L4\e(B \e,LD\e(B \e,L3\e(B \e,LE\e(B \e,L(\e(B \e,L:\e(B \e,L;\e(B \e,LG\e(B \e,L+\e(B \e,L6\e(B
398 ;; \e,L%\e(B \e,L/\e(B \e,LF\e(B \e,L2\e(B \e,L1\e(B \e,L=\e(B \e,L<\e(B ,; .: -_
399
400 (quail-define-rules
401 ("1" ?1)
402 ("2" ?2)
403 ("3" ?3)
404 ("4" ?4)
405 ("5" ?5)
406 ("6" ?6)
407 ("7" ?7)
408 ("8" ?8)
409 ("9" ?9)
410 ("0" ?0)
411 ("-" ?/)
412 ("=" ?+)
413 ("`" ?<)
414 ("q" ?\e,Ly\e(B)
415 ("w" ?\e,Lz\e(B)
416 ("e" ?\e,LU\e(B)
417 ("r" ?\e,L`\e(B)
418 ("t" ?\e,Lb\e(B)
419 ("y" ?\e,LW\e(B)
420 ("u" ?\e,Lc\e(B)
421 ("i" ?\e,LX\e(B)
422 ("o" ?\e,L^\e(B)
423 ("p" ?\e,L_\e(B)
424 ("[" ?\e,Lh\e(B)
425 ("]" ?\e,Lr\e(B)
426 ("a" ?\e,LP\e(B)
427 ("s" ?\e,La\e(B)
428 ("d" ?\e,LT\e(B)
429 ("f" ?\e,Ld\e(B)
430 ("g" ?\e,LS\e(B)
431 ("h" ?\e,Le\e(B)
432 ("j" ?\e,Lx\e(B)
433 ("k" ?\e,LZ\e(B)
434 ("l" ?\e,L[\e(B)
435 (";" ?\e,Lg\e(B)
436 ("'" ?\e,L{\e(B)
437 ("\\" ?\e,LV\e(B)
438 ("z" ?\e,Lu\e(B)
439 ("x" ?\e,L\7f\e(B)
440 ("c" ?\e,Lf\e(B)
441 ("v" ?\e,LR\e(B)
442 ("b" ?\e,LQ\e(B)
443 ("n" ?\e,L]\e(B)
444 ("m" ?\e,L\\e(B)
445 ("," ?,)
446 ("." ?.)
447 ("/" ?-)
448
449 ("!" ?!)
450 ("@" ?\")
451 ("#" ?#)
452 ("$" ?$)
453 ("%" ?%)
454 ("^" ?&)
455 ("&" ?')
456 ("*" ?\()
457 ("(" ?\))
458 (")" ?=)
459 ("_" ??)
460 ("+" ?*)
461 ("~" ?>)
462 ("Q" ?\e,L)\e(B)
463 ("W" ?\e,L*\e(B)
464 ("E" ?\e,L5\e(B)
465 ("R" ?\e,L@\e(B)
466 ("T" ?\e,LB\e(B)
467 ("Y" ?\e,L7\e(B)
468 ("U" ?\e,LC\e(B)
469 ("I" ?\e,L8\e(B)
470 ("O" ?\e,L>\e(B)
471 ("P" ?\e,L?\e(B)
472 ("{" ?\e,LH\e(B)
473 ("}" ?\e,L"\e(B)
474 ("A" ?\e,L0\e(B)
475 ("S" ?\e,LA\e(B)
476 ("D" ?\e,L4\e(B)
477 ("F" ?\e,LD\e(B)
478 ("G" ?\e,L3\e(B)
479 ("H" ?\e,LE\e(B)
480 ("J" ?\e,L(\e(B)
481 ("K" ?\e,L:\e(B)
482 ("L" ?\e,L;\e(B)
483 (":" ?\e,LG\e(B)
484 ("\"" ?\e,L+\e(B)
485 ("|" ?\e,L6\e(B)
486 ("Z" ?\e,L%\e(B)
487 ("X" ?\e,L/\e(B)
488 ("C" ?\e,LF\e(B)
489 ("V" ?\e,L2\e(B)
490 ("B" ?\e,L1\e(B)
491 ("N" ?\e,L=\e(B)
492 ("M" ?\e,L<\e(B)
493 ("<" ?\;)
494 (">" ?:)
495 ("?" ?_))
496
497 ;;
498
499 ;; Alexander Mikhailian comments:
500 ;; Having worked for several years as a Belarusian linguist, I still
501 ;; can not find the origin of this layout which BTW does include
502 ;; several characters that are not present in Belarusian and does not
503 ;; include a few ones that do exist in Belarusian. Besides, the typo
504 ;; in the name of this layout speaks for itself since Belarusian has
505 ;; an outdated version of spelling which is "Byelorussian" and not
506 ;; "beylorussian". I suggest that you just remove this layout.
507
508 ;; [`derived from JUS.I.K1' according to an old Mule note -- fx]
509
510 ;; (quail-define-package
511 ;; "cyrillic-beylorussian" "Belarussian" "\e,L6\e(BB" nil
512 ;; "\e,L)*5@B7\e(B-\e,L&.\e(B BEYLORUSSIAN (ISO 8859-5 encoding)"
513 ;; nil t t t t nil nil nil nil nil t)
514
515 ;; ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
516 ;; ;; \e,L)\e(B \e,L*\e(B \e,L5\e(B \e,L@\e(B \e,LB\e(B \e,L7\e(B \e,LC\e(B \e,L8\e(B \e,L>\e(B \e,L?\e(B \e,LH\e(B \e,L&\e(B
517 ;; ;; \e,L0\e(B \e,LA\e(B \e,L4\e(B \e,LD\e(B \e,L3\e(B \e,LE\e(B \e,L(\e(B \e,L:\e(B \e,L;\e(B \e,LG\e(B \e,L.\e(B \e,L6\e(B
518 ;; ;; \e,L%\e(B \e,L/\e(B \e,LF\e(B \e,L2\e(B \e,L1\e(B \e,L=\e(B \e,L<\e(B ,; .: -_
519
520 ;; (quail-define-rules
521 ;; ("-" ?/)
522 ;; ("=" ?+)
523 ;; ("`" ?<)
524 ;; ("q" ?\e,Ly\e(B)
525 ;; ("w" ?\e,Lz\e(B)
526 ;; ("e" ?\e,LU\e(B)
527 ;; ("r" ?\e,L`\e(B)
528 ;; ("t" ?\e,Lb\e(B)
529 ;; ("y" ?\e,LW\e(B)
530 ;; ("u" ?\e,Lc\e(B)
531 ;; ("i" ?\e,LX\e(B)
532 ;; ("o" ?\e,L^\e(B)
533 ;; ("p" ?\e,L_\e(B)
534 ;; ("[" ?\e,Lh\e(B)
535 ;; ("]" ?\e,Lv\e(B)
536 ;; ("a" ?\e,LP\e(B)
537 ;; ("s" ?\e,La\e(B)
538 ;; ("d" ?\e,LT\e(B)
539 ;; ("f" ?\e,Ld\e(B)
540 ;; ("g" ?\e,LS\e(B)
541 ;; ("h" ?\e,Le\e(B)
542 ;; ("j" ?\e,Lx\e(B)
543 ;; ("k" ?\e,LZ\e(B)
544 ;; ("l" ?\e,L[\e(B)
545 ;; (";" ?\e,Lg\e(B)
546 ;; ("'" ?\e,L~\e(B)
547 ;; ("\\" ?\e,LV\e(B)
548 ;; ("z" ?\e,Lu\e(B)
549 ;; ("x" ?\e,L\7f\e(B)
550 ;; ("c" ?\e,Lf\e(B)
551 ;; ("v" ?\e,LR\e(B)
552 ;; ("b" ?\e,LQ\e(B)
553 ;; ("n" ?\e,L]\e(B)
554 ;; ("m" ?\e,L\\e(B)
555 ;; ("/" ?-)
556
557 ;; ("@" ?\")
558 ;; ("^" ?&)
559 ;; ("&" ?')
560 ;; ("*" ?\()
561 ;; ("(" ?\))
562 ;; (")" ?=)
563 ;; ("_" ??)
564 ;; ("+" ?*)
565 ;; ("~" ?>)
566 ;; ("Q" ?\e,L)\e(B)
567 ;; ("W" ?\e,L*\e(B)
568 ;; ("E" ?\e,L5\e(B)
569 ;; ("R" ?\e,L@\e(B)
570 ;; ("T" ?\e,LB\e(B)
571 ;; ("Y" ?\e,L7\e(B)
572 ;; ("U" ?\e,LC\e(B)
573 ;; ("I" ?\e,L8\e(B)
574 ;; ("O" ?\e,L>\e(B)
575 ;; ("P" ?\e,L?\e(B)
576 ;; ("{" ?\e,LH\e(B)
577 ;; ("}" ?\e,L&\e(B)
578 ;; ("A" ?\e,L0\e(B)
579 ;; ("S" ?\e,LA\e(B)
580 ;; ("D" ?\e,L4\e(B)
581 ;; ("F" ?\e,LD\e(B)
582 ;; ("G" ?\e,L3\e(B)
583 ;; ("H" ?\e,LE\e(B)
584 ;; ("J" ?\e,L(\e(B)
585 ;; ("K" ?\e,L:\e(B)
586 ;; ("L" ?\e,L;\e(B)
587 ;; (":" ?\e,LG\e(B)
588 ;; ("\"" ?\e,L.\e(B)
589 ;; ("|" ?\e,L6\e(B)
590 ;; ("Z" ?\e,L%\e(B)
591 ;; ("X" ?\e,L/\e(B)
592 ;; ("C" ?\e,LF\e(B)
593 ;; ("V" ?\e,L2\e(B)
594 ;; ("B" ?\e,L1\e(B)
595 ;; ("N" ?\e,L=\e(B)
596 ;; ("M" ?\e,L<\e(B)
597 ;; ("<" ?\;)
598 ;; (">" ?:)
599 ;; ("?" ?_))
600
601 ;;
602
603 ;; Alexander Mikhailian reports the opinion of fellow Ukrainian
604 ;; linguist Bogdan Babych <babych@altern.org>:
605 ;; He had seen this layout on some oldish systems but that the vast
606 ;; majority of the population uses a modified version of the M$ Windows
607 ;; layout. In fact, Microsoft shipped for a while a layout that was lacking
608 ;; two characters, precisely the "GHE_WITH_UPTURN" and the apostrophe. The
609 ;; latest versions of Windows software do have the "GHE_WITH_UPTURN" in the
610 ;; ukrainian keyborad layout but the apostrophe is still not there, whereas
611 ;; there is one letter, "Cyrillic_YO", not used in ukrainian. Ukrainians
612 ;; normally replace the "Cyrillic_YO" by the apostrophe sign and live
613 ;; happily with this little change. [See "ukrainian-computer" below.]
614
615 ;; Fixme: add GHE_WITH_UPTURN.
616 (quail-define-package
617 "cyrillic-ukrainian" "Ukrainian" "\e,L6\e(BU" nil
618 "\e,L$'5@B7\e(B-\e,L&.\e(B UKRAINIAN (ISO 8859-5 encoding)
619
620 Sorry, but 'ghe with upturn' is not included in ISO 8859-5."
621 nil t t t t nil nil nil nil nil t)
622
623 ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
624 ;; \e,L$\e(B \e,L'\e(B \e,L5\e(B \e,L@\e(B \e,LB\e(B \e,L7\e(B \e,LC\e(B \e,L8\e(B \e,L>\e(B \e,L?\e(B \e,LH\e(B \e,L&\e(B
625 ;; \e,L0\e(B \e,LA\e(B \e,L4\e(B \e,LD\e(B \e,L3\e(B \e,LE\e(B \e,L(\e(B \e,L:\e(B \e,L;\e(B \e,LG\e(B \e,L.\e(B \e,L6\e(B
626 ;; \e,L%\e(B \e,L/\e(B \e,LF\e(B \e,L2\e(B \e,L1\e(B \e,L=\e(B \e,L<\e(B ,; .: -_
627
628 (quail-define-rules
629 ("1" ?1)
630 ("2" ?2)
631 ("3" ?3)
632 ("4" ?4)
633 ("5" ?5)
634 ("6" ?6)
635 ("7" ?7)
636 ("8" ?8)
637 ("9" ?9)
638 ("0" ?0)
639 ("-" ?/)
640 ("=" ?+)
641 ("`" ?<)
642 ("q" ?\e,Lt\e(B)
643 ("w" ?\e,Lw\e(B)
644 ("e" ?\e,LU\e(B)
645 ("r" ?\e,L`\e(B)
646 ("t" ?\e,Lb\e(B)
647 ("y" ?\e,LW\e(B)
648 ("u" ?\e,Lc\e(B)
649 ("i" ?\e,LX\e(B)
650 ("o" ?\e,L^\e(B)
651 ("p" ?\e,L_\e(B)
652 ("[" ?\e,Lh\e(B)
653 ("]" ?\e,Lv\e(B)
654 ("a" ?\e,LP\e(B)
655 ("s" ?\e,La\e(B)
656 ("d" ?\e,LT\e(B)
657 ("f" ?\e,Ld\e(B)
658 ("g" ?\e,LS\e(B)
659 ("h" ?\e,Le\e(B)
660 ("j" ?\e,Lx\e(B)
661 ("k" ?\e,LZ\e(B)
662 ("l" ?\e,L[\e(B)
663 (";" ?\e,Lg\e(B)
664 ("'" ?\e,L~\e(B)
665 ("\\" ?\e,LV\e(B)
666 ("z" ?\e,Lu\e(B)
667 ("x" ?\e,L\7f\e(B)
668 ("c" ?\e,Lf\e(B)
669 ("v" ?\e,LR\e(B)
670 ("b" ?\e,LQ\e(B)
671 ("n" ?\e,L]\e(B)
672 ("m" ?\e,L\\e(B)
673 ("," ?,)
674 ("." ?.)
675 ("/" ?-)
676
677 ("!" ?!)
678 ("@" ?\")
679 ("#" ?#)
680 ("$" ?$)
681 ("%" ?%)
682 ("^" ?&)
683 ("&" ?')
684 ("*" ?\()
685 ("(" ?\))
686 (")" ?=)
687 ("_" ??)
688 ("+" ?*)
689 ("~" ?>)
690 ("Q" ?\e,L$\e(B)
691 ("W" ?\e,L'\e(B)
692 ("E" ?\e,L5\e(B)
693 ("R" ?\e,L@\e(B)
694 ("T" ?\e,LB\e(B)
695 ("Y" ?\e,L7\e(B)
696 ("U" ?\e,LC\e(B)
697 ("I" ?\e,L8\e(B)
698 ("O" ?\e,L>\e(B)
699 ("P" ?\e,L?\e(B)
700 ("{" ?\e,LH\e(B)
701 ("}" ?\e,L&\e(B)
702 ("A" ?\e,L0\e(B)
703 ("S" ?\e,LA\e(B)
704 ("D" ?\e,L4\e(B)
705 ("F" ?\e,LD\e(B)
706 ("G" ?\e,L3\e(B)
707 ("H" ?\e,LE\e(B)
708 ("J" ?\e,L(\e(B)
709 ("K" ?\e,L:\e(B)
710 ("L" ?\e,L;\e(B)
711 (":" ?\e,LG\e(B)
712 ("\"" ?\e,L.\e(B)
713 ("|" ?\e,L6\e(B)
714 ("Z" ?\e,L%\e(B)
715 ("X" ?\e,L/\e(B)
716 ("C" ?\e,LF\e(B)
717 ("V" ?\e,L2\e(B)
718 ("B" ?\e,L1\e(B)
719 ("N" ?\e,L=\e(B)
720 ("M" ?\e,L<\e(B)
721 ("<" ?\;)
722 (">" ?:)
723 ("?" ?_))
724
725
726 (quail-define-package
727 "ukrainian-computer" "Ukrainian" "UK" nil
728 "\e$,1(9(F(C(:(5(=\e(B Ukrainian (Unicode-based for use with KOI8-U encoding)."
729 nil t t t t nil nil nil nil nil t)
730
731 ;; ' 1! 2" 3\e$,1uV\e(B 4; 5% 6: 7? 8* 9( 0) -_ =+
732 ;; \e$,1(9\e(B \e$,1(F\e(B \e$,1(C\e(B \e$,1(:\e(B \e$,1(5\e(B \e$,1(=\e(B \e$,1(3\e(B \e$,1(H\e(B \e$,1(I\e(B \e$,1(7\e(B \e$,1(E\e(B \e$,1('\e(B
733 ;; \e$,1(D\e(B \e$,1(&\e(B \e$,1(2\e(B \e$,1(0\e(B \e$,1(?\e(B \e$,1(@\e(B \e$,1(>\e(B \e$,1(;\e(B \e$,1(4\e(B \e$,1(6\e(B \e$,1($\e(B \e$,1)P\e(B
734 ;; \e$,1(O\e(B \e$,1(G\e(B \e$,1(A\e(B \e$,1(<\e(B \e$,1(8\e(B \e$,1(B\e(B \e$,1(L\e(B \e$,1(1\e(B \e$,1(N\e(B .,
735
736 (quail-define-rules
737 ("1" ?1)
738 ("2" ?2)
739 ("3" ?3)
740 ("4" ?4)
741 ("5" ?5)
742 ("6" ?6)
743 ("7" ?7)
744 ("8" ?8)
745 ("9" ?9)
746 ("0" ?0)
747 ("-" ?-)
748 ("=" ?=)
749 ("`" ?')
750 ("q" ?\e$,1(Y\e(B)
751 ("w" ?\e$,1(f\e(B)
752 ("e" ?\e$,1(c\e(B)
753 ("r" ?\e$,1(Z\e(B)
754 ("t" ?\e$,1(U\e(B)
755 ("y" ?\e$,1(]\e(B)
756 ("u" ?\e$,1(S\e(B)
757 ("i" ?\e$,1(h\e(B)
758 ("o" ?\e$,1(i\e(B)
759 ("p" ?\e$,1(W\e(B)
760 ("[" ?\e$,1(e\e(B)
761 ("]" ?\e$,1(w\e(B)
762 ("a" ?\e$,1(d\e(B)
763 ("s" ?\e$,1(v\e(B)
764 ("d" ?\e$,1(R\e(B)
765 ("f" ?\e$,1(P\e(B)
766 ("g" ?\e$,1(_\e(B)
767 ("h" ?\e$,1(`\e(B)
768 ("j" ?\e$,1(^\e(B)
769 ("k" ?\e$,1([\e(B)
770 ("l" ?\e$,1(T\e(B)
771 (";" ?\e$,1(V\e(B)
772 ("'" ?\e$,1(t\e(B)
773 ("z" ?\e$,1(o\e(B)
774 ("x" ?\e$,1(g\e(B)
775 ("c" ?\e$,1(a\e(B)
776 ("v" ?\e$,1(\\e(B)
777 ("b" ?\e$,1(X\e(B)
778 ("n" ?\e$,1(b\e(B)
779 ("m" ?\e$,1(l\e(B)
780 ("," ?\e$,1(Q\e(B)
781 ("." ?\e$,1(n\e(B)
782 ("/" ?.)
783 ("!" ?!)
784 ("@" ?\")
785 ("#" ?\e$,1uV\e(B)
786 ("$" ?\;)
787 ("%" ?%)
788 ("^" ?:)
789 ("&" ??)
790 ("*" ?*)
791 ("(" ?()
792 (")" ?))
793 ("_" ?_)
794 ("+" ?+)
795 ("~" ?')
796 ("Q" ?\e$,1(9\e(B)
797 ("W" ?\e$,1(F\e(B)
798 ("E" ?\e$,1(C\e(B)
799 ("R" ?\e$,1(:\e(B)
800 ("T" ?\e$,1(5\e(B)
801 ("Y" ?\e$,1(=\e(B)
802 ("U" ?\e$,1(3\e(B)
803 ("I" ?\e$,1(H\e(B)
804 ("O" ?\e$,1(I\e(B)
805 ("P" ?\e$,1(7\e(B)
806 ("{" ?\e$,1(E\e(B)
807 ("}" ?\e$,1('\e(B)
808 ("A" ?\e$,1(D\e(B)
809 ("S" ?\e$,1(&\e(B)
810 ("D" ?\e$,1(2\e(B)
811 ("F" ?\e$,1(0\e(B)
812 ("G" ?\e$,1(?\e(B)
813 ("H" ?\e$,1(@\e(B)
814 ("J" ?\e$,1(>\e(B)
815 ("K" ?\e$,1(;\e(B)
816 ("L" ?\e$,1(4\e(B)
817 (":" ?\e$,1(6\e(B)
818 ("\"" ?\e$,1($\e(B)
819 ("Z" ?\e$,1(O\e(B)
820 ("X" ?\e$,1(G\e(B)
821 ("C" ?\e$,1(A\e(B)
822 ("V" ?\e$,1(<\e(B)
823 ("B" ?\e$,1(8\e(B)
824 ("N" ?\e$,1(B\e(B)
825 ("M" ?\e$,1(L\e(B)
826 ("<" ?\e$,1(1\e(B)
827 (">" ?\e$,1(N\e(B)
828 ("?" ?,)
829 ("\\" ?\e$,1)Q\e(B)
830 ("|" ?\e$,1)P\e(B))
831 ;;
832
833 ;; Alexander Mikhailian says this is of limited use. It has been
834 ;; popular among emigrants or foreigners who have to type in Cyrillic
835 ;; (mostly Russian) from time to time.
836 (quail-define-package
837 "cyrillic-yawerty" "Cyrillic" "\e,L6O\e(B" nil
838 "\e,LO25@BK\e(B Roman transcription (ISO 8859-5 encoding)
839
840 This layout is based on Roman transcription by phonemic resemblance.
841 When preceded by a '/', the second and the third rows (number key row) change
842 as follows.
843
844 keytop | Q W E R T Y U I O P A S D
845 --------+---------------------------------------
846 input | \e,L"\e(B \e,L#\e(B \e,L$\e(B \e,L%\e(B \e,L&\e(B \e,L'\e(B \e,L(\e(B \e,L)\e(B \e,L*\e(B \e,L+\e(B \e,L,\e(B \e,L.\e(B \e,L/\e(B"
847 nil t t t t nil nil nil nil nil t)
848
849 ;; 1! 2\e,Lq\e(B 3\e,Lj\e(B 4\e,L!\e(B 5% 6^ 7& 8* 9( 0) -_ \e,LG\e(B \e,LN\e(B
850 ;; \e,LO\e(B \e,L2\e(B \e,L5\e(B \e,L@\e(B \e,LB\e(B \e,LK\e(B \e,LC\e(B \e,L8\e(B \e,L>\e(B \e,L?\e(B \e,LH\e(B \e,LI\e(B
851 ;; \e,L0\e(B \e,LA\e(B \e,L4\e(B \e,LD\e(B \e,L3\e(B \e,LE\e(B \e,L9\e(B \e,L:\e(B \e,L;\e(B ;: '" \e,LM\e(B
852 ;; \e,L7\e(B \e,LL\e(B \e,LF\e(B \e,L6\e(B \e,L1\e(B \e,L=\e(B \e,L<\e(B ,< .> /?
853
854 ;; 1! 2\e,Lq\e(B 3\e,Lj\e(B 4\e,L!\e(B 5% 6^ 7& 8* 9( 0) -_ \e,LG\e(B \e,LN\e(B
855 ;; \e,L"\e(B \e,L#\e(B \e,L$\e(B \e,L%\e(B \e,L&\e(B \e,L'\e(B \e,L(\e(B \e,L)\e(B \e,L*\e(B \e,L+\e(B \e,LH\e(B \e,LI\e(B
856 ;; \e,L,\e(B \e,L.\e(B \e,L/\e(B \e,LD\e(B \e,L3\e(B \e,LE\e(B \e,L9\e(B \e,L:\e(B \e,L;\e(B ;: '" \e,LM\e(B
857 ;; \e,L7\e(B \e,LL\e(B \e,LF\e(B \e,L6\e(B \e,L1\e(B \e,L=\e(B \e,L<\e(B ,< .> /?
858
859 (quail-define-rules
860 ("1" ?1)
861 ("2" ?2)
862 ("3" ?3)
863 ("4" ?4)
864 ("5" ?5)
865 ("6" ?6)
866 ("7" ?7)
867 ("8" ?8)
868 ("9" ?9)
869 ("0" ?0)
870 ("-" ?-)
871 ("=" ?\e,Lg\e(B)
872 ("`" ?\e,Ln\e(B)
873 ("q" ?\e,Lo\e(B)
874 ("w" ?\e,LR\e(B)
875 ("e" ?\e,LU\e(B)
876 ("r" ?\e,L`\e(B)
877 ("t" ?\e,Lb\e(B)
878 ("y" ?\e,Lk\e(B)
879 ("u" ?\e,Lc\e(B)
880 ("i" ?\e,LX\e(B)
881 ("o" ?\e,L^\e(B)
882 ("p" ?\e,L_\e(B)
883 ("[" ?\e,Lh\e(B)
884 ("]" ?\e,Li\e(B)
885 ("a" ?\e,LP\e(B)
886 ("s" ?\e,La\e(B)
887 ("d" ?\e,LT\e(B)
888 ("f" ?\e,Ld\e(B)
889 ("g" ?\e,LS\e(B)
890 ("h" ?\e,Le\e(B)
891 ("j" ?\e,LY\e(B)
892 ("k" ?\e,LZ\e(B)
893 ("l" ?\e,L[\e(B)
894 (";" ?\;)
895 ("'" ?')
896 ("\\" ?\e,Lm\e(B)
897 ("z" ?\e,LW\e(B)
898 ("x" ?\e,Ll\e(B)
899 ("c" ?\e,Lf\e(B)
900 ("v" ?\e,LV\e(B)
901 ("b" ?\e,LQ\e(B)
902 ("n" ?\e,L]\e(B)
903 ("m" ?\e,L\\e(B)
904 ("," ?,)
905 ("." ?.)
906 ("/" ?/)
907
908 ("!" ?!)
909 ("@" ?\e,Lq\e(B)
910 ("#" ?\e,Lj\e(B)
911 ("$" ?\e,L!\e(B)
912 ("%" ?%)
913 ("^" ?^)
914 ("&" ?&)
915 ("*" ?*)
916 ("(" ?\()
917 (")" ?\))
918 ("_" ?_)
919 ("+" ?\e,LG\e(B)
920 ("~" ?\e,LN\e(B)
921 ("Q" ?\e,LO\e(B)
922 ("W" ?\e,L2\e(B)
923 ("E" ?\e,L5\e(B)
924 ("R" ?\e,L@\e(B)
925 ("T" ?\e,LB\e(B)
926 ("Y" ?\e,LK\e(B)
927 ("U" ?\e,LC\e(B)
928 ("I" ?\e,L8\e(B)
929 ("O" ?\e,L>\e(B)
930 ("P" ?\e,L?\e(B)
931 ("{" ?\e,LH\e(B)
932 ("}" ?\e,LI\e(B)
933 ("A" ?\e,L0\e(B)
934 ("S" ?\e,LA\e(B)
935 ("D" ?\e,L4\e(B)
936 ("F" ?\e,LD\e(B)
937 ("G" ?\e,L3\e(B)
938 ("H" ?\e,LE\e(B)
939 ("J" ?\e,L9\e(B)
940 ("K" ?\e,L:\e(B)
941 ("L" ?\e,L;\e(B)
942 (":" ?:)
943 ("\"" ?\")
944 ("|" ?\e,LM\e(B)
945 ("Z" ?\e,L7\e(B)
946 ("X" ?\e,LL\e(B)
947 ("C" ?\e,LF\e(B)
948 ("V" ?\e,L6\e(B)
949 ("B" ?\e,L1\e(B)
950 ("N" ?\e,L=\e(B)
951 ("M" ?\e,L<\e(B)
952 ("<" ?<)
953 (">" ?>)
954 ("?" ??)
955
956 ("/q" ?\e,Lr\e(B)
957 ("/w" ?\e,Ls\e(B)
958 ("/e" ?\e,Lt\e(B)
959 ("/r" ?\e,Lu\e(B)
960 ("/t" ?\e,Lv\e(B)
961 ("/y" ?\e,Lw\e(B)
962 ("/u" ?\e,Lx\e(B)
963 ("/i" ?\e,Ly\e(B)
964 ("/o" ?\e,Lz\e(B)
965 ("/p" ?\e,L{\e(B)
966 ("/a" ?\e,L|\e(B)
967 ("/s" ?\e,L~\e(B)
968 ("/d" ?\e,L\7f\e(B)
969
970 ("/Q" ?\e,L"\e(B)
971 ("/W" ?\e,L#\e(B)
972 ("/E" ?\e,L$\e(B)
973 ("/R" ?\e,L%\e(B)
974 ("/T" ?\e,L&\e(B)
975 ("/Y" ?\e,L'\e(B)
976 ("/U" ?\e,L(\e(B)
977 ("/I" ?\e,L)\e(B)
978 ("/O" ?\e,L*\e(B)
979 ("/P" ?\e,L+\e(B)
980 ("/A" ?\e,L,\e(B)
981 ("/S" ?\e,L.\e(B)
982 ("/D" ?\e,L/\e(B))
983
984 ;; This was provided by Valery Alexeev <valery@domovoy.math.uga.edu>.
985
986 ;; Ognyan Kulev <ogi@fmi.uni-sofia.bg> wrote:
987
988 ;; I would suggest future `cyrillic-translit' to be with the
989 ;; modification of `cyrillic-translit-bulgarian' applied and the
990 ;; latter to disappear. It could be used by people who write
991 ;; bulgarian e-mails with latin letters for kick start (phonetic input
992 ;; method is not so obvious as translit input method but each letter
993 ;; is one keypress and a *lot* of people know it).
994
995 ;; Anton Zinoviev <anton@lml.bas.bg> wrote:
996 ;; I would say that the main idea for cyrillic-translit is to be
997 ;; language-independent and universal. It should be able to generate all
998 ;; Cyrillic symbols.
999 (quail-define-package
1000 "cyrillic-translit" "Cyrillic" "\e,L6\e(Bt" nil
1001 "Intuitively transliterated keyboard layout.
1002 Most convenient for entering Russian, but all Cyrillic characters
1003 are included. Should handle most cases. However:
1004 for \e,Lf\e(B (TSE) use \"c\", never \"ts\"
1005 \e,Li\e(B (SHCHA = Bulgarian SHT) = \"shch\", \"sj\", \"/sht\" or \"/t\",
1006 \e,Lm\e(B (REVERSE ROUNDED E) = \"e'\" or \"e`\"
1007 \e,Le\e(B (KHA) when after \e,La\e(B (S) = \"x\" or \"kh\"
1008 \e,Lj\e(B (HARD SIGN) = \"~\", \e,LJ\e(B (CAPITAL HARD SIGN) = \"~~\",
1009 \e,Ll\e(B (SOFT SIGN) = \"'\", \e,LL\e(B (CAPITAL SOFT SIGN) = \"''\",
1010 \e,Lo\e(B (YA) = \"ya\", \"ja\" or \"q\".
1011
1012 Russian alphabet: a b v=w g d e yo=jo zh z i j=j' k l m n o p r s t
1013 u f h=kh=x c ch sh shch=sj=/s=/sht ~ y ' e' yu=ju ya=ja=q
1014
1015 Also included are Ukrainian \e,Lt\e(B (YE) = \"/e\" and \e,Lw\e(B (YI) = \"yi\",
1016 Belarusian \e,L~\e(B (SHORT U) = \"u'\",
1017 Serbo-Croatian \e,Lr\e(B (DJE) = \"/d\", \e,L{\e(B (CHJE)= \"/ch\",
1018 Macedonian \e,Ls\e(B (GJE) = \"/g\", \e,Lu\e(B (DZE) = \"/s\", \e,L|\e(B (KJE) = \"/k\",
1019 cyrillic \e,Lv\e(B (I DECIMAL) = \"/i\", \e,Lx\e(B (JE) = \"/j\",
1020 \e,Ly\e(B (LJE) = \"/l\", \e,Lz\e(B (NJE) = \"/n\" and \e,L\7f\e(B (DZE) =\"/z\"."
1021 nil t t t t nil nil nil nil nil t)
1022
1023 (quail-define-rules
1024 ("a" ?\e,LP\e(B)("b" ?\e,LQ\e(B) ("v" ?\e,LR\e(B) ("w" ?\e,LR\e(B) ("g" ?\e,LS\e(B) ("d" ?\e,LT\e(B)
1025 ("e" ?\e,LU\e(B) ("je" ?\e,LU\e(B)
1026 ("yo" ?\e,Lq\e(B) ("jo" ?\e,Lq\e(B)
1027 ("zh" ?\e,LV\e(B) ("z" ?\e,LW\e(B) ("i" ?\e,LX\e(B)
1028 ("j" ?\e,LY\e(B) ("j'" ?\e,LY\e(B) ("j`" ?\e,LY\e(B) ("k" ?\e,LZ\e(B) ("l" ?\e,L[\e(B)
1029 ("m" ?\e,L\\e(B) ("n" ?\e,L]\e(B) ("o" ?\e,L^\e(B) ("p" ?\e,L_\e(B) ("r" ?\e,L`\e(B) ("s" ?\e,La\e(B) ("t" ?\e,Lb\e(B) ("u" ?\e,Lc\e(B)
1030 ("f" ?\e,Ld\e(B) ("x" ?\e,Le\e(B) ("h" ?\e,Le\e(B) ("kh" ?\e,Le\e(B)
1031 ("c" ?\e,Lf\e(B) ("ch" ?\e,Lg\e(B)
1032 ("sh" ?\e,Lh\e(B)
1033 ("shch" ?\e,Li\e(B) ("sj" ?\e,Li\e(B)
1034 ("/sht" ?\e,Li\e(B) ("/t" ?\e,Li\e(B)
1035 ("~" ?\e,Lj\e(B) ("y" ?\e,Lk\e(B) ("'" ?\e,Ll\e(B) ("`" ?\e,Ll\e(B)
1036 ("e'" ?\e,Lm\e(B) ("e`" ?\e,Lm\e(B) ("@" ?\e,Lm\e(B)
1037 ("yu" ?\e,Ln\e(B) ("ju" ?\e,Ln\e(B)
1038 ("ya" ?\e,Lo\e(B) ("ja" ?\e,Lo\e(B) ("q" ?\e,Lo\e(B)
1039
1040 ("A" ?\e,L0\e(B) ("B" ?\e,L1\e(B) ("V" ?\e,L2\e(B) ("W" ?\e,L2\e(B) ("G" ?\e,L3\e(B) ("D" ?\e,L4\e(B)
1041 ("E" ?\e,L5\e(B) ("Je" ?\e,L5\e(B) ("JE" ?\e,L5\e(B)
1042 ("Yo" ?\e,L!\e(B) ("YO" ?\e,L!\e(B) ("Jo" ?\e,L!\e(B) ("JO" ?\e,L!\e(B)
1043 ("Zh" ?\e,L6\e(B) ("ZH" ?\e,L6\e(B) ("Z" ?\e,L7\e(B) ("I" ?\e,L8\e(B)
1044 ("J" ?\e,L9\e(B) ("J'" ?\e,L9\e(B) ("J`" ?\e,L9\e(B) ("K" ?\e,L:\e(B) ("L" ?\e,L;\e(B)
1045 ("M" ?\e,L<\e(B) ("N" ?\e,L=\e(B) ("O" ?\e,L>\e(B) ("P" ?\e,L?\e(B) ("R" ?\e,L@\e(B) ("S" ?\e,LA\e(B) ("T" ?\e,LB\e(B) ("U" ?\e,LC\e(B)
1046 ("F" ?\e,LD\e(B) ("X" ?\e,LE\e(B) ("H" ?\e,LE\e(B) ("Kh" ?\e,LE\e(B) ("KH" ?\e,LE\e(B)
1047 ("C" ?\e,LF\e(B) ("Ch" ?\e,LG\e(B) ("CH" ?\e,LG\e(B)
1048 ("Sh" ?\e,LH\e(B) ("SH" ?\e,LH\e(B)
1049 ("Shch" ?\e,LI\e(B) ("SHCH" ?\e,LI\e(B) ("Sj" ?\e,LI\e(B) ("SJ" ?\e,LI\e(B)
1050 ("/Sht" ?\e,LI\e(B) ("/SHT" ?\e,LI\e(B) ("/T" ?\e,LI\e(B)
1051 ("~~" "\e,LJ\e(B") ("Y" ?\e,LK\e(B) ("''" "\e,LL\e(B") ("E'" ?\e,LM\e(B) ("E`" ?\e,LM\e(B)
1052 ("Yu" ?\e,LN\e(B) ("YU" ?\e,LN\e(B) ("Ju" ?\e,LN\e(B) ("JU" ?\e,LN\e(B)
1053 ("Ya" ?\e,LO\e(B) ("YA" ?\e,LO\e(B) ("Ja" ?\e,LO\e(B) ("JA" ?\e,LO\e(B) ("Q" ?\e,LO\e(B)
1054
1055 ("/e" ?\e,Lt\e(B) ("yi" ?\e,Lw\e(B) ("u'" ?\e,L~\e(B)
1056 ("/d" ?\e,Lr\e(B) ("/ch" ?\e,L{\e(B)
1057 ("/g" ?\e,Ls\e(B) ("/s" ?\e,Lu\e(B) ("/k" ?\e,L|\e(B)
1058 ("/i" ?\e,Lv\e(B) ("/j" ?\e,Lx\e(B) ("/l" ?\e,Ly\e(B) ("/n" ?\e,Lz\e(B) ("/z" ?\e,L\7f\e(B)
1059 ("/E" ?\e,L$\e(B) ("YE" ?\e,L$\e(B) ("Yi" ?\e,L'\e(B) ("YI" ?\e,L'\e(B) ("U'" ?\e,L.\e(B)
1060 ("/D" ?\e,L"\e(B) ("/Ch" ?\e,L+\e(B) ("/CH" ?\e,L+\e(B)
1061 ("/G" ?\e,L#\e(B) ("/S" ?\e,L%\e(B) ("/K" ?\e,L,\e(B)
1062 ("/I" ?\e,L&\e(B) ("/J" ?\e,L(\e(B) ("/L" ?\e,L)\e(B) ("/N" ?\e,L*\e(B) ("/Z" ?\e,L/\e(B)
1063 )
1064
1065 ;; Originally from Yudit's `Belarusian input table according to
1066 ;; STB955-94 belarusian standard' (not all) by Alexander Mikhailian
1067 ;; <mikhailian@altern.org>, subsequently amended by AM.
1068 (quail-define-package
1069 "belarusian" "Belarusian" "BE" nil
1070 "\e$,1(9(F(C(:(5(=\e(B keyboard layout registered as STB955-94 Belarusian standard.
1071 Unicode based."
1072 nil t t t t nil nil nil nil nil t)
1073
1074 ;; \e$,1(q(!\e(B 1! 2" 3N 4; 5% 6: 7? 8* 9( 0) -_ =+
1075 ;; \e$,1(9\e(B \e$,1(F\e(B \e$,1(C\e(B \e$,1(:\e(B \e$,1(5\e(B \e$,1(=\e(B \e$,1(3\e(B \e$,1(H\e(B \e$,1(.\e(B \e$,1(7\e(B \e$,1(E\e(B '
1076 ;; \e$,1(D\e(B \e$,1(K\e(B \e$,1(2\e(B \e$,1(0\e(B \e$,1(?\e(B \e$,1(@\e(B \e$,1(>\e(B \e$,1(;\e(B \e$,1(4\e(B \e$,1(6\e(B \e$,1(M\e(B
1077 ;; \e$,1(O\e(B \e$,1(G\e(B \e$,1(A\e(B \e$,1(<\e(B \e$,1(&\e(B \e$,1(B\e(B \e$,1(L\e(B \e$,1(1\e(B \e$,1(N\e(B .,
1078
1079 (quail-define-rules
1080 ("~" ?\e$,1(!\e(B)
1081 ("@" ?\")
1082 ("#" ?\e$,1uV\e(B)
1083 ("$" ?\;)
1084 ("%" ?%)
1085 ("^" ?:)
1086 ("&" ??)
1087 ("Q" ?\e$,1(9\e(B)
1088 ("W" ?\e$,1(F\e(B)
1089 ("E" ?\e$,1(C\e(B)
1090 ("R" ?\e$,1(:\e(B)
1091 ("T" ?\e$,1(5\e(B)
1092 ("Y" ?\e$,1(=\e(B)
1093 ("U" ?\e$,1(3\e(B)
1094 ("I" ?\e$,1(H\e(B)
1095 ("O" ?\e$,1(.\e(B)
1096 ("P" ?\e$,1(7\e(B)
1097 ("{" ?\e$,1(E\e(B)
1098 ("}" ?')
1099 ("A" ?\e$,1(D\e(B)
1100 ("S" ?\e$,1(K\e(B)
1101 ("D" ?\e$,1(2\e(B)
1102 ("F" ?\e$,1(0\e(B)
1103 ("G" ?\e$,1(?\e(B)
1104 ("H" ?\e$,1(@\e(B)
1105 ("J" ?\e$,1(>\e(B)
1106 ("K" ?\e$,1(;\e(B)
1107 ("L" ?\e$,1(4\e(B)
1108 (":" ?\e$,1(6\e(B)
1109 ("\"" ?\e$,1(M\e(B)
1110 ("|" ?|)
1111 ("Z" ?\e$,1(O\e(B)
1112 ("X" ?\e$,1(G\e(B)
1113 ("C" ?\e$,1(A\e(B)
1114 ("V" ?\e$,1(<\e(B)
1115 ("B" ?\e$,1(&\e(B)
1116 ("N" ?\e$,1(B\e(B)
1117 ("M" ?\e$,1(L\e(B)
1118 ("<" ?\e$,1(1\e(B)
1119 (">" ?\e$,1(N\e(B)
1120 ("?" ?,)
1121
1122 ("`" ?\e$,1(q\e(B)
1123 ("q" ?\e$,1(Y\e(B)
1124 ("w" ?\e$,1(f\e(B)
1125 ("e" ?\e$,1(c\e(B)
1126 ("r" ?\e$,1(Z\e(B)
1127 ("t" ?\e$,1(U\e(B)
1128 ("y" ?\e$,1(]\e(B)
1129 ("u" ?\e$,1(S\e(B)
1130 ("i" ?\e$,1(h\e(B)
1131 ("o" ?\e$,1(~\e(B)
1132 ("p" ?\e$,1(W\e(B)
1133 ("[" ?\e$,1(e\e(B)
1134 ("]" ?')
1135 ("a" ?\e$,1(d\e(B)
1136 ("s" ?\e$,1(k\e(B)
1137 ("d" ?\e$,1(R\e(B)
1138 ("f" ?\e$,1(P\e(B)
1139 ("g" ?\e$,1(_\e(B)
1140 ("h" ?\e$,1(`\e(B)
1141 ("j" ?\e$,1(^\e(B)
1142 ("k" ?\e$,1([\e(B)
1143 ("l" ?\e$,1(T\e(B)
1144 (";" ?\e$,1(V\e(B)
1145 ("'" ?\e$,1(m\e(B)
1146 ("z" ?\e$,1(o\e(B)
1147 ("x" ?\e$,1(g\e(B)
1148 ("c" ?\e$,1(a\e(B)
1149 ("v" ?\e$,1(\\e(B)
1150 ("b" ?\e$,1(v\e(B)
1151 ("n" ?\e$,1(b\e(B)
1152 ("m" ?\e$,1(l\e(B)
1153 ("," ?\e$,1(Q\e(B)
1154 ("." ?\e$,1(n\e(B)
1155 ("/" ?.))
1156
1157 ;; From `Bulgarian-PHO.kmap for Yudit', Alexander Shopov
1158 ;; <al_shopov@web.bg>.
1159
1160 ;; Extra commentary and the indicator from an independent
1161 ;; (cyrillic-iso8859-5) implementation by Ognyan Kulev
1162 ;; <ogi@fmi.uni-sofia.bg> and name changes from Anton Zinoviev
1163 ;; <anton@lml.bas.bg>.
1164 (quail-define-package
1165 "bulgarian-phonetic" "Bulgarian" "\e$,1(6(1(D\e(B"
1166 nil
1167 "Bulgarian Phonetic keyboard layout, producing Unicode.
1168
1169 The layout is similar to `cyrillic-translit', but all Bulgarian
1170 characters are typed with a single key.
1171
1172 Use /& for \e,A'\e(B (Cyrillic paragraph) and /# for \e$,1uV\e(B.
1173
1174 The letters \e$,1(G\e(B, \e$,1(H\e(B, \e$,1(I\e(B and \e$,1(N\e(B are not affected by Caps Lock."
1175 nil t t t t nil nil nil nil nil t)
1176
1177 ;; \e$,1(G\e(B
1178 ;; \e$,1(O\e(B \e$,1(2\e(B \e$,1(5\e(B \e$,1(@\e(B \e$,1(B\e(B \e$,1(J\e(B \e$,1(C\e(B \e$,1(8\e(B \e$,1(>\e(B \e$,1(?\e(B \e$,1(H\e(B \e$,1(I\e(B
1179 ;; \e$,1(0\e(B \e$,1(A\e(B \e$,1(4\e(B \e$,1(D\e(B \e$,1(3\e(B \e$,1(E\e(B \e$,1(9\e(B \e$,1(:\e(B \e$,1(;\e(B \e$,1(N\e(B
1180 ;; \e$,1(7\e(B \e$,1(L\e(B \e$,1(F\e(B \e$,1(6\e(B \e$,1(1\e(B \e$,1(=\e(B \e$,1(<\e(B
1181
1182 (quail-define-rules
1183 ("/&" ?\e,A'\e(B)
1184 ("/#" ?\e$,1uV\e(B)
1185 ("A" ?\e$,1(0\e(B)
1186 ("B" ?\e$,1(1\e(B)
1187 ("W" ?\e$,1(2\e(B)
1188 ("G" ?\e$,1(3\e(B)
1189 ("D" ?\e$,1(4\e(B)
1190 ("E" ?\e$,1(5\e(B)
1191 ("V" ?\e$,1(6\e(B)
1192 ("Z" ?\e$,1(7\e(B)
1193 ("I" ?\e$,1(8\e(B)
1194 ("J" ?\e$,1(9\e(B)
1195 ("K" ?\e$,1(:\e(B)
1196 ("L" ?\e$,1(;\e(B)
1197 ("M" ?\e$,1(<\e(B)
1198 ("N" ?\e$,1(=\e(B)
1199 ("O" ?\e$,1(>\e(B)
1200 ("P" ?\e$,1(?\e(B)
1201 ("R" ?\e$,1(@\e(B)
1202 ("S" ?\e$,1(A\e(B)
1203 ("T" ?\e$,1(B\e(B)
1204 ("U" ?\e$,1(C\e(B)
1205 ("F" ?\e$,1(D\e(B)
1206 ("H" ?\e$,1(E\e(B)
1207 ("C" ?\e$,1(F\e(B)
1208 ("~" ?\e$,1(G\e(B)
1209 ("{" ?\e$,1(H\e(B)
1210 ("}" ?\e$,1(I\e(B)
1211 ("Y" ?\e$,1(J\e(B)
1212 ("X" ?\e$,1(L\e(B)
1213 ("|" ?\e$,1(N\e(B)
1214 ("Q" ?\e$,1(O\e(B)
1215 ("a" ?\e$,1(P\e(B)
1216 ("b" ?\e$,1(Q\e(B)
1217 ("w" ?\e$,1(R\e(B)
1218 ("g" ?\e$,1(S\e(B)
1219 ("d" ?\e$,1(T\e(B)
1220 ("e" ?\e$,1(U\e(B)
1221 ("v" ?\e$,1(V\e(B)
1222 ("z" ?\e$,1(W\e(B)
1223 ("i" ?\e$,1(X\e(B)
1224 ("j" ?\e$,1(Y\e(B)
1225 ("k" ?\e$,1(Z\e(B)
1226 ("l" ?\e$,1([\e(B)
1227 ("m" ?\e$,1(\\e(B)
1228 ("n" ?\e$,1(]\e(B)
1229 ("o" ?\e$,1(^\e(B)
1230 ("p" ?\e$,1(_\e(B)
1231 ("r" ?\e$,1(`\e(B)
1232 ("s" ?\e$,1(a\e(B)
1233 ("t" ?\e$,1(b\e(B)
1234 ("u" ?\e$,1(c\e(B)
1235 ("f" ?\e$,1(d\e(B)
1236 ("h" ?\e$,1(e\e(B)
1237 ("c" ?\e$,1(f\e(B)
1238 ("`" ?\e$,1(g\e(B)
1239 ("[" ?\e$,1(h\e(B)
1240 ("]" ?\e$,1(i\e(B)
1241 ("y" ?\e$,1(j\e(B)
1242 ("x" ?\e$,1(l\e(B)
1243 ("\\" ?\e$,1(n\e(B)
1244 ("q" ?\e$,1(o\e(B))
1245
1246 ;; Based on an implementation by Ognyan Kulev <ogi@fmi.uni-sofia.bg>.
1247 ;; This follows XKB bg.
1248
1249 (quail-define-package
1250 "bulgarian-bds" "Bulgarian" "\e$,1(1(4(A\e(B" nil
1251 "Bulgarian standard keyboard layout (BDS)
1252
1253 This keyboard layout is standard for Bulgarian typewriters.
1254
1255 The letters \e$,1(F\e(B, \e$,1(<\e(B, \e$,1(G\e(B, \e$,1(@\e(B, \e$,1(;\e(B, \e$,1(1\e(B and \e$,1(K\e(B are not affected by Caps Lock.
1256
1257 In addition to original Bulgarian typewriter layout, keys \\ and |
1258 are transformed into ' and \e$,1(K\e(B respectively. Some keyboards mark these
1259 keys as being transformed into ( and ) respectively. For ( and ), use
1260 ` and ~ respectively. This input method follows XKB."
1261 nil t t t t nil nil nil nil nil t)
1262
1263 ;; () 1! 2? 3+ 4" 5% 6= 7: 8/ 9_ 0\e$,1uV\e(B -I .V
1264 ;; ,\e$,1(k\e(B \e$,1(C\e(B \e$,1(5\e(B \e$,1(8\e(B \e$,1(H\e(B \e$,1(I\e(B \e$,1(:\e(B \e$,1(A\e(B \e$,1(4\e(B \e$,1(7\e(B \e$,1(F\e(B ;\e,A'\e(B
1265 ;; \e$,1(L\e(B \e$,1(O\e(B \e$,1(0\e(B \e$,1(>\e(B \e$,1(6\e(B \e$,1(3\e(B \e$,1(B\e(B \e$,1(=\e(B \e$,1(2\e(B \e$,1(<\e(B \e$,1(G\e(B '\e$,1(K\e(B
1266 ;; \e$,1(N\e(B \e$,1(9\e(B \e$,1(J\e(B \e$,1(M\e(B \e$,1(D\e(B \e$,1(E\e(B \e$,1(?\e(B \e$,1(@\e(B \e$,1(;\e(B \e$,1(1\e(B
1267
1268 (quail-define-rules
1269
1270 ("1" ?1) ("!" ?!)
1271 ("2" ?2) ("@" ??)
1272 ("3" ?3) ("#" ?+)
1273 ("4" ?4) ("$" ?\")
1274 ("5" ?5) ("%" ?%)
1275 ("6" ?6) ("^" ?=)
1276 ("7" ?7) ("&" ?:)
1277 ("8" ?8) ("*" ?/)
1278 ("9" ?9) ("(" ?_)
1279 ("0" ?0) (")" ?\e$,1uV\e(B)
1280 ("-" ?-) ("_" ?I)
1281 ("=" ?.) ("+" ?V)
1282
1283 ("q" ?,) ("Q" ?\e$,1(k\e(B)
1284 ("w" ?\e$,1(c\e(B) ("W" ?\e$,1(C\e(B)
1285 ("e" ?\e$,1(U\e(B) ("E" ?\e$,1(5\e(B)
1286 ("r" ?\e$,1(X\e(B) ("R" ?\e$,1(8\e(B)
1287 ("t" ?\e$,1(h\e(B) ("T" ?\e$,1(H\e(B)
1288 ("y" ?\e$,1(i\e(B) ("Y" ?\e$,1(I\e(B)
1289 ("u" ?\e$,1(Z\e(B) ("U" ?\e$,1(:\e(B)
1290 ("i" ?\e$,1(a\e(B) ("I" ?\e$,1(A\e(B)
1291 ("o" ?\e$,1(T\e(B) ("O" ?\e$,1(4\e(B)
1292 ("p" ?\e$,1(W\e(B) ("P" ?\e$,1(7\e(B)
1293 ("[" ?\e$,1(f\e(B) ("{" ?\e$,1(F\e(B)
1294 ("]" ?\;) ("}" ?\e,A'\e(B)
1295
1296 ("a" ?\e$,1(l\e(B) ("A" ?\e$,1(L\e(B)
1297 ("s" ?\e$,1(o\e(B) ("S" ?\e$,1(O\e(B)
1298 ("d" ?\e$,1(P\e(B) ("D" ?\e$,1(0\e(B)
1299 ("f" ?\e$,1(^\e(B) ("F" ?\e$,1(>\e(B)
1300 ("g" ?\e$,1(V\e(B) ("G" ?\e$,1(6\e(B)
1301 ("h" ?\e$,1(S\e(B) ("H" ?\e$,1(3\e(B)
1302 ("j" ?\e$,1(b\e(B) ("J" ?\e$,1(B\e(B)
1303 ("k" ?\e$,1(]\e(B) ("K" ?\e$,1(=\e(B)
1304 ("l" ?\e$,1(R\e(B) ("L" ?\e$,1(2\e(B)
1305 (";" ?\e$,1(\\e(B) (":" ?\e$,1(<\e(B)
1306 ("'" ?\e$,1(g\e(B) ("\"" ?\e$,1(G\e(B)
1307 ("`" ?\() ("~" ?\))
1308
1309 ("z" ?\e$,1(n\e(B) ("Z" ?\e$,1(N\e(B)
1310 ("x" ?\e$,1(Y\e(B) ("X" ?\e$,1(9\e(B)
1311 ("c" ?\e$,1(j\e(B) ("C" ?\e$,1(J\e(B)
1312 ("v" ?\e$,1(m\e(B) ("V" ?\e$,1(M\e(B)
1313 ("b" ?\e$,1(d\e(B) ("B" ?\e$,1(D\e(B)
1314 ("n" ?\e$,1(e\e(B) ("N" ?\e$,1(E\e(B)
1315 ("m" ?\e$,1(_\e(B) ("M" ?\e$,1(?\e(B)
1316 ("," ?\e$,1(`\e(B) ("<" ?\e$,1(@\e(B)
1317 ("." ?\e$,1([\e(B) (">" ?\e$,1(;\e(B)
1318 ("/" ?\e$,1(Q\e(B) ("?" ?\e$,1(1\e(B)
1319 ("\\" ?') ("|" ?\e$,1(K\e(B))
1320
1321 ;; Local Variables:
1322 ;; coding: iso-2022-7bit
1323 ;; End:
1324
1325 ;;; arch-tag: e6d34b16-8710-4181-a17e-819a1df0334f
1326 ;;; cyrillic.el ends here