Модули в CyrHack II представляют собой отдельные файлы, в которые вынесены языкозависимые ресурсы - шрифты, раскладки клавиатур и сами клавиатуры, таблицы граффити, сортировок и так далее. Файл должен обязательно иметь CreatorID = 'Cyr2' и тип 'plug'. Имя модуля по возможности должно быть дескриптивным (например, "Ukrainian (KOI8)"). Все ресурсы являются факультативными. Если какого-то ресурса нет, то вместо него будет использоваться системный. Таким образом, вполне реально создать модуль, который будет подменять, например, только системный шрифт, и занимать при этом всего два-три килобайта. Тип ID Комментарий -------------------------------------------------------------------------------- ШРИФТЫ Шрифты - стандартные, в формате NFNT. Нарисовать или отредактировать их можно с помощью программ типа FED или FontEdit. Последние версии PilRC также имеют ограниченную поддержку шрифтовых ресурсов. ЭКРАННАЯ КЛАВИАТУРА Стандартный tkbd ресурс. Для изготовления или правки рекомендую воспользоваться пакетом Y-TKBD Владимира Медейко. ТАБЛИЦЫ СОРТИРОВКИ 'sort' и 'case' Представляют из себя массивы по 256 байт, где в позиции, соответствующей коду символа, располагается его вес. Подробней о таблицах можно почитать в SDK. ТАБЛИЦА 'case' Массив из 256 двухбайтовых значений. Каждое битовое поле значения соответствует тому или иному признаку символа. Подробней см. все в том же SDK. ТАБЛИЦА ПОДСТАНОВКИ ГРАФФИТИ Массив из 128 символов. Первые 64 символа - коды, подставляемые вместо вводимых кодов в диапазоне 0x41-0x7f. Следующие 64 - коды, подставляемые вместо комбинаций "символ" + акцент. ТАБЛИЦА ПОДСТАНОВКИ ДЛЯ ВНЕШНЕЙ КЛАВИАТУРЫ Еще более простая вещь. 128 символов, которые подставляются вместо порождаемых клавиатурой кодов в диапазоне 0x00-0x7f. КАК СОБРАТЬ МОДУЛЬ В ДОМАШНИХ УСЛОВИЯХ Лучше и проще всего попросить сделать это приятеля, не пугающегося шестнадцатиричных кодов и ломавшего в детстве программы для ZX Spectrum. Для простоты предположим, что требуемые ресурсы мы изготовили или выдрали из других файлов. Совсем хорошо, если делается это в unix-подобной ОС (я собираю под Linux), но ничто не мешает сделать то же под Windows или - со временем - написать могучий редактор с пищалками и мигалками. Для сборки модуля изготовим файл с описанием ресурсов (назовем его Russian-1251.rcp): DATA "font" ID 1000 "Res/nfnt2328.bin" ## Makefile for CyrHack module TARGET = Russian-1251 BUILDPRC = build-prc all: $(TARGET).prc $(TARGET).prc: bin.res bin.res: $(TARGET).rcp clean: install: http://www.palmq.ru URL этой статьи: http://www.palmq.ru/sections.php?op=viewarticle&artid=38 |