Windows 上的 PHP gettext

标签 php windows gettext

有一些关于 gettext 的教程(使用 Poedit)...不幸的是,它主要针对 UNIX 环境。更不幸的是,我在 Windows XP 上运行我的 WAMP 服务器(但我正在为 UNIX 环境开发)并且没有任何教程可以让 gettext 为我正常工作。来自manual page ,它似乎是 Windows 环境中的一个不同进程。我已经尝试了评论中的一些解决方案,但仍然无法正常工作!我在这上面花了很多时间,希望有人能给我指明正确的方向,让这件事发挥作用! (而且我敢肯定还有其他人和我一样感到沮丧。)到目前为止,我的设置只得到输出“Hello World!”而我应该得到翻译后的字符串。

到目前为止,这是我的设置/代码:

// test.php
if (!defined('LC_MESSAGES')) {
    define('LC_MESSAGES', 6);
}

$locale = "deu_DEU"; // apparently the locales are different on a WINDOWS platform

putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("greetings", ".\locale");
textdomain("greetings");

echo _("Hello World"); 

文件夹结构

root:     C:\Program Files\WampServer 2\www
test.php: C:\Program Files\WampServer 2\www\site
.po:      C:\Program Files\WampServer 2\www\site\locale\deu_DEU\LC_MESSAGES\greetings.po
.mo:      C:\Program Files\WampServer 2\www\site\locale\deu_DEU\LC_MESSAGES\greetings.mo

最佳答案

我在本地机器上使用 gettext 时遇到了问题,经过一些搜索我发现这个页面解决了我的问题: http://www.kipras.com/blog/getting-gettext-to-work-in-apache-on-windows/96

我是从网页上引用的:

On Linux servers (or any other servers apart windows), the way to do it is this:

setlocale(LC_MESSAGES, “en_US”);

The correct way to set locality on windows is this:

putenv(“LC_ALL=en_US”);

关于Windows 上的 PHP gettext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1473207/

相关文章:

php - facebook 为页面创建应用程序以将照片上传到页面的相册

php - 没有PHP错误,codeigniter仍然显示空白页

javascript - 使用 PHP 将 JS 数组插入 MySQL 的最简单方法

python - '_' 在 Django 代码中做什么?

php - 动态 gettext 的 poedit 解决方法

gettext - po文件编译成mo的好处

php - 在 PHP 代码中使用 ODBC 驱动程序连接到 MySQL

linux - 通过 Wine 在 Linux 上运行基于 COM/DCOM 的应用程序

c++ - NetUserChangePassword()可以为管理员设置密码吗?

c# - 在多窗口 UWP 应用程序中引发和处理事件