render and server locale parity fixes
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# 40250 简体中文适配(进行中)
|
||||
|
||||
## 当前可运行原型
|
||||
|
||||
先运行 `cmake --build build-release --target locale_proto_patch`,再运行
|
||||
`python3 script/build_zh_locale.py`,在 `build/zh-locale/Client` 生成独立的测试客户端目录。
|
||||
它复制 40250 `Eternexus/locale_en/locale/en` 的文件结构,配置 `locale.cfg` 为
|
||||
`10002 936 zh`,并将中文内容按键合入 `locale_game.txt`、`locale_interface.txt`。
|
||||
旧龙驹语言包中的占位符与 40250 不一致时保留英文原文;报告在
|
||||
`build/zh-locale/zh-locale-report.json`。职业与帝国说明采用龙驹中文文本。
|
||||
|
||||
生成目录通过符号链接共用仓库 `Client` 的 pack 等资源,仅用于本机验证;
|
||||
不会修改原始 40250 客户端,也不是可分发包。可用以下命令启动:
|
||||
|
||||
```sh
|
||||
build-release/native_render/mt_native_render \
|
||||
--live-client build/zh-locale/Client --login-screen --width 1024 --height 768
|
||||
```
|
||||
|
||||
物品与怪物原型从 40250 原版解压,按线上 40250 服务端 `gb2312name` 的 VNUM 快照
|
||||
只替换 `szLocaleName` 字段后按原格式
|
||||
重新压缩加密;生成器验证记录数、结构大小、除名称外所有字节不变,以及写出后的
|
||||
解压往返一致。`itemdesc.txt`、`skilldesc.txt`、`skilltable.txt`、地图坐标、UI 脚本和图像
|
||||
仍为 40250 原版。龙驹版本的原型不能整份覆盖。
|
||||
|
||||
## 已核对的差异
|
||||
|
||||
- 40250 `locale_game.txt` 有 817 个键;当前 771 个安全替换为中文,46 个保留英文。
|
||||
其中 12 个在龙驹文件中的格式占位符不一致,需逐条重译或验证。
|
||||
- 40250 `locale_interface.txt` 的 326 个键均找到中文对应项。
|
||||
- 40250 客户端物品原型 5,743 条、怪物/NPC 原型 1,334 条都已按 VNUM 写入
|
||||
`data/zh_40250/` 中的服务端名称快照;其中分别有 1,608 和 346 个名称仍不含汉字。
|
||||
- 40250 服务端(`192.168.21.203`,2026-09-27 只读 SSH 核对)当前数据库配置为
|
||||
`LOCALE=newcibn`、`DB_NAME_COLUMN=gb2312name`,有 `newcibn` 语言目录。
|
||||
因此客户端采用 CP936;服务端广播字典已在 2026-09-28 完成首轮补齐,名称与任务文本仍需核对。
|
||||
- 文本阶段的 `port_login_flow_test` 使用生成目录通过完整离线登录、进场、移动、战斗、
|
||||
商店及仓库流程;macOS 原生窗口的登录服务器选择文字已目视确认显示中文。
|
||||
名称原型加入后,测试运行确认原生客户端已加载中文的物品 19(武士刀+9);
|
||||
原英文测试中的名称断言及依赖英文布局的仓库点击断言不再适用,完整中文流程待专门验收。
|
||||
|
||||
## 后续验收
|
||||
|
||||
1. 根据线上 40250 VNUM 及用途逐条翻译仍为英文的 1,608 个物品、346 个怪物/NPC;
|
||||
同步更新服务端名称和客户端快照。`itemdesc`、`skilldesc` 也需按 40250 键和语义逐项合并。
|
||||
2. 补齐 46 个英文回退键,复核 12 个格式不兼容键。
|
||||
3. 在游戏窗口验证中文字符、字体、输入法、换行和 UI 宽度,再联机检查登录、背包、
|
||||
商店、任务、公告及聊天。
|
||||
4. 完成后制作注册到 `pack/Index` 的中文 pack,并在 macOS 和 Android 上分别测试。
|
||||
|
||||
## 服务端适配进度(2026-09-28)
|
||||
|
||||
服务端 `newcibn/locale_string.txt` 原有 733 个中文键,和 40250 英文参考字典的
|
||||
762 个键比对后缺少 36 个。`script/build_zh_server_locale.py` 保留原字典的 733 个键
|
||||
及其原始 GBK 译文,补齐 36 个 40250 键,并修复两条丢失 `%d` 参数的译文;旧字典
|
||||
特有的 7 个键继续保留。生成文件有 769 个键,全部译文按 GBK 编码,格式参数与
|
||||
韩文调用键逐条一致。生成产物在 `build/zh-locale/server/newcibn/locale_string.txt`;
|
||||
`python3 script/test_build_zh_server_locale.py` 验证键和旧译文保持不变。
|
||||
|
||||
已将该文件部署到 `/usr/metin2/server/share/locale/newcibn/locale_string.txt`,远端
|
||||
SHA-256 为 `7f16a8c7b9d08774ec90c4a86b80b17364b072c0af9e2b76a0ea9df027adaef8`。
|
||||
原文件保存在同目录的 `locale_string.txt.pre-zh-20260928`。在确认没有外部玩家连接后,
|
||||
仅重启了第 1 频道的三个 `game` 进程和 `game99`,认证及数据库进程未重启;四个
|
||||
游戏进程和对应监听端口均已恢复。服务端日志中还存在此前就有的
|
||||
`new_quest_lv52` 缺少 `is_destination_village` 函数错误,本轮没有修改任务脚本。
|
||||
|
||||
只读导出的线上数据库中,`item_proto` 有 5,743 条、`mob_proto` 有 1,334 条,
|
||||
`gb2312name` 全部能按 GBK 解码,但分别有 1,608 和 346 个名称不含汉字。
|
||||
`script/audit_zh_server_names.py` 将线上 VNUM 与旧中文名称表比对,发现物品 1 处、
|
||||
怪物/NPC 20 处同 VNUM 不同名(例如 VNUM 101 在线上是 `Wild Dog`,旧表是`幼狼`)。
|
||||
旧表并非完整的 40250 名称表,因此本轮没有批量修改数据库。客户端已改用本次
|
||||
只读导出的服务端名称快照,见 `data/zh_40250/README.md`,两侧 VNUM 名称由此一致。
|
||||
Reference in New Issue
Block a user