最終更新日:2012/03/02
Honnyaaku - トリプルクリックしたテキストをbing,Google,livedoorで翻訳して表示するアプリケーション
Honnyaakuとは
テキストをトリプルクリックするとそのテキストをbing,Google,livedoorで翻訳して表示するアプリケーションです。
選択したテキストを翻訳するのはサービスでできるようにしているのですが、App Storeのテキストが選択できないのでサービスで翻訳できなくて困ったので作ってみました(最初にSIMBLプラグインでテキストの選択ができるように挑戦したのですがやり方がわかりませんでした。)。
機械翻訳なので翻訳しても意味不明な場合もありますが、英語が苦手な自分としては無いより便利かな。複数のサイトで翻訳するのはサイト毎に翻訳結果が違い多い方が理解できる割合が上がりそうだからです。
動作環境
OS X 10.6.x
ほとんどCocoaだけどAppleScriptObjCなので10.5では動きません。
使い方
- 「ユニバーサルアクセス」環境設定で「補助装置にアクセスできるようにする」にチェックが入っている必要があります。
- 設定ウインドウは起動直後に表示されるウインドウのコンテキストメニューから表示できます。なお、コンテキストメニューのメニューアイテムを選ぶ時の反応が悪い場合があります。
- 日本語が含まれていると英語に、それ以外の場合は英語を日本語に翻訳します。ただし、Googleは元言語を「自動検出」で日本語に翻訳します。
- アプリケーションを起動後、画面に表示されている翻訳したいテキストをトリプルクリックします。もしくは、テキストの上にマウスを移動した後に、コマンドキーを押しながら「英数キー」を押します。正確には「英数キー」を上げた時に翻訳します。
- ウインドウを閉じている時はトリプルクリックによる翻訳は行いません。英数キーを押しながらトリプルクリックをするとウインドウを表示して翻訳します。
- テキストを取得できないアプリケーションもあります。App StoreやSafariでは段落毎に取得できますが、テキストエディットなどエディタ系ではすべてを取得してしまいます。選択できないメニューのタイトルやボタンのラベル等も取得、翻訳できます。
- デフォルト設定ではウインドウを閉じるとアプリケーションが終了します。
- 翻訳するサイトは設定で指定できます。また、設定で翻訳しないようにしたサイトでもコンテキストメニューから翻訳できます。
- サービスメニューから翻訳することもできます。サービス名は「翻訳(Honnyaaku)」です。システム環境設定のキーボードでオンにする必要があります。選択したテキストをキーボードショートカットで選択したい場合はここでショートカットキーを設定します。また、オプションキーを押しながら「英数キー」を押すとサービスメニューを実行します。こっちも正確には「英数キー」を上げた時に実行します。
- AppleScriptからも実行できます。
使用上の注意
- トリプルクリック以下で翻訳する設定だと普通に使っていてテキストを選択しようとした時に翻訳してしまう場合があります。そのような場合で困った時はクリック回数を増やして下さい。
- 翻訳はオンラインのウェブサービスで行うので個人情報を含むテキストは、使用する翻訳サイトを信頼していいか考えて使ってください。
- 期待通りの選択範囲とならない場合があります。
- SafariやXcodeのヘルプなどWebKitのテキストは、そのテキストがフレーム内にあると取得できないようです。たまに取得できる場合もあります。
- ウェブサービスで翻訳していますが、たまに翻訳に失敗して結果が返ってこない場合があります。翻訳結果はキャッシュしているのでそのままでは再度翻訳してもキャッシュを表示してしまいます。その場合、コンテキストメニューからキャッシュを削除することができます。
- Honnyaakuのテキストはトリプルクリックや英数キーを押して翻訳できません。サービスメニューからは行えます。
- 使用するウェブサービスのページレイアウトが変更になると翻訳できなくなります。
AppleScript
下記のようなAppleScriptで指定したテキストを翻訳できます。これ以外にマウスの位置にあるテキストを翻訳するコマンドと選択したテキストをサービスを実行して翻訳するコマンドがあります。
tell application "Honnyaaku"
honyakuString "I love cat and kitten."
honyakuString "今日はカレーライスを食べたいです。"
end tell
バグ
- まれに翻訳時にアプリケーションが落ちます。最初の一回目の翻訳時が多くて、ここが大丈夫だとあとはほとんど大丈夫ですが大丈夫じゃない時もあります。
- livedoorの翻訳結果にたまに文字化けがありますが、その文章をブラウザで翻訳してみても文字化けしていたので直せませんでした。
- コンテキストメニューから設定ウインドウを表示する時のコンテキストメニューの選択が重かったのですが、初期設定ファイル com.yourcompany.Honnyaaku.plistをゴミ箱に入れたら(何故か分からないけど)直りました。
- LibreOffice3.4.4のCalcのセルの色の「塗りつぶしなし」を翻訳しようとクリックするとLibreOfficeが落ちます。他にも相性の悪いソフトがあるかもしれません。
tips
- Honnyaakuで表示されているテキストではコマンドキー + コントロールキー + Dキーの同時押しによる単語の意味表示ができます。個別の単語に意味が知りたい時に。
- 英語版のアプリケーションのボタン、ラベル等でわからない英語があれば、それをトリプルクリックしてみましょう。また、メニューなどトリプルクリックできない物ではそれの上にマウスを移動して、コマンドキー + 英数キーを押してみましょう。翻訳できます。
- 翻訳するテキストが長過ぎる場合は、翻訳に失敗する場合があります。サイト毎に最大の長さがあります。
隠し設定
ターミナルで次のコマンドを打ち込むといくつか設定ができます。
削除するには下記のようにwriteをdeleteにします。
defaults delete com.yourcompany.Honnyaaku HonnyaakuFontSize
- フォントサイズ
- defaults write com.yourcompany.Honnyaaku HonnyaakuFontSize -int 13
- フォント名
- defaults write com.yourcompany.Honnyaaku HonnyaakuFontName 'Hiragino Maru Gothic Pro'
- 行間
- defaults write com.yourcompany.Honnyaaku HonnyaakuLineSpacing -int -2
- コマンドキーを押しながら押したら翻訳をしたり、押しながらトリプルクリックをするとウインドウを表示するキーのKey Code。ちなみに102が「英数」、104が「かな」です。
- defaults write com.yourcompany.Honnyaaku HonnyaakuHotKeyCode -int 102
ダウンロード
- Honnyaaku0.5.1.zip
- Google翻訳の結果に関係ない単語が追加されていたのを修正
- Honnyaaku0.5.0.zip
- Honnyaaku0.5.0b2.zip
- Honnyaaku0.5.0b1.zip
- 翻訳するサイトをbing,Google,livedoorに変更。
- bingで入力したテキストの言語を調べて、日本語なら英語に、それ以外は日本語に翻訳するようにした。livedoorは日英以外の翻訳がうまくいかない場合があります。
- 内部的な変更として10.6でruby、10.7でpythonを使う部分をCocoaで書き換えました。10.7で翻訳時に一瞬Dockにアイコンが出るのが無くなりました。10.7では動作テストしてないので未確認ですけど。
- Honnyaaku0.4.4.zip
- Dockにアイコンを表示できるようにした。またDockのアイコンをクリックすると隠れている翻訳結果ウインドウを表示します。
- (適当に作り上げた)アプリケーションアイコンを追加。
- Honnyaakuで入力したテキストを翻訳する時の安定性を改善。
- Honnyaaku0.4.3.zip
- 10.7で止まるのを修正。ただし、Googleで翻訳する時に一瞬Pythonのアイコンがドックに表示されます。
コメント
コメント 0.4.1
まれにアプリケーションが落ちる原因がさっぱりです。Objective-Cの方のスレッドからAppleScriptに書いたメソッドを呼び出しているところで落ちているようだけど、やってはいけないのかな?
コメント3
オプションキー + 英数キーのサービスメニュー実行をなぜ用意したかと言うと、システム環境設定では英数キーを使ったショートカットキーが設定できなかったからです。英数キーは他のショートカットとして使って無いのでコマンドキー、オプションキーと合わせて押すぐらいなら覚えやすい、押しやすい、という利点があるのでできるようにしてみました。
コメント2
英数キーやかなキーは他のショートカットで使って無いから、コマンドキーと合わせてホットキーとして使ってみたけど、どうかな
コメント1
最初はAppleScriptメインのAppleScriptObjCで作る予定だったけど、翻訳のため通信するとことろ以外はほとんどCocoaになりました。しかし、AppleScriptObjCだとそのAppleScript部分をCocoaから直接[ self honyaku:text ];
の様に書けるので非常に便利だと思いました。また、その逆もできます。AppleScriptを使う予定のあるプロジェクトはとりあえずAppleScriptObjCにしておいたらAppleScript部分の取り扱いが楽になるかなと思ったけど、実行速度とかで不利な部分もあるのかな?