Mac OS X 10.5 で po4a と OmegaT で TeX 文書を翻訳
August 24, 2009
用意するもの
- Mac OS X 10.5.8
- OmegaT
OmegaT_1.8.1_06.dmg
- po4a
po4a-0.36.3.tar.gz
- perl
perl-5.10.1.tar.gz
準備
- perl 5.10.1 をインストールする。Mac OS X 10.5 デフォルトの perl 5.8.8 では
po4a 0.36.3 は走らない。以下で /usr/local に perl 5.10.1
がインストールされる。
- tar.gz を展開
- ./configure (結構大変。質問には全部リターンキーで応えてよい。)
- make
- make check (結構時間がかかる。)
- sudo make install
- po4a 0.36.3 のインストール。デフォルトの perl 5.8.8 ではうまくいかないので、
perl のシステム標準にインストールするのをやめて、
ユーザーのホームディレクトリ以下に置くことにしたが、
システム標準にもインストールできるような気もする。
- なんか適当な ~/usr/share/perl とかを mkdir する
- そこに po4a の lib ディレクトリと
po4a-gettextize などのコマンド類を置く。
- .tcshrc とかに以下の行を追加しておく。
setenv PERLLIB ~/usr/share/perl/lib:~/usr/share/perl/po4a-gettextize
ついでに unsetenv LANG も追加してしまってもいいと思う。
- OmegaT はダウンロードして「アプリケーション」フォルダに入れておく。
翻訳作業
- 翻訳したい TeX ファイルを PO ファイルに変換する。
- 翻訳したい TeX ファイルのあるところに cd して、
以下のコマンドを実行する。
po4a-gettextize -f latex -m text.tex -p text.pot
ここで text.tex は翻訳したい (翻訳元) のファイル、
text.pot は出力される PO ファイルであり、翻訳対象が plain TeX の場合は
latex を tex にする。このコマンドはちょっと時間がかかる。
- 変換した PO ファイルをガシガシ翻訳する。これに OmegaT を使う。
- OmegaT を起動する。
- 「プロジェクト」から「新規作成...」を選ぶ。
- 「名前:」を適当に付け、po4a で生成された PO
ファイルのあるディレクトリを選ぶ。
- 「原文ファイル言語」と「訳文ファイル言語」を正しく選ぶ。
あとはデフォルトのままで構わない。
- で「確定」。
- OmegaT のウィンドウの一番下に「文節分析中...」
みたいなのが表示されているときは、終わるまで待つ。
- 翻訳したいところには、キーボードショートカットで移動する。
- 翻訳文を書いていく。
- 一段落したところで「保存」する。
- で「訳文ファイル生成」する。
- 2. で決めたプロジェクト名のディレクトリ中の target
ディレクトリに、翻訳文が追加された PO ファイルができているはず。
それをどこかにコピーする。
- 翻訳後 TeX ファイルを作る。
- コピーした PO ファイルから TeX ファイルを作る。
po4a-translate -f tex -m tutorial.tex -p tutorial.pot -l ja.tex
最後の -l を指定しなければ、標準出力に出てくる。
このコマンドもちょっと時間がかかる。
- できた TeX ソースの文字コードは適宜変換する。iconv
でダメだったら emacs で変換できる。ファイルを開いて M-x [RET] f
に続けて文字コードを入力して、そのまま保存すればよい。
- 翻訳後 TeX ソースのできあがり。
いろいろ
- pari/gp のチュートリアルの翻訳に使おうと思ってやってみたが、
ソースが plain TeX で複雑すぎるのか、最後に生成した翻訳後 TeX
ソースのコンパイルが失敗する。でもその失敗箇所以前の部分については DVI
ファイルが出力され、PDF にも変換できる。
- OmegaT の使い方は直観的で、操作に迷うような所はない。
以前と違って動作も非常に安定していて、かつ高速であり、
ツールとして何の不満も生じ得ない。
- po4a もバージョン番号の示す印象よりは、まともに動作するように感じるが、
まだ甘いところもある。文中の %
がエスケープされなくてコメントになっちゃったりとか、
処理しきれないマクロがあったりとか。