WordPress 默认的主题中都会有一个 languages 的文件夹,你一定知道,这就是用来放语言包的,其中一定会有成双成对的 mo/po 文件。如果你已经对一些国外的 WordPress 主题或者插件有汉化的经验,那你一定知道我们可以用 Poedit 这个小软件来修改 po 文件,从而对主题进行汉化。对于要提交到 WordPress 官方主题站的朋友,我觉得让主题支持多国语言还是挺有用的,毕竟要让咱的主题与国际接轨嘛,再者把语言从代码中分离出来可以方便二次开发的时候进行统一管理。那我们在做主题的时候如何让 WordPress 支持多国语言呢?这里我就简单说一下英文主题制作中文汉化包的过程吧。
第一步,是给 WordPress 主题定义一个语言包的存放目录,在 functions.php 中加入以下代码:
第二步,就是在主题里用函数来输出英文原文,例如:
这里需要说明一下,WordPress 的翻译函数有两个,一个是上面写的 _e(),还有一个是 __(),两者的区别类似于 PHP 中的 echo 和 return,_e() 是直接输出结果,而 __() 只是返回值,具体可以看官方文档的介绍。另外需要注意的是, _e() 中第一个参数是需要翻译的部分,另一个参数需要和第一步中 functions.php 添加的 load_theme_textdomain() 的第一个参数,就像给出的例子中两个位置必须同是 wange。
第三步,配置 Poedit 软件,我用的是汉化版的(用汉化版的汉化软件,好囧)。
1、文件-新建消息目录文档-工程信息。把能填的全都填上,不知道其中有没有必填项,这个我没试过,反正填满总没错。如图:
2、然后是“路径”的设置,基本路径是两个点,下面的路径新建内容一个点,如图:
3、再接下来是“关键字”的设置,这里的关键字就是第二步中提到的两个 WordPress 翻译函数,只要填 __ 和 _e 就可以了,如图:
第四步,用 Poedit 来进行配置翻译文件吧,点击界面上的第三个位置的蓝色小圆球就可以自动获取路径里的翻译函数,然后列出来,把需要翻译的文字输入在下方就可以了,然后点击保存。Poedit 会自动在指定目录生成 po 和 mo 文件。
这样就可以了,这是我做主题时候的一些经验的复述,可能有遗漏的地方,还请指出哈。
另外,在制作的过程中我发现一个问题,就是如果主题有后台控制面板,那翻译文件如何处理呢?主题的后台是用勾子的,所以据我的理解,翻译文件应该用的也是 WordPress 默认的语言包,那样一来就不能自如地对后台进行翻译了,有什么办法把语言包和路径用勾子一起勾进去呢?或者还是有其他的方法?还请高手指点一下~