有一些关于 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/