Skip to content

4fuu/Mewgenics-zh-CN

Repository files navigation

Mewgenics 简体中文汉化补丁

为 Edmund McMillen 的猫咪养成 roguelike 游戏 Mewgenics 制作的社区中文本地化补丁。

⚠️ 游戏处于 Early Access 阶段,翻译内容可能随版本更新而变化。

安装补丁(玩家)

方式一:一键补丁工具(推荐)

  1. Releases 下载 mewpatch.exe
  2. mewpatch.exe 放入游戏目录(Steam/steamapps/common/Mewgenics/
  3. 双击运行 mewpatch.exe,等待自动完成(解包→翻译→字体替换→打包→应用)
  4. 启动游戏,在设置中将语言切换为中文

工具会自动备份原始 resources.gpakresources.gpak.bak。如需还原,将备份文件改回 resources.gpak 即可。

也可以在命令行中使用 mewpatch help 查看所有命令。

方式二:直接替换资源文件(已弃用)

  1. Releases 下载 resources.gpak
  2. 备份游戏目录下的原始 resources.gpak(重命名为 resources.gpak.bak 即可)
  3. 将下载的 resources.gpak 放入游戏目录
  4. 启动游戏,在设置中将语言切换为中文

如需还原,将备份文件改回 resources.gpak 即可。

参与翻译(贡献者)

翻译存储在 translation_progress.json 中,格式为:

{
  "文件名::KEY": "中文译文",
  "misc.csv::AREA_NAME_TUTORIAL": "小径",
  ...
}

如何贡献

  1. Fork 本仓库
  2. 编辑 translation_progress.json,修正你认为不准确的翻译
  3. 提交 Pull Request,说明修改了哪些条目及原因

或者直接提交issue进行讨论。

翻译规范

  • 参考 glossary.json 中的术语表,保持译名一致
  • 保留所有标记标签,不翻译标签内容:
标记 含义
[m:happy] 角色表情
[s:1.5] 文字缩放
[b]...[/b] 粗体
[i]...[/i] 斜体
[w:500] 等待(毫秒)
{catname} 动态变量(猫名)
{his} {he} 代词变量
  不换行空格
  • 译文要自然流畅,符合中文游戏玩家的阅读习惯
  • 如果原文只是标点或无需翻译,保持原样

开发者指南

将本仓库克隆到游戏目录(Steam/steamapps/common/Mewgenics/)。

补丁工具(Go)

补丁工具是一个 Go 程序,编译为单个独立二进制文件 mewpatch.exe。翻译数据(translation_progress.json)、中文字体(MaoKenZhuYuanTi-MaokenZhuyuanTi-2.ttf)以及游戏原始字体备份(unicodefont.swf.bak,作为 CJK fallback)通过 go:embed 嵌入到二进制中,用户无需额外文件。

编译

需要 Go 1.25+:

go mod tidy                        # 解析依赖
go build -o mewpatch.exe ./cmd/    # 编译

⚠️ 编译前置条件:仓库未包含 unicodefont.swf.bak(属于游戏原始资源,体积大且涉及版权)。 编译前需要从你的游戏目录手动复制:

  1. mewpatch extract 解包游戏的 resources.gpak
  2. extracted/swfs/unicodefont.swf 复制为本仓库根目录下的 unicodefont.swf.bak

命令

命令 说明
mewpatch patch 一键执行全部步骤(解包→翻译→字体→打包→替换)
mewpatch extract 解包 resources.gpakextracted/
mewpatch apply-translations 将内嵌翻译数据应用到 CSV 文件
mewpatch replace-font 替换 unicodefont.swf 中的 CJK 字体
mewpatch pack 重新打包为 resources_patched.gpak
mewpatch apply 用补丁文件替换 resources.gpak(自动备份)
mewpatch info 查看 GPAK 文件信息
mewpatch help 显示帮助

双击运行时默认执行 patch,完成后等待按回车退出。

源码结构

文件 说明
embed.go go:embed 嵌入翻译数据和字体文件(package mewpatch
cmd/main.go CLI 入口和 patch 一键流程
cmd/gpak.go GPAK 格式解析、解包、打包
cmd/translate.go 读取内嵌翻译数据,应用到 CSV 的 zh
cmd/font.go TTF → SWF 字形转换,替换 unicodefont.swf

翻译工作流(Python)

安装 uv,然后按以下流程操作。

完整工作流

uv sync  # 初始化项目和依赖
uv run main.py extract        # 1. 解包资源文件
uv run main.py add-zh-column  # 2. 为 CSV 添加 zh 列
uv run main.py translate      # 3. AI 自动翻译(需要 API Key)
uv run main.py wrap           # 4. 自动换行(按显示宽度)
uv run main.py pack           # 5. 重新打包
uv run main.py apply          # 6. 应用补丁

命令详解

extract — 解包资源文件

resources.gpak 解包全部 18524 个文件到 extracted/ 目录(约 4.7 GB)。同时生成两个元数据文件供 pack 使用:

  • extracted/__gpak_header.bin — GPAK 文件头(4 字节)
  • extracted/__gpak_index.txt — 文件名列表(保持原始顺序)
uv run main.py extract

add-zh-column — 添加中文列

extracted/data/text/ 下所有 CSV 文件的每一行末尾追加空的 zh 列。如果 zh 列已存在则跳过。对 additions.csv 还会自动设置语言元数据(CURRENT_LANGUAGE_NAME中文)。

uv run main.py add-zh-column

translate — AI 翻译

调用通义千问(qwen3-max)将英文文本翻译为中文,写入 CSV 的 zh 列。翻译进度保存在 translation_progress.json,中断后可续译。20 线程并发调用 API,翻译时参考 glossary.json 术语表保证译名一致。

需要先设置 API Key:

export DASHSCOPE_API_KEY="your-api-key"        # Linux/macOS
set DASHSCOPE_API_KEY=your-api-key              # Windows CMD
$env:DASHSCOPE_API_KEY="your-api-key"           # PowerShell
uv run main.py translate                           # 翻译全部
uv run main.py translate --dry                     # 仅查看进度,不翻译
uv run main.py translate --apply-only              # 仅应用已有翻译,不调用 AI
uv run main.py translate --files events.csv        # 只翻译指定文件
uv run main.py translate --batch-size 100          # 每批 100 条
参数 默认值 说明
--dry 仅显示翻译进度统计,不调用 API
--apply-only 仅将已有翻译写入 CSV,不调用 AI
--files FILE [FILE ...] 全部 19 个 CSV 只翻译指定的 CSV 文件
--batch-size N 50 每次 API 调用包含的文本条数

wrap — 自动换行

按显示宽度对翻译文本自动插入换行符。中文字符宽度计为 2,英文/数字计为 1,标签([...]{...})计为 0。优先在中文标点(句号、逗号等)后断行,避免在词中间断开。

uv run main.py wrap                        # 默认宽度 40 换行
uv run main.py wrap --max-width 50         # 指定最大显示宽度
uv run main.py wrap --dry                  # 仅查看会修改的条目
uv run main.py wrap --files items.csv      # 只处理指定文件
参数 默认值 说明
--max-width N 40 每行最大显示宽度(中文字符=2,英文=1)
--files FILE [FILE ...] 全部 只处理指定的 CSV 文件
--dry 仅显示会修改的条目,不写入文件

pack — 重新打包

extracted/ 目录按原始索引顺序重新打包为 resources_patched.gpak。未解包的文件会从原始 resources.gpak 中读取。

uv run main.py pack

apply — 应用补丁

resources_patched.gpak 替换为 resources.gpak。首次执行时自动备份原文件为 resources.gpak.bak

uv run main.py apply

info — 查看 GPAK 信息

显示 resources.gpak 的文件数量、大小、文件类型分布、CSV 文件列表等。

uv run main.py info

替换中文字体

游戏自带 unicodefont.swf 作为 CJK fallback 字体。如果觉得默认字体不好看,可以替换:

uv run replace_unicode_font.py                    # 用默认 TTF 替换
uv run replace_unicode_font.py --font other.ttf   # 用指定 TTF 替换
uv run replace_unicode_font.py --restore           # 恢复原始字体
参数 默认值 说明
--font FILE MaoKenZhuYuanTi-MaokenZhuyuanTi-2.ttf 要嵌入的 TTF 字体文件
--dry 仅显示转换信息,不写入文件
--restore 从备份恢复原始字体

替换后需要重新 packapply 才能在游戏中生效。

汉化目标文件

2026/4 版本起:游戏将所有文本合并到单个 data/text/combined.csv(约 6.4 MB,UTF-8 BOM)。 文件中以 // 文件名.csv 注释行作为 section 分隔,translation_progress.json 仍按 文件名::KEY 索引,工具会自动识别 section。

combined.csv 包含的 19 个 section:

section 内容
events.csv 随机事件文本(战斗、探索、剧情事件)
npc_dialog.csv NPC 对话
abilities.csv 主动技能名称和效果描述
items.csv 物品名称和描述
passives.csv 被动技能名称和效果描述
units.csv 单位/角色名称和描述
keyword_tooltips.csv 游戏关键词的工具提示说明
cutscene_text.csv 过场动画文本
furniture.csv 家具名称和描述
misc.csv 杂项文本(UI、地名、系统提示等)
mutations.csv 猫咪变异名称和效果描述
progression.csv 游戏进度相关(解锁提示、成就等)
enemy_abilities.csv 敌人技能名称和描述
additions.csv 追加文本(含语言元数据)
weather.csv 天气名称和描述
teamnames.csv 队伍名称
additions2.csv 追加文本 2
pronouns.csv 代词系统(动态替换角色性别代词)
additions3.csv 追加文本 3

运行 uv run main.py translate --dry 查看各 section 翻译完成度。

项目文件

文件 说明
embed.go Go embed 嵌入翻译数据和字体
cmd/main.go Go 补丁工具 CLI 入口
cmd/gpak.go GPAK 格式解析、解包、打包
cmd/translate.go 应用内嵌翻译到 CSV
cmd/font.go TTF → SWF 字形转换
main.py Python CLI 入口(解包/打包/应用补丁)
translate.py AI 翻译逻辑(批量翻译、术语提取、进度管理)
ai.py AI API 封装(通义千问 qwen3-max)
glossary.json 术语表(英文 → 中文映射,翻译时强制使用)
translation_progress.json 翻译数据(文件名::KEY → 中文译文,社区协作核心文件)
replace_unicode_font.py 替换 unicodefont.swf 中的 CJK fallback 字体

依赖

补丁工具(编译):

  • Go >= 1.25
  • golang.org/x/image(TTF 字体解析)

翻译工作流(开发):

  • Python >= 3.14
  • uv
  • openai(AI 翻译时需要)
  • fonttools(替换字体时需要)

其他说明

  • 如果需要临时运行命令,就使用uv run python即可。

许可

本项目为社区汉化工具,不包含任何游戏资源文件。

About

Mewgenics 简体中文汉化补丁

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors