New file.
[m17n/m17n-contrib.git] / im / yi-yivo.mim
1 ;; yi-yivo.mim -- Yiddish input method with YIVO transliteration
2 ;; Copyright (C) 2010
3 ;; Raghav Krishnapriyan (raghav.r.krishnapriyan@gmail.com)
4
5 ;; This file is part of the m17n contrib; a sub-part of the m17n
6 ;; library.
7
8 ;; The m17n library is free software; you can redistribute it and/or
9 ;; modify it under the terms of the GNU Lesser General Public License
10 ;; as published by the Free Software Foundation; either version 2.1 of
11 ;; the License, or (at your option) any later version.
12
13 ;; The m17n library is distributed in the hope that it will be useful,
14 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 ;; Lesser General Public License for more details.
17
18 ;; You should have received a copy of the GNU Lesser General Public
19 ;; License along with the m17n library; if not, write to the Free
20 ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 ;; Boston, MA 02110-1301, USA.
22
23 (input-method yi yivo)
24                                                                                         
25 (description "Yiddish input method using YIVO transliteration.
26 A short description of the YIVO transliteration scheme can be found here: http://www.ibiblio.org/pub/academic/languages/yiddish/mendele/vol4.170
27 A description of the YIVO orthography can be found in Mordkhe Schaechter, _Der eynheytlekher Yidisher oysleyg: Takones fun yidishn oysleyg_, New York: Yivo and Yiddish Language Resource Center of the League for Yiddish (6th ed. 1999).
28 ")
29                                                                                         
30 (title "ייִדיש")
31 (map
32   (initials
33     ("i" "אי")
34     ("u" "או")
35     ("ey" "אײ")
36     ("ay" "אײַ")
37     ("oy" "אױ")
38         ("ayo" "אַיאָ")
39   )
40   (initdiph
41     ("e" ?ע)
42     ("a" "אַ")
43     ("o" "אָ")
44   )
45   (openquotes ("\"" "„"))
46   (closequotes ("\"" "‟") ("?\"" "?‟") (".\"" ".‟") ("!\"" "!‟"))
47   (parentheses
48       ("\(" "\)")
49       ("\)" "\(")
50   )
51   (makef ("-" "־"))
52   (otherchars
53     ("A") ("b") ("d") ("f") ("g") ("h") ("H") ("k") ("l") ("m") ("n") ("p") ("r") ("s") ("S") ("t") ("u") ("v") ("y") ("z") ("B") ("K") ("T") ("W")
54   )
55   (singlechars
56     ("A" ?א)
57     ("b" ?ב)
58     ("d" ?ד)
59     ("e" ?ע)
60     ("ey" "ײ")
61     ("f" ?ף)
62     ("g" ?ג)
63     ("h" ?ה)
64     ("H" ?ח)
65     ("i" ?י)
66     ("k" ?ק)
67     ("kh" ?ך)
68     ("l" ?ל)
69     ("m" ?ם)
70     ("n" ?ן)
71     ("oy" "ױ")
72     ("r" ?ר)
73     ("s" ?ס)
74     ("sh" ?ש)
75     ("S" ?ת)
76     ("t" ?ט)
77     ("ts" ?ץ)
78     ("u" ?ו)
79     ("v" "װ")
80     ("y" ?י)
81     ("z" ?ז)
82   )
83   (doublechars
84     ("a" "אַ")
85     ("B" "בֿ")
86     ("ay" "ײַ")
87     ("K" "כּ")
88     ("o" "אָ")
89     ("p" "פּ")
90     ("T" "תּ")
91     ("tsh" "טש")
92     ("W" "שׂ")
93     ("zh" "זש")
94   )
95   (triplechars
96     ("uv" "וּװ")
97     ("vu" "װוּ")
98     ("yi" "ייִ")
99     ("ui" "ויִ")
100         ("eyi" "ײיִ")
101         ("ie" "יִע")
102         ("ei" "עיִ")
103   )
104   (quadruplechars
105         ("ii" "יִיִ")
106         ("ayi" "ײַיִ")
107         ("ia" "יִאַ")
108         ("io" "יִאָ")
109   )
110   (quintuplechars
111         ("uvu" "וּװוּ")    ; For words like "tsuvuks!"
112   )
113   (abbreviations
114     ("s'" "ס'")
115     ("m'" "מ'")
116         ("kh'" "כ'")
117   )
118   (gershayim
119     ("`" "׳")
120         ("``" "״")
121   )
122   (backspace
123     ((BackSpace) (undo)))
124 )
125                                                                                         
126 (state 
127   (init
128     (initials (shift subsq))
129     (initdiph)
130     (openquotes)
131     (otherchars (pushback 1) (shift subsq))
132     (backspace)
133         (parentheses)
134   )
135   (subsq
136     (singlechars
137       (cond
138         ((= @-2 ?ף) (set X @-1) (delete @-2) (insert "פֿ") (insert X))
139         ((= @-2 ?ך) (set X @-1) (delete @-2) (insert ?כ) (insert X))
140         ((= @-2 ?ם) (set X @-1) (delete @-2) (insert ?מ) (insert X))
141         ((= @-2 ?ן) (set X @-1) (delete @-2) (insert ?נ) (insert X))
142             ((= @-2 ?ץ) (set X @-1) (delete @-2) (insert ?צ) (insert X))
143        )
144      )
145          (doublechars
146       (cond
147         ((= @-3 ?ף) (set X @-1) (set Y @-2) (delete @-3) (insert "פֿ") (insert Y) (insert X))
148         ((= @-3 ?ך) (set X @-1) (set Y @-2) (delete @-3) (insert ?כ) (insert Y) (insert X))
149         ((= @-3 ?ם) (set X @-1) (set Y @-2) (delete @-3) (insert ?מ) (insert Y) (insert X))
150         ((= @-3 ?ן) (set X @-1) (set Y @-2) (delete @-3) (insert ?נ) (insert Y) (insert X))
151             ((= @-3 ?ץ) (set X @-1) (set Y @-2) (delete @-3) (insert ?צ) (insert Y) (insert X))
152        )
153      )
154          (triplechars
155            (cond
156         ((= @-4 ?ף) (set X @-1) (set Y @-2) (set Z @-3) (delete @-4) (insert "פֿ") (insert Z) (insert Y) (insert X))
157         ((= @-4 ?ך) (set X @-1) (set Y @-2) (set Z @-3) (delete @-4) (insert ?כ) (insert Z) (insert Y) (insert X))
158         ((= @-4 ?ם) (set X @-1) (set Y @-2) (set Z @-3) (delete @-4) (insert ?מ) (insert Z) (insert Y) (insert X))
159         ((= @-4 ?ן) (set X @-1) (set Y @-2) (set Z @-3) (delete @-4) (insert ?נ) (insert Z) (insert Y) (insert X))
160             ((= @-4 ?ץ) (set X @-1) (set Y @-2) (set Z @-3) (delete @-4) (insert ?צ) (insert Z) (insert Y) (insert X))
161        )
162      )
163          (quadruplechars
164           (cond
165         ((= @-5 ?ף) (set X @-1) (set Y @-2) (set Z @-3) (set A @-4) (delete @-5) (insert "פֿ") (insert A) (insert Z) (insert Y) (insert X))
166         ((= @-5 ?ך) (set X @-1) (set Y @-2) (set Z @-3) (set A @-4) (delete @-5) (insert ?כ) (insert A) (insert Z) (insert Y) (insert X))
167         ((= @-5 ?ם) (set X @-1) (set Y @-2) (set Z @-3) (set A @-4) (delete @-5) (insert ?מ) (insert A) (insert Z) (insert Y) (insert X))
168         ((= @-5 ?ן) (set X @-1) (set Y @-2) (set Z @-3) (set A @-4) (delete @-5) (insert ?נ) (insert A) (insert Z) (insert Y) (insert X))
169         ((= @-5 ?ץ) (set X @-1) (set Y @-2) (set Z @-3) (set A @-4) (delete @-5) (insert ?צ) (insert A) (insert Z) (insert Y) (insert X))
170           )
171      )
172      (quintuplechars
173           (cond
174         ((= @-6 ?ף) (set X @-1) (set Y @-2) (set Z @-3) (set A @-4) (set B @-5) (delete @-6) (insert "פֿ") (insert B) (insert A) (insert Z) (insert Y) (insert X))
175         ((= @-6 ?ך) (set X @-1) (set Y @-2) (set Z @-3) (set A @-4) (set B @-5) (delete @-6) (insert ?כ) (insert B) (insert A) (insert Z) (insert Y) (insert X))
176         ((= @-6 ?ם) (set X @-1) (set Y @-2) (set Z @-3) (set A @-4) (set B @-5) (delete @-6) (insert ?מ) (insert B) (insert A) (insert Z) (insert Y) (insert X))
177         ((= @-6 ?ן) (set X @-1) (set Y @-2) (set Z @-3) (set A @-4) (set B @-5) (delete @-6) (insert ?נ) (insert B) (insert A) (insert Z) (insert Y) (insert X))
178         ((= @-6 ?ץ) (set X @-1) (set Y @-2) (set Z @-3) (set A @-4) (set B @-5) (delete @-6) (insert ?צ) (insert B) (insert A) (insert Z) (insert Y) (insert X))
179           )
180      )
181          (closequotes)
182          (gershayim)
183          (makef (shift init))
184          (abbreviations (shift init))
185          (backspace)
186          (nil (shift init))
187    )
188 )