Firefox/翻訳パネルに対するちょっとした改造

■ ネット Posted by ひぐま (Higmmer) on 2006-06-26 at 23:16:56

◆共有テーマ: Firefox [コンピュータ]

ちょっとした改造シリーズ(?)の第2弾です。今回は謎小屋さんで公開されている翻訳パネルを改造してみたいと思います。

バージョン1.4.13+から、ページ中のテキストを選択して入力ボックスにドラッグ&ドロップすることで自動的に翻訳が実行されるようになりました。このままでも十分便利な機能なのですが、自分くらいモノグサ人間ともなるとD&Dすら面倒に思ってしまいます(たまにボタンを離して失敗したりするし)。そこで、対象となるテキストを選択した状態したで入力ボックスの上でミドルクリックするだけで自動的にコピー&翻訳が実行される(*)ようにしたのが以下の改造です。

(*) この機能は翻訳パネルをサイドバー内に表示させた場合にのみ働きます。独立ウィンドウとして表示された翻訳パネルでは動作しませんので注意して下さい(本当はそれも実装したかったのですが、他のウィンドウの選択文字列を取得するのはかなり厄介そうだったので断念…)。

今回は変更箇所が少ないのでパッチファイルは用意していません。Firefoxのプロファイルフォルダの中から"extensions/translation@nazo/chrome/translation/content/translation/sidebar.js"というファイルを開き、以下の関数を追加して下さい。

function paste_text(e){ if(e.which == 2){ var win = document.commandDispatcher.focusedWindow; win = (win != window) ? win : window._content; if(win && win.getSelection()!=""){ document.getElementById("text").value=win.getSelection(); translation(); } } }

次に、ファイルの最後の方にあるeventset()関数の中に以下の行を追加して下さい。

document.getElementById("text").addEventListener("mousedown",paste_text,false);

これで改造は終わりです。Firefoxを再起動して動作を確認してみて下さい。参考までに動作確認用の英文を置いておきます。

Hello everyone. I'm a dropout programmer living unhealthily and inconstantly in Japan. If you have any questions, please contact me through mail form in side bar on this page. Thank you for visiting my page.

こちらで上記の改造を施したファイルを以下に置いておきます。改造が面倒ならばこのファイルに含まれる"sidebar.js"をオリジナルのものと置き換えて下さい。

  • diff-translation_1.4.13+_HG-060626.zip (拡張子を".zip"に変更して保存して下さい)

ところで、Firefox 1.0.x系などで翻訳パネル1.4.13をお使いの方のために、こちらのバージョンに対応した改造方法も示しておきたいと思います。こちらは入力ボックスへのD&Dによる自動翻訳機能が未実装ですので、これも付け加えておきました(但しD&Dされたテキストは常に上書きされる仕様となります)。

プロファイルフォルダの中の"translation.jar"に含まれる"sidebar.js"を取り出し、前述したpaste_text()関数を追加して下さい。そして、更に次の2つの関数を追加して下さい。

function clear_text(e){ document.getElementById("text").value=""; e.stopPropagation(); } function trans_text(e){ if(document.getElementById("text").value != "") translation(); e.stopPropagation(); }

その上で、eventset()関数の中に以下の3行を追加して下さい。

document.getElementById("text").addEventListener("mousedown",paste_text,false); document.getElementById("text").addEventListener("dragenter",clear_text,true); document.getElementById("text").addEventListener("dragexit",trans_text,true);

ファイルを"translation.jar"内に戻せば完了です。後はFirefoxを再起動すれば、翻訳パネル1.4.13でも、D&Dとミドルクリックによる自動翻訳機能が使えるようになります。ちなみに、改造後のファイルは以下となります。

  • diff-translation_1.4.13_HG-060626.zip (拡張子を".zip"に変更して保存して下さい)

おまけ。

翻訳パネルにデフォルトで同梱されている設定ファイルではGoogleによる翻訳が動作しないという問題が報告されています。1.4.13+を使っている場合はそのページにある修正版で対処できるのですが、1.4.13ではrdfファイルのフォーマットが異なるためその方法を使えません。その場合は以下の方法を試してみると幸せになれるかもしれません。

  1. プロファイルフォルダの中から"translation.jar"というファイルを探す
  2. そのフォルダのひとつ上の階層にある"items.rdf"というファイルを開く
  3. その中の"<rdf:Description rdf:about="http://translate.google.com/translate_t">"~"</rdf:Description>"で囲まれた部分をこのファイルの内容で置き換える
(参考) 「暇つぶし文@謎」の謎(nazodane)さん、Thanks!!

トラックバック

この記事について書く(FC2ブログユーザー)
※言及リンクの無いトラックバックは無効です

PageTop▲

コメント

■ 管理人のみ閲覧できます
Posted by (ID:) []  on 2006-06-27 at 03:06:13 [編集]
このコメントは管理人のみ閲覧できます

PageTop▲

コメントの投稿

 
 
 
 
 
 (後で編集・削除したいなら必須)
 
  

PageTop▲