Вот интересно про ХТ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"
Вот, пожалуй, и все, что я хотел рассказать! Учитель из меня плохой, но надеюсь все понятно .