Задать вопрос
  • Как установить русский язык в php:8.2-fpm-alpine?

    @viz_ko Автор вопроса
    К примеру у тебя в базе хранится дата 2025-08-26 а тебе нужно отдать на фронт "26 августа" если выбран русский язык или "26 de agosto" если выбран испанский язык. Вот, например, в Wordpress есть своя собственная функция локализации даты, что, кстати, очень удобно.
    Написано
  • Как установить русский язык в php:8.2-fpm-alpine?

    @viz_ko Автор вопроса
    shurshur, да, в locale -a есть и нужная локаль и толпа других локалей. И в папке usr/share/i18n/locales/musl есть файл для русского языка.
    Написано
  • Как установить русский язык в php:8.2-fpm-alpine?

    @viz_ko Автор вопроса
    В таком виде заработало:

    RUN apk add --no-cache musl-locales musl-locales-lang && \
    echo "export LANG=ru_RU.UTF-8" >> /etc/profile.d/20locale.sh && \
    echo "export LC_ALL=ru_RU.UTF-8" >> /etc/profile.d/20locale.sh


    Но есть два нюанса:
    1) я не знаю насколько критично прописывать export LANG=ru_RU.UTF-8 - потому локаль все равно не показывается в контейнере при вызове команды locale
    LANG=
    LC_CTYPE=POSIX
    LC_NUMERIC=POSIX
    LC_TIME=POSIX
    LC_COLLATE=POSIX
    LC_MONETARY=POSIX
    LC_MESSAGES=POSIX
    LC_ALL=


    Но если в Dockerfile добавить переменные окружения
    ENV LANG=ru_RU.UTF-8
    ENV LC_ALL=ru_RU.UTF-8

    То русский язык в консоле отображается.

    2) Даже если контейнер выводит информацию о локале в консоли, в самом коде все равно не работает. Если не добавлять переменные окружения, то IntlDateFormatter инициализируется с локалью en. Если добавить переменные окружения, то IntlDateFormatter инициализируется с локалью root и не может выводить кириллицу.
    Написано