php gettext无法在Windows Server 2008,PHP 5.5上运行

时间:2014-10-07 10:35:52

标签: php windows gettext

我在gettext上运行Windows Server 2008 R2,PHP 5.5时遇到了问题

我在我的php脚本中执行以下操作:

$language = 'NB';
putenv("LANG=".$language);
putenv("LC_ALL=".$language); 
setlocale(LC_ALL, $language);
$domain = 'messages';
bindtextdomain($domain, 'C:/path_to_translations/translations'); 
textdomain($domain);

我的翻译文件位于以下目录中:

C:/path_to_translations/translations/NB/LC_MESSAGES/messages.po C:/path_to_translations/translations/NB/LC_MESSAGES/messages.mo

这在使用php 5.3的Windows 7机器上运行正常

我想NB在Windows上并不是真正有效的区域设置名称,但是setlocale(LC_ALL,' NB')仍然会返回' NB'而不是假。 不过,为了看看这是否与问题有关,我尝试设置$ language =' norwegian',在这种情况下,setlocale(LC_ALL,' norwegian')返回&#39 ; Norwegian_Norway.1252',并试图 将路径名更改为C:/path_to_translations/translations/norwegian/LC_MESSAGES/messages.mo和C:/path_to_translations/translations/Norwegian_Norway.1252/LC_MESSAGES/messages.mo,并更改.po和.mo文件的编码' UTF-8'到了Windows 1252'。 但是,我无法将翻译工作在Windows Server 2008 R2,PHP 5.5机器上。

任何帮助很多人赞赏!

1 个答案:

答案 0 :(得分:0)

更新。从来没有gettext使用php 5.5,但发现其他用户有类似的问题(https://bugs.php.net/bug.php?id=66265

尝试安装php 5.4,现在事情按预期工作。