wordpress是被用作制作海外独立站的重要cms,基于它的生态,各种各样的插件都有,还有成熟的可视化建站生态,本文主要将在自定义主题开发的过程中,不使用elementor、avada等情况下如何使用牛比的翻译插件transposh,在使用wordpress建站基本上都会考虑多语言的,语言多了面向的客户也就广了,一般情况下使用GTranslate这个免费版的足够用,它的工作原理就是自己本地浏览器上点了一下全网页的翻译,对服务器没有任何多余的请求;但是有个对于SEO来说比较重要的功能,将各类语言使用二级目录(二级域名)的形式访问,这在本质上是增多了网站的url数量,搜索引擎是可以索引这些url地址的,而这个功能在GTranslate上是需要充值的,便宜的29.9美元每月。
还没挣钱呢,肯定要控制成本的,所以急需要一个可以免费的替代方案,这不就有了transposh,这个完全免费,支持几乎所有的语言,它的原理是将翻译的文件保存在服务器的数据库里,当访问其他语言的页面,直接调取相应的翻译字段替换,所以对于使用者而言使用的代价就是数据库会被撑大,比如一个网站有100个页面,而选择了10种语言,那么数据库里就会有其他9中语言的翻译资料;不过好处是巨大的,可以保存翻译的页面为二级目录,如https://www.ydqic.com/en/,也就是你的网站内容被扩大了10倍,也就多了被索引,多了被客户发现的可能。
transposh目前在wordpress的官方插件里是搜索不到的,需要到其官网 :https://transposh.org/,下载,然后放到插件目录,后台激活即可。
如果不是熟悉的情况下,一下是不知道如何使用的,GTranslate在设置界面会提示用短代码在主题模板的里使用,而transposh这个默认是在外观-小工具里,很多情况,作为主题开发为了简洁可能会把小工具直接禁用掉,然后就不知道如何使用(我就是如此),国内网上这方便的资料还是少的,找起来比较费劲,这里给汇总踩坑过程:
下载安装激活就不说了,直接从使用说起,在你的主题模板文件里,一般是你的header.php文件里,使用短代码的形式添加,transposh官方有集中类型的样式,可以通过参数不同自由选择,
1、默认的
[tpe widget="default/tpw_default.php"]
2.样式二
[tpe widget="dropdown/tpw_image_dropdown.php"]
3.样式三,最喜欢这个,但是测试的时候没有呈现前面的国旗,不知是与我本身主题的样式文件冲突还是咋
[tpe widget="select2/tpw_select2.php"]
4.样式四 国旗的多少和后台选定的翻译语言有关
[tpe widget="flags/tpw_flags_css.php"]
5.样式五国旗的多少和后台选定的翻译语言有关
[tpe widget="flagslist/tpw_list_with_flags_css.php"]
如果默认的样式还是不满意,可以使用一个小插件辅助一下,在wordpress官方的插件商店可找到,搜索transposh,找到下面的图标,安装激活即可
值得提一下的是,如果启用了该辅助插件那么短码就需要改变了,在设置里的右侧可以看到具体的,看个人喜好选择
<?php echo do_shortcode('[lsft_custom_dropdown_flags_names]'); ?>
还需要结合自己的主题样式,修改完善,最后我的主题效果:
到此,翻译插件就可以使用,transposh的触发模式是自动或者前台有进行了翻译操作就会保存,所以不要去点 设置里的生成全部,因为有可能你的服务器会卡死,也会有翻译不全的现象
注意
如果你的插件未正常翻译,查看源码,看看transposh.js有没有正常加载,源码里有没有如下片段。
如果没有的话,证明是没有正确被安装的,检查模版文件里wp_head() 和 wp_footer()是否齐全,插件通过这两个钩子加载文件的。
还有就是注意有没有禁用掉wordpress自带的jquery(我的情况就是如此,一直找不到原因,最后发现是被禁掉了),我的主题文件的functions.php里有如下的代码,本意是禁用掉自带的jquery库和woo的样式精简代码,因为很多插件的js是基于自带的jquery库的,当禁用的时候,很多插件的文件也就无法正常加载了,当我取消禁用jquery的时候,翻译插件随机正常工作了,
//禁止加载默认自带的jquery库 文件
function my_enqueue_scripts() {
wp_deregister_script('jquery'); // 基于wordpress一些插件会加载不了 js 文件
wp_deregister_style('woocommerce');
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts', 1 );