Google CGI API for Japanese Input*1を使って変換するSKKサーバーを作った.
Googleのサーバーが高性能なので,通常のSKK辞書ではできないような変換ができる.以下は例.
手元の辞書にないが世の中にはあるような言葉を変換できる.
意味不明な言葉でも適当に変換できる.
一文まとめて変換できる.
インストール
gemになってるので,gem installでインストールできる.依存ライブラリは特にないはず.
% gem install google-ime-skk
追記,Ruby1.8ではgem install jsonする必要があった,Ruby1.9では不要.
実行
google-ime-skkという実行ファイルができるので実行するとサーバーが起動する.
% google-ime-skk
既知の問題
変換する度にGoogleにリクエストを投げるのでちょっとブロックする
ただし,中でキャッシュしているし,レスポンスは高速に返るので,そんなに気にならない
変換する度にGoogleにリクエストを投げるのでネットワークが不通な場合に変換できない,また,AquaSKKを使っているとOSがフリーズする
Rubyのプロセスが何かしたくらいではOSがフリーズしないと思うので,AquaSKKに変な入力を渡すとだめみたいだけど,よく分からなかった
(追記) このバグは直りました. Google IME SKK サーバーを更新 - hitode909のダイアリー
送り仮名付きの変換を正しく扱えない
たとえば,「飛び出す」を出したいとき,「とびだs」がサーバーへの入力として渡されるが,Googleのサーバーに「とびだs」とか渡しても,正しく変換してくれない.勝手にuをくっつけて,「とびだす」にしたら変換できるか,とか考えたけど,一概にできなさそうだったので,まだ対応できてない.
その他
SocialSKKというRubyで書かれたSKKサーバーがCodereposにあったので,それをパクってきて作った.
SocialSKKを継承して,変換部分のロジックだけオーバーロードすることによって実装できた.
http://coderepos.org/share/browser/lang/ruby/misc/socialskk/socialskk.rb