 英和辞書ツール XBabylon のリリース(0.9.3)です。

 (1) これは何ですか？
 X で動作する翻訳(単語辞書)ソフトヱアです。
 Windows に Babylon translator(TM)というのがありまして、なかなか便利な
ので愛用しています。しかし、Linux 版がない点を常々残念に思っておりまし
た。アンケートに書き込んだりして、出ることを期待して待っていたのですが、
今に到るまで開発計画はないようです。さらに、最近は基本的に有料ソフトに
なってしまいました(無料の trial version もあるのですが、うるさい公告が
付くようになっています)。こういった商用化の動きから推測するに、今後の 
Linux 版に期待することはできないでしょう。
 というわけで、X 上で似た動作をするユーティリティアプリケーションを書
いてみました。通常のアプリケーションプロセスですが、ヰンドウマネジャの
ショートカットを活用して、マウスプッシュで呼び出すことができます。辞書
は、FreeUNIX で良く使われている ejdic を使っています。基本的に Xlib し
か使っていないので、軽さには満足いただけると思います。私の note PC
(Pentium MMX 166MHz)でもストレスなく動きます。
 概ね実用的なレベルで動作しますので、良かったら使ってみて意見をくださ
い。


 (2) インストール 
 (2.1) Build
 辞書を既に持っている人は xbabylon-x.xx.tgzだけを、辞書が未インストー
ルな方は、追加で ejdict.tar.gz をダウンロードして、同ディレクトリ(/tmp 
など)に展開して下さい。xbabylon のディレクトリに移動し、su になって、 
make install。終り。

 もう少し詳しく説明します。
 default の設定では、以下のファイルが install されます。
 /usr/local/bin/xbabylon
 /usr/local/lib/ejdic.XXX
 /usr/local/man/man1/xbabylon.1.gz

 XXX はロケールに合わせて変わります。LC_ALL 環境変数が ja_JP.ujis なら
ejdic.ujis, ja_JP.UTF-8 なら ejdic.UTF-8 になります。辞書は実行時のロ
ケールに合わせて探索されます。したがって、インストール時に、それに合わ
せて下さい。また、複数のロケールを切り代えて利用している場合は、辞書を
複数置いておくことで対応できます。通常、Redhat 系列は ujis、Fedora
Core系列は、UTF-8 です。

 辞書ファイル(ejdic.ujis）は、/usr/loca/lib に置きます。辞書ファイルの
copyright は GPL ではありませんので、基本的にはアーカイブに含まれませ
ん。public domain にあるものを as is で提供しています。また、gene95 辞
書も利用することができます。(ググッて下さい)。
 Ejdict は、付属の別ツールと共にかなりポピュラーですので、既に install 
されていれば、それを使うこともできます。元々の辞書は Shift_JIS でエン
コードされていますが、ロケールに合わせてエンコードを変更します。既に使
用ロケールに合致した Ejdic 辞書がどこかにある場合、Makefile の DICT 変
数をそのパスに設定します。(または xbabylon 実行時 -d file_path でも指
定できます)

 make install すると binary は、/usr/local/bin に置かれます。変更した
ければ、Makefile の INSTALLDIR 変数の設定を変えて下さい。(PATH が通っ
ていればどこでも良いですし、後述の Window Manager への設定をフルパスで
記述すればそれも必要ありません)

 また、default の font は 12 dots にしてありますが、これがない場合や小
さすぎる場合も多いと思われます。これを変える場合は、Makefile の 
OPTIONS の中にある -DFONT12 を -DFONT10 (10dots), -DFONT14 (14dots) に
変更して下さい。

 (2.2) 設定
 次にキーバインディングを設定します。基本的な操作としては、double
click などで cut buffer に取ってから、shift-右マウスボタンクリックで訳
が表示されます。これを実現するために WindowManager の keyboard short
cut 機能を使います。勿論、Key はshift-右マウスボタン以外でもOKです。お
好きなのを設定することができます。

 (2.2.1) Sawfish
 Sawfish であれば、setup menu から "short cut" に 
	run-shell-command "xbabylon" 
 または、
	run-shell-command "/usr/local/bin/xbabylon"
 を設定します。例えば Shift-Mouse 3 などにします。
 もしくは、.sawfishrc に以下を記入します。
 (custom-set-keymap 
	(quote window-keymap) 
	(quote (keymap ((run-shell-command "xbabylon") . "S-Button3-Click"))))

 (2.2.2) Fvwm, Fvwm2
 fvwm なら .fvwmrc に以下を加えます。
	Mouse 3 RWTFIS S Exec "xbabylon" xbabylon

 (2.2.3) KDE (KWM)
 KDE メニューに入れないと使えないようです。(Windowsに似ている？)
 kmenuedit を立ち上げて、どこかに XBabylon を新規項目で作成します。設
定画面中の下のほうに、「現在のキー」というものがありますので、そこに例
えば、Ctrl+Shift+B などを設定します。因みに、マウスボタンはショートカッ
トには設定できないようです。


 (3) 使い方
 インストールが終れば、double click か mouse drag でテキストを選択状態
にした後、設定したショートカット(上の例では Shift-mouse 3)を推せば、訳
語が書かれた Window が出てきます。この Window は一定時間後自動的に消滅
します。読み終わるまでマウスを入れておくと消えません。(この時間を変え
たければ、xbabylon.c の中の以下の値を変更して下さい)
	#define SEC_BEFORE_DISAPPEAR    (3)  // 今は3秒


 (4) TODO
 欲しい feature は加えて行こうと思いますので、要望があれば教えていただ
けるとやる気が起きます。自分で考えていることを少し書いておきます。

 + Babylon は OCR を使っているが、XBabylon は cut buffer を使っている
  ので、cut buffer (もしくは selection)対応でない application では使え
  ない。OCR の場合の表示された語はなんでも翻訳可能といるのは素晴しいが、
  反面、誤認識も多く、一長一短である。(あまりやる気がしない。Freeの使
  い易い OCR があればやっても良いと思っている）

 + 翻訳の表示を折り返し表示に一応対応した。が、EUC をきちんと読んでい
  ないので、バグっているかもしれない。きちんと直したいものだ。

 + 辞書の著作権がはっきりしないので、edict を使ったほうが良いと思うが、
  和英の形式なのでちょっと使いにくい。著作権的には、Linux で既に定番の
  英和辞書のようなので、問題はないのでしょうね。検索時間が問題にならな
  いので、もっと大きな辞書を使いたいと思う。

 + Pentium 166 の NotePC でさくさく動いているので、重くないと思うけど、
  必要なら辞書サーバを分けるなどして、辞書検索を高速化することは可能。
  検索自体はベタサーチでしかもケース毎に何回も嘗めている。しかし特に遅
  さは感じないので、これで良いでしょう。
  また、ストレージの乏しいノートの場合に辞書が大き過ぎるとかいうケース
  では、gzip とかで圧縮する手もある。が、zlib を使ってみたらかなり遅く
  なるので止めた。

 + 実用のため、Capital letter、現在分詞、過去形などに対応したが、行き
  当りばったりです。正しい取り扱いを教えて欲しい。
  また、この辺りが英語に特化していますので、英和のみ対応になっています。
  基本的には、strcmp しているだけですので、何語辞書でも良いです。また、
  表示部がやはり日本語に特化しているので、ここを直せば何語でも OK です。
  (もっと、i18n で統一的な方法が使えると良いのですが…)

 + もっとも使いたいアプリである mozilla 上では沢山のゴミが selection 
  に付いてくるので対策してありますが、quick & dirty なコードです。
  kterm とかに張ったときは大丈夫なので、systematic な方法があると思う
  のですが。

 + 恰好の良い GUI tool kit を使う。重くならないのだったら、Gtk とかに
  しても良いかなぁ。でも実は使ったことがないのです。xview だったら書け
  るんですが…。

 + 辞書が非力なので、追加の検索機能が欲しい気持ちもある。辞書内に見つ
   からない場合は、http で Web Search する機能(Babylon にはある)かなぁ。


 (5) Change log
 (0.9.3)
	man を整備した。
 (0.9.1)
	Fedora Core 用に、UTF-8 locale に対応した。他の日本語ロケール
	(SJIS)等でも動作します。
 (0.9.0) 
	SourceForgel.jp に移行することにした。
 (0.27)
	buffer overflowの危険のあるコードを直す。
 (0.26)
	mail(郵便、鎧)など、同綴異義語に対応した。ソースが大きくなった
	ので、ファイルを分割した。
 (0.25)
	探索語を赤で表示した。-d dictionary_file に対応した。
 (0.24)
	文字数に応じたサイズになるようにした。(ソースが大分汚くなった)
 (0.23)
	ヰンドウに色を付けました。WindowManager による制御から外し、
	mouse の左上に枠無しで表示することにした。見栄えは Babylon に
        結構似てきました。^_^
 (0.16)
	Mozilla からカットにまだ、問題があるようだ。なんか余分なゴミが
	付いて来る。Mozilla で使えないと意味がないので、Q&D な Fix を
	した。
 (0.15)
	Window が focus されている間は消さないようにした。
 (0.14)
	単語末に付いた space を取り除く処理を入れた。これは Mozilla
	においてダブルクリックで撰択すると、単語間の space を一緒に取
	る buggy な仕様に対応するため。
	三単現や複数形のS、過去形の ed などに対応した。(いい加減)
 (0.13)
	いらない XFlush とかを除いて、コードを整理した。
 (0.12)
	Netscape, Mozilla に対応させるため、selection 対応にした。
 (0.10)
	最初のリリース。
