Русификация MovableType
- Русификация дат
- Русификация имен файлов для dirify
- Перевод темплейтов и системных сообщений
UTF-8 и только он
Мы живем в 21-м веке, когда передача лишних байтов через всю планету не стоит вообще ничего. Работа с многобайтовыми кодировками сейчас поддержана везде, на очень старые версии браузеров закладываться смысла нет (примечание от меня, как от автора Russian Apache, — в ситуации 9-летней давности работа с однобайтными кодировками и разными кодировками у клиентов была необходимостью. Эта необходимость пропала примерно в 2000-м году).
Раз MT предлагает нам UTF-8, значит нужно пользоваться. Единственное изменение, которое нужно внести в настройки по-умолчанию в этом месте, это добавить в mt-config.cgi
строчку
MailEncoding utf-8Без этой настройки вся приходящая почта (о комментариях, от trackbacks) будет как-бы в ISO-8859-1, со знаками вопроса вместо русских букв.
Неделя начинается в понедельник
В России (как и во Франции, например) первый день недели - понедельник. Однако вычисление календаря в MT забитов в код и никак не настраивается. По счастью, правки очень простые, по одной строчке в Util.pm и MTUtil.php. До кучи, поправим и стандартный calendar.tmpl (перестановкой строчек, а не переводом):Скачать патч календаря
(Если вы не знаете что такое патч и как его применять, используйте пожалуйста настроенный по-умолчанию MT).
Русские названия месяцев
По совету Влада Головача выбираем в качестве Date Language (меню Settings) итальянский язык. Это даст нам даты записей в формате DD.MM.YYYY и итальянские названия месяцев в архиве и над календарем. Я небольшой любитель цифровых дат, но они - куда меньшее зло чем "написано 12 Декабрь 2006", а склонять имена месяцев MT не умеет.Следующим шагом нужно перевести названия месяцев (и, до кучи, дней недели) для итальянского языка на русский. Это опять делается патчем для Util.pm и MTUtil.php
В результате выбора итальянского языка для "Date Format", он появится еще и в теге <language> в RSS-экспорте. Потому что это вовсе не Date Format, а вообще язык блога. Ну да из темплейта index.xml можно и руками удалить (патч не прилагается)
Имена файлов для dirify
Dirify позволяет сделать читаемые URL (вроде movabletype_soset.html), что несомненно полезно.
Описанный у Михаила Шуленина способ меня удивил своей непрямолинейностью, сначала мы отключаем дирификацию для UTF-8, потом перекодируем в 1251, потом перекодируем по табличке HighAscii
, которую еще нужно поправить.
Куда как проще просто дополнить табличку из UTF-8 в латиницу русскими буквами, причем сразу транслитерацией. Это и делает прилагаемый патч. Опять правим многострадальные Util.pm
и MTUtil.php
.
Русские сообщения в темплейтах
Патч не прилагаю. Просто перевод сообщений на русский меня не удовлетворил, захотелось поменять логику, сменить оформление на навигацию слева и так далее. Изменений слишком много, вычищать из патча все, что не относится к русификации - невозможно, а с моими изменениями не все будут согласны.Надеюсь что с данной технической задачей вдумчивый читатель справится сам. Заодно икнется создателям системы темплейтов MT, когда выяснится, что одни и те же правки нужно делать в нескольких местах.
Comments
А я русские даты по-другому сделал. В Util.pm добавил новую
А я русские даты по-другому сделал. В Util.pm добавил новую конструкцию типа:
'ru' => [
...
]
А затем в tmpl/cms/cfg_prefs.tmpl в нужном месте добавил строчку:
<option value="ru"<TMPL_IF NAME=LANGUAGE_RU> selected="selected"</TMPL_IF>><MT_TRANS phrase="Russian"></option>
После в настройках выбрал нужный язык.
to saahov. Я, честно говоря, ниасилил понять, откуда беретс
to saahov.
Я, честно говоря, ниасилил понять, откуда берется список языков. Уж больно много списков языков имеются внутри и все списки разные.
Да, исправлений в Util.pm недостаточно, есть же еще PHP-часть.
Который нужен список - он один, в настройках блога. А PHP
Который нужен список - он один, в настройках блога.
А PHP часть нужна только для динамической публикации. Если всё в статике, то её и трогать необязательно.
Ну вот смотрите: в настройках блога - один список языков в
Ну вот смотрите:
в настройках блога - один список языков
в настройках автора - другой список
в L10N - третий список
в I18N - четвертый
Я как это увидел, меня сразу стошнило.
А русификация frontend заключается только в редактировании ш
А русификация frontend заключается только в редактировании шаблонов?
Или есть-таки более правильный метод, аналогично ru.pm?
Кроме перевода шаблонов нужно еще русские имена месяцев (это
Кроме перевода шаблонов нужно еще русские имена месяцев (это делает патч к Util.pm/MTUtil.php), начало недели в понедельник.
Если делать через ru.pm, то нужно переводить много лишнего. Я ниасилил
с месяцами и понедельником все понятно - сделал без проблем.
с месяцами и понедельником все понятно - сделал без проблем.
напрягает необходимость править несколько почти одинаковых шаблонов. ощущение бесполезности работы :(
И удивительно, что ru.pm к этим шаблонам никакого отношения не имеет, ведь в нем есть все иноязычные фразы из шаблонов.
Ага, тоже не нравится! saahov рекомендовал поиск и замену.
Ага, тоже не нравится! saahov рекомендовал поиск и замену.
ru.pm работает на этапе инсталляции - при этом все макросы <MT_TRANS > раскрываются в выбранный язык.
Что, конечно, тоже не подарок.
Ужас!!! И ЭТО стоит денег? :) Хотя, признаться, все осталь
Ужас!!!
И ЭТО стоит денег? :)
Хотя, признаться, все остальное на высоте!
Видно, мерикосы никак не могут поверить в платежеспособность иноземцев...
Я бы сказал, что вся темплейтная система сделана странно, д
Я бы сказал, что вся темплейтная система сделана странно, даже текст про это написал.
С системой плагинов пока разбираюсь. Мне оказалось нужно из MTLJPost звать MTMacro и CodeBeautifier, пока ниасилил.
В-общем, не подарок. Но использовать можно
Ну, мой нетривиальный способ как раз и появился от того, что
Ну, мой нетривиальный способ как раз и появился от того, что не получилось быстро найти соответствующую таблицу символов. А потом, когда она таки нашлась, править что бы то ни было стало ужасно лениво.
Расскажите, как патч этот ставить. Я не програмист, к сожале
Расскажите, как патч этот ставить. Я не програмист, к сожалению
Андрей, вынужден процитировать абзац из статьи выше: Если
Андрей,
вынужден процитировать абзац из статьи выше:
Если вы не знаете что такое патч и как его применять, используйте пожалуйста настроенный по-умолчанию MT.
А mt-static/mt.js:dirify_table кто-нибудь локализовал ? Эта
А mt-static/mt.js:dirify_table кто-нибудь локализовал ?
Эта третья таблица используется для заполнения basename из title во время создания новости.
А вроде и так все дирифицируется ? Моих правок мне оказалось
А вроде и так все дирифицируется ? Моих правок мне оказалось достаточно, см. на URL-и
Да нафиг он нужен!
Да нафиг он нужен!
Что, нашли источник халявных ссылок ? Обломайтесь: <no
Что, нашли источник халявных ссылок ? Обломайтесь:
<noindex><a title="http://www.gazworld.ru" href="http:// www .gazworld .ru" rel="nofollow">Газовое оборудование</a></noindex>