文章归档友情连接照片地图

解决wordpress 3.0 中 simple-tags 1.8 不能显示本地语言问题

分类:wordpress  作者:rming  时间:2010-10-03

今天在 wordpress 3.0 环境中安装 simple-tags 1.8 时,发现 simple-tags 的设置页面不能显示中文。

虽然,现在官方的中文版还没放出,但是,我已经用上了网上网友翻译的中文版,也在 wp-config.php 正确设置了语言。后台也显示了中文,但是为什么 simple-tags 就不显示中文呢?

我想 wordpress 应该没什么问题,一般可能插件的问题。首先我想到的就是 load_plugin_textdomain 这个函数,它是 wordpress 加载翻译文件的一个函数。然后,我就到源文件 simple-tags.php 第 70 行找到这个函数。

load_plugin_textdomain ( 'simpletags', false, STAGS_DIR . 'languages' );

乍一看貌似没什么不对,然后我就再找到 STAGS_DIR 的定义:

define ( 'STAGS_DIR', WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . STAGS_FOLDER );

原来 STAGS_DIR 定义的是 simple-tags 的绝对目录,也就是类似 /wordpress/wp-content/plugins/simple-tags 这样一个绝对路径。再看 STAGS_FOLDER 的定义:

define( 'STAGS_FOLDER', 'simple-tags' );

看到这里,我基本上知道问题出在了哪里了,我想了下发现 STAGS_DIR . 'languages' 拼出来的路径应该是这样的:

/wordpress/wp-content/plugins/simple-tagslanguages

有没有看出 languages 前面少了个 '/',原来问题处在这里,但是当我 把它改为 STAGS_DIR . '/languages' 后发现还是没有显示中文。这一下让我百思不得其解了一会儿,然后我去了 wordpress 官网看了 load_plugin_textdomain 的文档,它是这样定义的:

load_plugin_textdomain( $domain, $abs_rel_path, $plugin_rel_path )

其中 $plugin_rel_path 是这样说明的:

(string) (optional) Relative path to WP_PLUGIN_DIR. This is the preferred argument to use. It takes precendence over $abs_rel_path

Default: false

这下我就明白了,原来 $plugin_rel_path 参数是相对于 WP_PLUGIN_DIR 的相对路径,也就是只要输入 plugins/ 后面的路径就行了。

最终,把原来那句改为:

load_plugin_textdomain ( 'simpletags', false, STAGS_FOLDER . '/languages' );

最终,后台的 simple-tags 管理页面就显示中文了。

原文地址点击查看



  1. @bet365, welcome to china.aha

提交评论