WordPress有非常多的主题和插件,但是很多都是老外开发的,没有默认包含中文语言包,导致很多朋友无法直接使用。一直来,倡萌都在分享一些不错的WordPress插件,然后尽可能进行汉化翻译,但是一个人的精力毕竟有限。
所以,今天分享下使用Poedit翻译/汉化WordPress主题和插件的教程,希望可以帮助到一些朋友。
PoEdit 是一款.po文件编辑器,PO即Portable Object,可跨平台对象的意思,PoEdit常用来汉化各种程序,它内置于wxWidgets工具中,可以在所有它支持的平台上运行,如Unix下的GTK+以及Windows。PoEdit提供更方便的办法编辑目录,而不用通过启动VI文本编辑器,手动编辑。
百度百科
估计谁看了百科的介绍都有点云里雾里,下面就直接进入正题吧。
下载安装Poedit
下载并安装Poedit:https://poedit.net/(建议务必到官方下载,如果实在没办法官方下载,请自己百度下载吧)安装过程就不想讲述了。
编辑和保存翻译
1、安装好以后,运行poedit,然后就可以看到如下界面,通常我们直接点击“翻译WordPress主题或插件”:
2、然后会弹出一个窗口,将需要翻译的插件文件夹拖放到上面,然后按照下图选择语言,继续:
3、稍等一下,Poedit就为检索到了需要翻译的字段,非常智能化。
根据倡萌的经验,我们需要修改一下“编目属性”里的“复数形式”,如下图,选择“使用自定义复数表达式”,然后填入
nplurals=2; plural=(n > 1);
,这样就可以确保单复数字段可以正常识别和翻译。
在“编目属性”的“源关键字”选项卡,我们可以看到Poedit已经自动添加了关键字,也就是只要在WordPress主题或插件中,包含了这些关键字的字段,都可以检索和翻译。一般而言,我们不需要去修改这里的设置,除非你很清楚源关键字到底是什么。
4、接下来,我们就可以逐条进行翻译,上面是英文,下面就是输入中文的地方。
注意:翻译一定要非常注意
高亮字段
,比如下图的源文本中包含了高亮显示的%s
,我们需要原样复制到翻译中,必须确保可以正常高亮显示,否则可能会导致这条翻译无法正常生效。
Poedit 的右侧栏已经包含了自动翻译建议,免费版一般采用的是微软翻译,如果你要更好的翻译质量,那可以购买他们的最高级的授权,是按年收费的。
5、翻译以后,我们第一次保存,会 弹出如下窗口,一般文件名默认即可,文件名后面的部分,简体中文为 zh_CN
,繁体中文为 zh_TW
。
保存以后,一般会同时生成一个.mo
格式的文件,这个文件就是显示翻译必须的,而 .po
格式的文件是Poedit软件可编辑的格式,也就是说,我们只需要去编辑.po
格式的文件,保存时会自动更新.mo
文件。
上传翻译到对应目录
一般而言,你保存翻译文件的时候,Poedit会智能地识别目录,然后将文件保存在插件的指定语言目录中,这样一般就可以生效了。比如上图的 search-meter/languages
目录就是Search Meter 插件的语言目录。
但是,通常我们都需要在后台更新主题和插件,这样会导致,每次更新都会删除掉语言包,为了解决这个问题,WordPress还提供了一个很好的解决办法。
- 插件:将插件的.mo和.po文件上传到
/wp-content/languages/plugins
目录即可 - 主题:主题默认保存的语言包,是不包含主题名称的,你会看到 zh_CN.mo 和 zh_CN.po,所以我们要修改下名字为
主题名+zh_CN
(比如2020主题的语言包名字为twentytwenty-zh_CN
),然后将语言文件上传到/wp-content/languages/themes
目录即可
注:严格来说,上面说的
主题名
其实应该是主题注册翻译的时候设置的textdomain
,通常规范的主题设置都会将textdomain
设置为主题文件夹的名称。如果你要了解更多,可以看下:《让WordPress主题支持语言本地化》
如何对新版本进行翻译
WordPress主题和插件会不断升级更新,如果我们要对新版本的主题或插件更新翻译,如何做呢?
其实很简单,只需要将之前的语言包文件复制到主题或插件自身的语言目录,然后编辑 .po
文件,点击界面的“从代码更新”即可获取到新的字段,翻译后,保存即可。
设置Poedit首选项
如果你觉得每次翻译新的项目,都需要填写一些信息太麻烦了,你可以在首选项设置一些默认的设置,比如翻译者的名称和电子邮件等:
一些翻译建议
翻译最重要的就是质量。如果翻译不准确,可能会给使用者造成困扰,甚至会导致使用者误操作。所以,翻译是一项细活,翻译完了以后,还要去后台插件的界面去仔细看下,哪些句子或词语翻译不够准确,进行必要的修正。
并不是所有的主题和插件都非常规范,有时候,你会发现无法使用Poedit获取翻译字段,或者获取到的字段不完整。如果遇到这些问题,建议联系主题或插件的作者反馈,希望他们进行完善和修复。
如果你发现翻译的语言包在主题或插件的语言目录中不生效,那就尝试复制语言包到 /wp-content/languages/plugins
(插件)或/wp-content/languages/themes
(主题),或许就可以了。
如果你翻译汉化了主题或插件,学会分享出来,让更多人的人受益。只要人人都奉献一点爱,世界将变成美好的人间!
拓展阅读:
- WordPress翻译中 __()、_e()、_x、_ex 和 _n 的用法及区别
- 让WordPress主题支持语言本地化
- 让WordPress插件支持语言本地化
- WordPress函数:load_theme_textdomain(主题本地化)
- WordPress函数:load_plugin_textdomain(插件本地化)
- WordPress函数:wp_localize_script(脚本本地化)
- 如何本地化翻译 Javascript 中的字符串
- WordPress 使用 gettext 钩子替换本地化翻译文本
- WordPress 5.0+ JavaScript本地化翻译
来源:
https://www.wpdaxue.com/using-poedit-to-translate-wordpress-themes-and-plugins.html