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

如何为JavaScript Alert添加语言本地化支持?

在插件中实现JavaScript Alert文本翻译的方法

嘿,这个问题我在开发WordPress插件时经常遇到,完全可以实现和PHP中__()函数对应的JS翻译效果,下面给你两种常用的靠谱方案:

方案一:通过wp_localize_script传递翻译数据(推荐)

这是WordPress官方推荐的本地化前端脚本的方式,适合需要多个翻译文本的场景,也能让你的JS文件保持静态缓存友好。

步骤1:在PHP中传递翻译数据

先确保你已经注册/加载了你的JS脚本,然后用wp_localize_script把翻译好的文本注入到前端全局对象中:

// 注册并加载你的插件JS文件
wp_enqueue_script(
    'your-custom-plugin-script',
    plugin_dir_url(__FILE__) . '/assets/js/your-script.js',
    array('jquery'), // 依赖项,按需添加
    '1.0.0',
    true // 放在footer加载,优化性能
);

// 传递翻译文本到前端
wp_localize_script(
    'your-custom-plugin-script',
    'PluginL10n', // 前端全局对象名,自定义即可
    array(
        'alert_message' => __('example text', 'your-plugin-textdomain'),
        // 可以添加更多翻译项,比如其他提示、按钮文本等
        'confirm_text' => __('Are you sure?', 'your-plugin-textdomain')
    )
);

步骤2:在JS中调用翻译文本

现在你可以在JS文件里直接访问这个全局对象,用翻译后的文本弹出Alert:

// 弹出翻译后的提示框
alert(PluginL10n.alert_message);

// 其他场景也能复用
if (confirm(PluginL10n.confirm_text)) {
    // 执行操作
}

方案二:直接在PHP模板中输出翻译后的JS代码

如果只是单个简单的Alert场景,也可以直接在PHP文件里生成JS代码时,用__()函数翻译后输出,记得用esc_js()转义避免语法错误和安全问题:

<script type="text/javascript">
// 直接输出翻译后的文本到Alert中
alert('<?php echo esc_js(__('example text', 'your-plugin-textdomain')); ?>');
</script>

关键注意事项

  • 确保你的插件已经正确注册了文本域(load_plugin_textdomain),否则__()函数无法加载对应的语言文件。
  • 用wp_localize_script的优势在于可以批量管理所有前端翻译文本,而且JS文件不需要动态生成,更利于浏览器缓存。
  • 无论哪种方案,都要对输出到JS的文本做转义(比如esc_js()),防止因为翻译文本中的引号、特殊字符导致JS语法错误,同时避免XSS安全风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:15:18