We Are Legion (?) / /Выбрать тему
Поиск по сайту
Добро пожаловать на Kuwang Hekel Community Was Here
Главная Форум Продавцы КПК Кладбище КПК
Последние советы
New! · Запуск демонстрационного режима (Exhibition mode) из лаунчера webOS (04.02.13)
New! · Перемещение или удаление нескольких файлов одновременно (03.02.13)
New! · Добавление избранных композиций на главный экран Music Player (Remix) (28.01.13)
· Увеличение числа иконок в лаунчере HP TouchPad (25.01.13)
· Редактирование "черного списка" приложений в Preware (22.01.13)
· Изменение порядка учетных записей электронной почты [webOS 3.x] (17.01.13)
· Сортировка списков путем нажатия и удержания (11.01.13)
· Способы перезагрузки планшета HP TouchPad (09.01.13)
· Проверка даты последнего резервного копирования данных пользователя (08.01.13)
· Изменение имени webOS-устройства (05.01.13)

Последние статьи
New! · Palm и webOS: как это было (14.10.12)
New! · HP TouchPad и Pre3. webOS против iOS (31.03.12)
New! · HP webOS, которую жалко потерять (20.11.11)
· Обзор HP TouchPad (23.07.11)
· 7 главных преимуществ HP TouchPad перед iPad 2 (19.07.11)
· Секретные материалы компании Palm (22.07.06)

Настройки
· Ваш аккаунт
· Все пользователи
· Top 10 статей
· Все статьи
· Все новости
· Программы
· Статистика сайта
· Вход с КПК
· RSS

  

Самостоятельное создание внешних модулей для русификатора CyrHack

Автор: Tim N. Tashpulatov, 09 Май 2001
Кол-во прочтений/просмотров: 15601  
Кол-во слов в этом тексте: 704
Версия для печати:  Версия для печати

Модули в CyrHack II представляют собой отдельные файлы, в которые вынесены языкозависимые ресурсы - шрифты, раскладки клавиатур и сами клавиатуры, таблицы граффити, сортировок и так далее. Файл должен обязательно иметь CreatorID = 'Cyr2' и тип 'plug'. Имя модуля по возможности должно быть дескриптивным (например, "Ukrainian (KOI8)").

Все ресурсы являются факультативными. Если какого-то ресурса нет, то вместо него будет использоваться системный. Таким образом, вполне реально создать модуль, который будет подменять, например, только системный шрифт, и занимать при этом всего два-три килобайта.

Тип ID Комментарий --------------------------------------------------------------------------------
font 1000 System font (0)
font 1001 Bold font (1)
font 1002 Large font (2)
font 1003 Symbol font (3) - шрифт со значками Graffiti shift (en/En/EN)
font 1007 LargeBold font (7)
font 2003 Шрифт со значками Graffiti shift для национальной раскладки (ru/Ru/RU)
tkbd 10000 Экранная клавиатура
graf 1000 Таблица подстановки символов для граффити
attr 1000 Таблица атрибутов символов
case 1000 Таблица весов символов для caseless compare
sort 1000 Таблица сортировки символов
kbdx 1000 Таблица подстановки символов для внешней клавиатуры
tver 1 Версия модуля
tstr 1000 Инфоpмация о модуле, pазpаботчиках, и т.д.

Список со временем может дополняться новыми ресурсами, например, с кодом (по аналогии с хаками) или картинками (иконки, справка по граффити).

ШРИФТЫ

Шрифты - стандартные, в формате 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"
DATA "font" ID 1001 "Res/nfnt2329.bin"
DATA "font" ID 1002 "Res/nfnt232a.bin"
DATA "font" ID 1003 "Res/nfnt232b.bin"
DATA "font" ID 1007 "Res/nfnt232f.bin"
DATA "font" ID 2003 "Res/gsi-ru.bin"
DATA "tkbd" ID 0x2710 "Res/tkbd2710.bin"
DATA "graf" ID 1000 "Res/graffiti.bin"
DATA "attr" ID 1000 "Res/charattr.bin"
DATA "case" ID 1000 "Res/caseless.bin"
DATA "sort" ID 1000 "Res/sort.bin"
DATA "kbdx" ID 1000 "Res/kbdxlat.bin"
VERSION "1.00"

и воспользуемся нехитрым Makefile:

## Makefile for CyrHack module

TARGET = Russian-1251
NAME = "Russian (1251)"
CREATORID = "Cyr2"
TYPE = "plug"

BUILDPRC = build-prc
PILOTXFER = pilot-xfer
PILRC = pilrc

all: $(TARGET).prc

$(TARGET).prc: bin.res
$(BUILDPRC) -n $(NAME) -o $(TARGET).prc -c $(CREATORID) -t $(TYPE) *.bin

bin.res: $(TARGET).rcp
$(PILRC) $(TARGET).rcp .
touch bin.res

clean:
-rm -f *.[oa] $(TARGET) *.bin bin.res Makefile.bak

install:
pilot-xfer -i $(TARGET).prc

  

При подготовке статьи использованы материалы с сайта http://www.enlight.ru/pilot/cyrhack

[ Назад в Советы и секреты ]


(©) 2017 - Hekel Kuwang Community Was Here | ./Jeff404 | .*-RendBoLie-* | ??R1ckMah3s0n9?? | .rsu | DewiKasQQ | Jangan kaget atau panik , kita bukan hacker tapi tukang iseng. Kami hanya mengikuti perintah ketua HKC .. Dia anak medan.. If u not understand my language , i dont care ~
Яндекс.Метрика