В SCO поддерживается перевод интерфейса на разные языки. Отдельно можно установить язык для кассира и для покупателя. Покупатель может выбрать один из нескольких доступных языков в окне приветствия.
Также доступна возможность менять текст любого сообщения, которое выводится на экран, для любого языка.
В логах все сообщения пишутся только на русском независимо от того, какой язык выбран.
Текстовые сообщения в программе хранятся в виде id - идентификатора в виде строки, состоящей из латинских символов и цифр. При отображении на экране или записи в лог id заменяется на текст из файлов перевода, которые находятся в каталоге /opt/sst-sco/i18n
.
Языковые настройки
Наименование | Возможные значения | Описание |
---|---|---|
Файл /opt/sst-sco/conf/i18n.ini , секция [I18n] , настройки локализации | ||
cashierLang | код языка
| Язык интерфейса кассира |
customerLangs | список кодов языка разделенных запятой
по умолчанию ru, en | Языки, доступные для покупателя. Порядок языков соответствует порядку кнопок на форме, первый – это язык по умолчанию |
keyboardLayouts | список значений разделенных запятой
по умолчанию ru, en | Доступные раскладки клавиатуры:
|
upperCaseLayouts | список значений разделенных запятой
по умолчанию не задано | Раскладки клавиатуры в верхнем регистре, без кнопки shift |
emailLayout | раскладка клавиатуры
по умолчанию en | Раскладка клавиатуры, используемая для ввода email. Необходимо обеспечить возможность переключения в раскладку en с вводом символов в нижнем регистре |
После скрытия клавиатуры происходит переключение в раскладку со значением по умолчанию.
Настройка языковых кнопок
Для кнопок на экране приветствия можно задать отображение флага страны. Секции добавляются вручную.
Наименование | Возможные значения | Описание |
---|---|---|
Файл /opt/sst-sco/conf/check.ini , секция [Check.WelcomeForm.language.<код языка>] , настройка кнопки языка | ||
icon |
| Иконка, название из темы оформления или путь до файла |
iconSize | <ширина>x<высота> | Размер изображения. Не изменяет соотношение сторон. |
[Check.WelcomeForm.language.ru] icon = icon.langRu iconSize = 32x32 [Check.WelcomeForm.language.en] icon = /opt/sst-sco/themes/default/icons/en.png iconSize = 32x32
Изменение текста отображаемых в интерфейсе сообщений
Для того чтобы изменить текст некоторого сообщения, надо найти его id в одном из файлов в каталоге /opt/sst-sco/i18n
. Далее в файле /opt/sst-sco/conf/i18n.ini
устанавливается новый текст.
Например, для изменения текста "Положите товар в пакет" из ошибки контроля веса, надо:
- Найти этот текст в файле
/opt/sst-sco/i18n/ru.msg
. id в данном случаеwceNotAddedHint
. Добавить настройку в файле
/opt/sst-sco/conf/i18n.ini
вида:[I18n.ru] wceNotAddedHint = Отсканированный товар надо положить в пакет
Точно также меняются сообщения для других языков, при этом код языка в секции заменяется на соответствующий:
Пример замены для en[I18n.en] wceNotAddedHint = Put scanned item in the bag
В сообщениях можно использовать \n для переноса текста на следующую строку.
В некоторых сообщениях есть подстановки вида %1, это может быть другой вложенный текст. Рекомендуется при изменении текста оставлять эти подстановки, иначе сообщение может потерять смысл. Подстановок в одном сообщении может быть несколько.
Если сообщение размещается в текстовом поле, то можно также применять HTML оформление.
[I18n.ru] wceHeftHint = 'Положите товар в пакет<br><span style="font-size:22px; color: red; font-weight: bold;">%1</span>'
Нельзя менять содержимое файлов в каталоге /opt/sst-sco/i18n
Добавление нового языка
Для добавления нового языка нужно в каталоге /opt/
sst-sco/i18n
создать файл с кодом языка и расширением .msg. В этом файле необходимо перевести все сообщения которые есть в ru.msg
. langName
в .msg файлах это название языка для отображения покупателю в окне приветствия.
Код языка из названия файла используется в настройках customerLangs
и cashierLang
. Например, для языка с кодом fr создается файл fr.msg.
Перевод сообщений элементов чека
Можно добавить перевод сообщений для атрибутов чека. В качестве id сообщения устанавливается checkItem<Тип элемента чека><атрибут>,
также можно указать checkItem<атрибут>
, если атрибут задается только одному типу элемента чека. В текст переводимого сообщения дополнительно указывается подстановка %1
.
Если значение атрибута не получено, переводимый текст для него не будет отображаться.
По умолчанию в строках чека текст предустановлен для карт, купонов, скидок и оплат, при их изменении необходимо настроить отображение элемента во всех режимах.
Пример установки переводимых сообщений для карты:
[I18n.ru] checkItemBalance = Баланс: %1 checkItemCardName = Карта %1 [I18n.en] checkItemBalance = Balance: %1 checkItemCardName = Card %1
Настройка режимов карты для корректного отображения перевода текста:
[Check.Forming.Card] line1 = %(name, s) line2 = %(balance, d) [Check.Edit.Card] line1 = %(name, s) line2 = %(balance, d) [Check.FaceMatchedVerify.Card] line1 = %(name, s) line2 = %(balance, d) [Check.NotFoundVerify.Card] line1 = %(name, s) line2 = %(balance, d) [WeightControl.ErrorDetail.Card] line1 = %(name, s) [Check.ReturnSelect.Card] line1 = %(name, s) [Check.ReturnPayment.Card] line1 = %(name, s) [Check.DiscInfo.Card] line1 = %(name, s)