使用 poEdit 汉化 WordPress 插件

翻译或者说本地化 WordPress 插件可以让更多的人使用你的插件用,而 WordPress 对 i18n 的支持使这一切都变得非常简单,插件作者(包括主题作者)非常容易就能让人们把他们的插件翻译成各种语言。

这篇日志首先将会详细讲解应该如何修改插件,使得插件能够被翻译。然后将介绍一个叫做 poEdit 的翻译软件,通过它来 本地化 WordPress 插件。

WordPres 插件本地化的好处和 .po 文件

WordPress 插件有越多的语言版本,就会有越多的不同国家的人下载和使用。

如果 WordPress 插件很流行,很多人使用,就会有用户把它翻译成不同的语言以方便其他地区的人能够使用它。当然最麻烦最原始的翻译方法就是逐行逐字的翻译源代码。不过现在采用的是简单轻便的翻译方法:通过 .po 文件。

通过 .po 文件,任何人都能翻译你的插件,只要他对插件的使用的原来语言熟悉。并且 .po 文件还有一个好处就是,如果插件的源代码作了任何修改,翻译者不必查看源代码来重新翻译,因为所有需要翻译的文本都会保存在一个后缀名为 .po 文件中,翻译者所需要做的只是重新更新下 .po 文件,翻译新增或修改的部分。

插件本地化的准备工作

WordPress 使用 GNU gettext 机制来实现本地化。WordPress 有两个可以被插件作者调用的函数:_e__。每次在插件中输出文本,都应该使用这两个函数。

这两个函数使用方法是:__($message, $domain) 和 _e($message, $domain)
_e__的区别是:_e 直接输出文本,而 __ 是返回文本,你需要自己输出,所以 __ 一般用在字符串连接当中。
这两个函数都用 $message 作为第一个参数和 $domain 作为第二个参数。第一个参数就是你要输出的文本,而第二个参数 $domain不是可选的,它应该是一个和你插件或者主题对应的唯一的名字,举个例子,如果你开发一个叫做 Related Posts 的插件,这里 $domain 就是 related_posts$domain 一般是在 load_plugin_textdomain 函数中定义,下面有具体介绍。

导入本地化文件

在确保输出的文本可以被本地化之后,你必须设置你的插件,使得能够导入适当的 .mo 文件。.mo 是编译后的 .po 文件,它是在 poEdit 保存的时候会自动产生的。

在你插件中的代码大致如下所示:


load_plugin_textdomain('your-plugin-domain', "/wp-content/plugins/your-plugin-directory/");

函数具体语法:load_plugin_textdomain($domain, $path)
$domain 变量和在 ___e 中使用的是同一个变量。$path 是定义 .mo 文件的路径。可以使用相对于 ABSPATH 的相对路径。如果插件没有自己的目录,这里也可以设置为空。

这里需要注意的一件事情是,产生的任何 .mo 文件都应该以 $domain 变量的值作为文件名的前缀。如果插件的 $domainrelated_posts,那么 .mo 文件将会被命名为 related_posts-zh_CN.mo(假设插件翻译成中文)。

使用 poEdit 进行翻译

WordPress Codex 已经有一个非常好的如何使用 poEdit 翻译插件或者主题的 step-by-step 教程,但是我这里将通过一个真实的例子向你展示这些步骤。

第一步:下载 poEdit

到达 poEdit 项目页面,然后下载,安装它就可以。

第二步:找一个插件翻译

这里,我将举个我写的插件 Related Posts 作为例子。

第三步:打开 poEdit 并打开菜单 File -> New catalog…

在弹出的 ‘Settings’ 对话框中,输入你项目的名称,并设置字符集为 UTF-8。

settings_project_name

第四步:输入插件的路径

在刚才的 ‘Settings’ 对话框,点击 ‘Paths’ 标签页并点击建立新条目的图标。假设插件在自己的子目录下并且你会把 .po 保存在子目录中,输入”.”(这将告诉 poEdit 去扫描当前目录和所有子目录)。

poedit_paths

第五步:设置适当的关键字

因为 WordPress 使用 _e__ 函数来本地化,所以你应该让 poEdit 知道这就是它应该查找的。点击 ‘Keywords’ 标签页并输入 _e__ 作为关键字,你可以通过点击 ‘New Item’ 图标输入关键字。

keywords_new_item

第六步:点击 OK 并开始翻译

点击 “Okay” 按钮并保存 .po 文件到你的插件目录下。

在你保存 .po 文件之后,会有一个窗口弹出并告诉你所有它找到相匹配的文本。

poedit_update_summary

如果你不准备翻译该插件,你可以保存.po 文件并把它和插件一起分发出去,让别人能够直接使用它进行翻译。

第七步:翻译插件

一旦所有需要翻译的文本都找到了,就该开始翻译插件了。你所做的就是只要简单的找到你想翻译的文本,并增加你自己的语言。

poedit_translate

上面的 poEdit 界面就是插件翻译界面。

第八步:保存 Catalog

还记得前面提到的 $domain 吗?举个例子,我想产生一个西班牙文的翻译文件,我将会保存这个文件并以 $domain 作为前缀,然后语言和地区代码作为后缀。在这里,$domainrelated_posts 并且语言和地区代码是 es_ES。所以文件名应该为: related_posts-es_ES

通过保存新文件,我将自动生成一个可以让别人使用的 .po的文件,和一个可以被 WordPress 直接读取来本地化插件的 .mo 文件。

现在如果用户已经在他们的 wp-config.php 文件中设置了适当的 WPLANG 的值,他们插件的选项和输出的文本将会使他们当地的语言。

总结

本地化一个 WordPress 插件是让更多地区用户使用你的插件的一个非常好的方法。本地化首先需要插件作者保证插件能够真正本地化,最后翻译者使用 PoEdit 进行翻译。

参考:

WordPress Localization Repository
Creating POT Files
gettext (Wikipedia)
Localizing Plugins and Themes

相关阅读:

Translating WordPress Plugins
Localizing WordPress Themes
Localizing WordPress Themes and Plugins
Translating WordPress into another language

本文翻译:Localizing a WordPress Plugin Using poEdit。

标签:poEdit WordPress

本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、Python、Objective-C、ActionScript、Pascal等单词的拼写,熟悉Windows、Linux、OS X、Android、iOS、WP8等系统的开关机。

通过下面的方式来联系我们:

电邮:138762189@qq.com

联系QQ:点击这里给我发消息

官方站:www.tadke.com

※ ※ 联系请加我的企鹅号 ※※

※ ※技术支持请微信联系站长 ※※

Copyright © 2023 Tadke.com. 琼ICP备20000547号