Голосование

[0] [0]

Тип Ошибка
Состояние Исправлено
Приоритет Средний
Версия 3.56
Система *
Воспроизводимость Нет
Автор
Исполнитель

Выяснилось, что на некоторых хостингах, где для php установлена по умолчанию локализация отличная от английского могут возникать проблемы перевода даты на язык локализцлокализации. Проще говоря, если установить в php setlocale(LC_ALL, 'ru_RU'), то то даты портятся, а именно они получаются в кодировке windows. Связано это с поведением функции strftime, на которую влияет установленая локаль.

Способ лечения - отказаться внутри движка отиспользования функции strftime, а все существующие форматы времени перевести на формат для функции date. Сложность перехода еще в том, что придется править темы, в которых есть шаблоны времени: эти шаблоны как раз для функции strftime.

Альтернативный способ лечения это не отказываться от функции strftime, а полученный результать конвертировать в utf8. Положительный момент этого решения в том, что для некоторых языков не нужно будет прописывать секцию date в языковом файле, а обойтись имеющимся значениями названий в php. Как минус - надо будет проверять наличие той или иной кодировки и в случае ее отсутствия все равно необходима секция date в языковом файле.