Я суммирую здесь то, что я нашел, столкнувшись с подобной проблемой, поскольку здесь, по-видимому, не было никакого конструктивного ответа (действительно, неправильный: setlocale()
действительно изменяет вывод strftime()
), и это может быть полезно для других..
Руководство по PHP говорит
Возвращаемые значения
Возвращает новую текущую локаль или FALSE, если функциональность локали не реализована на вашемплатформа, указанный языковой стандарт не существует или недопустимое имя категории.
поэтому для диагностики сначала убедитесь, что установлен правильный языковой стандарт (nl_NL, nl_NL.UTF-8 и т. д.),либо с помощью оболочки, либо в PHP system('locale -a')
.В некоторых системах Ubuntu есть скрипт для установки локали, например./usr/share/locales/install-language-pack nl_NL
но установка с помощью apt-get также может быть рассмотрена.(Для экзотических локалей также проверьте, что локаль поддерживается: в некоторых системах /usr/share/i18n/SUPPORTED
).
Затем вы можете получить вывод setlocale (), используя var_dump(setlocale('nl_NL'));
(так как только setlocale()
не выводитчто-нибудь).
Чтобы лекарство могло восстанавливать локаль с помощью locale-gen nl_NL, nl_NL
После этого update-locale
(и dpkg-reconfigure locales
) может потребоваться в некоторых системах.