Сделать двухязычный сайт

Сделать двухязычный сайт

от Евгений Максименко -
Количество ответов: 28

Здравствуйте! Стоит задача сделать двухязычный сайт: контент должен переводиться при изменении языка: на русском я зыке и на украинском. Я нашел старую переписку здесь https://moodle.org/mod/forum/discuss.php?d=199294. Там речь шла еще о Moodle 2.2. У меня же 3.4. Попробовал сделать так, как понял, но ничего не получилось, контент отображается сразу на 2-х языках.

Зашел в: Администрирование - плагины - фильтры - управление фильтрами.

Фильтр Очистка от HTML тегов - включен - применить к содержимому и заголовкам.

Фильтр Многоязыковое содержимое - включен - применить к содержимому и заголовкам.

Далее - перешел на главную страницу, где собственно говоря и должен изменяться язык контента, здесь стоят настройки:

 - Фильтр Очистка от HTML тегов - по умолчанию включен;

- Фильтр Многоязыковое содержимое - по умолчанию включен.

Создать HTML блок и в него для теста вставил следующее содержание:

<span class="multilang" lang="ru">Пояснение.<br></span><div><span class="multilang" lang="ru">На примере этого курса показано автоматическое изменение языка его контента в зависимости от предпочитаемого языка пользователя, выбранного им в своем профиле.</span><br></div><div> <span class="multilang" lang="uk">Пояснення.</span></div><div><span class="multilang" lang="uk"></span></div><span class="multilang" lang="uk">На прикладі цього курсу показано автоматичну зміну мови його контенту в залежності від бажаної мови користувача, обраної ним у своєму профілі.</span>

К сожалению, контент отображается на 2-х языках и при переключении языков ничего не изменяется.

Подскажите пожалуйста, что сделано не так? Как добиться того, чтобы задача была выполнена?

Спасибо всем заранее!

В ответ на Евгений Максименко

Re: Сделать двухязычный сайт

от Vadim Tabunshchik -
Изображение пользователя Developers
контент должен переводиться при изменении языка: на русском я зыке и на украинском.

Ох и намучаетесь вы с этой затеей улыбаюсь

Проще сделать 2 разных курса и в каждом разместить ссылку на другой курс.

Подскажите пожалуйста, что сделано не так?

Содержимое на обоих языках должно находиться в одном текстовом блоке/параграфе. Вот ваш правильный текст, который нормально обрабатывается мультиязычным фильтром:

<p><span class="multilang" lang="ru">Пояснение.</span><span class="multilang" lang="uk">Пояснення.</span></p>
<p><span class="multilang" lang="ru">На примере этого курса показано автоматическое изменение языка его контента в зависимости от предпочитаемого языка пользователя, выбранного им в своем профиле.</span><span class="multilang" lang="uk">На прикладі цього курсу показано автоматичну зміну мови його контенту в залежності від бажаної мови користувача, обраної ним у своєму профілі.</span></p>

И в названии блока я тоже использовал фильтр. Вот так это выглядит при переключении:

Русский Украинский
001 002

Если всё же будете этим заниматься, я советую установить фильтр Multi-Language Content (v2), с ним будет проще. Во-первых, не нужно переключаться в просмотр исходного кода, во-вторых, можно сразу разместить весь текст на одном языке, потом - на другом:

{mlang ru}
Пояснение.
На примере этого курса показано автоматическое изменение языка его контента в зависимости от предпочитаемого языка пользователя, выбранного им в своем профиле.
{mlang}
{mlang uk}
Пояснення.
На прикладі цього курсу показано автоматичну зміну мови його контенту в залежності від бажаної мови користувача, обраної ним у своєму профілі.{mlang}

Ну, и для полного счастья установить плагин/кнопку в редактор АТТО Multi-Language Content

Жаль, для TinyMce нет такого, я им в основном пользуюсь.

В ответ на Vadim Tabunshchik

Re: Сделать двухязычный сайт

от Евгений Максименко -

Здравствуйте Вадим! Большое спасибо Вам за такую объемную подсказку, Вы настоящий профессионал на протяжении многих лет и помогаете мне не первый раз. У меня есть один и тот же курс на двух языках и поставить ссылку конечно же проще. Но я работаю в Украине. У нас двуязычная страна и, если, к примеру русскоязычный зайдет на сайт и увидит всю информацию на украинском языке, не факт, что дочитает до конца. Точно так же и наоборот. Всем комфортно читать на его родном языке. Поэтому и встала такая задача - переключать язык контента на комфортный. Я раньше работал и продолжаю работать с Joomla, там такая задача решается гораздо проще. Попробую помучиться с Moodle 3.4.

В первом случае "размещать в одном текстовом блоке/параграфе" все получилось, фильтр обрабатывает корректно. Теперь хочу попробовать фильтр Multi-Language Content (v2), уже скачал.

Пока не понял как установить и пользоваться кнопкой Multi-Language Content.

А также не понял, что это даст "для полного счастья".

Если для Вас не составит большого труда, можете объяснить "чайнику"?

Еще раз спасибо за Ваш труд!


В ответ на Евгений Максименко

Re: Сделать двухязычный сайт

от Alexandre Scherbyna -

Вы просто выделяете нужный текст и указываете его язык.


В результате выделенный текст заключается в теги и становится видимым только тем, у кого в языковом меню сайта выбран этот язык. Остальной текст виден всем.

Возможно, вам может оказаться полезным еще один плагин. Он обеспечиваете условный доступ к ресурсам в зависимости от выбранного языка. Например, если книжка на украинском, то ее можно сделать доступной только тем, у кого выбран этот язык.

В ответ на Alexandre Scherbyna

Re: Сделать двухязычный сайт

от Aleksandr Ivanov -
Здравствуйте!


Буду благодарен если подскажите как же переводить названия тем и заголовков на другие языки. Так же заключать в теги?

Moodle 4.0

В ответ на Евгений Максименко

Re: Сделать двухязычный сайт

от Vadim Tabunshchik -
Изображение пользователя Developers
Пока не понял как установить и пользоваться кнопкой

Вы же читали тему Многоязычность курсов, там Александр Щербина написал, как активировать кнопку в редакторе АТТО: https://moodle.org/mod/forum/discuss.php?d=199294#p1449655

Устанавливается же плагин как и любой другой в Мудл.

А также не понял, что это даст "для полного счастья".

На это тоже был дан ответ: не нужно руками набирать теги {mlang ru} и т. д. Выделяете текст и кнопкой указываете, на каком языке он должен отображаться. Кнопка сама проставит нужные теги. Александр Щербина скриншот показал.

Кстати, фильтр Multi-Language Content (v2) работает и в названиях блоков, ресурсов, элементов курса:

001

ЗЫ: спасибо за спасибо подмигиваю

В ответ на Vadim Tabunshchik

Re: Сделать двухязычный сайт

от Евгений Максименко -

Добрый день!

Разобрался, установил плагины, добавил в редактор Atto кнопку, но вот незадача, выделяю текст, нажимаю на кнопку,.... а список с языками не появляется... (скриншот). Почему - не пойму. Подскажите, плиз...

Приложение скрин.png
В ответ на Евгений Максименко

Re: Сделать двухязычный сайт

от Vadim Tabunshchik -
Изображение пользователя Developers

А другие списки в кнопках редактора открываются? «Стили абзаца» разворачивается?

Тема оформления не adaptable, случайно? В ней списки в кнопках редактора глючат, не разворачиваются, я проверял и тему снёс.

Попробуйте поменять тему оформления на простую стандартную: clean или more и проверить кнопку.

Баг может быть связан с переходом на Boost 4.0, в этой теме обсуждали глюки кнопок.

В ответ на Vadim Tabunshchik

Re: Сделать двухязычный сайт

от Евгений Максименко -

Здравствуйте! Тема действительно adaptable. Мне она очень нравится, жалко сносить...

В ответ на Евгений Максименко

Re: Сделать двухязычный сайт

от Alexandre Scherbyna -

Не надо сносить. Тему можно задавать для курса или категории курсов. Следовательно, вы можете сохранить тему adaptable для всех курсов, кроме вашего двуязычного. А потом, если хотите, неспеша "допилить" эту тему, чтобы она правильно работала и с этим плагином.

В ответ на Евгений Максименко

Re: Сделать двухязычный сайт

от Vadim Tabunshchik -
Изображение пользователя Developers
Мне она очень нравится

Это пока далеко вовнутрь не лазили…

Вот с редактором косяк поймали уже? А сколько ещё по мелочи?

  1. Админка, управление курсами/категориями:
    001
  2. Развернутый список фильтров:
    002
  3. Мелкий шрифт (80%) названий курсов в сравнении с категориями. Явная диспропорция:
    003
  4. Алфавит куда-то «утонул»:
    004
  5. Справка при клике по иконке с вопросом открывается не во всплывающем окошке, а в новой вкладке/странице.
  6. Дальше продолжать?

Что касается проблемы отображения меню кнопки Multi-Language Content в теме adaptable. Можно откатиться на версию темы 1.6.1. Половить там другие глюки, но меню в кнопке видно, сам проверял.

А можно «допилить» версию темы 1.7, подправив кое-какие стили CSS. Проблема в том, что полностью, по всей системе, никто из авторов не проверяет, как ОНО работает. Всё это перекладывается на плечи конечного пользователя. И уж, тем более, никто не проверяет, как с его темой будут состыковываться нестандартные плагины.

И вот из-за одного маленького косяка в стилях, не видны ни один из списков в редакторе АТТО. А нужно то всего было добавить стиль .atto_menu .dropdown-menu {opacity: 0.99;}. Станут видны списки, но их тоже нужно допиливать.

В ответ на Vadim Tabunshchik

Re: Сделать двухязычный сайт

от Евгений Максименко -

Спасибо большое Вадим. Конечно же Вы правы, не все гладко с этой темой. Тема красивая, но глючная. Нужно будет искать альтернативу.

Пока не нашел, может быть подскажете как откатиться на версию 1.6.1?

В ответ на Евгений Максименко

Re: Сделать двухязычный сайт

от Vadim Tabunshchik -
Изображение пользователя Developers

Доступ к базе данных есть?

Нужно найти в таблице mdl_config_plugins строку с plugin='theme_adaptable' и значением name='version', в поле value этой строки поменять цифры с 2018051700 на 2018022500. Потом удалить каталог adaptable из папки с темами и загрузить туда каталог adaptable версии 1.6.1. Зайти в уведомления, обновить Мудл.

ЗЫ: можно остаться на 1.7, только пропишите в параметре темы «Пользовательский CSS» (theme_adaptable | customcss) следующие стили:

.editor_atto_menu .open ul.dropdown-menu {margin-top: -24px;}
.atto_menu .dropdown-menu {opacity: 0.99;}
.atto_fontfamily_button .dropdown-menu {min-height: 180px;}
.atto_title_button .dropdown-menu {min-height: 144px; min-width: 22em !important;}
.atto_fontsize_button .dropdown-menu,
.atto_backcolor_button .dropdown-menu {min-height: 200px;}
.atto_multilang2_button .dropdown-menu {min-height: 90px;}
.atto_morefontcolors_button .dropdown-menu {min-height: 120px; min-width: 9em !important;}
.atto_morefontcolors_button .dropdown-menu > li > a {margin: 2px; padding: 3px;}

Если каких-то нестандартных плагинов не устанавливали в редактор АТТО, то их стили можно не прописывать (я нестандартные выделил)

В ответ на Vadim Tabunshchik

Re: Сделать двухязычный сайт

от Евгений Максименко -

Здравствуйте Вадим!

К сожалению, я не программист (правда кое-что понимаю), в файл изменения внес (скриншот). К сожалению, ничего не изменилось, списки в  adaptable не работают. Гляньте, возможно я прописал стили неверно.

С уважением, Евгений

Приложение 111.png
В ответ на Евгений Максименко

Re: Сделать двухязычный сайт

от Vadim Tabunshchik -
Изображение пользователя Developers

Не нужно напрямую редактировать файл .css. Тем более, вы в комментарий написали, естественно, работать ничего не будет.

Зайдите в админку сайта - внешний вид - темы - adaptable - пользовательский css… (это, кажется, последняя ссылка) и на этой странице в поле «Пользовательский CSS» (theme_adaptable | customcss) пропишите эти стили.

В ответ на Vadim Tabunshchik

Re: Сделать двухязычный сайт

от Евгений Максименко -

Ура, заработало!!! Я все-таки поражаюсь Вашей компетентности, Вадим. Суперпрофессионал! Спасибо Вам за все!

В ответ на Евгений Максименко

Re: Сделать двухязычный сайт

от Vadim Tabunshchik -
Изображение пользователя Developers

Хорош, в краску не вгоняйте стесняюсь

Я привык пользоваться редактором TinyMCE, по двум причинам: 1 - он раньше АТТО появился в Moodle и 2 - он замечательно очищает текст, вставленный из Word.

Пришлось поискать плагин multilang2 и для TinyMCE. Нашел тут: https://github.com/iarenaza/moodle-tinymce_moodlelang2

К сообщению прикрепил архив плагина с переводом на рус и укр.

Этот плагин в TinyMCE работает лучше, чем в АТТО. Мусора меньше вставляет. подмигиваю

Для сравнения: приведен исходный код одного и того же блока текста на трех языках (en, ru, uk)

ATTOTinyMce
atto tinymce
В ответ на Vadim Tabunshchik

Re: Сделать двухязычный сайт

от Евгений Максименко -

Не скромничайте, Вадим. Ладно, больше не буду. Редактор TinyMCE действительно удобнее, я им пользуюсь в Joomla. Спасибо Вам за плагины и еще одна маленькая подсказка. Как перейти на TinyMCE, не могу найти как выбрать редактор, по умолчанию Atto

В ответ на Евгений Максименко

Re: Сделать двухязычный сайт

от Vadim Tabunshchik -
Изображение пользователя Developers

Настройки пользователя - профиль пользователя - настройки - ссылка «Настройки редактора»

image001

Чтобы по умолчанию на сайте был редактор TinyMce, его нужно в списке первым поставить (на странице управления редакторами). Эта настройка будет действительна только для тех, у кого в профиле выбран редактор сайта по умолчанию.

В ответ на Vadim Tabunshchik

Re: Сделать двухязычный сайт

от Евгений Максименко -

Супер, все получилось и все работает! Редактор TinyMCE и плагин тоже действует. Я не знаю, что бы делал без Вашей помощи. Еще раз благодарю Вас, Вадим за высокий профессионализм, быстроту ответов и желаю Вам и Вашей команде дальнейшего процветания!

В ответ на Vadim Tabunshchik

Re: Сделать двухязычный сайт

от Farrukh LL -

Здравствуйте Вадим,

не подскажите мултиленг2 в футере не работает или нужно как то по другому сделать? В в описании курсах заработало, решил в футере шаблона попробовать 0 результатов то есть с кодом отображается

Скрин

з

В ответ на Farrukh LL

Re: Сделать двухязычный сайт

от Vadim Tabunshchik -
Изображение пользователя Developers

В каком футере?

Если тема оформления содержит такую настройку, например, в теме more есть «Нижний колонтитул» (theme_more | footnote), то тут фильтр multilang2 работает.

Если вы вносите изменения в файл шаблона вручную, то это работать не будет.

В ответ на Vadim Tabunshchik

Re: Сделать двухязычный сайт

от Farrukh LL -
В ответ на Farrukh LL

Re: Сделать двухязычный сайт

от Vadim Tabunshchik -
Изображение пользователя Developers
  1. Вопросы по нестандартным темам нужно задавать самому разработчику. Здесь никто не будет устанавливать ненужную тему, тестировать, исправлять и так далее.
  2. Вопросы по нестандартным фильтрам - то же самое.
  3. Насколько я помню, плагин Multi-Language Content (v2) работает только в контексте курса. В теме оформления, особенно нестандартной, нужно использовать обычный встроенный фильтр Мудл:
    <span class="multilang" lang="tg">Суроға</span><span class="multilang" lang="ru">Адрес</span>
В ответ на Vadim Tabunshchik

Re: Сделать двухязычный сайт

от Farrukh LL -

Обратно идентичная ошибка 

В ответ на Farrukh LL

Перевод

от Kurbon Rakhmanov -

Один вопрос.

Я установил языковые пакеты (узбекский язык). Все хорошо но некоторые слова я не могу найти место для перевода. Например, в тестах есть: Выберите один ответ. Выберите один или несколько. Редактировать вопрос.

Я хочу переводить этих фраз.

Заранее спасибо. 

В ответ на Kurbon Rakhmanov

Re: Перевод

от Alexandre Scherbyna -

Если не знаете где искать, то ищите везде - выделяйте все файлы: