news 2026/9/10 23:55:05

Flipper Zero 固件中文显示完整教程:3 步汉化你的设备界面

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Flipper Zero 固件中文显示完整教程:3 步汉化你的设备界面

Flipper Zero 固件中文显示完整教程:3 步汉化你的设备界面

【免费下载链接】flipperzero-firmwareFlipper Zero firmware source code项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware

本文带你基于 flipperzero-firmware 固件实现 Flipper Zero 中文显示:给 128×64 小屏装上中文字体、把菜单词条换成中文、让语言选择开机不丢。零基础也能跟着做完。

你能得到的效果

先说做完之后是什么样:

  • 菜单变中文:主菜单、设置页的英文词条变成你熟悉的中文
  • 时间日期按习惯显示:24 小时制、年月日顺序,都是你的选择
  • 设置可记忆:语言与格式写入设备,重启依然生效

对每天用设备的你来说,这意味着不用再猜 "Backup"、"Erase" 这类词条的意思,新队友上手也快得多。

一分钟看懂原理

Flipper 的显示链就三件事:locale 服务管格式,字符串资源管文案,U8g2 管字形

  • locale 服务:保存你的时间、日期、单位偏好,相当于"格式设置箱"
  • 字符串资源:每个应用各自的文案条目,英文界面就是从这里取的
  • U8g2 字体:真正决定屏幕上画什么笔画。字体里没有的字,屏幕只能留白——这就是中文变方块的根源

想深入的话,从 locale 服务源码 和自定义字体示例 example_custom_font 两个入口看起即可。

准备清单

动代码之前,把这 4 样备齐:

  1. 系统:Windows 10+、macOS 12+ 或 Ubuntu 20.04+,装好 Git
  2. 磁盘:预留至少 10GB(源码含第三方库,克隆后不小)
  3. 设备:一台 Flipper Zero,USB 数据线或 Wi-Fi 调试板用于刷固件
  4. 仓库代码,执行:
git clone --recursive https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware cd flipperzero-firmware

编译命令放在这里备用,工具链和依赖全部由 fbt 自动处理:

./fbt

上手流程:3 步把界面变中文

把中文字体装进屏幕

  1. 定字符集:先想好要显示哪些字。常用词汇控制在 256~500 字左右,体积就能压住——全量字库对这块小屏来说太大了
  2. 选字体:挑一款开源可用的 CJK 字体,字号以 128×64 屏幕为基准,选 8~12 像素规格
  3. 转格式:用 U8g2 官方提供的字体转换工具,把字体文件转成固件能直接读取的数据
  4. 接进固件:照 example_custom_font 的思路,在绘制前调用canvas_set_custom_u8g2_font切换字体
  5. 编译验证:跑一次./fbt,确认字体数据没有撑爆内存,屏幕能画出一个中文字

字体体积是这里的头号约束,字符集宁缺毋滥。

让菜单显示中文

  1. 列词条:把要汉化的菜单项逐条列出来,先小范围试点,别一上来全量翻译
  2. 写资源:参照 string 资源 各应用的英文资源结构,整理对应的中文文本
  3. 改加载:调整资源读取逻辑,让应用能取到中文词条
  4. 逐页验证:进主菜单、设置、时钟页各看一眼,确认没有英文漏网

让设置记住你的选择

  1. 加选项:在设置里增加语言与格式选项
  2. 写设置:调用 locale 服务 的接口保存选择,数据存在 RTC 备份区,断电不丢
  3. 重启验证:关机重开,确认选项还在;顺带确认中文文本按 UTF-8 处理,没有乱码

踩坑速查

  • 方块或空白:字体缺对应字形 → 换成包含所需字形的中文字体
  • 中文被截断:一屏塞不下 → 减小字号,或精简字符集里的长词
  • 编译失败:多为字体数据过大 → 裁剪字符集后重编
  • 重启后设置恢复默认:持久化没生效 → 检查是否走对了 locale 服务接口
  • 个别应用异常:字符串处理不当 → 按 UTF-8 处理文本,拿不准就先用英文占位

效果与延伸

验证标准很简单:主菜单、时钟、设置页全是中文,重启后依然不变。时钟页的效果可以对照 官方测试用例图 感受布局。

跑通之后,这些方向可以继续探索:

  • 按使用频率裁剪字符集,把字体压到更小
  • 按需加载字体,只在使用时占内存
  • 把翻译拆成独立模块,方便多人分工、随时更新词条

固件是开源的,中文化只是起点。现在的行动项:先 clone 仓库把./fbt跑通;再照 example_custom_font 把自己的中文字体接上,看屏幕画出第一个汉字。🚀

【免费下载链接】flipperzero-firmwareFlipper Zero firmware source code项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 23:54:01

牧野PRO3数控机床操作与维护实战:从对刀到模态分析的完整指南

牧野PRO3这台机床第一次出现在我们车间的时候,说实话我并没有觉得它有多特别。后来用了大概三个月,我才慢慢体会到它和普通国产设备的差别——不是单纯快,而是那种“稳定到让你几乎忘记它在运转”的可靠感。在模具配件和电极加工这块&#xf…

作者头像 李华
网站建设 2026/9/10 23:53:07

STM32+RM500U 5G模组接入OneNET:温湿度采集全链路实战

简介:这套压缩包是一例面向嵌入式初学者的STM32物联网实战工程,主控采用STM32系列单片机,通信侧使用移远RM500U 5G模块,传感器选用AHT20,采集温湿度数据后通过MQTT协议上传至OneNET平台,完成从硬件驱动、网…

作者头像 李华
网站建设 2026/9/10 23:52:18

C++在实时系统开发中的关键技术与实践

1. 实时系统与C的天然契合性我第一次接触实时系统开发是在2012年,当时负责一个工业控制项目,需要在2毫秒内完成数据采集、处理和响应。那时我才真正理解为什么C会成为实时系统开发的首选语言。实时系统对确定性、低延迟和资源控制有着近乎苛刻的要求&…

作者头像 李华
网站建设 2026/9/10 23:46:45

EPLAN电气设计实战:变频器与PLC1500图纸设计技巧

1. EPLAN电气设计实战经验分享作为一名从事工业自动化电气设计10年的工程师,我深刻理解EPLAN在电气图纸设计中的重要性。今天我想分享几个实际项目中积累的EPLAN使用技巧和图纸设计经验,特别是针对变频器、伺服系统和西门子PLC1500等常见设备的图纸设计要…

作者头像 李华