日语字体支持

主要观点:

  • 近期一直在思考本地化,计划以资产驱动的方式支持多语言,方便翻译实施,如将用户界面文本作为特殊对象。
  • 原本想为支持日语用新的 8x8 字体位图,后经搜索找到 Misaki 字体,但发现其 7x7 且单像素间隙易导致字符粘连,难以单独识别。
  • 经过一番探索,通过 Shift-JIS 编码找到与 Misaki 字体 PNG 对应的 JIS X 0208 标准,利用相关文件和代码实现了将 Unicode 编码映射到 JIS 字符的功能,成功渲染了日语字符。
  • 但发现 Misaki 字体的罗马字符与 ASCII 映射的字符编码不同,需额外函数处理,且尝试使用 8x12 字体后效果更好,但需更新 UI 以支持可变高度文本。

关键信息:

  • 本地化工作围绕资产驱动,收集各资产文本到电子表格进行翻译。
  • Misaki 字体为 7x7 且 90 年代用于 Sharp PC-E500 口袋电脑。
  • 找到 JIS X 0208 标准及相关 Unicode 文件 JIS0208.TXT 。
  • 编写解析文件的代码,实现 Unicode 到 JIS 的映射。
  • 完成日语字符渲染,富文本渲染也正常,后处理罗马字符编码问题。

重要细节:

  • 本地化为游戏引擎构建提供便利,方便后续翻译。
  • 作者对字体渲染的各种尝试和遇到的问题,如精度控制、像素大小等。
  • 介绍了不同编码方式及相关函数的实现细节,如 Accept-style 递归下降解析、utf8 字符串处理等。
  • 展示了不同字体大小在游戏中的效果对比。
阅读 9
0 条评论