1. 为什么我要自己动手搞定 Aseprite 汉化
Aseprite 这个像素画工具,在独立游戏圈和像素艺术圈里基本是绕不开的。它轻量、专注、对像素网格和调色板的支持非常到位,很多做独立游戏的朋友,从角色帧动画到场景 tile 的绘制,整个流程都靠它完成。但问题也很直接:官方版本是英文界面,对不少刚入门的朋友来说,菜单里那些 Layer、Frame、Onion Skin、Palette 之类的词,看着就头大。网上虽然能搜到各种“汉化版”,但来源不明、版本老旧、捆绑东西的情况太多了,用起来心里不踏实。
所以这篇内容,我想把“自己动手把 Aseprite 汉化”这件事讲清楚。核心思路不是去下载来路不明的成品,而是走一条更稳妥的路:拿到官方源码,自己编译,再把语言文件替换进去。整个过程涉及Aseprite、汉化、源码编译、GitHub这几个关键词,听起来好像有点门槛,但我尽量用“大爷也能看懂”的方式来说,把每一步为什么这么做、可能踩什么坑都讲明白。适合谁看?适合所有想用中文界面、又不想用来路不明版本的朋友,哪怕你之前没编译过任何东西,跟着走也能搞定。
我先说清楚一件事:Aseprite 是商业软件,官方在售。它的源码是公开的,但编译出来的成品用于个人学习、研究是没问题的。我下面讲的是基于公开源码的本地编译和界面语言替换,重点在于“自己动手、来源可控”,而不是鼓励去传播成品。这个边界大家心里有数就行。
2. 整体思路与方案选型:为什么不直接下成品
2.1 三条路摆在面前,我为什么选源码编译
想用中文界面的 Aseprite,市面上大概有三条路。第一条,直接搜“Aseprite 汉化版下载”,找个网盘链接拉下来。第二条,去某些论坛找别人编译好的包。第三条,自己从官方仓库拿源码,本地编译,然后替换语言文件。
前两条路最大的问题是不可控。你拿到的是一个 exe 或者压缩包,里面到底改了什么、有没有夹带东西、版本是不是对得上,全靠发布者的良心。我见过太多“汉化版”其实是老版本套了个壳,甚至有的把更新功能都阉割了。对于要长期用来做项目的人来说,这种不确定性是致命的——你今天画的文件,明天换个版本可能就打不开了。
第三条路虽然要多花点时间,但好处是每一步都在自己眼皮底下。源码来自官方仓库,编译工具链是公开的,语言文件是纯文本的 JSON,改了什么一目了然。而且一旦跑通一次,以后官方更新了,你只要重新拉一下源码、重新编译就行,等于掌握了一套可复用的流程。这就是我选它的核心理由:可控、可复现、可升级。
2.2 编译方案怎么选:CMake 是绕不开的核心
Aseprite 的构建系统用的是 CMake,这是跨平台 C++ 项目里非常主流的一套工具。它的作用简单说就是:你告诉它“我要在 Windows 上编译,用哪个编译器”,它帮你生成对应的工程文件,然后调用编译器把源码变成可执行程序。
为什么必须用它?因为 Aseprite 依赖的库不少,比如处理图像的 skia、处理脚本的 lua、处理界面的 laf 等等。这些依赖之间的链接关系很复杂,手写编译命令基本不可能。CMake 把这些依赖关系都写在了 CMakeLists.txt 里,你只要按它的要求准备好环境,它就能自动帮你把依赖拉下来、编译好、链接到一起。
这里有个关键点:Aseprite 的源码编译会去下载一堆第三方依赖,这些依赖很多托管在 GitHub 上。如果你直接编译,可能会遇到下载慢或者连不上的情况。这不是 Aseprite 本身的问题,而是网络环境的问题。我的处理办法是提前把依赖准备好,或者配置好镜像源,这个后面实操部分会细说。
2.3 汉化到底改的是什么:语言文件的结构
很多人以为汉化是要改代码,其实不是。Aseprite 的界面文字是抽离出来的,放在语言文件里。你打开源码目录,能找到类似data/strings这样的文件夹,里面是各种语言的 JSON 文件,比如en.json是英文,zh.json就是中文。
每个 JSON 文件里是一堆键值对,键是程序内部用的标识符,值就是显示在界面上的文字。比如"layer"这个键,英文文件里值是"Layer",中文文件里改成"图层",界面上就会显示中文。所以汉化的本质就是:准备一份完整的中文 JSON,替换掉或者补充到语言目录里,然后在程序设置里切换语言。
这也解释了为什么自己编译更靠谱:你可以直接看到语言文件的内容,确认没有奇怪的改动。而且如果官方更新了新增的文字,你只要在 JSON 里补上对应的键值就行,不用等别人发布新版本。
3. 动手前的环境准备:把工具链搭起来
3.1 Windows 下的编译环境清单
我以 Windows 为例来说,因为用 Aseprite 的朋友里 Windows 用户最多。你需要准备这几样东西:
- Visual Studio 2022:注意要装“使用 C++ 的桌面开发”这个工作负载,里面包含了 MSVC 编译器和 Windows SDK。社区版免费,够用。
- CMake:去官网下 Windows 的安装包,安装时勾选“Add CMake to the system PATH”,这样命令行里才能直接调用。
- Git:用来拉源码。同样安装时选上命令行工具。
- Ninja(可选但推荐):比 Visual Studio 自带的生成器快不少,CMake 支持用它来构建。
这些东西的安装过程我就不一步步截图了,网上教程很多。重点提醒一句:Visual Studio 安装时一定要确认 C++ 工作负载装上了,很多人装完发现只有 IDE 没有编译器,编译时就会报找不到 cl.exe 的错误。
3.2 源码和依赖的获取策略
源码从官方仓库拉,命令很简单:
git clone --recursive https://github.com/aseprite/aseprite.git注意--recursive这个参数,它会同时把子模块也拉下来。Aseprite 用了不少子模块,比如 laf 界面库、clip 剪贴板库等。如果忘了加这个参数,后面编译会报缺文件。
拉下来之后,进入目录,还需要更新子模块:
cd aseprite git submodule update --init --recursive这一步很关键,因为有些子模块可能没跟着主仓库一起拉全。执行完这两步,源码部分就齐了。
接下来是依赖。Aseprite 编译时会自动去下载 skia、lua 等第三方库。这些下载动作默认走 GitHub,如果网络不畅,就会卡住。我的做法是提前设置好代理环境变量,或者用镜像源。具体来说,可以在命令行里设置:
set HTTP_PROXY=http://你的代理地址:端口 set HTTPS_PROXY=http://你的代理地址:端口如果你没有代理,也可以找找国内的开源镜像,把 CMake 里下载依赖的 URL 替换掉。这个稍微麻烦点,但一次配置好后面就省心了。
3.3 一个容易被忽略的细节:磁盘空间和路径
编译 Aseprite 会占用不少磁盘空间,源码加上编译中间文件,轻松超过 10GB。所以别放在系统盘空间紧张的地方。另外,路径里最好不要有中文和空格,CMake 和一些编译工具对中文路径的支持时好时坏,为了避免莫名其妙的错误,直接用纯英文路径,比如D:\dev\aseprite。
我踩过一次坑:把源码放在“我的文档”下面,结果编译到一半报错,查了半天发现是路径里的中文导致的。换到D:\aseprite之后一次通过。这种问题不遇到则已,遇到就很浪费时间,提前避开最好。
4. 编译实操:从命令行到可执行文件
4.1 生成构建文件:CMake 配置阶段
环境准备好之后,打开“x64 Native Tools Command Prompt for VS 2022”这个命令行工具。注意不是普通的 cmd,这个工具会自动配置好 MSVC 的环境变量。
进入源码目录,创建一个 build 目录并进去:
mkdir build cd build然后执行 CMake 配置命令。用 Ninja 的话是这样:
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLAF_BACKEND=skia -G Ninja ..这里解释一下几个参数。CMAKE_BUILD_TYPE=RelWithDebInfo表示带调试信息的发布版,性能和体积比较平衡。LAF_BACKEND=skia指定界面后端用 skia,这是官方推荐的。-G Ninja表示用 Ninja 作为生成器。
执行这条命令后,CMake 会开始检查环境、下载依赖。这一步最耗时,也最容易出问题。如果卡在下载某个库上,就检查网络。如果报找不到编译器,就确认你是不是在正确的命令行工具里。
4.2 编译过程:耐心等待与错误应对
配置成功后,执行编译:
ninja aseprite或者用 CMake 的构建命令:
cmake --build . --config RelWithDebInfo编译过程视机器性能而定,快的话十几分钟,慢的话半小时以上。期间会编译大量 C++ 文件,CPU 占用会很高,这是正常的。
常见的编译错误有这么几类。一是依赖下载失败,表现是 CMake 配置阶段就报错,解决办法是检查网络或换镜像。二是编译器版本不匹配,比如用了太老的 Visual Studio,解决办法是升级到 2022。三是磁盘空间不足,编译到一半报写入失败,清理空间重新来。
我建议第一次编译时把命令行窗口留着,别关,万一报错还能往上翻看具体信息。错误信息通常很长,但关键的就那几行,找到error:开头的部分就行。
4.3 编译产物在哪里:找到你的 exe
编译成功后,可执行文件在build\bin目录下,名字是aseprite.exe。你可以直接双击运行,看看能不能正常打开。如果能打开,说明编译这一步就成功了。
这时候界面还是英文的,因为语言文件还没处理。但至少证明你的工具链、源码、依赖都没问题。接下来就是汉化的部分。
提示:第一次运行可能会提示缺少某些 DLL,这是因为编译出来的 exe 依赖一些动态库。这些库通常在 build 目录的相应子目录里,把它们和 exe 放在一起,或者把对应目录加到 PATH 里就行。
5. 汉化落地:语言文件的处理与切换
5.1 找到语言文件并理解其结构
编译好的 Aseprite,语言文件在build\bin\data\strings目录下(如果是从源码运行,则在源码的data\strings)。你会看到一堆 JSON 文件,比如en.json、es.json、fr.json等。
打开en.json,你会看到类似这样的结构:
{ "layer": "Layer", "frame": "Frame", "palette": "Palette" }这就是键值对。汉化要做的就是准备一份zh.json,把值改成中文。网上有现成的中文语言文件,你可以搜“Aseprite 中文语言文件”找到。但要注意版本对应,不同版本的 Aseprite 键可能略有增减。
我的做法是:拿一份现成的中文 JSON,和当前版本的en.json做对比,看看有没有缺失的键。缺失的就补上,多出来的就删掉。这样能保证语言文件和程序完全匹配,不会出现某些地方显示英文或者显示键名的情况。
5.2 替换语言文件并切换界面语言
把准备好的zh.json放到data\strings目录下。然后打开 Aseprite,进入Edit > Preferences > General,在 Language 下拉框里应该就能看到“中文”或者“Chinese”选项。选它,界面就会变成中文。
如果下拉框里没有出现中文选项,说明语言文件没被识别。检查两点:一是文件名必须是zh.json,不能是zh-CN.json之类的;二是 JSON 格式必须正确,不能有语法错误。可以用在线的 JSON 校验工具检查一下。
切换语言后,如果发现某些菜单还是英文,说明对应的键在zh.json里缺失。这时候你可以对照en.json,找到缺失的键,补上中文翻译。这是一个细活,但做一次就一劳永逸。
5.3 让汉化更彻底:处理内置脚本和提示
Aseprite 除了界面菜单,还有一些内置的脚本和提示信息。这些文字有些也在语言文件里,有些则硬编码在脚本中。对于语言文件覆盖不到的部分,如果你确实需要,可以找到对应的脚本文件手动改。但我的建议是,核心界面汉化到位就够用了,没必要追求 100% 全覆盖,因为有些提示信息出现频率极低,花大量时间改性价比不高。
另外,Aseprite 支持扩展和脚本,如果你装了第三方扩展,那些扩展的界面文字通常不在主语言文件里,需要单独处理。这个就看你实际用不用了。
6. 常见问题与排查技巧实录
6.1 编译阶段的典型报错与解决
我把编译过程中可能遇到的问题整理成一张表,方便对照排查:
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| CMake 配置时报找不到编译器 | 没在 VS 命令行工具里执行 | 用 x64 Native Tools Command Prompt |
| 下载依赖卡住不动 | 网络连不上 GitHub | 配置代理或换镜像源 |
| 编译中途报写入失败 | 磁盘空间不足 | 清理空间,至少留 15GB |
| 报找不到某个头文件 | 子模块没拉全 | 执行 git submodule update --init --recursive |
| 链接时报符号重复定义 | 依赖库版本冲突 | 删掉 build 目录重新配置 |
这些是我自己遇到过的,还有一些是社区里别人反馈的。核心思路就是:看错误信息,定位是配置阶段还是编译阶段还是链接阶段,然后针对性处理。
6.2 汉化后的显示问题与修复
汉化之后可能遇到的问题是:界面部分中文部分英文,或者中文显示成方块。前者是语言文件缺键,补上就行。后者是字体问题,Aseprite 默认字体可能不含中文字形。解决办法是在设置里换一个支持中文的字体,比如“微软雅黑”或“思源黑体”。
还有一个情况是,切换语言后程序崩溃。这通常是 JSON 文件格式错误导致的,比如多了个逗号、少了引号。用 JSON 校验工具过一遍就能发现。
6.3 版本更新后如何快速跟进
官方更新后,你的旧版汉化文件可能不匹配。这时候不用重新走一遍完整流程,只需要:
- 拉取最新源码,重新编译。
- 用新的
en.json和你的zh.json对比,补上新增的键。 - 把更新后的
zh.json放到新版本的data\strings目录。
因为编译流程已经跑通过一次,环境都配好了,第二次会快很多。这也是自己编译的好处:升级路径清晰,不用等别人发新版。
7. 一些实操心得和边界提醒
编译 Aseprite 这件事,第一次做确实会花点时间,但跑通之后你会发现,这套方法不只适用于 Aseprite,很多开源 C++ 项目都是类似的流程:拉源码、配 CMake、编译、替换资源文件。掌握一次,以后遇到类似需求就不慌了。
我个人的体会是,最耗时的部分不是编译本身,而是环境配置和依赖下载。把这两块搞定,后面就是等。所以如果你打算动手,建议先花时间把 Visual Studio、CMake、Git 这些装好,网络环境也提前确认,别等到编译到一半才发现下不动依赖。
另外再强调一下边界:自己编译用于个人学习和研究没问题,但不要拿去传播成品或者用于商业用途。Aseprite 官方在售,支持正版是对开发者最好的鼓励。我们这里讨论的是“自己动手、来源可控”的技术流程,这个定位要清楚。
最后分享一个小技巧:如果你只是想要中文界面,又不想编译,其实可以看看官方是否已经内置了中文语言包。有些版本的语言文件里已经包含了zh.json,只是默认没启用。去设置里翻一下语言选项,说不定直接就能切。如果没有,再走编译这条路也不迟。