Decentralization? We're still early!
返回課程

主权个人的WordPress入门课

0%完成
0/0 Steps
  1. 第一部分 WordPress基础知识入门

    WordPress:内容创作者的知识输出及展示利器
  2. WordPress的开源生态:开源软件运动、GPL协议与AI赋能
  3. WordPress的软件版本、路线图与社区文化
  4. 值得关注的WordPress信息源与常用工具
  5. 五分钟安装指南、主题插件与备份还原方法
  6. 第二部分 WordPress与本地知识管理
    如何在本地电脑/服务器快速部署WordPress站点
  7. 最强CMS:WordPress的文件结构、前端与后端
  8. 学习使用Gutenberg编辑器进行内容创作和排版
  9. 学习使用全站编辑主题(FSE)进行站点设计
  10. 自定义文章类型:WordPress的基础功能及其拓展
  11. 第三部分 如何在云端部署WordPress
    云端部署WordPress的方法:选购虚拟主机或VPS
  12. 如何实现WordPress站点的自动化部署
  13. 如何优化Linux服务器设置实现安全加固
  14. 如何压缩WordPress站点图片并设置CDN
  15. 第四部分 WordPress的维护优化与安全加固
    WordPress数据管理:学习导入导出数据、清理冗余数据
  16. 动态数据调取优化:为WordPress站点添加配置Redis缓存
  17. 页面速度优化:为WordPress站点添加配置fastcgi缓存
  18. 优化WordPress的安全设置,实现站点的安全加固
  19. 第五部分 WordPress主题及插件进阶研究
    WordPress主题的选择与站点设计基础知识
  20. 善用WordPress插件:优秀插件推荐及其使用
  21. 学习使用Kadence Blocks优化页面设计
  22. 学习使用Jetengine为WordPress创建管理动态内容
  23. 学习使用LearnDash创建 WordPress 学习管理系统
  24. 学习使用Woocommerce创建网上商店
  25. 第六部分 内容创作者的WordPress:迈向Web3
    如何通过WordPress打造个人品牌:一个简易指南
  26. AI时代的内容创作:文章配图与音视频版本生成
  27. 如何使用JPG Store铸造基于Cardano链的NFT
  28. 为WordPress添加比特币收款和比特币支付网关
  29. 为WordPress添加Cardano支付网关和Cardano钱包登录
  30. 为WordPress添加以太坊支付网关和以太坊钱包登录
  31. WordPress用户管理与会员管理、内容门控
  32. 第七部分 WordPress汉化与设计优化
    WordPress主题、插件的汉化:Poedit 使用教程
  33. 为WordPress站点添加自定义字体、繁简体转换、多语言
  34. 如何通过调整CSS美化WordPress站点细节
  35. 如何开发自定义插件完善WordPress功能
  36. WordPress的功能扩展:FSE与Interactivity API
  37. 第八部分 AI时代的WordPress实践
    AI赋能WordPress开发:技术实践与未来展望
  38. Trilium RSS Digest 插件使用教程
  39. Cardano NFT Minter 插件使用教程
  40. Trilium AI Design 插件使用教程
課 32 的 40
In Progress

WordPress主题、插件的汉化:Poedit 使用教程

Brave 2024-02-01

WordPress作为一款颇受欢迎的内容管理系统(CMS),在全球范围内得到了广泛应用。根据W3Techs 2024年的最新统计数据,WordPress目前驱动着全球约43.5%的网站,这意味着互联网上每10个网站中就有超过4个是使用WordPress构建的。从个人博客到企业官网,从电商平台到新闻门户,WordPress的身影无处不在,是当之无愧的建站首选方案。

然而,对于中文用户来说,英文界面可能会造成一定的使用障碍和不便,因此对WordPress的主题和插件进行汉化变得十分重要。尤其是在为客户建站或运营中文网站时,一个完全汉化的后台界面不仅能提升工作效率,还能降低培训成本,让非技术人员也能轻松管理网站内容。

WordPress汉化是将英文版的WordPress主题、插件转换为中文版的过程。Poedit是一款常用的汉化工具,可以轻松地汉化WordPress主题和插件。Poedit自1999年首次发布以来,已经成为开源软件翻译领域最受欢迎的桌面工具之一,支持Windows、macOS和Linux三大操作系统平台。

在本课程中,我们将探讨如何使用Poedit软件来汉化WordPress主题与插件,进一步提升用户体验,以及汉化的实践方法和技巧。


📖 一、理解WordPress国际化机制

在开始汉化之前,我们需要先理解WordPress的国际化(i18n)和本地化(l10n)机制,这将帮助你更好地理解汉化的原理,也能让你在遇到问题时快速定位原因。

🔤 1.1 什么是i18n和l10n?

你可能会好奇,为什么国际化和本地化要用这么奇怪的缩写?这其实是软件行业的一个有趣传统:

术语全称缩写由来含义
i18nInternationalization(国际化)i和n之间有18个字母指开发者在编写代码时,将文本字符串用特定函数包裹,使其具备被翻译的能力。这是一个"准备工作",让软件具备多语言的可能性。
l10nLocalization(本地化)l和n之间有10个字母指翻译者将这些可翻译的字符串转换为目标语言的过程。这是实际的"翻译工作",将软件适配到特定语言和文化环境。

🔍 深入理解两者的区别

打个比方来说明i18n和l10n的关系:

想象你正在设计一本可以被翻译成多种语言的菜单。国际化(i18n) 就像是设计一个菜单模板,预留好放置菜名、价格、描述的位置,但不填写具体内容。本地化(l10n) 则是根据这个模板,填写中文、日文、法文等不同语言的具体内容。

在WordPress代码中,国际化是这样实现的:

// ❌ 未国际化的代码(硬编码英文)
echo "Welcome to my website";

// ✅ 已国际化的代码(使用翻译函数)
echo __( 'Welcome to my website', 'theme-text-domain' );

// ✅ 带有HTML输出的国际化
_e( 'Welcome to my website', 'theme-text-domain' );

WordPress提供了多个翻译函数,每个都有特定的用途:

函数用途示例
__()返回翻译后的字符串$text = __( 'Hello', 'my-theme' );
_e()直接输出翻译后的字符串_e( 'Hello', 'my-theme' );
_x()带上下文的翻译(消歧义)_x( 'Post', 'noun', 'my-theme' );
_n()处理单复数形式_n( '%d item', '%d items', $count, 'my-theme' );
esc_html__()返回经过HTML转义的翻译esc_html__( 'Safe text', 'my-theme' );
esc_attr__()返回适用于属性的转义翻译esc_attr__( 'Button', 'my-theme' );

💡 关键概念:Text Domain(文本域)

Text Domain是一个唯一标识符,用于区分不同主题或插件的翻译。上面代码中的 'theme-text-domain' 就是文本域。WordPress通过文本域来确定某个字符串应该使用哪个翻译文件。通常,文本域与主题/插件的文件夹名称相同。

📁 1.2 WordPress翻译文件类型详解

WordPress使用GNU gettext系统来管理翻译,这是一套成熟的开源国际化解决方案,被广泛应用于Linux系统和众多开源软件中。gettext系统涉及三种核心文件类型:

📄 POT文件(Portable Object Template)

属性说明
扩展名.pot
性质模板文件,纯文本格式
创建者主题/插件开发者
内容所有可翻译的原始英文字符串
用途作为翻译工作的起点和参考
是否必需对于翻译者来说非常重要,但WordPress运行时不需要

POT文件的内部结构示例:

# 这是POT文件的典型结构

#: includes/class-main.php:125
msgid "Settings"
msgstr ""

#: includes/class-main.php:130
msgid "Save Changes"
msgstr ""

#: templates/header.php:45
msgid "Welcome, %s!"
msgstr ""

每个翻译条目包含:

  • #::指明该字符串在源代码中的位置(文件名和行号)
  • msgid:原始英文字符串(消息ID)
  • msgstr:翻译后的字符串(在POT文件中为空)

📄 PO文件(Portable Object)

属性说明
扩展名.po
性质翻译工作文件,纯文本格式
创建者翻译者(基于POT文件创建)
内容原文和译文的对照
用途存储翻译内容,可用任何文本编辑器打开
是否必需翻译过程中必需,便于后续维护和更新

PO文件的内部结构示例:

#: includes/class-main.php:125
msgid "Settings"
msgstr "设置"

#: includes/class-main.php:130
msgid "Save Changes"
msgstr "保存更改"

#: templates/header.php:45
msgid "Welcome, %s!"
msgstr "欢迎,%s!"

注意:PO文件中的 msgstr 已经填写了对应的中文翻译。

📄 MO文件(Machine Object)

属性说明
扩展名.mo
性质编译后的二进制文件
创建者由Poedit等工具从PO文件编译生成
内容与PO文件相同,但是二进制格式
用途WordPress实际读取的翻译文件
是否必需必需!WordPress只能读取MO文件

⚠️ 重要提示:MO文件是二进制格式,无法用文本编辑器直接编辑。如果需要修改翻译,必须编辑对应的PO文件,然后重新编译生成MO文件。

📊 三种文件的关系流程图:

开发者编写代码 → 提取字符串生成POT文件
                        ↓
              翻译者基于POT创建PO文件
                        ↓
              使用Poedit翻译PO文件
                        ↓
              编译生成MO文件
                        ↓
              WordPress加载MO文件显示中文

🏷️ 1.3 翻译文件命名规范

翻译文件必须遵循严格的命名规范,否则WordPress无法正确加载。这是初学者最容易犯错的地方之一。

📝 命名格式

{text-domain}-{locale}.po
{text-domain}-{locale}.mo

组成部分说明:

组成部分说明示例
text-domain主题/插件的文本域,通常与文件夹名相同woocommercedeveloper-starter-theme
locale语言区域代码zh_CNzh_TWde_DE

🌍 常见语言代码一览

语言代码对应语言使用地区
zh_CN简体中文中国大陆
zh_TW繁体中文台湾
zh_HK繁体中文香港
en_US英语美国
en_GB英语英国
ja日语日本
ko_KR韩语韩国
de_DE德语德国
fr_FR法语法国
es_ES西班牙语西班牙

✅ 正确命名示例

主题/插件文本域正确的文件名
WooCommercewoocommercewoocommerce-zh_CN.po / woocommerce-zh_CN.mo
Starter主题developer-starter-themedeveloper-starter-theme-zh_CN.po / developer-starter-theme-zh_CN.mo
Contact Form 7contact-form-7contact-form-7-zh_CN.po / contact-form-7-zh_CN.mo
Yoast SEOwordpress-seowordpress-seo-zh_CN.po / wordpress-seo-zh_CN.mo

❌ 常见命名错误

错误示例问题所在
chinese.po缺少文本域,语言代码格式错误
woocommerce-chinese.po语言代码应该是 zh_CN 而非 chinese
woocommerce_zh_CN.po文本域和语言代码之间应该用连字符 - 而非下划线 _
WooCommerce-zh_CN.po文本域应该全部小写

🔍 如何查找正确的文本域?

方法一:查看主题/插件的主文件头部

/*
 * Plugin Name: WooCommerce
 * Text Domain: woocommerce
 * Domain Path: /languages
 */

方法二:查看readme.txt文件

方法三:在插件/主题代码中搜索 load_textdomainload_plugin_textdomain

load_plugin_textdomain( 'woocommerce', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );

💡 提示Domain Path 指明了翻译文件应该存放的位置,通常是 /languages/lang 文件夹。


🛠️ 二、Poedit软件入门

📥 2.1 下载与安装

Poedit官网: https://poedit.net/

Poedit是由Václav Slavík开发的跨平台翻译编辑器,专为处理gettext PO文件而设计。软件支持三大主流操作系统:

操作系统下载版本安装说明
Windows.exe 安装包下载后双击运行,按向导完成安装
macOS.dmg 磁盘映像下载后打开,将Poedit拖入应用程序文件夹
Linux包管理器安装Ubuntu/Debian: sudo apt install poedit

💳 2.2 免费版与Pro版功能对比

Poedit分为免费版和Pro付费版,两者的主要区别如下:

功能类别具体功能免费版Pro版
基础功能打开/编辑PO文件
 保存并编译为MO文件
 翻译记忆库基础功能
 术语表管理
字符串提取从源代码提取可翻译字符串
 WordPress主题/插件直接导入
 自动检测代码中的新字符串
翻译辅助预翻译(机器翻译)
 云端翻译记忆库同步
 质量检查和验证基础高级
协作功能团队协作翻译
 Crowdin集成
价格-免费50/年或50/年或50/年或100永久授权

💡 购买建议

  • 偶尔汉化:免费版足够使用,配合其他工具生成POT文件即可
  • 经常汉化:强烈推荐Pro版,"从源代码提取字符串"功能可节省大量时间
  • 专业翻译者:Pro版的机器翻译预填充和云同步功能非常实用

🖥️ 2.3 Poedit界面详解

首次打开Poedit,你会看到一个简洁的欢迎界面。让我们详细了解各个功能区域:

📍 欢迎界面

欢迎界面提供三个主要入口:

按钮功能使用场景
翻译WordPress插件或主题直接打开WordPress项目(Pro版)汉化没有POT文件的项目
创建新翻译基于POT模板创建新的PO文件开始一个新的翻译项目
浏览文件打开已有的PO/POT文件继续之前的翻译工作

📍 主工作界面

打开PO文件后,主界面分为以下几个核心区域:

┌─────────────────────────────────────────────────────┐
│  菜单栏  │  工具栏(保存、同步、验证等快捷按钮)      │
├─────────────────────────────────────────────────────┤
│                                                     │
│                  源文本列表区域                      │
│  (显示所有待翻译条目,可排序和筛选)                 │
│                                                     │
├─────────────────────────────────────────────────────┤
│  源文本区域              │    注释和上下文区域        │
│  (显示原文全文)         │   (开发者的说明信息)     │
├─────────────────────────────────────────────────────┤
│                                                     │
│                    翻译输入区域                      │
│              (输入对应的中文翻译)                   │
│                                                     │
├─────────────────────────────────────────────────────┤
│                    翻译建议区域                      │
│  (显示翻译记忆库匹配和机器翻译建议)                 │
│                                                     │
└─────────────────────────────────────────────────────┘

各区域详细说明:

区域位置功能详解
源文本列表中上部显示所有待翻译的原始英文字符串,支持按翻译状态、源文本、翻译内容排序;可使用搜索框快速定位
源文本区左下显示当前选中字符串的完整原文,对于较长的文本尤其有用
翻译输入区下部输入对应的中文翻译;支持多行文本;单复数形式会显示多个输入框
翻译建议区右下显示翻译记忆库中的相似翻译、机器翻译建议(Pro版);双击可直接采用建议
注释区右中显示开发者添加的上下文说明,帮助理解字符串的使用场景
状态栏底部显示翻译进度(已翻译/总数)、当前文件信息

📍 工具栏按钮说明

图标/按钮功能快捷键
保存保存PO文件并编译MO文件Ctrl+S
验证检查翻译中的格式错误Ctrl+Shift+V
更新从POT文件更新字符串
上一个未翻译跳转到上一个未翻译条目Ctrl+↑
下一个未翻译跳转到下一个未翻译条目Ctrl+↓

⌨️ 2.4 常用快捷键大全

熟练使用快捷键可以大幅提升翻译效率:

快捷键功能使用场景
Ctrl+S保存文件定期保存,防止丢失
Ctrl+↑上一个未翻译快速浏览待翻译内容
Ctrl+↓下一个未翻译快速浏览待翻译内容
Ctrl+U复制原文到翻译需要保留原文的情况
Ctrl+B复制原文到翻译(同上)备用快捷键
Ctrl+K标记为待审核不确定的翻译标记后续检查
Ctrl+Enter确认翻译并跳到下一个连续翻译时使用
Ctrl+F查找搜索特定字符串
Ctrl+H查找和替换批量修正翻译
Alt+U撤销翻译恢复到原始状态
Ctrl+1~9使用第N个翻译建议快速采用建议

🔧 2.5 首选项配置

在开始翻译之前,建议先配置Poedit的首选项以获得最佳体验:

进入路径: 编辑首选项 (macOS: Poedit首选项

📍 常规设置

设置项推荐配置说明
自动编译MO文件✅ 开启保存PO时自动生成MO文件
启用拼写检查✅ 开启检查翻译中的拼写错误
自动保存✅ 开启防止意外丢失翻译

📍 翻译记忆库设置

设置项说明
启用翻译记忆库存储已完成的翻译,供后续项目参考
语言设置设置为 中文(简体)- zh_CN
学习已有翻译可导入现有的PO文件到记忆库

📍 翻译身份设置

设置项说明
你的姓名填写你的名字或昵称
邮箱地址填写你的邮箱

💡 提示:这些信息会记录在PO文件的头部,标明翻译者身份。


⚡ 三、使用Poedit进行汉化的完整流程

📋 3.1 汉化前的准备工作

在开始汉化之前,你需要做好以下准备:

✅ 准备清单

序号准备事项说明
1安装Poedit确保已安装最新版本
2获取POT文件从主题/插件目录中获取,或自行生成
3确认文本域查看主题/插件的文本域名称
4了解项目背景熟悉要翻译的主题/插件的功能
5准备术语表收集该领域的常用术语翻译

📂 查找POT文件

POT文件通常位于以下位置:

wp-content/
├── plugins/
│   └── your-plugin/
│       └── languages/
│           └── your-plugin.pot    ← 插件的POT文件
└── themes/
    └── your-theme/
        └── languages/
            └── your-theme.pot     ← 主题的POT文件

如果找不到POT文件,可能的原因:

情况解决方案
开发者未提供使用Poedit Pro或其他工具生成
放在其他位置搜索 .pot 文件
项目未国际化该项目无法汉化,需要开发者添加国际化支持

🚀 3.2 标准汉化流程(详细步骤)

步骤一:启动Poedit并创建新翻译

  1. 打开Poedit软件
  2. 点击「创建新翻译」
  3. 在文件选择对话框中,找到并选择目标主题/插件的 .pot 文件
  4. 点击「打开」

💡 提示:如果你要继续之前的翻译工作,选择「浏览文件」打开已有的 .po 文件即可。

步骤二:设置目标语言

  1. Poedit会弹出语言选择对话框
  2. 在搜索框中输入「Chinese」或「中文」
  3. 选择「Chinese (China) - 中文/中国)」即简体中文 zh_CN
  4. 点击「确定」

语言代码选择指南:

选项代码适用场景
Chinese (China)zh_CN面向中国大陆用户
Chinese (Taiwan)zh_TW面向台湾用户
Chinese (Hong Kong)zh_HK面向香港用户

步骤三:熟悉翻译界面

设置完成后,你会看到所有待翻译的字符串列表:

  • 黄色背景:模糊匹配(从翻译记忆库中找到相似翻译)
  • 白色背景:未翻译
  • 无特殊标记:已翻译

界面底部会显示翻译进度,例如:「已翻译 0/156 (0%)」

步骤四:开始翻译

在Poedit中,你可以看到所有需要翻译的字符串。你可以直接在Poedit中编辑这些字符串,或者将它们导出到一个文本文件中,然后使用文本编辑器进行编辑。

具体翻译步骤:

  1. 在列表中点击选择一个待翻译的条目
  2. 在下方的「源文本」区域查看原文
  3. 在「翻译」区域输入对应的中文
  4. Ctrl+Enter 确认并跳转到下一条
  5. 重复以上步骤直到全部完成

🎯 翻译时的实用技巧

技巧操作方法说明
快速导航使用 Ctrl+↑/↓在未翻译条目之间快速切换
复制原文使用 Ctrl+U当需要保留英文原文时使用
查看上下文点击条目查看右侧注释了解该文本在代码中的使用位置
使用翻译建议双击建议或按 Ctrl+1~9快速采用翻译记忆库的匹配
标记待审核Ctrl+K对不确定的翻译做标记

步骤五:处理特殊字符串

翻译过程中会遇到一些特殊情况,需要特别注意:

🔹 占位符(Placeholders)

占位符是代码中用于动态插入内容的标记,必须保留在译文中:

占位符含义原文示例正确译文
%s字符串Welcome, %s!欢迎,%s!
%d整数%d items%d 个项目
%1$s, %2$s带编号的字符串%1$s by %2$s%1$s 作者:%2$s
%1$d, %2$d带编号的整数Page %1$d of %2$d第 %1$d 页,共 %2$d 页

⚠️ 警告:删除或更改占位符会导致程序出错!

🔹 HTML标签

有些字符串中包含HTML标签,需要保留:

原文正确译文
Click <a href="%s">here</a>点击<a href="%s">这里</a>
<strong>Warning:</strong> This action cannot be undone.<strong>警告:</strong>此操作无法撤销。
🔹 转义字符
转义字符含义处理方式
\n换行保留在对应位置
\t制表符保留
\"引号保留

步骤六:验证翻译

翻译完成后,务必进行验证检查:

  1. 点击工具栏的「验证」按钮(或按 Ctrl+Shift+V
  2. Poedit会检查以下问题:
    • 占位符是否匹配
    • 格式是否正确
    • 是否有未翻译的条目
  3. 如果发现错误,会在相应条目旁显示警告图标
  4. 点击错误条目进行修正

步骤七:保存翻译文件

完成翻译后,你需要将翻译保存为.mo文件。在Poedit中,选择"文件">"保存",然后将文件保存到主题或插件的languages文件夹中。

详细保存步骤:

  1. Ctrl+S 或点击「文件」→「保存」
  2. 首次保存时,选择保存位置
  3. 文件名必须遵循命名规范:{text-domain}-zh_CN.po
  4. Poedit会自动同时生成 .po.mo 两个文件

保存后生成的文件:

  • your-plugin-zh_CN.po — 可编辑的翻译文件(保留此文件用于后续更新)
  • your-plugin-zh_CN.mo — WordPress实际使用的编译文件

步骤八:部署翻译文件

将生成的翻译文件放置到正确的位置:

⚠️ 重要更新:以下是过时的方法,仅适用于WordPress 4.0之前的版本:

在WordPress中,你需要在wp-config.php文件中添加以下代码:define ('WPLANG', 'zh_CN');。这将激活中文语言包。

✅ 现代WordPress(4.0及以上版本)的正确做法:

方法一:通过后台设置语言(推荐)
  1. 登录WordPress后台
  2. 进入「设置」→「常规」
  3. 找到「站点语言」选项
  4. 在下拉菜单中选择「简体中文」
  5. 滚动到页面底部,点击「保存更改」

💡 说明:WordPress 4.0版本之后,语言设置已经迁移到后台图形界面,不再需要手动修改wp-config.php文件。这种方式更加直观、安全,并且支持热切换语言。

方法二:正确放置翻译文件

翻译文件的存放位置非常重要,不同位置有不同的优缺点:

存放路径优点缺点推荐程度
wp-content/languages/plugins/不会被插件更新覆盖需要手动创建目录⭐⭐⭐⭐⭐ 强烈推荐
wp-content/languages/themes/不会被主题更新覆盖需要手动创建目录⭐⭐⭐⭐⭐ 强烈推荐
wp-content/plugins/插件名/languages/方便,与插件同目录更新时会被覆盖⭐⭐
wp-content/themes/主题名/languages/方便,与主题同目录更新时会被覆盖⭐⭐

目录结构示例:

wp-content/
├── languages/
│   ├── plugins/
│   │   ├── woocommerce-zh_CN.po      ← 插件翻译放这里
│   │   └── woocommerce-zh_CN.mo
│   └── themes/
│       ├── developer-starter-theme-zh_CN.po   ← 主题翻译放这里
│       └── developer-starter-theme-zh_CN.mo
├── plugins/
│   └── woocommerce/
│       └── languages/
│           └── woocommerce.pot        ← POT模板文件
└── themes/
    └── developer-starter-theme/
        └── languages/
            └── developer-starter-theme.pot

WordPress翻译文件加载优先级:

  1. 首先检查 wp-content/languages/plugins/wp-content/languages/themes/
  2. 然后检查 插件/主题自带的 languages 文件夹
  3. 最后使用 WordPress官方翻译(如果有的话)

💡 最佳实践:始终将自定义翻译放在 wp-content/languages/ 下对应的子目录中,这样即使主题或插件更新,你的翻译也不会丢失。

步骤九:验证翻译效果

完成部署后,刷新WordPress页面检查翻译是否生效:

检查项目正常情况异常处理
后台菜单显示中文检查文件名和存放位置
设置页面显示中文清除缓存后重试
前台页面显示中文确认主题支持翻译

如果翻译未生效,排查清单:

可能原因解决方案
文件名错误检查文本域和语言代码是否正确
位置不对确认文件放在正确的目录
缺少MO文件确认同时有.po和.mo文件
语言未设置检查WordPress站点语言设置
缓存问题清除WordPress缓存和浏览器缓存
文本域不匹配对比代码中的文本域与文件名

❓ 四、Poedit常见使用问题与解决方案

Poedit在使用过程中可能会遇到一些常见问题,可以参考以下解决方法:

🔢 4.1 单复数问题(Plural Forms)

有些字符串在不同的上下文中可能需要使用不同的单复数形式。在Poedit中,你可以使用"Plural Forms"选项来处理这个问题。如果你不确定如何处理这个问题,请参考官方文档。

详细解释:

英语中存在单复数变化(如 "1 item" vs "2 items"),而中文通常不区分单复数。WordPress使用 _n() 函数来处理这种情况:

// 英文源码中的单复数处理
printf( _n( '%d comment', '%d comments', $count, 'theme-domain' ), $count );

在Poedit中处理这类字符串时:

情况英文原文中文译文建议
单数形式%d comment%d 条评论
复数形式%d comments%d 条评论(与单数相同)

当遇到复数字符串时,Poedit会显示两个输入框:

单数形式: [%d 条评论        ]
复数形式: [%d 条评论        ]

💡 技巧:对于中文,单复数形式通常填写完全相同的译文即可,因为中文不通过词形变化来表示复数。

更复杂的例子:

英文中文说明
%d item in cart / %d items in cart购物车中有 %d 件商品单复数译文相同
%d day ago / %d days ago%d 天前单复数译文相同
There is %d error / There are %d errors有 %d 个错误单复数译文相同

🔄 4.2 如何更新汉化文件

如果你需要更新汉化文件,你可以使用Poedit打开.mo文件,然后编辑翻译。完成翻译后,你需要将翻译保存为.mo文件。在Poedit中,选择"文件">"保存",然后将文件保存到主题或插件的languages文件夹中。

⚠️ 更正应该打开.po文件而不是.mo文件。MO文件是二进制格式,虽然Poedit可以打开,但建议始终使用PO文件进行编辑。

更新翻译的完整流程:

场景一:主题/插件有新版本,需要更新翻译

  1. 下载新版本的主题/插件
  2. 获取新版本的 .pot 文件
  3. 使用Poedit打开你之前的 .po 文件
  4. 点击菜单「翻译」→「从POT文件更新...」
  5. 选择新版本的 .pot 文件
  6. Poedit会自动:
    • 保留已有翻译
    • 标记新增的未翻译字符串
    • 移除已删除的字符串
    • 标记可能过时的翻译(模糊匹配)
  7. 翻译新增的字符串
  8. 检查标记为「模糊」的条目,确认或修改翻译
  9. 保存文件,重新部署

场景二:需要修正已有翻译

  1. 用Poedit打开 .po 文件
  2. 使用 Ctrl+F 搜索需要修改的字符串
  3. 修改翻译内容
  4. 保存文件(会自动更新 .mo 文件)
  5. 重新上传到服务器

场景三:从WordPress官方翻译平台获取更新

WordPress官方翻译平台: https://translate.wordpress.org/

  1. 访问 translate.wordpress.org
  2. 搜索你需要的主题/插件
  3. 下载对应语言的翻译包
  4. 解压并放置到正确位置

📝 4.3 没有.pot文件怎么办

如果你需要汉化的主题或插件没有提供.pot文件,你可以使用以下几种方法来解决这个问题:

方法一:使用Poedit Pro版(最推荐)

  1. 打开Poedit Pro
  2. 选择「文件」>「新建翻译」
  3. 选择「翻译WordPress插件或主题」
  4. 选择要汉化的主题或插件的根目录文件夹
  5. 选择目标语言为中文(简体)
  6. Poedit Pro会自动扫描所有PHP文件,提取使用 __(), _e() 等函数包裹的字符串
  7. 开始翻译扫描到的字符串
  8. 完成翻译后保存,将生成.po和.mo文件

💡 优势:无需额外工具,操作简单,适合非技术用户。

方法二:使用WP-CLI命令行工具(免费)

WP-CLI是WordPress的官方命令行工具,功能强大且免费:

安装WP-CLI(如果尚未安装):

# Linux/macOS
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

# 验证安装
wp --version

生成POT文件:

# 为插件生成POT文件
wp i18n make-pot wp-content/plugins/your-plugin wp-content/plugins/your-plugin/languages/your-plugin.pot

# 为主题生成POT文件  
wp i18n make-pot wp-content/themes/your-theme wp-content/themes/your-theme/languages/your-theme.pot

# 带有更多选项的命令
wp i18n make-pot wp-content/plugins/your-plugin your-plugin.pot --domain=your-plugin --exclude=node_modules,vendor

常用参数说明:

参数说明
--domain指定文本域
--exclude排除特定目录(如node_modules)
--headers自定义POT文件头信息

💡 优势:免费、功能全面、可批量处理多个项目。

方法三:使用Loco Translate插件(WordPress后台直接翻译)

Loco Translate是一个非常流行的WordPress翻译插件,允许你直接在后台进行翻译:

  1. 在WordPress后台安装「Loco Translate」插件
  2. 进入「Loco Translate」→「主题」或「插件」
  3. 选择要翻译的主题/插件
  4. 点击「新建语言」
  5. 选择「简体中文 (zh_CN)」
  6. 选择存储位置(推荐选择「系统语言目录」)
  7. 开始在浏览器中翻译
  8. 保存后自动生成PO和MO文件

Loco Translate的优势:

优势说明
无需安装桌面软件直接在浏览器中操作
自动扫描字符串即使没有POT文件也能工作
实时预览保存后立即看到效果
同步功能可从WordPress官方翻译平台同步

方法四:使用在线翻译平台

平台网址特点
POEditorpoeditor.com专业翻译管理平台,支持团队协作
Crowdincrowdin.com大型开源项目常用,功能强大
Transifextransifex.com企业级翻译平台

🔍 4.4 翻译不显示/不生效

这是最常见的问题之一,以下是完整的排查清单:

检查项正确状态如何检查
文件名{textdomain}-zh_CN.po/mo对照主题/插件的文本域
文件位置正确的languages目录检查上传路径
两个文件都存在同时有.po和.moFTP查看
站点语言设置为简体中文后台→设置→常规
文件权限644或755FTP查看权限
无缓存已清除缓存清除所有缓存插件

高级排查:确认WordPress是否正确加载翻译

在主题的 functions.php 中添加以下调试代码:

add_action( 'init', function() {
    $locale = get_locale();
    $domain = 'your-plugin-textdomain';
    $mofile = WP_LANG_DIR . '/plugins/' . $domain . '-' . $locale . '.mo';
    
    echo '<!-- Debug: ';
    echo 'Locale: ' . $locale . ' | ';
    echo 'MO file: ' . $mofile . ' | ';
    echo 'Exists: ' . ( file_exists( $mofile ) ? 'Yes' : 'No' );
    echo ' -->';
});

🌐 4.5 字符编码问题

症状:翻译后显示乱码,如「中文」显示为「涓枃」

原因与解决方案:

原因解决方案
PO文件编码不正确确保PO文件使用UTF-8编码保存
服务器编码问题检查MySQL和PHP的字符集设置
浏览器编码问题确保HTML页面声明了UTF-8编码

在Poedit中设置正确的编码:

  1. 打开PO文件
  2. 点击「翻译」→「属性」
  3. 确认「字符集」设置为「UTF-8」
  4. 保存文件

⚡ 4.6 翻译性能问题

症状:加载翻译后网站变慢

原因与解决方案:

原因解决方案
MO文件过大删除不必要的翻译条目
加载多个翻译文件合并翻译或使用对象缓存
每次请求都解析MO文件启用OPcache和对象缓存

性能优化建议:

// 在wp-config.php中添加
define( 'WP_CACHE', true );

// 使用Redis或Memcached对象缓存
// 安装相应的缓存插件

🎨 五、汉化最佳实践质量标准

✍️ 5.1 翻译质量指南

高质量的翻译不仅要语法正确,还要符合用户体验原则:

原则说明正确示例错误示例
准确性译文准确传达原文含义Settings → 设置Settings → 环境
一致性同一术语全文使用相同译法Dashboard统一译为"仪表盘"有时"仪表盘"有时"控制面板"
流畅性符合中文表达习惯,不生硬Click here → 点击此处Click here → 点击这里
简洁性避免冗长,尤其是UI元素Submit → 提交Submit → 点击这里提交表单
语境适当根据上下文选择合适译法Post作为名词时→文章Post统一译为"发布"
格式保留保持HTML、占位符不变<strong>%s</strong>删除标签或占位符

📚 5.2 WordPress常用术语对照表

以下是WordPress生态系统中常见术语的推荐译法,建议在翻译时保持一致:

📍 核心术语

英文推荐中文译法备注
Dashboard仪表盘也可用"控制面板"
Post文章作为名词时
Post发布作为动词时
Page页面 
Category分类也可用"分类目录"
Tag标签 
Archive存档也可用"归档"
Widget小工具 
Plugin插件 
Theme主题 
Template模板 
Customizer定制器也可用"自定义"

📍 设置相关

英文推荐中文译法备注
Settings设置 
Options选项 
General常规 
Writing撰写 
Reading阅读 
Discussion讨论 
Media媒体 
Permalink固定链接 
Privacy隐私 

📍 内容相关

英文推荐中文译法备注
Title标题 
Content内容 
Excerpt摘要 
Featured Image特色图像也可用"特色图片"
Thumbnail缩略图 
Attachment附件 
Media Library媒体库 
Gallery画廊也可用"相册"
Caption说明文字 
Alt Text替代文本 

📍 用户相关

英文推荐中文译法备注
User用户 
Profile个人资料 
Role角色 
Administrator管理员 
Editor编辑 
Author作者 
Contributor贡献者 
Subscriber订阅者 
Password密码 
Username用户名 

📍 操作相关

英文推荐中文译法备注
Save保存 
Save Changes保存更改 
Update更新 
Delete删除 
Edit编辑 
Add New添加也可用"新建"
View查看 
Preview预览 
Publish发布 
Draft草稿 
Pending待审 
Trash回收站 
Restore恢复 
Submit提交 
Cancel取消 

📍 技术术语

英文推荐中文译法备注
APIAPI保留英文
REST APIREST API保留英文
WebhookWebhook保留英文
Cache缓存 
Debug调试 
Shortcode短代码 
Block区块古腾堡编辑器相关
Gutenberg古腾堡可保留英文
Hook钩子 
Filter过滤器 
Action动作 

🎯 5.3 翻译上下文判断

同一个英文单词在不同语境下可能有不同的翻译:

英文单词语境正确译法
Post名词,博客文章文章
Post动词,发布内容发布
PostHTTP请求方法POST(保留)
Save保存文档保存
Save节省资源节省
Draft文章草稿草稿
Draft汇票汇票
Block古腾堡区块区块
Block阻止某人屏蔽/拉黑
BlockIP封禁封禁

如何判断正确的语境?

  1. 查看Poedit中的注释信息:开发者可能提供了上下文说明
  2. 查看代码引用:点击字符串可以看到它在代码中的位置
  3. 在实际界面中预览:理解该字符串出现的实际场景
  4. 参考WordPress官方翻译:查看相同或类似字符串的官方译法

📐 5.4 译文长度控制

中文通常比英文更简洁,但在UI元素中需要特别注意空间限制:

元素类型建议示例
按钮文字尽量简短,2-4个字Submit → 提交
菜单项简洁明了My Account → 我的账户
表单标签简洁但完整Email Address → 邮箱地址
提示信息可以稍长,但要通顺完整翻译
错误消息清晰说明问题完整翻译
帮助文本可以较长完整翻译

长度对比示例:

英文字符数中文字符数
Submit6提交2
Save Changes12保存更改4
Are you sure you want to delete this item?43确定要删除此项目吗?10

⚠️ 5.5 需要避免的常见错误

错误类型错误示例正确做法
删除占位符Welcome, %s!欢迎!欢迎,%s!
改变占位符顺序%1$s by %2$s%2$s的%1$s保持顺序或使用编号占位符
删除HTML标签<a href="#">Click</a>点击<a href="#">点击</a>
过度本地化API → 应用程序接口API(保留通用技术术语)
机械直译Click here → 单击这里点击此处
遗漏翻译部分字符串未翻译100%完成翻译
大小写混乱wordpress → WordPress保持原有大小写

🚀 六、进阶技巧与效率提升

💾 6.1 翻译记忆库(Translation Memory)

翻译记忆库是提升翻译效率的利器,它可以存储你之前的翻译,在遇到相同或相似的字符串时自动提供建议。

📍 设置翻译记忆库

  1. 打开Poedit首选项编辑首选项
  2. 选择「翻译记忆库」标签页
  3. 点击「管理语言」确保添加了中文
  4. 设置记忆库文件存储位置

📍 导入已有翻译到记忆库

  1. 点击「学习翻译」按钮
  2. 选择已完成的 .po 文件
  3. Poedit会从这些文件中学习翻译
  4. 之后翻译时会自动匹配相似内容

📍 翻译记忆库的匹配类型

匹配类型图标说明
100%匹配绿色完全相同的字符串,可直接采用
模糊匹配黄色相似的字符串,需要人工确认
无匹配需要手动翻译

📍 批量应用翻译记忆

  1. 打开PO文件
  2. 选择「翻译」→「使用翻译记忆自动翻译」
  3. Poedit会自动填充所有匹配的翻译
  4. 检查并确认自动填充的翻译

🤖 6.2 AI辅助翻译(Pro版功能)

Poedit Pro版支持机器翻译预翻译功能,可以大幅加速初始翻译过程:

📍 设置机器翻译

  1. 打开Poedit首选项
  2. 选择「翻译」标签页
  3. 启用「使用机器翻译」
  4. 选择翻译服务提供商:
服务商特点质量评估
DeepL质量高,中文支持好⭐⭐⭐⭐⭐
Google Translate速度快,覆盖广⭐⭐⭐⭐
Microsoft Translator稳定可靠⭐⭐⭐⭐

📍 使用机器翻译预填充

  1. 打开待翻译的PO文件
  2. 选择「翻译」→「使用机器翻译预翻译」
  3. 等待翻译完成
  4. ⚠️ 重要:务必人工审核每一条翻译

⚠️ 警告:机器翻译仅作为参考起点,技术文档和UI文本需要人工校对以确保:

  • 术语一致性
  • 语境准确性
  • 占位符正确保留
  • 符合用户习惯

📦 6.3 批量处理技巧

📍 批量操作快捷方式

操作方法使用场景
选择多个条目Shift+点击Ctrl+点击批量操作时
批量复制原文选中多个 → 右键 → 复制原文到翻译需要保留原文不翻译时
批量标记为待审核选中多个 → 右键 → 标记为模糊不确定的翻译
全局查找替换Ctrl+H批量修正术语

📍 使用筛选器提高效率

Poedit提供多种筛选视图:

筛选器显示内容使用场景
全部所有字符串概览
未翻译尚未翻译的条目完成剩余翻译
需要审核模糊匹配或标记的条目校对阶段
有错误验证失败的条目修正错误

🔧 6.4 处理大型翻译项目

对于包含数千个字符串的大型项目(如WooCommerce),可以采用以下策略:

📍 分阶段翻译策略

阶段优先级说明
第一阶段翻译用户最常见到的界面元素(菜单、按钮、表单)
第二阶段翻译管理后台界面
第三阶段翻译错误消息、帮助文本
第四阶段最低翻译邮件模板、开发者相关内容

📍 利用WordPress官方翻译

很多流行插件已有官方中文翻译,可以直接使用或参考:

  1. 访问 translate.wordpress.org
  2. 搜索目标插件/主题
  3. 下载稳定版翻译
  4. 在此基础上进行补充或修正

📊 6.5 团队协作翻译

对于多人协作的翻译项目:

工具/平台特点适合场景
Crowdin功能强大,支持审核流程开源项目、大型团队
POEditor界面友好,价格合理小型团队、初创公司
Transifex企业级功能商业项目、多语言项目
Git + Poedit免费,版本控制技术团队、开发者

使用Git协作的工作流:

1. 主翻译者创建仓库,上传POT和初始PO文件
2. 协作者fork仓库
3. 各自翻译分配的部分
4. 通过Pull Request提交翻译
5. 主翻译者审核并合并
6. 定期编译并发布更新

🔌 七、其他汉化工具与资源

🛠️ 7.1 其他常用汉化工具

除了Poedit,还有一些其他工具可以用于WordPress汉化:

📍 Loco Translate插件

属性说明
类型WordPress插件
价格免费(有Pro版)
官网https://localise.biz/wordpress/plugin

主要功能:

  • 直接在WordPress后台翻译
  • 自动扫描可翻译字符串
  • 支持创建POT文件
  • 内置编辑器,无需桌面软件
  • 可同步WordPress官方翻译

适用场景:

  • 不想安装桌面软件
  • 需要快速翻译少量字符串
  • 客户需要自行管理翻译

📍 WPML(WordPress多语言插件)

属性说明
类型WordPress插件
价格付费(3939-39−199/年)
官网https://wpml.org

主要功能:

  • 完整的多语言网站解决方案
  • 内置字符串翻译功能
  • 支持翻译主题和插件
  • 专业翻译服务集成

适用场景:

  • 需要多语言网站
  • 需要翻译内容和界面
  • 商业项目,预算充足

📍 WP-CLI

属性说明
类型命令行工具
价格免费开源
官网https://wp-cli.org

i18n相关命令:

# 生成POT文件
wp i18n make-pot <source> <destination>

# 从PO生成MO
wp i18n make-mo <source> <destination>

# 从PO生成JSON(用于Gutenberg区块)
wp i18n make-json <source> <destination>

# 更新PO文件
wp i18n update-po <source>

📖 7.2 学习资源

📍 官方文档

资源链接说明
WordPress开发者手册-国际化developer.wordpress.org/plugins/internationalization/插件国际化指南
WordPress翻译手册make.wordpress.org/polyglots/handbook/官方翻译贡献指南
Poedit官方文档poedit.net/docsPoedit使用教程
GNU gettext手册gnu.org/software/gettext/manual/gettext底层原理

📍 中文社区

社区说明
WordPress中国cn.wordpress.org
WordPress中文论坛wordpress.org.cn
翻译贡献者团队make.wordpress.org/polyglots/teams/?locale=zh_CN

📂 7.3 常用汉化资源下载

资源链接说明
WordPress核心中文包translate.wordpress.org官方维护,质量最高
WooCommerce中文包translate.wordpress.org官方维护
Elementor中文包translate.wordpress.org社区维护

📋 课程总结

🎓 知识回顾

通过本课程的学习,你已经掌握了:

模块学习内容掌握程度
理论基础i18n/l10n概念、PO/POT/MO文件类型✅ 深入理解
工具使用Poedit安装配置、界面操作、快捷键✅ 熟练掌握
实操流程完整的汉化工作流程(9个步骤)✅ 独立完成
问题解决常见问题排查和解决方案✅ 能够排错
质量标准翻译最佳实践、术语规范✅ 灵活运用
效率提升翻译记忆库、AI辅助、批量处理✅ 了解并应用
拓展知识其他工具、学习资源✅ 知道如何获取

📝 重要知识点速查

知识点要点
文件类型POT(模板)→ PO(翻译)→ MO(编译)
命名规范{textdomain}-{locale}.po/mo
存放位置推荐 wp-content/languages/plugins//themes/
语言设置后台 → 设置 → 常规 → 站点语言
占位符%s%d%1$s 必须保留
翻译工具Poedit、Loco Translate、WP-CLI

🚀 下一步学习建议

步骤行动建议
1. 实战练习选择一个简单的插件进行完整汉化实践
2. 建立术语库整理自己的WordPress术语翻译对照表
3. 加入社区在translate.wordpress.org参与官方翻译
4. 尝试Loco Translate体验在WordPress后台直接翻译的便捷性
5. 学习主题/插件开发了解如何让自己的代码支持国际化
6. 关注更新随着WordPress版本更新,保持知识更新

📌 附录

附录A:汉化检查清单

完成汉化后,使用此清单进行最终检查:

附录B:常见错误消息及解决方案

错误消息可能原因解决方案
"Translation not loaded"文件名或位置错误检查文本域和语言代码
"Invalid MO file"MO文件损坏重新用Poedit编译
乱码显示编码问题确保使用UTF-8编码
部分未翻译翻译不完整或文本域不匹配检查未翻译条目和代码

回复