2016年12月10日土曜日

Webでフリガナ取得

何をもって「フリガナ」と言うのかだけど、現在の客先では「IMEの確定時までに入力した文字列が「フリガナ」と言う事になっている。

WindowsアプリではIMEが確定するとWM_IME_COMPOSITIONと言うウィンドウメッセージが対象のテキストボックスに送信されてくる。
テキストボックス側では、このメッセージを受信した時にIMEのAPIを使用して確定前の文字列を取得する事で「フリガナ」として扱っていた。

が、まぁ、この方式だとアルファベットやら数字や記号などを入力しても、それらが「フリガナ」として取得されることになる。
でも、それって厳密に言うと「フリガナ」じゃ無いよね。(^_^;)
例えば「A」と入力したら「フリガナ」的には「えー」または「えい」となるのが正しいと思われる。
同様に「1」と入力したら「フリガナ」的には「いち」となるべきなのだが、上記の手法でIME確定時に入力された文字を取得すると「A」と入力したら取得出来るのは「A」だし「1」と入力したら「1」となる。(^_^;)

で、このWindowsアプリで実現している機能をWeb化しても同じように利用したい、と言うのが顧客ニーズ。
そして当初は「WindowsアプリではWindows APIを使用して取得しているので無理です」と断って居たのだけど、お客さんから「autokana.jsを使用して何とかならないか?」と言われ「不具合があっても対応しなくても良いのなら」と条件付きで採用した。

が、このプラグインは、そもそも「ひらがな」のみ対応なので、顧客要求を満たすには力不足だった。
さらにIE11では「やまだだ」問題が発生した。
Firefoxやchromeでは発生しないのだが、顧客指定のIE11では「やまだ」と入力した後に変換候補で漢字と平仮名の混ぜ書きである「山だ」で変換すると「フリガナ」は「やまだだ」になってしまう。(^_^;)
その他には「やまだした」問題もあった。
これはFirefoxとChromeとIE11では挙動が異なるなのだが、「やまだ」と入力して変換候補を出した後にBSキーで変換をキャンセルして更に「だ」を削除して「した」を入力して変換を確定させるとFirefoxでは「やまだ」、 chromeやIE11では「やまだした」となる問題である。

また住所の入力で「フリガナ」を取得しようとすると英数記号が不対応のため、「5番地」と入力すると「フリガナ」は「バンチ」となってしまう。(^_^;)
同様に「D号室」と入力すると「フリガナ」は「ゴウシツ」となる。

で、まぁ、これらを障害だと言われるのはかなりキツイのだが。。。(^_^;)

こうして3日間に渡るWebでの「フリガナ」取得問題との格闘が始まったのであった。



0 件のコメント:

コメントを投稿