Track Unity source, scenes, editable assets, licenses, tools and QA evidence. Exclude generated caches, Windows builds and raw runtime logs.
6.0 KiB
多语言实施计划
2026-11-12。范围:Windows PC 键鼠灰盒版本。首页以当前机库页为准;首批提供简体中文(zh-Hans)与 English(en),新增语言沿用同一套表与字体配置。
玩家可见行为
- 主页整个视口右下角固定语言按钮,独立于左侧机库内容。1920×1080 参考分辨率下距右、下各 32,按钮至少 240×48。文字采用
语言 / Language · 简体中文或语言 / Language · English。 - 点击展开向上的语言列表,以语言本名显示选项和当前选择。选择立即更新当前页面;点击外部或按 Esc 收起并将焦点还给按钮。支持 Tab、Enter 和 Space。
- 切换保留底盘、四槽配装、研究状态、已有结算报告与存档,不重建场景或重置出击。
- 首次启动按已保存选择 → 系统语言匹配 → English 回退。中文系统首批映射到简体中文。偏好独立于正式出击和试验场存档,重启仍生效。
- 覆盖机库、HUD、货仓、局内改装、路线、暂停、通知、结算、底盘与装备名称及说明、物资与蓝图名称、交互提示和世界标牌。IRONSPORE 与按键名称保留。
技术与目录
优先用 Unity 官方 Localization 包与 String Tables;通过 Unity MCP 查询兼容版本、安装、创建资产并检查离线构建。若当前包源不可用,记录实际失败后采用本地可扩展的表驱动适配层,在验收记录中说明最终选择。
运行时代码放在 Assets/Game/Scripts/Localization/;语言与表放在 Assets/Game/Localization/;项目派生字体和 UI 文本设置放在 Assets/Game/UI/Fonts/。第三方字体原件分别放在 SourceAssets/ThirdParty/<发行方>/<字体>/ 与 Assets/ThirdParty/<发行方>/<字体>/,许可放在 Docs/Production/Licenses/<发行方>/<字体>/,来源、版本、日期、SHA-256 登记到素材台账。
文字用稳定键和完整句式,数字等动态内容使用参数。数据 ID、文件名、蓝图 ID、回收事件编号与存档版本保持稳定。报告和通知保存键及参数,显示时翻译。查表驻留内存,HUD 不逐帧异步加载资源。英文为缺词回退,开发检查覆盖缺键及参数不一致。
中文字体同时配置 UI Toolkit 的 PanelTextSettings 与世界 TextMesh 的 Font/material;沿用已有序列化 PanelSettings 及 ICU 引用。字体和语言表随 Windows 包离线提供。字体选用经核实许可的免费 CJK 字体,实际文件和许可一同归档。
执行顺序
| 编号 | 工作 | 完成条件 |
|---|---|---|
| L1 | 核对 Unity MCP、包源及实际兼容版本;建立语言服务、双语表、初始化与偏好。 | 两种语言可离线取词;优先级与回退明确。 |
| L2 | 获取并登记中文字体,导入设置与 UI、世界字体引用。 | 中文无缺字;保留 PanelSettings 的 ICU;许可随包。 |
| L3 | 提取全部玩家文字并翻译,保留游戏数据 ID。 | 表键覆盖、占位参数一致;结算与提示可重新翻译。 |
| L4 | 首页右下角按钮与上弹列表,鼠标、键盘、收起、焦点及即时刷新。 | 选择后即时显示,重启记忆;机库选择保持。 |
| L5 | 其余页面与世界标牌绑定语言变化,保存当前 UI 上下文。 | 不重建玩法场景;改装比较、货物、倒计时和通知正确。 |
| L6 | 自动化与可视化回归。 | 语言优先级、全键与格式、旧存档不变、反复切换及不同分辨率通过。 |
| L7 | 通过 Unity MCP 构建并启动 Windows 版,归档截图与结果。 | 离线运行双语及重启偏好检查;产物与限制记录在 Docs/QA/Localization。 |
验收用例
- 初次中文、英文及不支持的系统语言;有效、无效手动偏好的优先级。
- 首页展开、当前标记、鼠标选择、外部点击与 Esc 收起、键盘 Tab/Enter/Space。
- 修改底盘和四槽装备,切换 30 次;选择、蓝图、材料、回收记录不变,没有重复按钮或订阅。
- 结算返航或机毁后切换语言,已有报告、通知和物资名称一起更新。
- HUD、货仓、改装、路线、暂停、世界标牌均检查双语,参数不泄漏、中文不显示方块。
- 1280×720、1920×1080、2560×1440 与超宽屏中按钮不被裁切,列表向上展开,机库内容可滚动。
- 原有存档测试通过;语言选择不改写 profile.json、range.json 或任何货物/结算数据。
- Windows 成品重启后保留选择,不依赖联网;记录 Console、测试、构建与实际截图。仅完成过的验证标记为通过。
实际实施选择
Unity MCP 查询到兼容包 com.unity.localization@1.5.14。安装请求被 Unity 包服务器拒绝,明确报告 Unity Hub 未登录、下载请求缺少认证。因此本轮采用 LocalizationCatalog 配置资产与 en.json、zh-Hans.json 两份本地表,不引入未安装的运行时依赖。共 134 个文本键;两份表启动时加载到内存,可离线使用。未来接入官方包时保留现有键和 GameLocalization 调用入口。
中文字体使用本机已有且未修改的 Noto Sans SC,已从二进制读取许可与版权并归档完整 OFL 文本。字体与派生图集的路径、版本和哈希见 素材台账。PanelSettings 保留原有 ICU 资源,并增加文本设置与字体引用。
UI Toolkit 的程序化控件同时接收界面键盘事件和 Input System 提交输入,并在同一帧去重;语言列表内 Tab / Shift+Tab 循环选择,Enter / Space 确认,Esc 收起。切换仅重建当前 UI,上下文、场景和游戏数据保持。
后续编辑文字以 Tools/Localization/BuildTables.py 为源生成双语 JSON,再由 Unity MCP 刷新并执行 LocalizationBuilder.Configure() 补齐新增字符。添加语言时追加同键表、配置 Catalog 与编辑器配置入口中的语言列表,并提供对应字体和布局检查。实际验证与成品见 多语言验收记录。