私は、Webアプリケーション用の多言語コンテンツを保存するための標準に準拠した方法を探しています。今まではデータベース内のファイルや辞書テーブルのデータを読み込む独自の "translate()"関数を採用しました。ただし、データベース・テーブルに辞書を最新の状態に保つことは、Webアプリケーションのさまざまなコピーを使用する場合は非常に面倒です。gettextを使用してロケールを使用しないi18n?
私はgettextが好きです。なぜなら、利用できるツールはたくさんあるからです。しかし、私はさまざまなプラットフォーム用のアプリケーションを開発しています。私はsetlocale()とconsortsの厄介なやり方に対処することを絶対に避けています。つまり、働くために提供する必要のあるシステムごとに異なるロケール文字列の数十種類です。決してこれまでにない。 de、en、esなどの言語があり、setlocale()やbindtexdomain()に一度も触れることなく、適切な辞書をロードして_()を使用したいと考えています。
これは何とかgettextを使って可能ですか?または、誰かが.po/.moファイルを扱うことができる、PHP拡張子を必要とせずに、PHPのための簡単で小さな、速い(!)i18nソリューションを知っていますか?
gettext拡張を使用せずにPHPでgettextを使用することは事実上可能ではありませんが、これはPHPの一般的な標準拡張です。 – sorin
@Sorin:可能であれば、すべてではないにせよ、ほとんどのgettext関数を持つネイティブPHP実装があります。 –
@votingmeisfree wordpressとcakephp、いくつか挙げると、gettext実装を使わずにpoとmoファイルを使います。彼らはファイルを直接開きます。 – T0xicCode