WordPress 网站多语言翻译完全指南
翻译 WordPress 网站是一个需要精心规划和执行的复杂过程。我们基于使用插件 Gato AI Translations for Polylang 进行网站翻译的丰富经验,创建了这份全面指南。
本指南将引导您了解所需掌握的一切:从初始准备和配置,到实际翻译过程,再到验证和故障排除。请遵循本指南,确保顺畅的翻译体验。
安装并配置 Polylang
Gato AI Translations for Polylang 需要安装并激活 Polylang。Polylang 是管理您的语言和翻译关系的多语言框架。
安装后,您需要配置 Polylang 并添加您的语言:
- 前往 WordPress 管理菜单中的 Languages
- 添加您的默认语言(现有内容所使用的语言)
- 添加您希望翻译成的所有目标语言

您必须验证所有已激活的插件是否与 Polylang 兼容。某些插件在多语言环境中可能无法正常工作。
如果发现不兼容的插件,请寻找替代方案、联系开发者获取支持,或考虑它是否真的必不可少。
首先审核并修复您的原始内容
在开始翻译之前,确保您的原始内容处于完美状态至关重要。原始内容中的任何问题都会被复制到所有翻译中,这意味着您需要多次修复同一个问题(每种语言各修复一次)。
内容审核清单:
-
检查断链
- 使用 Broken Link Checker 等插件识别内部和外部断链
- 翻译前修复所有断链
- 验证内部链接指向正确的文章/页面
-
验证所有图片存在且已优化
- 检查所有图片是否正确加载
- 确保图片具有适当的 alt 文本,以满足可访问性和 SEO 要求
- 验证图片文件大小合理(不要过大)
- 删除任何占位图片或断开的图片引用
-
检查格式和样式
- 检查文本格式是否一致
- 验证标题是否结构正确(H1、H2、H3 等)
- 确保列表、表格和其他结构化内容正确显示
- 测试自定义样式和 CSS 是否按预期工作
-
验证内容结构
- 确保正确使用 Gutenberg 块或页面构建器元素
- 检查自定义文章类型和分类法是否设置正确
- 验证元数据(自定义字段、ACF 字段等)是否完整
-
检查占位内容
- 删除任何"Lorem ipsum"或占位文本
- 用最终版本替换所有临时内容
- 确保所有内容均已准备好发布
-
SEO 注意事项
- 验证已设置 meta 标题和描述
- 检查 URL 是否对 SEO 友好
- 确保标题的使用符合 SEO 结构要求
配置内部链接替换
翻译内容时,内部链接需要更新以指向翻译版本。Gato AI Translations for Polylang 可以自动为您处理此问题。
该插件允许您配置应替换哪些类型的内部链接:
- Custom Posts:指向其他文章、页面、自定义文章类型等的链接
- Media:指向媒体项目(图片、视频等)的链接
- Tags:指向标签存档页面的链接
- Categories:指向分类存档页面的链接
- Users:指向作者页面的链接
内容中的文章链接会自动从原始内容中提取并替换。对于其他链接类型(media、tags、categories、users),如果您希望替换它们,需要在设置中启用。
配置方法:
- 前往设置页面,在 Plugin Configuration > Internal Links Replacement 下
- 仅启用您实际在内容中使用的链接类型
- 保存您的设置

验证所有链接使用正确的 URL
要使内部链接替换功能正常工作,内容中的所有链接必须使用正确的 URL 格式。这适用于以下位置的链接:
- 文章/页面内容(Gutenberg 块、HTML 等)
- Elementor 小部件和 meta 字段
- Bricks 构建器元素和 meta 字段
- 自定义字段和元数据
URL 要求:
-
URL 必须包含完整域名
- ✅ 正确:
https://www.mysite.com/hello-world/ - ❌ 错误:
/hello-world/(相对 URL) - ❌ 错误:
hello-world/(无域名或协议)
- ✅ 正确:
-
URL 必须指向当前的别名
- 如果您更改了文章的别名,请更新所有链接以使用新别名
- WordPress 需要能够从 URL 中检索文章
- 重定向的旧别名不适用于链接替换
-
URL 必须使用正确的域名(无重定向)
- ✅ 正确:
https://www.mysite.com/hello-world/ - ❌ 错误:
https://mysite.com/hello-world/(如果您的站点使用 www) - 插件需要精确的域名来正确匹配和替换链接
- ✅ 正确:
要修复 URL 中的错误域名,您可以使用 Better Search Replace 等插件直接在数据库中搜索和替换 URL,例如:将 https://mysite.com 替换为 https://www.mysite.com。
选择草稿或发布状态
创建翻译时,您需要决定是立即发布还是先保存为草稿以供审核。
默认情况下,翻译保存为草稿。要使翻译立即发布,请前往设置页面,在 Plugin Configuration > General Configuration 下,将 Status when translated 选项设置为 Publish 或 Same as origin post(如果原始文章已发布)。

从右到左(RTL)语言支持
如果您要翻译成从右到左书写的语言(如希伯来语、阿拉伯语、波斯语或乌尔都语),您需要确保您的主题正确支持 RTL 布局。


RTL 影响的内容:
RTL 语言不仅仅需要更改文本方向。您的主题需要处理:
- 布局方向:元素应从右向左流动
- 文本对齐:文本默认应右对齐
- 间距调整:
margin-left应变为margin-right,padding-left应变为padding-right等 - 导航:菜单和导航应从右向左流动
- 表单:输入字段和按钮应正确对齐
- 图标和图片:可能需要镜像或重新定位
已自动处理的内容:
- Polylang 自动设置正确的语言方向(
dir="rtl"属性) - 内容翻译对 RTL 和 LTR 语言的工作方式完全相同
- Gato AI Translations 无论文本方向如何都能正确翻译内容

您需要检查的内容:
-
主题 RTL 支持:使用 RTL 语言测试您的主题,看它是否能正确处理
- 许多现代主题包含 RTL 样式表
- 查看主题文档以获取 RTL 支持信息
- 在主题中查找
rtl.css或类似文件
-
自定义 CSS:检查您添加的任何自定义 CSS
- 硬编码的 left/right 值可能需要调整
- 考虑使用逻辑属性(用
margin-inline-start代替margin-left)
-
页面构建器兼容性:如果使用 Elementor、Bricks 或其他页面构建器
- 检查它们是否支持 RTL 布局
- 翻译前在 RTL 模式下测试布局
如果您的主题不能很好地支持 RTL,您可能需要切换到兼容 RTL 的主题、添加自定义 RTL CSS,或使用添加 RTL 支持的插件。
识别需要翻译的第三方插件内容
许多 WordPress 插件创建自己的自定义文章类型(CPT)来存储内容(例如:WooCommerce 产品、Events Calendar 活动、LearnDash 课程等)。
翻译前,您需要:
-
识别哪些 CPT 包含需要翻译的内容
- 查看您已激活的插件及其 CPT
- 确定哪些需要翻译(并非所有都需要)
-
确保相关 CPT 和分类法可翻译
- 前往 Polylang 的 Languages > Settings > Custom post types and Taxonomies
- 为相关 CPT 和分类法启用翻译

自动创建 CPT 的翻译条目
如果某个 CPT 依赖 wp_insert_post 方法来创建条目,您可以前往设置页面,在 Plugin Configuration > General Configuration 下,为该 CPT 启用 Automatic creation of translation entries 选项,让插件自动创建翻译条目。

如果某个 CPT 使用的方法不是 wp_insert_post,您需要在翻译之前使用 Polylang 的 UI 手动创建翻译条目。
例如,对于 WooCommerce 产品,您需要先创建翻译条目。请查看翻译第三方自定义文章类型的文档以获取演示视频。
验证您的 SEO 插件是否受支持
SEO 元数据(meta 标题、描述、Open Graph 标签等)对多语言 SEO 至关重要。Gato AI Translations for Polylang 内置对最流行的 SEO 插件的支持,自动翻译所有与 SEO 相关的元数据。
该插件支持 8 个主要 SEO 插件:
- All in One SEO
- Rank Math
- SEO Simple Pack
- SEOPress
- Slim SEO
- The SEO Framework
- WP Meta SEO
- Yoast SEO
如果您使用的 SEO 插件未在上述列表中,您必须指定哪些 meta 键需要同步和翻译,以对应您所使用的 SEO 插件。任何将其元数据存储在 wp_postmeta 表中的插件均受支持。
选择您的 AI 提供商和模型
翻译质量取决于您选择的 AI 服务和模型。
现代 AI 服务(如 ChatGPT、Claude 和 Gemini)比传统服务(Google Translate 或 DeepL)提供更好的翻译效果,因为它们能更好地理解上下文、语气和细微差别;正确保留 HTML 结构和格式;不会错误翻译 URL 或相对链接;在翻译过程中保持写作风格和语态;并能更好地处理技术术语和特定领域语言。
您可以从以下 AI 服务中选择:
- ChatGPT (OpenAI)
- Claude (Anthropic)
- DeepSeek
- Gemini (Google)
- Mistral AI
- OpenRouter(LLM 聚合器,提供对所有主要模型的访问,包括 Grok 和 Llama)
- 自托管 LLM(托管在您自己的服务器上,例如通过 Ollama)
我们建议使用最新可用的模型版本(例如,ChatGPT 5.2 优于 5.0),因为较新的模型始终提供更好的翻译质量。
专业提示: 您可以为不同语言配置不同的 AI 服务。例如,对中文使用 DeepSeek(质量出色且非常实惠),对欧洲语言使用 ChatGPT,对复杂的技术内容使用 Claude。这样您可以同时优化质量和成本。
您可以使用 OpenRouter 在新模型发布后立即访问最新的 AI 模型。
考虑自定义您的 AI 翻译提示词
默认翻译提示词对大多数内容效果良好,但针对您的特定用途进行自定义可以提高翻译质量。
示例:
旅游博客可以通过添加以下内容来自定义其提示词:
Translate to a natural, flowing, easy-to-read, casual blog-style language. Keep original content structure, meaning, and styling (but do adjust sentence structure and style to be relevant to the target language).
Lightly improve boring parts - Add curiosity triggers, light humor, and light slang (as fits the target language), like a human travel blogger would write.您可以修改默认提示词,或创建多个自定义 AI 提示词并在设置中选择使用哪一个:

审核您的 Gutenberg 块
翻译前,您需要识别正在使用的块并确保它们支持翻译。
开箱即用支持的 Gutenberg 块:
- 所有 WordPress 核心块:Paragraph、Heading、List、Quote、Image、Gallery 等
- 第三方块:来自 Yoast SEO、GenerateBlocks、Kadence、Greenshift 等插件的块
如果您使用了包含需要翻译的字符串但不受支持的块,您可以:
- 添加集成以翻译该块,或
- 将其替换为受支持的块(例如,将自定义推荐块替换为受支持的替代块)
需要帮助? 我们可以为您集成自定义块。如果您希望由专家处理集成,请查看我们的自定义服务。
注意: 有些块无法被翻译。
如果您需要替换不受支持的块,您需要找到所有使用该块的文章。请查看查找包含特定块的文章的教程,了解识别特定块使用位置的方法。
审核您的 Elementor 小部件
如果您使用 Elementor 页面构建器,您需要审核正在使用的小部件并确保它们支持翻译。该过程与审核 Gutenberg 块类似,但专门针对 Elementor 小部件。
所有 Elementor 核心小部件均开箱即用受支持。
如果您有不受支持的小部件:
- 添加集成以翻译该小部件,或
- 将其替换为受支持的小部件
审核您的 Bricks 元素
如果您使用 Bricks 页面构建器,您需要审核正在使用的元素并确保它们支持翻译。该过程与审核 Gutenberg 块类似,但专门针对 Bricks 元素。
所有 Bricks 核心元素均开箱即用受支持。
如果您有不受支持的元素:
- 添加集成以翻译该元素,或
- 将其替换为受支持的元素
处理包含文字的图片
翻译网站时,一个常见的疏忽是忘记图片可能包含需要翻译的文字。
翻译文章时,图片会被复制到翻译版本,图片元数据(标题、alt 文本、说明)会被翻译,但图片中的任何文字仍保持原始语言。
审核图片最简单的方法是将 WordPress 媒体库切换到网格布局——这样您可以一目了然地视觉扫描所有图片,快速发现任何包含错误语言嵌入文字的图片。

例如,这张图片包含希伯来语文字,不适合用于其他语言。

您的选项:
-
保留嵌入文字(如果该语言仍能被普遍理解)
- 适用于文字使用广泛理解的语言或通用符号/数字的情况
- 无需额外工作
-
从图片中删除文字
- 使用不含嵌入文字的图片
-
使用文字叠加层代替嵌入文字
- 使用不含嵌入文字的图片
- 叠加文字(使用 Gutenberg 块、Elementor 小部件、Bricks 元素或 CSS),这些文字将被自动翻译
-
创建图片的翻译版本
- 为每种语言创建单独的图片文件
- 手动替换翻译文章中的图片
处理其他用户数据翻译
Polylang 可以处理 WordPress 用户资料的传记字段,但如果您在自定义字段(通过 ACF、Meta Box 或其他方式)中存储了额外的用户数据,您将需要一种特殊的方法。
如果您有需要翻译的用户数据(例如职位、资质、描述等),您需要为每种语言创建单独的字段。
-
为每种语言创建单独的字段
- 使用 ACF 或 Meta Box,创建如下字段:
Qualification ENQualification FRQualification DE- 等等
- 使用 ACF 或 Meta Box,创建如下字段:
-
更新您的主题以显示正确的字段
- 修改主题模板以检查当前语言
- 根据当前激活的语言显示相应字段
- PHP 代码示例:
$current_lang = pll_current_language(); $qualification = get_field("qualification_{$current_lang}", 'user_' . $user_id); echo $qualification;
-
手动填充字段
- 翻译内容后,手动更新用户资料字段
跳过不应翻译的术语
某些术语永远不应被翻译——品牌名称、专有名词、技术术语或特定领域专业词汇。
您可以通过在自定义提示词中添加说明来跳过这些术语的翻译,例如:
Do not translate the following types of terms:
- Hotel names (e.g., "Grand Hotel", "Beach Resort")
- Restaurant names
- Brand names
- Technical acronyms (API, SEO, CMS, etc.)
Keep these terms exactly as they appear in the original text.避免跨语言的重复标签
您的内容可能有代表不同语言中相同概念的标签。翻译这些标签时,可能会造成重复或冲突。
例如,如果您有一个正在翻译成英语的中文网站,并且同时有标签 布宜诺斯艾利斯(中文的 Buenos Aires)和英语标签 Buenos Aires,翻译成英语时,两个标签都变成了 buenos-aires。这就造成了重复标签的情况。

翻译前的修复方法:
-
审核您的标签
- 查看原始语言中的所有标签
- 识别可能与其他语言标签重复的标签
- 查找代表相同概念但使用不同语言的标签
-
整合标签
- 选择保留一个语言版本(通常是原始语言)
- 合并或删除重复标签
- 更新文章以使用整合后的标签
-
翻译前清理
- 确保您的原始内容仅包含原始语言的标签
- 从原始内容中删除目标语言的任何标签
- 这可以防止翻译过程中的冲突
避免跨语言的重复地名
如果您的内容使用混合文字的标题,您可能会看到这种模式:标题以当地地名开始,然后是括号中的相同名称的拉丁字母拼写,然后是该行的其余部分。
典型的原始模式(示例):
- 原始(例如希伯来语):
פוקט (Pouket) - מדריך לאי היפה— 当地名称,然后括号中是英语或国际拼写,然后是副标题。 - 翻译后(例如英语):
Pouket (Pouket) - beautiful island guide。
翻译后,标题已经是一种语言和文字,因此模型的字面渲染会重复相同的地名两次(例如 Pouket (Pouket))。
解决方案:精化翻译提示词
自定义您的提示词,使模型在括号内容不包含新信息时规范化冗余的「名称(相同名称)」开头。例如,添加如下说明:
If a heading begins with a place name followed by the same translated name in parentheses, remove the duplicate and keep one natural version. Do not remove the parenthesis if the text inside uses a different script, a different spelling, or includes additional descriptive information.注意您的标签/分类别名
如果您的标签或分类别名已经是目标语言,您可能会认为无需翻译。

这通常没问题——但 Polylang 免费版(非 Pro 版)有一个需要注意的问题。
使用 Polylang Pro,翻译后的术语可以跨语言重用相同的别名。使用免费版时,WordPress 在全局范围内强制要求别名唯一,因此翻译后的术语别名会自动附加 -2 后缀。
例如:一个希伯来语别名为 travels_and_attractions 的分类,翻译成英语后,会变成 travels_and_attractions-2,而不是保留相同的别名。
如果这影响您的 URL 或 SEO,您需要在翻译后手动修复别名,或升级到 Polylang Pro 以允许跨语言重用别名。
确保您的嵌入内容使用适当的语言
如果您嵌入了第三方内容——如 Google Maps、社交媒体小部件或其他平台的 iframe——请检查该嵌入是否以目标语言显示。
例如,为希伯来语配置的 Google Maps 嵌入,即使您已将页面其余部分翻译成英语,仍会显示希伯来语标签、街道名称和 UI。在这种情况下,您可能需要使用与语言无关的嵌入。

同样的情况也适用于任何生成特定语言嵌入的平台或服务(例如 YouTube 章节、评论小部件、预订表单)。翻译后务必验证每个嵌入内容。
确保原始内容中没有特定语言的样式
为特定语言编写的文章内容——尤其是希伯来语或阿拉伯语等 RTL 语言——可能包含直接应用于 HTML 元素的内联方向和语言属性。当该内容被翻译成其他语言时,这些硬编码的样式会被继承并破坏布局。
RTL 原始内容中的常见问题:
<div dir="rtl" lang="he">— 强制整个部分使用 RTL 方向并将语言标记为希伯来语<p dir="rtl">— 强制单个段落使用 RTL 对齐<h2 style="text-align: right;">— 在标题上硬编码右对齐
当此内容被翻译成英语(或任何 LTR 语言)时,文本变成了英语,但布局仍然从右到左渲染——导致标题错位、文本流向颠倒和格式混乱。
翻译前,请审核您的原始内容中的这些属性并将其删除。 让主题和 WordPress 的语言/区域设置在全局范围内控制方向和对齐,而不是将其嵌入到各个内容块中。
处理 Elementor 主题构建器模板
如果您使用 Elementor 的主题构建器创建全局模板(页眉、页脚、单篇文章模板、存档模板等),了解这些模板在翻译过程中的处理方式非常重要。
会被翻译的内容:
- 菜单:菜单项会被替换为翻译后的菜单版本
- 动态内容:从文章/页面提取的内容会被翻译(因为源内容已翻译)
不会被翻译的内容:
- 硬编码文本:直接添加到模板中的文本(不来自动态内容)不会被翻译
- 小部件文本:标题、段落、按钮等小部件中的文本仍保持原始语言
- 自定义 HTML:任何自定义 HTML 或代码块保持未翻译状态
示例:
这个 Elementor 页眉模板包含硬编码文本("Our Phone Number:"):

解决方案:
设计模板时只使用:
- 菜单(自动替换)
- 图片(与语言无关)
- 动态内容(来自翻译后的文章)
- 避免在模板中直接添加任何硬编码文本、标题或描述
这可确保您网站的全局元素(页眉、页脚等)在所有语言中都能正常工作。
配置 Advanced Custom Fields(ACF)
如果您使用 Advanced Custom Fields(ACF),您需要配置每个字段在翻译过程中的处理方式。ACF 字段可以包含各种类型的内容,每种类型可能需要不同的处理方式。
在 Gato Translate 部分,ACF 字段可以设置为以下选项之一:
-
(不执行任何操作):该字段被跳过,不进行翻译或同步
-
Translate:字段内容翻译成目标语言
- 适用于:文本字段、文本区域字段、WYSIWYG 字段以及任何包含可翻译文本的字段
-
Copy:字段值按原样复制到翻译中(不翻译)
- 适用于:数字、日期、复选框、true/false 字段以及任何不应翻译的字段
-
Translate Reference:字段引用另一个实体(文章、页面、用户等),引用将更新为指向翻译版本
- 适用于:Post Object、Page Link、Relationship、User 和 Taxonomy 字段

字段组不仅可以应用于文章和页面,还可以应用于:
- 分类
- 标签
- 媒体项目
- 用户
- 自定义分类法
- 自定义文章类型
确保也为应用于这些实体的字段组配置翻译设置!
如果您使用的是 Polylang Pro,您还必须禁用其 ACF 翻译功能,以便让 Gato AI Translations 来处理翻译。
配置 Meta Box
如果您使用 Meta Box(另一个流行的自定义字段插件),配置过程与 ACF 类似。Meta Box 字段也需要配置翻译、复制或引用翻译。
在 Gato Translate 部分,Meta Box 字段可以设置为以下选项之一:
- (不执行任何操作):该字段被跳过,不进行翻译或同步
- Translate:字段内容被翻译
- Copy:字段值按原样复制
- Translate Reference:字段引用更新为指向翻译后的实体

您还必须禁用 Polylang 的 Meta Box 翻译功能,以便让 Gato AI Translations 来处理翻译。
配置自定义 Meta 字段
除了 ACF、Meta Box 和 SEO 插件之外,您的网站可能还有来自以下来源的其他自定义 meta 字段:
- 自定义代码
- 其他插件
- WordPress 自定义字段(基本的 Custom Fields 元框)
这些 meta 字段需要在插件设置中手动配置。
识别自定义 meta 键:
-
导出您的内容
- 前往 WordPress 中的 Tools > Export
- 导出您计划翻译的所有内容类型
- 这将创建一个包含所有内容和元数据的 XML 文件
-
分析导出文件
- 在文本编辑器中打开 XML 文件
- 搜索
<wp:postmeta>标签 - 列出所有唯一的 meta 键
-
过滤掉已知字段
- 删除 ACF 字段(通常以字段组名称为前缀)
- 删除 Meta Box 字段
- 删除 WordPress 核心字段(例如
_edit_last、_wp_old_slug、_thumbnail_id) - 删除 SEO 插件字段(如果使用受支持的 SEO 插件)
-
识别剩余内容
- 这些是您的自定义 meta 字段
- 确定每个字段包含什么以及应如何处理
确定翻译需求:
对于每个自定义 meta 字段,确定:
- Translate:包含可翻译文本(标题、描述、内容)
- Copy:包含不应翻译的数据(ID、数字、设置)
- Translate Reference:包含应指向翻译版本的实体 ID
在插件中配置:
- 前往设置中的 Meta Configuration 标签
- 选择翻译选项(Translate/Copy/Translate Reference)
- 添加自定义 meta 键名称,使用精确匹配或正则表达式模式

执行翻译流程
所有准备工作完成后,是时候执行翻译了。
首先测试流程
在开始翻译整个网站之前,首先在小范围内测试该流程至关重要。这种方法将节省您的时间,并防止问题被复制到所有内容中。
以下是推荐的测试工作流程:
-
从单篇文章和一种语言开始
- 选择一篇包含各种内容类型(文本、图片、链接等)的代表性文章
- 将其翻译成您非常了解的一种目标语言
- 详细验证翻译:检查每个块、每个链接、每张图片和每条元数据
- 如果发现任何问题(例如,某个块未被翻译、链接未被替换、格式被破坏),在继续之前修复它。如果您现在不处理,同样的问题将被复制到所有语言。
-
扩展到更多文章
- 第一篇翻译完美后,将另外 3-5 篇文章翻译成同一语言
- 彻底验证每一篇
- 这有助于您识别任何模式或反复出现的问题
-
使用其他语言测试
- 如果您要翻译成多种语言,再测试一种语言,确保在不同语言对之间一切正常
-
然后再进行批量翻译
- 一旦您确信一切都正常运行,就可以继续翻译网站的其余部分
这种渐进式方法可确保任何配置问题或内容问题都能在早期被发现,在易于修复的阶段得到处理。
翻译顺序
翻译不同内容类型的顺序很重要,尤其是当内容引用其他内容时。
按以下特定顺序翻译内容,以避免引用问题:
-
Users
- 用户描述可能包含在块中
-
Taxonomies(标签/分类)
- 标签和分类(以及自定义分类法)通常被文章引用,因此它们需要在文章翻译之前存在
-
Media
- 媒体项目(图片、视频、文档)被文章作为特色图片或图库图片引用,因此在文章之前翻译它们
-
自定义文章类型
- 翻译文章、页面和其他 CPT
- 重要:如果一个 CPT 引用另一个 CPT,按逆依赖顺序翻译
- 例如:如果文章使用可重用块,先翻译可重用块,再翻译文章
-
菜单
- 菜单引用文章、页面和分类,因此最后翻译菜单
决定是否翻译别名
将文章和分类别名翻译成目标语言,对于拉丁文字语言(例如法语、德语、西班牙语)通常是理想的:路径保持可读,您可以在 URL 中反映本地化关键词。
对于非拉丁文字——希伯来语、日语、中文等——本地化别名往往会变得一团糟:别扭的音译、非常长的路径段、百分比编码,或难以分享和比较的 URL。许多团队对这些语言保留拉丁文字(或原始语言)别名,并依靠翻译后的标题来显示本地化名称。
将别名翻译视为每种目标语言的策略,而不是整个网站的单一开关:
- 将语言分组 — 例如,对拉丁文字目标语言「翻译别名」,对中文、日文、希伯来文等「不翻译别名」
- 分批运行翻译 — 启用别名翻译后批量翻译一组,然后关闭别名翻译再运行另一批
- 配置每个批次 — 通过 Gato Translate (Custom)(在下方的翻译执行方法中介绍):对于您希望保持别名不变的批次,禁用 Translate custom post slugs? 和 Translate tag and category slugs? 等选项。每次运行针对一种策略(例如一种语言或共享相同规则的语言组),确保设置与预期结果一致。
对于脚本化或可重复的工作流程,WP-CLI 支持每次调用使用 --translate-slugs=true 或 --translate-slugs=false。
两阶段翻译
如果您启用了内部链接替换或实体引用翻译,您可能需要分两个阶段进行翻译:
第一阶段:仅翻译属性
- 将翻译配置为排除内容和 meta,即仅翻译属性(标题/名称和别名)
- 执行翻译

执行第一阶段后,翻译后的文章将以其翻译后的 URL 和 ID 创建,允许将内部链接 URL 和实体引用 ID 解析为目标语言。
第二阶段:仅翻译内容和 Meta
- 将翻译配置为仅翻译内容和 meta(即排除属性)
- 再次执行翻译

执行第二阶段后,其余内容和 meta 将被翻译,内部链接 URL 和实体引用 ID 将被替换为翻译版本。
翻译执行方法
选项 1:WordPress 管理后台(批量操作)
- 前往内容列表(文章、页面、媒体等)
- 选择您想翻译的项目
- 从批量操作下拉菜单中选择 Gato Translate
- 点击应用

菜单的翻译方式不同:在菜单编辑器中保存菜单时会自动翻译。
替代方案:Gato Translate (Custom)
为了获得更多控制,请使用 Gato Translate (Custom),它允许您覆盖该次特定翻译运行的设置:

这将打开一个自定义设置页面,您可以在其中为该次翻译运行指定特定选项:

选项 2:WP-CLI(适用于大批量)
对于拥有数百或数千个项目的大型网站,WP-CLI 是一个便捷的替代方案。
您可以通过命令行批量运行翻译,这样您就可以在后台执行翻译,同时做其他工作。

检查翻译日志
当翻译失败(由于 API 下线、API 积分耗尽等原因)或产生警告时,您将在插件菜单中看到通知徽章:

查看翻译日志以了解发生了什么:
- 前往插件菜单中的 Logs 菜单项
- 查看任何错误或警告
- 在继续之前修复所有问题


重新运行失败的翻译
每当翻译失败时,您可以仅重新触发该条目和语言的翻译,避免为成功的翻译花费 API 积分。
失败的翻译在 Polylang 编辑图标上以黄色背景高亮显示:

您可以筛选以仅显示有失败翻译的条目:

要仅重新翻译失败的条目,请使用带有 Process failed translations only 选项的 Gato Translate (Custom) 批量操作:


验证翻译质量和完整性
翻译内容后,验证翻译是否成功且质量良好至关重要。不要假设一切都完美运行——花时间进行验证。
编辑器验证:
在 WordPress 编辑器中打开已翻译的文章并检查:
-
内容翻译
- 所有文本是否都已翻译?(不仅仅是标题)
- 所有块/小部件/元素是否都已翻译?
- 检查 Gutenberg 块、Elementor 小部件或 Bricks 元素
- 验证格式是否得到保留
-
自定义字段
- ACF 字段是否正确翻译/复制/引用?
- Meta Box 字段是否正确处理?
- 自定义 meta 字段是否正确配置?
-
SEO 元数据
- 检查 meta 标题是否已翻译
- 验证 meta 描述是否已翻译
- 确认 Open Graph 标签是否已翻译
- 查看其他 SEO 插件字段
-
媒体
- 特色图片是否设置正确?
- 内容中的图片是否指向翻译版本(如适用)?
- 图片 alt 文本是否已翻译?
-
链接
- 内部链接是否指向翻译版本?
- 外部链接是否正确保留?
- 分类/标签链接是否有效?
前端验证:
在浏览器中查看翻译后的文章并验证:
-
视觉外观
- 页面显示是否正确?
- 布局是否得到保留?
- 图片是否正确显示?
- 样式是否正确?
-
模板应用
- 是否使用了正确的模板?
- 页眉/页脚是否正确显示?
- 侧边栏/小部件是否显示?
- 菜单是否显示翻译版本?
-
功能性
- 所有链接是否有效?
- 表单是否正常运行?
- 交互元素是否工作?
- 导航是否正确?
-
特定语言元素
- 对于 RTL 语言,布局是否正确?
- 字体是否正确渲染?
- 文字方向是否正确?
翻译质量:
现代 AI 翻译质量通常很好,但您仍应检查:
-
您理解的语言
- 通读您了解的语言的翻译
- 检查准确性、语气和风格
- 验证技术术语是否正确
- 确保品牌声音得到维护
-
您不理解的语言
- 对于您不会说的语言,考虑聘请母语人士进行审核
- 这对于与您自己的语言差异很大的语言(例如英语到韩语、中文、阿拉伯语)尤其重要
- 即使是快速审核也能发现主要问题
- 对于重要内容,建议进行专业校对
-
特定领域内容
- 技术内容可能需要专家审核
- 法律/医疗内容应由专业人士审核
- 营销内容可能需要调整品牌声音
修复「无效内容」块
翻译包含许多标签和属性的大型 HTML 块时,AI 服务有时会返回破坏块输出的响应。
例如,使用 ChatGPT 5.0 mini 翻译包含非常大的 HTML 块的 core/paragraph 块时,如下所示:
<!-- wp:paragraph -->
<p>
Pédagogie:
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><strong><br></strong>Support :
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><br>Coûts :
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark></mark></mark><br>Débouchés :
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★★★
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">☆</mark></mark></mark></mark></mark>
</p>
<!-- /wp:paragraph -->……响应可能会引入原始内容中不存在的额外 <mark> 标签:
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">★★
+<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">
<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-luminous-vivid-amber-color">在 WordPress 编辑器中编辑该文章时,该块可能无法渲染,并显示消息「Block contains unexpected or invalid content」:

点击 Attempt recovery 很可能会解决该问题。
如果可能,请避免使用 HTML 块,因为整个 HTML 块必须作为单个单元进行翻译。
改用带有属性的自定义块,这样可以识别、提取和翻译可翻译字符串,而不会破坏任何格式。
排查损坏数据错误
有时,由于您的内容包含损坏或陈旧的数据,翻译过程中可能会出现错误。这通常发生在以下情况:
- 文章类型以前支持某个功能(如父文章),但现在不再支持
- 内容引用了不再存在的实体
- 迁移或插件变更导致的数据库不一致
- 自定义字段中的孤立关系
理解错误:
当您在日志中看到如下错误时:
2025-10-25T03:40:38+00:00 Error [Query "create-missing-translation-media"] Execution with errors: 🔴 Object with ID '26061' (of type 'GenericCustomPost') cannot be loaded. Please check if referencing this ID is stale data (i.e. still stored on the WordPress database, but pointing to a non-existing object) and, if so, remove it or fix it.这意味着:
- 内容引用了 ID 为 26061 的实体(文章、页面、媒体等)
- 该实体在数据库中不再存在
- 插件无法解析引用,因此无法翻译
修复方法:
方法 1:WordPress 编辑器(最简单)
- 打开翻译失败的文章/项目
- 识别损坏的引用(检查自定义字段、关系等)
- 删除或修复引用
- 保存文章
- 再次尝试翻译
方法 2:数据库清理
如果无法通过编辑器修复:
- 识别包含错误引用的字段
- 使用数据库工具或插件删除陈旧数据
- 注意——在对数据库进行更改之前务必备份
方法 3:Gato GraphQL(高级)
由于 Gato AI Translations for Polylang 在内部使用 Gato GraphQL,您可以运行 GraphQL Query 以编程方式修复损坏的数据:
-
首先,使用 GraphQL Query 检索有问题的项目的 ID。
-
然后使用 mutation 修复问题。例如,要从媒体项目中删除父引用:
mutation {
updateMediaItem( input: { id: 26066, customPostID: null } ) {
status
errors {
__typename
...on GenericErrorPayload {
message
}
}
}
}如果无法修复:
如果损坏的数据无法清理,您可能需要:
- 从头重新创建文章/项目
- 导出内容、清理后重新导入
- 联系支持团队以获得复杂案例的协助
将翻译后的条目集成到配置中
翻译内容后,新创建的翻译条目可能需要集成到网站配置中。
更新 ACF 字段组
ACF 字段组可以分配给特定的文章、页面、分类、标签或其他实体。翻译内容时,翻译版本也可能需要分配给相同的字段组。
翻译后,更新您的 ACF 字段组分配以包含翻译版本:
- 前往 ACF 插件菜单中的 Field Groups 菜单项
- 编辑适用于特定实体的字段组
- 在 Location Rules 中,添加翻译版本
- 保存字段组
示例:
一个字段组适用于原始语言中的特定文章 "Hello World":

翻译文章后,翻译版本(西班牙语的 "Hola Mundo" 和中文的 "你好世界")也必须分配给相同的字段组:

完成!
您已完成翻译流程。恭喜! 👏
结语
这份全面指南应该能帮助您成功翻译您的 WordPress 网站。如果您需要更多信息,请查阅 Gato AI Translations for Polylang 文档。