Drupal 7, TinyMCE, Wysiwyg. Мультиязычные настройки интерфейса редактора TinyMCE в зависимости от языка страницы (сайта).

Может кто копался с TinyMCE через Wysiwyg? Настройки TinyMCE в D7 жестко определяются в "Формате ввода" профиля (редактора).
Если этот профиль (редактор) используется на мультиязычном сайте (скажем для формы комментариев) - то появляется необходимость автоматического переопределения интерфейса редактора (комментариев) под язык страницы (или пользователя)

  1. Языка интерфейса
  2. Расположение кнопок (слева /LTR разделы/, справа /RTL разделы/)

Как это реализовать? я как понимаю есть 2 варианта

  1. или копать - как сделать авто-настройку одного и того-же профиля не жесткую, зависимую от языка
  2. или делать несколько профилей (сколько языков на сайте), и копать - как сделать, чтоб соотв. профиль редактора цеплялся в зависимости от языка (страницы, пользователя...)

Ну к примеру (интерфейс редактора не меняется):

  1. 3wt.info/ru/comment/reply/23
  2. 3wt.info/en/comment/reply/23
  3. 3wt.info/he/comment/reply/23

Кто нибудь делал подобное? есть варианты - где копать?
P.S. Пробовал подцепить на комментарии CKEditor, который автоматически меняет профайл в админ/панели (от языка). Но для гостей, в комментариях это делать лениться -(

Коментарів:

4

Коментувати

Увійдіть або зареєструйтесь, щоб додати коментар

Коментарі

Ящо заглянути в код налаштувань TinyMCE то там буде такий пункт як Default language. Нажаль в коді я не побачив навіть натяку на те що там можна поставити автовизначення мови. Включення TinyMCE відбуваэться наступним чином:

tinyMCE.init({
mode : "textareas",
language : "nl"
...
});

Як варіант то можна відредагувати файл налаштувань модуля Wysiwyg - wysiwyg.admin.inc і замість мови по замовчуванню встановити змінну яка відповідає за вибрану мову.

$profile['settings'] += array(
'default' => TRUE,
'user_choose' => FALSE,
'show_toggle' => TRUE,
'theme' => 'advanced',
'language' => 'en',
'access' => 1,
'access_pages' => "node/*\nuser/*\ncomment/*",
'buttons' => array(),
'toolbar_loc' => 'top',
'toolbar_align' => 'left',
'path_loc' => 'bottom',
'resizing' => TRUE,
// Also available, but buggy in TinyMCE 2.x: blockquote,code,dt,dd,samp.
'block_formats' => 'p,address,pre,h2,h3,h4,h5,h6,div',
'verify_html' => TRUE,
'preformatted' => FALSE,
'convert_fonts_to_spans' => TRUE,
'remove_linebreaks' => TRUE,
'apply_source_formatting' => FALSE,
'paste_auto_cleanup_on_paste' => FALSE,
'css_setting' => 'theme',
'css_path' => NULL,
'css_classes' => NULL,
);

у рядку 'language' => 'en', потрібно замінити : 'language' => $GLOBALS['language']->language .

повинно запрацювати.

эту страницу я видел (http://www.tinymce.com/wiki.php/Language) но она кажется ориентирована не сайт под друпалом, а тем более не на работу Tinymce из под Wisywig. а на отдельно установленный редактор на самописном сайте.
по поводу ($GLOBALS['language']->language) у меня вопрос не только в языке. На RTL-язычных разделах должны и кнопки редактора выводиться РТЛ (нам все перевернуто -) 3wt.info//he/comment/reply/23
Я сделал несколько форматов текста (ну пока два, для теста - For comments-ru, For comments-en)

  1. For comments-ru - Машинное имя: for_comments_ru
  2. For comments-en - Машинное имя: for_comments_en

snimok2.png
И сделал несколько профилей "Профили Wysiwyg" (For comments-ru, For comments-en)
snimok.png
вот в каждом из них и жестко прописываются настройки интерфейса.
snimok3.png
Ну хорошо, три профиля у меня есть, Но копался, копался, где они вызываются, так и не докопался... -(
Я то могу задать вызов определенного профиля в зависимости от урла (/ru/, /en/ или /he/), скажем
$url=$_SERVER['REQUEST_URI'];
if (strstr($url, '/ru')) {
НО ГДЕ ЭТИ ПРОФИЛИ ПОДГРУЖАЮТСЯ НЕ НАШЕЛ -(

я бы попробовал сделать дубликат формата ввода для разных языков и своим модулем менял доступ при выводе форматов ввода.
Хотя может есть и более разумные решения

во... и я в эту сторону копал, только не докопался, нервов не хватило -( может кто скажет, где Wysiwyg вызывается профиль TinyMCE?