今天我们发布了全新字符串翻译的首个公开 Beta 版,它避免了在前端和 WordPress 管理后台翻译字符串时的所有数据库调用。
多年来,WPML 中字符串翻译的工作方式发生了变化。我们的目标始终是让您能够翻译网站上的每一段文本,并尽可能减少服务器负载。
近年来,插件和主题变得越来越庞大,使用了更多可翻译的字符串。一个打开页面构建器、WooCommerce 和其他几个大型插件的典型管理页面可能会从数据库加载超过 30K 个字符串。可翻译字符串数量的这种增长使得使用字符串翻译的网站变得更慢。WPML 允许您翻译页面上的所有内容,当它过滤这么多字符串时,CPU 和数据库的负载就会增加。
今天,我们准备好了一个新版本,它彻底改变了字符串翻译的工作方式。这个新版本做出了两项重大改变:
- 仅处理您想要翻译的字符串
- 依靠 .mo 文件应用翻译
第一个改变意味着字符串翻译表默认不会包含所有插件和主题的所有文本。对于绝大多数网站,主题和插件都自带包含良好且完整翻译的 .mo 文件。WPML 不需要过滤(并使其可翻译)所有这些字符串。如果您想覆盖某个插件的文本翻译,您仍然可以这样做。您将能够选择您想要的插件,WPML 会注册来自该插件的字符串。
第二个重大改变意味着 WPML 不会为任何字符串的翻译调用数据库。WPML 会为您的翻译编译 .mo 文件,并让 WordPress 加载它们。这些 .mo 文件的大小取决于您翻译的字符串数量。在大多数服务器上,加载文件比从数据库加载多个条目要快得多(对于许多网站来说,数据库是性能瓶颈)。
生成 .mo 文件
WPML 字符串翻译会自动处理 .mo 文件的生成和维护。这会在您每次在 WPML -> 字符串翻译页面上翻译字符串时发生。
但是,在升级到此 Beta 版后,您需要首次生成这些文件。
如果您的网站在升级前有任何已翻译的字符串,在更新字符串翻译后,您将在任何管理页面上看到以下对话框:
如果在测试 Beta 版时出现问题,您可以重新生成 .mo 文件。
操作方法如下:
- 前往 WPML -> 支持。
- 单击故障排除链接。
- 滚动到页面末尾,然后单击 Show custom MO Files Pre-generation dialog box。
- 重新加载页面(最终版本中不需要此步骤)。
- 允许您重新生成 .mo 文件的对话框将会出现。
结果
此版本已经在我们所有的生产网站(WPML.org、Toolset.com 和 ICanLocalize.com)上运行。它运行流畅,服务器状态良好。字符串翻译从来都不是影响我们网站性能的重要因素,因此我们正在使用其他网站进行性能分析。
我们收到了数十个来自客户的网站,在这些网站中,字符串翻译的影响要大得多。在所有这些网站上,我们确认由字符串翻译引起的服务器负载实际上已降至零。这些网站现在的加载时间大约是以前的一半(太棒了!)。
当前开发状态
这个 Beta 版已准备好供您测试。唯一的注意事项是它目前还无法在多站点安装上运行。如果您有一个单站点(常规)WordPress 安装,并且怀疑由于字符串翻译而存在性能问题,请尝试此 Beta 版。我们将让此 Beta 版运行几周,同时收集客户反馈。我们将在分析更多客户网站的同时,完成对多站点的支持。
如果您已切换到此 Beta 版,但仍然遇到与 WPML 相关的重大性能问题,我们希望查看您的网站。我们可能会发现其他需要处理的性能问题。我们希望确保在将其投入生产时,没有人遇到与 WPML 相关的任何性能问题。我们的目标是在 9 月上半月发布 WPML 4.3 生产版。
下载并试用
请记住,此版本目前还无法在多站点安装上运行!在开发站点和生产站点上使用它是可以的,但请务必谨慎。
自动更新
要获取此 Beta 版,请前往插件 -> 安装插件,然后单击商业选项卡:

在此页面中,启用 Beta 通道并自动更新插件。
有关更多详细信息,请访问我们关于安装 WPML Beta 版的页面。
要获取自动更新或切换到 Beta 通道,您必须注册站点。
手动更新
您也可以手动更新。
为此,请按照手动更新 WPML 中的说明进行操作(即使它指的是旧版本的 WPML,过程也完全相同)。
有反馈意见?
在您试用此 WPML Beta 版后,我们很乐意收到您的反馈。请与我们分享您能提供的所有信息。我们想知道此 Beta 版何时修复了性能问题,以及我们需要处理的任何剩余性能问题。
留下您的评论,我们会回复您。
更新 – 2019-08-16
我们发布了一个新的 Beta 版,修复了以下问题:
- 与 WPML Multilingual & Multicurrency for WooCommerce 不兼容:您可以安装当前版本或此版本中包含的 WPML Multilingual & Multicurrency for WooCommerce Beta 版。
- 保存带有大量自定义字段的文章时性能不佳。
目前的已知问题
我们仍在努力完善某些部分。截至今天,这是已知问题的列表:
- 尚不支持多站点。
- 从字符串翻译中删除字符串不会更新生成的 .mo 文件。
- 删除某个域的所有字符串,不会删除生成的 .mo 文件。
- 删除某个域的所有字符串后,重新生成 .mo 文件(请参阅上文的“生成 .mo 文件”以了解如何重新生成文件)不会删除相应的 .mo 文件。
- 已翻译的管理文本在 icl_translate 函数中返回原始内容(影响 WPML Multilingual & Multicurrency for WooCommerce:“Custom subject of new order emails isn’t translated”(新订单电子邮件的自定义主题未翻译))。

