#php #docker #nginx #gettext
Вопрос:
В настоящее время я переключаюсь с Apache на Nginx в проекте, в котором я также настраиваю Docker. Однако, похоже, у меня возникают проблемы с тем, чтобы Gettext правильно подбирал переводы.
У меня есть один контейнер Nginx и один контейнер PHP (fpm), которые правильно работают вместе.
Gettext был установлен в контейнере PHP, и расширение отображается как включенное и доступно в коде.
Соответствующий языковой стандарт («sv-SE») был установлен в контейнере PHP. Запуск «Locale -a» возвращает следующее:
C
C.UTF-8
POSIX
sv_SE
sv_SE.iso88591
sv_SE.iso885915
sv_SE.utf8
swedish
Тестирование кода для Gettext:
setlocale(LC_ALL, $locale);
putenv("LC_ALL=$locale");
textdomain('main');
bindtextdomain('main', LOCALE_PATH);
bindtextdomain('urls', LOCALE_PATH);
bind_textdomain_codeset('main', 'UTF-8');
echo gettext("Yes");
$locale = «sv-SE», а LOCALE_PATH-это просто путь к переводам в контейнере Nginx, и, похоже, он выбран правильно.
Я действительно не понимаю, в чем здесь проблема, но текст не переведен, и сообщений об ошибках нет.
Есть какие-нибудь идеи?
Комментарии:
1. Что именно не работает с данным кодом? Что вы пытались сделать, чтобы это сработало?
2. Код «работает» как таковой в том смысле, что сообщений об ошибках нет, но текст не переводится, как в предыдущей среде Apache. Сначала у меня была проблема с другим языком, но теперь я понятия не имею, в чем проблема, но я думаю, что мне чего-то не хватает с Nginx или контейнером.