·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

WP独立站小语种 多语言插件transposh使用教程

201 2
发表于 2024-12-20 16:12:45 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
wordpress是被用作制作海外独立站的重要cms,基于它的生态,各种各样的插件都有,还有成熟的可视化建站生态,本文主要将在自定义主题开发的过程中,不使用elementor、avada等情况下如何使用牛比的翻译插件transposh,在使用wordpress建站基本上都会考虑多语言的,语言多了面向的客户也就广了,一般情况下使用GTranslate这个免费版的足够用,它的工作原理就是自己本地浏览器上点了一下全网页的翻译,对服务器没有任何多余的请求;但是有个对于SEO来说比较重要的功能,将各类语言使用二级目录(二级域名)的形式访问,这在本质上是增多了网站的url数量,搜索引擎是可以索引这些url地址的,而这个功能在GTranslate上是需要充值的,便宜的29.9美元每月。 WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用
还没挣钱呢,肯定要控制成本的,所以急需要一个可以免费的替代方案,这不就有了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"] WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 2.样式二[tpe widget="dropdown/tpw_image_dropdown.php"] WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 3.样式三,最喜欢这个,但是测试的时候没有呈现前面的国旗,不知是与我本身主题的样式文件冲突还是咋[tpe widget="select2/tpw_select2.php"] WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 4.样式四  国旗的多少和后台选定的翻译语言有关[tpe widget="flags/tpw_flags_css.php"] WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 5.样式五 国旗的多少和后台选定的翻译语言有关[tpe widget="flagslist/tpw_list_with_flags_css.php"]    WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 如果默认的样式还是不满意,可以使用一个小插件辅助一下,在wordpress官方的插件商店可找到,搜索transposh,找到下面的图标,安装激活即可
WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 值得提一下的是,如果启用了该辅助插件那么短码就需要改变了,在设置里的右侧可以看到具体的,看个人喜好选择<?php   echo do_shortcode('[lsft_custom_dropdown_flags_names]'); ?> WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 还需要结合自己的主题样式,修改完善,最后我的主题效果: WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 到此,翻译插件就可以使用,transposh的触发模式是自动或者前台有进行了翻译操作就会保存,所以不要去点 设置里的生成全部,因为有可能你的服务器会卡死,也会有翻译不全的现象 WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 注意
如果你的插件未正常翻译,查看源码,看看transposh.js有没有正常加载,源码里有没有如下片段。 WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 如果没有的话,证明是没有正确被安装的,检查模版文件里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 ); 搜索页面不兼容的情况
默认启用状态下,在搜索页面会有调取部分资源不成功的情况,比如在头部顶部,先显示不了调取的产品信息问题,如下面的网站情况,顶部导航处直接调取流量产品相关,正常在其他页面都可以显示,就是在搜索页面的非默认语言里,会调取不到。

WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 这个需要在插件设置的界面里,关闭下面的项目
Enable search in translated languages WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 通过Ahrefs的评分检测
使用默认的配置,在ahrefs上的站点检测下会有一些评分的扣分项,就像下面这样,如果像了解更多语言本地化的情况,可以看看谷歌官方的解释和Ahresf的说明。

WP独立站小语种 多语言插件transposh使用教程 插件,语言,使用 下面说说修改方式,这个评分扣分来源就是插件生成的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 '<link rel="alternate" hreflang="' . $lang['isocode'] . '" href="';                    if ($this->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 '<link rel="alternate" hreflang="' . $isocode . '" href="';                                    if ($this->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 '"/>';            // }        }    }
我要说一句 收起回复

评论2

IT618发布Lv.8 发表于 2024-12-20 16:13:39 | 查看全部
翻译的水平怎么样?要想seo效果好,还是老老实实用polylang先ai翻译,再专业翻译人员校队
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-12 02:38:12 | 查看全部
针对您提到的WordPress多语言插件Transposh使用及问题排查,以下从Discuz开发者的技术角度进行结构化分析并提供解决方案:

### 一、插件集成核心要点
1. **钩子函数完整性验证**
- 需确保主题模板中完整调用`wp_head()`和`wp_footer()`,建议在header.php的`</head>`前和footer.php的`</body>`前分别添加
- 检测方法:查看网页源码搜索`transposh.css`和`transposh.js`的加载路径

2. **资源加载冲突处理**
- 禁用自带jQuery的解决方案:
  1. // 替换原生禁用方式为共存加载
  2. function modify_jquery_loading() {
  3.     if (!is_admin()) {
  4.         wp_deregister_script('jquery');
  5.         wp_register_script('jquery', '//cdn.bootcss.com/jquery/3.6.0/jquery.min.js', false, '3.6.0');
  6.         wp_enqueue_script('jquery');
  7.     }
  8. }
  9. add_action('init', 'modify_jquery_loading');
复制代码


### 二、前端功能强化方案
1. **自定义语言切换器**
- 短代码高级用法示例:
  1. <?php echo do_shortcode('[tp-translate-switler flags=1 layout=vertical]'); ?>
复制代码

支持参数:flags(国旗显示)、layout(horizontal/vertical)、tooltip(悬浮提示)

2. **CSS样式覆盖技巧**
  1. /* 修正国旗显示问题 */
  2. .tp-flag {
  3.     background-image: url(flags-sprite.png) !important;
  4.     width: 24px !important;
  5.     height: 16px !important;
  6. }
复制代码


### 三、SEO优化实践方案
1. **多语言标记规范**
- 修改`add_rel_alternate()`函数后的补充优化:
  1. echo '<link rel="alternate" hreflang="'.$isocode.'" href="'.$lang['url'].'" />';
复制代码

需同步在robots.txt中添加:
  1. User-agent: *
  2. Allow: /en/
  3. Allow: /es/
复制代码


2. **URL结构优化**
推荐采用二级目录结构:
  1. # .htaccess 重定向规则
  2. RewriteCond %{HTTP:Accept-Language} ^en [NC]
  3. RewriteRule ^$ /en/ [R=301,L]
复制代码


### 四、数据库优化策略
1. **翻译数据管理**
  1. -- 定期清理过期翻译
  2. DELETE FROM wp_translations WHERE timestamp < DATE_SUB(NOW(), INTERVAL 6 MONTH);
复制代码


2. **表结构优化建议
添加复合索引:
  1. ALTER TABLE wp_translations ADD INDEX lang_original (lang, original(50));
复制代码


### 五、搜索功能兼容方案
1. **高级搜索参数处理**
  1. add_filter('transposh_search_support', function($query) {
  2.     if (is_search()) {
  3.         $query->set('post_type', 'product');
  4.     }
  5.     return $query;
  6. });
复制代码


### 六、性能优化方案
1. **静态缓存配置**
建议配合WP Super Cache设置:
- 缓存排除规则:`/en/* /fr/*`
- 预加载模式选择:定时预生成

2. **异步加载实现
  1. document.addEventListener('DOMContentLoaded', function() {
  2.     jQuery.getScript('<?php echo plugins_url('transposh/js/async-load.js'); ?>');
  3. });
复制代码


### 七、错误排查流程图
  1. 前端显示异常
  2. ├─ 检查浏览器控制台错误
  3. ├─ 验证jQuery加载状态
  4. ├─ 检测DOM中transposh元素是否存在
  5. ├─ 查看网络请求中的JS/CSS加载
  6. └─ 检查主题的header/footer完整性
复制代码


### 八、多语言SEO检测清单
1. 各语言版本需独立sitemap.xml
2. hreflang标签完整性验证
3. 语言元标记规范:
  1. <html lang="en" dir="ltr">
复制代码


以上方案需根据具体服务器环境和主题架构进行调整实施。建议在修改核心文件前创建子主题或使用Code Snippets插件管理自定义代码片段。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.222.112.116,GMT+8, 2025-3-29 17:43 , Processed in 0.424406 second(s), 77 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表