2009 . 04 . 04

選択テキストをポップアップで翻訳表示するブックマークレット

translate-bookmarklet.js

Google翻訳APIを利用して、選択テキストをポップアップウィンドに表示するブックマークレット。

ブックマークレットという手軽さと、おしゃれなスタイルが特徴の翻訳補助ツールです。



上のブックマークレットはデフォルトでは翻訳言語が英語になっているので、日本語に変えたのが下のコードと実際のブックマークレットです。

javascript:if%20(!window[%27apiLoaded%27])%20{window.apiLoaded%20=%20function()%20{var%20language%20=%20%22ja%22;var%20text%20=%20window.getSelection().toString();if%20(text)%20{google.load(%22language%22,%20%221%22,%20{%20%22callback%22%20:%20function()%20{google.language.detect(text,%20function(dresult)%20{if%20(!dresult.error%20&&%20dresult.language)%20{google.language.translate(text,%20dresult.language,%20language,%20function(tresult)%20{if%20(tresult.translation)%20{translationWindow(tresult,%20dresult);}%20else%20{alert(%27No%20translation%20found%20for%20%22%27%20+%20text%20+%20%27%22%20guessing%20the%20language:%20%27%20+%20dresult.language);}});}});}});}};}if%20(!window[%27translationWindow%27])%20{window.translationWindow%20=%20function(tresult,%20dresult)%20{if%20(window[%27UI%27])%20{new%20UI.Window({theme:%20%22black_hud%22,shadow:%20true,width:%20350,height:%20100}).setContent(%22<div%20style=%27padding:6px%27>%22%20+%20tresult.translation%20+%20%22</div>%22).setHeader(%22Japanese%20Translation%22).setFooter(%22Language%20detected:%20%22%20+%20dresult.language).center({top:%2020}).show();}%20else%20{alert(tresult.translation%20+%20%22%20[lang%20=%20%22%20+%20dresult.language%20+%20%22]%22);}}}if%20(!window[%27UI%27])%20{var%20pw%20=%20document.createElement(%27script%27);pw.src%20=%20%27http://almaer.com/downloads/protowindow/protowin.js%27;pw.type%20=%20%22text/javascript%22;document.getElementsByTagName(%27body%27)[0].appendChild(pw);var%20pwdefault%20=%20document.createElement(%27link%27);pwdefault.setAttribute(%27rel%27,%20%27stylesheet%27);pwdefault.setAttribute(%27type%27,%20%27text/css%27);pwdefault.setAttribute(%27href%27,%20%27http://almaer.com/downloads/protowindow/themes/window.css%27);document.getElementsByTagName(%27body%27)[0].appendChild(pwdefault);var%20pwblack%20=%20document.createElement(%27link%27);pwblack.setAttribute(%27rel%27,%20%27stylesheet%27);pwblack.setAttribute(%27type%27,%20%27text/css%27);pwblack.setAttribute(%27href%27,%20%27http://almaer.com/downloads/protowindow/themes/black_hud.css%27);document.getElementsByTagName(%27body%27)[0].appendChild(pwblack);}if%20(!window[%27google%27])%20{var%20s%20=%20document.createElement(%27script%27);s.src%20=%20%27http://www.google.com/jsapi?callback=apiLoaded%27;s.type%20=%20%22text/javascript%22;document.getElementsByTagName(%27body%27)[0].appendChild(s);}%20else%20{apiLoaded();};void(0);

下のリンクをブックマークして、目的のページ内のテキストの選択した状態で、このブックマークレットをクリックしてください。


translate-bookmarklet


バツグンの機動性ということで以前紹介したgTranslateも、単語単位の翻訳ならともかく、数行に及ぶとなると結局翻訳サイトにジャンプすることねなります。

その点、このツールは文章の長さに左右されず、機動性とユーザビリティを両立した優れものといえます。また、ブックマークレットとしての汎用性も長所の一つではないでしょうか。


  • 動作確認はFirefox3でしか行ってませんので、他のブラウザで動作するかは分かりません
    また、稀に動作しないページもありました