i18n(achievements,admin): drop redundant labels and grammar nits

A few small quality wins bundled together:

- The 1-day achievement descriptions read "for 1 consecutive
  days" / "1 Tage in Folge" — singular/plural mismatch that
  was awkward in both languages. Hand-tuned the five 1-day
  variants to "for 1 day" / "an einem Tag"; 7d / 30d copies
  unchanged.
- The two "Two hundred …" / "Zweihundert …" badges now use
  the numeral 200 to match every other count-based badge.
- /admin/integrations toggle rows ("Umami" / "GlitchTip" lines
  that duplicated the card header) drop the literal product
  name and just show the action: the existing
  `umamiEnabled` / `glitchtipEnabled` description copy is
  promoted to the toggle's primary label. SettingsToggle's
  description prop becomes optional to support that.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Marc-André BombeckandClaude Opus 4.7 committed 2026-05-10 13:52:31 +02:00
1 parent 70ebe32b27
commit 98cd13c8e0
5 files changed
+20 -20

No files matched your search

+7 -7
View File
@@ -2048,23 +2048,23 @@
},
"onTimePerfect1": {
"title": "Zeitfenster 1T",
"description": "Nimm 1 Tage in Folge alle Medikamente im Zeitfenster ein."
"description": "Nimm an einem Tag alle Medikamente im Zeitfenster ein."
},
"compliance801": {
"title": "Treue 80% · 1T",
"description": "Erreiche 1 Tage in Folge eine 30-Tage-Einnahmetreue von mindestens 80%."
"description": "Erreiche an einem Tag eine 30-Tage-Einnahmetreue von mindestens 80%."
},
"bmiGreen1": {
"title": "BMI im Grün · 1T",
"description": "Halte deinen BMI 1 Tage in Folge im Normalbereich."
"description": "Halte deinen BMI an einem Tag im Normalbereich."
},
"bpGreen1": {
"title": "Blutdruck im Grün · 1T",
"description": "Halte deinen Blutdruck 1 Tage in Folge im Normalbereich."
"description": "Halte deinen Blutdruck an einem Tag im Normalbereich."
},
"pulseGreen1": {
"title": "Puls im Grün · 1T",
"description": "Halte deinen Ruhepuls 1 Tage in Folge im Normalbereich."
"description": "Halte deinen Ruhepuls an einem Tag im Normalbereich."
},
"onTimePerfect7": {
"title": "Zeitfenster 7T",
@@ -2171,7 +2171,7 @@
"description": "Erfasse 50 Gewichtsmessungen."
},
"weight200": {
"title": "Zweihundert Wiegungen",
"title": "200 Wiegungen",
"description": "Erfasse 200 Gewichtsmessungen."
},
"bpFirst": {
@@ -2183,7 +2183,7 @@
"description": "Erfasse 50 Blutdruckmessungen."
},
"bp200": {
"title": "Zweihundert Blutdruckmessungen",
"title": "200 Blutdruckmessungen",
"description": "Erfasse 200 Blutdruckmessungen."
},
"pulseFirst": {
+7 -7
View File
@@ -2048,23 +2048,23 @@
},
"onTimePerfect1": {
"title": "On-time 1d",
"description": "Take all medications on time for 1 consecutive days."
"description": "Take all medications on time for 1 day."
},
"compliance801": {
"title": "80% adherence · 1d",
"description": "Reach at least 80% 30-day adherence for 1 consecutive days."
"description": "Reach at least 80% 30-day adherence for 1 day."
},
"bmiGreen1": {
"title": "BMI green · 1d",
"description": "Keep your BMI in the normal range for 1 consecutive days."
"description": "Keep your BMI in the normal range for 1 day."
},
"bpGreen1": {
"title": "BP green · 1d",
"description": "Keep your blood pressure in the normal range for 1 consecutive days."
"description": "Keep your blood pressure in the normal range for 1 day."
},
"pulseGreen1": {
"title": "Pulse green · 1d",
"description": "Keep your resting pulse in the normal range for 1 consecutive days."
"description": "Keep your resting pulse in the normal range for 1 day."
},
"onTimePerfect7": {
"title": "On-time 7d",
@@ -2171,7 +2171,7 @@
"description": "Record 50 weight measurements."
},
"weight200": {
"title": "Two hundred weigh-ins",
"title": "200 weigh-ins",
"description": "Record 200 weight measurements."
},
"bpFirst": {
@@ -2183,7 +2183,7 @@
"description": "Record 50 blood-pressure measurements."
},
"bp200": {
"title": "Two hundred BP readings",
"title": "200 BP readings",
"description": "Record 200 blood-pressure measurements."
},
"pulseFirst": {
+4 -2
View File
@@ -179,7 +179,7 @@ export function SettingsToggle({
disabled,
}: {
label: string;
description: string;
description?: string;
icon?: React.ComponentType<{ className?: string }>;
checked: boolean;
onCheckedChange: (checked: boolean) => void;
@@ -191,7 +191,9 @@ export function SettingsToggle({
{Icon && <Icon className="text-muted-foreground h-4 w-4" />}
<div>
<p className="text-sm font-medium">{label}</p>
<p className="text-muted-foreground text-xs">{description}</p>
{description && (
<p className="text-muted-foreground text-xs">{description}</p>
)}
</div>
</div>
<Switch
+1 -2
View File
@@ -92,8 +92,7 @@ export function GlitchtipSection() {
<div className="mt-4 space-y-3">
<SettingsToggle
label="GlitchTip"
description={t("admin.glitchtipEnabled")}
label={t("admin.glitchtipEnabled")}
icon={AlertTriangle}
checked={settings?.glitchtipEnabled ?? false}
onCheckedChange={(checked) =>
+1 -2
View File
@@ -95,8 +95,7 @@ export function UmamiSection() {
<div className="mt-4 space-y-3">
<SettingsToggle
label="Umami"
description={t("admin.umamiEnabled")}
label={t("admin.umamiEnabled")}
icon={Activity}
checked={settings?.umamiEnabled ?? false}
onCheckedChange={(checked) =>