feat(i18n): migrate hardcoded German strings to t() across 104 components/pages — AST-based batch with re-parse gate, 423 new de.json keys; tsc clean; vitest failures byte-identical to clean-tree baseline (pre-existing)

This commit is contained in:
Agent Zero
2026-08-27 01:43:06 +02:00
parent 5680179260
commit 4cb5298768
105 changed files with 1204 additions and 459 deletions
@@ -20,6 +20,7 @@ import {
type LucideIcon,
} from 'lucide-react';
import type { NotificationItem as NotificationItemType } from '@/api/notifications';
import { useTranslation } from 'react-i18next';
// ── helpers ──
@@ -78,6 +79,7 @@ export interface NotificationItemProps {
}
export function NotificationItem({ notification, onMarkRead }: NotificationItemProps) {
const { t } = useTranslation();
const isUnread = notification.read_at == null;
const Icon = getIconForType(notification.type);
@@ -123,8 +125,8 @@ export function NotificationItem({ notification, onMarkRead }: NotificationItemP
{isUnread && (
<span
className="flex-shrink-0 w-2 h-2 rounded-full bg-primary-500"
aria-label="ungelesen"
title="ungelesen"
aria-label={t('notificationItem.ungelesen')}
title={t('notificationItem.ungelesen')}
/>
)}
</div>