Provided by: po4a_0.47-2_all
名前
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 を処理する際に、ファイルの拡張子が必要なだけです。 The --keywords option can also be useful - see the xgettext(1) documentation.
po/ への移行
つまり、トップレベルの po/ ディレクトリを作成し、/usr/share/doc/po4a/examples/ にあるサン プルファイルを、移動してください。 LINGUAS Must exist, even if empty. Consists of a list of translations - each line not starting with a '#' must match an existing PO file. E.g. if LINGUAS contains a single line, 'fr', an fr.po file must exist alongside the LINGUAS file. $ 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>
訳者
倉澤 望 <nabetaro@debian.or.jp> Debian JP Documentation ML <debian-doc@debian.or.jp>