Keyman: Настройка шрифтов с поддержкой Unicode для разработки мобильных клавиатур

Я сопровождаю Камерунскую клавиатуру (уже в MSKLC и XKB, ранее в Keyman) и тестирую Keyman для Android/iOS.

У меня есть:

  • Разработана клавиатура с сенсорной раскладкой (Keyman Developer 9)
  • Определены все символы
  • Загрузил шрифт на Github
  • определил этот шрифт для шрифта и OSKfont.
  • Клавиатура протестирована на устройствах Android/iOS.

Соответствующая часть моего кода находится здесь:

  "options" : {
    "device" : "any",
    "keyboardBaseUri" : "https://github.com/erros84/Cameroon-Keyboard/raw/master/",
    "fontBaseUri" : "https://github.com/erros84/Cameroon-Keyboard/raw/master/Font‌​s/"
  },
  "keyboard" : {
    "id" : "camq_mob_progress",
    "name" : "Cameroon QWERTY",
    "filename" : "camq_mob_progress-1.0.js",
    "version" : "1.0",
    "lastModified" : "2017-08-03T21:21:31.154+01:00",
    "font" : {
      "family" : "Andika Afr",
      "size" : "20pt",
      "source" : "ANDIKAAFR-R.TTF"
    },
    "oskFont" : {
      "family" : "Andika Afr",
      "size" : "20pt",
      "source" : "ANDIKAAFR-R.TTF"
    },

На Android кнопки клавиатуры отображаются в Andika Africa, как и ожидалось, но даже внутри приложения Keyman текстовые области (как keymanWeb, так и Android) используют неполные моноширинные шрифты, которые не отображаются должным образом. Я думал, что приложение Keyman может использовать мой пользовательский шрифт, по крайней мере, в некоторых местах.

Мы используем разложенные диакритические знаки и несколько специальных символов IPA, которые были в Unicode, начиная с версии 5. Некоторые диакритические знаки, такие как этот ◌᷆, не остаются на своих буквах. Вот пример наших самых сложных символов/комбинаций: ɛ́ɔ̀ə̌ʉ̂ɨ᷅ɄƁŒƐ̩ .

https://github.com/erros84/Cameroon-Keyboard/blob/master/Screenshot.png

Ошибался ли я, что мог бы добавить шрифт (хотя бы для интерфейса блокнота КМ), а может и дальше. Я знаю, что мобильные шрифты стерилизованы, чтобы они могли минимизировать оперативную память. Я выбрал Андику Афр из-за эстетики, региональной полноты и размера.

Если я не могу добавить определенный шрифт для этого, устанавливает ли KM Android какие-либо относительно полные (и немоноширинные) шрифты, которые я могу зафиксировать? Буду рад любым Andika, Charis SIL, Doulos SIL, Arial, Noto, Cambria, Gentium, DejaVu, code2000, Arial, Lucida.

Обновления в ответ на Марк:

Итак, я прочитал ошибки компиляции и решил пару ключевых проблем. Есть интересное: Warning: line 0 warning 209F: The touch layout font should be the same as the On Screen Keyboard font and be the same for all platforms.

Файл .js содержит ссылки как на Andika, так и на Andika Afr. После поиска единственным другим файлом, содержащим ссылку на "Andika" (не Andika Afr), является файл KVK (который нельзя редактировать напрямую). Как ни странно, удаление KVK из проекта и повторное тестирование клавиатуры Android вернуло все обратно к Courier.

Похоже компиляция Touch Keyboard на Android странным образом привязана к настройке Font на KVK, и я не могу понять как перенастроить шрифт в KVK (без просмотра кода).


person Matthew    schedule 03.08.2017    source источник


Ответы (1)


fontBaseUri кажется неправильным. Он должен ссылаться на папку, в которой может находиться окончательный файл шрифта:

"fontBaseUri" : "https://github.com/erros84/Cameroon-Keyboard/raw/master/Fonts/"
person Marc Durdin    schedule 04.08.2017
comment
Ок, обновил до этого: https://github.com/erros84/Cameroon-Keyboard/raw/master/Fonts/ Та же проблема, Андика показывает на КБ кнопки, но не интерфейс КМ. - person Matthew; 04.08.2017
comment
Как вы устанавливаете клавиатуру? Я не уверен, как клавиатура вообще устанавливается? https://github.com/erros84/Cameroon-Keyboard/camq_mob_progress-1.0.js (keyboardBaseUri + keyboard/filename) выдает ошибку 404, потому что клавиатуры нет. keyboardBaseUri должен указывать на аналогичный путь /raw/master/ (и клавиатура также должна быть в репозитории). - person Marc Durdin; 05.08.2017
comment
Хорошо, это новость для меня. Я использую функцию Test Keyboard, открываю сайт в браузере и устанавливаю на свой Android, и, похоже, он получает файл .json. Это все, что передается? Все клавиатуры в репозитории имеют бессмысленные значения для обоих путей, поэтому я не понимаю, почему у меня возникла проблема ... и как их удается работать. Я добавил свои исходные файлы в репо. Пожалуйста, укажите мне любую документацию по выбору шрифтов для мобильных устройств. - person Matthew; 05.08.2017
comment
Функция «Тестовая клавиатура» не использует файл .json для настройки тестовой среды (вероятно, так и должно быть). Тестовая среда подбирает шрифты из текущего редактора и шрифты кода в Keyman Developer. Файлы .json используются для частного распространения клавиатур; все клавиатуры в общедоступном репозитории распространяются через приложение Keyman, и в настоящее время файл .json там также не используется. Выполняется устранение этого несоответствия (первые шаги на github.com/keymanapp/keyboards/pull/61). ) - person Marc Durdin; 07.08.2017
comment
То есть вы хотите сказать, что если я положу файлы в официальный репозиторий клавиатуры Keyman, то все должно работать правильно сверху вниз? Я надеялся протестировать его самостоятельно, прежде чем делиться им, но я могу это сделать. - person Matthew; 08.08.2017