Commit | Line | Data |
---|---|---|
bf67e61f NTND |
1 | ;;; vnvni.el --- Quail package for Vietnamese by VNI method |
2 | ||
ab422c4d | 3 | ;; Copyright (C) 2001-2013 Free Software Foundation, Inc. |
bf67e61f NTND |
4 | |
5 | ;; Author: Werner Lemberg <wl@gnu.org> | |
6 | ;; Nguyen Thai Ngoc Duy <pclouds@gmail.com> | |
7 | ;; Keywords: multilingual, input method, Vietnamese | |
8 | ||
9 | ;; This file is part of GNU Emacs. | |
10 | ||
11 | ;; GNU Emacs is free software: you can redistribute it and/or modify | |
12 | ;; it under the terms of the GNU General Public License as published by | |
13 | ;; the Free Software Foundation, either version 3 of the License, or | |
14 | ;; (at your option) any later version. | |
15 | ||
16 | ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 | ;; GNU General Public License for more details. | |
20 | ||
21 | ;; You should have received a copy of the GNU General Public License | |
22 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | |
23 | ||
24 | ;;; Commentary: | |
25 | ||
26 | ;; There are two commonly-used input methods for Vietnamese: Telex | |
27 | ;; (implemented in vntelex.el) and VNI (implemented in this file, | |
28 | ;; which was based on vntelex.el). | |
29 | ||
30 | ;;; Code: | |
31 | ||
32 | (require 'quail) | |
33 | ||
34 | ||
35 | (quail-define-package | |
36 | "vietnamese-vni" ; NAME | |
37 | "Vietnamese" ; LANGUAGE | |
38 | "VV" ; TITLE | |
39 | t ; GUIDANCE | |
40 | "Vietnamese VNI input method | |
41 | ||
42 | Diacritics: | |
43 | ||
44 | effect postfix examples | |
45 | ------------------------------ | |
46 | circumflex 6 a6 -> \e,Ab\e(B | |
47 | breve 8 a8 -> \e,1e\e(B | |
48 | horn 7 o7 -> \e,1=\e(B | |
49 | ||
50 | acute 1 a1 -> \e,1a\e(B | |
51 | grave 2 a2 -> \e,1`\e(B | |
52 | hook above 3 a3 -> \e,1d\e(B | |
53 | tilde 4 a4 -> \e,1c\e(B | |
54 | dot below 5 a5 -> \e,1U\e(B | |
55 | ||
56 | d bar 9 d9 -> \e,1p\e(B | |
57 | ||
58 | Combinations: | |
59 | ||
60 | A82 -> \e,2"\e(B, o74 -> \e,1^\e(B, etc. | |
61 | ||
62 | Doubling the postfix (but not in combinations) separates the letter | |
63 | and postfix: E66 -> E6, a55 -> a5, etc. | |
64 | " ; DOCSTRING | |
65 | nil ; TRANSLATION-KEYS | |
66 | t ; FORGET-LAST-SELECTION | |
67 | nil ; DETERMINISTIC | |
68 | nil ; KBD-TRANSLATE | |
69 | nil ; SHOW-LAYOUT | |
70 | nil ; CREATE-DECODE-MAP | |
71 | nil ; MAXIMUM-SHORTEST | |
72 | nil ; OVERLAY-PLIST | |
73 | nil ; UPDATE-TRANSLATION-FUNCTION | |
74 | nil ; CONVERSION-KEYS | |
75 | t) ; SIMPLE | |
76 | ||
77 | (quail-define-rules | |
78 | ("a2" ?\e,1`\e(B) ; LATIN SMALL LETTER A WITH GRAVE | |
79 | ("A2" ?\e,2`\e(B) ; LATIN CAPITAL LETTER A WITH GRAVE | |
80 | ("a1" ?\e,1a\e(B) ; LATIN SMALL LETTER A WITH ACUTE | |
81 | ("A1" ?\e,2a\e(B) ; LATIN CAPITAL LETTER A WITH ACUTE | |
82 | ("a6" ?\e,1b\e(B) ; LATIN SMALL LETTER A WITH CIRCUMFLEX | |
83 | ("A6" ?\e,2b\e(B) ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
84 | ("a4" ?\e,1c\e(B) ; LATIN SMALL LETTER A WITH TILDE | |
85 | ("A4" ?\e,2c\e(B) ; LATIN CAPITAL LETTER A WITH TILDE | |
86 | ("e2" ?\e,1h\e(B) ; LATIN SMALL LETTER E WITH GRAVE | |
87 | ("E2" ?\e,2h\e(B) ; LATIN CAPITAL LETTER E WITH GRAVE | |
88 | ("e1" ?\e,1i\e(B) ; LATIN SMALL LETTER E WITH ACUTE | |
89 | ("E1" ?\e,2i\e(B) ; LATIN CAPITAL LETTER E WITH ACUTE | |
90 | ("e6" ?\e,1j\e(B) ; LATIN SMALL LETTER E WITH CIRCUMFLEX | |
91 | ("E6" ?\e,2j\e(B) ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
92 | ("i2" ?\e,1l\e(B) ; LATIN SMALL LETTER I WITH GRAVE | |
93 | ("I2" ?\e,2l\e(B) ; LATIN CAPITAL LETTER I WITH GRAVE | |
94 | ("i1" ?\e,1m\e(B) ; LATIN SMALL LETTER I WITH ACUTE | |
95 | ("I1" ?\e,2m\e(B) ; LATIN CAPITAL LETTER I WITH ACUTE | |
96 | ("o2" ?\e,1r\e(B) ; LATIN SMALL LETTER O WITH GRAVE | |
97 | ("O2" ?\e,2r\e(B) ; LATIN CAPITAL LETTER O WITH GRAVE | |
98 | ("o1" ?\e,1s\e(B) ; LATIN SMALL LETTER O WITH ACUTE | |
99 | ("O1" ?\e,2s\e(B) ; LATIN CAPITAL LETTER O WITH ACUTE | |
100 | ("o6" ?\e,1t\e(B) ; LATIN SMALL LETTER O WITH CIRCUMFLEX | |
101 | ("O6" ?\e,2t\e(B) ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
102 | ("o4" ?\e,1u\e(B) ; LATIN SMALL LETTER O WITH TILDE | |
103 | ("O4" ?\e,2u\e(B) ; LATIN CAPITAL LETTER O WITH TILDE | |
104 | ("u2" ?\e,1y\e(B) ; LATIN SMALL LETTER U WITH GRAVE | |
105 | ("U2" ?\e,2y\e(B) ; LATIN CAPITAL LETTER U WITH GRAVE | |
106 | ("u1" ?\e,1z\e(B) ; LATIN SMALL LETTER U WITH ACUTE | |
107 | ("U1" ?\e,2z\e(B) ; LATIN CAPITAL LETTER U WITH ACUTE | |
108 | ("y1" ?\e,1}\e(B) ; LATIN SMALL LETTER Y WITH ACUTE | |
109 | ("Y1" ?\e,2}\e(B) ; LATIN CAPITAL LETTER Y WITH ACUTE | |
110 | ("a8" ?\e,1e\e(B) ; LATIN SMALL LETTER A WITH BREVE | |
111 | ("A8" ?\e,2e\e(B) ; LATIN CAPITAL LETTER A WITH BREVE | |
112 | ("i4" ?\e,1n\e(B) ; LATIN SMALL LETTER I WITH TILDE | |
113 | ("I4" ?\e,2n\e(B) ; LATIN CAPITAL LETTER I WITH TILDE | |
114 | ("u4" ?\e,1{\e(B) ; LATIN SMALL LETTER U WITH TILDE | |
115 | ("U4" ?\e,2{\e(B) ; LATIN CAPITAL LETTER U WITH TILDE | |
116 | ("o7" ?\e,1=\e(B) ; LATIN SMALL LETTER O WITH HORN | |
117 | ("O7" ?\e,2=\e(B) ; LATIN CAPITAL LETTER O WITH HORN | |
118 | ("u7" ?\e,1_\e(B) ; LATIN SMALL LETTER U WITH HORN | |
119 | ("U7" ?\e,2_\e(B) ; LATIN CAPITAL LETTER U WITH HORN | |
120 | ("a5" ?\e,1U\e(B) ; LATIN SMALL LETTER A WITH DOT BELOW | |
121 | ("A5" ?\e,2U\e(B) ; LATIN CAPITAL LETTER A WITH DOT BELOW | |
122 | ("a3" ?\e,1d\e(B) ; LATIN SMALL LETTER A WITH HOOK ABOVE | |
123 | ("A3" ?\e,2d\e(B) ; LATIN CAPITAL LETTER A WITH HOOK ABOVE | |
124 | ("a61" ?\e,1$\e(B) ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE | |
125 | ("A61" ?\e,2$\e(B) ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE | |
126 | ("a62" ?\e,1%\e(B) ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE | |
127 | ("A62" ?\e,2%\e(B) ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE | |
128 | ("a63" ?\e,1&\e(B) ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND HO6K ABOVE | |
129 | ("A63" ?\e,2&\e(B) ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HO6K ABOVE | |
130 | ("a64" ?\e,1g\e(B) ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE | |
131 | ("A64" ?\e,2g\e(B) ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE | |
132 | ("a65" ?\e,1'\e(B) ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW | |
133 | ("A65" ?\e,2'\e(B) ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW | |
134 | ("a81" ?\e,1!\e(B) ; LATIN SMALL LETTER A WITH BREVE AND ACUTE | |
135 | ("A81" ?\e,2!\e(B) ; LATIN CAPITAL LETTER A WITH BREVE AND ACUTE | |
136 | ("a82" ?\e,1"\e(B) ; LATIN SMALL LETTER A WITH BREVE AND GRAVE | |
137 | ("A82" ?\e,2"\e(B) ; LATIN CAPITAL LETTER A WITH BREVE AND GRAVE | |
138 | ("a83" ?\e,1F\e(B) ; LATIN SMALL LETTER A WITH BREVE AND HO6K ABOVE | |
139 | ("A83" ?\e,2F\e(B) ; LATIN CAPITAL LETTER A WITH BREVE AND HO6K ABOVE | |
140 | ("a84" ?\e,1G\e(B) ; LATIN SMALL LETTER A WITH BREVE AND TILDE | |
141 | ("A84" ?\e,2G\e(B) ; LATIN CAPITAL LETTER A WITH BREVE AND TILDE | |
142 | ("a85" ?\e,1#\e(B) ; LATIN SMALL LETTER A WITH BREVE AND DOT BELOW | |
143 | ("A85" ?\e,2#\e(B) ; LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW | |
144 | ("e5" ?\e,1)\e(B) ; LATIN SMALL LETTER E WITH DOT BELOW | |
145 | ("E5" ?\e,2)\e(B) ; LATIN CAPITAL LETTER E WITH DOT BELOW | |
146 | ("e3" ?\e,1k\e(B) ; LATIN SMALL LETTER E WITH HO6K ABOVE | |
147 | ("E3" ?\e,2k\e(B) ; LATIN CAPITAL LETTER E WITH HO6K ABOVE | |
148 | ("e4" ?\e,1(\e(B) ; LATIN SMALL LETTER E WITH TILDE | |
149 | ("E4" ?\e,2(\e(B) ; LATIN CAPITAL LETTER E WITH TILDE | |
150 | ("e61" ?\e,1*\e(B) ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE | |
151 | ("E61" ?\e,2*\e(B) ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE | |
152 | ("e62" ?\e,1+\e(B) ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE | |
153 | ("E62" ?\e,2+\e(B) ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE | |
154 | ("e63" ?\e,1,\e(B) ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND HO6K ABOVE | |
155 | ("E63" ?\e,2,\e(B) ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HO6K ABOVE | |
156 | ("e64" ?\e,1-\e(B) ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE | |
157 | ("E64" ?\e,2-\e(B) ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE | |
158 | ("e65" ?\e,1.\e(B) ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW | |
159 | ("E65" ?\e,2.\e(B) ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW | |
160 | ("i3" ?\e,1o\e(B) ; LATIN SMALL LETTER I WITH HO6K ABOVE | |
161 | ("I3" ?\e,2o\e(B) ; LATIN CAPITAL LETTER I WITH HO6K ABOVE | |
162 | ("i5" ?\e,18\e(B) ; LATIN SMALL LETTER I WITH DOT BELOW | |
163 | ("I5" ?\e,28\e(B) ; LATIN CAPITAL LETTER I WITH DOT BELOW | |
164 | ("o5" ?\e,1w\e(B) ; LATIN SMALL LETTER O WITH DOT BELOW | |
165 | ("O5" ?\e,2w\e(B) ; LATIN CAPITAL LETTER O WITH DOT BELOW | |
166 | ("o3" ?\e,1v\e(B) ; LATIN SMALL LETTER O WITH HO6K ABOVE | |
167 | ("O3" ?\e,2v\e(B) ; LATIN CAPITAL LETTER O WITH HO6K ABOVE | |
168 | ("o61" ?\e,1/\e(B) ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE | |
169 | ("O61" ?\e,2/\e(B) ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE | |
170 | ("o62" ?\e,10\e(B) ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE | |
171 | ("O62" ?\e,20\e(B) ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE | |
172 | ("o63" ?\e,11\e(B) ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND HO6K ABOVE | |
173 | ("O63" ?\e,21\e(B) ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HO6K ABOVE | |
174 | ("o64" ?\e,12\e(B) ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE | |
175 | ("O64" ?\e,22\e(B) ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE | |
176 | ("o65" ?\e,15\e(B) ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELO7 | |
177 | ("O65" ?\e,25\e(B) ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELO7 | |
178 | ("o71" ?\e,1>\e(B) ; LATIN SMALL LETTER O WITH HORN AND ACUTE | |
179 | ("O71" ?\e,2>\e(B) ; LATIN CAPITAL LETTER O WITH HORN AND ACUTE | |
180 | ("o72" ?\e,16\e(B) ; LATIN SMALL LETTER O WITH HORN AND GRAVE | |
181 | ("O72" ?\e,26\e(B) ; LATIN CAPITAL LETTER O WITH HORN AND GRAVE | |
182 | ("o73" ?\e,17\e(B) ; LATIN SMALL LETTER O WITH HORN AND HO6K ABOVE | |
183 | ("O73" ?\e,27\e(B) ; LATIN CAPITAL LETTER O WITH HORN AND HO6K ABOVE | |
184 | ("o74" ?\e,1^\e(B) ; LATIN SMALL LETTER O WITH HORN AND TILDE | |
185 | ("O74" ?\e,2^\e(B) ; LATIN CAPITAL LETTER O WITH HORN AND TILDE | |
186 | ("o75" ?\e,1~\e(B) ; LATIN SMALL LETTER O WITH HORN AND DOT BELO7 | |
187 | ("O75" ?\e,2~\e(B) ; LATIN CAPITAL LETTER O WITH HORN AND DOT BELO7 | |
188 | ("u5" ?\e,1x\e(B) ; LATIN SMALL LETTER U WITH DOT BELO7 | |
189 | ("U5" ?\e,2x\e(B) ; LATIN CAPITAL LETTER U WITH DOT BELO7 | |
190 | ("u3" ?\e,1|\e(B) ; LATIN SMALL LETTER U WITH HO6K ABOVE | |
191 | ("U3" ?\e,2|\e(B) ; LATIN CAPITAL LETTER U WITH HO6K ABOVE | |
192 | ("u71" ?\e,1Q\e(B) ; LATIN SMALL LETTER U WITH HORN AND ACUTE | |
193 | ("U71" ?\e,2Q\e(B) ; LATIN CAPITAL LETTER U WITH HORN AND ACUTE | |
194 | ("u72" ?\e,1W\e(B) ; LATIN SMALL LETTER U WITH HORN AND GRAVE | |
195 | ("U72" ?\e,2W\e(B) ; LATIN CAPITAL LETTER U WITH HORN AND GRAVE | |
196 | ("u73" ?\e,1X\e(B) ; LATIN SMALL LETTER U WITH HORN AND HO6K ABOVE | |
197 | ("U73" ?\e,2X\e(B) ; LATIN CAPITAL LETTER U WITH HORN AND HO6K ABOVE | |
198 | ("u74" ?\e,1f\e(B) ; LATIN SMALL LETTER U WITH HORN AND TILDE | |
199 | ("U74" ?\e,2f\e(B) ; LATIN CAPITAL LETTER U WITH HORN AND TILDE | |
200 | ("u75" ?\e,1q\e(B) ; LATIN SMALL LETTER U WITH HORN AND DOT BELO7 | |
201 | ("U75" ?\e,2q\e(B) ; LATIN CAPITAL LETTER U WITH HORN AND DOT BELO7 | |
202 | ("y2" ?\e,1O\e(B) ; LATIN SMALL LETTER Y WITH GRAVE | |
203 | ("Y2" ?\e,2O\e(B) ; LATIN CAPITAL LETTER Y WITH GRAVE | |
204 | ("y5" ?\e,1\\e(B) ; LATIN SMALL LETTER Y WITH DOT BELO7 | |
205 | ("Y5" ?\e,2\\e(B) ; LATIN CAPITAL LETTER Y WITH DOT BELO7 | |
206 | ("y3" ?\e,1V\e(B) ; LATIN SMALL LETTER Y WITH HO6K ABOVE | |
207 | ("Y3" ?\e,2V\e(B) ; LATIN CAPITAL LETTER Y WITH HO6K ABOVE | |
208 | ("y4" ?\e,1[\e(B) ; LATIN SMALL LETTER Y WITH TILDE | |
209 | ("Y4" ?\e,2[\e(B) ; LATIN CAPITAL LETTER Y WITH TILDE | |
210 | ("d9" ?\e,1p\e(B) ; LATIN SMALL LETTER D WITH STROKE | |
211 | ("D9" ?\e,2p\e(B) ; LATIN CAPITAL LETTER D WITH STROKE | |
212 | ;("$$" ?\e$,1tK\e(B) ; U+20AB DONG SIGN (#### check) | |
213 | ||
214 | ("a22" ["a22"]) | |
215 | ("A22" ["A2"]) | |
216 | ("a11" ["a1"]) | |
217 | ("A11" ["A1"]) | |
218 | ("a66"' ["a6"]) | |
219 | ("A66"' ["A6"]) | |
220 | ("a44" ["a4"]) | |
221 | ("A44" ["A4"]) | |
222 | ("e22" ["e2"]) | |
223 | ("E22" ["E2"]) | |
224 | ("e11" ["e1"]) | |
225 | ("E11" ["E1"]) | |
226 | ("e66" ["e6"]) | |
227 | ("E66" ["E6"]) | |
228 | ("i22" ["i2"]) | |
229 | ("I22" ["I2"]) | |
230 | ("i11" ["i1"]) | |
231 | ("I11" ["I1"]) | |
232 | ("o22" ["o2"]) | |
233 | ("O22" ["O2"]) | |
234 | ("o11" ["o1"]) | |
235 | ("O11" ["O1"]) | |
236 | ("o66" ["o6"]) | |
237 | ("O66" ["O6"]) | |
238 | ("o44" ["o4"]) | |
239 | ("O44" ["O4"]) | |
240 | ("u22" ["u2"]) | |
241 | ("U22" ["U2"]) | |
242 | ("u11" ["u1"]) | |
243 | ("U11" ["U1"]) | |
244 | ("y11" ["y1"]) | |
245 | ("Y11" ["Y1"]) | |
246 | ("a88" ["a8"]) | |
247 | ("A88" ["A8"]) | |
248 | ("i44" ["i4"]) | |
249 | ("I44" ["I4"]) | |
250 | ("u44" ["u4"]) | |
251 | ("U44" ["u4"]) | |
252 | ("o77" ["o7"]) | |
253 | ("O77" ["O7"]) | |
254 | ("u77" ["u7"]) | |
255 | ("U77" ["U7"]) | |
256 | ("a55" ["a5"]) | |
257 | ("A55" ["A5"]) | |
258 | ("a33" ["a3"]) | |
259 | ("A33" ["A3"]) | |
260 | ("e55" ["e5"]) | |
261 | ("E55" ["E5"]) | |
262 | ("e33" ["e3"]) | |
263 | ("E33" ["E3"]) | |
264 | ("e44" ["e4"]) | |
265 | ("E44" ["E4"]) | |
266 | ("i33" ["i3"]) | |
267 | ("I33" ["I3"]) | |
268 | ("i55" ["i5"]) | |
269 | ("I55" ["I5"]) | |
270 | ("o55" ["o5"]) | |
271 | ("O55" ["O5"]) | |
272 | ("o33" ["o3"]) | |
273 | ("O33" ["O3"]) | |
274 | ("u55" ["u5"]) | |
275 | ("U55" ["U5"]) | |
276 | ("u33" ["u3"]) | |
277 | ("U33" ["U3"]) | |
278 | ("y22" ["y2"]) | |
279 | ("Y22" ["Y2"]) | |
280 | ("y55" ["y5"]) | |
281 | ("Y55" ["Y5"]) | |
282 | ("y33" ["y3"]) | |
283 | ("Y33" ["Y3"]) | |
284 | ("y44" ["y4"]) | |
285 | ("Y44" ["Y4"]) | |
286 | ("d9" ["d9"]) | |
287 | ("D99" ["D9"]) | |
288 | ;("$$$" ["$$"]) | |
289 | ||
290 | ;; escape from composition | |
291 | ("\\1" ?1) | |
292 | ("\\2" ?2) | |
293 | ("\\3" ?3) | |
294 | ("\\4" ?4) | |
295 | ("\\5" ?5) | |
296 | ("\\6" ?6) | |
297 | ("\\7" ?7) | |
298 | ("\\8" ?8) | |
299 | ("\\9" ?9) | |
300 | ("\\\\" ?\\)) ; literal backslash | |
301 | ||
302 | ||
303 | ;; Local Variables: | |
304 | ;; coding: iso-2022-7bit | |
305 | ;; End: |