【问题标题】:PO, MO translation filesPO、MO 翻译文件
【发布时间】: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_namephpinfo())。您是否将 PHP 作为 Apache 模块运行?

标签: php translation gettext po mo


【解决方案1】:

编辑后必须重新启动服务器。谢谢大家的帮助

【讨论】:

    【解决方案2】:

    你需要把你的 po 文件编译成 mo 文件,然后把它放在那里...

    另外,您需要确保已安装 GetText...

    http://www.php.net/manual/en/book.gettext.php

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多