Google日本語入力の入力状態表示を修正

投稿者: | 2012-03-11

Google日本語入力では、ローマ字入力の定義と合わせ、その入力中の状態表示もカスタマイズできる。
AOUR配列の定義でも、たとえばキーボードの「L」を打鍵したら次の母音を押すまでナ行の「n」を表示するようにしたりしているのがそれだ。(AOUR配列ではLはナ行の子音キーなのだ)

よく考えてみれば当たり前なのだが、状態表示をさせるようにすると、状態表示をさせない定義が混在していると競合して、結果状態表示がされないようになってしまったりする。
状態表示をさせるなら、状態表示をしない定義を放置しない必要がある。
わかりにくいなw

バ行はAOUR配列で「N」が子音キー。定義では「N」を打鍵したら「b」を表示し、その後の母音キー等の打鍵でつづりが入力されるようにしている。加えて、ビャ行は「NM」が子音キーとなるので「NM」を打鍵したら「びy」と表示し、その後の母音キー等でつづり入力。
また、Google日本語入力の場合は拗音化キーの互換として「.」があり、「N.」でも「NM」同様の働きをするようにしてある。この「N.」を打鍵した時の表示を同じ「びy」にすると、どうもダメらしいのだ。なのでそこは「by」とするようにしてある。

そこまでは良いのだが、「N」で始まるバ行ビャ行関連の定義の中に、状態表示を設定せず、つまり打鍵した時にそのまま「N」が表示されるような定義が混在していると、正しく定義してあるほうの状態表示まで影響を受けて「N」打鍵で状態表示ができなくなってしまう。
状態表示は出来なくても正しく打鍵すれば入力は出来るのだが、どうにも感じが悪い。
今回、そういう箇所を幾つか見つけたので修正した。

入力 出力 次の入力
n  
ba  
bg  

とこういう風に定義するなら良いが、

入力 出力 次の入力
n  
ba  
ng  

このように状態表示をするものとしないものを混在させるとダメ。