当前位置:首页 > 转自点点  >> Qtranslate-实现WordPress多语言化
30日

Qtranslate-实现WordPress多语言化

作者:皇家元林 时间:2012年11月30日 围观者: 551 人 【0条评论】

这两天做一个双语站,听说Qtranslate这个插件,正好派上用场。在网上看到这个秘籍,很不错,收集下。

安装Qtranslate

Qtranslate可以在WP后台直接安装,目前适用于WP 3.3.1,3.4版本尚未支持,不过在作者的博客已经提供beta版,适用于3.4版本。Qtranslate下载,WP的插件安装不再重复。

Qtranslate基本使用方法

启用插件后,大家可以发现,添加文章和添加页面会自动出现中英文标题和中英文正文编辑区域,因此,在写文章的时候,只需要手动输入双语内容即可。保存后查看数据库会发现post_content中的内容会自动变更为

正文内容Content

此处的

标签即为中英文判断标记。其中的zh为语言代码,在Qtranlate后台中可以自定义,一般中文为zh,英文为en。

除了上述的标记外,还可以用以下方式调用。

[:zh]正文内容[:en]Content

由于添加文章、页面,分类编辑均提供了语言编辑区域。因此,不需要再重复添加以上代码, 系统会自动生成。

完成如上操作后,基本可以实现WP 文章、页面、分类目录的双语化。如何查看效果呢?

假设WP的域名为http://hjyl.org,英文版只需更改为http://hjyl.org/?lang=en ,也可以使用http://hjyl.org/en/进行访问。

WP主题站点标题中英化

由于Qtranslate没有提供站点标题并没有提供语言编辑区域,表面上看无法实现双语化,很多人会想到,只要在后台编辑区域的站点标题中将标题手动更改为双语模式即可。

站点标题Sitename

但实际的调用是并没有效果,因此,为了实现标题双语化,需要更改两个地方:
1.将后台站点标题更改为

[:zh]站点标题[:en]Sitename

之所以要改段代码,是因为大部分标题不支持尖括号输出,尖括号极容易造成站点XSS。
2.修改主题header.php文件,查找

bloginfo( 'name' );

将其更改为

echo _e(apply_filters(' ', bloginfo( 'name' )));

WP主题自定义域中英化

一般主题不会存在自定义域,但很多WP高级主题需要调用到自定义域,例如酷站导航,我们往往会把酷站的URL填入到一个自定义域,如后在模板中统一调用。这样可以简化我们编辑文章,撰写html的麻烦。由于我们一般在调用自定义域内容的时候代码为

参考之前标题中英化,可以将上述代码更改为:

ID, 'price', true)))); ?>

WP主题版权信息中英化

为了省去版权信息编辑后台化的麻烦,我们喜欢在主题footer.php里面直接写入版权信息,因此,在实际调用中我们会写道类似代码:

© 2004-2012 杭州XXXXX有限公司 版权所有

此时的杭州XXXXX有限公司 版权所有 双语化,可以更改为如下代码:

© 2004-2012 杭州XXXXX有限公司 版权所有Hangzhou XXXXX Co., Ltd. All Rights Reserved.");?>

根据以上的案例,如果主题中存在类似的中文信息,均可以使用该思路进行双语化。

WP主题菜单栏中英化

由于WP默认主题twentyten提供了菜单选项,我们可以自由地将页面、文章分类添加到菜单栏。根据之前提及的页面、分类中英化,菜单栏中的所有已知页面和分类均会自动切换中英文。我们的习惯会将首页放置在菜单栏中,一般情况下,我们会将首页做为一个自定义连接添加到菜单栏,此时出现的问题是:名称可以使用[:zh]和[:en]区分,但是链接怎么改都不行。

百般无奈只下,我只能手动将首页链接添加到主题模版。为了让页面自动判断中英为,可以使用如下代码:

WP主题图片/LOGO中英化

上一节中的代码得益于WP自带函数bloginfo(‘url’),但是

首页Home

中无法直接填写img代码,所以,只能考虑判断当前页面的语言属性,代码如下:


                    
                
                
                    
                

相关推荐阅读

Qtranslate FAQ

Qtranslate 支持论坛。

感谢此文作者分享。

标签:, , ,

Leave a Reply



1741