Game Text Localization Process Based on Poedit

Game Text Localization Process Based on Poedit

Astrid Stark Lv. ∞

一、环境准备

首先,安装 Poedit 软件以及相关 Python 库:

1
2
3
4
5
# 安装 Babel (用于字符串提取)
pip install babel

# 安装 Polib (用于 PO 文件转换)
pip install polib

工具说明:

Babel: 从游戏源代码中提取待翻译字符串

Polib: Python 库,用于处理 PO 文件格式

二、本地化工作流程

首先需要更新或创建 POT 文件(翻译模板),在游戏最初进行本地化工作时或游戏文本更新后都需要进行翻译模板的更新。下面的流程以 A Dark Room 为例。

使用以下命令提取所有待翻译字符串:

1
2
# 在项目根目录执行
pybabel extract -F lang/babel.cfg -c "TRANSLATORS" script -o lang/adarkroom.pot

参数说明:

-F lang/babel.cfg: 指定 Babel 配置文件

-c "TRANSLATORS": 提取代码中带有 “TRANSLATORS” 注释的字符串

script: 源代码目录

-o lang/adarkroom.pot: 输出 POT 文件路径

如果第一次进行游戏文本翻译,在 lang 文件夹下新建以语言代码命名的文件夹(如 zh-cn),然后在此文件夹下新建 PO 文件即可;如果已有翻译需要更新,则需在 Poedit 中打开此文件,然后在菜单中选择“翻译-从 POT 文件更新”,选择更新后的翻译模板文件对 PO 文件进行更新。

Update from POT File

对于更新后的 PO 文件,可能会出现三种情况:

  • 新增字符串标记为”未翻译”
  • 修改的字符串可能标记为”模糊”,需重新确认翻译
  • 已删除的字符串会被移除

然后,对未翻译或修改过的字符串进行翻译即可。

注意:

字符串中的变量占位符(如 ${key})需原样保留

翻译完成后,点击保存,Poedit 会自动生成对应的 MO 文件(后续可删除此文件)。

为确保翻译后的界面布局正常,需要将 lang 文件夹下的 main.css 文件复制到目标语言目录下。

最后,使用项目提供的转换工具将 PO 文件转为游戏可读的 JS 格式:

1
2
# 执行转换命令
python tools/po2js.py lang/zh_CN/strings.po

三、文件说明

文件类型 用途 是否必须 备注
.pot 翻译模板 包含所有待翻译字符串
.po 翻译源文件 人工编辑的文件
.js 游戏使用文件 由 PO 文件转换生成
.mo 编译翻译文件 Poedit 自动生成,可删除
.css 样式文件 可选 用于调整翻译后布局
On this page
Game Text Localization Process Based on Poedit