Provided by: po4a_0.73-2ubuntu1_all
名前
Locale::Po4a::Sgml - PO ファイルと SGML ドキュメントの変換
説明
po4a (PO for anything) プロジェクトは、gettext ツールが想定していないドキュメントのような 領域で翻訳をしやすくすること (またより興味深いのは、翻訳文の保守がしやすくなること) を目標 にしています。 Locale::Po4a::Sgml は、SGML フォーマットのドキュメントをほかの [自然] 言語へ翻訳するのを助 けるモジュールです。 このモジュールは SGML ファイルのパースに onsgmls(1) を利用します。必ずインストールしてくだ さい。また、SGML ファイルの DTD を、システムに必ずインストールしてください。
このモジュールで使用できるオプション
debug 空白区切りのキーワードのリストです。それぞれ、表示される追加の不具合修正文言の分類を示 します。取り得る値は "entities", "generic", "onsgml", "refs", "tag" です。 verbose どのように実行しているかのより詳細な情報を出力します。 translate (DTDで規定されているもの以外の)追加タグの空白区切りリストです。該当する内容がmsgidに 追加されます。つまり、翻訳の対象となります。 section translate カテゴリ内のほかのタグを中に含む追加タグ (DTD の範囲外) の空白区切りリストで す。 indent 字下げの水準を増やすタグの空白区切りリストです。結果的な文書中の字下げに作用します。 verbatim そのタグのレイアウトは変更されません。段落は折り返されず、インデントのための空白は追加 されず、見栄えのための空行追加もされません。 empty 閉じる必要のないタグです。 ignore po4aにより無視され、素の文字データと見做すタグです。つまり、msgidの一部になります。例 えば <b> はこの分類の好例です。というのも translate 節に含めると内容のみがあるmsgidが 作られてしまう(そして大抵は完全な文でなくなってしまう)からです。そうなってはまずいで すよね。 attributes 翻訳する必要がある属性の、空白区切りのリストです。(例えば "lang" のように)名前で属性 を指定できますが、タグの継承を伴う前置詞も付けられます。そうするとこの属性は指定された タグの中にあるもののみが翻訳されます。例えば、 "<bbb><aaa>lan" はlang属性を指定してい ますが、更にその属性は "<aaa>" タグ内にあり、且つこのタグは "<bbb>" タグ内になければな りません。タグ名は実際には正規表現となります。そのため "<aaa|bbb>lang のように書くと、 "<aaa>" または "<bbb>" タグ内にある "lang" 属性のみが翻訳されます。" qualify 属性の空白区切りのリストです。この翻訳は属性名で修飾されていなければなりません。つま り、翻訳用に抽出されるテキストには、属性名と値が両方とも含まれるということです。例えば "<aaa lang_en="foo">" のようなタグについては、翻訳者には文字列 "lang_en="foo"" >> のよ うにタグが表示されます。なお、ここで与えた属性は自動的に attributes のリストにも加えら れます。 force DTD が分からない場合や onsgmls が入力ファイルでエラーを検出する場合のいずれでも処理し ます。 include-all デフォルトでは、("&version;" のような) エンティティを一つだけ含む msgid は、翻訳者の便 宜のためスキップします。このオプションを有効にすると、この最適化を行わなくなります。こ れは、 "<title>Á</title>" のような構造を含むドキュメントには便利です。とはい え、そのようなことがそんなにあるかは疑わしいです…… ignore-inclusion インラインにしたくないエンティティの空白区切りリストです。このオプションは注意して使用 してください。 onsgmls (内部で使用)がタグを追加し、無効な出力ドキュメントを表示する 原因になる可能性があります。
このモジュールの状態
結果は完璧です。言い換えると生成した文書は元の文書と完全に一致しています。しかし、まだ以下 のような問題があります。 • 既定では onsgmls のエラー出力を /dev/null にリダイレクトしています。明らかにまずいのです が、どのように回避したらよいのかがわかりません。 問題は、 onsgmls から条件付き取り込み(つまり "<! [ %foo [" and "]]>" のようなもの)を「 保護」しなければならないということです。そうしないと、 onsgmls が展開してしまい、最終ド キュメントで復元する方法がわかりません。これを防ぐために、私は "{PO4A-beg-foo}" と "{PO4A-end}" に書き直しました。 これの問題は、"{PO4A-end}" などと私が追加するものが、(<p> タグ内などと違って) ドキュメン ト内で無効であることです。 もし onsgmls の出力を見たかったら、以下をコマンドライン(ないしpo4aの設定行)に加えるだ けです。 -o debug=onsgmls • DebianDoc DTD と DocBook DTD でのみ動作します。新しい DTD のサポートを追加するのは非常に 簡単でしょう。仕組みはすべての DTD で同じで、既存のタグのリストとその特徴を与えるだけで す。 確かに、もっとドキュメントの記述が必要です。しかし、これはまだベータ版ですし、変わること が予想されるものの記述を行うのがイヤなのです。 • 警告: DTD のサポートは非常に実験的です。すべてのタグの定義を見つけるのに、リファレンスマ ニュアルを読んだわけではありません。ネットで見つかるドキュメントで動作するように、このモ ジュールにタグの定義を追加しました。あなたのドキュメントが私のよりも多くの種類のタグを使 用している場合、動作しないでしょう。しかし前述の通り、修正は非常に簡単です。 DocBook のテストは SAG (System Administrator Guide) でのみ行いましたが、このドキュメント は非常に大きく、DocBook の仕様のほとんどを使用していると考えています。 DebianDoc に対しては、DDP にあるマニュアルでテストをしています。しかしまだ、すべてではあ りません。 • ファイルの取り込みを行う場合、PO ファイルにあるメッセージの参照文字列 (例: "#: en/titletoc.sgml:9460" のような行) は誤りが発生するでしょう。 これにより、生成したドキュメントでは、条件付き取り込み (例; 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 v2.0以降の条項に基づき再頒布と変更を行えます (COPYINGファイルを参照)。
POD ERRORS
Hey! The above document had some coding errors, which are explained below: Around line 65: Unterminated C< ... > sequence