Русификация hak TinyMCE
Пока креатив в виде дизайна сайта и структуры материалов находится в стадии создания, навожу порядок с тем, что уже есть. Поскольку есть только испытываемое средство по вводу букв по имени TinyMCE, то заниаюсь исключительно им.
Я вдруг заметил, что редактор не русифицирован. Меня этот факт не смущает, если редактор используется на собственном блоге. А вот в случае поставки клиенту может получиться некрасиво. Вывод - нужно переводить.
Разбираюсь с внутренним устройством и прихожу к неутешительному выводу: русификация должна производиться отдельно для плагина, встраиваемого в TxP, и для файлов редактора, загруженных на сервер.
Русификация самого плагина - это какое-то количество кода на PHP, который следует заставить говорить по-русски. Редактируется плагин просто: в таблице плагинов находим слово "редактировать" и жмём его - нужный плагин выводится в пригодном для внесения изменений виде. Если изменения небольшие и не нужно искать место, которое планируется изменить, то можно всё сделать прям в этом окне. Для значительных изменений я переношу текст во внешний редактов в два разных окна. Одна копия для редактирования, вторая - в случае, если нужно вернуть старую версию плагина.
Изучаем исходиники: языковой файл не вынесен за пределы плагина, а оформлен в виде ассоциированного массива:
$en_us = array(
'hak_show_toggle' => 'Show editor toggle:',
'hak_hide_on_textile_edit' => 'Hide editor toggle when editing articles created with textile or convert linebreaks: ',
...
"Размножаю" этот кусок кода и меняю его вторую копию:
$ru_ru = array(
'hak_show_toggle' => 'Показывать переключатель редактора:',
'hak_hide_on_textile_edit' => 'Прятать переключатель редактора если редактируется статья, созданная с использованием Textile или с преобразованием перевода строки: ',
...
Меняю
$lang = array(
'en-us' => $en_us,
);
на
$lang = array(
'en-us' => $en_us,
'ru-ru' => $ru_ru
);
Обновлённый текст плагина помещаю в окно, откуда я его недавно "похитил" и нажимаю кнопку "Сохранить". Ну ладно, не "Сохранить", а "Сохр.". Какая разница? Всё равно после этого в колонке "Обновлено" у подопытного плагина появится слово "да". Проверяю - работает. Автоматом начинает писать русские слова вместо английских. Неплохо.
Есть маленький нюанс: автор плагина не внёс в языковой массив имена кнопок и заголовок страницы TinyMCE в разделе расширений. Не буду описывать, как это можно победить. Не потому, что жалко, а просто лень.
Теперь сам редактор. Тут всё и проще, и сложнее. Дело в том, что у редактора существует несколько языковых файлов. Точнее не скажу, но пару десятков можно насчитать. Иду на "родину" TinyMCE http://tinymce.moxiecode.com/language.php и загружаю русский в utf8. Это архив. Распределяю языковые файлы по соответствующим директориям на сервере, прописываю ru вместо en во всех необходимых местах во вкладке "Расширения" и обнаруживаю, что русский в самом редакторе появился, но в некоторых случаях вместо русских слов я вижу имена переменных. Оказывается не для всех модулей редактора есть перевод в архиве русификации. Пока не хочу на это заморачиваться и в директориях, где присутствует английский языковой файл (en.js), но нет русского (ru.js) я просто делаю копию английского файла без перевода. При повторном запуске TxP редактор работает нормально, только иногда показывает английские слова - это лучше, чем имена переменных, но оставляет ещё поле для деятельности.
Торжественно обещаю сам себе, что доведу русификацию до логического конца и выложу для всеобщего пользования в "Файлы". Правда я не знаю, как плагин и файл помощи для него представить в виде той абракадабры, которую я брал из исходной поставки, но, думаю, разберусь.
|
опубликовано: 29 июня 2007, 01:54
Большое спасибо!
— heloooo май 13, 12:30 #
Пользуйся
— PolyGon май 13, 14:00 #
Очень интересно было познакомиться с материалом! Вы – молодец.
— Visitor май 29, 12:08 #
Я рад за тебя. А помнишь, я тебя предупреждал: не спамь у меня? Накажу.
— PolyGon май 29, 16:16 #
С тех пор многое изменилось, но материал все еще актуален
— Шумомер окт 16, 15:37 #