Изменить меню, при смене языка

Изменить меню, при смене языка

от Valentin Kuzmenko -
Количество ответов: 16

Добрый день! Подскажите пожалуйста, как мне узнать что пользователь на главной странице moodle сайта изменил язык, чтобы мне под него изменить меню или оформление и т.п.

Какая глобальная переменная или функция отвечает за выбор языка на главной странице???

Пожалуйста, подскажите куда копать

В ответ на Valentin Kuzmenko

Re: Изменить меню, при смене языка

от Vadim Tabunshchik -
Изображение пользователя Developers
Какая глобальная переменная или функция отвечает за выбор языка на главной странице???

Вопрос немного некорректен. Выбор языка пользователю предоставляет public function lang_menu (выводит меню выбора языка), а вот текущий используемый пользователем язык определяется в function current_language()

чтобы мне под него изменить меню или оформление

Если меню создать стандартными средствами Мудл (настройка custommenuitems в админке), то ничего придумывать не нужно, всё уже сделано за нас улыбаюсь

Например, вывод одной и той же ссылки на разных языках:

English only|http://moodle.com|English only item||en
German only|http://moodle.de|Deutsch||de,de_du,de_kids

Англичанин увидит ссылку http://moodle.com, немец - http://moodle.de

Оформление меняется выбором другой темы (если позволено администратором), соответственно, тема будет отображаться на том языке, что выбрал пользователь (если есть перевод темы на этот язык)

подскажите куда копать

Напишите подробнее, что хотите сделать

В ответ на Vadim Tabunshchik

Re: Изменить меню, при смене языка

от Valentin Kuzmenko -

Большое Вам спасибо, очень помогло! У нас есть курсы на en и ru но для ru больше всего, и необходимо разместить информацию в шапке сайта для студентов, чтобы они видели ссылки на разные ресурсы, дело в том, что для en эти ресурсы не нужны, вот и хотелось только для ru показать меню с ссылками. Но как нам к меню добавить id, class для того чтобы и стиль поменять и javascript-ом обрабатывать ссылки в меню?

А function current_language() работает, с его помощью можно внести изменения в тему по языку, но возможно есть другой более безопасный способ?


В ответ на Valentin Kuzmenko

Re: Изменить меню, при смене языка

от Alexandre Scherbyna -

Можно вставлять в любые редактируемые элементы курса разный текст, ссылки и т.п., в зависимости от выбранного пользователем языка с помощью плагина Multi-Language Content. Тогда у вас в редакторе появляется кнопочка выбора языка. Выделяете любой фрагмент и  указываете, что его нужно показывать только тем, кто выбрал ru, например.

В ответ на Alexandre Scherbyna

Re: Изменить меню, при смене языка

от Valentin Kuzmenko -

Спасибо большое, за Multi-Language Content но у сайта мудл версия 2.3 а плагин ставится, начиная с 2.9, к сожалению мы не сможем им воспользоваться.

В ответ на Valentin Kuzmenko

Re: Изменить меню, при смене языка

от Alexandre Scherbyna -

Ну вы даете! Актуальная версия 3.3, а у вас до сих пор 2.3! По-моему, со времен 2.3 прошла уже целая эпоха.

В ответ на Valentin Kuzmenko

Re: Изменить меню, при смене языка

от Vadim Tabunshchik -
Изображение пользователя Developers
Но как нам к меню добавить id, class для того чтобы и стиль поменять и javascript-ом обрабатывать ссылки в меню?

Указать id для того, чтоб сразу в какой-то курс/модуль перейти? Или что за id, class? Атрибуты ссылки? id="mymenu" и тому подобное?

И на счет javascript я не уверен, что можно к стандартному меню как-то прикрутить.

Поищите что-нибудь настраиваемое (расширенное меню/блок) в базе плагинов.

В ответ на Vadim Tabunshchik

Re: Изменить меню, при смене языка

от Valentin Kuzmenko -

Извините, что не объяснил, да id="mymenu" class="mystyleclass" атрибуты html

мне необходимо к меню добавить, например:

<a href="#" class="myclass" id="menucours">Курсы</a>

а сейчас у меня так:

<a href="#" >Курсы</a>

Вот и хотелось узнать как к меню в мудл, добавить атрибуты

В ответ на Valentin Kuzmenko

Re: Изменить меню, при смене языка

от Vadim Tabunshchik -
Изображение пользователя Developers
мне необходимо к меню добавить…

Да без проблем:

Контакты сайта|http://moodle.pstu.edu#contacts" id="mymenu" class="myclass||ru

Кавычки писать именно так, как я написал (после ссылки ставим, после последнего атрибута - не ставим), тогда получится так:

nav

Одно непонятно: зачем это нужно? улыбаюсь

В ответ на Vadim Tabunshchik

Re: Изменить меню, при смене языка

от Valentin Kuzmenko -

Спасибо за помощь!

Это нужно для того, чтобы можно менять css стиль ссылок или меню при необходимости обрабатывать javascript-ом, без id и class не обойтись, нам необходимо управлять всем, что есть в мудл, чтобы подстраивать под нужды студентов и преподавателей.

Большое спасибо Вам, не ожидал, что получу ответы, спасибо большое.

В ответ на Vadim Tabunshchik

Re: Изменить меню, при смене языка

от Zhasulan Zhumadilov -
Добрый день подскажите это работает для перевода полей регистрации? То есть новых полей, которые были добавлены дополнительно. Стандартные поля переводятся через локальные изменения языкового пакета. А вот новые поля не могу понять как.
В ответ на Zhasulan Zhumadilov

Re: Изменить меню, при смене языка

от Alexandre Scherbyna -
К сожалению, названия дополнительных полей на другие языки не переводятся. На всех языках они отображаются одинаково - так, как вы их назвали при создании.
Следовательно, единственный выход - скорректировать названия полей, прописав их на нескольких языках сразу, например: Возраст / Age.
В ответ на Zhasulan Zhumadilov

Re: Изменить меню, при смене языка

от Valentin Kuzmenko -
Вы можете использовать php, и написать так
$lang = current_language();
$age="";//возраст
//раскомментируйте для проверки
//echo "language: ".$lang;

if($lang=="ru"){
$age = "Возраст";
}else if($lang=="en"){
$age = "Age";
}else if($lang=="ua"){
$age = "Вік";
}
В ответ на Valentin Kuzmenko

Re: Изменить меню, при смене языка

от Zhasulan Zhumadilov -
Подскажите пж куда это прописать в файл login ?
$lang = current_language();
$age="Возраст";
//echo "language: ".$lang;

if($lang=="ru"){
$age = "Возраст";
}else if($lang=="en"){
$age = "Age";
}else if($lang=="ua"){
$age = "Вік";
}