我有一个完整的 PHP 应用程序,带有 MySQL。
所有字符串都使用 gettext,我有 2 个翻译,西班牙语和英语。
原始字符串是用西班牙语编写的。
它运行良好,但是,当我运行 cron 作业以发送报告电子邮件时,它使用英语发送,而它应该以西班牙语发送。
问题与邮件代码无关,因为当我在浏览器上运行 cron 文件时它工作正常,另外,我的电子邮件系统首先将其保存到数据库然后发送它们,并且消息已经以英文存储在数据库。
所以,我知道我的问题是 cron 文件没有使用正确的语言。我使用此代码在配置文件中设置语言,包含在所有文件中。
$language = "ES_AR.utf8"; //this is the locale name on the linux machine.
putenv("LANG=$language");
setlocale(LC_ALL, $language);
$domain = 'messages';
bindtextdomain($domain, APP_PATH . "/locale");
textdomain($domain);
正如我所说,它运作良好。
我把这段代码放在cron文件的顶部,问题仍然存在。
所以问题是,在从 shell 运行 cron 文件时,我能做些什么来强制使用一种语言吗?
谢谢!!!