Недавно вышедшая версия MODx 0.9.6.3, как и предыдущие, требует некоторых исправлений для корректной работы с русским языком.
1. Если при установке выбрать русский язык, то первая страница после установки будет выведена в неверной кодировке. Это, наверное, сразу отпугнет некоторых начинающих пользователей MODx. Для исправления следует всего лишь переименовать в папке
install папку
russian в
russian-UTF8, войти в эту папку и переименовать файл
russian.inc.php в
russian-UTF8.inc.php. Для начала этого достаточно, но для полной поддержки русского языка рекомендуется внести и другие изменения, описанные ниже.
2. Скачав прикрепленные файлы, поместить содержимое архива
russian-0.9.6.3-manager.zip в папку
manager/includes/lang, а содержимое
russian-0.9.6.3-install.zip – в
install/lang, заменив имеющиеся файлы. В языковых файлах исправлены некоторые ошибки и переведены фразы, не переведенные в оригинальной версии.
3. Если при установке был выбран русский язык, то административная часть будет на русском, но редактор контента все равно будет использовать английский язык. Это можно изменить в конфигурации системы после установки, но проще заранее внести изменение: в файле
install/setup.sql
заменить
('fe_editor_lang','english'),
на
('fe_editor_lang','{MANAGERLANGUAGE}'),
4. При описании пользователей в административной части названия стран выводятся на английском языке. Для исправления нужно в папке
manager/includes/lang/country файл
russian_country-UTF8.inc.php переименовать в
russian-UTF8_country.inc.php.
5. При добавлении ссылок в редакторе Tinymce названия страниц сайта могут выводиться в неверной кодировке (не всегда, зависит от настроек сервера). Есть несколько вариантов исправления проблемы:
Вариант 1
В файл
assets/plugins/tinymce3201/jscripts/tiny_mce/plugins/advlink/link.html
добавить в заголовок строку
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
но при этом ошибки появятся в других кодировках, отличных от UTF8.
Вариант 2
Можно в файл
assets/plugins/tinymce3201/tinymce.linklist.php
перед строкой:
$list .=($list!='')?",\n":"\n";
добавить:
if ($database_connection_charset == 'utf8' && extension_loaded('mbstring'))
$caption = mb_convert_encoding($caption, "CP1251", "UTF-8");
но при этом проблемы возникнут при использовании UTF8 для других языков.
Корректное исправление проблемы требует более глубоких изменений.
6. Хотя все языковые файлы в MODx используют в названиях строчные буквы, исторически сложилось, что файлы для кодировки utf8 и русского языка содержат в названии прописные буквы UTF8. Вместе с тем новая версия AjaxSearch использует единые принципы для всех языков, то есть строчные буквы.
В принципе правильным было бы исправление названий всех файлов
russian-UTF8.inc.php на
russian-utf8.inc.php. Это необходимо сделать в папках:
assets/modules/docmanager/lang
assets/modules/quick_edit/lang
assets/plugins/tinymce3201/lang
assets/snippets/ditto/lang
assets/snippets/eform/lang
install/lang/russian-UTF8
manager/includes/lang
Также нужно переименовать файл
russian-UTF8_country.inc.php в папке
manager/includes/lang/country в
russian-utf8_country.inc.php. Возможно, есть и другие файлы, названия которых надо исправить.
Проще, наверное, исправить название одного файла
russian-utf8.inc.php на
russian-UTF8.inc.php в папке
assets/snippets/ajaxSearch/lang.
После описанных исправлений проблем с русским языком не должно быть, если аккуратно устанавливать систему и правильно настроить хостинг.