Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>language-politNew to Visual Studio Code? Get it now.
language-polit

language-polit

bytello

|
1 install
| (1) | Free
IDE 插件,解决接入后的语料割裂问题
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

@bytello/language-polit

使用前需要安装 @bytello/language-intl, 执行 bytello-language --init 命令初始化项目 执行命令后创建一个 .bytello-language.json 文件,用于配置项目信息 文件内容示例:

{
  "appCode": "my-app", // 语料平台的应用标识
  "env": "dev", // 语料平台的环境
  "language": "zh-CN", // 语料平台的语言
  "customizer": "my-app", // 语料平台的客户标识
  "corpusFunctionName": "t", // 语料函数的名称,默认是 't',支持配置为 'i18n.t', '$t' 等
  "corpusMatchRule": "/t\\('([^']+)'\\)/g" // 语料匹配的规则,默认是 '/t\\('([^']+)'\\)/g',支持配置为其他正则表达式
}

简介

@bytello/language-polit 是一个专为 VSCode 和 Cursor 编辑器设计的插件,用于在 JavaScript/TypeScript 项目中快速搜索和定位国际化语料(i18n corpus)。当项目接入国际化方案后,传统的文本搜索方式难以快速定位语料的引用位置,本插件通过智能识别和搜索功能,帮助开发者高效管理和查找项目中的国际化文本。

功能特性

  • 🔍 文件内搜索:通过输入框搜索指定语料在当前文件中的引用
  • 🌐 全局搜索:浏览并搜索工作区中的所有语料引用
  • 🎯 智能识别:自动识别光标位置的语料 key 作为搜索默认值
  • 📍 快速跳转:当语料有多个引用时,提供选择面板一键跳转
  • ⚡ 快捷键支持:通过快捷键快速触发搜索功能
  • 💾 智能缓存:使用 LRU 缓存提升搜索性能

支持的文件类型

  • JavaScript (.js)
  • JSX (.jsx)
  • TypeScript (.ts)
  • TSX (.tsx)

快捷键

快捷键 功能 说明
Cmd+Ctrl+F 文件内搜索 在当前文件中搜索指定语料 key 的引用位置
Cmd+Ctrl+R 全局搜索 浏览工作区所有语料,并搜索其引用位置

注意:快捷键仅在 JavaScript/TypeScript 相关文件中生效

使用方法

文件内搜索

文件内搜索用于快速定位当前文件中的语料引用。

使用步骤:

  1. 在 JS/TS 文件中
  2. 按下 Cmd+Ctrl+F 快捷键
  3. 在弹出的输入框中输入要搜索的语料 key(例如:user.name)
  4. 按回车确认,插件会在当前文件中搜索该语料的所有引用
  5. 如果找到多个位置,会显示选择面板供你选择并跳转

示例场景:

const name = t('user.name');

// 按 Cmd+Ctrl+F 后,输入框会自动填充 'user.name'
// 确认后会找到文件中所有 t('user.name') 的引用位置

全局搜索

全局搜索用于浏览整个工作区的所有语料,并查找指定语料的引用。

使用步骤:

  1. 在任意 JS/TS 文件中按下 Cmd+Ctrl+R 快捷键
  2. 插件会收集所有语料 key
  3. 在弹出的选择面板中浏览并选择要搜索的语料
  4. 选择后,插件会扫描工作区,显示该语料在工作区中的所有引用位置
  5. 选择位置即可跳转到对应的代码行

适用场景:

  • 不确定具体的语料 key,需要浏览所有可用语料
  • 查找某个语料在项目中的所有使用位置
  • 进行语料的全局维护和重构

命令面板

除了快捷键,你也可以通过命令面板使用插件功能:

  1. 按 Cmd+Shift+P(Mac)或 Ctrl+Shift+P(Windows/Linux)打开命令面板
  2. 输入并选择以下命令:
    • 语料搜索: 文件内搜索
    • 语料搜索: 全局搜索

语料匹配规则

插件会识别以下格式的语料引用:

// 单引号
t('user.name');

// 双引号
t("user.email");

// 模板字符串
t(`user.phone`);

// 作为对象方法调用
this.t('common.button.submit');

// 嵌套在 JSX 中
<div>{t('page.title')}</div>

支持的函数名:

默认情况下,插件会识别以 t 命名的函数调用。如果你的项目使用其他函数名(如 i18n、$t 等),可以通过配置进行扩展(功能开发中)。

项目结构

src/
├── extension.ts                          # 扩展入口文件
├── constants/
│   └── index.ts                          # 常量定义
├── models/
│   └── Position.ts                       # 位置模型
├── services/
│   ├── ConfigManager.ts                  # 配置管理服务
│   ├── LineTipService.ts                 # 行提示服务
│   ├── SearchService.ts                  # 搜索核心服务
│   ├── ServiceManager.ts                 # 服务管理器
│   └── VsCodeManager.ts                  # VSCode API 封装
├── types/
│   ├── index.ts                          # 类型定义
│   └── service.ts                        # 服务类型定义
└── utils/
    ├── extractCorpusKeyFromCurrentFile.ts # 从文件提取语料 key
    ├── LruCache.ts                       # LRU 缓存实现
    ├── searchInFile.ts                   # 文件内搜索工具
    ├── searchInWorkspace.ts              # 工作区搜索工具
    └── transformPosition.ts              # 位置转换工具

核心模块说明

  • extension.ts:插件激活入口,注册命令和快捷键
  • SearchService:核心搜索服务,负责语料的查找和匹配
  • VsCodeManager:封装 VSCode API,提供统一的编辑器操作接口
  • ConfigManager:管理插件配置(未来扩展)
  • LruCache:缓存搜索结果,提升性能

构建命令

# 开发构建(监听模式)
pnpm run watch

# 生产构建
pnpm run build

# 打包为 VSIX
pnpm run package

调试

  1. 在 VSCode 中打开项目
  2. 按 F5 启动调试
  3. 在新窗口中测试插件功能
  4. 查看调试控制台的日志输出

技术栈

  • TypeScript:类型安全的开发体验
  • VSCode Extension API:编辑器扩展能力
  • Vite:快速的构建工具
  • Lodash:实用工具库

常见问题

Q: 插件无法识别我的国际化函数?

A: 当前版本默认识别 t() 函数。如果你的项目使用其他函数名可以通过 .bytello-language.json 的 corpusFunctionName 字段配置,同时支持配置语料匹配的规则,通过 corpusMatchRule 字段配置。

匹配优先级: corpusMatchRule > corpusFunctionName > 默认识别 t() 函数 > 全字符串匹配

Q: 插件想关闭行提示功能?

A: 可以通过 .bytello-language.json 的 feature.lineTip 字段配置,设置为 false 即可关闭行提示功能。

{
  "appCode": "my-app", // 语料平台的应用标识
  "env": "dev",
  "language": "zh-CN",
  "customizer": "my-app",
  "feature": {
    "lineTip": false, // 默认是 true, false 表示关闭行提示功能
    "search": true // 默认是 true, false 表示关闭搜索功能
  }
}

Q: 快捷键冲突?

A: 你可以在 VSCode 的快捷键设置中自定义快捷键:

  1. 打开命令面板 (Cmd+Shift+P)
  2. 输入 Preferences: Open Keyboard Shortcuts
  3. 搜索 language-polit 并修改快捷键

Q: 支持哪些编辑器?

A: 目前支持 VSCode 和 Cursor 编辑器(基于 VSCode 的编辑器均可使用)。

License

ISC

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft