だから、暫く自分で使ってもうこれ以上変えようがないと思える迄テストしたい気持ちとなるべく早く公開して宣伝してたくさんの人に使って欲しい気持ちが同居する。
システムに問題があってもそれを回避して使う
「かなプラス」はGoogle日本語入力のローマ字定義ファイルである。Google日本語入力に問題があれば影響を受けるが、問題点を指摘して直してもらう事は期待しない。私が気付いた問題点は特殊な使い方をしている為であろう。これ迄誰も気付かなかっただろうし、その問題点は通常の使い方では何も問題は無さそうだから、指摘しても直して貰えるはずもない。
例えば、小書きの「ゕ、ゖ」をカタカナに変換させようとしても対応するカタカナ「ヵ、ヶ」になってくれないとか。それは、私がローマ字変換で「ゕ、ゖ」を出せるようにしたから問題点が見つかったのであって、通常のローマ字変換では「ヵ、ヶ」しか出せないのだから何ら問題にならない。
だから、当初は「ゕ、ゖ」だけを定義して「ヵ、ヶ」はカタカナ変換で出してもらうように考えていたけど、どちらもローマ字変換で出せるようにして問題点を回避した。
「ひらがなに変換」機能の話
そして、最近見つけたのが、「ひらがなに変換」という機能が、実は「元に戻す」だったという事。それは、JIS X 0213 で定義された「か」行鼻濁音を実装しようとして見つけた。
JIS X 0213 では、「か゚、き゚、く゚、け゚、こ゚」と「カ゚、キ゚、ク゚、ケ゚、コ゚」の両方が定義されている。しかし、JIS X 0213 で新たに定義されたアイヌ語用の小書きカタカナともどもカタカナ拡張という形をとろうとしていたので、当初はカタカナの方だけローマ字変換で出せるようにして、ひらがなの方は「ひらがなに変換」を使えば良いやと考えていた。
しかし、「カ゚、キ゚、ク゚、ケ゚、コ゚」を「ひらがなに変換」としても何も変わらない。ところが、「半角カタカナに変換」してから「ひらがなに変換」とすると、「カ゚、キ゚、ク゚、ケ゚、コ゚」が「カ゚、キ゚、ク゚、ケ゚、コ゚」に変換された。つまり、ローマ字変換の定義では ひらがなの定義 しか想定されてはいないから「元に戻す」動作に「ひらがなに変換」という名称を与えても何も問題ないらしい。
この問題も結局はひらがなの方だけを定義して、カタカナの方は「カタカナに変換」で出してもらうように実装した。
しかし、「カ゚、キ゚、ク゚、ケ゚、コ゚」を「ひらがなに変換」としても何も変わらない。ところが、「半角カタカナに変換」してから「ひらがなに変換」とすると、「カ゚、キ゚、ク゚、ケ゚、コ゚」が「カ゚、キ゚、ク゚、ケ゚、コ゚」に変換された。つまり、ローマ字変換の定義では ひらがなの定義 しか想定されてはいないから「元に戻す」動作に「ひらがなに変換」という名称を与えても何も問題ないらしい。
この問題も結局はひらがなの方だけを定義して、カタカナの方は「カタカナに変換」で出してもらうように実装した。
スペースの定義
その他にも色々と変わった定義を試みた。スペースを入力キーにしたいとか、スペースを出したいとか。これを試したら、そもそもスペースはローマ字変換の入力の対象外らしかった。
では、スペースではないキーにスペースを定義したらどうなるのか。これにも問題があって、半角スペースを定義しても全角スペースに変換されてしまう。ただ、半角スペースの代わりに nbsp (no break space) を定義すれば、見かけだけは半角スペースに出来ることは発見した。
スペースをローマ字変換の入力キーに定義して何らかのコードを出力させようとしても変換されずにスペースがそのまま出力されてしまう。一般に変換キーにはスペースが割り当てられているからこれも問題にはならないようだ。
では、スペースではないキーにスペースを定義したらどうなるのか。これにも問題があって、半角スペースを定義しても全角スペースに変換されてしまう。ただ、半角スペースの代わりに nbsp (no break space) を定義すれば、見かけだけは半角スペースに出来ることは発見した。
スペースを入力してスペースがそのまま出力される、これは通常の使い方では何も問題ないのだが、ラテン文字モードというものを作って アルファベット → かな の変換が働かないようにした時、スペースがそのまま出力されることで そのラテン文字モードが終了してしまいスペースの次に入力するアルファベットは かな に変換されてしまうのだ。
素直に IME をオフすればわざわざスペースの定義など要らないのだが、そうするとアクセント記号を含んだ文字( é とか)の文をローマ字変換を使って出せなくなる。
この問題はスペースの定義を諦めて、単語レベル迄ならローマ字変換でラテン文字、ギリシア文字、キリル文字などが出せるようにして、文章を書きたいのなら IME をオフして言語キーボードを使うように使い分ける事で解決した。