+++ /dev/null
-<?xml version='1.0'?>
-<input-method xmlns="http://www.m17n.org/MIM">
- <tags>
- <language>vi</language>
- <name>tcvn</name>
- </tags>
- <description>
- <gettext>Vietnames input method using the TCVN6064 sequence.
-Typing Backslash ('\') toggles the normal mode and English mode.
-The following variables are customizable:
- tone-mark-on-last: control tone mark position in equivocal cases
- backspace-is-undo: control the action of Backspace key (delete or undo)</gettext>
- </description>
- <title>Ắ(TCVN)</title>
- <variable-list>
- <defvar vname="tone-mark-on-last">
- <description>
- <gettext>Flag to control tone mark position in equivocal cases.
-If this variable is 0 (the default), put tone mark on the first vowel
-in such equivocal cases as "oa", "oe", "uy".
-Otherwise, put tone mark on the last vowel.</gettext>
- </description>
- <integer>0</integer>
- <possible-value>
- <integer>0</integer>
- <integer>1</integer>
- </possible-value>
- </defvar>
- <defvar vname="backspace-is-undo">
- <description>
- <gettext>Flag to control the action of Backspace key (delete or undo).
-If this variable is 0 (the default), Backspace key deletes the previous
-character (e.g. "q u a i s BS" => "quá").
-If the value is 1, Backspace key undoes the previous key
-(e.g. "q u a i s BS" => "quai").</gettext>
- </description>
- <integer>0</integer>
- <possible-value>
- <integer>0</integer>
- <integer>1</integer>
- </possible-value>
- </defvar>
- </variable-list>
- <macro-list>
- <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)">
- <tags>
- <language>t</language>
- <name>nil</name>
- <extra-id>vi-base</extra-id>
- </tags>
- <section>macro</section>
- </xi:include>
- </macro-list>
- <map-list>
- <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)">
- <tags>
- <language>t</language>
- <name>nil</name>
- <extra-id>vi-base</extra-id>
- </tags>
- <section>map</section>
- </xi:include>
- <map mname="map-vowel-ext">
- <rule>
- <keyseq>
- <string>2</string>
- </keyseq>
- <insert-candidates>
- <string>âấầẩẫậ</string>
- </insert-candidates>
- </rule>
- <rule>
- <keyseq>
- <string>@</string>
- </keyseq>
- <insert-candidates>
- <string>ÂẤẦẨẪẬ</string>
- </insert-candidates>
- </rule>
- <rule>
- <keyseq>
- <string>1</string>
- </keyseq>
- <insert-candidates>
- <string>ăắằẳẵặ</string>
- </insert-candidates>
- </rule>
- <rule>
- <keyseq>
- <string>!</string>
- </keyseq>
- <insert-candidates>
- <string>ĂẮẰẲẴẶ</string>
- </insert-candidates>
- </rule>
- <rule>
- <keyseq>
- <string>3</string>
- </keyseq>
- <insert-candidates>
- <string>êếềểễệ</string>
- </insert-candidates>
- </rule>
- <rule>
- <keyseq>
- <string>#</string>
- </keyseq>
- <insert-candidates>
- <string>ÊẾỀỂỄỆ</string>
- </insert-candidates>
- </rule>
- <rule>
- <keyseq>
- <string>4</string>
- </keyseq>
- <insert-candidates>
- <string>ôốồổỗộ</string>
- </insert-candidates>
- </rule>
- <rule>
- <keyseq>
- <string>$</string>
- </keyseq>
- <insert-candidates>
- <string>ÔỐỒỔỖỘ</string>
- </insert-candidates>
- </rule>
- <rule>
- <keyseq>
- <string>]</string>
- </keyseq>
- <insert-candidates>
- <string>ơớờởỡợ</string>
- </insert-candidates>
- </rule>
- <rule>
- <keyseq>
- <string>}</string>
- </keyseq>
- <insert-candidates>
- <string>ƠỚỜỞỠỢ</string>
- </insert-candidates>
- </rule>
- <rule>
- <keyseq>
- <string>[</string>
- </keyseq>
- <insert-candidates>
- <string>ưứừửữự</string>
- </insert-candidates>
- </rule>
- <rule>
- <keyseq>
- <string>{</string>
- </keyseq>
- <insert-candidates>
- <string>ƯỨỪỬỮỰ</string>
- </insert-candidates>
- </rule>
- </map>
- <map mname="map-consonant-ext">
- <rule>
- <keyseq>
- <string>0</string>
- </keyseq>
- <insert>
- <integer>273</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>)</string>
- </keyseq>
- <insert>
- <integer>272</integer>
- </insert>
- </rule>
- </map>
- <map mname="map-tone-mark">
- <rule>
- <keyseq>
- <string>8</string>
- </keyseq>
- <set vname="SELECT">
- <integer>1</integer>
- </set>
- <insert>
- <integer>49</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>5</string>
- </keyseq>
- <set vname="SELECT">
- <integer>2</integer>
- </set>
- <insert>
- <integer>50</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>6</string>
- </keyseq>
- <set vname="SELECT">
- <integer>3</integer>
- </set>
- <insert>
- <integer>51</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>7</string>
- </keyseq>
- <set vname="SELECT">
- <integer>4</integer>
- </set>
- <insert>
- <integer>52</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>9</string>
- </keyseq>
- <set vname="SELECT">
- <integer>5</integer>
- </set>
- <insert>
- <integer>53</integer>
- </insert>
- </rule>
- </map>
- <map mname="map-misc">
- <rule>
- <keyseq>
- <string>=</string>
- </keyseq>
- <insert>
- <integer>8363</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>==</string>
- </keyseq>
- <insert>
- <integer>61</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-1</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>49</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-2</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>50</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-3</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>51</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-4</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>52</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-5</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>53</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-6</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>54</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-7</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>55</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-8</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>56</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-9</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>57</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-0</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>48</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A--</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>45</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-=</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>61</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-\</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>92</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-[</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>91</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-]</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>93</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-!</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>33</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-@</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>64</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-#</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>35</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-$</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>36</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-%</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>37</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-^</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>94</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-&</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>38</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-*</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>42</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-(</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>40</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-)</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>41</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-_</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>95</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-+</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>43</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-|</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>124</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-{</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>123</integer>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <list>
- <symbol>A-}</symbol>
- </list>
- </keyseq>
- <insert>
- <integer>125</integer>
- </insert>
- </rule>
- </map>
- <map mname="map-temporary-escape">
- <rule>
- <keyseq>
- <string>22</string>
- </keyseq>
- <insert>
- <string>2</string>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>@@</string>
- </keyseq>
- <insert>
- <string>@</string>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>11</string>
- </keyseq>
- <insert>
- <string>1</string>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>!!</string>
- </keyseq>
- <insert>
- <string>!</string>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>33</string>
- </keyseq>
- <insert>
- <string>3</string>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>##</string>
- </keyseq>
- <insert>
- <string>##</string>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>44</string>
- </keyseq>
- <insert>
- <string>4</string>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>$$</string>
- </keyseq>
- <insert>
- <string>$</string>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>]]</string>
- </keyseq>
- <insert>
- <string>]</string>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>}}</string>
- </keyseq>
- <insert>
- <string>}</string>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>[[</string>
- </keyseq>
- <insert>
- <string>[</string>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>{{</string>
- </keyseq>
- <insert>
- <string>{</string>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>00</string>
- </keyseq>
- <insert>
- <string>0</string>
- </insert>
- </rule>
- <rule>
- <keyseq>
- <string>))</string>
- </keyseq>
- <insert>
- <string>)</string>
- </insert>
- </rule>
- </map>
- </map-list>
- <state-list>
- <state sname="state-init">
- <state-hook>
- <set vname="C">
- <char-at>
- <marker>@-1</marker>
- </char-at>
- </set>
- <set vname="V-1">
- <integer>0</integer>
- </set>
- <set vname="V-2">
- <integer>0</integer>
- </set>
- <set vname="V-3">
- <integer>0</integer>
- </set>
- <set vname="C-AFTER-V">
- <integer>0</integer>
- </set>
- <set vname="SELECT">
- <integer>0</integer>
- </set>
- <set vname="NST">
- <eq>
- <surrounding-text-flag/>
- <integer>-2</integer>
- </eq>
- </set>
- </state-hook>
- <branch mname="map-consonant">
- <set vname="C">
- <char-at>
- <marker>@-1</marker>
- </char-at>
- </set>
- <cond>
- <list>
- <varref vname="NST"/>
- <shift>
- <symbol>state-after-c</symbol>
- </shift>
- </list>
- </cond>
- </branch>
- <branch mname="map-consonant-ext">
- <set vname="C">
- <char-at>
- <marker>@-1</marker>
- </char-at>
- </set>
- <cond>
- <list>
- <varref vname="NST"/>
- <shift>
- <symbol>state-after-c</symbol>
- </shift>
- </list>
- </cond>
- </branch>
- <branch mname="map-vowel">
- <mark>
- <marker>M</marker>
- </mark>
- <set vname="V-2">
- <varref vname="V-1"/>
- </set>
- <set vname="V-1">
- <char-at>
- <marker>@-1</marker>
- </char-at>
- </set>
- <shift>
- <symbol>state-after-v</symbol>
- </shift>
- </branch>
- <branch mname="map-vowel-ext">
- <mark>
- <marker>M</marker>
- </mark>
- <set vname="V-2">
- <varref vname="V-1"/>
- </set>
- <set vname="V-1">
- <char-at>
- <marker>@-1</marker>
- </char-at>
- </set>
- <shift>
- <symbol>state-after-v</symbol>
- </shift>
- </branch>
- <branch mname="map-temporary-escape">
- <shift>
- <symbol>state-temporary-escape</symbol>
- </shift>
- </branch>
- <branch mname="map-permanent-escape">
- <shift>
- <symbol>state-escape-in-normal-mode</symbol>
- </shift>
- </branch>
- <branch mname="map-misc"/>
- <branch mname="map-smart-quotes"/>
- </state>
- <state sname="state-after-c">
- <branch mname="map-vowel">
- <mark>
- <marker>M</marker>
- </mark>
- <set vname="V-2">
- <varref vname="V-1"/>
- </set>
- <set vname="V-1">
- <char-at>
- <marker>@-1</marker>
- </char-at>
- </set>
- <shift>
- <symbol>state-after-v</symbol>
- </shift>
- </branch>
- <branch mname="map-vowel-ext">
- <mark>
- <marker>M</marker>
- </mark>
- <set vname="V-2">
- <varref vname="V-1"/>
- </set>
- <set vname="V-1">
- <char-at>
- <marker>@-1</marker>
- </char-at>
- </set>
- <shift>
- <symbol>state-after-v</symbol>
- </shift>
- </branch>
- </state>
- <state sname="state-after-v">
- <branch mname="map-consonant">
- <shift>
- <symbol>state-after-vc</symbol>
- </shift>
- </branch>
- <branch mname="map-consonant-ext">
- <shift>
- <symbol>state-after-vc</symbol>
- </shift>
- </branch>
- <branch mname="map-vowel">
- <mark>
- <marker>M</marker>
- </mark>
- <set vname="V-3">
- <varref vname="V-2"/>
- </set>
- <set vname="V-2">
- <varref vname="V-1"/>
- </set>
- <set vname="V-1">
- <char-at>
- <marker>@-1</marker>
- </char-at>
- </set>
- <move>
- <marker>T</marker>
- </move>
- <select>
- <integer>0</integer>
- </select>
- <funcall fname="macro-handle-mark"/>
- <move>
- <marker>M</marker>
- </move>
- </branch>
- <branch mname="map-vowel-ext">
- <mark>
- <marker>M</marker>
- </mark>
- <set vname="V-3">
- <varref vname="V-2"/>
- </set>
- <set vname="V-2">
- <varref vname="V-1"/>
- </set>
- <set vname="V-1">
- <char-at>
- <marker>@-1</marker>
- </char-at>
- </set>
- <move>
- <marker>T</marker>
- </move>
- <select>
- <integer>0</integer>
- </select>
- <funcall fname="macro-handle-mark"/>
- <move>
- <marker>M</marker>
- </move>
- </branch>
- <branch mname="map-tone-mark">
- <delete>
- <marker>@-</marker>
- </delete>
- <pushback>
- <integer>1</integer>
- </pushback>
- <shift>
- <symbol>state-after-t</symbol>
- </shift>
- </branch>
- <branch mname="map-backspace">
- <delete>
- <marker>@-</marker>
- </delete>
- <cond>
- <list>
- <varref vname="V-3"/>
- <set vname="V-1">
- <varref vname="V-2"/>
- </set>
- <set vname="V-2">
- <varref vname="V-3"/>
- </set>
- <set vname="V-3">
- <integer>0</integer>
- </set>
- <cond>
- <list>
- <gt>
- <varref vname="TPLACE"/>
- <integer>2</integer>
- </gt>
- <set vname="SELECT">
- <integer>0</integer>
- </set>
- </list>
- </cond>
- </list>
- <list>
- <varref vname="V-2"/>
- <set vname="V-1">
- <varref vname="V-2"/>
- </set>
- <set vname="V-2">
- <integer>0</integer>
- </set>
- <cond>
- <list>
- <gt>
- <varref vname="TPLACE"/>
- <integer>1</integer>
- </gt>
- <set vname="SELECT">
- <integer>0</integer>
- </set>
- </list>
- </cond>
- </list>
- <list>
- <integer>1</integer>
- <shift>
- <symbol>state-init</symbol>
- </shift>
- </list>
- </cond>
- </branch>
- </state>
- <state sname="state-after-vc">
- <state-hook>
- <set vname="C-AFTER-V">
- <integer>1</integer>
- </set>
- </state-hook>
- <branch mname="map-consonant">
- <add vname="C-AFTER-V">
- <integer>1</integer>
- </add>
- </branch>
- <branch mname="map-consonant-ext">
- <add vname="C-AFTER-V">
- <integer>1</integer>
- </add>
- </branch>
- <branch mname="map-tone-mark">
- <delete>
- <marker>@-</marker>
- </delete>
- <pushback>
- <integer>1</integer>
- </pushback>
- <shift>
- <symbol>state-after-t</symbol>
- </shift>
- </branch>
- <branch mname="map-backspace">
- <delete>
- <marker>@-</marker>
- </delete>
- <sub vname="C-AFTER-V">
- <integer>1</integer>
- </sub>
- <cond>
- <list>
- <eq>
- <varref vname="C-AFTER-V"/>
- <integer>0</integer>
- </eq>
- <shift>
- <symbol>state-after-v</symbol>
- </shift>
- </list>
- </cond>
- </branch>
- </state>
- <state sname="state-after-t">
- <state-hook>
- <set vname="CURRENT-SELECT">
- <integer>-1</integer>
- </set>
- </state-hook>
- <branch mname="map-tone-mark">
- <cond>
- <list>
- <eq>
- <varref vname="CURRENT-SELECT"/>
- <varref vname="SELECT"/>
- </eq>
- <move>
- <marker>T</marker>
- </move>
- <select>
- <integer>0</integer>
- </select>
- <move>
- <marker>@></marker>
- </move>
- <shift>
- <symbol>state-temporary-escape</symbol>
- </shift>
- </list>
- <list>
- <integer>1</integer>
- <delete>
- <marker>@-</marker>
- </delete>
- <funcall fname="macro-handle-mark"/>
- <set vname="CURRENT-SELECT">
- <varref vname="SELECT"/>
- </set>
- </list>
- </cond>
- </branch>
- <catch-all-branch>
- <cond>
- <list>
- <varref vname="C-AFTER-V"/>
- <shift>
- <symbol>state-after-vc</symbol>
- </shift>
- </list>
- <list>
- <integer>1</integer>
- <shift>
- <symbol>state-after-v</symbol>
- </shift>
- </list>
- </cond>
- </catch-all-branch>
- </state>
- <state sname="state-temporary-escape">
- <title>en</title>
- <state-hook>
- <commit/>
- </state-hook>
- <branch mname="map-alnum">
- <commit/>
- </branch>
- </state>
- <state sname="state-escape-in-normal-mode">
- <title>EN</title>
- <branch mname="map-permanent-escape">
- <insert>
- <string>\</string>
- </insert>
- <shift>
- <symbol>state-init</symbol>
- </shift>
- </branch>
- <catch-all-branch>
- <shift>
- <symbol>state-permanent-escape</symbol>
- </shift>
- </catch-all-branch>
- </state>
- <state sname="state-permanent-escape">
- <title>EN</title>
- <state-hook>
- <set vname="ESCAPE">
- <integer>1</integer>
- </set>
- </state-hook>
- <branch mname="map-permanent-escape">
- <shift>
- <symbol>state-escape-in-permanent-escape</symbol>
- </shift>
- </branch>
- <catch-all-branch>
- <unhandle/>
- </catch-all-branch>
- </state>
- <state sname="state-escape-in-permanent-escape">
- <title>Ắ</title>
- <branch mname="map-permanent-escape">
- <insert>
- <string>\</string>
- </insert>
- <commit/>
- <shift>
- <symbol>state-permanent-escape</symbol>
- </shift>
- </branch>
- </state>
- </state-list>
-</input-method>
\ No newline at end of file