[FEATURE] Localize CLI/TUI spinner & thinking indicators to follow \language` setting`

Resolved 💬 2 comments Opened May 22, 2026 by hira2k Closed May 25, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

The CLI/TUI processing spinner labels (e.g. Moonwalking… (43s · thinking some more)) are hardcoded in English and do not follow the user's
configured language. Even when ~/.claude/settings.json has "language": "日本語", the spinner stays English while only the model's
conversational output is localized.

Repro (Claude Code 2.1.146, macOS 15.4 / arm64):

  1. Set "language": "日本語" in ~/.claude/settings.json.
  2. Send any prompt that triggers extended thinking.
  3. Observe the spinner shows Moonwalking… (43s · thinking some more) etc. in English.

Evidence the strings are hardcoded — running strings on the Mach-O binary at ~/.local/share/claude/versions/2.1.146:

  • ✅ Found (English, all 24 spinner words): Baking, Brewing, Computing, Cooking, Crafting, Frolicking, Gallivanting, Hatching,

Herding, Ideating, Marinating, Moonwalking, Mulling, Noodling, Perambulating, Pondering, Puttering, Ruminating, Schlepping,
Spelunking, Synthesizing, Thinking, Whirring, Wrangling

  • ❌ Not found: any Japanese candidate (熟考, 処理中, 考え中, 思考中) or localized thinking some more

Why this matters: Non-English-primary users (Japanese, Chinese, Korean, …) configure "language" expecting full UI localization, but the
most-visible always-on element — the spinner — stays English. For users running Claude Code in client-facing contexts (consulting demos), the
mixed-language UI looks unfinished.

Proposed Solution

  1. Treat spinner verbs and the thinking some more / elapsed-time suffix as localizable strings.
  2. Honor the existing "language" setting in settings.json (no new config needed).
  3. Ship locale packs for the languages already requested in #60914 (zh-Hans, ja, ko, fr, de, es, pt). For Moonwalking-class playful verbs,

accept curator-chosen culturally-equivalent words rather than literal dictionary translation.

  1. Fall back to English when a locale pack is missing — never block on partial coverage.

Scope: This is intentionally narrower than #60914 (UI-wide i18n), and distinct from #60653 (Desktop "Recents" label) and #60882 / #61017
(English spinner-word curation/extension). Filing separately so it can be tracked and shipped independently — happy to close as duplicate of
#60914 if maintainers prefer one umbrella.

Alternative Solutions

  • "language": "日本語" in settings.json — affects only model output, not spinner.
  • Mach-O binary patching — rejected: breaks code signing and is lost on every auto-update (5 releases in last 6 days: 2.1.142 → 2.1.146).
  • PTY wrapper sed-replacement — rejected: ANSI redraw + dynamic counter (43s) make consistent substitution impractical.

Environment:

  • Claude Code 2.1.146
  • macOS 15.4 (Darwin 25.4.0), arm64
  • Terminal: Ghostty
  • Locale: ja_JP.UTF-8

Priority

Medium - Would be very helpful

Feature Category

Interactive mode (TUI)

Use Case Example

  1. They configure "language": "日本語" in ~/.claude/settings.json so model output appears in Japanese for the audience.
  2. Claude starts an extended thinking phase. The TUI displays Moonwalking… (43s · thinking some more) in English on screen, projected to the

client.

  1. The client — non-English speaker — sees a half-translated UI. The Japanese model output looks polished; the always-visible English spinner

undermines that polish.

  1. With this feature, the spinner would read e.g. 熟考中… (43秒 · まだ考え中) and the client experience would be cohesive.

This applies broadly beyond consulting: any non-English-primary user (zh/ja/ko/fr/de/es/pt) running Claude Code in shared screens, screencasts,
tutorials, or social posts faces the same mixed-language artifact.

Additional Context

Related issues:

  • #60914 — Feature Request: i18n / UI localization support (umbrella; this issue is the CLI/TUI spinner sub-case)
  • #60653 — Localize Desktop UI labels to Japanese (Desktop, distinct surface)
  • #60882, #61017 — English spinner-word curation/extension (orthogonal: more verbs vs. translated verbs)

Implementation note: The 24 spinner verbs and thinking some more suffix are bundled English strings in the Mach-O binary today. A locale
pack approach (key → translated string per locale, with English fallback) would address this without changing user-facing config — "language"
already exists.

Cultural-equivalence note for translators: Words like Moonwalking, Schlepping, Galumphing carry tone (playful, slightly absurd) that
literal dictionary translation destroys. Recommend curator-chosen culturally-equivalent words per locale rather than mechanical translation.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗