如果在更换语言后,AnycubicSlicer 中的部分菜单、按钮或弹出提示仍然显示为英文——这不是 bug。AnycubicSlicer 是基于 PrusaSlicer/OrcaSlicer 开发的,并使用标准的国际化系统 gettext(.po/.mo 文件)。翻译会随着发布一起更新,但通常会稍微落后于新界面元素——添加了新的代码行,但还没有来得及将其翻译成所有语言。这样的字符串只是在没有翻译的情况下显示为原始语言(英文)。
下面是一个工作方法,可以自己解决这些“漏洞”,而无需等待官方的更新。
翻译文件在哪里
您语言的翻译文件位于安装目录下的文件夹中:
资源/i18n/您的语言/AnycubicSlicer.mo
.mo 是一个编译好的二进制文件,不能在记事本中打开和编辑。可编辑版本是 .po,这是一个普通的文本文件,包含类似以下格式的字符串:
msgstr "翻译后的字符串"
如果 msgstr 为空,则界面会显示 msgid,即英文文本。这就是需要解决的“漏洞”所在。
工作方法:通过 Poedit 编辑
- 安装免费软件 Poedit — 这是官方 PrusaSlicer/OrcaSlicer 翻译人员使用的
.po/.mo 文件的标准编辑器。 - 从
resources/i18n/您的语言中复制一个AnycubicSlicer.mo的副本——以防万一,可以一键恢复原始文件。 - 在 Poedit 中打开
.mo文件的副本 ——Poedit 可以直接打开编译好的.mo文件,无需手动解压缩。 - 在 Poedit 中启用过滤器 “Untranslated”(未翻译)——你会看到界面中显示为英文的那些字符串。接下来选择一个这样的字符串,在下方输入翻译内容。
- 如果字符串已经翻译过,但不正确或不符合切片器的上下文 —— 通过在 Poedit 中搜索
msgid来找到并修改它。 - 修改后点击 Save(或者 Ctrl+S)——Poedit 自动将文件重新编译为
.mo格式。 - 将修正后的
AnycubicSlicer.mo替换到resources/i18n/您的语言中,重启切片器 —— 翻译会更新。
这是唯一真正有效的方法:它不需要从源代码重新编译切片器,并且只修改语言文件——通过普通的编辑界面工作,而不是通过命令行。
重要注意事项
如果字符串在 .po/.mo 文件中完全不存在(即它甚至没有被标记为未翻译 — 它不在列表中),这意味着它还没有进入开发者的翻译模板。这样的字符串无法通过 Poedit 添加——只有新的 .pot 文件版本才会出现,这通常发生在 Anycubic 的新版本发布时。在大多数情况下,在看起来已经翻译的界面中显示英文的那些内容实际上是空的 msgstr,而不是完全缺失的字符串,因此上述方法几乎可以解决所有这类情况。
如果懒得手动操作 — 使用 Claude AI 无订阅版
它可以直接处理 .po/.mo 文件:可以发送当前的翻译文件,它会找到所有的空白/未翻译的字符串,并根据3D打印术语进行翻译后返回一个完整的文件——只需要将其放入 resources/i18n/您的语言 并重启切片器即可。