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">
901 <branch mname="map-consonant">
908 <branch mname="map-consonant-ext">
915 <branch mname="map-consonant-or-tone-mark">
923 <integer>102</integer>
929 <integer>106</integer>
935 <integer>122</integer>
941 <integer>70</integer>
947 <integer>74</integer>
953 <integer>90</integer>
957 <symbol>state-temporary-escape</symbol>
970 <branch mname="map-vowel">
975 <varref vname="V-1"/>
983 <symbol>state-after-v</symbol>
986 <branch mname="map-vowel-ext">
991 <varref vname="V-1"/>
999 <symbol>state-after-v</symbol>
1002 <branch mname="map-temporary-escape">
1004 <symbol>state-temporary-escape</symbol>
1007 <branch mname="map-permanent-escape">
1009 <symbol>state-escape-in-normal-mode</symbol>
1012 <branch mname="map-smart-quotes"/>
1014 <state sname="state-after-v">
1015 <branch mname="map-ending-1st-consonant">
1016 <funcall fname="macro-handle-mark"/>
1018 <symbol>state-after-vc</symbol>
1021 <branch mname="map-vowel">
1026 <varref vname="V-2"/>
1029 <varref vname="V-1"/>
1033 <marker>@-1</marker>
1040 <integer>0</integer>
1042 <funcall fname="macro-handle-mark"/>
1047 <branch mname="map-vowel-ext">
1052 <varref vname="V-2"/>
1055 <varref vname="V-1"/>
1059 <marker>@-1</marker>
1066 <integer>0</integer>
1068 <funcall fname="macro-handle-mark"/>
1073 <branch mname="map-ending-1st-notviet-consonant">
1075 <symbol>state-temporary-escape</symbol>
1078 <branch mname="map-consonant-or-tone-mark">
1083 <integer>1</integer>
1086 <symbol>state-after-t</symbol>
1089 <branch mname="map-backspace">
1095 <varref vname="V-3"/>
1097 <varref vname="V-2"/>
1100 <varref vname="V-3"/>
1103 <integer>0</integer>
1108 <varref vname="TPLACE"/>
1109 <integer>2</integer>
1111 <set vname="SELECT">
1112 <integer>0</integer>
1116 <funcall fname="macro-handle-mark"/>
1119 <varref vname="V-2"/>
1121 <varref vname="V-2"/>
1124 <integer>0</integer>
1129 <varref vname="TPLACE"/>
1130 <integer>1</integer>
1132 <set vname="SELECT">
1133 <integer>0</integer>
1137 <funcall fname="macro-handle-mark"/>
1140 <integer>1</integer>
1142 <symbol>state-init</symbol>
1148 <state sname="state-after-vc">
1150 <set vname="C-AFTER-V">
1151 <integer>1</integer>
1154 <branch mname="map-ending-2nd-consonant">
1160 <marker>@-2</marker>
1162 <integer>110</integer>
1166 <marker>@-2</marker>
1168 <integer>99</integer>
1172 <marker>@-2</marker>
1174 <integer>78</integer>
1178 <marker>@-2</marker>
1180 <integer>67</integer>
1183 <add vname="C-AFTER-V">
1184 <integer>1</integer>
1188 <integer>1</integer>
1190 <symbol>state-temporary-escape</symbol>
1195 <branch mname="map-ending-1st-notviet-consonant">
1197 <symbol>state-temporary-escape</symbol>
1200 <branch mname="map-consonant-or-tone-mark">
1205 <integer>1</integer>
1208 <symbol>state-after-t</symbol>
1211 <branch mname="map-vowel">
1213 <symbol>state-temporary-escape</symbol>
1216 <branch mname="map-vowel-ext">
1218 <symbol>state-temporary-escape</symbol>
1221 <branch mname="map-backspace">
1225 <sub vname="C-AFTER-V">
1226 <integer>1</integer>
1228 <funcall fname="macro-handle-mark"/>
1232 <varref vname="C-AFTER-V"/>
1233 <integer>0</integer>
1236 <symbol>state-after-v</symbol>
1242 <state sname="state-after-t">
1244 <set vname="CURRENT-SELECT">
1245 <integer>-1</integer>
1248 <branch mname="map-tone-mark">
1252 <varref vname="CURRENT-SELECT"/>
1253 <varref vname="SELECT"/>
1259 <integer>0</integer>
1262 <marker>@></marker>
1265 <symbol>state-temporary-escape</symbol>
1269 <integer>1</integer>
1273 <funcall fname="macro-handle-mark"/>
1274 <set vname="CURRENT-SELECT">
1275 <varref vname="SELECT"/>
1283 <varref vname="C-AFTER-V"/>
1285 <symbol>state-after-vc</symbol>
1289 <integer>1</integer>
1291 <symbol>state-after-v</symbol>
1297 <state sname="state-temporary-escape">
1302 <branch mname="map-alnum">
1306 <state sname="state-escape-in-normal-mode">
1308 <branch mname="map-permanent-escape">
1313 <symbol>state-init</symbol>
1318 <symbol>state-permanent-escape</symbol>
1322 <state sname="state-permanent-escape">
1325 <set vname="ESCAPE">
1326 <integer>1</integer>
1329 <branch mname="map-permanent-escape">
1331 <symbol>state-escape-in-permanent-escape</symbol>
1338 <state sname="state-escape-in-permanent-escape">
1340 <branch mname="map-permanent-escape">
1346 <symbol>state-permanent-escape</symbol>