美工学习 发表于 2023-11-30 21:18:50

WordPress插件-多语种切换插件qTranslate使用总结

1. qTranslate版本问题这款插件在安装后,如果你的WP版本比插件对应版本新,那么每次编辑文章和页面的时候插件会自动禁用自己,要点一下重新使用(其实很多插件都这样),比较麻烦。解决办法是去官网的下载页面先看一下你使用的WP是否能对应上当前安装的插件版本,如果插件过旧就下载最新的插件。但如果最新版的插件还不支持当前版本的WP,你可以自己手动修改WP的版本号。(这个办法适用于不准备频繁升级自己的WordPress版本的人,升级也是种折腾,如果你的站点用了很多插件,升级WP的版本本身就可能会导致各种问题。)
修改WP版本号,只要打开\wp-includes\version.php,修改$wp_version的值就行了。
另外,现在WordPress版本更新很快,而qTranslate作者更新插件的速度似乎有点跟不上了,因此他特意提供了一个开发版的下载,以免大家总是抱怨这款插件会在WP更新后自动禁用。你可以去作者网站下载qTranslate的开发版本。2014年10月14日更新:
qTranslate作者已经停止开发这个插件好几个月了。在WordPress已经升级到4.0的时候,qTranslate仍然会自动禁用自己,而且没有更新的版本可以直接使用。经我测试目前最新的qTranslate版本,也就是官网上的那个开发版,在WordPress4.0是可以正常使用的。用记事本打开qtranslate.php,找到第90行,把后面的版本号改成4.0,即:define('QT_SUPPORTED_WP_VERSION', '4.0');这样它就不会自动禁用自己了。今后的新版WordPress是否还能完美支持谁也没法保证,总之还是不要随便升级吧!2. 基本语法
在页面模板上可以简单的通过
<?php _e("<!--:en-->English<!--:--><!--:zh-->中文<!--:-->") ?>这样的语法显示对应的内容,这个办法不太环保,但在在有些地方就很有用,比如在需要根据语种判断调用CSS哪个的时候:
<link rel='stylesheet' href='css/<?php _e("<!--:en-->en<!--:--><!--:zh-->zh<!--:-->") ?>.css' type='text/css' media='screen'>再比如这样,直接在body上加CSS类,对布局产生干预:
<body class="lan_<?php _e("<!--:en-->en<!--:--><!--:zh-->zh<!--:-->") ?>">更简单的,可以这样,直接调用qtrans_getLanguage函数得到语言值:
<body class="lan_<?php echo qtrans_getLanguage() ?>">3. 语言切换栏的重写用qtrans_generateLanguageSelectCode函数调出的选择器大致是这样的:如果网站有很多语种,这一行就会太长,我要把它改成一个下拉菜单
先建一个空的Select的元素在需要的位置<select></select>然后添加JS:function JumpMenu(targ,selObj,restore){ //菜单跳转功能
        eval(targ+".location='"+selObj.options.value+"'");
        if (restore) selObj.selectedIndex=0;
}
(function(){
        var lanChooser=document.getElementById("qtranslate-chooser");
        lanChooser.style.display="none"; //隐藏原来的ul形式选择器
        for(i=0;i&lt; lanChooser.children.length;i++){
                var option=document.createElement('option');
                option.value=lanChooser.children.children.href;
                option.innerHTML=lanChooser.children.children.children.innerHTML;
                option.className=lanChooser.children.children.className;

                if(lanChooser.children.className=="active"){option.selected="selected"}
                document.getElementById("jumpMenu").appendChild(option);
        }
}());4. 日期乱码问题安装了qTranslate之后,你会发现文章发布的时间在页面上会显示成类似这样的乱码: %x %A, 英文的则变成: %A %B %e%q, %Y,这是qTranslate预设的日期时间格式错误所导致的。
点击后台的“设置(Settings)”-“语言(Languages)”找到中文,点击后面的“编辑”,将“日期格式”和“时间格式”里面预设的信息删除,保持为空,然后保存,Wordpress就会调用系统默认的日期时间格式。
再设置English,将“Date Format”改为“F j, Y”,“Time Format”改为“H:i”,保存设置,这样英文的日期显示也就修正了5. 与表单插件Gravity Forms的兼容qTranslate虽然好用,但对WP的其他插件的支持度很低,比如我最常用的另一款插件是Gravity Forms,用qTranslate就没办法多语化它生成的表单。不过有人写了个第四方插件解决了这个问题,这个插件名称是“qTranslate support for GravityForms”,可以在这里下载到:https://github.com/mweimerskirch/wordpress-qtranslate-support-for-gravityforms



页: [1]
查看完整版本: WordPress插件-多语种切换插件qTranslate使用总结