Repository navigation
Translate the settings pages: profile, connections, organization, users (DE, IT) - #1332
Merged
Merged
Conversation
15 tasks done
helpcodeai
approved these changes
Oct 29, 2026
helpcodeai
left a comment
Contributor
There was a problem hiding this comment.
Thanks @sapatmohit, reviewed. Only strings, t() calls and message keys change: the same API calls, the same confirm() prompts, and the typed DELETE / organization-name checks still compare against the untranslated value. Key sets match across en/de/it, the ICU plural/select forms are correct, and replacing the startsWith('Error') / includes('success') colouring with an explicit error flag is a real fix. Merging; the next settings PR can open.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Sixth area of #1271, first of three PRs: the settings sidebar and the Profile, Connections, Organization and Users settings pages in German and Italian. No behaviour changes, and
Accept-Language: en-USrenders exactly what it rendered before.Changes
app/settings/layout.tsxandlib/navigation.ts: the settings sidebar (labels, descriptions, the "Organization" section title) and the page title. Each settings item and the titled section now carry anid, like the main nav'sNavItem. The Englishlabel/descriptionstay inlib/navigation.ts, because the command palette still uses them.app/settings/page.tsx(Profile):app/settings/connections/page.tsx: the connected AI clients, their reach, the change/revoke buttons, the server picker and its messages.app/settings/organization/page.tsx: the organization card, the six feature toggles, the "Sign everyone out" card and dialog, the danger zone and delete dialog, and "My Organizations" with the create form.app/settings/users/page.tsx: the header and seat count, the invite form, the bulk skill learning and memory bar, the table (headers, tooltips, status badges, selects, actions), the sign-out dialog, the confirm dialogs, the messages and the footer.msg.startsWith('Error'),message.includes('success')andcreateMessage.includes('created'), which only work in English. They now use a separate error flag.(s)oruser${n !== 1 ? 's' : ''}keep their exact wording; German and Italian use proper plural forms.ton the Connections page becametarget.messages/{en,de,it}.json: new namespacessettingsNav(17 keys),settingsProfile(88),settingsConnections(20),settingsOrg(63) andsettingsUsers(93).Left in English on purpose:
EnterpriseNotice, including the title and body the Users page passes to it, with the other billing and licensing components (as withTrialLimitNotice).ADMIN,EDITORandVIEWER, as on the accept-invite page.DELETE, which you type to confirm, stays as the word the check compares against.MCP_AUTH_MODEand its values,MCP_BEARER_TOKEN,MCP_API_KEY,mcp_….Self-hosted vs Cloud: frontend only, with no backend, database or
ee/change.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, "Workspace", "KI-Client" / "client AI", "Gedächtnis" / "Memoria", "Knowledge Graph". Strings I'm least sure about:
Type
Testing
3 new tests in
tests/e2e/i18n.spec.ts, with mocked server info, users, an invitation, the edition, memory status and AI client connections:de-DE: the settings sidebar, the Profile page and the Users page (seat count, table, badges, footer, invite form) render in German.it-IT: the Organization page (including the sign-out dialog) and the Connections page (including the server picker and its plural connector counts) render in Italian.en-US: all four pages and the sidebar stay exactly as before, including the footer and the rich-text notes.The key-parity test from #1248 covers the new keys. I also checked that every German and Italian message parses and uses the same placeholders and tags as the English one.
packages/frontendnpm run lintmain, none new)packages/frontendnpx tsc --noEmit -p tsconfig.jsonpackages/frontendnpm run buildpackages/frontendnpm run test:e2eThe backend isn't touched, so I didn't rerun its suite.
Checklist
packages/frontend/AGENTS.mdwas rewritten bynext devlocally and is left out, as AGENTS.md asks.Related Issues
Part of #1271 (Settings and admin, first of three PRs). The area is bigger than expected (about 6,700 lines), so I'd split it in three:
/settings/roles,/settings/admin,/settings/license(andactivate),/settings/identity-providers(with recovery codes, role mappings and SCIM);/admin/users,/admin/settings,/admin/roles.After that, only knowledge graph and memory are left.