diff --git a/messages/de.json b/messages/de.json index 74202e7b6..e6ce09d85 100644 --- a/messages/de.json +++ b/messages/de.json @@ -477,6 +477,8 @@ "categoryDigestive": "Magen/Darm", "categorySkin": "Hautpflege", "categorySleepAid": "Schlafmittel", + "categoryDiabetes": "Diabetes", + "categoryAntibiotic": "Antibiotikum", "categoryOther": "Sonstiges", "daysSun": "So", "daysMon": "Mo", @@ -748,119 +750,157 @@ "help": "Ältere Pläne nutzen noch ein Zeitfenster-Paar. Neue Pläne nutzen die Uhrzeiten oben — das Fenster bleibt aus Kompatibilitätsgründen erhalten und entfällt in einer späteren Version." } }, - "create": { - "wizard": { - "page": { - "backToList": "Zurück zu den Medikamenten" - }, - "header": { - "stepOf": "Schritt {current} von {total}", - "title": { - "step1": "Wie heißt das Medikament und was ist eine Einzeldosis?", - "step2": "Ist das eine einmalige Dosis oder nimmst du es regelmäßig?", - "step3": "Wie oft?", - "step4": "Etwas Besonderes zu den Tagen?", - "step5": "Zu welcher Uhrzeit?", - "step6": "Wann beginnt der Plan? Wann endet er (falls überhaupt)?", - "step7": "Erinnerungen und Übersicht" - } - }, + "wizard": { + "header": { + "stepOf": "Schritt {current} von {total}", + "createTitle": "Neues Medikament", + "editTitle": "{name} bearbeiten" + }, + "nav": { + "back": "Zurück", + "next": "Weiter", + "save": "Speichern", + "saveEdit": "Änderungen speichern" + }, + "nl": { + "button": "Beschreiben" + }, + "steps": { "step1": { - "name": { - "label": "Name", - "placeholder": "z. B. Mounjaro, Ibuprofen, Vitamin D" - }, - "dose": { - "amount": { - "label": "Dosis", - "placeholder": "z. B. 5" - }, - "unit": { - "label": "Einheit", - "mg": "mg", - "g": "g", - "ml": "ml", - "iu": "I.E.", - "tablets": "Tabletten", - "drops": "Tropfen", - "puffs": "Hübe", - "sprays": "Sprühstöße", - "capsules": "Kapseln", - "pieces": "Stück", - "other": "andere" - } - }, - "naturalLanguage": { - "button": "✨ Beschreiben", - "placeholderCopy": "Beschreibe das Medikament in eigenen Worten — der Assistent füllt die Schritte für dich aus." - } + "title": "Wie heißt das Medikament?", + "subline": "Genau so wie es auf der Packung steht.", + "label": "Name", + "placeholder": "z. B. Ramipril" }, "step2": { - "oneShot": { - "title": "Einmaldosis", - "description": "Ein einzelner Termin — Grippeimpfung, Spritze, die letzte Dosis einer Kur." - }, - "recurring": { - "title": "Wiederkehrend", - "description": "Ein Medikament, das du nach einem Plan nimmst — täglich oder anders." - } + "title": "Was für ein Medikament ist das?", + "subline": "Wir nutzen das für passende Vorlagen und Auswertungen." }, "step3": { - "helper": "Wähle das Muster, das zu deiner Einnahme passt. Unteroptionen erscheinen, sobald du eines auswählst." + "title": "Wie hoch ist die Dosis?", + "subline": "Eine Tablette, ein Hub, ein Tropfen — je nach Form.", + "amountLabel": "Menge", + "amountPlaceholder": "z. B. 5", + "unitLabel": "Einheit", + "unit": { + "mg": "mg", + "ml": "ml", + "iu": "I.E.", + "mcg": "µg", + "g": "g", + "tablets": "Tablette(n)", + "capsules": "Kapsel(n)", + "drops": "Tropfen", + "puffs": "Hub", + "sprays": "Sprühstoß", + "pieces": "Stück", + "other": "Sonstige" + } }, "step4": { - "recap": "Das hast du gewählt. Tippe auf Zurück, wenn etwas nicht passt.", - "oneShotSkipped": "(übersprungen — Einmaldosis)" + "title": "Über welchen Zeitraum nimmst du es?", + "subline": "Heute reicht ein Startdatum. Ein Ende kannst du später setzen." }, "step5": { - "helper": "Füge eine oder mehrere Uhrzeiten hinzu. Zu jeder Uhrzeit wird eine Erinnerung gesendet.", - "oneShotDate": { - "label": "Datum der Einmaldosis", - "helper": "Wir verwenden dieses Datum für die Erinnerung und für die Einnahmehistorie." - } + "title": "Wie oft nimmst du es?", + "subline": "Wähle die Regelmäßigkeit — die Details kommen im nächsten Schritt." }, "step6": { - "helper": "Der Plan läuft ab dem Startdatum. Lass das Enddatum offen, wenn du es dauerhaft nimmst." - }, - "step7": { - "reminders": { - "label": "Erinnerungen an", - "description": "Sendet eine Push-Benachrichtigung an deine konfigurierten Kanäle zu jeder geplanten Uhrzeit." + "title": "Wie sieht das im Detail aus?", + "subline": "Trage Wochentage, Intervalle oder den Tag im Monat ein.", + "intervalWeeks": { + "label": "Alle", + "suffix": "Wochen" }, - "summary": { - "title": "Übersicht", - "cadence": { - "daily": "Jeden Tag", - "weekdays": "An ausgewählten Wochentagen", - "weekly": "Einmal pro Woche", - "biweekly": "Alle zwei Wochen", - "monthly": "Monatlich", - "quarterly": "Alle drei Monate", - "yearly": "Einmal im Jahr", - "rolling": "Alle {n} Tage seit der letzten Einnahme", - "oneShot": "Eine Einmaldosis", - "everyNWeeks": "Alle {n} Wochen", - "everyNMonths": "Alle {n} Monate" - }, - "weekdaysDetail": ", an {days}", - "dayOfMonthDetail": ", am {day}.", - "everyNMonthsDetail": ", alle {months} Monate am {day}.", - "yearlyDetail": ", am {date}.", - "times": "um {times}", - "startsOn": "Beginn: {date}", - "endsOn": "Ende: {date}", - "noEndDate": "Kein Enddatum" + "dayOfMonth": { + "label": "Am", + "suffix": "Tag des Monats" + }, + "rollingDays": { + "label": "Alle", + "suffix": "Tage ab der letzten Einnahme" } }, - "nav": { - "back": "Zurück", - "next": "Weiter", - "create": "Medikament anlegen" + "step7": { + "title": "Wann nimmst du es?", + "subline": "Eine oder mehrere Uhrzeiten — die Erinnerungen richten sich danach.", + "presetsLabel": "Tagespresets", + "presets": { + "morning": "Morgens", + "noon": "Mittags", + "evening": "Abends", + "night": "Nachts" + } }, - "errors": { - "submitFailed": "Medikament konnte nicht angelegt werden — bitte erneut versuchen.", - "fieldRequired": "Pflichtfeld" + "step8": { + "title": "Fertig — soll HealthLog dich erinnern?", + "subline": "Du kannst alles unten nochmal prüfen, bevor du speicherst.", + "remindersLabel": "Erinnerungen aktiv", + "remindersDescription": "Push, Telegram oder ntfy — je nach deinen Einstellungen.", + "multiScheduleNote": "Dieses Medikament hat mehrere Zeitpläne. Den Detail-Editor öffnen wir in einer späteren Version." } + }, + "classRow": { + "bloodPressure": "Blutdruck", + "diabetes": "Diabetes", + "hormone": "Hormone", + "glp1": "GLP-1-Injektion", + "painRelief": "Schmerz", + "allergy": "Allergie", + "vitamin": "Vitamine", + "supplement": "Nahrungsergänzung", + "antibiotic": "Antibiotikum", + "other": "Sonstiges" + }, + "cadence": { + "daily": { + "label": "Täglich", + "description": "Jeden Tag, immer zur gleichen Uhrzeit." + }, + "weekdays": { + "label": "Bestimmte Wochentage", + "description": "Z. B. Montag, Mittwoch, Freitag." + }, + "everyNWeeks": { + "label": "Alle X Wochen", + "description": "Z. B. alle 2 Wochen Donnerstags (GLP-1, Biologika)." + }, + "monthly": { + "label": "Monatlich", + "description": "An einem festen Tag im Monat (z. B. immer am 1.)." + }, + "rolling": { + "label": "Flexibel ab letzter Einnahme", + "description": "Du lässt den nächsten Termin offen, drückst 'genommen' wenn du sie genommen hast — ab dem Zeitpunkt zählt der Counter wieder." + }, + "oneShot": { + "label": "Einmalig", + "description": "Einzelgabe, zum Beispiel eine Impfung oder ein Antibiotikum." + } + }, + "summary": { + "title": "Übersicht", + "cadence": { + "daily": "Jeden Tag", + "weekdays": "An ausgewählten Wochentagen", + "biweekly": "Alle zwei Wochen", + "monthly": "Monatlich", + "quarterly": "Alle drei Monate", + "yearly": "Einmal im Jahr", + "rolling": "Alle {n} Tage seit der letzten Einnahme", + "oneShot": "Eine Einmaldosis", + "everyNWeeks": "Alle {n} Wochen", + "everyNMonths": "Alle {n} Monate" + }, + "weekdaysDetail": ", an {days}", + "dayOfMonthDetail": ", am {day}.", + "times": "um {times}", + "startsOn": "Beginn: {date}", + "endsOn": "Ende: {date}", + "noEndDate": "Kein Enddatum" + }, + "errors": { + "submitFailed": "Medikament konnte nicht gespeichert werden — bitte erneut versuchen." } }, "titration": { diff --git a/messages/en.json b/messages/en.json index 0fb78fa1a..0d1c2030d 100644 --- a/messages/en.json +++ b/messages/en.json @@ -477,6 +477,8 @@ "categoryDigestive": "Gastrointestinal", "categorySkin": "Skincare", "categorySleepAid": "Sleep Aid", + "categoryDiabetes": "Diabetes", + "categoryAntibiotic": "Antibiotic", "categoryOther": "Other", "daysSun": "Sun", "daysMon": "Mon", @@ -748,119 +750,157 @@ "help": "Older schedules still use a window pair. New schedules use times of day above — the window stays for backwards compatibility and is dropped in a future release." } }, - "create": { - "wizard": { - "page": { - "backToList": "Back to medications" - }, - "header": { - "stepOf": "Step {current} of {total}", - "title": { - "step1": "What's the medication called and what's a single dose?", - "step2": "Is this a one-time dose, or do you take it regularly?", - "step3": "How often?", - "step4": "Anything special about the days?", - "step5": "What time(s) of day?", - "step6": "When does the schedule start? When does it end (if ever)?", - "step7": "Reminders and summary" - } - }, + "wizard": { + "header": { + "stepOf": "Step {current} of {total}", + "createTitle": "New medication", + "editTitle": "Edit {name}" + }, + "nav": { + "back": "Back", + "next": "Next", + "save": "Save", + "saveEdit": "Save changes" + }, + "nl": { + "button": "Describe" + }, + "steps": { "step1": { - "name": { - "label": "Name", - "placeholder": "e.g. Mounjaro, Ibuprofen, Vitamin D" - }, - "dose": { - "amount": { - "label": "Dose", - "placeholder": "e.g. 5" - }, - "unit": { - "label": "Unit", - "mg": "mg", - "g": "g", - "ml": "ml", - "iu": "IU", - "tablets": "tablets", - "drops": "drops", - "puffs": "puffs", - "sprays": "sprays", - "capsules": "capsules", - "pieces": "pieces", - "other": "other" - } - }, - "naturalLanguage": { - "button": "✨ Describe it", - "placeholderCopy": "Type the medication in your own words and we will pre-fill the wizard." - } + "title": "What's the medication called?", + "subline": "Exactly as it appears on the box.", + "label": "Name", + "placeholder": "e.g. Ramipril" }, "step2": { - "oneShot": { - "title": "One-time dose", - "description": "A single appointment — flu shot, vaccine, the last dose of a course." - }, - "recurring": { - "title": "Recurring", - "description": "A medication you take on a schedule, daily or otherwise." - } + "title": "What kind of medication is it?", + "subline": "We use this for the right templates and analytics." }, "step3": { - "helper": "Pick the pattern that matches how often you take it. Sub-options appear once you choose." + "title": "What's the dose?", + "subline": "A tablet, a puff, a drop — depending on the form.", + "amountLabel": "Amount", + "amountPlaceholder": "e.g. 5", + "unitLabel": "Unit", + "unit": { + "mg": "mg", + "ml": "ml", + "iu": "IU", + "mcg": "µg", + "g": "g", + "tablets": "tablet(s)", + "capsules": "capsule(s)", + "drops": "drops", + "puffs": "puff", + "sprays": "spray", + "pieces": "pieces", + "other": "other" + } }, "step4": { - "recap": "Here's the cadence you picked. Tap Back if anything looks wrong.", - "oneShotSkipped": "(skipped — one-time dose)" + "title": "Over what period are you taking it?", + "subline": "A start date is enough for today. You can add an end date later." }, "step5": { - "helper": "Add one or more times of day. Reminders fire at each entry.", - "oneShotDate": { - "label": "Date of the single dose", - "helper": "We use this date to schedule the reminder and to log the intake." - } + "title": "How often do you take it?", + "subline": "Pick the cadence — the details follow on the next step." }, "step6": { - "helper": "The schedule runs from the start date. Leave the end date open if you take it indefinitely." - }, - "step7": { - "reminders": { - "label": "Reminders on", - "description": "Send a push to your configured channels at every scheduled time." + "title": "What does that look like in detail?", + "subline": "Set weekdays, intervals, or the day of the month.", + "intervalWeeks": { + "label": "Every", + "suffix": "weeks" }, - "summary": { - "title": "Summary", - "cadence": { - "daily": "Every day", - "weekdays": "On selected days of the week", - "weekly": "Once a week", - "biweekly": "Every two weeks", - "monthly": "Monthly", - "quarterly": "Every three months", - "yearly": "Once a year", - "rolling": "Every {n} days from your last intake", - "oneShot": "A single dose", - "everyNWeeks": "Every {n} weeks", - "everyNMonths": "Every {n} months" - }, - "weekdaysDetail": ", on {days}", - "dayOfMonthDetail": ", on day {day}.", - "everyNMonthsDetail": ", every {months} months on day {day}.", - "yearlyDetail": ", on {date}.", - "times": "at {times}", - "startsOn": "Starts: {date}", - "endsOn": "Ends: {date}", - "noEndDate": "No end date" + "dayOfMonth": { + "label": "On", + "suffix": "day of the month" + }, + "rollingDays": { + "label": "Every", + "suffix": "days from the last intake" } }, - "nav": { - "back": "Back", - "next": "Next", - "create": "Create medication" + "step7": { + "title": "When do you take it?", + "subline": "One or more times of day — reminders follow this list.", + "presetsLabel": "Time-of-day presets", + "presets": { + "morning": "Morning", + "noon": "Noon", + "evening": "Evening", + "night": "Night" + } }, - "errors": { - "submitFailed": "Could not create the medication — please retry.", - "fieldRequired": "Required" + "step8": { + "title": "All done — should HealthLog remind you?", + "subline": "Review everything below before you save.", + "remindersLabel": "Reminders on", + "remindersDescription": "Push, Telegram or ntfy — based on your settings.", + "multiScheduleNote": "This medication has multiple schedules. The detailed editor returns in a later release." } + }, + "classRow": { + "bloodPressure": "Blood pressure", + "diabetes": "Diabetes", + "hormone": "Hormones", + "glp1": "GLP-1 injection", + "painRelief": "Pain", + "allergy": "Allergy", + "vitamin": "Vitamins", + "supplement": "Supplement", + "antibiotic": "Antibiotic", + "other": "Other" + }, + "cadence": { + "daily": { + "label": "Daily", + "description": "Every day at the same time." + }, + "weekdays": { + "label": "Specific weekdays", + "description": "E.g. Monday, Wednesday, Friday." + }, + "everyNWeeks": { + "label": "Every few weeks", + "description": "E.g. every 2 weeks on Thursdays (GLP-1, biologics)." + }, + "monthly": { + "label": "Monthly", + "description": "On a fixed day each month (e.g. always the 1st)." + }, + "rolling": { + "label": "Flexible from last dose", + "description": "Leave the next dose open. When you tap 'taken', the counter starts again from that moment." + }, + "oneShot": { + "label": "Single dose", + "description": "One administration, e.g. a vaccine or an antibiotic course." + } + }, + "summary": { + "title": "Summary", + "cadence": { + "daily": "Every day", + "weekdays": "On selected days of the week", + "biweekly": "Every two weeks", + "monthly": "Monthly", + "quarterly": "Every three months", + "yearly": "Once a year", + "rolling": "Every {n} days from your last intake", + "oneShot": "A single dose", + "everyNWeeks": "Every {n} weeks", + "everyNMonths": "Every {n} months" + }, + "weekdaysDetail": ", on {days}", + "dayOfMonthDetail": ", on day {day}.", + "times": "at {times}", + "startsOn": "Starts: {date}", + "endsOn": "Ends: {date}", + "noEndDate": "No end date" + }, + "errors": { + "submitFailed": "Could not save the medication — please retry." } }, "titration": { diff --git a/messages/es.json b/messages/es.json index 1c8d81c3c..d7c3ca060 100644 --- a/messages/es.json +++ b/messages/es.json @@ -477,6 +477,8 @@ "categoryDigestive": "Digestivo", "categorySkin": "Cuidado de la piel", "categorySleepAid": "Para dormir", + "categoryDiabetes": "Diabetes", + "categoryAntibiotic": "Antibiotic", "categoryOther": "Otros", "daysSun": "Do", "daysMon": "Lu", @@ -748,119 +750,157 @@ "help": "Older schedules still use a window pair. New schedules use times of day above — the window stays for backwards compatibility and is dropped in a future release." } }, - "create": { - "wizard": { - "page": { - "backToList": "Back to medications" - }, - "header": { - "stepOf": "Step {current} of {total}", - "title": { - "step1": "What's the medication called and what's a single dose?", - "step2": "Is this a one-time dose, or do you take it regularly?", - "step3": "How often?", - "step4": "Anything special about the days?", - "step5": "What time(s) of day?", - "step6": "When does the schedule start? When does it end (if ever)?", - "step7": "Reminders and summary" - } - }, + "wizard": { + "header": { + "stepOf": "Step {current} of {total}", + "createTitle": "New medication", + "editTitle": "Edit {name}" + }, + "nav": { + "back": "Back", + "next": "Next", + "save": "Save", + "saveEdit": "Save changes" + }, + "nl": { + "button": "Describe" + }, + "steps": { "step1": { - "name": { - "label": "Name", - "placeholder": "e.g. Mounjaro, Ibuprofen, Vitamin D" - }, - "dose": { - "amount": { - "label": "Dose", - "placeholder": "e.g. 5" - }, - "unit": { - "label": "Unit", - "mg": "mg", - "g": "g", - "ml": "ml", - "iu": "IU", - "tablets": "tablets", - "drops": "drops", - "puffs": "puffs", - "sprays": "sprays", - "capsules": "capsules", - "pieces": "pieces", - "other": "other" - } - }, - "naturalLanguage": { - "button": "✨ Describe it", - "placeholderCopy": "Type the medication in your own words and we will pre-fill the wizard." - } + "title": "What's the medication called?", + "subline": "Exactly as it appears on the box.", + "label": "Name", + "placeholder": "e.g. Ramipril" }, "step2": { - "oneShot": { - "title": "One-time dose", - "description": "A single appointment — flu shot, vaccine, the last dose of a course." - }, - "recurring": { - "title": "Recurring", - "description": "A medication you take on a schedule, daily or otherwise." - } + "title": "What kind of medication is it?", + "subline": "We use this for the right templates and analytics." }, "step3": { - "helper": "Pick the pattern that matches how often you take it. Sub-options appear once you choose." + "title": "What's the dose?", + "subline": "A tablet, a puff, a drop — depending on the form.", + "amountLabel": "Amount", + "amountPlaceholder": "e.g. 5", + "unitLabel": "Unit", + "unit": { + "mg": "mg", + "ml": "ml", + "iu": "IU", + "mcg": "µg", + "g": "g", + "tablets": "tablet(s)", + "capsules": "capsule(s)", + "drops": "drops", + "puffs": "puff", + "sprays": "spray", + "pieces": "pieces", + "other": "other" + } }, "step4": { - "recap": "Here's the cadence you picked. Tap Back if anything looks wrong.", - "oneShotSkipped": "(skipped — one-time dose)" + "title": "Over what period are you taking it?", + "subline": "A start date is enough for today. You can add an end date later." }, "step5": { - "helper": "Add one or more times of day. Reminders fire at each entry.", - "oneShotDate": { - "label": "Date of the single dose", - "helper": "We use this date to schedule the reminder and to log the intake." - } + "title": "How often do you take it?", + "subline": "Pick the cadence — the details follow on the next step." }, "step6": { - "helper": "The schedule runs from the start date. Leave the end date open if you take it indefinitely." - }, - "step7": { - "reminders": { - "label": "Reminders on", - "description": "Send a push to your configured channels at every scheduled time." + "title": "What does that look like in detail?", + "subline": "Set weekdays, intervals, or the day of the month.", + "intervalWeeks": { + "label": "Every", + "suffix": "weeks" }, - "summary": { - "title": "Summary", - "cadence": { - "daily": "Every day", - "weekdays": "On selected days of the week", - "weekly": "Once a week", - "biweekly": "Every two weeks", - "monthly": "Monthly", - "quarterly": "Every three months", - "yearly": "Once a year", - "rolling": "Every {n} days from your last intake", - "oneShot": "A single dose", - "everyNWeeks": "Every {n} weeks", - "everyNMonths": "Every {n} months" - }, - "weekdaysDetail": ", on {days}", - "dayOfMonthDetail": ", on day {day}.", - "everyNMonthsDetail": ", every {months} months on day {day}.", - "yearlyDetail": ", on {date}.", - "times": "at {times}", - "startsOn": "Starts: {date}", - "endsOn": "Ends: {date}", - "noEndDate": "No end date" + "dayOfMonth": { + "label": "On", + "suffix": "day of the month" + }, + "rollingDays": { + "label": "Every", + "suffix": "days from the last intake" } }, - "nav": { - "back": "Back", - "next": "Next", - "create": "Create medication" + "step7": { + "title": "When do you take it?", + "subline": "One or more times of day — reminders follow this list.", + "presetsLabel": "Time-of-day presets", + "presets": { + "morning": "Morning", + "noon": "Noon", + "evening": "Evening", + "night": "Night" + } }, - "errors": { - "submitFailed": "Could not create the medication — please retry.", - "fieldRequired": "Required" + "step8": { + "title": "All done — should HealthLog remind you?", + "subline": "Review everything below before you save.", + "remindersLabel": "Reminders on", + "remindersDescription": "Push, Telegram or ntfy — based on your settings.", + "multiScheduleNote": "This medication has multiple schedules. The detailed editor returns in a later release." } + }, + "classRow": { + "bloodPressure": "Blood pressure", + "diabetes": "Diabetes", + "hormone": "Hormones", + "glp1": "GLP-1 injection", + "painRelief": "Pain", + "allergy": "Allergy", + "vitamin": "Vitamins", + "supplement": "Supplement", + "antibiotic": "Antibiotic", + "other": "Other" + }, + "cadence": { + "daily": { + "label": "Daily", + "description": "Every day at the same time." + }, + "weekdays": { + "label": "Specific weekdays", + "description": "E.g. Monday, Wednesday, Friday." + }, + "everyNWeeks": { + "label": "Every few weeks", + "description": "E.g. every 2 weeks on Thursdays (GLP-1, biologics)." + }, + "monthly": { + "label": "Monthly", + "description": "On a fixed day each month (e.g. always the 1st)." + }, + "rolling": { + "label": "Flexible from last dose", + "description": "Leave the next dose open. When you tap 'taken', the counter starts again from that moment." + }, + "oneShot": { + "label": "Single dose", + "description": "One administration, e.g. a vaccine or an antibiotic course." + } + }, + "summary": { + "title": "Summary", + "cadence": { + "daily": "Every day", + "weekdays": "On selected days of the week", + "biweekly": "Every two weeks", + "monthly": "Monthly", + "quarterly": "Every three months", + "yearly": "Once a year", + "rolling": "Every {n} days from your last intake", + "oneShot": "A single dose", + "everyNWeeks": "Every {n} weeks", + "everyNMonths": "Every {n} months" + }, + "weekdaysDetail": ", on {days}", + "dayOfMonthDetail": ", on day {day}.", + "times": "at {times}", + "startsOn": "Starts: {date}", + "endsOn": "Ends: {date}", + "noEndDate": "No end date" + }, + "errors": { + "submitFailed": "Could not save the medication — please retry." } }, "titration": { diff --git a/messages/fr.json b/messages/fr.json index 498bf2702..ac4f61a73 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -477,6 +477,8 @@ "categoryDigestive": "Digestif", "categorySkin": "Soin de la peau", "categorySleepAid": "Aide au sommeil", + "categoryDiabetes": "Diabetes", + "categoryAntibiotic": "Antibiotic", "categoryOther": "Autres", "daysSun": "Dim", "daysMon": "Lun", @@ -748,119 +750,157 @@ "help": "Older schedules still use a window pair. New schedules use times of day above — the window stays for backwards compatibility and is dropped in a future release." } }, - "create": { - "wizard": { - "page": { - "backToList": "Back to medications" - }, - "header": { - "stepOf": "Step {current} of {total}", - "title": { - "step1": "What's the medication called and what's a single dose?", - "step2": "Is this a one-time dose, or do you take it regularly?", - "step3": "How often?", - "step4": "Anything special about the days?", - "step5": "What time(s) of day?", - "step6": "When does the schedule start? When does it end (if ever)?", - "step7": "Reminders and summary" - } - }, + "wizard": { + "header": { + "stepOf": "Step {current} of {total}", + "createTitle": "New medication", + "editTitle": "Edit {name}" + }, + "nav": { + "back": "Back", + "next": "Next", + "save": "Save", + "saveEdit": "Save changes" + }, + "nl": { + "button": "Describe" + }, + "steps": { "step1": { - "name": { - "label": "Name", - "placeholder": "e.g. Mounjaro, Ibuprofen, Vitamin D" - }, - "dose": { - "amount": { - "label": "Dose", - "placeholder": "e.g. 5" - }, - "unit": { - "label": "Unit", - "mg": "mg", - "g": "g", - "ml": "ml", - "iu": "IU", - "tablets": "tablets", - "drops": "drops", - "puffs": "puffs", - "sprays": "sprays", - "capsules": "capsules", - "pieces": "pieces", - "other": "other" - } - }, - "naturalLanguage": { - "button": "✨ Describe it", - "placeholderCopy": "Type the medication in your own words and we will pre-fill the wizard." - } + "title": "What's the medication called?", + "subline": "Exactly as it appears on the box.", + "label": "Name", + "placeholder": "e.g. Ramipril" }, "step2": { - "oneShot": { - "title": "One-time dose", - "description": "A single appointment — flu shot, vaccine, the last dose of a course." - }, - "recurring": { - "title": "Recurring", - "description": "A medication you take on a schedule, daily or otherwise." - } + "title": "What kind of medication is it?", + "subline": "We use this for the right templates and analytics." }, "step3": { - "helper": "Pick the pattern that matches how often you take it. Sub-options appear once you choose." + "title": "What's the dose?", + "subline": "A tablet, a puff, a drop — depending on the form.", + "amountLabel": "Amount", + "amountPlaceholder": "e.g. 5", + "unitLabel": "Unit", + "unit": { + "mg": "mg", + "ml": "ml", + "iu": "IU", + "mcg": "µg", + "g": "g", + "tablets": "tablet(s)", + "capsules": "capsule(s)", + "drops": "drops", + "puffs": "puff", + "sprays": "spray", + "pieces": "pieces", + "other": "other" + } }, "step4": { - "recap": "Here's the cadence you picked. Tap Back if anything looks wrong.", - "oneShotSkipped": "(skipped — one-time dose)" + "title": "Over what period are you taking it?", + "subline": "A start date is enough for today. You can add an end date later." }, "step5": { - "helper": "Add one or more times of day. Reminders fire at each entry.", - "oneShotDate": { - "label": "Date of the single dose", - "helper": "We use this date to schedule the reminder and to log the intake." - } + "title": "How often do you take it?", + "subline": "Pick the cadence — the details follow on the next step." }, "step6": { - "helper": "The schedule runs from the start date. Leave the end date open if you take it indefinitely." - }, - "step7": { - "reminders": { - "label": "Reminders on", - "description": "Send a push to your configured channels at every scheduled time." + "title": "What does that look like in detail?", + "subline": "Set weekdays, intervals, or the day of the month.", + "intervalWeeks": { + "label": "Every", + "suffix": "weeks" }, - "summary": { - "title": "Summary", - "cadence": { - "daily": "Every day", - "weekdays": "On selected days of the week", - "weekly": "Once a week", - "biweekly": "Every two weeks", - "monthly": "Monthly", - "quarterly": "Every three months", - "yearly": "Once a year", - "rolling": "Every {n} days from your last intake", - "oneShot": "A single dose", - "everyNWeeks": "Every {n} weeks", - "everyNMonths": "Every {n} months" - }, - "weekdaysDetail": ", on {days}", - "dayOfMonthDetail": ", on day {day}.", - "everyNMonthsDetail": ", every {months} months on day {day}.", - "yearlyDetail": ", on {date}.", - "times": "at {times}", - "startsOn": "Starts: {date}", - "endsOn": "Ends: {date}", - "noEndDate": "No end date" + "dayOfMonth": { + "label": "On", + "suffix": "day of the month" + }, + "rollingDays": { + "label": "Every", + "suffix": "days from the last intake" } }, - "nav": { - "back": "Back", - "next": "Next", - "create": "Create medication" + "step7": { + "title": "When do you take it?", + "subline": "One or more times of day — reminders follow this list.", + "presetsLabel": "Time-of-day presets", + "presets": { + "morning": "Morning", + "noon": "Noon", + "evening": "Evening", + "night": "Night" + } }, - "errors": { - "submitFailed": "Could not create the medication — please retry.", - "fieldRequired": "Required" + "step8": { + "title": "All done — should HealthLog remind you?", + "subline": "Review everything below before you save.", + "remindersLabel": "Reminders on", + "remindersDescription": "Push, Telegram or ntfy — based on your settings.", + "multiScheduleNote": "This medication has multiple schedules. The detailed editor returns in a later release." } + }, + "classRow": { + "bloodPressure": "Blood pressure", + "diabetes": "Diabetes", + "hormone": "Hormones", + "glp1": "GLP-1 injection", + "painRelief": "Pain", + "allergy": "Allergy", + "vitamin": "Vitamins", + "supplement": "Supplement", + "antibiotic": "Antibiotic", + "other": "Other" + }, + "cadence": { + "daily": { + "label": "Daily", + "description": "Every day at the same time." + }, + "weekdays": { + "label": "Specific weekdays", + "description": "E.g. Monday, Wednesday, Friday." + }, + "everyNWeeks": { + "label": "Every few weeks", + "description": "E.g. every 2 weeks on Thursdays (GLP-1, biologics)." + }, + "monthly": { + "label": "Monthly", + "description": "On a fixed day each month (e.g. always the 1st)." + }, + "rolling": { + "label": "Flexible from last dose", + "description": "Leave the next dose open. When you tap 'taken', the counter starts again from that moment." + }, + "oneShot": { + "label": "Single dose", + "description": "One administration, e.g. a vaccine or an antibiotic course." + } + }, + "summary": { + "title": "Summary", + "cadence": { + "daily": "Every day", + "weekdays": "On selected days of the week", + "biweekly": "Every two weeks", + "monthly": "Monthly", + "quarterly": "Every three months", + "yearly": "Once a year", + "rolling": "Every {n} days from your last intake", + "oneShot": "A single dose", + "everyNWeeks": "Every {n} weeks", + "everyNMonths": "Every {n} months" + }, + "weekdaysDetail": ", on {days}", + "dayOfMonthDetail": ", on day {day}.", + "times": "at {times}", + "startsOn": "Starts: {date}", + "endsOn": "Ends: {date}", + "noEndDate": "No end date" + }, + "errors": { + "submitFailed": "Could not save the medication — please retry." } }, "titration": { diff --git a/messages/it.json b/messages/it.json index 22bfe173c..2e29e239a 100644 --- a/messages/it.json +++ b/messages/it.json @@ -477,6 +477,8 @@ "categoryDigestive": "Digestivo", "categorySkin": "Cura della pelle", "categorySleepAid": "Per dormire", + "categoryDiabetes": "Diabetes", + "categoryAntibiotic": "Antibiotic", "categoryOther": "Altro", "daysSun": "Dom", "daysMon": "Lun", @@ -748,119 +750,157 @@ "help": "Older schedules still use a window pair. New schedules use times of day above — the window stays for backwards compatibility and is dropped in a future release." } }, - "create": { - "wizard": { - "page": { - "backToList": "Back to medications" - }, - "header": { - "stepOf": "Step {current} of {total}", - "title": { - "step1": "What's the medication called and what's a single dose?", - "step2": "Is this a one-time dose, or do you take it regularly?", - "step3": "How often?", - "step4": "Anything special about the days?", - "step5": "What time(s) of day?", - "step6": "When does the schedule start? When does it end (if ever)?", - "step7": "Reminders and summary" - } - }, + "wizard": { + "header": { + "stepOf": "Step {current} of {total}", + "createTitle": "New medication", + "editTitle": "Edit {name}" + }, + "nav": { + "back": "Back", + "next": "Next", + "save": "Save", + "saveEdit": "Save changes" + }, + "nl": { + "button": "Describe" + }, + "steps": { "step1": { - "name": { - "label": "Name", - "placeholder": "e.g. Mounjaro, Ibuprofen, Vitamin D" - }, - "dose": { - "amount": { - "label": "Dose", - "placeholder": "e.g. 5" - }, - "unit": { - "label": "Unit", - "mg": "mg", - "g": "g", - "ml": "ml", - "iu": "IU", - "tablets": "tablets", - "drops": "drops", - "puffs": "puffs", - "sprays": "sprays", - "capsules": "capsules", - "pieces": "pieces", - "other": "other" - } - }, - "naturalLanguage": { - "button": "✨ Describe it", - "placeholderCopy": "Type the medication in your own words and we will pre-fill the wizard." - } + "title": "What's the medication called?", + "subline": "Exactly as it appears on the box.", + "label": "Name", + "placeholder": "e.g. Ramipril" }, "step2": { - "oneShot": { - "title": "One-time dose", - "description": "A single appointment — flu shot, vaccine, the last dose of a course." - }, - "recurring": { - "title": "Recurring", - "description": "A medication you take on a schedule, daily or otherwise." - } + "title": "What kind of medication is it?", + "subline": "We use this for the right templates and analytics." }, "step3": { - "helper": "Pick the pattern that matches how often you take it. Sub-options appear once you choose." + "title": "What's the dose?", + "subline": "A tablet, a puff, a drop — depending on the form.", + "amountLabel": "Amount", + "amountPlaceholder": "e.g. 5", + "unitLabel": "Unit", + "unit": { + "mg": "mg", + "ml": "ml", + "iu": "IU", + "mcg": "µg", + "g": "g", + "tablets": "tablet(s)", + "capsules": "capsule(s)", + "drops": "drops", + "puffs": "puff", + "sprays": "spray", + "pieces": "pieces", + "other": "other" + } }, "step4": { - "recap": "Here's the cadence you picked. Tap Back if anything looks wrong.", - "oneShotSkipped": "(skipped — one-time dose)" + "title": "Over what period are you taking it?", + "subline": "A start date is enough for today. You can add an end date later." }, "step5": { - "helper": "Add one or more times of day. Reminders fire at each entry.", - "oneShotDate": { - "label": "Date of the single dose", - "helper": "We use this date to schedule the reminder and to log the intake." - } + "title": "How often do you take it?", + "subline": "Pick the cadence — the details follow on the next step." }, "step6": { - "helper": "The schedule runs from the start date. Leave the end date open if you take it indefinitely." - }, - "step7": { - "reminders": { - "label": "Reminders on", - "description": "Send a push to your configured channels at every scheduled time." + "title": "What does that look like in detail?", + "subline": "Set weekdays, intervals, or the day of the month.", + "intervalWeeks": { + "label": "Every", + "suffix": "weeks" }, - "summary": { - "title": "Summary", - "cadence": { - "daily": "Every day", - "weekdays": "On selected days of the week", - "weekly": "Once a week", - "biweekly": "Every two weeks", - "monthly": "Monthly", - "quarterly": "Every three months", - "yearly": "Once a year", - "rolling": "Every {n} days from your last intake", - "oneShot": "A single dose", - "everyNWeeks": "Every {n} weeks", - "everyNMonths": "Every {n} months" - }, - "weekdaysDetail": ", on {days}", - "dayOfMonthDetail": ", on day {day}.", - "everyNMonthsDetail": ", every {months} months on day {day}.", - "yearlyDetail": ", on {date}.", - "times": "at {times}", - "startsOn": "Starts: {date}", - "endsOn": "Ends: {date}", - "noEndDate": "No end date" + "dayOfMonth": { + "label": "On", + "suffix": "day of the month" + }, + "rollingDays": { + "label": "Every", + "suffix": "days from the last intake" } }, - "nav": { - "back": "Back", - "next": "Next", - "create": "Create medication" + "step7": { + "title": "When do you take it?", + "subline": "One or more times of day — reminders follow this list.", + "presetsLabel": "Time-of-day presets", + "presets": { + "morning": "Morning", + "noon": "Noon", + "evening": "Evening", + "night": "Night" + } }, - "errors": { - "submitFailed": "Could not create the medication — please retry.", - "fieldRequired": "Required" + "step8": { + "title": "All done — should HealthLog remind you?", + "subline": "Review everything below before you save.", + "remindersLabel": "Reminders on", + "remindersDescription": "Push, Telegram or ntfy — based on your settings.", + "multiScheduleNote": "This medication has multiple schedules. The detailed editor returns in a later release." } + }, + "classRow": { + "bloodPressure": "Blood pressure", + "diabetes": "Diabetes", + "hormone": "Hormones", + "glp1": "GLP-1 injection", + "painRelief": "Pain", + "allergy": "Allergy", + "vitamin": "Vitamins", + "supplement": "Supplement", + "antibiotic": "Antibiotic", + "other": "Other" + }, + "cadence": { + "daily": { + "label": "Daily", + "description": "Every day at the same time." + }, + "weekdays": { + "label": "Specific weekdays", + "description": "E.g. Monday, Wednesday, Friday." + }, + "everyNWeeks": { + "label": "Every few weeks", + "description": "E.g. every 2 weeks on Thursdays (GLP-1, biologics)." + }, + "monthly": { + "label": "Monthly", + "description": "On a fixed day each month (e.g. always the 1st)." + }, + "rolling": { + "label": "Flexible from last dose", + "description": "Leave the next dose open. When you tap 'taken', the counter starts again from that moment." + }, + "oneShot": { + "label": "Single dose", + "description": "One administration, e.g. a vaccine or an antibiotic course." + } + }, + "summary": { + "title": "Summary", + "cadence": { + "daily": "Every day", + "weekdays": "On selected days of the week", + "biweekly": "Every two weeks", + "monthly": "Monthly", + "quarterly": "Every three months", + "yearly": "Once a year", + "rolling": "Every {n} days from your last intake", + "oneShot": "A single dose", + "everyNWeeks": "Every {n} weeks", + "everyNMonths": "Every {n} months" + }, + "weekdaysDetail": ", on {days}", + "dayOfMonthDetail": ", on day {day}.", + "times": "at {times}", + "startsOn": "Starts: {date}", + "endsOn": "Ends: {date}", + "noEndDate": "No end date" + }, + "errors": { + "submitFailed": "Could not save the medication — please retry." } }, "titration": { diff --git a/messages/pl.json b/messages/pl.json index 825378b9a..02f435542 100644 --- a/messages/pl.json +++ b/messages/pl.json @@ -477,6 +477,8 @@ "categoryDigestive": "Trawienne", "categorySkin": "Pielęgnacja skóry", "categorySleepAid": "Na sen", + "categoryDiabetes": "Diabetes", + "categoryAntibiotic": "Antibiotic", "categoryOther": "Inne", "daysSun": "Nd", "daysMon": "Pn", @@ -748,119 +750,157 @@ "help": "Older schedules still use a window pair. New schedules use times of day above — the window stays for backwards compatibility and is dropped in a future release." } }, - "create": { - "wizard": { - "page": { - "backToList": "Back to medications" - }, - "header": { - "stepOf": "Step {current} of {total}", - "title": { - "step1": "What's the medication called and what's a single dose?", - "step2": "Is this a one-time dose, or do you take it regularly?", - "step3": "How often?", - "step4": "Anything special about the days?", - "step5": "What time(s) of day?", - "step6": "When does the schedule start? When does it end (if ever)?", - "step7": "Reminders and summary" - } - }, + "wizard": { + "header": { + "stepOf": "Step {current} of {total}", + "createTitle": "New medication", + "editTitle": "Edit {name}" + }, + "nav": { + "back": "Back", + "next": "Next", + "save": "Save", + "saveEdit": "Save changes" + }, + "nl": { + "button": "Describe" + }, + "steps": { "step1": { - "name": { - "label": "Name", - "placeholder": "e.g. Mounjaro, Ibuprofen, Vitamin D" - }, - "dose": { - "amount": { - "label": "Dose", - "placeholder": "e.g. 5" - }, - "unit": { - "label": "Unit", - "mg": "mg", - "g": "g", - "ml": "ml", - "iu": "IU", - "tablets": "tablets", - "drops": "drops", - "puffs": "puffs", - "sprays": "sprays", - "capsules": "capsules", - "pieces": "pieces", - "other": "other" - } - }, - "naturalLanguage": { - "button": "✨ Describe it", - "placeholderCopy": "Type the medication in your own words and we will pre-fill the wizard." - } + "title": "What's the medication called?", + "subline": "Exactly as it appears on the box.", + "label": "Name", + "placeholder": "e.g. Ramipril" }, "step2": { - "oneShot": { - "title": "One-time dose", - "description": "A single appointment — flu shot, vaccine, the last dose of a course." - }, - "recurring": { - "title": "Recurring", - "description": "A medication you take on a schedule, daily or otherwise." - } + "title": "What kind of medication is it?", + "subline": "We use this for the right templates and analytics." }, "step3": { - "helper": "Pick the pattern that matches how often you take it. Sub-options appear once you choose." + "title": "What's the dose?", + "subline": "A tablet, a puff, a drop — depending on the form.", + "amountLabel": "Amount", + "amountPlaceholder": "e.g. 5", + "unitLabel": "Unit", + "unit": { + "mg": "mg", + "ml": "ml", + "iu": "IU", + "mcg": "µg", + "g": "g", + "tablets": "tablet(s)", + "capsules": "capsule(s)", + "drops": "drops", + "puffs": "puff", + "sprays": "spray", + "pieces": "pieces", + "other": "other" + } }, "step4": { - "recap": "Here's the cadence you picked. Tap Back if anything looks wrong.", - "oneShotSkipped": "(skipped — one-time dose)" + "title": "Over what period are you taking it?", + "subline": "A start date is enough for today. You can add an end date later." }, "step5": { - "helper": "Add one or more times of day. Reminders fire at each entry.", - "oneShotDate": { - "label": "Date of the single dose", - "helper": "We use this date to schedule the reminder and to log the intake." - } + "title": "How often do you take it?", + "subline": "Pick the cadence — the details follow on the next step." }, "step6": { - "helper": "The schedule runs from the start date. Leave the end date open if you take it indefinitely." - }, - "step7": { - "reminders": { - "label": "Reminders on", - "description": "Send a push to your configured channels at every scheduled time." + "title": "What does that look like in detail?", + "subline": "Set weekdays, intervals, or the day of the month.", + "intervalWeeks": { + "label": "Every", + "suffix": "weeks" }, - "summary": { - "title": "Summary", - "cadence": { - "daily": "Every day", - "weekdays": "On selected days of the week", - "weekly": "Once a week", - "biweekly": "Every two weeks", - "monthly": "Monthly", - "quarterly": "Every three months", - "yearly": "Once a year", - "rolling": "Every {n} days from your last intake", - "oneShot": "A single dose", - "everyNWeeks": "Every {n} weeks", - "everyNMonths": "Every {n} months" - }, - "weekdaysDetail": ", on {days}", - "dayOfMonthDetail": ", on day {day}.", - "everyNMonthsDetail": ", every {months} months on day {day}.", - "yearlyDetail": ", on {date}.", - "times": "at {times}", - "startsOn": "Starts: {date}", - "endsOn": "Ends: {date}", - "noEndDate": "No end date" + "dayOfMonth": { + "label": "On", + "suffix": "day of the month" + }, + "rollingDays": { + "label": "Every", + "suffix": "days from the last intake" } }, - "nav": { - "back": "Back", - "next": "Next", - "create": "Create medication" + "step7": { + "title": "When do you take it?", + "subline": "One or more times of day — reminders follow this list.", + "presetsLabel": "Time-of-day presets", + "presets": { + "morning": "Morning", + "noon": "Noon", + "evening": "Evening", + "night": "Night" + } }, - "errors": { - "submitFailed": "Could not create the medication — please retry.", - "fieldRequired": "Required" + "step8": { + "title": "All done — should HealthLog remind you?", + "subline": "Review everything below before you save.", + "remindersLabel": "Reminders on", + "remindersDescription": "Push, Telegram or ntfy — based on your settings.", + "multiScheduleNote": "This medication has multiple schedules. The detailed editor returns in a later release." } + }, + "classRow": { + "bloodPressure": "Blood pressure", + "diabetes": "Diabetes", + "hormone": "Hormones", + "glp1": "GLP-1 injection", + "painRelief": "Pain", + "allergy": "Allergy", + "vitamin": "Vitamins", + "supplement": "Supplement", + "antibiotic": "Antibiotic", + "other": "Other" + }, + "cadence": { + "daily": { + "label": "Daily", + "description": "Every day at the same time." + }, + "weekdays": { + "label": "Specific weekdays", + "description": "E.g. Monday, Wednesday, Friday." + }, + "everyNWeeks": { + "label": "Every few weeks", + "description": "E.g. every 2 weeks on Thursdays (GLP-1, biologics)." + }, + "monthly": { + "label": "Monthly", + "description": "On a fixed day each month (e.g. always the 1st)." + }, + "rolling": { + "label": "Flexible from last dose", + "description": "Leave the next dose open. When you tap 'taken', the counter starts again from that moment." + }, + "oneShot": { + "label": "Single dose", + "description": "One administration, e.g. a vaccine or an antibiotic course." + } + }, + "summary": { + "title": "Summary", + "cadence": { + "daily": "Every day", + "weekdays": "On selected days of the week", + "biweekly": "Every two weeks", + "monthly": "Monthly", + "quarterly": "Every three months", + "yearly": "Once a year", + "rolling": "Every {n} days from your last intake", + "oneShot": "A single dose", + "everyNWeeks": "Every {n} weeks", + "everyNMonths": "Every {n} months" + }, + "weekdaysDetail": ", on {days}", + "dayOfMonthDetail": ", on day {day}.", + "times": "at {times}", + "startsOn": "Starts: {date}", + "endsOn": "Ends: {date}", + "noEndDate": "No end date" + }, + "errors": { + "submitFailed": "Could not save the medication — please retry." } }, "titration": { diff --git a/src/lib/__tests__/i18n-locale-integrity.test.ts b/src/lib/__tests__/i18n-locale-integrity.test.ts index 2b370b686..eac48a40a 100644 --- a/src/lib/__tests__/i18n-locale-integrity.test.ts +++ b/src/lib/__tests__/i18n-locale-integrity.test.ts @@ -252,12 +252,12 @@ describe("i18n locale file integrity", () => { "targets.status.normal", "targets.status.optimal", "targets.status.fitness", - // v1.5 medication scheduling — SI-unit abbreviations the wizard + // v1.5.4 modal wizard — SI-unit abbreviations the wizard // surfaces in its dose-unit dropdown. The labels are identical - // across every locale (mg / g / ml are universal SI tokens). - "medications.create.wizard.step1.dose.unit.mg", - "medications.create.wizard.step1.dose.unit.g", - "medications.create.wizard.step1.dose.unit.ml", + // across every locale (mg / ml / g are universal SI tokens). + "medications.wizard.steps.step3.unit.mg", + "medications.wizard.steps.step3.unit.ml", + "medications.wizard.steps.step3.unit.g", ]); it.each(ALL_LOCALES)("$locale locale has no empty values", ({ path }) => {