SuperAPI AI 工具集

solidcraft-ui-text

编程与开发

查看项目

更新于 11-03 17:16

技能介绍

用途

solidcraft-ui-text 面向 SolidCraft 中所有用户可见文本的增改工作,包括标签、工具提示、消息、命令标签以及新增语言。SolidCraft 将翻译内嵌并支持离线工作,完整说明见 docs/localization.md。

添加消息的规则

新消息的 id 与英文文本应写入新的 pending 文件;assets/locales/en.json 只用于修改已有消息。id 必须保持稳定,修改措辞时不要更换 id。静态消息使用 app.tr("ui.some_id"),带命名占位符的整句使用 Locale::format。翻译需覆盖整句,包括标点,以便译者调整参数顺序。新消息应直接使用稳定 id,而不是供旧表使用的英文标签适配器 app.tr_label。命令标签位于 cmd.<command id> 之下,cargo xtask i18n --add-missing 会把缺失项写入 en.json。当美式与英式拼写不同(如 Centre、Colour、Licence)时,把英式拼写加入 assets/locales/en-GB.json,该文件只保存有差异的消息。

语言覆盖

新标签需要 en、ja、zh、de、ko。其他目录为部分翻译,缺失时回退到英文;cargo xtask i18n 会报告缺口但不失败,而 every_complete_catalog_carries_every_english_message 会因缺少 ja 或 zh 条目而失败。提交前运行 cargo xtask lists --fix,然后运行 cargo xtask i18n。

排序目录

目录每条消息一行,按 id 排序,不得重复 id。cargo xtask lists(属于 cargo xtask ci 与 Lists 工作流)会在文件未排序时失败。新消息不再写入目录(见待定语言文件);若编辑已有消息,由 --fix 放置。两个 PR 添加相邻键时仍会在这些文件上冲突,需重新变基后再次运行 --fix。

待定语言文件

新字符串放入新的 assets/locales/pending/<slug>.json(小写、连字符、以改动命名),绝不直接放入目录。文件将语言代码映射为 {"message id": "text"},提供英文及你能翻译的其他语言;省略的语言回退到英文。id 不得已存在于该语言目录或其他 pending 文件中,否则构建与 cargo xtask lists 会失败;修改已有消息则编辑目录。不要排序或折叠,因为应用、cargo xtask i18n 与测试会把 pending 文件视作目录的一部分。合并后,Generated files 工作流会在 main 上运行 cargo xtask fold-pending,切勿在 PR 中运行。新的 ATTRIBUTION.md 行同样写入新的 attribution/pending/<slug>.md,而不是表格;各文件夹 README 有详细说明。

其他排序列表

语言列表位于 crates/ui-egui/src/i18n.rs,每行一种,英文在前,其余按 id 排序,并有测试检查。新增语言需要一个内嵌目录并在此注册。mod 行每行一条,放入所属的已排序分组。docs/features.md 与 THIRD-PARTY-LICENSES.txt 在每次合并后于 main 生成,切勿在 PR 中编辑或重新生成。

措辞与术语

使用术语表(docs/book/src/reference/glossary.md)中的术语;一词多义(Construction、Flat、Round、Normal、Gap、Clearance)为每种含义各设一个目录条目。新概念应补充其术语。测试还要求标签页、面板、菜单标签与命令标签都出现在 en.json 中。