php gettext()显示msgid而不是msgstr

时间:2016-07-04 10:00:23

标签: php php-gettext

这是我的messages.po文件

#

msgid "_greet1"
msgstr "Hello"

msgid "_greet2"
msgstr "Bye"

我使用PO编辑将此po文件编译为mo文件,当我在翻译代码中使用mo文件时,我看到字符串的msgid而不是msgstr。我正在使用与PHP文档中编写的完全相同的代码来获取gettext。

任何建议......

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,我的文件夹路径也是正确的。问题的原因是我使用' pl_PL' 作为区域设置而不是' pl_PL.utf8' (在源代码中)并作为文件夹名称)。

解决方案 - 记住UTF-8:

  1. 检入控制台中您拥有的语言环境以及它们的真实姓名:locale -a。 (如果没有您感兴趣的语言环境,可以输入:sudo apt-get install locales-all

  2. 在代码中使用正确的区域设置名称,例如: setlocale(LC_ALL, 'pl_PL.utf8');

  3. 更改您的文件夹名称。使用*.mo*.po文件更正示例文件夹的路径为:/var/www/project/locale/pl_PL.utf8/LC_MESSAGES