feat(i18n): round-2 sweep — 488 residual strings migrated, markup fidelity restored (#1352)

- 51 fix agents covered every dirty batch from the round-1 verifiers:
  helper-function labels (roles, statuses, relative time), constant
  label maps (SETTINGS_SECTIONS, PROVIDER_INFO, EVENT_TYPE_LABELS),
  TUI help overlay + tab labels, toasts, placeholders, aria-labels
- Inline markup flattened by round 1 restored with <Trans>
  (DbCorruptionBanner storage-docs link, UpdateAvailableBanner code chip)
- Catalogs merged: +527 en keys across 5 locales; CLI bundles + app
  locale tree regenerated (6 locales)
- All 23 sweep-caused test regressions fixed: delta vs the clean-main
  baseline is now zero (remaining 4 local failures reproduce identically
  on origin/main; CI-green upstream)
- typecheck/lint clean; TUI 82/82, core locale 9/9

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-06-03 20:52:44 -07:00
parent 99dd89c029
commit a2e96b132a
100 changed files with 3983 additions and 781 deletions

View File

@@ -57,10 +57,10 @@ function formatRelativeTime(timestamp: string | undefined, t: TFunction<"app">):
const hours = Math.floor(minutes / 60);
const days = Math.floor(hours / 24);
if (days > 0) return `${days}d ago`;
if (hours > 0) return `${hours}h ago`;
if (minutes > 0) return `${minutes}m ago`;
if (seconds > 10) return `${seconds}s ago`;
if (days > 0) return t("executor.daysAgo", "{{count}}d ago", { count: days });
if (hours > 0) return t("executor.hoursAgo", "{{count}}h ago", { count: hours });
if (minutes > 0) return t("executor.minutesAgo", "{{count}}m ago", { count: minutes });
if (seconds > 10) return t("executor.secondsAgo", "{{count}}s ago", { count: seconds });
return t("executor.justNow", "just now");
}