Flipper Zero 固件本地化系统指南:30分钟把时间、温度显示调成你要的格式
【免费下载链接】flipperzero-firmwareFlipper Zero firmware source code项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware
想让 Flipper Zero 显示 12 小时制时间,屏幕却一直是 24 小时?温度想要华氏度,显示的却是摄氏度?别急着改代码,读完本文,你能自己构建官方的本地化测试应用,逐一验证时间、日期、单位三种格式,并搞懂 locale 服务的完整工作机制。
先看效果
完成后,测试应用会在屏幕上给出三行内容:第一行是温度(单位跟随你的设置),第二行是当前时间,第三行是当前日期。你在设置里改动格式后重进应用,就能立刻看到差异,不用来回切换界面反复确认,每次验证几秒钟。
本地化原理一分钟速览
可以把 locale 服务理解成一个“转换插座”:你选的格式先由它保存,之后每个应用只需要通过统一 API 来“问”一次,就能拿到正确格式的数据,不用自己写转换逻辑。
- 格式定义为枚举类型:12/24 小时制、三种日期顺序、公制/英制单位
- 设置写入 RTC(实时时钟),重启后依然保留
- 时钟等应用通过 API 读取当前格式后再渲染屏幕,定义都在 locale 服务源码
动手实操:构建并验证本地化格式
1. 准备环境
克隆仓库并执行完整固件构建,fbt 会自动下载工具链,首次运行较慢属正常现象:
git clone https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware cd flipperzero-firmware ./fbt预期现象:构建持续一段时间后正常结束,没有报错输出,构建产物生成成功。
2. 执行核心操作
把本地化调试应用构建成 SD 卡应用:
./fbt fap_locale_test预期现象:dist 文件夹中生成 locale_test 的 .fap 文件。把它拷到 SD 卡(目录规则见 documentation/AppsOnSDCard.md 文档),插卡重启设备;若 appid 不一致,去对应目录的 .fam 文件里确认 appid 字段。
3. 验证结果
在 Flipper 上进入应用列表,运行 locale_test。预期现象:屏幕上温度、时间、日期三行均按时钟设置中当前格式输出;再把 24 小时制改为 12 小时制重进应用,第二行会出现 AM/PM 标记。
避坑清单
| 现象 | 原因 | 一句话解决办法 |
|---|---|---|
| 首次构建很慢 | 工具链与依赖下载 | 耐心等待,无需重跑 |
| 构建中途报错 | 子模块同步失败 | 重新执行,fbt 自动同步 |
| 应用列表没 locale_test | .fap 未放对 SD 卡 | 按文档放入应用目录 |
| 时间仍是 24 小时制 | 格式已存入 RTC | 去时钟设置改 12 小时 |
| 温度单位始终是 C | 单位设为公制 | 设置里切到英制 |
进阶方向
- 阅读 时钟设置应用,学习设置界面如何写入 locale 配置
- 以 locale_test 调试应用 为模板,学会调用 locale API 并在 Canvas 上绘制
- 阅读 fbt 构建系统文档,掌握构建、烧录其他应用的方法
核心思路就一句话:设置存入 RTC、API 统一读取,显示格式只是找对地方“问”一次。打开终端把它跑起来,30 分钟就能看到第一个效果。🚀
【免费下载链接】flipperzero-firmwareFlipper Zero firmware source code项目地址: https://gitcode.com/GitHub_Trending/fl/flipperzero-firmware
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考