mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-11 13:52:20 +00:00
Copy polish: one pause dash, du-imperative errors, bare-question confirms, tokened micro-text
The German bundle's 109 spaced en-dash pauses join the em-dash norm (the two date-range placeholders stay ranges); the three straight-quote stragglers and three mixed-quote strings take German quotes; the eleven Bitte-Infinitiv validation errors speak du-imperative like the rest of the app; the two wirklich confirms become bare questions; the notification-status description trades its semicolon telegram style for two sentences in every locale; the Withings setup action shortens to the sibling single word. Twelve arbitrary text-[10px]/[11px] sites move onto the text-2xs/text-xs tokens; chart tooltips and the vendor calendar stay as they are.
This commit is contained in:
1 parent
09fbac3a33
commit
d33be187e6
17 files changed
+145
-145
No files matched your search
@@ -1732,7 +1732,7 @@ export function HealthChart({
|
||||
<h2 className="text-sm font-semibold">{title}</h2>
|
||||
)}
|
||||
{activeBucket !== "day" && (
|
||||
<span className="bg-muted/40 text-muted-foreground hidden rounded-md px-1.5 py-0.5 text-[10px] font-medium tracking-wide uppercase sm:inline-flex">
|
||||
<span className="bg-muted/40 text-muted-foreground text-2xs hidden rounded-md px-1.5 py-0.5 font-medium tracking-wide uppercase sm:inline-flex">
|
||||
{t(
|
||||
activeBucket === "week"
|
||||
? "charts.bucketWeekly"
|
||||
@@ -1749,7 +1749,7 @@ export function HealthChart({
|
||||
v1.4.19 A2 — hidden on mobile to free up the title row. */}
|
||||
{effectiveCompareBaseline !== "none" && hasComparisonData && (
|
||||
<span
|
||||
className="text-dose-accent bg-dose-accent/10 hidden rounded-md border border-current/30 px-1.5 py-0.5 text-[10px] font-medium tracking-wide uppercase sm:inline-flex"
|
||||
className="text-dose-accent bg-dose-accent/10 text-2xs hidden rounded-md border border-current/30 px-1.5 py-0.5 font-medium tracking-wide uppercase sm:inline-flex"
|
||||
data-slot="chart-compare-caption"
|
||||
>
|
||||
{t(
|
||||
@@ -1761,7 +1761,7 @@ export function HealthChart({
|
||||
)}
|
||||
{effectiveCompareBaseline !== "none" && !hasComparisonData && (
|
||||
<span
|
||||
className="text-muted-foreground bg-muted/40 hidden rounded-md px-1.5 py-0.5 text-[10px] font-medium tracking-wide sm:inline-flex"
|
||||
className="text-muted-foreground bg-muted/40 text-2xs hidden rounded-md px-1.5 py-0.5 font-medium tracking-wide sm:inline-flex"
|
||||
data-slot="chart-compare-unavailable"
|
||||
>
|
||||
{t(
|
||||
@@ -1825,7 +1825,7 @@ export function HealthChart({
|
||||
)}
|
||||
|
||||
{mini && (
|
||||
<div className="text-muted-foreground mb-1 text-[10px] font-medium tracking-wider uppercase">
|
||||
<div className="text-muted-foreground text-2xs mb-1 font-medium tracking-wider uppercase">
|
||||
{title}
|
||||
</div>
|
||||
)}
|
||||
|
||||
@@ -416,7 +416,7 @@ export function MedicationComplianceChart({
|
||||
{showTrendChip && trend && TrendIcon ? (
|
||||
<span
|
||||
className={cn(
|
||||
"bg-muted/40 inline-flex items-center gap-1 rounded-md px-1.5 py-0.5 text-[10px] font-medium tracking-wide uppercase",
|
||||
"bg-muted/40 text-2xs inline-flex items-center gap-1 rounded-md px-1.5 py-0.5 font-medium tracking-wide uppercase",
|
||||
trendColor,
|
||||
)}
|
||||
data-slot="medication-trend-chip"
|
||||
|
||||
@@ -1018,7 +1018,7 @@ export function MoodChart({
|
||||
data-slot="chart-mini"
|
||||
className="bg-card border-border rounded-md border p-2"
|
||||
>
|
||||
<div className="text-muted-foreground mb-1 text-[10px] font-medium tracking-wider uppercase">
|
||||
<div className="text-muted-foreground text-2xs mb-1 font-medium tracking-wider uppercase">
|
||||
{displayTitle}
|
||||
</div>
|
||||
{chartBody}
|
||||
@@ -1049,7 +1049,7 @@ export function MoodChart({
|
||||
v1.4.19 A2 — hidden on mobile to free up the title row. */}
|
||||
{effectiveCompareBaseline !== "none" && hasComparisonData && (
|
||||
<span
|
||||
className="text-dose-accent bg-dose-accent/10 hidden rounded-md border border-current/30 px-1.5 py-0.5 text-[10px] font-medium tracking-wide uppercase sm:inline-flex"
|
||||
className="text-dose-accent bg-dose-accent/10 text-2xs hidden rounded-md border border-current/30 px-1.5 py-0.5 font-medium tracking-wide uppercase sm:inline-flex"
|
||||
data-slot="chart-compare-caption"
|
||||
>
|
||||
{t(
|
||||
@@ -1061,7 +1061,7 @@ export function MoodChart({
|
||||
)}
|
||||
{effectiveCompareBaseline !== "none" && !hasComparisonData && (
|
||||
<span
|
||||
className="text-muted-foreground bg-muted/40 hidden rounded-md px-1.5 py-0.5 text-[10px] font-medium tracking-wide sm:inline-flex"
|
||||
className="text-muted-foreground bg-muted/40 text-2xs hidden rounded-md px-1.5 py-0.5 font-medium tracking-wide sm:inline-flex"
|
||||
data-slot="chart-compare-unavailable"
|
||||
>
|
||||
{t(
|
||||
|
||||
@@ -29,7 +29,7 @@ export function MessageTokenFooter({ tokens, model }: MessageTokenFooterProps) {
|
||||
return (
|
||||
<p
|
||||
data-slot="coach-token-footer"
|
||||
className="text-muted-foreground text-[11px] tabular-nums"
|
||||
className="text-muted-foreground text-xs tabular-nums"
|
||||
>
|
||||
{label}
|
||||
</p>
|
||||
|
||||
@@ -174,7 +174,7 @@ export function CoverageMeter({
|
||||
data-slot="coverage-meter-label"
|
||||
className={cn(
|
||||
"text-muted-foreground tabular-nums",
|
||||
size === "md" ? "text-xs" : "text-[11px]",
|
||||
size === "md" ? "text-xs" : "text-2xs",
|
||||
)}
|
||||
>
|
||||
{axisLabel ??
|
||||
|
||||
@@ -231,7 +231,7 @@ function ContributorRow({ contributor }: { contributor: AnatomyContributor }) {
|
||||
</span>
|
||||
<span
|
||||
data-slot="anatomy-contributor-value"
|
||||
className="text-muted-foreground text-[11px] tabular-nums"
|
||||
className="text-muted-foreground text-xs tabular-nums"
|
||||
>
|
||||
{present
|
||||
? t("insights.derived.anatomy.contributorValue", {
|
||||
|
||||
@@ -116,7 +116,7 @@ function MoodCorrelationCard({
|
||||
// below the title on <sm (see the sm:hidden twin under the
|
||||
// header); only the compact badge stays pinned right.
|
||||
<div className="flex min-w-0 items-center gap-1.5">
|
||||
<Badge variant="outline" className="text-[10px]">
|
||||
<Badge variant="outline" className="text-2xs">
|
||||
{t(STRENGTH_KEY[data.result.strength])}
|
||||
</Badge>
|
||||
{/* v1.12.4 (C4) — the "{n} paired days · r" line sat under the
|
||||
|
||||
@@ -173,7 +173,7 @@ describe("<InjectionSitePicker>", () => {
|
||||
);
|
||||
|
||||
expect(html).toContain(
|
||||
'aria-label="Bauch, unten links – empfohlene nächste Stelle"',
|
||||
'aria-label="Bauch, unten links — empfohlene nächste Stelle"',
|
||||
);
|
||||
expect(html).toContain('aria-label="Bauch, unten rechts"');
|
||||
expect(html).toContain('aria-label="Bauch, oben links"');
|
||||
|
||||
@@ -384,7 +384,7 @@ export function MoodForm({ onSuccess, onCancel, footerSlot }: MoodFormProps) {
|
||||
className="h-7 w-7 sm:h-8 sm:w-8"
|
||||
aria-hidden="true"
|
||||
/>
|
||||
<span className="text-[10px] leading-tight sm:text-xs">
|
||||
<span className="text-2xs leading-tight sm:text-xs">
|
||||
{t(level.labelKey)}
|
||||
</span>
|
||||
</button>
|
||||
|
||||
@@ -1064,7 +1064,7 @@ export function MoodList({ onAddFirst }: MoodListProps = {}) {
|
||||
<span className="text-lg font-semibold tabular-nums">
|
||||
{MOOD_SCORES[level]}
|
||||
</span>
|
||||
<span className="text-[10px] leading-tight sm:text-xs">
|
||||
<span className="text-2xs leading-tight sm:text-xs">
|
||||
{t(MOOD_LABEL_KEYS[level])}
|
||||
</span>
|
||||
</button>
|
||||
|
||||
@@ -72,7 +72,7 @@ describe("<SourceCardGrid> Withings card", () => {
|
||||
expect(html).toContain('data-testid="source-card-withings-setup"');
|
||||
expect(html).toContain('href="/settings/integrations#withings"');
|
||||
expect(html).not.toContain('href="/api/withings/connect"');
|
||||
expect(html).toContain("Set up in Settings");
|
||||
expect(html).toContain("Set up</a>");
|
||||
});
|
||||
|
||||
it("also redirects to Settings when the status envelope hasn't loaded yet", () => {
|
||||
|
||||
Reference in new issue
Block a user