Google日本語入力では、ローマ字入力の定義と合わせ、その入力中の状態表示もカスタマイズできる。
AOUR配列の定義でも、たとえばキーボードの「L」を打鍵したら次の母音を押すまでナ行の「n」を表示するようにしたりしているのがそれだ。(AOUR配列ではLはナ行の子音キーなのだ)
よく考えてみれば当たり前なのだが、状態表示をさせるようにすると、状態表示をさせない定義が混在していると競合して、結果状態表示がされないようになってしまったりする。
状態表示をさせるなら、状態表示をしない定義を放置しない必要がある。
わかりにくいなw
バ行はAOUR配列で「N」が子音キー。定義では「N」を打鍵したら「b」を表示し、その後の母音キー等の打鍵でつづりが入力されるようにしている。加えて、ビャ行は「NM」が子音キーとなるので「NM」を打鍵したら「びy」と表示し、その後の母音キー等でつづり入力。
また、Google日本語入力の場合は拗音化キーの互換として「.」があり、「N.」でも「NM」同様の働きをするようにしてある。この「N.」を打鍵した時の表示を同じ「びy」にすると、どうもダメらしいのだ。なのでそこは「by」とするようにしてある。
そこまでは良いのだが、「N」で始まるバ行ビャ行関連の定義の中に、状態表示を設定せず、つまり打鍵した時にそのまま「N」が表示されるような定義が混在していると、正しく定義してあるほうの状態表示まで影響を受けて「N」打鍵で状態表示ができなくなってしまう。
状態表示は出来なくても正しく打鍵すれば入力は出来るのだが、どうにも感じが悪い。
今回、そういう箇所を幾つか見つけたので修正した。
入力 | 出力 | 次の入力 |
---|---|---|
n | b | |
ba | ば | |
bg | び |
とこういう風に定義するなら良いが、
入力 | 出力 | 次の入力 |
---|---|---|
n | b | |
ba | ば | |
ng | び |
このように状態表示をするものとしないものを混在させるとダメ。