1717491228-0238cb74b6eb29c.jpg (35.32 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
还没挣钱呢,肯定要控制成本的,所以急需要一个可以免费的替代方案,这不就有了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"]
1717489618-0b91ef4e70c5c57.jpg (4.46 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
2.样式二[tpe widget="dropdown/tpw_image_dropdown.php"]
1717489619-10e808b5524c25d.jpg (4.92 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
3.样式三,最喜欢这个,但是测试的时候没有呈现前面的国旗,不知是与我本身主题的样式文件冲突还是咋[tpe widget="select2/tpw_select2.php"]
1717489621-e6a77d44dac21db.jpg (5.95 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
4.样式四 国旗的多少和后台选定的翻译语言有关[tpe widget="flags/tpw_flags_css.php"]
1717489622-ae0862d0c065593.jpg (19.69 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
5.样式五 国旗的多少和后台选定的翻译语言有关[tpe widget="flagslist/tpw_list_with_flags_css.php"]
1717489624-455d19236b73094.jpg (19.55 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
如果默认的样式还是不满意,可以使用一个小插件辅助一下,在wordpress官方的插件商店可找到,搜索transposh,找到下面的图标,安装激活即可
1717489951-2c3fe4b28005402.jpg (23.85 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
值得提一下的是,如果启用了该辅助插件那么短码就需要改变了,在设置里的右侧可以看到具体的,看个人喜好选择
1717489952-70837a3fa0dbf25.jpg (20.64 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
还需要结合自己的主题样式,修改完善,最后我的主题效果:
1717490218-7a6fc3ef07dbe9d.jpg (9.52 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
到此,翻译插件就可以使用,transposh的触发模式是自动或者前台有进行了翻译操作就会保存,所以不要去点 设置里的生成全部,因为有可能你的服务器会卡死,也会有翻译不全的现象
1717490380-5bbccd8ebfd411a.jpg (49.72 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
注意
如果你的插件未正常翻译,查看源码,看看transposh.js有没有正常加载,源码里有没有如下片段。
1717490675-54031661b73b88a.jpg (31.87 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
如果没有的话,证明是没有正确被安装的,检查模版文件里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 ); 搜索页面不兼容的情况
默认启用状态下,在搜索页面会有调取部分资源不成功的情况,比如在头部顶部,先显示不了调取的产品信息问题,如下面的网站情况,顶部导航处直接调取流量产品相关,正常在其他页面都可以显示,就是在搜索页面的非默认语言里,会调取不到。
1731901640-a11d3b1177e5c0e.png (60.61 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
1731901643-0d1d4380162bb90.png (137.73 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
这个需要在插件设置的界面里,关闭下面的项目
Enable search in translated languages
1731901861-5b51d39b9d8211a.png (79 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
1731901646-04d6529e4378ee0.png (180.5 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
通过Ahrefs的评分检测
使用默认的配置,在ahrefs上的站点检测下会有一些评分的扣分项,就像下面这样,如果像了解更多语言本地化的情况,可以看看谷歌官方的解释和Ahresf的说明。
1731915164-6510d7a810b3960.png (74.44 KB, 下载次数: 0)
下载附件
保存到相册
1小时前 上传
下面说说修改方式,这个评分扣分来源就是插件生成的HTML标签不太符合规范,可以找到路径 /wp-content/plugins/transposh-translation-filter-for-wordpress/transposh.php, 文件位置大概918行,源码形如:
function add_rel_alternate() { if (is_404()) { return; } $widget_args = $this->widget->create_widget_args($this->get_clean_url()); tp_logger($widget_args, 4); foreach ($widget_args as $lang) { if (!$lang['active']) { echo 'options->full_rel_alternate) { $current_url = ( is_ssl() ? 'https://' : 'http://' ) . transposh_utils::get_clean_server_var('HTTP_HOST') . transposh_utils::get_clean_server_var('REQUEST_URI'); $url = transposh_utils::rewrite_url_lang_param($current_url, $this->home_url, $this->enable_permalinks_rewrite, $lang['isocode'], $this->edit_mode); if ($this->options->is_default_language($lang['isocode'])) { $url = transposh_utils::cleanup_url($url, $this->home_url); } echo $url; } else { echo $lang['url']; } echo '"/>'; } } }修改为两处,去掉判断当前激活的语言(这样就会一股脑的全部调取出来语种的标签),将默认的语种设置为x-default,具体可看修改为:
function add_rel_alternate() { if (is_404()) { return; } $widget_args = $this->widget->create_widget_args($this->get_clean_url()); tp_logger($widget_args, 4); foreach ($widget_args as $lang) { // if (!$lang['active']) { // defaul lang $isocode = $this->options->is_default_language($lang['isocode']) ? 'x-default' : $lang['isocode']; echo 'options->full_rel_alternate) { $current_url = ( is_ssl() ? 'https://' : 'http://' ) . transposh_utils::get_clean_server_var('HTTP_HOST') . transposh_utils::get_clean_server_var('REQUEST_URI'); $url = transposh_utils::rewrite_url_lang_param($current_url, $this->home_url, $this->enable_permalinks_rewrite, $lang['isocode'], $this->edit_mode); if ($this->options->is_default_language($lang['isocode'])) { $url = transposh_utils::cleanup_url($url, $this->home_url); } echo $url; } else { echo $lang['url']; } echo '"/>'; // } } }