You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

wp_set_script_translations加载错误语言:staging环境locale正确却加载默认语言

WordPress脚本翻译预发布环境加载错误语言问题

问题场景

网站需加载带翻译的脚本,开发环境运行正常,但预发布(staging)环境加载了错误语言。在调用wp_set_script_translations前,检查determine_locale()和get_locale()均返回正确语言(en_GB),Query Monitor也显示两种环境语言配置正确,但staging服务器却加载了WordPress默认语言(de_DE)的翻译文件。

代码示例

add_action('wp_enqueue_scripts', function () {
    wp_enqueue_script('plek-gallery-handler', PLEK_PLUGIN_DIR_URL . 'js/components/gallery-handler.js', ['jquery', 'plek-language', 'wp-i18n'], $plek_handler->version);
    wp_set_script_translations('plek-gallery-handler', 'plekvetica', PLEK_PATH . "/languages");
});

可能的原因

  • 语言文件命名/路径不规范:检查staging环境下PLEK_PATH . "/languages"目录中的翻译文件,脚本翻译文件需遵循{textdomain}-{locale}-{script-handler}.json的命名格式(例如plekvetica-en_GB-plek-gallery-handler.json)。若文件名不符合规范,WordPress会自动 fallback 到默认语言文件。
  • 缓存未清理:预发布环境通常会开启各类缓存(页面缓存、对象缓存、翻译缓存等),旧的翻译缓存可能导致错误加载。需清除服务器端缓存、插件缓存及浏览器缓存后再测试。
  • 文件权限不足:staging环境中en_GB对应的翻译文件权限可能设置错误,导致WordPress无法读取该文件,进而 fallback 到默认的de_DE文件。建议将文件权限设为644,目录权限设为755。
  • 多语言插件配置差异:若使用了WPML、Polylang等多语言插件,staging环境的插件配置可能与开发环境不一致,干扰了脚本翻译的加载逻辑。需检查插件的语言切换规则及脚本翻译相关设置。
  • 环境版本不一致:开发环境与staging环境的WordPress核心版本、wp-i18n组件版本存在差异,可能导致翻译加载逻辑出现偏差。需确保两个环境的核心及相关组件版本完全一致。
  • 服务器环境变量干扰:部分服务器的HTTP_ACCEPT_LANGUAGE等环境变量可能覆盖了WordPress的locale设置,尽管determine_locale()返回正确值,但实际加载翻译时被服务器配置影响。需检查PHP环境变量或服务器(Nginx/Apache)的相关配置。

内容的提问来源于stack exchange,提问作者dans_art

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 13:57:16