Добавление текстовых констант

Добавление текстовых констант

от Андрей Костюченко -
Количество ответов: 3
Здравствуйте.
В moodle 3.x Нужно было сделать поле для профиля пользователя с вариантами выбора. Создание нового поля с вариантами выбора не подходит, поскольку потом нужно подтягивать это поля для отображения в списке пользователей. Поэтому было решено использовать стандартное поле "institution" (учреждение). Посмотрев код файла editlib.php по формированию полей с выбором создание поля "institution" было переписано:
    $choices = array();
    $choices['0'] = 'Учереждение1';
    $choices['1'] = 'Учереждение2';
    $choices['2'] = 'Учереждение3';
    $mform->addElement('select', 'institution', get_string('institution'), $choices);
    ...
Ну и в принципе все заработало.
Но такое прописывание конкретных значений выбора, плохой вариант при использование многоязычного интерфейса. Поэтому в файлы локализации были внесены соответствующие строки в порядке сортировки
в moodle\lang\en\moodle.php
$string['instit1'] = 'Institution1';
$string['instit2'] = 'Institution2';
$string['instit3'] = 'Institution3';
и в moodledata\lang\ru\moodle.php
$string['instit1'] = 'Учереждение1';
$string['instit2'] = 'Учереждение2';
$string['instit3'] = 'Учереждение3';

и код формирования поля поправлен, до:
    $choices = array();
    $choices['0'] = get_string('instit1');
    $choices['1'] = get_string('instit2');
    $choices['2'] = get_string('instit3');
    $mform->addElement('select', 'institution', get_string('institution'), $choices);
Но список для поля формируется с элементов:
instit1
instit2
instit3
Как быть с такой ситуацией.
В ответ на Андрей Костюченко

Re: Добавление текстовых констант

от Vadim Tabunshchik -
Изображение пользователя Developers
в файлы локализации были внесены соответствующие строки в порядке сортировки…
и в moodledata\lang\ru\moodle.php

Прямо в файл вносили изменения? Перевод нужно редактировать через интерфейс moodle (Локальные изменения языкового пакета), т. к. измененные строки сохраняются не только в файле, но и в БД и выгружаются потом из БД.

ris

А прямое редактирование файла такого результата не даст.

В ответ на Андрей Костюченко

Re: Добавление текстовых констант

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

Андрей, в целом вы идёт правильным путём, но пока делаете ошибки, свойственные начинающим.

Ковырять код ядра мудла опасное дело - вам придётся всё переделывать при каждом обновлении системы. Вторая глупая затея - дописываться в самый большой языковой файл системы. Создайте тогда уж свой файл со строками и впишите туда свои несколько строк, а у get_string вторым параметром задавайте, откуда брать строки.