Реклама показывается только незарегистрированным пользователям. Вход или Регистрация

Добавление русской клавиатуры на HP TouchPad

Вопросы и ответы по webOS и устройствам, работающим на ней (FAQ). Инструкции и руководства.

Добавление русской клавиатуры на HP TouchPad

Сообщение Архивариус » 28 авг 2011, 22:42

Этот совет только для устройств на webOS 3.0 и выше

Метод добавления русской экранной клавиатуры (а также клавиатуры для других неподдерживаемых языков) на HP TouchPad разработан и опубликован уважаемым Compvir, за что ему огромное спасибо (не забываем тут нажимать иконку "поблагодарить") от всего русскоязычного и не только сообщества пользователей HP TouchPad и низкий земной поклон. Все возникающие вопросы можно задать здесь.

От автора: Используемый скрипт для генерации произвольной раскладки не содержит никаких нарушений авторских прав и т.д.

Руководство по использованию:

  1. Переведите планшет в "режим разработчика" (Developer mode). В поле поиска "Just type" наберите webos20090606. Появится небольшая иконка для включения режима разработчика. Коснитесь её и включите этот режим. Появится запрос на ввод пароля, НЕ ВВОДИТЕ НИЧЕГО, ОСТАВЬТЕ ПОЛЕ ДЛЯ ПАРОЛЯ ПУСТЫМ!! ИНАЧЕ ПОТРЕБУЕТСЯ ПЕРЕПРОШИВАТЬ АППАРАТ С ПОМОЩЬЮ WEBOS DOCTOR. Ещё раз, ничего не пишите в поле для пароля, оставьте его пустым! Нажмите Submit.
  2. Скачайте архив keypatch.zip;
  3. Скачайте и установите на компьютер среду разработки webOS 3.0 SDK (под Windows, Linux или MacOS);
  4. Для Windows скачайте приложение novaterm (32-битная версия)
    novaterm.zip
    (38.24 КБ) Скачиваний: 937

    или novaterm64 (64-битная версия)
    novaterm64.zip
    (68.01 КБ) Скачиваний: 814

    и распакуйте содержимое архива в папку bin SDK, по умолчанию С:\Program Files\HP webOS\SDK\bin;
  5. Распакуйте на жесткий диск содержимое архива keypatch.zip. На жестком диске появится папка с файлами "keypatch";
  6. Подключите HP TouchPad к компьютеру в режиме USB-накопителя;
  7. Перенести папку keypatch в корневую папку USB-накопителя;
  8. Отключите USB-накопитель от компьютера;
  9. Подключите планшет к компьютеру, не переходя в режим USB-накопителя;
    • В Windows перейдите в директорию, в которую вы ранее установили webOS SDK, откройте подпапку bin и запустите приложение novaterm;
    • В Mac или Linux откройте терминал, наберите cd /opt/nova/bin, затем наберите ./novaterm (если novaterm отсутствует, найдите файл novacom (whereis novacom) и запустите novacom $* -t open tty://0)
    • На Mac, если ./novaterm выдает failed to connect to server, сделайте следующее:
      sudo chmod 644 /Library/LaunchDaemons/com.palm.novacomd
      sudo launchctl load -w /Library/LaunchDaemons/com.palm.novacomd
      ./novaterm
  10. Подключитесь к планшету в режиме терминала, кликнув по кнопке "Connect";
  11. Наберите в командной строке cd /media/internal/keypatch ;
  12. Используя команды описанные чуть ниже установите нужную клавиатуру;
  13. После этого запустите приложение Regional Settings и добавьте клавиатуру любой страны с раскладкой AZERTY. Это и будет русская клавиатура. Если нужна английская раскладка QWERTY, то её тоже нужно добавить. Переключение языка осуществляется клавишей En, которая находится слева от пробела.

Инструкция по использованию скрипта для пункта 13.

В базовую комплектацию скрипта входит файл с шаблоном для русской раскладки, т.ч. можно сразу запустить
Код: Выделить всё
sh patch.sh patch rus.json

если вас устраивает такая раскладка.

Другие возможные команды
  1. Код: Выделить всё
    sh patch.sh version
    - Проверяет установленную версию и сообщает о возможности установки патча.
  2. sh patch.sh generate - Генерирует файлы <версия>.data и <версия>.template.json. Первый просто хранит информацию необходимую для патча. Второй содержит полный шаблон раскладок для редактирования.
  3. Код: Выделить всё
    sh patch.sh check
    - Проводит самодиагностику скрипта. А именно:
    1. Проверяет версию файла или его резервной копии
    2. Читает информацию из файла, если она отсутствует
    3. Генерирует шаблон, если отсутствует
    4. Парсит шаблон (ВНИМАНИЕ эта опреация может занимать от 5 до 10 минут при полном шаблоне)
    5. Копирует файл во временный и вносит в него изменения.
    6. Проверяет соответствует ли пропатченный файл исходному и сообщает о результатах
  4. Код: Выделить всё
    sh patch.sh check <файл с раскладкой>

    1. Проверяет версию файла или его резервной копии
    2. Читает информацию из файла, если она отсутствует
    3. Парсит шаблон (ВНИМАНИЕ эта опреация может занимать от 5 до 10 минут при полном шаблоне)
    4. Копирует файл во временный и вносит в него изменения.
    5. Проверяет соответствует ли РАЗМЕР пропатченного файла исходному.
    6. Сообщает местоположение пропатченного файла
  5. Код: Выделить всё
    sh patch.sh patch <файл с раскладкой>

    Делает тоже что и check с файлом раскладки, только ещё и переписывает его на место оригинального предварительно делая резервную копию, если нужно.
  6. Код: Выделить всё
    sh patch.sh revert

    Откатывает изменения из резервной копии.

Инструкция по редактированию шаблона.
Если вас не устраивает русская раскладка или вы хотите другую раскладку то необходимо сначала подготовить шаблон. Для этого сначала нужно сгенерировать полный шаблон из оригинального файла
Код: Выделить всё
sh patch.sh generate

Затем скопировав его на компьютер открыть его в любом редакторе, позволяющем читать и сохранять текстовые файлы в формате UTF-8 без BOM (Byte Order Mark), например Notepad++.
Изменить необходимым образом, сохранив с новым названием, записать его обратно в папку со скриптом и запустить
Код: Выделить всё
sh patch.sh patch <имя файла>


ВНИМАНИЕ: Не используйте шаблон русской раскладки как основу для редактирования, только тот, который генерируется скриптом. В русском шаблоне отсутствуют неизменённые элементы для ускорения его разбора скриптом. Используйте его только как наглядный пример во что может превратится исходный шаблон.

Шаблон представляет собой обыкновенный JSON файл.
Вот простой пример на котором мы рассмотрим его формат
Код: Выделить всё
{
    "layouts": {
        "QWERTY": {
            "0": {
                "0": {
                    "WIDTH": "none",
                    "CLASS": "invisible",
                    "MAIN": {"TYPE": "C", "CHAR": "Q"},
                    "SEC": {"TYPE": "C", "CHAR": "["},
                    "EXT": ""
                },
                "1": {
                    "WIDTH": "normal",
                    "CLASS": "normal",
                    "MAIN": {"TYPE": "C", "CHAR": "1"},
                    "SEC": {"TYPE": "C", "CHAR": "!"},
                    "EXT": "SET0"
                }
            }
        }
    },
    "sets": {
        "SET0": {
            "0": {"TYPE": "C", "CHAR": "1"},
            "1": {"TYPE": "C", "CHAR": "!"},
            "2": {"TYPE": "C", "CHAR": "¹"},
            "3": {"TYPE": "C", "CHAR": "¼"},
            "4": {"TYPE": "C", "CHAR": "½"},
            "5": {"TYPE": "C", "CHAR": "¡"}
        }
    }
}

Есть два верхних уровня - это layouts и sets.
В первом описываются раскладки основной клавиатуры во втором наборы дополнительных клавиш.
layouts состоит из 3х подуровней QWERTY, QWERTZ и AZERTY. Они соответствуют трём закодированным в устройстве раскладкам.
Каждая раскладка состоит из 8 рядов клавиш. А именно: 0(нумерация идёт с 0) - цифровой ряд, 1-3 - буквенные ряды, 4 - стандартный нижний ряд, 5 - нижний ряд по умолчанию (в принципе совпадает с 4), 6 - нижний ряд для ввода урла (в браузере), 7 - нижний ряд для ввода email.
Каждый ряд состоит из 12 клавиш.
В приведённом примере описываются первые две клавиши, первого ряда раскладки QWERTY.
Каждая клавиша определяется несколькими параметрами:
  1. WIDTH - относительная ширина клавиши. Вообще ширина подбирается автоматом под размер экрана, но мы можем задать её относительную ширину.
    1. none - отсутствие параметра для ширины. Система считает такую клавишу короткой.
    2. short - короткая клавиша. Примерно в 2 раза короче стандартной.
    3. normal - стандартная ширина.
    4. long - двойной размер клавиши
    5. spacebar - очень длинная клавиша. Используется для пробела
  2. CLASS - класс клавиши
    1. normal - обычная клавиша
    2. invisible - невидимая клавиша
    3. none - отсутствие клавиши
    4. spacebar - используется для пробела.
  3. EXT - название набора доп. символов, который открывается по удержанию клавиши. Если набора нет, то пустая строка ("")
  4. MAIN и SEC - основной и дополнительный символы. Они состоят из двух значений:
    1. TYPE - тип символа:
      1. C - печатный символ
      2. S - спец клавиша (шифт, enter, backspase и т.д.)
      3. V - строковая клавиша (например смайлы, .com и т.д.)
    2. CHAR - собственно символ.
      1. Для S и V это специальные цифровые константы в шестнадцатеричном виде
      2. для C - это обыкновенный UTF-8 символ.
В приведённом примере мы видим что первая клавиша в первом ряду QWERTY раскладки это невидимая, короткая (без ширины) клавиша, на которую назначена буква Q как основной символ и [ как дополнительный. Вторая - стандартная клавиша нормальной ширины с символами 1 и ! соответственно и ссылкой на набор дополнительных клавиш SET0.
Можно полностью удалить клавишу из раскладки. Для этого достаточно присвоить параметрам WIDTH и CLASS значения "none", параметр EXT задать пустой строкой (""), упараметров MAIN и SEC задать TYPE: "C" и CHAR: "" (пустая строка).

sets состоит из 65ти (0-64) набора расширенных символов. Каждый набор состоит из нескольких символов. Символ описывается только как TYPE и CHAR, которые по описанию аналогичны тем же параметрам у клавиш.
В данном примере SET0 состоит из 5ти символов: 1, !, ¹, ¼, ½ и ¡.

ЗАМЕЧАНИЕ! По правилам формата символ \ и " нужно экранировать, поэтому они должны быть записаны как "\\" и "\"" соответственно.

ОГРАНИЧЕНИЯ! Нельзя увеличивать количество символов в наборе. Т.е. конечно это можно сделать, но скрипт не даст вставить большее количество символов и прочтёт только то количество, какое было в оригинальном файле. С другой стороны уменьшать количество можно записав вместо символа пустую строку (""). Так же не будут учтены символы после 12ти и ряды после 8ми. Это ограничение обусловлено тем, что нельзя менять размер данных в бинарном файле, только содержимое.
Архивариус

 
Сообщения: 9558
Зарегистрирован: 29 июл 2010, 20:22
Благодарил (а): 2301 раз.
Поблагодарили: 1616 раз.
Телевизор: LG 55C9 32LK6190 24MT57S
Звук: Yamaha YSP-1100

Вернуться в База знаний по устройствам и webOS (FAQ)



 


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение