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
+8 -6
View File
@@ -3,12 +3,14 @@ import clsx from 'clsx';
import { Sparkles, Maximize2, Minimize2, Minus, X } from 'lucide-react';
import { useWindowStore, type WindowState } from '@/store/windowStore';
import { AiChatPanel } from './AiChatPanel';
import { useTranslation } from 'react-i18next';
interface WindowProps {
window: WindowState;
}
export function Window({ window: win }: WindowProps) {
const { t } = useTranslation();
const {
closeWindow,
minimizeWindow,
@@ -106,8 +108,8 @@ export function Window({ window: win }: WindowProps) {
'p-1.5 rounded hover:bg-secondary-200',
win.aiChatVisible && 'bg-primary-100 text-primary-600'
)}
aria-label="KI Chat ein/aus"
title="KI Chat"
aria-label={t('window.kichateinaus')}
title={t('window.kichat')}
>
<Sparkles className="w-4 h-4" />
</button>
@@ -128,8 +130,8 @@ export function Window({ window: win }: WindowProps) {
<button
onClick={() => minimizeWindow(win.id)}
className="p-1.5 rounded hover:bg-secondary-200"
aria-label="Minimieren"
title="Minimieren"
aria-label={t('window.minimieren')}
title={t('window.minimieren')}
>
<Minus className="w-4 h-4" />
</button>
@@ -137,8 +139,8 @@ export function Window({ window: win }: WindowProps) {
<button
onClick={() => closeWindow(win.id)}
className="p-1.5 rounded hover:bg-danger-100 hover:text-danger-600"
aria-label="Schließen"
title="Schließen"
aria-label={t('window.schließen')}
title={t('window.schließen')}
>
<X className="w-4 h-4" />
</button>