OpenSearchプラグインとは、IEやFirefox、Chromeのような各種ブラウザの検索バーに、特定サイト専用の検索機能を追加する規格です。日本国内で利用者が多いエキサイト翻訳も、この規格に準拠した検索機能を提供しています。
ところが、公式に提供されているOpenSearchプラグインでは、長文を翻訳しようとすると途中で文章が切られてしまう事があります。これでは如何に便利なエキサイト翻訳と言えども少々使いにくいです。そこで、長文の翻訳も一発で行えるように、文字数制限の無いPOST送信方式のエキサイト翻訳プラグインを自作してみましょう。
その前に、何故、長文が切れてしまうのかを説明します。これは公式プラグインが、原文の受け渡しにGETと言う手段を用いているのが要因です。以下の画像に見られるURLの、'?'以降がGETで受け取れる文字列となります。
GETの一般的な使い方は、サーバーとブラウザの間での短いパラメーターのやり取りです。そのため、主要ブラウザではGETの仕様で定められていないにも関わらず、各々が独自に文字数制限を課しています(IEなら2083文字)。恐らく、イタズラに長いURLを許容してしまっては、セキュリティリスクが懸念されるからでしょう。画面外に伸びたURLに個人情報が追加されたとしても、そうそう気づくものではありません。同様にブラウザだけでなくサーバー側にも文字数制限があります。ですから、翻訳テキストのような大量のデータを送るには、GETは適していません。
GETとPOSTの違いをまとめると次の通り。
GET:
- URLをコピーすれば翻訳結果を他のブラウザに受け渡せる(利点)
- URLが長い(欠点)
- ブラウザとサーバーによる二重の文字数制限があり長さはまちまち(欠点)
POST
- 文字数制限が無い(利点)
- URLが短い(利点)
- URLだけでは翻訳結果を他のブラウザに受け渡せない(欠点)
それでは、新しいPOST送信用OpenSearchプラグインを作りましょう。以下をメモ帳等にコピーして、"excite-jaen.xml"のようなファイル名で保存して下さい。そのファイルをブラウザのSearchプラグインフォルダに移動させ、ブラウザを再起動させれば使えるようになります。Firefoxなら、移動先は"searchplugins"フォルダです。
上記は日英翻訳です。インストールに成功すると検索バーから翻訳したときに次のようにURLが短くなります。
また、英日翻訳を常用したい方は、パラメーターwb_lpを"JAEN"から"ENJA"に変更。再翻訳を常に使いたい方は、reverse_optionを"yes"に変更して下さい。
一応、技術的なことは飛ばして今すぐ使いたいと言う方のために、クリックするだけでインストール出来るようにしておきます。JavaScriptが使える状態で次のリンクをクリックして下さい。
なお、OpenSearchに関する詳しい仕様はOpenSearch.orgをご覧下さい。これを機に自分でオリジナルのプラグインを作ってみては如何でしょうか。