WT. База знаний
Платформа WTПрактикаСинтаксисБаза знаний
  • База знаний
  • Guidelines
    • Код
    • Интерфейс
    • Шпаргалки и дорожные карты
  • Workflow XML Editor
    • Сочетания клавиш
    • Patterns
  • Платформа WT
    • Файлы конфигурации
      • Сервер
        • appsettings.json
        • hosting.json
      • Служба обновления
        • appsettings.json
      • Клиент Desktop
        • WorkflowForms.dll.config
      • Клиент Mobile
        • app.settings.json
      • Клиент Web
        • appsettings.json
    • Аутентификация
    • Права доступа
    • Системные переменные и параметры конфигурации
    • Временные зоны
    • Сохранение вложенных сущностей
    • Диаграммы
  • SQL
    • Пользовательские функции
      • Функции на языке запросов (SQL)
      • Функции на процедурном языке PL/pgSQL
    • Функции nextval и currval
    • Индексы
    • Настройка postgresql.conf
  • Кастомизация Клиента
    • Создание и настройка проекта
    • Классы платформы (С#)
      • TimeZoneHelper
      • DataBinding
      • XmlParser
        • Методы
          • GetAttributeValue
          • GetRequiredAttributeValue
          • GetElementDataBinding
          • GetRequiredElementDataBinding
    • Языки в кастомках
    • Шаблоны кастомок
      • MyObject
      • DataConnection
      • Condition
      • Command
  • Кастомизация Сервера
    • Создание и настройка проекта
    • Классы платформы (С#)
      • XmlParser
        • Методы
          • GetAttributeValue
          • GetRequiredAttributeValue
          • GetElementValue
          • GetRequiredElementValue
    • Шаблоны кастомок
      • Command
      • SqlQuery
Powered by GitBook
On this page
  1. Кастомизация Клиента

Языки в кастомках

В папке \Template\Projects\1. Template\Forms\Language можно найти файлы строковых ресурсов:

  • ru.wxlf - для работы форм со строковыми ресурсами на русском языке;

  • object-ru.wxlf - для работы кастомок со строковыми ресурсами на русском языке;

  • en.wxlf - для работы форм со строковыми ресурсами на английском языке;

  • object-en.wxlf - для работы кастомок со строковыми ресурсами на английском языке.

Файлы object-ru.wxlf и object-en.wxlf используются для задания строковых ресурсов для кастомных элементов (команд, объектов и т.д.).

По договоренности внутри компании: файлы ru.wxlf и en.wxlf используем для задания строковых ресурсов для форм, а файлы object-ru.wxlf и object-en.wxlf - для кастомных элементов (команд, объектов и т.д.), которые рассмотрим в одном из следующих уроков. На самом деле платформа считывает из папки Forms\Language все файлы одной локали и записывает их в один словарь. И файлов по одной локали может быть сколько угодно - отбор происходит по имени файла, оно должно оканчиваться именем локали (ru/en).

<?xml version="1.0"?>
<Wxliff xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Context>
    <Text Id="TextId">
      <Source>Текст</Source>
      <Target>Text</Target>
    </Text>
  </Context>
</Wxliff>

Чтобы получать значения из этих файлов, необходимо обращаться к методу GetLocalizedText(string) формы, который по ключу возвращает нужную строку из файла object-ru.wxlf или object-en.wxlf относительно текущей локали приложения.

Создадим вспомогательный класс, который будет хранить контекст формы для обращения к методу получения строковых ресурсов:

StringManager.cs
using WorkflowForms;

namespace Template
{
    public class StringManager
    {
        private readonly IWorkflowForm _form;

        public StringManager(IWorkflowForm form)
        {
            _form = form;
        }

        public string GetString(string id)
        {
            return _form.GetLocalizedText(id);
        }
    }
}

В методе InternalInit(XmlNode, IWorkflowForm) кастомных классов необходимо создавать экземпляр класса StringManager и сохранять в глобальную переменную:

_manager = new Template.StringManager(form);

Затем через метод GetString(string) по ключу получать нужную строку:

string str = _manager.GetString("TextId");

Last updated 1 year ago