WordPress多语言(Weglot/TranslatePress)实战

本文详解使用Weglot和TranslatePress搭建WordPress多语言网站的完整方案。

两种方案对比

特性 Weglot TranslatePress
翻译方式 自动翻译(人工后期编辑) 手动翻译(可视化界面)
翻译引擎 自带(DeepL/Google) 需配置API Key
费用 免费版有限制 一次性付费
SEO支持 自动hreflang 需手动配置
适合场景 快速上线多语言 翻译质量优先

方案一:Weglot(快速上线)

安装与配置

# 安装插件
wp plugin install weglot --activate
1. 注册Weglot账号https://weglot.com/
2. WordPress后台  Weglot  填写API Key
3. 配置
   - Original language: zh-CN
   - Destination languages: en, ja, fr
4. 保存自动生成语言切换器

自定义语言切换器

// 在主题中手动放置语言切换器
echo do_shortcode('[weglot_switcher]');

// 或者用代码方式
if (function_exists('weglot_get_switcher')) {
    echo weglot_get_switcher();
}

SEO优化(hreflang自动生成)

<!-- Weglot自动生成 -->
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="ja" href="https://example.com/ja/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

方案二:TranslatePress(自托管,一次性付费)

安装与配置

# 安装免费版
wp plugin install translatepress-multilingual --activate

# 或者上传高级版(需购买)
wp plugin install translatepress-multilingual-premium.zip --activate
配置路径:设置 → TranslatePress
1. 默认语言:中文
2. 翻译语言:英语、日语、法语
3. 翻译模式:
   - 免费版:手动翻译
   - 高级版:自动翻译(配置DeepL/Google API)
4. 保存设置

可视化翻译界面

1. 访问网站前台
2. 点击顶部工具栏 "Translate Page"
3. 右侧弹出翻译面板
4. 点击任意文本  输入翻译  保存
5. 支持字符串图片ALTmeta描述翻译

配置自动翻译(需API)

// wp-config.php 或主题 options.php
define('TRP_DEEPL_API_KEY', 'your-deepl-api-key');
define('TRP_GOOGLE_API_KEY', 'your-google-api-key');

// 在TranslatePress设置中选择翻译引擎

多语言SEO核心配置

hreflang标签配置

// 手动添加hreflang(如果插件未自动生成)
add_action('wp_head', function() {
    $translations = [
        'zh-CN' => 'https://example.com/',
        'en'     => 'https://example.com/en/',
        'ja'     => 'https://example.com/ja/',
    ];

    foreach ($translations as $lang => $url) {
        echo '<link rel="alternate" hreflang="' . esc_attr($lang) . '" href="' . esc_url($url) . '" />' . "\n";
    }
    echo '<link rel="alternate" hreflang="x-default" href="' . esc_url(home_url()) . '" />' . "\n";
});

翻译sitemap

<!-- 在sitemap.xml中确保包含 -->
<url>
  <loc>https://example.com/post/</loc>
  <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/post/"/>
  <xhtml:link rel="alternate" hreflang="ja" href="https://example.com/ja/post/"/>
  <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/post/"/>
</url>

避免重复内容惩罚

// 使用canonical标签
add_action('wp_head', function() {
    if (is_single()) {
        $canonical = get_permalink();
        // 如果是翻译版本,指向原版
        if (strpos($_SERVER['REQUEST_URI'], '/en/') !== false) {
            $canonical = str_replace('/en/', '/', $canonical);
        }
        echo '<link rel="canonical" href="' . esc_url($canonical) . '" />' . "\n";
    }
});

性能优化

使用子目录(SEO友好)

结构选择:
❌ 子域名:en.example.com (需单独SSL,SEO权重分散)
✅ 子目录:example.com/en/ (推荐,SEO集中)

缓存兼容性

# Nginx配置(避免缓存混淆语言版本)
proxy_cache_key "$scheme$request_method$host$request_uri$language";

# 根据cookie设置cache key
map $cookie_language $lang_suffix {
    default "";
    "en"     "_en";
    "ja"      "_ja";
}

翻译质量提升

使用GlotPress(社区翻译)

# 安装GlotPress(WordPress插件)
wp plugin install glotpress --activate

# 创建翻译项目
wp glotpress project create --name="My Theme" --slug="my-theme"

人工审核机器翻译

Weglot后台:
1. Translations → 查看所有自动翻译
2. 点击任意字符串 → 编辑翻译
3. 标记为"已审核" → 前端显示审核后的翻译

常见问题

问题 原因 解决方案
翻译不显示 缓存插件冲突 排除翻译页面缓存
hreflang错误 插件配置错误 检查语言代码(zh-CN vs zh_HANS)
加载慢 翻译API限速 使用本地翻译缓存
图片不翻译 动态图片URL 使用媒体库翻译插件

检查清单

  • [ ] 选择方案(Weglot vs TranslatePress)
  • [ ] 配置语言切换器位置
  • [ ] 验证hreflang标签正确
  • [ ] 翻译sitemap提交Google Search Console
  • [ ] 配置canonical避免重复内容
  • [ ] 测试各语言版本加载速度
  • [ ] 人工审核关键页面翻译

多语言网站能显著提升国际流量,正确配置hreflang可避免SEO惩罚。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。