From 67eeefd5845e3ae8f4cd4d9f55650d32c877962a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?=
Date: Wed, 29 Jul 2026 15:07:35 +0200
Subject: [PATCH] fix(i18n): translate final security and import states
---
.../import-panel/apple-health-import-card.tsx | 11 +++---
.../settings/integrations/nightscout-card.tsx | 4 +--
.../security-section/passkey-list-section.tsx | 34 ++++++++++---------
3 files changed, 27 insertions(+), 22 deletions(-)
diff --git a/src/components/settings/import-panel/apple-health-import-card.tsx b/src/components/settings/import-panel/apple-health-import-card.tsx
index cbd26db28..83afdf568 100644
--- a/src/components/settings/import-panel/apple-health-import-card.tsx
+++ b/src/components/settings/import-panel/apple-health-import-card.tsx
@@ -276,10 +276,13 @@ export function AppleHealthImportCard() {
data-testid="import-apple-health-ecg-result"
className="text-muted-foreground text-xs"
>
- ECGs: {ecg?.discovered ?? 0} discovered, {ecg?.imported ?? 0}{" "}
- imported, {ecg?.updated ?? 0} updated, {ecg?.skipped ?? 0} skipped,{" "}
- {ecg?.failed ?? 0} failed. ECG failures do not discard supported
- records imported from export.xml.
+ {t("settings.sections.export.import.appleHealth.ecgResult", {
+ discovered: ecg?.discovered ?? 0,
+ imported: ecg?.imported ?? 0,
+ updated: ecg?.updated ?? 0,
+ skipped: ecg?.skipped ?? 0,
+ failed: ecg?.failed ?? 0,
+ })}
)}
{isDone && (status?.result?.cumulativeEstimates?.days ?? 0) > 0 && (
diff --git a/src/components/settings/integrations/nightscout-card.tsx b/src/components/settings/integrations/nightscout-card.tsx
index 3008bed95..a62966071 100644
--- a/src/components/settings/integrations/nightscout-card.tsx
+++ b/src/components/settings/integrations/nightscout-card.tsx
@@ -229,10 +229,10 @@ export function NightscoutCard({
className="border-warning/30 bg-warning/10 space-y-1 rounded-md border px-3 py-2"
>
- Private Nightscout access requires server operator approval.
+ {t("settings.nightscoutPrivateOperatorTitle")}
- Ask your server operator to approve this exact Nightscout origin.
+ {t("settings.nightscoutPrivateOperatorDescription")}
)}
diff --git a/src/components/settings/security-section/passkey-list-section.tsx b/src/components/settings/security-section/passkey-list-section.tsx
index 20232f55d..538bf5f4b 100644
--- a/src/components/settings/security-section/passkey-list-section.tsx
+++ b/src/components/settings/security-section/passkey-list-section.tsx
@@ -77,8 +77,7 @@ export function PasskeyListSection({
const [editingId, setEditingId] = useState(null);
const [editName, setEditName] = useState("");
const [reauthOpen, setReauthOpen] = useState(false);
- const [reauthMethod, setReauthMethod] =
- useState("password");
+ const [reauthMethod, setReauthMethod] = useState("password");
const [reauthSecret, setReauthSecret] = useState("");
const { data: passkeys } = useQuery({
@@ -361,23 +360,25 @@ export function PasskeyListSection({
- Confirm it's you
+
+ {t("settings.passkeyReauth.title")}
+
- Verify an existing sign-in method before adding a new passkey.
+ {t("settings.passkeyReauth.description")}
{(
[
- ["password", "Password"],
- ["totp", "Authenticator code"],
- ["passkey", "Passkey"],
- ["webauthn", "Security key"],
+ ["password", t("settings.passkeyReauth.methods.password")],
+ ["totp", t("settings.passkeyReauth.methods.totp")],
+ ["passkey", t("settings.passkeyReauth.methods.passkey")],
+ ["webauthn", t("settings.passkeyReauth.methods.webauthn")],
] satisfies Array<[ReauthMethod, string]>
).map(([method, label]) => (