资源为什么您的翻译没有在WordPress中显示(故障排除指南)

为什么您的翻译没有在WordPress中显示(故障排除指南)

SimplePoTranslate团队2025年12月5日

在这个WordPress开发中,没有比“静默失败”更令人沮丧的了。

您做对了一切。您翻译了.po文件。您将其编译为.mo文件。您通过FTP将其上传到服务器。您清除了缓存。

您刷新页面,期望看到西班牙语、法语或德语。 相反,您看到的......是英语。

没有错误消息,没有白屏——只有顽固的、未翻译的文本。在您抓狂之前,请阅读本指南。以下是翻译无法在WordPress中加载的5个最常见原因以及如何修复它们。

1. 您命名的文件错误

WordPress对文件命名非常严格。如果您错过一个字符,它将不会加载该文件。

标准格式为:{text-domain}-{locale}.mo

  • 文本域(Text Domain): 这是主题或插件的唯一ID(例如,woocommercetwentytwentyfourmy-custom-plugin)。
  • 区域设置(Locale): WP区域设置代码(例如,西班牙语为es_ES,法语为fr_FR)。

常见错误:

  • 仅将文件命名为es_ES.mo(这仅适用于全局WordPress核心文件,不适用于插件)。
  • 使用错误的破折号:使用my_plugin_es_ES.mo(下划线)而不是my-plugin-es_ES.mo(连字符)。
  • 猜测文本域。您必须检查插件的代码(style.css标头或load_plugin_textdomain函数)以找到确切的slug。

2. 您将文件放在了错误的文件夹中

您上传文件的位置与命名方式同样重要。WordPress按特定顺序在特定目录中查找。

  • “安全”系统文件夹: /wp-content/languages/plugins//wp-content/languages/themes/
    • 优点: 这可以免受插件更新的影响。
    • 缺点: 您必须将文件命名为textdomain-locale.mo
  • 作者文件夹: /wp-content/plugins/plugin-name/languages/
    • 优点: 容易找到。
    • 缺点: 危险。 当您更新插件时,此文件夹将被清除。您的翻译将消失。

最佳实践: 始终将您的自定义.mo文件放在全局/wp-content/languages/目录中,以防止更新期间丢失数据。

3. “沉默杀手”:.po文件中的语法损坏

这是最难调试的问题,并且经常发生在通用AI翻译工具中。

WordPress读取二进制.mo文件,这些文件是从.po文本文件编译而来的。如果您的.po文件包含语法错误,.mo文件可能会生成,但在内部是“损坏”的。

这是怎么发生的? 如果翻译人员(人类或AI)搞砸了Gettext格式,该字符串将变得无效。

  • 示例: 缺少结束引号"
  • 示例: 打破变量(将%s更改为% s)。
  • 示例: 搞砸msgid_plural计数。

当WordPress在.mo文件中遇到损坏的条目时,它通常会跳过它或完全停止读取文件,恢复为原始英语。

4. 您忘记了编译(.po vs .mo)

WordPress无法直接读取.po文件。这是一个常见的误解。

  • .po = 人类可读(Portable Object)。
  • .mo = 机器可读(Machine Object)。

如果您上传my-theme-es_ES.po文件但忘记生成匹配的.mo文件,则什么也不会发生。您必须编译它。

5. 缓存(常见嫌疑人)

如果您使用的是缓存插件(WP Rocket,LiteSpeed)或服务器端缓存(Varnish,Redis),则您的站点可能会在您上传翻译之前提供缓存的HTML版本。

修复: 清除所有缓存,包括浏览器缓存和对象缓存。

终极修复:从一开始就有效的文件

排除文件路径和名称的故障很容易。排除损坏语法(原因#3)是一场噩梦。

如果您使用的工具破坏了代码变量或损坏了Gettext结构,您将花费数小时想知道为什么文件不起作用,而没有意识到文件本身已“中毒”。

这就是我们构建SimplePoTranslate的原因。

  • 语法锁定: 我们确保在您下载之前,每个字符串在语法上都是有效的。我们锁定像%s这样的变量,这样它们就不会被破坏。
  • 完美格式: 我们生成干净、标准的.po文件,这些文件可以100%编译成工作的.mo文件。
  • 无需插件: 您下载该文件,并且知道它有效。您只需要将其上传到正确的文件夹。

停止猜测为什么您的翻译不可见。从您可以信任的文件开始。

准备好毫无头痛地翻译了吗?在SimplePoTranslate.com免费开始