UMI intl Hover
为 UMI formatMessage({ id }) 提供 Hover 和转到定义。文案从当前应用的 src/locales 静态读取,不执行运行时扁平化。
扩展 ID:umiintlhover.umi-intl-hover
效果
悬停在 formatMessage 的 id 上,即可看到各语言文案:

安装
在扩展面板搜索 UMI intl Hover,或:
code --install-extension umiintlhover.umi-intl-hover
cursor --install-extension umiintlhover.umi-intl-hover
Cursor 使用 Open VSX,上架后可能要等几分钟才能搜到。商店尚未同步时,从 GitHub Release 安装 .vsix,然后执行 Developer: Reload Window。
功能
| 能力 |
怎么用 |
| Hover |
鼠标悬停在 id 上,显示各语言文案 |
| 转到定义 |
光标放在 id 上按 F12,跳到 locale 文件中的 key |
| 重新扫描 |
命令面板执行 UMI intl: Rebuild catalog,或点击状态栏 UMI intl |
识别如下写法:
formatMessage({ id: 'abs_common_list' })
intl.formatMessage({ id: 'ccr_hello' })
locale 文件保存后会自动刷新;若没有更新,再执行一次重新扫描。
Hover 默认列出该 key 下扫到的全部语言:优先 zh-CN,没有则 en-US,再没有则第一种。只想看部分语言时,在 settings.json 配置顺序:
{
"umi-intl-hover.locales": ["zh-CN", "ja-JP", "en-US"]
}
空数组或不写该项表示全部。
文案文件约定
扫描:**/src/locales/*/*.{ts,js}(跳过 index.ts / index.js)
| 项目类型 |
示例 |
| 独立项目 |
src/locales/zh-CN/common.ts |
| Monorepo |
apps/<product>/<app>/src/locales/zh-CN/common.ts |
| UMI pack |
src/locales/zh-CN_pack/common.ts |
语言名取自目录;zh-CN_pack 与 zh-CN 相同(en-US_pack 同理)。同一应用的边界是路径里 src/ 的上一级。
文件需为扁平对象:
export default {
abs_common_title: '云盘',
abs_common_list: '云盘列表',
'password.rule.required': '请输入密码',
}
更多