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