GC

gggodlin/cc-translate-proxy

Developer tools

This page was translated automatically. Technical details may differ from the original. View the original

101 stars Quality 54 Trend 19MIT

Type Chinese, CC sees English. Sidecar i18n proxy for Claude Code.

Overview

Let Claude Code communicate with Anthropic in English, and you translate proxies using traditional Chinese reading and writing sidecars. 1. 。 Anthropic's own multilingual benchmark shows that Sonnet 4.5 has 96.9% MMLU for Chinese (Simplified) versus English; A recent Vibe Coding test paper also pointed out that the problem-solving rate for Chinese prompts is 4.5–9.9 percentage points lower than for English. Similarly, the number of tokens for Chinese semantic messages is even higher (Petrov et al. 2023 measured the number of tokens for cross-language tokens, showing a difference of 15x). Additionally, CC adjusts output according to the 'language of the last sentence,' making it easy to pull the entire conversation into Chinese mode when mixing Chinese and English. 2. 。 This is a known bug. Traditional Chinese users have reproduced cases in #30025 (Chinese suddenly cut into Korean) and #46846 (CLAUDE.md explicitly states Traditional Chinese but still returns to Japanese). Relying solely on prompts / CLAUDE.md reminders can't fix it. This proxy sits between CC and api.anthropic.com: the Traditional Chinese you type is first translated into English and then sent; The model replies English as is while reverting to CC and rendering it in Traditional Chinese on the local web page. (Cheap, stable, and won't manually switch between Japanese and Korean). The upper half is the local Traditional Chinese render of cc-translate-proxy (browser: localhost:9090/), and the lower half is the English version of the conversation seen by cc TUI — same round of dialogue, but different language perspectives. The URL ?nostatusline=1 is a screenshot mode query used locally to hide the bottom statusline. - (Default Gemini Flash) for translation. - : audit log (complete prompt/reply before and after translation, JSONL) in ~/.cc-i18n-proxy/audit/, emit file for render (Traditional Chinese markdown) in ~/.cc-i18n-proxy/emit/. Both are for debugging and rendering, with content equivalent to complete conversation records, and need to be cleaned regularly. - , not suitable for production. Expect to encounter bugs. 2. Set the translation provider chain (edit after copying the example): In providers.toml, default_chain controls the order of attempts; only if the previous one fails will the next one fallback.

Overview (machine translated)

Let Claude Code communicate with Anthropic in English, and you translate proxies using traditional Chinese reading and writing sidecars.

Why do this?

Two things made me feel it’s worth writing about a sidecar:

  1. Claude Code is more stable in English than in Chinese. Anthropic’s own multilingual benchmark shows that Sonnet 4.5 has a 96.9% MMLU for Chinese (Simplified) compared to English; A recent Vibe Coding test paper also pointed out that the problem-solving rate for Chinese prompts is 4.5–9.9 percentage points lower than for English. Similarly, the number of tokens in Chinese semantic prompts is even higher (Petrov et al. 2023 measured the difference in cross-language token count by 15x). Additionally, CC adjusts output according to the “language of the last sentence,” making it easy to pull the entire conversation into Chinese mode when mixing Chinese and English.
  2. Sonnet occasionally switches to Korean / Japanese by itself. This is a known bug; Traditional Chinese users have reproduced cases in #30025 (suddenly switching to Korean in Chinese) and #46846 (CLAUDE.md explicitly states Traditional Chinese but returns to Japanese). Relying solely on prompts / CLAUDE.md reminders doesn’t fix it.

This proxy is between CC and api.anthropic.com: the Traditional Chinese you type is first translated into English before sending; The model replies to English as is while repliing to CC and rendering it into Traditional Chinese on the local webpage. CC’s dialogue is 100% English (cheap, stable, won’t switch between Japanese and Korean by itself), the 100% Traditional Chinese you read here.

Screenshot

The upper half is the local Traditional Chinese render of cc-translate-proxy (browser localhost:9090/ ), and the lower half is the English version of the conversation seen by cc TUI — same round of dialogue, but different language perspectives. The URL ?nostatusline=1 is a screenshot mode query used locally to hide the bottom statusline.

How it works

Important Notes Before Use

  • Your prompt and cc replies will be sent to a third-party LLM (default Gemini Flash) for translation. Do not open sessions containing sensitive content.
  • This server will leave two transcripts of dialogue for file: audit log (complete prompt/reply before and after translation, JSONL) in ~/.cc-i18n-proxy/audit/, and emit file for render (Traditional Chinese markdown) in ~/.cc-i18n-proxy/emit/. Both are for debugging and rendering, and their content is equivalent to a complete conversation record, so they should be cleaned regularly.
  • Personal experiment tool, not suitable for production. Expect to encounter bugs.

Get Started Fast

Requirements: Python 3.12+, uv.

  1. Clone and installation:

  2. Set the translation provider chain (copy the example and edit):

`providers.

This page was translated automatically. Technical details may differ from the original.

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add gggodlin/cc-translate-proxy
New to MCP? Start with the mcpskill.org guide →