В наш век тотальной компьютеризации и глобализации, использование кодировок, отличных от UTF-8 - как минимум признак дурного тона. Всякие архаичные маргиналы, "затачивающие" свои продукты (которые они потом ещё и продают) под CP1251 должны убить себя об стену жэстачайшэ (с).
Одно из таких поделий, недавно попавших мне в руки - DataLife Engine, производимый некоей российской конторой, в которой, видимо, не в курсе, что есть операционки, отличные от Windows и языки, отличные от Великого и Могучего Русского языка. В этой статье кратко расскажу, как быстро и безболезненно перевести этот "мегапродукт" на рельсы юникода.
Итак, по-умолчанию DLE использует кодировку "windows-1251" как внутри себя, при отдаче конечного контента пользователям, так и для хранения данных в БД. Отучивать движок от этой дурной привычки будем в три этапа:
- Настройка DLE для работы с БД, используя UTF-8
Предполагается, что сама БД уже настроена на юникод и её настройка не потребуется.
Идём в директорию {DLE HOME}/engine/data, где находим файл dbconfig.php. Внутри этого файла ищем строку define ("COLLATE", "windows-1251"); и заменяем её на define ("COLLATE", "utf-8"); После этого сконвертируем находящийся тут же файлик config.php в новую кодировку командой iconv -f cp1251 -t utf-8 -o ./config.php ./config.php - Конвертируем "кишки" движка в новую кодировку
Идём в директорию {DLE HOME}/language/Russian и выполняем команду for i in `ls ./*`; do iconv -f cp1251 -t utf-8 -o ./$i ./$i; done - Конвертируем используемую тему для использования юникода
Идём в директорию {DLE HOME}/templates, ищем директорию с нужной темой, входим в неё и запускаем следующую команду: for i in `ls ./*.tpl`; do iconv -f cp1251 -t utf-8 -o ./$i ./$i; done
Вот, в принципе, и всё. Теперь DLE должен использовать в своей работе идеологически правильную кодировку как на web-сайте, так и в админке.
Спасибо за внимание :)Подробнее на http://www.slyder.me/2011/08/19/perevod-dle-na-utf-8#ixzz2n4e6aCAi
Комментариев нет:
Отправить комментарий