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">
371 <surrounding-text-flag/>
372 <integer>-2</integer>
376 <branch mname="map-consonant">
384 <varref vname="NST"/>
386 <symbol>state-after-c</symbol>
391 <branch mname="map-consonant-ext">
399 <varref vname="NST"/>
401 <symbol>state-after-c</symbol>
406 <branch mname="map-vowel">
411 <varref vname="V-1"/>
419 <symbol>state-after-v</symbol>
422 <branch mname="map-vowel-ext">
427 <varref vname="V-1"/>
435 <symbol>state-after-v</symbol>
438 <branch mname="map-temporary-escape">
440 <symbol>state-temporary-escape</symbol>
443 <branch mname="map-permanent-escape">
445 <symbol>state-escape-in-normal-mode</symbol>
448 <branch mname="map-smart-quotes"/>
450 <state sname="state-after-c">
451 <branch mname="map-vowel">
456 <varref vname="V-1"/>
464 <symbol>state-after-v</symbol>
467 <branch mname="map-vowel-ext">
472 <varref vname="V-1"/>
480 <symbol>state-after-v</symbol>
484 <state sname="state-after-v">
485 <branch mname="map-consonant">
487 <symbol>state-after-vc</symbol>
490 <branch mname="map-consonant-ext">
492 <symbol>state-after-vc</symbol>
495 <branch mname="map-vowel">
500 <varref vname="V-2"/>
503 <varref vname="V-1"/>
516 <funcall fname="macro-handle-mark"/>
521 <branch mname="map-vowel-ext">
526 <varref vname="V-2"/>
529 <varref vname="V-1"/>
542 <funcall fname="macro-handle-mark"/>
547 <branch mname="map-tone-mark">
555 <symbol>state-after-t</symbol>
558 <branch mname="map-backspace">
564 <varref vname="V-3"/>
566 <varref vname="V-2"/>
569 <varref vname="V-3"/>
577 <varref vname="TPLACE"/>
587 <varref vname="V-2"/>
589 <varref vname="V-2"/>
597 <varref vname="TPLACE"/>
609 <symbol>state-init</symbol>
615 <state sname="state-after-vc">
617 <set vname="C-AFTER-V">
621 <branch mname="map-consonant">
622 <add vname="C-AFTER-V">
626 <branch mname="map-consonant-ext">
627 <add vname="C-AFTER-V">
631 <branch mname="map-tone-mark">
639 <symbol>state-after-t</symbol>
642 <branch mname="map-backspace">
646 <sub vname="C-AFTER-V">
652 <varref vname="C-AFTER-V"/>
656 <symbol>state-after-v</symbol>
662 <state sname="state-after-t">
664 <set vname="CURRENT-SELECT">
665 <integer>-1</integer>
668 <branch mname="map-tone-mark">
672 <varref vname="CURRENT-SELECT"/>
673 <varref vname="SELECT"/>
682 <marker>@></marker>
685 <symbol>state-temporary-escape</symbol>
693 <funcall fname="macro-handle-mark"/>
694 <set vname="CURRENT-SELECT">
695 <varref vname="SELECT"/>
703 <varref vname="C-AFTER-V"/>
705 <symbol>state-after-vc</symbol>
711 <symbol>state-after-v</symbol>
717 <state sname="state-temporary-escape">
722 <branch mname="map-alnum">
726 <state sname="state-escape-in-normal-mode">
728 <branch mname="map-permanent-escape">
733 <symbol>state-init</symbol>
738 <symbol>state-permanent-escape</symbol>
742 <state sname="state-permanent-escape">
749 <branch mname="map-permanent-escape">
751 <symbol>state-escape-in-permanent-escape</symbol>
758 <state sname="state-escape-in-permanent-escape">
760 <branch mname="map-permanent-escape">
766 <symbol>state-permanent-escape</symbol>