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. 支持字符串、图片ALT、meta描述翻译
配置自动翻译(需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惩罚。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)