嵌入式语言切换
嵌入式UI设计:语言切换
·
嵌入式UI:语言切换结构
- 功能设计:增加、减少、修改、切换UI显示的语言
- 方式:
- 语言库:把显示功能编译为库用于全代码调用
- 显示功能:长时间显示、短时间显示、显示和按键功能、更新显示内容、按周期显示、马上显示、显示优先级
- 其他
- 语言库:把显示功能编译为库用于全代码调用
- 多语言切换:
- 语言库方式多语言切换逻辑图:

-
code
- 语言包存储格式:
// 存储类型结构体 typedef struct _T_DISPLAY_HINT_ { unsigned int uiType;// 索引 const char *pHint_CN;// 中文字符串 const char *pHint_EN;// 英文字符串 }T_DISPLAY_HINT; // 注册索引号 typedef enum _E_HINT_HEAD_ { HINT_ERR_INIT, // 索引1,蓝牙初始化失败 HINT_ERR_LINK, // 索引2,蓝牙连接失败 INIT_CONNECT_SURRESS, // 索引3,"蓝牙连接成功", }E_HINT_HEAD;- 注册提示语言包
T_DISPLAY_HINT Bluetooth_Hint[]= { {HINT_ERR_INIT, "蓝牙初始化失败", "Bluetooth init err"}, {HINT_ERR_LINK, "蓝牙连接失败", "Bluetooth link err"}, {INIT_CONNECT_SURRESS, "蓝牙连接成功", "Bluetooth connect ok"}, };- 语言判断、显示函数
// 调用索引选择语言函数:DisplayHint函数作为应用底层判断语言类型 /* * uiIndex: 提示索引 * pItem: Bluetooth_Hint */ int DisplayHint(unsigned int uiIndex, T_DISPLAY_HINT *pItem) { if (NULL == pItem) { ASSERT(0); return RET_FAIL; } if(access(LANGUAGE_CN, F_OK) == 0) { DispHint_Shot((char *)pItem[uiIndex].pHint_CN, strlen(pItem[uiIndex].pHint_CN));// 显示函数显示中文 } else if(access(LANGUAGE_EN, F_OK) == 0) { DispHint_Shot((char *)pItem[uiIndex].pHint_EN, strlen(pItem[uiIndex].pHint_EN));// 显示函数显示英文 } return RET_SUCC; }
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)