Skip to content

功能说明 ​

功能 1:文件路径翻译 ​

使用场景 ​

在 VSCode 资源管理器中右键新建文件/文件夹,输入包含任意非英文字符的路径,插件自动检测语言并翻译为英文。

操作流程 ​

右键新建文件 → 输入路径 → 回车 → 选择翻译格式 → 回车 → 自动翻译创建

按 Esc 取消格式选择时,原文件/文件夹会原样保留,不做翻译。

尾部数字快捷选格式(跳过弹窗) ​

启用 enableDigitFormatShortcut(默认开启)后,路径每个片段(文件去掉扩展名后,按路径分隔符与点号切分)末尾的孤立数字直接充当该片段的格式编号(与弹窗输入数字同一套映射:1=camelCase、2=PascalCase、3=snake_case、4=CONSTANT_CASE、5=param-case、6=Header-Case),数字不参与该片段的翻译与写入。目录与文件的格式互相独立:

  • 文件段(最后一片段)命中时跳过弹窗;未命中时正常弹窗,所选格式只作用于文件段和"无数字且无继承来源"的片段
  • 无数字的目录段继承最近下游带数字片段的格式;整条路径都没有数字时全部使用弹窗格式(与旧行为一致)
输入:用户/信息/用户1.java
命中:文件段 1 = camelCase(跳过弹窗)
结果:user/information/user.java(Java 模板内容同样替换为 user,而非 用户1/user1)

输入:用户/信息1/用户2.java
命中:信息1 = camelCase(1),用户2 = PascalCase(2),用户 继承下游的信息1
结果:user/information/User.java

剪贴板原文同样剥离数字(用户2.java 的原文为 用户)。数字不生效时该片段按字面参与翻译:连续多位(用户12)、数字不在末尾(用户1信息)、编号越界(文件场景的 7/8/9、任何场景的 0)。文本选中场景同样适用此规则(7=Capital Case、8=no case、9=Sentence case 仅在文本中生效),详见功能 2。

示例 ​

输入:用户名称/测试文件/测试.test.js

格式选择:
- camelCase:      userName/testFile/test.test.js
- PascalCase:     UserName/TestFile/Test.test.js
- snake_case:     user_name/test_file/test.test.js
- CONSTANT_CASE:  USER_NAME/TEST_FILE/TEST.test.js
- param-case:     user-name/test-file/test.test.js
- Header-Case:    User-Name/Test-File/Test.test.js

撤回功能 ​

按 Alt+Shift+Z → 删除翻译后的文件/目录 → 自动清理空目录 → 关闭该文件的编辑器窗口

撤回规则:

  • 撤回操作会直接删除翻译后的文件,而不是恢复到原始非英文路径
  • 仅清理翻译时创建的目录:通过对比翻译前后的路径判断,相同前缀段(如 src/)属于用户原有目录,绝不清理
  • 只关闭被删除文件的编辑器窗口,不会关闭其他已打开的文件
  • 1 分钟内可撤回,1 分钟后自动清空撤回缓存
  • 1 分钟内也可在资源管理器等非文本输入区直接按 Ctrl+Z 撤回;编辑器内的 Ctrl+Z 保持原生文字撤销,不受影响

例如:在 src/ 下输入 你好/世界/美好.test.js,翻译为 src/hello/world/beautiful.test.js 后撤回,会删除 hello/world/ 和 hello/,但 src/ 无论是否为空都会保留。

文件名冲突处理 ​

场景:目标文件已存在(如 test.test.js 已存在)
处理:自动添加数字后缀(如 test_1.test.js)并提示用户

翻译失败降级 ​

场景:翻译 API 调用失败(网络错误、配额用完等)
处理:按优先级降级到下一个服务 → 所有服务失败 → 自动降级为拼音翻译

超时保护

所有翻译服务均有 10 秒超时控制,全局翻译超时也为 10 秒。超时后自动降级到下一个服务,最终降级为拼音,保证文件一定能创建成功。

复制到剪贴板 ​

文件路径翻译完成后,会复用「翻译并复制」(Alt+Shift+C)的剪贴板逻辑,将最后一段目录名/文件名(不含扩展名)的翻译结果写入剪贴板,同样遵循 clipboardFormats 配置。

输入:你好/世界/美好.js
翻译:hello/world/beautiful.js
复制内容:beautiful(最后一段的翻译)
  • 开启 copyToClipboard 且配置了 clipboardFormats:按重排顺序逐条写入剪贴板历史(用户选择的格式排第一)
  • 未开启 copyToClipboard 或 clipboardFormats 为空:兜底仅复制用户选择的单个格式
  • originalValue 复制该段翻译前的原始文本(如 美好)

多格式依赖剪贴板历史(Win+V)

多格式是「逐条写入剪贴板历史」,需开启系统剪贴板历史(Windows 按 Win+V)才能看到全部格式;普通 Ctrl+V 只会粘贴当前剪贴板(即你选择的格式)。文件翻译已将剪贴板写入安排在打开翻译后的文件之前,避免新编辑器打开引起焦点抖动而丢失历史中间项。

配置项 ​

此功能可在设置中开启/关闭,也可按 Alt+Shift+D 快速切换:

json
{
  "variableTranslator.enableFileTranslation": true
}

功能 2:选中文本翻译 ​

使用场景 ​

在任意文件中编写非英文字符,选中后通过快捷键翻译并替换,适合变量、函数、类名的命名。

操作流程 ​

选中文本 → 按下 Alt+Shift+T → 选择翻译格式 → 回车 → 替换为英文

尾部数字快捷选格式

选中文本以孤立数字结尾(如 用户1)时跳过弹窗,直接按编号选定格式(文本场景 1-8 均可用);数字不参与翻译与剪贴板原文(用户1 的原文为 用户),且随选区替换一并消失(结果为 user 而非 user1)。规则详见功能 1。

示例 ​

选中:用户名称
按下:Alt+Shift+T

格式选择:
- camelCase:      userName
- PascalCase:     UserName
- snake_case:     user_name
- CONSTANT_CASE:  USER_NAME
- param-case:     user-name
- Header-Case:    User-Name
- Capital Case:   User Name
- no case:        user name
- Sentence case:  User name

撤回 ​

文本翻译后可使用 VSCode 自带的 Ctrl+Z 撤销替换操作。文件路径翻译的撤回请使用 Alt+Shift+Z,或在资源管理器等非文本输入区按 Ctrl+Z(见功能 1)。


功能 3:翻译并复制到剪贴板 ​

使用场景 ​

选中非英文文本后翻译,将结果按多种命名格式复制到剪贴板历史,原文本不会被替换。适合先在文档/注释中拟好中文名,再到代码中粘贴英文名。

操作流程 ​

选中文本 → 按下 Alt+Shift+C → 选择翻译格式 → 翻译结果复制到剪贴板

示例 ​

选中:用户名称
按下:Alt+Shift+C
选择格式:camelCase

配置的 clipboardFormats:["originalValue", "camelCase", "snake_case"]

复制到剪贴板历史:
- 用户名称(原始值,翻译前的原始文本)
- userName(camelCase)
- user_name(snake_case)

当前剪贴板:userName(用户选择的格式)

配置项 ​

json
{
  "variableTranslator.copyToClipboard": true,
  "variableTranslator.clipboardFormats": [
    "camelCase",
    "originalValue",
    "PascalCase",
    "no case",
    "snake_case",
    "CONSTANT_CASE",
    "param-case",
    "Header-Case",
    "Capital Case",
    "Sentence case"
  ]
}

clipboardFormats 可选值 ​

值说明
camelCase小驼峰
PascalCase大驼峰
snake_case下划线
CONSTANT_CASE常量格式
param-case连字符
Header-Case头部连字符
Capital Case每词首字母大写空格分隔
no case空格分隔
Sentence case仅整句首字母大写空格分隔
originalValue翻译前的原始文本(即你选中的中文文本)

功能 4:翻译并剪切到剪贴板 ​

使用场景 ​

选中非英文文本后翻译,将结果按多种命名格式复制到剪贴板历史,同时删除选中的原文。适合需要替换文本并同时保留翻译结果的场景。

操作流程 ​

选中文本 → 按下 Alt+Shift+X → 选择翻译格式 → 翻译结果复制到剪贴板 → 原文本被删除

示例 ​

选中:用户名称
按下:Alt+Shift+X
选择格式:camelCase

配置的 clipboardFormats:["camelCase", "PascalCase", "snake_case"]

复制到剪贴板历史:
- userName(camelCase)
- UserName(PascalCase)
- user_name(snake_case)

当前剪贴板:userName(用户选择的格式)
原文本「用户名称」已被删除

与 Alt+Shift+C 的区别 ​

  • Alt+Shift+C:翻译复制后,原文本保留不变
  • Alt+Shift+X:翻译复制后,原文本被删除(相当于"剪切翻译复制")

配置项 ​

json
{
  "variableTranslator.copyToClipboard": true,
  "variableTranslator.clipboardFormats": [
    "camelCase",
    "PascalCase",
    "snake_case"
  ]
}

功能 5:切换翻译服务 ​

按 Alt+Shift+S 或右键菜单选择「切换翻译服务」,在以下服务间快速切换:

  • 拼音(零配置,默认)
  • ChatGPT / OpenAI
  • 谷歌翻译
  • Bing / Azure Translator
  • DeepLX
  • 百度翻译
  • 腾讯翻译君

选择未配置的服务时,插件会提示打开设置页面。详见翻译服务。


功能 6:格式化选中文本并复制(去符号) ​

使用场景 ​

选中的内容已经是英文、但夹着 / . + @ - _ 等符号,想直接压成某种命名格式(如 MIME application/json → applicationJson)。含非英文片段时也会先翻译再格式化。

与「翻译选中文本」(Alt+Shift+T)的区别:该命令遇到纯英文会静默跳过,而本命令不要求含非英文字符,只做去符号 + 格式化。

与「翻译并复制」(Alt+Shift+C)的行为一致:结果只写入剪贴板,不改动编辑器原文,区别在于本命令对纯英文带符号内容也生效。

操作流程 ​

选中文本 → 按下 Alt+Shift+N → 选择命名格式 → 格式化结果写入剪贴板(原文保持不变)

尾部数字快捷选格式

与功能 2 同一套约定:选中 application/json1 时跳过弹窗直接按编号 1 取 camelCase,数字不参与格式化(结果为 applicationJson)。

示例 ​

选中:application/json
按下:Alt+Shift+N → 输入 1(camelCase)

剪贴板:applicationJson(原文不变)

任意复杂符号都视作分隔符,逐段拆分后重组:

选中:application/vnd.api+json@2.0

- camelCase:      applicationVndApiJson20
- PascalCase:     ApplicationVndApiJson20
- snake_case:     application_vnd_api_json_2_0
- CONSTANT_CASE:  APPLICATION_VND_API_JSON_2_0
- param-case:     application-vnd-api-json-2-0
- Header-Case:    Application-Vnd-Api-Json-2-0
- Capital Case:   Application Vnd Api Json 2 0
- no case:        application vnd api json 2 0
- Sentence case:  Application vnd api json 2 0

中英混排时只翻译非英文片段,英文与符号原样参与拆分:

选中:用户名称/json
按下:Alt+Shift+N → 输入 3(snake_case)

结果:user_name_json

说明 ​

  • 词内撇号(' ’ ' `)直接删除以保留单词完整性(user's → users),其余非字母数字字符一律作为分隔符
  • 选中内容全是符号(如 ///)时净化后无有效单词,不写入剪贴板
  • 未开启 copyToClipboard 时只复制用户选择的那一种格式;开启后按 clipboardFormats 逐条写入剪贴板历史(Win+V 取用),当前剪贴板为用户选择的格式
  • 原文不会被改动,因此无需撤销

命名格式说明 ​

文件翻译格式 ​

格式示例说明
camelCaseuserName小驼峰,首字母小写
PascalCaseUserName大驼峰,首字母大写
snake_caseuser_name下划线分隔,全小写
CONSTANT_CASEUSER_NAME下划线分隔,全大写
param-caseuser-name连字符分隔,全小写
Header-CaseUser-Name连字符分隔,首字母大写

选中文本翻译额外格式 ​

格式示例说明
Capital CaseUser Name每词首字母大写,空格分隔
no caseuser name全小写,空格分隔
Sentence caseUser name仅整句首字母大写,空格分隔

基于 MIT 许可发布