【发布时间】:2013-02-20 14:39:14
【问题描述】:
我想制作一个多语言应用程序,我听说过 .po 文件,但我找不到它我制作了这段代码
我在我的应用程序中创建了一个名为languages 的目录,并将ar_EG.po 文件放入其中
我尝试了languages\ar\LC_MESSAGES,但它也不起作用
putenv('LC_ALL=ar_EG');
setlocale(LC_ALL, 'ar_EG', 'ara_EGY');
$domain = 'ar_EG';
bindtextdomain($domain, "./languages"); // I think the error here
textdomain($domain);
// to verify that localization is enabled and it works as intended:
echo strftime("%A %B %Y", strtotime("01/30/2013")), "<br>";
echo gettext("login"); // here not working
【问题讨论】:
-
请仔细检查代码中的返回值。例如。
bindtextdomain确实返回一个值。它是哪一个?此外,我们在这里看不到您的.po文件,它可能只是不包含"login"的条目。您需要先进行一些基本的故障排除才能了解更多信息。 -
返回语言目录的路径
-
如果该值是正确的 - 只有你可以说 - 那么错误 不在 那里你在上面的示例代码中留下了评论。您需要进一步排除故障。
-
好的,运行前必须重启服务器
-
Maklard:您的 PHP 使用的是哪个 SAPI? (见
php_sapi_name或phpinfo())。您是否将 PHP 作为 Apache 模块运行?
标签: php translation gettext po mo