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

Chrome/Firefox扩展:如何通过JavaScript API获取快捷键本地化键名?

获取本地化按键名称的可行方案

针对你在Chrome/Firefox扩展中需要获取箭头键、修饰键等本地化名称的需求,目前没有专门的API直接实现,但可以通过以下两种可靠方法解决:

1. 利用浏览器内置的国际化(i18n)字符串资源

Chrome和Firefox的扩展API都提供了i18n.getMessage方法,能直接调用浏览器内置的本地化字符串库,其中包含大量常用按键的本地化名称,完全覆盖修饰键、箭头键这类需求。

Chrome代码示例

// 获取Enter键的本地化名称
const enterKeyName = chrome.i18n.getMessage("key_Enter");
// 获取向上箭头键的本地化名称
const arrowUpName = chrome.i18n.getMessage("key_ArrowUp");
// 获取Ctrl修饰键的本地化名称
const ctrlKeyName = chrome.i18n.getMessage("key_Control");
// 获取Shift修饰键的本地化名称
const shiftKeyName = chrome.i18n.getMessage("key_Shift");

console.log(enterKeyName, arrowUpName, ctrlKeyName, shiftKeyName);

Firefox代码示例

Firefox用法几乎一致,仅API命名空间不同:

const enterKeyName = browser.i18n.getMessage("key_Enter");
const arrowUpName = browser.i18n.getMessage("key_ArrowUp");

常见的内置按键消息名称参考:

  • 修饰键:key_Control、key_Shift、key_Alt、key_Meta
  • 箭头键:key_ArrowUp、key_ArrowDown、key_ArrowLeft、key_ArrowRight
  • 功能键:key_F1到key_F12
  • 常用按键:key_Enter、key_Backspace、key_Tab、key_Escape

2. 自定义本地化字典(适配特殊按键或个性化需求)

如果浏览器内置字符串无法覆盖你的需求(比如一些少见的按键),可以在扩展中自行维护多语言按键名称映射:

实现步骤

  1. 在扩展根目录创建_locales文件夹,每个语言对应一个子目录(如en、zh_CN)。
  2. 在每个语言目录下创建messages.json,定义自定义按键名称:
    // _locales/zh_CN/messages.json
    {
      "key_PrintScreen": {
        "message": "打印屏幕",
        "description": "Print Screen键的本地化名称"
      },
      "key_ScrollLock": {
        "message": "滚动锁定",
        "description": "Scroll Lock键的本地化名称"
      }
    }
    
  3. 通过i18n.getMessage获取自定义本地化名称:
    const printScreenName = chrome.i18n.getMessage("key_PrintScreen");
    

额外注意事项

  • 不同浏览器的内置按键消息可能存在细微差异,建议在目标浏览器中测试常用按键的返回值。
  • WebExtensions的commands API确实仅用于注册和管理扩展快捷键,没有提供获取本地化按键名称的功能,你之前的判断是准确的。
  • 对于极少数没有内置本地化名称的按键,可以先尝试用i18n.getMessage获取,若返回undefined,则使用英文名称作为兜底。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:13:59