fedec65 makes the multilingual build actually multilingual

A translation pass closes the gap between a fork that claims four languages and one that delivers them.

i18ninfrastructure

This fork serves its interface in German, French, Italian and English - but a chunk of on-screen text was still hardcoded English, and a deeper bug meant the app fell back to German no matter which language a user had actually chosen. fedec65's pass closes both holes: roughly eighty new translated strings get wired into the screens that were leaking English, and the app now respects a user's saved language preference instead of defaulting everyone to German.

There's also a quieter repair to how the fork talks to AI models run on local hardware. Model names made up of several parts were being mangled into something the local engine couldn't recognise; that now resolves correctly. The commit history has some back-and-forth churn around naming, but the end state is a genuinely more complete and correct multilingual surface.

So what Anyone running this fork for a non-English-first legal team finally gets the interface in the language they picked, not the one the bug picked for them.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

5 commits from fedec65/bettercallmitch, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
1f2a7f65 fix(i18n): comprehensive translation coverage for EN/DE/FR/IT Federico Cesconi 2026-05-06 ↗ GitHub
commit body
- Add ~80 new translation keys across all 4 language files
- Wire up 40+ components to use useTranslations instead of hardcoded strings
- Fix placeholders, aria-labels, titles, button text, alerts, inline text nodes
- TypeScript compiles cleanly
- Only remaining hardcoded strings are API key format examples
b4c96d34 fix(i18n): second pass - inline text nodes, breadcrumbs, status labels Federico Cesconi 2026-05-06 ↗ GitHub
commit body
- Add 11 more translation keys across all 4 languages
- Fix remaining inline text in AssistantMessage, TRChatPanel, WFColumnViewModal
- Translate breadcrumbs (Workflows, Projects, Assistant)
- Translate status labels (Running, Thinking, Applied Workflow)
- Translate empty states and modal titles
- TypeScript compiles cleanly
c33fac9d fix(i18n): read NEXT_LOCALE cookie directly in getRequestConfig Federico Cesconi 2026-05-06 ↗ GitHub
commit body
- Explicitly read the NEXT_LOCALE cookie in i18n.ts as a fallback
  when requestLocale doesn't detect the locale (common issue with
  localePrefix: 'never' in next-intl v4)
- Use dynamic locale in html lang attribute instead of hardcoded 'de'
- TypeScript compiles cleanly
198ab24c fix(i18n): resolve namespace conflicts in useTranslations Federico Cesconi 2026-05-06 ↗ GitHub
commit body
- Change useTranslations('common') to useTranslations() in 35 components
  that access keys from multiple namespaces
- Strip redundant 'common.' prefix from translation keys
- Fix AssistantWorkflowModal double namespace (assistant.assistant.*)
- TypeScript compiles cleanly, no more MISSING_MESSAGE errors
0d6cd6a0 fix(i18n): restore common. prefix and fix false positives Federico Cesconi 2026-05-07 ↗ GitHub
commit body
- Restore 'common.' namespace prefix for keys under the common namespace
  when using useTranslations() without a namespace argument
- Fix false positives where regex matched non-translation strings:
  document.createElement('a'), import paths, punctuation
- TypeScript compiles cleanly

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-61.md from inside the repo you want the changes in.

⬇ Download capture-thread-61.md