Provided by: po4a_0.47-2_all bug

名前

       Locale::Po4a::Sgml - PO ファイルと SGML ドキュメントの変換

説明

       po4a (PO for anything) プロジェクトは、gettext ツールが想定していないドキュメントのような
       領域で翻訳をしやすくすること (またより興味深いのは、翻訳文の保守がしやすくなること) を目標
       にしています。

       Locale::Po4a::Sgml は、SGML フォーマットのドキュメントを他の [自然] 言語へ翻訳するのを助け
       るモジュールです。

       This module uses onsgmls(1) to parse the SGML files. Make sure it is installed.  Also make
       sure that the DTD of the SGML files are installed in the system.

このモジュールで使用できるオプション

       debug
           デバッグしたい場所を示す、空白区切りのキーワードリストを表示します。取り得る値は、tag,
           generic, entities, refs です。

       verbose
           どのように実行しているかの、より詳細な情報を出力します。

       translate
           内容が追加 msgid の形になる、追加タグ (DTD の範囲外) の空白区切りリストです。

       section
           translate カテゴリ内の他のタグを中に含む、追加タグ (DTD の範囲外) の空白区切りリストで
           す。

       indent
           インデントレベルを増やすタグの、空白区切りリストです。

       verbatim
           そのタグのレイアウトを変更されません。段落は折り返されず、インデントのための空白は追加
           されず、見栄えのための空行追加もされません。

       empty
           閉じる必要のないタグです。

       ignore
           無視され、po4a がただの文字列として扱うタグです。つまり、msgid の一部として扱えま
           す。例えば、<b> はこのカテゴリの良い例です。<b> が翻訳セクションに入ってしまうと、文全
           体が入った msgid が作られなくなってしまいます。これはまずいです。

       attributes
           翻訳する必要のある属性の、空白区切りリストです。属性を名前 (例: "lang") で指定できます
           が、特定のタグの中にあるときだけこの属性を訳すように、タグ階層を前につけることもできま
           す。例えば、<bbb><aaa>lang は、<bbb> タグの中にある、<aaa> タグの中にある場合に、lang
           属性を訳すということを示しています。タグ名は、実際には正規表現ですから、<aaa|bbbb>lang
           のように書いた場合は、<aaa> タグか <bbb> タグの中にある lang 属性のみを訳せます。

       qualify
           翻訳が属性名で修飾しなければならない属性の、空白区切りのリストです。この設定に与えた属
           性は、自動的に 'attributes' リストにも追加されることに注意してください。

       force
           Proceed even if the DTD is unknown or if onsgmls finds errors in the input file.

       include-all
           デフォルトでは、('&version;' のような) エンティティを一つだけ含む msgid は、翻訳者の便
           宜のためスキップします。このオプションを有効にすると、この最適化を行わなくなります。こ
           れは、"<title>&Aacute;</title>" のような構造を含むドキュメントには便利です。とはい
           え、そのようなことがそんなにあるかは疑わしいです……

       ignore-inclusion
           Space separated list of entities that won't be inlined.  Use this option with caution:
           it may cause onsgmls (used internally) to add tags and render the output document
           invalid.

このモジュールの状態

       結果は完璧です。言い換えると生成したドキュメントは完全に一致しています。しかし、まだ以下の
       ような問題があります。

       • The error output of onsgmls is redirected to /dev/null, which is clearly bad. I don't
         know how to avoid that.

         The problem is that I have to "protect" the conditional inclusions (i.e. the "<! [ %foo
         [" and "]]>" stuff) from onsgmls. Otherwise onsgmls eats them, and I don't know how to
         restore them in the final document. To prevent that, I rewrite them to "{PO4A-beg-foo}"
         and "{PO4A-end}".

         The problem with this is that the "{PO4A-end}" and such I add are invalid in the
         document (not in a <p> tag or so).

         Everything works well with onsgmls's output redirected that way, but it will prevent us
         from detecting that the document is badly formatted.

       • DebianDoc DTD と DocBook DTD でのみ動作します。新しい DTD のサポートを追加するのは非常に
         簡単でしょう。仕組みはすべての DTD で同じで、既存のタグのリストとその特徴を与えるだけで
         す。

         確かに、もっとドキュメントの記述が必要です。しかし、これはまだベータ版ですし、変わること
         が予想されるものの記述を行うのがイヤなのです。

       • 警告: DTD のサポートは非常に実験的です。すべてのタグの定義を見つけるのに、リファレンスマ
         ニュアルを読んだわけではありません。ネットで見つかるドキュメントで動作するように、このモ
         ジュールにタグの定義を追加しました。あなたのドキュメントが私のよりも多くの種類のタグを使
         用している場合、動作しないでしょう。しかし前述の通り、修正は非常に簡単です。

         DocBook のテストは SAG (System Administrator Guide) でのみ行いましたが、このドキュメント
         は非常に大きく、DocBook の仕様のほとんどを使用していると考えています。

         DebianDoc に対しては、DDP にあるマニュアルでテストをしています。しかしまだ、すべてではあ
         りません。

       • ファイルの取り込みを行う場合、PO ファイルにあるメッセージの参照文字列 (例: "#:
         en/titletoc.sgml:9460" のような行) は誤りが発生するでしょう。

         This is because I preprocess the file to protect the conditional inclusion (i.e. the "<!
         [ %foo [" and "]]>" stuff) and some entities (like &version;) from onsgmls because I
         want them verbatim to the generated document. For that, I make a temp copy of the input
         file and do all the changes I want to this before passing it to onsgmls for parsing.

         こうするためには、与えられたファイルの内容により、ファイルの取り込みを確認しながらエン
         ティティを置換します (サブファイルでも必要とあらば保護できるように)。ですが今のとこ
         ろ、後で参照 (例えばファイル名や行番号) を修正するということは行いません。どのようにする
         のが正しいのか、私にはよくわかりません。

著者

       This module is an adapted version of sgmlspl (SGML postprocessor for the ONSGMLS parser)
       which was:

        Copyright (c) 1995 by 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 (c) 1995 by David Megginson <dmeggins@aix1.uottawa.ca>
        Copyright 2002, 2003, 2004, 2005 by SPI, inc.

       本プログラムはフリーソフトウェアです。GPL の条項に基づき再頒布と変更を行うことができます
       (COPYING ファイルをご覧ください)。