Вот мой ./locale/fr/LC_MESSAGES/messages.po
файл:
msgid "NO GOOD"
msgstr "IT WORKED!"
Команда, используемая для создания файла .mo:
$ msgfmt -o locale/fr/LC_MESSAGES/messages.mo locale/fr/LC_MESSAGES/messages.po
Мой файл PHP (запускается через интерфейс командной строки, в целях тестирования, от имени пользователя root).
<?php
bindtextdomain('messages','./locale');
textdomain('messages');
setlocale(LC_MESSAGES, 'fr');
echo gettext("NO GOOD");
Вот мой вывод:
$ NO GOOD
Информация о PHP:
GetText Support => enabled
Любые идеи, почему это может не сработать?
bind_textdomain_codeset()
. Вам также необходимо убедиться, что в вашей системе установлен соответствующий файл локали (при условии, что вы используете сервер на базе Linux), а также что этот файл локали имеет правильную кодировку. Подробнее читайте в этой статье: blog.terresquall.com/2020 /09/устранение неполадок-php-gettext - person John Doe   schedule 06.09.2020