多语言与地区扩展
- 状态:已确认:目标是保留多语言能力。策划建议:具体实现方案(本文)。待验证:标为 T 的几项。
- 日期:2026-10-21
- 背景:主语言是简体中文。将来可能推广到台湾等地区,需要繁体或双语方案。现在不做翻译,但现在就按可翻译的方式制作,避免以后返工。
- 影响范围:所有面向玩家的文字、自研插件、CE 与云系列配置、美术贴图与界面、数据存储、部署结构。
一、核心原则
现在只写简体,但每一句话都要能被替换。 以后要上繁体或英文时,只需要加语言文件,不改代码、不改配置结构、不重做贴图。
这件事的成本几乎全部集中在开发初期。初期每句话多花几秒;等到后期才回头补,会变成一次全量返工。
二、各层能力与方案
| 层 | 现有能力(知识库已核) | 本项目方案 |
|---|---|---|
| 资源包语言文件 | 原版客户端会按玩家设置的语言自动选用 zh_cn.json、zh_tw.json、en_us.json |
物品名、方块名等能用翻译键的地方一律用翻译键。首发只填 zh_cn,其他语言先留空壳文件 |
| CraftEngine | <i18n:键> 在服务端解析,全服统一一种语言;<l10n:键> 在发包时按每个玩家的语言解析 |
CE 内容一律用 <l10n>,支持同一个服里不同玩家看到不同语言 |
| 云系列 | 每个插件只有一份 lang.yml 或 messages.yml,全服共用一种语言。没有看到按玩家切换语言的能力 |
按地区各部署一份语言配置(见第三节)。可翻译的原版物品名({item})会自动按玩家语言显示 |
| 自研插件 | 我们自己写 | 强制要求:所有文字通过语言键读取,按玩家的客户端语言选择,缺失时回退到 zh_cn。语言文件和代码分开存放 |
T-L1 待验证:CloudItems 和 CloudUI 的物品名、界面文字能否直接写 CE 的 <l10n> 标签或原版翻译组件。如果能,单服双语的覆盖面会大很多。
三、地区扩展的部署思路
主路线:一个地区一套部署,用对应的语言包。
- 网易中国版只面向中国大陆。台湾玩家通常不走网易平台,需要另开入口(国际版或其他平台),账号认证也不同。所以台湾服大概率本来就是一套独立部署。
- 独立部署时,云系列直接换整份繁体的
lang.yml,不需要它支持按玩家切换语言。云系列配置本身也能读繁体键名。 - 能做到"单服多语言"的部分(资源包、CE、自研插件),顺带也就支持了双语服,作为可选方案。
| 方案 | 适用场景 | 云系列文字 | 其他文字 |
|---|---|---|---|
| A. 地区独立服(主路线) | 台湾服、海外服 | 换整份语言文件 | 跟随玩家语言或地区默认语言 |
| B. 单服双语(可选) | 一个服同时接待两地玩家 | 只能保留一种语言 | 跟随玩家的客户端语言 |
四、制作规范(所有人都要遵守)
文字
- 不在代码或配置里写死玩家能看到的文字,一律写成语言键,比如
acorn.npc.smith.greet。 - 整句一个键,用占位符插入变量:
你获得了 {item} ×{count}。不要拼接句子,因为不同语言的语序不一样。 - 键名规则:
acorn.<模块>.<对象>.<用途>,全小写英文,不用拼音。 - 专有名词统一管理:地名、生物名、装备名、系统名都登记到《术语表》,翻译时以术语表为准,不让同一个东西出现几种叫法。
- 语言文件集中存放:主文件
zh_cn;zh_tw和en_us先建空壳,保证缺失时回退正常。
美术与界面
- 贴图里尽量不画文字。 界面标题、按钮文字都用文字层叠加,不画进图里。
- 非画不可的(Logo、海报、宣传图、特殊标题字):保留分层源文件,文字单独一层,并登记到《需本地化的美术资产清单》。
- 界面要给文字留宽度。 繁体和简体宽度差不多;英文通常长 30% 到 50%,按钮和标题栏留出余量,或者支持自动缩字。
- 不用谐音梗或简体特有的字形玩笑做核心内容,比如藏在字形里的谜题。遗迹解谜要用图形、符号、声音,不要依赖汉字。
数据
- 数据库、奖励账本、发现记录里只存 ID 和键,不存显示名。 否则换语言以后,旧记录会变成另一种语言,或者对不上。
五、地区差异内容(预留)
除了文字,换地区还可能涉及以下内容。现在不做,但要做成可拆卸的模块:
- 网易专属:网易认证、商业化发货接口、防沉迷、实名提示。它们只属于网易部署,不能写进通用玩法逻辑里。
- 支付与价格、法规提示、节日活动(大陆和台湾的节日不完全相同)。
- 文化敏感内容:上线前做一次地区审查。
六、对其他文档的影响
| 对象 | 要求 |
|---|---|
| 美术(GPT) | 遵守第四节第 6 到 8 条,写进《美术资产规范》 |
| 开发(Claude 窗口) | 遵守第 1 到 3 条和第 10 条;按玩家语言加回退机制,写进《开发规范》;网易专属功能单独成模块 |
| 用户(配置) | CE 配置用 <l10n>;云系列文字只改 lang.yml 或 messages.yml,不散写在各处 |
| 策划(我) | 维护《术语表》,从第一个专有名词开始登记;设计解谜时不依赖汉字字形 |
| D001 | 部署结构要预留"一个地区一套部署"的可能性。版本锁定、插件授权都要考虑以后多一套部署(授权是否需要额外购买,问作者) |
七、待验证与待办
- T-L1:CloudItems 和 CloudUI 的文字能否使用
<l10n>或原版翻译组件 - T-L2:网易客户端在资源包语言文件方面的表现与国际版是否一致
- 问云系列作者:多一套地区部署时,授权怎么处理
- 我:建立《术语表》(
策划/术语表.md)