2. 项目创建与语言配置:在TouchGFX Designer中迈出第一步
好,咱们正式开始动手。这一章我会带你走一遍项目创建和语言配置的完整流程。说实话,很多初学者在这第一步就埋下了坑——比如项目命名不规范、语言ID搞混、默认语言选错。我在几个量产项目里都吃过这些亏,后面改起来特别痛苦。所以这一章,咱们把基础打扎实。
2.1 创建新项目:别小看这一步
打开TouchGFX Designer,你会看到一个启动界面。点击“Create New Project”,进入项目配置向导。
关键配置项说明:
| 配置项 | 我的建议 | 避坑点 |
|---|---|---|
| Project Name | 全小写+下划线,例如 multi_lang_demo | 不要用中文或空格,编译工具链会报错 |
| Application Name | 与项目名保持一致 | 后期改起来很麻烦 |
| Screen Name | 默认 Screen1 即可 | 后续可以重命名,但建议一开始就起好有意义的名字 |
| Target Platform | 选择你的开发板型号 | 如果只是学习,选 Simulator 最方便 |
| Resolution | 根据屏幕实际尺寸设置 | 我见过有人把480x272写成480x720,结果UI全跑偏 |
我个人习惯在项目名里带上语言标识,比如 app_zh_en_jp。这样团队成员一看就知道这个项目是多语言的。嗯,这只是个小技巧,但确实能省不少沟通成本。
2.2 添加语言:中文、英文、日文
项目创建完成后,进入主界面。在左侧的“Project Explorer”面板里,找到 Languages 节点。双击它,或者右键选择“Edit Languages”。
你会看到一个语言管理对话框。默认只有 English (United States)。我们需要添加中文和日文。
操作步骤:
- 点击 Add Language 按钮
- 在搜索框输入
Chinese,选择 Chinese (Simplified, China)——注意别选成繁体或香港地区 - 再次点击 Add Language,搜索
Japanese,选择 Japanese (Japan) - 点击 OK 保存
这时候你再看 Languages 节点,下面应该有三个子项:English、Chinese、Japanese。每个语言前面都有一个图标,绿色表示已启用,灰色表示未启用。默认都是启用的。
我曾经踩过的坑: 有一次我手快,把中文选成了 Chinese (Traditional, Taiwan)。结果项目做到一半,客户说简体字显示不全。后来排查了半天才发现是语言ID不对。所以添加时一定要看清楚地区后缀。
2.3 设置默认语言:为什么重要?
默认语言决定了三件事:
- 项目启动时,界面显示的语言
- 所有文本资源的 基准语言——你想想看,如果你先写英文文本,再翻译成中文和日文,那英文就是你的基准
- 如果某个语言缺少翻译,系统会回退到默认语言显示
设置方法很简单:在 Languages 节点下,右键点击你想要的语言,选择 Set as Default。我个人建议把 English 设为默认。为什么?因为英文的字符集最通用,字体文件最小。中文和日文需要额外的字库,如果作为默认语言,会增加固件体积。
实际项目中的经验: 我在一个智能家居项目里,默认语言设成了中文。结果英文用户第一次开机看到中文界面,体验很差。后来我们改成英文默认,启动后根据系统语言自动切换。这个改动虽然不大,但用户反馈好了很多。
2.4 理解语言资源文件的结构
TouchGFX 把多语言文本存储在 资源文件 里。这些文件是 XML 格式的,位置在项目目录下的 assets/texts/ 文件夹里。
打开这个文件夹,你会看到类似这样的结构:
assets/texts/
├── texts.xml # 主资源文件,包含所有语言的文本定义
├── texts_English.xml # 英文翻译文件
├── texts_Chinese.xml # 中文翻译文件
└── texts_Japanese.xml # 日文翻译文件
咱们打开 texts.xml 看看核心结构:
<?xml version="1.0" encoding="UTF-8"?>
<Texts>
<Text id="welcome_message">
<Translation language="English">Welcome to TouchGFX</Translation>
<Translation language="Chinese">欢迎使用TouchGFX</Translation>
<Translation language="Japanese">TouchGFXへようこそ</Translation>
</Text>
<Text id="button_ok">
<Translation language="English">OK</Translation>
<Translation language="Chinese">确定</Translation>
<Translation language="Japanese">確認</Translation>
</Text>
</Texts>
每个 <Text> 标签代表一个文本资源,id 属性是唯一标识符。里面包含多个 <Translation> 子标签,分别对应不同语言的翻译。
命名规范建议: 我习惯用 模块_功能_描述 的格式来命名ID。比如 home_title_welcome、setting_label_language。这样在代码里引用时,一眼就能看出这个文本用在哪儿。别用 text1、text2 这种,项目大了根本找不到。
2.5 语言资源文件的生成机制
你可能会问:这些文件是手动写的吗?当然不是。TouchGFX Designer 会自动生成它们。你在 Designer 的 Texts 面板里添加、编辑文本,保存后,这些 XML 文件会自动更新。
但有一点要注意:不要手动编辑这些 XML 文件。我试过一次,在 Designer 里改了一个文本ID,然后手动改了 XML 里的对应ID。结果 Designer 重新生成时,把我的手动修改覆盖了。嗯,从那以后我再也不手贱了。
重要提醒: 如果你使用版本控制(比如Git),一定要把 assets/texts/ 目录纳入管理。这些文件是项目的一部分,团队成员需要同步。我见过有人把 texts.xml 加到 .gitignore 里,结果其他人拉下来代码后,文本全是空的。
2.6 本章知识体系总览
为了让你更直观地理解这一章的内容,我画了一张流程图。它展示了从创建项目到语言配置完成的完整路径。
这张图把咱们这一章的五个核心步骤串起来了。你可以把它当作一个检查清单:每完成一步,就在心里打个勾。
2.7 小结与个人体会
项目创建和语言配置,说白了就是给整个多语言工程打地基。地基稳了,后面加文本、做切换、处理字体,都会很顺畅。我记得第一次做多语言项目时,觉得这步太简单,随便点了点就过去了。结果后来发现语言ID写错了,所有翻译都得重来。嗯,从那以后,我每次创建项目都会花10分钟仔细检查这些配置。