【发布时间】:2013-06-14 17:03:03
【问题描述】:
我们在 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。
【问题讨论】: