WordPress支持多语言设置之本地语言包po文件

WordPress默认的翻译自带函数有两个,一个是 _e(),另一个是 __(),两者的区别_e() 是直接输出结果,相当于echo语句,而 __() 只是返回值,相当于是return语句。

我们在一起大型的商业WordPress主题中都会发现有一个languages的文件夹,这就是用来放WordPress多语言包的,文件夹中会有mo/po文件,就是通过这些文件来对wordpress的语言进行翻译的,比如一些wordpress的插件可以多语言,有的只有英文,那么他的语言包中就没有中文。

如果你已经对一些大型的WordPress主题或者插件有汉化的经验,应该是了解过语言包生成工具Poedit,它可以用来修改po文件,从而对主题进行汉化。对于要提交到wordpress搜索的朋友,我觉得让主题支持多国语言还是挺有用的,毕竟要让咱的主题与国际接轨嘛,再者把语言从代码中分离出来可以方便二次开发的时候进行统一管理。那我们在做主题的时候如何让 WordPress支持多国语言呢?这里我就简单说一下英文主题制作中文汉化包的过程吧。

第一步,是给WordPress主题定义一个WordPress多语言的存放目录,在 functions.php 中加入以下代码:

add_action('after_setup_theme', 'hx_lg_fn');
function hx_lg_fn(){
    load_theme_textdomain('hx_lg', get_template_directory() . '/languages');
}

这一步设置了语言包放置在wordpress主题文件夹下的languages文件夹内。

第二步,就是在主题里用函数来输出英文原文,例如:

<?php _e( 'come on baby' , 'hx_lg'); ?>

_e() 中第一个参数是需要翻译的部分,另一个参数需要和第一步中 functions.php 添加的 load_theme_textdomain() 的第一个参数,就像给出的例子中两个位置必须同是hx_lg。

第三步,WordPress多语言之配置 Poedit 软件

利用Poedit新建一个“消息目录文档”,如下图:

然后它需要我们对这个文档初始设置一下。

(上图)本例我需要把上面的英文字段翻译成中文的,所以在设置的“工程信息”一栏中我是这样填写的,这些填写都不是很重要,就是一些记录信息之类的,不影响翻译操作。

(上图)接着要填写的是第二个标签页“路径”。这一步很重要,请按图中的填写。因为它将会告诉这个软件从何处获取需要翻译的字段。

(上图)第三个标签页是用来决定自动获取需要翻译字段的关键字。就是告诉软件,当代码中出现什么的字时候,确定它为要翻译的字段而选择出来。大家按上图填写就好了,是不是发现上面的“_e”在较早我所说的例子代码里都存在啊,大家明白了吧。

当大家按上面的设置好之后,记得把文件存放在较早前新建的目录languages内,因为这是简体中文的翻译,所以文件名是zh_CN,后缀名是.po。

接下来点击一下软件中的第三个图标(如下图红色标记处)。很快我们的主题文件中所有合符要求的需要翻译的字段列举出来了,非常高效。

如下图,工具显示两栏,左侧为需要翻译的字段,右侧是WordPress多语言的译文。当还没有翻译的字段的右侧是留空的,如图中的“Read more”。

我们点击下需要翻译的字段,然后在最下面一栏填写翻译的内容就行了。大家就这样把需要翻译的字段一个一个翻译完吧,耐心点。

当所有需要翻译的字段都完成后,点击如下图的红色按钮。软件会把当前的编译文件zh_CN.po进行保存并且同时在该文件的的有目录中生成一个文件名相同但后缀名是.mo的WordPress多语言。

因为后缀名是.po的文件我们是可以进行编译操作的,文件名是.mo的则是不能进行编译,但它却是系统需要读取的文件。所以请务必日后在每次更改了.po文件后,都重复一下上面的这个步骤,更新一下对应的.mo文件。

基本的操作就是这样的了,wordpress判断访问设备是否为手机后就可以着手WordPress多语言其他语言制作了。所有的步骤都与上面所说的相同,只是翻译的内容不同罢了。相信大家会举一反三的。

这里原理就是,WordPress加载的时候会根据wp-config.php的配置文件中define (‘WPLANG’, ‘zh_CN’);这个语言常量。

我爱主题网 自2012
主题:260+ 销售:1000+
兼容浏览器

电话咨询

7*12服务咨询电话:

133-7205-6573

微信咨询