Mantisのドキュメントを翻訳してみる

MantisのドキュメントがDocBook形式になったので、今後は頻繁に更新されるかな? 今までは1.0.0のまま放置されてきたんですよね。

つーことで、翻訳できるか試してみました。

Windows上での変換

まずはDocBook形式からhtmlの形式に変換する環境を作ってみます。

えーっと、いろいろがんばったのですが無理でした(笑) DocBookにはSGML形式とXML形式があるのですが、XML版はまだツールがあるのですがSGML版はあまりツールないんですよね。。。

Linux上での変換

docbook* のパッケージを全部入れます。makeも使えるようにします。

cd docbook/adminguide/en
make html

Linux上だと普通に変換できます。今回はVMwareのUbuntu8.04を利用しています。ここまででCygwin上で変換しようとして失敗して、coLinux上とかいろいろ試してかなーーーーり時間をつぶしていますがWindows上でやるのであれば現状はVMware+Ubuntuが楽かな。CentOSFedoraの方が好みなのですが今風に行きます(笑)

翻訳ツールの選定

http://www.omegat.org/

OmegaTを今回利用します。昔から少し触っているのですが本格的に利用したことないかも。。。選定理由がDocBookも対応しているため!

翻訳ツールその後

DocBook/XMLは対応していたけれどDocBook/SGMLは対応していなかったよ(涙)

DocBook/XMLへの変換

http://www.jclark.com/sp/index.htm

いろいろ調べたところ上記のSGMLパーサーの中にsxという変換ツールがありました。Ubuntuで探してみると追加パッケージを入れろといわれて入れてみる。。。

結果というとXMODEMとかの転送モードがでてきた? これって他のパッケージだね。よくよく調べたところsgml2xmlという名前に変更されているようでした(笑)

sgml2xml administration_guide.sgml > administration_guide.xml

上記で変換できます。ただ結構吐き出されるxmlが汚い。。。あとDOCTYPEがなくなるので手で追加します。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "docbookx.dtd">

これでOmegaTに読み込める形式になりました。読み込んでみると。。。。。。。。。。。あれ?

docbookのタグ理解してなくて、かなりでかい単位で分割される。。。これでは使えませんね。

po形式に変換する

もう少し一般的な翻訳中間形式であるgettext形式に変換です。

cd docbook/developers
cp -r en ja
cd ja
po4a-gettextize -f sgml -m developers.sgml -p developers.po -o 'ignore=CODE' -o 'translate=COLOPHON'

po4aというパッケージをインストールします。

http://po4a.alioth.debian.org/man/man1/po4a-gettextize.1.php.ja

このページが非常に参考になりました。CODEとか何個かのタグが利用できなかったのでオプションで無視設定する必要があります。

翻訳

OmegaTにdevelopers.poを読み込ませてみるときれいに分割できました。これで大丈夫ですね。

po形式からsgml形式に戻す

cd docbook/developers/ja
po4a-translate -f sgml -m ../en/developers.sgml -p developers.po -o 'ignore=CODE' > developers.sgml

元のファイルを要求するのでこんな感じかな。

変換

makeをすれば出来上がるはず! ただ文字コードの指定を途中でしてなかったのでsjisでコードが吐き出されちゃいました。poファイルはEUCJPで作成してあげましょう。SGMLって日本語はEUCJPだけみたいなんですよね。。。

感想

書いていないのですが、Velocity DocBook Frameworkを試してみたりいろいろなツールを入れてみたり非常に大変でした。あまり日本語の情報ってないんですよね。

これとは別に本体の翻訳ファイル群があるのでそれから翻訳用のグロッサリーを作ってとか、1.0.0の翻訳したマニュアルもあるのでそこから翻訳を持ってくるなどいろいろやらないとだめみたいですね。ただし翻訳の流れは上記のような感じでできるかな。。。

問題は自分で翻訳自体までしている時間はないってことですね(苦笑)