VisualHMI 的多언어方案很省事:一套 UI,多언어词条,一个레지스터전환。不用给每种언어做一套화면。这篇把字库、文字标签、문자串 ID 维护讲透——最后那节"문자串 ID 维护"是设备出货后最容易踩的坑,务必看完。
1. 多언어怎么工作
核心思路:UI 上的文字不放死,用控件引用언어词条;엔지니어링属性里설정언어数(最大 30 种);运行时设置多언어系统레지스터,一键전환所有词条。

2. 字库管理
2.1 系统自带字库
软件自带 5 个字库:
| 字库 | 콘텐츠 |
|---|---|
| DroidSans.ttf | 只含字母数字 |
| DS-DIGIB.ttf | 数码管风格,大写字母、数字 |
| fangsong_GB2312.ttf | 仿宋,支持中英文 |
| songti_GB2312.ttf | 宋体,支持中英文 |
| wqyMicroHeiMono.ttf | 文泉默认字库,支持中/繁/英/俄/法/日/韩/葡/西/德/意,多언어首选 |

2.2 추가字库
字库设置里点【추가】→ 选 ttf 文件。新字库会在엔지니어링目录下新建 font 文件夹并放入该文件。

2.3 替换字库
控件显示的字库和索引关联。把 Arabic.ttf 替换成 wqyMicroHeiMono:把 Arabic 索引改为 0,취소勾选 wqy 即可。

2.4 삭제字库
系统自带字库不支持삭제;用户추가的字库可以删。

2.5 裁剪字库(省 Flash 空间)
VisualHMI 통합字库裁剪도구:【엔지니어링】→【字库裁剪】。选择要裁剪的字库 → 불러오기需要保留的문자集合(txt 必须 UTF-8 编码)→ 开始裁剪,生成 xxx_cut.ttf。

신버전还支持엔지니어링문자裁剪:编译生成下载文件时自动裁剪,有四种모드:
| 모드 | 效果 |
|---|---|
| 禁用 | 不裁剪,保留完整字库 |
| 엔지니어링문자 | 只保留엔지니어링用到的문자 |
| 엔지니어링문자+GB2312 | 엔지니어링문자 + GB2312 编码전체문자 |
| 엔지니어링문자+GBK | 엔지니어링문자 + GBK 编码전체문자 |
3. 文字标签(多언어的正确열기방식)
文字标签 = 一个词条容器,含所有언어的译文。控件引用同一个文字标签,改一处、全언어生效,不用重复写文字。
菜单栏【文字标签】열기管理窗口,支持新增、修改、삭제、导出、导入。

3.1 추가文字标签
点【新增】,默认名 text1,可改成有含义的名字(如"온도设定"),把各언어译文填到对应언어列。

3.2 EXCEL 편집
点【EXCEL 편집】,标签以表格形式열기,直接편집,저장닫기后回到文字标签窗口确认即可。

3.3 导出 / 导入
支持导出 xml、csv、xlsx 修改,再导入。适合批量翻译和多人协作。
4. 문자串 ID 维护(出货后最重要,必看)
编译时生成一张最终문자串表。문자串출처:
- 文字标签表里的文字:用户主动维护,每条有固定 ID,用
$引用(如$온도设定) - 直接填写的文字:控件里直接写的文字,编译时自动加入문자串表末尾(无固定 ID)
- 告警설정的문자串:告警콘텐츠,用
$引用则用固定 ID,直接填写则自动追加
关键:历史记录不저장文字,只저장문자串 ID:
历史记录 = 时间 + 문자串ID 操作记录 = 时间 + 操作문자串ID + 值变化 告警记录 = 告警时间 + 告警문자串ID
显示历史时,设备用저장的 ID 到当前버전的문자串表里查文字。所以문자串表是历史데이터的解释字典——一旦发布,ID 的含义不能变。

5. 문자串 ID 维护规则(照做不翻车)
- 会被设备저장的文字必须用固定文字标签 ID:操作记录콘텐츠、매개변수설명、历史记录引用的文字、告警콘텐츠
- 已发布使用过的 ID 不能삭제:即使这条以后不用了,也要保留原 ID
- 已发布的 ID 不能复用:旧 ID 不能分配给新的콘텐츠
- 已发布的 ID 不能改含义:可修正错别字、补翻译,但不能把"设定온도修改"改成"风机모드修改"
- 不再使用的 ID 保留占位:기호为废弃/Reserved/Deprecated,但不要삭제
- 新增콘텐츠只用新 ID:从没用过的 ID 往后追加
- 不要依赖自动追加的문자串 ID:直接填写的文字只适合当前버전界面显示,不适合作为历史记录引用依据
- 업그레이드前检查문자串表兼容性:对比新旧버전,确认已发布 ID 含义没变
- 建立문자串 ID 维护表:记录每个 ID 的用途、中英文、활성화状态、首次使用버전
整理自 广州大彩科技 VisualHMI 개발문서(hmi-doc.gz-dc.com)자료介绍「多언어(字库、文字标签)」,版权归大彩科技所有。
답글 작성