3.4. po/ディレクトリ内での変更

ビルドプロセスがすべての翻訳可能な文字列を抽出するのを助けるためには、 プロジェクトの po サブディレクトリ内に重要なファイル POTFILES.in (と場合によっては POTFILES.skip) を置く必要があります。

POTFILES.in ファイルにはプロジェクト内の翻訳可能な文字列を含むすべてのファイルのリストが含まれています。 このリストにはソースコードファイル、server ファイル、desktop ファイルなどが含まれています。 コマンド intltool-update -m を実行するとこのファイルを生成できます。 これによってすべての可能性のあるソースファイルが走査され、 翻訳可能な文字列を含んでいるすべてのファイルの、 長大なリストのエラーメッセージを吐き出されます。

エラーメッセージの各々のファイルについては、 本当にそれらが翻訳可能な文字列を含んでいる(ほとんどはそうででしょう)か確かめて、 そうであれば POTFILES.in に追加する必要があります。 しかし、intltool-update が認識するけれども翻訳可能な文字列を含まないファイルについては、 POTFILES.skip にファイル名を書いておきます。 すべてのファイルについて確認を終えたら再度 intltool-update -m を実行すると All files containing translations are present in POTFILES.in. というようなメッセージが表示されるはずです。

うっかり重要なファイルが POTFILES.in から抜け落ちていないことを簡単に検証できるので、 アプリケーションの保守作業として定期的にこのコマンドを実行することが推奨されます。

ビルドプロセスの間に po ディレクトリ内に多数のファイルが生成されるでしょう。 プロジェクトが cvs リポジトリで管理されているとすると、 cvs がこれらの新しいファイルについては知らないために cvs コマンドの発っする非常に多くのノイズに悩まされることとなります。 cvs を静かにするには po ディレクトリ内に次のような内容の .cvsignore ファイルを作成するだけで十分なはずです。

*.gmo
*.mo
*.pot
Makefile
Makefile.in
Makefile.in.in
POTFILES
cat-id-tbl.c
messages
missing
po2tbl.sed
po2tbl.sed.in
stamp-cat-id