目次
日本語で頼んだのに、Claude が英語で返してくる。しかも一度そうなると、なかなか戻らない——。
気のせいではありません。Claude Code の公式リポジトリには同じ報告が繰り返し上がっていて、研究でも、依頼と返答で言語をまたぐ条件では最も強いモデルでも指定した言語で一貫して返せないことがわかっています。そして大事なのは、原因が1つではないことです。起き方で4つの型に分かれ、効く対策もそれぞれ違います。
特に2026年9月下旬からは、Claude Code の既定のモデルが Opus 5.5 に替わったのを境に、作業の途中に挟む短い一言が英語になるという報告が急に増えました。language 設定を入れていても起きた、という報告もあります。筆者の手元の記録でも、こうした一言が英語になる割合は約11%から約50%に上がっていました(§2)。
この記事では、まず自分がどの型に当たっているかを見分け、次に型ごとの直し方を示します。最後に、2026年9月に報告が出始めた「長いセッションで出力そのものが崩れる」問題を、確認できたことと未確認のことを分けて整理します。
英語は「急に」ではなく、段階を踏んで入ってくる
コードを読みテストを回す作業のなかで、返答の言語が移っていった実例
あいさつや手順の確認をしている間は、返答は完全に日本語
コマンドを走らせ結果を見るころ、check 両方パス のように日本語はひと言だけになる
複数のファイルにまたがってコードを追うころには、返答は完全に英語。Claude 自身は切り替わりに気づいていない。
出典: Claude Code 公式リポジトリの報告 #32181(2026年3月)の記述を整理
1. まず見分ける——英語になる4つの型
「英語になった」という結果は同じでも、いつ・何のあとに切り替わったかで型が分かれます。直前に何をしていたかを思い出してください。
見分け方:コードを読む・コマンドを走らせる作業が続くうちに、日本語が減っていく
効く対策:language 設定。気づいたら一言で戻す。
見分け方:会話が要約された次の返答から、いきなり英語になる
効く対策:language 設定。会話の中で頼んだだけの指示は要約で消える。
見分け方:英語ではなく、指定したのと別の言語(中国語のつもりが日本語など)で返る
効く対策:CLAUDE.md だけに頼らない。効果は未確認の部分が残る。
見分け方:Opus 5.5 で、ツールを動かす合間の短い報告が英語になる。最後のまとめは日本語のことが多い。
効く対策:language 設定だけでは止まらない例がある。ツールのたびに言語を念押しするフック。
型1と型2はほとんどの人に関係し、どちらも同じ1つの設定でかなり防げます。型3はまだ報告例が少なく、中国語・日本語・韓国語のような東アジアの言語どうしで起きた例がある段階で、対策もはっきりしていません。型4は2026年9月下旬から急に増えた新しい型で、9月下旬以降に「急に英語が増えた」と感じたなら、まず型4を疑ってください。最初に型4を見ていきます。
2. 【2026年9月下旬から】型4:作業の途中の一言が英語になる
ここは2026年10月4日時点で、まだ公式の回答が無い進行中の話です。確かめた事実と、利用者の報告と、筆者の手元の実測を分けて書きます。
きっかけは既定のモデルの交代
Claude Code の公式の変更履歴によると、9月22日の 2.1.280 で Opus 5.5 が既定の Opus モデルになりました。その翌日から、公式リポジトリに「英語に戻る」という報告が続けて上がっています。
| 報告 | 言語・環境 | 書かれていること |
|---|---|---|
| #96326(9月23日) | 日本語・CLI(Linux)・Opus 5.5 | CLAUDE.md と language 設定の両方で日本語を指定していても、英語のツール出力やサブエージェントの報告を読んだ直後に英語になる。3回訂正しても、同じターンか次のターンで戻った。 |
| #96601(9月24日) | 繁体字中国語・macOS | Opus 5 から Opus 5.5 に替えたら、英語の返答が 0.4%(2,445件中9件)から 4.2%(143件中6件)に増えた。CI のログや JSON・YAML を読んだ後に多い。 |
| #98633(10月1日) | 日本語・VS Code 拡張(Windows)・Opus 5.5 | CLAUDE.md とメモリに「途中の一言も日本語」と書いても、1つのセッションで8〜10回頼み直した。サブエージェントの報告や、ビルドなど長いツールの連鎖の後に多い。 |
出典: Claude Code 公式リポジトリの各報告(2026年10月4日に確認。いずれも未解決で、Anthropic からの回答は無い)
どれもツールの実行やサブエージェントの報告の直後に起きています。多くは英語の出力やログを読んだ直後ですが、#98633 ではサブエージェントの報告が日本語でも英語になっています。英語を読むことが引き金になる点は§4の型1と同じですが、型1が長い作業のなかで少しずつ進むのに対し、型4は1回のツール実行の直後からいきなり英語になります。そして language 設定を入れていても止まらなかった、という点が違います。
筆者の手元でも、途中の一言の英語が約4倍に増えた
筆者が毎日 Claude Code(デスクトップ版の Code タブ)で日本語で依頼してきた記録を、モデルごとに集計しました。返答を「ツールを動かす前の途中の一言」と「そのターンの最後の返答」に分けると、違いがはっきり出ます。
| モデル(使った期間) | 途中の一言が英語だった割合 | 最後の返答が英語だった割合 |
|---|---|---|
| Opus 5(8月1日〜9月23日) | 11.3%(9,447件中1,068件) | 1.6%(6,181件中99件) |
| Opus 5.5(9月24日〜10月4日) | 49.7%(1,476件中734件) | 2.1%(1,491件中31件) |
出典: 筆者の環境の Claude Code セッション記録(1人・2026年10月4日に集計)。直前の依頼が日本語で、60字以上ある返答だけを数えた。ターンの区切りは、利用者の発言と、裏で動かした作業の完了通知。コードと URL を除いた文字のうち日本語が8%未満なら「英語」とした。期間ごとに作業の中身が違うので、モデルだけの差とは言い切れない。
英語になったのは、ほとんどが途中の一言でした。たとえば「Deploying this batch.」(このまとまりをデプロイします)のような、次に何をするかを告げる短い文です。最後の返答は、全体では Opus 5.5 でも約98%が日本語のままでした。ただし日によって跳ね、10月3日は112件中11件(約10%)の最後の返答が英語でした。そうした日には、作業の報告が丸ごと英語になったり、裏で動かしている作業を待つ間の一言(「Waiting for the remaining 5 agents.」など)が英語になったりしています。途中の一言を両方のモデルで15件以上ずつ数えられた16のプロジェクトのうち、13で英語の割合が上がり、下がったのは1つでした。
途中の一言は、作業を見守っている人がいちばん目にする文です。最後のまとめが日本語でも、作業中の画面が英語で埋まるので「急に英語になった」と感じやすくなります。
効かなかったと報告されている対策
- language 設定と CLAUDE.md。#96326 は両方を入れたうえで起きています。#98633 は CLAUDE.md と自動のメモリの両方に書いていました。
- 会話の中で「日本語で」と訂正する。直後は戻っても、次にツールを使うとまた英語になったという報告が多くあります。
効いたと報告されている対策:ツールのたびに念押しするフック
技術ブログの SmartScope は、ツールを1回実行するたびに「ユーザーへの文は日本語で書く」と差し込むフックを試しています(9月30日、Claude Code 2.1.285・Opus 5.5)。フックが無いときは26回の返答のうち22回が英語、入れたあとは27回すべて日本語で、約3時間・82回の返答でも英語は1回だったとしています。
仕組みは公式のフックの仕様どおりです。ツールの実行後に動く PostToolUse フックが additionalContext を返すと、その文がツールの結果の横に添えられ、Claude は次の返答の前にそれを読みます。英語の出力を読んだ直後に、日本語の指示がいちばん新しい文脈として入るわけです。
公式の書式に沿った最小の例は次のとおりです。~/.claude/settings.json の hooks に足します。ツールが失敗したときにも念押しするため、PostToolUseFailure にも同じものを入れます。
{
"hooks": {
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"command": "echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PostToolUse\",\"additionalContext\":\"ユーザーへの文(途中の報告・質問・最後の報告)は日本語で書く。ツールの出力が英語でも同じ。\"}}'"
}
]
}
],
"PostToolUseFailure": [
{
"hooks": [
{
"type": "command",
"command": "echo '{\"hookSpecificOutput\":{\"hookEventName\":\"PostToolUseFailure\",\"additionalContext\":\"ユーザーへの文(途中の報告・質問・最後の報告)は日本語で書く。ツールの出力が英語でも同じ。\"}}'"
}
]
}
]
}
}
注意点が3つあります。
- 効果の測定は1つの環境のものです。筆者は書式を公式ドキュメントと突き合わせましたが、この例で効果を測ってはいません。
- ツールを使うたびに文が履歴に積もります。1回あたりは短くても、長い作業では文脈を少しずつ使います。
- matcher を省くと、すべてのツールで動きます(公式の仕様)。並列に複数のツールを動かすと、その数だけ差し込まれます。まとめて1回にしたいなら、一連のツールが終わったあとに1回だけ動く PostToolBatch というフックもありますが、こちらで効果を測った報告はまだ見つかっていません。
原因はモデルか、Claude Code か
報告した利用者のあいだでも見方が割れていて、公式の説明はありません。#96601 は「出力スタイルの差し込み方が変わったのか、モデル側の退行か」と問いかけていますが、10月4日時点で回答は付いていません。変更履歴を 2.1.288(10月2日)まで読んでも、言語に関する修正は見当たりませんでした。
3. 研究でもわかっている「言語の取り違え」
AIが指定と違う言語で返してしまう現象は、研究の世界では「言語の取り違え(language confusion)」と呼ばれています。自然言語処理の国際会議 EMNLP 2024 で発表された Marchisio らの論文は、15の言語でこれを測る評価セットを作り、主要なモデルを比べました。
結論は明快で、論文は「最も強いモデルでも、言語をまたぐ条件では正しい言語で一貫して返せない」と書いています。ここで「言語をまたぐ」とは、依頼文は英語で書き、返答は別の言語で求める条件です。
| モデル | 同じ言語で頼んだ場合(平均) | 言語をまたぐ場合(平均) | 言語をまたぐ場合(日本語) |
|---|---|---|---|
| GPT-4 Turbo | 99.3% | 90.3% | 87.7% |
| Llama 3 70B Instruct | 46.0% | 30.3% | 1.4% |
数値は、返答のすべての行が正しい言語だった割合(行単位の合格率)。出典: Marchisio ら「Understanding and Mitigating Language Confusion in LLMs」(EMNLP 2024)の表3。
論文はさらに、英語中心に指示の調整を受けたモデルほど取り違えやすく、複雑な依頼や高い温度設定で悪化することを示しています。取り違えには2種類あり、行ごと別の言語になる場合と、日本語の文の中に英単語が1語だけ紛れ込む場合です。冒頭の図の「check 両方パス」は、ちょうどその中間にあたります。
Claude Code での作業は、この「言語をまたぐ条件」に近くなりがちです。依頼は日本語でも、読むコード、コマンドの出力、エラーメッセージの多くは英語だからです。作業が進むほど、文脈の中で英語の占める割合が増えていきます。
4. 型1:作業が進むほど、じわじわ英語になる
いちばんよくある型です。報告 #32181(2026年3月、Claude Code 2.1.71・Opus)は、この移り方を3段階で記録しています。冒頭の図がそれで、報告者は「コードの多い作業に比例して英語へ流れる」と書き、コンパクトもプランモードも関係なく、普通に作業しているだけで起きたとしています。
もう1つ重要なのは、Claude 自身が切り替わりに気づいていなかったという点です。気づいていないので、自分から日本語に戻ることもありません。
この報告は、しばらく動きが無かったため自動で閉じられました(「not planned」の扱い)。直ったから閉じられたわけではありません。修正の予定も示されていないので、使う側で手を打つ必要があります。
5. 型2:コンパクトの直後に英語へ戻る
会話が長くなると、Claude Code はそれまでのやり取りを要約して文脈を空けます。これがコンパクトです(仕組みは「Claude Code の /compact はいつ実行すべきか」で詳しく扱っています)。
報告 #59299(2026年5月、Claude Code 2.1.141)は、スペイン語で進めていた会話がコンパクトの直後から英語に戻ったと書いています。報告者は「一度も正しく動いたことがない」とし、この報告も動きが無いまま自動で閉じられました。
なぜ起きるのかは、公式ドキュメントの「コンパクトで何が残るか」を読むとわかります。
| どう読み込まれたか | コンパクトのあと |
|---|---|
| システムプロンプトと出力スタイル | そのまま効き続ける |
| プロジェクト直下の CLAUDE.md | ディスクから読み込み直される |
| 会話の中でのやり取り | ほかの会話と一緒に要約される |
出典: Claude Code 公式ドキュメント「What survives compaction」から、言語の指示に関係する行を抜粋
会話の途中で「日本語でお願いします」と頼んだだけなら、それは要約される側に入ります。要約の中に「日本語で話していた」ことが残らなければ、次の返答は英語に戻ることがあります。
逆に、システムプロンプトに入っている指示はコンパクトの影響を受けません。次の§7の設定がコンパクトに強いのは、この仕組みのためです。
6. 型3:英語ではなく、別の言語に化ける
少し変わった型です。報告 #46846(2026年4月、Sonnet 4.6・VS Code 拡張)では、CLAUDE.md に「常に台湾の繁体字中国語で返答し、日本語・韓国語・簡体字は使わない」と書いていたのに、Claude が日本語や韓国語で返してきました。
報告者が書いている特徴は3つです。
- git や gh のように、英語の出力を返すコマンドの直後に起きる
- CLAUDE.md と自動メモリの両方に書いても、セッションをまたいで再発する
- 日本語で謝ったあと「正しい言語で書き直します」と言いながら、書き直しも日本語だった
コードベースには繁体字と英語しか無く、日本語や韓国語の材料はどこにもなかったといいます。英語から離れようとして、指定に近い東アジアの言語へずれたように見えますが、これは報告から読み取れる範囲の見立てで、原因は確認されていません。
ここから言えるのは、CLAUDE.md に書いた指示だけでは守られないことがあるという事実です。CLAUDE.md はコンパクト後も読み込み直されますが、それでも言語が崩れる例がある以上、次の設定と組み合わせるのが無難です。
7. 基本の対策——language 設定
Claude Code には、返答の言語を固定する language という設定があります。公式の変更履歴によると 2.1.0 で追加されました。設定ファイルに1行足すだけです。
{
"language": "japanese"
}
公式の設定リファレンスが説明している仕組みは、次の3点です。
- 書いた値がそのままシステムプロンプトに入り、「常にその言語で返答する」という指示になる。だから§5で見たとおり、コンパクトのあとも効き続けます。
- 言語名に決まった一覧はなく、Claude が読める言語名なら何でも通る。そのかわり値はチェックされないので、綴りを間違えてもエラーにならず、間違えたまま Claude に届きます。
- 同じ値が、音声入力の言語と、自動で付くセッション名の言語にも使われる。音声入力のほうには対応言語の一覧があります。
どのファイルに書くかで、効く範囲が変わります。
| 書く場所 | 効く範囲 |
|---|---|
~/.claude/settings.json | 自分のすべてのプロジェクト |
.claude/settings.json | そのプロジェクト(git で共有すればチーム全員) |
.claude/settings.local.json | そのプロジェクトで、自分だけ |
出典: Claude Code 公式ドキュメント「Settings files and precedence」
ただし、万能ではありません。
- 画面の部品は英語のまま。報告 #77976(2026年7月、2.1.211)によると、この設定で日本語になるのは Claude の返答と、Claude が投げかける質問の文面です。ツール実行を許可するダイアログやボタンは英語のまま残ります。
- 型3への効き目は確認できていません。上の #46846 は CLAUDE.md で指定していた例で、language 設定を使った場合に別の言語へ化けるかどうかの報告は見つかっていません。
- 型4は、この設定を入れていても起きた報告があります。§2 のとおり、ツールのたびに念押しするフックと組み合わせてください。
設定の場所や優先順位で迷ったら、Claude Code の中で /config を開くと現在の設定を確認できます。
8. チャット版の Claude と ChatGPT の場合
ブラウザやアプリで使うチャット版の Claude には、返答の言語を固定する専用の設定はありません。公式ヘルプは、画面の言語を切り替える方法を説明したうえで、「言語設定を変えても、Claude はあなたが使う言語で会話する」と書いています。
ChatGPT も同じような作りです。OpenAI の公式ヘルプが説明している言語設定は、ブラウザやスマホの言語を検出して画面の表示言語を合わせるもので、返答の言語を固定するとは書かれていません。
ただし、どちらにもすべての会話に効く指示欄があります。Claude は設定画面のアカウント全体の指示(公式ヘルプ)、ChatGPT はカスタム指示(公式ヘルプ)です。ここに「常に日本語で答えてください」と書いておけば、毎回書く手間は省けます。とはいえ言語を固定する仕組みではなく指示の1つなので、次の場面では依頼文にも書いておくほうが確実です。
チャット版で英語になりやすいのは、英語の文章を貼り付けて要約や翻訳を頼んだときです。これは§3の「言語をまたぐ条件」そのものなので、依頼文の最後に「日本語で答えてください」と明記するのが確実です。
チャット版の指示欄の場所と文字数の上限、効く書き方はChatGPT・Claude・Geminiのカスタム指示の記事にまとめています。
9. 【2026年9月・未確認】長いセッションで出力そのものが崩れる
ここからは、公式が原因を認めていない、進行中の話です。確度をラベルで分けて書きます。
公式の報告・公式ドキュメントに書かれていること
事実の組み合わせからの推測。因果は確かめていない。
公式の回答が無く、判断できないこと
✅ 9月13日・14日に、似た報告が2件出た
報告 #94016(9月13日)は、デスクトップ版の Code タブで Opus 5 を使い、日本語で100回以上やり取りした長いセッションで起きました。キャッシュされた入力は約88万トークン。返答の途中で会話の形式が崩れ、Claude が架空の「ユーザーの質問」と「自分の返答」を自作し、そのあと設定していた出力スタイルの指示文 約7,400字を画面に出力しました。すべて1つの返答の中で起きており、外部からの攻撃ではありません。
報告 #94218(9月14日、Claude Code 2.1.270・VS Code 拡張)は、Opus 5 で6時間以上続けたセッションです。架空のユーザー発言を作ってそのまま会話を続ける、内部の文字列が本文に出る、実行していないツールの結果をでっち上げる——そうした崩れの1つとして、日本語だけで進めていた会話に英語で返したことが記録されています。
どちらも2026年10月4日時点で公式からの回答はなく、未解決のままです。似た崩れは以前にもあり、ツール呼び出しが文字として出てしまう例は「court/invoke がテキストで出る不具合」で扱っています。
🟡 共通点は「Opus 5・日本語・非常に長いセッション」
2件に共通するのは、Opus 5、日本語、そして文脈が極端に長いことです。気になるのは、9月3日の Claude Code 2.1.260 で、100万トークンの文脈を持つ Opus と Fable の自動コンパクトが「上限の少し手前」まで発動しなくなったことです(変更履歴に明記)。
その結果、セッションが90万トークン近くまで膨らんだ状態で長く続きやすくなりました。報告の88万トークンもその領域です。ただし、この変更が崩れの原因だと確かめた人はいません。時期と文脈量が重なっている、というところまでです。
🔴 原因と、Anthropic が直すかどうか
崩れの原因、2.1.260 の変更との関係、修正の予定は、いずれも公式の回答がなく不明です。
いまできる手当て
- 文脈を100万トークン近くまで引っ張らない。公式ドキュメントのとおり、
/autocompact 500kのようにトークン数を渡すと、自動コンパクトが発動する位置を早められます。区切りのいいところで新しいセッションを始めるのも手です(文脈の中身の見方は「Claude Code のコンテキストは何に食われているのか」を参照)。 - 架空のユーザー発言や、見覚えのない内部の文字列が混ざった返答が出たら、そのセッションは打ち切る。#94218 は、崩れた文脈の上で続けるほど崩れ方がひどくなった経過を記録しています。
- language 設定は入れておく。じわじわ英語になる型1には効きます。ただし、出力の形式そのものが崩れる問題まで防げるかは不明です。
まとめ
| 型 | 見分け方 | 効く対策 |
|---|---|---|
| 型1 じわじわ英語 | コードやコマンドの作業が続くうちに日本語が減る | language 設定と、気づいたら一言で戻すこと |
| 型2 コンパクト直後 | 要約された次の返答から英語になる | language 設定(システムプロンプトに入るので要約で消えない) |
| 型3 別の言語に化ける | 英語ではなく、指定と違う言語で返る | CLAUDE.md だけに頼らない(確実な対策は未確認) |
| 型4 途中の一言(2026年9月下旬から) | Opus 5.5 で、ツールの合間の短い報告が英語になる | ツールのたびに言語を念押しするフック(language 設定だけでは止まらない例がある) |
| 長大セッションの崩れ(未確認) | 架空の発言や内部の文字列が混ざる | 文脈を膨らませすぎないこと、崩れたら打ち切ること |
- AIが指定と違う言語で返すのは、研究でも確かめられた一般的な弱点で、Claude だけの問題ではない。
- ここで取り上げた Claude Code の報告は、直らないまま自動で閉じられたか、未解決のままで、使う側で防ぐ必要がある。
- 基本の対策は
language設定。システムプロンプトに入るのでコンパクト後も残る。 - 2026年9月下旬から増えた型4(Opus 5.5 で途中の一言が英語になる)は、language 設定だけでは止まらない例がある。ツールのたびに念押しするフックで防いだという報告がある。
- チャット版の Claude や ChatGPT には返答言語を固定する専用の設定が無いので、全会話に効く指示欄に書き、英語の文章を貼るときは依頼文にも言語を明記する。
FAQ
Q1. language 設定の値は「japanese」と「日本語」のどちらで書けばいいですか?
公式リファレンスによると、決まった一覧はなく、Claude が読める言語名なら通ります。値はそのままシステムプロンプトに入るためです。ただし値はチェックされず、綴りを間違えてもエラーになりません。音声入力の言語にも同じ値が使われ、そちらには対応言語の一覧があるので、公式の例と同じ "japanese" と書いておくのが無難です。
Q2. 設定したのに、英語の部分が残ります。
3つの可能性があります。1つは画面の部品で、ツールの許可ダイアログやボタンはこの設定の対象外です。2つめは§2の型4で、Opus 5.5 ではツールの合間の一言が設定を入れていても英語になる報告があります。ツールのたびに念押しするフックを試してください。3つめは§9の長いセッションでの崩れで、こちらは設定とは別の問題の可能性があります。文脈が数十万トークンを超えているなら、新しいセッションで試してください。
Q3. CLAUDE.md に「日本語で返答」と書くのと、何が違いますか?
どちらもコンパクト後に効き続けますが、入り方が違います。language 設定はシステムプロンプトに入り、プロジェクト直下の CLAUDE.md はコンパクトのあとディスクから読み込み直されます。§6 のとおり CLAUDE.md の指示が守られなかった報告があるので、言語の指定は設定のほうに置くのが確実です。
Q4. 英語になったのを放っておくと、どうなりますか?
型1なら、放っておくほど英語が強まる傾向があります。#32181 の報告者は、Claude が切り替わりに気づかず自分から戻らなかったと書いています。気づいた時点で一言戻すか、設定で防いでおくのが確実です。