php setlocale misbehavior

时间:2012-07-04 06:43:37

标签: php locale

您好,感谢您提供任何见解/信息/提示。

我们有一个页面可以同时发送2封不同的电子邮件。 每封电子邮件都使用不同的语言 除了包含日期名称和数字的小表外,几乎所有电子邮件内容都来自数据库。

对于每封电子邮件,我们都使用函数发送它。类似的东西:

function sendemail($locale, $var1, $var2, $var3)
{
    setlocale(LC_ALL, $locale); 
    // build email body text
    //day names are presented like: strftime("%a, %d %b %Y %H:%M", $checkDate)
    //send email
}

主页面使用这些功能发送2封电子邮件

sendemail($locale1, $var1, $var2, $var3);
sendemail($locale2, $var1, $var2, $var3);

仅在第二封电子邮件中出现问题。那里的日期名称基于第一个区域设置而不是第二个区域设置。因此,如果第一种语言是英语,第二种语言是法语,则第二种电子邮件将使用英文日名称而不是法语。

有没有办法解决这个问题?或者以某种方式破坏/取消设置/删除/重置第一个语言环境,以便第二个正常应用?

我们确信我们在函数中传递了不同的语言/区域设置。

我们目前使用以下语言区域:en_EN.UTF8, fr_FR.UTF8, el_GR.UTF8, de_DE.UTF8, it_IT.UTF8, ru_RU.UTF8, zh_CN.UTF8, ko_KR.UTF8, es_ES.UTF8, sr_RS.UTF8

0 个答案:

没有答案