すごくひさしぶりにPHPのプログラムをまとめて書くことになり、PHPでgettextを使うってのを、いい機会なので調べてみました。
gettextエクステンション無しで直接MOファイルを読み込むPHP-gettextライブラリ
このサイトでも使っているWordpressというブログアプリケーションでは、gettextのMO filesを読み込むのにPHP-gettextというライブラリが使われています。
このライブラリをつかった場合の特徴としては、直接MOファイルを読むライブラリなので・・・
- –with-gettextつきでコンパイルしてないPHPでもMOファイルを読み込むことができる
- もちろん、LOCALEを使わなくてもgettextの恩恵を受けることができる
- 当然、あの深いディレクトリ構造(BASE/${locale}/LC_MESSAGES/${domain}.mo)と戯れなくてすむ
Wordpressのソースの中から、PHP-gettextの成果物でありwp-includes/の下にあるgettext.phpとstreams.phpをincludeしているwp-l10n.php
を読めば、使い方はすぐにわかると思います。
このwp-l10n.phpでは、_()ではなく__()と_e()という関数を用意しています。アンダースコア1個の関数を定義しようとすると、gettextエクステンションが組み込まれたPHPでコケてしまうので、素直にこの方法に従っておくのが吉ですね。
PHPでgettextしたい!って人のための参考リンク
- gettext memo
- PHPでメッセージカタログはgettextしかありえないでしょ (よくきたblog)
- PHPでメッセージカタログはgettextしかありえないでしょ(何故gettextか?編) (よくきたblog)
- 5分でわかる PHP で書かれた Web サービスの国際化(その2) (ウノウラボ Unoh Labs)
1個のトラックバック
javascriptでgettext
りょすけくんがPHPでgettextな記事を書いていたので、反応して「javascriptでgettext」についてです(w
ボクも、PHPでgettextしてWebアプリを国際化することは経験があります。
例の「ボク専用Web…