Skip to content

Translate the MCP server pages (DE, IT) - #1283

Merged
helpcodeai merged 5 commits into
HelpCode-ai:mainfrom
sapatmohit:feat/i18n-mcp-servers
Oct 27, 2026
Merged

helpcodeai merged 5 commits into
HelpCode-ai:mainfrom
sapatmohit:feat/i18n-mcp-servers

Conversation

@sapatmohit

Copy link
Copy Markdown
Contributor

Summary

Third area of #1271: the MCP server pages (/mcp-server and /mcp-server/[id]) in German and Italian, plus the ConnectionCheck card on the server page. It builds on #1272 and #1274. No behaviour changes, and Accept-Language: en-US renders exactly what it rendered before.

Changes

  • app/mcp-server/page.tsx: the title, the "New MCP Server" button and create form, search and status filter, the empty and no-match states, and each server card (status, "Exposes …", copy button, the connector and API-key counts, and the usage line).
  • app/mcp-server/[id]/page.tsx: everything on the server page.
    • The header actions and status.
    • The connect card: endpoint, Quick Connect and manual configuration.
    • The 11 Quick Connect instructions, using t.rich with <strong>, <code> and <em> so each language can order its own sentences.
    • The share card, assigned connectors, API keys, active tools and server settings.
    • The confirm() dialogs.
  • components/connection-check.tsx: the waiting, connected and "just called" states. This is the first PR that touches it, so it's translated here, as agreed in Translate the rest of the admin UI (DE, IT) #1271.
    • Its exported timeAgo now takes a translator (useTranslations('timeAgo')).
    • The server list used to carry its own copy of the same function, so I dropped that and it reuses this one.
  • messages/{en,de,it}.json: new namespaces timeAgo, connectionCheck, mcpServers and mcpServer, with 161 keys each.

Two small code changes that keep the English output identical:

  • Status line colour: the save and API-key messages were coloured red by checking whether the text started with "Error". That check fails once the text is translated, so the state is now { text, error }, set where the message is created.
  • Tool count: the count next to each connector had a fixed w-[60px]. It's now min-w-[60px] whitespace-nowrap, so the Italian "1 strumento" no longer wraps onto two lines. English renders as before.

Left in English on purpose:

  • Product names (Cursor, Claude Desktop, ChatGPT, …).
  • The JSON and CLI snippets, and env var names (MCP_AUTH_MODE, MCP_INSPECTOR_API_TOKEN).
  • The labels of other apps' own buttons and menus, which users see in English in those apps. In the instructions these are "Add custom connector", "Customize → Connectors", "Create as a plugin", "Settings → Connectors" and "⋮ → Refresh tools list".
  • FirstSuccessOffer, which also appears on this page. It's a Cloud billing card shared with the dashboard, the connectors pages and the trial banner, and its text comes from lib/first-success-offer.ts with its own unit tests. Like the plan picker and banners I mentioned in Translate the audit log and analytics pages (DE, IT) #1274, I'd handle it with the other billing and shared components rather than here.

Self-hosted vs Cloud: frontend only, with no backend, database or ee/ change. The Cloud-only Claude Directory note is translated too.

Translations

German and Italian aren't my native languages, so please review those strings. I kept the tone and terms from the earlier PRs: German with Sie, Italian with tu. Counts use real plurals in German and Italian ("1 Connector", "1 strumento"); English keeps its current text ("1 connectors"). Strings I'm least sure about:

  • "Stellt bereit:" (DE) for "Exposes" on the server card, and "Espone" (IT).
  • Relative times: "vor 2 Tagen" / "2 giorni fa", and the short "vor 5 Min." / "5 min fa".
  • "Quick Connect" stays in English in both, as a feature name. Happy to change it if you'd rather translate it.
  • The "Automatic" skills option: shortened in both languages so it fits the select without being cut off.
German Italian
/mcp-server
/mcp-server/[id]
Quick Connect (ChatGPT)

Type

  • New feature

Testing

3 new tests in tests/e2e/i18n.spec.ts, with a mocked server and connector:

  • de-DE: /mcp-server renders in German, including the usage line with plurals ("Zuletzt genutzt vor 2 Tagen · 1 Aufruf in 30 Tagen"), the status pill, "Stellt bereit" and the connector count.
  • it-IT: /mcp-server/[id] renders in Italian, including the assigned connectors title, the connect card, server settings, the waiting connection check, a rich-text line, and the Claude Desktop Quick Connect modal.
  • en-US: both pages stay exactly as before, including the usage line, "Exposes", the connection check, and "Saved" after "Select all".

The key-parity test from #1248 covers the new keys. The existing mcp-server-assignments and mcp-server-connect-clients specs, which check English text, still pass.

Directory Command Result
packages/frontend npm run lint 0 errors, 49 warnings (same as main, none new)
packages/frontend npx tsc --noEmit -p tsconfig.json pass
packages/frontend npm run build pass
packages/frontend npm run test:e2e 285 passed, incl. the 3 new ones

The backend isn't touched, so I didn't rerun its suite.

  • Added/updated tests
  • Tested manually. I checked both pages in German and Italian in the browser with mocked API data (the screenshots above), not against a live backend.

Checklist

  • My code follows the existing code style
  • I have tested my changes locally
  • I have updated documentation (if applicable). Not needed: CONTRIBUTING's "Translating the UI" section already covers new namespaces.
  • All existing tests pass (frontend; backend unchanged)
  • This PR has a descriptive title

packages/frontend/AGENTS.md and next-env.d.ts were rewritten by next dev locally and are left out, as AGENTS.md asks.

Related Issues

Part of #1271 (MCP servers)

@helpcodeai helpcodeai mentioned this pull request Oct 27, 2026
3 tasks done
@helpcodeai
helpcodeai enabled auto-merge (squash) October 27, 2026 09:01
@helpcodeai
helpcodeai merged commit c8f4113 into HelpCode-ai:main Oct 27, 2026
14 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants