具有多个区域设置的多语言网站行为不端


multi-language site with multiple locales misbehaviour

在我公司的一个项目中,有一个网站有6种语言。该网站向客户/会员发送一些电子邮件。每个短语/单词都存储在数据库中,并且在网站中运行良好。我们的主要问题出现在电子邮件中。

在每封电子邮件中都有每日报告。我们使用set_locale()来定义每种语言,并将日期名称(也包括月份)"显示"为正确选择的语言。这还可以。

在某些情况下,有不止一封电子邮件要发送(用两种不同的语言)-这里我们有问题。电子邮件中的每个信息都显示正确-来自数据库的文本/翻译。在这两封电子邮件中,日期名称(以及月份)仅以第一语言显示。因此,如果第一封电子邮件是德语的,第二封是法语的,那么法语电子邮件中的所有内容都是法语,不包括德语的日期名称(尽管我们在发送第二封电子邮件之前再次执行set_locale)

为什么?这是set_local的不良行为吗?我们如何预防/解决此问题?感谢您的任何见解/提示

编辑:我们使用的代码是:setlocale(LC_ALL,$setlocale);其中setLocale看起来像"fr_fr.UTF8"

您应该使用这个模块(来自Zend Framework):http://framework.zend.com/manual/en/zend.locale.html识别浏览器上下文语言确实很有用。

对于翻译,您可以使用Zend Translate:

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

它真的很有用!