setlocale有问题

时间:2014-11-05 17:00:16

标签: php localization gettext

是否有人碰巧知道为什么对setlocale的调用因语言环境包不存在而导致失败的原因。以下代码:

$language = 'fr_CA.utf8';
//putenv("LANG=" . $language); 

var_dump(setlocale(LC_ALL, $language));

// Set the text domain as "messages"
$domain = "messages";
$result = bindtextdomain($domain, ROOT_DIR . "../locale/");

bind_textdomain_codeset($domain, 'UTF-8');

$result = textdomain($domain);

echo _("IAMSOMETEXT");
echo $result;die;

bool(false)输出var_dump。我们在 Vagrant 中运行该网站,但我在 VM 上运行了locale -a,而 fr_CA.utf8 确实在输出中。我尝试过列出的其他变体,例如 fr_CA

将语言环境设置为 en_US.utf8 可以很好地工作。 POSIX 似乎确实有用。有没有人遇到过这个问题?我们在 VM 上运行 Ubuntu 12.04

1 个答案:

答案 0 :(得分:0)

尝试使用Session.LCID,它应具有读/写访问权限。它是一个数字,如1034