po4a-runtime - po4a と Autotools
  を使用しないランタイム
  gettext 翻訳
po4a-build, 
po4a では、gettext
  を用いたランタイム出力メッセージの翻訳もサポートしていますが、Autotools
  や 典型的な 
./configure
  プロセスを採用したパッケージでは必要ありません。
サンプルの 
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
  のドキュメントをご覧ください。
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.in と doc/po4a-build.conf
      に、同じファイルがリストされていても問題ありません。 
  - Makevars-perl.example
 
  - スクリプトが Perl
      の場合、このサンプルファイルを
      po/Makevars
      としてコピーし、適合するように編集してください。
 
  - Makevars-shell.example
 
  - スクリプトが
      シェル
      の場合、このサンプルファイルを
      po/Makevars
      としてコピーし、適合するように編集してください。
 
  - po4a-build.make
 
  - このサンプルファイルを
      po/Makefile
      としてコピーしてください。編集する必要はないはずですが、po4a
      のリリースにより、根本的に
      intltool
      のサポートが変更される可能性があるため、
      /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
  ファイルを新しいバージョンに置き換えるだけに過ぎません。
ソースコード tarball
  の用意のしかたによりますが、
  
MANIFEST
  ファイルに新しい PO
  ファイルをリストしたり、tarball
  を用意するスクリプトに追加したりといったことも、必要になるでしょう
  (これは 
po4a-build
  にも適用します)。
po/ にある 
*.mo や 
*.gmo
  はすべて削除されます。
著作権¶
サンプルファイルは po4a
  プロジェクトの一部ですが、Automake
  自体のような他の構築ツールと同様に、著作権表示で
  po4a を参照したり、po4a
  チームを列挙したりせずに、あなたのプロジェクトで自由に使用、変更、頒布できます。po4a
  に言及してくださるなら、それもまたすばらしいと思います。
 Neil Williams <linux@codehelp.co.uk>