Перейти к содержанию

Локализация

Локализация в программе состоит из двух частей:

  • интерфейс — файлы *.localization (строки меню, кнопок, сообщений);
  • печатные формы — файлы *.tcr, *.tcrp и шаблоны чека *.rt с кодом языка в имени.

Язык выбирается для каждого пользователя отдельно: в карточке пользователя задаются «Язык интерфейса» и «Язык печати». Они могут отличаться. После смены языка у текущего пользователя программа попросит перезайти.

Если у пользователя язык не задан, берётся язык Windows; если подходящего пакета нет — русский (IsDefault="true").

Готовые языки

В поставке уже есть пакеты платформы (папка Localization рядом с программой) и конфигурации (Config\Localization):

Язык Код культуры
Русский ru-Ru
Українська uk-UA
English en
Беларуская be-BY

Отдельно поставляются пакеты kk-KZ (қазақша) и ru-KZ (казахстанский русский) — в основном для сумм прописью (NumberToWords), а не для полного перевода интерфейса.

Часть модулей уже содержит украинские печатные формы, например ТоварныйЧек.uk-UA.tcr, Счет.uk-UA.tcr, ЦенникЭтикетка….uk-UA.tcr.

Где лежат файлы

  • Платформа — Localization\common.*.localization рядом с исполняемыми файлами (кнопки, общие диалоги, служебные строки).
  • Конфигурация — Config\Localization\*.localization (меню «Торгового места», названия документов и отчётов).
  • Модули — Modules\<имя>\Localization\*.localization и локализованные макеты в папке модуля.

При запуске программа сначала загружает пакеты из Localization у exe, затем дополняет их файлами из рабочих каталогов конфигурации и модулей. Строки с одинаковым Id из конфигурации добавляются к уже загруженному языку.

Как перевести интерфейс

  1. Возьмите за образец common.russian.localization и Config\Localization\russian.localization.
  2. Скопируйте файлы под новый язык. В корне XML задайте Culture (код языка) и Name (название в списке у пользователя). Для русского в образце стоит IsDefault="true" — у нового языка этот признак не ставьте.
  3. Переводите значения в атрибутах Value="…". Идентификаторы Id не меняйте: по ним программа ищет строки. В формах и коде строки ссылаются на них как #Menu/Dictionaries/Common/Goods.
  4. Файлы — обычный XML в UTF-8. Их можно править в Блокноте или Notepad++. Схема: localization.xsd.
  5. Положите платформенный файл в Localization рядом с программой, конфигурационный — в Config\Localization. Перезапустите программу и выберите новый язык в карточке пользователя.

В пакете можно описать блок NumberToWords — таблицы для сумм прописью на этом языке (как в common.russian.localization и common.kazakh.localization).

Как локализовать печатные формы

Чтобы для языка печати подставился свой макет, добавьте код культуры перед расширением:

  • НакладнаяРасход.uk-UA.tcr — украинская накладная;
  • ТоварныйЧек.uk-UA.tcr — украинский товарный чек;
  • Receipt.uk-UA.rt — украинский шаблон фискального/ленточного чека.

Для русского (или если форма одна на все языки) суффикс не нужен: достаточно НакладнаяРасход.tcr. Если файла с кодом языка нет, используется обычный макет без суффикса.

Редактировать макеты удобнее редактором шаблонов CellReport. Меняйте текст в поле «Текст», который не в квадратных скобках и без префикса @ — это подставляемые поля данных, их переводить не нужно.

Язык печати берётся из «Язык печати» пользователя. Язык интерфейса на выбор .tcr / .rt не влияет.

Чего не стоит делать

В *.form тоже встречаются русские подписи, но для локализации их править не нужно: в типовой конфигурации подписи задаются через #… и берутся из *.localization. Правка .form ради перевода легко ломает форму. Не трогайте и файлы .object, .domain и исходники сервисов — для перевода интерфейса они не предназначены.