Вот мой файл messages.po
#
msgid "_greet1"msgstr "Hello"
msgid "_greet2"msgstr "Bye"
Я получаю этот po-файл, скомпилированный в mo-файл с помощью PO Edit, и когда я использую mo-файл внутри кода перевода, я вижу msgid строки вместо msgstr. Я использую точно такой же код, написанный в документации PHP для gettext.
Какие-либо предложения…
У меня была такая же проблема, и мой путь к папке был правильным. Причиной проблемы было то, что я использовал ‘Pl_PL’ в качестве локали вместо ‘Pl_PL.utf8’ (в исходном коде и в качестве имени папки).
Решение — помните про UTF-8:
Проверьте в консоли, какие у вас локали и каковы их настоящие имена: locale -a
, (Если интересующего вас региона нет, вы можете набрать: sudo apt-get install locales-all
)
Используйте правильное имя локали в вашем коде, например:
setlocale(LC_ALL, 'pl_PL.utf8');
*.mo
а также *.po
файл: /var/www/project/locale/pl_PL.utf8/LC_MESSAGES
Других решений пока нет …