Заметки из Зазеркалья

16.10.2026

Развитие механизмов локализации

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Планируется в версии 8.5.6

Мы продолжаем развивать механизмы локализации прикладных решений.

Сейчас локализация приложений в основном сводится к прописыванию строк на требуемых языках в функции НСтр(<ИсходнаяСтрока>, <КодЯзыка>) в модулях, а также в локализуемых свойствах объектов метаданных:

img-01.png

В функции НСтр() параметр ИсходнаяСтрока – это строки на разных языках, разделенные символом ";" (точка с запятой). Т.е. локализованные строки хранятся в программных модулях.

Этот подход может повлечь определенные неудобства. Добавление локализации на новый язык приводит к необходимости изменения модулей и снятию модулей с поддержки, что может усложнить процессы разработки и сопровождения конфигураций.

Чтобы избежать подобных проблем мы расширили механизм локализации новыми возможностями. Цели, которых мы хотели достичь:

  • Отделить процесс разработки и сопровождения от локализации.

  • Минимизировать требования к разработке для возможности последующей локализации.

  • Локализация не должна изменять исходный код модулей и объекты конфигурации.

Для достижения этих целей мы сделали ряд изменений и доработок.

Функция ИСтр()

Во встроенный язык добавлена функция ИСтр(<ИсходнаяСтрока>, <КодЯзыка>, <ДополнительныйКлюч>). Параметры:

  • ИсходнаяСтрока - простая строка с текстом на основном языке конфигурации. Используется для поиска перевода в словаре.

  • КодЯзыка – код языка, на котором нужно получить строку.

  • ДополнительныйКлюч (необязательный) – используется для уточнения контекста поиска в словаре.

Функция возвращает строку на требуемом языке.

Функция ИСтр также добавлена в язык выражений СКД.

При разработке рекомендуется использовать функцию ИСтр() вместо функции НСтр().

Свойство Язык.Словарь

Объекту Язык добавлено свойство Словарь. Словарь – это хранилище переводов исходных строк на язык локализации. Таким образом, локализованные строки вынесены из программных модулей в отдельные объекты, по одному словарю на каждый язык локализации.

img-02.png

Словарь можно представить как Соответствие (Map), в котором хранятся пары Ключ-Перевод.

Ключ – это уникальная строка-идентификатор, однозначно идентифицирующая переведенную строку в словаре. Символически можно представить ключ так:

Ключ = ИсходнаяСтрока [+ Контекст + [ДополнительныйКлюч]]

  • ИсходнаяСтрока – текст на основном языке конфигурации.

  • Контекст – путь к локализуемому свойству (например: Справочник.Контрагенты.Синоним).

  • Дополнительный ключ - произвольный суррогатный ключ для разрешения коллизий перевода синонимов.

В локализуемых свойствах объектов метаданных словарь можно пополнять в ручном режиме:
img-03.png
Словарь также можно автоматически обновить из конфигурации, выгрузить в файл и загрузить из файла. Есть операция свёртки (оптимизации) словаря.
img-04.png

Файл словаря – это XML определенного формата, который можно редактировать внешними инструментами.

Для возможности автоматизации сборки поддерживается пакетный режим работы со словарем.

В конфигураторе в главном меню Правка / Редактирование текстов интерфейса доступно редактирование текстов локализации на всех языках конфигурации.
img-05.png

Свойство Конфигурация.РежимТекстовИнтерфейсаНаРазныхЯзыках

Объекту Конфигурация добавлено свойство «Режим текстов интерфейса на разных языках».
img-06.png

Принимаемые значения:

  • В словаре (используется по умолчанию для новых конфигураций). Редакторы локализованных строк позволяют изменять текст на языке конфигурации в конфигурации объекта и переводы на другие языки в словарях.
img-07.png
  • В строках. Как и ранее, имеется возможность ввода текста на языках непосредственно в редакторе локализованных строк объектов метаданных, переводы сохраняются в конфигурации объекта.
img-08.png
При изменении этого свойства конфигуратор предложит автоматически произвести соответствующие операции:
img-09.png

Расширения

Появится возможность создания новых языков в расширениях, что позволит локализовывать существующие конфигурации на новые языки с помощью расширений, не затрагивая основную конфигурацию.

 

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

Теги: 8.5.6 

Рассказать друзьям: