Мультиязычность и локализация¶
В "Первой Форме" можно работать в разных языковых интерфейсах. В системе поддерживаются следующие языки: русский, английский, французский, польский, испанский, итальянский, датский, немецкий, китайский, японский и узбекский.
В настоящее время полная локализация доступна для русского и английского языков. Для остальных языков может быть реализована локализация следующих объектов:
-
названий сущностей в категориях,
-
значений Lookup в БИ и колонках ДП Таблица,
-
значений для ДП типа "Выпадающий список",
-
названий блоков ДП,
-
названий блоков "Используется" и вкладок блоков,
-
названий статусов,
-
названий кнопок переходов,
-
названий подписей,
-
названий виджетов, а также содержимого виджетов "Меню", "На подписи", "Поиск задач", "Таблица", "График",
-
смарт-кнопок в виджетах "Поиск задач", "Таблица",
-
названий параметров фильтров для виджетов и отчетов,
-
пользовательских индикаторов,
а также локализация пользовательских данных:
-
текстов задач,
При переключении языка локализации формат дат в системных и дополнительных параметрах не изменяется.
Системные ресурсы¶
Некоторые наименования объектов в системе реализованы в виде ресурсов интерфейса, предназначенных для локализации (т.е. перевода на другие языки).
Такие ресурсы имеют вид \<%&...%>.
Например, типовые статусы задач, такие как Новая, Выполняется, в режиме администрирования отображаются как \<%&New%>, \<%&InProcess%>. Типовые переходы по маршруту, такие как Обжаловать, отображаются как \<%&Appeal%>. И так далее.
Настройки таких ресурсов запрограммированы и не могут быть изменены ни пользователями, ни администратором.
В дополнение к типовым, запрограммированным ресурсам в системе есть набор ресурсов для локализации, которые могут создаваться и настраиваться администратором.
Локализация текста задач и текстовых ДП¶
В пользовательском интерфейсе может быть включена возможность задать локализованное значение при редактировании текста задачи, а также ДП "Текст" и "Большой текст с форматированием/без форматирования" в SPA.
Для категории должны быть включены общие настройки: "Локализовать текст задач" и "Разрешить HTML в тексте задач". Для ДП должна быть активна опция "Локализуемый" в расширенных настройках.
Отображается только в карточке уже созданной задачи.
В окне выбора локализованного значения для текста задачи и ДП "Текст" и "Большой текст с форматированием/без форматирования " отображаются только активные языки системы. Список используемых языков настраивается в окне Доступные языки в Общих настройках приложения.
Фильтрация в гриде по локализованным текстовым ДП (типы Текст, Большой текст с форматированием, Большой текст без форматирования) недоступна — при включении флага «Локализуемый» фильтрующий столбец в гриде не отображается. Ограничение не распространяется на текстовые ДП без флага локализации.
Локализация объектов¶
Все объекты (сущности) "Первой Формы" локализуются в интерфейсе администратора. Названия объектов можно переводить по отдельности или пакетно. Пакетный способ доступен в разделе Прочее на странице Пакетный перевод сущностей. Перевод отдельных названий описан ниже.
Рядом с объектом отображается иконка локализации — по клику на нее открывается окно для задания названий объекта в разных локалях.
В профиле пользователя необходимо указать локализованные значения для фамилии, имени и отчества.
Локализация в смарт-автоматизациях¶
В смарт-автоматизациях локализацию можно реализовать только с помощью запросов TSQL. Структуру таблиц, которые хранят данные для локализации, можно посмотреть на схеме.
Локализация данных¶
Чтобы текст задачи можно было задавать для разных локалей, в основных настройках категории надо включить опцию Локализовать текст задач. Тогда в карточке задачи станет доступна кнопка Локализовать, по нажатию на которую открывается окно для задания текста задачи в разных локалях. В карточке задачи текст задачи будет отображаться на том языке, который выбран в профиле пользователя.
Автоматический перевод комментариев через AI-сервис¶
Azure Cognitive Speech (с текущей версии)¶
При изменении локализованных значений система автоматически выполняет их асинхронный перевод на все поддерживаемые языки через AI-сервис.
Чтобы включить автоматический перевод комментариев, нужно выполнить следующие действия:
1. Создать и настроить сервис TranslateService. Для работы сервиса используются только поля Url и Ключ.
2. В Общих настройках приложения выбрать этот сервис в поле Перевод комментариев.
Для асинхронного автоматического перевода локализованных значений на все языки используется задание по таймеру AzureCognitiveTranslateJob. Джоб принимает параметры: исходный текст, язык источника и целевой язык.
Автоматический перевод комментариев Azure Cognitive
Для возврата к использованию Azure Cognitive Services предусмотрена возможность указать кастомную настройку TranslationService со значением azure.
Azure Cognitive Speech (до версии с новым TranslationService)¶
Перевод комментариев можно автоматизировать с помощью интеграции с сервисом Azure Cognitive.
Чтобы включить автоматический перевод комментариев, нужно выполнить следующие действия:
1. Создать и настроить сервис с типом Azure Cognitive.
2. В Общих настройках приложения выбрать этот сервис в поле Перевод комментариев.
Автоматический перевод комментария срабатывает, когда пользователь открывает ленту комментариев, в том случае, если выполняются условия:
-
Язык интерфейса, указанный в профиле отправителя комментария, отличается от языка интерфейса, указанного в профиле текущего пользователя,
-
В профиле пользователя на вкладке Вид в блоке Лента комментариев включен параметр Перевод комментариев в ленте.
Если для комментария уже есть перевод, то отображается переведенный комментарий, а если перевода еще нет, то комментарий добавляется в очередь на перевод. Очередь переводов обрабатывается заданием CommentsTranslationJob.
Сущности локализации¶
В системе используются следующие сущности:
Раздел:
- Название — Category
Категория, Настройки, Основные:
- Название — Subcategory
Категория, Настройки, Прочие названия интерфейса:
-
Название сущности — SubcategoryEntity
-
Текст кнопки постановки — SubcategorySendButton
-
Наименование заказчика — SubcategoryTaskOwnerName
-
Наименование исполнителя — SubcategoryTaskPerformerName
-
Название срока выполнения — SubcategorySrokName
-
Название даты начала работы — SubcategoryTaskStartName
-
Сообщение о создании задачи — SubcategoryNewTaskMessage
Категория, Настройки, БИ:
-
Имя блока — CustomBlockUsedAsEpBlockName
-
Имя таблицы в блоке (вкладка БИ) — CustomBlockUsedAsEpBlockSettingsName
Категория, Настройки, Кнопки:
-
Имя — TaskFormCustomButton
-
Описание — TaskFormCustomButtonMemo
Категория, Настройки, Блоки ДП:
-
Имя блока — ExtParamBlock
-
Имя группы блоков — ExtParamBlocksGroup
Категория, Настройки, Тех работы:
- Сообщение о технических работах — SubcatTechWorksText
Категория, ДП:
- Наименование ДП — ExtParamInSubcat
Категория, Маршрут, настройки перехода¶
-
Название кнопки — StateRouteInSubcat
-
Подсказка для кнопки — StepTooltip
-
Подсказка для заказчика — StepOwnerTooltip
-
Подсказка для исполнителя — StepUserTooltip
-
Текст подтверждения — ConfirmText
Категория, Маршрут, Подписи на переходе:
- Причина — StaticSignatureReason
Типы резолюций:
- Название — SignatureResolutionType
Мобильная политика паролей:
- Сообщение — PasswordPolicy
Общие настройки приложения:
- Лейбл в навигационной панели — NavigationPanelLogo
Статусы:
-
Название статуса — State
-
Почтовое сообщение подписчикам — StateForMails
-
Почтовое сообщение заказчику — StateForMailCustomers
-
Комментарий в задачу — StateCommentOnAttainments
-
Комментарий в родительскую — StateParentComments
Орг. структура:
- Название — OrgStructureName
Типы орг.структуры:
- Имя — OrgStructureTypeName
Общие настройки табличного вида (устаревшее, не используется):
- Имя настроек — UserTaskOnlySettingName
Пользователи:
-
Фамилия — UserLastName
-
Имя — UserFirstName
-
Отчество — UserMiddleName
Дополнительные параметры:
-
Название — ExtParam
-
Пример содержимого — ExtParamTooltip
Расширенные настройки ДП Адресаты Email и Выбор пользователей:
-
Заголовок кнопки — ExtParamdButtonTitle
-
Контекстное меню: Только этому пользователю — ExtParamdOnlyCurrentUser
-
Контекстное меню: Удалить — ExtParamdRemoveUser
-
Контекстное меню: Удалить всех — ExtParamRemoveAll
-
Контекстное меню: Информация о пользователе — ExtParamUserInfo
-
Подсказка в пустом поле ввода — ExtParamdEmptyTooltip
-
Заголовок списка выбора — ExtParamdSelectListTitle
Расширенные настройки ДП Выпадающий список и Выпадающий список с редактированием:
- Имя элемента — ExtParamOption
Расширенные настройки ДП Таблица:
-
Название секции — ExtParamTableSections
-
Название колонки — ExtParamTableSettingsName
-
Колонка Блок кнопок, Свойства кнопки, Имя — ActionButtonInListName
-
Колонка Блок кнопок, Свойства кнопки, Описание — ActionButtonInListDescription
Типы отсутствий:
- Название — AbsenceType
Статусы отсутствий:
- Название — FreeBusyStatus
Индикаторы:
- Текст ссылки — MenuItem
Подписи:
- Название подписи — Signature
Избранное:
-
Название кнопки/ссылки — UserLinksTitle
-
Имя папки — UserFavsFolderName
Порталы:
- Название виджета — PortalGridBlock
Дополнительные настройки виджета Таблица:
- Имя колонки — PortalBlockTableColumnTitle
Дополнительные настройки виджета Степпер (устаревшее, не используется):
-
Имя шага --- StepperStepName
-
Текст кнопки ---StepperActionName
Фильтры, Настройки параметров фильтра (Отчеты, Порталы):
- Название — FilterParam
Настройка МП, Контейнеры:
-
APIBlockTemplateValue
-
APIFolderTemplateValue
-
APIContainerTemplateValue
Реакции:
-
Название — EmojiReactionName
-
Описание — EmojiReactionDescription
Карточка задачи:
-
Текст задачи — Task
-
Локализованные ДП — TextExtParamValues
Глобальные настройки переходов (Устаревшее):
-
Название перехода — GlobalStepSettingsDescription
-
Почтовое сообщение подписчикам — GlobalStepSettingsForMail
-
Почтовое сообщение заказчику — GlobalStepSettingsForMailCustomer
-
Комментарий в задачу — GlobalStepSettingsCommentOnAttainment
-
Комментарий в родительскую — GlobalStepSettingsParentComment
Настраиваемые вкладки (Устаревшее):
- Имя вкладки — CustomTabName