簡単に言えばLingoesキングソフト辞書のようなソフトウェアで、文字列を選択した状態でショートカットか文字列をコピーすると翻訳を行えるNILScriptで書かれたソフトウェアです。

元々は英語が読めない人向け、英語技術書の読み方 | Web scratchで書いてたようにLingoesを使っていたましたが、自分向けにもっとあった感じのものがほしかったので作成しました。
機能はハイライト翻訳に絞ってるので、単語帳のようなものなどは特にないですが、シンプルで動作も軽いと思います。
翻訳には単語翻訳(辞書機能)と翻訳サービスを利用した長文の翻訳機能の二つがあります(単語数で自動的にどちらの方法をとるかを決めています)

動作のスクリーンショット

imageimageimageimage

NILtranslatorの導入

NILScriptで実行するソフトウェアなので、NILScriptが必要です。(Autohotkeyみたいな形式だと思ってもらえば)
Githubに置いてあるので、Secure source code hosting and collaborative development – GitHubからzipファイルでレポジトリごとダウンロードするのが単純です。
もちろんgithubなのでgit cloneしてダウンロードするのもありです。(なにかあったらプルリクエストしてもいいですし)

$ git clone git://github.com/azu/NILScript.git

ダウンロードして展開したフォルダにNILtranslatorがあり、NILtranslatorに関係するファイルは全部そこに入っています。(他のものは自分が書いたNILScriptがいろいろと入っています)

NILScriptの使い方と書き方 | Web scratchやNILScriptのreadmeを読んでNILtranslator.ngをNILScriptで実行すれば、ソフトウェアが起動できます。

 

使い方と設定

翻訳は翻訳したい文字列を選択した状態で、クリップボードへのコピーか任意のショートカットで行う事ができます。

NILtranslatorが起動するとタスクバーにアイコンが出るので、右クリックから設定を行う事ができます。

image

動作設定

image

動作設定では、選択した文字列を翻訳するのにどのショートカットキーを使うかや、翻訳するサービスなどを選択できます。

*テキストコピーで翻訳 はそのままの意味でクリップボードにコピーした場合に翻訳する化を決定できます。
*ショートカットキー はNILScriptのHotstrokesユニットで使えるショートカットを指定できます。

デフォルトはShift*2でShiftを二回連続で押すことで翻訳を行えます。

詳細はNILScriptの方に入ってる* nildocHotstrokes.txt* やnilsampleHotstrokes.ngなどを見るのがいいと思います。

簡単にショートカットの例を挙げてみると

"Win" : Winキーを押した時(タップ) 
"Shift+A": Shiftを押しながらAを押す 
"Shift*2": Shiftを二回押す 
"Ctrl+[1] [2]": Ctrl+1 Ctrl+2と順番に押す 
"RButton+WheelDown": 右クリックを押しながらホイールダウン

 

このようにキーボードだけでなく、マウスも使ったいろいろなショートカットの指定が可能です。
(設定ファイルを書き換えて、mapに指定するオブジェクトを作ればもっと自由にもできたりする予定)

指定するキーの名前を知りたい場合はnilsamplekeyboard_hook.ngを実行して見るといいでしょう。

*がついてるものはソフトウェアを再起動後に反映されることに注意

辞書について

辞書はそれぞれ設定できますが、英辞郎はローカルに英辞郎のデータベースファイルを用意する必要があります。
辞書は以下から選択できます。

対応辞書サービス

  • KingSoft辞書
  • 英辞郎辞書ローカル検索(ご自分で英辞郎辞書を用意する必要があります)

英辞郎辞書は同梱していませんのでご自分で購入する必要があります。 http://www.eijiro.jp/

対応翻訳サービス

英辞郎辞書の導入

ローカルの英辞郎辞書を使うためには、英辞郎辞書をデータベース形式に変換する必要があります。
辞書の変換形式はEijiroXと全く同じものを使用しています。そのためEijiroXの利用方法をよく読み、databaseというファイル名のデータベースファイルを生成してください。

手順を簡単にEijiroXの利用方法からまとめると

  1. makedatabase.zip(Windows 用と書かれてるやつ)
  2. zipを展開してできたフォルダに英辞郎から取り出した英辞郎 (EIJI-*\*.TXT)、和英辞郎 (WAEI-***.TXT)、例辞郎 (REIJI-***.TXT)、略語郎 (RYAKU-**.TXT) の4つのtxtを入れる。
  3. makedatabase.exeを実行(一時間以上かかる)
  4. databaseとdatabase.sqlができる。
  5. database.sqlは削除しても問題ない。databaseをdatabase.dbなど拡張子がdbとなるようにリネームする

データベースファイルはできれば database → database.db(eijiro.dbなど)の拡張子を.dbにリネームした方がよいです(内部処理的に)

設定画面からdatabase.dbを設定し、辞書サービスとして英辞郎を選択すれば利用できるようになります。

image

ポップアップの消滅時間はミリ秒で指定し、翻訳パネルの非表示になるまでの時間を決定できます。

パネルの設定

image

翻訳パネルの配置やサイズなどは、アイコンの右メニュー→パネルの設定から行えます。
数値でも指定できますが、パネルの設定自体がパネルサイズになるようにしています。(動画を参照)

パネルの透明度はアルファ値で指定できます。

一時的に無効にする

image

アイコンの右クリックから→無効を選択すると一時的にショートカットやクリップボードへのコピーで翻訳パネルを出さないようにします。

翻訳パネルの表示を変更

パネルはIEエンジン(triden)で動いていて、divにサイトごとのIDが入るのでCSSで調整することができます。
CSSファイルとSassファイルも同梱されているので、CSSを変更すれば、背景色や文字サイズなども変更できます。

パネルの内部HTMLは以下のようになっています。

<html>
    <head>
        <style type="text/css">
        %style%
        </style>
    </head>
    <body>
        <div id="%siteID%" calss="main">
        %text% この部分に翻訳内容が入る
        </div>
    </body>
</html>
%siteID%はそれぞれ、実行時にサービスにあったものに置換されるため、以下のようにCSSでサービス別に記述する子が可能です。
/* kingsoft */
#kingsoft {

} /* 英辞郎 */ #eijiro{

} /* Excite */ #Excite{

} /* Google翻訳*/ #googleTranslator{

}

これで説明は終わりです。

おわりに

このソフトウェアはNILScriptで書かれていますが、UI部分でコードが少し増えましたが1000行程度でこのぐらいのものが作れてしまいます。

内部から外部APIを読んで翻訳を行ったりしていますが、調子がいいときはローカルで動いてるのと区別がつかないぐらい早く結果が返ってきます。

このようにNILScriptやTitanium DesktopやWebOSやWindows 8などWeb技術(HTML+CSS+JavaScriptなど)といったものでデスクトップアプリケーションが作れるようになるのはとてもおもしろいです。またWebとデスクトップの距離は短くなっていると思います。

謝辞

JavaScriptベースのすばらしいスクリプト実行環境であるNILScriptがないと動きません。

ローカル英辞郎の検索部分はEijiroX を元に作成しました。
@edvakfさんに感謝を