2 <input-method xmlns="http://www.m17n.org/MIM">
4 <language>vi</language>
8 <gettext>Vietnames input method using the VNI 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>
161 <map mname="map-consonant-ext">
167 <integer>273</integer>
175 <integer>272</integer>
179 <map mname="map-tone-mark">
188 <integer>48</integer>
199 <integer>49</integer>
210 <integer>50</integer>
221 <integer>51</integer>
232 <integer>52</integer>
243 <integer>53</integer>
247 <map mname="map-temporary-escape">
347 <state sname="state-init">
363 <set vname="C-AFTER-V">
370 <branch mname="map-consonant">
377 <branch mname="map-consonant-ext">
384 <branch mname="map-vowel">
389 <varref vname="V-1"/>
397 <symbol>state-after-v</symbol>
400 <branch mname="map-vowel-ext">
405 <varref vname="V-1"/>
413 <symbol>state-after-v</symbol>
416 <branch mname="map-temporary-escape">
418 <symbol>state-temporary-escape</symbol>
421 <branch mname="map-permanent-escape">
423 <symbol>state-escape-in-normal-mode</symbol>
426 <branch mname="map-smart-quotes"/>
428 <state sname="state-after-v">
429 <branch mname="map-consonant">
431 <symbol>state-after-vc</symbol>
434 <branch mname="map-consonant-ext">
436 <symbol>state-after-vc</symbol>
439 <branch mname="map-vowel">
444 <varref vname="V-2"/>
447 <varref vname="V-1"/>
460 <funcall fname="macro-handle-mark"/>
465 <branch mname="map-vowel-ext">
470 <varref vname="V-2"/>
473 <varref vname="V-1"/>
486 <funcall fname="macro-handle-mark"/>
491 <branch mname="map-tone-mark">
499 <symbol>state-after-t</symbol>
502 <branch mname="map-backspace">
508 <varref vname="V-3"/>
510 <varref vname="V-2"/>
513 <varref vname="V-3"/>
521 <varref vname="TPLACE"/>
531 <varref vname="V-2"/>
533 <varref vname="V-2"/>
541 <varref vname="TPLACE"/>
553 <symbol>state-init</symbol>
559 <state sname="state-after-vc">
561 <set vname="C-AFTER-V">
565 <branch mname="map-consonant">
566 <add vname="C-AFTER-V">
570 <branch mname="map-consonant-ext">
571 <add vname="C-AFTER-V">
575 <branch mname="map-tone-mark">
583 <symbol>state-after-t</symbol>
586 <branch mname="map-backspace">
590 <sub vname="C-AFTER-V">
596 <varref vname="C-AFTER-V"/>
600 <symbol>state-after-v</symbol>
606 <state sname="state-after-t">
608 <set vname="CURRENT-SELECT">
609 <integer>-1</integer>
612 <branch mname="map-tone-mark">
616 <varref vname="CURRENT-SELECT"/>
617 <varref vname="SELECT"/>
626 <marker>@></marker>
629 <symbol>state-temporary-escape</symbol>
637 <funcall fname="macro-handle-mark"/>
638 <set vname="CURRENT-SELECT">
639 <varref vname="SELECT"/>
647 <varref vname="C-AFTER-V"/>
649 <symbol>state-after-vc</symbol>
655 <symbol>state-after-v</symbol>
661 <state sname="state-temporary-escape">
666 <branch mname="map-alnum">
670 <state sname="state-escape-in-normal-mode">
672 <branch mname="map-permanent-escape">
677 <symbol>state-init</symbol>
682 <symbol>state-permanent-escape</symbol>
686 <state sname="state-permanent-escape">
693 <branch mname="map-permanent-escape">
695 <symbol>state-escape-in-permanent-escape</symbol>
702 <state sname="state-escape-in-permanent-escape">
704 <branch mname="map-permanent-escape">
710 <symbol>state-permanent-escape</symbol>