2 <input-method xmlns="http://www.m17n.org/MIM">
4 <language>vi</language>
8 <gettext>Vietnames input method using the TELEX key sequence.
9 Typing Backslash ('\') toggles the normal mode and English mode.
10 The following variables are customizable:
11 tone-mark-on-last: control tone mark position in equivocal cases
12 backspace-is-undo: control the action of Backspace key (delete or undo)</gettext>
16 <defvar vname="tone-mark-on-last">
18 <gettext>Flag to control tone mark position in equivocal cases.
19 If this variable is 0 (the default), put tone mark on the first vowel
20 in such equivocal cases as "oa", "oe", "uy".
21 Otherwise, put tone mark on the last vowel.</gettext>
29 <defvar vname="backspace-is-undo">
31 <gettext>Flag to control the action of Backspace key (delete or undo).
32 If this variable is 0 (the default), Backspace key deletes the previous
33 character (e.g. "q u a i s BS" => "quá").
34 If the value is 1, Backspace key undoes the previous key
35 (e.g. "q u a i s BS" => "quai").</gettext>
45 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="vi-base.mimx" xpointer="xmlns(mim=http://www.m17n.org/MIM)xpointer(//mim:defmacro)">
47 <language>t</language>
49 <extra-id>vi-base</extra-id>
51 <section>macro</section>
55 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="vi-base.mimx" xpointer="xmlns(mim=http://www.m17n.org/MIM)xpointer(//mim:map)">
57 <language>t</language>
59 <extra-id>vi-base</extra-id>
61 <section>map</section>
63 <map mname="map-vowel-ext">
69 <string>âấầẩẫậ</string>
77 <string>ÂẤẦẨẪẬ</string>
85 <string>ÂẤẦẨẪẬ</string>
93 <string>ăắằẳẵặ</string>
101 <string>ĂẮẰẲẴẶ</string>
109 <string>ĂẮẰẲẴẶ</string>
117 <string>êếềểễệ</string>
125 <string>ÊẾỀỂỄỆ</string>
133 <string>ÊẾỀỂỄỆ</string>
141 <string>ôốồổỗộ</string>
149 <string>ÔỐỒỔỖỘ</string>
157 <string>ÔỐỒỔỖỘ</string>
165 <string>ơớờởỡợ</string>
173 <string>ƠỚỜỞỠỢ</string>
181 <string>ƠỚỜỞỠỢ</string>
189 <string>ưứừửữự</string>
197 <string>ƯỨỪỬỮỰ</string>
205 <string>ƯỨỪỬỮỰ</string>
215 <varref vname="V-1"/>
219 <string>ưứừửữự</string>
237 <varref vname="V-1"/>
241 <string>ƯỨỪỬỮỰ</string>
257 <string>oóòỏõọ</string>
260 <string>oóòỏõọ</string>
263 <varref vname="V-1"/>
266 <integer>111</integer>
274 <string>OÓÒỎÕỌ</string>
277 <string>OÓÒỎÕỌ</string>
280 <varref vname="V-1"/>
283 <integer>79</integer>
291 <string>OÓÒỎÕỌ</string>
294 <string>oóòỏõọ</string>
297 <varref vname="V-1"/>
300 <integer>79</integer>
304 <map mname="map-consonant-ext">
310 <integer>273</integer>
318 <integer>272</integer>
326 <integer>272</integer>
330 <map mname="map-tone-mark">
339 <integer>122</integer>
350 <integer>90</integer>
361 <integer>115</integer>
372 <integer>83</integer>
383 <integer>102</integer>
394 <integer>70</integer>
405 <integer>114</integer>
416 <integer>82</integer>
427 <integer>120</integer>
438 <integer>88</integer>
449 <integer>106</integer>
460 <integer>74</integer>
464 <map mname="map-consonant-or-tone-mark">
470 <integer>122</integer>
478 <integer>115</integer>
486 <integer>102</integer>
494 <integer>114</integer>
502 <integer>120</integer>
510 <integer>106</integer>
518 <integer>90</integer>
526 <integer>83</integer>
534 <integer>70</integer>
542 <integer>82</integer>
550 <integer>88</integer>
558 <integer>74</integer>
562 <map mname="map-temporary-escape">
712 <integer>119</integer>
720 <integer>87</integer>
728 <integer>87</integer>
736 <integer>122</integer>
744 <integer>90</integer>
752 <integer>90</integer>
760 <integer>115</integer>
768 <integer>83</integer>
776 <integer>83</integer>
784 <integer>102</integer>
792 <integer>70</integer>
800 <integer>70</integer>
808 <integer>114</integer>
816 <integer>82</integer>
824 <integer>82</integer>
832 <integer>120</integer>
840 <integer>88</integer>
848 <integer>88</integer>
856 <integer>106</integer>
864 <integer>74</integer>
872 <integer>74</integer>
878 <state sname="state-init">
894 <set vname="C-AFTER-V">
902 <surrounding-text-flag/>
903 <integer>-2</integer>
907 <branch mname="map-consonant">
915 <varref vname="NST"/>
917 <symbol>state-after-c</symbol>
922 <branch mname="map-consonant-ext">
930 <varref vname="NST"/>
932 <symbol>state-after-c</symbol>
937 <branch mname="map-consonant-or-tone-mark">
945 <integer>102</integer>
951 <integer>106</integer>
957 <integer>122</integer>
963 <integer>70</integer>
969 <integer>74</integer>
975 <integer>90</integer>
979 <symbol>state-temporary-escape</symbol>
991 <varref vname="NST"/>
993 <symbol>state-after-c</symbol>
1000 <branch mname="map-vowel">
1005 <varref vname="V-1"/>
1009 <marker>@-1</marker>
1013 <symbol>state-after-v</symbol>
1016 <branch mname="map-vowel-ext">
1021 <varref vname="V-1"/>
1025 <marker>@-1</marker>
1029 <symbol>state-after-v</symbol>
1032 <branch mname="map-temporary-escape">
1034 <symbol>state-temporary-escape</symbol>
1037 <branch mname="map-permanent-escape">
1039 <symbol>state-escape-in-normal-mode</symbol>
1042 <branch mname="map-smart-quotes"/>
1044 <state sname="state-after-c">
1045 <branch mname="map-vowel">
1050 <varref vname="V-1"/>
1054 <marker>@-1</marker>
1058 <symbol>state-after-v</symbol>
1061 <branch mname="map-vowel-ext">
1066 <varref vname="V-1"/>
1070 <marker>@-1</marker>
1074 <symbol>state-after-v</symbol>
1078 <state sname="state-after-v">
1079 <branch mname="map-ending-1st-consonant">
1080 <funcall fname="macro-handle-mark"/>
1082 <symbol>state-after-vc</symbol>
1085 <branch mname="map-vowel">
1090 <varref vname="V-2"/>
1093 <varref vname="V-1"/>
1097 <marker>@-1</marker>
1104 <integer>0</integer>
1106 <funcall fname="macro-handle-mark"/>
1111 <branch mname="map-vowel-ext">
1116 <varref vname="V-2"/>
1119 <varref vname="V-1"/>
1123 <marker>@-1</marker>
1130 <integer>0</integer>
1132 <funcall fname="macro-handle-mark"/>
1137 <branch mname="map-ending-1st-notviet-consonant">
1139 <symbol>state-temporary-escape</symbol>
1142 <branch mname="map-consonant-or-tone-mark">
1147 <integer>1</integer>
1150 <symbol>state-after-t</symbol>
1153 <branch mname="map-backspace">
1159 <varref vname="V-3"/>
1161 <varref vname="V-2"/>
1164 <varref vname="V-3"/>
1167 <integer>0</integer>
1172 <varref vname="TPLACE"/>
1173 <integer>2</integer>
1175 <set vname="SELECT">
1176 <integer>0</integer>
1180 <funcall fname="macro-handle-mark"/>
1183 <varref vname="V-2"/>
1185 <varref vname="V-2"/>
1188 <integer>0</integer>
1193 <varref vname="TPLACE"/>
1194 <integer>1</integer>
1196 <set vname="SELECT">
1197 <integer>0</integer>
1201 <funcall fname="macro-handle-mark"/>
1204 <integer>1</integer>
1206 <symbol>state-init</symbol>
1212 <state sname="state-after-vc">
1214 <set vname="C-AFTER-V">
1215 <integer>1</integer>
1218 <branch mname="map-ending-2nd-consonant">
1224 <marker>@-2</marker>
1226 <integer>110</integer>
1230 <marker>@-2</marker>
1232 <integer>99</integer>
1236 <marker>@-2</marker>
1238 <integer>78</integer>
1242 <marker>@-2</marker>
1244 <integer>67</integer>
1247 <add vname="C-AFTER-V">
1248 <integer>1</integer>
1252 <integer>1</integer>
1254 <symbol>state-temporary-escape</symbol>
1259 <branch mname="map-ending-1st-notviet-consonant">
1261 <symbol>state-temporary-escape</symbol>
1264 <branch mname="map-consonant-or-tone-mark">
1269 <integer>1</integer>
1272 <symbol>state-after-t</symbol>
1275 <branch mname="map-vowel">
1277 <symbol>state-temporary-escape</symbol>
1280 <branch mname="map-vowel-ext">
1282 <symbol>state-temporary-escape</symbol>
1285 <branch mname="map-backspace">
1289 <sub vname="C-AFTER-V">
1290 <integer>1</integer>
1292 <funcall fname="macro-handle-mark"/>
1296 <varref vname="C-AFTER-V"/>
1297 <integer>0</integer>
1300 <symbol>state-after-v</symbol>
1306 <state sname="state-after-t">
1308 <set vname="CURRENT-SELECT">
1309 <integer>-1</integer>
1312 <branch mname="map-tone-mark">
1316 <varref vname="CURRENT-SELECT"/>
1317 <varref vname="SELECT"/>
1323 <integer>0</integer>
1326 <marker>@></marker>
1329 <symbol>state-temporary-escape</symbol>
1333 <integer>1</integer>
1337 <funcall fname="macro-handle-mark"/>
1338 <set vname="CURRENT-SELECT">
1339 <varref vname="SELECT"/>
1347 <varref vname="C-AFTER-V"/>
1349 <symbol>state-after-vc</symbol>
1353 <integer>1</integer>
1355 <symbol>state-after-v</symbol>
1361 <state sname="state-temporary-escape">
1366 <branch mname="map-alnum">
1370 <state sname="state-escape-in-normal-mode">
1372 <branch mname="map-permanent-escape">
1377 <symbol>state-init</symbol>
1382 <symbol>state-permanent-escape</symbol>
1386 <state sname="state-permanent-escape">
1389 <set vname="ESCAPE">
1390 <integer>1</integer>
1393 <branch mname="map-permanent-escape">
1395 <symbol>state-escape-in-permanent-escape</symbol>
1402 <state sname="state-escape-in-permanent-escape">
1404 <branch mname="map-permanent-escape">
1410 <symbol>state-permanent-escape</symbol>