i18n(insights): translate hero, recommendation, health-score, daily-briefing, coach into es/fr/it/pl

Localises the user-visible insights surface: hero finding banners,
recommendation card (rationale, confidence bands, feedback chips),
health-score panel (label, delta-vs-last-week, provenance sources,
disclaimer), suggested-prompts cluster, daily-briefing empty/loading
states, therapy-timeline GLP-1 strings, vo2-max stats, trend-annotation
confidence labels, correlation-row predefined hypotheses, and the coach
surface (refusal copy, error states, composer, history drawer, sources
panel, metric dictionary). Skips the deep coach settings (verbosity,
exclude, context, evidence-by-default, default-window) for a later pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Marc-André BombeckandClaude Opus 4.7 committed 2026-05-17 17:29:18 +02:00
1 parent 2177898aa2
commit b776daf546
4 files changed
+569 -569

No files matched your search

+144 -144
View File
@@ -899,22 +899,22 @@
"notAvailableForCompliance": "Comparación no disponible para el cumplimiento"
},
"insights": {
"noAnalysisYet": "No analysis yet.",
"emptyTitle": "Not enough data yet",
"emptyDescription": "Insights light up once you've logged a handful of measurements. Start with weight or blood pressure.",
"emptyAddMeasurement": "Add a measurement",
"bmiEmptyTitle": "Set your height to see BMI",
"bmiEmptyDescription": "BMI needs your height. Add it under Settings → Account.",
"bmiEmptyAction": "Open account settings",
"noProviderConfigured": "Assessment unavailable.",
"startAnalysis": "Start analysis",
"refreshAnalysis": "Refresh analysis",
"keyTakeaway": "Key Takeaway",
"findingsTitle": "Findings",
"heroFindingPositive": "Top finding",
"heroFindingNeutral": "Top finding",
"heroFindingAttention": "Worth attention",
"heroFindingWarning": "Top alert",
"noAnalysisYet": "Aún no hay análisis.",
"emptyTitle": "Aún no hay datos suficientes",
"emptyDescription": "Los insights aparecen en cuanto registres algunas mediciones. Empieza por peso o tensión arterial.",
"emptyAddMeasurement": "Registrar medición",
"bmiEmptyTitle": "Añade tu altura para calcular el IMC",
"bmiEmptyDescription": "El IMC necesita tu altura. Guárdala en Ajustes → Cuenta.",
"bmiEmptyAction": "Abrir ajustes de cuenta",
"noProviderConfigured": "Análisis no disponible.",
"startAnalysis": "Iniciar análisis",
"refreshAnalysis": "Actualizar análisis",
"keyTakeaway": "Lo más importante",
"findingsTitle": "Hallazgos",
"heroFindingPositive": "Hallazgo principal",
"heroFindingNeutral": "Hallazgo principal",
"heroFindingAttention": "A tener en cuenta",
"heroFindingWarning": "Alerta principal",
"correlationsTitle": "Correlaciones",
"recommendationsTitle": "Recomendaciones",
"personalRecord": {
@@ -922,56 +922,56 @@
"tooltip": "Récord personal: {value} {unit} el {date}"
},
"recommendation": {
"source": "Source",
"viewSource": "Open guideline in a new tab",
"rationale": "Why this recommendation",
"rationaleWindow": "Window",
"rationaleComparedTo": "Compared to",
"rationaleDeviation": "Deviation",
"rationaleExpand": "Show why",
"rationaleCollapse": "Hide why",
"legacyPayloadCta": "Insights updated — regenerate for new explainability features",
"feedbackHelpful": "Helpful",
"feedbackNotHelpful": "Not helpful",
"feedbackThanks": "Thanks for your feedback",
"feedbackConfirmed": "Feedback recorded",
"feedbackAlreadyRated": "Already rated",
"confidence": "Confidence",
"confidenceAria": "Confidence: {value} of 100",
"confidenceHigh": "High confidence",
"confidenceMedium": "Moderate confidence",
"confidenceLow": "Low confidence — based on limited data",
"confidenceDraft": "Draft"
"source": "Fuente",
"viewSource": "Abrir guía en una pestaña nueva",
"rationale": "Por qué esta recomendación",
"rationaleWindow": "Ventana",
"rationaleComparedTo": "Comparado con",
"rationaleDeviation": "Desviación",
"rationaleExpand": "Mostrar justificación",
"rationaleCollapse": "Ocultar justificación",
"legacyPayloadCta": "Insights actualizados — vuelve a generar para activar las nuevas explicaciones",
"feedbackHelpful": "Útil",
"feedbackNotHelpful": "No útil",
"feedbackThanks": "Gracias por tu opinión",
"feedbackConfirmed": "Opinión guardada",
"feedbackAlreadyRated": "Ya valorado",
"confidence": "Confianza",
"confidenceAria": "Confianza: {value} de 100",
"confidenceHigh": "Confianza alta",
"confidenceMedium": "Confianza media",
"confidenceLow": "Confianza baja — pocos datos",
"confidenceDraft": "Borrador"
},
"dataFoundation": "Data coverage",
"dataGaps": "Data gaps:",
"lastUpdated": "Last updated",
"confidenceHoch": "High",
"confidenceMittel": "Medium",
"confidenceGering": "Low",
"loadError": "Failed to load insights",
"heroGenerated": "Generated {time}",
"heroPersonalBaseline": "Based on your last 90 days",
"heroRegenerate": "Regenerate",
"heroRegenerating": "Regenerating",
"regenerateAnalysis": "Re-run analysis",
"regenerateSuccess": "Analysis refreshed",
"heroFallbackSubtitle": "A daily read of your trends, drawn straight from the numbers you've logged.",
"heroGreetingMorning": "Good morning",
"heroGreetingAfternoon": "Good afternoon",
"heroGreetingEvening": "Good evening",
"heroComingSoonTooltip": "Coming soon",
"heroActionAskCoach": "Ask the coach",
"dataFoundation": "Base de datos",
"dataGaps": "Vacíos de datos:",
"lastUpdated": "Última actualización",
"confidenceHoch": "Alta",
"confidenceMittel": "Media",
"confidenceGering": "Baja",
"loadError": "No se han podido cargar los análisis",
"heroGenerated": "Generado {time}",
"heroPersonalBaseline": "Basado en tus últimos 90 días",
"heroRegenerate": "Regenerar",
"heroRegenerating": "Generando",
"regenerateAnalysis": "Volver a iniciar el análisis",
"regenerateSuccess": "Análisis regenerado",
"heroFallbackSubtitle": "Una mirada diaria a tus tendencias — directamente de los datos que registras.",
"heroGreetingMorning": "Buenos días",
"heroGreetingAfternoon": "Buenas tardes",
"heroGreetingEvening": "Buenas noches",
"heroComingSoonTooltip": "Próximamente",
"heroActionAskCoach": "Preguntar al coach",
"healthScore": {
"label": "Health Score",
"progressAria": "Health Score progress",
"deltaVsLastWeek": "{delta} vs last week",
"deltaUnavailable": "No history yet — check back next week.",
"label": "Puntuación de salud",
"progressAria": "Progreso de la puntuación de salud",
"deltaVsLastWeek": "{delta} respecto a la semana anterior",
"deltaUnavailable": "Aún no hay historial — vuelve la semana que viene.",
"componentBp": "PA",
"componentWeight": "Peso",
"componentMood": "Estado de ánimo",
"componentCompliance": "Meds",
"disclaimer": "Indicative — not a clinical assessment.",
"componentCompliance": "Cumplimiento",
"disclaimer": "Orientación — no es valoración médica.",
"deltaExplainer": {
"trigger": "¿Qué significa este cambio?",
"title": "Cómo se calcula el cambio",
@@ -997,93 +997,93 @@
}
},
"suggestedPrompts": {
"label": "Try asking",
"whyMonday": "Why was BP higher on Monday?",
"weightVsPulse": "How did weight loss affect my pulse?",
"weekVsMonth": "Compare this week to last month",
"tellMyDoctor": "What should I tell my doctor?",
"medicationWorking": "Is my medication working?"
"label": "Pregúntame",
"whyMonday": "¿Por qué fue más alta mi tensión el lunes?",
"weightVsPulse": "¿Cómo ha afectado la pérdida de peso a mi pulso?",
"weekVsMonth": "Compara esta semana con el mes pasado",
"tellMyDoctor": "¿Qué debería contarle a mi médico?",
"medicationWorking": "¿Está funcionando mi medicamento?"
},
"dailyBriefing": {
"title": "Daily Briefing",
"keyFindingsTitle": "Key findings",
"emptyTitle": "No briefing yet",
"emptyDescription": "Generate today's briefing to get a narrative read of your trends.",
"emptyAction": "Generate briefing",
"loadingLabel": "Synthesising today's briefing"
"title": "Resumen del día",
"keyFindingsTitle": "Hallazgos clave",
"emptyTitle": "Aún no hay resumen",
"emptyDescription": "Genera el resumen de hoy para tener una vista rápida de tus tendencias.",
"emptyAction": "Generar resumen",
"loadingLabel": "Preparando el resumen"
},
"therapyTimeline": {
"title": "GLP-1 therapy timeline",
"description": "Chronological log of dose changes, injections, inventory events, and side-effect days.",
"empty": "No GLP-1 therapy events logged in the last 90 days.",
"doseTo": "dose set to",
"pens": "pens",
"sideEffects": "Side effects"
"title": "Historial de terapia GLP-1",
"description": "Lista cronológica: cambios de dosis, inyecciones, existencias y días con efectos secundarios.",
"empty": "Sin eventos GLP-1 en los últimos 90 días.",
"doseTo": "Dosis a",
"pens": "Plumas",
"sideEffects": "Efectos secundarios"
},
"trendsRow": {
"title": "Tendencias",
"subtitle": "Last 30 days at a glance"
"subtitle": "Los últimos 30 días de un vistazo"
},
"vo2Max": {
"statLatest": "Latest",
"statMin": "Min",
"statMax": "Max",
"empty": "No VO₂ max data yet — sync Apple Health to populate this view."
"statLatest": "Actual",
"statMin": "Mín",
"statMax": "Máx",
"empty": "Aún no hay datos de VO₂ máx — sincroniza Apple Health para llenar esta vista."
},
"trendAnnotation": {
"emptyBp": "Awaiting more data to annotate this trend.",
"emptyWeight": "Awaiting more data to annotate this trend.",
"emptyMood": "Awaiting more data to annotate this trend.",
"confidenceHigh": "High confidence",
"confidenceModerate": "Moderate confidence",
"confidenceLow": "Low confidence",
"pendingLabel": "Generating trend commentary"
"emptyBp": "Necesitamos más datos para comentar esta tendencia.",
"emptyWeight": "Necesitamos más datos para comentar esta tendencia.",
"emptyMood": "Necesitamos más datos para comentar esta tendencia.",
"confidenceHigh": "Confianza alta",
"confidenceModerate": "Confianza media",
"confidenceLow": "Confianza baja",
"pendingLabel": "Generando comentario de tendencia"
},
"correlationRow": {
"title": "Relationships",
"subtitle": "Pre-defined hypotheses, gated on n ≥ 14 and p < 0.05",
"disclaimer": "Relationships are observational, not causal — talk to your doctor if BP runs high.",
"experimentCta": "Try a 7-day experiment",
"experimentTooltip": "Coming soon",
"emptyTitle": "Need more data to see this relationship",
"sourceChip": "based on {n} paired readings · {window}",
"title": "Correlaciones",
"subtitle": "Hipótesis predefinidas, con umbral n ≥ 14 y p < 0,05",
"disclaimer": "Las correlaciones son observacionales, no causales — habla con tu médico si tu tensión es alta.",
"experimentCta": "Iniciar experimento de 7 días",
"experimentTooltip": "Próximamente",
"emptyTitle": "Necesitamos más datos para mostrar esta correlación",
"sourceChip": "basado en {n} mediciones pareadas · {window}",
"sourceWindowLast30": "Últimos 30 días",
"confidenceHigh": "High confidence",
"confidenceModerate": "Moderate confidence",
"confidenceLow": "Low confidence",
"confidenceHigh": "Confianza alta",
"confidenceModerate": "Confianza media",
"confidenceLow": "Confianza baja",
"card": {
"bpComplianceTitle": "BP × medication compliance",
"bpComplianceSubtitle": "Daily systolic against compliance %",
"moodPulseTitle": "Mood × resting pulse",
"moodPulseSubtitle": "Same-day mood and resting pulse",
"weightWeekdayTitle": "Weight × weekday",
"weightWeekdaySubtitle": "Weight grouped by day of week"
"bpComplianceTitle": "TA × cumplimiento medicación",
"bpComplianceSubtitle": "Sistólica diaria frente al % de cumplimiento",
"moodPulseTitle": "Ánimo × pulso en reposo",
"moodPulseSubtitle": "Estado de ánimo y pulso en reposo el mismo día",
"weightWeekdayTitle": "Peso × día de la semana",
"weightWeekdaySubtitle": "Peso agrupado por día de la semana"
}
},
"coach": {
"refusalOutOfScope": "I can only help with the health metrics in your log — measurements, medications, mood, trends. I cannot answer questions outside that scope.",
"refusalInjection": "I noticed wording that tries to override my instructions. I am the HealthLog Coach and only summarise your own health data — please rephrase your question in those terms.",
"errorBudget": "You've reached today's Coach usage limit. The budget refreshes at midnight UTC.",
"errorProvider": "The Coach could not reach an Insights provider just now. Please try again in a moment.",
"tagline": "Personal health coach, grounded in your data.",
"newChat": "New chat",
"send": "Send",
"thinking": "Thinking…",
"composerPlaceholder": "Ask anything about your data…",
"composerHint": "Press Enter to send, Shift+Enter for a new line.",
"composerDisclaimer": "Coach replies are generated. Clinical decisions belong with your doctor.",
"voiceComingSoon": "Voice input arrives with the iOS app in v1.5.",
"threadEmpty": "Ask anything about your trends, medications, or readings to start a conversation.",
"historyTitle": "Conversations",
"historySearchPlaceholder": "Search conversations…",
"historyEmpty": "Your conversations will appear here. Ask anything to start.",
"historyDeleteAria": "Delete conversation",
"historyDeleteConfirm": "Delete this conversation? This cannot be undone.",
"sourcesTitle": "What I can see",
"sourcesFresh": "Fresh",
"sourcesStale": "Stale",
"sourcesFooter": "The Coach reads only the data you've connected.",
"evidenceLabel": "What I'm looking at",
"refusalOutOfScope": "Solo puedo ayudarte con los datos de salud de tu registro — mediciones, medicamentos, estado de ánimo, tendencias. Preguntas fuera de ese ámbito no las respondo.",
"refusalInjection": "Tu mensaje contiene instrucciones que pretenden sobrescribir mis indicaciones. Soy el coach de HealthLog y solo resumo tus propios datos de salud — reformula tu pregunta dentro de ese marco.",
"errorBudget": "Has alcanzado el límite diario del coach. El cupo se reinicia a medianoche (UTC).",
"errorProvider": "El coach no ha podido contactar con un proveedor de análisis ahora mismo. Inténtalo en un momento.",
"tagline": "Coach personal de salud, apoyado en tus datos.",
"newChat": "Nueva conversación",
"send": "Enviar",
"thinking": "Pensando…",
"composerPlaceholder": "Pregúntame sobre tus datos…",
"composerHint": "Intro para enviar, Mayús+Intro para una nueva línea.",
"composerDisclaimer": "Las respuestas son generadas. Las decisiones clínicas las toma tu médico.",
"voiceComingSoon": "La entrada por voz llega con la app de iOS en la v1.5.",
"threadEmpty": "Pregúntame algo sobre tus tendencias, medicamentos o mediciones para empezar.",
"historyTitle": "Conversaciones",
"historySearchPlaceholder": "Buscar en las conversaciones…",
"historyEmpty": "Tus conversaciones aparecen aquí. Lanza una pregunta para empezar.",
"historyDeleteAria": "Eliminar conversación",
"historyDeleteConfirm": "¿Eliminar esta conversación? No se puede deshacer.",
"sourcesTitle": "A qué accedo",
"sourcesFresh": "Actuales",
"sourcesStale": "Desactualizados",
"sourcesFooter": "El coach solo lee los datos que has conectado.",
"evidenceLabel": "¿En qué se basa esto?",
"metric": {
"bp": "Presión arterial",
"weight": "Peso",
@@ -1091,17 +1091,17 @@
"mood": "Estado de ánimo",
"compliance": "Cumplimiento",
"general": "General",
"hrv": "HRV",
"hrv": "VFC",
"sleep": "Sueño",
"resting_hr": "Resting HR",
"resting_hr": "Pulso en reposo",
"steps": "Pasos",
"active_energy": "Active energy",
"flights": "Flights climbed",
"distance": "Distance",
"vo2_max": "VO₂ max",
"body_temp": "Body temperature",
"medications": "Medications",
"anthropometrics": "Profile (height, age, gender)"
"active_energy": "Energía activa",
"flights": "Pisos",
"distance": "Distancia",
"vo2_max": "VO₂ máx",
"body_temp": "Temperatura corporal",
"medications": "Medicamentos",
"anthropometrics": "Perfil (altura, edad, sexo)"
},
"window": {
"last7days": "Últimos 7 días",
@@ -1110,11 +1110,11 @@
"lastYear": "lo que va de año",
"allTime": "Todo el tiempo"
},
"windowLabel": "Window",
"settingsAriaLabel": "Coach settings",
"settingsTitle": "Coach settings",
"settingsDescription": "Tune how the Coach talks with you.",
"settingsToneLabel": "Tone",
"windowLabel": "Periodo",
"settingsAriaLabel": "Ajustes del coach",
"settingsTitle": "Ajustes del coach",
"settingsDescription": "Configura cómo te habla el coach.",
"settingsToneLabel": "Tono",
"settingsToneWarm": "Warm",
"settingsToneNeutral": "Neutral",
"settingsToneConcise": "Concise",
+140 -140
View File
@@ -899,22 +899,22 @@
"notAvailableForCompliance": "Comparaison indisponible pour l’observance"
},
"insights": {
"noAnalysisYet": "No analysis yet.",
"emptyTitle": "Not enough data yet",
"emptyDescription": "Insights light up once you've logged a handful of measurements. Start with weight or blood pressure.",
"emptyAddMeasurement": "Add a measurement",
"bmiEmptyTitle": "Set your height to see BMI",
"bmiEmptyDescription": "BMI needs your height. Add it under Settings → Account.",
"bmiEmptyAction": "Open account settings",
"noProviderConfigured": "Assessment unavailable.",
"startAnalysis": "Start analysis",
"refreshAnalysis": "Refresh analysis",
"keyTakeaway": "Key Takeaway",
"findingsTitle": "Findings",
"heroFindingPositive": "Top finding",
"heroFindingNeutral": "Top finding",
"heroFindingAttention": "Worth attention",
"heroFindingWarning": "Top alert",
"noAnalysisYet": "Pas encore d’analyse.",
"emptyTitle": "Pas encore assez de données",
"emptyDescription": "Les insights apparaissent dès que tu auras saisi quelques mesures. Commence par le poids ou la tension.",
"emptyAddMeasurement": "Saisir une mesure",
"bmiEmptyTitle": "Ajoute ta taille pour l’IMC",
"bmiEmptyDescription": "L’IMC nécessite ta taille. Renseigne-la dans Paramètres → Compte.",
"bmiEmptyAction": "Ouvrir les paramètres du compte",
"noProviderConfigured": "Analyse indisponible.",
"startAnalysis": "Lancer l’analyse",
"refreshAnalysis": "Actualiser l’analyse",
"keyTakeaway": "L’essentiel",
"findingsTitle": "Constats",
"heroFindingPositive": "Constat principal",
"heroFindingNeutral": "Constat principal",
"heroFindingAttention": "À surveiller",
"heroFindingWarning": "Alerte principale",
"correlationsTitle": "Corrélations",
"recommendationsTitle": "Recommandations",
"personalRecord": {
@@ -923,55 +923,55 @@
},
"recommendation": {
"source": "Source",
"viewSource": "Open guideline in a new tab",
"rationale": "Why this recommendation",
"rationaleWindow": "Window",
"rationaleComparedTo": "Compared to",
"rationaleDeviation": "Deviation",
"rationaleExpand": "Show why",
"rationaleCollapse": "Hide why",
"legacyPayloadCta": "Insights updated — regenerate for new explainability features",
"feedbackHelpful": "Helpful",
"feedbackNotHelpful": "Not helpful",
"feedbackThanks": "Thanks for your feedback",
"feedbackConfirmed": "Feedback recorded",
"feedbackAlreadyRated": "Already rated",
"confidence": "Confidence",
"confidenceAria": "Confidence: {value} of 100",
"confidenceHigh": "High confidence",
"confidenceMedium": "Moderate confidence",
"confidenceLow": "Low confidence — based on limited data",
"confidenceDraft": "Draft"
"viewSource": "Ouvrir la recommandation dans un nouvel onglet",
"rationale": "Pourquoi cette recommandation",
"rationaleWindow": "Fenêtre",
"rationaleComparedTo": "Comparé à",
"rationaleDeviation": "Écart",
"rationaleExpand": "Afficher la justification",
"rationaleCollapse": "Masquer la justification",
"legacyPayloadCta": "Insights mis à jour — regénère pour activer les nouvelles explications",
"feedbackHelpful": "Utile",
"feedbackNotHelpful": "Peu utile",
"feedbackThanks": "Merci pour ton retour",
"feedbackConfirmed": "Retour enregistré",
"feedbackAlreadyRated": "Déjà noté",
"confidence": "Confiance",
"confidenceAria": "Confiance : {value} sur 100",
"confidenceHigh": "Confiance élevée",
"confidenceMedium": "Confiance moyenne",
"confidenceLow": "Confiance faible — peu de points de données",
"confidenceDraft": "Brouillon"
},
"dataFoundation": "Data coverage",
"dataGaps": "Data gaps:",
"lastUpdated": "Last updated",
"confidenceHoch": "High",
"confidenceMittel": "Medium",
"confidenceGering": "Low",
"loadError": "Failed to load insights",
"heroGenerated": "Generated {time}",
"heroPersonalBaseline": "Based on your last 90 days",
"heroRegenerate": "Regenerate",
"heroRegenerating": "Regenerating",
"regenerateAnalysis": "Re-run analysis",
"regenerateSuccess": "Analysis refreshed",
"heroFallbackSubtitle": "A daily read of your trends, drawn straight from the numbers you've logged.",
"heroGreetingMorning": "Good morning",
"heroGreetingAfternoon": "Good afternoon",
"heroGreetingEvening": "Good evening",
"heroComingSoonTooltip": "Coming soon",
"heroActionAskCoach": "Ask the coach",
"dataFoundation": "Base de données",
"dataGaps": "Lacunes :",
"lastUpdated": "Dernière mise à jour",
"confidenceHoch": "Élevée",
"confidenceMittel": "Moyenne",
"confidenceGering": "Faible",
"loadError": "Impossible de charger les analyses",
"heroGenerated": "Généré {time}",
"heroPersonalBaseline": "Basé sur tes 90 derniers jours",
"heroRegenerate": "Régénérer",
"heroRegenerating": "Génération en cours",
"regenerateAnalysis": "Relancer l’analyse",
"regenerateSuccess": "Analyse regénérée",
"heroFallbackSubtitle": "Un coup d’œil quotidien sur tes tendances — directement issu des chiffres que tu saisis.",
"heroGreetingMorning": "Bonjour",
"heroGreetingAfternoon": "Bonjour",
"heroGreetingEvening": "Bonsoir",
"heroComingSoonTooltip": "Bientôt disponible",
"heroActionAskCoach": "Demander au coach",
"healthScore": {
"label": "Health Score",
"progressAria": "Health Score progress",
"deltaVsLastWeek": "{delta} vs last week",
"deltaUnavailable": "No history yet — check back next week.",
"label": "Score de santé",
"progressAria": "Progression du score de santé",
"deltaVsLastWeek": "{delta} par rapport à la semaine précédente",
"deltaUnavailable": "Pas encore d’historique — reviens la semaine prochaine.",
"componentBp": "TA",
"componentWeight": "Poids",
"componentMood": "Humeur",
"componentCompliance": "Meds",
"disclaimer": "Indicative — not a clinical assessment.",
"componentCompliance": "Observance",
"disclaimer": "Repère — pas un avis médical.",
"deltaExplainer": {
"trigger": "Que signifie cet écart ?",
"title": "Comment l'écart est calculé",
@@ -988,7 +988,7 @@
"provisionalBadge": "Provisoire",
"sourceAria": "Source : {source}",
"sources": {
"manual": "Manuel",
"manual": "Manuelle",
"withings": "Withings",
"appleHealth": "Apple Health",
"mixed": "Mixte",
@@ -997,111 +997,111 @@
}
},
"suggestedPrompts": {
"label": "Try asking",
"whyMonday": "Why was BP higher on Monday?",
"weightVsPulse": "How did weight loss affect my pulse?",
"weekVsMonth": "Compare this week to last month",
"tellMyDoctor": "What should I tell my doctor?",
"medicationWorking": "Is my medication working?"
"label": "Demande-moi",
"whyMonday": "Pourquoi ma tension était-elle plus haute lundi ?",
"weightVsPulse": "Comment la perte de poids a-t-elle influé sur mon pouls ?",
"weekVsMonth": "Compare cette semaine avec le mois dernier",
"tellMyDoctor": "Que devrais-je dire à mon médecin ?",
"medicationWorking": "Mon médicament fonctionne-t-il ?"
},
"dailyBriefing": {
"title": "Daily Briefing",
"keyFindingsTitle": "Key findings",
"emptyTitle": "No briefing yet",
"emptyDescription": "Generate today's briefing to get a narrative read of your trends.",
"emptyAction": "Generate briefing",
"loadingLabel": "Synthesising today's briefing"
"title": "Briefing du jour",
"keyFindingsTitle": "Constats clés",
"emptyTitle": "Pas encore de briefing",
"emptyDescription": "Génère le briefing du jour pour obtenir un récap de tes tendances.",
"emptyAction": "Générer le briefing",
"loadingLabel": "Préparation du briefing"
},
"therapyTimeline": {
"title": "GLP-1 therapy timeline",
"description": "Chronological log of dose changes, injections, inventory events, and side-effect days.",
"empty": "No GLP-1 therapy events logged in the last 90 days.",
"doseTo": "dose set to",
"pens": "pens",
"sideEffects": "Side effects"
"title": "Historique du traitement GLP-1",
"description": "Liste chronologique : changements de dose, injections, stock et jours d’effets secondaires.",
"empty": "Aucun événement GLP-1 sur les 90 derniers jours.",
"doseTo": "Dose à",
"pens": "Stylos",
"sideEffects": "Effets secondaires"
},
"trendsRow": {
"title": "Tendances",
"subtitle": "Last 30 days at a glance"
"subtitle": "Les 30 derniers jours en un coup d’œil"
},
"vo2Max": {
"statLatest": "Latest",
"statLatest": "Actuel",
"statMin": "Min",
"statMax": "Max",
"empty": "No VO₂ max data yet — sync Apple Health to populate this view."
"empty": "Pas encore de données VO₂ max — synchronise Apple Health pour remplir cette vue."
},
"trendAnnotation": {
"emptyBp": "Awaiting more data to annotate this trend.",
"emptyWeight": "Awaiting more data to annotate this trend.",
"emptyMood": "Awaiting more data to annotate this trend.",
"confidenceHigh": "High confidence",
"confidenceModerate": "Moderate confidence",
"confidenceLow": "Low confidence",
"pendingLabel": "Generating trend commentary"
"emptyBp": "Il faut plus de données pour commenter cette tendance.",
"emptyWeight": "Il faut plus de données pour commenter cette tendance.",
"emptyMood": "Il faut plus de données pour commenter cette tendance.",
"confidenceHigh": "Confiance élevée",
"confidenceModerate": "Confiance moyenne",
"confidenceLow": "Confiance faible",
"pendingLabel": "Commentaire de tendance en cours de génération"
},
"correlationRow": {
"title": "Relationships",
"subtitle": "Pre-defined hypotheses, gated on n ≥ 14 and p < 0.05",
"disclaimer": "Relationships are observational, not causal — talk to your doctor if BP runs high.",
"experimentCta": "Try a 7-day experiment",
"experimentTooltip": "Coming soon",
"emptyTitle": "Need more data to see this relationship",
"sourceChip": "based on {n} paired readings · {window}",
"title": "Corrélations",
"subtitle": "Hypothèses prédéfinies, validées si n ≥ 14 et p < 0,05",
"disclaimer": "Les corrélations sont observationnelles, pas causales — parle à ton médecin si ta tension est élevée.",
"experimentCta": "Lancer une expérience de 7 jours",
"experimentTooltip": "Bientôt disponible",
"emptyTitle": "Il faut plus de données pour afficher cette corrélation",
"sourceChip": "sur la base de {n} mesures appariées · {window}",
"sourceWindowLast30": "30 derniers jours",
"confidenceHigh": "High confidence",
"confidenceModerate": "Moderate confidence",
"confidenceLow": "Low confidence",
"confidenceHigh": "Confiance élevée",
"confidenceModerate": "Confiance moyenne",
"confidenceLow": "Confiance faible",
"card": {
"bpComplianceTitle": "BP × medication compliance",
"bpComplianceSubtitle": "Daily systolic against compliance %",
"moodPulseTitle": "Mood × resting pulse",
"moodPulseSubtitle": "Same-day mood and resting pulse",
"weightWeekdayTitle": "Weight × weekday",
"weightWeekdaySubtitle": "Weight grouped by day of week"
"bpComplianceTitle": "TA × observance médicaments",
"bpComplianceSubtitle": "Systolique quotidienne face au % d’observance",
"moodPulseTitle": "Humeur × pouls au repos",
"moodPulseSubtitle": "Humeur et pouls au repos le même jour",
"weightWeekdayTitle": "Poids × jour de la semaine",
"weightWeekdaySubtitle": "Poids groupé par jour de la semaine"
}
},
"coach": {
"refusalOutOfScope": "I can only help with the health metrics in your log — measurements, medications, mood, trends. I cannot answer questions outside that scope.",
"refusalInjection": "I noticed wording that tries to override my instructions. I am the HealthLog Coach and only summarise your own health data — please rephrase your question in those terms.",
"errorBudget": "You've reached today's Coach usage limit. The budget refreshes at midnight UTC.",
"errorProvider": "The Coach could not reach an Insights provider just now. Please try again in a moment.",
"tagline": "Personal health coach, grounded in your data.",
"newChat": "New chat",
"send": "Send",
"thinking": "Thinking…",
"composerPlaceholder": "Ask anything about your data…",
"composerHint": "Press Enter to send, Shift+Enter for a new line.",
"composerDisclaimer": "Coach replies are generated. Clinical decisions belong with your doctor.",
"voiceComingSoon": "Voice input arrives with the iOS app in v1.5.",
"threadEmpty": "Ask anything about your trends, medications, or readings to start a conversation.",
"refusalOutOfScope": "Je ne peux aider que pour les données de santé de ton journal — mesures, médicaments, humeur, tendances. Les questions hors de ce périmètre ne sont pas traitées.",
"refusalInjection": "Ton message contient des instructions qui cherchent à remplacer mes consignes. Je suis le coach HealthLog et je ne résume que tes propres données de santé — reformule ta question dans ce cadre.",
"errorBudget": "Tu as atteint la limite quotidienne du coach. Le quota se réinitialise à minuit (UTC).",
"errorProvider": "Le coach n’a pas pu joindre un fournisseur d’analyse maintenant. Réessaie dans un instant.",
"tagline": "Coach personnel de santé, ancré sur tes données.",
"newChat": "Nouvelle conversation",
"send": "Envoyer",
"thinking": "Réflexion en cours…",
"composerPlaceholder": "Pose-moi une question sur tes données…",
"composerHint": "Entrée pour envoyer, Maj+Entrée pour une nouvelle ligne.",
"composerDisclaimer": "Les réponses sont générées. Les décisions cliniques relèvent de ton médecin.",
"voiceComingSoon": "La saisie vocale arrive avec l’app iOS en v1.5.",
"threadEmpty": "Pose une question sur tes tendances, médicaments ou mesures pour démarrer.",
"historyTitle": "Conversations",
"historySearchPlaceholder": "Search conversations…",
"historyEmpty": "Your conversations will appear here. Ask anything to start.",
"historyDeleteAria": "Delete conversation",
"historyDeleteConfirm": "Delete this conversation? This cannot be undone.",
"sourcesTitle": "What I can see",
"sourcesFresh": "Fresh",
"sourcesStale": "Stale",
"sourcesFooter": "The Coach reads only the data you've connected.",
"evidenceLabel": "What I'm looking at",
"historySearchPlaceholder": "Rechercher dans les conversations…",
"historyEmpty": "Tes conversations s’affichent ici. Lance une question pour commencer.",
"historyDeleteAria": "Supprimer la conversation",
"historyDeleteConfirm": "Supprimer cette conversation ? Action irréversible.",
"sourcesTitle": "Ce à quoi j’accède",
"sourcesFresh": "À jour",
"sourcesStale": "Obsolètes",
"sourcesFooter": "Le coach ne lit que les données que tu as connectées.",
"evidenceLabel": "Sur quoi est-ce fondé ?",
"metric": {
"bp": "Tension artérielle",
"weight": "Poids",
"pulse": "Pouls",
"mood": "Humeur",
"compliance": "Observance",
"general": "General",
"hrv": "HRV",
"general": "Général",
"hrv": "VFC",
"sleep": "Sommeil",
"resting_hr": "Resting HR",
"resting_hr": "Pouls au repos",
"steps": "Pas",
"active_energy": "Active energy",
"flights": "Flights climbed",
"active_energy": "Énergie active",
"flights": "Étages",
"distance": "Distance",
"vo2_max": "VO₂ max",
"body_temp": "Body temperature",
"medications": "Medications",
"anthropometrics": "Profile (height, age, gender)"
"body_temp": "Température corporelle",
"medications": "Médicaments",
"anthropometrics": "Profil (taille, âge, sexe)"
},
"window": {
"last7days": "7 derniers jours",
@@ -1110,11 +1110,11 @@
"lastYear": "depuis le début de l'année",
"allTime": "Toute la période"
},
"windowLabel": "Window",
"settingsAriaLabel": "Coach settings",
"settingsTitle": "Coach settings",
"settingsDescription": "Tune how the Coach talks with you.",
"settingsToneLabel": "Tone",
"windowLabel": "Période",
"settingsAriaLabel": "Paramètres du coach",
"settingsTitle": "Paramètres du coach",
"settingsDescription": "Configure comment le coach te parle.",
"settingsToneLabel": "Ton",
"settingsToneWarm": "Warm",
"settingsToneNeutral": "Neutre",
"settingsToneConcise": "Concise",
+141 -141
View File
@@ -899,22 +899,22 @@
"notAvailableForCompliance": "Confronto non disponibile per l’aderenza"
},
"insights": {
"noAnalysisYet": "No analysis yet.",
"emptyTitle": "Not enough data yet",
"emptyDescription": "Insights light up once you've logged a handful of measurements. Start with weight or blood pressure.",
"emptyAddMeasurement": "Add a measurement",
"bmiEmptyTitle": "Set your height to see BMI",
"bmiEmptyDescription": "BMI needs your height. Add it under Settings → Account.",
"bmiEmptyAction": "Open account settings",
"noProviderConfigured": "Assessment unavailable.",
"startAnalysis": "Start analysis",
"refreshAnalysis": "Refresh analysis",
"keyTakeaway": "Key Takeaway",
"findingsTitle": "Findings",
"heroFindingPositive": "Top finding",
"heroFindingNeutral": "Top finding",
"heroFindingAttention": "Worth attention",
"heroFindingWarning": "Top alert",
"noAnalysisYet": "Ancora nessuna analisi.",
"emptyTitle": "Dati ancora insufficienti",
"emptyDescription": "Gli insights compaiono appena registri qualche misurazione. Inizia da peso o pressione.",
"emptyAddMeasurement": "Registra misurazione",
"bmiEmptyTitle": "Aggiungi l’altezza per il BMI",
"bmiEmptyDescription": "Per il BMI serve la tua altezza. Salvala in Impostazioni → Account.",
"bmiEmptyAction": "Apri impostazioni account",
"noProviderConfigured": "Analisi non disponibile.",
"startAnalysis": "Avvia analisi",
"refreshAnalysis": "Aggiorna analisi",
"keyTakeaway": "Ciò che conta",
"findingsTitle": "Riscontri",
"heroFindingPositive": "Riscontro principale",
"heroFindingNeutral": "Riscontro principale",
"heroFindingAttention": "Da tenere d’occhio",
"heroFindingWarning": "Avviso principale",
"correlationsTitle": "Correlazioni",
"recommendationsTitle": "Raccomandazioni",
"personalRecord": {
@@ -922,56 +922,56 @@
"tooltip": "Record personale: {value} {unit} il {date}"
},
"recommendation": {
"source": "Source",
"viewSource": "Open guideline in a new tab",
"rationale": "Why this recommendation",
"rationaleWindow": "Window",
"rationaleComparedTo": "Compared to",
"rationaleDeviation": "Deviation",
"rationaleExpand": "Show why",
"rationaleCollapse": "Hide why",
"legacyPayloadCta": "Insights updated — regenerate for new explainability features",
"feedbackHelpful": "Helpful",
"feedbackNotHelpful": "Not helpful",
"feedbackThanks": "Thanks for your feedback",
"feedbackConfirmed": "Feedback recorded",
"feedbackAlreadyRated": "Already rated",
"confidence": "Confidence",
"confidenceAria": "Confidence: {value} of 100",
"confidenceHigh": "High confidence",
"confidenceMedium": "Moderate confidence",
"confidenceLow": "Low confidence — based on limited data",
"confidenceDraft": "Draft"
"source": "Fonte",
"viewSource": "Apri la linea guida in una nuova scheda",
"rationale": "Perché questo consiglio",
"rationaleWindow": "Finestra",
"rationaleComparedTo": "Confrontato con",
"rationaleDeviation": "Scostamento",
"rationaleExpand": "Mostra motivazione",
"rationaleCollapse": "Nascondi motivazione",
"legacyPayloadCta": "Insights aggiornati — rigenera per attivare le nuove spiegazioni",
"feedbackHelpful": "Utile",
"feedbackNotHelpful": "Poco utile",
"feedbackThanks": "Grazie per il riscontro",
"feedbackConfirmed": "Feedback salvato",
"feedbackAlreadyRated": "Già valutato",
"confidence": "Confidenza",
"confidenceAria": "Confidenza: {value} su 100",
"confidenceHigh": "Confidenza alta",
"confidenceMedium": "Confidenza media",
"confidenceLow": "Confidenza bassa — pochi dati",
"confidenceDraft": "Bozza"
},
"dataFoundation": "Data coverage",
"dataGaps": "Data gaps:",
"lastUpdated": "Last updated",
"confidenceHoch": "High",
"confidenceMittel": "Medium",
"confidenceGering": "Low",
"loadError": "Failed to load insights",
"heroGenerated": "Generated {time}",
"heroPersonalBaseline": "Based on your last 90 days",
"heroRegenerate": "Regenerate",
"heroRegenerating": "Regenerating",
"regenerateAnalysis": "Re-run analysis",
"regenerateSuccess": "Analysis refreshed",
"heroFallbackSubtitle": "A daily read of your trends, drawn straight from the numbers you've logged.",
"heroGreetingMorning": "Good morning",
"heroGreetingAfternoon": "Good afternoon",
"heroGreetingEvening": "Good evening",
"heroComingSoonTooltip": "Coming soon",
"heroActionAskCoach": "Ask the coach",
"dataFoundation": "Base dati",
"dataGaps": "Lacune dati:",
"lastUpdated": "Ultimo aggiornamento",
"confidenceHoch": "Alta",
"confidenceMittel": "Media",
"confidenceGering": "Bassa",
"loadError": "Impossibile caricare le analisi",
"heroGenerated": "Generato {time}",
"heroPersonalBaseline": "Basato sugli ultimi 90 giorni",
"heroRegenerate": "Rigenera",
"heroRegenerating": "Generazione in corso",
"regenerateAnalysis": "Riavvia l’analisi",
"regenerateSuccess": "Analisi rigenerata",
"heroFallbackSubtitle": "Uno sguardo quotidiano ai tuoi trend — direttamente dai numeri che registri.",
"heroGreetingMorning": "Buongiorno",
"heroGreetingAfternoon": "Buon pomeriggio",
"heroGreetingEvening": "Buonasera",
"heroComingSoonTooltip": "In arrivo",
"heroActionAskCoach": "Chiedi al coach",
"healthScore": {
"label": "Health Score",
"progressAria": "Health Score progress",
"deltaVsLastWeek": "{delta} vs last week",
"deltaUnavailable": "No history yet — check back next week.",
"label": "Punteggio di salute",
"progressAria": "Avanzamento del punteggio di salute",
"deltaVsLastWeek": "{delta} rispetto alla settimana scorsa",
"deltaUnavailable": "Ancora nessuno storico — ripassa la prossima settimana.",
"componentBp": "PA",
"componentWeight": "Peso",
"componentMood": "Umore",
"componentCompliance": "Meds",
"disclaimer": "Indicative — not a clinical assessment.",
"componentCompliance": "Aderenza",
"disclaimer": "Indicazione — non è una valutazione medica.",
"deltaExplainer": {
"trigger": "Cosa significa questa variazione?",
"title": "Come si calcola la variazione",
@@ -997,111 +997,111 @@
}
},
"suggestedPrompts": {
"label": "Try asking",
"whyMonday": "Why was BP higher on Monday?",
"weightVsPulse": "How did weight loss affect my pulse?",
"weekVsMonth": "Compare this week to last month",
"tellMyDoctor": "What should I tell my doctor?",
"medicationWorking": "Is my medication working?"
"label": "Chiedimi",
"whyMonday": "Perché la mia pressione era più alta lunedì?",
"weightVsPulse": "Come ha inciso il calo di peso sulle mie pulsazioni?",
"weekVsMonth": "Confronta questa settimana con il mese scorso",
"tellMyDoctor": "Cosa dovrei dire al mio medico?",
"medicationWorking": "Il mio farmaco sta funzionando?"
},
"dailyBriefing": {
"title": "Daily Briefing",
"keyFindingsTitle": "Key findings",
"emptyTitle": "No briefing yet",
"emptyDescription": "Generate today's briefing to get a narrative read of your trends.",
"emptyAction": "Generate briefing",
"loadingLabel": "Synthesising today's briefing"
"title": "Briefing del giorno",
"keyFindingsTitle": "Riscontri principali",
"emptyTitle": "Ancora nessun briefing",
"emptyDescription": "Genera il briefing di oggi per avere un riepilogo dei tuoi trend.",
"emptyAction": "Genera briefing",
"loadingLabel": "Preparazione del briefing"
},
"therapyTimeline": {
"title": "GLP-1 therapy timeline",
"description": "Chronological log of dose changes, injections, inventory events, and side-effect days.",
"empty": "No GLP-1 therapy events logged in the last 90 days.",
"doseTo": "dose set to",
"pens": "pens",
"sideEffects": "Side effects"
"title": "Cronologia terapia GLP-1",
"description": "Elenco cronologico: cambi di dose, iniezioni, scorte e giorni con effetti collaterali.",
"empty": "Nessun evento GLP-1 negli ultimi 90 giorni.",
"doseTo": "Dose a",
"pens": "Penne",
"sideEffects": "Effetti collaterali"
},
"trendsRow": {
"title": "Tendenze",
"subtitle": "Last 30 days at a glance"
"subtitle": "Gli ultimi 30 giorni a colpo d’occhio"
},
"vo2Max": {
"statLatest": "Latest",
"statLatest": "Attuale",
"statMin": "Min",
"statMax": "Max",
"empty": "No VO₂ max data yet — sync Apple Health to populate this view."
"empty": "Ancora nessun dato VO₂ max — sincronizza Apple Health per riempire questa vista."
},
"trendAnnotation": {
"emptyBp": "Awaiting more data to annotate this trend.",
"emptyWeight": "Awaiting more data to annotate this trend.",
"emptyMood": "Awaiting more data to annotate this trend.",
"confidenceHigh": "High confidence",
"confidenceModerate": "Moderate confidence",
"confidenceLow": "Low confidence",
"pendingLabel": "Generating trend commentary"
"emptyBp": "Servono più dati per commentare questo trend.",
"emptyWeight": "Servono più dati per commentare questo trend.",
"emptyMood": "Servono più dati per commentare questo trend.",
"confidenceHigh": "Confidenza alta",
"confidenceModerate": "Confidenza media",
"confidenceLow": "Confidenza bassa",
"pendingLabel": "Commento di trend in generazione"
},
"correlationRow": {
"title": "Relationships",
"subtitle": "Pre-defined hypotheses, gated on n ≥ 14 and p < 0.05",
"disclaimer": "Relationships are observational, not causal — talk to your doctor if BP runs high.",
"experimentCta": "Try a 7-day experiment",
"experimentTooltip": "Coming soon",
"emptyTitle": "Need more data to see this relationship",
"sourceChip": "based on {n} paired readings · {window}",
"title": "Correlazioni",
"subtitle": "Ipotesi predefinite, vincolate a n ≥ 14 e p < 0,05",
"disclaimer": "Le correlazioni sono osservazionali, non causali — parla con il medico se la pressione è alta.",
"experimentCta": "Avvia esperimento di 7 giorni",
"experimentTooltip": "In arrivo",
"emptyTitle": "Servono più dati per mostrare questa correlazione",
"sourceChip": "su {n} misurazioni appaiate · {window}",
"sourceWindowLast30": "Ultimi 30 giorni",
"confidenceHigh": "High confidence",
"confidenceModerate": "Moderate confidence",
"confidenceLow": "Low confidence",
"confidenceHigh": "Confidenza alta",
"confidenceModerate": "Confidenza media",
"confidenceLow": "Confidenza bassa",
"card": {
"bpComplianceTitle": "BP × medication compliance",
"bpComplianceSubtitle": "Daily systolic against compliance %",
"moodPulseTitle": "Mood × resting pulse",
"moodPulseSubtitle": "Same-day mood and resting pulse",
"weightWeekdayTitle": "Weight × weekday",
"weightWeekdaySubtitle": "Weight grouped by day of week"
"bpComplianceTitle": "PA × aderenza farmaci",
"bpComplianceSubtitle": "Sistolica giornaliera contro % di aderenza",
"moodPulseTitle": "Umore × pulsazioni a riposo",
"moodPulseSubtitle": "Umore e pulsazioni a riposo nello stesso giorno",
"weightWeekdayTitle": "Peso × giorno della settimana",
"weightWeekdaySubtitle": "Peso raggruppato per giorno della settimana"
}
},
"coach": {
"refusalOutOfScope": "I can only help with the health metrics in your log — measurements, medications, mood, trends. I cannot answer questions outside that scope.",
"refusalInjection": "I noticed wording that tries to override my instructions. I am the HealthLog Coach and only summarise your own health data — please rephrase your question in those terms.",
"errorBudget": "You've reached today's Coach usage limit. The budget refreshes at midnight UTC.",
"errorProvider": "The Coach could not reach an Insights provider just now. Please try again in a moment.",
"tagline": "Personal health coach, grounded in your data.",
"newChat": "New chat",
"send": "Send",
"thinking": "Thinking…",
"composerPlaceholder": "Ask anything about your data…",
"composerHint": "Press Enter to send, Shift+Enter for a new line.",
"composerDisclaimer": "Coach replies are generated. Clinical decisions belong with your doctor.",
"voiceComingSoon": "Voice input arrives with the iOS app in v1.5.",
"threadEmpty": "Ask anything about your trends, medications, or readings to start a conversation.",
"historyTitle": "Conversations",
"historySearchPlaceholder": "Search conversations…",
"historyEmpty": "Your conversations will appear here. Ask anything to start.",
"historyDeleteAria": "Delete conversation",
"historyDeleteConfirm": "Delete this conversation? This cannot be undone.",
"sourcesTitle": "What I can see",
"sourcesFresh": "Fresh",
"sourcesStale": "Stale",
"sourcesFooter": "The Coach reads only the data you've connected.",
"evidenceLabel": "What I'm looking at",
"refusalOutOfScope": "Posso aiutarti solo con i dati di salute del tuo log — misurazioni, farmaci, umore, trend. Domande fuori da questo ambito non le rispondo.",
"refusalInjection": "Nel tuo messaggio ci sono istruzioni che cercano di sovrascrivere le mie indicazioni. Sono il coach di HealthLog e riassumo solo i tuoi dati di salute — riformula la domanda in questo perimetro.",
"errorBudget": "Hai raggiunto il limite giornaliero del coach. Il budget si reimposta a mezzanotte (UTC).",
"errorProvider": "Il coach non è riuscito a contattare un provider di analisi ora. Riprova fra poco.",
"tagline": "Coach personale di salute, basato sui tuoi dati.",
"newChat": "Nuova chat",
"send": "Invia",
"thinking": "Sto pensando…",
"composerPlaceholder": "Chiedimi qualcosa sui tuoi dati…",
"composerHint": "Invio per inviare, Shift+Invio per una nuova riga.",
"composerDisclaimer": "Le risposte sono generate. Le decisioni cliniche restano al tuo medico.",
"voiceComingSoon": "L’input vocale arriva con l’app iOS in v1.5.",
"threadEmpty": "Chiedimi qualcosa sui tuoi trend, farmaci o misurazioni per iniziare.",
"historyTitle": "Conversazioni",
"historySearchPlaceholder": "Cerca nelle conversazioni…",
"historyEmpty": "Le tue conversazioni compaiono qui. Fai una domanda per iniziare.",
"historyDeleteAria": "Elimina conversazione",
"historyDeleteConfirm": "Eliminare questa conversazione? Non si può annullare.",
"sourcesTitle": "A cosa accedo",
"sourcesFresh": "Aggiornate",
"sourcesStale": "Datate",
"sourcesFooter": "Il coach legge solo i dati che hai collegato.",
"evidenceLabel": "Su cosa si basa?",
"metric": {
"bp": "Pressione arteriosa",
"weight": "Peso",
"pulse": "Polso",
"mood": "Umore",
"compliance": "Aderenza",
"general": "General",
"general": "Generale",
"hrv": "HRV",
"sleep": "Sonno",
"resting_hr": "Resting HR",
"resting_hr": "Pulsazioni a riposo",
"steps": "Passi",
"active_energy": "Active energy",
"flights": "Flights climbed",
"distance": "Distance",
"active_energy": "Energia attiva",
"flights": "Piani",
"distance": "Distanza",
"vo2_max": "VO₂ max",
"body_temp": "Body temperature",
"medications": "Medications",
"anthropometrics": "Profile (height, age, gender)"
"body_temp": "Temperatura corporea",
"medications": "Farmaci",
"anthropometrics": "Profilo (altezza, età, sesso)"
},
"window": {
"last7days": "Ultimi 7 giorni",
@@ -1110,11 +1110,11 @@
"lastYear": "anno in corso",
"allTime": "Tutto il tempo"
},
"windowLabel": "Window",
"settingsAriaLabel": "Coach settings",
"settingsTitle": "Coach settings",
"settingsDescription": "Tune how the Coach talks with you.",
"settingsToneLabel": "Tone",
"windowLabel": "Periodo",
"settingsAriaLabel": "Impostazioni del coach",
"settingsTitle": "Impostazioni del coach",
"settingsDescription": "Imposta come il coach ti parla.",
"settingsToneLabel": "Tono",
"settingsToneWarm": "Warm",
"settingsToneNeutral": "Neutro",
"settingsToneConcise": "Concise",
+144 -144
View File
@@ -899,22 +899,22 @@
"notAvailableForCompliance": "Porównanie niedostępne dla przestrzegania"
},
"insights": {
"noAnalysisYet": "No analysis yet.",
"emptyTitle": "Not enough data yet",
"emptyDescription": "Insights light up once you've logged a handful of measurements. Start with weight or blood pressure.",
"emptyAddMeasurement": "Add a measurement",
"bmiEmptyTitle": "Set your height to see BMI",
"bmiEmptyDescription": "BMI needs your height. Add it under Settings → Account.",
"bmiEmptyAction": "Open account settings",
"noProviderConfigured": "Assessment unavailable.",
"startAnalysis": "Start analysis",
"refreshAnalysis": "Refresh analysis",
"keyTakeaway": "Key Takeaway",
"findingsTitle": "Findings",
"heroFindingPositive": "Top finding",
"heroFindingNeutral": "Top finding",
"heroFindingAttention": "Worth attention",
"heroFindingWarning": "Top alert",
"noAnalysisYet": "Brak analizy.",
"emptyTitle": "Jeszcze za mało danych",
"emptyDescription": "Insights pojawią się, gdy zarejestrujesz kilka pomiarów. Zacznij od wagi lub ciśnienia.",
"emptyAddMeasurement": "Zarejestruj pomiar",
"bmiEmptyTitle": "Dodaj wzrost, aby obliczyć BMI",
"bmiEmptyDescription": "BMI wymaga twojego wzrostu. Zapisz go w Ustawieniach → Konto.",
"bmiEmptyAction": "Otwórz ustawienia konta",
"noProviderConfigured": "Analiza niedostępna.",
"startAnalysis": "Uruchom analizę",
"refreshAnalysis": "Odśwież analizę",
"keyTakeaway": "Najważniejsze",
"findingsTitle": "Wnioski",
"heroFindingPositive": "Najważniejszy wniosek",
"heroFindingNeutral": "Najważniejszy wniosek",
"heroFindingAttention": "Do uwagi",
"heroFindingWarning": "Najważniejszy alert",
"correlationsTitle": "Korelacje",
"recommendationsTitle": "Rekomendacje",
"personalRecord": {
@@ -922,56 +922,56 @@
"tooltip": "Rekord osobisty: {value} {unit} dnia {date}"
},
"recommendation": {
"source": "Source",
"viewSource": "Open guideline in a new tab",
"rationale": "Why this recommendation",
"rationaleWindow": "Window",
"rationaleComparedTo": "Compared to",
"rationaleDeviation": "Deviation",
"rationaleExpand": "Show why",
"rationaleCollapse": "Hide why",
"legacyPayloadCta": "Insights updated — regenerate for new explainability features",
"feedbackHelpful": "Helpful",
"feedbackNotHelpful": "Not helpful",
"feedbackThanks": "Thanks for your feedback",
"feedbackConfirmed": "Feedback recorded",
"feedbackAlreadyRated": "Already rated",
"confidence": "Confidence",
"confidenceAria": "Confidence: {value} of 100",
"confidenceHigh": "High confidence",
"confidenceMedium": "Moderate confidence",
"confidenceLow": "Low confidence — based on limited data",
"confidenceDraft": "Draft"
"source": "Źródło",
"viewSource": "Otwórz wytyczne w nowej karcie",
"rationale": "Dlaczego ta rekomendacja",
"rationaleWindow": "Okno",
"rationaleComparedTo": "W porównaniu z",
"rationaleDeviation": "Odchylenie",
"rationaleExpand": "Pokaż uzasadnienie",
"rationaleCollapse": "Ukryj uzasadnienie",
"legacyPayloadCta": "Insights zaktualizowane — wygeneruj ponownie, aby aktywować nowe wyjaśnienia",
"feedbackHelpful": "Przydatne",
"feedbackNotHelpful": "Mało przydatne",
"feedbackThanks": "Dzięki za opinię",
"feedbackConfirmed": "Opinia zapisana",
"feedbackAlreadyRated": "Już ocenione",
"confidence": "Pewność",
"confidenceAria": "Pewność: {value} na 100",
"confidenceHigh": "Wysoka pewność",
"confidenceMedium": "Średnia pewność",
"confidenceLow": "Niska pewność — mało danych",
"confidenceDraft": "Wersja robocza"
},
"dataFoundation": "Data coverage",
"dataGaps": "Data gaps:",
"lastUpdated": "Last updated",
"confidenceHoch": "High",
"confidenceMittel": "Medium",
"confidenceGering": "Low",
"loadError": "Failed to load insights",
"heroGenerated": "Generated {time}",
"heroPersonalBaseline": "Based on your last 90 days",
"heroRegenerate": "Regenerate",
"heroRegenerating": "Regenerating",
"regenerateAnalysis": "Re-run analysis",
"regenerateSuccess": "Analysis refreshed",
"heroFallbackSubtitle": "A daily read of your trends, drawn straight from the numbers you've logged.",
"heroGreetingMorning": "Good morning",
"heroGreetingAfternoon": "Good afternoon",
"heroGreetingEvening": "Good evening",
"heroComingSoonTooltip": "Coming soon",
"heroActionAskCoach": "Ask the coach",
"dataFoundation": "Podstawa danych",
"dataGaps": "Braki danych:",
"lastUpdated": "Ostatnia aktualizacja",
"confidenceHoch": "Wysoka",
"confidenceMittel": "Średnia",
"confidenceGering": "Niska",
"loadError": "Nie udało się załadować analiz",
"heroGenerated": "Wygenerowano {time}",
"heroPersonalBaseline": "Na podstawie ostatnich 90 dni",
"heroRegenerate": "Wygeneruj ponownie",
"heroRegenerating": "Generowanie",
"regenerateAnalysis": "Uruchom analizę ponownie",
"regenerateSuccess": "Analiza wygenerowana ponownie",
"heroFallbackSubtitle": "Codzienne spojrzenie na twoje trendy — prosto z liczb, które rejestrujesz.",
"heroGreetingMorning": "Dzień dobry",
"heroGreetingAfternoon": "Dzień dobry",
"heroGreetingEvening": "Dobry wieczór",
"heroComingSoonTooltip": "Wkrótce",
"heroActionAskCoach": "Zapytaj coacha",
"healthScore": {
"label": "Health Score",
"progressAria": "Health Score progress",
"deltaVsLastWeek": "{delta} vs last week",
"deltaUnavailable": "No history yet — check back next week.",
"label": "Wynik zdrowia",
"progressAria": "Postęp wyniku zdrowia",
"deltaVsLastWeek": "{delta} w porównaniu z ubiegłym tygodniem",
"deltaUnavailable": "Brak historii — zajrzyj w przyszłym tygodniu.",
"componentBp": "RR",
"componentWeight": "Waga",
"componentMood": "Nastrój",
"componentCompliance": "Meds",
"disclaimer": "Indicative — not a clinical assessment.",
"componentCompliance": "Przestrzeganie",
"disclaimer": "Wskazówka — nie ocena medyczna.",
"deltaExplainer": {
"trigger": "Co oznacza ta zmiana?",
"title": "Jak liczona jest ta zmiana",
@@ -985,10 +985,10 @@
"footnote": "Wagi są przeskalowywane do dostępnych danych.",
"asOfLabel": "stan na {date}",
"provisional": "Wstępny — dostępne {count} z {total} danych",
"provisionalBadge": "Wstępny",
"provisionalBadge": "Wstępne",
"sourceAria": "Źródło: {source}",
"sources": {
"manual": "Ręcznie",
"manual": "Ręczne",
"withings": "Withings",
"appleHealth": "Apple Health",
"mixed": "Mieszane",
@@ -997,111 +997,111 @@
}
},
"suggestedPrompts": {
"label": "Try asking",
"whyMonday": "Why was BP higher on Monday?",
"weightVsPulse": "How did weight loss affect my pulse?",
"weekVsMonth": "Compare this week to last month",
"tellMyDoctor": "What should I tell my doctor?",
"medicationWorking": "Is my medication working?"
"label": "Zapytaj mnie",
"whyMonday": "Dlaczego moje ciśnienie było wyższe w poniedziałek?",
"weightVsPulse": "Jak spadek wagi wpłynął na moje tętno?",
"weekVsMonth": "Porównaj ten tydzień z poprzednim miesiącem",
"tellMyDoctor": "Co powinienem powiedzieć lekarzowi?",
"medicationWorking": "Czy mój lek działa?"
},
"dailyBriefing": {
"title": "Daily Briefing",
"keyFindingsTitle": "Key findings",
"emptyTitle": "No briefing yet",
"emptyDescription": "Generate today's briefing to get a narrative read of your trends.",
"emptyAction": "Generate briefing",
"loadingLabel": "Synthesising today's briefing"
"title": "Briefing dnia",
"keyFindingsTitle": "Kluczowe wnioski",
"emptyTitle": "Jeszcze brak briefingu",
"emptyDescription": "Wygeneruj dzisiejszy briefing, aby zobaczyć podsumowanie trendów.",
"emptyAction": "Wygeneruj briefing",
"loadingLabel": "Przygotowanie briefingu"
},
"therapyTimeline": {
"title": "GLP-1 therapy timeline",
"description": "Chronological log of dose changes, injections, inventory events, and side-effect days.",
"empty": "No GLP-1 therapy events logged in the last 90 days.",
"doseTo": "dose set to",
"pens": "pens",
"sideEffects": "Side effects"
"title": "Historia terapii GLP-1",
"description": "Chronologiczna lista: zmiany dawki, iniekcje, zapasy i dni z działaniami niepożądanymi.",
"empty": "Brak zdarzeń GLP-1 w ostatnich 90 dniach.",
"doseTo": "Dawka na",
"pens": "Peny",
"sideEffects": "Działania niepożądane"
},
"trendsRow": {
"title": "Trendy",
"subtitle": "Last 30 days at a glance"
"subtitle": "Ostatnie 30 dni w skrócie"
},
"vo2Max": {
"statLatest": "Latest",
"statLatest": "Aktualne",
"statMin": "Min",
"statMax": "Max",
"empty": "No VO₂ max data yet — sync Apple Health to populate this view."
"statMax": "Maks",
"empty": "Brak danych VO₂ max — zsynchronizuj Apple Health, aby uzupełnić ten widok."
},
"trendAnnotation": {
"emptyBp": "Awaiting more data to annotate this trend.",
"emptyWeight": "Awaiting more data to annotate this trend.",
"emptyMood": "Awaiting more data to annotate this trend.",
"confidenceHigh": "High confidence",
"confidenceModerate": "Moderate confidence",
"confidenceLow": "Low confidence",
"pendingLabel": "Generating trend commentary"
"emptyBp": "Potrzeba więcej danych, aby skomentować ten trend.",
"emptyWeight": "Potrzeba więcej danych, aby skomentować ten trend.",
"emptyMood": "Potrzeba więcej danych, aby skomentować ten trend.",
"confidenceHigh": "Wysoka pewność",
"confidenceModerate": "Średnia pewność",
"confidenceLow": "Niska pewność",
"pendingLabel": "Komentarz trendu jest generowany"
},
"correlationRow": {
"title": "Relationships",
"subtitle": "Pre-defined hypotheses, gated on n ≥ 14 and p < 0.05",
"disclaimer": "Relationships are observational, not causal — talk to your doctor if BP runs high.",
"experimentCta": "Try a 7-day experiment",
"experimentTooltip": "Coming soon",
"emptyTitle": "Need more data to see this relationship",
"sourceChip": "based on {n} paired readings · {window}",
"title": "Korelacje",
"subtitle": "Hipotezy zdefiniowane wcześniej, z progiem n ≥ 14 i p < 0,05",
"disclaimer": "Korelacje są obserwacyjne, nie przyczynowe — porozmawiaj z lekarzem, jeśli ciśnienie jest wysokie.",
"experimentCta": "Uruchom 7-dniowy eksperyment",
"experimentTooltip": "Wkrótce",
"emptyTitle": "Potrzeba więcej danych, aby pokazać tę korelację",
"sourceChip": "na podstawie {n} sparowanych pomiarów · {window}",
"sourceWindowLast30": "Ostatnie 30 dni",
"confidenceHigh": "High confidence",
"confidenceModerate": "Moderate confidence",
"confidenceLow": "Low confidence",
"confidenceHigh": "Wysoka pewność",
"confidenceModerate": "Średnia pewność",
"confidenceLow": "Niska pewność",
"card": {
"bpComplianceTitle": "BP × medication compliance",
"bpComplianceSubtitle": "Daily systolic against compliance %",
"moodPulseTitle": "Mood × resting pulse",
"moodPulseSubtitle": "Same-day mood and resting pulse",
"weightWeekdayTitle": "Weight × weekday",
"weightWeekdaySubtitle": "Weight grouped by day of week"
"bpComplianceTitle": "RR × przestrzeganie leków",
"bpComplianceSubtitle": "Dzienne skurczowe wobec % przestrzegania",
"moodPulseTitle": "Nastrój × tętno spoczynkowe",
"moodPulseSubtitle": "Nastrój i tętno spoczynkowe w tym samym dniu",
"weightWeekdayTitle": "Waga × dzień tygodnia",
"weightWeekdaySubtitle": "Waga pogrupowana wg dnia tygodnia"
}
},
"coach": {
"refusalOutOfScope": "I can only help with the health metrics in your log — measurements, medications, mood, trends. I cannot answer questions outside that scope.",
"refusalInjection": "I noticed wording that tries to override my instructions. I am the HealthLog Coach and only summarise your own health data — please rephrase your question in those terms.",
"errorBudget": "You've reached today's Coach usage limit. The budget refreshes at midnight UTC.",
"errorProvider": "The Coach could not reach an Insights provider just now. Please try again in a moment.",
"tagline": "Personal health coach, grounded in your data.",
"newChat": "New chat",
"send": "Send",
"thinking": "Thinking…",
"composerPlaceholder": "Ask anything about your data…",
"composerHint": "Press Enter to send, Shift+Enter for a new line.",
"composerDisclaimer": "Coach replies are generated. Clinical decisions belong with your doctor.",
"voiceComingSoon": "Voice input arrives with the iOS app in v1.5.",
"threadEmpty": "Ask anything about your trends, medications, or readings to start a conversation.",
"historyTitle": "Conversations",
"historySearchPlaceholder": "Search conversations…",
"historyEmpty": "Your conversations will appear here. Ask anything to start.",
"historyDeleteAria": "Delete conversation",
"historyDeleteConfirm": "Delete this conversation? This cannot be undone.",
"sourcesTitle": "What I can see",
"sourcesFresh": "Fresh",
"sourcesStale": "Stale",
"sourcesFooter": "The Coach reads only the data you've connected.",
"evidenceLabel": "What I'm looking at",
"refusalOutOfScope": "Mogę pomóc tylko w sprawach danych zdrowotnych z twojego logu — pomiarów, leków, nastroju, trendów. Pytań spoza tego zakresu nie podejmuję.",
"refusalInjection": "Twoja wiadomość zawiera instrukcje, które próbują nadpisać moje wytyczne. Jestem coachem HealthLog i podsumowuję wyłącznie twoje własne dane zdrowotne — przeformułuj pytanie w tych ramach.",
"errorBudget": "Osiągnięto dzienny limit coacha. Limit resetuje się o północy (UTC).",
"errorProvider": "Coach nie mógł teraz skontaktować się z dostawcą analizy. Spróbuj za chwilę.",
"tagline": "Osobisty coach zdrowia, oparty na twoich danych.",
"newChat": "Nowa rozmowa",
"send": "Wyślij",
"thinking": "Myślę…",
"composerPlaceholder": "Zapytaj o swoje dane…",
"composerHint": "Enter wysyła, Shift+Enter przechodzi do nowej linii.",
"composerDisclaimer": "Odpowiedzi są generowane. Decyzje kliniczne należą do lekarza.",
"voiceComingSoon": "Wejście głosowe pojawi się z aplikacją iOS w v1.5.",
"threadEmpty": "Zapytaj o swoje trendy, leki lub pomiary, aby zacząć.",
"historyTitle": "Rozmowy",
"historySearchPlaceholder": "Szukaj w rozmowach…",
"historyEmpty": "Twoje rozmowy pojawią się tutaj. Zadaj pytanie, aby zacząć.",
"historyDeleteAria": "Usuń rozmowę",
"historyDeleteConfirm": "Usunąć tę rozmowę? Tego nie da się cofnąć.",
"sourcesTitle": "Do czego mam dostęp",
"sourcesFresh": "Aktualne",
"sourcesStale": "Nieaktualne",
"sourcesFooter": "Coach czyta tylko dane, które podłączyłeś.",
"evidenceLabel": "Na czym to się opiera?",
"metric": {
"bp": "Ciśnienie krwi",
"weight": "Waga",
"pulse": "Tętno",
"mood": "Nastrój",
"compliance": "Przestrzeganie zaleceń",
"general": "General",
"general": "Ogólne",
"hrv": "HRV",
"sleep": "Sen",
"resting_hr": "Resting HR",
"resting_hr": "Tętno spoczynkowe",
"steps": "Kroki",
"active_energy": "Active energy",
"flights": "Flights climbed",
"distance": "Distance",
"active_energy": "Aktywna energia",
"flights": "Piętra",
"distance": "Dystans",
"vo2_max": "VO₂ max",
"body_temp": "Body temperature",
"medications": "Medications",
"anthropometrics": "Profile (height, age, gender)"
"body_temp": "Temperatura ciała",
"medications": "Leki",
"anthropometrics": "Profil (wzrost, wiek, płeć)"
},
"window": {
"last7days": "Ostatnie 7 dni",
@@ -1110,11 +1110,11 @@
"lastYear": "od początku roku",
"allTime": "Cały okres"
},
"windowLabel": "Window",
"settingsAriaLabel": "Coach settings",
"settingsTitle": "Coach settings",
"settingsDescription": "Tune how the Coach talks with you.",
"settingsToneLabel": "Tone",
"windowLabel": "Okres",
"settingsAriaLabel": "Ustawienia coacha",
"settingsTitle": "Ustawienia coacha",
"settingsDescription": "Ustaw, jak coach do ciebie mówi.",
"settingsToneLabel": "Ton",
"settingsToneWarm": "Warm",
"settingsToneNeutral": "Neutralnie",
"settingsToneConcise": "Concise",