2007年8月30日木曜日

Emacsで快適な翻訳環境を

Darが便利なので常用することに決めたのですが、日本語化されていないので、自分で適当にチマチマと翻訳することにしました。
最近のlinuxのアプリは言語に依存する部分を別ファイル形式にして、それを差し替えていろんな言語に対応できるようになっています。
この言語ファイルが拡張子poの付いたテキストファイルで、これを変換してバイナリ形式のmoファイルにし、/usr/share/locale-langpack/ja/LC_MESSAGES/あたりに放り込むことで簡単に日本語化することが出来るのです。そこで早速poファイルを編集するための環境作りを。いそいそ。

Emacsにpo-modeを


とりあえずEmacsでpoファイルを編集するためのpo-modeが入っていなかったので、
sudo apt-get install gettext-el
してpo-modeをインストール。とくに~/.emacsに設定することもなく。さっそく、Darのソースを落としてきて展開し、中のpo/ディレクトリに移動し、
cp dar-pot ja.po
としてdarの言語テンプレートから日本語のja.poファイルを作り、emacsで開いてみました。

操作方法

u次の未翻訳項目に移動
C-j元の言語をコピペする
RET項目の翻訳状態に入る
C-c C-cその項目の翻訳を終了する。
C-c C-k今いる項目の翻訳状態から抜ける。
Vpoファイルに異常が無いか確認してからタイムスタンプを修正し、上書き保存する。
s該当個所のソースコードを開く。
Epo-modeを抜ける。
な感じで。h キーで簡易ヘルプも表示されます。POファイル自体はタダのテキストファイルで、msgid "" が元の言語で、msgstr "" に翻訳した言葉を書いていきます。

ネット接続で英文を翻訳

emacsでpo-modeで翻訳できる環境にはなったけど、これだけだとつらいので、Emacs でテキスト翻訳をする Emacs Lisp パッケージ text-translator をさくっと導入します。リンク先からダウンロードしてきて ~/.lisp に放り込み、~/.emacs に以下を追記します。
(require 'text-translator)
;;翻訳キー設定
(global-set-key "\C-xt" 'text-translator)
(global-set-key "\C-x\M-T" 'text-translator-translate-last-string)
適当にC-xtにキーを設定し、おもむろに英文を範囲選択してからキーを押すと、見事に和訳された文章が表示されました。いろんな翻訳サイトに対応していて、ほかにもルー語変換も出来るそうです^^;


ん〜シームレスにemacs内で完結するというのは気持ちがいいですね。普通だったら、翻訳したい文章をコピーして、Webブラウザで翻訳サイトを開き、テキスト入力部分にコピペし、翻訳ボタンをクリック。
英和辞書なら、和英辞書ソフトをを立ち上げて、同じくコピペするという・・・これだけの作業をマウスを使ってあっちのソフトからこっちのソフトへ行ったり来たりは、何回もやっているとむきゃーとなりますね^^;

emacsから英辞郎を利用する


上のだけではアレなんで英和辞書もemacsから使えるようにします。英辞郎の辞書データは別途用意してください。
手順としては、英辞郎のテキストファイルを sdic-eijiro パッケージに含まれているスクリプトでsdic形式に変換し、sdic.elを導入する、です。

インストール

sudo apt-get install sdic-eijiro sdic
  • 辞書の変換
  • 以下手順メモ
    mkdir ~/sdic
    cd ~/sdic
    nkf -S -e EIJIRO98.TXT | perl /usr/share/sdic/eijiro.pl > eijiro.sdic
    nkf -S -e WAEIJIRO98.TXT | perl /usr/share/sdic/eijiro.pl --waei > waeijiro.sdic
    sudo ln -s ~/sdic/eijiro.sdic /usr/share/dict/eijiro.sdic
    sudo ln -s ~/sdic/waeijiro.sdic /usr/share/dict/waeijiro.sdic
    ~/.emacsに、
    (global-set-key "\C-cw" 'sdic-describe-word) ;;英辞郎で翻訳する。

    を追記して、キーバインドをC-cw に設定。試しに英単語上でC-cwしてみると見事に訳が。

ただ検索速度が遅すぎたので、sufary を導入してみました。
sudo apt-get install sufary
をした後に、再度
sudo apt-get install --reinstall sdic-eijiro
してみたところ、自動的にeijiro.sdic.arryが作成されました。結構時間がかかります。
その後特に何も設定せずともsufaryが効いているみたいで、検索速度が飛躍的に早まり、快適に使えるようになりました♪


これでemacsで快適な翻訳作業が構築完了。試しに
msgfmt -v ja.po -o ja.mo
sudo cp ja.mo /usr/share/locale-langpack/ja/LC_MESSAGES/dar.mo
してみて無事darの日本語化が成功。
  • 英文章を翻訳したい時は、
    翻訳したい箇所を範囲選択し、おもむろにC-xt
  • 英単語を翻訳したい時は、
    翻訳したい単語の上にカーソルを持っていき、おもむろにC-cw
ん〜〜〜便利だぁw

オマケの翻訳中のdar画面
●20070902追記:
apt-cache search sdic してみると、
sdic - Emacs-Lisp program to view dictionaries
sdic-edict - EDICT dictionaries for sdic (installer)
sdic-eijiro - Installer for EIJIRO dictionaries for sdic
sdic-gene95 - Installer for GENE95 dictionaries for sdic

と出てきます。ubuntuの日本語版に標準で入っているGjiten日本語辞典が使用している英和辞書の形式がEDICTなので、sdic-edictパッケージを導入すればemacsから辞書の再利用ができるかもしれません。わざわざ英辞郎を用意するなんて・・・という人にはお薦めかもしれません。

2 件のコメント:

匿名 さんのコメント...

本文の内容とはあまり関係ないのですが、スクリーンショットのフォントがアンチエイリアスされていてきれいですね。

OSは過去の記事を読んだところubuntuだと思われますが、emacsはxftが有効になっているバージョン23でしょうか。それとも21系でしょうか。

フォントの設定などエントリーで紹介していただけるとありがたいです。

ayukawa さんのコメント...

emacs23を利用しています。
あとでemacs23の記事書いておきますね><b