Локализация ОСРВ QNX4 и графической оболочки Photon Николай Горбунов SWD Real-Time Systems Конференция QNX Россия сентября, Санкт-Петербург
Объекты локализации и их особенности
Отображение текста в текстовом режиме (ASCII) английский алфавит базовый кодрасширенный код N Видеоадаптер N атрибут X Y... Таблица знакогенератора Изображение 1 Изображение 256 Изображение N... 00h7FhFFh Видеопамять коды символов - ASCII национальный алфавит
Подход к локализации текстовых консолей QNX банк 0 банк 1 банк 2 банк 3 Модуль вывода Модуль ввода таблица трансляции Dev.con kbdkedit Файл раскладки (/etc/config/kbd/*) cfont stty Загрузка шрифтов Выбор шрифта Консольные шрифты (/etc/config/cfont/*) Приложение ASCII-коды скан- коды
Локализация текстовых консолей QNX Установка консольных шрифтов (/etc/config/cfont/*) Загрузка шрифтов в банки драйвера консоли утилитой cfont Выбор активного шрифта Редактирование раскладки клавиатуры (/etc/config/kbd/*) утилитой kedit Настройка подсистемы переключения раскладок
Локализация текстовых консолей QNX: определение шрифтов # Загрузить шрифт в банк и активизировать его cfont -f # Сменить активный банк [on -t ] stty font=
Локализация текстовых консолей QNX: переключение раскладок Переключение при помощи утилиты kbd: # Переключение на всех консолях kbd= Переключение сторонними средствами (RusKey)
Отображение текста в графическом режиме (Unicode) английский алфавит K 0000h007Fh00FFh Изображение 1 Изображение 256 Изображение K... 07FFh русский алфавит 0410h044Fh коды символов - UCS Изображение 1 Изображение 256 Изображение K... 0xxxxxxx код UTF-8 код UCS-2 110xxxxx 10xxxxxx Шрифт 1 Шрифт 2 (текущий) ОЗУ xxxxxxx00000xxx xxxxxxxx 1 байт2 байта
Подход к локализации графической оболочки Photon phfontPhotonPg.* fontcfg Inputvedit Приложение Photon vedit mkkbd еxport KBD= kbcvt *.kbd*.kdef input. Шрифты Настройки скан-коды UCS Выбор раскладки раскладка
Локализация Photon: настройка подсистемы шрифтов Инсталляция шрифтов - копирование (/usr/photon/font/*.*) - активизация (/usr/photon/font/fontdir) Определение альтернативных имен шрифтов (/usr/photon/font/fontmap) Подстановка масштабируемых шрифтов при несоответствии размеров (/usr/photon/font/fontmap) Подстановка национальных шрифтов при несоответствии кодов (/usr/photon/font/fontext) Дополнительные настройки (/usr/photon/font/fontopt)
Локализация Photon: настройка подсистемы ввода Декомпиляция раскладки (usr/photon/keyboard/*.kbd) утилитой kbcvt Редактирование полученного описания раскладки (usr/photon/keyboard/*.kdef) Компиляция описания раскладки (usr/photon/keyboard/*.kdef) утилитой mkkbd Редактирование файла конфигурации менеджера Input (/etc/config/trap/input. ) Задание переменной окружения KBD=
Подсистема шрифтов Photon: активизация шрифтов (fontdir) окно fontcfg активные шрифты неактивные шрифты что отображать кнопки активизации
Подсистема шрифтов Photon: альтернативные имена и подстановка масштабируемых шрифтов (fontmap) что заменять чем заменять режимы замены псевдоним реальное имя шрифта подстановка для неизвестных шрифтов
Подсистема шрифтов Photon: подстановка национальных шрифтов (fontext) текущий набор правил правила подстановки шрифт замещения тип и размер шрифта замещения размер замещаемого шрифта стиль замещаемого шрифта кнопки размещения правил кнопки управления порядком правил
Подсистема шрифтов Photon: дополнительные настройки (fontopt) индикатор расхода ОЗУ оптимизация расхода ОЗУ оптимизация отображения
Подсистема ввода Photon: задание активной раскладки Задание раскладки непосредственно менеджеру Input (наивысший приоритет): # /etc/config/trap/input. kbd keyboard -k.kbd Задание раскладки через переменную окружения KBD: # /etc/profile или /etc/config/sysinit. export KBD=
Подход к локализации псевдотерминалов Photon Консольное приложение Транслятор входного потока Транслятор выходного потока pterm *.cs ptermcs Inputphfont скан-коды UCS ASCII UCS образ символа...
Локализация псевдотерминалов Photon Установка терминальных шрифтов Настройка pterm на использование нужных терминальных шрифтов Создание трансляций входного и выходного потока утилитой ptermcs Проверка работоспособности трансляций Активизация трансляций
Локализация псевдотерминалов: создание и проверка трансляций трансляция входного потока ANSI трансляция входного потока QNX трансляция выходного потока кнопка тестирования выбор эмуляции окно тестирования окно ptermcs
Локализация псевдотерминалов: настройка pterm выбор эмуляции выбор терминального шрифта файл конфигурации кнопка ручной настройки шрифтов и трансляций
Настройка pterm: задание шрифтов и трансляций текущий файл трансляции окно выбора файла трансляции кнопка выбора файла трансляции текущий набор шрифтов
Результат!