import type { TranslationDictionary } from '@/types/i18n.types';

export const de: TranslationDictionary = {
  common: {
    save: 'Speichern',
    cancel: 'Abbrechen',
    delete: 'Löschen',
    edit: 'Bearbeiten',
    create: 'Erstellen',
    search: 'Suche',
    filter: 'Filter',
    loading: 'Wird geladen...',
    noResults: 'Keine Ergebnisse gefunden',
    confirm: 'Bestätigen',
    back: 'Zurück',
    next: 'Weiter',
    previous: 'Vorherige',
    close: 'Schließen',
    retry: 'Erneut versuchen',
    error: 'Fehler',
    success: 'Erfolg',
    warning: 'Warnung',
    info: 'Info',
    healthy: 'Funktionsfähig',
    degraded: 'Beeinträchtigt',
    unhealthy: 'Nicht funktionsfähig',
    up: 'Online',
    down: 'Offline',
    responseTime: 'Antwortzeit',
    unknown: 'Unbekannt',
    operational: 'Betriebsbereit',
    notAvailable: 'k. A.',
    yes: 'Ja',
    no: 'Nein',
    never: 'Nie',
    accessDenied: 'Sie haben keine Berechtigung, auf diese Seite zuzugreifen.',
    brandName: 'Claw',
    brandVersion: 'Claw v{version}',
    select: 'Auswählen',
    download: 'Herunterladen',
    noDataAvailable: 'Keine Daten verfügbar',
    showingPage: 'Seite {page} von {total} wird angezeigt',
  },
  auth: {
    login: 'Anmelden',
    logout: 'Abmelden',
    email: 'E-Mail',
    password: 'Passwort',
    loginTitle: 'Bei Claw anmelden',
    loginSubtitle: 'Geben Sie Ihre Zugangsdaten ein, um fortzufahren',
    loginButton: 'Anmelden',
    logoutButton: 'Abmelden',
    sessionExpired: 'Ihre Sitzung ist abgelaufen. Bitte melden Sie sich erneut an.',
    invalidCredentials: 'Ungültige E-Mail oder Passwort',
    welcomeTitle: 'Willkommen bei Claw',
    welcomeSubtitle: 'KI-Orchestrierungsplattform',
    passwordPlaceholder: 'Passwort eingeben',
    signingIn: 'Anmeldung läuft...',
    loginFailed: 'Anmeldung fehlgeschlagen. Bitte erneut versuchen.',
    tagline: 'Claw – Local-first KI-Orchestrierung',
    authenticating: 'Authentifizierung läuft...',
    emailPlaceholder: 'you@example.com',
  },
  nav: {
    dashboard: 'Übersicht',
    chat: 'Chat',
    compareModels: 'Modelle vergleichen',
    consensusMode: 'Konsensmodus',
    escalationChain: 'Eskalationskette',
    repairLab: 'Repair-Labor',
    decomposeLab: 'Aufgabenzerlegung',
    bestOfNLab: 'Best-of-N-Generierung',
    verifierLab: 'Verifizierer',
    pipelineLab: 'Pipeline-Labor',
    costEnsemble: 'Kostenbewusstes Ensemble',
    rolePackLab: 'Rollen-Paket',
    connectors: 'Konnektoren',
    models: 'Modelle',
    modelCatalog: 'Modellkatalog',
    modelLocalFrontier: 'Frontier-Modelle',
    localModels: 'Lokale Modelle',
    routing: 'Routing',
    replayLab: 'Replay-Labor',
    recoveryLab: 'Recovery-Engine',
    adaptiveInsights: 'Adaptive Einblicke',
    memory: 'Speicher',
    context: 'Kontext-Packs',
    files: 'Dateien',
    observability: 'Beobachtbarkeit',
    audits: 'Audit-Logs',
    logs: 'Protokolle',
    admin: 'Admin',
    settings: 'Einstellungen',
    workspace: 'Arbeitsbereich',
    workspaceActions: 'Aktionen',
    workspaceApprovals: 'Genehmigungen',
    workspaceSyncHealth: 'Sync-Status',
    agent: 'Agent',
    agentTerminal: 'Terminal',
    agentRepos: 'Repositories',
    agentCapabilities: 'Fähigkeiten',
    agentActivity: 'Aktivität',
    agentRecipes: 'Rezepte',
    agentMarketplace: 'Marktplatz',
    agentActivityMemory: 'Aktivitäts-Memory',
    discovery: 'Modell-Discovery',
    workspaceProviders: 'Provider',
    workspaceAppConfigs: 'App-Konfigurationen',
    workspaceGmail: 'Gmail',
    workspaceJira: 'Jira',
    workspaceSourceControl: 'Quellcodeverwaltung',
    workspaceSlack: 'Slack',
    workspaceDocs: 'Dokumente',
    workspaceConfluence: 'Confluence',
    workspaceFigma: 'Figma',
    workspaceWorkflows: 'Workflows',
    researchProviders: 'Research-Provider',
    researchRuns: 'Research-Läufe',
    research: 'Recherche',
    workspaceInbox: 'Posteingang',
    workspaceSemanticSearch: 'Semantische Suche',
    workspaceDigest: 'Zusammenfassung',
    workspaceAutomationPreferences: 'Automatisierungseinstellungen',
    workspaceEmailSignatures: 'E-Mail-Signaturen',
    workspaceEmailTemplates: 'E-Mail-Vorlagen',
    workspaceImplHandoffs: 'Coding-Übergaben',
    adminAiActionPolicies: 'KI-Aktionsrichtlinien',
    adminSuggestionRules: 'Vorschlagsregeln',
    adminWebhookDeliveries: 'Webhook-Auslieferungen',
  },
  chat: {
    newThread: 'Neuer Chat',
    threads: 'Threads',
    searchThreads: 'Threads suchen...',
    noThreads: 'Noch keine Threads',
    noThreadsDesc: 'Starten Sie eine neue Konversation, um loszulegen',
    sendMessage: 'Nachricht senden',
    typeMessage: 'Nachricht eingeben...',
    deleteThread: 'Thread löschen',
    deleteThreadConfirm: 'Sind Sie sicher, dass Sie diesen Thread löschen möchten?',
    threadCreated: 'Thread erstellt',
    threadCreateFailed: 'Thread konnte nicht erstellt werden',
    threadDeleted: 'Thread gelöscht',
    threadDeleteFailed: 'Thread konnte nicht gelöscht werden',
    threadUpdateFailed: 'Thread konnte nicht aktualisiert werden',
    messageSendFailed: 'Nachricht konnte nicht gesendet werden',
    feedbackFailed: 'Feedback konnte nicht gespeichert werden',
    regenerateFailed: 'Nachricht konnte nicht neu generiert werden',
    aiThinking: 'KI denkt nach...',
    fallbackRetrying: 'Wiederholung mit Fallback...',
    providerFailed: 'fehlgeschlagen',
    tryingProvider: 'versucht',
    allProvidersFailed: 'Alle Provider konnten keine Antwort generieren',
    imageGeneration: 'Bildgenerierung',
    generatedImage: 'Generiertes Bild',
    downloadImage: 'Bild herunterladen',
    fileGeneration: 'Dateigenerierung',
    generatingFile: 'Datei wird generiert...',
    fileGenerationFailed: 'Dateigenerierung fehlgeschlagen',
    downloadFile: 'Datei herunterladen',
    convertingFile: 'Datei wird konvertiert',
    providerModel: 'Provider / Modell',
    pinThread: 'Thread anheften',
    unpinThread: 'Thread lösen',
    archiveThread: 'Thread archivieren',
    unarchiveThread: 'Archivierung aufheben',
    threadPinned: 'Thread angeheftet',
    threadUnpinned: 'Thread gelöst',
    threadArchived: 'Thread archiviert',
    threadUnarchived: 'Archivierung aufgehoben',
    pinFailed: 'Anheft-Status konnte nicht aktualisiert werden',
    archiveFailed: 'Archiv-Status konnte nicht aktualisiert werden',
    showArchived: 'Archivierte anzeigen',
    hideArchived: 'Archivierte ausblenden',
    provenance: 'Nachrichtenherkunft',
    provenanceProvider: 'Anbieter',
    provenanceModel: 'Modell',
    provenanceLatency: 'Latenz',
    provenanceInputTokens: 'Eingabe-Tokens',
    provenanceOutputTokens: 'Ausgabe-Tokens',
    provenanceEstimatedCost: 'Geschätzte Kosten',
    provenanceRoutingMode: 'Routing-Modus',
    provenanceFallbackUsed: 'Fallback verwendet',
    provenanceYes: 'Ja',
    provenanceNo: 'Nein',
    globalSearch: 'Threads durchsuchen',
    globalSearchPlaceholder: 'Alle Threads durchsuchen...',
    globalSearchNoResults: 'Keine Threads gefunden',
    systemPrompt: 'System-Prompt',
    systemPromptPlaceholder: 'Anweisungen für die KI...',
    temperature: 'Temperatur',
    temperatureDescription:
      'Steuert die Zufälligkeit. Niedriger = fokussierter, höher = kreativer.',
    maxTokens: 'Max. Tokens',
    maxTokensDescription: 'Maximale Länge der KI-Antwort.',
    threadSettings: 'Thread-Einstellungen',
    preferredModel: 'Standard-KI-Modell',
    preferredModelDescription:
      'Standardmodell für diesen Thread. Kann pro Nachricht überschrieben werden.',
    settingsSaved: 'Thread-Einstellungen gespeichert',
    helpful: 'Hilfreich',
    notHelpful: 'Nicht hilfreich',
    feedbackSaved: 'Feedback gespeichert',
    attachFiles: 'Dateien anhängen',
    noFiles: 'Noch keine Dateien hochgeladen',
    selectedFiles: '{count} Datei(en) angehängt',
    contextPacks: 'Kontext-Packs',
    contextPacksDescription:
      'Kontext-Packs auswählen, die in diesem Thread verwendet werden sollen.',
    noContextPacks: 'Noch keine Kontext-Packs erstellt',
    reRouted: 'Umgeleitet',
    reRoutedFrom: 'Umgeleitet von {provider}/{model}',
    weakResponse: 'Schwache Antwort erkannt',
    qualityScore: 'Qualität: {score}%',
    judgeReferee: 'Richter & Schiedsrichter',
    judgeRefereeDescription:
      'KI-gestützte Kritik und Verifizierung von Antworten für höhere Genauigkeit aktivieren.',
    judgeVerified: 'Verifiziert',
    judgeRevised: 'Überarbeitet',
    judgeEscalated: 'Eskaliert',
    judgeCriticFeedback: 'Kritiker-Feedback',
    judgeReasoning: 'Judge-Begründung',
    judgeEvaluating: 'Antwort wird verifiziert...',
    judgeModelLabel: 'Judge-Modell',
    judgeModelAuto: 'Auto (qwen3:1.7b)',
    judgeModelDescription: 'Lokales Modell für das endgültige Urteil überschreiben',
    judgeOpenReview: 'Judge-Antwort anzeigen',
    judgeReviewTitle: 'Judge-Überprüfung',
    judgeReviewDescription:
      'Ursprüngliche Antwort, Judge-Entscheidung und die vom Judge generierte Antwort prüfen.',
    judgeDecisionLabel: 'Entscheidung',
    judgeConfidenceLabel: 'Konfidenz',
    judgeSummary: 'Judge-Zusammenfassung',
    judgeResponse: 'Judge-Antwort',
    judgeOriginalAnswer: 'Ursprüngliche Antwort',
    judgeRevisedAnswer: 'Überarbeitete Antwort',
    judgeEscalatedAnswer: 'Eskalierte Antwort',
    judgeExecutionModel: 'Ausführungsmodell',
    judgeJudgeModel: 'Judge-Modell',
    judgeCriticModel: 'Kritiker-Modell',
    judgeCriticScore: 'Kritiker-Score',
    judgeJudgeLatency: 'Judge-Latenz',
    judgeTotalLatency: 'Gesamt-Überprüfungslatenz',
    judgeRecommendedChanges: 'Empfohlene Änderungen',
    judgeNoCriticFeedback: 'Für diese Überprüfung wurde kein Kritiker-Feedback erfasst.',
    judgeResponseTypeSummary: 'Zusammenfassung',
    judgeResponseTypeRevisedAnswer: 'Überarbeitete Antwort',
    judgeResponseTypeEscalatedAnswer: 'Eskalierte Antwort',
    judgeResponseTypeVerificationNote: 'Verifizierungshinweis',
    qualityThreshold: 'Qualitätsschwellenwert',
    qualityThresholdDescription:
      'Mindestqualitäts-Score vor Umleitung (0 = alle akzeptieren, 1 = sehr streng)',
    maxReRouteAttempts: 'Max. Umleitungsversuche',
    maxReRouteAttemptsDescription: 'Maximale Anzahl an Umleitungsversuchen pro Nachricht (0-5)',
    reRouteReasonShort: 'Zu kurz',
    reRouteReasonRefusal: 'Ablehnung erkannt',
    reRouteReasonRepetition: 'Übermäßige Wiederholung',
    reRouteReasonEcho: 'Echo des Prompts',
    reRouteReasonLowWords: 'Zu wenige Wörter',
    backToThreads: 'Zurück zu Threads',
    loadingThread: 'Thread wird geladen...',
    selectOrStartTitle: 'Thread auswählen oder neuen Chat starten',
    selectOrStartDesc:
      'Wählen Sie eine bestehende Konversation aus der Seitenleiste oder erstellen Sie eine neue, um mit Ihren konfigurierten KI-Modellen zu interagieren.',
    untitled: 'Ohne Titel',
    attachedFile: 'Angehängte Datei',
    beginningOfConversation: 'Anfang der Unterhaltung',
    composerPlaceholder: 'Nachricht eingeben...',
    currentAiProgress: 'Aktueller KI-Fortschritt',
    fileGenerationCancelled: 'Dateierstellung abgebrochen',
    fileGenerationFailedRetry: 'Dateierstellung fehlgeschlagen. Erneut versuchen?',
    generationCancelled: 'Generierung abgebrochen',
    imageGenerationFailedRetry: 'Bildgenerierung fehlgeschlagen. Erneut versuchen?',
    judge: 'Bewerter',
    live: 'Live',
    loadingImage: 'Bild wird geladen...',
    loadingMessages: 'Nachrichten werden geladen...',
    loadingMoreThreads: 'Weitere Threads werden geladen...',
    loadingOlderMessages: 'Ältere Nachrichten werden geladen...',
    loadingThreads: 'Threads werden geladen...',
    manyMemories: '{count} Erinnerungen',
    modelThinking: 'Modell denkt nach...',
    noMatchingThreads: 'Keine passenden Threads',
    noMessagesYet: 'Noch keine Nachrichten',
    noVisibleAnswer: 'Keine sichtbare Antwort',
    oneMemory: '1 Erinnerung',
    open: 'Öffnen',
    preparingDownload: 'Download wird vorbereitet...',
    regenerate: 'Neu generieren',
    searching: 'Suche läuft...',
    threadActions: 'Thread-Aktionen',
    toggleProvenance: 'Herkunft umschalten',
    tryAnotherModel: 'Anderes Modell versuchen',
    tryingFallback: 'Fallback wird versucht...',
    verifyingWith: 'Verifizierung mit {model}',
    visibleAiProgress: 'Sichtbarer KI-Fortschritt',
    useMemoryLabel: 'Erinnerung in diesem Gespräch verwenden',
    useMemoryDescription: 'Wenn deaktiviert, werden keine Erinnerungen in den Prompt eingefügt.',
    useContextLabel: 'Kontextpakete in diesem Gespräch verwenden',
    useContextDescription: 'Wenn deaktiviert, werden angehängte Pakete ignoriert.',
  },
  receipt: {
    openLabel: 'Zeige, was die KI verwendet hat',
    contextUsed: 'Kontext verwendet',
    dialogTitle: 'Warum diese Antwort',
    dialogDescription: 'Erinnerungen und Paketelemente, die diese Antwort beeinflusst haben.',
    loading: 'Beleg wird geladen...',
    notAvailable: 'Für diese Nachricht ist kein Beleg verfügbar.',
    memoriesCount: '{value} Erinnerungen',
    packItemsCount: '{value} Paketelemente',
    tokenBudget: 'Tokens: {used} / {total}',
    memoriesHeading: 'Erinnerungen',
    packItemsHeading: 'Paketelemente',
    warningsHeading: 'Warnungen',
    scoreLabel: 'Bewertung {value}',
    pinnedBadge: 'angeheftet',
    redactedPlaceholder: '(redigiert — Inhalt verborgen)',
  },
  preview: {
    openLabel: 'Kontext-Vorschau',
    dialogTitle: 'Was die KI sehen würde',
    dialogDescription:
      'Probelauf des Abrufs von Erinnerungen + Kontextpaketen für den aktuellen Entwurf.',
    loading: 'Vorschau wird erstellt...',
    failed: 'Vorschau fehlgeschlagen; das nächste Senden funktioniert trotzdem.',
    empty: 'Für diesen Entwurf wird kein Kontext eingefügt.',
    memoryCount: '{value} Erinnerungen',
    packCount: '{value} Paketelemente',
    tokenBudget: 'Tokens: {used} / {total}',
    memoriesHeading: 'Erinnerungen',
    packItemsHeading: 'Paketelemente',
    redactedPlaceholder: '(redigiert — Inhalt verborgen)',
  },
  connectors: {
    title: 'Konnektoren',
    description: 'Verwalten Sie Ihre KI-Provider-Verbindungen',
    createConnector: 'Konnektor erstellen',
    editConnector: 'Konnektor bearbeiten',
    deleteConnector: 'Konnektor löschen',
    testConnection: 'Verbindung testen',
    testingConnection: 'Wird getestet...',
    syncModels: 'Modelle synchronisieren',
    name: 'Name',
    nameHelp: 'Ein aussagekräftiger Name, um diesen Konnektor im Dashboard zu identifizieren.',
    provider: 'Anbieter',
    providerHelp: 'Der KI-Provider, mit dem dieser Konnektor kommuniziert.',
    authType: 'Authentifizierungstyp',
    authTypeHelp: 'Wie sich der Provider authentifiziert. Die meisten Provider verwenden API-Key.',
    apiKey: 'API-Key',
    apiKeyHelp: 'Ihr geheimer API-Key vom Provider. Er wird verschlüsselt gespeichert.',
    baseUrl: 'Basis-URL',
    baseUrlHelp:
      'Überschreibt den Standard-API-Endpunkt. Leer lassen, um den Standard zu verwenden.',
    region: 'Region',
    regionHelp: 'Die AWS-Region, in der Ihr Bedrock-Endpunkt bereitgestellt wird.',
    status: 'Status',
    healthy: 'Funktionsfähig',
    degraded: 'Beeinträchtigt',
    error: 'Fehler',
    noConnectors: 'Keine Konnektoren konfiguriert',
    noConnectorsDesc: 'Fügen Sie einen Konnektor hinzu, um KI-Provider zu nutzen',
    connectorCreated: 'Konnektor erstellt',
    connectorCreateFailed: 'Konnektor konnte nicht erstellt werden',
    connectorUpdated: 'Konnektor aktualisiert',
    connectorUpdateFailed: 'Konnektor konnte nicht aktualisiert werden',
    connectorDeleted: 'Konnektor gelöscht',
    connectorDeleteFailed: 'Konnektor konnte nicht gelöscht werden',
    testSuccessful: 'Verbindungstest erfolgreich',
    testFailed: 'Verbindungstest fehlgeschlagen',
    modelsSynced: 'Modelle erfolgreich synchronisiert',
    syncFailed: 'Modelle konnten nicht synchronisiert werden',
    testBeforeCreate:
      'Speichern Sie den Konnektor zuerst und testen Sie ihn dann aus der Konnektorliste.',
    loadingConnectors: 'Konnektoren werden geladen...',
    loadingConnector: 'Konnektor wird geladen...',
    addConnector: 'Konnektor hinzufügen',
    loadFailed: 'Konnektoren konnten nicht geladen werden.',
    connectorDetail: 'Konnektor-Details',
    connectorNotFound: 'Konnektor nicht gefunden',
    backToConnectors: 'Zurück zu Konnektoren',
    syncing: 'Wird synchronisiert...',
    enabled: 'Aktiviert',
    disabled: 'Deaktiviert',
    configuration: 'Konfiguration',
    healthHistory: 'Health-Verlauf',
    healthHistoryDesc:
      'Die Nachverfolgung des Health-Verlaufs wird in einem zukünftigen Update verfügbar sein.',
    models: 'Modelle',
    oneModel: '{count} Modell',
    manyModels: '{count} Modelle',
    updatedAt: 'Aktualisiert {date}',
    addConnectorDesc: 'Neuen KI-Anbieter-Connector hinzufügen',
    apiKeyPlaceholder: 'API Key eingeben',
    apiKeyPlaceholderEdit: 'Leer lassen, um bestehenden beizubehalten',
    baseUrlOptional: 'Basis-URL (optional)',
    baseUrlPlaceholder: 'https://api.example.com',
    defaultLabel: 'Standard',
    editConnectorDesc: 'Connector-Konfiguration aktualisieren',
    namePlaceholder: 'z. B. OpenAI Production',
    regionPlaceholder: 'z. B. us-east-1',
    saveFirstThenTest: 'Connector zuerst speichern, dann testen',
    selectProvider: 'Anbieter auswählen',
  },
  memory: {
    title: 'Speicher',
    description: 'KI-Speichereinträge verwalten',
    createMemory: 'Speicher erstellen',
    editMemory: 'Speicher bearbeiten',
    deleteMemory: 'Speicher löschen',
    type: 'Typ',
    content: 'Inhalt',
    enabled: 'Aktiviert',
    disabled: 'Deaktiviert',
    noMemories: 'Keine Speichereinträge',
    noMemoriesDesc: 'Erstellen Sie Speichereinträge, um der KI Kontext zu geben',
    memoryCreated: 'Speicher erstellt',
    memoryCreateFailed: 'Speicher konnte nicht erstellt werden',
    memoryUpdated: 'Speicher aktualisiert',
    memoryUpdateFailed: 'Speicher konnte nicht aktualisiert werden',
    memoryDeleted: 'Speicher gelöscht',
    memoryDeleteFailed: 'Speicher konnte nicht gelöscht werden',
    memoryToggled: 'Speicher umgeschaltet',
    memoryToggleFailed: 'Speicher konnte nicht umgeschaltet werden',
    loadFailed: 'Speichereinträge konnten nicht geladen werden.',
    loadingMemories: 'Speichereinträge werden geladen...',
    addMemory: 'Speicher hinzufügen',
    contentPlaceholder: 'Erinnerungsinhalt eingeben...',
    createMemoryDesc: 'Neuen Erinnerungseintrag erstellen',
    editMemoryDesc: 'Erinnerungsdetails aktualisieren',
    source: 'Quelle',
    typeSummary: 'Zusammenfassung',
    typeFact: 'Fakt',
    typePreference: 'Präferenz',
    typeInstruction: 'Anweisung',
    filterAllTypes: 'Alle Typen',
    tabSaved: 'Gespeichert',
    tabSuggestions: 'Vorschläge',
    tabAudit: 'Audit',
    searchPlaceholder: 'Erinnerungen suchen...',
    filterAllScopes: 'Alle Bereiche',
    filterAllSources: 'Alle Quellen',
    filterAllSensitivities: 'Alle Sensitivitätsstufen',
    scopeUser: 'Persönlich',
    scopeThread: 'Dieses Gespräch',
    scopeWorkspace: 'Arbeitsbereich',
    scopeProject: 'Projekt',
    sourceUserManual: 'Manuell erstellt',
    sourceAiExtracted: 'Aus dem Chat extrahiert',
    sourceAutomation: 'Durch Automation gelernt',
    sourceImported: 'Importiert',
    sensitivityNormal: 'Normal',
    sensitivitySensitive: 'Sensibel',
    sensitivityRedacted: 'Redigiert',
    loadingSuggestions: 'Vorschläge werden geladen...',
    loadingAudit: 'Audit wird geladen...',
    noSuggestions: 'Derzeit keine Vorschläge',
    noAudit: 'Noch keine Audit-Einträge',
    auditNoMemoryId: '(Erinnerung gelöscht)',
    approveSuggestion: 'Genehmigen',
    rejectSuggestion: 'Ablehnen',
    rejectAndSuppress: 'Ablehnen & ähnliche unterdrücken',
    suggestionConfidence: 'Vertrauen: {value}%',
    suggestionReason: 'Grund: {value}',
  },
  files: {
    title: 'Dateien',
    description: 'Dateien für KI-Kontext hochladen und verwalten',
    uploadFile: 'Datei hochladen',
    deleteFile: 'Datei löschen',
    dragDrop: 'Dateien hierher ziehen oder klicken, um zu durchsuchen',
    maxSize: 'Maximale Dateigröße: 50 MB',
    noFiles: 'Keine Dateien hochgeladen',
    noFilesDesc: 'Laden Sie Dateien hoch, um sie als KI-Kontext zu verwenden',
    fileUploaded: 'Datei hochgeladen',
    fileUploadFailed: 'Datei konnte nicht hochgeladen werden',
    fileDeleted: 'Datei gelöscht',
    fileDeleteFailed: 'Datei konnte nicht gelöscht werden',
    uploadFailed: 'Datei konnte nicht hochgeladen werden',
    loadFailed: 'Dateien konnten nicht geladen werden.',
    loadingFiles: 'Dateien werden geladen...',
    allTypesAccepted: 'Alle Dateitypen akzeptiert',
    chunkIndex: 'Block #{index}',
    chunksTitle: 'Datei-Chunks',
    dropFileHere: 'Datei hier ablegen',
    dropOrClick: 'Datei hier ablegen oder klicken zum Durchsuchen',
    fileFallback: 'Datei',
    noChunks: 'Keine Chunks verfügbar',
    uploading: 'Wird hochgeladen...',
    uploadNewFile: 'Neue Datei hochladen',
    viewChunks: 'Chunks anzeigen',
    statusPending: 'Ausstehend',
    statusProcessing: 'Wird verarbeitet',
    statusCompleted: 'Abgeschlossen',
    statusFailed: 'Fehlgeschlagen',
  },
  context: {
    title: 'Kontext-Packs',
    description: 'Kontext für KI-Konversationen organisieren',
    createPack: 'Kontext-Pack erstellen',
    addItem: 'Element hinzufügen',
    name: 'Name',
    scope: 'Gültigkeitsbereich',
    noContextPacks: 'Keine Kontext-Packs',
    noContextPacksDesc: 'Erstellen Sie Kontext-Packs, um KI-Kontext zu organisieren',
    packCreated: 'Kontext-Pack erstellt',
    packCreateFailed: 'Kontext-Pack konnte nicht erstellt werden',
    packUpdated: 'Kontext-Pack aktualisiert',
    packUpdateFailed: 'Kontext-Pack konnte nicht aktualisiert werden',
    packDeleted: 'Kontext-Pack gelöscht',
    packDeleteFailed: 'Kontext-Pack konnte nicht gelöscht werden',
    itemAdded: 'Element zum Kontext-Pack hinzugefügt',
    itemAddFailed: 'Element konnte nicht hinzugefügt werden',
    itemUpdated: 'Kontext-Pack-Element aktualisiert',
    itemUpdateFailed: 'Element konnte nicht aktualisiert werden',
    itemRemoved: 'Element aus Kontext-Pack entfernt',
    itemRemoveFailed: 'Element konnte nicht entfernt werden',
    loadFailed: 'Kontext-Packs konnten nicht geladen werden.',
    contextPack: 'Kontext-Pack',
    packDetailsDesc: 'Pack-Details und Elemente',
    backToPacks: 'Zurück zu Packs',
    deletePack: 'Pack löschen',
    deleting: 'Wird gelöscht...',
    loadingPackDetails: 'Pack-Details werden geladen...',
    noItems: 'Keine Elemente in diesem Pack',
    noItemsDesc:
      'Fügen Sie Textnotizen, Anweisungen oder Dateiverweise zu diesem Kontext-Pack hinzu.',
    loadingContextPacks: 'Kontext-Packs werden geladen...',
    addItemDesc:
      'Eine Textnotiz, Anweisung oder einen Dateiverweis zu diesem Kontext-Pack hinzufügen.',
    adding: 'Wird hinzugefügt...',
    content: 'Inhalt',
    contentPlaceholder: 'Inhalt eingeben...',
    fileId: 'Datei-ID',
    fileIdPlaceholder: 'Datei-ID eingeben',
    itemType: 'Typ',
    selectType: 'Typ auswählen',
    createPackDesc: 'Neuen Kontext-Pack erstellen',
    creating: 'Wird erstellt...',
    descriptionOptional: 'Beschreibung (optional)',
    descriptionPlaceholder: 'Beschreiben Sie, wofür dieser Pack gedacht ist',
    namePlaceholder: 'z. B. Projekt-Alpha-Kontext',
    scopeOptional: 'Geltungsbereich (optional)',
    scopePlaceholder: 'z. B. global, project, user',
    typeNote: 'Notiz',
    typeInstruction: 'Anweisung',
    typeFileReference: 'Dateireferenz',
  },
  routing: {
    title: 'Routing-Richtlinien',
    description: 'KI-Modell-Routing konfigurieren',
    createPolicy: 'Richtlinie erstellen',
    editPolicy: 'Richtlinie bearbeiten',
    deletePolicy: 'Richtlinie löschen',
    name: 'Name',
    mode: 'Routing-Modus',
    priority: 'Priorität',
    active: 'Aktiv',
    noPolicies: 'Keine Routing-Richtlinien',
    noPoliciesDesc: 'Erstellen Sie Routing-Richtlinien, um die Modellauswahl zu steuern',
    policyCreated: 'Richtlinie erstellt',
    policyCreateFailed: 'Richtlinie konnte nicht erstellt werden',
    policyUpdated: 'Richtlinie aktualisiert',
    policyUpdateFailed: 'Richtlinie konnte nicht aktualisiert werden',
    policyDeleted: 'Richtlinie gelöscht',
    policyDeleteFailed: 'Richtlinie konnte nicht gelöscht werden',
    status: 'Status',
    inactive: 'Inaktiv',
    activate: 'Aktivieren',
    deactivate: 'Deaktivieren',
    loadFailed: 'Routing-Konfiguration konnte nicht geladen werden.',
    defaultRoutingMode: 'Standard-Routing-Modus',
    defaultRoutingModeDesc: 'Wählen Sie, wie der lokale Router Anfragen auf Modelle verteilt',
    defaultMode: 'Standardmodus',
    fallbackSettings: 'Fallback-Einstellungen',
    fallbackSettingsDesc: 'Wiederholungs- und Timeout-Verhalten konfigurieren',
    maxRetries: 'Max. Wiederholungen',
    timeoutMs: 'Zeitlimit (ms)',
    loadingPolicies: 'Richtlinien werden geladen...',
    noPoliciesConfigured: 'Keine Routing-Richtlinien konfiguriert.',
    complexityLabel: 'Komplexität',
    complexitySimple: 'Einfach',
    complexityMedium: 'Mittel',
    complexityComplex: 'Komplex',
    complexityExpert: 'Experte',
    routingExplanation: 'Routing-Erklärung',
    explanationSummary: 'Entscheidungszusammenfassung',
    explanationFactors: 'Entscheidungsfaktoren',
    routingDurationMs: 'Routing-Dauer',
    modalityLabel: 'Erkannte Modalität',
    modalityText: 'Text',
    modalityCode: 'Code',
    modalityImageInput: 'Bildverständnis',
    modalityImageOutput: 'Bildgenerierung',
    modalityAudioInput: 'Audio / Sprache',
    modalityVideoInput: 'Videoanalyse',
    modalityPdfInput: 'Dokument / PDF',
    modalityWebSearch: 'Websuche',
    modalityToolCalling: 'Tool-Aufruf',
    modalityStructuredOutput: 'Strukturierte Ausgabe',
    modalityOcr: 'OCR / Texterkennung',
    modalityReasoning: 'Tiefes Reasoning',
    namePlaceholder: 'Meine Routing-Richtlinie',
    selectModePlaceholder: 'Routing-Modus auswählen',
    editPolicyDesc: 'Konfiguration der Routing-Richtlinie aktualisieren.',
    createPolicyDesc: 'Eine neue Routing-Richtlinie zur Steuerung der Anfrageverteilung erstellen.',
    weightsJsonLabel: 'Bewertungsgewichte (JSON, optional)',
    weightsJsonPlaceholder: '{"capability": 0.2, "domain": 0.1, ...}',
    weightsJsonHelp:
      'Optional. Überschreibt die modus-spezifischen Standardgewichte. Muss alle 14 Dimensionen enthalten und in Summe 1,0 ergeben.',
    weightsJsonError: {
      invalidJson: 'Gewichte-JSON ist kein gültiges JSON.',
      notAnObject: 'Gewichte müssen ein JSON-Objekt sein.',
      missingDimension: 'Gewichte-JSON muss jede Dimension als Zahl enthalten.',
      sumNotOne: 'Die Gewichte müssen in Summe 1,0 ergeben (±0,001).',
    },
    models: {
      title: 'Modellregister',
      description:
        'Alle dem Router bekannten Modelle durchsuchen. Kosten, Lebenszyklus oder Routing-Flags überschreiben.',
      updateSucceeded: 'Modell aktualisiert.',
      updateFailed: 'Modell konnte nicht aktualisiert werden.',
      overrideCleared: 'Überschreibung entfernt.',
      overrideClearFailed: 'Überschreibung konnte nicht entfernt werden.',
      softDeleteSucceeded: 'Modell als entfernt markiert.',
      softDeleteFailed: 'Modell konnte nicht entfernt werden.',
      columnProvider: 'Anbieter',
      columnModelKey: 'Modell',
      columnLifecycle: 'Lebenszyklus',
      columnQuality: 'Qualität',
      columnCost: 'Kosten',
      columnLatency: 'Latenz',
      filterByProvider: 'Nach Anbieter filtern',
      filterByLifecycle: 'Nach Lebenszyklus filtern',
    },
  },
  models: {
    title: 'Modelle',
    description: 'Alle verfügbaren KI-Modelle anzeigen',
    localTitle: 'Lokale Modelle',
    localDescription: 'Lokal installierte KI-Modelle verwalten',
    pullModel: 'Modell ziehen',
    assignRole: 'Rolle zuweisen',
    noModels: 'Keine Modelle verfügbar',
    noModelsDesc: 'Verbinden Sie einen Provider oder ziehen Sie lokale Modelle',
    modelPullStarted: 'Modell-Download gestartet',
    modelPullFailed: 'Modell konnte nicht geladen werden',
    roleAssigned: 'Rolle zugewiesen',
    roleAssignFailed: 'Rolle konnte nicht zugewiesen werden',
    loadFailed: 'Modelle konnten nicht geladen werden.',
    loadingModels: 'Modelle werden geladen...',
    allProviders: 'Alle Provider',
    allLifecycle: 'Alle Lifecycles',
    noModelsMatch: 'Keine Modelle entsprechen den aktuellen Filtern.',
    localLoadFailed: 'Lokale Modelle konnten nicht geladen werden.',
    runtimeHealth: 'Runtime-Status',
    runtimeHealthDesc: 'Aktueller Status der lokalen Modell-Runtime',
    pullModelDesc: 'Ein neues Modell aus der Registry herunterladen',
    modelName: 'Modellname',
    runtime: 'Laufzeit',
    pulling: 'Wird geladen...',
    pull: 'Laden',
    installedModels: 'Installierte Modelle',
    loadingLocalModels: 'Lokale Modelle werden geladen...',
    noLocalModels: 'Keine lokalen Modelle installiert',
    noLocalModelsDesc:
      'Laden Sie ein Modell mit dem obigen Formular, um mit lokaler Inferenz zu beginnen.',
    colModel: 'Modell',
    colRuntime: 'Laufzeit',
    colSize: 'Größe',
    colFamily: 'Familie',
    colParameters: 'Parameter',
    colRoles: 'Rollen',
    noneRole: 'Keine',
    modelNamePlaceholder: 'llama3:8b',
    capabilities: 'Fähigkeiten',
    context: 'Kontext',
    lifecycle: 'Lebenszyklus',
    noSyncedModels: 'Keine synchronisierten Modelle',
    streaming: 'Streaming',
    tools: 'Werkzeuge',
    vision: 'Vision',
  },
  observability: {
    title: 'Beobachtbarkeit',
    description: 'KI-Nutzung und Performance überwachen',
    totalRequests: 'Gesamtanfragen',
    totalCost: 'Gesamtkosten',
    avgLatency: 'Durchschn. Latenz',
    activeModels: 'Aktive Modelle',
    clientLogs: 'Client-Logs',
    serverLogs: 'Server-Logs',
    auditTrail: 'Audit-Trail',
    loadingData: 'Observability-Daten werden geladen...',
    failedToLoad: 'Daten konnten nicht geladen werden',
    failedToLoadDesc:
      'Observability-Daten konnten nicht abgerufen werden. Bitte später erneut versuchen.',
    noDataYet: 'Noch keine Observability-Daten',
    noDataDesc:
      'Metriken und Performance-Daten erscheinen hier, sobald Anfragen durch die Orchestrierungsschicht fließen.',
    fullDescription: 'System-Status, Request-Latenzen und Modell-Performance überwachen',
    totalRequestsLabel: 'Gesamtanfragen',
    acrossProviders: 'Über alle Provider',
    estimatedCost: 'Geschätzte Kosten',
    estimatedCostLabel: 'Geschätzte Kosten',
    recentFailures: 'Aktuelle Fehler',
    highCriticalSeverity: 'Ereignisse mit Schweregrad HIGH + CRITICAL',
    providerUsage: 'Provider-Nutzung',
    modelUsage: 'Modellnutzung',
    latencyBreakdown: 'Latenz-Aufschlüsselung',
    costSummary: 'Kostenübersicht',
    avg: 'Durchschnitt',
    p50Median: 'P50 (Median)',
    p95: 'P95',
    totalTokens: 'Gesamt-Tokens',
    requests: 'Anfragen',
    tokens: 'Tokens',
    noData: 'Keine Daten',
  },
  audits: {
    title: 'Audit-Logs',
    description: 'System-Aktivitätsprotokolle anzeigen',
    action: 'Aktion',
    severity: 'Schweregrad',
    entity: 'Entität',
    timestamp: 'Zeitstempel',
    noAudits: 'Keine Audit-Logs',
    noAuditsDesc: 'Aktivitäten erscheinen hier, während Sie die Plattform nutzen',
    actor: 'Akteur',
    details: 'Details',
    loadingAudits: 'Audit-Logs werden geladen...',
    loadFailed: 'Audits konnten nicht geladen werden',
    loadFailedDesc: 'Audit-Logs konnten nicht abgerufen werden. Bitte später erneut versuchen.',
    noMatchingAudits: 'Keine Audit-Logs entsprechen Ihren Filtern.',
    allActions: 'Alle Aktionen',
    allSeverities: 'Alle Schweregrade',
    searchPlaceholder: 'Suchen...',
    ipAddress: 'IP-Adresse',
  },
  admin: {
    title: 'Admin',
    description: 'Benutzer und Systemeinstellungen verwalten',
    users: 'Benutzer',
    createUser: 'Benutzer erstellen',
    changeRole: 'Rolle ändern',
    deactivate: 'Deaktivieren',
    reactivate: 'Reaktivieren',
    noUsers: 'Keine Benutzer gefunden',
    checkingServices: 'Dienste werden geprüft...',
    healthUnreachable: 'Health-Service nicht erreichbar.',
    loadingUsers: 'Benutzer werden geladen...',
    loadUsersFailed: 'Benutzer konnten nicht geladen werden',
    loadUsersFailedDesc:
      'Benutzerliste konnte nicht abgerufen werden. Bitte später erneut versuchen.',
    userRoleUpdated: 'Benutzerrolle aktualisiert',
    userRoleUpdateFailed: 'Benutzerrolle konnte nicht aktualisiert werden',
    userDeactivated: 'Benutzer deaktiviert',
    userDeactivateFailed: 'Benutzer konnte nicht deaktiviert werden',
    userStats: 'Benutzerstatistik',
    userStatsDesc: 'Übersicht der Plattformbenutzer',
    totalUsers: 'Gesamtbenutzer',
    activeUsers: 'Aktive Benutzer',
    platformHealth: 'Plattform-Status',
    systemStatusOverview: 'Systemstatus-Übersicht',
    userManagement: 'Benutzerverwaltung',
    colUsername: 'Benutzername',
    colEmail: 'E-Mail',
    colRole: 'Rolle',
    colStatus: 'Status',
    colJoined: 'Beigetreten',
    colActions: 'Aktionen',
    roleAdmin: 'Admin',
    roleOperator: 'Operator',
    roleViewer: 'Betrachter',
  },
  settings: {
    title: 'Einstellungen',
    description: 'Kontoeinstellungen verwalten',
    profile: 'Profil',
    profileDescription: 'Ihre persönlichen Informationen. Diese Felder sind schreibgeschützt.',
    username: 'Benutzername',
    email: 'E-Mail',
    emailReadOnly: 'Wenden Sie sich an einen Administrator, um Ihre E-Mail zu ändern.',
    role: 'Rolle',
    selectLanguage: 'Sprache auswählen',
    preferences: 'Einstellungen',
    language: 'Sprache',
    languageDescription: 'Wählen Sie Ihre bevorzugte Anzeigesprache',
    appearance: 'Erscheinungsbild',
    appearanceDescription: 'Wählen Sie, wie die Anwendung aussieht',
    system: 'System',
    light: 'Hell',
    dark: 'Dunkel',
    theme: 'Design',
    changePassword: 'Passwort ändern',
    currentPassword: 'Aktuelles Passwort',
    newPassword: 'Neues Passwort',
    confirmPassword: 'Passwort bestätigen',
    passwordChanged: 'Passwort erfolgreich geändert',
    passwordChangeFailed: 'Passwort konnte nicht geändert werden',
    passwordRequirements:
      'Das Passwort muss mindestens 8 Zeichen enthalten, mit Groß-, Kleinbuchstabe und Zahl',
    preferencesUpdated: 'Einstellungen erfolgreich aktualisiert',
    preferencesUpdateFailed: 'Einstellungen konnten nicht aktualisiert werden',
    devices: {
      title: 'Geräte',
      description: 'Mit Ihrem Konto verknüpfte Desktop-Agents verwalten.',
      emptyTitle: 'Keine Geräte verknüpft',
      emptyBody:
        'Führen Sie `claw-agent login` auf Ihrer Maschine aus, um ein Gerät zu verknüpfen.',
      revoke: 'Widerrufen',
      rename: 'Umbenennen',
      scopesHeading: 'Berechtigungen',
      revokedBanner: 'Dieses Gerät wurde widerrufen',
    },
    langEnglish: 'Englisch',
    langArabic: 'Arabisch',
    langFrench: 'Französisch',
    langItalian: 'Italienisch',
    langGerman: 'Deutsch',
    langSpanish: 'Spanisch',
    langRussian: 'Russisch',
    langPortuguese: 'Portugiesisch',
    langHindi: 'Hindi',
    appearanceSystem: 'System',
    appearanceLight: 'Hell',
    appearanceDark: 'Dunkel',
  },
  dashboard: {
    title: 'Übersicht',
    description: 'Übersicht Ihrer KI-Plattform',
    quickActions: 'Schnellaktionen',
    recentActivity: 'Letzte Aktivitäten',
    totalThreads: 'Gesamtzahl Threads',
    activeConnectors: 'Aktive Konnektoren',
    localModels: 'Lokale Modelle',
    systemHealth: 'System-Status',
    startNewChat: 'Neuen Chat starten',
    addConnector: 'Konnektor hinzufügen',
    configureRouting: 'Routing konfigurieren',
    serviceStatus: 'Dienst-Status',
    checkingHealth: 'Dienst-Status wird geprüft...',
    healthUnreachable:
      'Health-Aggregator nicht erreichbar. Bitte prüfen Sie, ob der Health-Dienst läuft.',
    servicesOperational: '{up} von {total} Diensten betriebsbereit',
    responseTimeMs: '{ms} ms',
    unreachable: 'nicht erreichbar',
    newChatLabel: 'Neuer Chat',
    newChatDesc: 'Eine neue Unterhaltung starten',
    manageConnectorsLabel: 'Connectors verwalten',
    manageConnectorsDesc: 'AI-Anbieter-Connectors konfigurieren',
    routingSettingsLabel: 'Routing-Einstellungen',
    routingSettingsDesc: 'Konfigurieren Sie, wie Anfragen weitergeleitet werden',
  },
  catalog: {
    title: 'Modellkatalog',
    description: 'KI-Modelle durchsuchen und herunterladen',
    searchPlaceholder: 'Modelle suchen...',
    allCategories: 'Alle',
    coding: 'Programmierung',
    fileGeneration: 'Dateigenerierung',
    imageGeneration: 'Bildgenerierung',
    routing: 'Routing',
    reasoning: 'Begründung',
    thinking: 'Thinking & Suche',
    download: 'Herunterladen',
    downloading: 'Wird heruntergeladen...',
    installed: 'Installiert',
    failed: 'Fehlgeschlagen',
    unavailable: 'Nicht verfügbar',
    cloudOnly: 'Nur Cloud',
    cancel: 'Abbrechen',
    recommended: 'Empfohlen',
    noModels: 'Keine Modelle gefunden',
    activeDownloads: 'Aktive Downloads',
    parameterCount: 'Parameter',
    modelSize: 'Größe',
    capabilities: 'Fähigkeiten',
    models: 'Modelle',
    scrollForMore: 'Zum Laden weiter scrollen',
    allLoaded: 'Alle Modelle geladen',
    searchBrowserHelpers: 'Search-/Browser-Helfer',
    searchBrowserScoreLabel: 'Helfer',
    searchBrowserScoreTooltip:
      'Eignung für Such- und Browser-Helfer-Workflows (metadatenbasierter Score, 0,00–1,00)',
    cancelDownloadFailed: 'Download konnte nicht abgebrochen werden',
    downloadCancelled: 'Download abgebrochen',
    downloadStarted: 'Download gestartet',
    downloadStartFailed: 'Download konnte nicht gestartet werden',
    modelRemoved: 'Modell entfernt',
    modelRemoveFailed: 'Modell konnte nicht entfernt werden',
  },
  replay: {
    title: 'Routing-Replay-Labor',
    description:
      'Historische Routing-Entscheidungen gegen den aktuellen Router neu ausführen und vergleichen',
    runReplay: 'Replay ausführen',
    running: 'Replay läuft...',
    totalReplayed: 'Gesamt wiederholt',
    changed: 'Geändert',
    unchanged: 'Unverändert',
    oldRoute: 'Ursprüngliche Route',
    newRoute: 'Neue Route',
    improvement: 'Verbesserung',
    noResults: 'Noch keine Replay-Ergebnisse',
    confidenceOld: 'Durchschn. Konfidenz (Alt)',
    confidenceNew: 'Durchschn. Konfidenz (Neu)',
    replayComplete: 'Routing-Replay abgeschlossen',
    replayFailed: 'Routing-Replay fehlgeschlagen',
    saveRun: 'Lauf speichern',
    runName: 'Laufname',
    runNamePlaceholder: 'z. B. baseline-2026-04',
    threadIdFilter: 'Thread-ID',
    threadIdPlaceholder: 'Nach Thread filtern...',
    startDate: 'Startdatum',
    endDate: 'Enddatum',
    suspicious: 'Verdächtig',
    avgImprovement: 'Durchschn. Verbesserung',
    needsReview: 'Benötigt Überprüfung',
    noSuspiciousCases: 'Keine verdächtigen Fälle erkannt',
    noSuspiciousCasesDesc: 'Alle Replay-Ergebnisse sehen sauber aus',
    confirmedRegression: 'Bestätigte Regression',
    markConfirmedRegression: 'Als Regression markieren',
    caseReviewed: 'Fall erfolgreich überprüft',
    caseReviewFailed: 'Fall konnte nicht überprüft werden',
    copyBundle: 'Export-Bundle kopieren',
    bundleCopied: 'Export-Bundle in Zwischenablage kopiert',
    exportFailed: 'Bundle-Export fehlgeschlagen',
    runsHistory: 'Lauf-Verlauf',
    noRunsHistory: 'Noch keine gespeicherten Läufe',
    noRunsHistoryDesc:
      'Aktivieren Sie „Lauf speichern" beim Ausführen eines Replays, um den Verlauf zu verfolgen',
    runResults: 'Ergebnisse',
    correct_improvement: 'Verbesserung',
    bad_regression: 'Rückschritt',
    cost_win: 'Kostengewinn',
    quality_win: 'Qualitätsgewinn',
    uncertain: 'Unsicher',
    badRegression: 'Regressionen',
    noOriginalContent: 'Kein ursprünglicher Prompt gespeichert',
    promoteCase: 'Als Test übernehmen',
    promoted: 'Fall als Test-Fixture übernommen',
    promoteFailed: 'Fall konnte nicht übernommen werden',
    compareRuns: 'Läufe vergleichen',
    compareRunsTitle: 'Lauf-Vergleich',
    compareRunsDesc: 'Zwei Läufe auswählen, um Routing-Entscheidungen zu vergleichen',
    selectRunToCompare: 'Lauf zum Vergleichen auswählen',
    runA: 'Lauf A',
    runB: 'Lauf B',
    improved: 'Verbessert',
    regressed: 'Regressiert',
    suspiciousReasons: {
      empty_message_content: 'Ursprünglicher Prompt fehlt',
      large_confidence_drop: 'Großer Konfidenzabfall',
      large_cost_increase: 'Großer Kostenanstieg',
      route_changed_with_negative_improvement: 'Route mit negativen Auswirkungen geändert',
    },
  },
  compare: {
    title: 'Modelle vergleichen',
    description:
      '2-5 Modelle auswählen und einen Prompt eingeben, um Antworten nebeneinander zu vergleichen',
    selectModels: 'Modelle auswählen',
    minModels: 'Mindestens {min} Modelle auswählen',
    maxModels: 'Maximal {max} Modelle erlaubt',
    sendPrompt: 'Modelle vergleichen',
    comparing: 'Wird verglichen...',
    compareFailed: 'Modelle konnten nicht verglichen werden',
    results: 'Ergebnisse',
    fastest: 'Am schnellsten',
    completed: 'Abgeschlossen',
    failed: 'Fehlgeschlagen',
    latency: 'Latenz',
    tokens: 'Tokens',
    noResults: 'Noch keine Vergleichsergebnisse',
    modelCount: '{count} Modelle',
    expand: 'Erweitern',
    bestResponse: 'Beste Antwort',
    viewInThread: 'Im Thread anzeigen',
    totalTokens: 'Gesamt-Tokens',
    avgLatencyLabel: 'Durchschn. Latenz',
    completedCount: '{count} abgeschlossen',
    failedCount: '{count} fehlgeschlagen',
    timeoutCount: '{count} Zeitüberschreitungen',
    modelsCompared: 'Verglichene Modelle',
    summaryTitle: 'Vergleichszusammenfassung',
    showMore: 'Mehr anzeigen',
    showLess: 'Weniger anzeigen',
    timeout: 'Zeitüberschreitung',
    noContent: 'Kein Inhalt verfügbar',
    noJudge: 'Kein Judge',
    judgeAwaiting: 'Warten auf Judge',
    judgeSkipped: 'Judge übersprungen',
    judgeFailed: 'Judge fehlgeschlagen',
    judgeUnavailable: 'Judge nicht verfügbar',
    judgeVerified: 'Verifiziert',
    judgeRevised: 'Überarbeitet',
    judgeEscalated: 'Eskaliert',
    modelsProcessing: 'Modelle verarbeiten...',
    processingMessage: 'Ihre Nachricht wird verarbeitet...',
  },
  consensus: {
    title: 'Konsensmodus',
    description: '2-5 Modelle auswählen und die KI eine Konsensantwort synthetisieren lassen',
    selectModels: 'Modelle auswählen',
    minModels: 'Mindestens {min} Modelle auswählen',
    maxModels: 'Maximal {max} Modelle erlaubt',
    sendPrompt: 'Konsens ausführen',
    running: 'Konsens läuft...',
    sendFailed: 'Konsens konnte nicht gestartet werden',
    synthesizing: 'Antworten werden synthetisiert...',
    synthesisReady: 'Synthese bereit',
    synthesisTitle: 'Konsens-Synthese',
    agreementScore: 'Zustimmungs-Score',
    confidenceLevel: 'Konfidenz',
    agreements: 'Zustimmungen',
    disagreements: 'Abweichungen',
    contradictions: 'Widersprüche',
    synthesisRationale: 'Begründung',
    modelBreakdown: 'Modell-Aufschlüsselung',
    completed: 'Abgeschlossen',
    failed: 'Fehlgeschlagen',
    timeout: 'Zeitüberschreitung',
    contentLength: 'Inhaltslänge',
    noResults: 'Noch keine Konsens-Ergebnisse',
    viewInThread: 'Im Thread anzeigen',
    high: 'Hoch',
    medium: 'Mittel',
    low: 'Niedrig',
    modelsSelected: '{count} Modelle ausgewählt',
    synthesisRationaleLabel: 'Synthese-Begründung',
  },
  escalation: {
    title: 'Eskalationskette',
    description:
      'Modellkette definieren – günstigstes zuerst, stärkstes zuletzt. KI eskaliert automatisch bei niedriger Qualität',
    chainBuilder: 'Kette erstellen',
    addModel: 'Modell hinzufügen',
    removeModel: 'Entfernen',
    moveUp: 'Nach oben',
    moveDown: 'Nach unten',
    minSteps: 'Mindestens {min} Modelle hinzufügen',
    maxSteps: 'Maximal {max} Modelle in der Kette',
    sendPrompt: 'Kette ausführen',
    running: 'Kette läuft...',
    sendFailed: 'Eskalationskette konnte nicht gestartet werden',
    synthesizing: 'Eskalation läuft...',
    synthesisReady: 'Ergebnis bereit',
    resultTitle: 'Eskalationsergebnis',
    stepUsed: 'Verwendeter Schritt',
    totalSteps: 'Gesamtschritte',
    escalated: 'Eskaliert',
    notEscalated: 'Keine Eskalation nötig',
    status: 'Status',
    statusSingleStep: 'Bei erstem Schritt gelöst',
    statusResolved: 'Nach Eskalation gelöst',
    statusExhausted: 'Alle Schritte erschöpft',
    qualityScore: 'Qualitäts-Score',
    latency: 'Latenz',
    step: 'Schritt',
    passed: 'Bestanden',
    failed: 'Fehlgeschlagen',
    finalModel: 'Finales Modell',
    noResults: 'Noch keine Eskalationsergebnisse',
    viewInThread: 'Im Thread anzeigen',
    stepsTimeline: 'Schritte-Zeitleiste',
    finalAnswer: 'Finale Antwort',
  },
  repair: {
    title: 'Antwort-Repair-Labor',
    description:
      'Fehlerhafte, oberflächliche, unvollständige oder halluzinierte Antworten reparieren, ohne neu zu starten.',
    contentLabel: 'Zu reparierende Antwort',
    contentPlaceholder: 'Fügen Sie die zu reparierende Antwort ein...',
    repairTypes: 'Reparatur-Typen',
    schemaLabel: 'Schema',
    schemaDesc: 'Fehlerhaftes JSON, falsche Struktur oder Datenformatprobleme beheben.',
    formatLabel: 'Format',
    formatDesc:
      'Markdown-Formatierung, Überschriften, Listen, Code-Blöcke und Gesamtstruktur korrigieren.',
    completenessLabel: 'Vollständigkeit',
    completenessDesc:
      'Oberflächliche oder unvollständige Abschnitte erweitern, fehlende Kernpunkte ergänzen.',
    factualityLabel: 'Faktentreue',
    factualityDesc: 'Sachfehler, Halluzinationen oder falsche Aussagen erkennen und korrigieren.',
    sendPrompt: 'Antwort reparieren',
    running: 'Wird repariert...',
    sendFailed: 'Reparatur konnte nicht gestartet werden. Bitte erneut versuchen.',
    synthesizing: 'Reparatur läuft...',
    resultTitle: 'Reparierte Antwort',
    noResults: 'Noch keine Reparatur-Ergebnisse',
    viewInThread: 'Im Thread anzeigen',
    finalAnswer: 'Finale Antwort',
    provider: 'Anbieter',
    model: 'Modell',
  },
  decompose: {
    title: 'Task-Decomposition-Router',
    description:
      'Komplexe Aufgaben in Teilaufgaben zerlegen, jede mit dem besten Modell ausführen und die Ergebnisse synthetisieren.',
    contentLabel: 'Komplexe Aufgabe',
    contentPlaceholder:
      'Beschreiben Sie eine komplexe Aufgabe zum Zerlegen, z. B. „Recherchiere KI-Trends 2025, erstelle einen 3-Punkte-Aktionsplan und schreibe eine Executive Summary."',
    maxSubTasks: 'Max. Teilaufgaben',
    sendPrompt: 'Zerlegen & Ausführen',
    running: 'Wird zerlegt...',
    synthesizing: 'Teilaufgaben werden ausgeführt und Ergebnisse synthetisiert...',
    resultTitle: 'Synthetisiertes Ergebnis',
    viewInThread: 'Im Thread anzeigen',
    subTasksHeader: 'Teilaufgaben-Ergebnisse',
    subTaskResult: 'Ergebnis',
    category: 'Kategorie',
    model: 'Modell',
    latencyMs: 'Latenz',
    noResults: 'Keine Zerlegungsergebnisse',
    sendFailed: 'Aufgabenzerlegung fehlgeschlagen. Bitte erneut versuchen.',
  },
  bestOfN: {
    title: 'Best-of-N-Kandidatengenerierung',
    description:
      'Mehrere Kandidatenantworten generieren und automatisch die qualitativ beste auswählen.',
    contentLabel: 'Prompt',
    contentPlaceholder: 'Geben Sie Ihren Prompt ein, um mehrere Kandidaten zu generieren...',
    nCandidates: 'Kandidaten (N)',
    sendPrompt: 'Best-of-N generieren',
    running: 'Kandidaten werden generiert...',
    synthesizing: 'Bester Kandidat wird bewertet und ausgewählt...',
    resultTitle: 'Bester Kandidat',
    viewInThread: 'Im Thread anzeigen',
    candidatesHeader: 'Alle Kandidaten',
    rank: 'Rang',
    score: 'Punktzahl',
    model: 'Modell',
    latency: 'Latenz',
    noResults: 'Keine Kandidaten generiert',
    sendFailed: 'Kandidatengenerierung fehlgeschlagen. Bitte erneut versuchen.',
  },
  recovery: {
    title: 'Routenfehler-Recovery',
    description: 'Provider-Ausfälle und automatische Fallback-Recovery-Ereignisse überwachen.',
    totalDecisions: 'Gesamte Entscheidungen',
    totalFallbacks: 'Fallback-Ereignisse',
    fallbackRate: 'Fallback-Rate',
    providerTable: 'Provider-Ausfall-Aufschlüsselung',
    provider: 'Anbieter',
    fallbackCount: 'Fallbacks',
    rate: 'Rate',
    recentFallbacks: 'Aktuelle Fallback-Ereignisse',
    originalProvider: 'Ursprünglich',
    originalModel: 'Modell',
    fallbackProvider: 'Fallback',
    fallbackModel: 'Fallback-Modell',
    mode: 'Modus',
    time: 'Zeit',
    noFallbacks: 'Keine Fallback-Ereignisse',
    noData: 'Noch keine Routing-Entscheidungen erfasst.',
    loading: 'Recovery-Daten werden geladen...',
    error: 'Recovery-Statistiken konnten nicht geladen werden.',
  },
  verify: {
    title: 'Verifizierer',
    description: 'Antwort generieren und verifizieren, bevor sie gesendet wird',
    contentLabel: 'Ihr Prompt',
    contentPlaceholder: 'Geben Sie Ihre Frage oder Aufgabe ein...',
    maxRevisionsLabel: 'Max. Überarbeitungen',
    sendPrompt: 'Verifizieren & Senden',
    running: 'Wird verifiziert...',
    synthesizing: 'Antwort wird generiert und verifiziert...',
    noResults: 'Noch keine verifizierte Antwort',
    sendFailed: 'Verifizierung fehlgeschlagen. Bitte erneut versuchen.',
    verified: 'Verifiziert',
    verifierScore: 'Qualitäts-Score',
    revisions: 'Überarbeitungen',
    issues: 'Probleme',
    viewInThread: 'Im Thread anzeigen',
  },
  adaptiveLearning: {
    title: 'Adaptives Route-Learning',
    description:
      'Erkenntnisse aus der Routing-Historie zur Verbesserung zukünftiger Entscheidungen',
    loading: 'Erkenntnisse werden geladen...',
    error: 'Erkenntnisse konnten nicht geladen werden',
    windowDays: 'Zeitfenster',
    days: 'Tage',
    totalDecisions: 'Gesamte Entscheidungen',
    avgConfidence: 'Durchschn. Konfidenz',
    topReasonTags: 'Top-Grund-Tags',
    providerTable: 'Provider-Performance',
    modeBreakdown: 'Modus-Aufschlüsselung',
    noData: 'Keine Routing-Entscheidungen in diesem Zeitfenster',
    provider: 'Anbieter',
    fallbackRate: 'Fallback-Rate',
    totalCalls: 'Gesamte Aufrufe',
    topModes: 'Top-Modi',
    mode: 'Modus',
    count: 'Anzahl',
    percentage: 'Prozentsatz',
  },
  pipeline: {
    title: 'Mehrstufige Pipeline',
    description: 'Ihre Anfrage durch eine Kette spezialisierter Stufen leiten',
    contentLabel: 'Ihre Anfrage',
    contentPlaceholder: 'Beschreiben Sie, was Sie benötigen...',
    templateLabel: 'Pipeline-Template',
    templateAnalyze: 'Analysieren → Reasoning → Formatieren',
    templateCode: 'Code → Debug → Review',
    templateDraft: 'Entwurf → Kritik → Überarbeitung',
    sendPrompt: 'Pipeline ausführen',
    running: 'Pipeline läuft...',
    synthesizing: 'Stufen werden verarbeitet...',
    noResults: 'Noch keine Pipeline-Ergebnisse',
    sendFailed: 'Pipeline fehlgeschlagen. Bitte erneut versuchen.',
    stageBreakdown: 'Stufen-Aufschlüsselung',
    stage: 'Stufe',
    model: 'Modell',
    latency: 'Latenz',
    viewInThread: 'Im Thread anzeigen',
  },
  costEnsemble: {
    title: 'Kostenbewusstes Ensemble',
    description:
      'Intelligente Ausführung: ein, zwei oder drei Modelle basierend auf Aufgabenkomplexität',
    contentLabel: 'Ihr Prompt',
    contentPlaceholder: 'Geben Sie Ihre Frage oder Aufgabe ein...',
    sendPrompt: 'Analysieren & Senden',
    running: 'Kosten werden analysiert...',
    synthesizing: 'Optimales Ensemble wird ausgewählt...',
    noResults: 'Noch keine Ergebnisse',
    sendFailed: 'Cost-Ensemble fehlgeschlagen. Bitte erneut versuchen.',
    tier: 'Stufe',
    tierSingle: 'Einzeln',
    tierDuo: 'Duo',
    tierTrio: 'Trio',
    complexity: 'Komplexität',
    risk: 'Risiko',
    ambiguity: 'Mehrdeutigkeit',
    reasoning: 'Begründung',
    candidates: 'Kandidaten',
    viewInThread: 'Im Thread anzeigen',
  },
  rolePack: {
    title: 'Rollenbasiertes Ensemble',
    description: 'Ihre Anfrage an ein Team spezialisierter KI-Rollen senden',
    contentLabel: 'Ihre Anfrage',
    contentPlaceholder: 'Beschreiben Sie, was Sie benötigen...',
    packLabel: 'Team auswählen',
    packCoding: 'Coding-Team',
    packResearch: 'Research-Team',
    packMarketing: 'Marketing-Team',
    packLegal: 'Legal-Team',
    sendPrompt: 'Team ausführen',
    running: 'Team verarbeitet...',
    synthesizing: 'Alle Rollen werden parallel ausgeführt...',
    noResults: 'Noch keine Team-Ergebnisse',
    sendFailed: 'Team-Ausführung fehlgeschlagen. Bitte erneut versuchen.',
    teamBreakdown: 'Team-Ergebnisse',
    role: 'Rolle',
    model: 'Modell',
    latency: 'Latenz',
    viewInThread: 'Im Thread anzeigen',
  },
  advancedModelSelector: {
    label: 'Ausführungsmodell',
    auto: 'Auto (bestes lokales Modell wählen)',
    loading: 'Modelle werden geladen...',
    description:
      'Wählen Sie Auto oder ein bestimmtes lokal installiertes Ollama-Modell für dieses Labor.',
    empty: 'Noch keine lokalen Textmodelle für dieses Labor verfügbar.',
  },
  workspaceConnectors: {
    title: 'Workspace-Konnektoren',
    description: 'Verbinden Sie Ihre Workspace-Tools – GitHub, Slack, Jira, Google Drive und mehr.',
    createConnector: 'Konnektor erstellen',
    editConnector: 'Konnektor bearbeiten',
    deleteConnector: 'Konnektor löschen',
    testHealth: 'Status testen',
    triggerSync: 'Jetzt synchronisieren',
    name: 'Name',
    nameHelp: 'Ein Anzeigename für diesen Konnektor',
    provider: 'Anbieter',
    providerHelp: 'Das zu verbindende Workspace-Tool',
    permissionLevel: 'Berechtigungsstufe',
    permissionLevelHelp: 'Die Zugriffsstufe, die diesem Konnektor gewährt wird',
    status: 'Status',
    connected: 'Verbunden',
    degraded: 'Beeinträchtigt',
    disconnected: 'Getrennt',
    pendingAuth: 'Autorisierung ausstehend',
    unknown: 'Unbekannt',
    noConnectors: 'Keine Workspace-Konnektoren',
    noConnectorsDesc: 'Verbinden Sie Ihr erstes Workspace-Tool, um loszulegen.',
    noConnectorsGuidance:
      'Verbindungen starten aus den App-Konfigurationen. Registrieren Sie dort Ihre OAuth-App und klicken Sie dann auf Verbinden.',
    overviewDescription:
      'Ihre verbundenen Workspace-Tools. Neue aus App-Konfigurationen hinzufügen.',
    manageAppConfigs: 'App-Konfigurationen verwalten',
    goToAppConfigs: 'Zu App-Konfigurationen',
    connectorCreated: 'Konnektor erfolgreich erstellt.',
    connectorCreateFailed: 'Konnektor konnte nicht erstellt werden.',
    connectorDeleted: 'Konnektor erfolgreich gelöscht.',
    connectorDeleteFailed: 'Konnektor konnte nicht gelöscht werden.',
    healthCheckStarted: 'Statusprüfung gestartet.',
    healthCheckFailed: 'Statusprüfung fehlgeschlagen.',
    syncStarted: 'Synchronisation gestartet.',
    syncFailed: 'Synchronisation konnte nicht gestartet werden.',
    loadFailed: 'Konnektoren konnten nicht geladen werden.',
    loadingConnectors: 'Konnektoren werden geladen...',
    addConnector: 'Konnektor hinzufügen',
    connectViaOAuth: 'Über OAuth verbinden',
    lastSync: 'Letzte Synchronisation',
    never: 'Nie',
    syncRuns: 'Sync-Läufe',
    healthEvents: 'Health-Ereignisse',
    enabled: 'Aktiviert',
    disabled: 'Deaktiviert',
    deleteConfirm:
      'Sind Sie sicher, dass Sie diesen Konnektor löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.',
    namePlaceholder: 'z. B. GitHub Workspace',
    paused: 'Pausiert',
  },
  workspaceObjects: {
    title: 'Synchronisierte Objekte',
    description: 'Objekte, die aus Ihren verbundenen Workspace-Tools synchronisiert wurden.',
    loading: 'Objekte werden geladen...',
    loadFailed: 'Workspace-Objekte konnten nicht geladen werden.',
    noObjects: 'Noch keine Objekte synchronisiert.',
    noObjectsDesc:
      'Lösen Sie eine Synchronisation an einem Konnektor aus, um Workspace-Objekte zu importieren.',
    selectConnector: 'Wählen Sie einen Konnektor, um seine synchronisierten Objekte anzuzeigen.',
    source: 'Quelle',
    viewObject: 'Objekt anzeigen',
  },
  workspaceSearch: {
    title: 'Workspace-Suche',
    description: 'Alle synchronisierten Workspace-Objekte durchsuchen.',
    placeholder: 'Dokumente, Issues, Nachrichten suchen...',
    searching: 'Wird gesucht...',
    noResults: 'Keine Ergebnisse gefunden.',
    noResultsDesc:
      'Versuchen Sie einen anderen Suchbegriff oder synchronisieren Sie mehr Konnektoren.',
    searchFailed: 'Suche fehlgeschlagen. Bitte erneut versuchen.',
    resultCount: '{count} Ergebnis(se)',
    viewSource: 'Quelle anzeigen',
    score: 'Relevanz',
  },
  workspaceObjectDetail: {
    title: 'Objekt-Details',
    description: 'Ein synchronisiertes Workspace-Objekt prüfen und vom Provider aktualisieren.',
    loadFailed: 'Objekt konnte nicht geladen werden.',
    refresh: 'Vom Provider aktualisieren',
    refreshing: 'Wird aktualisiert...',
    refreshFailed: 'Aktualisierung fehlgeschlagen.',
    content: 'Inhalt',
    metadata: 'Metadaten',
    externalCreated: 'Upstream erstellt',
    externalUpdated: 'Upstream aktualisiert',
    openInProvider: 'Beim Provider öffnen',
    author: 'Autor: {author}',
  },
  connectorDetail: {
    title: 'Konnektor-Details',
    description:
      'Sync-Historie, Health-Ereignisse und kürzlich synchronisierte Objekte für diesen Konnektor.',
    loadFailed: 'Konnektor konnte nicht geladen werden.',
    never: 'nie',
    lastSync: 'Letzte Synchronisation: {value}',
    syncRunsCount: '{count} Sync-Läufe',
    objectsCount: '{count} Objekte',
    recentObjects: 'Aktuelle Objekte',
    noObjects:
      'Noch keine synchronisierten Objekte. Lösen Sie eine Synchronisation aus, um Objekte vom Provider zu laden.',
    syncHistory: 'Sync-Historie',
    noSyncRuns: 'Noch keine Sync-Läufe.',
    syncRunLine: '{synced} synchronisiert · {failed} fehlgeschlagen',
    healthHistory: 'Health-Historie',
    noHealthEvents: 'Noch keine Health-Checks erfasst.',
    healthOk: 'OK',
    activating:
      'Konnektor wird aktiviert – Ihre ersten Objekte werden vom Provider importiert. Sie können Claw währenddessen weiter nutzen.',
    askAi: 'KI dazu befragen',
    askAiTitle: 'Über {name}',
    reconnect: 'Neu verbinden',
    reconnectTitle: 'Dieser Konnektor ist getrennt',
    reconnectDescription:
      'Die gespeicherten Anmeldedaten sind nicht mehr gültig. Autorisieren Sie erneut über App-Konfigurationen, um den Zugriff wiederherzustellen.',
  },
  workspaceSyncRuns: {
    title: 'Sync-Läufe',
    description: 'Aktuelle Sync-Historie für diesen Konnektor.',
    loading: 'Sync-Läufe werden geladen...',
    loadFailed: 'Sync-Läufe konnten nicht geladen werden.',
    empty: 'Noch keine Sync-Läufe.',
    started: 'Gestartet',
    status: 'Status',
    type: 'Typ',
    delta: 'Delta',
    found: 'Gefunden',
    synced: 'Synchronisiert',
    failed: 'Fehlgeschlagen',
    duration: 'Dauer',
  },
  workspaceSync: {
    dashboard: {
      title: 'Workspace-Sync-Status',
      description: 'Live-Ansicht geplanter Sync-Jobs über alle Workspace-Konnektoren.',
      error_title: 'Sync-Dashboard konnte nicht geladen werden',
      empty_title: 'Noch keine Konnektoren',
      empty_description:
        'Sobald Sie ein Workspace-Tool verbinden, erscheint sein Sync-Status hier.',
      scheduler_title: 'Planer',
      scheduler_enabled: 'Scheduler aktiviert',
      last_tick: 'Letzter Tick',
      active_runs: 'Aktive Läufe',
      dlq_backlog: 'DLQ-Backlog',
      connectors_title: 'Konnektoren',
      col: {
        connector: 'Konnektor',
        freshness: 'Aktualität',
        last_sync: 'Letzte Synchronisation',
        cadence: 'Kadenz',
        success_rate: 'Erfolgsrate 24h',
        avg_duration: 'Durchschn. Dauer',
        status: 'Status',
      },
    },
    band: {
      fresh: 'Frisch',
      slow: 'Langsam',
      stale: 'Veraltet',
    },
    cadence: {
      label: 'Synchronisation alle',
      '1m': '1 Minute',
      '5m': '5 Minuten',
      '10m': '10 Minuten',
      '30m': '30 Minuten',
      '1h': '1 Stunde',
      save: 'Kadenz speichern',
      saving: 'Wird gespeichert...',
      saved: 'Kadenz aktualisiert',
    },
    pause: {
      pause: 'Sync pausieren',
      resume: 'Sync fortsetzen',
      paused_label: 'Sync pausiert',
      reason_placeholder: 'Grund (optional)',
    },
    chip: {
      synced_ago: 'Vor {ago} synchronisiert',
      stale: 'Veraltet',
      paused: 'Pausiert',
    },
  },
  aiActions: {
    dialog: {
      title: 'KI-Aktion ausführen · {action}',
      description:
        'Wählen Sie ein Modell und generieren Sie. AUTO lässt den Router basierend auf Aktionstyp und Datenschutzklasse wählen.',
      model_label: 'Modell',
      generate: 'Generieren',
      regenerate: 'Neu generieren',
      resolving: 'Wird generiert…',
      cancel: 'Abbrechen',
      close: 'Schließen',
      copy: 'Kopieren',
      copied: 'Kopiert',
      generated_by: 'Generiert von {model}',
      resolution_mode: 'Modus: {mode}',
      resolution_primary: 'Primär: {model}',
      resolution_fallback: 'Eingereihte Fallback-Modelle: {count}',
    },
  },
  approvals: {
    page: {
      title: 'Genehmigungscenter',
      description:
        'Ausstehende KI-entworfene Aktionen über Ihre Workspace-Konnektoren prüfen und genehmigen.',
      empty_title: 'Keine ausstehenden Genehmigungen',
      empty_description:
        'Wenn die KI eine Aktion in Ihrem Namen entwirft, erscheint sie hier zur Überprüfung.',
      error_title: 'Genehmigungen konnten nicht geladen werden',
      error_description:
        'Beim Laden der Genehmigungsliste ist etwas schiefgelaufen. Bitte erneut versuchen.',
    },
    card: {
      approve: 'Genehmigen',
      reject: 'Ablehnen',
      edit: 'Bearbeiten',
      edited: 'Bearbeitet · v{version}',
      source_stale: 'Quelle veraltet',
      attribution_auto: 'AUTO · {model}',
      attribution_manual: 'Manuell · {model}',
    },
    bulk: {
      selected: '{count} ausgewählt',
      approve_all: 'Alle ausgewählten genehmigen',
      clear: 'Auswahl aufheben',
    },
    edit: {
      title: 'Entwurf bearbeiten',
      description:
        'Aktions-Payload bearbeiten. Der ursprüngliche Entwurf bleibt im Verlauf erhalten.',
      payload_label: 'Payload (JSON)',
      reason_placeholder: 'Grund für Bearbeitung (optional)',
      save: 'Speichern & später neu genehmigen',
      cancel: 'Abbrechen',
      invalid_json: 'Payload muss gültiges JSON sein',
    },
    reject: {
      title: 'Aktion ablehnen',
      description: 'Beschreiben Sie optional, warum Sie diese Aktion ablehnen.',
      reason_placeholder: 'Grund (optional)',
      confirm: 'Ablehnen',
      cancel: 'Abbrechen',
    },
  },
  automationPreferences: {
    page: {
      title: 'Automatisierungs-Einstellungen',
      description:
        'Steuerung pro Aktionsart. Strikteste Regel gewinnt: Admin-Richtlinie ist die Untergrenze; Ihre Einstellungen können sie nur verschärfen.',
      loading: 'Einstellungen werden geladen…',
      error: 'Einstellungen konnten nicht geladen werden. Versuchen Sie es erneut.',
      empty: 'Noch keine Aktionsarten verfügbar.',
    },
    row: {
      enabled: 'Aktiviert',
      disabled: 'Deaktiviert',
      toggleAria: 'Automatisierung für {kind} umschalten',
      autoApproveBelowRisk: 'Auto-genehmigen, wenn Risiko ≤ Schwelle',
      autoApproveDisabled: 'Auto-Genehmigung deaktiviert (immer Review-Warteschlange)',
      autoApproveAt: 'Auto-genehmigen bei Risiko ≤ {score}',
      perDayBudget: 'Tageslimit',
      perDayBudgetPlaceholder: 'unlimited',
      clear: 'Leeren',
    },
  },
  connectorGrants: {
    title: 'Freigabe',
    description:
      'Geben Sie diesen Connector für andere Benutzer frei. Der Eigentümer hat immer Vollzugriff; Empfänger sehen die von Ihnen gewählte Zugriffsstufe.',
    loading: 'Berechtigungen werden geladen …',
    error: 'Berechtigungen konnten nicht geladen werden.',
    empty: 'Noch keine Berechtigungen. Dieser Connector ist nur für Sie zugänglich.',
    granteeUserIdLabel: 'Benutzer-ID des Empfängers',
    granteeUserIdPlaceholder: 'cmnkgdc2c00009w92riuztmmd',
    accessLevelLabel: 'Zugriffsebene',
    grant: 'Zugriff gewähren',
    granting: 'Wird gewährt …',
    revoke: 'Widerrufen',
    revoking: 'Wird widerrufen …',
    grantedBy: 'gewährt von',
    levelReadOnly: 'Nur Lesen',
    levelAiActions: 'KI-Aktionen',
    levelFull: 'Vollzugriff',
  },
  emailSignatures: {
    page: {
      title: 'E-Mail-Signaturen',
      description:
        'Verwalten Sie Signaturen, die an KI-verfasste E-Mails angehängt werden. Markieren Sie eine als Standard, damit sie automatisch verwendet wird.',
      loading: 'Signaturen werden geladen…',
      error: 'Signaturen konnten nicht geladen werden. Aktualisieren Sie die Seite.',
      empty: 'Noch keine Signaturen. Erstellen Sie eine, um zu beginnen.',
      create: 'Neue Signatur',
      edit: 'Bearbeiten',
      delete: 'Löschen',
      deleting: 'Wird gelöscht…',
      defaultBadge: 'Standard',
    },
    dialog: {
      createTitle: 'Signatur erstellen',
      editTitle: 'Signatur bearbeiten',
      nameLabel: 'Name',
      namePlaceholder: 'Arbeitssignatur',
      bodyLabel: 'Text',
      bodyPlaceholder: 'Mit freundlichen Grüßen,\nAlice\nVP Engineering · Example Inc.',
      defaultLabel: 'Als Standard verwenden',
      save: 'Speichern',
      saving: 'Wird gespeichert…',
      cancel: 'Abbrechen',
    },
  },
  research: {
    toggle: {
      placeholder: 'Recherche',
      autoProvider: 'Auto-Provider',
      noProviders: 'Keine Provider konfiguriert',
    },
    modes: {
      off: 'Keine Recherche',
      searchOnly: 'Websuche',
      searchThenFetch: 'Suche + Abruf',
      searchFetchExtract: 'Suche + Extraktion',
    },
    providers: {
      title: 'Research-Provider',
      description: 'Dynamische Such-, Abruf- und Evidenz-Provider.',
      createButton: 'Neuer Provider',
      createTitle: 'Research-Provider hinzufügen',
      createDescription: 'Einen Tavily- / SearXNG- / Ollama-Web-Provider registrieren.',
      create: 'Erstellen',
      creating: 'Wird erstellt...',
      kind: 'Typ',
      name: 'Name',
      baseUrl: 'Basis-URL',
      apiKey: 'API-Key (verschlüsselt gespeichert)',
      test: 'Testen',
      secretStored: 'Geheimnis gespeichert',
      healthy: 'Funktionsfähig',
      unhealthy: 'Nicht funktionsfähig',
      loadFailed: 'Provider konnten nicht geladen werden.',
      emptyTitle: 'Keine Research-Provider',
      emptyDescription:
        'Fügen Sie einen Provider hinzu, um den Chat mit Live-Evidenz zu untermauern.',
      col: {
        name: 'Name',
        kind: 'Typ',
        baseUrl: 'Basis-URL',
        status: 'Status',
        secret: 'Geheimnis',
        actions: 'Aktionen',
      },
      namePlaceholder: 'z. B. Tavily Production',
    },
    runs: {
      title: 'Research-Läufe',
      description: 'Verlauf der aus dem Chat ausgelösten Research-Läufe.',
      loadFailed: 'Läufe konnten nicht geladen werden.',
      emptyTitle: 'Noch keine Research-Läufe',
      emptyDescription: 'Aktivieren Sie Research im Chat, um Evidenz zu erzeugen.',
    },
    evidence: {
      title: 'Live-Research-Evidenz',
      empty: 'Keine Evidenzelemente zurückgegeben.',
      noTitle: '(kein Titel)',
      confidence: 'Konfidenz',
      warnings: 'Warnungen',
      requestedModel: 'Angefordertes Modell',
      toolsUsed: 'Werkzeuge',
    },
    results: {
      open: 'Suchergebnisse',
      title: 'Research-Ergebnisse',
      description: 'Provider-Auswahl, Fallback-Kette, Evidenz-Bundle und Research-Trace prüfen.',
      provider: 'Anbieter',
      selectionMode: 'Auswahl',
      selectionAuto: 'Auto',
      selectionExplicit: 'Explizit',
      fallbackUsed: 'Fallback verwendet',
      query: 'Research-Anfrage',
      evidenceCount: 'Evidenzelemente',
      attempts: 'Provider-Versuche',
      trace: 'Research-Trace',
    },
  },
  workspaceActions: {
    title: 'Workspace-Aktionen',
    description: 'Automatisierte Schreibaktionen vor der Ausführung prüfen und genehmigen.',
    approve: 'Genehmigen',
    reject: 'Ablehnen',
    cancel: 'Abbrechen',
    rejectTitle: 'Aktion ablehnen',
    rejectDesc: 'Geben Sie optional einen Grund für die Ablehnung dieser Aktion an.',
    rejectReasonPlaceholder: 'Grund (optional)',
    confirmReject: 'Ablehnung bestätigen',
    connector: 'Konnektor',
    rejectionReason: 'Ablehnungsgrund',
    pendingApproval: 'Genehmigung ausstehend',
    executing: 'Wird ausgeführt',
    executed: 'Ausgeführt',
    failed: 'Fehlgeschlagen',
    rejected: 'Abgelehnt',
    noActions: 'Keine Aktionen gefunden',
    noActionsDesc:
      'Von der KI erstellte automatisierte Schreibaktionen erscheinen hier zur Prüfung.',
    loadFailed: 'Aktionen konnten nicht geladen werden.',
    viewPayload: 'Payload anzeigen',
    requestedAt: 'angefordert {value}',
    reviewedAt: 'geprüft {value}',
    executedAt: 'ausgeführt {value}',
    approved: 'Genehmigt',
    expired: 'Abgelaufen',
    edited: 'Bearbeitet',
  },
  workspaceProviders: {
    catalog: {
      title: 'Workspace-Provider-Katalog',
      description: 'Unterstützte Workspace-Integrationen durchsuchen.',
      loadFailed: 'Provider-Katalog konnte nicht geladen werden.',
      emptyTitle: 'Keine Provider verfügbar',
      emptyDescription: 'Noch keine Workspace-Provider registriert.',
      available: 'Verfügbar',
      comingSoon: 'Demnächst verfügbar',
      objectTypes: 'Objekttypen',
      docs: 'Dokumentation',
    },
    appConfigs: {
      title: 'Provider-App-Konfigurationen',
      description: 'OAuth-Apps und Anmeldedaten für Workspace-Provider registrieren.',
      createButton: 'Neue Konfiguration',
      createTitle: 'Provider-App-Konfiguration erstellen',
      createDescription: 'OAuth-Anmeldedaten oder ein persönliches Access-Token registrieren.',
      create: 'Erstellen',
      creating: 'Wird erstellt...',
      editTitle: 'Provider-App-Konfiguration bearbeiten',
      editDescription:
        'Aktualisieren Sie die Konfigurationswerte und Metadaten dieses Providers. Lassen Sie geheime Felder leer, um sie unverändert zu lassen.',
      editSecretHint:
        'Leer gelassene geheime Felder behalten den zuvor gespeicherten Wert. Nur ausfüllen, um Zugangsdaten zu rotieren.',
      save: 'Speichern',
      saving: 'Wird gespeichert…',
      provider: 'Anbieter',
      providerPlaceholder: 'Provider auswählen...',
      name: 'Name',
      namePlaceholder: 'z. B. GitHub Production App',
      authMode: 'Authentifizierungsmodus',
      descriptionLabel: 'Beschreibung',
      descriptionPlaceholder: 'Optionale Notizen zu dieser Konfiguration',
      test: 'Testen',
      connect: 'Verbinden',
      testResult: 'Testergebnis: {status} ({latency} ms)',
      secretStored: 'Geheimnis gespeichert',
      emptyTitle: 'Noch keine Provider-Konfigurationen',
      emptyDescription:
        'Fügen Sie Ihre ersten Provider-Anmeldedaten hinzu, um Workspace-Konnektoren zu aktivieren.',
      loadFailed: 'App-Konfigurationen konnten nicht geladen werden.',
      fields: {
        secret: '(geheim)',
      },
      columns: {
        name: 'Name',
        provider: 'Anbieter',
        authMode: 'Auth',
        status: 'Status',
        secret: 'Geheimnis',
        lastValidated: 'Zuletzt validiert',
        actions: 'Aktionen',
      },
      errors: {
        nameRequired: 'Ein Name ist erforderlich.',
      },
    },
    oauthCallback: {
      exchangingTitle: 'Verbindung wird abgeschlossen...',
      exchangingDescription: 'Autorisierungscode wird mit dem Provider ausgetauscht.',
      successTitle: 'Verbunden!',
      successDescription: 'Weiterleitung zurück zum Workspace...',
      successDescriptionNamed: '{name} verbunden. Weiterleitung zurück...',
      errorTitle: 'Verbindung fehlgeschlagen',
      errorUnknown: 'Ein unbekannter Fehler ist aufgetreten.',
    },
  },
  agent: {
    title: 'Desktop-Agent',
    description: 'Verbundene Desktop-Agents und Terminal-Befehle verwalten.',
    loading: 'Agent-Sitzungen werden geladen...',
    loadFailed: 'Agent-Daten konnten nicht geladen werden.',
    noSessions: 'Keine aktiven Sitzungen',
    noSessionsDesc: 'Starten Sie den Claw-Desktop-Agent auf Ihrer Maschine, um sich zu verbinden.',
    noCommands: 'Keine Befehle',
    noCommandsDesc: 'Ausstehende Terminal-Befehle erscheinen hier.',
    noRepos: 'Keine Repositories',
    noReposDesc: 'Vom Agent erkannte Repositories erscheinen hier.',
    terminal: 'Terminal-Befehle',
    terminalDesc: 'Vom Agent angeforderte Terminal-Befehle genehmigen oder ablehnen.',
    capabilities: 'Capability-Warteschlange',
    capabilitiesDesc:
      'Capability-Aufrufe für Dateisystem, Prozess, Browser und weitere Klassen genehmigen oder ablehnen.',
    capabilityClass: 'Klasse',
    capabilityOperation: 'Operation',
    blastRadius: 'Auswirkungsbereich',
    reversibility: 'Umkehrbarkeit',
    riskScore: 'Risikobewertung',
    matchedPolicy: 'Passende Richtlinie',
    activity: 'Agent-Aktivität',
    activityDesc: 'Letzte Capability- und Rezeptlauf-Aktivitäten auf all Ihren Geräten.',
    autoApproved: 'Automatisch genehmigt',
    denied: 'Abgelehnt',
    rolledBack: 'Zurückgesetzt',
    recipes: 'Rezepte',
    recipesDesc: 'Mehrstufige Automatisierungen, die Capability-Aufrufe miteinander verketten.',
    noRecipes: 'Noch keine Rezepte',
    noRecipesDesc: 'Erstelle ein Rezept, um mehrstufige Abläufe zu automatisieren.',
    recipeRunDetail: 'Lauf-Detail',
    recipeRunDetailDesc: 'Live-Fortschritt eines Rezeptlaufs.',
    runStatus: 'Lauf-Status',
    cancelRun: 'Lauf abbrechen',
    steps: 'Schritte',
    marketplace: 'Rezept-Marktplatz',
    marketplaceDesc: 'Durchsuche und installiere signierte Rezepte aus der Community.',
    noListings: 'Noch keine Einträge',
    noListingsDesc: 'Sobald Verlage signierte Rezepte veröffentlichen, erscheinen sie hier.',
    install: 'Installieren',
    activityMemory: 'Aktivitäts-Memory',
    activityMemoryDesc:
      'Aus deinen Geräten in die Cloud synchronisierte Aktivitätseinträge (opt-in).',
    noActivity: 'Noch keine Aktivität',
    noActivityDesc: 'Aktivität von deinen Geräten erscheint hier erst nach Cloud-Sync-Opt-in.',
    repos: 'Repositories',
    reposDesc: 'Repositories erkannt',
    pendingCommands: 'Ausstehende Befehle',
    pendingApproval: 'Genehmigung ausstehend',
    recentCommands: 'Aktuelle Befehle',
    approve: 'Genehmigen',
    reject: 'Ablehnen',
    version: 'Version',
    commands: 'Befehle',
    files: 'Dateien',
    dirty: 'Geändert',
    connect: {
      title: 'Gerät verbinden',
      approveDescription: 'Gerätedetails und Berechtigungen vor der Genehmigung prüfen.',
      scopesLabel: 'Berechtigungen (Scopes)',
      approveButton: 'Genehmigen',
      denyButton: 'Abbrechen',
      successTitle: 'Gerät verknüpft',
      successBody: 'Sie können diesen Tab schließen und zum Terminal zurückkehren.',
      expiredTitle: 'Verknüpfungslink ungültig oder abgelaufen',
      expiredBody: 'Führen Sie `claw-agent login` erneut aus, um eine neue Verknüpfung zu starten.',
      deniedTitle: 'Genehmigung abgebrochen',
      deniedBody: 'Es wurden keine Anmeldedaten ausgestellt. Sie können diesen Tab schließen.',
      accountMismatchTitle: 'Falsches Konto',
      accountMismatchBody:
        'Melden Sie sich mit dem Konto an, mit dem Sie dieses Gerät verknüpfen möchten.',
      deviceNamePlaceholder: 'z. B. Mein MacBook Pro',
    },
    rejectedByUser: 'Vom Benutzer abgelehnt',
  },
  discovery: {
    title: 'Modell-Discovery',
    description: 'Neue Ollama-Modelle dynamisch entdecken, klassifizieren und genehmigen.',
    searchPlaceholder: 'Kandidaten suchen...',
    filter: {
      status: 'Status',
      all: 'Alle',
      pending: 'Ausstehend',
      approved: 'Genehmigt',
      rejected: 'Abgelehnt',
      imported: 'Importiert',
      duplicate: 'Duplikat',
    },
    actions: {
      refresh: 'Discovery ausführen',
      dryRun: 'Testlauf',
      approve: 'Genehmigen',
      reject: 'Ablehnen',
    },
    runs: {
      title: 'Aktuelle Discovery-Läufe',
      empty: 'Noch keine Discovery-Läufe. Klicken Sie auf „Discovery ausführen", um zu beginnen.',
      discovered: 'entdeckt',
      imported: 'importiert',
      skipped: 'übersprungen',
    },
    candidates: {
      title: 'Kandidaten',
      empty: {
        title: 'Keine Kandidaten',
        description: 'Lösen Sie einen Discovery-Lauf aus, um neue Modelle zu finden.',
      },
    },
    candidate: {
      size: 'Größe',
      confidence: 'Konfidenz',
    },
    packs: {
      title: 'Hardware-Packs',
      empty: 'Keine Hardware-Packs konfiguriert.',
      install: 'Pack installieren',
      noModelsYet: 'Noch keine Modelle entsprechen diesem Profil.',
    },
  },
  validation: {
    required: 'Dieses Feld ist erforderlich',
    invalidEmail: 'Bitte eine gültige E-Mail-Adresse eingeben',
    tooShort: 'Mindestens {min} Zeichen erforderlich',
    tooLong: 'Maximal {max} Zeichen erlaubt',
    invalidUrl: 'Bitte eine gültige URL eingeben',
    fileTooLarge: 'Dateigröße überschreitet das zulässige Maximum',
    invalidFileType: 'Dieser Dateityp wird nicht unterstützt',
  },
  toast: {
    loginSuccess: 'Anmeldung erfolgreich',
    loginFailed: 'Anmeldung fehlgeschlagen',
    logoutFailed: 'Abmeldung fehlgeschlagen',
    sessionExpired: 'Sitzung abgelaufen, bitte erneut anmelden',
  },
  accessibility: {
    closeSidebar: 'Seitenleiste schließen',
    openSidebar: 'Seitenleiste öffnen',
    toggleSidebar: 'Seitenleiste umschalten',
    userMenu: 'Benutzermenü',
    closeDialog: 'Dialog schließen',
    openMenu: 'Menü öffnen',
    search: 'Suche',
    openSearch: 'Suche öffnen',
    closeSearch: 'Suche schließen',
    navigation: 'Hauptnavigation',
    notifications: 'Benachrichtigungen',
    languageSelector: 'Sprache auswählen',
    themeToggle: 'Design umschalten',
    resizeInput: 'Nachrichten-Eingabe anpassen',
  },
  actions: {
    test: 'Testen',
    testing: 'Wird getestet...',
    sync: 'Synchronisieren',
    syncing: 'Wird synchronisiert...',
    archive: 'Archivieren',
    unarchive: 'Archivierung aufheben',
    pin: 'Anheften',
    unpin: 'Lösen',
    duplicate: 'Duplizieren',
    copy: 'Kopieren',
    copied: 'Kopiert',
    copyToClipboard: 'In Zwischenablage kopieren',
    view: 'Anzeigen',
    viewAll: 'Alle anzeigen',
    viewDetails: 'Details anzeigen',
    download: 'Herunterladen',
    upload: 'Hochladen',
    refresh: 'Aktualisieren',
    reset: 'Zurücksetzen',
    apply: 'Anwenden',
    approve: 'Genehmigen',
    approving: 'Wird genehmigt...',
    reject: 'Ablehnen',
    rejecting: 'Wird abgelehnt...',
    reload: 'Neu laden',
    reconnect: 'Neu verbinden',
    expand: 'Erweitern',
    collapse: 'Einklappen',
    enable: 'Aktivieren',
    disable: 'Deaktivieren',
    remove: 'Entfernen',
    add: 'Hinzufügen',
    select: 'Auswählen',
    selectAll: 'Alle auswählen',
    deselectAll: 'Auswahl aufheben',
    clear: 'Leeren',
    submit: 'Absenden',
    more: 'Mehr',
    less: 'Weniger',
    showMore: 'Mehr anzeigen',
    showLess: 'Weniger anzeigen',
  },
  logs: {
    allLevels: 'Alle Levels',
    allActions: 'Alle Aktionen',
    allSeverities: 'Alle Schweregrade',
    allMethods: 'Alle Methoden',
    methodPlaceholder: 'Methode',
    componentPlaceholder: 'Komponente...',
    actionPlaceholder: 'Aktion...',
    routePlaceholder: 'Route...',
    routeRegexPlaceholder: 'Route (Regex)...',
    userIdPlaceholder: 'Benutzer-ID...',
    messageContainsPlaceholder: 'Nachricht enthält...',
    servicePlaceholder: 'Dienst...',
    controllerPlaceholder: 'Controller...',
    entityTypePlaceholder: 'Entitätstyp...',
    startDate: 'Startdatum',
    endDate: 'Enddatum',
    fullTextSearch: 'Volltextsuche...',
    searchAllFields: 'Alle Felder durchsuchen...',
    avgLatency: 'Durchschn. Latenz',
    errors: 'Fehler',
    failedToLoadClient: 'Client-Logs konnten nicht geladen werden',
    failedToLoadClientDesc: 'Client-Logs konnten nicht vom Server abgerufen werden',
    failedToLoadServer: 'Server-Logs konnten nicht geladen werden',
    failedToLoadServerDesc: 'Server-Logs konnten nicht vom Server abgerufen werden',
    levelDistribution: 'Level-Verteilung',
    loadingClient: 'Client-Logs werden geladen...',
    loadingServer: 'Server-Logs werden geladen...',
    noActionData: 'Keine Aktionsdaten',
    noClientLogs: 'Keine Client-Logs',
    noClientLogsActivityDesc: 'Bisher wurde keine Client-Log-Aktivität aufgezeichnet',
    noComponentData: 'Keine Komponentendaten',
    noServerLogs: 'Keine Server-Logs',
    noServerLogsActivityDesc: 'Bisher wurde keine Server-Log-Aktivität aufgezeichnet',
    noServiceData: 'Keine Dienstdaten',
    percentOfTotal: '% der Gesamtzahl',
    topActions: 'Top-Aktionen',
    topComponents: 'Top-Komponenten',
    topServices: 'Top-Dienste',
    totalLogs: 'Gesamtzahl der Logs',
  },
  gmail: {
    page: {
      title: 'Gmail',
      description: 'Synchronisierte Gmail-Nachrichten durchsuchen und verwalten.',
      empty_title: 'Keine E-Mails synchronisiert',
      empty_description:
        'Es wurden noch keine E-Mails synchronisiert. Starten Sie die Synchronisierung Ihres Gmail-Konnektors.',
      error_title: 'E-Mails konnten nicht geladen werden',
      no_connector_title: 'Kein Gmail-Konnektor gefunden',
      no_connector_description:
        'Verbinden Sie ein Gmail-Konto in den Workspace-Konnektoren, um Ihren Posteingang zu durchsuchen.',
    },
    message: {
      from: 'Von',
      to: 'An',
      date: 'Datum',
      subject: 'Betreff',
      reply: 'Antworten',
      open_in_gmail: 'In Gmail öffnen',
      unread: 'Ungelesen',
      attachments: 'Anhänge ({count})',
      download: '{name} herunterladen',
      htmlIframeTitle: 'E-Mail-Inhalt',
      toggleHtml: 'HTML umschalten',
      showHtml: 'HTML anzeigen',
      toggleImages: 'Bilder umschalten',
      loadImages: 'Bilder laden',
      imagesBlocked: 'Bilder blockiert',
    },
    actions: {
      summarize: 'Zusammenfassen',
      draft_reply: 'Antwort entwerfen',
      extract_tasks: 'Aufgaben extrahieren',
      send_email: 'E-Mail senden',
      draft_sent: 'Entwurf erstellt — in Genehmigungen prüfen',
      draft_failed: 'Entwurf konnte nicht erstellt werden',
    },
  },
  jira: {
    page: {
      title: 'Jira',
      description: 'Synchronisierte Jira-Tickets durchsuchen und verwalten.',
      empty_title: 'Keine Tickets synchronisiert',
      empty_description:
        'Es wurden noch keine Jira-Tickets synchronisiert. Lösen Sie eine Synchronisierung am Jira-Connector aus, um Tickets zu laden.',
      error_title: 'Tickets können nicht geladen werden',
      no_connector_title: 'Kein Jira-Connector gefunden',
      no_connector_description:
        'Verbinden Sie ein Jira-Konto in den Workspace-Connectors, um Ihre Tickets zu durchsuchen.',
    },
    ticket: {
      status: 'Status',
      priority: 'Priorität',
      assignee: 'Zugewiesen',
      reporter: 'Melder',
      project: 'Projekt',
      sprint: 'Sprint',
      story_points: 'Story Points',
      due_date: 'Fällig',
      labels: 'Labels',
      issue_type: 'Typ',
      open_in_jira: 'In Jira öffnen',
      unassigned: 'Nicht zugewiesen',
      no_sprint: 'Kein Sprint',
    },
    actions: {
      summarize: 'Zusammenfassen',
      write_comment: 'Kommentar schreiben',
      extract_tasks: 'Aufgaben extrahieren',
    },
  },
  source_control: {
    page: {
      title: 'Quellcodeverwaltung',
      description: 'Pull Requests von GitHub, GitLab und Bitbucket durchsuchen.',
      empty_title: 'Keine Pull Requests synchronisiert',
      empty_description:
        'Es wurden noch keine Pull Requests synchronisiert. Lösen Sie eine Synchronisierung am Quellcodeverwaltungs-Connector aus.',
      error_title: 'Pull Requests können nicht geladen werden',
      no_connector_title: 'Kein Quellcodeverwaltungs-Connector gefunden',
      no_connector_description:
        'Verbinden Sie GitHub, GitLab oder Bitbucket in den Workspace-Connectors.',
    },
    pr: {
      author: 'Autor',
      source_branch: 'Von',
      target_branch: 'In',
      reviewers: 'Reviewer',
      additions: 'Hinzufügungen',
      deletions: 'Löschungen',
      labels: 'Labels',
      draft: 'Entwurf',
      open_pr: 'PR öffnen',
      state_open: 'Offen',
      state_closed: 'Geschlossen',
      state_merged: 'Gemergt',
      review_approved: 'Genehmigt',
      review_changes: 'Änderungen angefordert',
      review_pending: 'Überprüfung ausstehend',
    },
    actions: {
      review: 'PR überprüfen',
      summarize: 'Zusammenfassen',
      extract_tasks: 'Aufgaben extrahieren',
    },
  },
  slack: {
    page: {
      title: 'Slack',
      description: 'Synchronisierte Slack-Nachrichten durchsuchen und verwalten.',
      empty_title: 'Keine Nachrichten synchronisiert',
      empty_description:
        'Es wurden noch keine Slack-Nachrichten synchronisiert. Lösen Sie eine Synchronisierung am Slack-Connector aus.',
      error_title: 'Nachrichten können nicht geladen werden',
      no_connector_title: 'Kein Slack-Connector gefunden',
      no_connector_description: 'Verbinden Sie einen Slack-Workspace in den Workspace-Connectors.',
    },
    message: {
      channel: 'Kanal',
      sender: 'Von',
      date: 'Datum',
      thread_reply: 'Thread-Antwort',
      open_in_slack: 'In Slack öffnen',
      reactions: 'Reaktionen',
    },
    actions: {
      summarize: 'Zusammenfassen',
      reply: 'Antwort entwerfen',
      extract_tasks: 'Aufgaben extrahieren',
    },
  },
  confluence: {
    page: {
      title: 'Confluence',
      description: 'Synchronisierte Confluence-Seiten durchsuchen und verwalten.',
      empty_title: 'Keine Seiten synchronisiert',
      empty_description:
        'Es wurden noch keine Confluence-Seiten synchronisiert. Starten Sie eine Synchronisierung am Confluence-Connector.',
      error_title: 'Seiten konnten nicht geladen werden',
      no_connector_title: 'Kein Confluence-Connector gefunden',
      no_connector_description:
        'Verbinden Sie einen Confluence-Workspace unter Workspace-Connectors, um Seiten zu durchsuchen.',
    },
    article: {
      space: 'Bereich',
      author: 'Autor',
      modified_by: 'Geändert von',
      version: 'Version',
      labels: 'Labels',
      parent: 'Übergeordnet',
      open_page: 'In Confluence öffnen',
    },
    actions: {
      summarize: 'Zusammenfassen',
      extract_tasks: 'Aufgaben extrahieren',
      write_comment: 'Kommentar schreiben',
    },
  },
  docs: {
    page: {
      title: 'Dokumente',
      description:
        'Synchronisierte Dokumente aus Google Drive, OneDrive und SharePoint durchsuchen und verwalten.',
      empty_title: 'Keine Dokumente synchronisiert',
      empty_description:
        'Es wurden noch keine Dokumente synchronisiert. Starten Sie eine Synchronisierung für Ihren Drive- oder SharePoint-Connector.',
      error_title: 'Dokumente konnten nicht geladen werden',
      no_connector_title: 'Kein Dokument-Connector gefunden',
      no_connector_description:
        'Verbinden Sie Google Drive, OneDrive oder SharePoint unter Workspace-Connectors, um Dokumente zu durchsuchen.',
    },
    file: {
      owner: 'Besitzer',
      modified_by: 'Geändert von',
      size: 'Größe',
      type: 'Typ',
      open_file: 'Datei öffnen',
      shared_with: 'Geteilt mit',
      path: 'Pfad',
    },
    actions: {
      summarize: 'Zusammenfassen',
      extract_tasks: 'Aufgaben extrahieren',
      draft_email: 'E-Mail entwerfen',
    },
  },
  figma: {
    page: {
      title: 'Figma',
      description: 'Synchronisierte Figma-Designdateien durchsuchen und verwalten.',
      empty_title: 'Keine Designs gefunden',
      empty_description: 'Es wurden noch keine Figma-Designdateien synchronisiert.',
      error_title: 'Designs konnten nicht geladen werden',
      no_connector_title: 'Figma nicht verbunden',
      no_connector_description: 'Verbinde deinen Figma-Arbeitsbereich, um Designs zu durchsuchen.',
    },
    design: {
      team: 'Team',
      project: 'Projekt',
      modified_by: 'Geändert von',
      components: 'Komponenten',
      open_in_figma: 'In Figma öffnen',
      last_updated: 'Zuletzt aktualisiert',
    },
    actions: {
      summarize: 'Design zusammenfassen',
      extract_components: 'Komponenten extrahieren',
      draft_spec: 'Spezifikation entwerfen',
    },
  },
  workflow: {
    page: {
      title: 'Arbeitsbereichs-übergreifende Workflows',
      description:
        'Objekte aus mehreren Workspace-Anbietern auswählen und KI-Aktionen auf kombinierten Kontext anwenden.',
      empty_title: 'Keine Objekte gefunden',
      empty_description: 'Es wurden noch keine Workspace-Objekte synchronisiert.',
      error_title: 'Objekte konnten nicht geladen werden',
    },
    object: {
      add: 'Hinzufügen',
      remove: 'Entfernen',
      selected_count: 'Objekte ausgewählt',
      clear_all: 'Alle löschen',
    },
    actions: {
      summarize_all: 'Alles zusammenfassen',
      extract_requirements: 'Anforderungen extrahieren',
      draft_prd: 'PRD entwerfen',
    },
  },
  gpuBadge: {
    cpuOnly: 'Nur CPU',
    noGpu: 'Keine GPU erkannt — klicken zum Anzeigen lokaler Modelle',
    vendor: {
      nvidia: 'NVIDIA',
      amd: 'AMD ROCm',
      metal: 'Metal',
      intel: 'Intel/Vulkan',
      unknown: 'GPU',
      cpu: 'CPU',
    },
  },
  localFrontier: {
    title: 'Lokale Frontier-Modelle',
    subtitle: 'Frontier-LLMs (Kimi K2, GLM-5.1, DeepSeek V3.2/V4) komplett lokal ausführen.',
    loading: 'Katalog wird geladen…',
    catalogEmpty: 'Keine Modelle entsprechen den Filtern.',
    catalogError: 'Katalog konnte nicht geladen werden. Prüfen Sie claw-llamacpp-service.',
    contextLength: 'Token Kontext',
    requiresRamGb: 'GB RAM',
    sourceLink: 'HuggingFace',
    actions: {
      download: 'Herunterladen',
      load: 'Laden',
      unload: 'Entladen',
      deleteWeights: 'Gewichte löschen',
      configure: 'Runtime konfigurieren',
    },
    download: { start: 'Herunterladen', cancel: 'Abbrechen', retry: 'Erneut versuchen' },
    compat: { fits: 'Passt zur Hardware', warns: 'Knapp', refuses: 'Hardware unzureichend' },
    qualityTier: { survival: 'Überleben', balanced: 'Ausgewogen', best: 'Beste' },
    preflight: {
      RAM_INSUFFICIENT: 'Nicht genug RAM für dieses Modell.',
      DISK_INSUFFICIENT: 'Nicht genug freier Speicher (kein Override möglich).',
      GPU_INSUFFICIENT: 'Keine kompatible GPU erkannt.',
      BINARY_NOT_INSTALLED: 'llama-server-Binary noch nicht installiert.',
      RUNTIME_INCOMPATIBLE: 'Installierte Runtime kann dieses Modell nicht ausführen.',
    },
    override: {
      warning: 'Hardware unter Anforderung. Override nur, wenn Sie das Risiko verstehen.',
      confirmTypeSize: 'Modellgröße in GB eingeben, um Override zu bestätigen:',
    },
    delete: {
      confirm: 'Gewichte löschen?',
      confirmTypePrompt: 'Modellname tippen (z. B. glm-5.1:Q4_K_M), um Löschung zu bestätigen.',
    },
    hardware: {
      title: 'Hardware & Laufzeit',
      subtitle: 'Live-Snapshot dieses Rechners und der llama.cpp-Binary.',
      refresh: 'Aktualisieren',
      ram: 'RAM',
      disk: 'Speicher',
      cpu: 'CPU',
      gpu: 'GPU',
      binary: 'Binärdatei',
      cores: 'Kerne',
      noGpu: 'Keine GPU erkannt',
      notInstalled: 'Nicht installiert',
      loadedModel: 'Geladenes Modell',
      noLoadedModel: 'Keines geladen',
    },
    filters: {
      category: 'Kategorie',
      qualityTier: 'Qualitätsstufe',
      compatibleOnly: 'Nur kompatible',
      refreshCatalog: 'Katalog aktualisieren',
      refreshing: 'Wird aktualisiert…',
      allCategories: 'Alle Kategorien',
      allTiers: 'Alle Stufen',
      categoryCoding: 'Code',
      categoryReasoning: 'Begründung',
      categoryThinking: 'Denken',
      categoryGeneral: 'Allgemein',
      categoryFileGen: 'Dateigenerierung',
    },
    downloads: {
      title: 'Aktive Downloads',
      empty: 'Keine aktiven oder kürzlichen Downloads.',
      cancel: 'Abbrechen',
      retry: 'Erneut versuchen',
      remove: 'Schließen',
      status: 'Status',
      bytes: 'Bytes',
      files: 'Dateien',
      rate: 'Rate',
      eta: 'ETA',
      unknown: 'Wird vorbereitet…',
    },
    deleteDialog: {
      title: 'Gewichte löschen',
      description: 'Entfernt die heruntergeladenen Gewichte dauerhaft von der Festplatte.',
      promptLabel: 'Zur Bestätigung tippen',
      placeholder: 'modell:tag',
      cancel: 'Abbrechen',
      confirm: 'Gewichte löschen',
      warning:
        'Nicht rückgängig zu machen. Sie müssen erneut herunterladen, um das Modell wieder zu nutzen.',
    },
    overrideDialog: {
      title: 'Hardware-Preflight überschreiben?',
      description: 'Ihr Rechner erfüllt die empfohlenen Spezifikationen nicht.',
      reasonsTitle: 'Gründe:',
      cancel: 'Abbrechen',
      proceed: 'Trotzdem herunterladen',
    },
    configDialog: {
      title: 'Runtime-Konfiguration',
      description: 'llama.cpp-Parameter für das geladene Modell anpassen.',
      ngpuLayers: 'GPU-Layer',
      ngpuLayersHint: 'Anzahl der auf GPU ausgelagerten Layer. Leer = automatisch.',
      ctxSize: 'Kontextgröße',
      ctxSizeHint: 'Maximales Kontextfenster in Token.',
      threads: 'CPU-Threads',
      threadsHint: 'CPU-Thread-Anzahl. Leer = automatisch.',
      cpuMoe: 'CPU MoE',
      cpuMoeHint: 'Mixture-of-Experts-Layer nur auf CPU ausführen.',
      customArgs: 'Benutzerdefinierte Args',
      customArgsHint: 'Zusätzliche llama-server-Flags (Allowlist erzwungen).',
      cancel: 'Abbrechen',
      save: 'Speichern',
    },
  },

  emailTemplates: {
    page: {
      title: 'E-Mail-Vorlagen',
      description:
        'Wiederverwendbare Betreff- und Textbausteine für KI-verfasste E-Mails. {{placeholders}} werden beim Verwenden der Vorlage gefüllt.',
      loading: 'Vorlagen werden geladen…',
      error: 'Vorlagen konnten nicht geladen werden. Aktualisieren Sie die Seite.',
      empty: 'Noch keine Vorlagen. Erstellen Sie eine, um zu beginnen.',
      create: 'Neue Vorlage',
      edit: 'Bearbeiten',
      delete: 'Löschen',
      deleting: 'Wird gelöscht…',
      defaultBadge: 'Standard',
      subjectLabel: 'Betreff',
    },
    dialog: {
      createTitle: 'Vorlage erstellen',
      editTitle: 'Vorlage bearbeiten',
      nameLabel: 'Name',
      namePlaceholder: 'Follow-up-E-Mail',
      subjectLabel: 'Betreff',
      subjectPlaceholder: 'Nachfassen zu {{topic}}',
      bodyLabel: 'Text',
      bodyPlaceholder: 'Hallo {{name}},\n\nich melde mich noch einmal zu {{topic}}…',
      defaultLabel: 'Als Standard verwenden',
      save: 'Speichern',
      saving: 'Wird gespeichert…',
      cancel: 'Abbrechen',
    },
  },

  inbox: {
    page: {
      title: 'Arbeitsbereich-Posteingang',
      description:
        'Cross-provider feed of every recent workspace object — filter by provider, type, attention.',
      loading: 'Posteingang wird geladen…',
      loadingMore: 'Lade weitere…',
      loadMore: 'Mehr laden',
      empty: 'Keine Elemente entsprechen den Filtern.',
      error: 'Posteingang konnte nicht geladen werden. Versuchen Sie es erneut.',
    },
    filter: {
      providers: 'Anbieter:',
      types: 'Typ:',
      needsAttention: 'Aufmerksamkeit erforderlich',
      hasSuggestion: 'Hat Vorschlag',
      reset: 'Filter zurücksetzen',
    },
    row: {
      needsAttention: 'Aufmerksamkeit erforderlich',
      hasSuggestion: 'Hat Vorschlag',
      mark: 'Aufmerksamkeit markieren',
      unmark: 'Markierung entfernen',
      openExternal: 'Öffnen',
      viewFile: 'Datei ansehen',
    },
  },
  fileViewer: {
    loading: 'Datei wird geladen…',
    error: 'Diese Datei konnte nicht geladen werden.',
    unsupported:
      'Für diesen Dateityp ist keine Vorschau verfügbar. Nutzen Sie Herunterladen, um sie lokal zu öffnen.',
    download: 'Herunterladen',
    close: 'Schließen',
  },
  search: {
    page: {
      title: 'Semantische Suche',
      description: 'Suche in allen Workspace-Objekten — datenschutzfreundliche lokale Embeddings.',
      placeholder: 'Type a natural-language question…',
      submit: 'Suche',
      searching: 'Suche läuft…',
      reset: 'Zurücksetzen',
      local: 'Mit lokalen Embeddings ({model})',
      noResults: 'Keine Treffer. Versuchen Sie andere Begriffe.',
      error: 'Suche fehlgeschlagen. Bitte erneut versuchen.',
    },
  },
  digest: {
    page: {
      title: 'Zusammenfassung',
      description:
        'Ihr morgendlicher Überblick: Was hat sich in allen verbundenen Workspaces geändert.',
      loading: 'Zusammenfassung wird geladen…',
      error: 'Zusammenfassung konnte nicht geladen werden.',
      noTodayDigest: 'Heute noch keine Zusammenfassung. Auslösen oder auf den Cron warten.',
      today: 'Heutige Zusammenfassung',
      history: 'Vorherige Zusammenfassungen',
      generatedAt: 'Erstellt {ts}',
      sectionsCount: '{n} sections',
      triggerDaily: 'Tageszusammenfassung auslösen',
      triggerWeekly: 'Wochenzusammenfassung auslösen',
      triggering: 'Wird erstellt…',
      preferenceHint: 'Tägliche Zustellung: {hour}:00 ({tz})',
    },
    section: {
      highlights: 'Highlights',
      actionItems: 'Aufgaben',
    },
  },
  adminAutomation: {
    dismiss: 'Schließen',
    retry: 'Erneut versuchen',
    policies: {
      title: 'KI-Aktionsrichtlinien',
      description:
        'Standardmäßig strenge Freigaberegeln. Systemstandards können deaktiviert, aber nicht gelöscht werden.',
      loading: 'Richtlinien werden geladen…',
      error: 'Richtlinien konnten nicht geladen werden.',
      empty: 'Noch keine Richtlinien konfiguriert.',
      systemDefault: 'Systemstandard',
      priority: 'Priorität {p}',
      providerRegex: 'Anbieter-Regex',
      actionKindRegex: 'Aktionsart-Regex',
      riskCeiling: 'Risikoobergrenze',
      delete: 'Löschen',
      cannotDelete: 'Systemstandards können nicht gelöscht werden',
      toggleActive: 'Aktiv umschalten',
      toggleSucceeded: 'Richtlinie aktualisiert.',
      toggleFailed: 'Richtlinie konnte nicht aktualisiert werden.',
      deleteSucceeded: 'Richtlinie gelöscht.',
      deleteFailed: 'Richtlinie konnte nicht gelöscht werden.',
      mutationError: 'Beim Aktualisieren der Richtlinie ist ein Fehler aufgetreten.',
      addPolicy: 'Richtlinie hinzufügen',
      editPolicy: 'Richtlinie bearbeiten',
      createTitle: 'Richtlinie erstellen',
      editTitle: 'Richtlinie bearbeiten',
      createDescription:
        'Definieren Sie eine neue Freigaberegel für KI-entworfene Workspace-Aktionen.',
      editDescription: 'Diese Freigaberegel aktualisieren. Der Name kann nicht geändert werden.',
      createSucceeded: 'Richtlinie erstellt.',
      createFailed: 'Richtlinie konnte nicht erstellt werden.',
      updateSucceeded: 'Richtlinie aktualisiert.',
      updateFailed: 'Richtlinie konnte nicht aktualisiert werden.',
      submit: 'Richtlinie speichern',
      submitting: 'Speichern…',
      nameLabel: 'Name',
      nameHelp: 'Kleinbuchstaben-Kebab-Case-ID (z. B. deny-pii).',
      descriptionLabel: 'Beschreibung',
      kindFieldLabel: 'Art',
      requireReasonLabel: 'Begründung für HIGH/CRITICAL erforderlich',
      isActiveLabel: 'Aktiv',
      riskMaxScoreLabel: 'Maximaler Risikowert (0–100)',
      priorityLabel: 'Priorität (0–10000)',
      kindLabel: {
        DENY: 'Ablehnen',
        ALLOW: 'Erlauben',
        AUTO_APPROVE: 'Automatisch genehmigen',
      },
      riskLabel: {
        LOW: 'Niedrig',
        MEDIUM: 'Mittel',
        HIGH: 'Hoch',
        CRITICAL: 'Kritisch',
      },
    },
    rules: {
      title: 'Vorschlags-Triggerregeln',
      description:
        'Regeln, die rohe Anbieterereignisse in Vorschlagsentwürfe umwandeln. Bearbeiten, deaktivieren oder löschen.',
      loading: 'Regeln werden geladen…',
      error: 'Regeln konnten nicht geladen werden.',
      empty: 'Noch keine Regeln konfiguriert.',
      systemDefault: 'Systemstandard',
      priority: 'Priorität {p}',
      eventType: 'Ereignistyp',
      actionKind: 'Aktionsart',
      providerRegex: 'Anbieter-Regex',
      contentRegex: 'Inhalts-Regex',
      delete: 'Löschen',
      cannotDelete: 'Systemstandards können nicht gelöscht werden',
      toggleActive: 'Aktiv umschalten',
      toggleSucceeded: 'Regel aktualisiert.',
      toggleFailed: 'Regel konnte nicht aktualisiert werden.',
      deleteSucceeded: 'Regel gelöscht.',
      deleteFailed: 'Regel konnte nicht gelöscht werden.',
      mutationError: 'Beim Aktualisieren der Regel ist ein Fehler aufgetreten.',
      addRule: 'Regel hinzufügen',
      editRule: 'Regel bearbeiten',
      createTitle: 'Regel erstellen',
      editTitle: 'Regel bearbeiten',
      createDescription:
        'Definieren Sie, wann ein Vorschlag aus einem Workspace-Ereignis entworfen werden soll.',
      editDescription: 'Diese Triggerregel aktualisieren. Der Name kann nicht geändert werden.',
      createSucceeded: 'Regel erstellt.',
      createFailed: 'Regel konnte nicht erstellt werden.',
      updateSucceeded: 'Regel aktualisiert.',
      updateFailed: 'Regel konnte nicht aktualisiert werden.',
      submit: 'Regel speichern',
      submitting: 'Speichern…',
      nameLabel: 'Name',
      nameHelp: 'Kleinbuchstaben-Kebab-Case-ID (z. B. github-pr-opened).',
      descriptionLabel: 'Beschreibung',
      eventTypeHelp: 'Ereignismuster wie workspace.webhook.received.',
      actionKindHelp: 'Aktionsart wie SUMMARIZE, DRAFT, REWRITE.',
      isActiveLabel: 'Aktiv',
      priorityLabel: 'Priorität (0–10000)',
    },
  },
  adminWebhooks: {
    page: {
      title: 'Webhook-Auslieferungen',
      description: 'Eingehende Webhook-Auslieferungen Ihrer Anbieter prüfen und erneut zustellen.',
      loading: 'Auslieferungen werden geladen…',
      error: 'Webhook-Auslieferungen konnten nicht geladen werden.',
      empty: 'Keine Auslieferungen entsprechen den Filtern.',
    },
    filter: {
      providerPlaceholder: 'Nach Anbieter filtern (z. B. GITHUB)',
      connectorPlaceholder: 'Nach Connector-ID filtern',
      signaturePlaceholder: 'Signaturstatus',
      signatureAny: 'Beliebige Signatur',
      signatureValid: 'Gültige Signatur',
      signatureInvalid: 'Ungültige Signatur',
      clear: 'Filter zurücksetzen',
    },
    row: {
      deliveryId: 'Liefer-ID',
      connector: 'Connector',
      bytes: 'Body-Bytes',
      processedAt: 'Verarbeitet am',
    },
    status: {
      accepted: 'Akzeptiert',
      rejected: 'Abgelehnt',
      idempotent: 'Idempotent',
    },
    replay: 'Erneut zustellen',
    replaying: 'Wird erneut zugestellt…',
    replaySucceeded: 'Webhook-Auslieferung erneut zugestellt.',
    replayFailed: 'Webhook-Auslieferung konnte nicht erneut zugestellt werden.',
  },
  implHandoff: {
    page: {
      title: 'Coding-Übergaben',
      description:
        'Approved IMPL_PROMPT actions delivered to chat threads, agent terminals, or clipboard.',
      loading: 'Übergaben werden geladen…',
      error: 'Übergaben konnten nicht geladen werden.',
      empty: 'Noch keine Übergaben. Genehmigen Sie IMPL_PROMPT in der Warteschlange.',
      openThread: 'Chat-Thread öffnen →',
    },
    picker: {
      title: 'IMPL_PROMPT senden an…',
      description: 'Wählen Sie, wohin der genehmigte Coding-Brief geliefert werden soll.',
      cancel: 'Abbrechen',
      CHAT: { hint: 'Einen neuen Chat-Thread mit dem Brief vorgeladen öffnen' },
      AGENT: { hint: 'In die Terminal-Warteschlange des verbundenen Geräts einreihen' },
      CLIPBOARD: { hint: 'In Zwischenablage kopieren für externe Tools' },
    },
  },
  learned: {
    panel: {
      title: 'Was wir gelernt haben',
      subtitle: '{count} preferences',
      description:
        'Patterns derived from your approve / reject / edit decisions. Used to personalise future suggestions.',
      loading: 'Wird geladen…',
      error: 'Einstellungen konnten nicht geladen werden.',
      empty: 'Wir lernen aus Ihren Genehmigungen — noch keine Präferenzen.',
    },
  },
};
