Keyman:为移动键盘开发配置 Unicode 完整字体

Keyman: Configure Unicode-complete fonts for mobile Keyboard Development

我是喀麦隆键盘的维护者(已经在 MSKLC 和 XKB 中,以前在 Keyman 中),我正在为 Android/iOS 测试 Keyman。

我有:

我的代码的相关部分在这里:

  "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 应用程序可以使用我的自定义字体,至少在某些地方是这样。

我们使用分解的变音符号,以及自 v5 以来 Unicode 中的一些 IPA 特殊字符。一些变音符号,例如这个 ◌᷆ 不会保留在它们的字母上。这是我们最复杂的示例 characters/combinations:ɛ́ɔ̀ə̌ʉ̂ɨ᷅ɄƁŒƐ̩ .

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

我是不是误以为我可以添加字体(至少对于 KM 记事本界面),也许还可以。我知道移动字体已被绝育,因此它们可以最大限度地减少 RAM。我选择 Andika Afr 是因为美观、区域完整性和大小。

如果我不能为此添加特定字体,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。

似乎 Android 上触摸键盘的编译奇怪地与 KVK 上的字体设置相关联,我不知道如何在 KVK 中重新配置字体(没有代码视图).

fontBaseUri 似乎不正确。应该是指最终字体文件所在的文件夹:

"fontBaseUri" : "https://github.com/erros84/Cameroon-Keyboard/raw/master/Fonts/"