在调戏 WordPress 的过程中,插件是不可不戏的一个部位。对于许多人来说,面对着满屏英文的插件设置,难免会有所纠结。还好有很多热心高手为我们汉化了许多的插件,方便了我们的使用,在这里谢谢他们。可是,要是插件还没被汉化呢,难道就面对满屏英文而纠结吗?非也非也,我们可以自己对插件进行汉化,就算是顽固插件,也一样不放过。方法来自 @Leewings ,感谢。
所谓的汉化
那么,使用 PoEdit 进行汉化的原理是什么呢?WordPress 使用 GNU gettext 机制来汉化,关键之处在于两个函数 _e()
和 __()
。 PoEdit 通过识别并提取调用了这两个函数里的字符串,然后你只需要输入那些字符串所对应的中文语句,其他的交给 PoEdit 就行了,所有翻译的语句都会在 .po
文件中。看不懂?没关系,接下来我们开始汉化啦。
如何汉化插件
如何汉化顽固插件
_e()
和 __()
,使得 PoEdit 无法识别其中需要被汉化的字符串,因此那种插件就不能被汉化鸟。
正如标题所说的,如何汉化顽固插件。其实方法很简单,就是我们手动调用函数 _e()
和 __()
。本文以 Samsarin PHP Widget (让边栏支持 PHP 的插件)为例,这是没有汉化前的 Samsarin PHP Widget 后台设置以及直接载入 PoEdit 的结果,它完全不懂中文。 XD
接下来我们就开始对它动手动脚啦,手用来动鼠标,脚用来赶蚊子,欧耶。
[1] 对 samsarin-php-widget.php
进行修改
load_plugin_textdomain('samsarin_php_widget', "/wp-content/plugins/samsarin-php-widget/");
单引号内的内容就是插件名称,双引号内的内容就是插件的相对路径啦。之所以要这么修改,是因为:
在确保输出的文本可以被本地化之后,你必须设置你的插件,使得能够导入适当的.mo
文件。.mo
是编译后的.po
文件,它是在 PoEdit 保存的时候会自动产生的。 via
关于那个插件名称,有点儿囧。最好看看代码里怎么叫它的名字,别以为是作者是 samsarin-php-widget
叫的实际上却是 samsarin_php_widget
的说。
[2] 把需要汉化的字符串标记出来
<strong>Samsarin PHP Widget Options</strong> //把上面的代码修改成下面的样子: <strong><?php _e('Samsarin PHP Widget Options', 'samsarin_php_widget'); ?></strong>
整个格式就是这样滴, HTML 元素可以不被 PHP 函数包围起来。就这么把所有需要汉化的字符串标记出来。
[3] 在 PoEdit 中进行汉化
[4] 调戏一下