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
+6 -3
View File
@@ -2,6 +2,7 @@ import React, { useState } from 'react';
import { NavLink, Outlet } from 'react-router-dom';
import { useUIStore } from '@/store/uiStore';
import { ChevronRight, ChevronDown, Bot, Zap, Brain, Cpu, Settings2, Activity, MessageSquare, ArrowLeft } from 'lucide-react';
import { useTranslation } from 'react-i18next';
interface AgentNode {
title: string;
@@ -23,6 +24,7 @@ const AGENT_TREE: AgentNode[] = [
];
function TreeItem({ node, depth }: { node: AgentNode; depth: number }) {
const { t } = useTranslation();
const [expanded, setExpanded] = useState(depth < 1);
const hasChildren = node.children && node.children.length > 0;
const paddingLeft = depth * 16 + 12;
@@ -70,6 +72,7 @@ function TreeItem({ node, depth }: { node: AgentNode; depth: number }) {
}
export function AgentsPage() {
const { t } = useTranslation();
const sidebarOpen = useUIStore((state) => state.sidebarOpen);
return (
@@ -80,14 +83,14 @@ export function AgentsPage() {
<button
onClick={() => window.location.href = '/start'}
className="p-1.5 rounded-md text-secondary-400 hover:bg-secondary-100 hover:text-secondary-700 flex items-center justify-center focus:outline-none"
aria-label="Zurück zur Startseite"
title="Zurück zur Startseite"
aria-label={t('agents.zurückzurstartseite')}
title={t('agents.zurückzurstartseite')}
>
<ArrowLeft className="w-4 h-4" />
</button>
<h1 className="text-xl font-bold text-secondary-900">Agenten</h1>
</div>
<nav className="space-y-0.5 overflow-y-auto" role="navigation" aria-label="Agenten Navigation">
<nav className="space-y-0.5 overflow-y-auto" role="navigation" aria-label={t('agents.agentennavigation')}>
{AGENT_TREE.map((node) => (
<TreeItem key={node.title} node={node} depth={0} />
))}