多语言¶
FAQ1 Solution是否支持多语言?¶
Solution 支持内置和外置两种多语言实现方式,具体可参考多语言实现方式文档。
注意事项:
增删词条可能会改变原有语言词条的排序,因此多语言文件通常需要与主代码同步升级;
外置多语言以独立
bin文件的形式进行 OTA 升级或推送,需严格保证与主代码的版本一致性,避免因版本不匹配引发各类异常。经验参考:采用外置多语言方案的客户,需建立完善的多语言文件与主代码的版本管理机制。
FAQ2 如果是第一个项目,多语言怎么实现?¶
若客户是首次基于 Solution 开发项目,建议按以下步骤配置多语言:
打开 Butterfli 工具 → 左侧栏「参数设置」→ 多语言 → 多语言编辑文件 → 右键「打开文件」(文件名为
multi_language_table.xlsx);保留表格第一行表头,删除其余所有行;
在第一行中按需删减语言列,仅保留需要支持的语言。
列名规则:
生成语言名字(显示语言的名字)(括号为英文半角()),例如en_us(English_US);规则说明:
内置多语言:会生成
en_us.c文件,包含const lang_translation_t en_us_lang_translation结构体变量;外置多语言:会生成
en_us.bin二进制文件。
回到 Butterfli 工具 → 顶部「编译下载」标签栏 → 点击「刷新」,加载修改后的
multi_language_table.xlsx文件;进入 Butterfli 工具 → 左侧栏「参数设置」→ 多语言 → 多语言选择,配置本工程需启用的语言,及各语言的「内置/外置」类型;
编写主代码,词条使用需遵循《代码中多语言使用规范》(参考链接:代码中多语言使用规范);
在 Butterfli 工具 → 顶部「编译下载」标签栏 → 勾选「语言」选项,编译后工具会自动扫描工程代码并完成以下生成操作:
扫描代码中
app_get_str/app_get_strid接口的默认英文词条,填充至multi_language_table.xlsx中所有语言列;内置多语言生成
.c文件,外置多语言生成.bin文件。
重新打开
multi_language_table.xlsx,将默认英文词条替换为对应语言的翻译内容;若代码需迭代修改,返回步骤 6 重复执行。
FAQ3 词条实现多语言需要遵循哪些步骤?¶
实现词条的多语言适配,需按以下步骤操作:
代码规范编写:词条使用需严格遵循《代码中多语言使用规范》(参考链接:代码中多语言使用规范);
自动扫描更新表格:使用 Butterfli 工具编译工程,工具会自动扫描代码中的词条,更新
multi_language_table.xlsx文件;编辑多语言表格:打开
multi_language_table.xlsx完成以下配置:语言列管理:增删第一行的语言列,保留需要支持的语言(若代码适配多个产品,建议保留多语言最大集,通过 Butterfli 工具的「多语言选择」功能实现不同产品的差异化配置);
词条翻译:对新增/修改的词条完成对应语言的翻译编辑。
配置语言部署方式:在 Butterfli 工具中,选择本工程需启用的语言,并指定各语言的「内置/外置」部署类型;
重新编译生效:使用 Butterfli 工具重新编译工程,使多语言配置生效。
FAQ4 如何增加一个语言?¶
新增多语言支持需按以下步骤操作:
打开多语言配置表格: 打开 Butterfli 工具 → 左侧栏「参数设置」→ 多语言 → 多语言编辑文件 → 右键「打开文件」(文件名为
multi_language_table.xlsx);新增语言列: 在表格第一行新增一列,按规则填写语言名称:
生成语言名字(显示语言的名字)(括号为英文半角()),示例:en_us(English_US);刷新表格配置: 回到 Butterfli 工具 → 顶部「编译下载」标签栏 → 点击「刷新」,加载新增的语言列配置;
配置语言部署类型: 进入 Butterfli 工具 → 左侧栏「参数设置」→ 多语言 → 多语言选择,将新增语言设置为「内置」或「外置」类型;
自动填充默认词条: 在 Butterfli 工具 → 顶部「编译下载」标签栏 → 勾选「语言」选项,点击右侧「生成」图标;
说明:工具会自动扫描工程代码中的多语言词条,并在新增语言列中填充默认英文词条;
完成词条翻译: 按步骤 1 的路径重新打开
multi_language_table.xlsx,将新增列的默认英文词条替换为对应语言的翻译内容。
FAQ5 如何删除一个语言?¶
移除不需要的多语言支持,需按以下步骤操作:
打开多语言配置表格: 打开 Butterfli 工具 → 左侧栏「参数设置」→ 多语言 → 多语言编辑文件 → 右键「打开文件」(文件名为
multi_language_table.xlsx);删除目标语言列: 在表格第一行中,删除需移除支持的语言对应的整列;
刷新配置生效: 回到 Butterfli 工具 → 顶部「编译下载」标签栏 → 点击「刷新」,使语言列删除操作生效。
注意事项
删除语言列后,工具会自动清理该语言对应的内置
.c文件/外置.bin文件,无需手动删除。
FAQ6 Solution支持哪些多语言?¶
Solution 对多语言的支持依赖对应字库的适配,根据语言文字是否需要变形处理,分为以下两类情况:
无需变形的多语言 只要提供对应的
ttf或bitmap字库,即可直接支持。需要变形的多语言 目前 Solution 提供的原生支持及适配方案如下:
印地语:提供内置变形支持;
阿拉伯语、波斯语:沿用 LVGL 原生方案,需客户根据实际需求自行调整;
其他需要变形(
shape)的语言:需客户自行寻找适配的变形算法及对应的ttf或bitmap字库。
FAQ7 动态应用如何修改多语言¶
动态应用的多语言表是独立的,位于动态应用目录下resource\lang\multi_language_table.xlsx,其修改方式和主代码中修改多语言表方式一致,(参考链接:FAQ3 词条实现多语言需要遵循哪些步骤);
FAQ8 动态应用如何获取主代码中的多语言¶
动态应用中app_get_str,app_get_str_from_id,app_get_strid等接口只能获取动态应用本身的多语言词条,如需获取主代码的多语言。
主代码中封装获取指定多语言的接口并RTM_EXPORT导出
在动态应用中使用封装的接口间接获取主代码多语言。