PHP gettext 不起作用

2023-12-01

阿帕奇 2.4 + PHP 5.5

putenv('LC_ALL=ru_RU');
setlocale(LC_ALL, 'ru_RU');
bindtextdomain('mydomain', '/absolute/path/to/messages');
textdomain('mydomain');

我绝对确定,比我以前mydomain.po and mydomain.mo文件在/absolute/path/to/messages/ru_RU/LC_MESSAGES/.
我还把这些文件给了我在 OS X Mavericks 上的同事 - 工作得很好。
我无法使 php gettext 工作。

我已经用谷歌/stackoverflowed 搜索了大约几个小时,尝试了各种解决方案 - 仍然不起作用。我做错了什么?

每次更改某些内容时我都会重新启动 apache 以确保重新加载 gettext 文件。

这是我的locale -a output:

miraage@ubuntu:~$ locale -a
C
C.UTF-8
....
en_GB.utf8
....
POSIX
ru_RU.utf8
ru_UA.utf8

另外一个 cmd 输出:

miraage@ubuntu:~$ sudo locale-gen ru
Generating locales...
  ru_RU.UTF-8... up-to-date
  ru_UA.UTF-8... up-to-date
Generation complete.

好吧,我已经弄清楚了:

sudo locale-gen ru_RU(添加了新的语言环境,但字符集不同) 和 然后setlocale(LC_ALL, 'ru_RU.UTF-8');做了所有工作。

感谢帮助。


这是一个长期以来被问到的问题,但也许再进行一次检查可以帮助那些“仅按照说明”尝试所有方法但仍然不起作用的人。

那就是与LANGUAGE环境变量。

就我而言,经过长时间的斗争后,我发现这是导致问题的原因。删除该环境变量export LANGUAGE=(空,之后=)解决正常setLocale行为。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP gettext 不起作用 的相关文章

随机推荐