gettextの履歴

多言語アプリを作るときに使用するライブラリ

POTファイルの作り方


特定の拡張子のソースを全部探してきてPOTを作る場合には、こんな作り方が便利

find . -name '*.php' |\n   xargs xgettext --from-code 'UTF-8' -p ディレクトリ -o 適度なファイル名.pot


自分はPOファイルはここから作り始めるようにしている。

ヒアドキュメントは使えない?


ヒアドキュメントを使っていると、PHPでPOファイルを作るときにヒアドキュメントの箇所だけメッセージが抜け落ちてしまうので注意!

ロケール


ロケールはサーバーのロケールを使う。サーバーのロケールは /usr/lib/locale/ にあるものが使える。

moファイル編集したのに何かがおかしい!


Apacheのモジュール版でmoファイルを編集したのに、編集結果が反映されなかったり、リクエストごとに変更前と変更後のものが交互に表示されることがある。

どうやらgettextは内部でキャッシュをしているようなので、Apacheを再起動してみても良いかもしれない。

... GNU gettext caches previous translation results. When the same translation is requested twice, with no new message catalogs being loaded in between, gettext will, the second time, find the result through a single cache lookup.

http://www.gnu.org/software/gettext/manual/gettext.html#gettext