设置gettext语言环境独立于系统区域设置

时间:2013-06-18 13:04:05

标签: php linux gettext

我们在PHP应用程序中使用gettext进行翻译。它初始化如下:

<?php
setlocale(LC_MESSAGES, $locale);
putenv("LANG=$locale");
putenv("LANGUAGE=$locale");

bindtextdomain($domain, $pathToLocales);
textdomain($domain);

这很好但它也可以转换来自操作系统的错误消息。以DNS解析失败为例,我们在德国站点的错误日志中看到Name or service not known而不是Der Name oder der Dienst ist nicht bekannt

我有gisted a test case。该脚本将转换字符串,然后引发No such file or directory错误。我不想要翻译这个错误。

是否有任何方法可以配置gettext语言环境而无需更改操作系统的错误消息?我们不想将gettext更改为其他一些转换机制(数组,xliff,你可以命名)。我们不关心Windows和mod_php,但解决方案必须适用于php-fpm 5.4和cli。

1 个答案:

答案 0 :(得分:-1)

您正在使用LC_MESSAGES表示系统响应的意思(如果使用libintl编译PHP,则可用)'我会尝试忽略此选项,例如setlocale(LC_ALL ^ LC_MESSAGES, $locale)

http://www.php.net/manual/en/function.setlocale.php

相关问题