;;; cyrillic.el --- Quail package for inputting Cyrillic characters ;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ;; Free Software Foundation, Inc. ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ;; 2006, 2007, 2008 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 ;; Author: TAKAHASHI Naoto ;; Keywords: multilingual, input method, Cyrillic, i18n ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;;; Commentary: ;; These methods use a mixture of 8859-5 and Unicode. Quail, used ;; with ucs-tables provides suport for translating on the fly to ;; what's appropriate for aa buffer's file coding system, so the ;; encoding shouldn't matter too much provided it supports the ;; necessary characters. ;;; Code: (require 'quail) ;; This was `cyrillic-jcuken'. Alexander Mikhailian ;; says: "cyrillic-jcuken" is actually ;; russian. It is ok but a bit outdated. This layout has been used ;; in typewriters for ages but it has been superceeded on desktops by ;; a variation of this layout, implemented in M$ Windows software. ;; The Windows layout is greatly preferred because of the comma and ;; period being placed more conviniently and, of course, because of ;; the popularity of Windows software. This layout is a common option ;; in X Windows and console layouts for GNU/Linux. [See ;; `russian-computer' below.] (quail-define-package "russian-typewriter" "Russian" ",L69(B" nil ",L9FC:5=(B Russian typewriter layout (ISO 8859-5 encoding)." nil t t t t nil nil nil nil nil t) ;; 1! 2" 3' 4* 5: 6, 7. 8; 9( 0) -_ =+ ,L!(B ;; ,L9(B ,LF(B ,LC(B ,L:(B ,L5(B ,L=(B ,L3(B ,LH(B ,LI(B ,L7(B ,LE(B ,LJ(B ;; ,LD(B ,LK(B ,L2(B ,L0(B ,L?(B ,L@(B ,L>(B ,L;(B ,L4(B ,L6(B ,LM(B ;; ,LO(B ,LG(B ,LA(B ,L<(B ,L8(B ,LB(B ,LL(B ,L1(B ,LN(B /? (quail-define-rules ("1" ?1) ("2" ?2) ("3" ?3) ("4" ?4) ("5" ?5) ("6" ?6) ("7" ?7) ("8" ?8) ("9" ?9) ("0" ?0) ("-" ?-) ("=" ?=) ("`" ?,Lq(B) ("q" ?,LY(B) ("w" ?,Lf(B) ("e" ?,Lc(B) ("r" ?,LZ(B) ("t" ?,LU(B) ("y" ?,L](B) ("u" ?,LS(B) ("i" ?,Lh(B) ("o" ?,Li(B) ("p" ?,LW(B) ("[" ?,Le(B) ("]" ?,Lj(B) ("a" ?,Ld(B) ("s" ?,Lk(B) ("d" ?,LR(B) ("f" ?,LP(B) ("g" ?,L_(B) ("h" ?,L`(B) ("j" ?,L^(B) ("k" ?,L[(B) ("l" ?,LT(B) (";" ?,LV(B) ("'" ?,Lm(B) ("\\" ?\\) ("z" ?,Lo(B) ("x" ?,Lg(B) ("c" ?,La(B) ("v" ?,L\(B) ("b" ?,LX(B) ("n" ?,Lb(B) ("m" ?,Ll(B) ("," ?,LQ(B) ("." ?,Ln(B) ("/" ?/) ("!" ?!) ("@" ?\") ("#" ?') ("$" ?*) ("%" ?:) ("^" ?,) ("&" ?.) ("*" ?\;) ("(" ?\() (")" ?\)) ("_" ?_) ("+" ?+) ("~" ?,L!(B) ("Q" ?,L9(B) ("W" ?,LF(B) ("E" ?,LC(B) ("R" ?,L:(B) ("T" ?,L5(B) ("Y" ?,L=(B) ("U" ?,L3(B) ("I" ?,LH(B) ("O" ?,LI(B) ("P" ?,L7(B) ("{" ?,LE(B) ("}" ?,LJ(B) ("A" ?,LD(B) ("S" ?,LK(B) ("D" ?,L2(B) ("F" ?,L0(B) ("G" ?,L?(B) ("H" ?,L@(B) ("J" ?,L>(B) ("K" ?,L;(B) ("L" ?,L4(B) (":" ?,L6(B) ("\"" ?,LM(B) ("|" ?|) ("Z" ?,LO(B) ("X" ?,LG(B) ("C" ?,LA(B) ("V" ?,L<(B) ("B" ?,L8(B) ("N" ?,LB(B) ("M" ?,LL(B) ("<" ?,L1(B) (">" ?,LN(B) ("?" ??) ) ;; Maintain the obsolete name for now. (push (cons "cyrillic-jcuken" (cdr (assoc "russian-typewriter" quail-package-alist))) quail-package-alist) ;; This needs to be seen by quail-update-leim-list-file, but cannot be ;; commented out because quail-update-leim-list-file ignores ;; commented-out lines. (if nil (quail-define-package "cyrillic-jcuken" "Russian" ",L69(B" nil ",L9FC:5=(B Russian typewriter layout (ISO 8859-5 encoding).")) ;; See comment above. This is the variant `winkeys' from `ru' in XKB. (quail-define-package "russian-computer" "Russian" "RU" nil ",L9FC:5=(B Russian computer layout" nil t t t t nil nil nil nil nil t) ;; 1! 2" 3,Lp(B 4; 5% 6: 7? 8* 9( 0) -_ =+ ,Lq!(B ;; ,L9(B ,LF(B ,LC(B ,L:(B ,L5(B ,L=(B ,L3(B ,LH(B ,LI(B ,L7(B ,LE(B ,LJ(B ;; ,LD(B ,LK(B ,L2(B ,L0(B ,L?(B ,L@(B ,L>(B ,L;(B ,L4(B ,L6(B ,LM(B ;; ,LO(B ,LG(B ,LA(B ,L<(B ,L8(B ,LB(B ,LL(B ,L1(B ,LN(B ., (quail-define-rules ("1" ?1) ("2" ?2) ("3" ?3) ("4" ?4) ("5" ?5) ("6" ?6) ("7" ?7) ("8" ?8) ("9" ?9) ("0" ?0) ("-" ?-) ("=" ?=) ("`" ?,Lq(B) ("q" ?,LY(B) ("w" ?,Lf(B) ("e" ?,Lc(B) ("r" ?,LZ(B) ("t" ?,LU(B) ("y" ?,L](B) ("u" ?,LS(B) ("i" ?,Lh(B) ("o" ?,Li(B) ("p" ?,LW(B) ("[" ?,Le(B) ("]" ?,Lj(B) ("a" ?,Ld(B) ("s" ?,Lk(B) ("d" ?,LR(B) ("f" ?,LP(B) ("g" ?,L_(B) ("h" ?,L`(B) ("j" ?,L^(B) ("k" ?,L[(B) ("l" ?,LT(B) (";" ?,LV(B) ("'" ?,Lm(B) ("\\" ?\\) ("z" ?,Lo(B) ("x" ?,Lg(B) ("c" ?,La(B) ("v" ?,L\(B) ("b" ?,LX(B) ("n" ?,Lb(B) ("m" ?,Ll(B) ("," ?,LQ(B) ("." ?,Ln(B) ("/" ?.) ("!" ?!) ("@" ?\") ("#" ?,Lp(B) ("$" ?\;) ("%" ?%) ("^" ?:) ("&" ??) ("*" ?*) ("(" ?() (")" ?)) ("_" ?_) ("+" ?+) ("~" ?,L!(B) ("Q" ?,L9(B) ("W" ?,LF(B) ("E" ?,LC(B) ("R" ?,L:(B) ("T" ?,L5(B) ("Y" ?,L=(B) ("U" ?,L3(B) ("I" ?,LH(B) ("O" ?,LI(B) ("P" ?,L7(B) ("{" ?,LE(B) ("}" ?,LJ(B) ("A" ?,LD(B) ("S" ?,LK(B) ("D" ?,L2(B) ("F" ?,L0(B) ("G" ?,L?(B) ("H" ?,L@(B) ("J" ?,L>(B) ("K" ?,L;(B) ("L" ?,L4(B) (":" ?,L6(B) ("\"" ?,LM(B) ("|" ?|) ("Z" ?,LO(B) ("X" ?,LG(B) ("C" ?,LA(B) ("V" ?,L<(B) ("B" ?,L8(B) ("N" ?,LB(B) ("M" ?,LL(B) ("<" ?,L1(B) (">" ?,LN(B) ("?" ?,)) ;; Mikhailian couldn't check the next two. ;; This seems to have the same layout for letters as mk in XKB, but at ;; least the top row is different. (quail-define-package "cyrillic-macedonian" "Cyrillic" ",L6(BM" nil ",L)*5@B7(B-,L#,(B keyboard layout based on JUS.I.K1.004" nil t t t t nil nil nil nil nil t) ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <> ;; ,L)(B ,L*(B ,L5(B ,L@(B ,LB(B ,L7(B ,LC(B ,L8(B ,L>(B ,L?(B ,LH(B ,L#(B ;; ,L0(B ,LA(B ,L4(B ,LD(B ,L3(B ,LE(B ,L((B ,L:(B ,L;(B ,LG(B ,L,(B ,L6(B ;; ,L%(B ,L/(B ,LF(B ,L2(B ,L1(B ,L=(B ,L<(B ,; .: -_ (quail-define-rules ("1" ?1) ("2" ?2) ("3" ?3) ("4" ?4) ("5" ?5) ("6" ?6) ("7" ?7) ("8" ?8) ("9" ?9) ("0" ?0) ("-" ?/) ("=" ?+) ("`" ?<) ("q" ?,Ly(B) ("w" ?,Lz(B) ("e" ?,LU(B) ("r" ?,L`(B) ("t" ?,Lb(B) ("y" ?,LW(B) ("u" ?,Lc(B) ("i" ?,LX(B) ("o" ?,L^(B) ("p" ?,L_(B) ("[" ?,Lh(B) ("]" ?,Ls(B) ("a" ?,LP(B) ("s" ?,La(B) ("d" ?,LT(B) ("f" ?,Ld(B) ("g" ?,LS(B) ("h" ?,Le(B) ("j" ?,Lx(B) ("k" ?,LZ(B) ("l" ?,L[(B) (";" ?,Lg(B) ("'" ?,L|(B) ("\\" ?,LV(B) ("z" ?,Lu(B) ("x" ?,L(B) ("c" ?,Lf(B) ("v" ?,LR(B) ("b" ?,LQ(B) ("n" ?,L](B) ("m" ?,L\(B) ("," ?,) ("." ?.) ("/" ?-) ("!" ?!) ("@" ?\") ("#" ?#) ("$" ?$) ("%" ?%) ("^" ?&) ("&" ?') ("*" ?\() ("(" ?\)) (")" ?=) ("_" ??) ("+" ?*) ("~" ?>) ("Q" ?,L)(B) ("W" ?,L*(B) ("E" ?,L5(B) ("R" ?,L@(B) ("T" ?,LB(B) ("Y" ?,L7(B) ("U" ?,LC(B) ("I" ?,L8(B) ("O" ?,L>(B) ("P" ?,L?(B) ("{" ?,LH(B) ("}" ?,L#(B) ("A" ?,L0(B) ("S" ?,LA(B) ("D" ?,L4(B) ("F" ?,LD(B) ("G" ?,L3(B) ("H" ?,LE(B) ("J" ?,L((B) ("K" ?,L:(B) ("L" ?,L;(B) (":" ?,LG(B) ("\"" ?,L,(B) ("|" ?,L6(B) ("Z" ?,L%(B) ("X" ?,L/(B) ("C" ?,LF(B) ("V" ?,L2(B) ("B" ?,L1(B) ("N" ?,L=(B) ("M" ?,L<(B) ("<" ?\;) (">" ?:) ("?" ?_)) ;; (quail-define-package "cyrillic-serbian" "Cyrillic" ",L6(BS" nil ",L)*5@B7(B-,L"+(B keyboard layout based on JUS.I.K1.005" nil t t t t nil nil nil nil nil t) ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <> ;; ,L)(B ,L*(B ,L5(B ,L@(B ,LB(B ,L7(B ,LC(B ,L8(B ,L>(B ,L?(B ,LH(B ,L"(B ;; ,L0(B ,LA(B ,L4(B ,LD(B ,L3(B ,LE(B ,L((B ,L:(B ,L;(B ,LG(B ,L+(B ,L6(B ;; ,L%(B ,L/(B ,LF(B ,L2(B ,L1(B ,L=(B ,L<(B ,; .: -_ (quail-define-rules ("1" ?1) ("2" ?2) ("3" ?3) ("4" ?4) ("5" ?5) ("6" ?6) ("7" ?7) ("8" ?8) ("9" ?9) ("0" ?0) ("-" ?/) ("=" ?+) ("`" ?<) ("q" ?,Ly(B) ("w" ?,Lz(B) ("e" ?,LU(B) ("r" ?,L`(B) ("t" ?,Lb(B) ("y" ?,LW(B) ("u" ?,Lc(B) ("i" ?,LX(B) ("o" ?,L^(B) ("p" ?,L_(B) ("[" ?,Lh(B) ("]" ?,Lr(B) ("a" ?,LP(B) ("s" ?,La(B) ("d" ?,LT(B) ("f" ?,Ld(B) ("g" ?,LS(B) ("h" ?,Le(B) ("j" ?,Lx(B) ("k" ?,LZ(B) ("l" ?,L[(B) (";" ?,Lg(B) ("'" ?,L{(B) ("\\" ?,LV(B) ("z" ?,Lu(B) ("x" ?,L(B) ("c" ?,Lf(B) ("v" ?,LR(B) ("b" ?,LQ(B) ("n" ?,L](B) ("m" ?,L\(B) ("," ?,) ("." ?.) ("/" ?-) ("!" ?!) ("@" ?\") ("#" ?#) ("$" ?$) ("%" ?%) ("^" ?&) ("&" ?') ("*" ?\() ("(" ?\)) (")" ?=) ("_" ??) ("+" ?*) ("~" ?>) ("Q" ?,L)(B) ("W" ?,L*(B) ("E" ?,L5(B) ("R" ?,L@(B) ("T" ?,LB(B) ("Y" ?,L7(B) ("U" ?,LC(B) ("I" ?,L8(B) ("O" ?,L>(B) ("P" ?,L?(B) ("{" ?,LH(B) ("}" ?,L"(B) ("A" ?,L0(B) ("S" ?,LA(B) ("D" ?,L4(B) ("F" ?,LD(B) ("G" ?,L3(B) ("H" ?,LE(B) ("J" ?,L((B) ("K" ?,L:(B) ("L" ?,L;(B) (":" ?,LG(B) ("\"" ?,L+(B) ("|" ?,L6(B) ("Z" ?,L%(B) ("X" ?,L/(B) ("C" ?,LF(B) ("V" ?,L2(B) ("B" ?,L1(B) ("N" ?,L=(B) ("M" ?,L<(B) ("<" ?\;) (">" ?:) ("?" ?_)) ;; ;; Alexander Mikhailian comments: ;; Having worked for several years as a Belarusian linguist, I still ;; can not find the origin of this layout which BTW does include ;; several characters that are not present in Belarusian and does not ;; include a few ones that do exist in Belarusian. Besides, the typo ;; in the name of this layout speaks for itself since Belarusian has ;; an outdated version of spelling which is "Byelorussian" and not ;; "beylorussian". I suggest that you just remove this layout. ;; [`derived from JUS.I.K1' according to an old Mule note -- fx] ;; (quail-define-package ;; "cyrillic-beylorussian" "Belarussian" ",L6(BB" nil ;; ",L)*5@B7(B-,L&.(B BEYLORUSSIAN (ISO 8859-5 encoding)" ;; nil t t t t nil nil nil nil nil t) ;; ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <> ;; ;; ,L)(B ,L*(B ,L5(B ,L@(B ,LB(B ,L7(B ,LC(B ,L8(B ,L>(B ,L?(B ,LH(B ,L&(B ;; ;; ,L0(B ,LA(B ,L4(B ,LD(B ,L3(B ,LE(B ,L((B ,L:(B ,L;(B ,LG(B ,L.(B ,L6(B ;; ;; ,L%(B ,L/(B ,LF(B ,L2(B ,L1(B ,L=(B ,L<(B ,; .: -_ ;; (quail-define-rules ;; ("-" ?/) ;; ("=" ?+) ;; ("`" ?<) ;; ("q" ?,Ly(B) ;; ("w" ?,Lz(B) ;; ("e" ?,LU(B) ;; ("r" ?,L`(B) ;; ("t" ?,Lb(B) ;; ("y" ?,LW(B) ;; ("u" ?,Lc(B) ;; ("i" ?,LX(B) ;; ("o" ?,L^(B) ;; ("p" ?,L_(B) ;; ("[" ?,Lh(B) ;; ("]" ?,Lv(B) ;; ("a" ?,LP(B) ;; ("s" ?,La(B) ;; ("d" ?,LT(B) ;; ("f" ?,Ld(B) ;; ("g" ?,LS(B) ;; ("h" ?,Le(B) ;; ("j" ?,Lx(B) ;; ("k" ?,LZ(B) ;; ("l" ?,L[(B) ;; (";" ?,Lg(B) ;; ("'" ?,L~(B) ;; ("\\" ?,LV(B) ;; ("z" ?,Lu(B) ;; ("x" ?,L(B) ;; ("c" ?,Lf(B) ;; ("v" ?,LR(B) ;; ("b" ?,LQ(B) ;; ("n" ?,L](B) ;; ("m" ?,L\(B) ;; ("/" ?-) ;; ("@" ?\") ;; ("^" ?&) ;; ("&" ?') ;; ("*" ?\() ;; ("(" ?\)) ;; (")" ?=) ;; ("_" ??) ;; ("+" ?*) ;; ("~" ?>) ;; ("Q" ?,L)(B) ;; ("W" ?,L*(B) ;; ("E" ?,L5(B) ;; ("R" ?,L@(B) ;; ("T" ?,LB(B) ;; ("Y" ?,L7(B) ;; ("U" ?,LC(B) ;; ("I" ?,L8(B) ;; ("O" ?,L>(B) ;; ("P" ?,L?(B) ;; ("{" ?,LH(B) ;; ("}" ?,L&(B) ;; ("A" ?,L0(B) ;; ("S" ?,LA(B) ;; ("D" ?,L4(B) ;; ("F" ?,LD(B) ;; ("G" ?,L3(B) ;; ("H" ?,LE(B) ;; ("J" ?,L((B) ;; ("K" ?,L:(B) ;; ("L" ?,L;(B) ;; (":" ?,LG(B) ;; ("\"" ?,L.(B) ;; ("|" ?,L6(B) ;; ("Z" ?,L%(B) ;; ("X" ?,L/(B) ;; ("C" ?,LF(B) ;; ("V" ?,L2(B) ;; ("B" ?,L1(B) ;; ("N" ?,L=(B) ;; ("M" ?,L<(B) ;; ("<" ?\;) ;; (">" ?:) ;; ("?" ?_)) ;; ;; Alexander Mikhailian reports the opinion of fellow Ukrainian ;; linguist Bogdan Babych : ;; He had seen this layout on some oldish systems but that the vast ;; majority of the population uses a modified version of the M$ Windows ;; layout. In fact, Microsoft shipped for a while a layout that was lacking ;; two characters, precisely the "GHE_WITH_UPTURN" and the apostrophe. The ;; latest versions of Windows software do have the "GHE_WITH_UPTURN" in the ;; ukrainian keyborad layout but the apostrophe is still not there, whereas ;; there is one letter, "Cyrillic_YO", not used in ukrainian. Ukrainians ;; normally replace the "Cyrillic_YO" by the apostrophe sign and live ;; happily with this little change. [See "ukrainian-computer" below.] ;; Fixme: add GHE_WITH_UPTURN. (quail-define-package "cyrillic-ukrainian" "Ukrainian" ",L6(BU" nil ",L$'5@B7(B-,L&.(B UKRAINIAN Sorry, but 'ghe with upturn' is not included in ISO 8859-5." nil t t t t nil nil nil nil nil t) ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <> ;; ,L$(B ,L'(B ,L5(B ,L@(B ,LB(B ,L7(B ,LC(B ,L8(B ,L>(B ,L?(B ,LH(B ,L&(B ;; ,L0(B ,LA(B ,L4(B ,LD(B ,L3(B ,LE(B ,L((B ,L:(B ,L;(B ,LG(B ,L.(B ,L6(B ;; ,L%(B ,L/(B ,LF(B ,L2(B ,L1(B ,L=(B ,L<(B ,; .: -_ (quail-define-rules ("1" ?1) ("2" ?2) ("3" ?3) ("4" ?4) ("5" ?5) ("6" ?6) ("7" ?7) ("8" ?8) ("9" ?9) ("0" ?0) ("-" ?/) ("=" ?+) ("`" ?<) ("q" ?,Lt(B) ("w" ?,Lw(B) ("e" ?,LU(B) ("r" ?,L`(B) ("t" ?,Lb(B) ("y" ?,LW(B) ("u" ?,Lc(B) ("i" ?,LX(B) ("o" ?,L^(B) ("p" ?,L_(B) ("[" ?,Lh(B) ("]" ?,Lv(B) ("a" ?,LP(B) ("s" ?,La(B) ("d" ?,LT(B) ("f" ?,Ld(B) ("g" ?,LS(B) ("h" ?,Le(B) ("j" ?,Lx(B) ("k" ?,LZ(B) ("l" ?,L[(B) (";" ?,Lg(B) ("'" ?,L~(B) ("\\" ?,LV(B) ("z" ?,Lu(B) ("x" ?,L(B) ("c" ?,Lf(B) ("v" ?,LR(B) ("b" ?,LQ(B) ("n" ?,L](B) ("m" ?,L\(B) ("," ?,) ("." ?.) ("/" ?-) ("!" ?!) ("@" ?\") ("#" ?#) ("$" ?$) ("%" ?%) ("^" ?&) ("&" ?') ("*" ?\() ("(" ?\)) (")" ?=) ("_" ??) ("+" ?*) ("~" ?>) ("Q" ?,L$(B) ("W" ?,L'(B) ("E" ?,L5(B) ("R" ?,L@(B) ("T" ?,LB(B) ("Y" ?,L7(B) ("U" ?,LC(B) ("I" ?,L8(B) ("O" ?,L>(B) ("P" ?,L?(B) ("{" ?,LH(B) ("}" ?,L&(B) ("A" ?,L0(B) ("S" ?,LA(B) ("D" ?,L4(B) ("F" ?,LD(B) ("G" ?,L3(B) ("H" ?,LE(B) ("J" ?,L((B) ("K" ?,L:(B) ("L" ?,L;(B) (":" ?,LG(B) ("\"" ?,L.(B) ("|" ?,L6(B) ("Z" ?,L%(B) ("X" ?,L/(B) ("C" ?,LF(B) ("V" ?,L2(B) ("B" ?,L1(B) ("N" ?,L=(B) ("M" ?,L<(B) ("<" ?\;) (">" ?:) ("?" ?_)) (quail-define-package "ukrainian-computer" "Ukrainian" "UK" nil "$,1(9(F(C(:(5(=(B Ukrainian (Unicode-based for use with KOI8-U encoding)." nil t t t t nil nil nil nil nil t) ;; ' 1! 2" 3$,1uV(B 4; 5% 6: 7? 8* 9( 0) -_ =+ ;; $,1(9(B $,1(F(B $,1(C(B $,1(:(B $,1(5(B $,1(=(B $,1(3(B $,1(H(B $,1(I(B $,1(7(B $,1(E(B $,1('(B ;; $,1(D(B $,1(&(B $,1(2(B $,1(0(B $,1(?(B $,1(@(B $,1(>(B $,1(;(B $,1(4(B $,1(6(B $,1($(B $,1)P(B ;; $,1(O(B $,1(G(B $,1(A(B $,1(<(B $,1(8(B $,1(B(B $,1(L(B $,1(1(B $,1(N(B ., (quail-define-rules ("1" ?1) ("2" ?2) ("3" ?3) ("4" ?4) ("5" ?5) ("6" ?6) ("7" ?7) ("8" ?8) ("9" ?9) ("0" ?0) ("-" ?-) ("=" ?=) ("`" ?') ("q" ?$,1(Y(B) ("w" ?$,1(f(B) ("e" ?$,1(c(B) ("r" ?$,1(Z(B) ("t" ?$,1(U(B) ("y" ?$,1(](B) ("u" ?$,1(S(B) ("i" ?$,1(h(B) ("o" ?$,1(i(B) ("p" ?$,1(W(B) ("[" ?$,1(e(B) ("]" ?$,1(w(B) ("a" ?$,1(d(B) ("s" ?$,1(v(B) ("d" ?$,1(R(B) ("f" ?$,1(P(B) ("g" ?$,1(_(B) ("h" ?$,1(`(B) ("j" ?$,1(^(B) ("k" ?$,1([(B) ("l" ?$,1(T(B) (";" ?$,1(V(B) ("'" ?$,1(t(B) ("z" ?$,1(o(B) ("x" ?$,1(g(B) ("c" ?$,1(a(B) ("v" ?$,1(\(B) ("b" ?$,1(X(B) ("n" ?$,1(b(B) ("m" ?$,1(l(B) ("," ?$,1(Q(B) ("." ?$,1(n(B) ("/" ?.) ("!" ?!) ("@" ?\") ("#" ?$,1uV(B) ("$" ?\;) ("%" ?%) ("^" ?:) ("&" ??) ("*" ?*) ("(" ?() (")" ?)) ("_" ?_) ("+" ?+) ("~" ?') ("Q" ?$,1(9(B) ("W" ?$,1(F(B) ("E" ?$,1(C(B) ("R" ?$,1(:(B) ("T" ?$,1(5(B) ("Y" ?$,1(=(B) ("U" ?$,1(3(B) ("I" ?$,1(H(B) ("O" ?$,1(I(B) ("P" ?$,1(7(B) ("{" ?$,1(E(B) ("}" ?$,1('(B) ("A" ?$,1(D(B) ("S" ?$,1(&(B) ("D" ?$,1(2(B) ("F" ?$,1(0(B) ("G" ?$,1(?(B) ("H" ?$,1(@(B) ("J" ?$,1(>(B) ("K" ?$,1(;(B) ("L" ?$,1(4(B) (":" ?$,1(6(B) ("\"" ?$,1($(B) ("Z" ?$,1(O(B) ("X" ?$,1(G(B) ("C" ?$,1(A(B) ("V" ?$,1(<(B) ("B" ?$,1(8(B) ("N" ?$,1(B(B) ("M" ?$,1(L(B) ("<" ?$,1(1(B) (">" ?$,1(N(B) ("?" ?,) ("\\" ?$,1)Q(B) ("|" ?$,1)P(B)) ;; ;; Alexander Mikhailian says this is of limited use. It has been ;; popular among emigrants or foreigners who have to type in Cyrillic ;; (mostly Russian) from time to time. (quail-define-package "cyrillic-yawerty" "Cyrillic" ",L6O(B" nil ",LO25@BK(B Roman transcription This layout is based on Roman transcription by phonemic resemblance. When preceded by a '/', the second and the third rows (number key row) change as follows. keytop | Q W E R T Y U I O P A S D --------+--------------------------------------- input | ,L"(B ,L#(B ,L$(B ,L%(B ,L&(B ,L'(B ,L((B ,L)(B ,L*(B ,L+(B ,L,(B ,L.(B ,L/(B" nil t t t t nil nil nil nil nil t) ;; 1! 2,Lq(B 3,Lj(B 4,L!(B 5% 6^ 7& 8* 9( 0) -_ ,LG(B ,LN(B ;; ,LO(B ,L2(B ,L5(B ,L@(B ,LB(B ,LK(B ,LC(B ,L8(B ,L>(B ,L?(B ,LH(B ,LI(B ;; ,L0(B ,LA(B ,L4(B ,LD(B ,L3(B ,LE(B ,L9(B ,L:(B ,L;(B ;: '" ,LM(B ;; ,L7(B ,LL(B ,LF(B ,L6(B ,L1(B ,L=(B ,L<(B ,< .> /? ;; 1! 2,Lq(B 3,Lj(B 4,L!(B 5% 6^ 7& 8* 9( 0) -_ ,LG(B ,LN(B ;; ,L"(B ,L#(B ,L$(B ,L%(B ,L&(B ,L'(B ,L((B ,L)(B ,L*(B ,L+(B ,LH(B ,LI(B ;; ,L,(B ,L.(B ,L/(B ,LD(B ,L3(B ,LE(B ,L9(B ,L:(B ,L;(B ;: '" ,LM(B ;; ,L7(B ,LL(B ,LF(B ,L6(B ,L1(B ,L=(B ,L<(B ,< .> /? (quail-define-rules ("1" ?1) ("2" ?2) ("3" ?3) ("4" ?4) ("5" ?5) ("6" ?6) ("7" ?7) ("8" ?8) ("9" ?9) ("0" ?0) ("-" ?-) ("=" ?,Lg(B) ("`" ?,Ln(B) ("q" ?,Lo(B) ("w" ?,LR(B) ("e" ?,LU(B) ("r" ?,L`(B) ("t" ?,Lb(B) ("y" ?,Lk(B) ("u" ?,Lc(B) ("i" ?,LX(B) ("o" ?,L^(B) ("p" ?,L_(B) ("[" ?,Lh(B) ("]" ?,Li(B) ("a" ?,LP(B) ("s" ?,La(B) ("d" ?,LT(B) ("f" ?,Ld(B) ("g" ?,LS(B) ("h" ?,Le(B) ("j" ?,LY(B) ("k" ?,LZ(B) ("l" ?,L[(B) (";" ?\;) ("'" ?') ("\\" ?,Lm(B) ("z" ?,LW(B) ("x" ?,Ll(B) ("c" ?,Lf(B) ("v" ?,LV(B) ("b" ?,LQ(B) ("n" ?,L](B) ("m" ?,L\(B) ("," ?,) ("." ?.) ("/" ?/) ("!" ?!) ("@" ?,Lq(B) ("#" ?,Lj(B) ("$" ?,L!(B) ("%" ?%) ("^" ?^) ("&" ?&) ("*" ?*) ("(" ?\() (")" ?\)) ("_" ?_) ("+" ?,LG(B) ("~" ?,LN(B) ("Q" ?,LO(B) ("W" ?,L2(B) ("E" ?,L5(B) ("R" ?,L@(B) ("T" ?,LB(B) ("Y" ?,LK(B) ("U" ?,LC(B) ("I" ?,L8(B) ("O" ?,L>(B) ("P" ?,L?(B) ("{" ?,LH(B) ("}" ?,LI(B) ("A" ?,L0(B) ("S" ?,LA(B) ("D" ?,L4(B) ("F" ?,LD(B) ("G" ?,L3(B) ("H" ?,LE(B) ("J" ?,L9(B) ("K" ?,L:(B) ("L" ?,L;(B) (":" ?:) ("\"" ?\") ("|" ?,LM(B) ("Z" ?,L7(B) ("X" ?,LL(B) ("C" ?,LF(B) ("V" ?,L6(B) ("B" ?,L1(B) ("N" ?,L=(B) ("M" ?,L<(B) ("<" ?<) (">" ?>) ("?" ??) ("/q" ?,Lr(B) ("/w" ?,Ls(B) ("/e" ?,Lt(B) ("/r" ?,Lu(B) ("/t" ?,Lv(B) ("/y" ?,Lw(B) ("/u" ?,Lx(B) ("/i" ?,Ly(B) ("/o" ?,Lz(B) ("/p" ?,L{(B) ("/a" ?,L|(B) ("/s" ?,L~(B) ("/d" ?,L(B) ("/Q" ?,L"(B) ("/W" ?,L#(B) ("/E" ?,L$(B) ("/R" ?,L%(B) ("/T" ?,L&(B) ("/Y" ?,L'(B) ("/U" ?,L((B) ("/I" ?,L)(B) ("/O" ?,L*(B) ("/P" ?,L+(B) ("/A" ?,L,(B) ("/S" ?,L.(B) ("/D" ?,L/(B)) ;; This was provided by Valery Alexeev . ;; Ognyan Kulev wrote: ;; I would suggest future `cyrillic-translit' to be with the ;; modification of `cyrillic-translit-bulgarian' applied and the ;; latter to disappear. It could be used by people who write ;; bulgarian e-mails with latin letters for kick start (phonetic input ;; method is not so obvious as translit input method but each letter ;; is one keypress and a *lot* of people know it). ;; Anton Zinoviev wrote: ;; I would say that the main idea for cyrillic-translit is to be ;; language-independent and universal. It should be able to generate all ;; Cyrillic symbols. (quail-define-package "cyrillic-translit" "Cyrillic" ",L6(Bt" t "Intuitively transliterated keyboard layout. Most convenient for entering Russian, but all Cyrillic characters are included. Should handle most cases. However: for ,Lf(B (TSE) use \"c\", never \"ts\" ,Li(B (SHCHA = Bulgarian SHT) = \"shch\", \"sj\", \"/sht\" or \"/t\", ,Lm(B (REVERSE ROUNDED E) = \"e'\" or \"e`\" ,Le(B (KHA) when after ,La(B (S) = \"x\" or \"kh\" ,Lj(B (HARD SIGN) = \"~\", ,LJ(B (CAPITAL HARD SIGN) = \"~~\", ,Ll(B (SOFT SIGN) = \"'\", ,LL(B (CAPITAL SOFT SIGN) = \"''\", ,Lo(B (YA) = \"ya\", \"ja\" or \"q\". 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 u f h=kh=x c ch sh shch=sj=/s=/sht ~ y ' e' yu=ju ya=ja=q Also included are Ukrainian ,Lt(B (YE) = \"/e\" and ,Lw(B (YI) = \"yi\", Belarusian ,L~(B (SHORT U) = \"u'\", Serbo-Croatian ,Lr(B (DJE) = \"/d\", ,L{(B (CHJE)= \"/ch\", Macedonian ,Ls(B (GJE) = \"/g\", ,Lu(B (DZE) = \"/s\", ,L|(B (KJE) = \"/k\", cyrillic ,Lv(B (I DECIMAL) = \"/i\", ,Lx(B (JE) = \"/j\", ,Ly(B (LJE) = \"/l\", ,Lz(B (NJE) = \"/n\" and ,L(B (DZE) =\"/z\"." nil t t t t nil nil nil nil nil t) (quail-define-rules ("a" ?,LP(B) ("a'" [",LP(B'"]) ("a`" [",LP$(O+\(B"]) ;; combining ("b" ?,LQ(B) ("v" ?,LR(B) ("w" ?,LR(B) ("g" ?,LS(B) ("d" ?,LT(B) ("e" ?,LU(B) ("je" ?,LU(B) ("e'" [",LU(B'"]) ("e`" [",LU$(O+\(B"]) ;; combining ("yo" ?,Lq(B) ("jo" ?,Lq(B) ("zh" ?,LV(B) ("z" ?,LW(B) ("i" ?,LX(B) ("i'" [",LX(B'"]) ("i`" [",LX(B`"]) ;; combining ("j" ?,LY(B) ("j'" ?,LY(B) ("j`" ?,LY(B) ("k" ?,LZ(B) ("l" ?,L[(B) ("m" ?,L\(B) ("n" ?,L](B) ("o" ?,L^(B) ("o'" [",L^(B'"]) ("o`" [",L^$(O+\(B"]) ;; combining ("p" ?,L_(B) ("r" ?,L`(B) ("s" ?,La(B) ("t" ?,Lb(B) ("u" ?,Lc(B) ("u'" [",Lc(B'"]) ("u`" [",Lc$(O+\(B"]) ;; combining ("f" ?,Ld(B) ("h" ?,Le(B) ("kh" ?,Le(B) ("c" ?,Lf(B) ("ch" ?,Lg(B) ("sh" ?,Lh(B) ("shch" ?,Li(B) ("sj" ?,Li(B) ("/sht" ?,Li(B) ("/t" ?,Li(B) ("~" ?,Lj(B) ("y" ?,Lk(B) ("x" ?,Le(B) ("'" ?,Ll(B) ("@" ?,Lm(B) ("yu" ?,Ln(B) ("ju" ?,Ln(B) ("ya" ?,Lo(B) ("ja" ?,Lo(B) ("q" ?,Lo(B) ("A" ?,L0(B) ("A'" [",L0(B'"]) ("A`" [",L0$(O+\(B"]) ;; COMBINING ("B" ?,L1(B) ("V" ?,L2(B) ("W" ?,L2(B) ("G" ?,L3(B) ("D" ?,L4(B) ("E" ?,L5(B) ("Je" ?,L5(B) ("JE" ?,L5(B) ("E'" [",L5(B'"]) ("E`" [",L5$(O+\(B"]) ;; COMBINING ("Yo" ?,L!(B) ("YO" ?,L!(B) ("Jo" ?,L!(B) ("JO" ?,L!(B) ("Zh" ?,L6(B) ("ZH" ?,L6(B) ("Z" ?,L7(B) ("I" ?,L8(B) ("I'" [",L8(B'"]) ("I`" [",L8(B`"]) ;; COMBINING ("J" ?,L9(B) ("J'" ?,L9(B) ("J`" ?,L9(B) ("K" ?,L:(B) ("L" ?,L;(B) ("M" ?,L<(B) ("N" ?,L=(B) ("O" ?,L>(B) ("O'" [",L>(B'"]) ("O`" [",L>$(O+\(B"]) ;; COMBINING ("P" ?,L?(B) ("R" ?,L@(B) ("S" ?,LA(B) ("T" ?,LB(B) ("U" ?,LC(B) ("U'" [",LC(B'"]) ("U`" [",LC$(O+\(B"]) ;; COMBINING ("F" ?,LD(B) ("H" ?,LE(B) ("Kh" ?,LE(B) ("KH" ?,LE(B) ("C" ?,LF(B) ("Ch" ?,LG(B) ("CH" ?,LG(B) ("Sh" ?,LH(B) ("SH" ?,LH(B) ("Shch" ?,LI(B) ("SHCH" ?,LI(B) ("Sj" ?,LI(B) ("SJ" ?,LI(B) ("/Sht" ?,LI(B) ("/SHT" ?,LI(B) ("/T" ?,LI(B) ("~~" ?,LJ(B) ("Y" ?,LK(B) ("X" ?,LE(B) ("''" ?,LL(B) ("@@" ?,LM(B) ("Yu" ?,LN(B) ("YU" ?,LN(B) ("Ju" ?,LN(B) ("JU" ?,LN(B) ("Ya" ?,LO(B) ("YA" ?,LO(B) ("Ja" ?,LO(B) ("JA" ?,LO(B) ("Q" ?,LO(B) ("/e" ?,Lt(B) ("yi" ?,Lw(B) ("u'" ?,L~(B) ("/d" ?,Lr(B) ("/ch" ?,L{(B) ("/g" ?,Ls(B) ("/s" ?,Lu(B) ("/k" ?,L|(B) ("/i" ?,Lv(B) ("/j" ?,Lx(B) ("/l" ?,Ly(B) ("/n" ?,Lz(B) ("/z" ?,L(B) ("/E" ?,L$(B) ("YE" ?,L$(B) ("Yi" ?,L'(B) ("YI" ?,L'(B) ("U'" ?,L.(B) ("/D" ?,L"(B) ("/Ch" ?,L+(B) ("/CH" ?,L+(B) ("/G" ?,L#(B) ("/S" ?,L%(B) ("/K" ?,L,(B) ("/I" ?,L&(B) ("/J" ?,L((B) ("/L" ?,L)(B) ("/N" ?,L*(B) ("/Z" ?,L/(B) ("/c" ?,A)(B) ("/tm" ?$(D"o(B) ("/reg" ?,A.(B) ("/eu" ?,b$(B) ("/ce" ?,A"(B) ;; fractions ("/78" ?$(C(~(B) ("/58" ?$(C(}(B) ("/38" ?$(C(|(B) ("/18" ?$(C({(B) ("/56" ?$,1v:(B) ("/16" ?$,1v9(B) ("/45" ?$,1v8(B) ("/35" ?$,1v7(B) ("/25" ?$,1v6(B) ("/15" ?$(O'z(B) ("/23" ?$(O'y(B) ("/13" ?$(O'x(B) ("/34" ?,A>(B) ("/12" ?,A=(B) ("/14" ?,A<(B) ;; Roman numerals, commonly used for months and section/subsection numbers ("/RI" ?$A"q(B) ("/RII" ?$A"r(B) ("/RIII" ?$A"s(B) ("/RIV" ?$A"t(B) ("/RV" ?$A"u(B) ("/RVI" ?$A"v(B) ("/RVII" ?$A"w(B) ("/RVIII" ?$A"x(B) ("/RIX" ?$A"y(B) ("/RX" ?$A"z(B) ("/RXI" ?$A"{(B) ("/RXII" ?$A"|(B) ("/ri" ?$(G&5(B) ("/rii" ?$(G&6(B) ("/riii" ?$(G&7(B) ("/riv" ?$(G&8(B) ("/rv" ?$(G&9(B) ("/rvi" ?$(G&:(B) ("/rvii" ?$(G&;(B) ("/rviii" ?$(G&<(B) ("/rix" ?$(G&=(B) ("/rx" ?$(G&>(B) ("/rxi" ?$(O,?(B) ("/rxii" ?$(O,@(B) ("/-" ?$(G!9(B) ("/--" ?$(G!7(B) ("/*" ?$(O#@(B) ("/." ?$,1s$(B) ;; ONE DOT LEADER ("/.." ?$(G!-(B) ;; TWO DOT LEADER ("/..." ?$A!-(B);; HORIZONTAL ELLIPSIS ("/''" ?,Y!(B) ("/'" ?,F"(B) ("/``" ?,Y4(B) ("/`" ?,F!(B) ("/,," ?,Y%(B) ("/," ?$,1rz(B) ("/&" ?,A'(B) ("/ab" ?,A'(B) ; _,LPQ(B_,LWPf(B ("/pa" ?,A'(B) ; _pa_ragraph ("/#" ?$,1uV(B) ("/no" ?$,1uV(B) ; _,L]^(B_,L\U`(B ("/<<" ?,A+(B) ("/>>" ?,A;(B) ) ;; Originally from Yudit's `Belarusian input table according to ;; STB955-94 belarusian standard' (not all) by Alexander Mikhailian ;; , subsequently amended by AM. (quail-define-package "belarusian" "Belarusian" "BE" nil "$,1(9(F(C(:(5(=(B keyboard layout registered as STB955-94 Belarusian standard. Unicode based." nil t t t t nil nil nil nil nil t) ;; $,1(q(!(B 1! 2" 3N 4; 5% 6: 7? 8* 9( 0) -_ =+ ;; $,1(9(B $,1(F(B $,1(C(B $,1(:(B $,1(5(B $,1(=(B $,1(3(B $,1(H(B $,1(.(B $,1(7(B $,1(E(B ' ;; $,1(D(B $,1(K(B $,1(2(B $,1(0(B $,1(?(B $,1(@(B $,1(>(B $,1(;(B $,1(4(B $,1(6(B $,1(M(B ;; $,1(O(B $,1(G(B $,1(A(B $,1(<(B $,1(&(B $,1(B(B $,1(L(B $,1(1(B $,1(N(B ., (quail-define-rules ("~" ?$,1(!(B) ("@" ?\") ("#" ?$,1uV(B) ("$" ?\;) ("%" ?%) ("^" ?:) ("&" ??) ("Q" ?$,1(9(B) ("W" ?$,1(F(B) ("E" ?$,1(C(B) ("R" ?$,1(:(B) ("T" ?$,1(5(B) ("Y" ?$,1(=(B) ("U" ?$,1(3(B) ("I" ?$,1(H(B) ("O" ?$,1(.(B) ("P" ?$,1(7(B) ("{" ?$,1(E(B) ("}" ?') ("A" ?$,1(D(B) ("S" ?$,1(K(B) ("D" ?$,1(2(B) ("F" ?$,1(0(B) ("G" ?$,1(?(B) ("H" ?$,1(@(B) ("J" ?$,1(>(B) ("K" ?$,1(;(B) ("L" ?$,1(4(B) (":" ?$,1(6(B) ("\"" ?$,1(M(B) ("|" ?|) ("Z" ?$,1(O(B) ("X" ?$,1(G(B) ("C" ?$,1(A(B) ("V" ?$,1(<(B) ("B" ?$,1(&(B) ("N" ?$,1(B(B) ("M" ?$,1(L(B) ("<" ?$,1(1(B) (">" ?$,1(N(B) ("?" ?,) ("`" ?$,1(q(B) ("q" ?$,1(Y(B) ("w" ?$,1(f(B) ("e" ?$,1(c(B) ("r" ?$,1(Z(B) ("t" ?$,1(U(B) ("y" ?$,1(](B) ("u" ?$,1(S(B) ("i" ?$,1(h(B) ("o" ?$,1(~(B) ("p" ?$,1(W(B) ("[" ?$,1(e(B) ("]" ?') ("a" ?$,1(d(B) ("s" ?$,1(k(B) ("d" ?$,1(R(B) ("f" ?$,1(P(B) ("g" ?$,1(_(B) ("h" ?$,1(`(B) ("j" ?$,1(^(B) ("k" ?$,1([(B) ("l" ?$,1(T(B) (";" ?$,1(V(B) ("'" ?$,1(m(B) ("z" ?$,1(o(B) ("x" ?$,1(g(B) ("c" ?$,1(a(B) ("v" ?$,1(\(B) ("b" ?$,1(v(B) ("n" ?$,1(b(B) ("m" ?$,1(l(B) ("," ?$,1(Q(B) ("." ?$,1(n(B) ("/" ?.)) ;; From `Bulgarian-PHO.kmap for Yudit', Alexander Shopov ;; . ;; Extra commentary and the indicator from an independent ;; (cyrillic-iso8859-5) implementation by Ognyan Kulev ;; and name changes from Anton Zinoviev ;; . (quail-define-package "bulgarian-phonetic" "Bulgarian" "$,1(6(1(D(B" nil "Bulgarian Phonetic keyboard layout, producing Unicode. The layout is similar to `cyrillic-translit', but all Bulgarian characters are typed with a single key. Use /& for ,A'(B (Cyrillic paragraph) and /# for $,1uV(B. The letters $,1(G(B, $,1(H(B, $,1(I(B and $,1(N(B are not affected by Caps Lock." nil t t t t nil nil nil nil nil t) ;; $,1(G(B ;; $,1(O(B $,1(2(B $,1(5(B $,1(@(B $,1(B(B $,1(J(B $,1(C(B $,1(8(B $,1(>(B $,1(?(B $,1(H(B $,1(I(B ;; $,1(0(B $,1(A(B $,1(4(B $,1(D(B $,1(3(B $,1(E(B $,1(9(B $,1(:(B $,1(;(B $,1(N(B ;; $,1(7(B $,1(L(B $,1(F(B $,1(6(B $,1(1(B $,1(=(B $,1(<(B (quail-define-rules ("/&" ?,A'(B) ("/#" ?$,1uV(B) ("A" ?$,1(0(B) ("B" ?$,1(1(B) ("W" ?$,1(2(B) ("G" ?$,1(3(B) ("D" ?$,1(4(B) ("E" ?$,1(5(B) ("V" ?$,1(6(B) ("Z" ?$,1(7(B) ("I" ?$,1(8(B) ("J" ?$,1(9(B) ("K" ?$,1(:(B) ("L" ?$,1(;(B) ("M" ?$,1(<(B) ("N" ?$,1(=(B) ("O" ?$,1(>(B) ("P" ?$,1(?(B) ("R" ?$,1(@(B) ("S" ?$,1(A(B) ("T" ?$,1(B(B) ("U" ?$,1(C(B) ("F" ?$,1(D(B) ("H" ?$,1(E(B) ("C" ?$,1(F(B) ("~" ?$,1(G(B) ("{" ?$,1(H(B) ("}" ?$,1(I(B) ("Y" ?$,1(J(B) ("X" ?$,1(L(B) ("|" ?$,1(N(B) ("Q" ?$,1(O(B) ("a" ?$,1(P(B) ("b" ?$,1(Q(B) ("w" ?$,1(R(B) ("g" ?$,1(S(B) ("d" ?$,1(T(B) ("e" ?$,1(U(B) ("v" ?$,1(V(B) ("z" ?$,1(W(B) ("i" ?$,1(X(B) ("j" ?$,1(Y(B) ("k" ?$,1(Z(B) ("l" ?$,1([(B) ("m" ?$,1(\(B) ("n" ?$,1(](B) ("o" ?$,1(^(B) ("p" ?$,1(_(B) ("r" ?$,1(`(B) ("s" ?$,1(a(B) ("t" ?$,1(b(B) ("u" ?$,1(c(B) ("f" ?$,1(d(B) ("h" ?$,1(e(B) ("c" ?$,1(f(B) ("`" ?$,1(g(B) ("[" ?$,1(h(B) ("]" ?$,1(i(B) ("y" ?$,1(j(B) ("x" ?$,1(l(B) ("\\" ?$,1(n(B) ("q" ?$,1(o(B)) ;; Based on an implementation by Ognyan Kulev . ;; This follows XKB bg. (quail-define-package "bulgarian-bds" "Bulgarian" "$,1(1(4(A(B" nil "Bulgarian standard keyboard layout (BDS) This keyboard layout is standard for Bulgarian typewriters. The letters $,1(F(B, $,1(<(B, $,1(G(B, $,1(@(B, $,1(;(B, $,1(1(B and $,1(K(B are not affected by Caps Lock. In addition to original Bulgarian typewriter layout, keys \\ and | are transformed into ' and $,1(K(B respectively. Some keyboards mark these keys as being transformed into ( and ) respectively. For ( and ), use ` and ~ respectively. This input method follows XKB." nil t t t t nil nil nil nil nil t) ;; () 1! 2? 3+ 4" 5% 6= 7: 8/ 9_ 0$,1uV(B -I .V ;; ,$,1(k(B $,1(C(B $,1(5(B $,1(8(B $,1(H(B $,1(I(B $,1(:(B $,1(A(B $,1(4(B $,1(7(B $,1(F(B ;,A'(B ;; $,1(L(B $,1(O(B $,1(0(B $,1(>(B $,1(6(B $,1(3(B $,1(B(B $,1(=(B $,1(2(B $,1(<(B $,1(G(B '$,1(K(B ;; $,1(N(B $,1(9(B $,1(J(B $,1(M(B $,1(D(B $,1(E(B $,1(?(B $,1(@(B $,1(;(B $,1(1(B (quail-define-rules ("1" ?1) ("!" ?!) ("2" ?2) ("@" ??) ("3" ?3) ("#" ?+) ("4" ?4) ("$" ?\") ("5" ?5) ("%" ?%) ("6" ?6) ("^" ?=) ("7" ?7) ("&" ?:) ("8" ?8) ("*" ?/) ("9" ?9) ("(" ?_) ("0" ?0) (")" ?$,1uV(B) ("-" ?-) ("_" ?I) ("=" ?.) ("+" ?V) ("q" ?,) ("Q" ?$,1(k(B) ("w" ?$,1(c(B) ("W" ?$,1(C(B) ("e" ?$,1(U(B) ("E" ?$,1(5(B) ("r" ?$,1(X(B) ("R" ?$,1(8(B) ("t" ?$,1(h(B) ("T" ?$,1(H(B) ("y" ?$,1(i(B) ("Y" ?$,1(I(B) ("u" ?$,1(Z(B) ("U" ?$,1(:(B) ("i" ?$,1(a(B) ("I" ?$,1(A(B) ("o" ?$,1(T(B) ("O" ?$,1(4(B) ("p" ?$,1(W(B) ("P" ?$,1(7(B) ("[" ?$,1(f(B) ("{" ?$,1(F(B) ("]" ?\;) ("}" ?,A'(B) ("a" ?$,1(l(B) ("A" ?$,1(L(B) ("s" ?$,1(o(B) ("S" ?$,1(O(B) ("d" ?$,1(P(B) ("D" ?$,1(0(B) ("f" ?$,1(^(B) ("F" ?$,1(>(B) ("g" ?$,1(V(B) ("G" ?$,1(6(B) ("h" ?$,1(S(B) ("H" ?$,1(3(B) ("j" ?$,1(b(B) ("J" ?$,1(B(B) ("k" ?$,1(](B) ("K" ?$,1(=(B) ("l" ?$,1(R(B) ("L" ?$,1(2(B) (";" ?$,1(\(B) (":" ?$,1(<(B) ("'" ?$,1(g(B) ("\"" ?$,1(G(B) ("`" ?\() ("~" ?\)) ("z" ?$,1(n(B) ("Z" ?$,1(N(B) ("x" ?$,1(Y(B) ("X" ?$,1(9(B) ("c" ?$,1(j(B) ("C" ?$,1(J(B) ("v" ?$,1(m(B) ("V" ?$,1(M(B) ("b" ?$,1(d(B) ("B" ?$,1(D(B) ("n" ?$,1(e(B) ("N" ?$,1(E(B) ("m" ?$,1(_(B) ("M" ?$,1(?(B) ("," ?$,1(`(B) ("<" ?$,1(@(B) ("." ?$,1([(B) (">" ?$,1(;(B) ("/" ?$,1(Q(B) ("?" ?$,1(1(B) ("\\" ?') ("|" ?$,1(K(B)) ;; Local Variables: ;; coding: iso-2022-7bit ;; End: ;; arch-tag: e6d34b16-8710-4181-a17e-819a1df0334f ;;; cyrillic.el ends here