Практически за сутки накатал раскладки для предустановленной XT9.
Мне кажется что по функциональности и удобству эта клавиатура стоит на первых местах, так что ставить что-то другое в ущерб удобству я просто не хочу.
Сейчас раскладка есть только в QWERTY/ЙЦУКЕН режимах.
Phonepad и keypad расковырять не удалось. Если кто-нибудь скажет как редактировать kdb файлы (в аттаче пример), то обязательно сделаю.
Портретный режим:
Нажмите для просмотра прикрепленного файла Нажмите для просмотра прикрепленного файлаРежим пейзажа:
Нажмите для просмотра прикрепленного файла Нажмите для просмотра прикрепленного файлаСглаживаются почему-то только латинские символы, да и б-г с ними.
Для установки скопировать содержимое архива в папку \Windows\. Очень желательно перед этим сделать бэкап заменяемых файлов.
Нажмите для просмотра прикрепленного файлаПереключение раскладки с английской на русскую производится жестом справа налево, на английскую - слева направо. Символьная раскладка сохранена полностью, включается противоположным жестом.
Раскладка переключается с тем же эффектом, что по умолчанию на символьную (клавиатура выезжает сбоку, довольно неплохо смотрится).
При копировании материала пожалуйста указывайте ссылку на тему.
Закрепил пост. NoPH8
Ты не пробовал сделать русский ввод независимым от английского, могу скинуть все файлы от xt9 из прошивки...
Я понимаю с русским, а английский куда делся. если был?
Вот интересно про ХТ9 и языки написано. Может поможет.
http://palmz.in/board/index.php?showtopic=46940Вот что там:
Руководство по установке дополнительных словарей.
В этом руководстве я попытаюсь подробно рассмотреть как устанавливать дополнительные словари (XT9) на смартфон, а также как сменить раскладку языка, установленную по умолчанию, на ту, которую хотите вы (QWERTZ для Германии, ЯВЕРТЫ для России и т.д.).
1. Добавление новых словарей XT9
1.1 В реестр
Сначала рассмотрим как словари хранятся в реестре.
1.1.1 eT9\AvailableLanguages
Посмотрите ветку HKEY_LOCAL_MACHINE\ Software\Tegic\eT9\ AvailableLanguages. Здесь содержится список поддерживаемых языков. Т.е. если поместить сюда идентификатор языка, он будет доступен в списке выбора языков (независимо от того существует для него в системе библиотека или нет).
Коды языка соответствуют утвержденным ISO кодам стран с заменой старшего байта 04 на 01.
Например, официальный код России 0419, в этом случае для обращения к этому языку необходимо создать ссылку 0119. Это касается всех языков: например код Франции 040C, соответственно ссылка будет выглядеть как 010C.
Учтите, что порядок ссылок также важен. Например, если вы хотите установить первым в списке русский язык, просто переместите 0119 (идентификатор русского языка- см. выше) в начало списка параметра реестра, это будет выглядеть примерно так:
0119,0109,0107,0110,010A,0113,0105,0108,0118,0115,0116,011B,011F,010E,011D,0114,
010B
0106
При этом в списке выбора языка русский будет на первой позиции.
Это также необходимо, если вы хотите переместить язык на другое место. Например, если английский язык стоит последним в списке и необходимо переместить его на первую строку в меню выбора языка, просто узнайте его код (0409 ), измените старший байт 04 на 01 и переместите результат 0109 в начало параметра реестра.
Заметили как просто перемещать языки в списке выбора?
Теперь загрузим в систему реальные словари.
1.1.2 eT9\IME\KdbFiles
Как несложно догадаться, файлы словарей занимают достаточно много системной памяти (от 100 до 400 кБайт), поэтому в память смартфона не желательно интегрировать много языков (тем более если вы ими никогда не пользуетесь ).
После объявления языка в eT9\AvailableLanguages (см. пункт 1.1), необходимо обеспечить его библиотекой.
Для этого скопируйте соответствующие языковые библиотеки в папку \Windows и объявите их в ключе реестра HKEY_LOCAL_MACHINE\ Software\Tegic\eT9\ IME\KdbFiles.
Параметры объявления достаточно прямолинейные: имя параметра содержит младший байт имени кода языка, а значение- имя библиотеки. Пример для русского языка (код языка в hex: 0419, соответственно младший байт: 19) выглядит так:
"0619"="ruhpd.kdb"
"0719"="eT9.HQD.Russian.kdb"
Старший байт для *hpd.kdb всегда 06 . Для eT9.HQD.*.kdb старший байт всегда 07.
2. Переопределение раскладки встроенной клавиатуры
Недостаточно просто добавить карту раскладки клавиатуры- ее необходимо зарегистрировать в реестре.
2.1 Файлы раскладки клавиатуры
Рекомендуется (но не обязательно) называть файлы раскладки следующим образом:
eT9.Excalibur.XXXX.kmap.txt
где XXXX – официальный код языка (например 0419 для русского языка). Допустимо изменять имя, например с Excalibur на Rose, HTC. Важно запомнить, что недостаточно просто правильно назвать файл, его еще необходимо зарегистрировать в реестре.
Вначале содержимое этого файла может показаться достаточно сложным, но скоро вы поймете как он устроен. Например рассмотрим часть файла конфигурации для русского языка:
CODE
{Q Я Щ ! 0x13} {1 В 1 1 0x0c} {2 Е Э 2 0x04} {3 Р 3 3 0x0f} {T Т + + 0x18} {Y Ы ( ( 0x0b} {U У Ю ) 0x02} {I И _ _ 0x17} {O О Ш - 0x10} {P П Ч " 0x0e}
Здесь мы видим 5 колонок, которые содержат записи кнопок. Первая из них просто отображает букву, напечатанную на кнопке и не нуждается в правке, она служит для удобства правки файла. Вторая более важна: она отвечает за буквы, которые отображаются при вводе с клавиатуры. Третья и четвертая колонки содержат символы отображаемые при вводе в режиме долгого нажатия кнопки и при нажатии Fn+ клавиша. Пятая колонка также не требует правки.
Запомните, вы не должны править последнее поле!!!
Рассмотрим пример. Например вам надо, чтобы по нажатии на клавишу Т отображалась буква Й:
Рассмотрим оригинальный файл- первая буква Т обозначает нарисованную на клавише букву и правки не требует. Вторая буква Т означает букву, которая отображается при нажатии на клавишу. Первый знак + отображается при долгом нажатии на клавишу, второй + отображается при нажатии клавиши Fn с клавишей Т . Запись 0x18 не требует правки- это ссылка на строку в файле библиотеки.
..
{T Т + + 0x18}
..
Посмотрим на запись Т: ее надо подкорректировать следующим образом, чтобы исправить ввод:
{T Й + + 0x18}
Как вы заметили, если необходимо чтобы при нажатии клавиши Т отображалась буква Й , вам надо просто исправить запись в строке Т. Просто не так ли?
2.2 Регистрация в реестре
Одного только добавления файлов в систему (см. пункт 2.1) недостаточно. Их также необходимо зарегистрировать в реестре.
Для этого необходимо зарегистрировать файлы в двух ветках: HKEY_LOCAL_MACHINE\Software\ Tegic\eT9\IME\ KeyboardLayouFiles и HKEY_LOCAL_MACHINE\Software\ Tegic\eT9\IME\ LanguageKeyboardIDMapping.
В ключе KeyboardLayoutFiles необходимо создать новый строковой параметр с именем 07XX, где XX – младший байт кода языка (например, 0719 для 0419 hex (русский:), со значением, содержащим имя файла раскладки (например для русской раскладки- " eT9.Rose.0419.kmap.txt ").
Далее вы должны сделать привязку языка к файлу. Для этого создайте строковой параметр с идентификатором кода языка (с учетом всех изменений ( см. пункт 1.1.1) , т.е. с заменой старшего байта с 4 на 1). Его значением должна быть строка из KeyboardLayouFiles.
В примере рассмотрено создание новых ключей для русского языка:
[HKEY_LOCAL_MACHINE\Software\Tegic\eT9\IME\KeyboardLayouDlls]
"0719"=" eT9.Rose.0419.kmap.txt"
[HKEY_LOCAL_MACHINE\Software\Tegic\eT9\IME\LanguageKeyboardIDMapping]
"0119"="0719"
Теперь второй параметр ссылается на первый!
3. Регистрация драйверов в реестре.
Для функционирования клавиатуры также необходим драйвер, который обычно называется eT9DisInput.dll. Его необходимо поместить в папку \Windows и в ключе реестра HKEY_LOCAL_MACHINE\Software\Tegic\eT9\InputModuleDlls создать на него ссылку.
[HKEY_LOCAL_MACHINE\Software\Tegic\eT9\InputModuleDlls]
"1"="eT9DisInput.dll"
4. Регистрация библиотек *.ldb.
Библиотеки с расширением *.ldb также необходимо поместить в папку \Windows. Количество включаемых библиотек должно соответствовать количеству добавляемых языков. В ключе реестра HKEY_LOCAL_MACHINE\Software\Tegic\eT9\LdbFiles необходимо создать на каждый из них строковой параметр. Для этого создайте строковой параметр с идентификатором кода языка (с учетом всех изменений ( см. пункт 1.1.1) , т.е. с заменой старшего байта с 4 на 1). Его значением должно быть имя библиотеки *.ldb.
Рассмотрим на примере создания ключа для русского языка:
[HKEY_LOCAL_MACHINE\Software\Tegic\eT9\LdbFiles]
"0119"="RUlsUN_xt9.ldb"
Вот, пожалуй, и все, что я хотел рассказать! Учитель из меня плохой, но надеюсь все понятно .
Посмотри это кабик, может сможешь сделать полноценную клавиатуру с русским и английским?!?!?
В нем есть раскладки для кучи языков, в том числе и для русского и английского, глянь, буду признателен...
Если нужна помощь, помогу чем смогу...