エレメント <pop> はまだ処理されていない最初のイベントをイベント
キューから取り出し破棄する。
-エレメント <commit> は現在の preediting テキストをコミットする。
+エレメント <commit> は現在の preediting テキストを明示的にコミッ
+トする。現在の preediting テキストは、入力メソッドドライバが最初の
+<state>に遷移するたびにも、コミットされる。(@ref imstate 参照。)
エレメント <unhandle> は現在の preediting テキストをコミットし、
最新のキーを未処理として返す。
入力メソッドドライバは常に一つの <state> にあり、入力を処理するこ
とによって別の <state> に遷移することがある。異なる
<state> では、同じ入力でも異なる<saction> を引き起こし、異
-なる結果を得ることがある。入力コンテクストが生成される、すなわち入力メ
-ソッドが起動された時点では入力メソッドドライバは<state-list> エレ
-メント中の最初の <state> にある。
+なる結果を得ることがある。
属性 "id" が <state> の名前を示す。<state-title-text> エレ
メントの内容は、入力メソッドがこの状態にある時スクリーン上に表示される
テキストである。省略されている場合には <title> エレメントの内容が
用いられる。
+入力コンテクストが生成された、すなわち入力メソッドが起動された時点では
+入力メソッドドライバは<state-list> エレメント中の最初の
+<state> にある。
+
各 <state> は0以上の <branch>を持つ。各<branch> は
<map-list> 中の各 <map> に対応する。 属性
"branch-selecting-map" の値が<map> の属性 "id" の値を示す。入力シー
クエンスがある<map> 中の <rule> の <keyseq> (or
-<command-reference>) 部分に合致すると、対応する <branch> が
-選ばれ、その <rule> の <action> に続いてその
-<branch> の<saction> が実行される。
+<command-reference>) 部分に合致すると、対応する <branch> を
+選択し、その <rule> の <action> に続いてその
+<branch> の<saction> を実行し、入力メソッドドライバはその
+<state> の初期状態に戻る。
+
+入力メソッドドライバが最初の <state> の初期状態になる度に、
+preeditバッファ中の全ての文字をコミットし、preeditバッファを空にする。
+(<commit> エレメントが指定されていなくても。)
<state-hook> エレメント (省略可能) は、入力メソッドドライバがこの
<state> に遷移した時点で実行される<sactions> を指定する。
The element <pop> pops the first key event that is not yet handled
from the event queue.
-The element <commit> commits the current preedit.
+The element <commit> explicitly commits the current preedit.
+The current preedit is also committed whenever the input method driver
+transits to the intial <state>. (See @ref imstate.)
The element <unhandle> commits the current preedit and returns the last key as
unhandled.
<input-method> and may transit to another <state> when
processing an input. The same input sequence can trigger different
<saction>s and produce different results in different
-<state>s. When an input context is created, i.e. the input
-method is invoked, the input method driver is in the first
-<state> of the <state-list>.
+<state>s.
The attribute "id" gives the name of a <state>. The element
<state-title-text> specifies a title text displayed on the
screen when the input method is in this state. When this element is
omitted, the content of the <title> element is used instead.
+When an input context is created, i.e. the input method is invoked,
+the input method driver is in the first <state> of the
+<state-list>.
+
Each <state> has zero or more <branch>es. Each
<branch> corresponds to a <map> in a <map-list>.
The value of the attribute "branch-selecting-map" specifies a
<map>'s "id" value. When the input sequence matches one of the
<keyseq> (or <command-reference>) of a <rule> of the
<map>, the corresponding <branch> is selected,
-<action>s in the <rule> are executed, and <saction>s
-in that <branch> are executed.
+<action>s in the <rule> are executed, <saction>s in
+that <branch> are executed, and the input method driver shifts
+to the initial condition of the current state.
+
+Whenever the input method driver shifts to the initial condition of
+the first <state>, it commits all characters in the preedit
+buffer and clears the preedit buffer, without explicit <commit>.
Optional element <state-hook> specifies <sactions>
executed when the input method driver is shifted to the current