Track Unity source, scenes, editable assets, licenses, tools and QA evidence. Exclude generated caches, Windows builds and raw runtime logs.
55 lines
6.0 KiB
Markdown
55 lines
6.0 KiB
Markdown
# 多语言实施计划
|
||
|
||
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。 |
|
||
|
||
## 验收用例
|
||
|
||
1. 初次中文、英文及不支持的系统语言;有效、无效手动偏好的优先级。
|
||
2. 首页展开、当前标记、鼠标选择、外部点击与 Esc 收起、键盘 Tab/Enter/Space。
|
||
3. 修改底盘和四槽装备,切换 30 次;选择、蓝图、材料、回收记录不变,没有重复按钮或订阅。
|
||
4. 结算返航或机毁后切换语言,已有报告、通知和物资名称一起更新。
|
||
5. HUD、货仓、改装、路线、暂停、世界标牌均检查双语,参数不泄漏、中文不显示方块。
|
||
6. 1280×720、1920×1080、2560×1440 与超宽屏中按钮不被裁切,列表向上展开,机库内容可滚动。
|
||
7. 原有存档测试通过;语言选择不改写 profile.json、range.json 或任何货物/结算数据。
|
||
8. Windows 成品重启后保留选择,不依赖联网;记录 Console、测试、构建与实际截图。仅完成过的验证标记为通过。
|
||
|
||
## 实际实施选择
|
||
|
||
Unity MCP 查询到兼容包 `[email protected]`。安装请求被 Unity 包服务器拒绝,明确报告 Unity Hub 未登录、下载请求缺少认证。因此本轮采用 `LocalizationCatalog` 配置资产与 `en.json`、`zh-Hans.json` 两份本地表,不引入未安装的运行时依赖。共 134 个文本键;两份表启动时加载到内存,可离线使用。未来接入官方包时保留现有键和 `GameLocalization` 调用入口。
|
||
|
||
中文字体使用本机已有且未修改的 Noto Sans SC,已从二进制读取许可与版权并归档完整 OFL 文本。字体与派生图集的路径、版本和哈希见 [素材台账](AssetSources.md)。PanelSettings 保留原有 ICU 资源,并增加文本设置与字体引用。
|
||
|
||
UI Toolkit 的程序化控件同时接收界面键盘事件和 Input System 提交输入,并在同一帧去重;语言列表内 Tab / Shift+Tab 循环选择,Enter / Space 确认,Esc 收起。切换仅重建当前 UI,上下文、场景和游戏数据保持。
|
||
|
||
后续编辑文字以 `Tools/Localization/BuildTables.py` 为源生成双语 JSON,再由 Unity MCP 刷新并执行 `LocalizationBuilder.Configure()` 补齐新增字符。添加语言时追加同键表、配置 Catalog 与编辑器配置入口中的语言列表,并提供对应字体和布局检查。实际验证与成品见 [多语言验收记录](../QA/Localization/Acceptance.md)。
|