WPML

我们已经准备好 WPML 3.5 Beta 版。该版本在功能和性能方面对字符串翻译进行了重大改进。

几乎所有使用 WPML 的网站都会使用字符串翻译。因此,您可以想象,让 WPML 的字符串翻译变得更好是我们工作中的重中之重。WPML 的这个版本几乎完全致力于改进字符串翻译。

更快、更精简的字符串翻译


为了翻译字符串,WPML 需要从数据库加载翻译。我们尝试了不同的加载技术,看起来 WPML 3.5 中的方法是绝对的赢家。

在以前的版本中,我们尝试过:

  • 仅在确切需要时加载翻译
  • 按上下文预加载所有字符串
  • 从数据库预加载所有字符串

每种方法都有其优缺点。问题在于,对于每一个从其中一种方法中受益的网站,都会有另一个网站受到负面影响。

WPML 3.5 使用了一种预加载字符串翻译的新方法。它保留了一个额外的表,告诉 WPML 每个页面需要哪些字符串。然后,它会准确预加载该页面所需的字符串,无论它们属于哪个上下文。这样做的明显优势是预加载的字符串更少,并且在呈现页面时不需要加载任何字符串。因此,内存消耗和 CPU 利用率都大幅下降。这种新方法的缺点是需要少量的全新 PHP 代码来跟踪哪个字符串在哪里使用。得益于我们为其开发的专用数据库访问和缓存,这些额外的代码运行速度非常快。

您所能获得的性能提升取决于不同的因素:

  • 网站中的字符串数量 – 字符串越多,收益越大(相对而言,现在预加载的字符串更少了)。
  • 服务器的 PHP 版本 – PHP 7 比 PHP 5.6 高效得多。如果您仍在使用 PHP 5.x,您将获得更显著的性能提升,但在 PHP 7 上您也会有所体会。
  • 您运行的其他插件数量、内容量、主题等 – 显然,如果您的网站有其他运行缓慢的代码,字符串翻译的改进就不会那么明显。

对于我们自己的 WPML.org 网站,我们获得了以下性能提升:

PHP 版本页面内存消耗节省CPU 利用率节省
PHP 5.6 首页60%41%
管理仪表板41%33%
PHP 7 首页50%16%
管理仪表板33%15%

WPML 3.5 的另一个重大改进是能够(自动)翻译字符串中的链接。这意味着什么,为什么您需要它?

我们将“字符串”用于许多不同的事物。例如,如果您的主题将首页的“引导”文本存储在“选项”中,WPML 将使用字符串翻译来处理它。在此之前,您需要跟踪包含 URL 的字符串,并手动调整它们以适应翻译后的内容。如果有许多字符串包含链接,这可能是一项非常繁琐的任务。

现在,WPML 在字符串翻译中处理链接的方式与其在“文章”(文章、页面和自定义类型)中处理链接的方式相同。当您翻译任何包含链接的字符串时,该链接会自动调整以指向翻译后的内容。我将写一篇单独的博客文章,展示它如何与我们的 Toolset Layouts 插件配合使用。

8月2日更新

大家好,我们在管理后台发现了另一个非常严重的浪费时间的源头。这个问题很小,本应该在一段时间前就处理好。WordPress 管理后台有一个“WPML 小工具”,现在可能已经没有人需要它了。该小工具从数据库的许多地方提取内容,以及 wpml.org 网站上最近的博客文章。删除它将消除许多数据库调用,以及潜在的缓慢外部调用。

我们正在处理该小工具(将其删除)并审查所有外部调用,以确保它们不会拖慢您的网站。

下载并试用


WPML 3.5 目前正在进行 QA 测试。我们已经全面测试了对字符串翻译的更改,但在将其作为生产版本发布之前,还有很多内容需要测试。

我们非常希望能收到您对即将发布的这个新版本的反馈。如果您的网站存在与字符串翻译相关的性能问题,那么这个版本非常适合您。

请记住,这是一个 Beta 版,因此请仅在开发站点(而不是在生产站点)上试用。

此 Beta 版仅向“Multilingual CMS”帐户持有者提供,因为它主要围绕字符串翻译的改进。

登录您的 WPML 帐户,然后单击“下载”。滚动到底部并下载 CMS Beta 包。解压缩并将您正在使用的所有 WPML 组件上传到 WordPress。

有反馈意见?


请在这里留言,告诉我们这个版本对您来说效果如何。如果您遇到问题,请在 WPML 支持论坛中发起一个新帖子,并在这里留言,附上简短说明和该帖子的链接。

我们期待您的反馈、问题、想法和建议!

觉得有用吗?分享这篇文章: