Provided by: po4a_0.66-1_all bug

名前

       Locale::Po4a::TeX - convert TeX documents and derivatives from/to PO files

説明

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

       Locale::Po4a::TeX は、TeX ドキュメントをほかの [自然] 言語へ翻訳するのを助けるモジュールです。TeX を元に
       したドキュメント用モジュールを作成するベースにもなります。

       Users should probably use the LaTeX module, which inherits from the TeX module and contains the
       definitions of common LaTeX commands.

PO4A::TEX での翻訳

       このモジュールは、一般的な TeX ドキュメントを直接扱えます。ドキュメントを小さなブロック (段落、verbatim
       ブロック、タイトルやインデックスのような同等の小さな部位) に分割します。

       There are some options (described in the next section) that can customize this behavior.  If this doesn't
       fit to your document format you're encouraged to write your own derivative module from this, to describe
       your format's details.  See the section WRITING DERIVATIVE MODULES below, for the process description.

       This module can also be customized by lines starting with "% po4a:" in the TeX file. This process is
       described in the INLINE CUSTOMIZATION section.

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

       以下は、このモジュール固有のオプションです:

       debug
           このモジュールの内部メカニズムのデバッグ機能を有効にします。どの部分でデバッグできるか確認するに
           は、ソースを利用してください。

       no_wrap
           改行を行うべきでない環境のコンマ区切りリストです。

           verbatim 環境と no_wrap 環境には違いがあることに注意してください。verbatim ブロックを解析する、コマン
           ドやコメントはありません。

           この環境がすでに登録されていない場合、po4a は、この環境がパラメータを何も取らないとみなすでしょう。

       exclude_include
           \input や \include で取り込むべきでないファイルのコロン区切りリストです。

       definitions
           インラインカスタマイズ  節で定義されるような、po4a 用の定義を含むファイル名です。翻訳されるドキュメン
           トに定義を置けない場合、このオプションを利用できます。

       verbatim
           verbatim として扱うべき環境のコンマ区切りリストです。

           この環境がすでに登録されていない場合、po4a は、この環境がパラメータを何も取らないとみなすでしょう。

       以上のオプションは、デフォルトのリストで定義されているコマンドの振る舞いを上書きできます。

インラインカスタマイズ

       TeX モジュールは、% po4a:  で始まる行によりカスタマイズできます。この行はパーサにコマンドとして解釈されま
       す。以下のコマンドを認識します:

       % po4a: command コマンド1 alias コマンド2
           コマンド1 コマンドの引数が、コマンド2 コマンドの引数であるかのように扱うことを示します。

       % po4a: command コマンド1 パラメータ
           コマンド1  コマンドのパラメータの詳細を記述できます。この情報を、引数の数と型をチェックするのに使用し
           ます。

           コマンド1 コマンドの前に置けます。

           アスタリスク (*)
               po4a は (段落の先頭や末尾にある場合) 段落からこのコマンドを抽出します。ですから、翻訳者は、翻訳可
               能であるとマークされたパラメータを翻訳するべきです。

           プラス (+)
               アスタリスクのように、コマンドは、ブロックの端に現れる場合に抽出しますが、パラメータを分割して翻
               訳することはしません。翻訳者はこのパラメータすべてを結合したコマンドを翻訳しなければなりませ
               ん。このため、文脈を保持し、複数の意味 (と翻訳)  を持つ、短い単語のパラメータを持つコマンドに対し
               て便利です。

               注意: この場合、翻訳可能なパラメータを指定する必要はありませんが、po4a がパラメータの型と数を知ら
               ねばなりません。

           マイナス (-)
               この場合、コマンドは、いずれのブロックからも抽出しません。しかし、ブロック内に一つしかないときだ
               け、翻訳可能とマークしたパラメータを翻訳者に提示します。これは  font コマンドに対して便利です。こ
               ういったコマンドは、(文脈を保持するため) 一般的に段落から切り離すべきではありませんが、文字列全体
               がそういったコマンドになっている場合は、切り離さずにいて、翻訳者をいらつかせる理由はありません。

           parameters 引数は、[] (任意オプション) のセットか、 {} (必須オプション) のセットです。 括弧の間にアン
           ダースコア (_) を配置し、パラメータを訳さなければならない ことを指定できます。以下のようになります:
            % po4a: command *chapter [_]{_}

           これは、chapter コマンドには二つのパラメータがあり、両方とも翻訳の必要が あることを示します: オプショ
           ン (短いタイトル) と必須のもの。 href コマンドには二つの必須パラメータがあり、URL (第  1  パラメータ)
           を  訳したくなく、さらに、(文の中で翻訳者がリンクを移動できるように) このコマンドを段落から分離したく
           ない場合、以下のようになります:
            % po4a: command -href {}{_}

           この場合、翻訳するべき引数を示す情報は、この href コマンドだけからなる段落の場合にのみ使用されます。

       % po4a: environment env parameters
           This permits to define the parameters accepted by the env environment.   This  information  is  later
           used  to check the number of arguments of the \begin command, and permit to specify which one must be
           translated.  The syntax of the parameters argument is the same as described for the others  commands.
           The first parameter of the \begin command is the name of the environment.  This parameter must not be
           specified in the list of parameters. Here are some examples:
            % po4a: environment multicols {}
            % po4a: environment equation

           command と同様に、env の前にプラス (+) を付けると、その \begin コマンドはすべての引数と一緒に翻訳され
           ることを表します。

       % po4a: separator env "regex"
           与えた正規表現により環境が分割されることを示します。

           正規表現は、引用符で区切られます。後方参照は作られません。グループが必要な場合は  (?:) を使用してくだ
           さい。また、エスケープする必要があるでしょう。

           例えば、LaTeX モジュールは "(?:&|\\\\)" という正規表現を、表の各セル (行を '\\' で区切り、セルを  '&'
           で区切る) を別個に翻訳するために使用します。

           The notion of environment is expanded to the type displayed in the PO file. This can be used to split
           on  "\\\\"  in  the  first mandatory argument of the title command.  In this case, the environment is
           title{#1}.

       % po4a: verbatim environment env
           env が verbatim 環境であることを示します。この環境では、コメントとコマンドは無視されます。

           この環境がすでに登録されていない場合、po4a は、この環境がパラメータを何も取らないとみなすでしょう。

派生モジュールの作成

       pre_trans
       post_trans
       add_comment
           Add a string as a comment to be added around the next translated element. This is  mostly  useful  to
           the texinfo module, as comments are automatically handled in TeX.

       translate
           Transtractor の translate 関数のラッパーで、前処理や後処理のフィルタになります。

           段落のコメントを、その段落の最初の翻訳文字列の PO コメントに挿入します。

       get_leading_command($buffer)
           この関数は以下のものを返します:

           コマンド名
               与えられたバッファの先頭にコマンドが見つからない場合、この文字列は空になります。分割できるコマン
               ドのみであることが考えられます。%separated_command ハッシュには、これらのコマンドのリストが含まれ
               ています。

           派生
               派生が使われるかを示します。例えば、番号付けされるべきではないことを指定するのに、アスタリスク
               (*)  を section コマンドの最後に追加できます。この場合、フィールドは "*" を含むでしょう。派生がな
               ければ、このフィールドは空文字列となります。

           タプル (引数の型と引数) の配列
               引数の型は '{' (必須引数) や '[' (オプション引数) のどちらでも可能です。

           残りのバッファ
               先頭からコマンドやその引数を取り去った後の、バッファの残りです。コマンドがなければ、元のバッファ
               に手をつけず、このフィールドに返ります。

       get_trailing_command($buffer)
           get_leading_command と同じですが、バッファの後ろからコマンドを取ります。

       translate_buffer
           前後に付けられた (分割して翻訳すべき) コマンドで区切られたバッファを、再帰的に翻訳します。

           現在の環境の  %translate_buffer_env  で関数が定義されると、translate_buffer()  に代えてこの関数がバッ
           ファの翻訳に使用されます。

       read
           Overloads Transtractor's read().

       read_file
           再帰的にファイルを読み込み、@exclude_include 配列にリストされていない取り込みファイルを追加します。取
           り込みファイルを、kpsewhich コマンドを使用して、Kpathsea ライブラリから探します。

           ファイル取り込み部を除いて、Transtractor の read からカット & ペーストしたものです。

       parse_definition_file
           po4a ディレクティブがあるファイルのパース用サブルーチンです (新しいコマンドを定義します)。

       parse_definition_line
           "% po4a: " の形の定義行をパースします。

           詳細は、インラインカスタマイズ 節を参照してください。

       is_closed
       parse
       docheader

INTERNAL FUNCTIONS used to write derivative parsers

       コマンド関数と環境関数は、($self オブジェクトに加えて) 以下の引数を取ります:

       コマンド名
       派生
       (型、引数の) タプルの配列
       現在の環境

       先頭の 3 つの引数は get_leading_command や get_trailing_command で抽出されます。

       コマンド関数や環境関数は、引数や新しい環境でのコマンドの翻訳を返します。

       環境関数は \begin コマンドが見つかると呼ばれます。これらは \begin コマンドとその引数により呼ばれます。

       TeX           モジュールは一つのコマンド関数と一つの環境関数しか提案しません。generic_command          と
       generic_environment です。

       generic_command は、register_generic_command や TeX ファイルへの追加定義で指定した情報を使用します:
        % po4a: command command1 parameters

       generic_environment は、register_generic_environment や TeX  ファイルへの追加定義で指定した情報を使用しま
       す:
        % po4a: environment env parameters

       どちらの関数も、翻訳可能であると  ('_' で) 指定したパラメータのみを翻訳します。generic_environment は環境
       スタックに環境名を追加し、generic_command は、({#7} や [#2] のような)  パラメータの識別子が続くコマンド名
       を追加します。

このモジュールの状態

       このモジュールはもっとテストが必要です。

       本と Python ドキュメントでテストされました。

TODO リスト

       新しいコマンドの自動検出
           TeX モジュールは、newcommand の引数をパースし、引数の数や型、翻訳するべきか否かを推測できるはずです。

       環境セパレータの翻訳
           \item が環境セパレータとして使われている場合、item の引数は続く文字列にアタッチされます。

       いくつかのコマンドを環境スタックに追加するべき
           これらのコマンドは組で指定するべきです。verbatim 環境の開始または終了のコマンドを指定できます。

       その他
           ソースの様々なほかの場所に TODO タグが付いています。

既知のバグ

       ソースの様々な場所に FIXME タグが付いています。

関連項目

       Locale::Po4a::LaTeX(3pm), Locale::Po4a::TransTractor(3pm), po4a(7)

著者

        Nicolas François <nicolas.francois@centraliens.net>

訳者

        倉澤 望 <nabetaro@debian.or.jp>
        Debian JP Documentation ML <debian-doc@debian.or.jp>

著作権とライセンス

       Copyright © 2004, 2005 Nicolas FRANÇOIS <nicolas.francois@centraliens.net>.

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

Po4a Tools                                         2022-01-02                             Locale::Po4a::TeX(3pm)