存档

文章标签 ‘汉化’

如何汉化WordPress顽固插件

2009年9月4日 admin 没有评论

在调戏 WordPress 的过程中,插件是不可不戏的一个部位。对于许多人来说,面对着满屏英文的插件设置,难免会有所纠结。还好有很多热心高手为我们汉化了许多的插件(比如 WPLAND 就为大家提供了一些自己汉化的插件),方便了我们的使用,在这里谢谢他们 :-) 。可是,要是插件还没被汉化呢,难道就面对满屏英文而纠结吗?非也非也,我们可以自己对插件进行汉化,就算是顽固插件,也一样不放过。

所谓的汉化

对于 WordPress 插件,建议大家使用 PoEdit 进行汉化。直接修改源代码也是可以的,但没有注意编码格式的话,可能会导致插件设置页面出现乱码。而且,插件升级之后旧文件被新文件覆盖,汉化也随之消失……使用 PoEdit 一般不会出现这些问题,点击此处下载 PoEdit

那么,使用 PoEdit 进行汉化的原理是什么呢?WordPress 使用 GNU gettext 机制来汉化,关键之处在于两个函数『 _e 和 __ 』。 PoEdit 通过识别并提取调用了这两个函数里的字符串,然后你只需要输入那些字符串所对应的中文语句,其他的交给 PoEdit 就行了,所有翻译的语句都会在 .po 文件中。看不懂?没关系,接下来我们开始汉化啦。

如何汉化插件

关于 PoEdit 的使用,可以围观 Denis 童鞋的『使用 poEdit 本地化 WordPress 插件』,里面有详细的介绍,附上偷拍的一张汉化时候的照片。

localize-01

如何汉化顽固插件

世界上只有两种插件不能被汉化:这种和那种。对于这种插件,他本身就是中文,当然不需要汉化啦。而那种插件呢,由于作者在编写插件过程中没有调用函数『 _e 和 __ 』,使得 PoEdit 无法识别其中需要被汉化的字符串,因此那种插件就不能被汉化鸟。

正如标题所说的,如何汉化顽固插件。其实方法很简单,就是我们手动调用函数『 _e 和 __ 』。本文以 Samsarin PHP Widget (让边栏支持PHP的插件)为例,这是没有汉化前的 Samsarin PHP Widget 后台设置以及直接载入 PoEdit 的结果,它完全不懂中文,XD。

localize-02

接下来我们就开始对它动手动脚啦,手用来动鼠标,脚用来赶蚊子,欧耶。

[1] 对 samsarin-php-widget.php 进行修改

打开源文件之后,在注释下面(也就是正式代码开始的地方)插入以下代码:

1
load_plugin_textdomain('samsarin_php_widget', "/wp-content/plugins/samsarin-php-widget/");

之所以要这么修改,是因为『在确保输出的文本可以被本地化之后,你必须设置你的插件,使得能够导入适当的 .mo 文件。 .mo 是编译后的 .po 文件,它是在 PoEdit 保存的时候会自动产生的。 via单引号内的内容就是插件名称,双引号内的内容就是插件的相对路径啦

关于那个插件名称,有点儿囧。最好看看代码里怎么叫它的名字,别以为是作者是 samsarin-php-widget 叫的实际上却是 samsarin_php_widget 的说。

[2] 把需要汉化的字符串标记出来

要把需要汉化的字符串标记出来,这可是个眼力+体力的事儿。一般来说 PHP 函数或过程可以不用去看了,你需要注意的是那些 HTML 代码,比如:

57
58
59
<h2>Samsarin PHP Widget Options</h2>
//把上面的代码修改成下面的样子:
<h2><?php _e('Samsarin PHP Widget Options', 'samsarin_php_widget'); ?></h2>

整个格式就是这样滴, HTML 元素可以不被 PHP 函数包围起来。就这么把所有需要汉化的字符串标记出来。

[3] 在 PoEdit 中进行汉化
[4] 调戏一下

localize-03 

分类: 插件汉化 标签: , ,

自己动手汉化WordPress主题模板

2009年9月4日 admin 没有评论

好的WordPress主题模板都源自国外,所以大家使用的模板,基本上都是英文的,今天交大家自己动手,把使用的模板翻译成中文的,继续WordPress本地化!

今天我们就拿WordPress默认的模板作为例子。

在教程开始之前,首先想大家介绍一个PHP文件的编辑软件,软件我在前面已经介绍过了,点击查看

首先介绍一下WordPress的基本模板文件

  1. 1.style.css

    : CSS(样式表)文件

  2. 1.index.php

    : 主页模板

  3. 1.archive.php

    : Archive/Category模板

  4. 1.404.php

    : Not Found 错误页模板

  5. 1.comments.php

    : 留言/回复模板

  6. 1.footer.php

    : Footer模板

  7. 1.header.php

    : Header模板

  8. 1.sidebar.php

    : 侧栏模板

  9. 1.page.php

    : 内容页(Page)模板

  10. 1.single.php

    : 内容页(Post)模板

  11. 1.searchform.php

    : 搜索表单模板

  12. 1.search.php

    : 搜索结果模板

 
这些模板文件都会被调用,所以要把这些文件中显示的部分,都翻译成中文。

默认模板首页中的header.php是不需要我们翻译的。我们主要翻译内容部分,侧边栏部分和页尾部分,现在我们开始一一翻译。

index.php文件的翻译:

图片中需要翻译的部分,我已经分别标记出来了。

一,使用Editplus打开:index.php,复制”Read the rest of this entry”,在”index.php”里搜索,会找到这样的一行代码:

<code><?php the_content(’Read the rest of this entry &raquo;’); ?></code>

把“<?php the_content(’Read the rest of this entry &raquo;’); ?>”替换成“阅读全文”。

二,再搜索”Tags”,会搜索到两个”Tags”,根据上面的经验,需要修改的是括号里的”Tags”。替换成”标签”。

三,搜索”Posted in”,修改成”发表在”。

四,搜索”Comments”,会搜索到3个”Comments”,而另外一个”Comment”被跳过,需要修改括号内的两个加S的,和一个不加S的,都修改为”条评论”。

至此,图片中需要翻译的地方,我们已经翻译完了,但当你的日志超过数量在一个页面显示不完时,就会到第二个页面,这是会在首页的日志下面看到这样的一个超链接:Older Entries,在最后一页展示日志的下面会看到这样的超链接:Newer Entries。在中间的页面,可以同事看到这两个超链接,翻译成中文就是”较早日志”和”较新日志”。

然后另存文件,选择编码为:UFT-8格式,覆盖原来的index.php,效果就出来了。

侧边栏(sidebar.php)的翻译:

节省资源。相应需要翻译的也已经标注出来了。

使用Editplus打开sidebar.php,搜索”Pages”,改成”页面”。About的修改需要到后台–管理–页面管理,把About修改成”关于”就可以了,以后新建的页面,也会在这里显示,记得标题都使用中文就可以了。

搜索”Archives”,修改的是”<h2>Archives</h2>”这个,修改成”归档”。

搜索”Categories”,修改成”日志分类”。

搜索”Blogroll”,修改成”友情链接”。

搜索”Meta”,修改成”管理”.

“Site Admin”显示的是登陆的状态,如果没登陆,显示的则是”Log in”,在没登陆的状态下,”Log out”是看不到的。他们的翻译需要设计.po语言包,我们以后再讲。

页尾(footer.php)的翻译:

默认模板的页尾相当简单,不需要翻译什么。

后记:

相信大家已经明白了,模板的翻译其实是很容易的,可以自己尝试下,在翻译模板的时候,需要注意两个方面:第一,找对显示出来的英文在代码中的正确位置;第二,找到合适的对应中文。

其他的页面,我就不一一翻译了,有兴趣的朋友可以自己尝试着翻译。如果在翻译的过程中遇到了什么问题,请直接留言。