Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Планируется в версии 8.5.6
Мы продолжаем развивать механизмы локализации прикладных решений.
Сейчас локализация приложений в основном сводится к прописыванию строк на требуемых языках в функции НСтр(<ИсходнаяСтрока>, <КодЯзыка>) в модулях, а также в локализуемых свойствах объектов метаданных:

В функции НСтр() параметр ИсходнаяСтрока – это строки на разных языках, разделенные символом ";" (точка с запятой). Т.е. локализованные строки хранятся в программных модулях.
Этот подход может повлечь определенные неудобства. Добавление локализации на новый язык приводит к необходимости изменения модулей и снятию модулей с поддержки, что может усложнить процессы разработки и сопровождения конфигураций.
Чтобы избежать подобных проблем мы расширили механизм локализации новыми возможностями. Цели, которых мы хотели достичь:
Отделить процесс разработки и сопровождения от локализации.
Минимизировать требования к разработке для возможности последующей локализации.
Локализация не должна изменять исходный код модулей и объекты конфигурации.
Для достижения этих целей мы сделали ряд изменений и доработок.
Во встроенный язык добавлена функция ИСтр(<ИсходнаяСтрока>, <КодЯзыка>, <ДополнительныйКлюч>). Параметры:
ИсходнаяСтрока - простая строка с текстом на основном языке конфигурации. Используется для поиска перевода в словаре.
КодЯзыка – код языка, на котором нужно получить строку.
ДополнительныйКлюч (необязательный) – используется для уточнения контекста поиска в словаре.
Функция возвращает строку на требуемом языке.
Функция ИСтр также добавлена в язык выражений СКД.
При разработке рекомендуется использовать функцию ИСтр() вместо функции НСтр().
Объекту Язык добавлено свойство Словарь. Словарь – это хранилище переводов исходных строк на язык локализации. Таким образом, локализованные строки вынесены из программных модулей в отдельные объекты, по одному словарю на каждый язык локализации.

Ключ – это уникальная строка-идентификатор, однозначно идентифицирующая переведенную строку в словаре. Символически можно представить ключ так:
Ключ = ИсходнаяСтрока [+ Контекст + [ДополнительныйКлюч]]
ИсходнаяСтрока – текст на основном языке конфигурации.
Контекст – путь к локализуемому свойству (например: Справочник.Контрагенты.Синоним).
Дополнительный ключ - произвольный суррогатный ключ для разрешения коллизий перевода синонимов.
В локализуемых свойствах объектов метаданных словарь можно пополнять в ручном режиме:


Файл словаря – это XML определенного формата, который можно редактировать внешними инструментами.
Для возможности автоматизации сборки поддерживается пакетный режим работы со словарем.
В конфигураторе в главном меню Правка / Редактирование текстов интерфейса доступно редактирование текстов локализации на всех языках конфигурации.

Принимаемые значения:
При изменении этого свойства конфигуратор предложит автоматически произвести соответствующие операции:

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