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 | ------------------------------ | |
4b725a70 PE |
46 | circumflex 6 a6 -> â |
47 | breve 8 a8 -> ă | |
48 | horn 7 o7 -> ơ | |
bf67e61f | 49 | |
4b725a70 PE |
50 | acute 1 a1 -> á |
51 | grave 2 a2 -> à | |
52 | hook above 3 a3 -> ả | |
53 | tilde 4 a4 -> ã | |
54 | dot below 5 a5 -> ạ | |
bf67e61f | 55 | |
4b725a70 | 56 | d bar 9 d9 -> đ |
bf67e61f NTND |
57 | |
58 | Combinations: | |
59 | ||
4b725a70 | 60 | A82 -> Ằ, o74 -> ỡ, etc. |
bf67e61f NTND |
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 | |
4b725a70 PE |
78 | ("a2" ?à) ; LATIN SMALL LETTER A WITH GRAVE |
79 | ("A2" ?À) ; LATIN CAPITAL LETTER A WITH GRAVE | |
80 | ("a1" ?á) ; LATIN SMALL LETTER A WITH ACUTE | |
81 | ("A1" ?Á) ; LATIN CAPITAL LETTER A WITH ACUTE | |
82 | ("a6" ?â) ; LATIN SMALL LETTER A WITH CIRCUMFLEX | |
83 | ("A6" ?Â) ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX | |
84 | ("a4" ?ã) ; LATIN SMALL LETTER A WITH TILDE | |
85 | ("A4" ?Ã) ; LATIN CAPITAL LETTER A WITH TILDE | |
86 | ("e2" ?è) ; LATIN SMALL LETTER E WITH GRAVE | |
87 | ("E2" ?È) ; LATIN CAPITAL LETTER E WITH GRAVE | |
88 | ("e1" ?é) ; LATIN SMALL LETTER E WITH ACUTE | |
89 | ("E1" ?É) ; LATIN CAPITAL LETTER E WITH ACUTE | |
90 | ("e6" ?ê) ; LATIN SMALL LETTER E WITH CIRCUMFLEX | |
91 | ("E6" ?Ê) ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX | |
92 | ("i2" ?ì) ; LATIN SMALL LETTER I WITH GRAVE | |
93 | ("I2" ?Ì) ; LATIN CAPITAL LETTER I WITH GRAVE | |
94 | ("i1" ?í) ; LATIN SMALL LETTER I WITH ACUTE | |
95 | ("I1" ?Í) ; LATIN CAPITAL LETTER I WITH ACUTE | |
96 | ("o2" ?ò) ; LATIN SMALL LETTER O WITH GRAVE | |
97 | ("O2" ?Ò) ; LATIN CAPITAL LETTER O WITH GRAVE | |
98 | ("o1" ?ó) ; LATIN SMALL LETTER O WITH ACUTE | |
99 | ("O1" ?Ó) ; LATIN CAPITAL LETTER O WITH ACUTE | |
100 | ("o6" ?ô) ; LATIN SMALL LETTER O WITH CIRCUMFLEX | |
101 | ("O6" ?Ô) ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX | |
102 | ("o4" ?õ) ; LATIN SMALL LETTER O WITH TILDE | |
103 | ("O4" ?Õ) ; LATIN CAPITAL LETTER O WITH TILDE | |
104 | ("u2" ?ù) ; LATIN SMALL LETTER U WITH GRAVE | |
105 | ("U2" ?Ù) ; LATIN CAPITAL LETTER U WITH GRAVE | |
106 | ("u1" ?ú) ; LATIN SMALL LETTER U WITH ACUTE | |
107 | ("U1" ?Ú) ; LATIN CAPITAL LETTER U WITH ACUTE | |
108 | ("y1" ?ý) ; LATIN SMALL LETTER Y WITH ACUTE | |
109 | ("Y1" ?Ý) ; LATIN CAPITAL LETTER Y WITH ACUTE | |
110 | ("a8" ?ă) ; LATIN SMALL LETTER A WITH BREVE | |
111 | ("A8" ?Ă) ; LATIN CAPITAL LETTER A WITH BREVE | |
112 | ("i4" ?ĩ) ; LATIN SMALL LETTER I WITH TILDE | |
113 | ("I4" ?Ĩ) ; LATIN CAPITAL LETTER I WITH TILDE | |
114 | ("u4" ?ũ) ; LATIN SMALL LETTER U WITH TILDE | |
115 | ("U4" ?Ũ) ; LATIN CAPITAL LETTER U WITH TILDE | |
116 | ("o7" ?ơ) ; LATIN SMALL LETTER O WITH HORN | |
117 | ("O7" ?Ơ) ; LATIN CAPITAL LETTER O WITH HORN | |
118 | ("u7" ?ư) ; LATIN SMALL LETTER U WITH HORN | |
119 | ("U7" ?Ư) ; LATIN CAPITAL LETTER U WITH HORN | |
120 | ("a5" ?ạ) ; LATIN SMALL LETTER A WITH DOT BELOW | |
121 | ("A5" ?Ạ) ; LATIN CAPITAL LETTER A WITH DOT BELOW | |
122 | ("a3" ?ả) ; LATIN SMALL LETTER A WITH HOOK ABOVE | |
123 | ("A3" ?Ả) ; LATIN CAPITAL LETTER A WITH HOOK ABOVE | |
124 | ("a61" ?ấ) ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE | |
125 | ("A61" ?Ấ) ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE | |
126 | ("a62" ?ầ) ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE | |
127 | ("A62" ?Ầ) ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE | |
128 | ("a63" ?ẩ) ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND HO6K ABOVE | |
129 | ("A63" ?Ẩ) ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HO6K ABOVE | |
130 | ("a64" ?ẫ) ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE | |
131 | ("A64" ?Ẫ) ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE | |
132 | ("a65" ?ậ) ; LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW | |
133 | ("A65" ?Ậ) ; LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW | |
134 | ("a81" ?ắ) ; LATIN SMALL LETTER A WITH BREVE AND ACUTE | |
135 | ("A81" ?Ắ) ; LATIN CAPITAL LETTER A WITH BREVE AND ACUTE | |
136 | ("a82" ?ằ) ; LATIN SMALL LETTER A WITH BREVE AND GRAVE | |
137 | ("A82" ?Ằ) ; LATIN CAPITAL LETTER A WITH BREVE AND GRAVE | |
138 | ("a83" ?ẳ) ; LATIN SMALL LETTER A WITH BREVE AND HO6K ABOVE | |
139 | ("A83" ?Ẳ) ; LATIN CAPITAL LETTER A WITH BREVE AND HO6K ABOVE | |
140 | ("a84" ?ẵ) ; LATIN SMALL LETTER A WITH BREVE AND TILDE | |
141 | ("A84" ?Ẵ) ; LATIN CAPITAL LETTER A WITH BREVE AND TILDE | |
142 | ("a85" ?ặ) ; LATIN SMALL LETTER A WITH BREVE AND DOT BELOW | |
143 | ("A85" ?Ặ) ; LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW | |
144 | ("e5" ?ẹ) ; LATIN SMALL LETTER E WITH DOT BELOW | |
145 | ("E5" ?Ẹ) ; LATIN CAPITAL LETTER E WITH DOT BELOW | |
146 | ("e3" ?ẻ) ; LATIN SMALL LETTER E WITH HO6K ABOVE | |
147 | ("E3" ?Ẻ) ; LATIN CAPITAL LETTER E WITH HO6K ABOVE | |
148 | ("e4" ?ẽ) ; LATIN SMALL LETTER E WITH TILDE | |
149 | ("E4" ?Ẽ) ; LATIN CAPITAL LETTER E WITH TILDE | |
150 | ("e61" ?ế) ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE | |
151 | ("E61" ?Ế) ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE | |
152 | ("e62" ?ề) ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE | |
153 | ("E62" ?Ề) ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE | |
154 | ("e63" ?ể) ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND HO6K ABOVE | |
155 | ("E63" ?Ể) ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HO6K ABOVE | |
156 | ("e64" ?ễ) ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE | |
157 | ("E64" ?Ễ) ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE | |
158 | ("e65" ?ệ) ; LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW | |
159 | ("E65" ?Ệ) ; LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW | |
160 | ("i3" ?ỉ) ; LATIN SMALL LETTER I WITH HO6K ABOVE | |
161 | ("I3" ?Ỉ) ; LATIN CAPITAL LETTER I WITH HO6K ABOVE | |
162 | ("i5" ?ị) ; LATIN SMALL LETTER I WITH DOT BELOW | |
163 | ("I5" ?Ị) ; LATIN CAPITAL LETTER I WITH DOT BELOW | |
164 | ("o5" ?ọ) ; LATIN SMALL LETTER O WITH DOT BELOW | |
165 | ("O5" ?Ọ) ; LATIN CAPITAL LETTER O WITH DOT BELOW | |
166 | ("o3" ?ỏ) ; LATIN SMALL LETTER O WITH HO6K ABOVE | |
167 | ("O3" ?Ỏ) ; LATIN CAPITAL LETTER O WITH HO6K ABOVE | |
168 | ("o61" ?ố) ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE | |
169 | ("O61" ?Ố) ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE | |
170 | ("o62" ?ồ) ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE | |
171 | ("O62" ?Ồ) ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE | |
172 | ("o63" ?ổ) ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND HO6K ABOVE | |
173 | ("O63" ?Ổ) ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HO6K ABOVE | |
174 | ("o64" ?ỗ) ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE | |
175 | ("O64" ?Ỗ) ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE | |
176 | ("o65" ?ộ) ; LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELO7 | |
177 | ("O65" ?Ộ) ; LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELO7 | |
178 | ("o71" ?ớ) ; LATIN SMALL LETTER O WITH HORN AND ACUTE | |
179 | ("O71" ?Ớ) ; LATIN CAPITAL LETTER O WITH HORN AND ACUTE | |
180 | ("o72" ?ờ) ; LATIN SMALL LETTER O WITH HORN AND GRAVE | |
181 | ("O72" ?Ờ) ; LATIN CAPITAL LETTER O WITH HORN AND GRAVE | |
182 | ("o73" ?ở) ; LATIN SMALL LETTER O WITH HORN AND HO6K ABOVE | |
183 | ("O73" ?Ở) ; LATIN CAPITAL LETTER O WITH HORN AND HO6K ABOVE | |
184 | ("o74" ?ỡ) ; LATIN SMALL LETTER O WITH HORN AND TILDE | |
185 | ("O74" ?Ỡ) ; LATIN CAPITAL LETTER O WITH HORN AND TILDE | |
186 | ("o75" ?ợ) ; LATIN SMALL LETTER O WITH HORN AND DOT BELO7 | |
187 | ("O75" ?Ợ) ; LATIN CAPITAL LETTER O WITH HORN AND DOT BELO7 | |
188 | ("u5" ?ụ) ; LATIN SMALL LETTER U WITH DOT BELO7 | |
189 | ("U5" ?Ụ) ; LATIN CAPITAL LETTER U WITH DOT BELO7 | |
190 | ("u3" ?ủ) ; LATIN SMALL LETTER U WITH HO6K ABOVE | |
191 | ("U3" ?Ủ) ; LATIN CAPITAL LETTER U WITH HO6K ABOVE | |
192 | ("u71" ?ứ) ; LATIN SMALL LETTER U WITH HORN AND ACUTE | |
193 | ("U71" ?Ứ) ; LATIN CAPITAL LETTER U WITH HORN AND ACUTE | |
194 | ("u72" ?ừ) ; LATIN SMALL LETTER U WITH HORN AND GRAVE | |
195 | ("U72" ?Ừ) ; LATIN CAPITAL LETTER U WITH HORN AND GRAVE | |
196 | ("u73" ?ử) ; LATIN SMALL LETTER U WITH HORN AND HO6K ABOVE | |
197 | ("U73" ?Ử) ; LATIN CAPITAL LETTER U WITH HORN AND HO6K ABOVE | |
198 | ("u74" ?ữ) ; LATIN SMALL LETTER U WITH HORN AND TILDE | |
199 | ("U74" ?Ữ) ; LATIN CAPITAL LETTER U WITH HORN AND TILDE | |
200 | ("u75" ?ự) ; LATIN SMALL LETTER U WITH HORN AND DOT BELO7 | |
201 | ("U75" ?Ự) ; LATIN CAPITAL LETTER U WITH HORN AND DOT BELO7 | |
202 | ("y2" ?ỳ) ; LATIN SMALL LETTER Y WITH GRAVE | |
203 | ("Y2" ?Ỳ) ; LATIN CAPITAL LETTER Y WITH GRAVE | |
204 | ("y5" ?ỵ) ; LATIN SMALL LETTER Y WITH DOT BELO7 | |
205 | ("Y5" ?Ỵ) ; LATIN CAPITAL LETTER Y WITH DOT BELO7 | |
206 | ("y3" ?ỷ) ; LATIN SMALL LETTER Y WITH HO6K ABOVE | |
207 | ("Y3" ?Ỷ) ; LATIN CAPITAL LETTER Y WITH HO6K ABOVE | |
208 | ("y4" ?ỹ) ; LATIN SMALL LETTER Y WITH TILDE | |
209 | ("Y4" ?Ỹ) ; LATIN CAPITAL LETTER Y WITH TILDE | |
210 | ("d9" ?đ) ; LATIN SMALL LETTER D WITH STROKE | |
211 | ("D9" ?Đ) ; LATIN CAPITAL LETTER D WITH STROKE | |
212 | ;("$$" ?₫) ; U+20AB DONG SIGN (#### check) | |
bf67e61f NTND |
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: | |
4b725a70 | 304 | ;; coding: utf-8 |
bf67e61f | 305 | ;; End: |