Mouseover Translate English-Japanese EX

"Mouseover Translate English-Japanese EX"スクリプトのページです。



"Mouseover Translate English-Japanese EX"はページ上の英単語の上にマウスを持っていく事で、 その単語の日本語訳を表示するGreasemonkey用のスクリプトです。

オリジナル版のMouseover Translate English-Japaneseは、kunikuniさんが作成されました。
※改変・再配布歓迎との事なので(kunikuniさんに感謝)、オリジナル版の機能の制御追加とともに機能拡張を行いました。
ついでに、辞書の設定も追加してみました。

各辞書の利用に問題があるようでしたら、設定から外しますので指摘願います。
オリジナル版を使用している方は、同時使用はしないでください。コンフリクトしてポップアップの奪い合いになります。


  1. ユーザーマニュアル
    1. 手順
    2. (1) Greasemonkeyのコマンドメニューから"Mouseover Translate English-Japanese EXの設定"を選択します。
      (2) 使用する辞書サイトをドロップダウンメニューから選択します。
      (3) 上部(水平ラインの上側)は基本機能(オリジナル版)に機能追加した制御部分です。必要に応じて設定してください。
      (4) 下部(水平ラインの下側)は拡張機能になりますので、拡張機能を使用する場合は、こちらを設定してください。
      (5) 拡張機能使用時は、ポップアップウィンドウ用のCSSコードをテキストエリアで指定できます。
      (6) 設定の反映および保存をしたい場合は"Save"ボタンをクリックします。確認メッセージで"OK"をクリックします。

    3. 対象ページ
    4. このスクリプトは表示中のページの中のマウス位置の英単語を取り出すため、基本的にどんなサイトやページでも使用することができます。
      ただし、setTimeout関数を使用しているため、javascriptをOFFにしている場合や、NoScript等でJavascriptを抑制している場合は、オリジナル版と同様に動作しません。
      そこで、setTimeout関数を使用しないモードを用意しました。詳細は設定の項を参照してください。

    5. 対象辞書
    6. 対象となる辞書はgooの英辞郎が2009/11/30に提供終了になったので、gooのEXCEEDをデフォルトにしました。
      折角設定画面を作ったので、以下の辞書の設定を追加して、設定画面で選択できるようにしてみました。 使いたい辞書を選択してください。

      • gooのEXCEED英和辞典
      • Yahooの新グローバル英和辞典、eプログレッシブ英和中辞典
      • exciteの研究社 新英和中辞典、英和コンピュータ用語辞典
      • BIGLOBEのエクシード英和辞典
      • Weblioの研究社 新英和中辞典、英和コンピューター用語辞典
      • WebLSDオンライン辞書
      • WorldWeb Online(英英辞書)

      SITEINFOに新たに辞書サイトを追加した場合、自動的にドロップダウンメニューに追加されます。

    7. コマンドメニュー


    8. (1) ====== Mouseover Translate English-Japanese EX ======
      • これはタイトル行なので選択しても何も起こりません。

      (2) Mouseover Translate English-Japanese EXの設定
      • 設定を変更したい場合は、このメニューを選択します。


    9. 設定フォーム


    10. (1) タイトル領域
      • ここにはスクリプトの名称を表示します。
      • この領域の上にマウスカーソルを持ってくると、マウス形状が手の形(パー)に変わります。
      • 左ボタンをクリックすると物を掴んだ形(グー)に変わります。
      • この状態でドラッグ&ドロップで、フォームの場所を移動できます。

      (2) コマンドボタン
      1. リセット
        このボタンをクリックすると、フォーム内容を初期化し、フォームを開いた時の状態に戻します。

      2. 保存
        このボタンをクリックすると、フォーム内容を保存してフォームを閉じます。
        確認ダイアログを表示しますので、設定内容を保存して終了するならOKを、中止するならキャンセルを選択してください。


      3. 破棄
        このボタンをクリックすると、フォーム内容を破棄してフォームを閉じます。
        確認ダイアログを表示しますので、設定内容を破棄して終了するならOKを、中止するならキャンセルを選択してください。


      4. ヘルプ
        このボタンをクリックすると、本ページ(メインサイト)を表示します。
        このボタンをShiftキーを押しながらクリックすると、本ページ(サイトミラー)を表示します。

      5. サイトを表示
        このボタンをクリックすると、辞書サイトを表示します。
        新規に辞書サイトを追加する場合、SITEINFOの辞書サイト別コードのsite_urlプロパティにURLをセットしてください。
        site_urlプロパティが無い辞書を選択した場合、「サイトを表示」ボタンは表示されません。

      (3) 基本機能
      • 基本機能は、拡張機能を無効にした場合でも有効です。

      1. 辞書選択
        • Exceed
          gooのEXCEED英和辞典を対象辞書とします。
        • 単語レベルの指定は表示されません。


        • Global
          Yahooの新グローバル英和辞典を対象辞書とします。
        • 単語レベルの指定は表示されません。


        • Progressive
          Yahooのeプログレッシブ英和中辞典を対象辞書とします。
        • 単語レベルの指定は表示されません。


        • excite
          exciteの研究社 新英和中辞典を対象辞書とします。
        • 単語レベルの指定は表示されません。
          候補一覧が返されるサイトのサンプルとして入れました。
          このタイプのサイトは辞書検索のレスポンスのHTML内から実際の単語の翻訳結果へのURLを取り出して、再度HTTPリクエストを発行する必要があります。
          同じタイプのサイトを追加する場合の参考にしてください。

          また、このタイプのサイトは拡張機能が無効の時には使用できません。
          設定を保存する時に以下のメッセージが表示されます。


        • exciteComp
          exciteの研究社 英和コンピュータ用語辞典を対象辞書とします。
        • 単語レベルの指定は表示されません。
          候補一覧が返されるサイトのサンプルとして入れました。
          このタイプのサイトは辞書検索のレスポンスのHTML内から実際の単語の翻訳結果へのURLを取り出して、再度HTTPリクエストを発行する必要があります。
          同じタイプのサイトを追加する場合の参考にしてください。

          また、このタイプのサイトは拡張機能が無効の時には使用できません。
          設定を保存する時に以下のメッセージが表示されます。


        • BIGLOBE
          BIGLOBEのエクシード英和辞典を対象辞書とします。
        • 単語レベルの指定は表示されません。
          候補一覧が返されかつ、第一候補はリンクでなく翻訳結果が埋め込まれるサイトのサンプルとして入れました。BIGLOBE以外にないかもしれませんが。
          このタイプのサイトは第二候補以降へのリンクを辞書検索のレスポンスのHTML内から実際の単語の翻訳結果へのURLを取り出して、再度HTTPリクエストを発行する必要があります。
          同じタイプのサイトを追加する場合の参考にしてください。

          また、このタイプのサイトは拡張機能が無効の時には使用できません。
          設定を保存する時に以下のメッセージが表示されます。


        • Weblio
          Weblioの研究社 新英和中辞典を対象辞書とします。
        • 単語レベルの指定は表示されません。


        • WeblioComp
          Weblioの研究社 英和コンピュータ用語辞典を対象辞書とします。
        • 単語レベルの指定は表示されません。


        • WebLSD
          ライフサイエンス辞書プロジェクトのWebLSDオンライン辞書を対象辞書とします。
        • 単語レベルの指定は表示されません。
          ミラーサイトの選択用プルダウンメニューが表示されます。京都1、京都2、東京の中から選択してください。
          POSTメソッドでの呼び出し、およびミラーサイトのサンプルとして入れました。
          POSTメソッドを使ったサイトや、ミラーのあるサイトを追加する場合に参考にしてください。


        • WorldWebOnline
          WorldWebのOnline辞書を対象辞書とします。
        • 英和辞書ではなく、英英辞書です。
          時として英英が役に立ちますので入れてみました。


      2. 翻訳機能
        • デフォルトでは全てのページで機能が働いてしまうので、特定のサイトでしか必要ないという場合 デフォルトの翻訳機能を無効にしておく事ができます。
          無効の場合でも、「Ctrl」キーまたは「Shift」キーを押した状態で単語の上にマウスを移動すると、一時的に翻訳ができます。
          ただし、キーを押しながらのマウスの移動になるため、マウスジェスチャーなどとコンフリクトしてしまうかもしれません。ご注意ください。
          また、「Ctrl」キーを押したままでいると次候補の処理を行ってしまいますので、すぐに「Ctrl」キーを離してください。
          Shift」キーの場合も、最初からのやり直し検索になるので見た目の影響は少ないですが、サイトへのリクエストは発行されます。したがって、サーバに負荷をかけてしまいますので、こちらも、キーはすぐに離してください。

        • 本機能を無効にして後述の常時有効サイトを登録すれば、登録サイトのみ翻訳対象ページにすることができます。
          本機能を有効にする場合は、チェックボックスにチェックを付けてください。
          本機能を無効にする場合は、チェックボックスのチェックを外してください。

      3. 疑似setTimeout
        • Javascript機能をOFFにしている場合や、NoScriptなどでJavascriptを抑制している場合に、setTimeoutが働かないため、ポップアップの表示が行えません。
          そこで、setTimeoutが働かない場合の対策として、擬似的にsetTimeoutを行う方法と、即表示する方法の2種類用意しました。

        • 疑似的にsetTimeoutを行う場合は、チェックボックスにチェックを付けてください。
          ただし、mousemoveイベントを利用して経過時間を計算しているので、マウスポインタを止めていると、動作しません。
          そのため、本モードでのポップアップ表示は少しコツが必要です。が、すぐ慣れます(笑
        • また、たまにうまくいかないことがありますので、あまり期待はしないでください。

        • 面倒なので、即表示したいという場合は、チェックボックスのチェックを外してください。
          即辞書サイトにアクセスします。

      4. ポップアップの遅延時間
        • マウスカーソルの下の単語を取得してから辞書を引きにいくまでの動作を遅延させる場合の遅延時間を指定します。
          setTimeoutが使用可能な場合または、疑似setTimeoutを使用する場合にのみ有効です。

      (4) 拡張機能
      1. 拡張機能
        • 拡張機能を無効にした場合
          基本的にオリジナル版と同じ動作になります。
          ただし、前述の基本機能の翻訳機能、疑似setTimeout機能はオリジナル版には存在しませんので本項目の設定とは関係なくそれぞれの設定どうりの動作となります。
          また、V1.03.3から基本機能時でもPOSTメソッドで呼び出す辞書が使用可能になりました。

        • 拡張機能を有効にした場合
          アポストロフィの扱いと、常時有効サイト、ポップアップのCSSのカスタマイズ機能、および、単語の整形と再翻訳の拡張が使用可能になります。
          また、V1.03.3から辞書の一時変更が可能になりました。詳しくは後述の「単語の整形と再翻訳、辞書の一時変更について」を参照してください。
          さらに、V1.03.3から一旦候補リストが作成される辞書サイトの利用が可能になりました。

      2. アポストロフィ
        • デフォルトでは単語の区切りとして扱われるため、wouldn't、shouldn't などの否定形がwouldn、shouldnとして切り出されます。
          そのため、辞書にヒットせず、訳が表示されません。
          アポストロフィを単語の一部とみなす設定をすることで、wouldn't、shouldn'tとして切り出されます。
          wouldn'tやshouldn'tでヒットした結果を表示中に「Ctrl」キーを押すと否定形が原形に再整形されて、would、shouldで再翻訳されます。
          また、wouldn'tやshouldn'tでヒットしない辞書の場合、再整形されて、would、shouldで再翻訳されます。
          再整形、再翻訳について、詳しくは後述の「単語の整形と再翻訳、辞書の一時変更について」を参照してください。

      3. 状況表示


        • 辞書サイトの反応が遅い場合などに、リクエスト中なのかどうかわからないので、マウスを動かしてしまうことが多々あります。
          そのため、表示タイミングと重なって、表示されてすぐ消えたりとかがうざいので、
          HTTPリクエスト発行前に状況表示用のポップアップを出せるようにしました。
          背景色は淡い水色になっています。

          表示される内容は、単語、辞書(辞書選択のドロップダウンの文字列)、URLの中から、選択された内容が表示されますので、
          表示したい物のチェックボックスにチェックを付けてください。
          どれにもチェックを入れなかった場合、状況表示のポップアップは表示されません。

          受信表示のままで変化がない場合は、受信内容から取り出すものがなかったまたは英次郎でレベルが指定以下だったなどですので、 クリックして消してください。自動消去しようとしたんですが、目まぐるしく表示が変わって目障りなのでやめました。
          うざかったら表示しない設定にしてください。デフォルトでは表示なしになっています。

      4. 一時変更
        • 辞書の一時変更機能の対象にするかどうかを辞書サイト毎に指定できます。
          対象とする辞書はチェックボックスにチェックを付けてください。
          デフォルトでは、全ての辞書が対象に設定されていますので、対象としたくない辞書があれば、チェックを外してください。

      5. 常時有効サイト
        • 基本機能の翻訳機能を無効にした状態の時に、例外として翻訳機能を常に有効にするサイトを登録する事ができます。

        • 指定は、ドメイン名、または、サブドメイン名、ホスト名を指定します。window.location.hostnameと照合して判定します。
          window.location.hostnameはhttp://userscripts.org/でいうとuserscripts.orgの部分になります。
          *(アスタリスク)を含まない場合は、完全一致、含む場合は、部分一致で照合します。
          たとえば、VReel.netの動画サイトは、http://beta.vreel.net/ ですが、フォーラムは http://vreel.net/ ですので、これらを登録するためには、 beta.vreel.net と vreel.netを両方とも登録するか、*vreel.net を一つだけ登録すればいい事になります。
          *.vreel.netと登録すると、フォーラムが一致しなくなりますので注意してください。

          • 追加

          • テキストボックスに追加するドメイン名、ホスト名などを入力して「追加」ボタンをクリックしてください。
            リストボックスに同じ設定がなければ追加されます。
            テキストボックスの初期値は現在のページのwindow.location.hostnameです。

          • 削除

          • リストボックスからの削除は、削除したいものを選択して、「削除」ボタンをクリックしてください。
            確認メッセージが表示されますので、削除するならOKを、中止するならキャンセルをクリックしてください。



      6. ポップアップのCSS
        • 拡張機能有効時のポップアップは、本設定画面で指定したCSSに従って表示されます。


          • 編集する
          • 編集する」のチェックボックスにチェックをつけると、入力用のテキストエリアが表示されます。
            閉じる時はチェックボックスのチェックを外してください。

            ポップアップボックスが他のオブジェクトの後ろにくるようであれば、z-index の値を大きくしてください。

          • デフォルトのCSSに戻す
          • デフォルトのCSSに戻す」ボタンをクリックすると、テキストエリアの中がデフォルトの設定値に戻ります。
            確認メッセージが表示されますので、デフォルトに戻すならOKを、中止するならキャンセルをクリックしてください。


        • デフォルトの設定で、オリジナル版と違うのは以下の項目です。
          • overflow: auto;
          • overflow: auto; を追加しています。これは、ポップアップ内の内容が多くて、ブラウザのウィンドウの高さが小さい場合に、 オリジナル版では、画面からはみ出してしまっていて、読めなくなりますが、拡張モードでは高さがブラウザのコンテンツ領域に納まるように計算して表示します。 そして、表示できなくなる部分をスクロールで見れるようにするためにoverflow:auto;を追加しています。
            スクロールバーが付く場合、マウスカーソルがポップアップ内に入るように表示位置を調整し、フォーカスをセットしています。
            従って、スクロールは、マウスホイール、スライダー、カーソル移動キー(↑、↓、Home、End、Page Up、Page Downの6個が使用可)で行えます。
            また、ポップアップ内にマウスカーソルが有る場合、マウスカーソルの移動による単語の抽出という本来の作業を抑制していますので、スライダーを掴んでスクロールさせる事が出来ます。
            ただし、ポップアップ外にマウスカーソルが出ると、ポップアップが消えますので、スライド時はポップアップ外に出ないように注意してください。

          • padding: 0 0 4px 3px;
          • padding: 0 0 4px 3px; を追加しています。これは、ポップアップ内の下端と左端にそれぞれ4px,3pxの隙間を開けています。

          • min-width: 300px;
          • min-width: 300px; を追加しています。これは、divに対してmin-widthが指定してあるサイトの場合に、ポップアップがその影響を受けてしまうために追加しました。

          • max-width: 300px;
          • max-width: 300px; を追加しています。これは、divに対してmax-widthが指定してあるサイトの場合に、ポップアップがその影響を受けてしまうために追加しました。

          • width: auto;
          • width: auto; に変更しています。これは、min-widthとmax-widthを変更したい時にwidthも修正する必要があるために予め変更しておきました。


        • カスタマイズ例としては、横幅(width)を可変にしたい場合は、min-width:300px; max-width:450px;とすると、 300pxから450pxの範囲内でポップアップボックスの横幅が内容に応じて(長い行がある場合)変化します。
          その他のカスタマイズはCSSを勉強して好みのポップアップに変えてみてください。
        • 300pxの表示例

          450pxの表示例


      7. 単語の整形と再翻訳、辞書の一時変更について
        • 三単現のs(es,ies)の処理や、過去形,過去分詞のed(ied)等を整形して、原形に整形します。

        • 拡張機能無効時は、オリジナル版の整形関数fixWordFormatをそのまま使用します。翻訳作業は1回のみ行われます。一致する語がなければ表示されません。

        • 拡張機能有効時は、以下の順で整形されます。一致する語がなければ次候補に整形して再翻訳を行います。最大5回の翻訳を試行します。
          • 1回目
          • オリジナル版の整形関数fixWordFormatをそのまま使用します。つまり、正規表現の判定を全て実行した結果の単語を使用して翻訳を試行します
          • 2回目
          • 未整形の単語をそのまま使用して翻訳を試行します。
          • 3回目
          • fixWordFormatの各整形用の正規表現をそのまま使用してマッチングしますが、最初に正規表現に一致した結果を使用して翻訳を試行します。
            また、オリジナル版で行っていない現在分詞や、単母音+子音形容詞の比較級、最上級などの処理不足を補って原形原級での翻訳を試行します。
          • 4回目
          • 3回目のやり残しパターンを使用して翻訳を試行します。
          • 5回目
          • 4回目でのやり残しパターンを使用して翻訳を試行します(今のところdoesn'tをdoに整形するパターンしかありません)。

          なお、整形結果が以前の整形結果と同じになる場合があるので、その場合は再翻訳はスキップされ次候補の整形に自動的に移ります。

        • 整形は機械的な判定で行いますので、正解とは限りませんので、文章の全体の意味から正しいかどうかを判断してください。
          特に、原級原形s,es,er,est,ed,ingで終わる語はその部分が削除されるので、未整形の単語をそのまま使用して翻訳した場合のみ正解となります。

        • ポップアップの表示は最初に翻訳結果が取得できたパターンの翻訳結果が表示されます。

        • ポップアップが表示されている状態で、「Ctrl」キーを押すと、手動で次候補の整形と翻訳処理を実行します。
          また、「Shift」キーを押すと、1回目の処理からやり直します。
          さらに、「Ctrl」キーと「Shift」キーの両方を同時に押すと、一時的に次に設定されている辞書に変更して1回目の処理からやり直します。
          つまり、ポップアップ表示中に「Ctrl」キーと「Shift」キーを押すと、次の対象辞書に切り換えて翻訳処理を行います。
          この操作はポップアップ表示中は連続して行えます。つまり、辞書が次々切り替わります。
          ここで一時的に変更した辞書は、スクリプトがリロードされるまで有効です。つまり、ページ移動やページのリロードをすると元の選択辞書に戻ります。
          なお、ブラウザがアクティブになっていないとキーイベントが取れませんのでご注意ください。
          マウスイベントはアクティブでなくても取れるので、初回の翻訳は非アクティブ状態でも可能です。
          同じキーイベントが複数発生した場合に、ポップアップ内の単語と辞書名と翻訳結果がずれることがあります。

      (5) フォームの移動
      • フォームを別の場所に移動させたい場合、フォームのタイトル領域をクリックしてドラッグ&ドロップしてください。
      • ウインドウの外にドロップした場合、ウィンドウの中に自動的に戻されます。

    11. 修正履歴
    12. 日付バージョン修正内容、理由
      2009-11-301.03.7aGM_setValueで保存している一時変更辞書にEijiroが残ったままだったので、問題はないけど、GM_getValueした後Eijiroを削除するようにしました。
      2009-11-301.03.7goo辞書の英辞郎が提供終了になったので、設定から削除し、goo辞書のEXCEEDをデフォルトにしました。
      2009-10-221.03.6WorldWeb online(英英辞書)の追加。英和だとわかりにくい時があるので入れてみました。
      サイトへのHTTPリクエスト時の状況表示を拡張機能に追加。
      拡張機能の辞書の一時変更で、使用する辞書サイトを指定する機能を追加。
      2009-09-011.03.5辞書(Weblio)の追加。
      Fx3.5.xのテキストボックス上でコンソールにエラーが出るのを回避。
      設定フォームをページに追加するタイミングを起動時からフォーム表示時に変更。
      2009-07-111.03.4辞書(BIGLOBE)の追加。候補リスト作成方式の辞書サイト対応への機能追加(BIGLOBE対応)。
      2009-07-041.03.3辞書の一時切り換え機能の追加。
      候補リスト作成方式の辞書サイト対応。
      基本機能でPOST型のサイトに対応。
      ドラッグ&ドロップ用のマウスカーソル変更。
      辞書の追加など。
      2009-06-251.03.2ヘルプボタンのバルーン(ツールチップ)追加、ヘルプページにミラー追加。
      冗長処理の修正。
      2009-06-201.03.1拡張版の初版

    13. システム要件
    14. (1) ブラウザ
      • Firefox 3.x
      • elementFromPoint を使用しているので、たぶんFirefox 2.xでは動きません。

      (2) Firefoxのアドオン
      • Greasemonkey 0.8.x
      (1) Firefox

      (2) Firefox のアドオン

      (3) userscripts.org

  2. 各辞書での翻訳結果のサンプル画像
  3. FAQ
  4. 今のところ無し。
Free Web Hosting