给韩语按键上色:11'172 个字符

主要观点:在构建韩语打字练习游戏“type.sam.today”时,想实现按键改变文本颜色,因韩语书写系统 Hangul 特点使此任务变复杂,文章阐述了构建文本着色系统所需的韩语键盘、Unicode 和 OpenType 的复杂性,包括 Hangul 音节结构、Unicode 多种表示形式的局限性及解决方法等。
关键信息:

  • Hangul 由 10 个基本元音和 19 个辅音组成,按音节分组,共有 11172 个 Hangul 音节 Unicode 块。
  • 韩语键盘可将 29 个 Jamo 挤在 26 个英文字母键上,打字时按发音顺序输入 Jamo 组成音节。
  • Unicode 有多种 Hangul 字符表示形式,如“composed”(NFC)和“decomposed”(NFD),但都不能完美映射到按键输入。
  • 10 键翻转手机的韩语布局因其简单性很受欢迎,文中后续重点关注 QWERTY 键盘。
  • 韩语字体中 Jamo 的排列方式独特,不同元音和位置的辅音会使字体外观不同,部分 Hangul 音节是复合字形但并非所有都如此。
  • 通过导入字体字形到专门程序标记路径与按键对应来填补差距,实现按键显示打字进度。
    重要细节:
  • 以“Hangul”一词为例说明其 Jamo 组成及音节分组,如“ㅎ ㅏ ㄴ ㄱ ㅡ ㄹ”分为“한글”两组。
  • 指出普通字符串到按键的规范化在搜索和过滤等方面有需求,如韩语搜索中“우”与“원”的匹配问题。
  • 提到在处理字体字形时采取的一些高效策略,如初步归一化减少独特路径数量等。
  • 最终在“type.sam.today”中实现按键显示打字进度,且该解决方案遵循了字体风格。
阅读 17
0 条评论