Locale::Po4a::Sgml(3pm) | Po4a Tools | Locale::Po4a::Sgml(3pm) |
Locale::Po4a::Sgml - PO ファイルと SGML ドキュメントの変換
po4a (PO for anything) プロジェクトは、gettext ツールが想定していないドキュメントのような領域で翻訳をしやすくすること (またより興味深いのは、翻訳文の保守がしやすくなること) を目標にしています。
Locale::Po4a::Sgml は、SGML フォーマットのドキュメントをほかの [自然] 言語へ翻訳するのを助けるモジュールです。
このモジュールは SGML ファイルのパースに onsgmls(1) を利用します。必ずインストールしてください。また、SGML ファイルの DTD を、システムに必ずインストールしてください。
結果は完璧です。言い換えると生成したドキュメントは完全に一致しています。しかし、まだ以下のような問題があります:
問題は、onsgmls から条件付き取り込み (つまり "<! [ %foo [" and "]]>" のようなもの) を "保護" しなければならないということです。そうしないと、onsgmls が展開してしまい、最終ドキュメントで復元する方法がわかりません。これを防ぐために、私は "{PO4A-beg-foo}" と "{PO4A-end}" に書き直しました。
これの問題は、"{PO4A-end}" などと私が追加するものが、(<p> タグ内などと違って) ドキュメント内で無効であることです。
もしonsgmlsの出力を見たかったら、以下をコマンドライン(ないしpo4aの設定行)に加えるだけです。
-o debug=onsgmls
確かに、もっとドキュメントの記述が必要です。しかし、これはまだベータ版ですし、変わることが予想されるものの記述を行うのがイヤなのです。
DocBook のテストは SAG (System Administrator Guide) でのみ行いましたが、このドキュメントは非常に大きく、DocBook の仕様のほとんどを使用していると考えています。
DebianDoc に対しては、DDP にあるマニュアルでテストをしています。しかしまだ、すべてではありません。
これにより、生成したドキュメントでは、条件付き取り込み (例; the "<! [ %foo [" and "]]>" など) やいくつかのエンティティ (&version; のような) がそのまま扱われてほしいので、onsgmls から保護するため前処理を行うことになります。そこで、入力ファイルの一時コピーを作成し、onsgmls に渡してパースする前に、それらすべてを変更します。
こうするためには、与えられたファイルの内容により、ファイルの取り込みを確認しながらエンティティを置換します (サブファイルでも必要とあらば保護できるように)。ですが今のところ、後で参照 (例えばファイル名や行番号) を修正するということは行いません。どのようにするのが正しいのか、私にはよくわかりません。
このモジュールは、以下の方による sgmlspl (SGMLS パーサや ONSGMLS パーサの SGML ポストプロセッサ) の適合版です:
Copyright © 1995 David Megginson <dmeggins@aix1.uottawa.ca>
po4a への適合は以下のメンバーが行いました:
Denis Barbier <barbier@linuxfr.org> Martin Quinson (mquinson#debian.org)
倉澤 望 <nabetaro@debian.or.jp> Debian JP Documentation ML <debian-doc@debian.or.jp>
Copyright © 1995 David Megginson <dmeggins@aix1.uottawa.ca>. Copyright © 2002-2005 SPI, Inc.
本プログラムはフリーソフトウェアです。GPL の条項に基づき再頒布と変更を行うことができます (COPYING ファイルを参照してください)。
2023-01-03 | Po4a Tools |