gettext付属ツールによる翻訳状況の確認

gettextは国際化をする上で必須ツールの一つです。gettextそのものの便利さもあるのですが、その付属ツールの便利さもあります。

今回はその付属ツールの中からmsgfmtに絞って話をしたいと思います。

各国語毎のメッセージリソースファイルがあり、その中のメッセージがどれだけ翻訳をされていて、どれくらいのメッセージが翻訳されていないのかを知りたいということは、国際化をやっていると割とよくあります。翻訳状況を開発プロジェクト中でマネージメントする必要があるためです。そんなときに使うのがmsgfmtです。

以下のように使います。

find share/l10n -name '*.po' |egrep -v '.svn' |LC_ALL=C xargs --verbose --max-args=1 msgfmt -c -v

そうすると、以下のように結果が表示されます。

msgfmt -c -v share/l10n/ja.po

0 translated messages, 524 untranslated messages.

各国語のロケールのメッセージリソースがどのような翻訳状況にあるのかがこれにより分かります。定期的に実行することで、翻訳状況が確認でき、翻訳のマネージメントに役立ちます。