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
+3 -1
View File
@@ -13,6 +13,7 @@ import { PasswordResetConfirmPage } from '@/pages/PasswordResetConfirm';
import { Loader2 } from 'lucide-react';
import { PluginRouteRenderer } from '@/components/plugins/PluginRouteRenderer';
import { ErrorBoundary } from '@/components/common/ErrorBoundary';
import { useTranslation } from 'react-i18next';
// Lazy-loaded pages (code-splitting)
const DashboardPage = React.lazy(() => import('@/pages/Dashboard').then(m => ({ default: m.DashboardPage })));
@@ -91,8 +92,9 @@ const SystemDashboardPage = React.lazy(() => import('@/pages/SystemDashboard').t
/** Centered spinner fallback for lazy-loaded routes */
function PageLoader() {
const { t } = useTranslation();
return (
<div className="flex items-center justify-center min-h-[50vh]" role="status" aria-label="Seite wird geladen">
<div className="flex items-center justify-center min-h-[50vh]" role="status" aria-label={t('index.seitewirdgeladen')}>
<Loader2 className="animate-spin h-8 w-8 text-primary-500" aria-hidden="true" />
</div>
);