很多已经升级到 WordPress 6.7 的用户可能已经发现自己网站的翻译语言包加载不成功,会全部丢失显示为英文界面。
这问题实际上是由于 WordPress 在最新版里为了契合国际化最佳标准改了核心代码导致,如果你也遇到的类似的情况那么可以先尝试以下操作:
1 、回滚程序到 6.6.2 版本
这是最简单的方式,回滚到旧版本后不需要进行任何改动就可以正常显示出翻译内容。
2 、联系作者更新主题插件
如果你使用的是特定的主题插件并且丢失了语言包,那么请联系开发者处理,这需要去修改对应新的翻译加载函数。
当然如果碰到开发者不愿意更新的情况……这种情况还是少见。
3 、使用薇晓朵提供的中文翻译包
薇晓朵站点 (weixiaoduo.com) 在上个月进行 WordPress 区块化转型时也遇到了类似的问题,所以单独制作了最新版的预编译 WordPress 6.7 和 woocommerce 9.4.1 版本中文翻译文件。
替换上去后就可以完整显示对应的中文翻译内容。
下载地址:
你可以获取到的文件包里包含了中文简繁 zh_CN 和 zh_TW 语言包,自行选择安装替换即可,语言包安装目录路径如下:
WordPress Core : /www/wwwroot/你的网站/wp-content/languages
WooCommerce :/www/wwwroot/你的网站/wp-content/languages/plugins
原因解析:I18N:如果过早加载翻译则发出警告。
有些插件和主题在当前用户还未获知之前就过早加载翻译。这种情况要么是明确发生的,要么是通过即时翻译加载发生的。
如果不知道当前用户 (以及他们的语言环境),WordPress 可能会尝试加载错误语言环境的翻译。
此更改添加了_doing_it_wrong
警告此类情况的消息。它还有助于避免意外尝试两次加载翻译 (一次是即时加载,一次是手动加载) 。
鼓励触发此类消息的项目不早于钩子加载翻译 after_setup_theme
。
Make WordPress Core 工单信息如下 #59127
如果你有在使用 WooCommerce 并且已经更新到了 9.4.1 版本,那么操作方式也是一样,请先回滚程序,或者凑合用一段时间等待翻译文件更新。
WordPress 6.7(预计将于 2024 年 11 月 12 日发布) 改变了加载翻译的方式,使其与国际化最佳实践保持一致。这一变化影响了翻译字符串的触发方式和时机,旨在防止由过早加载翻译而引发的潜在问题。
然而,随着插件生态系统进行调整,特别是当您在 WordPress 6.7 上使用即将发布的 WooCommerce 9.4 时,您可能会遇到警告提示。
这些提示可能看起来像这样:
_load_textdomain_just_in_time 的调用方式不正确。<PLUGIN> 域的翻译加载触发得太早。翻译应该在 init 操作或之后加载。请参阅 WordPress 调试文档获取更多信息。 (此消息添加于 6.7.0 版本。) 位于 /srv/htdocs/wp-includes/functions.php 第 6087 行。
WooCommerce 特定情况说明
在 WooCommerce 中,我们已在 9.4 版本中主动做出更改,以应对 WordPress 6.7 的新做法中关于早期翻译加载的问题。虽然这些更新解决了大部分问题,但在某些配置下,特别是当 WooCommerce 与其他插件和扩展一起运行时,用户可能仍会遇到调试提示。
您可以采取的措施来减少影响
对于生产环境的网站,为避免这些提示影响前端功能,我们建议将 WP_DEBUG_DISPLAY
设置为 false
,除非您正在主动排查其他问题。这可以防止提示显示并破坏某些功能。
对于调试或开发环境中日志中充满这些提示的情况,您可以使用以下代码片段临时抑制这些提示:
add_filter( 'doing_it_wrong_trigger_error', '__return_false' );
监控和未来更新
我们正在积极监控支持渠道,如果需要进一步缓解措施,我们将提供更新或维护版本。如果您遇到与翻译加载相关的具体问题,请随时联系我们。
感谢您在我们都适应 WordPress 6.7 这些变化期间的理解和耐心。
如果上面的这些步骤还是不能解决你的问题,可以尝试安装
文派叶子 🍃 WP-China-Yes.com 插件来获取自动翻译语言包更新。
发表回复