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
@@ -1,6 +1,7 @@
import { useState } from 'react';
import { useSuggestions } from '@/api/aiProactive';
import { SuggestionCard } from '@/components/ai/SuggestionCard';
import { useTranslation } from 'react-i18next';
interface SuggestionSidebarProps {
isOpen: boolean;
@@ -20,6 +21,7 @@ const filterOptions = [
* Used inside the AISidebar proactive tab.
*/
export function SuggestionList() {
const { t } = useTranslation();
const { suggestions, connected, dismiss, act } = useSuggestions();
const [filter, setFilter] = useState<string>('all');
@@ -64,8 +66,8 @@ export function SuggestionList() {
{filteredSuggestions.length === 0 ? (
<div className="flex flex-col items-center justify-center h-full text-secondary-400">
<div className="text-4xl mb-3">🤖</div>
<p className="text-sm">Keine Vorschläge vorhanden</p>
<p className="text-xs mt-1">Die KI analysiert deinen Kontext...</p>
<p className="text-sm">{t('suggestionSidebar.keinevorschlägevorhanden')}</p>
<p className="text-xs mt-1">{t('suggestionSidebar.diekianalysiertdeinenkontext')}</p>
</div>
) : (
<div className="space-y-2">
@@ -89,6 +91,7 @@ export function SuggestionList() {
* Uses SuggestionList internally.
*/
export function SuggestionSidebar({ isOpen, onClose }: SuggestionSidebarProps) {
const { t } = useTranslation();
return (
<>
{/* Overlay */}
@@ -108,7 +111,7 @@ export function SuggestionSidebar({ isOpen, onClose }: SuggestionSidebarProps) {
{/* Header */}
<div className="flex items-center justify-between p-4 border-b border-gray-200">
<div className="flex items-center gap-2">
<h2 className="font-semibold text-gray-800">KI Vorschläge</h2>
<h2 className="font-semibold text-gray-800">{t('suggestionSidebar.kivorschläge')}</h2>
</div>
<button
onClick={onClose}