Provided by: po4a_0.52-1_all bug

名前

       po4a-runtime - po4a と Autotools を使用しないランタイム gettext 翻訳

概要

       po4a-build を併用することにより po4a は gettext を用いたランタイム出力メッセージの翻訳もサ
       ポートしますが、Autotools および標準的な ./configure プロセスを採用する場合には po4a-build
       パッケージは必要ありません。

       サンプルの Makefile コードを用いると、最小限の労力でパッケージから intltool を利用できま
       す。

レイアウト

       ドキュメントの翻訳は、ランタイム翻訳と同じ po/ ディレクトリを使用するべきではありませ
       ん。ランタイム翻訳は po/ と異なるディレクトリを使用できますが、通常この慣習に従っておくの
       が一番簡単です。

複数の言語

       これは、複数のプログラム言語のスクリプトを用いたパッケージという意味です。よくあるのが
       Perl とシェルの混在です。注意: ファイルの拡張子がほとんど問題のないものである場合を除
       き、gettext は混乱してしまい、どちらかの言語を取り除いてしまうでしょう。

       複数の言語を使用する際、POT ファイルに必要な文字列がすべて取得できるまで、po/Makevars で各
       種設定を実験してください。

       具体的には、po/Makevars に二つの言語を指定すると、問題となる可能性があります。こうしないで
       ください:

        # このようにしてはいけません:
        XGETTEXT_OPTIONS = -L Perl -L Shell --from-code=iso-8859-1

       翻訳の対象となる言語の一つについて、その言語の全ファイルの名前を変える (またはシンボリック
       リンクを作成する) ことか、-L オプション による明示の省略を検討してください。ファイルの拡張
       子は po/POTFILES.in が処理されている間のみ存在する必要があります。

       --keywords オプションも便利です - xgettext(1) のドキュメントをご覧ください。

po/ への移行

       つまり、トップレベルの po/ ディレクトリを作成し、/usr/share/doc/po4a/examples/ にあるサン
       プルファイルを、移動してください。

       LINGUAS
           空だったとしても存在しなければなりません。翻訳のリストでできており、'#' で始まらない各
           行は、存在する PO ファイルに一致しなければなりません。例えば、LINGUAS に 'fr' とだけ書
           かれていれば、fr.po ファイルが LINGUAS ファイルと同じディレクトリになければなりませ
           ん。

            $ cat po/LINGUAS
            cs
            de
            fr
            $

           慣例により、LINGUAS ファイルはアルファベット順にソートされていますが、それ手作業です。

       POTFILES.in
           ランタイム (つまりスクリプト内) で翻訳される必要があるメッセージを持つファイルリストで
           す。トップレベル po/ ディレクトリを使用する場合、パスは po/ ディレクトリそのものではな
           く、トップレベルディレクトリからの相対パスにしてください。

            $ ls -l
            myscript.pl
            another.pl
            foo/support.pl
            po/
            po/POTFILES.in
            $ cat po/POTFILES.in
            myscript.pl
            another.pl
            foo/support.pl
            $

           ランタイムの翻訳とドキュメントの翻訳の両方を含むスクリプト (例: ランタイムに gettext
           を使用し、ドキュメントに埋め込み POD 内容を含む) は、明らかにサポートされるということ
           に注意してください。そのため、po/POTFILES.indoc/po4a-build.conf に、同じファイルが
           リストされていても問題ありません。

       Makevars-perl.example
           スクリプトが Perl の場合、このサンプルファイルを po/Makevars としてコピーし、適合する
           ように編集してください。

       Makevars-shell.example
           スクリプトがシェルの場合、このサンプルファイルを po/Makevars としてコピーし、適合する
           ように編集してください。

       po4a-build.make
           このサンプルファイルを po/Makefile としてコピーしてください。編集する必要はないはずで
           すが、根底にある inittool サポートの変更によって po4a のリリースで更新される必要がある
           かもしれないので、/usr/share/doc/po4a/examples/po4a-build.make に対して更新を維持した
           方がいいです (このファイル自体は Autotools や intltool を用いた別プロジェクトで生成さ
           れます)。

ビルド

       これらのスニペットは、最上位の Makefile、または配付のためのソースを準備するために使用する
       方法のどこかに組み込む必要があります。

        clean:
               $(MAKE) -C po/ clean

        install:
               $(MAKE) -C po/ install DESTDIR=$(DESTDIR)

        dist:
               $(MAKE) -C po/ pot

       (Autotools プロジェクトでは、Makefile.am の "SUBDIRS" に po を追加するだけで、自動的にこう
       なります)

保守

       新しい翻訳を加える際には、po/LINGUAS の編集が必要なので、ランタイムの翻訳は po4a-build と
       まったく同じように簡単とは言えません。しかしそれは別にして、翻訳の更新は PO ファイルを新し
       いバージョンに置き換えるだけに過ぎません。

       ソースアーカイブを準備する方法に応じて、MANIFEST ファイルに新しい PO ファイルをリストした
       り、アーカイブを準備するスクリプトに追加したりする必要があるでしょう。(これは po4a-build
       にも適用されます)。

       po/ にある *.mo*.gmo はすべて削除されます。

著作権

       サンプルファイルは po4a プロジェクトの一部ですが、Automake 自体のようなほかのビルドツール
       と同様に、著作権表示で po4a を参照したり、po4a チームを列挙したりせずに、あなたのプロジェ
       クトで自由に使用、変更、頒布できます。po4a に言及してくださるなら、それもまたすばらしいと
       思います。

著者

        Neil Williams <linux@codehelp.co.uk>

訳者

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