2012-03-29 11 views
0

私の会社のプロジェクトでは、6つの言語で使用できるWebサイトがあります。サイトは顧客/メンバーにいくつかの電子メールを送信します。すべてのフレーズ/単語はデータベースに保存され、すべてがウェブサイトでうまく機能します。私たちの主な問題は電子メールにあります。複数のロケールで複数の言語が使用されているサイト

各メールには毎日のレポートがあります。 set_locale()を使用して各言語を定義し、曜日名(月も)を適切な選択言語に「表示」します。これは正常に動作します。

複数のメールが送信される場合があります(2つの言語で) - ここに問題があります。 電子メールのすべての情報が正しいように見える - データベースのテキスト/翻訳。 曜日名(および月も)は、両方の電子メールの最初の言語でのみ表示されます。 最初のメールがドイツ語で、2番目がフランス語であれば、フランス語のメールにはフランス語のすべての文字が含まれています(2番目のメールを送信する前にset_localeをもう一度実行しています)

なぜですか?これはいくつかのset_localeの動作が悪いですか?これを防ぐ/修正するにはどうすればよいですか?任意の洞察力をありがとう/ヒント

EDIT: 我々が使用するコードは次のとおりです。のsetlocale(LC_ALL、$にsetLocale)。あるsetLocaleは「fr_FR.UTF8」のようになります

+0

'setLocale()'はスレッドセーフではないため、ロード時に不整合が発生する可能性があります。これが起こるとあなたのWebサーバーは高負荷状態になっていますか? – F21

+0

時間を許す 'setlocale()'引数を使用していますか?コードの一部を見ることなく、具体的に何が問題なのかを言うのは難しいでしょう。 –

+0

@S Morgan:私は私の質問で設定されたロケール部分を追加しました – andrew

答えて

-1

あなたは(Zend Frameworkのから)、このモジュールを使用する必要があります。http://framework.zend.com/manual/en/zend.locale.html ブラウザのコンテキスト言語を識別するために非常に便利です。あなたが翻訳Zendのを使用することができ、翻訳のために

http://framework.zend.com/manual/en/zend.translate.html

それは本当に便利です!

+0

私たちはスクリプト/ロジックを変更したくありません。私たちは単に現在のものを修正/改善する方法を尋ねるだけです – andrew

関連する問題