ルをロードし、他の入力メソッドはここで定義された変数やコマンドを継承で
きる。
-<language> エレメントの内容が @c t である場合、この入力メソッドは
+<language> エレメントの内容が "t" である場合、この入力メソッドは
複数の言語で利用される。それ以外の場合には、エレメントの内容はISO639-1
あるいは ISO639-2 に規定された言語の名称を表す2または3文字のコードで
なくてはならない。
-<name> エレメントの内容が @c nil である場合、この入力メソッドは単
+<name> エレメントの内容が "nil" である場合、この入力メソッドは単
独で用いられるものではなく、他の入力メソッドから利用することを想定して
いる。この場合、入力メソッドを特定するために <extra-id> エレメン
-トが必須である。<name> エレメントの内容が @c nil でない場合、
+トが必須である。<name> エレメントの内容が "nil" でない場合、
<extra-id> エレメントは任意(optional)である。
#if EXAMPLE_CODE
各 <variable> は一つの変数を宣言し、変数は属性 "id" によって参照
される。すべての変数は暗黙のうちに整数値0に初期化されている。
-<insert> アクションは M-text である <value> を参照する。シ
-ンボルである <value> は直接参照されず、ライブラリが暗黙的に使用す
-る。(e.g. candidates-charset). 整数値である <value> は、
-<set>, <add>, <sub>, <mul>, <div> アクショ
-ンによって設定、変更、参照され、<insert>, <select>,
-<undo>, <if>, <cond> アクションに参照される。
+
+M-text である <value> は、<insert> が参照する。シンボルであ
+る <value> は直接参照されず、ライブラリが暗黙的に使用する。
+(e.g. candidates-charset). 整数値である <value> は、
+<set>, <add>, <sub>, <mul>, <div> によっ
+て設定、変更、参照され、<insert>, <select>, <undo>,
+<if>, <cond> に参照される。
<variable-value-candidate> は変数が取り得る値のリストである。
<c-value> は可能な値の一つを表しており、M-text かシンボルか整数値
Predefined-variable は属性 "type" の値が "predefiend" である変数である。
属性 "id" の値が "handled-keys" であるとき、変数の値はその時点で処理さ
れているキーの数である。属性 "id" の値が
-"predefined-surround-text-flag" であるとき、変数の値はサラウンドテキス
-トがサポートされていれば -1 、そうでなければ -2 である。
-
+"predefined-surround-text-flag" であるとき、変数の値は -1 か -2 であり、
+それぞれサラウンドテキストがサポートしていること、そうでないことを示す。
#if EXAMPLE_CODE
<variable-reference id="handled-keys" type="predefined"/>
<command-list> は、この入力メソッドで使用されるコマンドを宣言する。
コマンドをデフォルトキーシーケンスに割り当てたり、ユーザがカスタマイズ
-したりする場合には、ここで宣言されなくてはならない。@c
-<variable-list>, 同様、この宣言は二通りに利用される。一つめは新し
+したりする場合には、ここで宣言されなくてはならない。
+<variable-list> 同様、この宣言は二通りに利用される。一つめは新し
いコマンドを導入するためであり、この場合 <command> 中の
<keyseq> エレメントは省略できない。もう一つは "global.mimx" で宣
言されたコマンドを継承し、違ったキーバインディングを指定したり、この入
@endverbatim
-各 <command> エレメントは一つの外部モジュール (動的ライブラリ)を
-宣言し、属性 "id" は外部モジュールの名前を表す。
+各 <module> エレメントは一つの外部モジュール (動的ライブラリ)を宣
+言し、属性 "id" は外部モジュールの名前を表す。
<function> エレメントはモジュールによってエクスポートされている関
数名を示す。
@endverbatim
predefined-marker は @@ で始まるマーカである。 @@0, @@1, ... , @@9は、
-それぞれ 0番目, 1番目, ... , 9番目の位置を示す。
-@@previous_candidate_list 候補リストが変化する前の位置、
+それぞれ 0番目, 1番目, ... , 9番目の位置を示す。@@first, @@current,
+@@last, @@previous, @@next はそれぞれ最初の、現在の、最後の、直前の、直
+後の位置を示す。@@previous_candidate_list 候補リストが変化する前の位置、
@@next_candidate_list は候補リストが変化する際の次の位置を示す。
#if EXAMPLE_CODE
<predefined-nth-previous-or-following-character> エレメントは、プ
リエデットバッファ中の1文字を指定する。
-属性 "position" の値が負の整数 @c -N である場合、
+属性 "position" の値が負の整数 -N である場合、
<predefined-nth-previous-or-following-character> エレメントは、プ
-リエデット中の現在の位置から @c N 文字前の文字である。もしプリエディッ
-ト中で先行する文字がM (M<N) 文字しかなければ、その値は入力スポットから
-数えて (N-M) 文字前の文字となる。
+リエデット中の現在の位置から N 文字前の文字である。もしプリエディット中
+で先行する文字がM (M<N) 文字しかなければ、その値は入力スポットから数え
+て (N-M) 文字前の文字となる。
-属性 "position" の値が正の整数 @c N である場合、この変数の値は、プリエ
-デット中の現在の位置から @c N 文字後の文字である。もしプリエディット中
-で後続する文字がM (M<N) 文字しかなければ、その値は入力スポットから数え
-て (N-M) 文字後の文字となる。
+属性 "position" の値が正の整数 N である場合、この変数の値は、プリエデッ
+ト中の現在の位置から N 文字後の文字である。もしプリエディット中で後続す
+る文字がM (M<N) 文字しかなければ、その値は入力スポットから数えて (N-M)
+文字後の文字となる。
#if EXAMPLE_CODE
<predefined-nth-previous-or-following-character position="-1"/>
#endif
-このコードは直前の文字を意味する。
+このコードは直前の文字を参照する。
@verbatim
<define name="predefined-selector">
Predefined-selector は候補グループ中での位置を示し、<select> エレ
メント中で用いられる。@@0, @@1, ... , @@9は、それぞれ 0番目, 1番目,
-... , 9番目の位置を指す。@@previous は前の候補を指す。もし今の候補が今
+... , 9番目の位置を指す。@@first, @@current, @@last はそれぞれ、最初の、
+現在の、最後の候補である。@@previous は前の候補を指す。もし今の候補が今
の候補グループ中での最初のものであれば、前の候補グループの最後の候補を
指す。@@next は次の候補を指す。もし今の候補が今の候補グループ中での最後
のものであれば、次の候補グループの最初の候補を指す。
<map-list> はこの入力メソッドで使用されるマップを宣言する。
<map> エレメントは類似のルールをまとめて名付け、入力メソッドの状
態遷移を記述を容易にする。属性"id" が <map> の名前を示す。
-<rule> エレメントによって、入力シークエンス<keyseq> (または
-<command>) と入力メソッドドライバが実行する <action> との対
-応付けを記述する。たとえば<action> が適当な文字を挿入する
-<insert> である場合、<rule> がキーボード上の入力キーとスク
-リーンに現れる文字の対応付けを行う。
+<rule> エレメントが、入力シークエンス<keyseq> (または
+<command>) と入力メソッドドライバが実行する <action>、たと
+えば適当な文字を挿入する<insert> との対応を定義する。
#if EXAMPLE_CODE
<map-list>
ドがたとえば西ヨーロッパ用キーボードを使うことを想定したものであれば、
Latin-1 文字を含んでもよい。
-<keyseq> エレメントの内容は、関数 minput_event_to_key () の戻り値
-でなくてはならない。X ウィンドウシステムの元では、 @c xev コマンドを用
-いて値を簡単にチェックできる。たとえば、 リターンキー、バックスペース
+<keyevent> エレメントの内容は、関数 minput_event_to_key () の戻り
+値でなくてはならない。X ウィンドウシステムの元では、 @c xev コマンドを
+用いて値を簡単にチェックできる。たとえば、 リターンキー、バックスペース
キー、キーパッドの0のキーなどは、それぞれ@c Return , @c BackSpace , @c
KP_0 としてあらわされる。シフト、コントロール、メタ、アルト、スーパー、
ハイパーも押されている場合には、それぞれS- , C- , M- , A- , s- , H- が
最新のキーを未処理として返す。
エレメント <set>, <add>, <sub>, <mul>,
-<div> は変数の値をそれぞれ設定し、加減乗除する。
+<div> は変数の値をそれぞれ設定したり、加減乗除したりする。
#if EXAMPLE_CODE
<set id="MAX-COUNT">
<delete-to-marker position="@first"/>
#endif
-このコードはバッファの最初から現在の位置までの文字を削除する。
+このコードは属性 "position" で指定されたバッファの最初から現在の位置ま
+での文字を削除する。
<delete-to-character-position> エレメントはその内容を文字位置とし
て、その文字位置と現在の位置の間の文字を削除する。
この2つの <action> はキーイベントをイベントキューに差し戻す。
<pushback-n-events> エレメントは最新のキーイベントを差し戻す。属
-性"n" の値が正の整数ならば差し戻すイベントの数を示す。0ならばすべて差
-し戻す。<pushback-keyseq> エレメントは、<keyseq;gt; で指定され
-たキーイベントを差し戻す。
+性"n" の値が正の整数ならばそれは差し戻すイベントの数である。0ならばす
+べて差し戻す。<pushback-keyseq> エレメントは、<keyseq;gt; で指
+定されたキーイベントを差し戻す。
#if EXAMPLE_CODE
<pushback-keyseq><keyseq keys="b"/></pushback-keyseq>
い限り、二番めの<case> 中のactionを実行する。
-@subsection imstate 入力メソッドの状態
+@subsection imstate 入力メソッドの状態と遷移
@verbatim
テキストである。省略されている場合には <title> エレメントの内容が
用いられる。
-各 <state> は0以上の <branch>を持つ。各<branch> は
+各 <state> は0以上の <branch>を持つ。各<branch> は
<map-list> 中の各 <map> に対応する。 属性
"branch-selecting-map" の値が<map> の属性 "id" の値を示す。入力シー
クエンスがある<map> 中の <rule> の <keyseq> (or
</state-list>
#endif
-このコードはある入力メソッドでの状態遷移を定義している。<state>
-は"state-init" と "state-join" の2つがある。"state-init" には3つの
-<branche>がある。"map-consonant", "map-misc" and "map-join" に属
-す入力シークエンスが与えられれば、対応する <branche>が選択され、
-その<saction>が実行される。"map-join" の<branche>が選ばれた
-場合には "state-join" への状態遷移が起こる。"state-join" には、
-"map-consonant" に属す入力シークエンス用の <branche>と、それ以外
-全ての入力用の<catch-all-branch> があり、双方とも"state-init" へ
-遷移させる。
+このコードはある入力メソッドでの状態遷移を定義している。この入力メソッ
+ドでの<state>は、"state-init" と "state-join" の2つである。
+"state-init" には3つの <branch> があり、それぞれ
+"map-consonant", "map-misc", "map-join" に属す入力シークエンスが与えら
+れた場合に選ばれる。"map-join"の <branch> が選ばれた場合には、
+<shift-to> エレメントによって "state-join" への遷移が起こる。
+"state-join"には、"map-consonant" に属す入力シークエンスのための
+<branch> とそれ以外の全ての入力を処理する
+<catch-all-branch>があり、双方とも最後は "state-init" への遷移を
+実行する。
@verbatim
<shift-to> エレメントは現在の状態を属性 "id" の値で指示されたもの
に遷移させる。属性の値は<state-list> に現れるものでなくてはならな
-い。<shift-back> エレメントは、現在の状態を一つまえのものに遷移さ
+い。<shift-back> エレメントは、現在の状態を一つ前のものに遷移さ
せる。
@subsection implist Plist
@endverbatim
-<variable-list> declares variables used in this input method. If a
-variable must be initialized to the default value, or is to be
+<variable-list> declares variables used in this input method.
+
+If a variable is initialized to the default value, or is to be
customized by a user, it must be declared here. The declaration can
be used in two ways. One is to introduce a new variable. In that
-case, the <value> element in <variable> must not be omitted. Another
-is to inherit the variable from what declared in "global.mimx", and to
-give the different default value and/or to make the variable
-customizable specially for the current input method. In the latter
-case, <value> can be omitted.
+case, the <value> element in <variable> must not be
+omitted. Another is to inherit the variable from what declared in
+"global.mimx", and to give the different default value and/or to make
+the variable customizable specially for the current input method. In
+the latter case, <value> can be omitted.
Each <variable> declares one variable, and a variable is referred with
the attribute "id". <value> of a <variable> can be an integer, a
value "predefined". When "id" attribute has the value "handled-keys",
the value of the variable is the number of handled keys at that
moment. If the "id" attribute has the value
-"predefined-surround-text-flag", the value of the variable is -1
-if surrounding text is supported, and -2 if not.
+"predefined-surround-text-flag", the value of the variable is -1 if
+surrounding text is supported, and -2 if not.
#if EXAMPLE_CODE
<variable-reference id="handled-keys" type="predefined"/>
Each <module> element declares an external module (i.e. dynamic
library). The value of "id" attribute gives the name of the module
-<function> elements specify function names exported by the module. If
-the "id" attribute has the value "function-init", it is called with
+<function> elements specify function names exported by the module.
+
+If the "id" attribute has the value "function-init", it is called with
only the default arguments (see <call>) when an input context is
-created for the input method. If the "id" attribute has the value
-"function-fini", it is called with only the default arguments when the
-input context is destroyed.
+created for the input method. If it has the value "function-fini", it
+is called with only the default arguments when the input context is
+destroyed.
#if EXAMPLE_CODE
<module-list>
@endverbatim
+<macro-list> declares macros used in this input method.
The element <macro> bundles and names a set of <action>s. The
attribute "id" gives the name of a <macro>, and a macro is referred
with this attribute.
@endverbatim
A marker is a symbol indicating a character position in the preediting
-text. The element <mark-current-position> assigns a position to
+buffer. The element <mark-current-position> assigns a position to
a marker. The position of a marker is referred by the elements
<move-to-marker> and <delete-to-marker>.
@endverbatim
-Predefined markers start with @@. @@0, @@1, ... , @@9 mark the
-0th, 1st, 2nd,... 9th position respectively. @@previous_candidate_list
-mark the previous position where a candidate list changes.
+Predefined markers start with @@. @@0, @@1, ... , @@9 mark the 0th,
+1st, ... , 9th position respectively. @@first, @@current, @@last,
+@@previous and @@next mark the first, current, last, previous and next
+position in the preediting buffer respectively.
+@@previous_candidate_list mark
+the previous position where a candidate list changes.
@@next_candidate_list mark the next position where a candidate list
changes.
The element <predefined-nth-previous-or-following-character> specifies
a character inside or outside of the preedit buffer.
-When the value of the attribute "position" is a negative integer -N,
+When the value of the attribute "position" is a negative integer -N,
the element <predefined-nth-previous-or-following-character> means the
-Nth previous character in the preedit buffer. If there are only M
-(M<N) previous characters in it, the value is the (N-M)th previous
+Nth previous character in the preedit buffer. If there are only M (M<N)
+previous characters in it, the value is the (N-M)th previous
character from the inputting spot.
When the value of the attribute "position" is a positive integer N,
used in the element <select>.
@@0, @@1, ... , @@9 specify the 0th, 1st, ... 9th position
-respectively. @@previous means the previous position, and if the
-current candidate is the first one in the current candidate group,
-this value means the last candidate in the previous candidate
-group. @@next means the next position, and if the current candidate is
-the last one in the current candidate group, this value means the
-first candidate in the next candidate group.
-@@previous_candidate_list specifies the candidate in the previous
-candidate group having the same candidate index as the current one,
-and @@next_candidate_list specifies the candidate in the next
-candidate group having the same candidate index as the current one.
+respectively. @first and @last specify the first and last position in
+the list. @@previous means the previous position, and if the current
+candidate is the first one in the current candidate group, this value
+means the last candidate in the previous candidate group. @@next means
+the next position, and if the current candidate is the last one in the
+current candidate group, this value means the first candidate in the
+next candidate group. @@previous_candidate_list specifies the
+candidate in the previous candidate group having the same candidate
+index as the current one, and @@next_candidate_list specifies the
+candidate in the next candidate group having the same candidate index
+as the current one.
#if EXAMPLE_CODE
<select selector="@previous"/>
@endverbatim
-The element <map> bundles and names a set of similar <rule>s,
-so that <state> transitions can be clearly defined. The attribute
-"id" gives the name of a <map>.
+<map-list> declares maps used in this input method. The element
+<map> bundles and names a set of similar <rule>s, so that
+<state> transitions can be clearly defined. The attribute "id"
+gives the name of a <map>.
The element <rule> defines the mapping of an input key sequence
<keyseq> (or <command>) and <action>s the input
-method driver should take. When the <action> is to
-<insert> an appropriate character, for example, the <rule>
-defines the mapping between the input key on the keyboard and the
-character to appear on the screen.
+method driver should take, for example, <insert>ing an
+appropriate character.
+
#if EXAMPLE_CODE
<map-list>
The attribute "string" specifies a M-text to be inserted. The
attribute "character" specifies the code of a character to be
inserted. The attribute "character-or-string" must have a variable as
-its value and <insert> inserts the value of the specified variable, if
-it is a valid character code or a M-text.
+its value and <insert> inserts the value of the specified
+variable, if it is a valid character code or a M-text.
#if EXAMPLE_CODE
<insert string="á"/>
#endif
These codes insert $, and a respectively and associate the whole list
-with it.
+of five items with it.
@verbatim
<delete-to-marker position="@first"/>
#endif
-This code deletes character between the first position and the current
-position in the buffer.
+This code deletes character specified with the attribute position (the
+first position) and the current position in the buffer.
The element <delete-to-character-position> treats its content as a
character position, and deletes characters between the current
second previous character is Thai character RU (whose character code
is 0x0E24).
-@subsection imstate Input Method States
+@subsection imstate Input Method States and Transitions
@verbatim
This code defines state transitions in an input method. It has two
states "state-init" and "state-join". The state "state-init" has
-three branches. When an input sequence belonging to "map-consonant",
-"map-misc" and "map-join" is given, the corresponding branch is
-selected and its <saction>s are executed. When the branch with "map-join" is
-selected, the state is shift to "state-join". The state "state-join"
-has one branch for input sequences from "map-consonant" and one
-catch-all-branch for everything else, both shifting the state to
-"state-init".
+three <branchglt;s. When an input sequence belonging to
+"map-consonant", "map-misc" and "map-join" is given, the corresponding
+branch is selected and its <saction>s are executed. When the
+branch with "map-join" is selected, the state is shift to
+"state-join". The state "state-join" has one branch for input
+sequences from "map-consonant" and one catch-all-branch for everything
+else, both shifting the state to "state-init".
@verbatim