语言包教程
ECHO 本体自带五种内置语言。语言包让作者在 Workshop 里提供第六种(或更多)界面文案,例如文言文 lzh。索引 → 创意工坊 SDK。
翻译字符串只活在工坊 JSON 里,不会改 ECHO 安装包。用户订阅并「使用」后,在语言设置里才能选到你的 locale。缺的 key 回退到 fallback(通常是 zh-CN)。
30 秒:文言文示例
Section titled “30 秒:文言文示例”- 拷贝官方示例:
或新建:
Terminal window node .\bin\echo-workshop-sdk.mjs example locale-wenyan .\wenyancd .\wenyaninit .\wenyan --recipe wenyan-locale - 打开
content/locale.json,看strings里 key → 译文。 npm run check- 发布后在 ECHO 语言设置里选「文言文」(以你写的
label为准)。
locale.json 核心字段
Section titled “locale.json 核心字段”{ "type": "echo-workshop-locale-pack", "schemaVersion": 1, "id": "echo.locale.lzh", "title": "文言文", "locale": "lzh", "label": "文言文", "nativeLabel": "文言", "fallback": "zh-CN", "strings": { "route.workshop.label": "工坊", "route.workshop.description": "掌 Steam 工坊之从订、验核与用否。" }}| 字段 | 含义 |
|---|---|
locale | BCP 47 风格代码(如 lzh、en-GB),勿与内置五种冲突除非你要覆盖行为 |
label / nativeLabel | 设置里显示的名字 |
fallback | 缺 key 时用哪种内置语言补全 |
strings | 键值表;key 必须与 ECHO 定义的 string id 一致 |
strings 的 key 必须是 ECHO 已暴露的界面 string id(示例里带 route.、communityPage. 等前缀)。编一个不存在的 key 不会报错,但界面也不会出现你的翻译。参考 examples/locale-wenyan/content/locale.json 里已有 key 的范围,或从 wenyan 示例删减后逐批替换。
- 从
wenyan-localerecipe 或locale-wenyan示例起步,保留完整 key 集合。 - 先翻高频:工坊、播放、设置、错误提示等用户常见路径。
- 未翻的 key 靠
fallback显示简体中文(或你设的 fallback)。 - 每批改完
npm run check— 确保 JSON 合法、manifest 同步。 description写清这是什么语言、适合谁、不全翻译时行为如何。
不必一次翻几千条。partial locale 可发布,但要在列表描述里说明「部分界面仍为 fallback 语言」。
用 CLI 微调
Section titled “用 CLI 微调”npm run set -- --title "文言界面"npm run set -- --description "将 ECHO 界面译为文言,缺句回退简体中文。"语言包没有 scaffold 换档;改内容就是编辑 locale.json。
与内置语言的关系
Section titled “与内置语言的关系”| 问题 | 答案 |
|---|---|
| 会替换官方简中吗? | 不会;用户要在设置里主动选你的 locale |
| 能只改几个词吗? | 可以,只写要改的 key,其余走 fallback |
| 需要插件吗? | 不需要;kind 是 locale-pack |
| Steam 标签 | 生成项目会带该 kind 默认 tag,quality 可能 warning 未配置 tag |
npm run check全绿- 发布与更新 走创作台
- 测试账号:订阅 → 使用 → 设置 → 语言 选你的 pack
- 逛一圈工坊、播放、设置页,看 fallback 是否可接受
用户侧工坊流程 → Steam 创意工坊。
- JSON 内容概览
- 官方示例 · locale-wenyan
- 开发调试 — watch 边改边 check