i18n/gettext:setlocaleの設定はwebアプリケーション
-
18-09-2019 - |
質問
いろなと gettext
だが、やはり捨てるもう誰も教えてくれるので助かります、そのギャップを埋めました。
通常の実装で呼び出し
setlocale
に基づく言語パラメータとします。あるいを使用する必要がputenv
, もエッジの場合Windowsの設?デフォルトの言語に自分のphpの枠組みは、英語、UTF-8でんセット
LC_ALL
へen_US.utf-8
, てen_US
はISO-8859-1/Latin1をかけることのない支えとしてUTF-8?はありまgotchas私にとって知っておくべきこの後に呼び出
setlocale(LC_ALL, 'en_US.utf-8')
?その変化はすべてのことが、このLC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, and LC_MESSAGES
まい"を更新スクリプト例えば、発生時にはいそうですよね。ということか例えば、出来立ての設定サーバを持たなかった
es_ES.utf-8
ロケールで構成されるのは、私を出すにはどうしたらいいんですロケールにもなりそうのためにバックアップ配列?と比べれば提供できる、実用的な例のように:setlocale( LC_ALL, array('es_ES.UTF-8', 'es_ES', 'es') )
あるある種のサイトには、例するとともに、こい人々に通常の優先順序付けすか?
を読んでどこかにその通常の構造の
locale
またはi18n
フォルダのようなものです。の構造を本当に問題なのか?いすべてのことが起こってい
bindtextdomain('messages', 'locale')
で再帰的に探索するディレクトリmessages.mo
, しがないことに気づかれてのディレクトリ。
厳しさにうっきの構造ですか?
locale
en_US
LC_MESSAGES
messages.po
es_ES
LC_MESSAGES
messages.po
6.うもないようにするかどうかを試験システムの実際のロケールはありませんか?で、例えば、サーバーからロケールを設定しようとするとい setlocale
るのではなく、エラーや何でもいただ黙々とのまま言っても過言ではないでしょう。
解決
これは、あなたの質問に のない資格の答えである、と私はgettextのを使用することが悪いとは言わないよ - 私はそれについて本当に深く意見を持っていることを十分に働いたことはない - しかし、私はすることを決めました理由はその複雑さと異なるロケールと異なるプラットフォーム上の大規模な予測不能の一人でgettextを残します。私はここでの代替を探して質問を投稿し、そこにいる間ない本当に多くの周りに、Zend_Translateのパッケージは一見の価値があると思われます。私はまだそれに自分を周りに持っていない。
あなたはgettextので作業する場合、、のgettext の上 PHPマニュアルユーザー投稿による注記をチェックしてくださいます。