让英文 Claude Skill 输出中文

使用英文 skill 时 Claude 默认沿着英文输出,本文记录原因和最小改动的解决办法。

问题

使用 mattpocock/skills 等英文 skill 时,即使用中文提问,Claude 仍会用英文回复。

原因

Claude Code 触发 skill 时会加载对应的 SKILL.md 作为执行指令。当 SKILL.md 全文为英文时,Claude 会沿着语言惯性继续用英文输出。这是预期行为,不是 bug。

解决方案

三种思路对比:

方案持久性维护成本
翻译 SKILL.md永久高,skill 更新需重新合并
对话开头声明单次会话每次重发
配置 CLAUDE.md永久一次配置

Claude Code 启动时会自动加载 CLAUDE.md 作为系统级上下文,优先级高于 skill 文件内的语言风格,因此第三种方案改动最小。

配置

CLAUDE.md 分两层:

  • 用户级:~/.claude/CLAUDE.md,对所有项目生效
  • 项目级:./CLAUDE.md,仅对当前项目生效,可提交 Git 供团队共享

在选定文件中添加:

## 语言偏好

- 始终用简体中文回复,包括所有 skill 调用过程中的对话、提问、总结、报告。
- 即使 skill 的 SKILL.md 文件是英文写的,回复仍然必须是中文。
- 代码、命令、文件名、变量名、技术术语保留英文原文,不要翻译。
- Git commit message、PR 标题正文按项目惯例(通常是英文)。

护栏条款的作用

后两条用于防止以下情况:

  • 变量名被翻译成中文或拼音
  • git commit 信息出现”修复: 用户登录bug”等中英混排
  • 报错关键字被翻译,导致无法用原文搜索

各 skill 的边界情况

/grill-me/grill-with-docs:追问内容变为中文,但追问决策树的逻辑结构仍为英文,个别问题措辞会带翻译腔,不影响内容深度。

/caveman:该 skill 的目的是用压缩英文降低 token 消耗,与中文输出目标冲突。需单独保留英文,或停用该 skill。

/tdd/diagnose:在上述配置下,测试名与错误信息保留英文,分析过程为中文。

/to-prd/to-issues:默认生成中文 PRD 或 issue。若仓库面向英文社区,调用时需明确指定英文输出以覆盖默认。

配置层级

Claude Code 的指令采用分层覆盖机制:

当前对话内的明确指令      (最高优先级)

用户级 CLAUDE.md

项目级 CLAUDE.md

SKILL.md 自带指令         (最低优先级)

除语言偏好外,可在 CLAUDE.md 中配置的常见维度包括:代码风格、注释密度、解释深度、禁用模式(如禁用 any 类型)等。

步骤总结

  1. 打开或创建 ~/.claude/CLAUDE.md
  2. 添加上文中的语言偏好段落
  3. 保留代码、命令、术语原文的护栏条款
  4. 对语言敏感的 skill(如 /caveman)单独处理