ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Flipper Zero 中文显示改造:中文字体、本地化、菜单三处动手指南

Flipper Zero 中文显示改造:中文字体、本地化、菜单三处动手指南 Flipper Zero 中文显示改造中文字体、本地化、菜单三处动手指南【免费下载链接】flipperzero-firmwareFlipper Zero firmware source code项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmwareBadUSB 脚本里写中文注释打开后变成一排“?”NFC 标签贴在设备前屏幕上的中文标签名是一片空白。Flipper Zero 中文显示默认只覆盖拉丁字符中文属于非拉丁字符显示里未处理的部分。本文讲清问题卡在显示链哪一层再按三处动手改造。中文卡在显示链的哪一层显示链路可以拆成三层中文在每层都会卡住。U8g2 字体层。屏幕文字最终由 u8g2轻量级 2D 图形库渲染。内置字体以拉丁和西里尔字符为主中文字形码点没有位图。这一层卡住时中文表现为空框或问号。locale 服务层。locale 服务目前只管三件事公制与英制单位、12/24 小时制、日期排列顺序。它没有“语言”概念菜单文案无处挂载。应用字符串资源层。每个应用自带一套英文文案。就算字体支持中文字符串仍是英文屏幕上就还是英文菜单。这一层决定 Flipper Zero 菜单汉化能覆盖哪些条目。三条路线怎么选路线改动范围Flash/RAM 代价上手难度适合谁固件内置中文字体u8g2 字体表随固件编译高常用字子集也在数百 KB 级RAM 占用上升高想整体汉化系统菜单的固件开发者应用级自定义字体只改自己的应用和字体数组低按需嵌入字符子集低只想在单个应用里显示中文汉化字符串资源包只替换各应用文案最低不新增字体依赖拉丁字库中想让菜单先变中文、字体暂缓推荐只在意单个应用显示中文选应用级自定义字体路线要汉化系统菜单先做字符串资源包再谈字体。动手改造U8g2 中文字体怎么挑选开源许可、支持单色位图的字体。128×64 屏幕优先 12 到 16 像素字高。别追求整部 GB2312常用字子集就够字体表也小。字体格式怎么转U8g2 需要编译进固件的 C 数组。用 u8g2 的字体转换工具链从 TTF 生成u8g2_font_xxx字体表再把数组嵌入应用。用法可参考 example_custom_font 示例调用canvas_set_custom_u8g2_font()后canvas_draw_str()就能渲染中文。⚠️ 字体表是纯位图数据多一个字形就多占 Flash务必控制子集规模。字符串资源怎么挂中文给目标应用新增一套中文字符串表用宏或编译开关替换原英文文案。改动集中在字符串定义层绘制逻辑不用动。这是 Flipper Zero 固件汉化的主体工作。汉化系统设置时入口在时钟设置等 settings 应用。设置菜单怎么加语言切换locale 服务现在只有单位、时间、日期三个枚举。照 locale.c 里现有项的存法走 furi_hal RTC 通道新增一个“语言”枚举并持久化再在设置子菜单挂一个条目上机就能看到切换项。上机验证清单先克隆仓库git clone https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware编译完成后走 USB 烧录./fbt ./fbt flash_usb上机逐项核对主菜单无空框、无问号时钟设置里时间格式切换后显示正确自有应用中文无缺字语言切换过程无崩溃重启后设置仍然保留踩坑速查中文显示为空框或问号。现象字形变成方块原因字体表不含对应中文码点处置补齐字符子集重新转换别动字号。中文断行或重叠。现象字距错乱、笔画互相压盖原因字高与基线设置不匹配或字号过大处置调低字高重新转换再微调绘制 y 坐标。只有部分应用出中文系统菜单没变。现象自研应用正常主菜单仍乱码原因自定义字体只作用于应用本身系统菜单用内置字体绘制处置先上字符串资源包再升级内置字体。编译报字体符号错误。现象链接阶段报符号未找到原因字体数组命名不一致或未加入编译列表处置对照示例文件检查数组定义与 SConscript 源文件列表。继续深挖本地化服务源码applications/services/locale/画布与字体 APIapplications/services/gui/u8g2 移植层lib/u8g2/应用开发文档documentation/app_dev/下一步行动给时钟设置应用挂一组中文字符串和一个语言切换项验证通过后再把同一套做法推进到主菜单。【免费下载链接】flipperzero-firmwareFlipper Zero firmware source code项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表