WPML

借助附加组件将 qTranslate 翻译迁移到 WPML,同时保留原有设置并清理残留的 qTranslate 元标记。

qTranslate 插件的工作方式与 WPML 完全不同。qTranslate 不是将不同的语言放在不同的文章中,而是将所有语言放在同一篇文章中。

具体做法是修改文章内容,例如将 Hello World 变成 [:en]Hello World[:de]Hallo Welt[:]

卸载 qTranslate 后,所有这些元标记仍会残留在数据库中。

我们的迁移插件可以执行以下操作:


  • 将不同语言的内容拆分到不同的文章中,让网站可以配合 WPML 运行。

  • 从数据库中清理 qTranslate 遗留的所有元标记。

  • 删除所有翻译,只保留您指定的语言,从而把基于 qTranslate 的网站转换为单语言网站。

限制:


  • 我们的迁移插件仅适用于文章和页面(WordPress 内置的文章类型)。不适用于自定义文章类型。

  • 迁移后,您需要手动修复网站上的所有菜单。

您可以从 WordPress 插件库下载我们的 qTranslate X Cleanup and WPML Import 插件。

单语言转换(无 WPML,剥离所有翻译)


如果您在没有 WPML 的情况下使用 qTranslate Importer 插件,最终得到的将是一个单语言网站。转换过程会询问您要保留哪种语言。所有其他语言都将从网站中删除。

如果您一直在尝试使用 qTranslate,而现在想要从数据库中清理所有这些语言元标记,这将非常有用。

处理完成后,所有文章将只保留您选择的那一种语言。

工作原理:


  1. 禁用 qTranslate 并启用 qTranslate X Cleanup and WPML Import 插件。

  2. 备份您的数据库。说真的,即使您只是在尝试,也务必备份数据库。

  3. 前往设置 → qTranslate Importer,选择您要保留的语言。

  4. 单击 Clean 按钮。这将遍历网站的所有内容,并从内容中删除语言元数据。

插件界面如下所示:
qTranslate 导入器转换为单一语言
qTranslate 导入器转换为单一语言

选择您要保留的语言并勾选这两个复选框。然后,您可以开始清理。

多语言转换(从 qTranslate 转换为 WPML)


如果您有 WPML,qTranslate 导入器会将网站从同一篇文章中包含所有语言的模式,转换为不同语言对应不同文章的模式。转换完成后,您将能够在网站上使用 WPML。

执行此转换的最佳方法是禁用 qTranslate,启用 WPML 和 qTranslate 导入器,然后让它自动完成所有操作。

导入过程将:


  1. 检查 qTranslate 使用了哪些语言,并在 WPML 中启用相同的语言。

  2. 检查您在 qTranslate 中使用了哪些语言固定链接,并在 WPML 中选择相同的设置。

  3. 处理所有文章、分类法和自定义字段,并按语言分别创建独立的条目。

  4. 生成 URL 重写规则,以便将传入链接重定向到新的 URL。

为确保操作安全,请按以下步骤进行:

  1. 禁用 qTranslate 并启用 WPML 以及 qTranslate X Cleanup and WPML Import 插件。

  2. 备份您的数据库。这至关重要。您必须在运行导入之前执行此操作。

  3. 前往设置 → qTranslate Importer,检查计划的数据转换。

  4. 单击 Start 按钮。这将遍历网站的所有内容并将其转换为使用 WPML。

导入到 WPML 的过程


导入界面如下所示:
将 qTranslate 导入到 WPML
将 qTranslate 导入到 WPML

在运行过程中,您将看到进度。在显示“complete”之前,请勿中断导入过程。页面应每隔几秒钟刷新一次,因为每次处理 10 篇文章。

添加 URL 重定向


导入完成后,您将看到以下内容:
qTranslate 到 WPML 的转换完成
qTranslate 到 WPML 的转换完成

如果您可以编辑 .htaccess 文件,请从 .htaccess 重写规则框中复制所有内容,并将其添加到您网站的 .htaccess 文件中。

有一个 validate 按钮,可读取该文件并检查规则是否添加到了正确的位置。

或者,您可以将重定向信息添加到主题中。单击该按钮下载包含重定向规则的 PHP 文件,并将其保存在主题文件夹中。

然后,将以下行添加到主题的 functions.php 文件中:

include(get_stylesheet_directory() . '/qt-importer-redirects.php');

这是一条 PHP 语句,因此应放在 <?php … ?> 块内。

您可能需要手动编辑的其他文本


许多使用 qTranslate 的网站在各个地方使用了语言元标记,这些标记硬编码在 PHP 或选项页面中。不再使用 qTranslate 后,就需要通过其他方式来翻译这些字符串。

首先,找到它们。逐一查看您所用主题和插件的各个管理后台页面,看看是否存在类似下面这样的标记:

<!–-:en–->English text<!–-:–-><!–-:fr–->French text<!–-:–->

将这些替换为仅包含默认语言的文本。

然后,您可以使用 WPML 的字符串翻译模块将它们翻译成任何语言。

获取帮助


如果您在从 qTranslate 迁移到 WPML 时需要帮助,请访问 WPML 支持

作者:Amir · 最后更新时间:2026年1月14日