diff --git a/messages/de.json b/messages/de.json index 5cb1af640..6153962cb 100644 --- a/messages/de.json +++ b/messages/de.json @@ -3100,6 +3100,7 @@ "title": "Export", "description": "Lade deine Gesundheitsdaten als PDF, CSV oder vollständiges JSON-Backup herunter.", "otherOptionsHeading": "Weitere Export-Optionen", + "downloadFailed": "Der Export konnte nicht heruntergeladen werden. Bitte versuche es erneut.", "hero": { "eyebrow": "Arzttermin", "valueStatement": "Ein druckbarer PDF-Bericht für den Arzttermin — Vitalwerte, BMI, Blutdruck-Klassifikation, Medikamenten-Compliance und (optional) Stimmungsverlauf, alles auf wenigen Seiten.", diff --git a/messages/en.json b/messages/en.json index 209edc018..32190a699 100644 --- a/messages/en.json +++ b/messages/en.json @@ -3100,6 +3100,7 @@ "title": "Export", "description": "Download your health data as PDF, CSV, or a full JSON backup.", "otherOptionsHeading": "Other export options", + "downloadFailed": "Couldn't download the export. Please try again.", "hero": { "eyebrow": "Doctor visit", "valueStatement": "A printable PDF report for your doctor's appointment — vitals, BMI, blood-pressure classification, medication compliance and (optionally) mood, all on a few pages.", diff --git a/messages/es.json b/messages/es.json index 183598796..95992ac86 100644 --- a/messages/es.json +++ b/messages/es.json @@ -3100,6 +3100,7 @@ "title": "Exportar", "description": "Descarga tus datos de salud como PDF, CSV o una copia de seguridad JSON completa.", "otherOptionsHeading": "Otras opciones de exportación", + "downloadFailed": "No se pudo descargar la exportación. Inténtalo de nuevo.", "hero": { "eyebrow": "Cita médica", "valueStatement": "Un informe PDF imprimible para tu cita médica — constantes, IMC, clasificación de la tensión, cumplimiento de la medicación y (opcionalmente) el estado de ánimo, en pocas páginas.", diff --git a/messages/fr.json b/messages/fr.json index 81dfe948d..bfa7b47a5 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -3100,6 +3100,7 @@ "title": "Exporter", "description": "Téléchargez vos données de santé en PDF, CSV ou sauvegarde JSON complète.", "otherOptionsHeading": "Autres options d'export", + "downloadFailed": "Échec du téléchargement de l'export. Veuillez réessayer.", "hero": { "eyebrow": "Rendez-vous médical", "valueStatement": "Un rapport PDF imprimable pour votre rendez-vous médical — constantes, IMC, classification de tension, observance des traitements et (en option) historique de l'humeur, en quelques pages.", diff --git a/messages/it.json b/messages/it.json index 1a02d1a24..d417705f0 100644 --- a/messages/it.json +++ b/messages/it.json @@ -3100,6 +3100,7 @@ "title": "Esporta", "description": "Scarica i tuoi dati sanitari come PDF, CSV o backup JSON completo.", "otherOptionsHeading": "Altre opzioni di esportazione", + "downloadFailed": "Impossibile scaricare l'esportazione. Riprova.", "hero": { "eyebrow": "Visita medica", "valueStatement": "Un referto PDF stampabile per la visita medica — parametri vitali, BMI, classificazione della pressione, aderenza alla terapia e (facoltativamente) l'andamento dell'umore, in poche pagine.", diff --git a/messages/pl.json b/messages/pl.json index 71c20e198..2a32f7986 100644 --- a/messages/pl.json +++ b/messages/pl.json @@ -3100,6 +3100,7 @@ "title": "Eksportuj", "description": "Pobierz swoje dane zdrowotne jako PDF, CSV lub pełną kopię zapasową JSON.", "otherOptionsHeading": "Inne opcje eksportu", + "downloadFailed": "Nie udało się pobrać eksportu. Spróbuj ponownie.", "hero": { "eyebrow": "Wizyta u lekarza", "valueStatement": "Raport PDF do druku na wizytę u lekarza — parametry życiowe, BMI, klasyfikacja ciśnienia, przestrzeganie leczenia oraz (opcjonalnie) zapis nastroju, na kilku stronach.", diff --git a/src/components/settings/export-section.tsx b/src/components/settings/export-section.tsx index c77ed937c..3939575fd 100644 --- a/src/components/settings/export-section.tsx +++ b/src/components/settings/export-section.tsx @@ -259,8 +259,8 @@ function CsvCard({ const stamp = new Date().toISOString().slice(0, 10); const filename = `${filenamePrefix}-${stamp}.csv`; await downloadFromUrl(`${endpoint}${query}`, filename); - } catch (err) { - setError(err instanceof Error ? err.message : String(err)); + } catch { + setError(t("settings.sections.export.downloadFailed")); } finally { setBusy(false); } @@ -344,8 +344,8 @@ function MedicationsCsvCard() { `/api/export/medications${query}`, `healthlog-medications-${stamp}.csv`, ); - } catch (err) { - setError(err instanceof Error ? err.message : String(err)); + } catch { + setError(t("settings.sections.export.downloadFailed")); } finally { setBusy(false); } @@ -435,8 +435,8 @@ function FullBackupCard() { "/api/export/full-backup", `healthlog-backup-${stamp}.json`, ); - } catch (err) { - setError(err instanceof Error ? err.message : String(err)); + } catch { + setError(t("settings.sections.export.downloadFailed")); } finally { setBusy(false); }