全部手册
SIMTUTAI / DOCUMENTATION

开发手册

开发手册、使用视频,应用案例。

1. 概述

ApusTAI平台支持多语言功能,用户不需要配置多套UI,将UI上的文字去掉,用填写各语言内容的文字标签替换,通过设置系统寄存器-多语言寄存器SysLang,一键切换不同语言。

项目 作用
语言数目 设置工程使用的语言数量
字库 提供文字显示所需的字符
文字标签 保存各语言的文字内容
SysLang 当前语言索引,从 0 开始

点击“工程 → 设置”,将“语言数目”设为 2,本例使用简体中文和 English。

工程语言数目设置

图片中的文字不参与语言切换,需要切换的文字应使用控件显示。

2. 字库

2.1 内置字库

点击“工程 → 字库”打开管理器。本例使用文泉驿微米黑显示中英文,DigifaceWide用于数码风格的数字显示。

字库管理器

2.2 添加字库

  1. 点击“新增(系统字库)”选择已安装字体,或点击“添加字体文件”导入本地字体。
  2. 在文字标签或控件的字体属性中选用。

所选字体需包含待显示字符,否则可能显示为空白或方框。

选择本地字体文件并添加到工程

2.3 调整与删除

选中字库后,可上移、下移、设为默认或删除。更换字体时,先添加新字库,再调整控件和语言设置中的字体引用。

字库上移、下移与删除

2.4 字体裁剪

点击“工程 → 字体裁剪”:

  1. 选择字体文件。
  2. 载入 UTF-8 字符集文件,或勾选“输入字符集合”直接填写字符。
  3. 点击“开始裁剪”,将生成的字体文件加入工程。
字体裁剪设置

若提示 No output file was specified,请改用下一节的编译裁剪。

2.5 工程字符裁剪

点击“工程 → 编译”,勾选“裁剪字体”,按需附加 GB2312 或 GBK 字符集,再点击“确定”。本例选择 GBK。

编译时选择字体裁剪和 GBK 字符集
设置 保留内容 适用情况
不勾选裁剪 完整字库 动态文字范围不确定
仅裁剪字体 工程中使用的字符 固定菜单、提示和标签
附加 GB2312 工程字符及 GB2312 字符 常用简体中文输入
附加 GBK 工程字符及 GBK 字符 更广的中文字符范围

键盘输入、串口接收和脚本生成的文字需纳入保留范围。新增文字后应重新编译。

3. 文字标签

3.1 语言设置

点击“工程 → 文字标签”。左侧设置语言名称和默认字体,右侧编辑标签内容。

语言顺序对应 SysLang 索引:本例简体中文为 0,English 为 1。调整顺序后,需同步修改切换按钮的索引。

3.2 新增与编辑

  1. 点击“添加标签”,填写标签名称。
  2. 双击各语言单元格,填写文字。
  3. 点击“确定”保存。
标签名称 简体中文 English
欢迎语 欢迎使用 Welcome
运行状态 设备状态:运行中 Status: Running
语言提示 请选择界面语言 Select a language
中英文文字标签

搜索标签名称可快速定位,修改内容后,引用该标签的控件会同步更新。下图新增“操作提示”标签:

添加文字标签并填写中英文内容

3.3 删除标签

选中标签,点击“删除标签”。删除前先解除控件对该标签的引用。

删除临时操作提示标签

3.4 导出标签

点击“导出”,选择保存位置,保存为 CSV 文件,可用表格软件批量编辑。

导出文字标签并选择 CSV 保存位置

第一行为表头,后续每行对应一条标签:

csv 复制代码
标签名称,简体中文,English
欢迎语,欢迎使用,Welcome
运行状态,设备状态:运行中,Status: Running
语言提示,请选择界面语言,Select a language

3.5 导入标签

  1. 按导出文件的表头和语言列顺序编辑,保存并关闭文件。
  2. 点击“导入”,选择 CSV 文件。
  3. 核对各语言内容,点击“确定”。
选择 CSV 文件并导入文字标签

当前版本导出的 CSV 使用 GBK 编码,编辑时应保持一致。GBK 无法表示的文字可直接在管理器中填写。

4. 多语言应用

4.1 控件引用

  1. 添加文字控件,在“外观”中启用“使用标签”。
  2. 点击“文字标签”右侧的“…”,选择“欢迎语”。
  3. 设置字体、字号、颜色和对齐方式。
文字控件选择欢迎语标签

按钮需先启用“使用文字”。控件宽度应能容纳最长的译文。

4.2 语言切换

添加两个字设置按钮,向 SysLang(LW0119) 写入对应语言索引:

属性 中文按钮 English 按钮
写入地址 LW0119(SysLang) LW0119(SysLang)
操作模式 写入常量 写入常量
常量值 0 1
按钮文字 简体中文 English

4.3 运行预览

编译运行,点击语言按钮,已引用标签的文字随之切换。

中英文切换演示

文字未切换时,检查标签引用和译文;显示方框时,检查字体及裁剪范围。

5. RW 保存语言

将语言索引存入 RW,下次上电恢复上次选择。

5.1 地址设置

地址 用途 数值
LW0119(SysLang) 当前语言 0:简体中文;1:English
RW1000 保存语言索引 0 或 1

切换按钮仍向 LW0119 写入 0 或 1,脚本负责保存。RW1000 需独立预留。

5.2 脚本

打开“工程 → 脚本”,在 main.lua 中加入:

lua 复制代码
LW = 1
RW = 2

function on_init()
    local lang = get_uint16(RW, 0x1000)
    if lang > 1 then lang = 0 end
    set_uint16(LW, 0x0119, lang)
end

function on_update(slave, kind, addr)
    if kind == LW and addr == 0x0119 then
        local lang = get_uint16(LW, 0x0119)
        if lang <= 1 and lang ~= get_uint16(RW, 0x1000) then
            set_uint16(RW, 0x1000, lang)
        end
    end
end

启动时恢复保存值,无效值默认使用中文;语言改变时才写 RW。增加语言后,调整代码中的上限 1。

地址按十六进制填写。已有 on_init、on_update 时,将代码合并到原函数。

5.3 验证

  1. 编译运行,切换为 English。
  2. 重启同一份模拟器工程,查看是否恢复英文;切回中文后重复检查。
  3. 下载到屏幕,切换语言并待保存完成后,断电重启检查。

重新编译可能重建模拟器数据目录,测试保存效果时只重启运行环境。

切换语言并重启模拟器验证 RW 保存