自动翻译/汉化 WordPress 主题与插件的教程
WordPress 的主题和插件大部分是英文的,如何将它们自动翻译成中文?本文将详细介绍Loco Translate 插件的自动翻译组件使用方法。该方法将通过 Deepl 或 Google Translate 的翻译功能实现,无需任何API。
目录索引前言① 开发者编码时需要符合 WordPress 规范② 主题与插件需要提供语言包(.pot或.po文件)翻译前准备工作下载 Loco Translate dev版本 与 Loco Automatic Translate Addon PRO 组件Loco Automatic Translate Addon PRO 使用教程使用 Deepl 自动翻译使用 Google Translate 自动翻译一些小技巧前言
WordPress 其开源免费的特性,受到全球广大开发者的支持,催生出大量的主题与插件。因其中大部分是国外的开发者发布的,所以采用英文的居多,给国内的使用者带来了一些语言障碍。
WordPress 核心程序提供了多语言的功能接口,但主题与插件需要满足两个条件方可实现多语言。
① 开发者编码时需要符合 WordPress 规范
例如,开发者不能在PHP程序中使用echo “hello”;这样的文本输出。而应该使用:esc_html_e(‘hello’, ‘Text Domain’);
上述例子中,esc_html_e() 是WordPress一个核心函数,当 ‘hello’ 在语言包中能找到对应网站当前设置的语言时,则自动输出翻译后的文本,否则输出’hello’。
② 主题与插件需要提供语言包(.pot或.po文件)
在第①点中,提到esc_html_e 函数可以输出翻译后的文本,但开发者应该将程序中所有可翻译的文本创建一个语言包以供使用者翻译。通常放在主题或插件的languages目录或lang目录中。
只有满足这两个条件的插件与主题才能被方便的翻译成其它语言。
翻译前准备工作
Loco Translate 插件默认只支持手动翻译,将语言包中的词句逐行输入对应的翻译文本。这样不仅工作量巨大,而且对于语言能力不强的用户而言几乎是不可完成的工作。
但 Loco Translate 提供了一个附加组件Loco Automatic Translate Addon PRO,能调用 Deepl 或 Google Translate 的在线翻译功能,实现自动翻译文本。
下载 Loco Translate dev版本 与 Loco Automatic Translate Addon PRO 组件
Loco Automatic Translate Addon PRO 自动翻译插件 已激活版
安装并启用这两个插件。
Loco Automatic Translate Addon PRO 使用教程
从站长帮下载的版本是已经激活的,可以直接使用。
启用插件后,在 WordPress 后台 “仪表板 > Loco Translate > 插件”菜单中,能看到所有已安装的插件,点击插件名称即可开始翻译。
Loco Translate 翻译插件
本文以汉化翻译 UpdraftPlus 备份插件为例,点击 UpdraftPlus – Backup/Restore 链接,插件提示未找到该插件的翻译,如下图:
开始翻译UpdraftPlus
点击“新语言”,创建简体中文翻译包。
创建 UpdraftPlus 简体中文语言包
第一个选项是选择要翻译的目标语言,第二个选项是翻译包存储的路径。一般情况建议将翻译包存储在系统默认的wp-content/languages/plugins目录中,这样插件版本升级更新后翻译包一般不会丢失。
注意:极少数插件只能选择插件的语言目录plugins/updraftplus/languages/才可使翻译生效。
点击开始翻译后,出现 Loco Translate 翻译插件的编辑界面:
Loco Translate 编辑界面使用 Deepl 自动翻译
在翻译编辑界面中,有一个“Auto Translate”自动翻译按钮,点击并选择 Deepl Translate 。
Deepl 自动翻译 步骤1Deepl 自动翻译 步骤2Deepl 自动翻译
注意:Deepl 的免费文件翻译是有字数限制的,如果需要翻译的字数太多,可以分批次进行翻译。下面将介绍 Google Translate 的在线翻译功能,无字数限制,但需要浏览器能正常访问Google Translate。
使用 Google Translate 自动翻译选择 Google 翻译选择翻译的目标语言为:简体中文
选择后,插件将自动调用谷歌翻译逐行翻译文本,翻译速度视网络状况,如下图:
谷歌翻译处理中
处理完毕后,记得点击“Merge Translation”按钮合并翻译。
添加/合并翻译
覆盖现有翻译很好理解,它会将原有的翻译用新的翻译文本替代。
将新翻译标记为模糊则会不让翻译立即生效,需要逐行进行核对后才生效。
点击“ Start Adding Process”按钮后,翻译文本就出现在Loco Translate 翻译插件的编辑界面中。
这里需要注意的是,当源文本中包含”%s“或HTML代码,Google Translate 是不会处理的。需要手动翻译,例如:”%s” has no primary key, manual change needed on row %s. 应翻译成:“%s”没有主键,需要手动更改行 %s。
变量或HTML代码需要在翻译结果中完整保留,否则插件或主题可能报错。
一切就绪之后,记得点击保存按钮,Loco 插件会自动生成翻译后的.po语言包和.mo编译文件。这时候再打开插件或主题的设置界面,就应该是中文了。
一些小技巧
如果翻译后插件或主题的界面中依然是英文,则可以尝试更改一下语言包的存储路径。例如,更改成插件的语言目录plugins/updraftplus/languages/。
如果Loco提示“此捆绑包的模板文件还不存在。我们建议您在添加语言之前先创建模板文件。”则说明开发者未提供语言模板文件(.pot),可以选择从其它语言包复制,如下示例:
从其它语言翻译中复制语言包
如果既没有模板文件,也没有其它语言包,那么这个插件或主题无法通过Loco翻译,可以尝试联系开发者提供模板文件。但这种情况很少见,一般也是一些不规范的插件才会这么干。