没有不值得去解决的问题,也没有不值得去学习的技术!

SlyTranslate + GLM-5.2 翻译质量继续优化:从关闭随机采样、内置提示词到深度思考与模型 A/B 测试

【图 2,SlyTranslate 的 Additional Instructions 保持为空】

作者:

,

WP 博客多语言化实操

查看按语言划分的用户统计,排名前 4 的语言(英语、中文、印尼语、越南语)(如图3)

(1) 博客多语言化决策|为什么我决定花时间做多语言?(附真实发现)

博客多语言插件选型|免费vs付费、服务端vs浏览器端,实测对比+配置教程

(2) 博客多语言插件选型|免费vs付费、服务端vs浏览器端,实测对比+配置教程

附上我翻译完成后的分类效果截图(如图11),中文与英文的分类总数相等

(3) 博客分类翻译实操|695个分类,4小时手动翻译全流程(避坑指南)

最后分别查看中文与英文后台下的标签统计,符合预期。如图17

(4) 博客标签翻译实操|8060个标签,基于 PHP 脚本实现全流程

如图11:最终效果,在前台,语言切换器的显示

(5) 博客菜单翻译实操

如图20对应场景:网站前台效果,顶部语言切换器(中文/英文),点击英文后,网站整体切换为英文版本,文章列表按发布时间倒序排列(与中文文章排序一致),点击任意英文文章,可正常查看,语言切换流畅;同时,英文文章的发布时间、分类、标签与中文原文完全对应,URL路径规范,SEO友好。

(6) WordPress 多语言博客文章翻译实操全记录(Polylang 插件,附避坑指南)

配图说明(如图10):中文、英文分类管理页面截图(分屏对比),标注两个页面的分类总数,演示数量一致/不一致的场景。

(7) WordPress 新增文章分类标签多语言前置翻译流程(Polylang 总数校验+标签脚本复制避坑)

完成后,访问中文系列页 https://你的域名/series/self-hosted-vpn-series/,点击顶部的 English 切换按钮,就能正常跳转到 https://你的域名/en/series/self-hosted-vpn-series-en/ 了。如图13

(8) 告别手动编号:用 PublishPress Series 优雅管理 WordPress 系列文章

WordPress 经典编辑器代码块无损迁移:批量转换 SyntaxHighlighter 短代码为 Gutenberg 区块

(9) WordPress 经典编辑器代码块无损迁移:批量转换 SyntaxHighlighter 短代码为 Gutenberg 区块

点击翻译按钮后,遇到一个弹窗“神秘”闪退问题及解决方法

(10) 点击翻译按钮后,遇到一个弹窗“神秘”闪退问题及解决方法

中文标签出现冗余新增(如图2),数据彻底错乱。

(11) WP 6.9 标签同步脚本在 WP 7.0 失效完整排查与解决实录

重点避坑:仅勾选数据库无法完成数据还原,选中库之后,右侧数据表列表点击全选,囊括库内所有数据表(如图3)

(12) 阿里云RDS数据库误操作损毁,完整备份恢复实操避坑指南

为了看起来更完善,AI会主动新增非必要的清理、校验、适配逻辑,简单需求复杂化,大幅增加报错和风险概率(如图7)

(13) AI生成代码深度避坑:数据库操作代码绝不可以直接上线执行

WordPress 标签清理实践(一):大语言模型匹配的失败尝试

(14) WordPress 标签清理实践(一):大语言模型匹配的失败尝试

在宿主机的 output 目录下可以找到生成的 tag_mapping_result.csv。打开文件查看,结果格式规整,符合预期。

(15) WordPress 标签清理实践(二):Go 脚本工程化落地

脚本执行后(如 图 6 终端日志所示),系统开始成对合并中英文标签。

(16) WordPress 标签清理实践(三):完美解决Polylang中英文同义标签合并难题

图7:展示了浏览器开发者工具Network面板中,旧URL 301跳转至新URL的成功记录

(17) WordPress 标签清理实践(四):基于Go脚本实现WordPress中英文标签合并与URL自动跳转

截图 5:验证 301 跳转

(18) WordPress 标签清理实践(五):基于 PHP/Go 脚本解决 English 语言下残留的中文标签问题 ,并实现自动化的标签合并与 URL 跳转

脚本显示处理了 8324 个标签

(19) WP 标签批量翻译脚本准确性问题排查与修复

图5:DeepL API 注册页面,国家或地区列表中没有中国大陆

(20) 中国大陆 WordPress 博客想提升英文翻译质量,为什么这么麻烦?一次 Polylang + AutoPoly + DeepL API 排查复盘

图5:DeepSeek 的评分结果截图

(21) Chrome Built-in AI、Yandex Translate、ChatGPT Plus 翻译质量对比:我为什么决定重点英文文章改用 ChatGPT Plus

[截图 2:浏览器 Network 中直接请求 translate.yandex.net]

(22) 从 AutoPoly 到 Yandex 网页版:一次 WordPress 英文自动翻译质量验证

【图1:AutoPoly Free 与 Pro 功能对比截图】

(23) AutoPoly Pro + OpenAI API 能否自动化 WordPress 英文翻译?一次从技术到支付的可行性分析

【图2:点击“立即试用”后,ChatGPT 输入框中出现“代理模式”】

(24) ChatGPT Agent 能否替代 ChatGPT Plus 完成 WordPress 英文重译?

【图 1,英文首页日历日期链接被拼接成双重 URL】

(25) WordPress 英文站日历链接变成双重 URL:Polylang 子域名迁移后的 WPCode 与 W3TC Object Cache 排查

【图 7,数据库原始内容与 get_post() 返回内容不一致】

(26) WordPress 英文站出现横向滚动条:排查 Polylang 多域名下 W3TC Object Cache 缓存旧 CSS 的问题

【图 1,主题编辑器中的分类列表区块及“以下拉菜单显示”设置】

(27) WordPress Polylang 英文子域名迁移后链接仍指向中文站:分类下拉、面包屑与区块模板的完整修复

【图 1,终端检查 www 与 en 域名统计代码的结果】

(28) WordPress 英文站从 /en/ 迁移到子域名后,如何调整 GA4 与百度统计

【图 7,SlyTranslate 显示翻译完成并创建文章 19426】

(29) SlyTranslate + 智谱 GLM-5.2 长文翻译排障:从 600 秒超时到完整生成英文 WordPress 文章

WordPress 多域名架构下 W3 Total Cache 缓存失效:Polylang、Redis 与 admin 子域名的完整排查和修复

(30) WordPress 多域名架构下 W3 Total Cache 缓存失效:Polylang、Redis 与 admin 子域名的完整排查和修复

【图 5,54 个代码块精确匹配、差异数量为 0】

(31) WordPress SlyTranslate + GLM-5.2 长文单次翻译实战:排查 invalid_translation_runaway_output 假失败

【图 2,SlyTranslate 的 Additional Instructions 保持为空】

(32) SlyTranslate + GLM-5.2 翻译质量继续优化:从关闭随机采样、内置提示词到深度思考与模型 A/B 测试

【图6,终端中的完整测试结果】

(33) 在 GLM 5.2 之后测试 DeepSeek:一次面向 WordPress 长文翻译的模型对比与取舍

此前,我已经完成了 SlyTranslate 与智谱 GLM-5.2 的接入,并通过自定义 MU Plugin,将 WordPress 技术文章的正文改为一次性发送给大模型翻译。

相关的前期记录可以参考:

完成一次性全文翻译后,整体翻译质量已经明显好于早期的分块翻译方案,但与 ChatGPT Plus 直接重译相比,英文标题、摘要和正文中仍然会出现一些问题,例如:

  • 标题沿用中文语序,连续堆叠多个名词;
  • 摘要信息过于密集,句子偏长;
  • 普通链接偶尔被错误概括为重定向;
  • WordPress English site 等表达带有轻微的中式英语痕迹;
  • 个别段落虽然语法正确,但不像自然的英文技术博客。

因此,我继续从以下三个方向进行测试:

  1. 优化模型请求参数;
  2. 将翻译提示词内置到代码;
  3. 测试深度思考及其他模型。
【图 1,SlyTranslate 使用 GLM-5.2 完成英文文章翻译】
【图 1,SlyTranslate 使用 GLM-5.2 完成英文文章翻译】

一、先明确当前实际的翻译流程

在早期排查过程中,SlyTranslate 曾经将正文拆分成大量请求,因此旧日志中出现过接近 89 次模型调用的记录。

但当前实现已经发生变化。

现行的自定义 MU Plugin 为:

Plaintext
wp-content/mu-plugins/swq-glm52-translation-tuning.php

它会拦截 SlyTranslate 的翻译 REST 请求,并使用自定义流程处理文章:

  • 标题作为一个短字段翻译;
  • 摘要作为一个短字段翻译;
  • 正文经过代码保护后,一次性发送给 GLM-5.2;
  • 所有字段翻译成功后,再统一写入英文文章;
  • 正文翻译阶段只允许发出一次模型请求,重试和分块回退会被阻止。

因此,当前一次完整翻译通常只产生少量 API 请求,而不是几十次请求。

这也意味着,后续评估提示词长度、翻译耗时和 API 成本时,不能再使用旧流程中的 89 次请求作为依据。

二、关闭随机采样

智谱 API 支持通过 do_sample 控制是否使用随机采样。

对于技术文章翻译,我更需要的是:

  • 术语稳定;
  • 表达可复现;
  • 同一概念尽量使用同一种英文;
  • 避免不同请求随机选择不同的近义词。

因此,在请求正式编码为 JSON 之前增加:

PHP
$body['thinking'] = [ 'type' => 'disabled' ];
$body['do_sample'] = false;

关闭采样后,翻译结果会更加稳定,但它主要改善的是一致性和可重复性,并不能自动消除中文语序和机器翻译腔。

三、发现 Additional Instructions 只影响正文

最初,我在 SlyTranslate 后台填写了一套较完整的 Additional Instructions,其中包含:

  • 保留 Gutenberg 区块结构;
  • 保护 HTML、URL、命令、路径和文件名;
  • 保护 SWQBLOCKSWQINLINE 占位符;
  • 避免中文语序;
  • 使用自然的英文技术写作方式;
  • 不增加原文中不存在的事实和结论。

重新翻译后,正文有所改善,但标题几乎没有变化。

最开始我怀疑标题可能走了 SlyTranslate 原始插件的独立翻译流程。继续检查当前 MU Plugin 后,才发现真正的问题在这里:

PHP
$prompt = self::build_field_prompt( '', $field );

build_field_prompt() 虽然支持接收 Additional Instructions,但调用时传入的是空字符串。

与此同时,正文调用的是:

PHP
self::translate_full_content(
	$source,
	$target_language,
	$resolved_source_language,
	$additional_prompt,
	$post_id,
	$article_title,
	$article_excerpt
);

也就是说:

Additional Instructions 被传给了正文,却没有传给标题和摘要。

修复后,短字段调用调整为:

PHP
$translated = self::translate_field_value(
	$source,
	$target_language,
	$resolved_source_language,
	$field,
	$id,
	$post_id,
	$additional_prompt
);

函数参数同步增加:

PHP
private static function translate_field_value(
	string $source,
	string $to,
	string $from,
	string $field,
	string $unit_id,
	int $post_id,
	string $additional_prompt
)

并将提示词构造改为:

PHP
$prompt = self::build_field_prompt(
	$additional_prompt,
	$field
);

修复后,标题从原来的:

Plaintext
WordPress Polylang English Subdomain Migration Links Still Pointing to Chinese Site...

改善为:

Plaintext
WordPress Polylang English Subdomain Migration: Links Still Pointing to Chinese Site...

虽然还不是最理想的英文标题,但已经证明 Additional Instructions 开始影响标题翻译。

四、将稳定提示词内置到 MU Plugin

继续使用后台 Additional Instructions 存在几个问题:

  • 每次翻译前都需要复制粘贴;
  • 输入框只保留有限长度的内容;
  • 标题、摘要和正文需要不同的规则;
  • 未来翻译到其他目标语言时,不能强制套用英文写作要求;
  • 提示词散落在后台,不利于长期维护。

因此,我将稳定的翻译规则直接内置到 MU Plugin 中,并保留后台 Additional Instructions 作为可选的临时补充。

新版实现增加了以下方法:

PHP
build_field_prompt()
build_content_prompt()
build_target_language_field_rules()
build_target_language_content_rules()

标题、摘要和正文分别使用不同的规则。

英文标题规则

重点要求模型:

  • 避免中文语序;
  • 避免连续堆叠多个名词;
  • 避免不自然的 -ing 标题片段;
  • 明确时间、原因、问题和结果之间的关系;
  • 不把“完整修复”改写成泛泛的“使用指南”;
  • 不增加原文中不存在的夸张结论。

英文摘要规则

重点要求模型:

  • 使用 2~4 个清晰句子;
  • 概括问题、主要原因和最终解决方式;
  • 避免把所有信息塞进一个超长句子;
  • 不使用空泛、行政化的表达;
  • 不把普通链接、重定向、缓存和数据库记录混为一谈。

英文正文规则

正文继续保留现有的一次性翻译机制,并强调:

  • 保留作者第一人称视角;
  • 保留排障顺序和实操记录风格;
  • 使用清晰的主语和直接动词;
  • 保持技术术语一致;
  • 避免逐字翻译和中文句式;
  • 不增加、删除、合并或调整 Gutenberg 区块。

其他目标语言

代码不会将英文规则强制应用到所有语言。

目标语言会先进行规范化。例如:

Plaintext
en
en-US
en_US

都会识别为英文。

暂时没有专用规则的语言,会使用通用技术翻译规则作为回退,以后还可以继续增加日文等语言的专用规则。

完成内置提示词后,后台 Additional Instructions 可以保持为空。现行完整 MU Plugin 已经统一包含模型参数、字段提示词、正文提示词、占位符保护和验证逻辑。

【图 2,SlyTranslate 的 Additional Instructions 保持为空】
【图 2,SlyTranslate 的 Additional Instructions 保持为空】

五、内置提示词后的实际翻译结果

使用同一篇中文文章重新翻译,耗时约为:

Plaintext
1.36 分钟

新的英文标题为:

Plaintext
Fixing Links That Still Point to the Chinese Site After a WordPress Polylang English Subdomain Migration: A Complete Guide for Category Dropdowns, Breadcrumbs, and Block Templates

相比最初的标题,已经明显改善:

  • 标题主干更加清楚;
  • “链接仍指向中文站”成为主要问题;
  • 不再完全按照中文标题顺序堆叠名词。

不过仍存在一些小问题:

  • WordPress Polylang English Subdomain Migration 依然略显拥挤;
  • 原文是“完整修复”,模型写成了 A Complete Guide,含义有轻微偏移。

摘要和正文也达到了可以直接发布的水平,但仍然存在一些较轻的模型翻译痕迹,例如:

Plaintext
the WordPress English site

更自然的表达可能是:

Plaintext
the English version of the WordPress site

还有:

Plaintext
After selecting the Browser category, the browser...

同一句中同时出现分类名称 Browser 和普通名词 browser,语法没有错误,但阅读体验不够理想。

这说明提示词优化已经带来了实际改善,但继续不断增加细碎规则,收益可能已经开始下降。

六、测试 GLM-5.2 深度思考

下一步,我尝试启用 GLM-5.2 的深度思考:

PHP
$body['thinking'] = [ 'type' => 'enabled' ];
$body['reasoning_effort'] = 'high';
$body['do_sample'] = false;

在 WordPress 中直接测试时,摘要翻译返回:

JSON
{
	"code": "swq_field_translation_failed",
	"message": "Field translation failed: field=excerpt, unit_id=excerpt, reason=invalid_translation_assistant_reply. Diagnostic: /tmp/swq-glm52-field-error-summary.json",
	"data": null
}

HTTP 响应为:

Plaintext
500

这说明当前 SlyTranslate 或 Provider 的响应适配层,不能直接正确处理 Thinking 模式返回的数据结构。

但如果继续修改适配层,就可能需要:

  • 增加原始响应日志;
  • 兼容 reasoning_content
  • 调整 Provider 的响应映射;
  • 继续在生产环境中反复触发错误。

为了避免不断修改生产代码,我改为直接在本地电脑上调用智谱官方 API,进行独立 A/B 测试。

七、在本地直接测试深度思考

测试使用完全相同的:

  • 中文标题;
  • 中文摘要;
  • Gutenberg 正文样本;
  • 提示词;
  • GLM-5.2;
  • do_sample=false

唯一变量是:

Plaintext
thinking=disabled

与:

Plaintext
thinking=enabled
reasoning_effort=high

测试结果如下:

配置标题耗时摘要耗时正文耗时总 Tokens
关闭思考2.23 秒4.14 秒5.68 秒1,604
深度思考 high15.61 秒3.48 秒28.46 秒4,157

深度思考的总耗时约为关闭思考的 3.95 倍,Token 使用量约为 2.59 倍。

质量方面:

  • 标题:关闭思考版本更直接;
  • 摘要:深度思考版本略有改善;
  • 正文:互有优劣,没有稳定提升。

深度思考虽然改善了部分句子,但也引入了新的问题,例如:

  • 标题主干变得更长;
  • Chinese primary domain 不如 Chinese main domain 自然;
  • but instead loaded: 表达生硬;
  • 将编号 1. 改成了 I.
  • inspection, fixing, and verification 不够自然。

最终结论是:

深度思考可以正常运行,但对当前技术博客翻译的提升并不稳定,不值得承担接近 4 倍的耗时、额外 Token 成本和适配层维护成本。

八、对比 GLM-4.7-FlashX

为了判断剩余问题是否已经接近 GLM-5.2 的模型能力上限,我又在本地直接测试了 GLM-4.7-FlashX。

两款模型都使用:

Plaintext
thinking=disabled
do_sample=false
相同提示词
相同输入

测试结果:

模型标题耗时摘要耗时正文耗时总 Tokens
GLM-5.21.54 秒3.45 秒5.94 秒1,609
GLM-4.7-FlashX0.75 秒2.15 秒4.45 秒1,583

GLM-4.7-FlashX 的总耗时大约减少了三分之一,但 Token 使用量只减少了约 1.6%。

质量上,GLM-4.7-FlashX 的问题更加明显。

例如标题将单数的英文子域名写成:

Plaintext
English Subdomains

并将“仍指向中文站”泛化成:

Plaintext
Broken Links

摘要中还出现了:

Plaintext
fixed links
verifying the source site

这些表达没有准确体现“固定链接”和“在源站验证”的技术含义。

正文则出现过去时和现在时混用:

Plaintext
After migrating...
are accessible
I discovered
does not access
returns

相比之下,GLM-5.2 更能维持技术事实、时态和上下文的一致性。

因此,GLM-4.7-FlashX 虽然速度更快,但不适合作为当前生产翻译模型。

九、当前最终配置

经过这一轮测试,当前生产环境暂时固定为:

PHP
$body['thinking'] = [ 'type' => 'disabled' ];
$body['do_sample'] = false;

模型继续使用:

Plaintext
glm-5.2

同时保留:

  • 标题、摘要、正文的内置专用提示词;
  • 按目标语言选择提示策略;
  • 后台 Additional Instructions 作为可选补充;
  • 正文一次性翻译;
  • Gutenberg 与 HTML 结构验证;
  • SWQBLOCKSWQINLINE 占位符保护;
  • 只允许一次正文模型请求;
  • 600 秒超时;
  • 32768 最大输出 Tokens;
  • 翻译失败时不写入半成品文章。

十、下一步计划

经过提示词、参数、深度思考和智谱模型之间的测试后,GLM-5.2 已经可以作为当前方案的稳定基线。

继续针对 GLM-5.2 增加更多细碎提示词,预计很难再带来明显提升,反而可能出现:

  • 规则之间相互干扰;
  • 某些句子改善,另一些句子退步;
  • 提示词越来越难以维护;
  • 模型为了遵守规则而变得更加保守。

后续如果要继续提升翻译质量,更有价值的方向是使用同样的本地 A/B 测试方式,对比其他模型。

我准备申请 DeepSeek API Key,并使用完全相同的:

  • 中文标题;
  • 中文摘要;
  • Gutenberg 正文样本;
  • 内置提示词;
  • 关闭思考;
  • 关闭随机采样;

进行公平对比。

只有当其他模型在技术准确性、英文自然度、结构保护和长文稳定性方面明显超过 GLM-5.2,才有必要继续修改生产环境的模型兼容逻辑。

总结

这一轮优化最重要的收获,并不是找到一个可以让翻译质量突然大幅提升的参数,而是逐步明确了每一层的作用边界:

  • do_sample=false 主要提升稳定性;
  • 提示词可以改善标题和正文组织,但不能完全突破模型能力上限;
  • 标题、摘要和正文需要不同的提示策略;
  • 稳定提示词更适合内置到代码,而不是每次手动粘贴;
  • 深度思考的翻译收益不稳定;
  • 更快的模型不一定更准确;
  • 模型能力与 WordPress 适配问题应该分开测试;
  • 本地直接调用官方 API,比在生产环境中反复修改代码更适合做模型实验。

目前,GLM-5.2、关闭深度思考、关闭随机采样,并配合内置的多字段提示词,是这套 SlyTranslate 自动翻译方案中相对稳定、均衡且可以实际使用的配置。

WordPress 多域名架构下 W3 Total Cache 缓存失效:Polylang、Redis 与 admin 子域名的完整排查和修复

WordPress 网站维护、性能优化与博客运营咨询

本站已持续运营超过 10 年,累计发布 1000+ 篇原创技术文章,长期实践 WordPress 网站建设、CDN / Cloudflare 配置、缓存优化、Google SEO、广告变现和多语言网站运营。

如果你的 WordPress 网站遇到访问慢、缓存异常、插件冲突、广告不显示、SEO 基础结构混乱、CDN 配置不确定等问题,可以联系我做一次远程技术排查。

适合以下用户:
✅ 个人博客站长
✅ WordPress 网站运营者
✅ 独立开发者与内容创作者
✅ SaaS 产品官网运营团队
✅ 希望优化网站速度与稳定性的站点

服务内容:
✅ WordPress 速度优化
✅ Cloudflare / CDN / 缓存配置排查
✅ 插件冲突与页面异常排查
✅ AdSense 广告显示问题排查
✅ SEO 基础结构检查
✅ 博客运营与商业化咨询

如需了解方案或交流相关问题,请直接联系我,并注明:WordPress 维护咨询

联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理