i18n: localise the operator-disabled assistant notices

Four user-facing keys land in all six locale files so the
`<AssistantDisabledNotice>` component reads natively localised
copy:

  insights.coach.disabledByOperator
  insights.briefingDisabledByOperator
  insights.statusDisabledByOperator
  insights.correlationsDisabledByOperator

The Coach key nests under the existing `insights.coach.*` object;
the other three sit at the top of `insights.*` to avoid colliding
with the existing string-valued `insights.correlations` key.

The Health-Score explainer has no notice — its suppression is
silent on purpose so the bare delta digit still reads as a clean
KPI.

DE carries the full native phrasing; the established convention
for the other five locales (FR/ES/IT/PL/EN) keeps the user-facing
strings localised even where admin strings still default to
English.
This commit is contained in:
Marc-André Bombeck committed 2026-05-16 14:02:22 +02:00
1 parent 3b56bac59a
commit e778835c9c
7 files changed
+27 -3

No files matched your search

+4
View File
@@ -867,6 +867,9 @@
"heroFindingAttention": "Beachten",
"heroFindingWarning": "Wichtigster Alarm",
"correlationsTitle": "Zusammenhänge",
"briefingDisabledByOperator": "Das Tagesbriefing ist auf diesem Server derzeit nicht verfügbar.",
"statusDisabledByOperator": "Status-Karten sind auf diesem Server derzeit nicht verfügbar.",
"correlationsDisabledByOperator": "Korrelations-Erzählung ist auf diesem Server derzeit nicht verfügbar.",
"recommendationsTitle": "Empfehlungen",
"personalRecord": {
"badge": "PR",
@@ -1023,6 +1026,7 @@
"composerHint": "Enter zum Senden, Umschalt+Enter für eine neue Zeile.",
"composerDisclaimer": "Coach-Antworten sind generiert. Klinische Entscheidungen gehören in die Hand deines Arztes.",
"voiceComingSoon": "Spracheingabe kommt mit der iOS-App in v1.5.",
"disabledByOperator": "Der Coach ist auf diesem Server derzeit nicht verfügbar.",
"threadEmpty": "Frag mich etwas zu deinen Trends, Medikamenten oder Messwerten, um zu starten.",
"historyTitle": "Unterhaltungen",
"historySearchPlaceholder": "Unterhaltungen durchsuchen…",
+4
View File
@@ -868,6 +868,9 @@
"heroFindingWarning": "Top alert",
"correlationsTitle": "Correlations",
"recommendationsTitle": "Recommendations",
"briefingDisabledByOperator": "The Daily Briefing is currently unavailable on this server.",
"statusDisabledByOperator": "Status cards are currently unavailable on this server.",
"correlationsDisabledByOperator": "Correlation narration is currently unavailable on this server.",
"personalRecord": {
"badge": "PR",
"tooltip": "Personal record: {value} {unit} on {date}"
@@ -1023,6 +1026,7 @@
"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.",
"disabledByOperator": "Coach is currently unavailable on this server.",
"threadEmpty": "Ask anything about your trends, medications, or readings to start a conversation.",
"historyTitle": "Conversations",
"historySearchPlaceholder": "Search conversations…",
+4
View File
@@ -867,6 +867,9 @@
"heroFindingAttention": "Worth attention",
"heroFindingWarning": "Top alert",
"correlationsTitle": "Correlaciones",
"briefingDisabledByOperator": "El Briefing diario no está disponible en este servidor actualmente.",
"statusDisabledByOperator": "Las tarjetas de estado no están disponibles en este servidor actualmente.",
"correlationsDisabledByOperator": "La narración de correlaciones no está disponible en este servidor actualmente.",
"recommendationsTitle": "Recomendaciones",
"personalRecord": {
"badge": "PR",
@@ -1023,6 +1026,7 @@
"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.",
"disabledByOperator": "El Coach no está disponible en este servidor actualmente.",
"threadEmpty": "Ask anything about your trends, medications, or readings to start a conversation.",
"historyTitle": "Conversations",
"historySearchPlaceholder": "Search conversations…",
+4
View File
@@ -867,6 +867,9 @@
"heroFindingAttention": "Worth attention",
"heroFindingWarning": "Top alert",
"correlationsTitle": "Corrélations",
"briefingDisabledByOperator": "Le Briefing quotidien est actuellement indisponible sur ce serveur.",
"statusDisabledByOperator": "Les cartes de statut sont actuellement indisponibles sur ce serveur.",
"correlationsDisabledByOperator": "La narration des corrélations est actuellement indisponible sur ce serveur.",
"recommendationsTitle": "Recommandations",
"personalRecord": {
"badge": "PR",
@@ -1023,6 +1026,7 @@
"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.",
"disabledByOperator": "Le Coach est actuellement indisponible sur ce serveur.",
"threadEmpty": "Ask anything about your trends, medications, or readings to start a conversation.",
"historyTitle": "Conversations",
"historySearchPlaceholder": "Search conversations…",
+4
View File
@@ -867,6 +867,9 @@
"heroFindingAttention": "Worth attention",
"heroFindingWarning": "Top alert",
"correlationsTitle": "Correlazioni",
"briefingDisabledByOperator": "Il Briefing giornaliero non è attualmente disponibile su questo server.",
"statusDisabledByOperator": "Le schede di stato non sono attualmente disponibili su questo server.",
"correlationsDisabledByOperator": "La narrazione delle correlazioni non è attualmente disponibile su questo server.",
"recommendationsTitle": "Raccomandazioni",
"personalRecord": {
"badge": "PR",
@@ -1023,6 +1026,7 @@
"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.",
"disabledByOperator": "Il Coach non è attualmente disponibile su questo server.",
"threadEmpty": "Ask anything about your trends, medications, or readings to start a conversation.",
"historyTitle": "Conversations",
"historySearchPlaceholder": "Search conversations…",
+4
View File
@@ -867,6 +867,9 @@
"heroFindingAttention": "Worth attention",
"heroFindingWarning": "Top alert",
"correlationsTitle": "Korelacje",
"briefingDisabledByOperator": "Codzienny Briefing jest obecnie niedostępny na tym serwerze.",
"statusDisabledByOperator": "Karty statusu są obecnie niedostępne na tym serwerze.",
"correlationsDisabledByOperator": "Narracja korelacji jest obecnie niedostępna na tym serwerze.",
"recommendationsTitle": "Rekomendacje",
"personalRecord": {
"badge": "PR",
@@ -1023,6 +1026,7 @@
"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.",
"disabledByOperator": "Coach jest obecnie niedostępny na tym serwerze.",
"threadEmpty": "Ask anything about your trends, medications, or readings to start a conversation.",
"historyTitle": "Conversations",
"historySearchPlaceholder": "Search conversations…",
@@ -32,9 +32,9 @@ interface AssistantDisabledNoticeProps {
const SURFACE_LABEL_KEY: Record<AssistantDisabledSurface, string> = {
coach: "insights.coach.disabledByOperator",
briefing: "insights.briefing.disabledByOperator",
insightStatus: "insights.status.disabledByOperator",
correlations: "insights.correlations.disabledByOperator",
briefing: "insights.briefingDisabledByOperator",
insightStatus: "insights.statusDisabledByOperator",
correlations: "insights.correlationsDisabledByOperator",
};
export function AssistantDisabledNotice({