<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>China WordPress &#187; 插件汉化</title>
	<atom:link href="http://www.chinawp.com/topics/deepin/plugintranslate/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.chinawp.com</link>
	<description>WordPress 博客中文站</description>
	<lastBuildDate>Fri, 02 Oct 2009 20:07:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>如何汉化WordPress顽固插件</title>
		<link>http://www.chinawp.com/2009/09/73/</link>
		<comments>http://www.chinawp.com/2009/09/73/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 10:57:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[插件汉化]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[汉化]]></category>

		<guid isPermaLink="false">http://chinawp.com/?p=73</guid>
		<description><![CDATA[在调戏 WordPress 的过程中，插件是不可不戏的一个部位。对于许多人来说，面对着满屏英文的插件设置，难免会有所纠结。还好有很多热心高手为我们汉化了许多的插件（比如 WPLAND 就为大家提供了一些自己汉化的插件），方便了我们的使用，在这里谢谢他们   。可是，要是插件还没被汉化呢，难道就面对满屏英文而纠结吗？非也非也，我们可以自己对插件进行汉化，就算是顽固插件，也一样不放过。
所谓的汉化
对于 WordPress 插件，建议大家使用 PoEdit 进行汉化。直接修改源代码也是可以的，但没有注意编码格式的话，可能会导致插件设置页面出现乱码。而且，插件升级之后旧文件被新文件覆盖，汉化也随之消失……使用 PoEdit 一般不会出现这些问题，点击此处下载 PoEdit 。
那么，使用 PoEdit 进行汉化的原理是什么呢？WordPress 使用 GNU gettext 机制来汉化，关键之处在于两个函数『 _e 和 __ 』。 PoEdit 通过识别并提取调用了这两个函数里的字符串，然后你只需要输入那些字符串所对应的中文语句，其他的交给 PoEdit 就行了，所有翻译的语句都会在 .po 文件中。看不懂？没关系，接下来我们开始汉化啦。
如何汉化插件
关于 PoEdit 的使用，可以围观 Denis 童鞋的『使用 poEdit 本地化 WordPress 插件』，里面有详细的介绍，附上偷拍的一张汉化时候的照片。

如何汉化顽固插件
世界上只有两种插件不能被汉化：这种和那种。对于这种插件，他本身就是中文，当然不需要汉化啦。而那种插件呢，由于作者在编写插件过程中没有调用函数『 _e 和 __ 』，使得 PoEdit 无法识别其中需要被汉化的字符串，因此那种插件就不能被汉化鸟。
正如标题所说的，如何汉化顽固插件。其实方法很简单，就是我们手动调用函数『 _e 和 __ 』。本文以 Samsarin PHP Widget （让边栏支持PHP的插件）为例，这是没有汉化前的 Samsarin [...]]]></description>
			<content:encoded><![CDATA[<p>在调戏 WordPress 的过程中，插件是不可不戏的一个部位。对于许多人来说，面对着满屏英文的插件设置，难免会有所纠结。还好有很多热心高手为我们汉化了许多的插件（比如 <a href="http://wpland.cn/">WPLAND</a> 就为大家提供了一些自己汉化的插件），方便了我们的使用，在这里谢谢他们 <img src='http://chinawp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  。可是，要是插件还没被汉化呢，难道就面对满屏英文而纠结吗？非也非也，我们可以自己对插件进行汉化，就算是顽固插件，也一样不放过。</p>
<h2>所谓的汉化</h2>
<blockquote><p>对于 WordPress 插件，建议大家<strong>使用 PoEdit 进行汉化</strong>。直接修改源代码也是可以的，但没有注意编码格式的话，可能会导致插件设置页面出现乱码。而且，插件升级之后旧文件被新文件覆盖，汉化也随之消失……<strong>使用 PoEdit 一般不会出现这些问题，<a href="http://sourceforge.net/projects/poedit/">点击此处下载 PoEdit</a> 。</strong></p>
<p>那么，使用 PoEdit 进行汉化的原理是什么呢？WordPress 使用 <a href="http://en.wikipedia.org/wiki/Gettext">GNU gettext</a> 机制来汉化，<strong>关键之处在于两个函数『 _e 和 __ 』</strong>。 PoEdit 通过识别并提取调用了这两个函数里的字符串，然后你只需要输入那些字符串所对应的中文语句，其他的交给 PoEdit 就行了，所有翻译的语句都会在 .po 文件中。看不懂？没关系，接下来我们开始汉化啦。</p></blockquote>
<h2>如何汉化插件</h2>
<blockquote><p>关于 PoEdit 的使用，可以围观 Denis 童鞋的『<strong><a href="http://fairyfish.net/2007/09/09/localizing-a-wordpress-plugin-using-poedit/">使用 poEdit 本地化 WordPress 插件</a></strong>』，里面有详细的介绍，附上偷拍的一张汉化时候的照片。</p>
<p><a title="Flickr 上 enetlonger 的 localize-01" href="http://www.flickr.com/photos/68594794@N00/3559810490/"><img src="http://farm3.static.flickr.com/2481/3559810490_593da31b5c_o.jpg" alt="localize-01" width="447" height="308" /></a></p></blockquote>
<h2>如何汉化顽固插件</h2>
<blockquote><p>世界上只有两种插件不能被汉化：这种和那种。对于这种插件，他本身就是中文，当然不需要汉化啦。而那种插件呢，<strong>由于作者在编写插件过程中没有调用函数『 _e 和 __ 』，使得 PoEdit 无法识别其中需要被汉化的字符串</strong>，因此那种插件就不能被汉化鸟。</p>
<p>正如标题所说的，如何汉化顽固插件。其实方法很简单，就是我们<strong>手动调用函数『 _e 和 __ 』</strong>。本文以 <a href="http://wpland.cn/2008/08/samsarin-php-widget.html">Samsarin PHP Widget （让边栏支持PHP的插件）</a>为例，这是没有汉化前的 Samsarin PHP Widget 后台设置以及直接载入 PoEdit 的结果，它完全不懂中文，XD。</p>
<p><a title="Flickr 上 enetlonger 的 localize-02" href="http://www.flickr.com/photos/68594794@N00/3559810642/"><img src="http://farm4.static.flickr.com/3613/3559810642_606f6b3f94_o.jpg" alt="localize-02" width="473" height="436" /></a></p>
<p>接下来我们就开始对它动手动脚啦，手用来动鼠标，脚用来赶蚊子，欧耶。</p></blockquote>
<p><strong>[1] 对 samsarin-php-widget.php 进行修改</strong></p>
<blockquote><p>打开源文件之后，在注释下面（也就是正式代码开始的地方）插入以下代码：</p>
<div style="padding-bottom: 15px;">
<table border="0">
<tbody>
<tr>
<td>
<pre>1</pre>
</td>
<td>
<pre style="font-family: monospace;">load_plugin_textdomain<span style="color: #009900;">(</span><span style="color: #0000ff;">'samsarin_php_widget'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">"/wp-content/plugins/samsarin-php-widget/"</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>之所以要这么修改，是因为『在确保输出的文本可以被本地化之后，你必须设置你的插件，使得能够导入适当的 .mo 文件。 .mo 是编译后的 .po 文件，它是在 PoEdit 保存的时候会自动产生的。 <a href="http://fairyfish.net/2007/09/09/localizing-a-wordpress-plugin-using-poedit/">via</a> 』 <strong>单引号内的内容就是插件名称，双引号内的内容就是插件的相对路径啦</strong>。</p>
<p>关于那个插件名称，有点儿囧。最好看看代码里怎么叫它的名字，别以为是作者是 samsarin-php-widget 叫的实际上却是 samsarin_php_widget 的说。</p></blockquote>
<p><strong>[2] 把需要汉化的字符串标记出来</strong></p>
<blockquote><p>要把需要汉化的字符串标记出来，这可是个眼力+体力的事儿。一般来说 PHP 函数或过程可以不用去看了，你需要注意的是那些 HTML 代码，比如：</p>
<div style="padding-bottom: 0px;">
<table border="0">
<tbody>
<tr>
<td>
<pre>57
58
59</pre>
</td>
<td>
<pre style="font-family: monospace;">&lt;h2&gt;Samsarin PHP Widget Options&lt;/h2&gt;
//把上面的代码修改成下面的样子：
&lt;h2&gt;<span style="font-weight: bold; color: #000000;">&lt;?php</span> _e<span style="color: #009900;">(</span><span style="color: #0000ff;">'Samsarin PHP Widget Options'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'samsarin_php_widget'</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span> <span style="font-weight: bold; color: #000000;">?&gt;</span>&lt;/h2&gt;</pre>
</td>
</tr>
</tbody>
</table>
</div>
<p>整个格式就是这样滴， <strong>HTML 元素可以不被 PHP 函数包围起来</strong>。就这么把所有需要汉化的字符串标记出来。</p></blockquote>
<p><strong>[3] 在 PoEdit 中进行汉化</strong><br />
<strong>[4] 调戏一下</strong></p>
<blockquote><p><a title="Flickr 上 enetlonger 的 localize-03" href="http://www.flickr.com/photos/68594794@N00/3559810776/"><img src="http://farm4.static.flickr.com/3594/3559810776_76fa135f86_o.jpg" alt="localize-03" width="473" height="436" /></a> </p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.chinawp.com/2009/09/73/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
