目次
日本語で頼んだのに、Claude が英語で返してくる。しかも一度そうなると、なかなか戻らない——。
気のせいではありません。Claude Code の公式リポジトリには同じ報告が繰り返し上がっていて、研究でも、依頼と返答で言語をまたぐ条件では最も強いモデルでも指定した言語で一貫して返せないことがわかっています。そして大事なのは、原因が1つではないことです。起き方で3つの型に分かれ、効く対策もそれぞれ違います。
この記事では、まず自分がどの型に当たっているかを見分け、次に型ごとの直し方を示します。最後に、2026年9月に報告が出始めた「長いセッションで出力そのものが崩れる」問題を、確認できたことと未確認のことを分けて整理します。
英語は「急に」ではなく、段階を踏んで入ってくる
コードを読みテストを回す作業のなかで、返答の言語が移っていった実例
あいさつや手順の確認をしている間は、返答は完全に日本語
コマンドを走らせ結果を見るころ、check 両方パス のように日本語はひと言だけになる
複数のファイルにまたがってコードを追うころには、返答は完全に英語。Claude 自身は切り替わりに気づいていない
出典: Claude Code 公式リポジトリの報告 #32181(2026年3月)の記述を整理
1. まず見分ける——英語になる3つの型
「英語になった」という結果は同じでも、いつ・何のあとに切り替わったかで型が分かれます。直前に何をしていたかを思い出してください。
見分け方:コードを読む・コマンドを走らせる作業が続くうちに、日本語が減っていく
効く対策:language 設定。気づいたら一言で戻す
見分け方:会話が要約された次の返答から、いきなり英語になる
効く対策:language 設定。会話の中で頼んだだけの指示は要約で消える
見分け方:英語ではなく、指定したのと別の言語(中国語のつもりが日本語など)で返る
効く対策:CLAUDE.md だけに頼らない。効果は未確認の部分が残る
型1と型2はほとんどの人に関係し、どちらも同じ1つの設定でかなり防げます。型3はまだ報告例が少なく、中国語・日本語・韓国語のような東アジアの言語どうしで起きた例がある段階で、対策もはっきりしていません。順に見ていきます。
2. 研究でもわかっている「言語の取り違え」
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 での作業は、この「言語をまたぐ条件」に近くなりがちです。依頼は日本語でも、読むコード、コマンドの出力、エラーメッセージの多くは英語だからです。作業が進むほど、文脈の中で英語の占める割合が増えていきます。
3. 型1:作業が進むほど、じわじわ英語になる
いちばんよくある型です。報告 #32181(2026年3月、Claude Code 2.1.71・Opus)は、この移り方を3段階で記録しています。冒頭の図がそれで、報告者は「コードの多い作業に比例して英語へ流れる」と書き、コンパクトもプランモードも関係なく、普通に作業しているだけで起きたとしています。
もう1つ重要なのは、Claude 自身が切り替わりに気づいていなかったという点です。気づいていないので、自分から日本語に戻ることもありません。
この報告は「対応予定なし」で閉じられています。つまり修正を待っても直らない種類の問題で、使う側で手を打つ必要があります。
4. 型2:コンパクトの直後に英語へ戻る
会話が長くなると、Claude Code はそれまでのやり取りを要約して文脈を空けます。これがコンパクトです(仕組みは「Claude Code の /compact はいつ実行すべきか」で詳しく扱っています)。
報告 #59299(2026年5月、Claude Code 2.1.141)は、スペイン語で進めていた会話がコンパクトの直後から英語に戻ったと書いています。報告者は「一度も正しく動いたことがない」とし、この報告も「対応予定なし」で閉じられました。
なぜ起きるのかは、公式ドキュメントの「コンパクトで何が残るか」を読むとわかります。
| どう読み込まれたか | コンパクトのあと |
|---|---|
| システムプロンプトと出力スタイル | そのまま効き続ける |
| プロジェクト直下の CLAUDE.md | ディスクから読み込み直される |
| 会話の中でのやり取り | ほかの会話と一緒に要約される |
出典: Claude Code 公式ドキュメント「What survives compaction」から、言語の指示に関係する行を抜粋
会話の途中で「日本語でお願いします」と頼んだだけなら、それは要約される側に入ります。要約の中に「日本語で話していた」ことが残らなければ、次の返答は英語に戻ることがあります。
逆に、システムプロンプトに入っている指示はコンパクトの影響を受けません。次の§6の設定がコンパクトに強いのは、この仕組みのためです。
5. 型3:英語ではなく、別の言語に化ける
少し変わった型です。報告 #46846(2026年4月、Sonnet 4.6・VS Code 拡張)では、CLAUDE.md に「常に台湾の繁体字中国語で返答し、日本語・韓国語・簡体字は使わない」と書いていたのに、Claude が日本語や韓国語で返してきました。
報告者が書いている特徴は3つです。
- git や gh のように、英語の出力を返すコマンドの直後に起きる
- CLAUDE.md と自動メモリの両方に書いても、セッションをまたいで再発する
- 日本語で謝ったあと「正しい言語で書き直します」と言いながら、書き直しも日本語だった
コードベースには繁体字と英語しか無く、日本語や韓国語の材料はどこにもなかったといいます。英語から離れようとして、指定に近い東アジアの言語へずれたように見えますが、これは報告から読み取れる範囲の見立てで、原因は確認されていません。
ここから言えるのは、CLAUDE.md に書いた指示だけでは守られないことがあるという事実です。CLAUDE.md はコンパクト後も読み込み直されますが、それでも言語が崩れる例がある以上、次の設定と組み合わせるのが無難です。
6. いちばん効く対策——language 設定
Claude Code には、返答の言語を固定する language という設定があります。公式の変更履歴によると 2.1.0 で追加されました。設定ファイルに1行足すだけです。
{
"language": "japanese"
}
公式の設定リファレンスが説明している仕組みは、次の3点です。
- 書いた値がそのままシステムプロンプトに入り、「常にその言語で返答する」という指示になる。だから§4で見たとおり、コンパクトのあとも効き続けます
- 言語名に決まった一覧はなく、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 設定を使った場合に別の言語へ化けるかどうかの報告は見つかっていません
設定の場所や優先順位で迷ったら、Claude Code の中で /config を開くと現在の設定を確認できます。
7. チャット版の Claude と ChatGPT の場合
ブラウザやアプリで使うチャット版の Claude には、返答の言語を固定する専用の設定はありません。公式ヘルプは、画面の言語を切り替える方法を説明したうえで、「言語設定を変えても、Claude はあなたが使う言語で会話する」と書いています。
ChatGPT も同じような作りです。OpenAI の公式ヘルプが説明している言語設定は、ブラウザやスマホの言語を検出して画面の表示言語を合わせるもので、返答の言語を固定するとは書かれていません。
ただし、どちらにもすべての会話に効く指示欄があります。Claude は設定画面のアカウント全体の指示(公式ヘルプ)、ChatGPT はカスタム指示(公式ヘルプ)です。ここに「常に日本語で答えてください」と書いておけば、毎回書く手間は省けます。とはいえ言語を固定する仕組みではなく指示の1つなので、次の場面では依頼文にも書いておくほうが確実です。
チャット版で英語になりやすいのは、英語の文章を貼り付けて要約や翻訳を頼んだときです。これは§2の「言語をまたぐ条件」そのものなので、依頼文の最後に「日本語で答えてください」と明記するのが確実です。
チャット版の指示欄の場所と文字数の上限、効く書き方はChatGPT・Claude・Geminiのカスタム指示の記事にまとめています。
8. 【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つとして、日本語だけで進めていた会話に英語で返したことが記録されています。
どちらも本記事の執筆時点で公式からの回答はなく、未解決です。似た崩れは以前にもあり、ツール呼び出しが文字として出てしまう例は「court/invoke がテキストで出る不具合」で扱っています。
🟡 共通点は「Opus 5・日本語・非常に長いセッション」
2件に共通するのは、Opus 5、日本語、そして文脈が極端に長いことです。気になるのは、9月3日の Claude Code 2.1.260 で、100万トークンの文脈を持つ Opus と Fable の自動コンパクトが「上限の少し手前」まで発動しなくなったことです(変更履歴に明記)。
その結果、セッションが90万トークン近くまで膨らんだ状態で長く続きやすくなりました。報告の88万トークンもその領域です。ただし、この変更が崩れの原因だと確かめた人はいません。時期と文脈量が重なっている、というところまでです。
参考までに、筆者の手元の記録も集計しました。9月12日〜14日に Claude Code(Opus 5)へ日本語で依頼し、返ってきた60字以上の返答を、その時点の文脈量で分けたものです。
| 返答した時点の文脈量 | 返答の数 | 英語だった返答 | 割合 |
|---|---|---|---|
| 20万トークン未満 | 20 | 0 | 0% |
| 20万〜50万トークン | 75 | 10 | 13% |
| 50万トークン以上 | 240 | 23 | 10% |
出典: 筆者の環境の Claude Code セッション記録(1人・3日間)。コードを除いた文字のうち日本語が8%未満の返答を「英語」と数えた。20万トークン未満は標本が少なく、傾向の断定には使えない
20万トークンを超えたあたりから英語の返答が1割前後出ていますが、1人の環境の、たった3日分です。長さとの関係を示す材料の1つ、という以上の意味はありません。
🔴 原因と、Anthropic が直すかどうか
崩れの原因、2.1.260 の変更との関係、修正の予定は、いずれも公式の回答がなく不明です。
いまできる手当て
- 文脈を100万トークン近くまで引っ張らない。公式ドキュメントのとおり、
/autocompact 500kのようにトークン数を渡すと、自動コンパクトが発動する位置を早められます。区切りのいいところで新しいセッションを始めるのも手です(文脈の中身の見方は「Claude Code のコンテキストは何に食われているのか」を参照) - 架空のユーザー発言や、見覚えのない内部の文字列が混ざった返答が出たら、そのセッションは打ち切る。#94218 は、崩れた文脈の上で続けるほど崩れ方がひどくなった経過を記録しています
- language 設定は入れておく。じわじわ英語になる型1には効きます。ただし、出力の形式そのものが崩れる問題まで防げるかは不明です
まとめ
| 型 | 見分け方 | 効く対策 |
|---|---|---|
| 型1 じわじわ英語 | コードやコマンドの作業が続くうちに日本語が減る | language 設定。気づいたら一言で戻す |
| 型2 コンパクト直後 | 要約された次の返答から英語になる | language 設定(システムプロンプトに入るので要約で消えない) |
| 型3 別の言語に化ける | 英語ではなく、指定と違う言語で返る | CLAUDE.md だけに頼らない。確実な対策は未確認 |
| 長大セッションの崩れ(未確認) | 架空の発言や内部の文字列が混ざる | 文脈を膨らませすぎない。崩れたら打ち切る |
- AIが指定と違う言語で返すのは、研究でも確かめられた一般的な弱点で、Claude だけの問題ではない
- ここで取り上げた Claude Code の報告のうち2件は「対応予定なし」で閉じられており、使う側で防ぐ必要がある
- いちばん効くのは
language設定。システムプロンプトに入るのでコンパクト後も残る - チャット版の Claude や ChatGPT には返答言語を固定する専用の設定が無いので、全会話に効く指示欄に書き、英語の文章を貼るときは依頼文にも言語を明記する
FAQ
Q1. language 設定の値は「japanese」と「日本語」のどちらで書けばいいですか?
公式リファレンスによると、決まった一覧はなく、Claude が読める言語名なら通ります。値はそのままシステムプロンプトに入るためです。ただし値はチェックされず、綴りを間違えてもエラーになりません。音声入力の言語にも同じ値が使われ、そちらには対応言語の一覧があるので、公式の例と同じ "japanese" と書いておくのが無難です。
Q2. 設定したのに、英語の部分が残ります。
2つの可能性があります。1つは画面の部品で、ツールの許可ダイアログやボタンはこの設定の対象外です。もう1つは§8の長いセッションでの崩れで、こちらは設定とは別の問題の可能性があります。文脈が数十万トークンを超えているなら、新しいセッションで試してください。
Q3. CLAUDE.md に「日本語で返答」と書くのと、何が違いますか?
どちらもコンパクト後に効き続けますが、入り方が違います。language 設定はシステムプロンプトに入り、プロジェクト直下の CLAUDE.md はコンパクトのあとディスクから読み込み直されます。§5 のとおり CLAUDE.md の指示が守られなかった報告があるので、言語の指定は設定のほうに置くのが確実です。
Q4. 英語になったのを放っておくと、どうなりますか?
型1なら、放っておくほど英語が強まる傾向があります。#32181 の報告者は、Claude が切り替わりに気づかず自分から戻らなかったと書いています。気づいた時点で一言戻すか、設定で防いでおくのが確実です。