让英文 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 类型)等。
步骤总结¶
- 打开或创建
~/.claude/CLAUDE.md - 添加上文中的语言偏好段落
- 保留代码、命令、术语原文的护栏条款
- 对语言敏感的 skill(如
/caveman)单独处理