1 ;;; cyrillic.el --- Quail package for inputting Cyrillic characters
3 ;; Copyright (C) 1997-1998, 2001-2013 Free Software Foundation, Inc.
4 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
5 ;; 2006, 2007, 2008, 2009, 2010, 2011
6 ;; National Institute of Advanced Industrial Science and Technology (AIST)
7 ;; Registration Number H14PRO021
9 ;; Author: TAKAHASHI Naoto <ntakahas@m17n.org>
10 ;; Keywords: multilingual, input method, Cyrillic, i18n
12 ;; This file is part of GNU Emacs.
14 ;; GNU Emacs is free software: you can redistribute it and/or modify
15 ;; it under the terms of the GNU General Public License as published by
16 ;; the Free Software Foundation, either version 3 of the License, or
17 ;; (at your option) any later version.
19 ;; GNU Emacs is distributed in the hope that it will be useful,
20 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 ;; GNU General Public License for more details.
24 ;; You should have received a copy of the GNU General Public License
25 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
29 ;; These methods use a mixture of 8859-5 and Unicode. Quail, used
30 ;; with ucs-tables provides support 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.
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 superseded 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 conveniently 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.]
50 "russian-typewriter" "Russian" "ЖЙ" nil
51 "ЙЦУКЕН Russian typewriter layout (ISO 8859-5 encoding)."
52 nil t t t t nil nil nil nil nil t
)
54 ;; №1 -2 /3 "4 :5 ,6 .7 _8 ?9 %0 != ;\ |+
55 ;; Й Ц У К Е Н Г Ш Щ З Х Ъ )(
56 ;; Ф Ы В А П Р О Л Д Ж Э
57 ;; Я Ч С М И Т Ь Б Ю Ё
157 ;; Maintain the obsolete name for now.
158 (push (cons "cyrillic-jcuken"
159 (cdr (assoc "russian-typewriter" quail-package-alist
)))
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.
166 (quail-define-package
167 "cyrillic-jcuken" "Russian" "ЖЙ" nil
168 "ЙЦУКЕН Russian typewriter layout (ISO 8859-5 encoding)."))
170 ;; See comment above. This is the variant `winkeys' from `ru' in XKB.
171 (quail-define-package
172 "russian-computer" "Russian" "RU" nil
173 "ЙЦУКЕН Russian computer layout"
174 nil t t t t nil nil nil nil nil t
)
176 ;; 1! 2" 3№ 4; 5% 6: 7? 8* 9( 0) -_ =+ \/ ёЁ
177 ;; Й Ц У К Е Н Г Ш Щ З Х Ъ
178 ;; Ф Ы В А П Р О Л Д Ж Э
179 ;; Я Ч С М И Т Ь Б Ю .,
278 ;; Mikhailian couldn't check the next two.
280 ;; This seems to have the same layout for letters as mk in XKB, but at
281 ;; least the top row is different.
282 (quail-define-package
283 "cyrillic-macedonian" "Cyrillic" "ЖM" nil
284 "ЉЊЕРТЗ-ЃЌ keyboard layout based on JUS.I.K1.004"
285 nil t t t t nil nil nil nil nil t
)
287 ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
288 ;; Љ Њ Е Р Т З У И О П Ш Ѓ
289 ;; А С Д Ф Г Х Ј К Л Ч Ќ Ж
290 ;; Ѕ Џ Ц В Б Н М ,; .: -_
391 (quail-define-package
392 "cyrillic-serbian" "Cyrillic" "ЖS" nil
393 "ЉЊЕРТЗ-ЂЋ keyboard layout based on JUS.I.K1.005"
394 nil t t t t nil nil nil nil nil t
)
396 ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
397 ;; Љ Њ Е Р Т З У И О П Ш Ђ
398 ;; А С Д Ф Г Х Ј К Л Ч Ћ Ж
399 ;; Ѕ Џ Ц В Б Н М ,; .: -_
500 ;; Alexander Mikhailian comments:
501 ;; Having worked for several years as a Belarusian linguist, I still
502 ;; can not find the origin of this layout which BTW does include
503 ;; several characters that are not present in Belarusian and does not
504 ;; include a few ones that do exist in Belarusian. Besides, the typo
505 ;; in the name of this layout speaks for itself since Belarusian has
506 ;; an outdated version of spelling which is "Byelorussian" and not
507 ;; "beylorussian". I suggest that you just remove this layout.
509 ;; [`derived from JUS.I.K1' according to an old Mule note -- fx]
511 ;; (quail-define-package
512 ;; "cyrillic-beylorussian" "Belarussian" "ЖB" nil
513 ;; "ЉЊЕРТЗ-ІЎ BEYLORUSSIAN (ISO 8859-5 encoding)"
514 ;; nil t t t t nil nil nil nil nil t)
516 ;; ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
517 ;; ;; Љ Њ Е Р Т З У И О П Ш І
518 ;; ;; А С Д Ф Г Х Ј К Л Ч Ў Ж
519 ;; ;; Ѕ Џ Ц В Б Н М ,; .: -_
521 ;; (quail-define-rules
604 ;; Alexander Mikhailian reports the opinion of fellow Ukrainian
605 ;; linguist Bogdan Babych <babych@altern.org>:
606 ;; He had seen this layout on some oldish systems but that the vast
607 ;; majority of the population uses a modified version of the M$ Windows
608 ;; layout. In fact, Microsoft shipped for a while a layout that was lacking
609 ;; two characters, precisely the "GHE_WITH_UPTURN" and the apostrophe. The
610 ;; latest versions of Windows software do have the "GHE_WITH_UPTURN" in the
611 ;; ukrainian keyboard layout but the apostrophe is still not there, whereas
612 ;; there is one letter, "Cyrillic_YO", not used in ukrainian. Ukrainians
613 ;; normally replace the "Cyrillic_YO" by the apostrophe sign and live
614 ;; happily with this little change. [See "ukrainian-computer" below.]
616 ;; Fixme: add GHE_WITH_UPTURN.
617 (quail-define-package
618 "cyrillic-ukrainian" "Ukrainian" "ЖU" nil
621 Sorry, but 'ghe with upturn' is not included in ISO 8859-5."
622 nil t t t t nil nil nil nil nil t
)
624 ;; 1! 2" 3# 4$ 5% 6& 7' 8( 9) 0= /? +* <>
625 ;; Є Ї Е Р Т З У И О П Ш І
626 ;; А С Д Ф Г Х Ј К Л Ч Ў Ж
627 ;; Ѕ Џ Ц В Б Н М ,; .: -_
727 (quail-define-package
728 "ukrainian-computer" "Ukrainian" "UK" nil
729 "ЙЦУКЕН Ukrainian (Unicode-based for use with KOI8-U encoding)."
730 nil t t t t nil nil nil nil nil t
)
732 ;; ' 1! 2" 3№ 4; 5% 6: 7? 8* 9( 0) -_ =+
733 ;; Й Ц У К Е Н Г Ш Щ З Х Ї
734 ;; Ф І В А П Р О Л Д Ж Є Ґ
735 ;; Я Ч С М И Т Ь Б Ю .,
834 ;; Alexander Mikhailian says this is of limited use. It has been
835 ;; popular among emigrants or foreigners who have to type in Cyrillic
836 ;; (mostly Russian) from time to time.
837 (quail-define-package
838 "cyrillic-yawerty" "Cyrillic" "ЖЯ" nil
839 "ЯВЕРТЫ Roman transcription
841 This layout is based on Roman transcription by phonemic resemblance.
842 When preceded by a '/', the second and the third rows (number key row) change
845 keytop | Q W E R T Y U I O P A S D
846 --------+---------------------------------------
847 input | Ђ Ѓ Є Ѕ І Ї Ј Љ Њ Ћ Ќ Ў Џ"
848 nil t t t t nil nil nil nil nil t
)
850 ;; 1! 2ё 3ъ 4Ё 5% 6^ 7& 8* 9( 0) -_ Ч Ю
851 ;; Я В Е Р Т Ы У И О П Ш Щ
852 ;; А С Д Ф Г Х Й К Л ;: '" Э
853 ;; З Ь Ц Ж Б Н М ,< .> /?
855 ;; 1! 2ё 3ъ 4Ё 5% 6^ 7& 8* 9( 0) -_ Ч Ю
856 ;; Ђ Ѓ Є Ѕ І Ї Ј Љ Њ Ћ Ш Щ
857 ;; Ќ Ў Џ Ф Г Х Й К Л ;: '" Э
858 ;; З Ь Ц Ж Б Н М ,< .> /?
985 ;; This was provided by Valery Alexeev <valery@domovoy.math.uga.edu>.
987 ;; Ognyan Kulev <ogi@fmi.uni-sofia.bg> wrote:
989 ;; I would suggest future `cyrillic-translit' to be with the
990 ;; modification of `cyrillic-translit-bulgarian' applied and the
991 ;; latter to disappear. It could be used by people who write
992 ;; bulgarian e-mails with latin letters for kick start (phonetic input
993 ;; method is not so obvious as translit input method but each letter
994 ;; is one keypress and a *lot* of people know it).
996 ;; Anton Zinoviev <anton@lml.bas.bg> wrote:
997 ;; I would say that the main idea for cyrillic-translit is to be
998 ;; language-independent and universal. It should be able to generate all
1000 (quail-define-package
1001 "cyrillic-translit" "Cyrillic" "Жt" t
1002 "Intuitively transliterated keyboard layout.
1003 Most convenient for entering Russian, but all Cyrillic characters
1004 are included. Should handle most cases. However:
1005 for ц (TSE) use \"c\", never \"ts\"
1006 щ (SHCHA = Bulgarian SHT) = \"shch\", \"sj\", \"/sht\" or \"/t\",
1007 э (REVERSE ROUNDED E) = \"e\\\"
1008 х (KHA) when after с (S) = \"x\" or \"kh\"
1009 ъ (HARD SIGN) = \"~\", Ъ (CAPITAL HARD SIGN) = \"~~\",
1010 ь (SOFT SIGN) = \"'\", Ь (CAPITAL SOFT SIGN) = \"''\",
1011 я (YA) = \"ya\", \"ja\" or \"q\".
1013 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
1014 u f h=kh=x c ch sh shch=sj=/s=/sht ~ y ' e\\ yu=ju ya=ja=q
1016 Also included are Ukrainian є (YE) = \"/e\", ї (YI) = \"yi\",
1017 ґ (GHE WITH UPTURN) = \"g'\",
1018 Belarusian ў (SHORT U) = \"u~\",
1019 Serbo-Croatian ђ (DJE) = \"/d\", ћ (CHJE)= \"/ch\",
1020 Macedonian ѓ (GJE) = \"/g\", ѕ (DZE) = \"/s\", ќ (KJE) = \"/k\",
1021 cyrillic і (I DECIMAL) = \"/i\", ј (JE) = \"/j\",
1022 љ (LJE) = \"/l\", њ (NJE) = \"/n\" and џ (DZE) =\"/z\"."
1023 nil t t t t nil nil nil nil nil t
)
1026 ("a" ?а
) ("b" ?б
) ("v" ?в
) ("w" ?в
) ("g" ?г
) ("d" ?д
)
1029 ("zh" ?ж
) ("z" ?з
) ("i" ?и
)
1030 ("j" ?й
) ("j'" ?й
) ("j`" ?й
) ("k" ?к
) ("l" ?л
)
1031 ("m" ?м
) ("n" ?н
) ("o" ?о
) ("p" ?п
) ("r" ?р
) ("s" ?с
) ("t" ?т
) ("u" ?у
)
1032 ("f" ?ф
) ("x" ?х
) ("h" ?х
) ("kh" ?х
)
1035 ("shch" ?щ
) ("sj" ?щ
)
1036 ("/sht" ?щ
) ("/t" ?щ
)
1037 ("~" ?ъ
) ("y" ?ы
) ("'" ?ь
) ("`" ?ь
)
1038 ("e\\" ?э
) ("e'" ?э
) ("e`" ?э
) ("@" ?э
)
1040 ("ya" ?я
) ("ja" ?я
) ("q" ?я
)
1042 ("A" ?А
) ("B" ?Б
) ("V" ?В
) ("W" ?В
) ("G" ?Г
) ("D" ?Д
)
1043 ("E" ?Е
) ("Je" ?Е
) ("JE" ?Е
)
1044 ("Yo" ?Ё
) ("YO" ?Ё
) ("Jo" ?Ё
) ("JO" ?Ё
)
1045 ("Zh" ?Ж
) ("ZH" ?Ж
) ("Z" ?З
) ("I" ?И
)
1046 ("J" ?Й
) ("J'" ?Й
) ("J`" ?Й
) ("K" ?К
) ("L" ?Л
)
1047 ("M" ?М
) ("N" ?Н
) ("O" ?О
) ("P" ?П
) ("R" ?Р
) ("S" ?С
) ("T" ?Т
) ("U" ?У
)
1048 ("F" ?Ф
) ("X" ?Х
) ("H" ?Х
) ("Kh" ?Х
) ("KH" ?Х
)
1049 ("C" ?Ц
) ("Ch" ?Ч
) ("CH" ?Ч
)
1051 ("Shch" ?Щ
) ("SHCH" ?Щ
) ("Sj" ?Щ
) ("SJ" ?Щ
)
1052 ("/Sht" ?Щ
) ("/SHT" ?Щ
) ("/T" ?Щ
)
1053 ("~~" ?Ъ
) ("Y" ?Ы
) ("''" ?Ь
)
1054 ("E\\" ?Э
) ("E'" ?Э
) ("E`" ?Э
) ("@@" ?Э
)
1055 ("Yu" ?Ю
) ("YU" ?Ю
) ("Ju" ?Ю
) ("JU" ?Ю
)
1056 ("Ya" ?Я
) ("YA" ?Я
) ("Ja" ?Я
) ("JA" ?Я
) ("Q" ?Я
)
1058 ("/e" ?є
) ("yi" ?ї
) ("u'" ?ў
) ("u~" ?ў
)
1060 ("/d" ?ђ
) ("/ch" ?ћ
)
1061 ("/g" ?ѓ
) ("/s" ?ѕ
) ("/k" ?ќ
)
1062 ("/i" ?і
) ("/j" ?ј
) ("/l" ?љ
) ("/n" ?њ
) ("/z" ?џ
)
1063 ("/E" ?Є
) ("YE" ?Є
) ("Yi" ?Ї
) ("YI" ?Ї
) ("U'" ?Ў
) ("U~" ?Ў
)
1065 ("/D" ?Ђ
) ("/Ch" ?Ћ
) ("/CH" ?Ћ
)
1066 ("/G" ?Ѓ
) ("/S" ?Ѕ
) ("/K" ?Ќ
)
1067 ("/I" ?І
) ("/J" ?Ј
) ("/L" ?Љ
) ("/N" ?Њ
) ("/Z" ?Џ
)
1069 ;; Combining accents as a separate character
1070 ("//'" ?́
) ("//`" ?̀
)
1072 ;; In the following two rules the accent is not a separate character
1075 ("/-" ?–
) ;; EN DASH
1076 ("/--" ?—
) ;; EM DASH
1078 ("/." ?․
) ;; ONE DOT LEADER
1079 ("/.." ?‥
) ;; TWO DOT LEADER
1080 ("/..." ?…
) ;; HORIZONTAL ELLIPSIS
1081 ("/,," ?„
) ;; DOUBLE LOW-9 QUOTATION MARK
1082 ("/," ?‚
) ;; SINGLE LOW-9 QUOTATION MARK
1083 ("/''" ?”
) ;; RIGHT DOUBLE QUOTATION MARK
1084 ("/'" ?’
) ;; RIGHT SINGLE QUOTATION MARK
1085 ("/``" ?“
) ;; LEFT DOUBLE QUOTATION MARK
1086 ("/`" ?‘
) ;; LEFT SINGLE QUOTATION MARK
1087 ("/<<" ?«
) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
1088 ("/>>" ?»
) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
1091 ("/ab" ?§
) ; _аб_зац
1092 ("/pa" ?§
) ; _pa_ragraph
1094 ("/no" ?№
) ; _но_мер
1119 ;; Roman numerals, commonly used for months and section/subsection numbers
1147 ;; Originally from Yudit's `Belarusian input table according to
1148 ;; STB955-94 belarusian standard' (not all) by Alexander Mikhailian
1149 ;; <mikhailian@altern.org>, subsequently amended by AM.
1150 (quail-define-package
1151 "belarusian" "Belarusian" "BE" nil
1152 "ЙЦУКЕН keyboard layout registered as STB955-94 Belarusian standard.
1154 nil t t t t nil nil nil nil nil t
)
1156 ;; ёЁ 1! 2" 3N 4; 5% 6: 7? 8* 9( 0) -_ =+
1157 ;; Й Ц У К Е Н Г Ш Ў З Х '
1158 ;; Ф Ы В А П Р О Л Д Ж Э
1159 ;; Я Ч С М І Т Ь Б Ю .,
1239 (quail-define-package
1240 "bulgarian-alt-phonetic" "Bulgarian" "БНФ"
1242 "Bulgarian alternative Phonetic keyboard layout, producing Unicode.
1244 This phonetic layout replaces all the Latin letters with Bulgarian
1245 \(Cyrillic\) letters based on similarities in their pronunciation or look.
1247 Note that, since the letters 'щ', 'ь', 'ю' and 'я' are attached to the
1248 ']', '\', '`' and '[' keys respectively, Caps Lock does not affect them."
1249 nil t t t t nil nil nil nil nil t
)
1251 ;; Ю 1! 2@ 3№ 4$ 5% 6€ 7§ 8* 9( 0) -– =+ ьѝ
1252 ;; Ч Ш Е Р Т Ъ У И О П Я Щ
1253 ;; А С Д Ф Г Х Й К Л :; '"
1254 ;; З Ж Ц В Б Н М ,„ .“ /?
1312 ;; From `Bulgarian-PHO.kmap for Yudit', Alexander Shopov
1313 ;; <al_shopov@web.bg>.
1315 ;; Extra commentary and the indicator from an independent
1316 ;; (cyrillic-iso8859-5) implementation by Ognyan Kulev
1317 ;; <ogi@fmi.uni-sofia.bg> and name changes from Anton Zinoviev
1318 ;; <anton@lml.bas.bg>.
1319 (quail-define-package
1320 "bulgarian-phonetic" "Bulgarian" "ЖБФ"
1322 "Bulgarian Phonetic keyboard layout, producing Unicode.
1324 The layout is similar to `cyrillic-translit', but all Bulgarian
1325 characters are typed with a single key.
1327 Use /& for § (Cyrillic paragraph) and /# for №.
1329 The letters Ч, Ш, Щ and Ю are not affected by Caps Lock."
1330 nil t t t t nil nil nil nil nil t
)
1333 ;; Я В Е Р Т Ъ У И О П Ш Щ
1334 ;; А С Д Ф Г Х Й К Л Ю
1401 ;; Based on an implementation by Ognyan Kulev <ogi@fmi.uni-sofia.bg>.
1402 ;; This follows XKB bg.
1404 (quail-define-package
1405 "bulgarian-bds" "Bulgarian" "БДС" nil
1406 "Bulgarian standard keyboard layout (BDS)
1408 This keyboard layout is standard for Bulgarian typewriters.
1410 The letters Ц, М, Ч, Р, Л, Б and Ы are not affected by Caps Lock.
1412 In addition to original Bulgarian typewriter layout, keys \\ and |
1413 are transformed into ' and Ы respectively. Some keyboards mark these
1414 keys as being transformed into ( and ) respectively. For ( and ), use
1415 ` and ~ respectively. This input method follows XKB."
1416 nil t t t t nil nil nil nil nil t
)
1418 ;; () 1! 2? 3+ 4" 5% 6= 7: 8/ 9_ 0№ -I .V
1419 ;; ,ы У Е И Ш Щ К С Д З Ц ;§
1420 ;; Ь Я А О Ж Г Т Н В М Ч 'Ы
1421 ;; Ю Й Ъ Э Ф Х П Р Л Б
1480 ;;; cyrillic.el ends here