From fb7cd03ded504a8b0b6f6deb81eb12ca7dd0bbf7 Mon Sep 17 00:00:00 2001 From: Evgenii Date: Mon, 3 Aug 2026 11:59:29 +0700 Subject: [PATCH 1/2] fix(i18n): localize the integration card status pills MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The status pill on every Settings → Integrations card is built from bare string literals inside the JSX call, so it stays English with a language pack active while the description right beside it is translated. #11826 fixed the CLI source-control cards; these are the ones it did not reach. - task trackers (Linear and friends): Connected, Not connected - Jira: Connected, Not connected - token-configured hosts (Bitbucket, Azure DevOps, Gitea): Connected, Configured, Unavailable, Not configured, Optional setup, Auth failed The three token-provider cards carried near-identical ternaries, so their copy moved into `tokenProviderStatusLabel()` — one source for states they share, and it keeps the file under the 400-line gate. Gitea passes `optional: true` because it works read-only without a token, which is why its unconfigured state reads "Optional setup" rather than "Not configured". Same blind spot as before: the coverage audit inspects JSX attributes and object properties, not conditional expressions handed to a prop, so `verify:localization-coverage` stays green while the strings ship untranslated. --- .../settings/jira-integration-card.tsx | 9 +++- .../task-tracker-integration-cards.tsx | 12 ++++- ...token-source-control-integration-cards.tsx | 44 ++++++------------- .../settings/token-source-control-status.ts | 32 ++++++++++++++ ...tegration-card-status-localization.test.ts | 44 +++++++++++++++++++ src/renderer/src/i18n/locales/en.json | 16 +++++-- 6 files changed, 121 insertions(+), 36 deletions(-) create mode 100644 src/renderer/src/components/settings/token-source-control-status.ts create mode 100644 src/renderer/src/i18n/integration-card-status-localization.test.ts diff --git a/src/renderer/src/components/settings/jira-integration-card.tsx b/src/renderer/src/components/settings/jira-integration-card.tsx index e1889c2f073f..e9f510628c62 100644 --- a/src/renderer/src/components/settings/jira-integration-card.tsx +++ b/src/renderer/src/components/settings/jira-integration-card.tsx @@ -99,7 +99,14 @@ export function JiraIntegrationCard(): React.JSX.Element { } checking={checking} statusTone={connected ? 'connected' : 'attention'} - statusLabel={connected ? 'Connected' : 'Not connected'} + statusLabel={ + connected + ? translate('auto.components.settings.jira.integration.card.statusConnected', 'Connected') + : translate( + 'auto.components.settings.jira.integration.card.statusNotConnected', + 'Not connected' + ) + } actions={ !checking ? (