前言
- 当我们在使用 Claude Code 时,发现命令提示是英文的,这给我们的使用带来了不便,所以我们就需要将命令提示翻译成中文,方便我们的使用
- 这样对于非英文用户来说,就更方便了,每次都需要翻译命令提示,这会增加我们的工作量
思路
- Claude Code 是基于 nodejs 的交互式工具,所以当我们通过 nodejs 安装 Claude Code 时,我们可以下载了 Claude Code 的 cli, 汉化下 cli 里的内容,这样使用的时候就显示中文了。
实现
- 读取文件内容
- 替换文件内容
- 写入文件内容
import{writeFileSync,readFileSync,existsSync,cpSync}from'fs'import{execSync}from'child_process'import{resolve}from'path'constgetCliPath=()=>{constpkgname='@anthropic-ai/claude-code'try{constlog=execSync(`npm list -g${pkgname}--depth=0`)constresult=log.toString().trim().includes(pkgname)if(!result){console.error(`请使用 nodejs 安装${pkgname}`)process.exit(1)}constnpmRoot=execSync('npm root -g').toString().trim()constcliPath=resolve(npmRoot,pkgname,'cli.js')constcliPathBak=resolve(npmRoot,pkgname,'cli.bak.js')!existsSync(cliPathBak)&&cpSync(cliPath,cliPathBak)return{cliPath,cliPathBak}}catch{console.error(`请使用 nodejs 安装${pkgname}`)process.exit(1)}}/** * 汉化 Claude Code 命令 */exportconstuseZH=async()=>{const{cliPath}=getCliPath()constcontent=readFileSync(cliPath).toString()constkeyword=(awaitimport('./keyword.js')).defaultconstnewContent=Object.entries(keyword).reduce((prev,[key,value])=>{constescapedKey=key.replace(/\n/g,'\\\\n').replace(/[.*+?^${}()|[\]\\]/g,'\\$&')constnewValue=value.replace(/\n/g,'\\n')constres=escapedKey[0]==='`'?prev.replace(newRegExp(escapedKey),value):prev.replace(newRegExp(`\"${escapedKey}\"`,'g'),`\"${newValue}\"`).replace(newRegExp(`(\'${escapedKey}\')`,'g'),`\'${newValue}\'`)returnres},content)writeFileSync(cliPath,newContent)}/** * 恢复成英文 Claude Code 命令 */exportconstuseZHRestore=()=>{const{cliPath,cliPathBak}=getCliPath()cpSync(cliPathBak,cliPath)}
效果
![]()
演示
# 全局安装npmi-gmine-auto-cli# 检查是否安装成功auto-v# 汉化 Claude Code 命令auto ai zh# 恢复成英文 Claude Code 命令auto ai zh-restore
总结
- 我们可以通过以上步骤,将 Claude Code 的命令提示翻译成中文,方便我们的使用
- 通过这个思路,这样你就可以自己去翻译那些英文的命令提示,不限于 Claude Code 的命令提示
- 源码参考