您现在的位置是:首页 > cms教程 > WordPress教程WordPress教程

wordpress插件怎么汉化

张豆焕2025-03-02WordPress教程已有人查阅

导读翻译或者说本地化 WordPress 插件和主题可以让更多的国家和地区的人使用,而 WordPress 对 i18n 的支持使这一切都变得非常简单,插件和主题的作者非常容易就能让人们把他们的插

翻译或者说本地化 WordPress 插件和主题可以让更多的国家和地区的人使用,而 WordPress 对 i18n 的支持使这一切都变得非常简单,插件和主题的作者非常容易就能让人们把他们的插件翻译成各种语言。
这篇日志首先将会详细讲解应该如何修改插件和主题,使得插件和主题能够被翻译。然后将介绍一个叫做 poEdit 的翻译软件,通过它来 本地化 WordPress 插件和主题。
WordPres 插件和主题本地化的好处和 .po 文件
WordPress 插件和主题有越多的语言版本,就会有越多的不同国家的人下载和使用。
如果 WordPress 插件和主题很流行,很多人使用,就会有用户把它翻译成不同的语言以方便其他地区的人能够使用它。当然最麻烦最原始的翻译方法就是逐行逐字的翻译源代码。不过现在采用的是简单轻便的翻译方法:通过 .po 文件。
通过 .po 文件,任何人都能翻译你的插件或者主题,只要他熟悉插件使用的原始语言。并且 .po文件还有一个好处就是,如果源代码作了任何修改,翻译者不必查看源代码来重新翻译,因为所有需要翻译的文本都会自动保存在一个后缀名为 .po 文件中,翻译者所需要做的只是重新更新下.po 文件,翻译新增或修改的部分。
下面以插件为例,详细讲解 WordPress 插件和主题翻译的所有过程:
本地化的准备工作
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 变量的值作为文件名的前缀。如果插件的 $domain 是 related_posts 的话,那么 .mo 文件将会被命名为 related_posts-zh_CN.mo(假设插件被翻译成中文)。
使用 poEdit 进行翻译
WordPress Codex 已经有一个非常好的如何使用 poEdit 翻译插件或者主题的 step-by-step 教程,但是我这里将通过一个实例展示这些步骤。
第一步:下载 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 作为前缀,然后语言和地区代码作为后缀。在这里,$domain 是related_posts 并且语言和地区代码是 es_ES。所以文件名应该为:related_posts-es_ES。
通过保存新文件,我将自动生成一个可以让别人使用的 .po的文件,和一个可以被 WordPress 直接读取来本地化插件的 .mo 文件。
现在如果用户已经在他们的 wp-config.php 文件中设置了适当的 WPLANG 的值,他们插件的选项和输出的文本将会使他们当地的语言。
总结
本地化一个 WordPress 插件是让更多地区用户使用你的插件的一个非常好的方法。本地化首先需要插件作者保证插件能够真正本地化,之后翻译者使用 PoEdit 进行翻译。
备注:对于 WordPress 插件,建议大家使用 PoEdit 进行汉化。直接修改源代码也是可以的,但没有注意编码格式的话,可能会导致插件设置页面出现乱码。而且,插件升级之后旧文件被新文件覆盖,汉化也随之消失……使用 PoEdit 一般不会出现这些问题。
那么,使用 PoEdit 进行汉化的原理是什么呢?WordPress 使用 GNU gettext 机制来汉化,关键之处在于两个函数『 _e 和 __ 』。 PoEdit 通过识别并提取调用了这两个函数里的字符串,然后你只需要输入那些字符串所对应的中文语句,其他的交给 PoEdit 就行了,所有翻译的语句都会在 .po 文件中。
世界上只有两种插件不能被汉化:这种和那种。对于这种插件,他本身就是中文,当然不需要汉化啦。而那种插件呢,由于作者在编写插件过程中没有调用函数『 _e 和 __ 』,使得 PoEdit 无法识别其中需要被汉化的字符串,因此那种插件就不能被汉化。

本文标签:

很赞哦! ()

相关源码

  • (自适应)科技产品设备技术作品pbootcms网站模板带下载和招聘基于PbootCMS内核开发的高端科技企业模板,采用响应式布局技术,适配各类移动终端设备。模板设计聚焦科技行业特性,通过模块化结构实现企业形象展示、技术成果发布与人才招募等核心需求查看源码
  • (自适应)营销型健身器材产品设备类pbootcms模板网站为健身器材企业打造的营销型网站模板,基于PbootCMS开源内核开发。采用HTML5响应式架构,PC与移动端数据实时同步,适配多终端展示场景。查看源码
  • 响应式粉色美容整形化妆品pbootcms网站模板开源源码该网站模板为美容整形、化妆品企业设计,采用响应式布局确保在手机、平板及PC端自动适配显示效果。基于PbootCMS内核开发,支持一键替换图文内容快速转换至其他行业应用。查看源码
  • (PC+WAP)绿色市政园林建筑设计绿化营销型pbootcms网站模板本模板基于PbootCMS系统开发,为园林绿化、景观设计类企业设计,特别适合市政园林、景观工程、绿化养护等企业使用。采用双端适配技术查看源码
  • (PC+WAP)货物运输快递物流汽车贸易pbootcms模板下载为货运代理、汽车贸易及快递企业设计的全终端适配网站系统,整合运单追踪与车辆展示核心功能模块原生开发的DIV+CSS架构,支持WebP图像压缩技术。查看源码
  • (自适应)宽屏农业机械农耕设备类网站pbootcms模板免费下载为农机企业打造的现代化响应式网站模板,自动适配电脑、平板和手机,浏览体验一致,独立页面SEO设置,提升搜索引擎可见度。查看源码
分享笔记 (共有 篇笔记)
验证码: