Theme i18n fix,修正某些模版使用__('')这样的代码导致页面混乱的问题。
很多人困扰于一个问题:在使用中文包后,在一些模版里,WordPress语言包的信息会显示出来,类似下面所示的那样。这个问题,如果要追究责任的话,这当然是模版的问题。一些模版里使用了__('')和_e('')这样的代码,这样有两个错误:一是会调用WordPress主语言包而不是模版自己的语言包,二是语言包里都会用空字符串''的翻译字符来存储语言包的相关信息,所有使用gettext的语言包都是这样的。使用这样的代码,显然是模版作者希望自己的模版i18n化,却根本不懂得i18n化的具体做法。举个例子,Almost spring
模版就有这个问题,不过好在点点游大大做了修正版。
Project-Id-Version: WordPress 2.0.5-1.0
POT-Creation-Date:
PO-Revision-Date: 2006-12-12 10:44+0800
Last-Translator: yskins
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Poedit-Basepath: d:/wordpress
X-Poedit-Language: Simplified Chinese
X-Poedit-Country: China
X-Poedit-SourceCharset: utf-8
X-Poedit-KeywordsList: _e;__
Language-Team:
X-Poedit-SearchPath-0: .
今天在做另一个插件的时候,想到了可以写一个插件来解决这个问题,于是就有了现在这个插件。使用也简单,上传,激活,完了。
软件下载(Download)
- theme_i18n_fix.txt (直接点击链接,浏览器将弹出另存为对话框)
- theme_i18n_fix.phps(直接点击链接,浏览器将在新窗口显示高亮过的PHP源代码)
安装说明(Installation)
- 下载
theme_i18n_fix.txt文件,上传到服务器的/wp-content/plugins/目录,改名为theme_i18n_fix.php。 - 到WordPress后台,激活Theme i18n fix插件。
更新日志(Changelog)
- Version 1.0 (2006-12-28 15:41)
-
- First release, 估计也不会升级了。
add_filter('gettext', 'language_switcher_fix', 10, 2);
10 , 2 什么含义.需要特别调用 ?
10是filter的等级,2是参数的数目,默认值是1,所以大多数情况下函数只有1个参数就不用写这个参数,我这里是两个参数,所以要特别写上。