mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-07 04:12:04 +00:00
fix(i18n): drop dot and dash separators from visible strings
Every bundle value that chained facts with " · " now reads as a phrase, a comma list or a parenthesis, in all seven locales, and the em-dash separators in the day, documents, correlation, sharing, environment, vaccination and Apple Health import strings become sentences or clauses. The day view's running list names the record first, with the dose in the name and a life event's category as a chip, and puts a quiet day count below: "Day 4, since 31 December" instead of a dot chain. Document meta, location periods, vaccination rows and mood crosstab rows drop their composed dots too. A guard walks every bundle and fails on any " · " outside a reasoned allowlist, and on an allowlist entry that no longer needs its place.
This commit is contained in:
1 parent
d8a3614120
commit
94542e7f2d
39 files changed
+1027
-881
No files matched your search
@@ -33,7 +33,7 @@ import {
|
||||
* 3. Nothing opens by itself: the row stays closed (`aria-expanded`
|
||||
* false) in every state, after the answer and after a reload; a row
|
||||
* opened during the run closes when the answer is done.
|
||||
* 4. After the answer the row reads "Thought process · 4 steps" and the
|
||||
* 4. After the answer the row reads "Thought process (4 steps)" and the
|
||||
* table the answer points at renders as its chart.
|
||||
* 5. A tap opens the steps; a reasoning round shows its summary under
|
||||
* its title.
|
||||
@@ -435,7 +435,7 @@ test.describe("Coach live trail", () => {
|
||||
await expect(settled).toHaveAttribute("data-state", "done");
|
||||
await expect(
|
||||
settled.locator('[data-slot="coach-turn-steps-done"]'),
|
||||
).toHaveText("Thought process · 4 steps");
|
||||
).toHaveText("Thought process (4 steps)");
|
||||
await expect(settled.locator(".text-shimmer")).toHaveCount(0);
|
||||
const settledToggle = settled.locator(
|
||||
'[data-slot="coach-turn-steps-toggle"]',
|
||||
@@ -506,7 +506,7 @@ test.describe("Coach live trail", () => {
|
||||
await expect(reloaded).toHaveAttribute("data-state", "done");
|
||||
await expect(
|
||||
reloaded.locator('[data-slot="coach-turn-steps-done"]'),
|
||||
).toHaveText("Thought process · 4 steps");
|
||||
).toHaveText("Thought process (4 steps)");
|
||||
const reloadedToggle = reloaded.locator(
|
||||
'[data-slot="coach-turn-steps-toggle"]',
|
||||
);
|
||||
|
||||
@@ -427,7 +427,7 @@ test.describe("document vault — AI assist + content search", () => {
|
||||
// The PDF is refused locally (tesseract reads images only) — the error
|
||||
// shows and the server suggest route is never called.
|
||||
await expect(
|
||||
sheet.getByText("Local OCR reads images only — not this file."),
|
||||
sheet.getByText("Local OCR reads images only, not this file."),
|
||||
).toBeVisible();
|
||||
await page.waitForTimeout(300);
|
||||
expect(suggestCalls).toBe(0);
|
||||
|
||||
@@ -767,7 +767,7 @@ test.describe("document vault", () => {
|
||||
|
||||
await uploadViaPicker(page, `${marker}-copy.pdf`, bytes);
|
||||
await expect(
|
||||
page.getByText("Already stored — highlighting the existing document."),
|
||||
page.getByText("Already stored. The existing document is highlighted."),
|
||||
).toBeVisible();
|
||||
// One row, not two — the copy never landed.
|
||||
await expect(openButton(page, `${marker}-copy.pdf`)).not.toBeVisible();
|
||||
|
||||
+122
-120
@@ -206,7 +206,7 @@
|
||||
"colExpected": "Erwartet",
|
||||
"colComplianceRate": "Therapietreue",
|
||||
"moodTitle": "Stimmungsverlauf",
|
||||
"moodSummary": "Durchschnitt: {avg} / 5,0 · Einträge: {count} · Bereich: {min}–{max}",
|
||||
"moodSummary": "Durchschnitt {avg} / 5,0, {count} Einträge, Bereich {min}–{max}",
|
||||
"colMood": "Stimmung",
|
||||
"colCount": "Anzahl",
|
||||
"colShare": "Anteil",
|
||||
@@ -579,8 +579,8 @@
|
||||
"sleepShort": "Schlaf",
|
||||
"stepsShort": "Schritte",
|
||||
"vo2MaxShort": "VO₂ max",
|
||||
"bpInTargetWindow90": "BD-Ziel · 90 T",
|
||||
"bpInTargetWindowDynamic": "BD-Ziel · {days} T",
|
||||
"bpInTargetWindow90": "BD-Ziel (90 T)",
|
||||
"bpInTargetWindowDynamic": "BD-Ziel ({days} T)",
|
||||
"bpInTargetCollecting": "sammelt noch Daten",
|
||||
"medications": "Medikamente",
|
||||
"quickAddMeasurement": "Messung erfassen",
|
||||
@@ -1336,7 +1336,7 @@
|
||||
"complianceInfoLabel": "Was bedeutet Therapietreue?",
|
||||
"lastIntake": "Letzte Einnahme:",
|
||||
"nextIntake": "Nächste Einnahme:",
|
||||
"nextIntakeOverdue": "Überfällig · {time} — noch nachholbar",
|
||||
"nextIntakeOverdue": "Überfällig seit {time}, noch nachholbar",
|
||||
"dayStreak": "Tage Serie",
|
||||
"dayStreakOne": "Tag Serie",
|
||||
"cycleDueToday": "Heute fällig",
|
||||
@@ -1737,7 +1737,7 @@
|
||||
"empty": "Noch keine Dosis-Steigerungsschritte erfasst. Datierte Dosisänderungen hinzufügen, um den Plan abzubilden.",
|
||||
"youAreHere": "Du bist hier",
|
||||
"doseStep": "{dose} {unit}",
|
||||
"plannedFor": "Geplant · {date}"
|
||||
"plannedFor": "Geplant für {date}"
|
||||
},
|
||||
"injectionSiteBodyOutlineAriaLabel": "Körperumriss",
|
||||
"injectionSitePickerAriaLabel": "Injektionsstelle auswählen",
|
||||
@@ -1788,7 +1788,7 @@
|
||||
"intakeHistoryStatusSkipped": "Übersprungen",
|
||||
"intakeHistorySortByTaken": "Nach Einnahme-Zeitpunkt sortieren",
|
||||
"intakeHistorySortByScheduled": "Nach geplantem Zeitpunkt sortieren",
|
||||
"intakeHistoryPageInfo": "Seite {page} von {total} · {count} Einträge",
|
||||
"intakeHistoryPageInfo": "Seite {page} von {total}, {count} Einträge",
|
||||
"intakeHistoryPrev": "Zurück",
|
||||
"intakeHistoryNext": "Weiter",
|
||||
"glp1": {
|
||||
@@ -1888,7 +1888,7 @@
|
||||
"markAsTaken": "Als genommen markieren",
|
||||
"markAsSkipped": "Als übersprungen markieren",
|
||||
"adHocTag": "außerplanmäßig",
|
||||
"takenDetail": "geplant {planned} · genommen {taken}",
|
||||
"takenDetail": "geplant {planned}, genommen {taken}",
|
||||
"doseTaken": "Dosis: {dose}",
|
||||
"status": {
|
||||
"taken_on_time": "pünktlich",
|
||||
@@ -2594,31 +2594,31 @@
|
||||
"ENV_POLLEN_MAX": "der Pollenflug"
|
||||
},
|
||||
"daily": {
|
||||
"high": "Wenn {behaviour} höher liegt, fällt {outcome} am Folgetag in deinen Daten tendenziell {direction} aus — ein Muster, das Beachtung verdient, keine Ursache.",
|
||||
"moderate": "Wenn {behaviour} höher liegt, scheint {outcome} am Folgetag nach bisheriger Datenlage eher {direction} auszufallen — ein Muster, das Beachtung verdient, keine Ursache.",
|
||||
"faint": "Wenn {behaviour} höher liegt, gibt es in deinen Daten allenfalls einen schwachen Hinweis darauf, dass {outcome} am Folgetag {direction} ausfällt — zu gering, um sich darauf zu verlassen, niemals eine Ursache."
|
||||
"high": "Wenn {behaviour} höher liegt, fällt {outcome} am Folgetag in deinen Daten tendenziell {direction} aus. Das ist ein Muster, das Beachtung verdient, keine Ursache.",
|
||||
"moderate": "Wenn {behaviour} höher liegt, scheint {outcome} am Folgetag nach bisheriger Datenlage eher {direction} auszufallen. Das ist ein Muster, das Beachtung verdient, keine Ursache.",
|
||||
"faint": "Wenn {behaviour} höher liegt, gibt es in deinen Daten allenfalls einen schwachen Hinweis darauf, dass {outcome} am Folgetag {direction} ausfällt. Das ist zu gering, um sich darauf zu verlassen, und niemals eine Ursache."
|
||||
},
|
||||
"lab": {
|
||||
"default": "Höhere {lab}-Werte gehen in deinen Daten damit einher, dass {outcome} im selben Zeitraum {direction} ausfällt — ein Zusammenhang, den du ärztlich im Blick behalten solltest, niemals eine Ursache.",
|
||||
"faint": "Höhere {lab}-Werte deuten in deinen Daten allenfalls schwach darauf hin, dass {outcome} im selben Zeitraum {direction} ausfällt — zu gering, um sich darauf zu verlassen, ein Zusammenhang, den du ärztlich abklären lassen solltest, niemals eine Ursache."
|
||||
"default": "Höhere {lab}-Werte gehen in deinen Daten damit einher, dass {outcome} im selben Zeitraum {direction} ausfällt, ein Zusammenhang, den du ärztlich im Blick behalten solltest, niemals eine Ursache.",
|
||||
"faint": "Höhere {lab}-Werte deuten in deinen Daten allenfalls schwach darauf hin, dass {outcome} im selben Zeitraum {direction} ausfällt. Das ist zu gering, um sich darauf zu verlassen, und niemals eine Ursache, aber ärztlich abklärenswert."
|
||||
},
|
||||
"hypothesis": {
|
||||
"bpCompliance": {
|
||||
"support": "Höhere Medikamententreue geht mit niedrigeren systolischen Werten einher — ein Muster, das Beachtung verdient.",
|
||||
"surprising": "Medikamententreue und systolischer Wert bewegen sich in deinen Daten gemeinsam — überraschend; sprich mit deiner Ärztin oder deinem Arzt, bevor du etwas änderst.",
|
||||
"support": "Höhere Medikamententreue geht mit niedrigeren systolischen Werten einher, ein Muster, das Beachtung verdient.",
|
||||
"surprising": "Medikamententreue und systolischer Wert bewegen sich in deinen Daten gemeinsam, das ist überraschend. Sprich mit deiner Ärztin oder deinem Arzt, bevor du etwas änderst.",
|
||||
"none": "Medikamententreue und systolischer Wert bewegen sich in diesem Zeitraum nicht deutlich gemeinsam."
|
||||
},
|
||||
"moodPulse": {
|
||||
"support": "Tage mit schlechterer Stimmung gehen mit höherem Ruhepuls einher — ein Muster, das Beachtung verdient.",
|
||||
"surprising": "Tage mit besserer Stimmung gehen in deinen Daten mit höherem Ruhepuls einher — überraschend.",
|
||||
"support": "Tage mit schlechterer Stimmung gehen mit höherem Ruhepuls einher, ein Muster, das Beachtung verdient.",
|
||||
"surprising": "Tage mit besserer Stimmung gehen in deinen Daten mit höherem Ruhepuls einher, das ist überraschend.",
|
||||
"none": "Stimmung und Ruhepuls bewegen sich in diesem Zeitraum nicht deutlich gemeinsam."
|
||||
},
|
||||
"weightWeekday": "Das Gewicht am {weekday} liegt {delta} kg {direction} deinem Durchschnitt der übrigen Tage — ein Muster, das Beachtung verdient."
|
||||
"weightWeekday": "Das Gewicht am {weekday} liegt {delta} kg {direction} deinem Durchschnitt der übrigen Tage, ein Muster, das Beachtung verdient."
|
||||
},
|
||||
"dailySameDay": {
|
||||
"high": "Mehr {behaviour} am selben Tag und am Vortag geht in deinen Daten tendenziell mit {direction} {outcome} einher — ein Muster, das sich zu beobachten lohnt, keine Ursache.",
|
||||
"moderate": "Mehr {behaviour} am selben Tag und am Vortag scheint in deinen Daten nach bisheriger Lage mit {direction} {outcome} einherzugehen — ein Muster, das sich zu beobachten lohnt, keine Ursache.",
|
||||
"faint": "Mehr {behaviour} am selben Tag und am Vortag zeigt in deinen Daten allenfalls einen schwachen Hinweis auf {direction} {outcome} — zu klein, um sich darauf zu stützen, nie eine Ursache."
|
||||
"high": "Mehr {behaviour} am selben Tag und am Vortag geht in deinen Daten tendenziell mit {direction} {outcome} einher. Das ist ein Muster, das sich zu beobachten lohnt, keine Ursache.",
|
||||
"moderate": "Mehr {behaviour} am selben Tag und am Vortag scheint in deinen Daten nach bisheriger Lage mit {direction} {outcome} einherzugehen. Das ist ein Muster, das sich zu beobachten lohnt, keine Ursache.",
|
||||
"faint": "Mehr {behaviour} am selben Tag und am Vortag zeigt in deinen Daten allenfalls einen schwachen Hinweis auf {direction} {outcome}. Das ist zu klein, um sich darauf zu stützen, und nie eine Ursache."
|
||||
}
|
||||
},
|
||||
"emptyTitle": "Noch nicht genug Daten",
|
||||
@@ -2730,7 +2730,7 @@
|
||||
"referenceSleep": "Mindestens {low} Minuten pro Nacht; längerer Schlaf wird nicht abgewertet",
|
||||
"referenceAdiposity": "Taille-zu-Körpergröße-Verhältnis unter {high}",
|
||||
"referenceHba1c": "HbA1c {low} bis {high} %",
|
||||
"referenceDetail": "{label} · {source} · {kind} · {low} bis {high}",
|
||||
"referenceDetail": "{label}: {low} bis {high} ({kind}, {source})",
|
||||
"openBound": "offen",
|
||||
"laboratoryReferenceSource": "Referenzbereiche des auswertenden Labors",
|
||||
"personalTargetSource": "Persönliches Ziel",
|
||||
@@ -2824,7 +2824,7 @@
|
||||
"experimentCta": "7-Tage-Experiment starten",
|
||||
"experimentTooltip": "Bald verfügbar",
|
||||
"emptyTitle": "Mehr Daten nötig, um diesen Zusammenhang zu zeigen",
|
||||
"sourceChip": "basierend auf {n} gepaarten Messungen · {window}",
|
||||
"sourceChip": "basierend auf {n} gepaarten Messungen ({window})",
|
||||
"sourceWindowLast30": "letzte 30 Tage",
|
||||
"confidenceHigh": "Hohe Konfidenz",
|
||||
"confidenceModerate": "Mittlere Konfidenz",
|
||||
@@ -3003,23 +3003,23 @@
|
||||
"cluster": {
|
||||
"cardio": {
|
||||
"label": "Herz-Kreislauf",
|
||||
"hint": "Blutdruck · Puls · HRV · Ruhe- & Geh-Herzfrequenz"
|
||||
"hint": "Blutdruck, Puls, HRV, Ruhe- und Geh-Herzfrequenz"
|
||||
},
|
||||
"body": {
|
||||
"label": "Körperzusammensetzung",
|
||||
"hint": "Gewicht · Körperfett · Muskeln · BMI"
|
||||
"hint": "Gewicht, Körperfett, Muskeln und BMI"
|
||||
},
|
||||
"activity": {
|
||||
"label": "Aktivität",
|
||||
"hint": "Schritte · Energie · Distanz · VO₂max"
|
||||
"hint": "Schritte, Energie, Distanz und VO₂max"
|
||||
},
|
||||
"workouts": {
|
||||
"label": "Workouts",
|
||||
"hint": "Läufe · Radtouren · Einheiten"
|
||||
"hint": "Läufe, Radtouren und Einheiten"
|
||||
},
|
||||
"sleep": {
|
||||
"label": "Schlaf",
|
||||
"hint": "Dauer · Phasen"
|
||||
"hint": "Dauer und Phasen"
|
||||
},
|
||||
"mood": {
|
||||
"label": "Stimmung",
|
||||
@@ -3031,15 +3031,15 @@
|
||||
},
|
||||
"medication": {
|
||||
"label": "Medikation",
|
||||
"hint": "Therapietreue · GLP-1-Kontext"
|
||||
"hint": "Therapietreue und GLP-1-Kontext"
|
||||
},
|
||||
"mobility": {
|
||||
"label": "Mobilität & Gang",
|
||||
"hint": "Stabilität · Asymmetrie · Gangbild"
|
||||
"hint": "Stabilität, Asymmetrie und Gangbild"
|
||||
},
|
||||
"environment": {
|
||||
"label": "Umgebung",
|
||||
"hint": "Lärm · Tageslicht · Hauttemperatur"
|
||||
"hint": "Lärm, Tageslicht und Hauttemperatur"
|
||||
}
|
||||
},
|
||||
"settingsClustersLabel": "Daten, die der Coach sieht",
|
||||
@@ -3227,9 +3227,9 @@
|
||||
"cap": "Viele Schritte, fasst jetzt zusammen",
|
||||
"noProgress": "Keine neuen Daten mehr, fasst zusammen"
|
||||
},
|
||||
"thoughtProcessOne": "Denkprozess · {count} Schritt",
|
||||
"thoughtProcessFew": "Denkprozess · {count} Schritte",
|
||||
"thoughtProcessOther": "Denkprozess · {count} Schritte",
|
||||
"thoughtProcessOne": "Denkprozess ({count} Schritt)",
|
||||
"thoughtProcessFew": "Denkprozess ({count} Schritte)",
|
||||
"thoughtProcessOther": "Denkprozess ({count} Schritte)",
|
||||
"awaitingAnswer": "Antwort nötig"
|
||||
},
|
||||
"memory": {
|
||||
@@ -4062,7 +4062,7 @@
|
||||
"distributionDaysUnit": "Tage",
|
||||
"weekdayTitle": "Durchschnitt nach Wochentag",
|
||||
"weekdayNoData": "Keine Daten",
|
||||
"weekdayBestWorst": "Bester Tag: {best} · Schwerster Tag: {worst}",
|
||||
"weekdayBestWorst": "Bester Tag: {best}, schwerster Tag: {worst}",
|
||||
"tagsTitle": "Tags und Auslöser",
|
||||
"tagAvgMood": "Durchschnittliche Stimmung mit diesem Tag",
|
||||
"correlationsTitle": "Stimmung und andere Werte",
|
||||
@@ -4078,7 +4078,7 @@
|
||||
"strengthModerate": "Moderat",
|
||||
"strengthWeak": "Schwach",
|
||||
"strengthNone": "Keine",
|
||||
"source": "{n} gepaarte Tage · r = {r}",
|
||||
"source": "{n} gepaarte Tage, r = {r}",
|
||||
"emptyTitle": "Noch nicht genug gepaarte Daten",
|
||||
"emptyDescription": "Erfasse Stimmung und diesen Wert an denselben Tagen, um einen Zusammenhang zu sehen.",
|
||||
"pendingDescription": "{n} von {needed} gepaarten Tagen. Ein Zusammenhang erscheint, sobald genug Tage da sind, um Muster von Zufall zu unterscheiden.",
|
||||
@@ -4137,7 +4137,7 @@
|
||||
"crosstab": {
|
||||
"title": "Tags und deine Gesundheitswerte",
|
||||
"description": "Wie sich ein Gesundheitswert an Tagen mit einem Tag von Tagen ohne diesen Tag unterscheidet.",
|
||||
"pairLabel": "{tag} · {metric}",
|
||||
"pairLabel": "{metric} an Tagen mit {tag}",
|
||||
"metricActiveEnergy": "Aktive Energie",
|
||||
"metricSleepDuration": "Schlaf",
|
||||
"metricNextDayRecovery": "Erholung am Folgetag",
|
||||
@@ -4154,7 +4154,7 @@
|
||||
"factorCrosstab": {
|
||||
"title": "Deine bewerteten Faktoren und deine Vitalwerte",
|
||||
"description": "Wie sich ein Vitalwert an den Tagen unterscheidet, an denen du einen Faktor niedrig bewertet hast, verglichen mit den Tagen mit hoher Bewertung.",
|
||||
"pairLabel": "{factor} · {metric}",
|
||||
"pairLabel": "{metric} an Tagen mit {factor}",
|
||||
"metricSleepDuration": "Schlaf",
|
||||
"metricSteps": "Schritte",
|
||||
"metricRestingHeartRate": "Ruhepuls",
|
||||
@@ -4180,7 +4180,7 @@
|
||||
"moodDown": "Höheres {factor} geht in deinen Daten tendenziell mit schlechterer Stimmung am Folgetag einher.",
|
||||
"outcomeUp": "Bessere Stimmung geht in deinen Daten tendenziell mit höherem {factor} am Folgetag einher.",
|
||||
"outcomeDown": "Bessere Stimmung geht in deinen Daten tendenziell mit niedrigerem {factor} am Folgetag einher.",
|
||||
"stat": "{n} gepaarte Tage · r = {r} · q = {q}",
|
||||
"stat": "{n} gepaarte Tage, r = {r}, q = {q}",
|
||||
"statLabel": "Wie das berechnet wurde",
|
||||
"explainerLabel": "Wie das berechnet wurde"
|
||||
},
|
||||
@@ -4224,11 +4224,11 @@
|
||||
},
|
||||
"derived": {
|
||||
"coverage": {
|
||||
"summary": "{present} von {required} Eingaben · {percent}%",
|
||||
"summary": "{present} von {required} Eingaben ({percent}%)",
|
||||
"ratioLabel": "{present}/{required}",
|
||||
"historyDays": "Basiert auf {count} Tagen Verlauf",
|
||||
"missing": "Erfasse diese, um den Wert zu schärfen: {list}",
|
||||
"summaryLabelled": "{label} · {percent}%"
|
||||
"summaryLabelled": "{label} ({percent}%)"
|
||||
},
|
||||
"scoreRing": {
|
||||
"aria": "Wert {score} von 100, {band}",
|
||||
@@ -4246,7 +4246,7 @@
|
||||
"inputsLabel": "Eingaben",
|
||||
"noInputs": "Noch keine Eingaben für diesen Wert vorhanden.",
|
||||
"methodLabel": "Methode",
|
||||
"window": "Aus deinen letzten {days} Tagen · {source}-Daten",
|
||||
"window": "Aus deinen letzten {days} Tagen mit {source}-Daten",
|
||||
"asOf": "Stand {date}",
|
||||
"standardLink": "Standard: {name}"
|
||||
},
|
||||
@@ -4288,7 +4288,7 @@
|
||||
"anatomy": {
|
||||
"outOf": "/100",
|
||||
"contributorsLabel": "Faktoren",
|
||||
"contributorValue": "{value} · {weight}% Gewicht",
|
||||
"contributorValue": "{value}, Gewichtung {weight}%",
|
||||
"contributorMissing": "keine Daten",
|
||||
"insufficient": "Noch nicht genug Daten für eine Bewertung. Tracke weiter, dann erscheint sie hier."
|
||||
},
|
||||
@@ -4756,10 +4756,10 @@
|
||||
"dismiss": "Nicht jetzt"
|
||||
},
|
||||
"bmiHeight": {
|
||||
"coachPrefill": "Ich habe meine Körpergröße noch nicht eingetragen — warum ist der BMI wichtig, und was sollte ich wissen, bevor ich sie eintrage?"
|
||||
"coachPrefill": "Ich habe meine Körpergröße noch nicht eingetragen. Warum ist der BMI wichtig, und was sollte ich wissen, bevor ich sie eintrage?"
|
||||
},
|
||||
"medicationsEmpty": {
|
||||
"coachPrefill": "Ich habe noch keine Medikamente angelegt — was sollte ich wissen, bevor ich hier anfange, meine Therapietreue zu verfolgen?"
|
||||
"coachPrefill": "Ich habe noch keine Medikamente angelegt. Was sollte ich wissen, bevor ich hier anfange, meine Therapietreue zu verfolgen?"
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
@@ -5521,7 +5521,7 @@
|
||||
"dropHint": "oder zum Auswählen klicken",
|
||||
"fileInputLabel": "Eine Apple-Health-export.zip-Datei auswählen",
|
||||
"choose": "Datei auswählen",
|
||||
"idempotencyNote": "Ein erneuter Upload desselben Archivs führt zusammen — es entstehen keine Duplikate. Große Archive werden im Hintergrund verarbeitet.",
|
||||
"idempotencyNote": "Ein erneuter Upload desselben Archivs führt die Daten zusammen, ohne Duplikate. Große Archive werden im Hintergrund verarbeitet.",
|
||||
"uploading": "Wird hochgeladen…",
|
||||
"uploadFailed": "Upload fehlgeschlagen. Bitte erneut versuchen.",
|
||||
"rateLimited": "Zu viele Uploads. Bitte kurz warten und erneut versuchen.",
|
||||
@@ -5530,7 +5530,7 @@
|
||||
"failureInterrupted": "Der Import wurde unterbrochen, bevor er fertig war, meist durch einen Server-Neustart oder Speichermangel. Die Daten sind sicher; das Archiv einfach erneut hochladen.",
|
||||
"failureInsufficientMemory": "Das Speicherlimit des Servers ist für ein Archiv dieser Größe zu niedrig. Bitte die Betreiberin oder den Betreiber das Node.js-Heap-Limit erhöhen lassen (NODE_OPTIONS=--max-old-space-size) und das Archiv danach erneut hochladen.",
|
||||
"rowsImported": "Bisher {count} Einträge importiert",
|
||||
"doneSummary": "Fertig — {imported} von {read} Datensätzen importiert, {skipped} klinische Datensätze übersprungen.",
|
||||
"doneSummary": "Fertig: {imported} von {read} Datensätzen importiert, {skipped} klinische Datensätze übersprungen.",
|
||||
"doneNothing": "Aus diesem Archiv wurde nichts importiert: 0 von {read} Datensätzen sind angekommen.",
|
||||
"writtenByHealthLogOne": "{count} Eintrag, den HealthLog selbst in Apple Health geschrieben hat, wurde ausgelassen, weil er schon in deinen Daten ist.",
|
||||
"writtenByHealthLogOther": "{count} Einträge, die HealthLog selbst in Apple Health geschrieben hat, wurden ausgelassen, weil sie schon in deinen Daten sind.",
|
||||
@@ -5543,12 +5543,12 @@
|
||||
"parsing": "Export wird gelesen…",
|
||||
"upserting": "Datensätze werden importiert…"
|
||||
},
|
||||
"skipUnsupported": "{count} Samples übersprungen — Datentypen, die HealthLog nicht importiert.",
|
||||
"skipUnsupported": "{count} Samples übersprungen: Datentypen, die HealthLog nicht importiert.",
|
||||
"skipRefused": "{count} Samples konnten nicht geschrieben werden (unlesbar, außerhalb des Wertebereichs oder Speichern fehlgeschlagen).",
|
||||
"skipBreakdown": "Aufschlüsselung anzeigen ({count} Typen)",
|
||||
"skipBreakdownMore": "+ {count} weitere Typen",
|
||||
"cycleSummary": "{samples} Zyklus-Samples zu {days} Tagesprotokollen zusammengeführt.",
|
||||
"cycleModuleOff": "{count} Zyklus-Samples übersprungen — Zyklus-Tracking ist für dieses Konto deaktiviert.",
|
||||
"cycleModuleOff": "{count} Zyklus-Samples übersprungen, weil Zyklus-Tracking für dieses Konto deaktiviert ist.",
|
||||
"cycleDaysFailed": "{count} Zyklustage konnten nicht geschrieben werden: {reason}"
|
||||
},
|
||||
"json": {
|
||||
@@ -5633,8 +5633,8 @@
|
||||
"failed": "Der Import ist fehlgeschlagen. Es wurde nichts geschrieben.",
|
||||
"columnsHeading": "Was mit jeder Spalte passiert",
|
||||
"jsonOnly": "nur JSON",
|
||||
"previewLine": "Zeilen gelesen: {rows} · würde importieren: {queued} · abgewiesen: {refused}",
|
||||
"submittedLine": "Zeilen gelesen: {rows} · zum Import eingereiht: {queued}",
|
||||
"previewLine": "{rows} Zeilen gelesen, {queued} würden importiert, {refused} abgewiesen",
|
||||
"submittedLine": "{rows} Zeilen gelesen, {queued} zum Import eingereiht",
|
||||
"unmatched": "Kein Medikament im Bestand passt zu: {names}",
|
||||
"ambiguous": "Passt auf mehr als ein Medikament: {names}",
|
||||
"mirrored": "Aus einer anderen App gespiegelt, daher keine Dosis ergänzbar: {names}",
|
||||
@@ -5799,19 +5799,20 @@
|
||||
"storedDays": "{count} Tage Wetter gespeichert.",
|
||||
"home": {
|
||||
"title": "Heimatort",
|
||||
"description": "Ein grober Standort auf Stadtebene — niemals eine genaue Spur. Wetter und Tageslicht werden für diesen Ort an Tagen ohne Ortszeitraum abgerufen, ab dem Tag der Festlegung.",
|
||||
"description": "Ein grober Standort auf Stadtebene, niemals eine genaue Spur. Wetter und Tageslicht werden für diesen Ort an Tagen ohne Ortszeitraum abgerufen, ab dem Tag der Festlegung.",
|
||||
"current": "Aktuell: {label}",
|
||||
"none": "Noch kein Heimatort festgelegt.",
|
||||
"since": "Wetter wird ab {date} erfasst. Frühere Tage bleiben leer, bis du einen Ortszeitraum hinzufügst."
|
||||
},
|
||||
"travel": {
|
||||
"title": "Ortszeiträume",
|
||||
"description": "Füge einen Ort und einen Zeitraum hinzu — eine Reise oder einen früheren Abschnitt deiner Verlaufsdaten. Der Zeitraum überschreibt für seine Tage deinen Wohnort, damit das Wetter zu deinem tatsächlichen Aufenthalt passt. So korrigierst du die Vergangenheit.",
|
||||
"description": "Füge einen Ort und einen Zeitraum hinzu, etwa eine Reise oder einen früheren Abschnitt deiner Verlaufsdaten. Der Zeitraum überschreibt für seine Tage deinen Wohnort, damit das Wetter zu deinem tatsächlichen Aufenthalt passt. So korrigierst du die Vergangenheit.",
|
||||
"none": "Noch keine Ortszeiträume.",
|
||||
"add": "{label} hinzufügen",
|
||||
"remove": "Ortszeitraum entfernen",
|
||||
"removeConfirmTitle": "Diese Reise entfernen?",
|
||||
"removeConfirmBody": "Messwerte aus diesem Zeitraum bleiben erhalten; nur der Reise-Eintrag verschwindet."
|
||||
"removeConfirmBody": "Messwerte aus diesem Zeitraum bleiben erhalten; nur der Reise-Eintrag verschwindet.",
|
||||
"range": "{start} bis {end}"
|
||||
},
|
||||
"backfill": {
|
||||
"title": "Vergangene Tage nacherfassen",
|
||||
@@ -6519,7 +6520,7 @@
|
||||
},
|
||||
"integrationFreshness": {
|
||||
"title": "Empfangene Daten",
|
||||
"summary": "{count} Datentypen · neuestes {relative}",
|
||||
"summary": "{count} Datentypen, neuestes {relative}",
|
||||
"quiet": "{count} still",
|
||||
"workouts": "Workouts"
|
||||
},
|
||||
@@ -7064,7 +7065,7 @@
|
||||
},
|
||||
"appleHealth": {
|
||||
"title": "Apple Health",
|
||||
"description": "Die Live-Synchronisierung erfolgt über die HealthLog-iOS-App — nicht über eine Web- oder OAuth-Verbindung.",
|
||||
"description": "Die Live-Synchronisierung erfolgt über die HealthLog-iOS-App, nicht über eine Web- oder OAuth-Verbindung.",
|
||||
"status": {
|
||||
"unavailable": "Apple-Health-Status nicht verfügbar"
|
||||
},
|
||||
@@ -7078,14 +7079,14 @@
|
||||
"title": "Sync-Fortschritt",
|
||||
"receivedLabel": "Empfangene Datensätze",
|
||||
"oldestLabel": "Älteste erreichte Messung",
|
||||
"flowing": "In der letzten Stunde sind Daten angekommen — die iPhone-App liefert weiter.",
|
||||
"waiting": "Warten auf weitere Daten von der iPhone-App. Die Übertragung läuft weiter, wenn die App geöffnet ist oder iOS ihr Hintergrundzeit gewährt — eine ruhige Phase während des ersten großen Abgleichs ist normal, kein Fehler."
|
||||
"flowing": "In der letzten Stunde sind Daten angekommen. Die iPhone-App liefert weiter.",
|
||||
"waiting": "Warten auf weitere Daten von der iPhone-App. Die Übertragung läuft weiter, wenn die App geöffnet ist oder iOS ihr Hintergrundzeit gewährt. Eine ruhige Phase während des ersten großen Abgleichs ist normal, kein Fehler."
|
||||
},
|
||||
"delivery": {
|
||||
"title": "Übermittlung",
|
||||
"lastTriggerLabel": "Letzte Synchronisierung kam",
|
||||
"lastBackgroundLabel": "Letzte Hintergrund-Synchronisierung",
|
||||
"backgroundNever": "Nie — bisher kam jede Synchronisierung bei geöffneter App an",
|
||||
"backgroundNever": "Nie: bisher kam jede Synchronisierung bei geöffneter App an",
|
||||
"noSyncYet": "Es ist noch keine Synchronisierung angekommen, daher gibt es hier nichts zu berichten.",
|
||||
"trigger": {
|
||||
"foreground": "bei geöffneter App",
|
||||
@@ -8085,19 +8086,19 @@
|
||||
"description": "Nimm an einem Tag alle Medikamente im Zeitfenster ein."
|
||||
},
|
||||
"compliance801": {
|
||||
"title": "Treue 80% · 1T",
|
||||
"title": "80% Treue für 1 Tag",
|
||||
"description": "Erreiche an einem Tag eine 30-Tage-Therapietreue von mindestens 80%."
|
||||
},
|
||||
"bmiGreen1": {
|
||||
"title": "BMI im Grün · 1T",
|
||||
"title": "BMI 1 Tag im Grün",
|
||||
"description": "Halte deinen BMI an einem Tag im Normalbereich."
|
||||
},
|
||||
"bpGreen1": {
|
||||
"title": "Blutdruck im Grün · 1T",
|
||||
"title": "Blutdruck 1 Tag im Grün",
|
||||
"description": "Halte deinen Blutdruck an einem Tag im Normalbereich."
|
||||
},
|
||||
"pulseGreen1": {
|
||||
"title": "Puls im Grün · 1T",
|
||||
"title": "Puls 1 Tag im Grün",
|
||||
"description": "Halte deinen Ruhepuls an einem Tag im Normalbereich."
|
||||
},
|
||||
"onTimePerfect7": {
|
||||
@@ -8105,19 +8106,19 @@
|
||||
"description": "Nimm 7 Tage in Folge alle Medikamente im Zeitfenster ein."
|
||||
},
|
||||
"compliance807": {
|
||||
"title": "Treue 80% · 7T",
|
||||
"title": "80% Treue für 7 Tage",
|
||||
"description": "Erreiche 7 Tage in Folge eine 30-Tage-Therapietreue von mindestens 80%."
|
||||
},
|
||||
"bmiGreen7": {
|
||||
"title": "BMI im Grün · 7T",
|
||||
"title": "BMI 7 Tage im Grün",
|
||||
"description": "Halte deinen BMI 7 Tage in Folge im Normalbereich."
|
||||
},
|
||||
"bpGreen7": {
|
||||
"title": "Blutdruck im Grün · 7T",
|
||||
"title": "Blutdruck 7 Tage im Grün",
|
||||
"description": "Halte deinen Blutdruck 7 Tage in Folge im Normalbereich."
|
||||
},
|
||||
"pulseGreen7": {
|
||||
"title": "Puls im Grün · 7T",
|
||||
"title": "Puls 7 Tage im Grün",
|
||||
"description": "Halte deinen Ruhepuls 7 Tage in Folge im Normalbereich."
|
||||
},
|
||||
"onTimePerfect30": {
|
||||
@@ -8125,19 +8126,19 @@
|
||||
"description": "Nimm 30 Tage in Folge alle Medikamente im Zeitfenster ein."
|
||||
},
|
||||
"compliance8030": {
|
||||
"title": "Treue 80% · 30T",
|
||||
"title": "80% Treue für 30 Tage",
|
||||
"description": "Erreiche 30 Tage in Folge eine 30-Tage-Therapietreue von mindestens 80%."
|
||||
},
|
||||
"bmiGreen30": {
|
||||
"title": "BMI im Grün · 30T",
|
||||
"title": "BMI 30 Tage im Grün",
|
||||
"description": "Halte deinen BMI 30 Tage in Folge im Normalbereich."
|
||||
},
|
||||
"bpGreen30": {
|
||||
"title": "Blutdruck im Grün · 30T",
|
||||
"title": "Blutdruck 30 Tage im Grün",
|
||||
"description": "Halte deinen Blutdruck 30 Tage in Folge im Normalbereich."
|
||||
},
|
||||
"pulseGreen30": {
|
||||
"title": "Puls im Grün · 30T",
|
||||
"title": "Puls 30 Tage im Grün",
|
||||
"description": "Halte deinen Ruhepuls 30 Tage in Folge im Normalbereich."
|
||||
},
|
||||
"onTimePerfect180": {
|
||||
@@ -8145,19 +8146,19 @@
|
||||
"description": "Nimm 180 Tage in Folge alle Medikamente im Zeitfenster ein."
|
||||
},
|
||||
"compliance80180": {
|
||||
"title": "Treue 80% · 180T",
|
||||
"title": "80% Treue für 180 Tage",
|
||||
"description": "Erreiche 180 Tage in Folge eine 30-Tage-Therapietreue von mindestens 80%."
|
||||
},
|
||||
"bmiGreen180": {
|
||||
"title": "BMI im Grün · 180T",
|
||||
"title": "BMI 180 Tage im Grün",
|
||||
"description": "Halte deinen BMI 180 Tage in Folge im Normalbereich."
|
||||
},
|
||||
"bpGreen180": {
|
||||
"title": "Blutdruck im Grün · 180T",
|
||||
"title": "Blutdruck 180 Tage im Grün",
|
||||
"description": "Halte deinen Blutdruck 180 Tage in Folge im Normalbereich."
|
||||
},
|
||||
"pulseGreen180": {
|
||||
"title": "Puls im Grün · 180T",
|
||||
"title": "Puls 180 Tage im Grün",
|
||||
"description": "Halte deinen Ruhepuls 180 Tage in Folge im Normalbereich."
|
||||
},
|
||||
"onTimePerfect360": {
|
||||
@@ -8165,19 +8166,19 @@
|
||||
"description": "Nimm 360 Tage in Folge alle Medikamente im Zeitfenster ein."
|
||||
},
|
||||
"compliance80360": {
|
||||
"title": "Treue 80% · 360T",
|
||||
"title": "80% Treue für 360 Tage",
|
||||
"description": "Erreiche 360 Tage in Folge eine 30-Tage-Therapietreue von mindestens 80%."
|
||||
},
|
||||
"bmiGreen360": {
|
||||
"title": "BMI im Grün · 360T",
|
||||
"title": "BMI 360 Tage im Grün",
|
||||
"description": "Halte deinen BMI 360 Tage in Folge im Normalbereich."
|
||||
},
|
||||
"bpGreen360": {
|
||||
"title": "Blutdruck im Grün · 360T",
|
||||
"title": "Blutdruck 360 Tage im Grün",
|
||||
"description": "Halte deinen Blutdruck 360 Tage in Folge im Normalbereich."
|
||||
},
|
||||
"pulseGreen360": {
|
||||
"title": "Puls im Grün · 360T",
|
||||
"title": "Puls 360 Tage im Grün",
|
||||
"description": "Halte deinen Ruhepuls 360 Tage in Folge im Normalbereich."
|
||||
},
|
||||
"moodFirst": {
|
||||
@@ -8261,15 +8262,15 @@
|
||||
"description": "Du hast die App-Sprache mindestens einmal gewechselt."
|
||||
},
|
||||
"missFree7": {
|
||||
"title": "Lückenlos · 7T",
|
||||
"title": "7 Tage lückenlos",
|
||||
"description": "7 Tage in Folge ohne eine verpasste Dosis."
|
||||
},
|
||||
"missFree30": {
|
||||
"title": "Lückenlos · 30T",
|
||||
"title": "30 Tage lückenlos",
|
||||
"description": "30 Tage in Folge ohne eine verpasste Dosis."
|
||||
},
|
||||
"missFree90": {
|
||||
"title": "Lückenlos · 90T",
|
||||
"title": "90 Tage lückenlos",
|
||||
"description": "90 Tage in Folge ohne eine verpasste Dosis."
|
||||
},
|
||||
"measurementWeeks4": {
|
||||
@@ -8281,7 +8282,7 @@
|
||||
"description": "Alle vier Felder der Selbstauskunft ausgefüllt — der Coach kennt deinen Kontext."
|
||||
},
|
||||
"sleepLog7": {
|
||||
"title": "Schlafprotokoll · 7T",
|
||||
"title": "7 Tage Schlafprotokoll",
|
||||
"description": "An 7 Tagen in Folge Schlafdaten erfasst."
|
||||
}
|
||||
},
|
||||
@@ -8791,7 +8792,7 @@
|
||||
},
|
||||
"crosstab": {
|
||||
"description": "Wie sich jeder Messwert zwischen deiner Luteal- und Follikelphase vergleicht — auf deinen eigenen Daten.",
|
||||
"pairLabel": "{metric} · Luteal vs. Follikel",
|
||||
"pairLabel": "{metric}: Luteal- vs. Follikelphase",
|
||||
"detail": "Luteal {lutealAvg} {unit} ({lutealDays} Tage) vs. Follikel {follicularAvg} {unit} ({follicularDays} Tage).",
|
||||
"metricRestingHeartRate": "Ruhepuls",
|
||||
"metricHrv": "Herzfrequenzvariabilität",
|
||||
@@ -9011,7 +9012,7 @@
|
||||
"temperatureSection": "Temperatur & Eisprung",
|
||||
"intimacySection": "Intimität & Verhütung",
|
||||
"testsSection": "Tests",
|
||||
"phaseDayHeader": "Tag {day} · {phase}",
|
||||
"phaseDayHeader": "Tag {day}, {phase}",
|
||||
"bbtHint": "Miss sie morgens als Erstes, noch vor dem Aufstehen.",
|
||||
"titleForDate": "Eintrag für {date}",
|
||||
"descriptionToday": "Heute. Stärke, Symptome und Notizen.",
|
||||
@@ -9188,10 +9189,10 @@
|
||||
"VISCERAL_FAT": "Viszeralfett",
|
||||
"BODY_MASS_INDEX": "Body-Mass-Index (BMI)",
|
||||
"WAIST_CIRCUMFERENCE": "Taillenumfang",
|
||||
"PHQ9_SCORE": "PHQ-9 · Stimmung",
|
||||
"GAD7_SCORE": "GAD-7 · Sorgen",
|
||||
"WHO5_SCORE": "WHO-5 · Wohlbefinden",
|
||||
"SCI_SCORE": "SCI · Schlaf"
|
||||
"PHQ9_SCORE": "PHQ-9 (Stimmung)",
|
||||
"GAD7_SCORE": "GAD-7 (Sorgen)",
|
||||
"WHO5_SCORE": "WHO-5 (Wohlbefinden)",
|
||||
"SCI_SCORE": "SCI (Schlaf)"
|
||||
},
|
||||
"typeGroups": {
|
||||
"vitals": "Vitalwerte",
|
||||
@@ -9754,7 +9755,7 @@
|
||||
},
|
||||
"empty": {
|
||||
"title": "Noch keine Impfung erfasst",
|
||||
"description": "Übertrage deinen Impfpass Zeile für Zeile — Datum und Impfstoff genügen."
|
||||
"description": "Übertrage deinen Impfpass Zeile für Zeile. Datum und Impfstoff genügen."
|
||||
},
|
||||
"catalog": {
|
||||
"tetanus": "Tetanus (Wundstarrkrampf)",
|
||||
@@ -10288,10 +10289,10 @@
|
||||
"saved": "Gespeichert",
|
||||
"error": "Etwas ist schiefgelaufen. Bitte versuche es erneut.",
|
||||
"instrument": {
|
||||
"phq9": "PHQ-9 · Stimmung",
|
||||
"gad7": "GAD-7 · Sorgen",
|
||||
"who5": "WHO-5 · Wohlbefinden",
|
||||
"sci": "SCI · Schlaf"
|
||||
"phq9": "PHQ-9 (Stimmung)",
|
||||
"gad7": "GAD-7 (Sorgen)",
|
||||
"who5": "WHO-5 (Wohlbefinden)",
|
||||
"sci": "SCI (Schlaf)"
|
||||
},
|
||||
"instrumentSub": {
|
||||
"phq9": "Depressions-Screening, 9 Fragen",
|
||||
@@ -10759,7 +10760,7 @@
|
||||
},
|
||||
"documents": {
|
||||
"title": "Dokumente",
|
||||
"subtitle": "Jeder Brief, Befund und Scan an einem durchsuchbaren Ort — verschlüsselt gespeichert.",
|
||||
"subtitle": "Jeder Brief, Befund und Scan an einem durchsuchbaren Ort, verschlüsselt gespeichert.",
|
||||
"pageUpload": "Hochladen",
|
||||
"ownerOnlyUpload": "Dokumente kann nur die Inhaberin oder der Inhaber der Akte hinzufügen.",
|
||||
"kind": {
|
||||
@@ -10801,15 +10802,15 @@
|
||||
},
|
||||
"error": {
|
||||
"fileTooLarge": "Diese Datei ist größer als das Limit von {maxSize}.",
|
||||
"quotaExceeded": "Der Speicher ist voll — {used} von {quota} belegt.",
|
||||
"quotaExceeded": "Der Speicher ist voll: {used} von {quota} belegt.",
|
||||
"unsupportedType": "Dieser Dateityp wird nicht unterstützt.",
|
||||
"purged": "Dieses Dokument wurde endgültig entfernt und kann nicht wiederhergestellt werden.",
|
||||
"duplicateExists": "Ein identisches Dokument ist bereits gespeichert.",
|
||||
"rateLimited": "Zu viele Uploads — versuche es in ein paar Minuten erneut.",
|
||||
"rateLimited": "Zu viele Uploads. Versuche es in ein paar Minuten erneut.",
|
||||
"generic": "Upload fehlgeschlagen. Bitte erneut versuchen."
|
||||
},
|
||||
"toast": {
|
||||
"duplicate": "Bereits gespeichert — das vorhandene Dokument wird hervorgehoben.",
|
||||
"duplicate": "Bereits gespeichert. Das vorhandene Dokument ist hervorgehoben.",
|
||||
"deleted": "Dokument gelöscht",
|
||||
"restoreFailed": "Das Dokument konnte nicht wiederhergestellt werden."
|
||||
},
|
||||
@@ -10832,7 +10833,7 @@
|
||||
},
|
||||
"empty": {
|
||||
"title": "Dein Dokumenten-Tresor ist leer",
|
||||
"description": "Bewahre Arztbriefe, Laborbefunde, Bildgebung, Rezepte und Impfnachweise auf — verschlüsselt und durchsuchbar nach Typ, Erkrankung und Jahr.",
|
||||
"description": "Bewahre Arztbriefe, Laborbefunde, Bildgebung, Rezepte und Impfnachweise auf. Sie werden verschlüsselt gespeichert und sind nach Typ, Erkrankung und Jahr durchsuchbar.",
|
||||
"action": "Erstes Dokument hochladen",
|
||||
"noMatchesTitle": "Keine passenden Dokumente",
|
||||
"noMatchesDescription": "Nichts entspricht der aktuellen Suche und den Filtern."
|
||||
@@ -10872,9 +10873,9 @@
|
||||
"linkCondition": "Verknüpfen",
|
||||
"noConditions": "Mit keiner Erkrankung verknüpft",
|
||||
"previewUnavailable": "Keine Inline-Vorschau für diesen Dateityp",
|
||||
"uploadedMeta": "Hinzugefügt am {date} · {size}",
|
||||
"uploadedMeta": "Hinzugefügt am {date}, {size}",
|
||||
"importedFrom": "Importiert aus {system}",
|
||||
"importedFromWithId": "Importiert aus {system} · ID {id}",
|
||||
"importedFromWithId": "Importiert aus {system}, ID {id}",
|
||||
"sourceOther": "einem anderen System",
|
||||
"share": "Teilen",
|
||||
"labValuesLink": "{count} Laborwerte ansehen",
|
||||
@@ -10941,7 +10942,7 @@
|
||||
"errorNotIndexed": "Lies das Dokument zuerst aus, dann extrahiere.",
|
||||
"errorLocalOcrDisabled": "Aktiviere zuerst die lokale Texterkennung in den KI-Einstellungen.",
|
||||
"errorProvider": "Dafür ist kein KI-Anbieter eingerichtet.",
|
||||
"errorTextImageOnly": "Lokale Texterkennung liest nur Bilder — nicht diese Datei.",
|
||||
"errorTextImageOnly": "Lokale Texterkennung liest nur Bilder, nicht diese Datei.",
|
||||
"errorConsent": "Für das Lesen von Dokumenten mit KI brauchst du zuerst deine Einwilligung.",
|
||||
"errorUnavailable": "Das Lesen von Dokumenten mit KI ist hier gerade nicht verfügbar."
|
||||
},
|
||||
@@ -10974,7 +10975,7 @@
|
||||
"CONDITION": "Erkrankung",
|
||||
"MEDICATION_STATEMENT": "Medikament"
|
||||
},
|
||||
"statedRange": "angegebener Bereich {range}",
|
||||
"statedRange": "Angegebener Bereich {range}",
|
||||
"needsCheck": "Prüfe diesen Wert gegen das Dokument und speichere ihn dann.",
|
||||
"verify": "Prüfen",
|
||||
"verifySave": "Wert speichern",
|
||||
@@ -11244,14 +11245,14 @@
|
||||
}
|
||||
},
|
||||
"hydration": {
|
||||
"referenceMeta": "Richtwert {value} {unit}/Tag · EFSA"
|
||||
"referenceMeta": "Richtwert {value} {unit}/Tag (EFSA)"
|
||||
},
|
||||
"caffeine": {
|
||||
"ceilingMeta": "Sichere Obergrenze {value} {unit}/Tag · EFSA"
|
||||
"ceilingMeta": "Sichere Obergrenze {value} {unit}/Tag (EFSA)"
|
||||
},
|
||||
"micronutrients": {
|
||||
"title": "Vitamine & Mineralstoffe",
|
||||
"rowMeta": "{days} von {window} Tagen · Richtwert {value} {unit} (EFSA)",
|
||||
"rowMeta": "{days} von {window} Tagen, Richtwert {value} {unit} (EFSA)",
|
||||
"rowMetaNoRef": "{days} von {window} Tagen",
|
||||
"footer": "{tracked} von {total} erfassten Mikronährstoffen haben Daten in diesem Zeitraum.",
|
||||
"emptyTitle": "Noch keine Mikronährstoffdaten synchronisiert",
|
||||
@@ -11266,7 +11267,7 @@
|
||||
},
|
||||
"push": {
|
||||
"title": "Dein Morgenüberblick",
|
||||
"bodyProvisional": "{line} · Der Schlaf von letzter Nacht fehlt noch."
|
||||
"bodyProvisional": "{line}\nDer Schlaf von letzter Nacht fehlt noch."
|
||||
},
|
||||
"item": {
|
||||
"doseWindow": {
|
||||
@@ -11654,7 +11655,7 @@
|
||||
"managed": {
|
||||
"title": "Profile, die du betreust",
|
||||
"description": "Gesundheitsakten ohne eigenen Login.",
|
||||
"explainer": "Ein verwaltetes Profil ist eine Gesundheitsakte für jemanden, der sich nicht selbst anmeldet — ein Kind oder eine Person, um die du dich kümmerst. Es hat keinen Login und keine E-Mail-Adresse, und du wirst die erste betreuende Person. Später kannst du weitere hinzufügen, und ihr alle könnt in die Akte wechseln, um sie zu pflegen.",
|
||||
"explainer": "Ein verwaltetes Profil ist eine Gesundheitsakte für jemanden, der sich nicht selbst anmeldet, etwa ein Kind oder eine Person, um die du dich kümmerst. Es hat keinen Login und keine E-Mail-Adresse, und du wirst die erste betreuende Person. Später kannst du weitere hinzufügen, und ihr alle könnt in die Akte wechseln, um sie zu pflegen.",
|
||||
"nameLabel": "Name",
|
||||
"namePlaceholder": "Der Name, an dem du diese Akte erkennst",
|
||||
"nameHint": "Bis zu 80 Zeichen. Wird überall dort angezeigt, wo diese Akte auftaucht.",
|
||||
@@ -11676,7 +11677,7 @@
|
||||
"creating": "Wird angelegt…",
|
||||
"created": "{name} ist eingerichtet. Über das Kontomenü kannst du in diese Akte wechseln.",
|
||||
"errorStepUp": "Bestätige deinen zweiten Faktor und versuche es erneut.",
|
||||
"errorOffline": "Das hat den Server nicht erreicht. Es hat sich nichts geändert — prüfe deine Verbindung und versuche es erneut.",
|
||||
"errorOffline": "Das hat den Server nicht erreicht. Es hat sich nichts geändert. Prüfe deine Verbindung und versuche es erneut.",
|
||||
"errorInvalid": "Der Server hat diese Angaben abgelehnt. Prüfe Name, Datum und Zeitzone.",
|
||||
"errorFailed": "Das Profil konnte nicht angelegt werden.",
|
||||
"edit": "Bearbeiten",
|
||||
@@ -11687,7 +11688,7 @@
|
||||
"editErrorFailed": "Die Änderungen konnten nicht gespeichert werden.",
|
||||
"delete": "Profil löschen",
|
||||
"deleteTitle": "{name} löschen?",
|
||||
"deleteBody": "Alles, was für {name} erfasst wurde, verschwindet mit dem Profil — Messwerte, Medikamente, Dokumente und Notizen. Das lässt sich nicht rückgängig machen.",
|
||||
"deleteBody": "Alles, was für {name} erfasst wurde, verschwindet mit dem Profil: Messwerte, Medikamente, Dokumente und Notizen. Das lässt sich nicht rückgängig machen.",
|
||||
"deleteGuardiansOne": "{count} Person betreut diese Akte derzeit und verliert sie.",
|
||||
"deleteGuardiansFew": "{count} Personen betreuen diese Akte derzeit und verlieren sie.",
|
||||
"deleteGuardiansOther": "{count} Personen betreuen diese Akte derzeit und verlieren sie.",
|
||||
@@ -11702,7 +11703,7 @@
|
||||
"guardianRemoveBody": "{name} kann {profile} dann nicht mehr öffnen. Was diese Person eingetragen hat, bleibt in der Akte.",
|
||||
"guardianWithdrawBody": "Die Einladung an {name} wird zurückgezogen. Die Person hat {profile} nie geöffnet, in der Akte ändert sich nichts.",
|
||||
"guardianRemoveConfirm": "Zugriff beenden",
|
||||
"soleGuardian": "Du bist die einzige Person, die sich um {name} kümmert — hier gibt es also keinen Zugriff, den du beenden könntest. Lade jemanden ein und warte auf die Annahme, gib deinen eigenen Zugriff unter „Akten, die ich öffnen kann“ zurück, oder lösche das Profil.",
|
||||
"soleGuardian": "Du bist die einzige Person, die sich um {name} kümmert. Hier gibt es also keinen Zugriff, den du beenden könntest. Lade jemanden ein und warte auf die Annahme, gib deinen eigenen Zugriff unter „Akten, die ich öffnen kann“ zurück, oder lösche das Profil.",
|
||||
"guardianInviteLabel": "Weitere betreuende Person einladen",
|
||||
"guardianInvite": "Einladung senden",
|
||||
"guardianInviting": "Wird gesendet…",
|
||||
@@ -11973,7 +11974,7 @@
|
||||
"both": "Beidseitig",
|
||||
"none": "Keine Angabe"
|
||||
},
|
||||
"bodySiteWithSide": "{site} · {side}",
|
||||
"bodySiteWithSide": "{site} ({side})",
|
||||
"sectionTitle": "Termine",
|
||||
"sectionDescription": "Arztbesuche und gebuchte Termine an einem Ort.",
|
||||
"add": "Termin",
|
||||
@@ -12227,7 +12228,6 @@
|
||||
"loadFailed": "Dieser Tag konnte nicht geladen werden.",
|
||||
"dayOf": "Tag {n} von {m}",
|
||||
"dayN": "Tag {n}",
|
||||
"since": "seit {date}",
|
||||
"usualRange": "Üblich {lo} bis {hi}",
|
||||
"groups": {
|
||||
"running": "Laufend an diesem Tag",
|
||||
@@ -12254,11 +12254,11 @@
|
||||
"description": "Alles, was deine Einträge für diesen Tag enthalten.",
|
||||
"openDocument": "Dokument öffnen",
|
||||
"previousReading": "Vorher, {date}",
|
||||
"rugLegend": "Punkte unter der Achse: Tage mit Einträgen · Ring: auffälliger Tag",
|
||||
"rugLegend": "Punkte unter der Achse markieren Tage mit Einträgen, ein Ring einen auffälligen Tag.",
|
||||
"sheetExpand": "Auf volle Höhe aufziehen",
|
||||
"sheetShrink": "Verkleinern",
|
||||
"usualLabel": "Deine 30 Tage davor",
|
||||
"valuesLegend": "Punkt: dieser Tag · Strich: deine 30 Tage davor",
|
||||
"valuesLegend": "Punkt für diesen Tag, Strich für die 30 Tage davor",
|
||||
"valuesAllOne": "Alle Werte",
|
||||
"valuesAllFew": "Alle {count} Werte",
|
||||
"valuesAllOther": "Alle {count} Werte",
|
||||
@@ -12284,7 +12284,9 @@
|
||||
"note": "Zusammengestellt aus deinen Einträgen, ohne Bewertung. Jedes Datum öffnet den ganzen Tag.",
|
||||
"report": "Arztbericht {date} bis heute"
|
||||
},
|
||||
"travel": "Unterwegs"
|
||||
"travel": "Unterwegs",
|
||||
"dayNSince": "Tag {n}, seit {date}",
|
||||
"sinceDate": "Seit {date}"
|
||||
},
|
||||
"timeline": {
|
||||
"title": "Zeitleiste",
|
||||
@@ -12358,9 +12360,9 @@
|
||||
"vaccinationsOne": "{count} Impfung",
|
||||
"vaccinationsFew": "{count} Impfungen",
|
||||
"vaccinationsOther": "{count} Impfungen",
|
||||
"visitsOne": "{count} Besuch · {procedures} mit Eingriff",
|
||||
"visitsFew": "{count} Besuche · {procedures} mit Eingriff",
|
||||
"visitsOther": "{count} Besuche · {procedures} mit Eingriff",
|
||||
"visitsOne": "{count} Besuch, {procedures} mit Eingriff",
|
||||
"visitsFew": "{count} Besuche, {procedures} mit Eingriff",
|
||||
"visitsOther": "{count} Besuche, {procedures} mit Eingriff",
|
||||
"visitsPlannedOne": "{count} Besuch, nur geplant",
|
||||
"visitsPlannedFew": "{count} Besuche, nur geplant",
|
||||
"visitsPlannedOther": "{count} Besuche, nur geplant",
|
||||
@@ -12463,8 +12465,8 @@
|
||||
"months": "Monate",
|
||||
"years": "Jahre",
|
||||
"groupingLabel": "Gruppierung",
|
||||
"gap": "{from} bis {to} · keine Einträge",
|
||||
"gapSingle": "{period} · keine Einträge",
|
||||
"gap": "{from} bis {to} ohne Einträge",
|
||||
"gapSingle": "{period} ohne Einträge",
|
||||
"ended": "{label} vorbei",
|
||||
"afterDaysOne": "nach einem Tag",
|
||||
"afterDaysFew": "nach {count} Tagen",
|
||||
|
||||
+121
-119
@@ -242,7 +242,7 @@
|
||||
"colExpected": "Expected",
|
||||
"colComplianceRate": "Adherence rate",
|
||||
"moodTitle": "Mood trajectory",
|
||||
"moodSummary": "Average: {avg} / 5.0 · Entries: {count} · Range: {min}–{max}",
|
||||
"moodSummary": "Average {avg} / 5.0, {count} entries, range {min}–{max}",
|
||||
"colMood": "Mood",
|
||||
"colCount": "Count",
|
||||
"colShare": "Share",
|
||||
@@ -579,8 +579,8 @@
|
||||
"sleepShort": "Sleep",
|
||||
"stepsShort": "Steps",
|
||||
"vo2MaxShort": "VO₂ max",
|
||||
"bpInTargetWindow90": "BP in Target · 90d",
|
||||
"bpInTargetWindowDynamic": "BP in Target · {days}d",
|
||||
"bpInTargetWindow90": "BP in Target (90d)",
|
||||
"bpInTargetWindowDynamic": "BP in Target ({days}d)",
|
||||
"bpInTargetCollecting": "collecting data",
|
||||
"medications": "Medications",
|
||||
"quickAddMeasurement": "Log measurement",
|
||||
@@ -1336,7 +1336,7 @@
|
||||
"complianceInfoLabel": "What does adherence mean?",
|
||||
"lastIntake": "Last intake:",
|
||||
"nextIntake": "Next intake:",
|
||||
"nextIntakeOverdue": "Overdue · {time} — can still be taken",
|
||||
"nextIntakeOverdue": "Overdue since {time}, can still be taken",
|
||||
"dayStreak": "day streak",
|
||||
"dayStreakOne": "day streak",
|
||||
"cycleDueToday": "Due today",
|
||||
@@ -1737,7 +1737,7 @@
|
||||
"empty": "No dose-escalation steps recorded yet. Add dated dose changes to plot the plan.",
|
||||
"youAreHere": "You are here",
|
||||
"doseStep": "{dose} {unit}",
|
||||
"plannedFor": "Planned · {date}"
|
||||
"plannedFor": "Planned for {date}"
|
||||
},
|
||||
"injectionSiteBodyOutlineAriaLabel": "Body outline",
|
||||
"injectionSitePickerAriaLabel": "Injection site picker",
|
||||
@@ -1788,7 +1788,7 @@
|
||||
"intakeHistoryStatusSkipped": "Skipped",
|
||||
"intakeHistorySortByTaken": "Sort by taken time",
|
||||
"intakeHistorySortByScheduled": "Sort by scheduled time",
|
||||
"intakeHistoryPageInfo": "Page {page} of {total} · {count} entries",
|
||||
"intakeHistoryPageInfo": "Page {page} of {total}, {count} entries",
|
||||
"intakeHistoryPrev": "Previous",
|
||||
"intakeHistoryNext": "Next",
|
||||
"glp1": {
|
||||
@@ -1888,7 +1888,7 @@
|
||||
"markAsTaken": "Mark as taken",
|
||||
"markAsSkipped": "Mark as skipped",
|
||||
"adHocTag": "off-schedule",
|
||||
"takenDetail": "planned {planned} · taken {taken}",
|
||||
"takenDetail": "planned {planned}, taken {taken}",
|
||||
"doseTaken": "Dose: {dose}",
|
||||
"status": {
|
||||
"taken_on_time": "on time",
|
||||
@@ -2594,31 +2594,31 @@
|
||||
"ENV_POLLEN_MAX": "pollen"
|
||||
},
|
||||
"daily": {
|
||||
"high": "Higher {behaviour} tends to go with {direction} next-day {outcome} in your data — a pattern worth watching, not a cause.",
|
||||
"moderate": "Higher {behaviour} looks like it goes with {direction} next-day {outcome} in your data, on the evidence so far — a pattern worth watching, not a cause.",
|
||||
"faint": "Higher {behaviour} shows a faint hint, if anything, of {direction} next-day {outcome} in your data — too small to lean on, never a cause."
|
||||
"high": "Higher {behaviour} tends to go with {direction} next-day {outcome} in your data. It is a pattern to watch, not a cause.",
|
||||
"moderate": "Higher {behaviour} looks like it goes with {direction} next-day {outcome} in your data, on the evidence so far. It is a pattern to watch, not a cause.",
|
||||
"faint": "Higher {behaviour} shows at most a faint hint of {direction} next-day {outcome} in your data. It is too small to lean on and never a cause."
|
||||
},
|
||||
"lab": {
|
||||
"default": "Higher {lab} readings line up with {direction} {outcome} over the same periods in your data — an association worth watching with your clinician, never a cause.",
|
||||
"faint": "Higher {lab} readings show a faint hint, if anything, of {direction} {outcome} over the same periods in your data — too small to lean on, an association to raise with your clinician, never a cause."
|
||||
"default": "Higher {lab} readings line up with {direction} {outcome} over the same periods in your data, an association worth watching with your clinician, never a cause.",
|
||||
"faint": "Higher {lab} readings show at most a faint hint of {direction} {outcome} over the same periods in your data. It is too small to lean on and never a cause, but worth raising with your clinician."
|
||||
},
|
||||
"hypothesis": {
|
||||
"bpCompliance": {
|
||||
"support": "Higher medication compliance lines up with lower systolic readings — a pattern worth watching.",
|
||||
"surprising": "Compliance and systolic move together in your data — surprising; talk to your doctor before adjusting anything.",
|
||||
"support": "Higher medication compliance lines up with lower systolic readings, a pattern worth watching.",
|
||||
"surprising": "Compliance and systolic move together in your data, which is surprising. Talk to your doctor before adjusting anything.",
|
||||
"none": "Compliance and systolic do not move together strongly in this window."
|
||||
},
|
||||
"moodPulse": {
|
||||
"support": "Lower-mood days line up with higher resting pulse — a pattern worth watching.",
|
||||
"surprising": "Higher-mood days line up with higher resting pulse in your data — surprising.",
|
||||
"support": "Lower-mood days line up with higher resting pulse, a pattern worth watching.",
|
||||
"surprising": "Higher-mood days line up with higher resting pulse in your data, which is surprising.",
|
||||
"none": "Mood and resting pulse do not move together strongly in this window."
|
||||
},
|
||||
"weightWeekday": "{weekday} weights run {delta} kg {direction} your other-day average — a pattern worth watching."
|
||||
"weightWeekday": "{weekday} weights run {delta} kg {direction} your other-day average, a pattern worth watching."
|
||||
},
|
||||
"dailySameDay": {
|
||||
"high": "Higher {behaviour} on the day and the day before tends to go with {direction} {outcome} in your data — a pattern worth watching, not a cause.",
|
||||
"moderate": "Higher {behaviour} on the day and the day before looks like it goes with {direction} {outcome} in your data, on the evidence so far — a pattern worth watching, not a cause.",
|
||||
"faint": "Higher {behaviour} on the day and the day before shows a faint hint, if anything, of {direction} {outcome} in your data — too small to lean on, never a cause."
|
||||
"high": "Higher {behaviour} on the day and the day before tends to go with {direction} {outcome} in your data. It is a pattern to watch, not a cause.",
|
||||
"moderate": "Higher {behaviour} on the day and the day before looks like it goes with {direction} {outcome} in your data, on the evidence so far. It is a pattern to watch, not a cause.",
|
||||
"faint": "Higher {behaviour} on the day and the day before shows a faint hint, if anything, of {direction} {outcome} in your data. It is too small to lean on and never a cause."
|
||||
}
|
||||
},
|
||||
"noAnalysisYet": "No assessment yet.",
|
||||
@@ -2730,7 +2730,7 @@
|
||||
"referenceSleep": "At least {low} minutes per night; longer sleep is not penalised",
|
||||
"referenceAdiposity": "Waist-to-height ratio below {high}",
|
||||
"referenceHba1c": "HbA1c {low} to {high}%",
|
||||
"referenceDetail": "{label} · {source} · {kind} · {low} to {high}",
|
||||
"referenceDetail": "{label}: {low} to {high} ({kind}, {source})",
|
||||
"openBound": "open",
|
||||
"laboratoryReferenceSource": "Reporting laboratory reference ranges",
|
||||
"personalTargetSource": "Personal target",
|
||||
@@ -2824,7 +2824,7 @@
|
||||
"experimentCta": "Try a 7-day experiment",
|
||||
"experimentTooltip": "Coming soon",
|
||||
"emptyTitle": "Need more data to see this relationship",
|
||||
"sourceChip": "based on {n} paired readings · {window}",
|
||||
"sourceChip": "based on {n} paired readings ({window})",
|
||||
"sourceWindowLast30": "last 30 days",
|
||||
"confidenceHigh": "High confidence",
|
||||
"confidenceModerate": "Moderate confidence",
|
||||
@@ -3003,23 +3003,23 @@
|
||||
"cluster": {
|
||||
"cardio": {
|
||||
"label": "Cardiovascular",
|
||||
"hint": "BP · pulse · HRV · resting & walking HR"
|
||||
"hint": "BP, pulse, HRV, resting and walking HR"
|
||||
},
|
||||
"body": {
|
||||
"label": "Body composition",
|
||||
"hint": "Weight · body fat · muscle · BMI"
|
||||
"hint": "Weight, body fat, muscle and BMI"
|
||||
},
|
||||
"activity": {
|
||||
"label": "Activity",
|
||||
"hint": "Steps · energy · distance · VO₂ max"
|
||||
"hint": "Steps, energy, distance and VO₂ max"
|
||||
},
|
||||
"workouts": {
|
||||
"label": "Workouts",
|
||||
"hint": "Runs · rides · sessions"
|
||||
"hint": "Runs, rides and sessions"
|
||||
},
|
||||
"sleep": {
|
||||
"label": "Sleep",
|
||||
"hint": "Duration · stages"
|
||||
"hint": "Duration and stages"
|
||||
},
|
||||
"mood": {
|
||||
"label": "Mood",
|
||||
@@ -3027,19 +3027,19 @@
|
||||
},
|
||||
"glucose": {
|
||||
"label": "Glucose",
|
||||
"hint": "Fasting · postprandial readings"
|
||||
"hint": "Fasting and postprandial readings"
|
||||
},
|
||||
"medication": {
|
||||
"label": "Medication",
|
||||
"hint": "Adherence · GLP-1 context"
|
||||
"hint": "Adherence and GLP-1 context"
|
||||
},
|
||||
"mobility": {
|
||||
"label": "Mobility & gait",
|
||||
"hint": "Steadiness · asymmetry · gait"
|
||||
"hint": "Steadiness, asymmetry and gait"
|
||||
},
|
||||
"environment": {
|
||||
"label": "Environment",
|
||||
"hint": "Noise · daylight · skin temp"
|
||||
"hint": "Noise, daylight and skin temperature"
|
||||
}
|
||||
},
|
||||
"settingsClustersLabel": "Data the Coach sees",
|
||||
@@ -3227,9 +3227,9 @@
|
||||
"cap": "Many steps, wrapping up",
|
||||
"noProgress": "No new data, wrapping up"
|
||||
},
|
||||
"thoughtProcessOne": "Thought process · {count} step",
|
||||
"thoughtProcessFew": "Thought process · {count} steps",
|
||||
"thoughtProcessOther": "Thought process · {count} steps",
|
||||
"thoughtProcessOne": "Thought process ({count} step)",
|
||||
"thoughtProcessFew": "Thought process ({count} steps)",
|
||||
"thoughtProcessOther": "Thought process ({count} steps)",
|
||||
"awaitingAnswer": "Answer needed"
|
||||
},
|
||||
"memory": {
|
||||
@@ -4062,7 +4062,7 @@
|
||||
"distributionDaysUnit": "days",
|
||||
"weekdayTitle": "Average by weekday",
|
||||
"weekdayNoData": "No data",
|
||||
"weekdayBestWorst": "Best day: {best} · Toughest day: {worst}",
|
||||
"weekdayBestWorst": "Best day: {best}, toughest day: {worst}",
|
||||
"tagsTitle": "Tags and triggers",
|
||||
"tagAvgMood": "Average mood when tagged",
|
||||
"correlationsTitle": "Mood and other metrics",
|
||||
@@ -4078,7 +4078,7 @@
|
||||
"strengthModerate": "Moderate",
|
||||
"strengthWeak": "Weak",
|
||||
"strengthNone": "None",
|
||||
"source": "{n} paired days · r = {r}",
|
||||
"source": "{n} paired days, r = {r}",
|
||||
"sourceLabel": "How this was computed",
|
||||
"emptyTitle": "Not enough paired data yet",
|
||||
"emptyDescription": "Log mood and this metric on the same days to see a correlation.",
|
||||
@@ -4137,7 +4137,7 @@
|
||||
"crosstab": {
|
||||
"title": "Tags and your health metrics",
|
||||
"description": "How a health metric differs on the days you tagged each activity, compared with the days you did not.",
|
||||
"pairLabel": "{tag} · {metric}",
|
||||
"pairLabel": "{metric} on days with {tag}",
|
||||
"metricActiveEnergy": "Active energy",
|
||||
"metricSleepDuration": "Sleep",
|
||||
"metricNextDayRecovery": "Next-day recovery",
|
||||
@@ -4154,7 +4154,7 @@
|
||||
"factorCrosstab": {
|
||||
"title": "Your rated factors and your vitals",
|
||||
"description": "How a vital differs on the days you rated each factor low compared with the days you rated it high.",
|
||||
"pairLabel": "{factor} · {metric}",
|
||||
"pairLabel": "{metric} on days with {factor}",
|
||||
"metricSleepDuration": "Sleep",
|
||||
"metricSteps": "Steps",
|
||||
"metricRestingHeartRate": "Resting heart rate",
|
||||
@@ -4180,7 +4180,7 @@
|
||||
"moodDown": "Higher {factor} tends to go with lower next-day mood in your data.",
|
||||
"outcomeUp": "Higher mood tends to go with higher next-day {factor} in your data.",
|
||||
"outcomeDown": "Higher mood tends to go with lower next-day {factor} in your data.",
|
||||
"stat": "{n} paired days · r = {r} · q = {q}",
|
||||
"stat": "{n} paired days, r = {r}, q = {q}",
|
||||
"statLabel": "How this was computed",
|
||||
"explainerLabel": "How this was computed"
|
||||
},
|
||||
@@ -4224,11 +4224,11 @@
|
||||
},
|
||||
"derived": {
|
||||
"coverage": {
|
||||
"summary": "{present} of {required} inputs · {percent}%",
|
||||
"summary": "{present} of {required} inputs ({percent}%)",
|
||||
"ratioLabel": "{present}/{required}",
|
||||
"historyDays": "Based on {count} days of history",
|
||||
"missing": "Track these to sharpen this: {list}",
|
||||
"summaryLabelled": "{label} · {percent}%"
|
||||
"summaryLabelled": "{label} ({percent}%)"
|
||||
},
|
||||
"scoreRing": {
|
||||
"aria": "Score {score} out of 100, {band}",
|
||||
@@ -4246,7 +4246,7 @@
|
||||
"inputsLabel": "Inputs",
|
||||
"noInputs": "No inputs backed this value yet.",
|
||||
"methodLabel": "Method",
|
||||
"window": "From your last {days} days · {source} data",
|
||||
"window": "From your last {days} days of {source} data",
|
||||
"asOf": "as of {date}",
|
||||
"standardLink": "Standard: {name}"
|
||||
},
|
||||
@@ -4288,7 +4288,7 @@
|
||||
"anatomy": {
|
||||
"outOf": "/100",
|
||||
"contributorsLabel": "Contributors",
|
||||
"contributorValue": "{value} · {weight}% weight",
|
||||
"contributorValue": "{value}, weighted {weight}%",
|
||||
"contributorMissing": "no data",
|
||||
"insufficient": "Not enough data yet to score this. Keep tracking and it will appear here."
|
||||
},
|
||||
@@ -4756,10 +4756,10 @@
|
||||
"dismiss": "Not now"
|
||||
},
|
||||
"bmiHeight": {
|
||||
"coachPrefill": "I haven’t set my height yet — why does BMI matter, and what should I know before I configure it?"
|
||||
"coachPrefill": "I haven’t set my height yet. Why does BMI matter, and what should I know before I configure it?"
|
||||
},
|
||||
"medicationsEmpty": {
|
||||
"coachPrefill": "I haven’t added any medications yet — what should I know before I start tracking medication compliance here?"
|
||||
"coachPrefill": "I haven’t added any medications yet. What should I know before I start tracking medication compliance here?"
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
@@ -5521,7 +5521,7 @@
|
||||
"dropHint": "or click to choose a file",
|
||||
"fileInputLabel": "Choose an Apple Health export.zip file",
|
||||
"choose": "Choose file",
|
||||
"idempotencyNote": "Re-uploading the same archive merges — it won't create duplicates. Large archives are processed in the background.",
|
||||
"idempotencyNote": "Re-uploading the same archive merges it and creates no duplicates. Large archives are processed in the background.",
|
||||
"uploading": "Uploading…",
|
||||
"uploadFailed": "Upload failed. Please try again.",
|
||||
"rateLimited": "Too many uploads. Please wait a moment and try again.",
|
||||
@@ -5530,7 +5530,7 @@
|
||||
"failureInterrupted": "The import was interrupted before it finished, usually by a server restart or an out-of-memory stop. Your data is safe; upload the export again to retry.",
|
||||
"failureInsufficientMemory": "The server's memory limit is too low for an archive this size. Ask whoever runs the server to raise the Node.js heap limit (NODE_OPTIONS=--max-old-space-size), then upload the export again.",
|
||||
"rowsImported": "{count} rows imported so far",
|
||||
"doneSummary": "Done — {imported} of {read} records imported, {skipped} clinical records skipped.",
|
||||
"doneSummary": "Done: {imported} of {read} records imported, {skipped} clinical records skipped.",
|
||||
"doneNothing": "Nothing was imported from that archive: 0 of {read} records landed.",
|
||||
"writtenByHealthLogOne": "{count} record that HealthLog wrote into Apple Health itself was left out, because it is already in your data.",
|
||||
"writtenByHealthLogOther": "{count} records that HealthLog wrote into Apple Health itself were left out, because they are already in your data.",
|
||||
@@ -5543,12 +5543,12 @@
|
||||
"parsing": "Reading the export…",
|
||||
"upserting": "Importing records…"
|
||||
},
|
||||
"skipUnsupported": "{count} samples skipped — data types HealthLog doesn't import.",
|
||||
"skipUnsupported": "{count} samples skipped: data types HealthLog doesn't import.",
|
||||
"skipRefused": "{count} samples couldn't be written (unreadable, out of range, or the save failed).",
|
||||
"skipBreakdown": "Show breakdown ({count} types)",
|
||||
"skipBreakdownMore": "+ {count} more types",
|
||||
"cycleSummary": "{samples} cycle samples merged into {days} day logs.",
|
||||
"cycleModuleOff": "{count} cycle samples skipped — cycle tracking is off for this account.",
|
||||
"cycleModuleOff": "{count} cycle samples skipped because cycle tracking is off for this account.",
|
||||
"cycleDaysFailed": "{count} cycle days couldn't be written: {reason}"
|
||||
},
|
||||
"json": {
|
||||
@@ -5633,8 +5633,8 @@
|
||||
"failed": "The import failed. Nothing was written.",
|
||||
"columnsHeading": "What each column does",
|
||||
"jsonOnly": "JSON only",
|
||||
"previewLine": "Rows read: {rows} · would import: {queued} · refused: {refused}",
|
||||
"submittedLine": "Rows read: {rows} · queued for import: {queued}",
|
||||
"previewLine": "{rows} rows read, {queued} would be imported, {refused} refused",
|
||||
"submittedLine": "{rows} rows read, {queued} queued for import",
|
||||
"unmatched": "No medication on record matches: {names}",
|
||||
"ambiguous": "Matches more than one medication: {names}",
|
||||
"mirrored": "Mirrored from another app, so no dose can be added: {names}",
|
||||
@@ -5799,19 +5799,20 @@
|
||||
"storedDays": "{count} days of weather stored.",
|
||||
"home": {
|
||||
"title": "Home location",
|
||||
"description": "A coarse, city-level location — never a precise track. Weather and daylight are fetched for this place on days no location period applies, from the date you set it onward.",
|
||||
"description": "A coarse, city-level location, never a precise track. Weather and daylight are fetched for this place on days no location period applies, from the date you set it onward.",
|
||||
"current": "Current: {label}",
|
||||
"none": "No home location set yet.",
|
||||
"since": "Weather tracked from {date} onward. Earlier days stay empty until you add a location period."
|
||||
},
|
||||
"travel": {
|
||||
"title": "Location periods",
|
||||
"description": "Add a place and a date range — a trip, or a stretch of earlier history. The period overrides your home for the days it covers, so weather matches where you actually were. This is how you correct the past.",
|
||||
"description": "Add a place and a date range, such as a trip or a stretch of earlier history. The period overrides your home for the days it covers, so weather matches where you actually were. This is how you correct the past.",
|
||||
"none": "No location periods yet.",
|
||||
"add": "Add {label}",
|
||||
"remove": "Remove location period",
|
||||
"removeConfirmTitle": "Remove this trip?",
|
||||
"removeConfirmBody": "Readings taken during it stay in your record; only the trip entry goes."
|
||||
"removeConfirmBody": "Readings taken during it stay in your record; only the trip entry goes.",
|
||||
"range": "{start} to {end}"
|
||||
},
|
||||
"backfill": {
|
||||
"title": "Backfill past days",
|
||||
@@ -6519,7 +6520,7 @@
|
||||
},
|
||||
"integrationFreshness": {
|
||||
"title": "Data received",
|
||||
"summary": "{count} data types · newest {relative}",
|
||||
"summary": "{count} data types, newest {relative}",
|
||||
"quiet": "{count} quiet",
|
||||
"workouts": "Workouts"
|
||||
},
|
||||
@@ -7078,14 +7079,14 @@
|
||||
"title": "Sync progress",
|
||||
"receivedLabel": "Records received",
|
||||
"oldestLabel": "Oldest reading reached",
|
||||
"flowing": "Data arrived within the last hour — the iPhone app is still delivering.",
|
||||
"waiting": "Waiting for the iPhone app to send more data. Delivery continues when the app is open or when iOS grants it background time — a quiet stretch during the first big backfill is normal, not an error."
|
||||
"flowing": "Data arrived within the last hour. The iPhone app is still delivering.",
|
||||
"waiting": "Waiting for the iPhone app to send more data. Delivery continues when the app is open or when iOS grants it background time. A quiet stretch during the first big backfill is normal, not an error."
|
||||
},
|
||||
"delivery": {
|
||||
"title": "Delivery",
|
||||
"lastTriggerLabel": "Latest sync arrived",
|
||||
"lastBackgroundLabel": "Last background sync",
|
||||
"backgroundNever": "Never — every sync so far arrived with the app open",
|
||||
"backgroundNever": "Never: every sync so far arrived with the app open",
|
||||
"noSyncYet": "No sync has arrived yet, so there is nothing to report here.",
|
||||
"trigger": {
|
||||
"foreground": "with the app open",
|
||||
@@ -8085,19 +8086,19 @@
|
||||
"description": "Take all medications on time for 1 day."
|
||||
},
|
||||
"compliance801": {
|
||||
"title": "80% adherence · 1d",
|
||||
"title": "80% adherence for 1 day",
|
||||
"description": "Reach at least 80% 30-day adherence for 1 day."
|
||||
},
|
||||
"bmiGreen1": {
|
||||
"title": "BMI green · 1d",
|
||||
"title": "BMI green for 1 day",
|
||||
"description": "Keep your BMI in the normal range for 1 day."
|
||||
},
|
||||
"bpGreen1": {
|
||||
"title": "BP green · 1d",
|
||||
"title": "BP green for 1 day",
|
||||
"description": "Keep your blood pressure in the normal range for 1 day."
|
||||
},
|
||||
"pulseGreen1": {
|
||||
"title": "Pulse green · 1d",
|
||||
"title": "Pulse green for 1 day",
|
||||
"description": "Keep your resting pulse in the normal range for 1 day."
|
||||
},
|
||||
"onTimePerfect7": {
|
||||
@@ -8105,19 +8106,19 @@
|
||||
"description": "Take all medications on time for 7 consecutive days."
|
||||
},
|
||||
"compliance807": {
|
||||
"title": "80% adherence · 7d",
|
||||
"title": "80% adherence for 7 days",
|
||||
"description": "Reach at least 80% 30-day adherence for 7 consecutive days."
|
||||
},
|
||||
"bmiGreen7": {
|
||||
"title": "BMI green · 7d",
|
||||
"title": "BMI green for 7 days",
|
||||
"description": "Keep your BMI in the normal range for 7 consecutive days."
|
||||
},
|
||||
"bpGreen7": {
|
||||
"title": "BP green · 7d",
|
||||
"title": "BP green for 7 days",
|
||||
"description": "Keep your blood pressure in the normal range for 7 consecutive days."
|
||||
},
|
||||
"pulseGreen7": {
|
||||
"title": "Pulse green · 7d",
|
||||
"title": "Pulse green for 7 days",
|
||||
"description": "Keep your resting pulse in the normal range for 7 consecutive days."
|
||||
},
|
||||
"onTimePerfect30": {
|
||||
@@ -8125,19 +8126,19 @@
|
||||
"description": "Take all medications on time for 30 consecutive days."
|
||||
},
|
||||
"compliance8030": {
|
||||
"title": "80% adherence · 30d",
|
||||
"title": "80% adherence for 30 days",
|
||||
"description": "Reach at least 80% 30-day adherence for 30 consecutive days."
|
||||
},
|
||||
"bmiGreen30": {
|
||||
"title": "BMI green · 30d",
|
||||
"title": "BMI green for 30 days",
|
||||
"description": "Keep your BMI in the normal range for 30 consecutive days."
|
||||
},
|
||||
"bpGreen30": {
|
||||
"title": "BP green · 30d",
|
||||
"title": "BP green for 30 days",
|
||||
"description": "Keep your blood pressure in the normal range for 30 consecutive days."
|
||||
},
|
||||
"pulseGreen30": {
|
||||
"title": "Pulse green · 30d",
|
||||
"title": "Pulse green for 30 days",
|
||||
"description": "Keep your resting pulse in the normal range for 30 consecutive days."
|
||||
},
|
||||
"onTimePerfect180": {
|
||||
@@ -8145,19 +8146,19 @@
|
||||
"description": "Take all medications on time for 180 consecutive days."
|
||||
},
|
||||
"compliance80180": {
|
||||
"title": "80% adherence · 180d",
|
||||
"title": "80% adherence for 180 days",
|
||||
"description": "Reach at least 80% 30-day adherence for 180 consecutive days."
|
||||
},
|
||||
"bmiGreen180": {
|
||||
"title": "BMI green · 180d",
|
||||
"title": "BMI green for 180 days",
|
||||
"description": "Keep your BMI in the normal range for 180 consecutive days."
|
||||
},
|
||||
"bpGreen180": {
|
||||
"title": "BP green · 180d",
|
||||
"title": "BP green for 180 days",
|
||||
"description": "Keep your blood pressure in the normal range for 180 consecutive days."
|
||||
},
|
||||
"pulseGreen180": {
|
||||
"title": "Pulse green · 180d",
|
||||
"title": "Pulse green for 180 days",
|
||||
"description": "Keep your resting pulse in the normal range for 180 consecutive days."
|
||||
},
|
||||
"onTimePerfect360": {
|
||||
@@ -8165,19 +8166,19 @@
|
||||
"description": "Take all medications on time for 360 consecutive days."
|
||||
},
|
||||
"compliance80360": {
|
||||
"title": "80% adherence · 360d",
|
||||
"title": "80% adherence for 360 days",
|
||||
"description": "Reach at least 80% 30-day adherence for 360 consecutive days."
|
||||
},
|
||||
"bmiGreen360": {
|
||||
"title": "BMI green · 360d",
|
||||
"title": "BMI green for 360 days",
|
||||
"description": "Keep your BMI in the normal range for 360 consecutive days."
|
||||
},
|
||||
"bpGreen360": {
|
||||
"title": "BP green · 360d",
|
||||
"title": "BP green for 360 days",
|
||||
"description": "Keep your blood pressure in the normal range for 360 consecutive days."
|
||||
},
|
||||
"pulseGreen360": {
|
||||
"title": "Pulse green · 360d",
|
||||
"title": "Pulse green for 360 days",
|
||||
"description": "Keep your resting pulse in the normal range for 360 consecutive days."
|
||||
},
|
||||
"moodFirst": {
|
||||
@@ -8261,15 +8262,15 @@
|
||||
"description": "Switched the app language at least once."
|
||||
},
|
||||
"missFree7": {
|
||||
"title": "No dose missed · 7d",
|
||||
"title": "No dose missed in 7 days",
|
||||
"description": "7 consecutive days without a missed dose."
|
||||
},
|
||||
"missFree30": {
|
||||
"title": "No dose missed · 30d",
|
||||
"title": "No dose missed in 30 days",
|
||||
"description": "30 consecutive days without a missed dose."
|
||||
},
|
||||
"missFree90": {
|
||||
"title": "No dose missed · 90d",
|
||||
"title": "No dose missed in 90 days",
|
||||
"description": "90 consecutive days without a missed dose."
|
||||
},
|
||||
"measurementWeeks4": {
|
||||
@@ -8281,7 +8282,7 @@
|
||||
"description": "All four self-report fields filled in — the Coach knows your context."
|
||||
},
|
||||
"sleepLog7": {
|
||||
"title": "Sleep log · 7d",
|
||||
"title": "Sleep log for 7 days",
|
||||
"description": "Sleep data recorded on 7 consecutive days."
|
||||
}
|
||||
},
|
||||
@@ -8791,7 +8792,7 @@
|
||||
},
|
||||
"crosstab": {
|
||||
"description": "How each measurement compares between your luteal and follicular phases, on your own data.",
|
||||
"pairLabel": "{metric} · luteal vs follicular",
|
||||
"pairLabel": "{metric}: luteal vs follicular",
|
||||
"detail": "Luteal {lutealAvg} {unit} ({lutealDays} days) vs follicular {follicularAvg} {unit} ({follicularDays} days).",
|
||||
"metricRestingHeartRate": "Resting heart rate",
|
||||
"metricHrv": "Heart-rate variability",
|
||||
@@ -9011,7 +9012,7 @@
|
||||
"temperatureSection": "Temperature & ovulation",
|
||||
"intimacySection": "Intimacy & contraception",
|
||||
"testsSection": "Tests",
|
||||
"phaseDayHeader": "Day {day} · {phase}",
|
||||
"phaseDayHeader": "Day {day}, {phase}",
|
||||
"bbtHint": "Take it first thing in the morning, before getting up.",
|
||||
"titleForDate": "Log for {date}",
|
||||
"descriptionToday": "Today. Flow, symptoms and notes.",
|
||||
@@ -9188,10 +9189,10 @@
|
||||
"VISCERAL_FAT": "Visceral fat",
|
||||
"BODY_MASS_INDEX": "Body mass index (BMI)",
|
||||
"WAIST_CIRCUMFERENCE": "Waist circumference",
|
||||
"PHQ9_SCORE": "PHQ-9 · mood",
|
||||
"GAD7_SCORE": "GAD-7 · worry",
|
||||
"WHO5_SCORE": "WHO-5 · wellbeing",
|
||||
"SCI_SCORE": "SCI · sleep"
|
||||
"PHQ9_SCORE": "PHQ-9 (mood)",
|
||||
"GAD7_SCORE": "GAD-7 (worry)",
|
||||
"WHO5_SCORE": "WHO-5 (wellbeing)",
|
||||
"SCI_SCORE": "SCI (sleep)"
|
||||
},
|
||||
"typeGroups": {
|
||||
"vitals": "Vitals",
|
||||
@@ -9754,7 +9755,7 @@
|
||||
},
|
||||
"empty": {
|
||||
"title": "No vaccination logged yet",
|
||||
"description": "Transcribe your vaccination card line by line — a date and the vaccine are enough."
|
||||
"description": "Transcribe your vaccination card line by line. A date and the vaccine are enough."
|
||||
},
|
||||
"catalog": {
|
||||
"tetanus": "Tetanus",
|
||||
@@ -10288,10 +10289,10 @@
|
||||
"saved": "Saved",
|
||||
"error": "Something went wrong. Please try again.",
|
||||
"instrument": {
|
||||
"phq9": "PHQ-9 · mood",
|
||||
"gad7": "GAD-7 · worry",
|
||||
"who5": "WHO-5 · well-being",
|
||||
"sci": "SCI · sleep"
|
||||
"phq9": "PHQ-9 (mood)",
|
||||
"gad7": "GAD-7 (worry)",
|
||||
"who5": "WHO-5 (well-being)",
|
||||
"sci": "SCI (sleep)"
|
||||
},
|
||||
"instrumentSub": {
|
||||
"phq9": "Depression screen, 9 questions",
|
||||
@@ -10759,7 +10760,7 @@
|
||||
},
|
||||
"documents": {
|
||||
"title": "Documents",
|
||||
"subtitle": "Every letter, report, and scan in one searchable place — encrypted at rest.",
|
||||
"subtitle": "Every letter, report and scan in one searchable place, encrypted at rest.",
|
||||
"pageUpload": "Upload",
|
||||
"ownerOnlyUpload": "Documents can only be added by the record owner.",
|
||||
"kind": {
|
||||
@@ -10801,15 +10802,15 @@
|
||||
},
|
||||
"error": {
|
||||
"fileTooLarge": "This file is larger than the {maxSize} limit.",
|
||||
"quotaExceeded": "Storage is full — {used} of {quota} used.",
|
||||
"quotaExceeded": "Storage is full: {used} of {quota} used.",
|
||||
"unsupportedType": "This file type is not supported.",
|
||||
"purged": "This document was permanently removed and cannot be restored.",
|
||||
"duplicateExists": "An identical document is already stored.",
|
||||
"rateLimited": "Too many uploads right now — try again in a few minutes.",
|
||||
"rateLimited": "Too many uploads right now. Try again in a few minutes.",
|
||||
"generic": "Upload failed. Please try again."
|
||||
},
|
||||
"toast": {
|
||||
"duplicate": "Already stored — highlighting the existing document.",
|
||||
"duplicate": "Already stored. The existing document is highlighted.",
|
||||
"deleted": "Document deleted",
|
||||
"restoreFailed": "Couldn't restore the document."
|
||||
},
|
||||
@@ -10832,7 +10833,7 @@
|
||||
},
|
||||
"empty": {
|
||||
"title": "Your document vault is empty",
|
||||
"description": "Store doctor letters, lab reports, imaging, prescriptions, and vaccination records — encrypted, and searchable by type, condition, and year.",
|
||||
"description": "Store doctor letters, lab reports, imaging, prescriptions and vaccination records. They are encrypted and searchable by type, condition and year.",
|
||||
"action": "Upload a first document",
|
||||
"noMatchesTitle": "No matching documents",
|
||||
"noMatchesDescription": "Nothing matches the current search and filters."
|
||||
@@ -10872,9 +10873,9 @@
|
||||
"linkCondition": "Link",
|
||||
"noConditions": "Not linked to a condition",
|
||||
"previewUnavailable": "No inline preview for this file type",
|
||||
"uploadedMeta": "Added {date} · {size}",
|
||||
"uploadedMeta": "Added {date}, {size}",
|
||||
"importedFrom": "Imported from {system}",
|
||||
"importedFromWithId": "Imported from {system} · ID {id}",
|
||||
"importedFromWithId": "Imported from {system}, ID {id}",
|
||||
"sourceOther": "another system",
|
||||
"share": "Share",
|
||||
"labValuesLink": "View {count} lab values",
|
||||
@@ -10941,7 +10942,7 @@
|
||||
"errorNotIndexed": "Read the document first, then extract.",
|
||||
"errorLocalOcrDisabled": "Turn on local OCR in the AI settings first.",
|
||||
"errorProvider": "No AI provider is set up for this.",
|
||||
"errorTextImageOnly": "Local OCR reads images only — not this file.",
|
||||
"errorTextImageOnly": "Local OCR reads images only, not this file.",
|
||||
"errorConsent": "Reading documents with AI needs your consent first.",
|
||||
"errorUnavailable": "Reading documents with AI is not available here right now."
|
||||
},
|
||||
@@ -10974,7 +10975,7 @@
|
||||
"CONDITION": "Condition",
|
||||
"MEDICATION_STATEMENT": "Medication"
|
||||
},
|
||||
"statedRange": "stated range {range}",
|
||||
"statedRange": "Stated range {range}",
|
||||
"needsCheck": "Check this value against the document, then save it.",
|
||||
"verify": "Check",
|
||||
"verifySave": "Save value",
|
||||
@@ -11244,14 +11245,14 @@
|
||||
}
|
||||
},
|
||||
"hydration": {
|
||||
"referenceMeta": "Reference intake {value} {unit}/day · EFSA"
|
||||
"referenceMeta": "Reference intake {value} {unit}/day (EFSA)"
|
||||
},
|
||||
"caffeine": {
|
||||
"ceilingMeta": "Safe-level ceiling {value} {unit}/day · EFSA"
|
||||
"ceilingMeta": "Safe-level ceiling {value} {unit}/day (EFSA)"
|
||||
},
|
||||
"micronutrients": {
|
||||
"title": "Vitamins & minerals",
|
||||
"rowMeta": "{days} of {window} days · ref {value} {unit} (EFSA)",
|
||||
"rowMeta": "{days} of {window} days, ref {value} {unit} (EFSA)",
|
||||
"rowMetaNoRef": "{days} of {window} days",
|
||||
"footer": "{tracked} of {total} tracked micronutrients have data in this window.",
|
||||
"emptyTitle": "No micronutrient data synced yet",
|
||||
@@ -11266,7 +11267,7 @@
|
||||
},
|
||||
"push": {
|
||||
"title": "Your morning briefing",
|
||||
"bodyProvisional": "{line} · Last night's sleep isn't in yet."
|
||||
"bodyProvisional": "{line}\nLast night's sleep isn't in yet."
|
||||
},
|
||||
"item": {
|
||||
"doseWindow": {
|
||||
@@ -11654,7 +11655,7 @@
|
||||
"managed": {
|
||||
"title": "Records you look after",
|
||||
"description": "Health records with no login of their own.",
|
||||
"explainer": "A managed profile is a health record for somebody who does not sign in themselves — a child, or a person you care for. It has no login and no e-mail address, and you become its first guardian. You can add more guardians later, and any of you can switch into the record to keep it up to date.",
|
||||
"explainer": "A managed profile is a health record for somebody who does not sign in themselves, such as a child or a person you care for. It has no login and no e-mail address, and you become its first guardian. You can add more guardians later, and any of you can switch into the record to keep it up to date.",
|
||||
"nameLabel": "Name",
|
||||
"namePlaceholder": "The name you will recognise this record by",
|
||||
"nameHint": "Up to 80 characters. Shown wherever this record appears.",
|
||||
@@ -11676,7 +11677,7 @@
|
||||
"creating": "Creating…",
|
||||
"created": "{name} is set up. You can switch into that record from the account menu.",
|
||||
"errorStepUp": "Confirm your second factor, then try again.",
|
||||
"errorOffline": "That did not reach the server. Nothing has changed — check your connection and try again.",
|
||||
"errorOffline": "That did not reach the server. Nothing has changed. Check your connection and try again.",
|
||||
"errorInvalid": "The server refused those details. Check the name, the date and the timezone.",
|
||||
"errorFailed": "The profile could not be created.",
|
||||
"edit": "Edit",
|
||||
@@ -11687,7 +11688,7 @@
|
||||
"editErrorFailed": "The changes could not be saved.",
|
||||
"delete": "Delete profile",
|
||||
"deleteTitle": "Delete {name}?",
|
||||
"deleteBody": "Everything recorded for {name} goes with the profile — readings, medications, documents and notes. This cannot be undone.",
|
||||
"deleteBody": "Everything recorded for {name} goes with the profile: readings, medications, documents and notes. This cannot be undone.",
|
||||
"deleteGuardiansOne": "{count} person looks after this record today and will lose it.",
|
||||
"deleteGuardiansFew": "{count} people look after this record today and will lose it.",
|
||||
"deleteGuardiansOther": "{count} people look after this record today and will lose it.",
|
||||
@@ -11973,7 +11974,7 @@
|
||||
"both": "Both sides",
|
||||
"none": "Not stated"
|
||||
},
|
||||
"bodySiteWithSide": "{site} · {side}",
|
||||
"bodySiteWithSide": "{site} ({side})",
|
||||
"sectionTitle": "Visits",
|
||||
"sectionDescription": "Doctor's visits and booked appointments in one place.",
|
||||
"add": "Visit",
|
||||
@@ -12227,7 +12228,6 @@
|
||||
"loadFailed": "This day could not be loaded.",
|
||||
"dayOf": "Day {n} of {m}",
|
||||
"dayN": "Day {n}",
|
||||
"since": "since {date}",
|
||||
"usualRange": "Usually {lo} to {hi}",
|
||||
"groups": {
|
||||
"running": "Running that day",
|
||||
@@ -12254,11 +12254,11 @@
|
||||
"description": "Everything your records hold for this day.",
|
||||
"openDocument": "Open document",
|
||||
"previousReading": "Before, {date}",
|
||||
"rugLegend": "Dots under the axis: days with entries · ring: notable day",
|
||||
"rugLegend": "Dots under the axis mark days with entries, a ring marks a notable day.",
|
||||
"sheetExpand": "Expand to full height",
|
||||
"sheetShrink": "Shrink",
|
||||
"usualLabel": "Your 30 days before",
|
||||
"valuesLegend": "Dot: this day · bar: your 30 days before",
|
||||
"valuesLegend": "Dot for this day, bar for the 30 days before",
|
||||
"valuesAllOne": "All values",
|
||||
"valuesAllFew": "All {count} values",
|
||||
"valuesAllOther": "All {count} values",
|
||||
@@ -12284,7 +12284,9 @@
|
||||
"note": "Compiled from your entries, without judgement. Every date opens the whole day.",
|
||||
"report": "Doctor report from {date} to today"
|
||||
},
|
||||
"travel": "Away"
|
||||
"travel": "Away",
|
||||
"dayNSince": "Day {n}, since {date}",
|
||||
"sinceDate": "Since {date}"
|
||||
},
|
||||
"timeline": {
|
||||
"title": "Timeline",
|
||||
@@ -12358,9 +12360,9 @@
|
||||
"vaccinationsOne": "{count} vaccination",
|
||||
"vaccinationsFew": "{count} vaccinations",
|
||||
"vaccinationsOther": "{count} vaccinations",
|
||||
"visitsOne": "{count} visit · {procedures} with a procedure",
|
||||
"visitsFew": "{count} visits · {procedures} with a procedure",
|
||||
"visitsOther": "{count} visits · {procedures} with a procedure",
|
||||
"visitsOne": "{count} visit, {procedures} with a procedure",
|
||||
"visitsFew": "{count} visits, {procedures} with a procedure",
|
||||
"visitsOther": "{count} visits, {procedures} with a procedure",
|
||||
"visitsPlannedOne": "{count} visit, planned only",
|
||||
"visitsPlannedFew": "{count} visits, planned only",
|
||||
"visitsPlannedOther": "{count} visits, planned only",
|
||||
@@ -12463,8 +12465,8 @@
|
||||
"months": "Months",
|
||||
"years": "Years",
|
||||
"groupingLabel": "Grouping",
|
||||
"gap": "{from} to {to} · no entries",
|
||||
"gapSingle": "{period} · no entries",
|
||||
"gap": "No entries from {from} to {to}",
|
||||
"gapSingle": "No entries in {period}",
|
||||
"ended": "{label} ended",
|
||||
"afterDaysOne": "after 1 day",
|
||||
"afterDaysFew": "after {count} days",
|
||||
|
||||
+107
-105
@@ -206,7 +206,7 @@
|
||||
"colExpected": "Esperadas",
|
||||
"colComplianceRate": "Tasa de cumplimiento",
|
||||
"moodTitle": "Evolución del estado de ánimo",
|
||||
"moodSummary": "Promedio:{avg} / 5.0 · Entries: {count} · Range: {min}–{max}",
|
||||
"moodSummary": "Promedio {avg} / 5.0, {count} entradas, rango {min}–{max}",
|
||||
"colMood": "Estado de ánimo",
|
||||
"colCount": "Cantidad",
|
||||
"colShare": "Porcentaje",
|
||||
@@ -579,8 +579,8 @@
|
||||
"sleepShort": "Sueño",
|
||||
"stepsShort": "Pasos",
|
||||
"vo2MaxShort": "VO₂ máx",
|
||||
"bpInTargetWindow90": "PA-objetivo · 90 d",
|
||||
"bpInTargetWindowDynamic": "PA-objetivo · {days} d",
|
||||
"bpInTargetWindow90": "PA-objetivo (90 d)",
|
||||
"bpInTargetWindowDynamic": "PA-objetivo ({days} d)",
|
||||
"bpInTargetCollecting": "recopilando datos",
|
||||
"medications": "Medicamentos",
|
||||
"quickAddMeasurement": "Registrar medición",
|
||||
@@ -1336,7 +1336,7 @@
|
||||
"complianceInfoLabel": "¿Qué significa el cumplimiento?",
|
||||
"lastIntake": "Última toma:",
|
||||
"nextIntake": "Próxima toma:",
|
||||
"nextIntakeOverdue": "Atrasada · {time} — aún se puede tomar",
|
||||
"nextIntakeOverdue": "Atrasada desde {time}, aún se puede tomar",
|
||||
"dayStreak": "días de racha",
|
||||
"dayStreakOne": "día de racha",
|
||||
"cycleDueToday": "Pendiente hoy",
|
||||
@@ -1737,7 +1737,7 @@
|
||||
"empty": "Aún no hay pasos de escalada de dosis registrados. Añade cambios de dosis con fecha para trazar el plan.",
|
||||
"youAreHere": "Estás aquí",
|
||||
"doseStep": "{dose} {unit}",
|
||||
"plannedFor": "Previsto · {date}"
|
||||
"plannedFor": "Previsto para {date}"
|
||||
},
|
||||
"injectionSiteBodyOutlineAriaLabel": "Silueta del cuerpo",
|
||||
"injectionSitePickerAriaLabel": "Selector de sitio de inyección",
|
||||
@@ -1788,7 +1788,7 @@
|
||||
"intakeHistoryStatusSkipped": "Omitida",
|
||||
"intakeHistorySortByTaken": "Ordenar por hora de toma",
|
||||
"intakeHistorySortByScheduled": "Ordenar por hora programada",
|
||||
"intakeHistoryPageInfo": "Página {page} de {total} · {count} entradas",
|
||||
"intakeHistoryPageInfo": "Página {page} de {total}, {count} entradas",
|
||||
"intakeHistoryPrev": "Anterior",
|
||||
"intakeHistoryNext": "Siguiente",
|
||||
"glp1": {
|
||||
@@ -1888,7 +1888,7 @@
|
||||
"markAsTaken": "Marcar como tomada",
|
||||
"markAsSkipped": "Marcar como omitida",
|
||||
"adHocTag": "fuera de horario",
|
||||
"takenDetail": "prevista {planned} · tomada {taken}",
|
||||
"takenDetail": "prevista {planned}, tomada {taken}",
|
||||
"doseTaken": "Dosis: {dose}",
|
||||
"status": {
|
||||
"taken_on_time": "a tiempo",
|
||||
@@ -2594,26 +2594,26 @@
|
||||
"ENV_POLLEN_MAX": "el polen"
|
||||
},
|
||||
"daily": {
|
||||
"high": "Cuando {behaviour} es mayor, {outcome} del día siguiente tiende a {direction} en tus datos — un patrón que conviene observar, no una causa.",
|
||||
"moderate": "Cuando {behaviour} es mayor, {outcome} del día siguiente parece tender a {direction}, según los datos disponibles — un patrón que conviene observar, no una causa.",
|
||||
"faint": "Cuando {behaviour} es mayor, apenas se insinúa —si acaso— que {outcome} del día siguiente tienda a {direction} en tus datos — demasiado leve para fiarse, nunca una causa."
|
||||
"high": "Cuando {behaviour} es mayor, {outcome} del día siguiente tiende a {direction} en tus datos. Es un patrón que conviene observar, no una causa.",
|
||||
"moderate": "Cuando {behaviour} es mayor, {outcome} del día siguiente parece tender a {direction}, según los datos disponibles. Es un patrón que conviene observar, no una causa.",
|
||||
"faint": "Cuando {behaviour} es mayor, como mucho se insinúa en tus datos que {outcome} del día siguiente tienda a {direction}. Es demasiado leve para fiarse y nunca una causa."
|
||||
},
|
||||
"lab": {
|
||||
"default": "Unos valores de {lab} más altos coinciden con que {outcome} tienda a {direction} en los mismos periodos de tus datos — una asociación que conviene vigilar con tu médico, nunca una causa.",
|
||||
"faint": "Unos valores de {lab} más altos apenas insinúan —si acaso— que {outcome} tienda a {direction} en los mismos periodos de tus datos — demasiado leve para fiarse, una asociación que conviene comentar con tu médico, nunca una causa."
|
||||
"default": "Unos valores de {lab} más altos coinciden con que {outcome} tienda a {direction} en los mismos periodos de tus datos, una asociación que conviene vigilar con tu médico, nunca una causa.",
|
||||
"faint": "Unos valores de {lab} más altos apenas insinúan que {outcome} tienda a {direction} en los mismos periodos de tus datos. Es demasiado leve para fiarse y nunca una causa, pero conviene comentarlo con tu médico."
|
||||
},
|
||||
"hypothesis": {
|
||||
"bpCompliance": {
|
||||
"support": "Una mayor adherencia a la medicación coincide con valores sistólicos más bajos — un patrón que conviene observar.",
|
||||
"surprising": "La adherencia y la sistólica se mueven juntas en tus datos — sorprendente; consulta con tu médico antes de cambiar nada.",
|
||||
"support": "Una mayor adherencia a la medicación coincide con valores sistólicos más bajos, un patrón que conviene observar.",
|
||||
"surprising": "La adherencia y la sistólica se mueven juntas en tus datos, algo sorprendente. Consulta con tu médico antes de cambiar nada.",
|
||||
"none": "La adherencia y la sistólica no se mueven juntas de forma marcada en este periodo."
|
||||
},
|
||||
"moodPulse": {
|
||||
"support": "Los días de peor ánimo coinciden con un pulso en reposo más alto — un patrón que conviene observar.",
|
||||
"surprising": "Los días de mejor ánimo coinciden con un pulso en reposo más alto en tus datos — sorprendente.",
|
||||
"support": "Los días de peor ánimo coinciden con un pulso en reposo más alto, un patrón que conviene observar.",
|
||||
"surprising": "Los días de mejor ánimo coinciden con un pulso en reposo más alto en tus datos, algo sorprendente.",
|
||||
"none": "El ánimo y el pulso en reposo no se mueven juntos de forma marcada en este periodo."
|
||||
},
|
||||
"weightWeekday": "El peso de los {weekday} está {delta} kg {direction} tu media de los demás días — un patrón que conviene observar."
|
||||
"weightWeekday": "El peso de los {weekday} está {delta} kg {direction} tu media de los demás días, un patrón que conviene observar."
|
||||
},
|
||||
"dailySameDay": {
|
||||
"high": "Más {behaviour} el mismo día y el día anterior tiende a ir con {direction} {outcome} en tus datos: un patrón que conviene observar, no una causa.",
|
||||
@@ -2730,7 +2730,7 @@
|
||||
"referenceSleep": "Al menos {low} minutos por noche; el sueño más largo no se penaliza",
|
||||
"referenceAdiposity": "Relación cintura-altura inferior a {high}",
|
||||
"referenceHba1c": "HbA1c de {low} a {high} %",
|
||||
"referenceDetail": "{label} · {source} · {kind} · {low} a {high}",
|
||||
"referenceDetail": "{label}: de {low} a {high} ({kind}, {source})",
|
||||
"openBound": "abierto",
|
||||
"laboratoryReferenceSource": "Intervalos de referencia del laboratorio",
|
||||
"personalTargetSource": "Objetivo personal",
|
||||
@@ -2824,7 +2824,7 @@
|
||||
"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}",
|
||||
"sourceChip": "basado en {n} mediciones pareadas ({window})",
|
||||
"sourceWindowLast30": "Últimos 30 días",
|
||||
"confidenceHigh": "Confianza alta",
|
||||
"confidenceModerate": "Confianza media",
|
||||
@@ -3003,23 +3003,23 @@
|
||||
"cluster": {
|
||||
"cardio": {
|
||||
"label": "Cardiovascular",
|
||||
"hint": "Presión · pulso · VFC · FC en reposo y al caminar"
|
||||
"hint": "Presión, pulso, VFC, FC en reposo y al caminar"
|
||||
},
|
||||
"body": {
|
||||
"label": "Composición corporal",
|
||||
"hint": "Peso · grasa · músculo · IMC"
|
||||
"hint": "Peso, grasa, músculo e IMC"
|
||||
},
|
||||
"activity": {
|
||||
"label": "Actividad",
|
||||
"hint": "Pasos · energía · distancia · VO₂ máx"
|
||||
"hint": "Pasos, energía, distancia y VO₂ máx"
|
||||
},
|
||||
"workouts": {
|
||||
"label": "Entrenamientos",
|
||||
"hint": "Carreras · paseos · sesiones"
|
||||
"hint": "Carreras, paseos y sesiones"
|
||||
},
|
||||
"sleep": {
|
||||
"label": "Sueño",
|
||||
"hint": "Duración · fases"
|
||||
"hint": "Duración y fases"
|
||||
},
|
||||
"mood": {
|
||||
"label": "Estado de ánimo",
|
||||
@@ -3031,15 +3031,15 @@
|
||||
},
|
||||
"medication": {
|
||||
"label": "Medicación",
|
||||
"hint": "Adherencia · contexto GLP-1"
|
||||
"hint": "Adherencia y contexto GLP-1"
|
||||
},
|
||||
"mobility": {
|
||||
"label": "Movilidad y marcha",
|
||||
"hint": "Estabilidad · asimetría · marcha"
|
||||
"hint": "Estabilidad, asimetría y marcha"
|
||||
},
|
||||
"environment": {
|
||||
"label": "Entorno",
|
||||
"hint": "Ruido · luz del día · temp. piel"
|
||||
"hint": "Ruido, luz del día y temperatura de la piel"
|
||||
}
|
||||
},
|
||||
"settingsClustersLabel": "Datos que ve el Coach",
|
||||
@@ -3227,9 +3227,9 @@
|
||||
"cap": "Muchos pasos, ahora lo resume",
|
||||
"noProgress": "No hay datos nuevos, lo resume"
|
||||
},
|
||||
"thoughtProcessOne": "Razonamiento · {count} paso",
|
||||
"thoughtProcessFew": "Razonamiento · {count} pasos",
|
||||
"thoughtProcessOther": "Razonamiento · {count} pasos",
|
||||
"thoughtProcessOne": "Razonamiento ({count} paso)",
|
||||
"thoughtProcessFew": "Razonamiento ({count} pasos)",
|
||||
"thoughtProcessOther": "Razonamiento ({count} pasos)",
|
||||
"awaitingAnswer": "Se necesita tu respuesta"
|
||||
},
|
||||
"memory": {
|
||||
@@ -4062,7 +4062,7 @@
|
||||
"distributionDaysUnit": "días",
|
||||
"weekdayTitle": "Promedio por día de la semana",
|
||||
"weekdayNoData": "Sin datos",
|
||||
"weekdayBestWorst": "Mejor día: {best} · Día más difícil: {worst}",
|
||||
"weekdayBestWorst": "Mejor día: {best}, día más difícil: {worst}",
|
||||
"tagsTitle": "Etiquetas y desencadenantes",
|
||||
"tagAvgMood": "Ánimo promedio con esta etiqueta",
|
||||
"correlationsTitle": "Ánimo y otras métricas",
|
||||
@@ -4078,7 +4078,7 @@
|
||||
"strengthModerate": "Moderada",
|
||||
"strengthWeak": "Débil",
|
||||
"strengthNone": "Ninguna",
|
||||
"source": "{n} días emparejados · r = {r}",
|
||||
"source": "{n} días emparejados, r = {r}",
|
||||
"emptyTitle": "Aún no hay suficientes datos emparejados",
|
||||
"emptyDescription": "Registra el ánimo y esta métrica los mismos días para ver una correlación.",
|
||||
"pendingDescription": "{n} de {needed} días emparejados. La correlación aparece cuando hay días suficientes para distinguir un patrón del azar.",
|
||||
@@ -4137,7 +4137,7 @@
|
||||
"crosstab": {
|
||||
"title": "Etiquetas y tus métricas de salud",
|
||||
"description": "Cómo difiere una métrica de salud en los días que etiquetaste cada actividad, frente a los días que no.",
|
||||
"pairLabel": "{tag} · {metric}",
|
||||
"pairLabel": "{metric} en días con {tag}",
|
||||
"metricActiveEnergy": "Energía activa",
|
||||
"metricSleepDuration": "Sueño",
|
||||
"metricNextDayRecovery": "Recuperación al día siguiente",
|
||||
@@ -4154,7 +4154,7 @@
|
||||
"factorCrosstab": {
|
||||
"title": "Tus factores valorados y tus constantes",
|
||||
"description": "Cómo difiere una constante en los días en que valoraste bajo cada factor frente a los días en que lo valoraste alto.",
|
||||
"pairLabel": "{factor} · {metric}",
|
||||
"pairLabel": "{metric} en días con {factor}",
|
||||
"metricSleepDuration": "Sueño",
|
||||
"metricSteps": "Pasos",
|
||||
"metricRestingHeartRate": "Frecuencia cardíaca en reposo",
|
||||
@@ -4180,7 +4180,7 @@
|
||||
"moodDown": "Un mayor {factor} suele coincidir con peor ánimo al día siguiente en tus datos.",
|
||||
"outcomeUp": "Mejor ánimo suele coincidir con un {factor} más alto al día siguiente en tus datos.",
|
||||
"outcomeDown": "Mejor ánimo suele coincidir con un {factor} más bajo al día siguiente en tus datos.",
|
||||
"stat": "{n} días emparejados · r = {r} · q = {q}",
|
||||
"stat": "{n} días emparejados, r = {r}, q = {q}",
|
||||
"statLabel": "Cómo se calculó esto",
|
||||
"explainerLabel": "Cómo se calculó esto"
|
||||
},
|
||||
@@ -4224,11 +4224,11 @@
|
||||
},
|
||||
"derived": {
|
||||
"coverage": {
|
||||
"summary": "{present} de {required} entradas · {percent}%",
|
||||
"summary": "{present} de {required} entradas ({percent}%)",
|
||||
"ratioLabel": "{present}/{required}",
|
||||
"historyDays": "Basado en {count} días de historial",
|
||||
"missing": "Registra estos para afinar el valor: {list}",
|
||||
"summaryLabelled": "{label} · {percent}%"
|
||||
"summaryLabelled": "{label} ({percent}%)"
|
||||
},
|
||||
"scoreRing": {
|
||||
"aria": "Puntuación {score} de 100, {band}",
|
||||
@@ -4246,7 +4246,7 @@
|
||||
"inputsLabel": "Entradas",
|
||||
"noInputs": "Aún no hay entradas que respalden este valor.",
|
||||
"methodLabel": "Método",
|
||||
"window": "De tus últimos {days} días · datos de {source}",
|
||||
"window": "De tus últimos {days} días de datos de {source}",
|
||||
"asOf": "a fecha de {date}",
|
||||
"standardLink": "Estándar: {name}"
|
||||
},
|
||||
@@ -4288,7 +4288,7 @@
|
||||
"anatomy": {
|
||||
"outOf": "/100",
|
||||
"contributorsLabel": "Factores",
|
||||
"contributorValue": "{value} · {weight}% de peso",
|
||||
"contributorValue": "{value}, peso {weight}%",
|
||||
"contributorMissing": "sin datos",
|
||||
"insufficient": "Aún no hay datos suficientes para puntuarlo. Sigue registrando y aparecerá aquí."
|
||||
},
|
||||
@@ -5633,8 +5633,8 @@
|
||||
"failed": "La importación falló. No se escribió nada.",
|
||||
"columnsHeading": "Qué hace cada columna",
|
||||
"jsonOnly": "solo JSON",
|
||||
"previewLine": "Filas leídas: {rows} · se importarían: {queued} · rechazadas: {refused}",
|
||||
"submittedLine": "Filas leídas: {rows} · en cola para importar: {queued}",
|
||||
"previewLine": "{rows} filas leídas, {queued} se importarían, {refused} rechazadas",
|
||||
"submittedLine": "{rows} filas leídas, {queued} en cola para importar",
|
||||
"unmatched": "Ningún medicamento registrado coincide con: {names}",
|
||||
"ambiguous": "Coincide con más de un medicamento: {names}",
|
||||
"mirrored": "Copiado de otra aplicación, así que no se puede añadir ninguna dosis: {names}",
|
||||
@@ -5811,7 +5811,8 @@
|
||||
"add": "Añadir {label}",
|
||||
"remove": "Eliminar periodo de ubicación",
|
||||
"removeConfirmTitle": "¿Quitar este viaje?",
|
||||
"removeConfirmBody": "Las mediciones de ese periodo permanecen; solo desaparece la entrada del viaje."
|
||||
"removeConfirmBody": "Las mediciones de ese periodo permanecen; solo desaparece la entrada del viaje.",
|
||||
"range": "Del {start} al {end}"
|
||||
},
|
||||
"backfill": {
|
||||
"title": "Rellenar días pasados",
|
||||
@@ -6519,7 +6520,7 @@
|
||||
},
|
||||
"integrationFreshness": {
|
||||
"title": "Datos recibidos",
|
||||
"summary": "{count} tipos de datos · más reciente {relative}",
|
||||
"summary": "{count} tipos de datos, más reciente {relative}",
|
||||
"quiet": "{count} en silencio",
|
||||
"workouts": "Entrenamientos"
|
||||
},
|
||||
@@ -7078,14 +7079,14 @@
|
||||
"title": "Progreso de sincronización",
|
||||
"receivedLabel": "Registros recibidos",
|
||||
"oldestLabel": "Lectura más antigua alcanzada",
|
||||
"flowing": "Han llegado datos en la última hora — la app del iPhone sigue enviando.",
|
||||
"waiting": "Esperando a que la app del iPhone envíe más datos. La transferencia continúa cuando la app está abierta o cuando iOS le concede tiempo en segundo plano — una pausa durante la primera sincronización grande es normal, no un error."
|
||||
"flowing": "Han llegado datos en la última hora. La app del iPhone sigue enviando.",
|
||||
"waiting": "Esperando a que la app del iPhone envíe más datos. La transferencia continúa cuando la app está abierta o cuando iOS le concede tiempo en segundo plano. Una pausa durante la primera sincronización grande es normal, no un error."
|
||||
},
|
||||
"delivery": {
|
||||
"title": "Entrega",
|
||||
"lastTriggerLabel": "La última sincronización llegó",
|
||||
"lastBackgroundLabel": "Última sincronización en segundo plano",
|
||||
"backgroundNever": "Nunca — hasta ahora todas las sincronizaciones llegaron con la app abierta",
|
||||
"backgroundNever": "Nunca: hasta ahora todas las sincronizaciones llegaron con la app abierta",
|
||||
"noSyncYet": "Aún no ha llegado ninguna sincronización, así que no hay nada que informar aquí.",
|
||||
"trigger": {
|
||||
"foreground": "con la app abierta",
|
||||
@@ -8085,19 +8086,19 @@
|
||||
"description": "Toma todos los medicamentos a tiempo durante 1 día."
|
||||
},
|
||||
"compliance801": {
|
||||
"title": "Adherencia 80% · 1d",
|
||||
"title": "Adherencia del 80% durante 1 día",
|
||||
"description": "Alcanza al menos un 80% de adherencia de 30 días durante 1 día."
|
||||
},
|
||||
"bmiGreen1": {
|
||||
"title": "IMC en verde · 1d",
|
||||
"title": "IMC en verde durante 1 día",
|
||||
"description": "Mantén tu IMC en el rango normal durante 1 día."
|
||||
},
|
||||
"bpGreen1": {
|
||||
"title": "Presión en verde · 1d",
|
||||
"title": "Presión en verde durante 1 día",
|
||||
"description": "Mantén tu presión arterial en el rango normal durante 1 día."
|
||||
},
|
||||
"pulseGreen1": {
|
||||
"title": "Pulso en verde · 1d",
|
||||
"title": "Pulso en verde durante 1 día",
|
||||
"description": "Mantén tu pulso en reposo en el rango normal durante 1 día."
|
||||
},
|
||||
"onTimePerfect7": {
|
||||
@@ -8105,19 +8106,19 @@
|
||||
"description": "Toma todos los medicamentos a tiempo durante 7 días seguidos."
|
||||
},
|
||||
"compliance807": {
|
||||
"title": "Adherencia 80% · 7d",
|
||||
"title": "Adherencia del 80% durante 7 días",
|
||||
"description": "Alcanza al menos un 80% de adherencia de 30 días durante 7 días seguidos."
|
||||
},
|
||||
"bmiGreen7": {
|
||||
"title": "IMC en verde · 7d",
|
||||
"title": "IMC en verde durante 7 días",
|
||||
"description": "Mantén tu IMC en el rango normal durante 7 días seguidos."
|
||||
},
|
||||
"bpGreen7": {
|
||||
"title": "Presión en verde · 7d",
|
||||
"title": "Presión en verde durante 7 días",
|
||||
"description": "Mantén tu presión arterial en el rango normal durante 7 días seguidos."
|
||||
},
|
||||
"pulseGreen7": {
|
||||
"title": "Pulso en verde · 7d",
|
||||
"title": "Pulso en verde durante 7 días",
|
||||
"description": "Mantén tu pulso en reposo en el rango normal durante 7 días seguidos."
|
||||
},
|
||||
"onTimePerfect30": {
|
||||
@@ -8125,19 +8126,19 @@
|
||||
"description": "Toma todos los medicamentos a tiempo durante 30 días seguidos."
|
||||
},
|
||||
"compliance8030": {
|
||||
"title": "Adherencia 80% · 30d",
|
||||
"title": "Adherencia del 80% durante 30 días",
|
||||
"description": "Alcanza al menos un 80% de adherencia de 30 días durante 30 días seguidos."
|
||||
},
|
||||
"bmiGreen30": {
|
||||
"title": "IMC en verde · 30d",
|
||||
"title": "IMC en verde durante 30 días",
|
||||
"description": "Mantén tu IMC en el rango normal durante 30 días seguidos."
|
||||
},
|
||||
"bpGreen30": {
|
||||
"title": "Presión en verde · 30d",
|
||||
"title": "Presión en verde durante 30 días",
|
||||
"description": "Mantén tu presión arterial en el rango normal durante 30 días seguidos."
|
||||
},
|
||||
"pulseGreen30": {
|
||||
"title": "Pulso en verde · 30d",
|
||||
"title": "Pulso en verde durante 30 días",
|
||||
"description": "Mantén tu pulso en reposo en el rango normal durante 30 días seguidos."
|
||||
},
|
||||
"onTimePerfect180": {
|
||||
@@ -8145,19 +8146,19 @@
|
||||
"description": "Toma todos los medicamentos a tiempo durante 180 días seguidos."
|
||||
},
|
||||
"compliance80180": {
|
||||
"title": "Adherencia 80% · 180d",
|
||||
"title": "Adherencia del 80% durante 180 días",
|
||||
"description": "Alcanza al menos un 80% de adherencia de 30 días durante 180 días seguidos."
|
||||
},
|
||||
"bmiGreen180": {
|
||||
"title": "IMC en verde · 180d",
|
||||
"title": "IMC en verde durante 180 días",
|
||||
"description": "Mantén tu IMC en el rango normal durante 180 días seguidos."
|
||||
},
|
||||
"bpGreen180": {
|
||||
"title": "Presión en verde · 180d",
|
||||
"title": "Presión en verde durante 180 días",
|
||||
"description": "Mantén tu presión arterial en el rango normal durante 180 días seguidos."
|
||||
},
|
||||
"pulseGreen180": {
|
||||
"title": "Pulso en verde · 180d",
|
||||
"title": "Pulso en verde durante 180 días",
|
||||
"description": "Mantén tu pulso en reposo en el rango normal durante 180 días seguidos."
|
||||
},
|
||||
"onTimePerfect360": {
|
||||
@@ -8165,19 +8166,19 @@
|
||||
"description": "Toma todos los medicamentos a tiempo durante 360 días seguidos."
|
||||
},
|
||||
"compliance80360": {
|
||||
"title": "Adherencia 80% · 360d",
|
||||
"title": "Adherencia del 80% durante 360 días",
|
||||
"description": "Alcanza al menos un 80% de adherencia de 30 días durante 360 días seguidos."
|
||||
},
|
||||
"bmiGreen360": {
|
||||
"title": "IMC en verde · 360d",
|
||||
"title": "IMC en verde durante 360 días",
|
||||
"description": "Mantén tu IMC en el rango normal durante 360 días seguidos."
|
||||
},
|
||||
"bpGreen360": {
|
||||
"title": "Presión en verde · 360d",
|
||||
"title": "Presión en verde durante 360 días",
|
||||
"description": "Mantén tu presión arterial en el rango normal durante 360 días seguidos."
|
||||
},
|
||||
"pulseGreen360": {
|
||||
"title": "Pulso en verde · 360d",
|
||||
"title": "Pulso en verde durante 360 días",
|
||||
"description": "Mantén tu pulso en reposo en el rango normal durante 360 días seguidos."
|
||||
},
|
||||
"moodFirst": {
|
||||
@@ -8261,15 +8262,15 @@
|
||||
"description": "Cambiaste el idioma de la app al menos una vez."
|
||||
},
|
||||
"missFree7": {
|
||||
"title": "Sin dosis perdidas · 7d",
|
||||
"title": "Sin dosis perdidas en 7 días",
|
||||
"description": "7 días consecutivos sin una dosis perdida."
|
||||
},
|
||||
"missFree30": {
|
||||
"title": "Sin dosis perdidas · 30d",
|
||||
"title": "Sin dosis perdidas en 30 días",
|
||||
"description": "30 días consecutivos sin una dosis perdida."
|
||||
},
|
||||
"missFree90": {
|
||||
"title": "Sin dosis perdidas · 90d",
|
||||
"title": "Sin dosis perdidas en 90 días",
|
||||
"description": "90 días consecutivos sin una dosis perdida."
|
||||
},
|
||||
"measurementWeeks4": {
|
||||
@@ -8281,7 +8282,7 @@
|
||||
"description": "Los cuatro campos del autoinforme completados — el Coach conoce tu contexto."
|
||||
},
|
||||
"sleepLog7": {
|
||||
"title": "Registro de sueño · 7d",
|
||||
"title": "Registro de sueño durante 7 días",
|
||||
"description": "Datos de sueño registrados durante 7 días consecutivos."
|
||||
}
|
||||
},
|
||||
@@ -8791,7 +8792,7 @@
|
||||
},
|
||||
"crosstab": {
|
||||
"description": "Cómo se compara cada medición entre tus fases lútea y folicular, con tus propios datos.",
|
||||
"pairLabel": "{metric} · lútea vs. folicular",
|
||||
"pairLabel": "{metric}: fase lútea vs. folicular",
|
||||
"detail": "Lútea {lutealAvg} {unit} ({lutealDays} días) vs. folicular {follicularAvg} {unit} ({follicularDays} días).",
|
||||
"metricRestingHeartRate": "Frecuencia cardíaca en reposo",
|
||||
"metricHrv": "Variabilidad de la frecuencia cardíaca",
|
||||
@@ -9011,7 +9012,7 @@
|
||||
"temperatureSection": "Temperatura y ovulación",
|
||||
"intimacySection": "Intimidad y anticoncepción",
|
||||
"testsSection": "Pruebas",
|
||||
"phaseDayHeader": "Día {day} · {phase}",
|
||||
"phaseDayHeader": "Día {day}, {phase}",
|
||||
"bbtHint": "Mídela a primera hora de la mañana, antes de levantarte.",
|
||||
"titleForDate": "Registro del {date}",
|
||||
"descriptionToday": "Hoy. Flujo, síntomas y notas.",
|
||||
@@ -9188,10 +9189,10 @@
|
||||
"VISCERAL_FAT": "Grasa visceral",
|
||||
"BODY_MASS_INDEX": "Índice de masa corporal (IMC)",
|
||||
"WAIST_CIRCUMFERENCE": "Perímetro de cintura",
|
||||
"PHQ9_SCORE": "PHQ-9 · ánimo",
|
||||
"GAD7_SCORE": "GAD-7 · preocupación",
|
||||
"WHO5_SCORE": "WHO-5 · bienestar",
|
||||
"SCI_SCORE": "SCI · sueño"
|
||||
"PHQ9_SCORE": "PHQ-9 (ánimo)",
|
||||
"GAD7_SCORE": "GAD-7 (preocupación)",
|
||||
"WHO5_SCORE": "WHO-5 (bienestar)",
|
||||
"SCI_SCORE": "SCI (sueño)"
|
||||
},
|
||||
"typeGroups": {
|
||||
"vitals": "Constantes vitales",
|
||||
@@ -10288,10 +10289,10 @@
|
||||
"saved": "Guardado",
|
||||
"error": "Algo salió mal. Inténtalo de nuevo.",
|
||||
"instrument": {
|
||||
"phq9": "PHQ-9 · ánimo",
|
||||
"gad7": "GAD-7 · preocupación",
|
||||
"who5": "WHO-5 · bienestar",
|
||||
"sci": "SCI · sueño"
|
||||
"phq9": "PHQ-9 (ánimo)",
|
||||
"gad7": "GAD-7 (preocupación)",
|
||||
"who5": "WHO-5 (bienestar)",
|
||||
"sci": "SCI (sueño)"
|
||||
},
|
||||
"instrumentSub": {
|
||||
"phq9": "Cribado de depresión, 9 preguntas",
|
||||
@@ -10759,7 +10760,7 @@
|
||||
},
|
||||
"documents": {
|
||||
"title": "Documentos",
|
||||
"subtitle": "Cada carta, informe y escaneo en un solo lugar con búsqueda — cifrado en reposo.",
|
||||
"subtitle": "Cada carta, informe y escaneo en un solo lugar con búsqueda, cifrado en reposo.",
|
||||
"pageUpload": "Subir",
|
||||
"ownerOnlyUpload": "Solo el titular del historial puede añadir documentos.",
|
||||
"kind": {
|
||||
@@ -10801,15 +10802,15 @@
|
||||
},
|
||||
"error": {
|
||||
"fileTooLarge": "Este archivo supera el límite de {maxSize}.",
|
||||
"quotaExceeded": "El almacenamiento está lleno — {used} de {quota} usados.",
|
||||
"quotaExceeded": "El almacenamiento está lleno: {used} de {quota} usados.",
|
||||
"unsupportedType": "Este tipo de archivo no es compatible.",
|
||||
"purged": "Este documento se eliminó definitivamente y no se puede restaurar.",
|
||||
"duplicateExists": "Ya hay guardado un documento idéntico.",
|
||||
"rateLimited": "Demasiadas subidas — inténtalo de nuevo en unos minutos.",
|
||||
"rateLimited": "Demasiadas subidas. Inténtalo de nuevo en unos minutos.",
|
||||
"generic": "La subida falló. Inténtalo de nuevo."
|
||||
},
|
||||
"toast": {
|
||||
"duplicate": "Ya estaba guardado — se resalta el documento existente.",
|
||||
"duplicate": "Ya estaba guardado. Se resalta el documento existente.",
|
||||
"deleted": "Documento eliminado",
|
||||
"restoreFailed": "No se pudo restaurar el documento."
|
||||
},
|
||||
@@ -10832,7 +10833,7 @@
|
||||
},
|
||||
"empty": {
|
||||
"title": "Tu archivo de documentos está vacío",
|
||||
"description": "Guarda cartas médicas, resultados de laboratorio, imágenes, recetas y certificados de vacunación — cifrados y con búsqueda por tipo, afección y año.",
|
||||
"description": "Guarda cartas médicas, resultados de laboratorio, imágenes, recetas y certificados de vacunación. Se guardan cifrados y puedes buscarlos por tipo, afección y año.",
|
||||
"action": "Subir un primer documento",
|
||||
"noMatchesTitle": "No hay documentos coincidentes",
|
||||
"noMatchesDescription": "Nada coincide con la búsqueda y los filtros actuales."
|
||||
@@ -10872,9 +10873,9 @@
|
||||
"linkCondition": "Vincular",
|
||||
"noConditions": "Sin vincular a una afección",
|
||||
"previewUnavailable": "Sin vista previa integrada para este tipo de archivo",
|
||||
"uploadedMeta": "Añadido el {date} · {size}",
|
||||
"uploadedMeta": "Añadido el {date}, {size}",
|
||||
"importedFrom": "Importado de {system}",
|
||||
"importedFromWithId": "Importado de {system} · ID {id}",
|
||||
"importedFromWithId": "Importado de {system}, ID {id}",
|
||||
"sourceOther": "otro sistema",
|
||||
"share": "Compartir",
|
||||
"labValuesLink": "Ver {count} valores de laboratorio",
|
||||
@@ -10974,7 +10975,7 @@
|
||||
"CONDITION": "Afección",
|
||||
"MEDICATION_STATEMENT": "Medicamento"
|
||||
},
|
||||
"statedRange": "rango indicado {range}",
|
||||
"statedRange": "Rango indicado {range}",
|
||||
"needsCheck": "Comprueba este valor contra el documento y luego guárdalo.",
|
||||
"verify": "Comprobar",
|
||||
"verifySave": "Guardar valor",
|
||||
@@ -11244,14 +11245,14 @@
|
||||
}
|
||||
},
|
||||
"hydration": {
|
||||
"referenceMeta": "Ingesta de referencia {value} {unit}/día · EFSA"
|
||||
"referenceMeta": "Ingesta de referencia {value} {unit}/día (EFSA)"
|
||||
},
|
||||
"caffeine": {
|
||||
"ceilingMeta": "Límite de seguridad {value} {unit}/día · EFSA"
|
||||
"ceilingMeta": "Límite de seguridad {value} {unit}/día (EFSA)"
|
||||
},
|
||||
"micronutrients": {
|
||||
"title": "Vitaminas y minerales",
|
||||
"rowMeta": "{days} de {window} días · ref. {value} {unit} (EFSA)",
|
||||
"rowMeta": "{days} de {window} días, ref. {value} {unit} (EFSA)",
|
||||
"rowMetaNoRef": "{days} de {window} días",
|
||||
"footer": "{tracked} de {total} micronutrientes registrados tienen datos en este periodo.",
|
||||
"emptyTitle": "Aún no hay datos de micronutrientes sincronizados",
|
||||
@@ -11266,7 +11267,7 @@
|
||||
},
|
||||
"push": {
|
||||
"title": "Tu resumen matinal",
|
||||
"bodyProvisional": "{line} · El sueño de anoche aún no está disponible."
|
||||
"bodyProvisional": "{line}\nEl sueño de anoche aún no está disponible."
|
||||
},
|
||||
"item": {
|
||||
"doseWindow": {
|
||||
@@ -11654,7 +11655,7 @@
|
||||
"managed": {
|
||||
"title": "Perfiles de los que te ocupas",
|
||||
"description": "Historiales de salud sin inicio de sesión propio.",
|
||||
"explainer": "Un perfil administrado es un historial de salud para alguien que no inicia sesión — una criatura, o una persona a la que cuidas. No tiene inicio de sesión ni dirección de correo, y tú pasas a ser su primera persona responsable. Más adelante puedes añadir otras, y cualquiera de vosotras puede entrar en el historial para mantenerlo al día.",
|
||||
"explainer": "Un perfil administrado es un historial de salud para alguien que no inicia sesión, como una criatura o una persona a la que cuidas. No tiene inicio de sesión ni dirección de correo, y tú pasas a ser su primera persona responsable. Más adelante puedes añadir otras, y cualquiera de vosotras puede entrar en el historial para mantenerlo al día.",
|
||||
"nameLabel": "Nombre",
|
||||
"namePlaceholder": "El nombre con el que reconocerás este historial",
|
||||
"nameHint": "Hasta 80 caracteres. Se muestra allá donde aparezca este historial.",
|
||||
@@ -11676,7 +11677,7 @@
|
||||
"creating": "Creando…",
|
||||
"created": "{name} ya está listo. Puedes entrar en ese historial desde el menú de la cuenta.",
|
||||
"errorStepUp": "Confirma tu segundo factor y vuelve a intentarlo.",
|
||||
"errorOffline": "Esto no llegó al servidor. No ha cambiado nada — revisa tu conexión y vuelve a intentarlo.",
|
||||
"errorOffline": "Esto no llegó al servidor. No ha cambiado nada. Revisa tu conexión y vuelve a intentarlo.",
|
||||
"errorInvalid": "El servidor rechazó esos datos. Revisa el nombre, la fecha y la zona horaria.",
|
||||
"errorFailed": "No se pudo crear el perfil.",
|
||||
"edit": "Editar",
|
||||
@@ -11687,7 +11688,7 @@
|
||||
"editErrorFailed": "No se han podido guardar los cambios.",
|
||||
"delete": "Eliminar perfil",
|
||||
"deleteTitle": "¿Eliminar {name}?",
|
||||
"deleteBody": "Todo lo registrado para {name} desaparece con el perfil — mediciones, medicamentos, documentos y notas. Esto no se puede deshacer.",
|
||||
"deleteBody": "Todo lo registrado para {name} desaparece con el perfil: mediciones, medicamentos, documentos y notas. Esto no se puede deshacer.",
|
||||
"deleteGuardiansOne": "{count} persona se ocupa hoy de este historial y lo perderá.",
|
||||
"deleteGuardiansFew": "{count} personas se ocupan hoy de este historial y lo perderán.",
|
||||
"deleteGuardiansOther": "{count} personas se ocupan hoy de este historial y lo perderán.",
|
||||
@@ -11973,7 +11974,7 @@
|
||||
"both": "Ambos lados",
|
||||
"none": "Sin indicar"
|
||||
},
|
||||
"bodySiteWithSide": "{site} · {side}",
|
||||
"bodySiteWithSide": "{site} ({side})",
|
||||
"sectionTitle": "Citas",
|
||||
"sectionDescription": "Visitas médicas y citas reservadas en un solo sitio.",
|
||||
"add": "Cita",
|
||||
@@ -12227,7 +12228,6 @@
|
||||
"loadFailed": "No se pudo cargar este día.",
|
||||
"dayOf": "Día {n} de {m}",
|
||||
"dayN": "Día {n}",
|
||||
"since": "desde {date}",
|
||||
"usualRange": "Habitual de {lo} a {hi}",
|
||||
"groups": {
|
||||
"running": "En curso ese día",
|
||||
@@ -12254,11 +12254,11 @@
|
||||
"description": "Todo lo que tus registros contienen para este día.",
|
||||
"openDocument": "Abrir documento",
|
||||
"previousReading": "Antes, {date}",
|
||||
"rugLegend": "Puntos bajo el eje: días con entradas · anillo: día destacado",
|
||||
"rugLegend": "Los puntos bajo el eje marcan días con entradas, y un anillo, un día destacado.",
|
||||
"sheetExpand": "Ampliar a toda la altura",
|
||||
"sheetShrink": "Reducir",
|
||||
"usualLabel": "Tus 30 días anteriores",
|
||||
"valuesLegend": "Punto: este día · barra: tus 30 días anteriores",
|
||||
"valuesLegend": "Punto para este día, barra para los 30 días anteriores",
|
||||
"valuesAllOne": "Todos los valores",
|
||||
"valuesAllFew": "Los {count} valores",
|
||||
"valuesAllOther": "Los {count} valores",
|
||||
@@ -12284,7 +12284,9 @@
|
||||
"note": "Reunido a partir de tus entradas, sin valoración. Cada fecha abre el día completo.",
|
||||
"report": "Informe médico del {date} hasta hoy"
|
||||
},
|
||||
"travel": "De viaje"
|
||||
"travel": "De viaje",
|
||||
"dayNSince": "Día {n}, desde el {date}",
|
||||
"sinceDate": "Desde el {date}"
|
||||
},
|
||||
"timeline": {
|
||||
"title": "Cronología",
|
||||
@@ -12358,9 +12360,9 @@
|
||||
"vaccinationsOne": "{count} vacuna",
|
||||
"vaccinationsFew": "{count} vacunas",
|
||||
"vaccinationsOther": "{count} vacunas",
|
||||
"visitsOne": "{count} visita · con intervención: {procedures}",
|
||||
"visitsFew": "{count} visitas · con intervención: {procedures}",
|
||||
"visitsOther": "{count} visitas · con intervención: {procedures}",
|
||||
"visitsOne": "{count} visita, {procedures} con intervención",
|
||||
"visitsFew": "{count} visitas, {procedures} con intervención",
|
||||
"visitsOther": "{count} visitas, {procedures} con intervención",
|
||||
"visitsPlannedOne": "{count} visita, solo planificada",
|
||||
"visitsPlannedFew": "{count} visitas, solo planificadas",
|
||||
"visitsPlannedOther": "{count} visitas, solo planificadas",
|
||||
@@ -12463,8 +12465,8 @@
|
||||
"months": "Meses",
|
||||
"years": "Años",
|
||||
"groupingLabel": "Agrupación",
|
||||
"gap": "{from} a {to} · sin entradas",
|
||||
"gapSingle": "{period} · sin entradas",
|
||||
"gap": "{from} a {to} sin entradas",
|
||||
"gapSingle": "{period} sin entradas",
|
||||
"ended": "Fin: {label}",
|
||||
"afterDaysOne": "después de 1 día",
|
||||
"afterDaysFew": "después de {count} días",
|
||||
|
||||
+112
-110
@@ -206,7 +206,7 @@
|
||||
"colExpected": "Attendues",
|
||||
"colComplianceRate": "Taux d'observance",
|
||||
"moodTitle": "Évolution de l’humeur",
|
||||
"moodSummary": "Moyenne:{avg} / 5.0 · Entries: {count} · Range: {min}–{max}",
|
||||
"moodSummary": "Moyenne {avg} / 5.0, {count} entrées, plage {min}–{max}",
|
||||
"colMood": "Humeur",
|
||||
"colCount": "Nombre",
|
||||
"colShare": "Part",
|
||||
@@ -579,8 +579,8 @@
|
||||
"sleepShort": "Sommeil",
|
||||
"stepsShort": "Pas",
|
||||
"vo2MaxShort": "VO₂ max",
|
||||
"bpInTargetWindow90": "TA-cible · 90 j",
|
||||
"bpInTargetWindowDynamic": "TA-cible · {days} j",
|
||||
"bpInTargetWindow90": "TA-cible (90 j)",
|
||||
"bpInTargetWindowDynamic": "TA-cible ({days} j)",
|
||||
"bpInTargetCollecting": "collecte de données",
|
||||
"medications": "Médicaments",
|
||||
"quickAddMeasurement": "Saisir une mesure",
|
||||
@@ -1336,7 +1336,7 @@
|
||||
"complianceInfoLabel": "Que signifie l'observance ?",
|
||||
"lastIntake": "Dernière prise :",
|
||||
"nextIntake": "Prochaine prise :",
|
||||
"nextIntakeOverdue": "En retard · {time} — encore rattrapable",
|
||||
"nextIntakeOverdue": "En retard depuis {time}, encore rattrapable",
|
||||
"dayStreak": "jours de série",
|
||||
"dayStreakOne": "jour de série",
|
||||
"cycleDueToday": "À prendre aujourd'hui",
|
||||
@@ -1737,7 +1737,7 @@
|
||||
"empty": "Aucune étape d'escalade de dose enregistrée pour le moment. Ajoutez des changements de dose datés pour tracer le plan.",
|
||||
"youAreHere": "Vous êtes ici",
|
||||
"doseStep": "{dose} {unit}",
|
||||
"plannedFor": "Prévu · {date}"
|
||||
"plannedFor": "Prévu pour {date}"
|
||||
},
|
||||
"injectionSiteBodyOutlineAriaLabel": "Silhouette du corps",
|
||||
"injectionSitePickerAriaLabel": "Sélecteur de site d'injection",
|
||||
@@ -1788,7 +1788,7 @@
|
||||
"intakeHistoryStatusSkipped": "Ignorée",
|
||||
"intakeHistorySortByTaken": "Trier par heure de prise",
|
||||
"intakeHistorySortByScheduled": "Trier par heure programmée",
|
||||
"intakeHistoryPageInfo": "Page {page} sur {total} · {count} entrées",
|
||||
"intakeHistoryPageInfo": "Page {page} sur {total}, {count} entrées",
|
||||
"intakeHistoryPrev": "Précédent",
|
||||
"intakeHistoryNext": "Suivant",
|
||||
"glp1": {
|
||||
@@ -1888,7 +1888,7 @@
|
||||
"markAsTaken": "Marquer comme prise",
|
||||
"markAsSkipped": "Marquer comme sautée",
|
||||
"adHocTag": "hors planning",
|
||||
"takenDetail": "prévue {planned} · prise {taken}",
|
||||
"takenDetail": "prévue {planned}, prise {taken}",
|
||||
"doseTaken": "Dose : {dose}",
|
||||
"status": {
|
||||
"taken_on_time": "à l'heure",
|
||||
@@ -2594,26 +2594,26 @@
|
||||
"ENV_POLLEN_MAX": "le pollen"
|
||||
},
|
||||
"daily": {
|
||||
"high": "Quand {behaviour} monte, {outcome} du lendemain tend à {direction} dans tes données — une tendance à surveiller, pas une cause.",
|
||||
"moderate": "Quand {behaviour} monte, {outcome} du lendemain semble avoir tendance à {direction}, au vu des données actuelles — une tendance à surveiller, pas une cause.",
|
||||
"faint": "Quand {behaviour} monte, tout au plus se dessine un faible indice que {outcome} du lendemain tende à {direction} dans tes données — trop ténu pour s'y fier, jamais une cause."
|
||||
"high": "Quand {behaviour} monte, {outcome} du lendemain tend à {direction} dans tes données. C'est une tendance à surveiller, pas une cause.",
|
||||
"moderate": "Quand {behaviour} monte, {outcome} du lendemain semble avoir tendance à {direction}, au vu des données actuelles. C'est une tendance à surveiller, pas une cause.",
|
||||
"faint": "Quand {behaviour} monte, tout au plus se dessine un faible indice que {outcome} du lendemain tende à {direction} dans tes données. C'est trop ténu pour s'y fier et jamais une cause."
|
||||
},
|
||||
"lab": {
|
||||
"default": "Des valeurs de {lab} plus élevées vont de pair avec {outcome} qui tend à {direction} sur les mêmes périodes dans tes données — une association à surveiller avec ton médecin, jamais une cause.",
|
||||
"faint": "Des valeurs de {lab} plus élevées laissent tout au plus entrevoir que {outcome} tende à {direction} sur les mêmes périodes dans tes données — trop ténu pour s'y fier, une association à évoquer avec ton médecin, jamais une cause."
|
||||
"default": "Des valeurs de {lab} plus élevées vont de pair avec {outcome} qui tend à {direction} sur les mêmes périodes dans tes données, une association à surveiller avec ton médecin, jamais une cause.",
|
||||
"faint": "Des valeurs de {lab} plus élevées laissent tout au plus entrevoir que {outcome} tende à {direction} sur les mêmes périodes dans tes données. C'est trop ténu pour s'y fier et jamais une cause, mais à évoquer avec ton médecin."
|
||||
},
|
||||
"hypothesis": {
|
||||
"bpCompliance": {
|
||||
"support": "Une meilleure observance des médicaments va de pair avec des valeurs systoliques plus basses — une tendance à surveiller.",
|
||||
"surprising": "L'observance et la systolique évoluent ensemble dans tes données — surprenant ; parles-en à ton médecin avant de changer quoi que ce soit.",
|
||||
"support": "Une meilleure observance des médicaments va de pair avec des valeurs systoliques plus basses, une tendance à surveiller.",
|
||||
"surprising": "L'observance et la systolique évoluent ensemble dans tes données, ce qui est surprenant. Parles-en à ton médecin avant de changer quoi que ce soit.",
|
||||
"none": "L'observance et la systolique n'évoluent pas nettement ensemble sur cette période."
|
||||
},
|
||||
"moodPulse": {
|
||||
"support": "Les jours de moral plus bas vont de pair avec un pouls au repos plus élevé — une tendance à surveiller.",
|
||||
"surprising": "Les jours de meilleur moral vont de pair avec un pouls au repos plus élevé dans tes données — surprenant.",
|
||||
"support": "Les jours de moral plus bas vont de pair avec un pouls au repos plus élevé, une tendance à surveiller.",
|
||||
"surprising": "Les jours de meilleur moral vont de pair avec un pouls au repos plus élevé dans tes données, ce qui est surprenant.",
|
||||
"none": "L'humeur et le pouls au repos n'évoluent pas nettement ensemble sur cette période."
|
||||
},
|
||||
"weightWeekday": "Le poids du {weekday} est {delta} kg {direction} ta moyenne des autres jours — une tendance à surveiller."
|
||||
"weightWeekday": "Le poids du {weekday} est {delta} kg {direction} ta moyenne des autres jours, une tendance à surveiller."
|
||||
},
|
||||
"dailySameDay": {
|
||||
"high": "Plus de {behaviour} le jour même et la veille va souvent de pair avec {direction} {outcome} dans tes données : un schéma à surveiller, pas une cause.",
|
||||
@@ -2730,7 +2730,7 @@
|
||||
"referenceSleep": "Au moins {low} minutes par nuit ; un sommeil plus long n'est pas pénalisé",
|
||||
"referenceAdiposity": "Rapport taille-hauteur inférieur à {high}",
|
||||
"referenceHba1c": "HbA1c de {low} à {high} %",
|
||||
"referenceDetail": "{label} · {source} · {kind} · {low} à {high}",
|
||||
"referenceDetail": "{label} : de {low} à {high} ({kind}, {source})",
|
||||
"openBound": "ouvert",
|
||||
"laboratoryReferenceSource": "Plages de référence du laboratoire",
|
||||
"personalTargetSource": "Objectif personnel",
|
||||
@@ -2824,7 +2824,7 @@
|
||||
"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}",
|
||||
"sourceChip": "sur la base de {n} mesures appariées ({window})",
|
||||
"sourceWindowLast30": "30 derniers jours",
|
||||
"confidenceHigh": "Confiance élevée",
|
||||
"confidenceModerate": "Confiance moyenne",
|
||||
@@ -3003,23 +3003,23 @@
|
||||
"cluster": {
|
||||
"cardio": {
|
||||
"label": "Cardiovasculaire",
|
||||
"hint": "TA · pouls · VFC · FC repos & marche"
|
||||
"hint": "TA, pouls, VFC, FC au repos et à la marche"
|
||||
},
|
||||
"body": {
|
||||
"label": "Composition corporelle",
|
||||
"hint": "Poids · masse grasse · muscle · IMC"
|
||||
"hint": "Poids, masse grasse, muscle et IMC"
|
||||
},
|
||||
"activity": {
|
||||
"label": "Activité",
|
||||
"hint": "Pas · énergie · distance · VO₂ max"
|
||||
"hint": "Pas, énergie, distance et VO₂ max"
|
||||
},
|
||||
"workouts": {
|
||||
"label": "Entraînements",
|
||||
"hint": "Courses · sorties · séances"
|
||||
"hint": "Courses, sorties et séances"
|
||||
},
|
||||
"sleep": {
|
||||
"label": "Sommeil",
|
||||
"hint": "Durée · phases"
|
||||
"hint": "Durée et phases"
|
||||
},
|
||||
"mood": {
|
||||
"label": "Humeur",
|
||||
@@ -3031,15 +3031,15 @@
|
||||
},
|
||||
"medication": {
|
||||
"label": "Médication",
|
||||
"hint": "Observance · contexte GLP-1"
|
||||
"hint": "Observance et contexte GLP-1"
|
||||
},
|
||||
"mobility": {
|
||||
"label": "Mobilité & démarche",
|
||||
"hint": "Stabilité · asymétrie · démarche"
|
||||
"hint": "Stabilité, asymétrie et démarche"
|
||||
},
|
||||
"environment": {
|
||||
"label": "Environnement",
|
||||
"hint": "Bruit · lumière · temp. cutanée"
|
||||
"hint": "Bruit, lumière du jour et température cutanée"
|
||||
}
|
||||
},
|
||||
"settingsClustersLabel": "Données vues par le Coach",
|
||||
@@ -3227,9 +3227,9 @@
|
||||
"cap": "Beaucoup d'étapes, conclut maintenant",
|
||||
"noProgress": "Plus de nouvelles données, conclut"
|
||||
},
|
||||
"thoughtProcessOne": "Raisonnement · {count} étape",
|
||||
"thoughtProcessFew": "Raisonnement · {count} étapes",
|
||||
"thoughtProcessOther": "Raisonnement · {count} étapes",
|
||||
"thoughtProcessOne": "Raisonnement ({count} étape)",
|
||||
"thoughtProcessFew": "Raisonnement ({count} étapes)",
|
||||
"thoughtProcessOther": "Raisonnement ({count} étapes)",
|
||||
"awaitingAnswer": "Réponse attendue"
|
||||
},
|
||||
"memory": {
|
||||
@@ -4062,7 +4062,7 @@
|
||||
"distributionDaysUnit": "jours",
|
||||
"weekdayTitle": "Moyenne par jour de la semaine",
|
||||
"weekdayNoData": "Aucune donnée",
|
||||
"weekdayBestWorst": "Meilleur jour : {best} · Jour le plus difficile : {worst}",
|
||||
"weekdayBestWorst": "Meilleur jour : {best}, jour le plus difficile : {worst}",
|
||||
"tagsTitle": "Étiquettes et déclencheurs",
|
||||
"tagAvgMood": "Humeur moyenne avec cette étiquette",
|
||||
"correlationsTitle": "Humeur et autres mesures",
|
||||
@@ -4078,7 +4078,7 @@
|
||||
"strengthModerate": "Modérée",
|
||||
"strengthWeak": "Faible",
|
||||
"strengthNone": "Aucune",
|
||||
"source": "{n} jours appariés · r = {r}",
|
||||
"source": "{n} jours appariés, r = {r}",
|
||||
"emptyTitle": "Pas encore assez de données appariées",
|
||||
"emptyDescription": "Enregistrez l'humeur et cette mesure les mêmes jours pour voir une corrélation.",
|
||||
"pendingDescription": "{n} jours appariés sur {needed}. Une corrélation apparaît dès qu'il y a assez de jours pour distinguer un motif du hasard.",
|
||||
@@ -4137,7 +4137,7 @@
|
||||
"crosstab": {
|
||||
"title": "Tags et vos métriques de santé",
|
||||
"description": "Comment une métrique de santé diffère les jours où vous avez ajouté chaque tag, par rapport aux jours sans.",
|
||||
"pairLabel": "{tag} · {metric}",
|
||||
"pairLabel": "{metric} les jours avec {tag}",
|
||||
"metricActiveEnergy": "Énergie active",
|
||||
"metricSleepDuration": "Sommeil",
|
||||
"metricNextDayRecovery": "Récupération le lendemain",
|
||||
@@ -4154,7 +4154,7 @@
|
||||
"factorCrosstab": {
|
||||
"title": "Vos facteurs notés et vos constantes",
|
||||
"description": "Comment une constante diffère les jours où vous avez noté un facteur bas par rapport aux jours où vous l'avez noté haut.",
|
||||
"pairLabel": "{factor} · {metric}",
|
||||
"pairLabel": "{metric} les jours avec {factor}",
|
||||
"metricSleepDuration": "Sommeil",
|
||||
"metricSteps": "Pas",
|
||||
"metricRestingHeartRate": "Fréquence cardiaque au repos",
|
||||
@@ -4180,7 +4180,7 @@
|
||||
"moodDown": "Un {factor} plus élevé tend à coïncider avec une moins bonne humeur le lendemain dans vos données.",
|
||||
"outcomeUp": "Une meilleure humeur tend à coïncider avec un {factor} plus élevé le lendemain dans vos données.",
|
||||
"outcomeDown": "Une meilleure humeur tend à coïncider avec un {factor} plus bas le lendemain dans vos données.",
|
||||
"stat": "{n} jours appariés · r = {r} · q = {q}",
|
||||
"stat": "{n} jours appariés, r = {r}, q = {q}",
|
||||
"statLabel": "Comment ceci est calculé",
|
||||
"explainerLabel": "Comment ceci est calculé"
|
||||
},
|
||||
@@ -4224,11 +4224,11 @@
|
||||
},
|
||||
"derived": {
|
||||
"coverage": {
|
||||
"summary": "{present} entrées sur {required} · {percent}%",
|
||||
"summary": "{present} entrées sur {required} ({percent}%)",
|
||||
"ratioLabel": "{present}/{required}",
|
||||
"historyDays": "Basé sur {count} jours d'historique",
|
||||
"missing": "Enregistre ceci pour affiner la valeur : {list}",
|
||||
"summaryLabelled": "{label} · {percent}%"
|
||||
"summaryLabelled": "{label} ({percent}%)"
|
||||
},
|
||||
"scoreRing": {
|
||||
"aria": "Score {score} sur 100, {band}",
|
||||
@@ -4246,7 +4246,7 @@
|
||||
"inputsLabel": "Entrées",
|
||||
"noInputs": "Aucune entrée ne soutient encore cette valeur.",
|
||||
"methodLabel": "Méthode",
|
||||
"window": "Sur tes {days} derniers jours · données {source}",
|
||||
"window": "Sur tes {days} derniers jours de données {source}",
|
||||
"asOf": "au {date}",
|
||||
"standardLink": "Norme : {name}"
|
||||
},
|
||||
@@ -4288,7 +4288,7 @@
|
||||
"anatomy": {
|
||||
"outOf": "/100",
|
||||
"contributorsLabel": "Facteurs",
|
||||
"contributorValue": "{value} · {weight}% du poids",
|
||||
"contributorValue": "{value}, pondération {weight}%",
|
||||
"contributorMissing": "aucune donnée",
|
||||
"insufficient": "Pas encore assez de données pour l’évaluer. Continuez à enregistrer et cela apparaîtra ici."
|
||||
},
|
||||
@@ -4756,10 +4756,10 @@
|
||||
"dismiss": "Pas maintenant"
|
||||
},
|
||||
"bmiHeight": {
|
||||
"coachPrefill": "Je n’ai pas encore indiqué ma taille — pourquoi l’IMC compte-t-il, et que dois-je savoir avant de la renseigner ?"
|
||||
"coachPrefill": "Je n’ai pas encore indiqué ma taille. Pourquoi l’IMC compte-t-il, et que dois-je savoir avant de la renseigner ?"
|
||||
},
|
||||
"medicationsEmpty": {
|
||||
"coachPrefill": "Je n’ai encore ajouté aucun médicament — que dois-je savoir avant de suivre ici l’observance ?"
|
||||
"coachPrefill": "Je n’ai encore ajouté aucun médicament. Que dois-je savoir avant de suivre ici l’observance ?"
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
@@ -5530,7 +5530,7 @@
|
||||
"failureInterrupted": "L'import a été interrompu avant la fin, généralement par un redémarrage du serveur ou un manque de mémoire. Vos données sont en sécurité ; renvoyez l'archive pour réessayer.",
|
||||
"failureInsufficientMemory": "La limite de mémoire du serveur est trop basse pour une archive de cette taille. Demandez à la personne qui administre le serveur d'augmenter la limite de mémoire de Node.js (NODE_OPTIONS=--max-old-space-size), puis renvoyez l'archive.",
|
||||
"rowsImported": "{count} lignes importées jusqu'ici",
|
||||
"doneSummary": "Terminé — {imported} enregistrements sur {read} importés, {skipped} enregistrements cliniques ignorés.",
|
||||
"doneSummary": "Terminé : {imported} enregistrements sur {read} importés, {skipped} enregistrements cliniques ignorés.",
|
||||
"doneNothing": "Rien n'a été importé de cette archive : 0 enregistrement sur {read} est arrivé.",
|
||||
"writtenByHealthLogOne": "{count} enregistrement que HealthLog a écrit lui-même dans Santé a été ignoré, car il figure déjà dans vos données.",
|
||||
"writtenByHealthLogOther": "{count} enregistrements que HealthLog a écrits lui-même dans Santé ont été ignorés, car ils figurent déjà dans vos données.",
|
||||
@@ -5543,12 +5543,12 @@
|
||||
"parsing": "Lecture de l'export…",
|
||||
"upserting": "Import des enregistrements…"
|
||||
},
|
||||
"skipUnsupported": "{count} échantillons ignorés — des types de données que HealthLog n'importe pas.",
|
||||
"skipUnsupported": "{count} échantillons ignorés : des types de données que HealthLog n'importe pas.",
|
||||
"skipRefused": "{count} échantillons n'ont pas pu être écrits (illisibles, hors plage ou échec de l'enregistrement).",
|
||||
"skipBreakdown": "Afficher le détail ({count} types)",
|
||||
"skipBreakdownMore": "+ {count} autres types",
|
||||
"cycleSummary": "{samples} échantillons de cycle fusionnés en {days} journaux quotidiens.",
|
||||
"cycleModuleOff": "{count} échantillons de cycle ignorés — le suivi du cycle est désactivé pour ce compte.",
|
||||
"cycleModuleOff": "{count} échantillons de cycle ignorés, car le suivi du cycle est désactivé pour ce compte.",
|
||||
"cycleDaysFailed": "{count} jours de cycle n'ont pas pu être écrits : {reason}"
|
||||
},
|
||||
"json": {
|
||||
@@ -5633,8 +5633,8 @@
|
||||
"failed": "L'import a échoué. Rien n'a été écrit.",
|
||||
"columnsHeading": "Ce que devient chaque colonne",
|
||||
"jsonOnly": "JSON uniquement",
|
||||
"previewLine": "Lignes lues : {rows} · seraient importées : {queued} · refusées : {refused}",
|
||||
"submittedLine": "Lignes lues : {rows} · en file d'import : {queued}",
|
||||
"previewLine": "{rows} lignes lues, {queued} seraient importées, {refused} refusées",
|
||||
"submittedLine": "{rows} lignes lues, {queued} en file d'import",
|
||||
"unmatched": "Aucun médicament enregistré ne correspond à : {names}",
|
||||
"ambiguous": "Correspond à plusieurs médicaments : {names}",
|
||||
"mirrored": "Copié depuis une autre application, aucune prise ne peut y être ajoutée : {names}",
|
||||
@@ -5811,7 +5811,8 @@
|
||||
"add": "Ajouter {label}",
|
||||
"remove": "Supprimer la période de localisation",
|
||||
"removeConfirmTitle": "Retirer ce voyage ?",
|
||||
"removeConfirmBody": "Les mesures de cette période restent dans ton dossier ; seule l'entrée du voyage disparaît."
|
||||
"removeConfirmBody": "Les mesures de cette période restent dans ton dossier ; seule l'entrée du voyage disparaît.",
|
||||
"range": "Du {start} au {end}"
|
||||
},
|
||||
"backfill": {
|
||||
"title": "Récupérer les jours passés",
|
||||
@@ -6519,7 +6520,7 @@
|
||||
},
|
||||
"integrationFreshness": {
|
||||
"title": "Données reçues",
|
||||
"summary": "{count} types de données · plus récent {relative}",
|
||||
"summary": "{count} types de données, plus récent {relative}",
|
||||
"quiet": "{count} silencieux",
|
||||
"workouts": "Séances"
|
||||
},
|
||||
@@ -7078,14 +7079,14 @@
|
||||
"title": "Progression de la synchronisation",
|
||||
"receivedLabel": "Enregistrements reçus",
|
||||
"oldestLabel": "Mesure la plus ancienne atteinte",
|
||||
"flowing": "Des données sont arrivées au cours de la dernière heure — l'app iPhone continue d'envoyer.",
|
||||
"waiting": "En attente de nouvelles données de l'app iPhone. Le transfert reprend quand l'app est ouverte ou quand iOS lui accorde du temps en arrière-plan — une accalmie pendant le premier grand rattrapage est normale, pas une erreur."
|
||||
"flowing": "Des données sont arrivées au cours de la dernière heure. L'app iPhone continue d'envoyer.",
|
||||
"waiting": "En attente de nouvelles données de l'app iPhone. Le transfert reprend quand l'app est ouverte ou quand iOS lui accorde du temps en arrière-plan. Une accalmie pendant le premier grand rattrapage est normale, pas une erreur."
|
||||
},
|
||||
"delivery": {
|
||||
"title": "Livraison",
|
||||
"lastTriggerLabel": "La dernière synchronisation est arrivée",
|
||||
"lastBackgroundLabel": "Dernière synchronisation en arrière-plan",
|
||||
"backgroundNever": "Jamais — jusqu'ici chaque synchronisation est arrivée avec l'app ouverte",
|
||||
"backgroundNever": "Jamais : jusqu'ici chaque synchronisation est arrivée avec l'app ouverte",
|
||||
"noSyncYet": "Aucune synchronisation n'est encore arrivée, il n'y a donc rien à signaler ici.",
|
||||
"trigger": {
|
||||
"foreground": "avec l'app ouverte",
|
||||
@@ -8085,19 +8086,19 @@
|
||||
"description": "Prenez tous vos médicaments à l’heure pendant 1 jour."
|
||||
},
|
||||
"compliance801": {
|
||||
"title": "Observance 80% · 1j",
|
||||
"title": "Observance de 80% pendant 1 jour",
|
||||
"description": "Atteignez au moins 80% d’observance sur 30 jours pendant 1 jour."
|
||||
},
|
||||
"bmiGreen1": {
|
||||
"title": "IMC au vert · 1j",
|
||||
"title": "IMC au vert pendant 1 jour",
|
||||
"description": "Maintenez votre IMC dans la plage normale pendant 1 jour."
|
||||
},
|
||||
"bpGreen1": {
|
||||
"title": "Tension au vert · 1j",
|
||||
"title": "Tension au vert pendant 1 jour",
|
||||
"description": "Maintenez votre tension dans la plage normale pendant 1 jour."
|
||||
},
|
||||
"pulseGreen1": {
|
||||
"title": "Pouls au vert · 1j",
|
||||
"title": "Pouls au vert pendant 1 jour",
|
||||
"description": "Maintenez votre pouls au repos dans la plage normale pendant 1 jour."
|
||||
},
|
||||
"onTimePerfect7": {
|
||||
@@ -8105,19 +8106,19 @@
|
||||
"description": "Prenez tous vos médicaments à l’heure pendant 7 jours d’affilée."
|
||||
},
|
||||
"compliance807": {
|
||||
"title": "Observance 80% · 7j",
|
||||
"title": "Observance de 80% pendant 7 jours",
|
||||
"description": "Atteignez au moins 80% d’observance sur 30 jours pendant 7 jours d’affilée."
|
||||
},
|
||||
"bmiGreen7": {
|
||||
"title": "IMC au vert · 7j",
|
||||
"title": "IMC au vert pendant 7 jours",
|
||||
"description": "Maintenez votre IMC dans la plage normale pendant 7 jours d’affilée."
|
||||
},
|
||||
"bpGreen7": {
|
||||
"title": "Tension au vert · 7j",
|
||||
"title": "Tension au vert pendant 7 jours",
|
||||
"description": "Maintenez votre tension dans la plage normale pendant 7 jours d’affilée."
|
||||
},
|
||||
"pulseGreen7": {
|
||||
"title": "Pouls au vert · 7j",
|
||||
"title": "Pouls au vert pendant 7 jours",
|
||||
"description": "Maintenez votre pouls au repos dans la plage normale pendant 7 jours d’affilée."
|
||||
},
|
||||
"onTimePerfect30": {
|
||||
@@ -8125,19 +8126,19 @@
|
||||
"description": "Prenez tous vos médicaments à l’heure pendant 30 jours d’affilée."
|
||||
},
|
||||
"compliance8030": {
|
||||
"title": "Observance 80% · 30j",
|
||||
"title": "Observance de 80% pendant 30 jours",
|
||||
"description": "Atteignez au moins 80% d’observance sur 30 jours pendant 30 jours d’affilée."
|
||||
},
|
||||
"bmiGreen30": {
|
||||
"title": "IMC au vert · 30j",
|
||||
"title": "IMC au vert pendant 30 jours",
|
||||
"description": "Maintenez votre IMC dans la plage normale pendant 30 jours d’affilée."
|
||||
},
|
||||
"bpGreen30": {
|
||||
"title": "Tension au vert · 30j",
|
||||
"title": "Tension au vert pendant 30 jours",
|
||||
"description": "Maintenez votre tension dans la plage normale pendant 30 jours d’affilée."
|
||||
},
|
||||
"pulseGreen30": {
|
||||
"title": "Pouls au vert · 30j",
|
||||
"title": "Pouls au vert pendant 30 jours",
|
||||
"description": "Maintenez votre pouls au repos dans la plage normale pendant 30 jours d’affilée."
|
||||
},
|
||||
"onTimePerfect180": {
|
||||
@@ -8145,19 +8146,19 @@
|
||||
"description": "Prenez tous vos médicaments à l’heure pendant 180 jours d’affilée."
|
||||
},
|
||||
"compliance80180": {
|
||||
"title": "Observance 80% · 180j",
|
||||
"title": "Observance de 80% pendant 180 jours",
|
||||
"description": "Atteignez au moins 80% d’observance sur 30 jours pendant 180 jours d’affilée."
|
||||
},
|
||||
"bmiGreen180": {
|
||||
"title": "IMC au vert · 180j",
|
||||
"title": "IMC au vert pendant 180 jours",
|
||||
"description": "Maintenez votre IMC dans la plage normale pendant 180 jours d’affilée."
|
||||
},
|
||||
"bpGreen180": {
|
||||
"title": "Tension au vert · 180j",
|
||||
"title": "Tension au vert pendant 180 jours",
|
||||
"description": "Maintenez votre tension dans la plage normale pendant 180 jours d’affilée."
|
||||
},
|
||||
"pulseGreen180": {
|
||||
"title": "Pouls au vert · 180j",
|
||||
"title": "Pouls au vert pendant 180 jours",
|
||||
"description": "Maintenez votre pouls au repos dans la plage normale pendant 180 jours d’affilée."
|
||||
},
|
||||
"onTimePerfect360": {
|
||||
@@ -8165,19 +8166,19 @@
|
||||
"description": "Prenez tous vos médicaments à l’heure pendant 360 jours d’affilée."
|
||||
},
|
||||
"compliance80360": {
|
||||
"title": "Observance 80% · 360j",
|
||||
"title": "Observance de 80% pendant 360 jours",
|
||||
"description": "Atteignez au moins 80% d’observance sur 30 jours pendant 360 jours d’affilée."
|
||||
},
|
||||
"bmiGreen360": {
|
||||
"title": "IMC au vert · 360j",
|
||||
"title": "IMC au vert pendant 360 jours",
|
||||
"description": "Maintenez votre IMC dans la plage normale pendant 360 jours d’affilée."
|
||||
},
|
||||
"bpGreen360": {
|
||||
"title": "Tension au vert · 360j",
|
||||
"title": "Tension au vert pendant 360 jours",
|
||||
"description": "Maintenez votre tension dans la plage normale pendant 360 jours d’affilée."
|
||||
},
|
||||
"pulseGreen360": {
|
||||
"title": "Pouls au vert · 360j",
|
||||
"title": "Pouls au vert pendant 360 jours",
|
||||
"description": "Maintenez votre pouls au repos dans la plage normale pendant 360 jours d’affilée."
|
||||
},
|
||||
"moodFirst": {
|
||||
@@ -8261,15 +8262,15 @@
|
||||
"description": "Vous avez changé la langue de l’application au moins une fois."
|
||||
},
|
||||
"missFree7": {
|
||||
"title": "Aucune dose oubliée · 7j",
|
||||
"title": "Aucune dose oubliée en 7 jours",
|
||||
"description": "7 jours consécutifs sans dose oubliée."
|
||||
},
|
||||
"missFree30": {
|
||||
"title": "Aucune dose oubliée · 30j",
|
||||
"title": "Aucune dose oubliée en 30 jours",
|
||||
"description": "30 jours consécutifs sans dose oubliée."
|
||||
},
|
||||
"missFree90": {
|
||||
"title": "Aucune dose oubliée · 90j",
|
||||
"title": "Aucune dose oubliée en 90 jours",
|
||||
"description": "90 jours consécutifs sans dose oubliée."
|
||||
},
|
||||
"measurementWeeks4": {
|
||||
@@ -8281,7 +8282,7 @@
|
||||
"description": "Les quatre champs de l’auto-déclaration sont remplis — le Coach connaît votre contexte."
|
||||
},
|
||||
"sleepLog7": {
|
||||
"title": "Journal de sommeil · 7j",
|
||||
"title": "Journal de sommeil pendant 7 jours",
|
||||
"description": "Données de sommeil enregistrées pendant 7 jours consécutifs."
|
||||
}
|
||||
},
|
||||
@@ -8791,7 +8792,7 @@
|
||||
},
|
||||
"crosstab": {
|
||||
"description": "Comment chaque mesure se compare entre tes phases lutéale et folliculaire, sur tes propres données.",
|
||||
"pairLabel": "{metric} · lutéale vs folliculaire",
|
||||
"pairLabel": "{metric} : phase lutéale vs folliculaire",
|
||||
"detail": "Lutéale {lutealAvg} {unit} ({lutealDays} jours) vs folliculaire {follicularAvg} {unit} ({follicularDays} jours).",
|
||||
"metricRestingHeartRate": "Fréquence cardiaque au repos",
|
||||
"metricHrv": "Variabilité de la fréquence cardiaque",
|
||||
@@ -9011,7 +9012,7 @@
|
||||
"temperatureSection": "Température et ovulation",
|
||||
"intimacySection": "Intimité et contraception",
|
||||
"testsSection": "Tests",
|
||||
"phaseDayHeader": "Jour {day} · {phase}",
|
||||
"phaseDayHeader": "Jour {day}, {phase}",
|
||||
"bbtHint": "Prends-la dès le matin, avant de te lever.",
|
||||
"titleForDate": "Saisie du {date}",
|
||||
"descriptionToday": "Aujourd'hui. Flux, symptômes et notes.",
|
||||
@@ -9188,10 +9189,10 @@
|
||||
"VISCERAL_FAT": "Graisse viscérale",
|
||||
"BODY_MASS_INDEX": "Indice de masse corporelle (IMC)",
|
||||
"WAIST_CIRCUMFERENCE": "Tour de taille",
|
||||
"PHQ9_SCORE": "PHQ-9 · humeur",
|
||||
"GAD7_SCORE": "GAD-7 · inquiétude",
|
||||
"WHO5_SCORE": "WHO-5 · bien-être",
|
||||
"SCI_SCORE": "SCI · sommeil"
|
||||
"PHQ9_SCORE": "PHQ-9 (humeur)",
|
||||
"GAD7_SCORE": "GAD-7 (inquiétude)",
|
||||
"WHO5_SCORE": "WHO-5 (bien-être)",
|
||||
"SCI_SCORE": "SCI (sommeil)"
|
||||
},
|
||||
"typeGroups": {
|
||||
"vitals": "Constantes vitales",
|
||||
@@ -10288,10 +10289,10 @@
|
||||
"saved": "Enregistré",
|
||||
"error": "Une erreur est survenue. Réessaie.",
|
||||
"instrument": {
|
||||
"phq9": "PHQ-9 · humeur",
|
||||
"gad7": "GAD-7 · inquiétude",
|
||||
"who5": "WHO-5 · bien-être",
|
||||
"sci": "SCI · sommeil"
|
||||
"phq9": "PHQ-9 (humeur)",
|
||||
"gad7": "GAD-7 (inquiétude)",
|
||||
"who5": "WHO-5 (bien-être)",
|
||||
"sci": "SCI (sommeil)"
|
||||
},
|
||||
"instrumentSub": {
|
||||
"phq9": "Dépistage de la dépression, 9 questions",
|
||||
@@ -10759,7 +10760,7 @@
|
||||
},
|
||||
"documents": {
|
||||
"title": "Documents",
|
||||
"subtitle": "Chaque courrier, compte rendu et scan au même endroit, consultable — chiffré au repos.",
|
||||
"subtitle": "Chaque courrier, compte rendu et scan au même endroit, consultable et chiffré au repos.",
|
||||
"pageUpload": "Téléverser",
|
||||
"ownerOnlyUpload": "Seul le titulaire du dossier peut ajouter des documents.",
|
||||
"kind": {
|
||||
@@ -10801,15 +10802,15 @@
|
||||
},
|
||||
"error": {
|
||||
"fileTooLarge": "Ce fichier dépasse la limite de {maxSize}.",
|
||||
"quotaExceeded": "Le stockage est plein — {used} sur {quota} utilisés.",
|
||||
"quotaExceeded": "Le stockage est plein : {used} sur {quota} utilisés.",
|
||||
"unsupportedType": "Ce type de fichier n'est pas pris en charge.",
|
||||
"purged": "Ce document a été définitivement supprimé et ne peut pas être restauré.",
|
||||
"duplicateExists": "Un document identique est déjà enregistré.",
|
||||
"rateLimited": "Trop de téléversements — réessayez dans quelques minutes.",
|
||||
"rateLimited": "Trop de téléversements. Réessayez dans quelques minutes.",
|
||||
"generic": "Le téléversement a échoué. Veuillez réessayer."
|
||||
},
|
||||
"toast": {
|
||||
"duplicate": "Déjà enregistré — le document existant est mis en évidence.",
|
||||
"duplicate": "Déjà enregistré. Le document existant est mis en évidence.",
|
||||
"deleted": "Document supprimé",
|
||||
"restoreFailed": "Impossible de restaurer le document."
|
||||
},
|
||||
@@ -10832,7 +10833,7 @@
|
||||
},
|
||||
"empty": {
|
||||
"title": "Votre coffre à documents est vide",
|
||||
"description": "Conservez courriers médicaux, résultats de laboratoire, imagerie, ordonnances et carnets de vaccination — chiffrés et consultables par type, affection et année.",
|
||||
"description": "Conservez courriers médicaux, résultats de laboratoire, imagerie, ordonnances et carnets de vaccination. Ils sont chiffrés et consultables par type, affection et année.",
|
||||
"action": "Téléverser un premier document",
|
||||
"noMatchesTitle": "Aucun document correspondant",
|
||||
"noMatchesDescription": "Rien ne correspond à la recherche et aux filtres actuels."
|
||||
@@ -10872,9 +10873,9 @@
|
||||
"linkCondition": "Lier",
|
||||
"noConditions": "Lié à aucune affection",
|
||||
"previewUnavailable": "Pas d'aperçu intégré pour ce type de fichier",
|
||||
"uploadedMeta": "Ajouté le {date} · {size}",
|
||||
"uploadedMeta": "Ajouté le {date}, {size}",
|
||||
"importedFrom": "Importé depuis {system}",
|
||||
"importedFromWithId": "Importé depuis {system} · ID {id}",
|
||||
"importedFromWithId": "Importé depuis {system}, ID {id}",
|
||||
"sourceOther": "un autre système",
|
||||
"share": "Partager",
|
||||
"labValuesLink": "Voir {count} valeurs de laboratoire",
|
||||
@@ -10974,7 +10975,7 @@
|
||||
"CONDITION": "Affection",
|
||||
"MEDICATION_STATEMENT": "Médicament"
|
||||
},
|
||||
"statedRange": "plage indiquée {range}",
|
||||
"statedRange": "Plage indiquée {range}",
|
||||
"needsCheck": "Vérifiez cette valeur par rapport au document, puis enregistrez-la.",
|
||||
"verify": "Vérifier",
|
||||
"verifySave": "Enregistrer la valeur",
|
||||
@@ -11244,14 +11245,14 @@
|
||||
}
|
||||
},
|
||||
"hydration": {
|
||||
"referenceMeta": "Apport de référence {value} {unit}/jour · EFSA"
|
||||
"referenceMeta": "Apport de référence {value} {unit}/jour (EFSA)"
|
||||
},
|
||||
"caffeine": {
|
||||
"ceilingMeta": "Plafond de sécurité {value} {unit}/jour · EFSA"
|
||||
"ceilingMeta": "Plafond de sécurité {value} {unit}/jour (EFSA)"
|
||||
},
|
||||
"micronutrients": {
|
||||
"title": "Vitamines et minéraux",
|
||||
"rowMeta": "{days} sur {window} jours · réf. {value} {unit} (EFSA)",
|
||||
"rowMeta": "{days} sur {window} jours, réf. {value} {unit} (EFSA)",
|
||||
"rowMetaNoRef": "{days} sur {window} jours",
|
||||
"footer": "{tracked} des {total} micronutriments suivis ont des données sur cette période.",
|
||||
"emptyTitle": "Aucune donnée de micronutriments synchronisée pour l'instant",
|
||||
@@ -11266,7 +11267,7 @@
|
||||
},
|
||||
"push": {
|
||||
"title": "Votre résumé du matin",
|
||||
"bodyProvisional": "{line} · Le sommeil de la nuit dernière n'est pas encore disponible."
|
||||
"bodyProvisional": "{line}\nLe sommeil de la nuit dernière n'est pas encore disponible."
|
||||
},
|
||||
"item": {
|
||||
"doseWindow": {
|
||||
@@ -11654,7 +11655,7 @@
|
||||
"managed": {
|
||||
"title": "Profils dont vous vous occupez",
|
||||
"description": "Dossiers de santé sans identifiants propres.",
|
||||
"explainer": "Un profil géré est un dossier de santé pour quelqu'un qui ne se connecte pas lui-même — un enfant, ou une personne dont vous vous occupez. Il n'a ni identifiants ni adresse e-mail, et vous en devenez la première personne responsable. Vous pourrez en ajouter d'autres plus tard, et chacune pourra entrer dans le dossier pour le tenir à jour.",
|
||||
"explainer": "Un profil géré est un dossier de santé pour quelqu'un qui ne se connecte pas lui-même, comme un enfant ou une personne dont vous vous occupez. Il n'a ni identifiants ni adresse e-mail, et vous en devenez la première personne responsable. Vous pourrez en ajouter d'autres plus tard, et chacune pourra entrer dans le dossier pour le tenir à jour.",
|
||||
"nameLabel": "Nom",
|
||||
"namePlaceholder": "Le nom sous lequel vous reconnaîtrez ce dossier",
|
||||
"nameHint": "Jusqu'à 80 caractères. Affiché partout où ce dossier apparaît.",
|
||||
@@ -11676,7 +11677,7 @@
|
||||
"creating": "Création…",
|
||||
"created": "{name} est en place. Vous pouvez entrer dans ce dossier depuis le menu du compte.",
|
||||
"errorStepUp": "Confirmez votre deuxième facteur, puis réessayez.",
|
||||
"errorOffline": "Cela n'a pas atteint le serveur. Rien n'a changé — vérifiez votre connexion et réessayez.",
|
||||
"errorOffline": "Cela n'a pas atteint le serveur. Rien n'a changé. Vérifiez votre connexion et réessayez.",
|
||||
"errorInvalid": "Le serveur a refusé ces informations. Vérifiez le nom, la date et le fuseau horaire.",
|
||||
"errorFailed": "Le profil n'a pas pu être créé.",
|
||||
"edit": "Modifier",
|
||||
@@ -11687,7 +11688,7 @@
|
||||
"editErrorFailed": "Les modifications n'ont pas pu être enregistrées.",
|
||||
"delete": "Supprimer le profil",
|
||||
"deleteTitle": "Supprimer {name} ?",
|
||||
"deleteBody": "Tout ce qui a été enregistré pour {name} disparaît avec le profil — mesures, médicaments, documents et notes. Cette action est irréversible.",
|
||||
"deleteBody": "Tout ce qui a été enregistré pour {name} disparaît avec le profil : mesures, médicaments, documents et notes. Cette action est irréversible.",
|
||||
"deleteGuardiansOne": "{count} personne s'occupe aujourd'hui de ce dossier et le perdra.",
|
||||
"deleteGuardiansFew": "{count} personnes s'occupent aujourd'hui de ce dossier et le perdront.",
|
||||
"deleteGuardiansOther": "{count} personnes s'occupent aujourd'hui de ce dossier et le perdront.",
|
||||
@@ -11973,7 +11974,7 @@
|
||||
"both": "Des deux côtés",
|
||||
"none": "Non précisé"
|
||||
},
|
||||
"bodySiteWithSide": "{site} · {side}",
|
||||
"bodySiteWithSide": "{site} ({side})",
|
||||
"sectionTitle": "Rendez-vous",
|
||||
"sectionDescription": "Consultations et rendez-vous pris, au même endroit.",
|
||||
"add": "Rendez-vous",
|
||||
@@ -12227,7 +12228,6 @@
|
||||
"loadFailed": "Impossible de charger ce jour.",
|
||||
"dayOf": "Jour {n} sur {m}",
|
||||
"dayN": "Jour {n}",
|
||||
"since": "depuis le {date}",
|
||||
"usualRange": "Habituellement de {lo} à {hi}",
|
||||
"groups": {
|
||||
"running": "En cours ce jour-là",
|
||||
@@ -12254,11 +12254,11 @@
|
||||
"description": "Tout ce que vos entrées contiennent pour ce jour.",
|
||||
"openDocument": "Ouvrir le document",
|
||||
"previousReading": "Avant, {date}",
|
||||
"rugLegend": "Points sous l’axe : jours avec entrées · anneau : jour remarquable",
|
||||
"rugLegend": "Les points sous l’axe marquent les jours avec entrées, un anneau un jour remarquable.",
|
||||
"sheetExpand": "Agrandir en pleine hauteur",
|
||||
"sheetShrink": "Réduire",
|
||||
"usualLabel": "Vos 30 jours précédents",
|
||||
"valuesLegend": "Point : ce jour · barre : vos 30 jours précédents",
|
||||
"valuesLegend": "Point pour ce jour, barre pour les 30 jours précédents",
|
||||
"valuesAllOne": "Toutes les valeurs",
|
||||
"valuesAllFew": "Les {count} valeurs",
|
||||
"valuesAllOther": "Les {count} valeurs",
|
||||
@@ -12284,7 +12284,9 @@
|
||||
"note": "Établi à partir de vos entrées, sans évaluation. Chaque date ouvre la journée entière.",
|
||||
"report": "Rapport médical du {date} à aujourd’hui"
|
||||
},
|
||||
"travel": "En déplacement"
|
||||
"travel": "En déplacement",
|
||||
"dayNSince": "Jour {n}, depuis le {date}",
|
||||
"sinceDate": "Depuis le {date}"
|
||||
},
|
||||
"timeline": {
|
||||
"title": "Chronologie",
|
||||
@@ -12358,9 +12360,9 @@
|
||||
"vaccinationsOne": "{count} vaccin",
|
||||
"vaccinationsFew": "{count} vaccins",
|
||||
"vaccinationsOther": "{count} vaccins",
|
||||
"visitsOne": "{count} consultation · avec intervention : {procedures}",
|
||||
"visitsFew": "{count} consultations · avec intervention : {procedures}",
|
||||
"visitsOther": "{count} consultations · avec intervention : {procedures}",
|
||||
"visitsOne": "{count} consultation, dont {procedures} avec intervention",
|
||||
"visitsFew": "{count} consultations, dont {procedures} avec intervention",
|
||||
"visitsOther": "{count} consultations, dont {procedures} avec intervention",
|
||||
"visitsPlannedOne": "{count} consultation, seulement prévue",
|
||||
"visitsPlannedFew": "{count} consultations, seulement prévues",
|
||||
"visitsPlannedOther": "{count} consultations, seulement prévues",
|
||||
@@ -12463,8 +12465,8 @@
|
||||
"months": "Mois",
|
||||
"years": "Années",
|
||||
"groupingLabel": "Regroupement",
|
||||
"gap": "{from} à {to} · aucune entrée",
|
||||
"gapSingle": "{period} · aucune entrée",
|
||||
"gap": "{from} à {to} sans entrée",
|
||||
"gapSingle": "{period} sans entrée",
|
||||
"ended": "Fin : {label}",
|
||||
"afterDaysOne": "après 1 jour",
|
||||
"afterDaysFew": "après {count} jours",
|
||||
|
||||
+109
-107
@@ -206,7 +206,7 @@
|
||||
"colExpected": "Attese",
|
||||
"colComplianceRate": "Tasso di aderenza",
|
||||
"moodTitle": "Andamento dell’umore",
|
||||
"moodSummary": "Media:{avg} / 5.0 · Entries: {count} · Range: {min}–{max}",
|
||||
"moodSummary": "Media {avg} / 5.0, {count} voci, intervallo {min}–{max}",
|
||||
"colMood": "Umore",
|
||||
"colCount": "Quantità",
|
||||
"colShare": "Quota",
|
||||
@@ -579,8 +579,8 @@
|
||||
"sleepShort": "Sonno",
|
||||
"stepsShort": "Passi",
|
||||
"vo2MaxShort": "VO₂ max",
|
||||
"bpInTargetWindow90": "PA-target · 90 gg",
|
||||
"bpInTargetWindowDynamic": "PA-target · {days} gg",
|
||||
"bpInTargetWindow90": "PA-target (90 gg)",
|
||||
"bpInTargetWindowDynamic": "PA-target ({days} gg)",
|
||||
"bpInTargetCollecting": "raccolta dati in corso",
|
||||
"medications": "Farmaci",
|
||||
"quickAddMeasurement": "Registra misurazione",
|
||||
@@ -1336,7 +1336,7 @@
|
||||
"complianceInfoLabel": "Cosa significa aderenza?",
|
||||
"lastIntake": "Ultima assunzione:",
|
||||
"nextIntake": "Prossima assunzione:",
|
||||
"nextIntakeOverdue": "In ritardo · {time} — ancora recuperabile",
|
||||
"nextIntakeOverdue": "In ritardo da {time}, ancora recuperabile",
|
||||
"dayStreak": "giorni di serie",
|
||||
"dayStreakOne": "giorno di serie",
|
||||
"cycleDueToday": "In scadenza oggi",
|
||||
@@ -1737,7 +1737,7 @@
|
||||
"empty": "Nessuna fase di aumento della dose registrata. Aggiungi variazioni di dose con data per tracciare il piano.",
|
||||
"youAreHere": "Sei qui",
|
||||
"doseStep": "{dose} {unit}",
|
||||
"plannedFor": "Previsto · {date}"
|
||||
"plannedFor": "Previsto per {date}"
|
||||
},
|
||||
"injectionSiteBodyOutlineAriaLabel": "Sagoma del corpo",
|
||||
"injectionSitePickerAriaLabel": "Selettore del sito di iniezione",
|
||||
@@ -1788,7 +1788,7 @@
|
||||
"intakeHistoryStatusSkipped": "Saltata",
|
||||
"intakeHistorySortByTaken": "Ordina per ora di assunzione",
|
||||
"intakeHistorySortByScheduled": "Ordina per orario programmato",
|
||||
"intakeHistoryPageInfo": "Pagina {page} di {total} · {count} voci",
|
||||
"intakeHistoryPageInfo": "Pagina {page} di {total}, {count} voci",
|
||||
"intakeHistoryPrev": "Precedente",
|
||||
"intakeHistoryNext": "Successiva",
|
||||
"glp1": {
|
||||
@@ -1888,7 +1888,7 @@
|
||||
"markAsTaken": "Segna come assunta",
|
||||
"markAsSkipped": "Segna come saltata",
|
||||
"adHocTag": "fuori programma",
|
||||
"takenDetail": "prevista {planned} · assunta {taken}",
|
||||
"takenDetail": "prevista {planned}, assunta {taken}",
|
||||
"doseTaken": "Dose: {dose}",
|
||||
"status": {
|
||||
"taken_on_time": "puntuale",
|
||||
@@ -2594,26 +2594,26 @@
|
||||
"ENV_POLLEN_MAX": "i pollini"
|
||||
},
|
||||
"daily": {
|
||||
"high": "Quando {behaviour} sale, {outcome} del giorno dopo tende a {direction} nei tuoi dati — un andamento da osservare, non una causa.",
|
||||
"moderate": "Quando {behaviour} sale, {outcome} del giorno dopo sembra tendere a {direction}, per quanto emerge finora — un andamento da osservare, non una causa.",
|
||||
"faint": "Quando {behaviour} sale, al più si intravede un debole indizio che {outcome} del giorno dopo tenda a {direction} nei tuoi dati — troppo lieve per farci affidamento, mai una causa."
|
||||
"high": "Quando {behaviour} sale, {outcome} del giorno dopo tende a {direction} nei tuoi dati. È un andamento da osservare, non una causa.",
|
||||
"moderate": "Quando {behaviour} sale, {outcome} del giorno dopo sembra tendere a {direction}, per quanto emerge finora. È un andamento da osservare, non una causa.",
|
||||
"faint": "Quando {behaviour} sale, al più si intravede nei tuoi dati un debole indizio che {outcome} del giorno dopo tenda a {direction}. È troppo lieve per farci affidamento e mai una causa."
|
||||
},
|
||||
"lab": {
|
||||
"default": "Valori di {lab} più alti si accompagnano al fatto che {outcome} tende a {direction} negli stessi periodi dei tuoi dati — un'associazione da tenere d'occhio con il tuo medico, mai una causa.",
|
||||
"faint": "Valori di {lab} più alti lasciano al più intravedere che {outcome} tenda a {direction} negli stessi periodi dei tuoi dati — troppo lieve per farci affidamento, un'associazione da discutere con il tuo medico, mai una causa."
|
||||
"default": "Valori di {lab} più alti si accompagnano al fatto che {outcome} tende a {direction} negli stessi periodi dei tuoi dati, un'associazione da tenere d'occhio con il tuo medico, mai una causa.",
|
||||
"faint": "Valori di {lab} più alti lasciano al più intravedere che {outcome} tenda a {direction} negli stessi periodi dei tuoi dati. È troppo lieve per farci affidamento e mai una causa, ma da discutere con il tuo medico."
|
||||
},
|
||||
"hypothesis": {
|
||||
"bpCompliance": {
|
||||
"support": "Una maggiore aderenza ai farmaci si accompagna a valori sistolici più bassi — un andamento da osservare.",
|
||||
"surprising": "L'aderenza e la sistolica si muovono insieme nei tuoi dati — sorprendente; parlane con il tuo medico prima di modificare qualcosa.",
|
||||
"support": "Una maggiore aderenza ai farmaci si accompagna a valori sistolici più bassi, un andamento da osservare.",
|
||||
"surprising": "L'aderenza e la sistolica si muovono insieme nei tuoi dati, il che è sorprendente. Parlane con il tuo medico prima di modificare qualcosa.",
|
||||
"none": "L'aderenza e la sistolica non si muovono insieme in modo marcato in questo periodo."
|
||||
},
|
||||
"moodPulse": {
|
||||
"support": "I giorni di umore più basso si accompagnano a un polso a riposo più alto — un andamento da osservare.",
|
||||
"surprising": "I giorni di umore migliore si accompagnano a un polso a riposo più alto nei tuoi dati — sorprendente.",
|
||||
"support": "I giorni di umore più basso si accompagnano a un polso a riposo più alto, un andamento da osservare.",
|
||||
"surprising": "I giorni di umore migliore si accompagnano a un polso a riposo più alto nei tuoi dati, il che è sorprendente.",
|
||||
"none": "L'umore e il polso a riposo non si muovono insieme in modo marcato in questo periodo."
|
||||
},
|
||||
"weightWeekday": "Il peso del {weekday} è {delta} kg {direction} la tua media degli altri giorni — un andamento da osservare."
|
||||
"weightWeekday": "Il peso del {weekday} è {delta} kg {direction} la tua media degli altri giorni, un andamento da osservare."
|
||||
},
|
||||
"dailySameDay": {
|
||||
"high": "Più {behaviour} nello stesso giorno e in quello prima tende ad accompagnarsi a {direction} {outcome} nei tuoi dati: uno schema da osservare, non una causa.",
|
||||
@@ -2730,7 +2730,7 @@
|
||||
"referenceSleep": "Almeno {low} minuti per notte; il sonno più lungo non viene penalizzato",
|
||||
"referenceAdiposity": "Rapporto vita-altezza inferiore a {high}",
|
||||
"referenceHba1c": "HbA1c da {low} a {high}%",
|
||||
"referenceDetail": "{label} · {source} · {kind} · da {low} a {high}",
|
||||
"referenceDetail": "{label}: da {low} a {high} ({kind}, {source})",
|
||||
"openBound": "aperto",
|
||||
"laboratoryReferenceSource": "Intervalli di riferimento del laboratorio",
|
||||
"personalTargetSource": "Obiettivo personale",
|
||||
@@ -2824,7 +2824,7 @@
|
||||
"experimentCta": "Avvia esperimento di 7 giorni",
|
||||
"experimentTooltip": "In arrivo",
|
||||
"emptyTitle": "Servono più dati per mostrare questa correlazione",
|
||||
"sourceChip": "su {n} misurazioni appaiate · {window}",
|
||||
"sourceChip": "su {n} misurazioni appaiate ({window})",
|
||||
"sourceWindowLast30": "Ultimi 30 giorni",
|
||||
"confidenceHigh": "Confidenza alta",
|
||||
"confidenceModerate": "Confidenza media",
|
||||
@@ -3003,23 +3003,23 @@
|
||||
"cluster": {
|
||||
"cardio": {
|
||||
"label": "Cardiovascolare",
|
||||
"hint": "Pressione · polso · HRV · FC riposo e cammino"
|
||||
"hint": "Pressione, polso, HRV, FC a riposo e in cammino"
|
||||
},
|
||||
"body": {
|
||||
"label": "Composizione corporea",
|
||||
"hint": "Peso · grasso · muscoli · IMC"
|
||||
"hint": "Peso, grasso, muscoli e IMC"
|
||||
},
|
||||
"activity": {
|
||||
"label": "Attività",
|
||||
"hint": "Passi · energia · distanza · VO₂ max"
|
||||
"hint": "Passi, energia, distanza e VO₂ max"
|
||||
},
|
||||
"workouts": {
|
||||
"label": "Allenamenti",
|
||||
"hint": "Corse · uscite · sessioni"
|
||||
"hint": "Corse, uscite e sessioni"
|
||||
},
|
||||
"sleep": {
|
||||
"label": "Sonno",
|
||||
"hint": "Durata · fasi"
|
||||
"hint": "Durata e fasi"
|
||||
},
|
||||
"mood": {
|
||||
"label": "Umore",
|
||||
@@ -3031,15 +3031,15 @@
|
||||
},
|
||||
"medication": {
|
||||
"label": "Farmaci",
|
||||
"hint": "Aderenza · contesto GLP-1"
|
||||
"hint": "Aderenza e contesto GLP-1"
|
||||
},
|
||||
"mobility": {
|
||||
"label": "Mobilità e andatura",
|
||||
"hint": "Stabilità · asimmetria · andatura"
|
||||
"hint": "Stabilità, asimmetria e andatura"
|
||||
},
|
||||
"environment": {
|
||||
"label": "Ambiente",
|
||||
"hint": "Rumore · luce · temp. cutanea"
|
||||
"hint": "Rumore, luce del giorno e temperatura cutanea"
|
||||
}
|
||||
},
|
||||
"settingsClustersLabel": "Dati che il Coach vede",
|
||||
@@ -3227,9 +3227,9 @@
|
||||
"cap": "Molti passaggi, ora riassume",
|
||||
"noProgress": "Nessun dato nuovo, riassume"
|
||||
},
|
||||
"thoughtProcessOne": "Ragionamento · {count} passaggio",
|
||||
"thoughtProcessFew": "Ragionamento · {count} passaggi",
|
||||
"thoughtProcessOther": "Ragionamento · {count} passaggi",
|
||||
"thoughtProcessOne": "Ragionamento ({count} passaggio)",
|
||||
"thoughtProcessFew": "Ragionamento ({count} passaggi)",
|
||||
"thoughtProcessOther": "Ragionamento ({count} passaggi)",
|
||||
"awaitingAnswer": "Serve una tua risposta"
|
||||
},
|
||||
"memory": {
|
||||
@@ -4062,7 +4062,7 @@
|
||||
"distributionDaysUnit": "giorni",
|
||||
"weekdayTitle": "Media per giorno della settimana",
|
||||
"weekdayNoData": "Nessun dato",
|
||||
"weekdayBestWorst": "Giorno migliore: {best} · Giorno più difficile: {worst}",
|
||||
"weekdayBestWorst": "Giorno migliore: {best}, giorno più difficile: {worst}",
|
||||
"tagsTitle": "Tag e fattori scatenanti",
|
||||
"tagAvgMood": "Umore medio con questo tag",
|
||||
"correlationsTitle": "Umore e altre metriche",
|
||||
@@ -4078,7 +4078,7 @@
|
||||
"strengthModerate": "Moderata",
|
||||
"strengthWeak": "Debole",
|
||||
"strengthNone": "Nessuna",
|
||||
"source": "{n} giorni appaiati · r = {r}",
|
||||
"source": "{n} giorni appaiati, r = {r}",
|
||||
"emptyTitle": "Non ci sono ancora abbastanza dati appaiati",
|
||||
"emptyDescription": "Registra umore e questa metrica negli stessi giorni per vedere una correlazione.",
|
||||
"pendingDescription": "{n} di {needed} giorni appaiati. La correlazione compare quando i giorni bastano a distinguere un pattern dal caso.",
|
||||
@@ -4137,7 +4137,7 @@
|
||||
"crosstab": {
|
||||
"title": "Tag e le tue metriche di salute",
|
||||
"description": "Come una metrica di salute cambia nei giorni in cui hai aggiunto un tag rispetto ai giorni senza.",
|
||||
"pairLabel": "{tag} · {metric}",
|
||||
"pairLabel": "{metric} nei giorni con {tag}",
|
||||
"metricActiveEnergy": "Energia attiva",
|
||||
"metricSleepDuration": "Sonno",
|
||||
"metricNextDayRecovery": "Recupero il giorno dopo",
|
||||
@@ -4154,7 +4154,7 @@
|
||||
"factorCrosstab": {
|
||||
"title": "I tuoi fattori valutati e i tuoi parametri vitali",
|
||||
"description": "Come cambia un parametro vitale nei giorni in cui hai valutato basso un fattore rispetto ai giorni in cui lo hai valutato alto.",
|
||||
"pairLabel": "{factor} · {metric}",
|
||||
"pairLabel": "{metric} nei giorni con {factor}",
|
||||
"metricSleepDuration": "Sonno",
|
||||
"metricSteps": "Passi",
|
||||
"metricRestingHeartRate": "Frequenza cardiaca a riposo",
|
||||
@@ -4180,7 +4180,7 @@
|
||||
"moodDown": "Un {factor} più alto tende a coincidere con un umore peggiore il giorno dopo nei tuoi dati.",
|
||||
"outcomeUp": "Un umore migliore tende a coincidere con un {factor} più alto il giorno dopo nei tuoi dati.",
|
||||
"outcomeDown": "Un umore migliore tende a coincidere con un {factor} più basso il giorno dopo nei tuoi dati.",
|
||||
"stat": "{n} giorni appaiati · r = {r} · q = {q}",
|
||||
"stat": "{n} giorni appaiati, r = {r}, q = {q}",
|
||||
"statLabel": "Come è stato calcolato",
|
||||
"explainerLabel": "Come è stato calcolato"
|
||||
},
|
||||
@@ -4224,11 +4224,11 @@
|
||||
},
|
||||
"derived": {
|
||||
"coverage": {
|
||||
"summary": "{present} di {required} input · {percent}%",
|
||||
"summary": "{present} di {required} input ({percent}%)",
|
||||
"ratioLabel": "{present}/{required}",
|
||||
"historyDays": "Basato su {count} giorni di cronologia",
|
||||
"missing": "Registra questi per affinare il valore: {list}",
|
||||
"summaryLabelled": "{label} · {percent}%"
|
||||
"summaryLabelled": "{label} ({percent}%)"
|
||||
},
|
||||
"scoreRing": {
|
||||
"aria": "Punteggio {score} su 100, {band}",
|
||||
@@ -4246,7 +4246,7 @@
|
||||
"inputsLabel": "Input",
|
||||
"noInputs": "Nessun input supporta ancora questo valore.",
|
||||
"methodLabel": "Metodo",
|
||||
"window": "Dai tuoi ultimi {days} giorni · dati {source}",
|
||||
"window": "Dai tuoi ultimi {days} giorni di dati {source}",
|
||||
"asOf": "al {date}",
|
||||
"standardLink": "Standard: {name}"
|
||||
},
|
||||
@@ -4288,7 +4288,7 @@
|
||||
"anatomy": {
|
||||
"outOf": "/100",
|
||||
"contributorsLabel": "Fattori",
|
||||
"contributorValue": "{value} · {weight}% di peso",
|
||||
"contributorValue": "{value}, peso {weight}%",
|
||||
"contributorMissing": "nessun dato",
|
||||
"insufficient": "Dati ancora insufficienti per assegnare un punteggio. Continua a registrare e comparirà qui."
|
||||
},
|
||||
@@ -5543,12 +5543,12 @@
|
||||
"parsing": "Lettura dell'esportazione…",
|
||||
"upserting": "Importazione dei record…"
|
||||
},
|
||||
"skipUnsupported": "{count} campioni saltati — tipi di dati che HealthLog non importa.",
|
||||
"skipUnsupported": "{count} campioni saltati: tipi di dati che HealthLog non importa.",
|
||||
"skipRefused": "{count} campioni non sono stati scritti (illeggibili, fuori intervallo o salvataggio non riuscito).",
|
||||
"skipBreakdown": "Mostra dettaglio ({count} tipi)",
|
||||
"skipBreakdownMore": "+ {count} altri tipi",
|
||||
"cycleSummary": "{samples} campioni del ciclo uniti in {days} registri giornalieri.",
|
||||
"cycleModuleOff": "{count} campioni del ciclo saltati — il monitoraggio del ciclo è disattivato per questo account.",
|
||||
"cycleModuleOff": "{count} campioni del ciclo saltati perché il monitoraggio del ciclo è disattivato per questo account.",
|
||||
"cycleDaysFailed": "{count} giorni del ciclo non sono stati scritti: {reason}"
|
||||
},
|
||||
"json": {
|
||||
@@ -5633,8 +5633,8 @@
|
||||
"failed": "L'importazione è fallita. Non è stato scritto nulla.",
|
||||
"columnsHeading": "Cosa fa ogni colonna",
|
||||
"jsonOnly": "solo JSON",
|
||||
"previewLine": "Righe lette: {rows} · da importare: {queued} · rifiutate: {refused}",
|
||||
"submittedLine": "Righe lette: {rows} · in coda per l'importazione: {queued}",
|
||||
"previewLine": "{rows} righe lette, {queued} da importare, {refused} rifiutate",
|
||||
"submittedLine": "{rows} righe lette, {queued} in coda per l'importazione",
|
||||
"unmatched": "Nessun farmaco registrato corrisponde a: {names}",
|
||||
"ambiguous": "Corrisponde a più di un farmaco: {names}",
|
||||
"mirrored": "Copiato da un'altra app, quindi non si può aggiungere alcuna dose: {names}",
|
||||
@@ -5811,7 +5811,8 @@
|
||||
"add": "Aggiungi {label}",
|
||||
"remove": "Rimuovi periodo di posizione",
|
||||
"removeConfirmTitle": "Rimuovere questo viaggio?",
|
||||
"removeConfirmBody": "Le misurazioni di quel periodo restano nel tuo archivio; sparisce solo la voce del viaggio."
|
||||
"removeConfirmBody": "Le misurazioni di quel periodo restano nel tuo archivio; sparisce solo la voce del viaggio.",
|
||||
"range": "Dal {start} al {end}"
|
||||
},
|
||||
"backfill": {
|
||||
"title": "Recupera i giorni passati",
|
||||
@@ -6519,7 +6520,7 @@
|
||||
},
|
||||
"integrationFreshness": {
|
||||
"title": "Dati ricevuti",
|
||||
"summary": "{count} tipi di dati · più recente {relative}",
|
||||
"summary": "{count} tipi di dati, più recente {relative}",
|
||||
"quiet": "{count} in silenzio",
|
||||
"workouts": "Allenamenti"
|
||||
},
|
||||
@@ -7078,14 +7079,14 @@
|
||||
"title": "Avanzamento della sincronizzazione",
|
||||
"receivedLabel": "Record ricevuti",
|
||||
"oldestLabel": "Lettura più vecchia raggiunta",
|
||||
"flowing": "Nell'ultima ora sono arrivati dati — l'app per iPhone sta ancora inviando.",
|
||||
"waiting": "In attesa che l'app per iPhone invii altri dati. Il trasferimento continua quando l'app è aperta o quando iOS le concede tempo in background — una pausa durante il primo grande recupero è normale, non un errore."
|
||||
"flowing": "Nell'ultima ora sono arrivati dati. L'app per iPhone sta ancora inviando.",
|
||||
"waiting": "In attesa che l'app per iPhone invii altri dati. Il trasferimento continua quando l'app è aperta o quando iOS le concede tempo in background. Una pausa durante il primo grande recupero è normale, non un errore."
|
||||
},
|
||||
"delivery": {
|
||||
"title": "Consegna",
|
||||
"lastTriggerLabel": "L'ultima sincronizzazione è arrivata",
|
||||
"lastBackgroundLabel": "Ultima sincronizzazione in background",
|
||||
"backgroundNever": "Mai — finora ogni sincronizzazione è arrivata con l'app aperta",
|
||||
"backgroundNever": "Mai: finora ogni sincronizzazione è arrivata con l'app aperta",
|
||||
"noSyncYet": "Non è ancora arrivata alcuna sincronizzazione, quindi qui non c'è nulla da riferire.",
|
||||
"trigger": {
|
||||
"foreground": "con l'app aperta",
|
||||
@@ -8085,19 +8086,19 @@
|
||||
"description": "Assumi tutti i farmaci in orario per 1 giorno."
|
||||
},
|
||||
"compliance801": {
|
||||
"title": "Aderenza 80% · 1g",
|
||||
"title": "Aderenza all'80% per 1 giorno",
|
||||
"description": "Raggiungi almeno l’80% di aderenza su 30 giorni per 1 giorno."
|
||||
},
|
||||
"bmiGreen1": {
|
||||
"title": "IMC nel verde · 1g",
|
||||
"title": "IMC nel verde per 1 giorno",
|
||||
"description": "Mantieni l’IMC nell’intervallo normale per 1 giorno."
|
||||
},
|
||||
"bpGreen1": {
|
||||
"title": "Pressione nel verde · 1g",
|
||||
"title": "Pressione nel verde per 1 giorno",
|
||||
"description": "Mantieni la pressione nell’intervallo normale per 1 giorno."
|
||||
},
|
||||
"pulseGreen1": {
|
||||
"title": "Polso nel verde · 1g",
|
||||
"title": "Polso nel verde per 1 giorno",
|
||||
"description": "Mantieni il polso a riposo nell’intervallo normale per 1 giorno."
|
||||
},
|
||||
"onTimePerfect7": {
|
||||
@@ -8105,19 +8106,19 @@
|
||||
"description": "Assumi tutti i farmaci in orario per 7 giorni consecutivi."
|
||||
},
|
||||
"compliance807": {
|
||||
"title": "Aderenza 80% · 7g",
|
||||
"title": "Aderenza all'80% per 7 giorni",
|
||||
"description": "Raggiungi almeno l’80% di aderenza su 30 giorni per 7 giorni consecutivi."
|
||||
},
|
||||
"bmiGreen7": {
|
||||
"title": "IMC nel verde · 7g",
|
||||
"title": "IMC nel verde per 7 giorni",
|
||||
"description": "Mantieni l’IMC nell’intervallo normale per 7 giorni consecutivi."
|
||||
},
|
||||
"bpGreen7": {
|
||||
"title": "Pressione nel verde · 7g",
|
||||
"title": "Pressione nel verde per 7 giorni",
|
||||
"description": "Mantieni la pressione nell’intervallo normale per 7 giorni consecutivi."
|
||||
},
|
||||
"pulseGreen7": {
|
||||
"title": "Polso nel verde · 7g",
|
||||
"title": "Polso nel verde per 7 giorni",
|
||||
"description": "Mantieni il polso a riposo nell’intervallo normale per 7 giorni consecutivi."
|
||||
},
|
||||
"onTimePerfect30": {
|
||||
@@ -8125,19 +8126,19 @@
|
||||
"description": "Assumi tutti i farmaci in orario per 30 giorni consecutivi."
|
||||
},
|
||||
"compliance8030": {
|
||||
"title": "Aderenza 80% · 30g",
|
||||
"title": "Aderenza all'80% per 30 giorni",
|
||||
"description": "Raggiungi almeno l’80% di aderenza su 30 giorni per 30 giorni consecutivi."
|
||||
},
|
||||
"bmiGreen30": {
|
||||
"title": "IMC nel verde · 30g",
|
||||
"title": "IMC nel verde per 30 giorni",
|
||||
"description": "Mantieni l’IMC nell’intervallo normale per 30 giorni consecutivi."
|
||||
},
|
||||
"bpGreen30": {
|
||||
"title": "Pressione nel verde · 30g",
|
||||
"title": "Pressione nel verde per 30 giorni",
|
||||
"description": "Mantieni la pressione nell’intervallo normale per 30 giorni consecutivi."
|
||||
},
|
||||
"pulseGreen30": {
|
||||
"title": "Polso nel verde · 30g",
|
||||
"title": "Polso nel verde per 30 giorni",
|
||||
"description": "Mantieni il polso a riposo nell’intervallo normale per 30 giorni consecutivi."
|
||||
},
|
||||
"onTimePerfect180": {
|
||||
@@ -8145,19 +8146,19 @@
|
||||
"description": "Assumi tutti i farmaci in orario per 180 giorni consecutivi."
|
||||
},
|
||||
"compliance80180": {
|
||||
"title": "Aderenza 80% · 180g",
|
||||
"title": "Aderenza all'80% per 180 giorni",
|
||||
"description": "Raggiungi almeno l’80% di aderenza su 30 giorni per 180 giorni consecutivi."
|
||||
},
|
||||
"bmiGreen180": {
|
||||
"title": "IMC nel verde · 180g",
|
||||
"title": "IMC nel verde per 180 giorni",
|
||||
"description": "Mantieni l’IMC nell’intervallo normale per 180 giorni consecutivi."
|
||||
},
|
||||
"bpGreen180": {
|
||||
"title": "Pressione nel verde · 180g",
|
||||
"title": "Pressione nel verde per 180 giorni",
|
||||
"description": "Mantieni la pressione nell’intervallo normale per 180 giorni consecutivi."
|
||||
},
|
||||
"pulseGreen180": {
|
||||
"title": "Polso nel verde · 180g",
|
||||
"title": "Polso nel verde per 180 giorni",
|
||||
"description": "Mantieni il polso a riposo nell’intervallo normale per 180 giorni consecutivi."
|
||||
},
|
||||
"onTimePerfect360": {
|
||||
@@ -8165,19 +8166,19 @@
|
||||
"description": "Assumi tutti i farmaci in orario per 360 giorni consecutivi."
|
||||
},
|
||||
"compliance80360": {
|
||||
"title": "Aderenza 80% · 360g",
|
||||
"title": "Aderenza all'80% per 360 giorni",
|
||||
"description": "Raggiungi almeno l’80% di aderenza su 30 giorni per 360 giorni consecutivi."
|
||||
},
|
||||
"bmiGreen360": {
|
||||
"title": "IMC nel verde · 360g",
|
||||
"title": "IMC nel verde per 360 giorni",
|
||||
"description": "Mantieni l’IMC nell’intervallo normale per 360 giorni consecutivi."
|
||||
},
|
||||
"bpGreen360": {
|
||||
"title": "Pressione nel verde · 360g",
|
||||
"title": "Pressione nel verde per 360 giorni",
|
||||
"description": "Mantieni la pressione nell’intervallo normale per 360 giorni consecutivi."
|
||||
},
|
||||
"pulseGreen360": {
|
||||
"title": "Polso nel verde · 360g",
|
||||
"title": "Polso nel verde per 360 giorni",
|
||||
"description": "Mantieni il polso a riposo nell’intervallo normale per 360 giorni consecutivi."
|
||||
},
|
||||
"moodFirst": {
|
||||
@@ -8261,15 +8262,15 @@
|
||||
"description": "Hai cambiato la lingua dell’app almeno una volta."
|
||||
},
|
||||
"missFree7": {
|
||||
"title": "Nessuna dose persa · 7g",
|
||||
"title": "Nessuna dose persa in 7 giorni",
|
||||
"description": "7 giorni consecutivi senza una dose persa."
|
||||
},
|
||||
"missFree30": {
|
||||
"title": "Nessuna dose persa · 30g",
|
||||
"title": "Nessuna dose persa in 30 giorni",
|
||||
"description": "30 giorni consecutivi senza una dose persa."
|
||||
},
|
||||
"missFree90": {
|
||||
"title": "Nessuna dose persa · 90g",
|
||||
"title": "Nessuna dose persa in 90 giorni",
|
||||
"description": "90 giorni consecutivi senza una dose persa."
|
||||
},
|
||||
"measurementWeeks4": {
|
||||
@@ -8281,7 +8282,7 @@
|
||||
"description": "Tutti e quattro i campi dell’autodichiarazione compilati — il Coach conosce il tuo contesto."
|
||||
},
|
||||
"sleepLog7": {
|
||||
"title": "Diario del sonno · 7g",
|
||||
"title": "Diario del sonno per 7 giorni",
|
||||
"description": "Dati del sonno registrati per 7 giorni consecutivi."
|
||||
}
|
||||
},
|
||||
@@ -8791,7 +8792,7 @@
|
||||
},
|
||||
"crosstab": {
|
||||
"description": "Come si confronta ogni misurazione tra la fase luteale e quella follicolare, sui tuoi dati.",
|
||||
"pairLabel": "{metric} · luteale vs follicolare",
|
||||
"pairLabel": "{metric}: fase luteale vs follicolare",
|
||||
"detail": "Luteale {lutealAvg} {unit} ({lutealDays} giorni) vs follicolare {follicularAvg} {unit} ({follicularDays} giorni).",
|
||||
"metricRestingHeartRate": "Frequenza cardiaca a riposo",
|
||||
"metricHrv": "Variabilità della frequenza cardiaca",
|
||||
@@ -9011,7 +9012,7 @@
|
||||
"temperatureSection": "Temperatura e ovulazione",
|
||||
"intimacySection": "Intimità e contraccezione",
|
||||
"testsSection": "Test",
|
||||
"phaseDayHeader": "Giorno {day} · {phase}",
|
||||
"phaseDayHeader": "Giorno {day}, {phase}",
|
||||
"bbtHint": "Misurala appena sveglia, prima di alzarti.",
|
||||
"titleForDate": "Registrazione del {date}",
|
||||
"descriptionToday": "Oggi. Flusso, sintomi e note.",
|
||||
@@ -9188,10 +9189,10 @@
|
||||
"VISCERAL_FAT": "Grasso viscerale",
|
||||
"BODY_MASS_INDEX": "Indice di massa corporea (IMC)",
|
||||
"WAIST_CIRCUMFERENCE": "Circonferenza vita",
|
||||
"PHQ9_SCORE": "PHQ-9 · umore",
|
||||
"GAD7_SCORE": "GAD-7 · preoccupazione",
|
||||
"WHO5_SCORE": "WHO-5 · benessere",
|
||||
"SCI_SCORE": "SCI · sonno"
|
||||
"PHQ9_SCORE": "PHQ-9 (umore)",
|
||||
"GAD7_SCORE": "GAD-7 (preoccupazione)",
|
||||
"WHO5_SCORE": "WHO-5 (benessere)",
|
||||
"SCI_SCORE": "SCI (sonno)"
|
||||
},
|
||||
"typeGroups": {
|
||||
"vitals": "Parametri vitali",
|
||||
@@ -10288,10 +10289,10 @@
|
||||
"saved": "Salvato",
|
||||
"error": "Qualcosa è andato storto. Riprova.",
|
||||
"instrument": {
|
||||
"phq9": "PHQ-9 · umore",
|
||||
"gad7": "GAD-7 · preoccupazione",
|
||||
"who5": "WHO-5 · benessere",
|
||||
"sci": "SCI · sonno"
|
||||
"phq9": "PHQ-9 (umore)",
|
||||
"gad7": "GAD-7 (preoccupazione)",
|
||||
"who5": "WHO-5 (benessere)",
|
||||
"sci": "SCI (sonno)"
|
||||
},
|
||||
"instrumentSub": {
|
||||
"phq9": "Screening della depressione, 9 domande",
|
||||
@@ -10759,7 +10760,7 @@
|
||||
},
|
||||
"documents": {
|
||||
"title": "Documenti",
|
||||
"subtitle": "Ogni lettera, referto e scansione in un unico posto ricercabile — cifrato a riposo.",
|
||||
"subtitle": "Ogni lettera, referto e scansione in un unico posto ricercabile, cifrato a riposo.",
|
||||
"pageUpload": "Carica",
|
||||
"ownerOnlyUpload": "Solo il titolare della cartella può aggiungere documenti.",
|
||||
"kind": {
|
||||
@@ -10801,15 +10802,15 @@
|
||||
},
|
||||
"error": {
|
||||
"fileTooLarge": "Questo file supera il limite di {maxSize}.",
|
||||
"quotaExceeded": "Lo spazio è pieno — {used} di {quota} usati.",
|
||||
"quotaExceeded": "Lo spazio è pieno: {used} di {quota} usati.",
|
||||
"unsupportedType": "Questo tipo di file non è supportato.",
|
||||
"purged": "Questo documento è stato rimosso definitivamente e non può essere ripristinato.",
|
||||
"duplicateExists": "Un documento identico è già archiviato.",
|
||||
"rateLimited": "Troppi caricamenti — riprova tra qualche minuto.",
|
||||
"rateLimited": "Troppi caricamenti. Riprova tra qualche minuto.",
|
||||
"generic": "Caricamento non riuscito. Riprova."
|
||||
},
|
||||
"toast": {
|
||||
"duplicate": "Già archiviato — il documento esistente viene evidenziato.",
|
||||
"duplicate": "Già archiviato. Il documento esistente è evidenziato.",
|
||||
"deleted": "Documento eliminato",
|
||||
"restoreFailed": "Impossibile ripristinare il documento."
|
||||
},
|
||||
@@ -10832,7 +10833,7 @@
|
||||
},
|
||||
"empty": {
|
||||
"title": "Il tuo archivio documenti è vuoto",
|
||||
"description": "Conserva lettere mediche, referti di laboratorio, imaging, prescrizioni e certificati vaccinali — cifrati e ricercabili per tipo, patologia e anno.",
|
||||
"description": "Conserva lettere mediche, referti di laboratorio, imaging, prescrizioni e certificati vaccinali. Sono cifrati e ricercabili per tipo, patologia e anno.",
|
||||
"action": "Carica un primo documento",
|
||||
"noMatchesTitle": "Nessun documento corrispondente",
|
||||
"noMatchesDescription": "Nulla corrisponde alla ricerca e ai filtri attuali."
|
||||
@@ -10872,9 +10873,9 @@
|
||||
"linkCondition": "Collega",
|
||||
"noConditions": "Non collegato a una patologia",
|
||||
"previewUnavailable": "Nessuna anteprima integrata per questo tipo di file",
|
||||
"uploadedMeta": "Aggiunto il {date} · {size}",
|
||||
"uploadedMeta": "Aggiunto il {date}, {size}",
|
||||
"importedFrom": "Importato da {system}",
|
||||
"importedFromWithId": "Importato da {system} · ID {id}",
|
||||
"importedFromWithId": "Importato da {system}, ID {id}",
|
||||
"sourceOther": "un altro sistema",
|
||||
"share": "Condividi",
|
||||
"labValuesLink": "Vedi {count} valori di laboratorio",
|
||||
@@ -10974,7 +10975,7 @@
|
||||
"CONDITION": "Condizione",
|
||||
"MEDICATION_STATEMENT": "Farmaco"
|
||||
},
|
||||
"statedRange": "intervallo indicato {range}",
|
||||
"statedRange": "Intervallo indicato {range}",
|
||||
"needsCheck": "Controlla questo valore rispetto al documento, poi salvalo.",
|
||||
"verify": "Controlla",
|
||||
"verifySave": "Salva valore",
|
||||
@@ -11244,14 +11245,14 @@
|
||||
}
|
||||
},
|
||||
"hydration": {
|
||||
"referenceMeta": "Apporto di riferimento {value} {unit}/giorno · EFSA"
|
||||
"referenceMeta": "Apporto di riferimento {value} {unit}/giorno (EFSA)"
|
||||
},
|
||||
"caffeine": {
|
||||
"ceilingMeta": "Limite di sicurezza {value} {unit}/giorno · EFSA"
|
||||
"ceilingMeta": "Limite di sicurezza {value} {unit}/giorno (EFSA)"
|
||||
},
|
||||
"micronutrients": {
|
||||
"title": "Vitamine e minerali",
|
||||
"rowMeta": "{days} di {window} giorni · rif. {value} {unit} (EFSA)",
|
||||
"rowMeta": "{days} di {window} giorni, rif. {value} {unit} (EFSA)",
|
||||
"rowMetaNoRef": "{days} di {window} giorni",
|
||||
"footer": "{tracked} di {total} micronutrienti monitorati hanno dati in questo periodo.",
|
||||
"emptyTitle": "Nessun dato sui micronutrienti ancora sincronizzato",
|
||||
@@ -11266,7 +11267,7 @@
|
||||
},
|
||||
"push": {
|
||||
"title": "Il tuo riepilogo mattutino",
|
||||
"bodyProvisional": "{line} · Il sonno della scorsa notte non è ancora disponibile."
|
||||
"bodyProvisional": "{line}\nIl sonno della scorsa notte non è ancora disponibile."
|
||||
},
|
||||
"item": {
|
||||
"doseWindow": {
|
||||
@@ -11654,7 +11655,7 @@
|
||||
"managed": {
|
||||
"title": "Profili di cui ti occupi",
|
||||
"description": "Cartelle sanitarie senza credenziali proprie.",
|
||||
"explainer": "Un profilo gestito è una cartella sanitaria per qualcuno che non accede da sé — un bambino, o una persona di cui ti prendi cura. Non ha credenziali né indirizzo e-mail, e tu ne diventi la prima persona responsabile. Più avanti puoi aggiungerne altre, e ognuna può entrare nella cartella per tenerla aggiornata.",
|
||||
"explainer": "Un profilo gestito è una cartella sanitaria per qualcuno che non accede da sé, come un bambino o una persona di cui ti prendi cura. Non ha credenziali né indirizzo e-mail, e tu ne diventi la prima persona responsabile. Più avanti puoi aggiungerne altre, e ognuna può entrare nella cartella per tenerla aggiornata.",
|
||||
"nameLabel": "Nome",
|
||||
"namePlaceholder": "Il nome con cui riconoscerai questa cartella",
|
||||
"nameHint": "Fino a 80 caratteri. Compare ovunque appaia questa cartella.",
|
||||
@@ -11676,7 +11677,7 @@
|
||||
"creating": "Creazione in corso…",
|
||||
"created": "{name} è pronto. Puoi entrare in quella cartella dal menu dell'account.",
|
||||
"errorStepUp": "Conferma il tuo secondo fattore e riprova.",
|
||||
"errorOffline": "Non è arrivato al server. Non è cambiato nulla — controlla la connessione e riprova.",
|
||||
"errorOffline": "Non è arrivato al server. Non è cambiato nulla. Controlla la connessione e riprova.",
|
||||
"errorInvalid": "Il server ha rifiutato questi dati. Controlla nome, data e fuso orario.",
|
||||
"errorFailed": "Non è stato possibile creare il profilo.",
|
||||
"edit": "Modifica",
|
||||
@@ -11687,7 +11688,7 @@
|
||||
"editErrorFailed": "Non è stato possibile salvare le modifiche.",
|
||||
"delete": "Elimina profilo",
|
||||
"deleteTitle": "Eliminare {name}?",
|
||||
"deleteBody": "Tutto ciò che è stato registrato per {name} sparisce insieme al profilo — misurazioni, farmaci, documenti e note. Non si può annullare.",
|
||||
"deleteBody": "Tutto ciò che è stato registrato per {name} sparisce insieme al profilo: misurazioni, farmaci, documenti e note. Non si può annullare.",
|
||||
"deleteGuardiansOne": "{count} persona si occupa oggi di questa cartella e la perderà.",
|
||||
"deleteGuardiansFew": "{count} persone si occupano oggi di questa cartella e la perderanno.",
|
||||
"deleteGuardiansOther": "{count} persone si occupano oggi di questa cartella e la perderanno.",
|
||||
@@ -11973,7 +11974,7 @@
|
||||
"both": "Entrambi i lati",
|
||||
"none": "Non indicato"
|
||||
},
|
||||
"bodySiteWithSide": "{site} · {side}",
|
||||
"bodySiteWithSide": "{site} ({side})",
|
||||
"sectionTitle": "Appuntamenti",
|
||||
"sectionDescription": "Visite mediche e appuntamenti fissati in un unico posto.",
|
||||
"add": "Appuntamento",
|
||||
@@ -12227,7 +12228,6 @@
|
||||
"loadFailed": "Impossibile caricare questo giorno.",
|
||||
"dayOf": "Giorno {n} di {m}",
|
||||
"dayN": "Giorno {n}",
|
||||
"since": "dal {date}",
|
||||
"usualRange": "Di solito da {lo} a {hi}",
|
||||
"groups": {
|
||||
"running": "In corso quel giorno",
|
||||
@@ -12254,11 +12254,11 @@
|
||||
"description": "Tutto ciò che le tue voci contengono per questo giorno.",
|
||||
"openDocument": "Apri documento",
|
||||
"previousReading": "Prima, {date}",
|
||||
"rugLegend": "Punti sotto l’asse: giorni con voci · anello: giorno rilevante",
|
||||
"rugLegend": "I punti sotto l’asse indicano i giorni con voci, un anello un giorno rilevante.",
|
||||
"sheetExpand": "Espandi a tutta altezza",
|
||||
"sheetShrink": "Riduci",
|
||||
"usualLabel": "I tuoi 30 giorni precedenti",
|
||||
"valuesLegend": "Punto: questo giorno · barra: i tuoi 30 giorni precedenti",
|
||||
"valuesLegend": "Punto per questo giorno, barra per i 30 giorni precedenti",
|
||||
"valuesAllOne": "Tutti i valori",
|
||||
"valuesAllFew": "Tutti i {count} valori",
|
||||
"valuesAllOther": "Tutti i {count} valori",
|
||||
@@ -12284,7 +12284,9 @@
|
||||
"note": "Raccolto dalle tue voci, senza valutazioni. Ogni data apre l’intera giornata.",
|
||||
"report": "Referto medico dal {date} a oggi"
|
||||
},
|
||||
"travel": "In viaggio"
|
||||
"travel": "In viaggio",
|
||||
"dayNSince": "Giorno {n}, dal {date}",
|
||||
"sinceDate": "Dal {date}"
|
||||
},
|
||||
"timeline": {
|
||||
"title": "Cronologia",
|
||||
@@ -12358,9 +12360,9 @@
|
||||
"vaccinationsOne": "{count} vaccinazione",
|
||||
"vaccinationsFew": "{count} vaccinazioni",
|
||||
"vaccinationsOther": "{count} vaccinazioni",
|
||||
"visitsOne": "{count} visita · con intervento: {procedures}",
|
||||
"visitsFew": "{count} visite · con intervento: {procedures}",
|
||||
"visitsOther": "{count} visite · con intervento: {procedures}",
|
||||
"visitsOne": "{count} visita, {procedures} con intervento",
|
||||
"visitsFew": "{count} visite, {procedures} con intervento",
|
||||
"visitsOther": "{count} visite, {procedures} con intervento",
|
||||
"visitsPlannedOne": "{count} visita, solo pianificata",
|
||||
"visitsPlannedFew": "{count} visite, solo pianificate",
|
||||
"visitsPlannedOther": "{count} visite, solo pianificate",
|
||||
@@ -12463,8 +12465,8 @@
|
||||
"months": "Mesi",
|
||||
"years": "Anni",
|
||||
"groupingLabel": "Raggruppamento",
|
||||
"gap": "Da {from} a {to} · nessuna voce",
|
||||
"gapSingle": "{period} · nessuna voce",
|
||||
"gap": "Da {from} a {to} senza voci",
|
||||
"gapSingle": "{period} senza voci",
|
||||
"ended": "Fine: {label}",
|
||||
"afterDaysOne": "dopo 1 giorno",
|
||||
"afterDaysFew": "dopo {count} giorni",
|
||||
|
||||
+114
-112
@@ -242,7 +242,7 @@
|
||||
"colExpected": "예정",
|
||||
"colComplianceRate": "순응률",
|
||||
"moodTitle": "기분 추이",
|
||||
"moodSummary": "평균: {avg} / 5.0 · 기록: {count}건 · 범위: {min}–{max}",
|
||||
"moodSummary": "평균 {avg} / 5.0, 기록 {count}건, 범위 {min}–{max}",
|
||||
"colMood": "기분",
|
||||
"colCount": "횟수",
|
||||
"colShare": "비율",
|
||||
@@ -579,8 +579,8 @@
|
||||
"sleepShort": "수면",
|
||||
"stepsShort": "걸음 수",
|
||||
"vo2MaxShort": "VO₂ max",
|
||||
"bpInTargetWindow90": "목표 내 혈압 · 90일",
|
||||
"bpInTargetWindowDynamic": "목표 내 혈압 · {days}일",
|
||||
"bpInTargetWindow90": "목표 내 혈압 (90일)",
|
||||
"bpInTargetWindowDynamic": "목표 내 혈압 ({days}일)",
|
||||
"bpInTargetCollecting": "데이터 모으는 중",
|
||||
"medications": "복약",
|
||||
"quickAddMeasurement": "측정 기록",
|
||||
@@ -1336,7 +1336,7 @@
|
||||
"complianceInfoLabel": "복약 순응도란?",
|
||||
"lastIntake": "마지막 복용:",
|
||||
"nextIntake": "다음 복용:",
|
||||
"nextIntakeOverdue": "시간 지남 · {time} — 지금도 복용할 수 있어요",
|
||||
"nextIntakeOverdue": "{time}부터 지남, 지금도 복용할 수 있어요",
|
||||
"dayStreak": "일 연속 기록",
|
||||
"dayStreakOne": "일 연속 기록",
|
||||
"cycleDueToday": "오늘 예정",
|
||||
@@ -1737,7 +1737,7 @@
|
||||
"empty": "아직 증량 단계가 기록되지 않았어요. 날짜가 있는 용량 변경을 추가하면 계획을 그려 줘요.",
|
||||
"youAreHere": "현재 위치",
|
||||
"doseStep": "{dose} {unit}",
|
||||
"plannedFor": "예정 · {date}"
|
||||
"plannedFor": "{date} 예정"
|
||||
},
|
||||
"injectionSiteBodyOutlineAriaLabel": "신체 윤곽",
|
||||
"injectionSitePickerAriaLabel": "주사 부위 선택기",
|
||||
@@ -1788,7 +1788,7 @@
|
||||
"intakeHistoryStatusSkipped": "건너뜀",
|
||||
"intakeHistorySortByTaken": "복용 시각순 정렬",
|
||||
"intakeHistorySortByScheduled": "예정 시각순 정렬",
|
||||
"intakeHistoryPageInfo": "{page}/{total}페이지 · {count}개 기록",
|
||||
"intakeHistoryPageInfo": "{page}/{total}페이지, 기록 {count}개",
|
||||
"intakeHistoryPrev": "이전",
|
||||
"intakeHistoryNext": "다음",
|
||||
"glp1": {
|
||||
@@ -1888,7 +1888,7 @@
|
||||
"markAsTaken": "복용함으로 표시",
|
||||
"markAsSkipped": "건너뜀으로 표시",
|
||||
"adHocTag": "일정 외",
|
||||
"takenDetail": "예정 {planned} · 복용 {taken}",
|
||||
"takenDetail": "예정 {planned}, 복용 {taken}",
|
||||
"doseTaken": "용량: {dose}",
|
||||
"status": {
|
||||
"taken_on_time": "정시",
|
||||
@@ -2594,26 +2594,26 @@
|
||||
"ENV_POLLEN_MAX": "꽃가루"
|
||||
},
|
||||
"daily": {
|
||||
"high": "{behaviour} 수치가 높은 날에는 다음 날 {outcome} 수치가 {direction} 경향이 있어요 — 원인이 아니라 지켜볼 만한 패턴이에요.",
|
||||
"moderate": "지금까지의 근거로는 {behaviour} 수치가 높은 날에 다음 날 {outcome} 수치가 {direction} 것처럼 보여요 — 원인이 아니라 지켜볼 만한 패턴이에요.",
|
||||
"faint": "{behaviour} 수치가 높은 날에 다음 날 {outcome} 수치가 {direction} 아주 희미한 기미만 보여요 — 기대기엔 너무 작고, 원인은 더더욱 아니에요."
|
||||
"high": "{behaviour} 수치가 높은 날에는 다음 날 {outcome} 수치가 {direction} 경향이 있어요. 원인이 아니라 지켜볼 만한 패턴이에요.",
|
||||
"moderate": "지금까지의 근거로는 {behaviour} 수치가 높은 날에 다음 날 {outcome} 수치가 {direction} 것처럼 보여요. 원인이 아니라 지켜볼 만한 패턴이에요.",
|
||||
"faint": "{behaviour} 수치가 높은 날에 다음 날 {outcome} 수치가 {direction} 아주 희미한 기미만 보여요. 기대기엔 너무 작고, 원인은 더더욱 아니에요."
|
||||
},
|
||||
"lab": {
|
||||
"default": "{lab} 측정값이 높은 시기에는 같은 기간의 {outcome} 수치도 {direction} 편이에요 — 원인이 아니라 임상의와 함께 지켜볼 만한 연관이에요.",
|
||||
"faint": "{lab} 측정값이 높은 시기에 같은 기간의 {outcome} 수치가 {direction} 아주 희미한 기미만 보여요 — 기대기엔 너무 작고, 원인은 아니지만 임상의에게 이야기해 볼 만한 연관이에요."
|
||||
"default": "{lab} 측정값이 높은 시기에는 같은 기간의 {outcome} 수치도 {direction} 편이에요. 원인이 아니라 임상의와 함께 지켜볼 만한 연관이에요.",
|
||||
"faint": "{lab} 측정값이 높은 시기에 같은 기간의 {outcome} 수치가 {direction} 아주 희미한 기미만 보여요. 기대기엔 너무 작고 원인도 아니지만, 임상의에게 이야기해 볼 만해요."
|
||||
},
|
||||
"hypothesis": {
|
||||
"bpCompliance": {
|
||||
"support": "복약 순응도가 높은 날에 수축기 측정값이 낮은 편이에요 — 지켜볼 만한 패턴이에요.",
|
||||
"surprising": "기록에서는 순응도와 수축기 혈압이 같은 방향으로 움직여요 — 뜻밖이에요. 무언가 조정하기 전에 의사와 상의해 주세요.",
|
||||
"support": "복약 순응도가 높은 날에 수축기 측정값이 낮은 편이에요. 지켜볼 만한 패턴이에요.",
|
||||
"surprising": "기록에서는 순응도와 수축기 혈압이 같은 방향으로 움직여요. 뜻밖이에요. 무언가 조정하기 전에 의사와 상의해 주세요.",
|
||||
"none": "이 기간에는 순응도와 수축기 혈압이 뚜렷하게 함께 움직이지 않아요."
|
||||
},
|
||||
"moodPulse": {
|
||||
"support": "기분이 낮은 날에 안정 시 맥박이 높은 편이에요 — 지켜볼 만한 패턴이에요.",
|
||||
"surprising": "기록에서는 기분이 좋은 날에 안정 시 맥박도 높은 편이에요 — 뜻밖이에요.",
|
||||
"support": "기분이 낮은 날에 안정 시 맥박이 높은 편이에요. 지켜볼 만한 패턴이에요.",
|
||||
"surprising": "기록에서는 기분이 좋은 날에 안정 시 맥박도 높은 편이에요. 뜻밖이에요.",
|
||||
"none": "이 기간에는 기분과 안정 시 맥박이 뚜렷하게 함께 움직이지 않아요."
|
||||
},
|
||||
"weightWeekday": "{weekday} 체중이 다른 요일 평균보다 {delta}kg {direction} 편이에요 — 지켜볼 만한 패턴이에요."
|
||||
"weightWeekday": "{weekday} 체중이 다른 요일 평균보다 {delta}kg {direction} 편이에요. 지켜볼 만한 패턴이에요."
|
||||
},
|
||||
"dailySameDay": {
|
||||
"high": "당일과 전날의 {behaviour}이(가) 높을수록 내 데이터에서는 {outcome}이(가) {direction} 경향이 있습니다. 지켜볼 만한 패턴이지 원인은 아닙니다.",
|
||||
@@ -2730,7 +2730,7 @@
|
||||
"referenceSleep": "하룻밤 최소 {low}분, 더 자는 건 감점하지 않아요",
|
||||
"referenceAdiposity": "허리-키 비율 {high} 미만",
|
||||
"referenceHba1c": "HbA1c {low}~{high}%",
|
||||
"referenceDetail": "{label} · {source} · {kind} · {low}~{high}",
|
||||
"referenceDetail": "{label}: {low}~{high} ({kind}, {source})",
|
||||
"openBound": "제한 없음",
|
||||
"laboratoryReferenceSource": "검사 기관 참고 범위",
|
||||
"personalTargetSource": "개인 목표",
|
||||
@@ -2824,7 +2824,7 @@
|
||||
"experimentCta": "7일 실험 해보기",
|
||||
"experimentTooltip": "곧 제공돼요",
|
||||
"emptyTitle": "이 관계를 보려면 데이터가 더 필요해요",
|
||||
"sourceChip": "짝지은 측정값 {n}개 기준 · {window}",
|
||||
"sourceChip": "짝지은 측정값 {n}개 기준 ({window})",
|
||||
"sourceWindowLast30": "최근 30일",
|
||||
"confidenceHigh": "신뢰도 높음",
|
||||
"confidenceModerate": "신뢰도 보통",
|
||||
@@ -3003,23 +3003,23 @@
|
||||
"cluster": {
|
||||
"cardio": {
|
||||
"label": "심혈관",
|
||||
"hint": "혈압 · 맥박 · 심박변이도 · 안정 시와 보행 심박수"
|
||||
"hint": "혈압, 맥박, 심박변이도, 안정 시와 보행 심박수"
|
||||
},
|
||||
"body": {
|
||||
"label": "체성분",
|
||||
"hint": "체중 · 체지방 · 근육 · BMI"
|
||||
"hint": "체중, 체지방, 근육, BMI"
|
||||
},
|
||||
"activity": {
|
||||
"label": "활동",
|
||||
"hint": "걸음 수 · 에너지 · 거리 · 최대산소섭취량"
|
||||
"hint": "걸음 수, 에너지, 거리, 최대산소섭취량"
|
||||
},
|
||||
"workouts": {
|
||||
"label": "운동",
|
||||
"hint": "러닝 · 라이딩 · 세션"
|
||||
"hint": "러닝, 라이딩, 세션"
|
||||
},
|
||||
"sleep": {
|
||||
"label": "수면",
|
||||
"hint": "수면 시간 · 단계"
|
||||
"hint": "수면 시간과 단계"
|
||||
},
|
||||
"mood": {
|
||||
"label": "기분",
|
||||
@@ -3027,19 +3027,19 @@
|
||||
},
|
||||
"glucose": {
|
||||
"label": "혈당",
|
||||
"hint": "공복 · 식후 측정값"
|
||||
"hint": "공복 및 식후 측정값"
|
||||
},
|
||||
"medication": {
|
||||
"label": "복약",
|
||||
"hint": "복약 순응도 · GLP-1 맥락"
|
||||
"hint": "복약 순응도와 GLP-1 맥락"
|
||||
},
|
||||
"mobility": {
|
||||
"label": "이동성과 보행",
|
||||
"hint": "안정성 · 비대칭 · 보행"
|
||||
"hint": "안정성, 비대칭, 보행"
|
||||
},
|
||||
"environment": {
|
||||
"label": "환경",
|
||||
"hint": "소음 · 햇빛 · 피부 온도"
|
||||
"hint": "소음, 햇빛, 피부 온도"
|
||||
}
|
||||
},
|
||||
"settingsClustersLabel": "코치가 보는 데이터",
|
||||
@@ -3227,9 +3227,9 @@
|
||||
"cap": "단계가 많아 이제 정리하는 중",
|
||||
"noProgress": "새 데이터가 없어 정리하는 중"
|
||||
},
|
||||
"thoughtProcessOne": "사고 과정 · {count}단계",
|
||||
"thoughtProcessFew": "사고 과정 · {count}단계",
|
||||
"thoughtProcessOther": "사고 과정 · {count}단계",
|
||||
"thoughtProcessOne": "사고 과정 ({count}단계)",
|
||||
"thoughtProcessFew": "사고 과정 ({count}단계)",
|
||||
"thoughtProcessOther": "사고 과정 ({count}단계)",
|
||||
"awaitingAnswer": "답변이 필요해요"
|
||||
},
|
||||
"memory": {
|
||||
@@ -4062,7 +4062,7 @@
|
||||
"distributionDaysUnit": "일",
|
||||
"weekdayTitle": "요일별 평균",
|
||||
"weekdayNoData": "데이터 없음",
|
||||
"weekdayBestWorst": "가장 좋은 요일: {best} · 가장 힘든 요일: {worst}",
|
||||
"weekdayBestWorst": "가장 좋은 요일: {best}, 가장 힘든 요일: {worst}",
|
||||
"tagsTitle": "태그와 유발 요인",
|
||||
"tagAvgMood": "태그가 있는 날의 평균 기분",
|
||||
"correlationsTitle": "기분과 다른 지표",
|
||||
@@ -4078,7 +4078,7 @@
|
||||
"strengthModerate": "보통",
|
||||
"strengthWeak": "약함",
|
||||
"strengthNone": "없음",
|
||||
"source": "짝지은 {n}일 · r = {r}",
|
||||
"source": "짝지은 {n}일, r = {r}",
|
||||
"sourceLabel": "계산 방법",
|
||||
"emptyTitle": "아직 짝지을 데이터가 부족해요",
|
||||
"emptyDescription": "같은 날에 기분과 이 지표를 함께 기록하면 상관관계를 볼 수 있어요.",
|
||||
@@ -4137,7 +4137,7 @@
|
||||
"crosstab": {
|
||||
"title": "태그와 건강 지표",
|
||||
"description": "각 활동을 태그한 날과 그렇지 않은 날에 건강 지표가 어떻게 다른지 보여줘요.",
|
||||
"pairLabel": "{tag} · {metric}",
|
||||
"pairLabel": "{tag} 있는 날의 {metric}",
|
||||
"metricActiveEnergy": "활동 에너지",
|
||||
"metricSleepDuration": "수면",
|
||||
"metricNextDayRecovery": "다음 날 회복도",
|
||||
@@ -4154,7 +4154,7 @@
|
||||
"factorCrosstab": {
|
||||
"title": "직접 평가한 요인과 생체 지표",
|
||||
"description": "각 요인을 낮게 평가한 날과 높게 평가한 날에 생체 지표가 어떻게 다른지 보여줘요.",
|
||||
"pairLabel": "{factor} · {metric}",
|
||||
"pairLabel": "{factor} 있는 날의 {metric}",
|
||||
"metricSleepDuration": "수면",
|
||||
"metricSteps": "걸음 수",
|
||||
"metricRestingHeartRate": "안정 시 심박수",
|
||||
@@ -4180,7 +4180,7 @@
|
||||
"moodDown": "{factor} 값이 높으면 다음 날 기분은 낮은 편이에요.",
|
||||
"outcomeUp": "기분이 좋으면 다음 날 {factor} 값도 높은 편이에요.",
|
||||
"outcomeDown": "기분이 좋으면 다음 날 {factor} 값은 낮은 편이에요.",
|
||||
"stat": "짝지은 {n}일 · r = {r} · q = {q}",
|
||||
"stat": "짝지은 {n}일, r = {r}, q = {q}",
|
||||
"statLabel": "계산 방법",
|
||||
"explainerLabel": "계산 방법"
|
||||
},
|
||||
@@ -4224,11 +4224,11 @@
|
||||
},
|
||||
"derived": {
|
||||
"coverage": {
|
||||
"summary": "입력 {required}개 중 {present}개 · {percent}%",
|
||||
"summary": "입력 {required}개 중 {present}개 ({percent}%)",
|
||||
"ratioLabel": "{present}/{required}",
|
||||
"historyDays": "최근 기록 {count}일 기준",
|
||||
"missing": "더 정확해지려면 기록해 보세요: {list}",
|
||||
"summaryLabelled": "{label} · {percent}%"
|
||||
"summaryLabelled": "{label} ({percent}%)"
|
||||
},
|
||||
"scoreRing": {
|
||||
"aria": "점수 100점 만점에 {score}점, {band}",
|
||||
@@ -4246,7 +4246,7 @@
|
||||
"inputsLabel": "입력값",
|
||||
"noInputs": "아직 이 값을 뒷받침한 입력값이 없어요.",
|
||||
"methodLabel": "방법",
|
||||
"window": "최근 {days}일 기준 · {source} 데이터",
|
||||
"window": "최근 {days}일간의 {source} 데이터 기준",
|
||||
"asOf": "{date} 기준",
|
||||
"standardLink": "기준: {name}"
|
||||
},
|
||||
@@ -4288,7 +4288,7 @@
|
||||
"anatomy": {
|
||||
"outOf": "/100",
|
||||
"contributorsLabel": "구성 요소",
|
||||
"contributorValue": "{value} · 가중치 {weight}%",
|
||||
"contributorValue": "{value}, 가중치 {weight}%",
|
||||
"contributorMissing": "데이터 없음",
|
||||
"insufficient": "아직 점수를 낼 데이터가 부족해요. 계속 기록하면 여기에 표시돼요."
|
||||
},
|
||||
@@ -5452,7 +5452,7 @@
|
||||
"title": "동기화된 영양 섭취",
|
||||
"description": "최근 {days}일간 Apple Health에서 동기화한 하루 합계예요.",
|
||||
"empty": "아직 동기화된 영양 데이터가 없어요.",
|
||||
"latest": "{date} · {amount} {unit}",
|
||||
"latest": "{date}에 {amount} {unit}",
|
||||
"daysWithData": "{days}일 중 {count}일",
|
||||
"moduleHint": "동기화는 영양 섭취 모듈에서 조절해요.",
|
||||
"moduleHintLink": "모듈 관리",
|
||||
@@ -5521,7 +5521,7 @@
|
||||
"dropHint": "또는 눌러서 파일 선택",
|
||||
"fileInputLabel": "Apple Health export.zip 파일 선택",
|
||||
"choose": "파일 선택",
|
||||
"idempotencyNote": "같은 보관 파일을 다시 올리면 병합돼요 — 중복이 생기지 않아요. 큰 파일은 백그라운드에서 처리해요.",
|
||||
"idempotencyNote": "같은 보관 파일을 다시 올리면 병합돼요. 중복은 생기지 않아요. 큰 파일은 백그라운드에서 처리해요.",
|
||||
"uploading": "올리는 중…",
|
||||
"uploadFailed": "올리지 못했어요. 다시 시도해 주세요.",
|
||||
"rateLimited": "업로드가 너무 잦아요. 잠시 뒤에 다시 시도해 주세요.",
|
||||
@@ -5530,7 +5530,7 @@
|
||||
"failureInterrupted": "불러오기가 끝나기 전에 중단됐어요. 보통 서버 재시작이나 메모리 부족 때문이에요. 데이터는 안전하니 내보내기 파일을 다시 올려 주세요.",
|
||||
"failureInsufficientMemory": "이 크기의 보관 파일을 처리하기엔 서버 메모리 한도가 낮아요. 서버 운영자에게 Node.js 힙 한도(NODE_OPTIONS=--max-old-space-size)를 올려 달라고 한 뒤 내보내기 파일을 다시 올려 주세요.",
|
||||
"rowsImported": "지금까지 {count}개 행을 불러왔어요",
|
||||
"doneSummary": "완료 — {read}개 중 {imported}개 기록을 불러왔고, 진료 기록 {skipped}개는 건너뛰었어요.",
|
||||
"doneSummary": "완료: {read}개 중 {imported}개 기록을 불러왔고, 진료 기록 {skipped}개는 건너뛰었어요.",
|
||||
"doneNothing": "그 보관 파일에서 불러온 게 없어요: {read}개 중 0개만 들어왔어요.",
|
||||
"writtenByHealthLogOne": "HealthLog가 직접 건강 앱에 기록한 {count}개 항목은 이미 데이터에 있으므로 제외했습니다.",
|
||||
"writtenByHealthLogOther": "HealthLog가 직접 건강 앱에 기록한 {count}개 항목은 이미 데이터에 있으므로 제외했습니다.",
|
||||
@@ -5543,12 +5543,12 @@
|
||||
"parsing": "내보내기 파일 읽는 중…",
|
||||
"upserting": "기록 불러오는 중…"
|
||||
},
|
||||
"skipUnsupported": "{count}개 샘플을 건너뛰었어요 — HealthLog가 불러오지 않는 데이터 유형이에요.",
|
||||
"skipUnsupported": "{count}개 샘플을 건너뛰었어요. HealthLog가 불러오지 않는 데이터 유형이에요.",
|
||||
"skipRefused": "{count}개 샘플을 쓰지 못했어요 (읽을 수 없거나, 범위를 벗어났거나, 저장에 실패했어요).",
|
||||
"skipBreakdown": "자세히 보기 ({count}개 유형)",
|
||||
"skipBreakdownMore": "+ {count}개 유형 더",
|
||||
"cycleSummary": "생리 주기 샘플 {samples}개를 {days}일치 기록으로 합쳤어요.",
|
||||
"cycleModuleOff": "생리 주기 샘플 {count}개를 건너뛰었어요 — 이 계정은 주기 기록이 꺼져 있어요.",
|
||||
"cycleModuleOff": "이 계정은 주기 기록이 꺼져 있어서 생리 주기 샘플 {count}개를 건너뛰었어요.",
|
||||
"cycleDaysFailed": "생리 주기 {count}일치를 쓰지 못했어요: {reason}"
|
||||
},
|
||||
"json": {
|
||||
@@ -5633,8 +5633,8 @@
|
||||
"failed": "불러오지 못했어요. 아무것도 저장되지 않았어요.",
|
||||
"columnsHeading": "각 열의 역할",
|
||||
"jsonOnly": "JSON 전용",
|
||||
"previewLine": "읽은 행: {rows} · 불러올 행: {queued} · 거부된 행: {refused}",
|
||||
"submittedLine": "읽은 행: {rows} · 불러오기 대기: {queued}",
|
||||
"previewLine": "읽은 행 {rows}개, 불러올 행 {queued}개, 거부된 행 {refused}개",
|
||||
"submittedLine": "읽은 행 {rows}개, 불러오기 대기 {queued}개",
|
||||
"unmatched": "기록에서 일치하는 약이 없어요: {names}",
|
||||
"ambiguous": "약이 둘 이상 일치해요: {names}",
|
||||
"mirrored": "다른 앱에서 미러링한 약이라 복용을 추가할 수 없어요: {names}",
|
||||
@@ -5799,19 +5799,20 @@
|
||||
"storedDays": "날씨 {count}일치를 저장했어요.",
|
||||
"home": {
|
||||
"title": "기본 위치",
|
||||
"description": "도시 단위의 대략적인 위치예요 — 정밀한 이동 경로는 저장하지 않아요. 설정한 날짜부터, 위치 기간이 적용되지 않는 날에는 이곳의 날씨와 일조 시간을 가져와요.",
|
||||
"description": "도시 단위의 대략적인 위치예요. 정밀한 이동 경로는 저장하지 않아요. 설정한 날짜부터, 위치 기간이 적용되지 않는 날에는 이곳의 날씨와 일조 시간을 가져와요.",
|
||||
"current": "현재: {label}",
|
||||
"none": "아직 설정한 기본 위치가 없어요.",
|
||||
"since": "{date}부터 날씨를 기록해요. 그 이전 날짜는 위치 기간을 추가하기 전까지 비어 있어요."
|
||||
},
|
||||
"travel": {
|
||||
"title": "위치 기간",
|
||||
"description": "장소와 기간을 추가하세요 — 여행일 수도, 지난 기록의 한 구간일 수도 있어요. 해당 기간에는 기본 위치 대신 이 위치가 쓰여서 실제로 있던 곳의 날씨가 반영돼요. 지난 기록을 바로잡는 방법이에요.",
|
||||
"description": "장소와 기간을 추가하세요. 여행일 수도, 지난 기록의 한 구간일 수도 있어요. 해당 기간에는 기본 위치 대신 이 위치가 쓰여서 실제로 있던 곳의 날씨가 반영돼요. 지난 기록을 바로잡는 방법이에요.",
|
||||
"none": "아직 위치 기간이 없어요.",
|
||||
"add": "{label} 추가",
|
||||
"remove": "위치 기간 삭제",
|
||||
"removeConfirmTitle": "이 여행을 삭제할까요?",
|
||||
"removeConfirmBody": "그 기간에 측정한 값은 기록에 그대로 남고, 여행 항목만 사라져요."
|
||||
"removeConfirmBody": "그 기간에 측정한 값은 기록에 그대로 남고, 여행 항목만 사라져요.",
|
||||
"range": "{start}~{end}"
|
||||
},
|
||||
"backfill": {
|
||||
"title": "지난 날짜 채우기",
|
||||
@@ -5820,8 +5821,8 @@
|
||||
},
|
||||
"noResults": "일치하는 장소가 없어요.",
|
||||
"fetchFailedOne": "마지막 백그라운드 날씨 업데이트가 실패했어요 ({when}).",
|
||||
"fetchFailedFew": "최근 백그라운드 날씨 업데이트 {count}번이 실패했어요 — 마지막은 {when}.",
|
||||
"fetchFailedOther": "최근 백그라운드 날씨 업데이트 {count}번이 실패했어요 — 마지막은 {when}.",
|
||||
"fetchFailedFew": "최근 백그라운드 날씨 업데이트 {count}번이 실패했어요. 마지막 실패: {when}.",
|
||||
"fetchFailedOther": "최근 백그라운드 날씨 업데이트 {count}번이 실패했어요. 마지막 실패: {when}.",
|
||||
"airQuality": {
|
||||
"title": "대기질과 꽃가루",
|
||||
"description": "Open-Meteo를 통해 CAMS 모델에서 가져온 내 위치의 일별 대기질, 꽃가루, 자외선 정보입니다.",
|
||||
@@ -6519,7 +6520,7 @@
|
||||
},
|
||||
"integrationFreshness": {
|
||||
"title": "받은 데이터",
|
||||
"summary": "데이터 유형 {count}개 · 최신 {relative}",
|
||||
"summary": "데이터 유형 {count}개, 최신 {relative}",
|
||||
"quiet": "{count}개 잠잠",
|
||||
"workouts": "운동"
|
||||
},
|
||||
@@ -7078,14 +7079,14 @@
|
||||
"title": "동기화 진행 상황",
|
||||
"receivedLabel": "받은 기록 수",
|
||||
"oldestLabel": "받아온 가장 오래된 측정값",
|
||||
"flowing": "최근 1시간 안에 데이터가 들어왔어요 — iPhone 앱이 계속 보내는 중이에요.",
|
||||
"waiting": "iPhone 앱이 데이터를 더 보내기를 기다리는 중이에요. 앱이 열려 있거나 iOS가 백그라운드 시간을 줄 때 전송이 이어져요 — 처음 대량으로 채워 넣는 동안 잠잠한 구간이 생기는 건 정상이고 오류가 아니에요."
|
||||
"flowing": "최근 1시간 안에 데이터가 들어왔어요. iPhone 앱이 계속 보내는 중이에요.",
|
||||
"waiting": "iPhone 앱이 데이터를 더 보내기를 기다리는 중이에요. 앱이 열려 있거나 iOS가 백그라운드 시간을 줄 때 전송이 이어져요. 처음 대량으로 채워 넣는 동안 잠잠한 구간이 생기는 건 정상이고 오류가 아니에요."
|
||||
},
|
||||
"delivery": {
|
||||
"title": "전송",
|
||||
"lastTriggerLabel": "마지막 동기화 도착",
|
||||
"lastBackgroundLabel": "마지막 백그라운드 동기화",
|
||||
"backgroundNever": "없음 — 지금까지 모든 동기화가 앱이 열린 상태에서 들어왔어요",
|
||||
"backgroundNever": "없음: 지금까지 모든 동기화가 앱이 열린 상태에서 들어왔어요",
|
||||
"noSyncYet": "아직 도착한 동기화가 없어서 여기 보여줄 내용이 없어요.",
|
||||
"trigger": {
|
||||
"foreground": "앱이 열린 상태에서",
|
||||
@@ -8085,19 +8086,19 @@
|
||||
"description": "하루 동안 모든 약을 제때 복용해요."
|
||||
},
|
||||
"compliance801": {
|
||||
"title": "복약 순응도 80% · 1일",
|
||||
"title": "1일간 복약 순응도 80%",
|
||||
"description": "30일 복약 순응도 80% 이상을 1일 유지해요."
|
||||
},
|
||||
"bmiGreen1": {
|
||||
"title": "BMI 정상 · 1일",
|
||||
"title": "1일간 BMI 정상",
|
||||
"description": "BMI를 1일 동안 정상 범위로 유지해요."
|
||||
},
|
||||
"bpGreen1": {
|
||||
"title": "혈압 정상 · 1일",
|
||||
"title": "1일간 혈압 정상",
|
||||
"description": "혈압을 1일 동안 정상 범위로 유지해요."
|
||||
},
|
||||
"pulseGreen1": {
|
||||
"title": "맥박 정상 · 1일",
|
||||
"title": "1일간 맥박 정상",
|
||||
"description": "안정 시 맥박을 1일 동안 정상 범위로 유지해요."
|
||||
},
|
||||
"onTimePerfect7": {
|
||||
@@ -8105,19 +8106,19 @@
|
||||
"description": "7일 연속으로 모든 약을 제때 복용해요."
|
||||
},
|
||||
"compliance807": {
|
||||
"title": "복약 순응도 80% · 7일",
|
||||
"title": "7일간 복약 순응도 80%",
|
||||
"description": "30일 복약 순응도 80% 이상을 7일 연속 유지해요."
|
||||
},
|
||||
"bmiGreen7": {
|
||||
"title": "BMI 정상 · 7일",
|
||||
"title": "7일간 BMI 정상",
|
||||
"description": "BMI를 7일 연속 정상 범위로 유지해요."
|
||||
},
|
||||
"bpGreen7": {
|
||||
"title": "혈압 정상 · 7일",
|
||||
"title": "7일간 혈압 정상",
|
||||
"description": "혈압을 7일 연속 정상 범위로 유지해요."
|
||||
},
|
||||
"pulseGreen7": {
|
||||
"title": "맥박 정상 · 7일",
|
||||
"title": "7일간 맥박 정상",
|
||||
"description": "안정 시 맥박을 7일 연속 정상 범위로 유지해요."
|
||||
},
|
||||
"onTimePerfect30": {
|
||||
@@ -8125,19 +8126,19 @@
|
||||
"description": "30일 연속으로 모든 약을 제때 복용해요."
|
||||
},
|
||||
"compliance8030": {
|
||||
"title": "복약 순응도 80% · 30일",
|
||||
"title": "30일간 복약 순응도 80%",
|
||||
"description": "30일 복약 순응도 80% 이상을 30일 연속 유지해요."
|
||||
},
|
||||
"bmiGreen30": {
|
||||
"title": "BMI 정상 · 30일",
|
||||
"title": "30일간 BMI 정상",
|
||||
"description": "BMI를 30일 연속 정상 범위로 유지해요."
|
||||
},
|
||||
"bpGreen30": {
|
||||
"title": "혈압 정상 · 30일",
|
||||
"title": "30일간 혈압 정상",
|
||||
"description": "혈압을 30일 연속 정상 범위로 유지해요."
|
||||
},
|
||||
"pulseGreen30": {
|
||||
"title": "맥박 정상 · 30일",
|
||||
"title": "30일간 맥박 정상",
|
||||
"description": "안정 시 맥박을 30일 연속 정상 범위로 유지해요."
|
||||
},
|
||||
"onTimePerfect180": {
|
||||
@@ -8145,19 +8146,19 @@
|
||||
"description": "180일 연속으로 모든 약을 제때 복용해요."
|
||||
},
|
||||
"compliance80180": {
|
||||
"title": "복약 순응도 80% · 180일",
|
||||
"title": "180일간 복약 순응도 80%",
|
||||
"description": "30일 복약 순응도 80% 이상을 180일 연속 유지해요."
|
||||
},
|
||||
"bmiGreen180": {
|
||||
"title": "BMI 정상 · 180일",
|
||||
"title": "180일간 BMI 정상",
|
||||
"description": "BMI를 180일 연속 정상 범위로 유지해요."
|
||||
},
|
||||
"bpGreen180": {
|
||||
"title": "혈압 정상 · 180일",
|
||||
"title": "180일간 혈압 정상",
|
||||
"description": "혈압을 180일 연속 정상 범위로 유지해요."
|
||||
},
|
||||
"pulseGreen180": {
|
||||
"title": "맥박 정상 · 180일",
|
||||
"title": "180일간 맥박 정상",
|
||||
"description": "안정 시 맥박을 180일 연속 정상 범위로 유지해요."
|
||||
},
|
||||
"onTimePerfect360": {
|
||||
@@ -8165,19 +8166,19 @@
|
||||
"description": "360일 연속으로 모든 약을 제때 복용해요."
|
||||
},
|
||||
"compliance80360": {
|
||||
"title": "복약 순응도 80% · 360일",
|
||||
"title": "360일간 복약 순응도 80%",
|
||||
"description": "30일 복약 순응도 80% 이상을 360일 연속 유지해요."
|
||||
},
|
||||
"bmiGreen360": {
|
||||
"title": "BMI 정상 · 360일",
|
||||
"title": "360일간 BMI 정상",
|
||||
"description": "BMI를 360일 연속 정상 범위로 유지해요."
|
||||
},
|
||||
"bpGreen360": {
|
||||
"title": "혈압 정상 · 360일",
|
||||
"title": "360일간 혈압 정상",
|
||||
"description": "혈압을 360일 연속 정상 범위로 유지해요."
|
||||
},
|
||||
"pulseGreen360": {
|
||||
"title": "맥박 정상 · 360일",
|
||||
"title": "360일간 맥박 정상",
|
||||
"description": "안정 시 맥박을 360일 연속 정상 범위로 유지해요."
|
||||
},
|
||||
"moodFirst": {
|
||||
@@ -8261,15 +8262,15 @@
|
||||
"description": "앱 언어를 한 번 이상 바꿨어요."
|
||||
},
|
||||
"missFree7": {
|
||||
"title": "복용 누락 없음 · 7일",
|
||||
"title": "7일간 복용 누락 없음",
|
||||
"description": "7일 연속으로 복용을 한 번도 놓치지 않아요."
|
||||
},
|
||||
"missFree30": {
|
||||
"title": "복용 누락 없음 · 30일",
|
||||
"title": "30일간 복용 누락 없음",
|
||||
"description": "30일 연속으로 복용을 한 번도 놓치지 않아요."
|
||||
},
|
||||
"missFree90": {
|
||||
"title": "복용 누락 없음 · 90일",
|
||||
"title": "90일간 복용 누락 없음",
|
||||
"description": "90일 연속으로 복용을 한 번도 놓치지 않아요."
|
||||
},
|
||||
"measurementWeeks4": {
|
||||
@@ -8281,7 +8282,7 @@
|
||||
"description": "자기 보고 항목 네 가지를 모두 채웠어요 — 코치가 상황을 알아요."
|
||||
},
|
||||
"sleepLog7": {
|
||||
"title": "수면 기록 · 7일",
|
||||
"title": "7일간 수면 기록",
|
||||
"description": "7일 연속으로 수면 데이터를 기록해요."
|
||||
}
|
||||
},
|
||||
@@ -8791,7 +8792,7 @@
|
||||
},
|
||||
"crosstab": {
|
||||
"description": "내 데이터를 기준으로, 각 측정값이 황체기와 난포기에서 어떻게 다른지 비교했어요.",
|
||||
"pairLabel": "{metric} · 황체기와 난포기 비교",
|
||||
"pairLabel": "{metric}: 황체기와 난포기 비교",
|
||||
"detail": "황체기 {lutealAvg}{unit} ({lutealDays}일), 난포기 {follicularAvg}{unit} ({follicularDays}일).",
|
||||
"metricRestingHeartRate": "안정 시 심박수",
|
||||
"metricHrv": "심박변이도",
|
||||
@@ -9011,7 +9012,7 @@
|
||||
"temperatureSection": "체온 및 배란",
|
||||
"intimacySection": "성관계 및 피임",
|
||||
"testsSection": "검사",
|
||||
"phaseDayHeader": "{day}일째 · {phase}",
|
||||
"phaseDayHeader": "{day}일째, {phase}",
|
||||
"bbtHint": "아침에 일어나기 전, 가장 먼저 재 주세요.",
|
||||
"titleForDate": "{date} 기록",
|
||||
"descriptionToday": "오늘. 생리량, 증상, 메모예요.",
|
||||
@@ -9188,10 +9189,10 @@
|
||||
"VISCERAL_FAT": "내장지방",
|
||||
"BODY_MASS_INDEX": "체질량지수(BMI)",
|
||||
"WAIST_CIRCUMFERENCE": "허리둘레",
|
||||
"PHQ9_SCORE": "PHQ-9 · 기분",
|
||||
"GAD7_SCORE": "GAD-7 · 걱정",
|
||||
"WHO5_SCORE": "WHO-5 · 웰빙",
|
||||
"SCI_SCORE": "SCI · 수면"
|
||||
"PHQ9_SCORE": "PHQ-9 (기분)",
|
||||
"GAD7_SCORE": "GAD-7 (걱정)",
|
||||
"WHO5_SCORE": "WHO-5 (웰빙)",
|
||||
"SCI_SCORE": "SCI (수면)"
|
||||
},
|
||||
"typeGroups": {
|
||||
"vitals": "활력징후",
|
||||
@@ -10288,10 +10289,10 @@
|
||||
"saved": "저장됨",
|
||||
"error": "문제가 생겼어요. 다시 시도해 주세요.",
|
||||
"instrument": {
|
||||
"phq9": "PHQ-9 · 기분",
|
||||
"gad7": "GAD-7 · 걱정",
|
||||
"who5": "WHO-5 · 웰빙",
|
||||
"sci": "SCI · 수면"
|
||||
"phq9": "PHQ-9 (기분)",
|
||||
"gad7": "GAD-7 (걱정)",
|
||||
"who5": "WHO-5 (웰빙)",
|
||||
"sci": "SCI (수면)"
|
||||
},
|
||||
"instrumentSub": {
|
||||
"phq9": "우울 선별, 9문항",
|
||||
@@ -10759,7 +10760,7 @@
|
||||
},
|
||||
"documents": {
|
||||
"title": "문서",
|
||||
"subtitle": "모든 소견서·리포트·영상을 한곳에서 검색해요 — 저장할 때 암호화돼요.",
|
||||
"subtitle": "모든 소견서, 리포트, 영상을 한곳에서 검색해요. 저장할 때 암호화돼요.",
|
||||
"pageUpload": "업로드",
|
||||
"ownerOnlyUpload": "문서는 기록 소유자만 추가할 수 있습니다.",
|
||||
"kind": {
|
||||
@@ -10801,15 +10802,15 @@
|
||||
},
|
||||
"error": {
|
||||
"fileTooLarge": "이 파일은 {maxSize} 제한보다 커요.",
|
||||
"quotaExceeded": "저장 공간이 가득 찼어요 — {quota} 중 {used} 사용 중이에요.",
|
||||
"quotaExceeded": "저장 공간이 가득 찼어요. {quota} 중 {used} 사용 중이에요.",
|
||||
"unsupportedType": "지원하지 않는 파일 형식이에요.",
|
||||
"purged": "이 문서는 완전히 삭제되어 복구할 수 없어요.",
|
||||
"duplicateExists": "같은 문서가 이미 저장돼 있어요.",
|
||||
"rateLimited": "지금은 업로드가 너무 많아요 — 몇 분 뒤에 다시 시도해 주세요.",
|
||||
"rateLimited": "지금은 업로드가 너무 많아요. 몇 분 뒤에 다시 시도해 주세요.",
|
||||
"generic": "업로드하지 못했어요. 다시 시도해 주세요."
|
||||
},
|
||||
"toast": {
|
||||
"duplicate": "이미 저장돼 있어요 — 기존 문서를 표시해요.",
|
||||
"duplicate": "이미 저장돼 있어요. 기존 문서를 표시해요.",
|
||||
"deleted": "문서를 삭제했어요",
|
||||
"restoreFailed": "문서를 복구하지 못했어요."
|
||||
},
|
||||
@@ -10832,7 +10833,7 @@
|
||||
},
|
||||
"empty": {
|
||||
"title": "문서 보관함이 비어 있어요",
|
||||
"description": "의사 소견서, 검사 리포트, 영상, 처방전, 예방접종 기록을 암호화해 보관하고 종류·질환·연도로 검색해요.",
|
||||
"description": "의사 소견서, 검사 리포트, 영상, 처방전, 예방접종 기록을 암호화해 보관하고 종류, 질환, 연도별로 검색해요.",
|
||||
"action": "첫 문서 올리기",
|
||||
"noMatchesTitle": "일치하는 문서 없음",
|
||||
"noMatchesDescription": "현재 검색·필터에 맞는 문서가 없어요."
|
||||
@@ -10872,9 +10873,9 @@
|
||||
"linkCondition": "연결",
|
||||
"noConditions": "질환에 연결되지 않음",
|
||||
"previewUnavailable": "이 파일 형식은 미리보기를 지원하지 않아요",
|
||||
"uploadedMeta": "추가 {date} · {size}",
|
||||
"uploadedMeta": "{date} 추가, {size}",
|
||||
"importedFrom": "{system}에서 가져옴",
|
||||
"importedFromWithId": "{system}에서 가져옴 · ID {id}",
|
||||
"importedFromWithId": "{system}에서 가져옴, ID {id}",
|
||||
"sourceOther": "다른 시스템",
|
||||
"share": "공유",
|
||||
"labValuesLink": "검사 수치 {count}개 보기",
|
||||
@@ -10941,7 +10942,7 @@
|
||||
"errorNotIndexed": "문서를 먼저 읽은 뒤에 추출해 주세요.",
|
||||
"errorLocalOcrDisabled": "AI 설정에서 로컬 OCR을 먼저 켜 주세요.",
|
||||
"errorProvider": "이 작업에 쓸 AI 제공자가 설정돼 있지 않아요.",
|
||||
"errorTextImageOnly": "로컬 OCR은 이미지만 읽어요 — 이 파일은 읽을 수 없어요.",
|
||||
"errorTextImageOnly": "로컬 OCR은 이미지만 읽어요. 이 파일은 읽을 수 없어요.",
|
||||
"errorConsent": "AI로 문서를 읽으려면 먼저 동의가 필요합니다.",
|
||||
"errorUnavailable": "지금 여기에서는 AI로 문서를 읽을 수 없습니다."
|
||||
},
|
||||
@@ -11244,14 +11245,14 @@
|
||||
}
|
||||
},
|
||||
"hydration": {
|
||||
"referenceMeta": "권장 섭취량 {value} {unit}/일 · EFSA"
|
||||
"referenceMeta": "권장 섭취량 {value} {unit}/일 (EFSA)"
|
||||
},
|
||||
"caffeine": {
|
||||
"ceilingMeta": "안전 상한 {value} {unit}/일 · EFSA"
|
||||
"ceilingMeta": "안전 상한 {value} {unit}/일 (EFSA)"
|
||||
},
|
||||
"micronutrients": {
|
||||
"title": "비타민·미네랄",
|
||||
"rowMeta": "{window}일 중 {days}일 · 기준 {value} {unit} (EFSA)",
|
||||
"rowMeta": "{window}일 중 {days}일, 기준 {value} {unit} (EFSA)",
|
||||
"rowMetaNoRef": "{window}일 중 {days}일",
|
||||
"footer": "이 기간에 데이터가 있는 미량영양소는 추적 중인 {total}개 중 {tracked}개예요.",
|
||||
"emptyTitle": "아직 동기화된 미량영양소 데이터가 없어요",
|
||||
@@ -11266,7 +11267,7 @@
|
||||
},
|
||||
"push": {
|
||||
"title": "아침 브리핑",
|
||||
"bodyProvisional": "{line} · 어젯밤 수면은 아직 들어오지 않았어요."
|
||||
"bodyProvisional": "{line}\n어젯밤 수면은 아직 들어오지 않았어요."
|
||||
},
|
||||
"item": {
|
||||
"doseWindow": {
|
||||
@@ -11973,7 +11974,7 @@
|
||||
"both": "양쪽",
|
||||
"none": "지정 안 함"
|
||||
},
|
||||
"bodySiteWithSide": "{site} · {side}",
|
||||
"bodySiteWithSide": "{site} ({side})",
|
||||
"sectionTitle": "진료",
|
||||
"sectionDescription": "병원 방문과 잡아 둔 예약을 한곳에서 봐요.",
|
||||
"add": "진료",
|
||||
@@ -12227,7 +12228,6 @@
|
||||
"loadFailed": "이 날을 불러오지 못했어요.",
|
||||
"dayOf": "{m}일 중 {n}일째",
|
||||
"dayN": "{n}일째",
|
||||
"since": "{date}부터",
|
||||
"usualRange": "평소 {lo}~{hi}",
|
||||
"groups": {
|
||||
"running": "그날 진행 중",
|
||||
@@ -12254,11 +12254,11 @@
|
||||
"description": "이 날에 대한 모든 기록이에요.",
|
||||
"openDocument": "문서 열기",
|
||||
"previousReading": "이전, {date}",
|
||||
"rugLegend": "축 아래 점: 기록이 있는 날 · 고리: 눈에 띄는 날",
|
||||
"rugLegend": "축 아래 점은 기록이 있는 날을, 고리는 눈에 띄는 날을 표시해요.",
|
||||
"sheetExpand": "전체 높이로 펼치기",
|
||||
"sheetShrink": "줄이기",
|
||||
"usualLabel": "직전 30일",
|
||||
"valuesLegend": "점: 이 날 · 막대: 직전 30일",
|
||||
"valuesLegend": "점은 이 날, 막대는 직전 30일",
|
||||
"valuesAllOne": "모든 수치",
|
||||
"valuesAllFew": "수치 {count}개 모두",
|
||||
"valuesAllOther": "수치 {count}개 모두",
|
||||
@@ -12284,7 +12284,9 @@
|
||||
"note": "평가 없이 기록에서 모았어요. 날짜를 누르면 그날 전체가 열려요.",
|
||||
"report": "{date}부터 오늘까지 진료 보고서"
|
||||
},
|
||||
"travel": "여행 중"
|
||||
"travel": "여행 중",
|
||||
"dayNSince": "{n}일째, {date}부터",
|
||||
"sinceDate": "{date}부터"
|
||||
},
|
||||
"timeline": {
|
||||
"title": "타임라인",
|
||||
@@ -12358,9 +12360,9 @@
|
||||
"vaccinationsOne": "예방접종 {count}건",
|
||||
"vaccinationsFew": "예방접종 {count}건",
|
||||
"vaccinationsOther": "예방접종 {count}건",
|
||||
"visitsOne": "진료 {count}건 · 시술 {procedures}건",
|
||||
"visitsFew": "진료 {count}건 · 시술 {procedures}건",
|
||||
"visitsOther": "진료 {count}건 · 시술 {procedures}건",
|
||||
"visitsOne": "진료 {count}건, 시술 {procedures}건",
|
||||
"visitsFew": "진료 {count}건, 시술 {procedures}건",
|
||||
"visitsOther": "진료 {count}건, 시술 {procedures}건",
|
||||
"visitsPlannedOne": "예정된 진료만 {count}건",
|
||||
"visitsPlannedFew": "예정된 진료만 {count}건",
|
||||
"visitsPlannedOther": "예정된 진료만 {count}건",
|
||||
@@ -12463,8 +12465,8 @@
|
||||
"months": "월",
|
||||
"years": "연도",
|
||||
"groupingLabel": "묶기",
|
||||
"gap": "{from}~{to} · 기록 없음",
|
||||
"gapSingle": "{period} · 기록 없음",
|
||||
"gap": "{from}~{to} 기록 없음",
|
||||
"gapSingle": "{period} 기록 없음",
|
||||
"ended": "{label} 끝남",
|
||||
"afterDaysOne": "{count}일 후",
|
||||
"afterDaysFew": "{count}일 후",
|
||||
|
||||
+118
-116
@@ -206,7 +206,7 @@
|
||||
"colExpected": "Oczekiwane",
|
||||
"colComplianceRate": "Wskaźnik przestrzegania",
|
||||
"moodTitle": "Przebieg nastroju",
|
||||
"moodSummary": "Średnia:{avg} / 5.0 · Entries: {count} · Range: {min}–{max}",
|
||||
"moodSummary": "Średnia {avg} / 5.0, liczba wpisów {count}, zakres {min}–{max}",
|
||||
"colMood": "Nastrój",
|
||||
"colCount": "Liczba",
|
||||
"colShare": "Udział",
|
||||
@@ -579,8 +579,8 @@
|
||||
"sleepShort": "Sen",
|
||||
"stepsShort": "Kroki",
|
||||
"vo2MaxShort": "VO₂ max",
|
||||
"bpInTargetWindow90": "RR-cel · 90 d",
|
||||
"bpInTargetWindowDynamic": "RR-cel · {days} d",
|
||||
"bpInTargetWindow90": "RR-cel (90 d)",
|
||||
"bpInTargetWindowDynamic": "RR-cel ({days} d)",
|
||||
"bpInTargetCollecting": "zbieranie danych",
|
||||
"medications": "Leki",
|
||||
"quickAddMeasurement": "Zarejestruj pomiar",
|
||||
@@ -1336,7 +1336,7 @@
|
||||
"complianceInfoLabel": "Co oznacza przestrzeganie zaleceń?",
|
||||
"lastIntake": "Ostatnie przyjęcie:",
|
||||
"nextIntake": "Następne przyjęcie:",
|
||||
"nextIntakeOverdue": "Zaległa · {time} — wciąż można przyjąć",
|
||||
"nextIntakeOverdue": "Zaległa od {time}, wciąż można przyjąć",
|
||||
"dayStreak": "dni serii",
|
||||
"dayStreakOne": "dzień serii",
|
||||
"cycleDueToday": "Termin dzisiaj",
|
||||
@@ -1737,7 +1737,7 @@
|
||||
"empty": "Nie zarejestrowano jeszcze kroków zwiększania dawki. Dodaj datowane zmiany dawki, aby nakreślić plan.",
|
||||
"youAreHere": "Jesteś tutaj",
|
||||
"doseStep": "{dose} {unit}",
|
||||
"plannedFor": "Zaplanowano · {date}"
|
||||
"plannedFor": "Zaplanowano na {date}"
|
||||
},
|
||||
"injectionSiteBodyOutlineAriaLabel": "Sylwetka ciała",
|
||||
"injectionSitePickerAriaLabel": "Wybór miejsca iniekcji",
|
||||
@@ -1788,7 +1788,7 @@
|
||||
"intakeHistoryStatusSkipped": "Pominięty",
|
||||
"intakeHistorySortByTaken": "Sortuj wg czasu przyjęcia",
|
||||
"intakeHistorySortByScheduled": "Sortuj wg czasu zaplanowanego",
|
||||
"intakeHistoryPageInfo": "Strona {page} z {total} · {count} wpisów",
|
||||
"intakeHistoryPageInfo": "Strona {page} z {total}, {count} wpisów",
|
||||
"intakeHistoryPrev": "Poprzednia",
|
||||
"intakeHistoryNext": "Następna",
|
||||
"glp1": {
|
||||
@@ -1888,7 +1888,7 @@
|
||||
"markAsTaken": "Oznacz jako przyjętą",
|
||||
"markAsSkipped": "Oznacz jako pominiętą",
|
||||
"adHocTag": "poza planem",
|
||||
"takenDetail": "planowo {planned} · przyjęto {taken}",
|
||||
"takenDetail": "planowo {planned}, przyjęto {taken}",
|
||||
"doseTaken": "Dawka: {dose}",
|
||||
"status": {
|
||||
"taken_on_time": "na czas",
|
||||
@@ -2594,31 +2594,31 @@
|
||||
"ENV_POLLEN_MAX": "pyłki"
|
||||
},
|
||||
"daily": {
|
||||
"high": "Gdy {behaviour} rośnie, {outcome} następnego dnia zwykle wykazuje tendencję do {direction} w Twoich danych — wzorzec wart obserwacji, nie przyczyna.",
|
||||
"moderate": "Gdy {behaviour} rośnie, {outcome} następnego dnia wydaje się wykazywać tendencję do {direction}, na podstawie dostępnych danych — wzorzec wart obserwacji, nie przyczyna.",
|
||||
"faint": "Gdy {behaviour} rośnie, w Twoich danych pojawia się co najwyżej słaba wskazówka, że {outcome} następnego dnia wykazuje tendencję do {direction} — zbyt słaba, by na niej polegać, nigdy przyczyna."
|
||||
"high": "Gdy {behaviour} rośnie, {outcome} następnego dnia zwykle wykazuje tendencję do {direction} w Twoich danych. To wzorzec wart obserwacji, nie przyczyna.",
|
||||
"moderate": "Gdy {behaviour} rośnie, {outcome} następnego dnia wydaje się wykazywać tendencję do {direction}, na podstawie dostępnych danych. To wzorzec wart obserwacji, nie przyczyna.",
|
||||
"faint": "Gdy {behaviour} rośnie, w Twoich danych pojawia się co najwyżej słaba wskazówka, że {outcome} następnego dnia wykazuje tendencję do {direction}. To zbyt mało, by na tym polegać, i nigdy nie jest to przyczyna."
|
||||
},
|
||||
"lab": {
|
||||
"default": "Wyższe wartości {lab} idą w parze z tym, że {outcome} wykazuje tendencję do {direction} w tych samych okresach w Twoich danych — zależność, którą warto obserwować z lekarzem, nigdy przyczyna.",
|
||||
"faint": "Wyższe wartości {lab} co najwyżej słabo sugerują, że {outcome} wykazuje tendencję do {direction} w tych samych okresach w Twoich danych — zbyt słabo, by na tym polegać, zależność do omówienia z lekarzem, nigdy przyczyna."
|
||||
"default": "Wyższe wartości {lab} idą w parze z tym, że {outcome} wykazuje tendencję do {direction} w tych samych okresach w Twoich danych, zależność, którą warto obserwować z lekarzem, nigdy przyczyna.",
|
||||
"faint": "Wyższe wartości {lab} co najwyżej słabo sugerują, że {outcome} wykazuje tendencję do {direction} w tych samych okresach w Twoich danych. To zbyt mało, by na tym polegać, i nigdy nie jest to przyczyna, ale warto omówić to z lekarzem."
|
||||
},
|
||||
"hypothesis": {
|
||||
"bpCompliance": {
|
||||
"support": "Lepsze przyjmowanie leków idzie w parze z niższymi wartościami skurczowymi — wzorzec wart obserwacji.",
|
||||
"surprising": "Przyjmowanie leków i ciśnienie skurczowe zmieniają się razem w Twoich danych — zaskakujące; skonsultuj się z lekarzem, zanim coś zmienisz.",
|
||||
"support": "Lepsze przyjmowanie leków idzie w parze z niższymi wartościami skurczowymi, wzorzec wart obserwacji.",
|
||||
"surprising": "Przyjmowanie leków i ciśnienie skurczowe zmieniają się razem w Twoich danych, co jest zaskakujące. Skonsultuj się z lekarzem, zanim coś zmienisz.",
|
||||
"none": "Przyjmowanie leków i ciśnienie skurczowe nie zmieniają się wyraźnie razem w tym okresie."
|
||||
},
|
||||
"moodPulse": {
|
||||
"support": "Dni z gorszym nastrojem idą w parze z wyższym tętnem spoczynkowym — wzorzec wart obserwacji.",
|
||||
"surprising": "Dni z lepszym nastrojem idą w parze z wyższym tętnem spoczynkowym w Twoich danych — zaskakujące.",
|
||||
"support": "Dni z gorszym nastrojem idą w parze z wyższym tętnem spoczynkowym, wzorzec wart obserwacji.",
|
||||
"surprising": "Dni z lepszym nastrojem idą w parze z wyższym tętnem spoczynkowym w Twoich danych, co jest zaskakujące.",
|
||||
"none": "Nastrój i tętno spoczynkowe nie zmieniają się wyraźnie razem w tym okresie."
|
||||
},
|
||||
"weightWeekday": "Waga w {weekday} jest {delta} kg {direction} Twojej średniej z pozostałych dni — wzorzec wart obserwacji."
|
||||
"weightWeekday": "Waga w {weekday} jest {delta} kg {direction} Twojej średniej z pozostałych dni, wzorzec wart obserwacji."
|
||||
},
|
||||
"dailySameDay": {
|
||||
"high": "Więcej {behaviour} tego samego dnia i dzień wcześniej idzie w twoich danych zwykle w parze z {direction} {outcome} — to wzorzec wart obserwacji, nie przyczyna.",
|
||||
"moderate": "Więcej {behaviour} tego samego dnia i dzień wcześniej wydaje się, na podstawie dotychczasowych danych, iść w parze z {direction} {outcome} — to wzorzec wart obserwacji, nie przyczyna.",
|
||||
"faint": "Więcej {behaviour} tego samego dnia i dzień wcześniej pokazuje w twoich danych co najwyżej słaby ślad {direction} {outcome} — za mało, by na tym polegać, nigdy przyczyna."
|
||||
"high": "Więcej {behaviour} tego samego dnia i dzień wcześniej idzie w twoich danych zwykle w parze z {direction} {outcome}. To wzorzec wart obserwacji, nie przyczyna.",
|
||||
"moderate": "Więcej {behaviour} tego samego dnia i dzień wcześniej wydaje się, na podstawie dotychczasowych danych, iść w parze z {direction} {outcome}. To wzorzec wart obserwacji, nie przyczyna.",
|
||||
"faint": "Więcej {behaviour} tego samego dnia i dzień wcześniej pokazuje w twoich danych co najwyżej słaby ślad {direction} {outcome}. To za mało, by na tym polegać, i nigdy nie jest to przyczyna."
|
||||
}
|
||||
},
|
||||
"noAnalysisYet": "Brak oceny.",
|
||||
@@ -2730,7 +2730,7 @@
|
||||
"referenceSleep": "Co najmniej {low} minut na noc; dłuższy sen nie obniża wyniku",
|
||||
"referenceAdiposity": "Stosunek obwodu talii do wzrostu poniżej {high}",
|
||||
"referenceHba1c": "HbA1c od {low} do {high}%",
|
||||
"referenceDetail": "{label} · {source} · {kind} · od {low} do {high}",
|
||||
"referenceDetail": "{label}: od {low} do {high} ({kind}, {source})",
|
||||
"openBound": "otwarty",
|
||||
"laboratoryReferenceSource": "Zakresy referencyjne laboratorium",
|
||||
"personalTargetSource": "Osobisty cel",
|
||||
@@ -2824,7 +2824,7 @@
|
||||
"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}",
|
||||
"sourceChip": "na podstawie {n} sparowanych pomiarów ({window})",
|
||||
"sourceWindowLast30": "Ostatnie 30 dni",
|
||||
"confidenceHigh": "Wysoka pewność",
|
||||
"confidenceModerate": "Średnia pewność",
|
||||
@@ -3003,23 +3003,23 @@
|
||||
"cluster": {
|
||||
"cardio": {
|
||||
"label": "Sercowo-naczyniowe",
|
||||
"hint": "Ciśnienie · tętno · HRV · tętno spoczynkowe i marszowe"
|
||||
"hint": "Ciśnienie, tętno, HRV, tętno spoczynkowe i marszowe"
|
||||
},
|
||||
"body": {
|
||||
"label": "Skład ciała",
|
||||
"hint": "Waga · tłuszcz · mięśnie · BMI"
|
||||
"hint": "Waga, tłuszcz, mięśnie i BMI"
|
||||
},
|
||||
"activity": {
|
||||
"label": "Aktywność",
|
||||
"hint": "Kroki · energia · dystans · VO₂ max"
|
||||
"hint": "Kroki, energia, dystans i VO₂ max"
|
||||
},
|
||||
"workouts": {
|
||||
"label": "Treningi",
|
||||
"hint": "Biegi · przejażdżki · sesje"
|
||||
"hint": "Biegi, przejażdżki i sesje"
|
||||
},
|
||||
"sleep": {
|
||||
"label": "Sen",
|
||||
"hint": "Czas trwania · fazy"
|
||||
"hint": "Czas trwania i fazy"
|
||||
},
|
||||
"mood": {
|
||||
"label": "Nastrój",
|
||||
@@ -3031,15 +3031,15 @@
|
||||
},
|
||||
"medication": {
|
||||
"label": "Leki",
|
||||
"hint": "Przestrzeganie · kontekst GLP-1"
|
||||
"hint": "Przestrzeganie i kontekst GLP-1"
|
||||
},
|
||||
"mobility": {
|
||||
"label": "Mobilność i chód",
|
||||
"hint": "Stabilność · asymetria · chód"
|
||||
"hint": "Stabilność, asymetria i chód"
|
||||
},
|
||||
"environment": {
|
||||
"label": "Środowisko",
|
||||
"hint": "Hałas · światło · temp. skóry"
|
||||
"hint": "Hałas, światło dzienne i temperatura skóry"
|
||||
}
|
||||
},
|
||||
"settingsClustersLabel": "Dane widziane przez Coacha",
|
||||
@@ -3227,9 +3227,9 @@
|
||||
"cap": "Wiele kroków, teraz podsumowuje",
|
||||
"noProgress": "Brak nowych danych, podsumowuje"
|
||||
},
|
||||
"thoughtProcessOne": "Tok myślenia · {count} krok",
|
||||
"thoughtProcessFew": "Tok myślenia · {count} kroki",
|
||||
"thoughtProcessOther": "Tok myślenia · {count} kroków",
|
||||
"thoughtProcessOne": "Tok myślenia ({count} krok)",
|
||||
"thoughtProcessFew": "Tok myślenia ({count} kroki)",
|
||||
"thoughtProcessOther": "Tok myślenia ({count} kroków)",
|
||||
"awaitingAnswer": "Potrzebna odpowiedź"
|
||||
},
|
||||
"memory": {
|
||||
@@ -4062,7 +4062,7 @@
|
||||
"distributionDaysUnit": "dni",
|
||||
"weekdayTitle": "Średnia wg dnia tygodnia",
|
||||
"weekdayNoData": "Brak danych",
|
||||
"weekdayBestWorst": "Najlepszy dzień: {best} · Najtrudniejszy dzień: {worst}",
|
||||
"weekdayBestWorst": "Najlepszy dzień: {best}, najtrudniejszy dzień: {worst}",
|
||||
"tagsTitle": "Tagi i wyzwalacze",
|
||||
"tagAvgMood": "Średni nastrój z tym tagiem",
|
||||
"correlationsTitle": "Nastrój a inne wskaźniki",
|
||||
@@ -4078,7 +4078,7 @@
|
||||
"strengthModerate": "Umiarkowana",
|
||||
"strengthWeak": "Słaba",
|
||||
"strengthNone": "Brak",
|
||||
"source": "{n} sparowanych dni · r = {r}",
|
||||
"source": "{n} sparowanych dni, r = {r}",
|
||||
"emptyTitle": "Za mało sparowanych danych",
|
||||
"emptyDescription": "Rejestruj nastrój i ten wskaźnik w te same dni, aby zobaczyć korelację.",
|
||||
"pendingDescription": "{n} z {needed} sparowanych dni. Korelacja pojawi się, gdy dni wystarczy, aby odróżnić wzorzec od przypadku.",
|
||||
@@ -4137,7 +4137,7 @@
|
||||
"crosstab": {
|
||||
"title": "Tagi a Twoje wskaźniki zdrowia",
|
||||
"description": "Jak wskaźnik zdrowia różni się w dniach z danym tagiem w porównaniu z dniami bez niego.",
|
||||
"pairLabel": "{tag} · {metric}",
|
||||
"pairLabel": "{metric} w dni z: {tag}",
|
||||
"metricActiveEnergy": "Aktywna energia",
|
||||
"metricSleepDuration": "Sen",
|
||||
"metricNextDayRecovery": "Regeneracja następnego dnia",
|
||||
@@ -4154,7 +4154,7 @@
|
||||
"factorCrosstab": {
|
||||
"title": "Twoje ocenione czynniki i parametry życiowe",
|
||||
"description": "Jak parametr życiowy różni się w dniach, w których oceniłeś dany czynnik nisko, w porównaniu z dniami, w których oceniłeś go wysoko.",
|
||||
"pairLabel": "{factor} · {metric}",
|
||||
"pairLabel": "{metric} w dni z: {factor}",
|
||||
"metricSleepDuration": "Sen",
|
||||
"metricSteps": "Kroki",
|
||||
"metricRestingHeartRate": "Tętno spoczynkowe",
|
||||
@@ -4180,7 +4180,7 @@
|
||||
"moodDown": "Wyższy {factor} zwykle wiąże się z gorszym nastrojem następnego dnia w Twoich danych.",
|
||||
"outcomeUp": "Lepszy nastrój zwykle wiąże się z wyższym {factor} następnego dnia w Twoich danych.",
|
||||
"outcomeDown": "Lepszy nastrój zwykle wiąże się z niższym {factor} następnego dnia w Twoich danych.",
|
||||
"stat": "{n} sparowanych dni · r = {r} · q = {q}",
|
||||
"stat": "{n} sparowanych dni, r = {r}, q = {q}",
|
||||
"statLabel": "Jak to obliczono",
|
||||
"explainerLabel": "Jak to obliczono"
|
||||
},
|
||||
@@ -4224,11 +4224,11 @@
|
||||
},
|
||||
"derived": {
|
||||
"coverage": {
|
||||
"summary": "{present} z {required} danych · {percent}%",
|
||||
"summary": "{present} z {required} danych ({percent}%)",
|
||||
"ratioLabel": "{present}/{required}",
|
||||
"historyDays": "Na podstawie {count} dni historii",
|
||||
"missing": "Zapisuj te dane, aby uściślić wartość: {list}",
|
||||
"summaryLabelled": "{label} · {percent}%"
|
||||
"summaryLabelled": "{label} ({percent}%)"
|
||||
},
|
||||
"scoreRing": {
|
||||
"aria": "Wynik {score} na 100, {band}",
|
||||
@@ -4246,7 +4246,7 @@
|
||||
"inputsLabel": "Dane wejściowe",
|
||||
"noInputs": "Żadne dane nie potwierdzają jeszcze tej wartości.",
|
||||
"methodLabel": "Metoda",
|
||||
"window": "Z ostatnich {days} dni · dane {source}",
|
||||
"window": "Z ostatnich {days} dni danych {source}",
|
||||
"asOf": "na dzień {date}",
|
||||
"standardLink": "Standard: {name}"
|
||||
},
|
||||
@@ -4288,7 +4288,7 @@
|
||||
"anatomy": {
|
||||
"outOf": "/100",
|
||||
"contributorsLabel": "Czynniki",
|
||||
"contributorValue": "{value} · {weight}% wagi",
|
||||
"contributorValue": "{value}, waga {weight}%",
|
||||
"contributorMissing": "brak danych",
|
||||
"insufficient": "Za mało danych, by to ocenić. Rejestruj dalej, a wynik pojawi się tutaj."
|
||||
},
|
||||
@@ -4756,10 +4756,10 @@
|
||||
"dismiss": "Nie teraz"
|
||||
},
|
||||
"bmiHeight": {
|
||||
"coachPrefill": "Nie podałem jeszcze wzrostu — dlaczego BMI ma znaczenie i co powinienem wiedzieć, zanim go ustawię?"
|
||||
"coachPrefill": "Nie podałem jeszcze wzrostu. Dlaczego BMI ma znaczenie i co powinienem wiedzieć, zanim go ustawię?"
|
||||
},
|
||||
"medicationsEmpty": {
|
||||
"coachPrefill": "Nie dodałem jeszcze żadnych leków — co powinienem wiedzieć, zanim zacznę tu śledzić przestrzeganie zaleceń?"
|
||||
"coachPrefill": "Nie dodałem jeszcze żadnych leków. Co powinienem wiedzieć, zanim zacznę tu śledzić przestrzeganie zaleceń?"
|
||||
}
|
||||
},
|
||||
"thresholds": {
|
||||
@@ -5521,7 +5521,7 @@
|
||||
"dropHint": "lub kliknij, aby wybrać plik",
|
||||
"fileInputLabel": "Wybierz plik export.zip z Apple Health",
|
||||
"choose": "Wybierz plik",
|
||||
"idempotencyNote": "Ponowne przesłanie tego samego archiwum scala dane — nie tworzy duplikatów. Duże archiwa są przetwarzane w tle.",
|
||||
"idempotencyNote": "Ponowne przesłanie tego samego archiwum scala dane i nie tworzy duplikatów. Duże archiwa są przetwarzane w tle.",
|
||||
"uploading": "Przesyłanie…",
|
||||
"uploadFailed": "Przesyłanie nie powiodło się. Spróbuj ponownie.",
|
||||
"rateLimited": "Zbyt wiele przesłań. Poczekaj chwilę i spróbuj ponownie.",
|
||||
@@ -5530,7 +5530,7 @@
|
||||
"failureInterrupted": "Import został przerwany przed zakończeniem, zwykle przez restart serwera lub brak pamięci. Dane są bezpieczne; prześlij archiwum ponownie, aby spróbować jeszcze raz.",
|
||||
"failureInsufficientMemory": "Limit pamięci serwera jest zbyt niski dla archiwum tej wielkości. Poproś osobę administrującą serwerem o zwiększenie limitu pamięci Node.js (NODE_OPTIONS=--max-old-space-size), a następnie prześlij archiwum ponownie.",
|
||||
"rowsImported": "Zaimportowano dotąd {count} wierszy",
|
||||
"doneSummary": "Gotowe — zaimportowano {imported} z {read} rekordów, pominięto {skipped} rekordów klinicznych.",
|
||||
"doneSummary": "Gotowe: zaimportowano {imported} z {read} rekordów, pominięto {skipped} rekordów klinicznych.",
|
||||
"doneNothing": "Z tego archiwum nic nie zaimportowano: dotarło 0 z {read} rekordów.",
|
||||
"writtenByHealthLogOne": "Pominięto {count} wpis, który HealthLog sam zapisał w Apple Health, ponieważ jest już w Twoich danych.",
|
||||
"writtenByHealthLogOther": "Pominięto {count} wpisów, które HealthLog sam zapisał w Apple Health, ponieważ są już w Twoich danych.",
|
||||
@@ -5543,12 +5543,12 @@
|
||||
"parsing": "Odczytywanie eksportu…",
|
||||
"upserting": "Importowanie rekordów…"
|
||||
},
|
||||
"skipUnsupported": "{count} próbek pominięto — typy danych, których HealthLog nie importuje.",
|
||||
"skipUnsupported": "Pominięto {count} próbek: typy danych, których HealthLog nie importuje.",
|
||||
"skipRefused": "{count} próbek nie udało się zapisać (nieczytelne, poza zakresem lub zapis się nie powiódł).",
|
||||
"skipBreakdown": "Pokaż zestawienie ({count} typów)",
|
||||
"skipBreakdownMore": "+ {count} kolejnych typów",
|
||||
"cycleSummary": "{samples} próbek cyklu połączono w {days} dzienników dziennych.",
|
||||
"cycleModuleOff": "{count} próbek cyklu pominięto — śledzenie cyklu jest wyłączone dla tego konta.",
|
||||
"cycleModuleOff": "Pominięto {count} próbek cyklu, bo śledzenie cyklu jest wyłączone dla tego konta.",
|
||||
"cycleDaysFailed": "{count} dni cyklu nie udało się zapisać: {reason}"
|
||||
},
|
||||
"json": {
|
||||
@@ -5633,8 +5633,8 @@
|
||||
"failed": "Import nie udał się. Nic nie zostało zapisane.",
|
||||
"columnsHeading": "Co się dzieje z każdą kolumną",
|
||||
"jsonOnly": "tylko JSON",
|
||||
"previewLine": "Odczytane wiersze: {rows} · do zaimportowania: {queued} · odrzucone: {refused}",
|
||||
"submittedLine": "Odczytane wiersze: {rows} · w kolejce do importu: {queued}",
|
||||
"previewLine": "Odczytane wiersze: {rows}, do zaimportowania: {queued}, odrzucone: {refused}",
|
||||
"submittedLine": "Odczytane wiersze: {rows}, w kolejce do importu: {queued}",
|
||||
"unmatched": "Żaden zapisany lek nie odpowiada: {names}",
|
||||
"ambiguous": "Odpowiada więcej niż jednemu lekowi: {names}",
|
||||
"mirrored": "Skopiowany z innej aplikacji, więc nie można dodać dawki: {names}",
|
||||
@@ -5799,7 +5799,7 @@
|
||||
"storedDays": "Zapisano dni pogody: {count}.",
|
||||
"home": {
|
||||
"title": "Lokalizacja domowa",
|
||||
"description": "Przybliżona lokalizacja na poziomie miasta – nigdy dokładny ślad. Pogoda i światło dzienne są pobierane dla tego miejsca w dni bez okresu lokalizacji, od dnia jego ustawienia.",
|
||||
"description": "Przybliżona lokalizacja na poziomie miasta, nigdy dokładny ślad. Pogoda i światło dzienne są pobierane dla tego miejsca w dni bez okresu lokalizacji, od dnia jego ustawienia.",
|
||||
"current": "Obecnie: {label}",
|
||||
"none": "Nie ustawiono jeszcze lokalizacji domowej.",
|
||||
"since": "Pogoda zapisywana od {date}. Wcześniejsze dni pozostają puste, dopóki nie dodasz okresu lokalizacji."
|
||||
@@ -5811,7 +5811,8 @@
|
||||
"add": "Dodaj {label}",
|
||||
"remove": "Usuń okres lokalizacji",
|
||||
"removeConfirmTitle": "Usunąć tę podróż?",
|
||||
"removeConfirmBody": "Pomiary z tego okresu pozostają w historii; znika tylko wpis podróży."
|
||||
"removeConfirmBody": "Pomiary z tego okresu pozostają w historii; znika tylko wpis podróży.",
|
||||
"range": "Od {start} do {end}"
|
||||
},
|
||||
"backfill": {
|
||||
"title": "Uzupełnij minione dni",
|
||||
@@ -6519,7 +6520,7 @@
|
||||
},
|
||||
"integrationFreshness": {
|
||||
"title": "Odebrane dane",
|
||||
"summary": "{count} typów danych · najnowsze {relative}",
|
||||
"summary": "{count} typów danych, najnowsze {relative}",
|
||||
"quiet": "{count} bez danych",
|
||||
"workouts": "Treningi"
|
||||
},
|
||||
@@ -7078,14 +7079,14 @@
|
||||
"title": "Postęp synchronizacji",
|
||||
"receivedLabel": "Odebrane rekordy",
|
||||
"oldestLabel": "Najstarszy osiągnięty pomiar",
|
||||
"flowing": "W ciągu ostatniej godziny dotarły dane — aplikacja na iPhonie nadal je przesyła.",
|
||||
"waiting": "Oczekiwanie na kolejne dane z aplikacji na iPhonie. Przesyłanie trwa dalej, gdy aplikacja jest otwarta lub gdy iOS przydzieli jej czas w tle — cisza podczas pierwszego dużego uzupełniania historii jest normalna, to nie błąd."
|
||||
"flowing": "W ciągu ostatniej godziny dotarły dane. Aplikacja na iPhonie nadal je przesyła.",
|
||||
"waiting": "Oczekiwanie na kolejne dane z aplikacji na iPhonie. Przesyłanie trwa dalej, gdy aplikacja jest otwarta lub gdy iOS przydzieli jej czas w tle. Cisza podczas pierwszego dużego uzupełniania historii jest normalna, to nie błąd."
|
||||
},
|
||||
"delivery": {
|
||||
"title": "Dostarczanie",
|
||||
"lastTriggerLabel": "Ostatnia synchronizacja dotarła",
|
||||
"lastBackgroundLabel": "Ostatnia synchronizacja w tle",
|
||||
"backgroundNever": "Nigdy — jak dotąd każda synchronizacja dotarła przy otwartej aplikacji",
|
||||
"backgroundNever": "Nigdy: jak dotąd każda synchronizacja dotarła przy otwartej aplikacji",
|
||||
"noSyncYet": "Żadna synchronizacja jeszcze nie dotarła, więc nie ma tu nic do zgłoszenia.",
|
||||
"trigger": {
|
||||
"foreground": "przy otwartej aplikacji",
|
||||
@@ -8085,19 +8086,19 @@
|
||||
"description": "Przyjmij wszystkie leki na czas przez 1 dzień."
|
||||
},
|
||||
"compliance801": {
|
||||
"title": "Przestrzeganie 80% · 1d",
|
||||
"title": "Przestrzeganie 80% przez 1 dzień",
|
||||
"description": "Osiągnij co najmniej 80% przestrzegania w 30 dni przez 1 dzień."
|
||||
},
|
||||
"bmiGreen1": {
|
||||
"title": "BMI na zielono · 1d",
|
||||
"title": "BMI na zielono przez 1 dzień",
|
||||
"description": "Utrzymaj BMI w normie przez 1 dzień."
|
||||
},
|
||||
"bpGreen1": {
|
||||
"title": "Ciśnienie na zielono · 1d",
|
||||
"title": "Ciśnienie na zielono przez 1 dzień",
|
||||
"description": "Utrzymaj ciśnienie w normie przez 1 dzień."
|
||||
},
|
||||
"pulseGreen1": {
|
||||
"title": "Tętno na zielono · 1d",
|
||||
"title": "Tętno na zielono przez 1 dzień",
|
||||
"description": "Utrzymaj tętno spoczynkowe w normie przez 1 dzień."
|
||||
},
|
||||
"onTimePerfect7": {
|
||||
@@ -8105,19 +8106,19 @@
|
||||
"description": "Przyjmij wszystkie leki na czas przez 7 kolejnych dni."
|
||||
},
|
||||
"compliance807": {
|
||||
"title": "Przestrzeganie 80% · 7d",
|
||||
"title": "Przestrzeganie 80% przez 7 dni",
|
||||
"description": "Osiągnij co najmniej 80% przestrzegania w 30 dni przez 7 kolejnych dni."
|
||||
},
|
||||
"bmiGreen7": {
|
||||
"title": "BMI na zielono · 7d",
|
||||
"title": "BMI na zielono przez 7 dni",
|
||||
"description": "Utrzymaj BMI w normie przez 7 kolejnych dni."
|
||||
},
|
||||
"bpGreen7": {
|
||||
"title": "Ciśnienie na zielono · 7d",
|
||||
"title": "Ciśnienie na zielono przez 7 dni",
|
||||
"description": "Utrzymaj ciśnienie w normie przez 7 kolejnych dni."
|
||||
},
|
||||
"pulseGreen7": {
|
||||
"title": "Tętno na zielono · 7d",
|
||||
"title": "Tętno na zielono przez 7 dni",
|
||||
"description": "Utrzymaj tętno spoczynkowe w normie przez 7 kolejnych dni."
|
||||
},
|
||||
"onTimePerfect30": {
|
||||
@@ -8125,19 +8126,19 @@
|
||||
"description": "Przyjmij wszystkie leki na czas przez 30 kolejnych dni."
|
||||
},
|
||||
"compliance8030": {
|
||||
"title": "Przestrzeganie 80% · 30d",
|
||||
"title": "Przestrzeganie 80% przez 30 dni",
|
||||
"description": "Osiągnij co najmniej 80% przestrzegania w 30 dni przez 30 kolejnych dni."
|
||||
},
|
||||
"bmiGreen30": {
|
||||
"title": "BMI na zielono · 30d",
|
||||
"title": "BMI na zielono przez 30 dni",
|
||||
"description": "Utrzymaj BMI w normie przez 30 kolejnych dni."
|
||||
},
|
||||
"bpGreen30": {
|
||||
"title": "Ciśnienie na zielono · 30d",
|
||||
"title": "Ciśnienie na zielono przez 30 dni",
|
||||
"description": "Utrzymaj ciśnienie w normie przez 30 kolejnych dni."
|
||||
},
|
||||
"pulseGreen30": {
|
||||
"title": "Tętno na zielono · 30d",
|
||||
"title": "Tętno na zielono przez 30 dni",
|
||||
"description": "Utrzymaj tętno spoczynkowe w normie przez 30 kolejnych dni."
|
||||
},
|
||||
"onTimePerfect180": {
|
||||
@@ -8145,19 +8146,19 @@
|
||||
"description": "Przyjmij wszystkie leki na czas przez 180 kolejnych dni."
|
||||
},
|
||||
"compliance80180": {
|
||||
"title": "Przestrzeganie 80% · 180d",
|
||||
"title": "Przestrzeganie 80% przez 180 dni",
|
||||
"description": "Osiągnij co najmniej 80% przestrzegania w 30 dni przez 180 kolejnych dni."
|
||||
},
|
||||
"bmiGreen180": {
|
||||
"title": "BMI na zielono · 180d",
|
||||
"title": "BMI na zielono przez 180 dni",
|
||||
"description": "Utrzymaj BMI w normie przez 180 kolejnych dni."
|
||||
},
|
||||
"bpGreen180": {
|
||||
"title": "Ciśnienie na zielono · 180d",
|
||||
"title": "Ciśnienie na zielono przez 180 dni",
|
||||
"description": "Utrzymaj ciśnienie w normie przez 180 kolejnych dni."
|
||||
},
|
||||
"pulseGreen180": {
|
||||
"title": "Tętno na zielono · 180d",
|
||||
"title": "Tętno na zielono przez 180 dni",
|
||||
"description": "Utrzymaj tętno spoczynkowe w normie przez 180 kolejnych dni."
|
||||
},
|
||||
"onTimePerfect360": {
|
||||
@@ -8165,19 +8166,19 @@
|
||||
"description": "Przyjmij wszystkie leki na czas przez 360 kolejnych dni."
|
||||
},
|
||||
"compliance80360": {
|
||||
"title": "Przestrzeganie 80% · 360d",
|
||||
"title": "Przestrzeganie 80% przez 360 dni",
|
||||
"description": "Osiągnij co najmniej 80% przestrzegania w 30 dni przez 360 kolejnych dni."
|
||||
},
|
||||
"bmiGreen360": {
|
||||
"title": "BMI na zielono · 360d",
|
||||
"title": "BMI na zielono przez 360 dni",
|
||||
"description": "Utrzymaj BMI w normie przez 360 kolejnych dni."
|
||||
},
|
||||
"bpGreen360": {
|
||||
"title": "Ciśnienie na zielono · 360d",
|
||||
"title": "Ciśnienie na zielono przez 360 dni",
|
||||
"description": "Utrzymaj ciśnienie w normie przez 360 kolejnych dni."
|
||||
},
|
||||
"pulseGreen360": {
|
||||
"title": "Tętno na zielono · 360d",
|
||||
"title": "Tętno na zielono przez 360 dni",
|
||||
"description": "Utrzymaj tętno spoczynkowe w normie przez 360 kolejnych dni."
|
||||
},
|
||||
"moodFirst": {
|
||||
@@ -8261,15 +8262,15 @@
|
||||
"description": "Zmieniłeś język aplikacji co najmniej raz."
|
||||
},
|
||||
"missFree7": {
|
||||
"title": "Bez pominiętej dawki · 7 dni",
|
||||
"title": "Bez pominiętej dawki przez 7 dni",
|
||||
"description": "7 kolejnych dni bez pominiętej dawki."
|
||||
},
|
||||
"missFree30": {
|
||||
"title": "Bez pominiętej dawki · 30 dni",
|
||||
"title": "Bez pominiętej dawki przez 30 dni",
|
||||
"description": "30 kolejnych dni bez pominiętej dawki."
|
||||
},
|
||||
"missFree90": {
|
||||
"title": "Bez pominiętej dawki · 90 dni",
|
||||
"title": "Bez pominiętej dawki przez 90 dni",
|
||||
"description": "90 kolejnych dni bez pominiętej dawki."
|
||||
},
|
||||
"measurementWeeks4": {
|
||||
@@ -8281,7 +8282,7 @@
|
||||
"description": "Wszystkie cztery pola wywiadu wypełnione — Coach zna Twój kontekst."
|
||||
},
|
||||
"sleepLog7": {
|
||||
"title": "Dziennik snu · 7 dni",
|
||||
"title": "Dziennik snu przez 7 dni",
|
||||
"description": "Dane o śnie zapisane przez 7 kolejnych dni."
|
||||
}
|
||||
},
|
||||
@@ -8791,7 +8792,7 @@
|
||||
},
|
||||
"crosstab": {
|
||||
"description": "Jak każdy pomiar wypada między fazą lutealną a folikularną, na Twoich danych.",
|
||||
"pairLabel": "{metric} · lutealna vs folikularna",
|
||||
"pairLabel": "{metric}: faza lutealna vs folikularna",
|
||||
"detail": "Lutealna {lutealAvg} {unit} ({lutealDays} dni) vs folikularna {follicularAvg} {unit} ({follicularDays} dni).",
|
||||
"metricRestingHeartRate": "Tętno spoczynkowe",
|
||||
"metricHrv": "Zmienność rytmu serca",
|
||||
@@ -9011,7 +9012,7 @@
|
||||
"temperatureSection": "Temperatura i owulacja",
|
||||
"intimacySection": "Intymność i antykoncepcja",
|
||||
"testsSection": "Testy",
|
||||
"phaseDayHeader": "Dzień {day} · {phase}",
|
||||
"phaseDayHeader": "Dzień {day}, {phase}",
|
||||
"bbtHint": "Zmierz ją rano zaraz po przebudzeniu, przed wstaniem.",
|
||||
"titleForDate": "Wpis z {date}",
|
||||
"descriptionToday": "Dzisiaj. Krwawienie, objawy i notatki.",
|
||||
@@ -9188,10 +9189,10 @@
|
||||
"VISCERAL_FAT": "Tłuszcz trzewny",
|
||||
"BODY_MASS_INDEX": "Wskaźnik masy ciała (BMI)",
|
||||
"WAIST_CIRCUMFERENCE": "Obwód talii",
|
||||
"PHQ9_SCORE": "PHQ-9 · nastrój",
|
||||
"GAD7_SCORE": "GAD-7 · lęk",
|
||||
"WHO5_SCORE": "WHO-5 · dobrostan",
|
||||
"SCI_SCORE": "SCI · sen"
|
||||
"PHQ9_SCORE": "PHQ-9 (nastrój)",
|
||||
"GAD7_SCORE": "GAD-7 (lęk)",
|
||||
"WHO5_SCORE": "WHO-5 (dobrostan)",
|
||||
"SCI_SCORE": "SCI (sen)"
|
||||
},
|
||||
"typeGroups": {
|
||||
"vitals": "Parametry życiowe",
|
||||
@@ -9754,7 +9755,7 @@
|
||||
},
|
||||
"empty": {
|
||||
"title": "Nie zarejestrowano jeszcze żadnego szczepienia",
|
||||
"description": "Przepisz swoją kartę szczepień wiersz po wierszu — wystarczą data i szczepionka."
|
||||
"description": "Przepisz swoją kartę szczepień wiersz po wierszu. Wystarczą data i szczepionka."
|
||||
},
|
||||
"catalog": {
|
||||
"tetanus": "Tężec",
|
||||
@@ -10288,10 +10289,10 @@
|
||||
"saved": "Zapisano",
|
||||
"error": "Coś poszło nie tak. Spróbuj ponownie.",
|
||||
"instrument": {
|
||||
"phq9": "PHQ-9 · nastrój",
|
||||
"gad7": "GAD-7 · lęk",
|
||||
"who5": "WHO-5 · samopoczucie",
|
||||
"sci": "SCI · sen"
|
||||
"phq9": "PHQ-9 (nastrój)",
|
||||
"gad7": "GAD-7 (lęk)",
|
||||
"who5": "WHO-5 (samopoczucie)",
|
||||
"sci": "SCI (sen)"
|
||||
},
|
||||
"instrumentSub": {
|
||||
"phq9": "Przesiew depresji, 9 pytań",
|
||||
@@ -10759,7 +10760,7 @@
|
||||
},
|
||||
"documents": {
|
||||
"title": "Dokumenty",
|
||||
"subtitle": "Każde pismo, wynik i skan w jednym przeszukiwalnym miejscu — zaszyfrowane w spoczynku.",
|
||||
"subtitle": "Każde pismo, wynik i skan w jednym przeszukiwalnym miejscu, zaszyfrowane w spoczynku.",
|
||||
"pageUpload": "Prześlij",
|
||||
"ownerOnlyUpload": "Dokumenty może dodawać tylko właściciel kartoteki.",
|
||||
"kind": {
|
||||
@@ -10801,15 +10802,15 @@
|
||||
},
|
||||
"error": {
|
||||
"fileTooLarge": "Ten plik przekracza limit {maxSize}.",
|
||||
"quotaExceeded": "Miejsce jest pełne — użyto {used} z {quota}.",
|
||||
"quotaExceeded": "Miejsce jest pełne: użyto {used} z {quota}.",
|
||||
"unsupportedType": "Ten typ pliku nie jest obsługiwany.",
|
||||
"purged": "Ten dokument został trwale usunięty i nie można go przywrócić.",
|
||||
"duplicateExists": "Identyczny dokument jest już zapisany.",
|
||||
"rateLimited": "Zbyt wiele przesyłań — spróbuj ponownie za kilka minut.",
|
||||
"rateLimited": "Zbyt wiele przesyłań. Spróbuj ponownie za kilka minut.",
|
||||
"generic": "Przesyłanie nie powiodło się. Spróbuj ponownie."
|
||||
},
|
||||
"toast": {
|
||||
"duplicate": "Już zapisano — istniejący dokument został wyróżniony.",
|
||||
"duplicate": "Już zapisano. Istniejący dokument został wyróżniony.",
|
||||
"deleted": "Dokument usunięty",
|
||||
"restoreFailed": "Nie udało się przywrócić dokumentu."
|
||||
},
|
||||
@@ -10832,7 +10833,7 @@
|
||||
},
|
||||
"empty": {
|
||||
"title": "Twój sejf dokumentów jest pusty",
|
||||
"description": "Przechowuj pisma lekarskie, wyniki laboratoryjne, obrazowanie, recepty i zaświadczenia o szczepieniach — zaszyfrowane i przeszukiwalne według typu, schorzenia i roku.",
|
||||
"description": "Przechowuj pisma lekarskie, wyniki laboratoryjne, obrazowanie, recepty i zaświadczenia o szczepieniach. Są zaszyfrowane i można je przeszukiwać według typu, schorzenia i roku.",
|
||||
"action": "Prześlij pierwszy dokument",
|
||||
"noMatchesTitle": "Brak pasujących dokumentów",
|
||||
"noMatchesDescription": "Nic nie pasuje do bieżącego wyszukiwania i filtrów."
|
||||
@@ -10872,9 +10873,9 @@
|
||||
"linkCondition": "Powiąż",
|
||||
"noConditions": "Niepowiązany ze schorzeniem",
|
||||
"previewUnavailable": "Brak podglądu dla tego typu pliku",
|
||||
"uploadedMeta": "Dodano {date} · {size}",
|
||||
"uploadedMeta": "Dodano {date}, {size}",
|
||||
"importedFrom": "Zaimportowano z: {system}",
|
||||
"importedFromWithId": "Zaimportowano z: {system} · ID {id}",
|
||||
"importedFromWithId": "Zaimportowano z: {system}, ID {id}",
|
||||
"sourceOther": "inny system",
|
||||
"share": "Udostępnij",
|
||||
"labValuesLink": "Zobacz {count} wyników laboratoryjnych",
|
||||
@@ -10974,7 +10975,7 @@
|
||||
"CONDITION": "Schorzenie",
|
||||
"MEDICATION_STATEMENT": "Lek"
|
||||
},
|
||||
"statedRange": "podany zakres {range}",
|
||||
"statedRange": "Podany zakres {range}",
|
||||
"needsCheck": "Sprawdź tę wartość z dokumentem, a potem ją zapisz.",
|
||||
"verify": "Sprawdź",
|
||||
"verifySave": "Zapisz wartość",
|
||||
@@ -11244,14 +11245,14 @@
|
||||
}
|
||||
},
|
||||
"hydration": {
|
||||
"referenceMeta": "Zalecane spożycie {value} {unit}/dzień · EFSA"
|
||||
"referenceMeta": "Zalecane spożycie {value} {unit}/dzień (EFSA)"
|
||||
},
|
||||
"caffeine": {
|
||||
"ceilingMeta": "Bezpieczny limit {value} {unit}/dzień · EFSA"
|
||||
"ceilingMeta": "Bezpieczny limit {value} {unit}/dzień (EFSA)"
|
||||
},
|
||||
"micronutrients": {
|
||||
"title": "Witaminy i minerały",
|
||||
"rowMeta": "{days} z {window} dni · zalecane {value} {unit} (EFSA)",
|
||||
"rowMeta": "{days} z {window} dni, zalecane {value} {unit} (EFSA)",
|
||||
"rowMetaNoRef": "{days} z {window} dni",
|
||||
"footer": "{tracked} z {total} śledzonych mikroskładników ma dane w tym okresie.",
|
||||
"emptyTitle": "Brak jeszcze zsynchronizowanych danych o mikroskładnikach",
|
||||
@@ -11266,7 +11267,7 @@
|
||||
},
|
||||
"push": {
|
||||
"title": "Twoje poranne podsumowanie",
|
||||
"bodyProvisional": "{line} · Brakuje jeszcze snu z zeszłej nocy."
|
||||
"bodyProvisional": "{line}\nBrakuje jeszcze snu z zeszłej nocy."
|
||||
},
|
||||
"item": {
|
||||
"doseWindow": {
|
||||
@@ -11654,7 +11655,7 @@
|
||||
"managed": {
|
||||
"title": "Profile, którymi się opiekujesz",
|
||||
"description": "Karty zdrowia bez własnego logowania.",
|
||||
"explainer": "Zarządzany profil to karta zdrowia osoby, która sama się nie loguje — dziecka albo kogoś, kim się opiekujesz. Nie ma logowania ani adresu e-mail, a Ty stajesz się pierwszą osobą opiekującą się profilem. Później możesz dodać kolejne, a każda z was może wejść do karty i ją uzupełniać.",
|
||||
"explainer": "Zarządzany profil to karta zdrowia osoby, która sama się nie loguje, na przykład dziecka albo kogoś, kim się opiekujesz. Nie ma logowania ani adresu e-mail, a Ty stajesz się pierwszą osobą opiekującą się profilem. Później możesz dodać kolejne, a każda z was może wejść do karty i ją uzupełniać.",
|
||||
"nameLabel": "Nazwa",
|
||||
"namePlaceholder": "Nazwa, po której rozpoznasz tę kartę",
|
||||
"nameHint": "Do 80 znaków. Wyświetla się wszędzie tam, gdzie pojawia się ta karta.",
|
||||
@@ -11676,7 +11677,7 @@
|
||||
"creating": "Tworzenie…",
|
||||
"created": "{name} jest gotowy. Do tej karty przejdziesz z menu konta.",
|
||||
"errorStepUp": "Potwierdź drugi składnik logowania i spróbuj ponownie.",
|
||||
"errorOffline": "To nie dotarło do serwera. Nic się nie zmieniło — sprawdź połączenie i spróbuj ponownie.",
|
||||
"errorOffline": "To nie dotarło do serwera. Nic się nie zmieniło. Sprawdź połączenie i spróbuj ponownie.",
|
||||
"errorInvalid": "Serwer odrzucił te dane. Sprawdź nazwę, datę i strefę czasową.",
|
||||
"errorFailed": "Nie udało się utworzyć profilu.",
|
||||
"edit": "Edytuj",
|
||||
@@ -11687,7 +11688,7 @@
|
||||
"editErrorFailed": "Nie udało się zapisać zmian.",
|
||||
"delete": "Usuń profil",
|
||||
"deleteTitle": "Usunąć {name}?",
|
||||
"deleteBody": "Wszystko, co zapisano dla {name}, znika razem z profilem — pomiary, leki, dokumenty i notatki. Tego nie da się cofnąć.",
|
||||
"deleteBody": "Wszystko, co zapisano dla {name}, znika razem z profilem: pomiary, leki, dokumenty i notatki. Tego nie da się cofnąć.",
|
||||
"deleteGuardiansOne": "{count} osoba opiekuje się dziś tą kartą i ją straci.",
|
||||
"deleteGuardiansFew": "{count} osoby opiekują się dziś tą kartą i ją stracą.",
|
||||
"deleteGuardiansOther": "{count} osób opiekuje się dziś tą kartą i ją straci.",
|
||||
@@ -11973,7 +11974,7 @@
|
||||
"both": "Obie strony",
|
||||
"none": "Nie podano"
|
||||
},
|
||||
"bodySiteWithSide": "{site} · {side}",
|
||||
"bodySiteWithSide": "{site} ({side})",
|
||||
"sectionTitle": "Wizyty",
|
||||
"sectionDescription": "Wizyty u lekarza i umówione terminy w jednym miejscu.",
|
||||
"add": "Wizyta",
|
||||
@@ -12227,7 +12228,6 @@
|
||||
"loadFailed": "Nie udało się wczytać tego dnia.",
|
||||
"dayOf": "Dzień {n} z {m}",
|
||||
"dayN": "Dzień {n}",
|
||||
"since": "od {date}",
|
||||
"usualRange": "Zwykle od {lo} do {hi}",
|
||||
"groups": {
|
||||
"running": "W toku tego dnia",
|
||||
@@ -12254,11 +12254,11 @@
|
||||
"description": "Wszystko, co Twoje wpisy zawierają dla tego dnia.",
|
||||
"openDocument": "Otwórz dokument",
|
||||
"previousReading": "Wcześniej, {date}",
|
||||
"rugLegend": "Punkty pod osią: dni z wpisami · pierścień: dzień godny uwagi",
|
||||
"rugLegend": "Punkty pod osią oznaczają dni z wpisami, pierścień dzień godny uwagi.",
|
||||
"sheetExpand": "Rozwiń na pełną wysokość",
|
||||
"sheetShrink": "Zmniejsz",
|
||||
"usualLabel": "Twoje 30 dni wcześniej",
|
||||
"valuesLegend": "Punkt: ten dzień · pasek: Twoje 30 dni wcześniej",
|
||||
"valuesLegend": "Punkt to ten dzień, pasek to 30 dni wcześniej",
|
||||
"valuesAllOne": "Wszystkie wartości",
|
||||
"valuesAllFew": "Wszystkie {count} wartości",
|
||||
"valuesAllOther": "Wszystkie {count} wartości",
|
||||
@@ -12284,7 +12284,9 @@
|
||||
"note": "Zestawione z Twoich wpisów, bez oceny. Każda data otwiera cały dzień.",
|
||||
"report": "Raport lekarski od {date} do dziś"
|
||||
},
|
||||
"travel": "W podróży"
|
||||
"travel": "W podróży",
|
||||
"dayNSince": "Dzień {n}, od {date}",
|
||||
"sinceDate": "Od {date}"
|
||||
},
|
||||
"timeline": {
|
||||
"title": "Oś czasu",
|
||||
@@ -12358,9 +12360,9 @@
|
||||
"vaccinationsOne": "{count} szczepienie",
|
||||
"vaccinationsFew": "{count} szczepienia",
|
||||
"vaccinationsOther": "{count} szczepień",
|
||||
"visitsOne": "{count} wizyta · z zabiegiem: {procedures}",
|
||||
"visitsFew": "{count} wizyty · z zabiegiem: {procedures}",
|
||||
"visitsOther": "{count} wizyt · z zabiegiem: {procedures}",
|
||||
"visitsOne": "{count} wizyta, z zabiegiem: {procedures}",
|
||||
"visitsFew": "{count} wizyty, z zabiegiem: {procedures}",
|
||||
"visitsOther": "{count} wizyt, z zabiegiem: {procedures}",
|
||||
"visitsPlannedOne": "{count} wizyta, tylko zaplanowana",
|
||||
"visitsPlannedFew": "{count} wizyty, tylko zaplanowane",
|
||||
"visitsPlannedOther": "{count} wizyt, tylko zaplanowane",
|
||||
@@ -12463,8 +12465,8 @@
|
||||
"months": "Miesiące",
|
||||
"years": "Lata",
|
||||
"groupingLabel": "Grupowanie",
|
||||
"gap": "Od {from} do {to} · brak wpisów",
|
||||
"gapSingle": "{period} · brak wpisów",
|
||||
"gap": "Od {from} do {to} bez wpisów",
|
||||
"gapSingle": "{period} bez wpisów",
|
||||
"ended": "Koniec: {label}",
|
||||
"afterDaysOne": "po 1 dniu",
|
||||
"afterDaysFew": "po {count} dniach",
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { readFileSync, readdirSync } from "node:fs";
|
||||
import { join } from "node:path";
|
||||
|
||||
/**
|
||||
* No middle-dot separator in visible strings.
|
||||
*
|
||||
* A value like "Added {date} · {size}" or "Weight · body fat · muscle" reads
|
||||
* as a list of fragments rather than as the app's plain voice. Facts are
|
||||
* joined with a comma, a colon or a real phrase instead. This guard walks
|
||||
* every bundle under `messages/` and fails on any string that contains a
|
||||
* space, U+00B7 and a space. A middle dot inside a unit ("mL/(kg·min)") has
|
||||
* no surrounding spaces and is not matched.
|
||||
*
|
||||
* A key that genuinely needs the pattern goes into `ALLOWED` with the reason
|
||||
* written next to it. An allowed key that no longer contains the pattern
|
||||
* fails too, so the list cannot go stale.
|
||||
*/
|
||||
|
||||
const MESSAGES_DIR = join(__dirname, "../../messages");
|
||||
const SEPARATOR = " · ";
|
||||
|
||||
/** Key path -> why the separator is right there. Empty by intent. */
|
||||
const ALLOWED: Record<string, string> = {};
|
||||
|
||||
function flatten(
|
||||
obj: unknown,
|
||||
prefix: string,
|
||||
out: Map<string, string>,
|
||||
): Map<string, string> {
|
||||
if (obj == null || typeof obj !== "object") return out;
|
||||
for (const [k, v] of Object.entries(obj as Record<string, unknown>)) {
|
||||
const key = prefix ? `${prefix}.${k}` : k;
|
||||
if (typeof v === "string") out.set(key, v);
|
||||
else if (typeof v === "object") flatten(v, key, out);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
const bundles = readdirSync(MESSAGES_DIR)
|
||||
.filter((file) => file.endsWith(".json"))
|
||||
.sort();
|
||||
|
||||
describe("message bundles carry no ' · ' separator", () => {
|
||||
it("finds the bundles", () => {
|
||||
expect(bundles.length).toBeGreaterThanOrEqual(7);
|
||||
});
|
||||
|
||||
for (const file of bundles) {
|
||||
const values = flatten(
|
||||
JSON.parse(readFileSync(join(MESSAGES_DIR, file), "utf8")),
|
||||
"",
|
||||
new Map(),
|
||||
);
|
||||
|
||||
it(`${file} walks a non-empty set of strings`, () => {
|
||||
expect(values.size).toBeGreaterThan(1000);
|
||||
});
|
||||
|
||||
it(`${file} has no dot separator outside the allowlist`, () => {
|
||||
const offenders = [...values]
|
||||
.filter(
|
||||
([key, value]) => value.includes(SEPARATOR) && !(key in ALLOWED),
|
||||
)
|
||||
.map(([key, value]) => `${key} = ${JSON.stringify(value)}`);
|
||||
expect(offenders).toEqual([]);
|
||||
});
|
||||
|
||||
it(`${file} has no stale allowlist entry`, () => {
|
||||
const stale = Object.keys(ALLOWED).filter(
|
||||
(key) => !(values.get(key) ?? "").includes(SEPARATOR),
|
||||
);
|
||||
expect(stale).toEqual([]);
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -154,7 +154,7 @@ describe("<BodySitesSection>", () => {
|
||||
});
|
||||
expect(html).toContain("Procedures and visits");
|
||||
expect(html).toContain("Arthroscopy");
|
||||
expect(html).toContain("Knee · Left");
|
||||
expect(html).toContain("Knee (Left)");
|
||||
expect(html).toContain('href="/documents?doc=d1"');
|
||||
expect(html).toContain("MRI knee report");
|
||||
expect(html).toContain("Conditions");
|
||||
|
||||
@@ -116,7 +116,7 @@ describe("BD-Zielbereich tile (v1.4.28 FB-C1/C2 rewrite)", () => {
|
||||
it("renders the empty-hint placeholder instead of a percentage on thin data (v1.17 W1b)", () => {
|
||||
const html = render(
|
||||
<TrendCard
|
||||
label="BP in Target · 23d"
|
||||
label="BP in Target (23d)"
|
||||
latest={null}
|
||||
emptyHint="collecting data"
|
||||
unit="%"
|
||||
@@ -130,7 +130,7 @@ describe("BD-Zielbereich tile (v1.4.28 FB-C1/C2 rewrite)", () => {
|
||||
expect(html).toContain('data-slot="trend-card-empty-hint"');
|
||||
expect(html).toContain("collecting data");
|
||||
// The dynamic span label is shown in place of the static "· 90 T".
|
||||
expect(html).toContain("BP in Target · 23d");
|
||||
expect(html).toContain("BP in Target (23d)");
|
||||
// No numeric headline value renders when the hint takes the slot.
|
||||
expect(html).not.toContain('data-slot="trend-card-value"');
|
||||
});
|
||||
|
||||
@@ -186,8 +186,12 @@ describe("<DayView>", () => {
|
||||
const html = await render();
|
||||
expect(html).toContain("Running that day");
|
||||
expect(html).toContain("Common cold");
|
||||
expect(html).toContain("Day 4 · since");
|
||||
expect(html).toContain("Winter course · Day 64 of 151");
|
||||
// Name first, the quiet day count below; an open span names its start
|
||||
// as a date, its year left out when it is the viewed day's year.
|
||||
expect(html).toContain("Day 4, since December 31");
|
||||
expect(html).toContain("Vitamin D 1,000 IU Winter course");
|
||||
expect(html).toContain("Day 64 of 151");
|
||||
expect(html).not.toContain("ongoing");
|
||||
expect(html).toContain('href="/illness/ep1"');
|
||||
});
|
||||
|
||||
@@ -226,10 +230,11 @@ describe("<DayView>", () => {
|
||||
const html = await render();
|
||||
const rows = html.split('data-slot="day-running-item"').slice(1);
|
||||
const med = rows.find((row) => row.includes("Levothyroxine")) ?? "";
|
||||
expect(med).toContain("50 µg");
|
||||
expect(med).toContain("Levothyroxine 50 µg");
|
||||
expect(med.split("</li>")[0]).not.toMatch(/Day \d|since/);
|
||||
const leave = rows.find((row) => row.includes("Parental leave")) ?? "";
|
||||
expect(leave).toContain("Family · Day 34 of 90");
|
||||
expect(leave).toMatch(/data-slot="tag-chip"[^>]*>Family</);
|
||||
expect(leave).toContain("Day 34 of 90");
|
||||
expect(leave).not.toContain("FAMILY");
|
||||
});
|
||||
|
||||
|
||||
@@ -23,8 +23,10 @@ import {
|
||||
type LucideIcon,
|
||||
} from "lucide-react";
|
||||
|
||||
import { TagChip } from "@/components/ui/tag-chip";
|
||||
import {
|
||||
LIFE_EVENT_CATEGORIES,
|
||||
type DateKey,
|
||||
type DayEvent,
|
||||
type DayEventKind,
|
||||
type DayNotable,
|
||||
@@ -32,6 +34,7 @@ import {
|
||||
type DayRunningKind,
|
||||
type DayValue,
|
||||
} from "@/lib/day/contract";
|
||||
import { resolveIntlLocale } from "@/lib/format-locale";
|
||||
import { useFormatters, useTranslations } from "@/lib/i18n/context";
|
||||
import { cn } from "@/lib/utils";
|
||||
|
||||
@@ -138,7 +141,7 @@ export function DayNotableLines({
|
||||
<Sparkles className="mt-px size-3.5 shrink-0" aria-hidden="true" />
|
||||
<span>
|
||||
{withMetric && notable.type
|
||||
? `${labelFor(tileKeyOf(notable.type))} · `
|
||||
? `${labelFor(tileKeyOf(notable.type))}: `
|
||||
: null}
|
||||
{text(notable)}
|
||||
</span>
|
||||
@@ -200,28 +203,59 @@ function dayMeta(
|
||||
return meta;
|
||||
}
|
||||
|
||||
export function DayRunning({ items }: { items: readonly DayRunningItem[] }) {
|
||||
const { t } = useTranslations();
|
||||
const fmt = useFormatters();
|
||||
/** Running kinds whose `sub` is a dose and reads as part of the name. */
|
||||
const DOSE_SUB_KINDS: ReadonlySet<DayRunningKind> = new Set([
|
||||
"medication",
|
||||
"medicationCourse",
|
||||
]);
|
||||
|
||||
export function DayRunning({
|
||||
items,
|
||||
date,
|
||||
}: {
|
||||
items: readonly DayRunningItem[];
|
||||
/** The viewed day; a start date in another year names its year. */
|
||||
date?: DateKey;
|
||||
}) {
|
||||
const { t, locale } = useTranslations();
|
||||
if (items.length === 0) return null;
|
||||
const viewedYear = date
|
||||
? date.slice(0, 4)
|
||||
: String(new Date().getUTCFullYear());
|
||||
const intlLocale = resolveIntlLocale(locale);
|
||||
const sinceText = (since: string): string =>
|
||||
new Intl.DateTimeFormat(intlLocale, {
|
||||
day: "numeric",
|
||||
month: "long",
|
||||
...(since.slice(0, 4) === viewedYear ? {} : { year: "numeric" }),
|
||||
timeZone: "UTC",
|
||||
}).format(new Date(`${since}T12:00:00.000Z`));
|
||||
return (
|
||||
<section className="space-y-2" data-slot="day-running">
|
||||
<h3 className={DAY_SECTION_LABEL}>{t("day.groups.running")}</h3>
|
||||
<ul>
|
||||
{items.map((item) => {
|
||||
const parts = [
|
||||
item.sub === null ? null : dayMeta(item.kind, item.sub, t),
|
||||
const title = dayTitle(item.kind, item.title, t);
|
||||
const doseInName = item.sub !== null && DOSE_SUB_KINDS.has(item.kind);
|
||||
const name = doseInName ? `${title} ${item.sub}` : title;
|
||||
const chip =
|
||||
item.sub !== null && !doseInName
|
||||
? dayMeta(item.kind, item.sub, t)
|
||||
: null;
|
||||
const since =
|
||||
item.dayCount === null && item.since !== null
|
||||
? sinceText(item.since)
|
||||
: null;
|
||||
const detail =
|
||||
item.dayIndex !== null
|
||||
? item.dayCount !== null
|
||||
? t("day.dayOf", { n: item.dayIndex, m: item.dayCount })
|
||||
: t("day.dayN", { n: item.dayIndex })
|
||||
: null,
|
||||
item.dayCount === null && item.since !== null
|
||||
? t("day.since", {
|
||||
date: fmt.dateShortSmartCalendar(item.since),
|
||||
})
|
||||
: null,
|
||||
].filter((part): part is string => !!part);
|
||||
: since !== null
|
||||
? t("day.dayNSince", { n: item.dayIndex, date: since })
|
||||
: t("day.dayN", { n: item.dayIndex })
|
||||
: since !== null
|
||||
? t("day.sinceDate", { date: since })
|
||||
: null;
|
||||
const body = (
|
||||
<>
|
||||
<span
|
||||
@@ -230,12 +264,17 @@ export function DayRunning({ items }: { items: readonly DayRunningItem[] }) {
|
||||
style={{ backgroundColor: RUNNING_COLOR[item.kind] }}
|
||||
/>
|
||||
<span className="min-w-0 flex-1">
|
||||
<span className="block truncate text-sm font-medium">
|
||||
{dayTitle(item.kind, item.title, t)}
|
||||
</span>
|
||||
<span className="text-muted-foreground block truncate text-xs">
|
||||
{parts.join(" · ")}
|
||||
<span className="flex min-w-0 items-center gap-2">
|
||||
<span className="min-w-0 truncate text-sm font-medium">
|
||||
{name}
|
||||
</span>
|
||||
{chip ? <TagChip className="shrink-0">{chip}</TagChip> : null}
|
||||
</span>
|
||||
{detail ? (
|
||||
<span className="text-muted-foreground block truncate text-xs">
|
||||
{detail}
|
||||
</span>
|
||||
) : null}
|
||||
</span>
|
||||
{item.href ? (
|
||||
<ChevronRight
|
||||
|
||||
@@ -518,13 +518,13 @@ describe("buildProcedureChoices", () => {
|
||||
{
|
||||
encounterId: "enc-knee",
|
||||
name: "Knee arthroscopy",
|
||||
detail: "Knee (left) · 2025-10-02",
|
||||
detail: "Knee (left), 2025-10-02",
|
||||
},
|
||||
{ encounterId: "enc-2", name: "Day clinic", detail: "2025-10-02" },
|
||||
{
|
||||
encounterId: "enc-3",
|
||||
name: "Procedure or surgery",
|
||||
detail: "Knee · 2025-10-02",
|
||||
detail: "Knee, 2025-10-02",
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
@@ -198,8 +198,8 @@ export function DocumentCard({
|
||||
</DayLinkStated>
|
||||
) : (
|
||||
date
|
||||
)}{" "}
|
||||
· {size}
|
||||
)}
|
||||
, {size}
|
||||
</p>
|
||||
{showFilename ? (
|
||||
// Filename on its OWN muted line so it never clips the date/size
|
||||
|
||||
@@ -869,7 +869,7 @@ export function DocumentDetailSheet({
|
||||
{doc.filename ?? title}
|
||||
</p>
|
||||
<p className="text-muted-foreground text-xs">
|
||||
{t("documents.detail.previewUnavailable")} ·{" "}
|
||||
{t("documents.detail.previewUnavailable")},{" "}
|
||||
{formatBytes(doc.byteSize, locale)}
|
||||
</p>
|
||||
<DocumentDownloadButton
|
||||
@@ -1185,8 +1185,15 @@ export function DocumentDetailSheet({
|
||||
date: format.date(doc.createdAt),
|
||||
size: formatBytes(doc.byteSize, locale),
|
||||
})}
|
||||
{doc.filename ? ` · ${doc.filename}` : ""}
|
||||
</p>
|
||||
{doc.filename ? (
|
||||
<p
|
||||
className="text-muted-foreground truncate text-xs"
|
||||
title={doc.filename}
|
||||
>
|
||||
{doc.filename}
|
||||
</p>
|
||||
) : null}
|
||||
|
||||
{/* Where an imported document came from (#1038). Meta, so
|
||||
muted like the line above; the id is what the person looks
|
||||
|
||||
@@ -80,7 +80,7 @@ function factHeadline(fact: ExtractedFactDto): string {
|
||||
return (fact.data as ConditionFactData).label;
|
||||
}
|
||||
const data = fact.data as MedicationStatementFactData;
|
||||
return data.dose ? `${data.name} · ${data.dose}` : data.name;
|
||||
return data.dose ? `${data.name} ${data.dose}` : data.name;
|
||||
}
|
||||
|
||||
/** The date the fact states, if any (YYYY-MM-DD). */
|
||||
@@ -262,18 +262,16 @@ function FactRow({
|
||||
</p>
|
||||
<p className="text-muted-foreground text-xs">
|
||||
{typeLabel}
|
||||
{date ? ` · ${calendarDate(date)}` : ""}
|
||||
{isObservation &&
|
||||
(fact.data as ObservationFactData).referenceText ? (
|
||||
<>
|
||||
{" · "}
|
||||
{t("documents.review.statedRange", {
|
||||
range: (fact.data as ObservationFactData)
|
||||
.referenceText as string,
|
||||
})}
|
||||
</>
|
||||
) : null}
|
||||
{date ? `, ${calendarDate(date)}` : ""}
|
||||
</p>
|
||||
{isObservation && (fact.data as ObservationFactData).referenceText ? (
|
||||
<p className="text-muted-foreground text-xs break-words">
|
||||
{t("documents.review.statedRange", {
|
||||
range: (fact.data as ObservationFactData)
|
||||
.referenceText as string,
|
||||
})}
|
||||
</p>
|
||||
) : null}
|
||||
{fact.provenance.anchored && fact.provenance.sourceText ? (
|
||||
<p className="text-muted-foreground text-xs break-words italic">
|
||||
“{fact.provenance.sourceText}”
|
||||
|
||||
@@ -527,7 +527,7 @@ export function DocumentsView() {
|
||||
label: `${
|
||||
visit.practitioner?.name ??
|
||||
encounterKindText(t, visit.kind as EncounterKind)
|
||||
} · ${format.date(visit.occurredAt)}`,
|
||||
}, ${format.date(visit.occurredAt)}`,
|
||||
})),
|
||||
[visits.data, t, format],
|
||||
);
|
||||
|
||||
@@ -588,7 +588,7 @@ export function DocumentSourcePicker({
|
||||
: null,
|
||||
]
|
||||
.filter(Boolean)
|
||||
.join(" · ");
|
||||
.join(", ");
|
||||
return (
|
||||
<li key={row.sourceId}>
|
||||
<button
|
||||
|
||||
@@ -546,7 +546,7 @@ export function buildProcedureChoices(
|
||||
procedure.reason?.trim() ||
|
||||
procedure.practitionerName?.trim() ||
|
||||
labels.kindName,
|
||||
detail: site ? `${site} · ${date}` : date,
|
||||
detail: site ? `${site}, ${date}` : date,
|
||||
};
|
||||
});
|
||||
}
|
||||
@@ -138,7 +138,7 @@ describe("<ProceduresSection>", () => {
|
||||
html.indexOf('data-encounter-id="older"'),
|
||||
);
|
||||
expect(html).toContain("Meniscus repair");
|
||||
expect(html).toContain("Knee · Left");
|
||||
expect(html).toContain("Knee (Left)");
|
||||
expect(html).toContain("2 of 2");
|
||||
});
|
||||
|
||||
@@ -182,7 +182,7 @@ describe("<ProceduresSection>", () => {
|
||||
/data-slot="procedures-site-all"[^>]*aria-pressed="true"|aria-pressed="true"[^>]*data-slot="procedures-site-all"/,
|
||||
);
|
||||
expect(html).toMatch(
|
||||
/aria-pressed="false"[^>]*>Knee · Left|data-slot="procedures-site"[^>]*aria-pressed="false"/,
|
||||
/aria-pressed="false"[^>]*>Knee \(Left\)|data-slot="procedures-site"[^>]*aria-pressed="false"/,
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ const okResult: CorrelationResult = {
|
||||
pValue: 0.001,
|
||||
confidenceBand: { low: -0.85, high: -0.39, label: "high" },
|
||||
interpretation:
|
||||
"Higher medication compliance lines up with lower systolic readings — a pattern worth watching.",
|
||||
"Higher medication compliance lines up with lower systolic readings, a pattern worth watching.",
|
||||
points: [
|
||||
{ x: 60, y: 140 },
|
||||
{ x: 70, y: 135 },
|
||||
|
||||
@@ -255,7 +255,7 @@ describe("<MessageThread>", () => {
|
||||
it("folds an older message's provenance into the thought-process row, never a raw key", () => {
|
||||
const html = render(<MessageThread conversation={baseConversation} />);
|
||||
expect(html).toContain('data-slot="coach-turn-steps-done"');
|
||||
expect(html).toContain("Thought process · 1 step");
|
||||
expect(html).toContain("Thought process (1 step)");
|
||||
expect(html).not.toContain('data-slot="coach-source-chips"');
|
||||
expect(html).not.toContain("insights.coach.metric.");
|
||||
expect(html).not.toContain("n=26");
|
||||
@@ -479,7 +479,7 @@ describe("<MessageThread>", () => {
|
||||
expect(html).not.toContain("What I'm looking at");
|
||||
expect(html).not.toContain("138 mmHg");
|
||||
// The areas the answer drew on stay reachable from the row.
|
||||
expect(html).toContain("Thought process · 1 step");
|
||||
expect(html).toContain("Thought process (1 step)");
|
||||
});
|
||||
|
||||
it("names the thought-process row in German under 'de'", () => {
|
||||
@@ -487,7 +487,7 @@ describe("<MessageThread>", () => {
|
||||
<MessageThread conversation={baseConversation} />,
|
||||
"de",
|
||||
);
|
||||
expect(html).toContain("Denkprozess · 1 Schritt");
|
||||
expect(html).toContain("Denkprozess (1 Schritt)");
|
||||
expect(html).not.toContain("Worauf bezieht sich das?");
|
||||
});
|
||||
|
||||
|
||||
@@ -413,7 +413,7 @@ describe("after the answer", () => {
|
||||
);
|
||||
expect(html).toContain('data-state="done"');
|
||||
expect(html).toMatch(
|
||||
/data-slot="coach-turn-steps-done"[^>]*>Thought process · 5 steps</,
|
||||
/data-slot="coach-turn-steps-done"[^>]*>Thought process \(5 steps\)</,
|
||||
);
|
||||
expect(html).not.toContain("text-shimmer");
|
||||
expect(html).not.toContain("waiting-dot");
|
||||
@@ -428,7 +428,7 @@ describe("after the answer", () => {
|
||||
<CoachTurnActivity activity={[ANSWER_DONE]} steps={[]} active={false} />,
|
||||
"de",
|
||||
);
|
||||
expect(de).toContain("Denkprozess · 1 Schritt<");
|
||||
expect(de).toContain("Denkprozess (1 Schritt)<");
|
||||
const pl = render(
|
||||
<CoachTurnActivity
|
||||
activity={[THINKING_DONE, FETCH_BP, ANSWER_DONE]}
|
||||
@@ -437,7 +437,7 @@ describe("after the answer", () => {
|
||||
/>,
|
||||
"pl",
|
||||
);
|
||||
expect(pl).toContain("Tok myślenia · 3 kroki<");
|
||||
expect(pl).toContain("Tok myślenia (3 kroki)<");
|
||||
});
|
||||
|
||||
it("an older message counts its steps, or the areas it drew on", () => {
|
||||
@@ -445,7 +445,7 @@ describe("after the answer", () => {
|
||||
render(
|
||||
<CoachTurnActivity activity={[]} steps={[BP, SLEEP]} active={false} />,
|
||||
),
|
||||
).toContain("Thought process · 2 steps<");
|
||||
).toContain("Thought process (2 steps)<");
|
||||
expect(
|
||||
render(
|
||||
<CoachTurnActivity
|
||||
@@ -455,7 +455,7 @@ describe("after the answer", () => {
|
||||
areas={["bp"]}
|
||||
/>,
|
||||
),
|
||||
).toContain("Thought process · 1 step<");
|
||||
).toContain("Thought process (1 step)<");
|
||||
});
|
||||
|
||||
it("says an answer is needed while a question waits, without shimmer", () => {
|
||||
@@ -681,7 +681,7 @@ describe("the visible row text", () => {
|
||||
),
|
||||
),
|
||||
),
|
||||
).toBe("Thought process · 5 steps");
|
||||
).toBe("Thought process (5 steps)");
|
||||
expect(
|
||||
textOf(
|
||||
rowHtml(render(<CoachTurnActivity activity={[]} steps={[]} active />)),
|
||||
|
||||
@@ -132,6 +132,10 @@ export function MoodFactorMetricCrosstab({
|
||||
const metricLabel = t(
|
||||
METRIC_LABEL_KEY[row.metricKey] ?? row.metricKey,
|
||||
);
|
||||
const pairLabel = t("insights.mood.factorCrosstab.pairLabel", {
|
||||
factor: factorLabel,
|
||||
metric: metricLabel,
|
||||
});
|
||||
// v1.32.26 — the weight ("kg") row follows the metric/imperial
|
||||
// preference: the unit symbol + the values (averages + delta, all in
|
||||
// kg, offset-free) convert together. Every other display is unitless
|
||||
@@ -168,12 +172,9 @@ export function MoodFactorMetricCrosstab({
|
||||
)}
|
||||
<span
|
||||
className="text-foreground min-w-0 flex-1 truncate"
|
||||
title={`${factorLabel} · ${metricLabel}`}
|
||||
title={pairLabel}
|
||||
>
|
||||
{t("insights.mood.factorCrosstab.pairLabel", {
|
||||
factor: factorLabel,
|
||||
metric: metricLabel,
|
||||
})}
|
||||
{pairLabel}
|
||||
</span>
|
||||
<span className="text-foreground shrink-0 text-sm font-semibold tabular-nums">
|
||||
{deltaText}
|
||||
|
||||
@@ -139,6 +139,10 @@ export function MoodTagMetricCrosstab({
|
||||
const metricLabel = t(
|
||||
METRIC_LABEL_KEY[row.metricKey] ?? row.metricKey,
|
||||
);
|
||||
const pairLabel = t("insights.mood.crosstab.pairLabel", {
|
||||
tag: tagLabel,
|
||||
metric: metricLabel,
|
||||
});
|
||||
const unit = t(UNIT_KEY[row.display]);
|
||||
const up = row.delta >= 0;
|
||||
const deltaText = `${up ? "+" : ""}${formatValue(row.delta, row.display, nf)} ${unit}`;
|
||||
@@ -160,12 +164,9 @@ export function MoodTagMetricCrosstab({
|
||||
)}
|
||||
<span
|
||||
className="text-foreground min-w-0 flex-1 truncate"
|
||||
title={`${tagLabel} · ${metricLabel}`}
|
||||
title={pairLabel}
|
||||
>
|
||||
{t("insights.mood.crosstab.pairLabel", {
|
||||
tag: tagLabel,
|
||||
metric: metricLabel,
|
||||
})}
|
||||
{pairLabel}
|
||||
</span>
|
||||
<span className="text-foreground shrink-0 text-sm font-semibold tabular-nums">
|
||||
{deltaText}
|
||||
|
||||
@@ -265,7 +265,7 @@ describe("<MedicationCard> — open overdue slot (v1.16.4)", () => {
|
||||
client,
|
||||
);
|
||||
|
||||
expect(html).toContain("Overdue ·");
|
||||
expect(html).toContain("Overdue since");
|
||||
expect(html).toContain("can still be taken");
|
||||
expect(html).toContain("text-warning");
|
||||
expect(html).not.toContain("Next intake: Tomorrow,");
|
||||
@@ -291,7 +291,7 @@ describe("<MedicationCard> — open overdue slot (v1.16.4)", () => {
|
||||
|
||||
expect(html).toContain("Next intake:");
|
||||
expect(html).toContain("Tomorrow");
|
||||
expect(html).not.toContain("Overdue ·");
|
||||
expect(html).not.toContain("Overdue since");
|
||||
expect(html).not.toContain("can still be taken");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -401,9 +401,14 @@ export function EnvironmentSection() {
|
||||
key={tr.id}
|
||||
className="flex items-center justify-between gap-2 p-2"
|
||||
>
|
||||
<span className="text-sm">
|
||||
{tr.label} · {fmt.dateShortSmartCalendar(tr.startDate)} –{" "}
|
||||
{fmt.dateShortSmartCalendar(tr.endDate)}
|
||||
<span className="min-w-0">
|
||||
<span className="block truncate text-sm">{tr.label}</span>
|
||||
<span className="text-muted-foreground block text-xs">
|
||||
{t("settings.sections.environment.travel.range", {
|
||||
start: fmt.dateShortSmartCalendar(tr.startDate),
|
||||
end: fmt.dateShortSmartCalendar(tr.endDate),
|
||||
})}
|
||||
</span>
|
||||
</span>
|
||||
<ConfirmButton
|
||||
slot="travel-remove"
|
||||
|
||||
@@ -79,7 +79,7 @@ describe("the list", () => {
|
||||
);
|
||||
expect(html).toContain('data-antigen="typhoid"');
|
||||
expect(html).toContain('data-antigen="hepatitis-a"');
|
||||
expect(html.match(/· Travel combo/g)).toHaveLength(2);
|
||||
expect(html.match(/>Travel combo</g)).toHaveLength(2);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ export function VaccinationDocumentSuggestion({
|
||||
: (candidate.vaccineName ?? t("vaccinations.suggestion.unnamed"));
|
||||
// A date stored at UTC midnight: render the calendar date, not the
|
||||
// instant (the previous evening west of UTC).
|
||||
return `${name} · ${formatCalendarDate(candidate.occurredAt.slice(0, 10), dateFormat, locale)}`;
|
||||
return `${name}, ${formatCalendarDate(candidate.occurredAt.slice(0, 10), dateFormat, locale)}`;
|
||||
};
|
||||
|
||||
const onPick = (candidate: VaccinationSuggestion) => {
|
||||
|
||||
@@ -209,7 +209,7 @@ function DoseRow({
|
||||
</span>
|
||||
) : null}
|
||||
{showIdentity && identity ? (
|
||||
<span className="text-muted-foreground">· {identity}</span>
|
||||
<span className="text-muted-foreground">{identity}</span>
|
||||
) : null}
|
||||
</div>
|
||||
<div className="text-muted-foreground flex flex-wrap items-center gap-x-2 gap-y-0.5 text-xs">
|
||||
|
||||
@@ -757,7 +757,7 @@ describe("doctor-report surgical history section", () => {
|
||||
);
|
||||
const text = await extractText(bytes);
|
||||
expect(text).toContain("Operationen und Eingriffe");
|
||||
expect(text).toMatch(/Knee · Links/);
|
||||
expect(text).toMatch(/Knee \(Links\)/);
|
||||
});
|
||||
|
||||
it("omits the section when there is no procedure", async () => {
|
||||
@@ -819,7 +819,7 @@ describe("doctor-report condition body site", () => {
|
||||
it("prints the site with its side in the report's language", async () => {
|
||||
const text = await render(CONDITIONS, "de");
|
||||
expect(text).toContain("Körperstelle");
|
||||
expect(text).toMatch(/Knee · Links/);
|
||||
expect(text).toMatch(/Knee \(Links\)/);
|
||||
});
|
||||
|
||||
it("keeps the old table when no condition names a site", async () => {
|
||||
|
||||
@@ -100,7 +100,7 @@ describe("readCoachCorrelations", () => {
|
||||
pValue: 0.001,
|
||||
qValue: 0.02,
|
||||
interpretation:
|
||||
"Higher time in daylight tends to go with higher next-day sleep duration in your data — a pattern worth watching, not a cause.",
|
||||
"Higher time in daylight tends to go with higher next-day sleep duration in your data. It is a pattern to watch, not a cause.",
|
||||
lagDays: 1,
|
||||
},
|
||||
],
|
||||
|
||||
@@ -345,7 +345,7 @@ describe("executeCoachTool", () => {
|
||||
lagDays: 1,
|
||||
n: 42,
|
||||
r: 0.31,
|
||||
note: "Higher time in daylight tends to go with higher next-day sleep duration in your data — a pattern worth watching, not a cause.",
|
||||
note: "Higher time in daylight tends to go with higher next-day sleep duration in your data. It is a pattern to watch, not a cause.",
|
||||
},
|
||||
],
|
||||
coincident: {
|
||||
|
||||
@@ -118,7 +118,7 @@ describe("formatRelationsBlock — cross-metric correlations, descriptive only",
|
||||
const rels: RelevantCorrelation[] = [
|
||||
{
|
||||
interpretation:
|
||||
"Higher time in daylight tends to go with higher next-day sleep duration in your data — a pattern worth watching, not a cause.",
|
||||
"Higher time in daylight tends to go with higher next-day sleep duration in your data. It is a pattern to watch, not a cause.",
|
||||
n: 42,
|
||||
r: 0.51,
|
||||
},
|
||||
|
||||
@@ -457,7 +457,7 @@ describe("generateMetricStatus — generation path", () => {
|
||||
vi.mocked(getRelevantCorrelationsForMetric).mockResolvedValueOnce([
|
||||
{
|
||||
interpretation:
|
||||
"Higher time in daylight tends to go with lower next-day resting heart rate in your data — a pattern worth watching, not a cause.",
|
||||
"Higher time in daylight tends to go with lower next-day resting heart rate in your data. It is a pattern to watch, not a cause.",
|
||||
n: 35,
|
||||
r: -0.46,
|
||||
},
|
||||
|
||||
@@ -157,8 +157,8 @@ describe("buildCoachReadStrip — the pattern line speaks the reader's language"
|
||||
// A sentence that is different but wrong is still a broken page.
|
||||
expect(note).toBe(
|
||||
"Wenn die Symptomstärke höher liegt, scheint die Schlafdauer am " +
|
||||
"Folgetag nach bisheriger Datenlage eher niedriger auszufallen — ein " +
|
||||
"Muster, das Beachtung verdient, keine Ursache.",
|
||||
"Folgetag nach bisheriger Datenlage eher niedriger auszufallen. Das ist " +
|
||||
"ein Muster, das Beachtung verdient, keine Ursache.",
|
||||
);
|
||||
});
|
||||
|
||||
@@ -170,8 +170,8 @@ describe("buildCoachReadStrip — the pattern line speaks the reader's language"
|
||||
expect(strip.driver).not.toBeNull();
|
||||
expect(strip.driver!.note).toBe(
|
||||
"Higher symptom severity looks like it goes with lower next-day sleep " +
|
||||
"duration in your data, on the evidence so far — a pattern worth " +
|
||||
"watching, not a cause.",
|
||||
"duration in your data, on the evidence so far. It is a pattern " +
|
||||
"to watch, not a cause.",
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user