Локализация¶
На вкладке “Локализация” приложения TessaAdmin можно редактировать библиотеки локализации. Каждая библиотека содержит список локализуемых строк.
Каждая локализованная строка имеет глобальный в рамках системы алиас (поле Name), комментарий, который помогает понять контекст использования данной строки и несколько локализованных значений.

Подробно редактирование библиотек локализации описано в руководстве администратора.
В данном руководстве описано использование строк локализации для настройки системы и расширений.
Каждая стока локализации имеет алиас(имя). Система идентифицирует строки глобально по этому алиасу. Строка с одним и тем же алиасом может содержаться в нескольких библиотеках, в этом случае будет использовано локализованное значение из библиотеки с более высоким приоритетом.
Терминология
-
Когда мы говорим про использование
$Nameили просто алиаса локализованной строки, это значит, что в данном месте можно указать$Nameи система автоматически отобразит локализованное значение. -
Когда мы говорим про использование форматной строки или плейсхолдеров
{$Name}, имеется в виду что в данном месте можно указать строчку видаText {$Name1} more text {$Name2}, где при отображении система автоматически заменит в форматной строке алиасы локализованных строк на их значения и отобразит результат.
Далее описаны все места, где можно использовать строки локализации.
Вывод локализованных значений в строках представления для колонки
В настройках колонки необходимо выставить флаг Localizable: true. Для этой колонки запрос может возвращать значения в формате строки локализации $Name или плейсхолдера {$Name} для форматной строки.
Получение значения локализованной строки из SQL
-
Функция GetString(@name, @culture) - Получает на вход алиас строки (без
$) и культуру, возвращает локализованную строку или $name, если локализация не нашлась -
Функция Localization(@name, @culture) - Локализует строку
@name, заданную как$Name, для культуры с кодом@culture, и возвращает таблицу с единственной колонкойValueи единственной строкой.Если соответствующей строки локализации нет, то возвращает исходную строку @name.
Если строка не начинается с
$, то возвращает исходную строку@name.Строка возвращается всегда, поэтому использовать можно через
cross apply dbo.Localization(t.Name, @culture) -
Функция Localize(@name, @culture) - Локализует строку
@name, заданную как$Name, для культуры с кодом@culture.Если соответствующей строки нет, то возвращает исходную строку @name.
Если строка не начинается с $, то возвращает исходную строку @name.
Для доступа к идентификатору клиентской локали из кода представлений используется автоматически определяемый системой параметр Locale. Использовать как обычный параметр #param(Locale...).
Important
Везде где возможно, рекомендуется использовать автоматическую локализацию значений строк представления с включенным флагом Localizable: true в редакторе метаданных колонки.
Рабочие места
$Nameможно подставить в имя рабочего места, имя папки, заголовок узла с представлением, заголовок подмножества
Формы карточек и заданий
-
Заголовок типа карточки:
$Name -
Заголовок вкладки, блока, контрола, колонки таблицы:
$Name -
Поле “Сообщение об ошибке” валидаторов not null:
$Nameили плейсхолдеры{$Name} -
Колонка.Формат строки можно использовать плейсхолдеры
{$Name}и{0},{1}.... Плейсхолдерами могут быть номера связанных полей и алиасы строк локализации. При этом значения полей связанных строк (в форматной строки они обозначаются через порядковые номера {0}, {1}, …) также могут быть как вида$Name, так и форматной строкой с плейсхолдерами{$Name} -
Текст.Формат поля: аналогично “Колонка.Формат строки”
-
Элемент управления.Всплывающая подсказка: можно плейсхолдеры
{$Name}, можно строку локализации$Name, можно без локализации, причём переводы строк можно задать как\n -
Автокомплит(ссылка).Формат поля - может использовать плейсхолдеры строк локализации
{$Name}и номера связанных полей карточки{0} -
Метка.Текст -
$Nameили плейсхолдеры{$Name} -
В колонке выпадающего списка автомкомплита(ссылка) (при наборе текста или использовании выпадающего списка) может быть строка в формате
$Name. Система автоматически подставит значение вместо алиаса.Warning
Это произойдет только для отображения!!! После выбора значения в карточку запишется алиас!!!
-
В полях карточки, на которые ссылается автокомплит(ссылка) может быть строка в формате
$Name. При формировании текста, который должен отобразиться в контроле, система заменит их на значения. -
В ячейках таблицы на форме карточки можно использовать
$Nameили плейсхолдеры{$Name}- для отображения они будут заменены на значения.
Из xaml
- Расширение разметки
{Localize ResourceKey}
Из кода
-
Получаем локаль через
LocalizationManager.CurrentUICultureилиISession.ClientUICulture -
Получаем локализованную строку без доллара
LocalizationManager.GetString("Name") -
Получаем локализованную строку с долларом
LocalizationManager.Localize("$Name") -
Форматируем строку с плейсхолдерами
LocalizationManager.Format(" ... {$Name} ... ")
Настройки типового решения
- В поле Название карточки типа документа можно использовать
$LocalizedString.