WPML

更新日志

新增功能

  • 在 WPML 设置中搜索“scan”或“theme strings”现在可以找到主题和插件字符串扫描。
  • 区块编辑器和站点编辑器在侧边栏中有一个原生的语言面板,包含旧语言框的所有控件,适用于文章、页面、模板、模板部分、同步模式和导航菜单。
  • 自动翻译有了一种新的交付方式。专业翻译服务商会在工作准备就绪时通知您的站点,您的站点会收集它,并且双方都知道对方持有的内容。
  • 您的站点也会自行检查已完成的翻译,因此阻止服务调用的防火墙或安全插件不再会阻止它们。
  • WPML支持有一个新的翻译交付框。它显示了您的翻译在哪里、出了什么问题以及您现在可以做什么。
  • 当翻译等待您处理时,仪表盘和管理栏会说明原因:字数用尽、待处理或被拒绝的付款、支出限额、付款方式或被冻结的帐户。通过链接可转到修复程序。
  • 当交付问题需要您处理时,您会收到一封说明修复方法的电子邮件。
  • 翻译仪表板的分类法部分已完成。它显示每个分类法的状态和数量,将术语列为可搜索的树,并使用每种方法发送它们:自动、自己翻译、译员或专业翻译服务商。
  • 属于某个项目的文本现在随其一起传输,因此它们只发送和收费一次。例如,术语的 Yoast SEO 文本随该术语的翻译任务一起发送。
  • 使用为默认语言使用目录时,根 URL 有一个新选项:重定向到默认语言。
  • 当多站点子站点的路径与语言目录相同时,WPML 会发出警告。新站点不能使用此类路径,并且设置向导会显示子站点将采用哪些语言 URL。
  • WPML支持和 WP-CLI 可以修复旧版本重写为 ?page_id= 地址的内部链接。
  • 语言切换器区块可以从列表中隐藏当前语言,并且其显示设置更易于理解。
  • WPML 可以记住访客在语言切换器中选择的语言,并且可以在栏中建议访客的浏览器语言而不是重定向;两者都适用于页面缓存。
  • 使用独立翻译接管的翻译保留在 WordPress 编辑器中,没有关于丢失编辑的警告,并且翻译仪表板会在那里打开它。
  • WPML 现在声明 PHP 7.4 为其最低版本,并且在较旧的 PHP 上显示通知,而不是因错误而停止站点。
  • 设置AI 翻译允许您按内容类型(例如 Elementor 模板)选择自动翻译是否等到内容出现在站点上再进行。
  • 新的 WP-CLI 命令 wp wpml appearance 显示并重置 WPML 记录的在站点上显示的内容。
  • Elementor 的 WPML语言切换器小工具具有新的样式选项:悬停背景、当前语言的活动样式以及语言列表的下拉样式。
  • Elementor:站点设置中的站点名称和标语可以从翻译仪表板进行翻译,并且站点标题小工具的文本随其页眉一起翻译。
  • 安全强化。

性能

  • 每个页面请求减少了两次数据库查询,并且在多站点上检查 WPML 的语言表开销更小。
  • 翻译仪表板的内容列表在一次查询中加载其文章及其语言,而不是每行两次查询。
  • 管理列表上方的语言计数和以默认语言显示的内容查询执行的工作更少。
  • 当专业翻译服务商不支持站点的某个语言对时,WPML 会将该答案保留一小时,而不是在每个管理页面上再次询问。
  • 保存文章不再清除 WPML 的语言缓存,因此后续请求不会重建它。
  • 保存已翻译的文章会解析其每个链接一次,并且仅在链接更改时解析,而不是每种语言解析一次。
  • 使用持久对象缓存(例如 Redis 或 Memcached)时,翻译查找在请求和保存之间保持缓存。
  • 在具有大型媒体库的站点上保存大型 Elementor 页面不再导致服务器超时。
  • 当没有任何更改时,页面加载不再重写 WPML 的活动插件记录。
  • 具有大型类别菜单(例如商店菜单)的页面加载速度更快。
  • 在具有数千个可翻译自定义字段的站点上保存文章不再耗尽内存或时间。
  • 多站点:在站点之间切换时,每个站点读取一次 WPML 的设置,不再清除选项缓存。
  • Avada:具有 Off Canvas 显示条件的页面加载速度更快。
  • 来自专业翻译服务商的翻译保存速度更快:WPML 读取一次翻译任务的字段,而不是每个字段读取一次。
  • 具有许多产品图像的商店不再使数据库过载:WPML 通过其自己的索引查找来查找图像的语言。
  • WPML Multilingual CMS 包减少了约 1,400 个文件,并且从 WPML 4.9 更新仍然有效。
  • WPML 在启动时通过一次查询读取其小型的每次请求选项。
  • 区块主题:页面列表在每次页面加载时通过一次查询按语言筛选页面,并且导航区块一起读取其链接的目标和翻译。
  • 在已翻译的分类法上查找别名时,在一次查询中读取别名。
  • URL 解析缓存停止在每次页面加载时重建,并且其表保持较小。
  • 当 WPML 重建其语言缓存时,它在每次请求时保存一次语言设置,而不是在每次更改时保存。

自动翻译和翻译所有内容的修复

  • 现在删除专业翻译服务商的凭据会真正将其删除,而不是旧凭据又恢复。
  • 启用翻译所有内容后,保存文章不再等待高级翻译编辑器,这解决了缓慢保存导致超时的问题。
  • 未注册自动翻译的站点会收到提示,而不是“Unable to authenticate”或“Connection Error”。
  • 当回复无效时,注册站点的自动翻译不再导致致命错误。
  • 当保存被拒绝时,AI 翻译设置不再显示“已保存”,并且当站点的签名被拒绝时,WPML 会再次注册该站点。
  • 当专业翻译服务商限制站点时,WPML 停止每十分钟重新发送一次其等待的翻译任务,并在失败尝试一天后放弃该任务。
  • 对自动翻译的限制仅在专业翻译服务商解除它时才解除,而不是通过任何成功的调用解除。
  • 仪表盘不再将手动翻译任务或专业翻译服务商不再持有的翻译任务计为正在进行中的翻译。
  • 读取翻译引擎失败后会很快重试,而不是让每个自动翻译任务的字数统计失败一天。
  • 启用翻译所有内容后,添加语言不再重新打开类别和其他分类法进行自动翻译。
  • 翻译所有内容会使用刚刚保存的值翻译具有其他插件元框(例如 ACF 字段)的区块编辑器页面。
  • 当文章类型从翻译所有内容中排除时,“调整内容限制”对话框不再在每次加载翻译仪表板时自动打开。
  • 文章编辑器将等待发送的翻译任务显示为正在进行中,而不是说发送自动翻译未成功。
  • “立即提取翻译”会在几秒钟内报告其引入的内容。
  • 在连接到专业翻译服务商之前将内容发送到自动翻译的新站点现在会连接并翻译,而不是停留在身份验证错误状态。
  • 首次发送或字数统计失败的翻译所有内容翻译任务不再以 0 个字数再次发送。
  • 当自动发送中断时,翻译所有内容不再使文章停留在等待译员且没有翻译任务的状态,并且已经卡住的文章将通过每小时检查再次发送。
  • 保存自动翻译正在等待重试的文章不再创建第二个翻译任务。
  • 等待重试的翻译任务在下一次管理页面视图中全部发送,而不是一次发送十个。
  • “您的更新替换了正在进行的翻译”通知在保存后立即显示,而不是在页面加载后显示。
  • 即使 WP-Cron 运行延迟,翻译所有内容也会发送具有额外字段框的区块编辑器页面。
  • 在故障排除中取消进行中的自动翻译任务也会释放已结束的自动翻译留下的进行中字符串。
  • 对具有大量保存内容的短页面进行自动翻译不再因“Failed to parse because your job is above the file size limit”而失败。
  • 在任何主机上,保存文章不再等待 WPML 提取已完成的翻译。
  • 在专业翻译服务商放弃后,翻译所有内容不再在每次保存时再次发送未更改的内容。它会尝试两次,然后等到内容更改。
  • 当翻译所有内容替换未完成的翻译任务时,它也会在专业翻译服务商处取消旧任务。
  • 当打开多个管理屏幕时,将更改的自定义字段首选项应用于现有翻译不再发送同一文章两三次。
  • 翻译所有内容不会将术语翻译任务发送到暂停自动翻译的语言。
  • 从自动翻译仪表板发送中保留的翻译任务将作为自动工作重试,而不是作为手动任务重试。
  • 翻译所有内容不再为字符串批次提供具有相同 ID 的字符串包的内容,这会导致这些字符串在翻译任务读取完成时未翻译。
  • 在字符串翻译中已翻译的字符串包在单独发送时不再被翻译和再次收费。
  • 作为包的一部分翻译的文本(例如 Elementor 站点的标题和标语)只翻译和收费一次。字符串翻译显示在哪里翻译它。
  • 从未到达专业翻译服务商的翻译任务不再占用其状态检查的空间。
  • 翻译所有内容估算会准确定价运行发送的内容。副本和丢弃的翻译任务不计价。
  • 翻译所有内容估算会计算产品术语,并且翻译仪表板发送并计算一次共享术语。仪表板的成本完成加载。
  • 设置向导的估算计算页面构建器文本、属性、ACF 术语字段和表单。
  • 在 WPML 重新连接到专业翻译服务商时保存的文章会获得一个等待的翻译任务,并在服务再次响应时立即发送。
  • 当交付时间超过 30 秒时,翻译不再应用两次。
  • 将“WordPress 编辑器”设置为所有内容的翻译编辑器时,翻译所有内容会遵循该选择(正如其估算所做的那样),而不是翻译某些页面然后不再翻译新页面。
  • 翻译所有内容不再将未更改的分类法术语再次发送进行翻译。
  • 将术语自动翻译为隐藏语言会再次保存。
  • 自动翻译估算将没有翻译状态的现有翻译定价为 0,因为运行会对其收费。
  • 重试连接到专业翻译服务商时,一次进行一次尝试。
  • 在较早的支出限额下或在后来解除的冻结下等待的翻译被收集,而没有新的支出限额暂停。

翻译编辑器和翻译任务的修复

  • 当字段仅包含标点符号、符号或简码时,翻译任务不再因“Missing or wrong data: target”而被拒绝。
  • 当交付的翻译留下一个没有翻译的文本时,其余的翻译会被应用,该文本保留其原文,并且翻译任务日志会记录它。
  • Gravity Forms 或其他字符串包翻译任务在 WPML 的翻译编辑器中打开,绝不在具有相同 ID 的文章中打开,因此其翻译不再丢失。
  • 字符串包的翻译任务不再包含具有相同 ID 的文章的图像文本。
  • 当已取消的翻译任务返回翻译时,拒绝现在会写入翻译任务日志。
  • 经典翻译编辑器在转义表单字段之间的分隔符的服务器上再次保存,而不是回答“Permission denied”。
  • 没有文本的字段不再发送到高级翻译编辑器,并且保留此类字段的已存储翻译。
  • 翻译任务日志保留了取消、编辑器打开、经典翻译编辑器保存和升级的记录。
  • 在翻译任务日志中,在另一个操作内部启动的操作嵌套在其下,并且外部操作的记录不再消失。
  • 当其文本保存失败时,翻译任务不再处于不可读状态。
  • 更新到 WPML 5.x 不再将使用 WordPress 编辑器或经典翻译编辑器进行翻译的站点切换到高级翻译编辑器。
  • 高级翻译编辑器中正在进行的翻译任务会重新打开其工作,即使其原文已更改也是如此。
  • 在其审核打开时再次发送翻译,或在其审核关闭后编辑翻译,会将其保留在审核队列中。
  • 包含“&”的译员备注完好无损地到达翻译任务。
  • 第二次在高级翻译编辑器中重新打开已完成的翻译会交付编辑,而不是失败。
  • 在编辑器中打开翻译并留下未完成的工作后编辑原文,会根据最新内容重建该翻译任务。
  • 当无法写入通知电子邮件的 XLIFF 文件时,将内容发送进行翻译不再因服务器错误而失败。
  • 一个已取消翻译任务的专业翻译服务商错误不再阻碍其他取消操作,并且当取消无法完成时会通知您。
  • 专业翻译服务商不断失败的取消操作(同时它响应其他调用)被放弃,因此“无法取消”警告消失。在重新连接期间,翻译屏幕显示一个通知而不是两个。
  • 在高级翻译编辑器中,文章标题标签和组名(例如“Main Content”)遵循管理后台语言。
  • 为在翻译任务进行期间编辑的页面交付的翻译保存在页面上,或者在文本更改太多时标记为需要更新。
  • 从前端编辑并在高级翻译编辑器中完成的翻译会再次应用。当交付失败时,页面会说明原因。
  • 重新发送的字段不再在换行符处拆分。
  • 重新发送在高级或经典翻译编辑器中进行的翻译不再将以前的翻译视为 WordPress 编辑器编辑。
  • 当 WPML 无法写入语言记录时,发送会停止,而不是稍后因“send not confirmed”而失败。
  • 发送到中途停止的专业翻译服务商不再使其翻译任务卡在进行中状态。
  • 高级翻译编辑器不再打开专业翻译服务商很久以前交付的翻译任务。
  • 其内联脚本包含 < 符号的自定义 HTML 区块不再使其翻译任务停滞。
  • 从高级翻译编辑器返回不再为专业翻译服务商不再持有的翻译任务记录 PHP 警告。
  • 当一个翻译保存失败时,从专业翻译服务商收集翻译会继续进行,并且停止请求的保存会被计算和命名。

翻译管理和翻译仪表板的修复

  • 翻译作业列表在显示“No Data”且包含多页结果的站点上再次显示其翻译任务。
  • 在翻译任务中,计划的翻译标记为 Scheduled,私有翻译标记为 Private,而不是“Draft – Pending review”。
  • 翻译仪表板的引擎切换对话框会在切换到 Private Translation Cloud 被拒绝时说明,而不是确认它。
  • 引擎切换对话框会在您能看到的地方显示保存失败的消息。
  • 翻译任务和翻译仪表板显示已翻译项目的 ID,并且“查看”为没有编辑屏幕的文章类型(例如 TablePress 表格)打开翻译编辑器。
  • 管理员电子邮件显示更新文章和字符串包要翻译的字数,而不是其全部字数统计。
  • 当无法读取价格时,从翻译仪表板自己将内容发送进行翻译不再因“WPML could not count the words in these items”而失败。
  • 更新的字符串在翻译仪表板、成本估算和管理员电子邮件中计算自上次翻译以来添加的字数,而不是 0。
  • 译员功能保持一致:设置语言对会更新保存的语言对,删除译员会释放其未完成的翻译任务,新管理员可以进行翻译。
  • 当高级翻译编辑器拒绝新的翻译管理员时,屏幕会显示原因。
  • 在拥有许多用户的站点上,在设置和设置向导中选择翻译管理员或译员不再超时。
  • 译员表为拥有所有语言对的译员显示纯文本摘要,并且在只有一名译员时有效。
  • 用户个人资料上的新任务电子邮件通知设置仅针对译员或管理员显示和保存。
  • 翻译任务显示一条可关闭的消息,其中包含聘请经验丰富的译员审核翻译的链接。
  • 发送给管理员的翻译摘要和逾期翻译任务电子邮件包含从翻译仪表板发送的字符串。
  • 即使无法访问专业翻译服务商,也会发送每日逾期翻译任务报告。
  • 翻译仪表板将尚未出现在站点上的保留内容单独列出,并带有“显示它们”,并将看到字符串的位置标记为“出现在站点上”或“在管理后台中看到”。
  • 翻译仪表板不再显示具有误导性的“映射到已知语言”行,并将仅支持手动翻译的语言与被视为与默认语言相同的语言区分开来。
  • 翻译任务和翻译作业中的标题搜索还会按其翻译后的标题查找翻译任务。
  • 关闭新任务通知的译员不再收到新任务电子邮件,并且在无法发送邮件的服务器上,发送进行翻译不再因此而因 HTTP 500 错误而失败。
  • “已翻译”框跟随在另一个选项卡中进行的编辑,并且也提供给已编辑的文章。
  • 在翻译仪表板上勾选的分类法不再在底部栏上计为“未显示”。
  • 自己翻译说明编辑器可能会从使用您的词语的机器翻译开始,以及如何清除它。
  • 当从其审核页面编辑翻译时,状态图标显示“正在进行审核”。
  • 翻译任务首先列出您自己正在进行的翻译任务,并且页面列表提供继续这些任务的选项。
  • 键盘焦点保留在 WPML 的对话框内。

页面构建器的修复

  • 当通过 WP-CLI 交付翻译时,将保存页面构建器文本,而不是以空翻译完成翻译任务。
  • Divi 和其他页面构建器:WPML 保留每个配置文件的“built with page builder”模式,而不仅仅是最后一个。
  • WPBakery:页面预览显示最新的未保存更改,而不是旧版本。
  • Divi:从 Divi 4 迁移到 Divi 5 的页面在高级翻译编辑器中打开其现有翻译。
  • Cornerstone:翻译所有内容会翻译页眉、页脚、布局和组件。
  • Avada:在运行旧 WPML 版本的站点上,表单由翻译所有内容进行翻译。
  • Elementor:翻译所有内容会等待模板出现在站点上再进行翻译,并且仅翻译访客阅读的自定义属性。
  • 在 wpml-config.xml 中声明为链接的简码属性以当前语言显示目标页面。
  • 当页面构建器页面上的链接发生更改时,其翻译会再次获取新链接,除非译员手动更改了该链接。
  • Elementor V4:视频元素的媒体(视频及其海报图像)被翻译。
  • WPBakery:简码内的区块编辑器注释不再将原始简码标记添加到要翻译的字符串中。
  • Avada:使用媒体翻译时,设置了尺寸(例如“medium”)的图像会显示翻译后的图像并保持其尺寸。
  • 仅由其他简码组成的简码内容不再注册为要翻译的字符串,而视频等标记仍会到达翻译任务。
  • 使用在自定义 XML 配置中声明的简码构建的页面在翻译任务完成时会翻译其简码文本。
  • Elementor:容器等小工具的自定义 XML 配置条目会添加到 WPML 的内置设置中,而不是替换它们。
  • Elementor:翻译编辑器中的容器链接显示其元素的名称。
  • 在高级翻译编辑器中,WPBakery、Divi、Enfold 和 Avada 元素的图像文本显示正确的缩略图。
  • WPBakery:翻译保留页面的自定义 JS 和编辑器设置,并且副本将按钮和链接指向翻译后的页面。
  • WPBakery 和其他简码构建器:指向翻译的行或元素 ID (#id) 的链接遵循翻译后的 ID。
  • WPBakery:翻译页面上的每个网格(包括瀑布流和媒体网格)都使用翻译后的网格模板。
  • 在具有 Divi 和 WPBakery 的站点上,保存带有图表、进度条、按钮或画廊的 WPBakery 页面不再因 PHP 错误而停止。
  • WPBakery 和其他简码构建器:其内容包含区块编辑器注释的页面会应用其翻译。
  • WPBakery:从高级翻译编辑器交付的翻译保留具有自定义 onclick 操作的按钮。
  • WPBakery:Post Grid 和 Media Grid 分页、加载更多、延迟加载和筛选器在翻译页面上有效。
  • WPBakery:保留在前端编辑器中编辑的翻译,而不会被原文的下一次更新覆盖。
  • WPBakery:使用媒体翻译时,部分、行和列的设计选项背景图像显示其翻译版本。
  • WPBakery:单张图像的自定义链接指向翻译后的页面,在 WPBakery 9 上也是如此,并且由较旧的 WPBakery 版本保存的普通链接在翻译中保留为链接。
  • Elementor:具有空动态内容设置的小工具文本再次到达翻译任务。
  • Enfold:页面的副本链接到其自身语言的页面。
  • 页面构建器:当构建器在“=”周围写入空格时(例如 Tatsu Builder),将应用翻译后的简码属性和 ID。
  • Beaver Themer:在每次翻译更新后,翻译后的布局都会保留其翻译后的可见性规则。
  • Beaver Builder:“post in category”或“post is this page”等可见性规则使用翻译后的类别或页面,因此模块不再在翻译中消失。
  • Beaver Builder:行和列背景、标注和视差图像、背景视频和视频模块使用翻译后的媒体。
  • Beaver Builder:更多模块文本到达翻译编辑器,例如订阅表单、定价表、文章轮播、弹出窗口、菜单和框文本。
  • Beaver Builder:访客会立即看到在字符串翻译中更新的翻译,无需手动清除缓存。
  • Beaver Builder:在 iFrame UI 关闭时也会显示丢失编辑的警告,并且在翻译上“保存草稿”计为手动编辑。
  • Beaver Builder:删除并再次添加的模块保留其翻译。
  • Beaver Builder:翻译编辑器显示照片和标注模块的图像,并保留未发布的 Beaver 翻译草稿。
  • Beaver Builder:“从原文复制内容”在添加翻译屏幕上有效,并且复制的链接指向翻译后的页面。
  • 页面构建器:重复的页面会转换写为路径的链接(如 /about/),并且 Beaver Builder 草稿也会获得转换后的链接。
  • Elementor:在页眉和页脚中,菜单名称、搜索按钮文本和自定义属性值被翻译。
  • Elementor:Loop Grid、分类法循环和文章小工具使用翻译后的术语、文章和循环项,并且文章元分隔符被翻译。
  • Elementor:翻译后的弹出窗口保留原文的显示设置,并且翻译的编辑器显示翻译后的弹出窗口。
  • Elementor Pro 表单:服务器消息、第二封电子邮件的发件人名称、Slack 和 Discord 文本以及字段默认值被翻译,并且 reCAPTCHA 以页面的语言显示。
  • Elementor:模板小工具在翻译的编辑器中显示翻译后的模板。
  • Elementor:中继器项目内的视频 URL 和 URL 字段被翻译为链接,并且由小工具设置隐藏的控件(例如 Media Carousel 图像幻灯片的视频链接)不再发送进行翻译。
  • Avada:分配给类别的布局也适用于翻译后的类别及其翻译后的文章和产品。
  • Elementor V4:翻译后的页面显示翻译后组件的样式,即使它是在组件之前被翻译或复制的。
  • Elementor V4 表单:从翻译页面发送的电子邮件再次列出访客的答案,并且损坏的翻译表单电子邮件在更新后得到修复。
  • Elementor V4:通过 URL 给出的图像、组件的图像和视频覆盖以及容器查询链接被翻译。
  • Divi 5:仅针对类别或文章显示的模块也会在翻译后的文章上显示。
  • Divi 5:将词语与动态内容混合的文本在翻译中保留词语和每个动态项目。
  • Divi 5:Visual Builder 在翻译后的页面上显示翻译后的全局模块。
  • Cornerstone:部分、行和列的背景图像及其替代文本被翻译,在页眉、页脚、布局及其副本中也是如此。
  • Cornerstone:在当前语言中没有翻译的页眉、页脚或布局显示原文,而不是其他语言的副本。
  • Cornerstone:在构建器中保存原文会再次更新其完整的翻译。
  • Cornerstone:组件及其参数到达翻译。
  • Cornerstone:标题、评价、图像和表格的每个文本和链接都到达翻译编辑器。
  • Cornerstone:页眉、页脚和布局在自动翻译后保留其链接,其样式刷新,预览在丢失编辑之前发出警告,并且翻译任务显示图像。
  • Cornerstone:仅样式的更改使翻译保持完成状态。
  • SiteOrigin:翻译后的布局保留每个反斜杠,例如在正则表达式、路径和代码中。
  • SiteOrigin:图像和画廊小工具以及行、单元格和小工具背景使用翻译后的图像。
  • SiteOrigin:翻译的后台保存计为手动编辑,因此稍后的更新在覆盖它之前会发出警告。
  • SiteOrigin:“Clone Page”选项卡仅列出与您编辑的页面语言相同的页面,并且小工具列表不再提供 WPML 已删除的小工具。
  • SiteOrigin:副本保留其布局,可以在 SiteOrigin 中编辑,并且其链接指向副本的语言。
  • SiteOrigin:Layout Builder 小工具内的小工具以及移动的小工具保留其自己的文本和翻译。
  • Cornerstone、Beaver Builder 和 SiteOrigin:翻译后的页面以翻译语言存储其内容,因此搜索、摘要、源、REST API 和 SEO 插件读取翻译。
  • Avada:编辑翻译页面不再覆盖其他语言的全局元素。
  • Avada:动态数据的后备文本到达译员。
  • Avada:当英语是次要语言时,英语全局选项和字符串翻译保持同步。
  • Avada:在任何语言中保存固定链接后,作品集 URL 在每种语言中都有效,即使在翻译了作品集别名时也是如此。
  • Avada 和其他简码构建器:重复的页面将按钮和其他简码链接指向副本的语言。
  • Avada:混合区块和 Avada 布局的翻译页面保留原文的布局。
  • Avada:Off Canvas 列表显示语言列,WPML 样式加载在 Layout Sections 上,并且翻译的 Avada Live 预览(包括 Post Cards)显示翻译后的内容。
  • Elementor:对于其固定链接被 Premmerce Permalink Manager 等插件重写的文章,编辑器正常打开,而不是在安全模式下打开。
  • Elementor Pro:从图像或链接打开的灯箱显示翻译后的图片。
  • SiteOrigin:指向 SiteOrigin Widgets Bundle 小工具中的文章以及构建器字段内小工具的链接被翻译。
  • Enfold:在文本和代码区块中键入的 HTML 实体在翻译中保持输入时的状态。
  • Elementor:指向 Elementor 登陆页面的链接指向翻译后的登陆页面。
  • Divi 5:Theme Builder 页眉或页脚的画布显示在翻译页面上,因此打开它的 Interactions 再次起作用。
  • 同时使用 Elementor 主题模板的 WPBakery 页面会将其内容发送进行翻译,而不仅仅是其标题。
  • Divi:在个人资料语言设置为“Site Default”的情况下,Visual Builder 在翻译页面上也以站点语言打开。
  • Divi 5:在 Visual Builder 中保存翻译不再更改、移动或删除原文的 off-canvas 内容和弹出窗口。
  • BeTheme:翻译后的页眉、页脚或弹出模板在其翻译完成后立即以其语言显示。
  • Elementor Pro:使用 [elementor-template] 简码嵌入模板的页面加载翻译后模板的样式。
  • WoodMart:在当前语言中没有翻译的布局显示原始布局。
  • Divi 5 区块:为整个区块系列声明的链接、背景图像和产品 ID 与每个区块自身的设置一起被翻译。
  • Elementor:中继器项目内的 ID(例如 WoodMart 横幅轮播图像)指向翻译后的项目。
  • 在具有多种语言的站点上保存 Elementor 模板不再超时:编辑器在 WPML 注册文本并更新翻译之前获得其响应。
  • 自动翻译的页面构建器页面会获取其翻译后的图像,在 PHP-FPM 服务器上也是如此。
  • Divi 5:本地画布(属于一个页面的 off-canvas 内容或弹出窗口)随其页面一起翻译。
  • Divi 5:档案和博客主页的画布保留其自身语言,并且在翻译上保存构建器不再覆盖原文。
  • Divi:在翻译后添加的 Theme Builder 模板适用于每种语言。WPML支持和 WP-CLI 可修复每种语言保留一个列表的站点。
  • Divi、WPBakery 和 Beaver Builder:访客会看到已发布的模板、布局和保存的模块被翻译。
  • Elementor V4:显示模板的页面加载翻译后模板的样式。
  • Elementor 和高级翻译编辑器:中继器项目文本(例如手风琴和选项卡)不再包装在额外的段落标签中。
  • WoodMart:限于产品或类别的标签打印在其翻译上。

区块和区块编辑器的修复

  • 嵌套的自闭合区块内的链接被转换为翻译的语言。
  • 嵌套在另一个区块中的区块内的链接(例如导航子菜单和 GenerateBlocks 容器)被转换为翻译的语言。
  • 在区块主题上,没有自定义模板或模板部分自身版本的语言会使用默认语言的版本,然后是原文的版本,最后是主题的文件,在站点上和在编辑器中的方式相同。
  • 区块设置,例如 ID、类、颜色、图像文件和 CSS 值(例如在 GenerateBlocks 容器中)不再发送进行翻译。
  • 在字符串翻译中出现的技术区块默认值(例如 px、% 和 _self)减少了。
  • 当 BuddyPress Multilingual 或其他插件清理未使用的字符串包时,没有致命错误。
  • 在经典翻译编辑器中翻译的 YouTube 或其他嵌入显示视频播放器,而不是普通链接。
  • 区块编辑器的语言面板以管理后台的语言显示。
  • 区块编辑器的语言和 CMS Navigation 面板具有适当的间距,并且重复通知读起来像一句话。
  • 语言切换器区块不再在外观小工具中和站点编辑器中的“所有语言”上崩溃。
  • WPML 的样式不再改变区块编辑器、经典文章编辑器和前端审核栏中其他插件元素的外观。
  • 在 WordPress 7.2 上,HTML 属性内的双引号简码保持在可视化编辑器之外。

语言切换器的修复

  • 自定义语言切换器 PHP 模板仅从 WPML 自己的 templates 文件夹、主题或子主题,或插件注册进行扫描的文件夹中加载。
  • 语言切换器区块用其语言标记每个语言名称,并用 hreflang 标记每个链接,用于屏幕阅读器和可访问性检查。
  • 一个页面上的两个语言切换器向屏幕阅读器宣布时具有不同的名称。

类别、标签和其他分类法的修复

  • 当类别或标签的自动翻译失败时,翻译任务会说明原因;目标语言中没有翻译链接的现有术语将用作翻译。
  • 使用区域代码(例如用 en-us 表示 en)交付的术语翻译将应用于站点的语言,而不是被拒绝。
  • 长于 WordPress 允许的翻译术语名称会连同其原因一起报告,并且在名称更改之前不会再次发送。
  • 由文章的翻译任务编写的术语说明保留其 HTML。
  • 文章的翻译任务包含其类别名称以“_”开头的术语字段,例如 SEO 标题。
  • 术语元素不再解析为不相关的术语,这解决了在 Yoast SEO XML 站点地图中提供错误的 hreflang 链接的问题。

菜单的修复

  • 在术语 ID 和术语分类法 ID 不同的站点上,保存菜单不再删除其所有项目。
  • 允许同步菜单的用户可以打开翻译菜单,旧的菜单地址会指向那里,并且翻译管理员在同步菜单时不再遇到访问错误。
  • 在具有 Redis 或其他持久对象缓存的站点上,导航菜单不再重复。
  • 使用 WordPress 导入器导入的菜单保留其页面和类别项目。
  • 同步菜单会保留每个菜单的“自动添加新的顶级页面”设置。

链接、URL 和重定向的修复

  • 翻译后的 WooCommerce 或自定义端点不再破坏以相同单词结尾的较长端点,这解决了在该语言中给出 404 错误的问题。
  • 在安装在子文件夹中的站点上,保存翻译页面(例如在 Divi 中)不再将内部链接重写为损坏的 ?page_id= 地址。
  • 当以默认语言显示未翻译的内容时,指向带有查询参数的当前页面的链接再次保留其地址。
  • 以默认语言显示的未翻译根页面不再重定向到站点中更深层具有相同别名的页面。
  • 将语言作为 URL 参数时,翻译内容中的内部链接保留其 #anchor。
  • 使用根 HTML 文件时,根 URL 处的搜索和 REST API 调用可到达 WordPress。无法加载的根 HTML 文件或未发布的根页面,其工作方式就像没有设置根页面一样。
  • 指向其基础按语言翻译的产品类别的链接在翻译中被转换。
  • 现有翻译中的链接现在指向稍后翻译的页面,对于在安装 WPML 之前创建的内容也是如此。
  • 在限制大型数据库查询的主机上,翻译后的类别档案(包括 WooCommerce 产品类别)不再在循环中重定向到自身。
  • WPML 提供给其他工具用于在 WordPress 编辑器中打开翻译的链接是完整地址,因此它们不再导致找不到页面。
  • 翻译内容中指向其他插件服务的地址的链接(例如 WP File Download 链接)不再被不相关文章的链接替换。
  • 保存翻译不再将指向私有页面的链接更改为指向原始语言的链接。
  • 使用根页面和为默认语言使用目录时,带有查询字符串的源地址(例如 /?feed=rss2)指向站点的源。

语言和设置向导的修复

  • 在每种语言使用不同的域名的已完成站点上,设置向导的语言步骤会再次保存,而不是要求提供英语的域名。
  • 当自动翻译不支持带有区域代码(例如 zh-tw-x)的自定义语言时,设置向导的语言步骤会将其标记为“仅手动翻译”,就像成本步骤所做的那样。
  • 内置列表不再提供的语言(例如阿姆哈拉语)可以作为自定义语言添加。
  • 当删除语言的内容因其成为默认语言而被拒绝时,删除操作不再保持标记为正在运行。
  • 更新到 WPML 5.x 不再将自定义语言区域设置(例如德语(正式))替换为区域区域设置,因此字符串翻译会继续适用于该语言。
  • 保持打开的设置向导选项卡或较旧的设置请求不再能覆盖已完成的设置。
  • 删除最后一种次要语言不再将已设置的站点送回设置向导:WPML 打开设置语言,并且设置菜单项仅在设置完成之前显示。
  • 语言不再能映射到站点的默认语言上,这解决了导致高级翻译编辑器翻译为源语言的问题;具有此类映射的站点在更新时得到修复。
  • 仍具有旧 WPML 版本中过时区域设置的语言(例如加泰罗尼亚语或乌尔都语)会获取一次当前区域设置;您自己选择的区域设置会保留。
  • 交换的映射对(例如 en 到 fr 和 fr 到 en)将在一步中删除。
  • 读取活动语言失败不再替换存储的列表。
  • 已设置的站点不再丢失其设置状态,并且字符串屏幕显示设置通知。
  • 设置保存不再替换它无法读取的存储设置。
  • 意第绪语和达里语从右向左显示。
  • 将以前的默认语言连同其翻译一起删除不再删除当前默认语言的内容。
  • 在宽屏幕上,设置向导的返回和继续按钮保留在表单旁边。

注册和更新的修复

  • 站点密钥不再在管理后台登录之间被清除,因此“A New Site Key Is Required”通知不再反复出现。
  • 多站点:每种语言使用不同的域名的子站点不再在站点密钥检查中发送其自己的地址,这解决了可能导致整个网络取消注册的问题。
  • 每种语言使用不同的域名的站点在后台再次检查时不再丢失其站点密钥。
  • 通过复制另一个子站点而建立的子站点向专业翻译服务商提供其自己的地址。
  • 从 WPML 5.x 更新不再因“Class not found”错误而停止。
  • 翻译管理升级不再在正在进行的核心升级之上运行。
  • 因更新中断而不完整的 WPML 插件会在每次请求时显示通知,而不是致命错误。
  • 在具有非常多翻译优先级条目的站点上,从 WPML 5.2.0 更新可顺利完成,而不会在每次请求时耗尽内存。新的 WP-CLI 命令 wp wpml upgrade remove-translation-priority 会立即运行该清理操作。
  • 被自动检查(例如每日检查)拒绝的站点密钥将被保留并标记,而不是被删除。在WPML支持中刷新许可证会将其删除或恢复订阅。
  • 多站点:没有 WPML 站点密钥的网络子站点会说明该网络使用一个站点密钥。
  • 在您的 WPML 帐户过期后的 30 天内显示的“续订您的帐户”横幅可以关闭,并保持关闭状态。

WooCommerce 站点的修复

  • 通过 WooCommerce 产品 API 或 WP-CLI 更改的“复制”自定义字段会被复制到产品的翻译中。
  • 当产品使用“display as translated”时,产品类别简码在翻译页面上列出默认语言的产品。
  • 为次要语言自定义的购物车或结账页面模板用于该语言的购物车和结账页面。

自定义字段和 Advanced Custom Fields 的修复

  • 没有名称的自定义字段行不再在每次术语同步和文章复制时写入 PHP 弃用通知。
  • 翻译后的自定义字段在保存翻译时保留其反斜杠。
  • 在列表内包含 ID 的自定义字段也会转换列表的第一个项目。
  • 其值仅看起来已序列化的“复制”自定义字段在翻译中不再被清空或截断。
  • “自定义字段变得可翻译”通知将每个字段列出一次,并丢弃设置回“不可翻译”的字段。
  • 从翻译中删除的“复制一次”自定义字段保持删除状态,而不是在下一次保存时恢复。

媒体和图像的修复

  • 在媒体库网格视图中,附件窗口中的“永久删除”再次起作用。
  • 媒体翻译的“使用其他文件”和字符串翻译的语言更改适用于代码带有大写字母的语言(例如 de-AT)。
  • 可以找到其地址在内容中百分号编码的图像(例如带有日语字符的文件名),因此每个翻译都使用其语言的图像。

文章和页面的修复

  • 作为草稿或在回收站中的根页面再次列在页面和回收站中,关于它的通知提供了恢复它的选项,并且未发布的根页面不再破坏主页和链接。
  • “与翻译连接”不再默认勾选“将 <language> 作为这篇文章的原始语言”。
  • 当 WPML 的翻译表丢失其键时,文章所有文章和文章编辑器不再显示致命错误;WPML支持提供修复程序,并有通知告诉您相关信息。
  • “用 <language> 内容覆盖”在 WPML 对话框中请求确认,而不是在浏览器对话框中。
  • 文章编辑器始终在文章自己的语言中工作,即使其链接指定了另一种语言也是如此。
  • 其第一个翻译被取消的页面可以再次与现有翻译连接。
  • 从两个选项卡添加相同的翻译不再删除第一个选项卡的语言;第二个选项卡在刷新的列表中显示并带有警告。
  • 在新站点上,删除翻译的产品或插件或主题添加的另一种类型的原文时,会询问如何处理其翻译,就像处理文章和页面一样。
  • 询问是否也删除翻译的对话框链接到为所有删除操作一次性回答该问题的设置。

与其他插件和主题兼容性的修复

  • Avada:在翻译仪表板不可用的 Blog 帐户上激活 WPML 时,主题选项再次起作用。
  • 向 WPML 请求未被 WPML 翻译的内容的 ID 列表或文本值翻译的主题和插件(例如 WoodMart 产品标签),其值会原样返回。
  • Google XML Sitemaps:将语言作为 URL 参数时,XML 站点地图列出翻译后的文章和页面及其翻译后的别名。
  • BetterDocs:类别区块和“BetterDocs Order”在次要语言页面上列出正确的类别和每个翻译后的文档。
  • WordPress 7.2:不再有来自编号别名或经典翻译编辑器的弃用通知。
  • 使用 suppress_filters 的查询(例如 Content Views 列表)在按类别筛选时显示当前语言的文章。
  • 按类别别名或名称进行的查询筛选器(例如 ACF Relationship 字段)在关闭调整 ID 的次要语言中有效。
  • 在选择了所有语言的情况下通过 REST API 加载文章的管理屏幕(例如 Avada 的管理屏幕),会列出每种语言的文章。

管理屏幕和设置的修复

  • WPML 管理栏图标在翻译所有内容运行但无事可做时显示绿色播放图标,仅在需要您采取操作时才显示红色计数器。
  • 从 WPML 屏幕指向 wpml.org 的链接会打开屏幕描述的文档页面或部分。
  • 更多管理文本(例如语言切换器样式名称以及一些按钮和消息)以您的管理后台语言显示。
  • 设置译员显示正在使用的 XLIFF 版本,旧的“Multilingual WordPress with WPML”页脚来源已删除,并且新站点不再存储未使用的设置。
  • URL 和 SEO 下的页面 URL 选项针对每种管理后台语言显示。
  • 支持清除缓存还会刷新专业翻译服务商列表。
  • 在WPML支持中清除缓存还会清除站点标题和标语翻译以及 WPML CMS Navigation 和 ACF Multilingual 的缓存。
  • WPML 的调试信息和支持屏幕显示真实的 MariaDB 版本,而不是 MySQL 5.5.5。
  • 管理屏幕不再为没有登录 cookie 的请求(例如 WP-CLI)记录“Undefined array key”警告。

数据库和多站点的修复

  • 多站点:具有 WPML 表但尚未完成设置的网络站点不再在每次请求时查询语言表。
  • 多站点:其 WPML 表丢失的网络站点停止在每次请求时查询它们,并通知其管理员。
  • 针对元素类型的故障排除修复现在会删除翻译记录及其状态和翻译任务,不会留下任何损坏的内容。
  • 当数据库拒绝 WPML 表更新时,WPML 会自行修复常见的零日期情况;否则,管理通知会显示错误和“重试”按钮,而不是让翻译任务在后台默默失败。
  • 在较旧的 MariaDB 和 MySQL 版本上创建无法解决的翻译任务表。

其他修复

  • 站点与 wpml.org 的签入正确报告在 WordPress 编辑器中进行翻译的站点。
  • 当 WPML 启用译员功能时,不再出现“WP_User_Query::query was called incorrectly” PHP 通知。
  • 当插件或主题在未指定文章的情况下检查文章功能时,不再出现“Undefined array key 2” PHP 警告。
  • 使用持久对象缓存时,评论和审核列表显示当前语言的评论。
  • 关于自定义 Twig 模板的通知链接到关于 PHP 模板的部分。

更新或下载

此更新适用于所有拥有有效订阅的 WPML 客户 — 它会在发布后 24 小时内出现在 WordPress 管理后台的插件页面上。您也可以在插件安装插件商业下立即检查更新。要手动下载并安装,请转到您的 wpml.org 帐户中的下载(请参阅安装说明),并请记住同时更新所有组件,不要混合使用不同版本。

需要有关此版本的帮助吗?

提出支持问题