Формулировка проблемы: для некоторых полей объектов конфигурации отсутствует мультиязычность полей.
Связанные задачи:
Используется:
Конфигуратор -> Процессы -> Реестры
Конфигуратор -> Настройка системы -> Импорт/экспорт конфигурации
Конфигуратор -> Настройки системы -> Переводы
Решение:
требующиеся поля объектов конфигурации сделать мультиязычными в соответствии с требованиями к мультиязычному полю ввода;
доработать процесс импорта/экспорта соответствующих объектов;
обновить API методы, где используются данные поля.
Задачу разделим следующим образом:
Во-первых, необходимо поле "Наименование реестра" сделать мультиязычным полем ввода. При этом обязательность данного поля, поведение и отображающаяся ошибка при попытке сохранить пустое значение должны остаться прежними.
При обновлении текущее значение поля должно стать значением локали по умолчанию.
В раздел "Переводы" в выпадающий список "Фильтр по объектам" необходимо добавить объект "Реестр" после объекта "Категория рисков", в котором будут храниться переводы названий реестров. При скрытии реестра переводы будут продолжать отображаться в редакторе ресурсов.
Во-вторых, необходимо доработать экспорт реестров и выгружать значение мультиязычного поля "Наименование реестра" вместо значения поля "Наименование реестра".
В-третьих, необходимо доработать API метод
rest/api/registry/list
, добавив в него
необязательный входной параметр:
locale
- код локали (необяз., при
отсутствии параметра используется
язык
системы по умолчанию).
В массиве JSON в качестве параметра
registryName
необходимо возвращать название
реестра в соответствующей локали.
Также необходимо доработать API метод
rest/api/registry/info
, добавив в него
необязательный входной параметр:
locale
- код локали (необяз., при
отсутствии параметра используется
язык
системы по умолчанию).
В строке JSON в качестве параметра name
необходимо возвращать название реестра в соответствующей локали.
Во-первых, необходимо сделать поле "Название действия по документу реестра" мультиязычным полем ввода. При этом обязательность данного поля, поведение и отображающаяся ошибка при попытке сохранить пустое значение должны остаться прежними.
При обновлении текущее значение поля должно стать значением локали по умолчанию.
В раздел "Переводы" в выпадающий список "Фильтр по объектам" необходимо добавить объект "Действия по документу реестра" после объекта "Реестры", в котором будут храниться переводы действий по документу реестра. При скрытии реестра данные переводы будут продолжать отображаться в редакторе ресурсов.
Во-вторых, необходимо доработать экспорт реестров и выгружать значение мультиязычного поля "Название действия по документу реестра" вместо значения поля "Название действия по документу реестра".
Во-первых, необходимо в таблице "Поля формы реестра" поля столбца "Название поля" сделать мультиязычными. При этом обязательность данного поля при включенном флажке в столбце "Отображение поля при просмотре реестра", возможность сохранения значения поля при выключенном флажке, поведение и отображающаяся ошибка при попытке сохранить пустое значение должны остаться прежними. Также должна отображаться подсказка с текстом "Введите название поля...", если не введено значение поля.
При обновлении текущее значение поля должно стать значением локали по умолчанию.
В раздел "Переводы" в выпадающий список "Фильтр по объектам" необходимо добавить объект "Подпись полей реестра" после объекта "Действия по документу реестра", в которой будут храниться переводы названий полей реестров. При скрытии реестра данные переводы будут продолжать отображаться в редакторе ресурсов.
Во-вторых, необходимо доработать экспорт реестров и выгружать значение мультиязычного поля "Название поля" вместо значения поля "Название поля".
В-третьих, необходимо доработать API метод
rest/api/registry/info
: в строке JSON в
качестве параметра label
возвращать название
поля реестра в соответствующей локали
(доработка данного метода).
Во-первых, необходимо для компонента формы "Неизменяемый текст" добавить в настройки вкладку "Переводы" до вкладки "Код скрипта". На данной вкладке должна находиться таблица с переводами неизменяемого текста соответствующая таблице, которая находится в диалоге "Переводы" мультиязычного поля ввода. Текст, который вводится на форме, должен сохраняться в качестве значения локали по умолчанию.
При обновлении текущее значение поля должно стать значением локали по умолчанию. При создании нового компонента "Неизменяемый текст" отображается текст "Нажмите чтобы ввести текст", данное значение должно стать значением локали по умолчанию и заполниться в таблице "Переводы". Если пользователь не редактировал значение созданного компонента, то компонент должен отображаться на форме в пользовательской части с указанным текстом.
Переводы компонента формы "Неизменяемый текст" в редакторе ресурсов не отображаются. Их редактирование необходимо осуществлять только из соответствующего раздела конфигуратора.
Во-вторых, необходимо доработать экспорт форм и выгружать значения компонента "Неизменяемый текст" со всеми переводами.
В-третьих, необходимо доработать API методы:
rest/api/asforms/form/{formID}
rest/api/asforms/form_ext
Для компонента формы "Неизменяемый текст" в параметре
label
должно возвращаться последнее сохраненное
значение компонента. Также необходимо возвращать массив
translations
, который содержит переводы данного
компонента. Массив состоит из следующих параметров:
localeID
- код локали,
text
- текст перевода,
editByUser
- признак изменения текста
перевода пользователем. Возвращает одно из значений:
true
- текст был изменен,
false
- текст не менялся.
Пример возвращаемого описания компонента формы "Неизменяемый текст":
{ "properties": [ { "id": "cmp-1", "type": "label", "config": {}, "label": "Неизменяемый текст 1", "translations": [ { "localeID" :"c", "text":"Неизменяемый текст 1", "editByUser": true }, { "localeID":"en", "text":"11111", "editByUser": true }, { "localeID":"ru", "text":"22222", "editByUser": true }, { "localeID":"kk", "text":"Неизменяемый текст 1", "editByUser": false } ], "style": { "align": "left", "font": "Arial", "fontsize": "12" } } ] }