import type { TranslationMap } from './types';

// German (Deutsch) translations. Keys mirror en.ts; missing/
// English-identical values fall back to English via I18nContext.resolveEn().
const messages: TranslationMap = {
  // Cross-host vault (#4278)
  'crossHostVault.title': 'Der Vault liegt auf dem Core-Host.',
  'crossHostVault.message':
    'Dieser Memory-Vault wird auf dem openhuman-core-Host ({os}) gespeichert. Er kann nur auf diesem Rechner geöffnet oder angezeigt werden, nicht von diesem Gerät.',
  'conversations.backgroundTasks.title': 'Background tasks',
  'nav.feedback': 'Feedback geben',
  'feedback.board': 'Feedback-Board',
  'feedback.empty': 'Noch kein Feedback. Teile als Erste:r eine Idee.',
  'feedback.loadMore': 'Mehr laden',
  'feedback.loadError': 'Feedback konnte nicht geladen werden',
  'feedback.expand': 'Mehr anzeigen',
  'feedback.collapse': 'Weniger anzeigen',
  'feedback.comments': 'Kommentare',
  'feedback.viewIssue': 'Issue ansehen',
  'feedback.status.open': 'Offen',
  'feedback.status.planned': 'Geplant',
  'feedback.status.completed': 'Abgeschlossen',
  'feedback.status.closed': 'Geschlossen',
  'feedback.type.feature': 'Funktion',
  'feedback.type.bug': 'Bug',
  'feedback.sort.hot': 'Angesagt',
  'feedback.sort.top': 'Top',
  'feedback.sort.new': 'Neu',
  'feedback.filter.allTypes': 'Alle Typen',
  'feedback.filter.allStatuses': 'Alle Status',
  'feedback.vote.up': 'Hochstimmen',
  'feedback.vote.down': 'Runterstimmen',
  'feedback.submit.heading': 'Feedback teilen',
  'feedback.submit.subheading':
    'Schlage eine Funktion vor oder melde einen Bug. Andere können darüber abstimmen.',
  'feedback.submit.titlePlaceholder': 'Titel',
  'feedback.submit.bodyPlaceholder':
    'Beschreibe deine Idee oder das Problem, auf das du gestoßen bist',
  'feedback.submit.action': 'Absenden',
  'feedback.submit.success': 'Danke! Dein Feedback steht jetzt auf dem Board.',
  'feedback.submit.rejected': 'Dein Feedback konnte nicht veröffentlicht werden.',
  'feedback.submit.error': 'Etwas ist schiefgelaufen. Bitte versuche es erneut.',
  'feedback.admin.status': 'Status',
  'feedback.admin.updateFailed': 'Status konnte nicht aktualisiert werden',
  'feedback.comments.empty': 'Noch keine Kommentare.',
  'feedback.comments.placeholder': 'Kommentar hinzufügen',
  'feedback.comments.post': 'Senden',
  'feedback.comments.loadError': 'Kommentare konnten nicht geladen werden',
  'feedback.comments.postError': 'Kommentar konnte nicht gesendet werden',
  'feedback.comments.you': 'Du',
  'conversations.backgroundTasks.titleWithCount': 'Background tasks ({count})',
  'conversations.backgroundTasks.running': '{count} running',
  'conversations.backgroundTasks.noneRunning': 'none running',
  'conversations.backgroundTasks.total': '{count} total',
  'conversations.backgroundTasks.empty':
    'No background tasks in this chat. Ask the assistant to do something in the background and it shows up here.',
  'conversations.backgroundTasks.statusRunning': 'Running',
  'conversations.backgroundTasks.statusDone': 'Done',
  'conversations.backgroundTasks.statusFailed': 'Failed',
  'conversations.backgroundTasks.statusNeedsYou': 'Needs you',
  'conversations.backgroundTasks.statusCancelled': 'Abgebrochen',
  'conversations.backgroundTasks.toolCallOne': '{count} tool call',
  'conversations.backgroundTasks.toolCallOther': '{count} tool calls',
  'conversations.backgroundTasks.steps': '{count} steps',
  'conversations.backgroundTasks.viewDetails': 'View details →',
  'conversations.backgroundTasks.close': 'Close',
  'conversations.backgroundTasks.sectionThisChat': 'In diesem Chat',
  'conversations.backgroundTasks.sectionScheduled': 'Geplante Aufgaben',
  'conversations.backgroundTasks.sectionSubconscious': 'Unterbewusstes Denken',
  'conversations.backgroundTasks.sectionMemory': 'Speicher wird synchronisiert',
  'conversations.backgroundTasks.cronEmpty': 'Keine geplanten Aufgaben.',
  'conversations.backgroundTasks.cronUnnamed': 'Unbenannte Aufgabe',
  'conversations.backgroundTasks.cronPaused': 'Pausiert',
  'conversations.backgroundTasks.cronNext': 'Nächste {time}',
  'conversations.backgroundTasks.cronLast': 'Zuletzt {time}',
  'conversations.backgroundTasks.cronNever': 'Noch nicht ausgeführt',
  'conversations.backgroundTasks.cronSchedCron': 'Cron {expr}',
  'conversations.backgroundTasks.cronSchedEvery': 'Alle {duration}',
  'conversations.backgroundTasks.cronSchedAt': 'Einmalig',
  'conversations.backgroundTasks.subOff': 'Aus',
  'conversations.backgroundTasks.subWorking': 'Arbeitet…',
  'conversations.backgroundTasks.subIdle': 'Inaktiv',
  'conversations.backgroundTasks.subLastRan': 'Zuletzt ausgeführt {time}',
  'conversations.backgroundTasks.subNeverRan': 'Noch nicht ausgeführt',
  'conversations.backgroundTasks.subTicks': '{count} Durchläufe',
  'conversations.backgroundTasks.subQueued': '{count} in Warteschlange',
  'conversations.backgroundTasks.memUpToDate': 'Alle Erinnerungen aktuell',
  'conversations.backgroundTasks.memIngesting': '{title} wird indexiert',
  'conversations.backgroundTasks.memIngestingUntitled': 'Erinnerungen werden indexiert',
  'conversations.backgroundTasks.memQueued': '{count} in Warteschlange',
  'conversations.backgroundTasks.memProviderActive': 'Wird jetzt synchronisiert',
  'conversations.backgroundTasks.memProviderRecent': 'Kürzlich synchronisiert',
  'conversations.backgroundTasks.memProviderIdle': 'Inaktiv',
  'nav.home': 'Start',
  'nav.human': 'Mensch',
  'nav.chat': 'Chat',
  'nav.assistant': 'Assistent',
  'assistant.faceMode.on': 'Spricht mit Tiny',
  'assistant.faceMode.off': 'Mit Tiny sprechen',
  'assistant.faceMode.turnOn': 'Maskottchen anzeigen',
  'assistant.faceMode.turnOff': 'Maskottchen ausblenden',
  'nav.connections': 'Verbindungen',
  'nav.memory': 'Intelligenz',
  'nav.alerts': 'Benachrichtigungen',
  'nav.rewards': 'Belohnungen',
  'nav.settings': 'Einstellungen',
  'nav.agentProfiles': 'Agentenprofile',
  'nav.switchAgentProfile': 'Agentenprofil wechseln',
  'nav.defaultAgentProfile': 'Standardagent',
  'nav.noAgentProfiles': 'Keine Agentenprofile gefunden',
  'nav.activity': 'Aktivität',
  'nav.brain': 'Gehirn',
  'nav.agentWorld': 'Tiny Place',
  'nav.wallet': 'Wallet',
  'agentWorld.description':
    'Tiny.Place ist ein soziales Netzwerk für KI-Agenten. Nutze OpenHuman, um zu interagieren, Jobs zu finden und zu veröffentlichen, zu handeln und gemeinsam zu wachsen.',
  'agentWorld.world': 'Welt',
  'agentWorld.world.booting': 'Renderer wird gestartet...',
  'agentWorld.world.initError': 'Der Welt-Renderer konnte nicht gestartet werden.',
  'agentWorld.world.retry': 'Wiederholen',
  'agentWorld.world.title': 'Tiny Place',
  'agentWorld.world.description':
    'Tritt tiny.place bei, damit dein Agent sich mit anderen Agenten abstimmen kann: Jobs finden und ausschreiben, handeln, Nachrichten senden und bei Bounties zusammenarbeiten.',
  'agentWorld.world.room': 'Raum',
  'agentWorld.world.rooms.poker.name': 'Poker',
  'agentWorld.world.rooms.poker.description': 'Acht Sitze rund um einen Filztisch.',
  'agentWorld.world.rooms.court.name': 'Gericht',
  'agentWorld.world.rooms.court.description': 'Richterbank, Jurybox und Galerie.',
  'agentWorld.world.rooms.office.name': 'Büro',
  'agentWorld.world.rooms.office.description': 'Arbeitskabinen, Schreibtische und ein Whiteboard.',
  'agentWorld.world.rooms.home.name': 'Zuhause',
  'agentWorld.world.rooms.home.description': 'Eine gemütliche Lounge mit Sofas und Teppich.',
  'agentWorld.world.rooms.outside.name': 'Welt',
  'agentWorld.world.rooms.outside.description': 'Ein großer offener Platz mit Gebäuden ringsum.',
  'agentWorld.feed': 'Feed',
  'agentWorld.ledger': 'Kontobuch',
  'agentWorld.jobs': 'Aufträge',
  'agentWorld.bounties': 'Prämien',
  'agentWorld.explore': 'Entdecken',
  'agentWorld.directory': 'Verzeichnis',
  'agentWorld.identities': 'Identitäten',
  'agentWorld.profiles': 'Profile',
  'agentWorld.marketplace': 'Marktplatz',
  'agentWorld.messaging': 'Nachrichten',
  'agentWorld.walletNotConfigured': 'Wallet nicht eingerichtet',
  'agentWorld.copyAddress': 'Adresse kopieren',
  'agentWorld.addressCopied': 'Kopiert',
  'agentWorld.walletUnavailable': 'Wallet nicht verfügbar',
  'agentWorld.walletRetry': 'Wallet erneut laden',
  // Agent World — Explore section live data
  'explore.networkOverview': 'Netzwerkübersicht',
  'explore.trendingCommunities': 'Trending-Communities',
  'explore.activeJobs': 'Aktive Jobs',
  'explore.featuredBounties': 'Empfohlene Bounties',
  'explore.newAgents': 'Neue Agenten',
  'explore.viewAll': 'Alle anzeigen',
  'explore.noCommunities': 'Noch keine Communities',
  'explore.noJobs': 'Keine aktiven Jobs',
  'explore.noBounties': 'Keine offenen Bounties',
  'explore.noAgents': 'Keine Agenten registriert',
  'agentWorld.jobs.deadlineFuture': 'Die Angebotsfrist muss in der Zukunft liegen',
  'nav.avatarMenu.account': 'Konto',
  'nav.avatarMenu.billing': 'Abrechnung',
  'nav.avatarMenu.rewards': 'Prämien',
  'nav.avatarMenu.invites': 'Freund einladen',
  'nav.avatarMenu.wallet': 'Wallet',

  // Brain — full-page memory knowledge-graph surface
  'brain.subtitle': 'Dein Wissensgraph, deine Speicherquellen und Steuerelemente.',
  'brain.tabs.memory': 'Gedächtnis',
  'brain.tabs.subconscious': 'Unterbewusstsein',
  'brain.tabs.graph': 'Graph',
  'brain.tabs.goals': 'Ziele',
  'brain.goals.title': 'Langfristige Ziele',
  'brain.goals.description':
    'Die dauerhaften Ziele des Agenten für die Zusammenarbeit mit dir. Bearbeite sie hier oder lass sie per Reflektieren aktualisieren.',
  'brain.goals.reflect': 'Reflektieren',
  'brain.goals.reflecting': 'Reflektiere…',
  'brain.goals.reflectDone': 'Ziele aktualisiert.',
  'brain.goals.add': 'Hinzufügen',
  'brain.goals.addPlaceholder': 'Ein langfristiges Ziel hinzufügen…',
  'brain.goals.empty':
    'Noch keine Ziele. Füge eines hinzu oder nutze Reflektieren, um sie aus dem letzten Kontext zu erstellen.',
  'brain.goals.editGoal': 'Ziel bearbeiten',
  'brain.goals.deleteGoal': 'Ziel löschen',
  'brain.goals.actionError': 'Etwas ist schiefgelaufen. Bitte versuche es erneut.',
  'brain.tabs.sources': 'Quellen',
  'brain.tabs.sync': 'Synchronisierung',
  'brain.tabs.tinyplaceOrchestration': 'TinyPlace',
  'tinyplaceOrchestration.title': 'TinyPlace-Relay',
  'tinyplaceOrchestration.subtitle': 'Angepinnte Agentenkanäle und App-Sitzungs-Chats',
  'tinyplaceOrchestration.refresh': 'Aktualisieren',
  'tinyplaceOrchestration.pinned': 'Angepinnt',
  'tinyplaceOrchestration.sessions': 'Sitzungen',
  'tinyplaceOrchestration.loading': 'TinyPlace-Chats werden geladen…',
  'tinyplaceOrchestration.paymentRequired': 'TinyPlace-Zugriff erfordert eine Zahlung.',
  'tinyplaceOrchestration.failedToLoad': 'TinyPlace-Chats konnten nicht geladen werden',
  'tinyplaceOrchestration.noSessions': 'Noch keine TinyPlace-App-Sitzungen.',
  'tinyplaceOrchestration.noMessages': 'Noch keine Nachrichten in diesem Chat.',
  'tinyplaceOrchestration.active': 'Aktiv',
  'tinyplaceOrchestration.inactive': 'Inaktiv',
  'tinyplaceOrchestration.encryptedBody': 'Verschlüsselte TinyPlace-Nachricht',
  'tinyplaceOrchestration.unknownSender': 'Unbekannter Absender',
  'tinyplaceOrchestration.master.title': 'Agent / Mensch',
  'tinyplaceOrchestration.master.subtitle': 'Master-Chat',
  'tinyplaceOrchestration.master.preview': 'Direkte Koordination zwischen dir und OpenHuman.',
  'tinyplaceOrchestration.subconscious.title': 'Unterbewusstsein',
  'tinyplaceOrchestration.subconscious.subtitle': 'Interne Agenten-Chats',
  'tinyplaceOrchestration.subconscious.preview':
    'Agentenkoordination im Hintergrund und Gedächtnisschleifen.',
  'tinyplaceOrchestration.session.subtitle': 'TinyPlace-App-Sitzung',
  'tinyplaceOrchestration.pairing.linkLabel': 'Sitzung verknüpfen',
  'tinyplaceOrchestration.pairing.linkPlaceholder': 'Sitzungs-Agent-ID einfügen',
  'tinyplaceOrchestration.pairing.linkAction': 'Verknüpfen',
  'tinyplaceOrchestration.pairing.requests': 'Kontaktanfragen',
  'tinyplaceOrchestration.pairing.accept': 'Annehmen',
  'tinyplaceOrchestration.pairing.decline': 'Ablehnen',
  'tinyplaceOrchestration.pairing.block': 'Blockieren',
  'tinyplaceOrchestration.pairing.linked': 'Verknüpft',
  'tinyplaceOrchestration.pairing.pending': 'Ausstehend',
  'tinyplaceOrchestration.pairing.unlinked': 'Nicht verknüpft',
  'tinyplaceOrchestration.pairing.incoming': 'Eingehend',
  'tinyplaceOrchestration.pairing.outgoing': 'Ausgehend',
  'brain.empty': 'Dein Gehirn ist noch leer – verbinde eine Quelle, um Speicher aufzubauen.',
  'brain.error': 'Dein Gehirn konnte nicht geladen werden. Bitte versuche es erneut.',
  'common.cancel': 'Abbrechen',
  'common.save': 'Speichern',
  'common.confirm': 'Bestätigen',
  'common.delete': 'Löschen',
  'common.edit': 'Bearbeiten',
  'common.create': 'Erstellen',
  'common.search': 'Suchen',
  'common.loading': 'Laden…',
  'sync.runs': 'Synchronisierungen',
  'sync.totalCost': 'Gesamt',
  'sync.when': 'Wann',
  'sync.source': 'Quelle',
  'sync.items': 'Elemente',
  'sync.tokens': 'Tokens',
  'sync.cost': 'Kosten',
  'sync.duration': 'Dauer',
  'sync.noAuditEntries': 'Noch keine Synchronisierungen aufgezeichnet.',
  'sync.timeAgo.justNow': 'gerade eben',
  'sync.timeAgo.minutes': 'vor {n} Min.',
  'sync.timeAgo.hours': 'vor {n} Std.',
  'sync.timeAgo.days': 'vor {n} T.',
  'sync.status.success': 'Erfolg',
  'sync.status.failed': 'Fehlgeschlagen',
  'common.error': 'Fehler',
  'common.success': 'Erfolg',
  'common.back': 'Zurück',
  'common.next': 'Weiter',
  'common.finish': 'Fertig',
  'common.close': 'Schließen',
  'common.enabled': 'Aktiviert',
  'common.disabled': 'Deaktiviert',
  'common.on': 'Ein',
  'common.off': 'Aus',
  'common.yes': 'Ja',
  'common.no': 'Nein',
  'common.ok': 'Verstanden',
  'common.name': 'Name',
  'common.retry': 'Erneut versuchen',
  'common.copy': 'Kopieren',
  'common.copied': 'Kopiert',
  'common.learnMore': 'Mehr erfahren',
  'common.seeAll': 'Alle anzeigen',
  'common.dismiss': 'Ausblenden',
  'common.clear': 'Leeren',
  'common.reset': 'Zurücksetzen',
  'common.refresh': 'Aktualisieren',
  'common.export': 'Exportieren',
  'common.import': 'Importieren',
  'common.upload': 'Hochladen',
  'common.download': 'Herunterladen',
  'common.add': 'Hinzufügen',
  'common.remove': 'Entfernen',
  'common.showMore': 'Mehr anzeigen',
  'common.showLess': 'Weniger anzeigen',
  'common.submit': 'Senden',
  'common.continue': 'Weiter',
  'common.comingSoon': 'Demnächst verfügbar',
  'common.breadcrumb': 'Breadcrumb',
  'common.beta': 'Beta',
  'common.betaDisclaimer':
    'Diese Funktion ist in der Beta-Phase. Sie kann sich ändern oder Ecken und Kanten haben — Ihr Feedback hilft uns, sie zu verbessern.',
  'settings.general': 'Allgemein',
  // Settings layman groups (Phase 4 IA revamp)
  'settings.groups.account': 'Konto',
  'settings.groups.assistant': 'Assistent',
  'settings.groups.privacySecurity': 'Datenschutz & Sicherheit',
  'settings.groups.notifications': 'Benachrichtigungen',
  'settings.groups.about': 'Über',
  'settings.assistant.personality': 'Persönlichkeit',
  'settings.personalityFace.title': 'Persönlichkeit & Gesicht',
  'settings.personalityFace.menuDesc':
    'Charakter deines Assistenten anpassen und sein Gesicht wählen',
  'settings.assistant.voice': 'Stimme',
  'settings.assistant.voiceDesc': 'Sprache-zu-Text und Text-zu-Sprache Einstellungen',
  'settings.assistant.faceMascot': 'Gesicht / Maskottchen',
  'settings.assistant.backgroundActivity': 'Unterbewusstsein',
  'settings.assistant.backgroundActivityDesc':
    'Steuern, wie aktiv Ihr Assistent im Hintergrund arbeitet',
  'settings.assistant.screenAwareness': 'Bildschirmbewusstsein',
  'settings.assistant.screenAwarenessDesc': 'Dem Assistenten das aktive Fenster zeigen',
  'settings.assistant.desktopCompanion': 'Desktop-Begleiter',
  'settings.assistant.desktopCompanionDesc':
    'Immer aktiver Begleiter-Modus mit System-Tray-Shortcut',
  'settings.assistant.permissions': 'Berechtigungen',
  'settings.assistant.permissionsDesc': 'Wähle, was der Assistent tun darf und wo er arbeiten kann',
  'settings.privacySecurity.privacy': 'Datenschutz',
  'settings.privacySecurity.privacyDesc': 'Kontrollieren, welche Daten Ihren Computer verlassen',
  'settings.privacySecurity.security': 'Sicherheit',
  'settings.privacySecurity.securityDesc': 'Sitzungen und Anmeldeoptionen',
  'settings.privacySecurity.approvalsHistory': 'Genehmigungen & Verlauf',
  'settings.privacySecurity.approvalsHistoryDesc':
    'Aktuelle Tool-Genehmigungsentscheidungen überprüfen',
  'settings.notifications.menuTitle': 'Benachrichtigungen',
  'settings.notifications.menuDesc': 'Benachrichtigungs-Posteingang und -Einstellungen',
  'settings.devGroups.knowledgeMemory': 'Wissen & Gedächtnis',
  'settings.devGroups.agentsAutonomy': 'Agenten & Autonomie',
  'settings.devGroups.modelsInference': 'Modelle & Inferenz',
  'settings.devGroups.automationIntegrations': 'Automatisierung & Integrationen',
  'settings.devGroups.toolsCapabilities': 'Tools & Fähigkeiten',
  'settings.devGroups.council': 'Rat',
  'settings.analysisViews.title': 'Analyseansichten',
  'settings.analysisViews.menuDesc':
    'Speichergraph-Analyse — Diagramm, Zentralität, Kohäsion, Verknüpfungen, Aktualität, Zeitachse, Pfade und Namensräume',
  'settings.buildInfo.title': 'Build-/Versionsinfo',
  'settings.buildInfo.menuDesc': 'App-Build, Version und Details zur Core-Verbindung',
  'settings.tokenUsage.title': 'Tokens & Kosten',
  'settings.tokenUsage.menuDesc':
    'Komprimierungseinstellungen und wie viele Tokens und Dollar sie eingespart haben',
  'settings.tokenUsage.saving': 'Wird gespeichert…',
  'settings.tokenUsage.saved': 'Gespeichert',
  'settings.tokenUsage.savingsTitle': 'Einsparungen',
  'settings.tokenUsage.attributedTo': 'Kosten kalkuliert für {model}',
  'settings.tokenUsage.tokensSaved': 'Eingesparte Tokens',
  'settings.tokenUsage.costSaved': 'Eingesparte Kosten',
  'settings.tokenUsage.cacheOccupancy': 'Zwischengespeicherte Originale',
  'settings.tokenUsage.compactions': 'Komprimierungen',
  'settings.tokenUsage.overEvents': 'über {count} Komprimierungen',
  'settings.tokenUsage.byCompressor': 'Nach Kompressor',
  'settings.tokenUsage.refresh': 'Aktualisieren',
  'settings.tokenUsage.reset': 'Statistiken zurücksetzen',
  'settings.tokenUsage.compressionTitle': 'Komprimierung',
  'settings.tokenUsage.compressionDesc':
    'Inhaltsbewusste Komprimierung großer Tool-Ausgaben, bevor sie in den Modellkontext gelangen.',
  'settings.tokenUsage.routerEnabled': 'Komprimierung aktivieren',
  'settings.tokenUsage.routerEnabledDesc': 'Hauptschalter für den Inhalts-Router.',
  'settings.tokenUsage.search': 'Suchergebnisse',
  'settings.tokenUsage.searchDesc':
    'grep-/Suchausgabe nach Relevanz sortieren und die besten Treffer behalten.',
  'settings.tokenUsage.code': 'Quellcode',
  'settings.tokenUsage.codeDesc': 'Signaturen behalten, Funktionskörper einklappen.',
  'settings.tokenUsage.html': 'HTML',
  'settings.tokenUsage.htmlDesc': 'Markup zu lesbarem Text entfernen.',
  'settings.tokenUsage.ml': 'ML-Textkompressor',
  'settings.tokenUsage.mlDesc':
    'Lokales ModernBERT-Modell für Klartext (erfordert Python-Laufzeitumgebung).',
  'settings.tokenUsage.ccrTitle': 'Cache & Wiederherstellung (CCR)',
  'settings.tokenUsage.ccrDesc':
    'Komprimierte Originale werden zwischengespeichert, damit der Agent den vollständigen Text bei Bedarf abrufen kann.',
  'settings.tokenUsage.ccrEnabled': 'Originale zur Wiederherstellung behalten',
  'settings.tokenUsage.ccrEnabledDesc':
    'Das Original auslagern und eine Abrufmarkierung hinzufügen, damit nichts verloren geht.',
  'settings.tokenUsage.ccrMinTokens': 'Mindestgröße zum Zwischenspeichern',
  'settings.tokenUsage.ccrMinTokensDesc':
    'Nur Ergebnisse zwischenspeichern und verlustbehaftet komprimieren, die auf diese Anzahl an Tokens oder mehr geschätzt werden.',
  'settings.tokenUsage.tokensUnit': 'Tokens',
  'settings.tokenUsage.ccrDisk': 'Cache auf Datenträger speichern',
  'settings.tokenUsage.ccrDiskDesc': 'Wiederherstellbare Originale über Neustarts hinweg behalten.',
  'settings.dataSync.title': 'Datensynchronisierung',
  'settings.dataSync.menuDesc':
    'Was dein Assistent synchronisiert — Quellen, Aktualität und Status',
  'settings.dataSync.description':
    'Verwalte, was in den Speicher deines Assistenten synchronisiert wird: jede verbundene Quelle mit ihrer letzten Synchronisierungszeit, wie viel synchronisiert ist und ob gerade synchronisiert wird.',
  'settings.devGroups.diagnosticsLogs': 'Diagnose & Protokolle',
  'settings.featuresAndAI': 'Funktionen und KI',
  'settings.billingAndRewards': 'Abrechnung und Prämien',
  'settings.support': 'Unterstützung',
  'settings.advanced': 'Erweitert',
  'settings.dangerZone': 'Gefahrenbereich',
  'settings.account': 'Konto',
  'settings.accountDesc': 'Wiederherstellungsphrase, Team, Verbindungen und Privatsphäre',
  'settings.notifications': 'Benachrichtigungen',
  'settings.notificationsDesc': '„Bitte nicht stören“ und Benachrichtigungskontrollen pro Konto',
  'settings.notifications.tabs.preferences': 'Einstellungen',
  'settings.notifications.tabs.routing': 'Routenführung',
  'settings.features': 'Funktionen',
  'settings.featuresDesc': 'Bildschirmbewusstsein, Nachrichten und Tools',
  'settings.aiModels': 'KI & Modelle',
  'settings.aiModelsDesc': 'Lokales KI-Modell-Setup, Downloads und LLM-Anbieter',
  'settings.ai': 'KI-Konfiguration',
  'settings.aiDesc': 'Cloud-Anbieter, lokale Ollama-Modelle und Routing pro Workload',
  'settings.billingUsage': 'Abrechnung und Nutzung',
  'settings.billingUsageDesc': 'Abonnementplan, Guthaben und Zahlungsmethoden',
  'settings.rewards': 'Belohnungen',
  'settings.rewardsDesc': 'Empfehlungen, Gutscheine und verdiente Credits',
  'settings.restartTour': 'Tour neu starten',
  'settings.restartTourDesc': 'Wiederhole die Produktanleitung von Anfang an',
  'settings.about': 'Über',
  'settings.aboutDesc': 'App-Version und Software-Updates',
  'settings.developerOptions': 'Fortgeschritten',
  'settings.developerOptionsDesc':
    'KI-Konfiguration, Nachrichtenkanäle, Tools, Diagnose und Debug-Panels',
  'settings.developerDiagnostics': 'Entwickler & Diagnose',
  'settings.developerDiagnosticsDesc':
    'Erweiterte Entwickler-Tools, Diagnose, Speicher, Agents und Debug-Panels',
  'settings.developerMode.title': 'Entwicklermodus',
  'settings.developerMode.description': 'Erweiterte Entwickler- und Diagnose-Tools anzeigen',
  'settings.developerMode.enabledByBuild': 'In Entwicklungs-Builds immer aktiviert',
  'settings.clearAppData': 'App-Daten löschen',
  'settings.clearAppDataDesc': 'Melde dich ab und lösche alle lokalen App-Daten dauerhaft',
  'settings.logOut': 'Abmelden',
  'settings.logOutDesc': 'Melde dich von deinem Konto ab',
  'settings.exitLocalSession': 'Lokale Sitzung beenden',
  'settings.exitLocalSessionDesc': 'Zum Anmeldebildschirm zurückkehren',
  'settings.language': 'Sprache',
  'settings.navGroups.general': 'Allgemein',
  'settings.navGroups.assistant': 'Assistent',
  'settings.navGroups.data': 'Daten',
  'settings.navGroups.connections': 'Verbindungen',
  'settings.navGroups.system': 'System',
  'settings.betaBuild': 'Beta-Build – v{version}',
  'settings.languageDesc': 'Anzeigesprache für die App-Oberfläche',
  'settings.alerts': 'Warnungen',
  'settings.alertsDesc':
    'Sieh dir aktuelle Benachrichtigungen und Aktivitäten in deinem Posteingang an',
  'settings.account.profile': 'Profil',
  'settings.account.profileDesc': 'Name, E-Mail und Avatar',
  'settings.account.devices': 'Geräte',
  'settings.account.devicesDesc': 'Mobile Geräte koppeln und verwalten',
  'settings.account.teamMembers': 'Team & Mitglieder',
  'settings.account.teamMembersDesc': 'Teamzugang und Mitgliederrollen verwalten',
  'settings.account.dataMigration': 'Daten & Migration',
  'settings.account.dataMigrationDesc': 'Erinnerungen aus einem anderen Assistenten importieren',
  'settings.account.recoveryPhrase': 'Wiederherstellungssatz',
  'settings.account.recoveryPhraseDesc':
    'Sieh dir deinen Kontowiederherstellungssatz an und sichere ihn',
  'settings.account.team': 'Team',
  'settings.account.teamDesc': 'Verwalte Teammitglieder und Berechtigungen',
  'settings.account.connections': 'Verbindungen',
  'settings.account.connectionsDesc': 'Verwalte verknüpfte Konten und Dienste',
  'settings.account.privacy': 'Privatsphäre',
  'settings.account.privacyDesc': 'Kontrolliere, welche Daten deinen Computer verlassen',
  'migration.title': 'Von einem anderen Assistenten importieren',
  'migration.description':
    'Speicher und Notizen von einem anderen lokalen Assistenten in diesen Arbeitsbereich migrieren. Beginne mit einer Vorschau, um genau zu sehen, was sich ändern würde, und kopiere dann die Daten mit „Übernehmen“. Dein aktueller Speicher wird zunächst gesichert.',
  'migration.vendorLabel': 'Quellanbieter',
  'migration.vendor.openclaw': 'OpenClaw',
  'migration.vendor.hermes': 'Hermes Agent',
  'migration.sourceLabel': 'Quellarbeitsbereichspfad (optional)',
  'migration.sourcePlaceholder':
    'Zur automatischen Erkennung leer lassen (z. B. ~/.openclaw/workspace)',
  'migration.sourcePlaceholderHermes': 'Leer lassen für automatische Erkennung (z. B. ~/.hermes)',
  'migration.sourceHint':
    'Wenn leer, wird standardmäßig der Standardspeicherort des Anbieters verwendet. Lege einen expliziten Pfad fest, wenn du den Arbeitsbereich an einen anderen Ort verschoben hast.',
  'migration.previewAction': 'Vorschau',
  'migration.previewRunning': 'Vorschau...',
  'migration.applyAction': 'Import anwenden',
  'migration.applyRunning': 'Importieren…',
  'migration.applyDisclaimer':
    '„Anwenden“ wird nach einer erfolgreichen Vorschau derselben Quelle freigeschaltet. Vor jedem Import wird der vorhandene Speicher gesichert.',
  'migration.reportTitlePreview': 'Vorschau – noch nichts importiert',
  'migration.reportTitleApplied': 'Import abgeschlossen',
  'migration.report.source': 'Quellarbeitsbereich',
  'migration.report.target': 'Zielarbeitsbereich',
  'migration.report.fromSqlite': 'Von SQLite (brain.db)',
  'migration.report.fromMarkdown': 'Von Markdown',
  'migration.report.imported': 'Importiert',
  'migration.report.skippedUnchanged': 'Übersprungen (unverändert)',
  'migration.report.renamedConflicts': 'Aufgrund eines Konflikts umbenannt',
  'migration.report.warnings': 'Warnungen',
  'migration.report.previewHint':
    'Es wurden noch keine Daten importiert. Klicke auf Import anwenden, um ihn zu kopieren.',
  'migration.report.appliedHint':
    'Importierte Einträge sind jetzt in deinem Speicher. Führe die Vorschau erneut aus, wenn du noch einmal vergleichen möchtest.',
  'migration.confirmImport.singular':
    'Eintrag {count} in den aktuellen Arbeitsbereich importieren?\n\nQuelle: {source}\nZiel: {target}\n\nVorhandener Speicher wird gesichert, bevor der Import ausgeführt wird.',
  'migration.confirmImport.plural':
    '{count} Einträge in den aktuellen Arbeitsbereich importieren?\n\nQuelle: {source}\nZiel: {target}\n\nVorhandener Speicher wird gesichert, bevor der Import ausgeführt wird.',
  'settings.notifications.doNotDisturb': 'Bitte nicht stören',
  'settings.notifications.doNotDisturbDesc':
    'Pausiere alle Benachrichtigungen für einen festgelegten Zeitraum',
  'settings.notifications.channelControls': 'Steuerung pro Kanal',
  'settings.notifications.channelControlsDesc':
    'Konfiguriere Benachrichtigungseinstellungen für jeden Kanal',
  'settings.features.screenAwareness': 'Bildschirmbewusstsein',
  'settings.features.screenAwarenessDesc': 'Lass den Assistenten dein aktives Fenster sehen',
  'settings.features.messaging': 'Nachrichten',
  'settings.features.messagingDesc': 'Einstellungen für die Kanal- und Messaging-Integration',
  'settings.features.tools': 'Werkzeuge',
  'settings.features.toolsDesc': 'Verwalte verbundene Tools und Integrationen',
  'settings.ai.localSetup': 'Lokales KI-Setup',
  'settings.ai.localSetupDesc': 'Lade lokale KI-Modelle herunter und konfiguriere sie',
  'settings.ai.llmProvider': 'LLM Anbieter',
  'settings.ai.llmProviderDesc': 'Wähle und konfiguriere deinen KI-Anbieter',
  'clearData.title': 'App-Daten löschen',
  'clearData.warning':
    'Dadurch wirst du abgemeldet und lokale App-Daten werden dauerhaft gelöscht, einschließlich:',
  'clearData.bulletSettings': 'App-Einstellungen und Konversationen',
  'clearData.bulletCache': 'Alle Daten des lokalen Integrationscache',
  'clearData.bulletWorkspace': 'Arbeitsbereichsdaten',
  'clearData.bulletOther': 'Alle anderen lokalen Daten',
  'clearData.irreversible': 'Diese Aktion kann nicht rückgängig gemacht werden.',
  'clearData.clearing': 'App-Daten löschen...',
  'clearData.failed': 'Daten löschen und Abmelden fehlgeschlagen. Bitte versuche es erneut.',
  'clearData.failedLogout': 'Abmelden fehlgeschlagen. Bitte versuche es erneut.',
  'clearData.failedPersist':
    'Der persistente App-Status konnte nicht gelöscht werden. Bitte versuche es erneut.',
  'welcome.logoAlt': 'OpenHuman',
  'welcome.title': 'Willkommen bei OpenHuman',
  'welcome.subtitle':
    'Deine persönliche KI-Superintelligenz. Privat, einfach und äußerst leistungsstark.',
  'welcome.connectPrompt': 'Konfiguriere RPC URL (Erweitert)',
  'welcome.selectRuntime': 'Wähle eine Laufzeit aus',
  'welcome.clearingAppData': 'App-Daten löschen...',
  'welcome.clearAppDataAndRestart': 'App-Daten löschen und neu starten',
  'welcome.clearAppDataWarning':
    'Dadurch werden lokal gespeicherte Geheimnisse und Konten auf diesem Gerät gelöscht. Dein Cloud-Konto ist nicht betroffen – du kannst dich danach sofort wieder anmelden.',
  'welcome.resetErrorFallback':
    'App-Daten konnten nicht gelöscht werden. Bitte OpenHuman beenden, neu öffnen und es dann erneut versuchen.',
  'welcome.signingIn': 'Ich melde mich an...',
  'welcome.termsIntro': 'Indem Sie fortfahren, stimmen Sie den',
  'welcome.termsOfUse': 'Bedingungen',
  'welcome.termsJoiner': 'und der',
  'welcome.privacyPolicy': 'Datenschutzrichtlinie zu',
  'welcome.termsOutro': '.',
  'welcome.urlPlaceholder': 'http://localhost:8089',
  'welcome.invalidUrl': 'Bitte gib einen gültigen HTTP oder HTTPS URL ein.',
  'welcome.connecting': 'Testen',
  'welcome.connect': 'Testen',
  'home.greeting': 'Guten Morgen',
  'home.greetingAfternoon': 'Guten Tag',
  'home.greetingEvening': 'Guten Abend',
  'home.askAssistant': 'Frag deinen Assistenten etwas ...',
  'home.statusOk':
    'Dein Assistent ist bereit, wenn du es bist. Schreib unten etwas, um loszulegen.',
  'home.statusBackendOnly':
    'Verbindung zum Backend wird wiederhergestellt. Dein Agent wird in Kürze wieder verfügbar sein.',
  'home.statusCoreUnreachable':
    'Der lokale Core-Sidecar reagiert nicht. Der Hintergrundprozess OpenHuman ist möglicherweise abgestürzt oder konnte nicht gestartet werden.',
  'home.statusInternetOffline':
    'Dein Gerät ist gerade offline. Prüfe dein Netzwerk oder starte die App neu, um die Verbindung wiederherzustellen.',
  'home.restartCore': 'Starte Core neu',
  'home.restartingCore': 'Kern wird neu gestartet...',
  'home.themeToggle.toLight': 'Wechsle in den Lichtmodus',
  'home.themeToggle.toDark': 'Wechsle in den Dunkelmodus',
  'home.usageExhaustedTitle': 'Dein Nutzungskontingent ist aufgebraucht',
  'home.usageExhaustedBody':
    'Dein enthaltenes Nutzungskontingent ist vorerst aufgebraucht. Starte ein Abo, um mehr laufende Kapazität freizuschalten.',
  'home.usageExhaustedCta': 'Abo starten',
  'openrouterFree.cta': 'Kostenlose OpenRouter-Modelle verwenden',
  'openrouterFree.saving': 'OpenRouter wird verbunden...',
  'openrouterFree.error':
    'Der Wechsel zu kostenlosen OpenRouter-Modellen ist fehlgeschlagen. Prüfe deine OpenRouter-Anmeldung und versuche es erneut.',
  'home.routinesCard': 'Deine Routinen',
  'home.routinesActive': '{count} aktiv',
  'routines.title': 'Ihre Routinen',
  'routines.subtitle': 'Dinge, die Ihr Assistent automatisch erledigt',
  'routines.loading': 'Routinen werden geladen...',
  'routines.empty': 'Noch keine Routinen',
  'routines.emptyHint':
    'Ihr Assistent kann Aufgaben nach einem Zeitplan ausführen — wie Morgenbriefings oder tägliche Zusammenfassungen.',
  'routines.refresh': 'Aktualisieren',
  'routines.nextRun': 'Nächste Ausführung',
  'routines.lastRunSuccess': 'Letzter Durchlauf erfolgreich',
  'routines.lastRunFailed': 'Letzter Durchlauf fehlgeschlagen',
  'routines.notRunYet': 'Noch nicht ausgeführt',
  'routines.runNow': 'Ausführung starten',
  'routines.running': 'Läuft…',
  'routines.runNowTimedOut': 'Ausführung abgebrochen – bitte Seite neu laden und erneut versuchen.',
  'routines.viewHistory': 'Verlauf ansehen',
  'routines.loadingHistory': 'Laden…',
  'routines.noHistory': 'Noch kein Verlauf',
  'routines.statusSuccess': 'Erfolg',
  'routines.statusError': 'Error',
  'routines.showOutput': 'Ausgabe anzeigen',
  'routines.hideOutput': 'Test-Output verstecken',
  'routines.toggleEnabled': 'Aktivieren oder deaktivieren Sie diese Routine',
  'routines.typeAgent': 'Agent',
  'routines.typeCommand': 'Kommandant',
  'nav.routines': 'Routines',
  'chat.newThread': 'Neuer Thread',
  'chat.newConversation': 'Neue Unterhaltung',
  'chat.newWindowWelcome1': 'Willkommen, {name} 👋',
  'chat.newWindowWelcome2': 'Legen wir los, {name} 🧑‍🍳.',
  'chat.newWindowWelcome3': 'Zeit zum Fokussieren 🧘🏻',
  'chat.typeMessage': 'Wie kann ich dir heute helfen?',
  'chat.send': 'Nachricht senden',
  'chat.stopGeneration': 'Generierung stoppen',
  'chat.parallelBranchHint': 'Parallelen Zweig eingeben — ⌘/Strg+Enter zum Senden',
  'chat.followupHint':
    'Folgenachricht einreihen — wird nach dieser Antwort gesendet · ⌘/Strg+Enter für parallelen Zweig',
  'chat.queuedFollowups.label': 'Eingereihte Folgenachrichten',
  'chat.queuedFollowups.clear': 'Löschen',
  'chat.queuedFollowups.clearFailed':
    'Warteschlange konnte nicht geleert werden – bitte erneut versuchen.',
  'chat.parallelBranchLabel': 'Paralleler Zweig',
  'chat.thinking': 'Denken...',
  'chat.noMessages': 'Noch keine Nachrichten',
  'chat.startConversation': 'Beginne ein Gespräch',
  'chat.regenerate': 'Regenerieren',
  'chat.copyResponse': 'Antwort kopieren',
  'chat.citations': 'Zitate',
  'chat.toolUsed': 'Werkzeug verwendet',
  'scope.legacy': 'Vermächtnis',
  'scope.user': 'Benutzer',
  'scope.project': 'Projekt',
  'skills.title': 'Verbindungen',
  'skills.search': 'Verbindungen suchen...',
  'skills.noResults': 'Keine Verbindungen gefunden',
  'skills.loadingIntegrations': 'Integrationen werden geladen…',
  'skills.connect': 'Verbinden',
  'skills.disconnect': 'Trennen',
  'skills.configure': 'Verwalten',
  'skills.connected': 'Verbunden',
  'skills.available': 'Verfügbar',
  'skills.addAccount': 'Konto hinzufügen',
  'skills.channels': 'Messaging',
  'skills.explorer.emptyCta': 'Von URL installieren',
  'skills.explorer.emptyDescription':
    'Installiere ein SKILL.md-Paket oder lege Hermes-artige Ordner unter ~/.openhuman/skills ab.',
  'skills.explorer.emptyTitle': 'Keine Skills gefunden',
  'skills.explorer.installFromUrl': 'Von URL installieren',
  'skills.explorer.newSkill': 'Neuer Skill',
  'skills.explorer.subtitle':
    'Durchsuche SKILL.md-Pakete, einschließlich Hermes-artigem Markdown, Skripten, Referenzen, Vorlagen, Beispielen und Prompts.',
  'skills.explorer.title': 'Skill-Explorer',
  'skills.explorer.searchPlaceholder': 'Skills suchen...',
  'skills.explorer.scopeUser': 'User',
  'skills.explorer.scopeProject': 'Project',
  'skills.explorer.scopeLegacy': 'Legacy',
  'skills.explorer.noDescription': 'Keine Beschreibung angegeben.',
  'skills.explorer.uninstallSuccess': 'Skill erfolgreich deinstalliert.',
  'skills.explorer.registryTab': 'Verzeichnis',
  'skills.explorer.installedTab': 'Installiert',
  'skills.explorer.allFormats': 'Alle Formate',
  'skills.explorer.refreshRegistry': 'Verzeichnis aktualisieren',
  'skills.explorer.registryEmptyTitle': 'Keine Verzeichniseinträge',
  'skills.explorer.registryEmptyDescription':
    'Das Skill-Verzeichnis konnte nicht geladen werden. Prüfen Sie Ihre Verbindung und versuchen Sie es erneut.',
  'skills.explorer.showingOf':
    '{shown} von {total} Ergebnissen angezeigt. Verfeinern Sie Ihre Suche für mehr.',
  'skills.explorer.installed': 'Installiert',
  'skills.explorer.install': 'Installieren',
  'skills.explorer.installing': 'Wird installiert…',
  'skills.integrations': 'Composio-Integrationen',
  'skills.integrationsSubtitle':
    'Cloud-basierte OAuth-Verbindungen – mit deinem Konto anmelden und Composio verwaltet die Tokens, damit Agenten in deinem Namen lesen und handeln können. Keine API-Schlüssel notwendig.',
  'skills.composio.noApiKeyTitle': 'Kein Composio-API-Schlüssel konfiguriert',
  'skills.composio.noApiKeyDescription':
    'Im lokalen Modus wird dein eigener Composio-API-Schlüssel verwendet. Öffne Einstellungen → Erweitert → Composio, um einen Schlüssel hinzuzufügen, bevor du hier Integrationen verbindest.',
  'skills.composio.noApiKeyCta': 'In den Einstellungen öffnen',
  'skills.tabs.composio': 'Composio',
  'skills.tabs.channels': 'Kanäle',
  'skills.tabs.explorer': 'Skills',
  'skills.tabs.meetings': 'Google Meet-Besprechungen',
  'skills.tabs.mcp': 'MCP Server',
  'connections.tabs.composio': 'Composio',
  'connections.tabs.channels': 'Kanäle',
  'connections.tabs.mcp': 'MCP-Server',
  'connections.tabs.skills': 'Fähigkeiten',
  'connections.tabs.meetings': 'Meetings',
  'connections.groups.integrations': 'Integrationen',
  'connections.tabs.oauth': 'OAuth',
  'connections.tabs.composioKey': 'Composio',
  'connections.groups.apiKeys': 'API-Schlüssel',
  'connections.groups.intelligence': 'Intelligenz',
  'memory.title': 'Erinnerung',
  'memory.search': 'Erinnerungen suchen...',
  'memory.noResults': 'Keine Erinnerungen gefunden',
  'memory.empty':
    'Noch keine Erinnerungen. Erinnerungen werden automatisch erstellt, während du interagierst.',
  'memory.tab.memory': 'Erinnerung',
  'memory.tab.memoryTree': 'Erinnerungsbaum',
  'memory.tab.tasks': 'Aufgaben',
  'memory.tab.tasksDescription':
    'Aufgaben erstellen und verfolgen – eigene To-dos sowie die Boards, die Agenten in Gesprächen anlegen.',
  'memory.tab.subconscious': 'Unterbewusstsein',
  'memory.tab.agentWork': 'Agentenarbeit',
  'memory.tab.agentWorkDescription':
    'Eine Kommandozentrale für jeden Hintergrund-Agentenlauf — gruppiert danach, was deine Eingabe braucht, was läuft und was abgeschlossen ist.',
  'memory.tab.worktrees': 'Worktrees',
  'memory.tab.worktreesDescription':
    'Isolierte Git-Worktrees von parallelen Agenten-Workern — Änderungen prüfen, öffnen oder aufräumen.',
  'memory.tab.teams': 'Teams',
  'memory.tab.teamsDescription':
    'Koordinierte Agententeams — wer für welche Aufgabe zuständig ist, was blockiert ist und was sich die Teammitglieder gegenseitig mitteilen.',
  'memory.tab.agents': 'Bibliothek',
  'memory.tab.agentsDescription':
    'Verfügbare Agenten durchsuchen und starten — jeder mit eigenen Werkzeugen, Fähigkeiten und Schwerpunkten.',
  'memory.tab.workflows': 'Workflows',
  'memory.tab.workflowsDescription':
    'Wiederverwendbare, ausführbare Abläufe — ein Ziel und die Schritte dorthin. Erstellen, über eine URL installieren oder einen Workflow öffnen und ausführen.',
  'memory.tab.dreams': 'Träume',
  'memory.tab.calls': 'Anrufe',
  'memory.tab.diagram': 'Diagram',
  'memory.tab.centrality': 'Centrality',
  'memory.tab.namespaces': 'Namensräume',
  'memory.tab.timeline': 'Timeline',
  'memory.tab.settings': 'Einstellungen',
  'memory.analyzeNow': 'Jetzt analysieren',
  'memoryTimeline.title': 'Erinnerungszeitleiste',
  'memoryTimeline.intro':
    'Wann der Assistent über Sie gelernt hat — Fakten gruppiert nach dem Monat der letzten Verstärkung. Zeigt Wachstum, Aktivitätsschübe und ruhige Phasen.',
  'memoryTimeline.loading': 'Zeitleiste wird erstellt…',
  'memoryTimeline.errorPrefix': 'Diagramm konnte nicht geladen werden:',
  'memoryTimeline.retry': 'Retry',
  'memoryTimeline.namespaceLabel': 'Namespace',
  'memoryTimeline.namespaceAll': 'Alle Namensräume',
  'memoryTimeline.empty': 'Noch kein Wissensgraph.',
  'memoryTimeline.emptyHint':
    'Wenn der Assistent Fakten über Sie aufzeichnet, wird die Zeitleiste hier angezeigt.',
  'memoryTimeline.metricTotal': 'Facts',
  'memoryTimeline.metricMonths': 'Aktive Monate',
  'memoryTimeline.metricRecent': 'Letzte 30 Tage',
  'memoryTimeline.heading': 'Pro Monat gelernte Fakten',
  'memoryTimeline.busiestCaption': 'Am aktivsten: {period} ({count})',
  'memoryTimeline.undatedNote': '{count} Fakt(en) ohne aufgezeichnetes Datum.',
  'memoryTimeline.truncated': 'Die {shown} neuesten von {total} Monaten werden angezeigt.',
  'namespaceOverview.title': 'Namensraum-Übersicht',
  'namespaceOverview.intro':
    'Wie sich dein Wissen über Kontexte verteilt — die Anzahl der Fakten und eindeutigen Entitäten, die in jedem Namensraum erfasst sind.',
  'namespaceOverview.loading': 'Namensräume werden aggregiert…',
  'namespaceOverview.errorPrefix': 'Das Diagramm konnte nicht geladen werden:',
  'namespaceOverview.retry': 'Wiederholen',
  'namespaceOverview.empty': 'Noch kein Wissensgraph.',
  'namespaceOverview.emptyHint':
    'Sobald der Assistent Fakten über Kontexte hinweg erfasst, erscheint hier jeder Namensraum.',
  'namespaceOverview.metricNamespaces': 'Namensräume',
  'namespaceOverview.metricFacts': 'Fakten',
  'namespaceOverview.metricEntities': 'Entitäten',
  'namespaceOverview.heading': 'Nach Namensraum',
  'namespaceOverview.unnamespaced': '(ohne Namensraum)',
  'namespaceOverview.factsLabel': '{count} Fakten',
  'namespaceOverview.entitiesLabel': '{count} Entitäten',
  'namespaceOverview.entitiesShort': '{count} Ent.',
  'namespaceOverview.truncated': 'Die obersten {shown} von {total} Namensräumen werden angezeigt.',
  'graphCentrality.title': 'Zentralität des Wissensgraphen',
  'graphCentrality.intro':
    'Der PageRank über Ihr Speicherdiagramm zeigt die tragenden Knotenpunkte auf – und die Konnektorentitäten, die ansonsten getrennte Cluster verbinden, die eine reine Häufigkeitszählung nicht aufdecken kann.',
  'graphCentrality.loading': 'Rechenzentralität…',
  'graphCentrality.errorPrefix': 'Das Diagramm konnte nicht geladen werden:',
  'graphCentrality.retry': 'Wiederholen',
  'graphCentrality.empty': 'Noch kein Wissensgraph.',
  'graphCentrality.emptyHint':
    'Während der Assistent Fakten über Sie aufzeichnet, werden hier die am stärksten verbundenen Entitäten angezeigt.',
  'graphCentrality.namespaceLabel': 'Namensraum',
  'graphCentrality.namespaceAll': 'Alle Namensräume',
  'graphCentrality.metricEntities': 'Entitäten',
  'graphCentrality.metricConnections': 'Verbindungen',
  'graphCentrality.metricClusters': 'Cluster',
  'graphCentrality.clustersCaption': '{components}-Cluster · Größter enthält {largest}',
  'graphCentrality.approximateBadge': 'approximate',
  'graphCentrality.approximateTitle':
    'Angehalten bei der Iterationsobergrenze, bevor die Konvergenz vollständig erfolgte',
  'graphCentrality.rankedHeading': 'Top-Unternehmen nach Einfluss',
  'graphCentrality.colRank': '#',
  'graphCentrality.colEntity': 'Juristische Person',
  'graphCentrality.colInfluence': 'Beeinflussen',
  'graphCentrality.colLinks': 'Links',
  'graphCentrality.bridgeBadge': 'connector',
  'graphCentrality.bridgeTitle':
    'Connector – einflussreicher als die Anzahl der Links vermuten lässt',
  'graphCentrality.degreeTitle': '{in} rein · {out} raus',
  'memory.tab.associations': 'Associations',
  'entityAssociations.title': 'Entitäts-Assoziationen',
  'entityAssociations.intro':
    'Entitäten, die viele gleiche Verbindungen teilen, sind assoziiert — selbst wenn kein einzelnes Fakt sie direkt verknüpft. Die Jaccard-Ähnlichkeit deckt diese verborgenen Paare auf.',
  'entityAssociations.loading': 'Assoziationen werden berechnet…',
  'entityAssociations.errorPrefix': 'Diagramm konnte nicht geladen werden:',
  'entityAssociations.retry': 'Retry',
  'entityAssociations.empty': 'Noch keine Assoziationen.',
  'entityAssociations.emptyHint':
    'Wenn Entitäten Verbindungen teilen, werden die stärksten Paare hier angezeigt.',
  'entityAssociations.namespaceLabel': 'Namespace',
  'entityAssociations.namespaceAll': 'Alle Namensräume',
  'entityAssociations.metricEntities': 'Entities',
  'entityAssociations.metricPairs': 'Associations',
  'entityAssociations.rankedHeading': 'Stärkste Assoziationen',
  'entityAssociations.linkedBadge': 'linked',
  'entityAssociations.inferredBadge': 'inferred',
  'entityAssociations.linkedTitle': 'Diese Entitäten sind direkt verbunden.',
  'entityAssociations.inferredTitle':
    'Keine direkte Verbindung — nur über gemeinsame Verbindungen assoziiert.',
  'entityAssociations.sharedLabel': '{shared} geteilt',
  'entityAssociations.pairTitle': '{jaccard} % ähnlich · {shared} von {union} Verbindungen geteilt',
  'entityAssociations.truncated': '{shown} von {total} angezeigt — stärkste zuerst.',
  'memory.tab.freshness': 'Freshness',
  'memoryFreshness.title': 'Wissensfrische',
  'memoryFreshness.intro':
    'Fakten, die der Assistent nicht kürzlich bestätigt hat, verblassen entlang einer Vergessenskurve. Dies zeigt, was veraltet und überprüfenswert ist, damit alte Fakten nicht als gesichert gelten.',
  'memoryFreshness.loading': 'Frische wird berechnet…',
  'memoryFreshness.errorPrefix': 'Diagramm konnte nicht geladen werden:',
  'memoryFreshness.retry': 'Retry',
  'memoryFreshness.empty': 'Noch kein Wissensgraph.',
  'memoryFreshness.emptyHint':
    'Wenn der Assistent Fakten über Sie aufzeichnet, wird deren Frische hier verfolgt.',
  'memoryFreshness.namespaceLabel': 'Namespace',
  'memoryFreshness.namespaceAll': 'Alle Namensräume',
  'memoryFreshness.metricFresh': 'Fresh',
  'memoryFreshness.metricFading': 'Fading',
  'memoryFreshness.metricStale': 'Stale',
  'memoryFreshness.recallCaption': 'Durchschnittlicher Recall {recall} % über {total} Fakten',
  'memoryFreshness.queueHeading': 'Bestätigungswarteschlange',
  'memoryFreshness.queueTruncated': '{shown} von {total} angezeigt — diese zuerst bearbeiten.',
  'memoryFreshness.allFresh': 'Alle Fakten sind noch frisch — nichts zu bestätigen.',
  'memoryFreshness.statusFading': 'fading',
  'memoryFreshness.statusStale': 'stale',
  'memoryFreshness.ageLabel': '{days} Tage alt',
  'memoryFreshness.recallTitle': '{recall} % Recall · Halbwertszeit {halfLife} Tage',
  'memory.tab.path': 'Pfade',
  'connectionPath.title': 'Verbindungspfad',
  'connectionPath.intro':
    'Verfolge die kürzeste Kette von Beziehungen, die zwei beliebige Entitäten verbindet — wie der Graph sie verknüpft, selbst über mehrere Sprünge hinweg.',
  'connectionPath.loading': 'Graph wird geladen…',
  'connectionPath.errorPrefix': 'Graph konnte nicht geladen werden:',
  'connectionPath.retry': 'Erneut versuchen',
  'connectionPath.namespaceLabel': 'Namespace',
  'connectionPath.namespaceAll': 'Alle Namespaces',
  'connectionPath.sourceLabel': 'Von',
  'connectionPath.targetLabel': 'Nach',
  'connectionPath.sourcePlaceholder': 'Start-Entität',
  'connectionPath.targetPlaceholder': 'End-Entität',
  'connectionPath.prompt': 'Wähle zwei Entitäten, um zu verfolgen, wie sie verbunden sind.',
  'connectionPath.empty': 'Noch kein Wissensgraph vorhanden.',
  'connectionPath.emptyHint':
    'Sobald der Assistent zusammenhängende Fakten erfasst, kannst du hier Verbindungen verfolgen.',
  'connectionPath.resultHeading': 'Kürzester Pfad',
  'connectionPath.pathSummary': '{length} Sprung(e) entfernt',
  'connectionPath.sameMessage': 'Wähle zwei verschiedene Entitäten.',
  'connectionPath.missingSource': '„{entity}“ ist nicht im Graphen enthalten.',
  'connectionPath.missingTarget': '„{entity}“ ist nicht im Graphen enthalten.',
  'connectionPath.noPath': 'Keine Verbindung zwischen „{source}“ und „{target}“ gefunden.',
  'memoryTree.status.title': 'Speicherbaum',
  'memoryTree.status.autoSyncLabel': 'Auto Sync',
  'memoryTree.status.autoSyncDescription':
    'Pausieren Sie, um die erneute Einnahme zu stoppen. Vorhandenes Wiki bleibt abfragbar.',
  'memoryTree.status.statusTile': 'Status',
  'memoryTree.status.lastSyncTile': 'Letzte Synchronisierung',
  'memoryTree.status.totalChunksTile': 'Gesamtstückzahl',
  'memoryTree.status.wikiSizeTile': 'Wiki-Größe',
  'memoryTree.status.statusRunning': 'Laufend',
  'memoryTree.status.statusPaused': 'Angehalten',
  'memoryTree.status.statusSyncing': 'Synchronisierung läuft',
  'memoryTree.status.statusError': 'Error',
  'memoryTree.status.statusIdle': 'Untätig',
  'memoryTree.status.never': 'Nie',
  'memoryTree.status.fetchError': 'Speicherbaum-Status konnte nicht abgerufen werden',
  'memoryTree.status.retry': 'Wiederholen',
  'memoryTree.status.toggleFailed':
    'Automatische Synchronisierung konnte nicht umgeschaltet werden',
  'memoryTree.status.justNow': 'gerade eben',
  'memoryTree.status.secondsAgo': 'Vor {count}s',
  'memoryTree.status.minuteAgo': '1 Minute zuvor',
  'memoryTree.status.minutesAgo': 'Vor {count} Min.',
  'memoryTree.status.hourAgo': 'Vor 1 Stunde',
  'memoryTree.status.hoursAgo': 'Vor {count} Std.',
  'memoryTree.status.dayAgo': 'Vor 1 Tag',
  'memoryTree.status.daysAgo': '{count} vor Tagen',
  'memoryTree.status.integrationsTitle': 'Integrationsstatus',
  'memoryTree.status.integrationsEmpty': 'Keine Integrationen verbunden',
  'memoryTree.status.integrationActive': 'Aktiv',
  'memoryTree.status.integrationStale': 'Veraltet',
  'memoryTree.status.integrationChunks': 'Blöcke: {count}',
  'alerts.title': 'Warnungen',
  'alerts.empty': 'Noch keine Benachrichtigungen',
  'alerts.markAllRead': 'Alle als gelesen markieren',
  'alerts.unread': 'ungelesen',
  'rewards.title': 'Belohnungen',
  'rewards.referrals': 'Empfehlungen',
  'rewards.coupons': 'Einlösen',
  'rewards.localUnavailable':
    'Ein lokaler Login sammelt keine Belohnungen, Gutscheine oder Empfehlungsguthaben. Melde dich ab und anschließend mit einem OpenHuman-Konto an, wenn Belohnungen zählen sollen.',
  'rewards.localUnavailableCta': 'Kontoeinstellungen öffnen',
  'rewards.credits': 'Credits',
  'rewards.referralCode': 'Dein Empfehlungscode',
  'rewards.copyCode': 'Code kopieren',
  'rewards.share': 'Teilen',
  'onboarding.welcome': 'Hallo. Ich bin OpenHuman.',
  'onboarding.welcomeDesc':
    'Dein superintelligenter KI-Assistent, der auf deinem Computer läuft. Privat, einfach und äußerst leistungsstark.',
  'onboarding.context': 'Kontexterfassung',
  'onboarding.contextDesc': 'Verbinde die Tools und Dienste, die du täglich nutzt.',
  'onboarding.localAI': 'Lokale KI',
  'onboarding.localAIDesc':
    'Richte ein lokales KI-Modell ein, das auf deinem Computer ausgeführt wird.',
  'onboarding.chatProvider': 'Chat-Anbieter',
  'onboarding.chatProviderDesc': 'Wähle aus, wie du mit deinem Assistenten interagieren möchtest.',
  'onboarding.referral': 'Empfehlung',
  'onboarding.referralDesc': 'Wende einen Empfehlungscode an, falls du einen hast.',
  'onboarding.finish': 'Schließe die Einrichtung',
  'onboarding.finishDesc': 'Du bist bereit! Beginne mit der Verwendung von OpenHuman.',
  'onboarding.skip': 'Überspringen',
  'onboarding.getStarted': 'Lege los',
  'onboarding.runtimeChoice.title': 'Wie möchtest du OpenHuman starten?',
  'onboarding.runtimeChoice.subtitle':
    'Wähle das Setup, das am besten zu dir passt. Du kannst es später in den Einstellungen ändern.',
  'onboarding.runtimeChoice.cloud.title': 'Einfach',
  'onboarding.runtimeChoice.cloud.tagline': 'Lass OpenHuman alles für dich verwalten.',
  'onboarding.runtimeChoice.cloud.f1': 'Integrierte Sicherheit',
  'onboarding.runtimeChoice.cloud.f2': 'Token-Komprimierung, um deine Nutzung weiter auszudehnen',
  'onboarding.runtimeChoice.cloud.f3': 'Ein Abonnement, jedes Modell inklusive',
  'onboarding.runtimeChoice.cloud.f4': 'Keine API Schlüssel zum Verwalten',
  'onboarding.runtimeChoice.cloud.f5': 'Einfach einzurichten',
  'onboarding.runtimeChoice.custom.title': 'Führe Benutzerdefiniert aus',
  'onboarding.runtimeChoice.custom.tagline':
    'Bring deine eigenen Schlüssel mit. Volle Kontrolle darüber, was du verwendest.',
  'onboarding.runtimeChoice.custom.f1': 'Du brauchst für fast alles API-Schlüssel',
  'onboarding.runtimeChoice.custom.f2': 'Nutzt Dienste wieder, für die du bereits bezahlt hast',
  'onboarding.runtimeChoice.custom.f3': 'Kann kostenlos sein, wenn du alles lokal ausführst',
  'onboarding.runtimeChoice.custom.f4': 'Mehr Setup, mehr Knöpfe',
  'onboarding.runtimeChoice.custom.f5': 'Am besten für Power-User und Entwickler geeignet',
  'onboarding.runtimeChoice.cloud.creditHighlight': 'Kostenlose Credits bei der Registrierung',
  'onboarding.runtimeChoice.continueCloud': 'Fahre mit „Einfach“ fort',
  'onboarding.runtimeChoice.continueCustom': 'Fahre mit Benutzerdefiniert fort',
  'onboarding.runtimeChoice.recommended': 'Empfohlen',
  'onboarding.runtimeChoice.exitError':
    'Onboarding konnte nicht abgeschlossen werden. Bitte versuchen Sie es erneut.',
  'onboarding.apiKeys.title': 'Fügen wir deine API-Schlüssel hinzu',
  'onboarding.apiKeys.subtitle':
    'Du kannst sie jetzt einfügen oder überspringen und später unter „Einstellungen“ > „KI“ hinzufügen. Schlüssel werden auf diesem Gerät gespeichert und im Ruhezustand verschlüsselt.',
  'onboarding.apiKeys.openaiLabel': 'OpenAI API Schlüssel',
  'onboarding.apiKeys.openaiPlaceholder': 'sk-...',
  'onboarding.apiKeys.openaiOauthHint':
    'Verwenden Sie ChatGPT Plus/Pro (Abonnement) oder einen OpenAI API-Schlüssel – nicht beides erforderlich.',
  'onboarding.apiKeys.openaiOauthOpening': 'Anmeldung öffnen…',
  'onboarding.apiKeys.openaiOauthConnect': 'Mit ChatGPT anmelden',
  'onboarding.apiKeys.openaiOauthConnected': 'Mit ChatGPT verbunden',
  'onboarding.apiKeys.openaiOauthCallbackHint':
    'Fügen Sie nach der Anmeldung die vollständige Weiterleitungs-URL aus Ihrem Browser ein (beginnt mit {url}).',
  'onboarding.apiKeys.oauthDesktopOnly':
    'Die ChatGPT-Anmeldung ist nur in der Desktop-App verfügbar.',
  'onboarding.apiKeys.oauthStartFailed':
    'ChatGPT-Anmeldung konnte nicht gestartet werden. Versuchen Sie es erneut oder verwenden Sie einen API-Schlüssel.',
  'onboarding.apiKeys.oauthPasteRedirect':
    'Fügen Sie nach der Anmeldung die Weiterleitungs-URL aus Ihrem Browser ein.',
  'onboarding.apiKeys.oauthCompleteFailed':
    'Die ChatGPT-Anmeldung wurde nicht abgeschlossen. Überprüfen Sie die Weiterleitungs-URL und versuchen Sie es erneut.',
  'onboarding.apiKeys.finishSignIn': 'ChatGPT-Anmeldung abschließen',
  'onboarding.apiKeys.orApiKey': 'oder API-Taste',
  'onboarding.apiKeys.anthropicLabel': 'Anthropic API Schlüssel',
  'onboarding.apiKeys.anthropicPlaceholder': 'sk-ant-...',
  'onboarding.apiKeys.saveError':
    'Der Schlüssel konnte nicht gespeichert werden. Bitte prüfe ihn noch einmal und versuche es erneut.',
  'onboarding.apiKeys.skipForNow': 'Erstmal überspringen',
  'onboarding.apiKeys.continue': 'Speichern und fortfahren',
  'onboarding.apiKeys.saving': 'Sparen…',
  'onboarding.custom.stepperInference': 'Schlussfolgerung',
  'onboarding.custom.stepperVoice': 'Stimme',
  'onboarding.custom.stepperOAuth': 'OAuth',
  'onboarding.custom.stepperSearch': 'Suchen',
  'onboarding.custom.stepperEmbeddings': 'Embeddings',
  'onboarding.custom.stepperMemory': 'Erinnerung',
  'onboarding.custom.stepCounter': 'Schritt {n} von {total}',
  'onboarding.custom.defaultTitle': 'Standard',
  'onboarding.custom.defaultSubtitle': 'Lass OpenHuman das für dich erledigen.',
  'onboarding.custom.configureTitle': 'Konfigurieren',
  'onboarding.custom.configureSubtitle': 'Ich wähle aus, was ich verwenden möchte.',
  'onboarding.custom.progressAriaLabel': 'Onboarding-Fortschritt',
  'onboarding.custom.continue': 'Weiter',
  'onboarding.custom.back': 'Zurück',
  'onboarding.custom.finish': 'Schließe die Einrichtung',
  'onboarding.custom.configureLater':
    'Du kannst die Verknüpfung nach dem Onboarding abschließen. Sobald du fertig bist, wirst du auf die passende Einstellungsseite weitergeleitet.',
  'onboarding.custom.openSettings': 'In den Einstellungen öffnen',
  'onboarding.custom.inference.title': 'Schlussfolgerung (Text)',
  'onboarding.custom.inference.subtitle':
    'Welches Sprachmodell soll deine Fragen beantworten und deine Agenten betreiben?',
  'onboarding.custom.inference.defaultDesc':
    'OpenHuman leitet jede Arbeitslast an ein sinnvolles Standardmodell weiter. Keine Schlüssel, keine Einrichtung.',
  'onboarding.custom.inference.configureDesc':
    'Bring deinen eigenen OpenAI- oder Anthropic-Schlüssel mit. Wir verwenden ihn für jede textbasierte Arbeitslast.',
  'onboarding.custom.voice.title': 'Stimme',
  'onboarding.custom.voice.subtitle': 'Speech-to-Text und Text-to-Speech für den Sprachmodus.',
  'onboarding.custom.voice.defaultDesc':
    'OpenHuman wird mit verwaltetem STT/TTS geliefert, das einfach funktioniert. Nichts zu verkabeln.',
  'onboarding.custom.voice.configureDesc':
    'Verwende dein eigenes ElevenLabs / OpenAI Whisper / usw. Konfiguriere es in den Einstellungen › Stimme.',
  'onboarding.custom.oauth.title': 'Verbindungen (OAuth)',
  'onboarding.custom.oauth.subtitle':
    'Gmail, Slack, Notion und andere verbundene Dienste, die OAuth benötigen.',
  'onboarding.custom.oauth.defaultDesc':
    'OpenHuman führt einen verwalteten Composio-Arbeitsbereich aus. Ein Klick, um jeden Dienst später zu verbinden.',
  'onboarding.custom.oauth.configureDesc':
    'Bring dein eigenes Composio-Konto / API-Schlüssel mit. Konfiguriere unter Einstellungen › Verbindungen.',
  'onboarding.custom.search.title': 'Websuche',
  'onboarding.custom.search.subtitle': 'Wie OpenHuman das Web in deinem Namen durchsucht.',
  'onboarding.custom.search.defaultDesc':
    'OpenHuman verwendet ein verwaltetes Such-Backend. Keine Schlüssel erforderlich.',
  'onboarding.custom.search.configureDesc':
    'Bring deinen eigenen Suchanbieterschlüssel mit (Tavily, Brave usw.). Konfiguriere unter Einstellungen › Extras.',
  'onboarding.custom.embeddings.title': 'Embeddings',
  'onboarding.custom.embeddings.subtitle':
    'Wie OpenHuman Vektor-Embeddings für die semantische Gedächtnissuche erstellt.',
  'onboarding.custom.embeddings.defaultDesc':
    'OpenHuman verwendet einen verwalteten Embedding-Dienst. Kein API-Schlüssel erforderlich.',
  'onboarding.custom.embeddings.configureDesc':
    'Eigenen Embedding-Anbieter einbinden (OpenAI, Voyage, Ollama usw.).',
  'onboarding.custom.memory.title': 'Erinnerung',
  'onboarding.custom.memory.subtitle':
    'Wie OpenHuman sich deinen Kontext, deine Vorlieben und frühere Gespräche merkt.',
  'onboarding.custom.memory.defaultDesc':
    'OpenHuman verwaltet die Speicherung und den Abruf des Speichers automatisch. Nichts einzurichten.',
  'onboarding.custom.memory.configureDesc':
    'Überprüfe, exportiere oder lösche den Speicher selbst. Konfiguriere in den Einstellungen › Speicher.',
  'accounts.addAccount': 'Konto hinzufügen',
  'accounts.addApps': 'Apps hinzufügen',
  'accounts.manageAccounts': 'Konten verwalten',
  'accounts.noAccounts': 'Keine Konten verbunden',
  'accounts.connectAccount': 'Verbinde ein Konto, um loszulegen',
  'accounts.agent': 'Agent',
  'accounts.respondQueue': 'Antwortwarteschlange',
  'accounts.disconnect': 'Trennen',
  'accounts.disconnectConfirm': 'Möchtest du dieses Konto wirklich trennen?',
  'accounts.disconnectClearMemory': 'Erinnerungen aus dieser Quelle ebenfalls löschen',
  'accounts.disconnectClearMemoryHint':
    'Entfernt dauerhaft alle lokalen Gedächtnisfragmente, die mit dieser Verbindung verknüpft sind.',
  'accounts.searchAccounts': 'Konten durchsuchen...',
  'channels.title': 'Kanäle',
  'channels.configure': 'Kanal konfigurieren',
  'channels.setup': 'Einrichtung',
  'channels.noChannels': 'Keine Kanäle konfiguriert',
  'channels.localManagedUnavailable': 'Verwaltete Kanäle sind für lokale Benutzer nicht verfügbar.',
  'channels.addChannel': 'Kanal hinzufügen',
  'channels.status.connected': 'Verbunden',
  'channels.status.disconnected': 'Nicht verbunden',
  'channels.status.error': 'Fehler',
  'channels.status.configuring': 'Konfigurieren',
  'channels.defaultMessaging': 'Standard-Messaging-Kanal',
  'channels.setAsDefault': 'Als Standard festlegen',
  'channels.defaultBadge': 'Standard',
  'webhooks.title': 'Webhooks',
  'webhooks.create': 'Erstelle einen Webhook',
  'webhooks.noWebhooks': 'Keine Webhooks konfiguriert',
  'webhooks.url': 'URL',
  'webhooks.secret': 'Geheimnis',
  'webhooks.events': 'Veranstaltungen',
  'webhooks.archiveDirectory': 'Archivverzeichnis',
  'webhooks.todayFile': 'Heutige Akte',
  'invites.title': 'Lädt ein',
  'invites.create': 'Einladung erstellen',
  'invites.noInvites': 'Keine ausstehenden Einladungen',
  'invites.code': 'Einladungscode',
  'invites.copyLink': 'Link kopieren',
  'invites.generate': 'Einladung erstellen',
  'invites.generating': 'Wird erstellt…',
  'invites.refreshing': 'Einladungen werden aktualisiert…',
  'invites.loading': 'Einladungen werden geladen…',
  'invites.copyCodeAria': 'Einladungscode kopieren',
  'invites.revokeAria': 'Einladung widerrufen',
  'invites.usedUp': 'Aufgebraucht',
  'invites.uses': 'Verwendung: {current}{max}',
  'invites.expiresOn': 'Läuft am {date} ab',
  'invites.empty': 'Noch keine Einladungen',
  'invites.emptyHint': 'Erstelle einen Einladungscode, um ihn mit anderen zu teilen',
  'invites.revokeTitle': 'Einladungscode widerrufen',
  'invites.revokePromptPrefix': 'Sind Sie sicher, dass Sie den Einladungscode widerrufen möchten?',
  'invites.revokeWarning':
    'Dieser Einladungscode ist danach ungültig und kann nicht mehr zum Beitritt zum Team verwendet werden.',
  'invites.revoking': 'Widerrufen...',
  'invites.revokeAction': 'Einladung widerrufen',
  'invites.failedGenerate': 'Einladung konnte nicht erstellt werden',
  'invites.failedRevoke': 'Einladung konnte nicht widerrufen werden',
  'team.refreshingMembers': 'Mitglieder werden aktualisiert...',
  'team.loadingMembers': 'Mitglieder werden geladen...',
  'team.memberCount': '{count} Mitglied',
  'team.memberCountPlural': '{count} Mitglieder',
  'team.you': '(Sie)',
  'team.removeAria': '{name} entfernen',
  'team.noMembers': 'Keine Mitglieder gefunden',
  'team.removeTitle': 'Teammitglied entfernen',
  'team.removePromptPrefix': 'Sind Sie sicher, dass Sie entfernen möchten?',
  'team.removePromptSuffix': 'aus dem Team?',
  'team.removeWarning': 'Sie verlieren den Zugriff auf das Team und alle Teamressourcen.',
  'team.removing': 'Entfernen...',
  'team.removeAction': 'Mitglied entfernen',
  'team.changeRoleTitle': 'Mitgliedsrolle ändern',
  'team.changeRolePrompt': 'Rolle von {name} von {oldRole} in {newRole} ändern?',
  'team.changeRoleAdminGrant':
    'Damit werden volle Administratorberechtigungen erteilt, einschließlich der Verwaltung von Teammitgliedern.',
  'team.changeRoleAdminRemove':
    'Damit werden die Administratorberechtigungen entzogen und die Person kann das Team nicht mehr verwalten.',
  'team.changing': 'Ändern...',
  'team.changeRoleAction': 'Rolle ändern',
  'team.failedChangeRole': 'Rolle konnte nicht geändert werden.',
  'team.failedRemoveMember': 'Mitglied konnte nicht entfernt werden.',
  'devOptions.title': 'Fortgeschritten',
  'devOptions.titleDiagnostics': 'Entwickler & Diagnose',
  'devOptions.diagnostics': 'Diagnose',
  'devOptions.diagnosticsDesc': 'Systemzustand, Protokolle und Leistungsmetriken',
  'devOptions.toolPolicyDiagnosticsDesc':
    'Werkzeuginventar, Richtlinienstatus, MCP-Zulassungslisten und aktuelle Sperren',
  'devOptions.toolPolicyDiagnostics.loading': 'Laden…',
  'devOptions.toolPolicyDiagnostics.unavailable': 'Diagnose nicht verfügbar',
  'devOptions.toolPolicyDiagnostics.posture.title': 'Politische Haltung',
  'devOptions.toolPolicyDiagnostics.posture.autonomy': 'Autonomie:',
  'devOptions.toolPolicyDiagnostics.posture.workspaceOnly': 'Nur Arbeitsbereich:',
  'devOptions.toolPolicyDiagnostics.posture.maxActionsPerHour': 'Max. actions/hr:',
  'devOptions.toolPolicyDiagnostics.posture.approvalMediumRisk': 'Zulassung (mittleres Risiko):',
  'devOptions.toolPolicyDiagnostics.posture.blockHighRisk': 'Hohes Risiko blockieren:',
  'devOptions.toolPolicyDiagnostics.inventory.title': 'Inventar',
  'devOptions.toolPolicyDiagnostics.inventory.totalTools': 'Gesamtwerkzeuge',
  'devOptions.toolPolicyDiagnostics.inventory.enabledTools': 'Aktivierte Tools',
  'devOptions.toolPolicyDiagnostics.inventory.mcpStdioTools': 'MCP stdio-Tools',
  'devOptions.toolPolicyDiagnostics.inventory.jsonRpcTools': 'JSON-RPC-Werkzeuge',
  'devOptions.toolPolicyDiagnostics.mcpAllowlists.title': 'MCP-Zulassungslisten',
  'devOptions.toolPolicyDiagnostics.mcpAllowlists.summary':
    'Aktiviert: {enabled} · Server: ZXHOLD1ZX/ZXHOLD2ZX',
  'devOptions.toolPolicyDiagnostics.mcpAllowlists.unnamed': '<unbenannt>',
  'devOptions.toolPolicyDiagnostics.mcpAllowlists.allowDeny':
    'erlauben={allowCount} verweigern={denyCount}',
  'devOptions.toolPolicyDiagnostics.mcpWriteAudit.title': 'MCP Schreibprüfung',
  'devOptions.toolPolicyDiagnostics.mcpWriteAudit.summary':
    'Aktiviert: {enabled} · Zuletzt (24 Stunden): {recentRows}',
  'devOptions.toolPolicyDiagnostics.recentBlocked.title': 'Letzte blockierte Anrufe',
  'devOptions.toolPolicyDiagnostics.recentBlocked.empty':
    'Es wurden keine blockierten Anrufe aufgezeichnet.',
  'devOptions.toolPolicyDiagnostics.redactedSurfaces.title': 'Geschwärzte Oberflächen',
  'devOptions.toolPolicyDiagnostics.redactedSurfaces.summary':
    'Schreibfähig: {writeCount} · Richtlinienoberflächen: {policyCount}',
  'devOptions.debugPanels': 'Debug-Panels',
  'devOptions.debugPanelsDesc': 'Feature-Flags, Zustandsprüfung und Debugging-Tools',
  'devOptions.webhooks': 'Webhooks',
  'devOptions.webhooksDesc': 'Konfiguriere und teste Webhook-Integrationen',
  'devOptions.memoryInspection': 'Speicherinspektion',
  'devOptions.memoryInspectionDesc': 'Speichereinträge durchsuchen, abfragen und verwalten',
  'voice.pushToTalk': 'Push-to-Talk',
  'voice.recording': 'Aufnahme...',
  'voice.processing': 'Verarbeitung...',
  'voice.languageHint': 'Sprache',
  'misc.rehydrating': 'Deine Daten werden geladen...',
  'misc.checkingServices': 'Dienste prüfen...',
  'misc.serviceUnavailable': 'Dienst nicht verfügbar',
  'misc.somethingWentWrong': 'Etwas ist schief gelaufen',
  'misc.tryAgainLater': 'Bitte versuche es später noch einmal.',
  'misc.restartApp': 'App neu starten',
  'misc.updateAvailable': 'Update verfügbar',
  'misc.updateNow': 'Jetzt aktualisieren',
  'misc.updateLater': 'Später',
  'misc.downloading': 'Herunterladen...',
  'misc.installing': 'Installieren...',
  'misc.beta':
    'OpenHuman befindet sich in der frühen Betaphase. Teile uns gerne dein Feedback mit oder melde Fehler, auf die du stößt – jede Meldung hilft uns, schneller zu liefern.',
  'misc.betaFeedback': 'Feedback senden',
  'mnemonic.title': 'Wiederherstellungssatz',
  'mnemonic.warning':
    'Schreibe diese Wörter der Reihe nach auf und bewahre sie an einem sicheren Ort auf.',
  'mnemonic.copyWarning':
    'Gib niemals deine Wiederherstellungsphrase weiter. Jeder mit diesen Wörtern kann auf dein Konto zugreifen.',
  'mnemonic.copied': 'Wiederherstellungsphrase in die Zwischenablage kopiert',
  'mnemonic.reveal': 'Satz enthüllen',
  'mnemonic.revealPhrase': 'Wiederherstellungsphrase anzeigen',
  'mnemonic.hidden': 'Die Wiederherstellungsphrase ist ausgeblendet',
  'privacy.title': 'Datenschutz und Sicherheit',
  'privacy.description': 'Transparenzbericht der an externe Dienste gesendeten Daten.',
  'privacy.empty': 'Keine externen Datenübertragungen erkannt.',
  'privacy.whatLeavesComputer': 'Was deinen Computer verlässt',
  'privacy.loading': 'Datenschutzdetails werden geladen...',
  'privacy.loadError':
    'Die Live-Datenschutzliste konnte nicht geladen werden. Die unten aufgeführten Analytics-Steuerelemente funktionieren weiterhin.',
  'privacy.noCapabilities': 'Derzeit geben keine Funktionen Datenbewegungen offen.',
  'privacy.sentTo': 'Gesendet an',
  'privacy.leavesDevice': 'Verlässt das Gerät',
  'privacy.staysLocal': 'Bleibt lokal',
  'privacy.anonymizedAnalytics': 'Produktanalysen',
  'privacy.shareAnonymizedData': 'Produktanalysen und Diagnosen teilen',
  'privacy.shareAnonymizedDataDesc':
    'Hilf mit, OpenHuman zu verbessern, indem du datensparsame Absturzberichte und Nutzungsereignisse teilst, einschließlich einer stabilen Konto-ID und App-Versionsmetadaten. Nachrichten, Wallet-Schlüssel, API-Schlüssel und Sitzungstokens werden nie erfasst.',
  'privacy.meetingFollowUps': 'Nachbereitung von Besprechungen',
  'privacy.autoHandoffMeet': 'Automatische Übergabe Google Meet-Transkripte an den Orchestrator',
  'privacy.autoHandoffMeetDesc':
    'Wenn ein Google Meet-Anruf endet, kann der Orchestrator von OpenHuman das Transkript lesen und Maßnahmen wie das Verfassen von Nachrichten, das Planen von Folgemaßnahmen oder das Veröffentlichen von Zusammenfassungen in deinem verbundenen Slack-Arbeitsbereich ergreifen. Standardmäßig deaktiviert.',
  'privacy.analyticsDisclaimer':
    'Wenn diese Option aktiviert ist, können Produktanalysen und Diagnosen datensparsame Absturzberichte und Nutzungsereignisse, eine stabile Konto-ID und App-Versionsmetadaten enthalten. Nachrichten, Wallet-Schlüssel, API-Schlüssel und Sitzungstokens werden nie erfasst. Du kannst diese Einstellung jederzeit ändern.',
  'settings.about.version': 'Version',
  'settings.about.updateAvailable': 'ist vorhanden',
  'settings.about.softwareUpdates': 'Software-Updates',
  'settings.about.lastChecked': 'Zuletzt überprüft',
  'settings.about.checking': 'Überprüfen...',
  'settings.about.checkForUpdates': 'Nach Updates suchen',
  'settings.about.releases': 'Veröffentlichungen',
  'settings.about.releasesDesc': 'Durchsuche Versionshinweise und frühere Builds auf GitHub.',
  'settings.about.openReleases': 'Öffne GitHub-Releases',
  'settings.about.connection': 'Verbindung',
  'settings.about.connectionMode': 'Modus',
  'settings.about.connectionModeLocal': 'Lokal',
  'settings.about.connectionModeCloud': 'Cloud',
  'settings.about.connectionModeUnset': 'Nicht ausgewählt',
  'settings.about.serverUrl': 'Server-URL',
  'settings.about.serverUrlUnavailable': 'Nicht verfügbar',
  'settings.about.connectionHelperLocal':
    'Wird beim Start der App von der Tauri-Shell im Prozess erzeugt. Der Port wird beim Start ausgewählt, sodass dieser URL zwischen den Starts wechselt.',
  'settings.about.connectionHelperCloud':
    'Verbunden mit einem Remote-Core. Ändern Sie dies in BootCheck oder in der Cloud-Modus-Auswahl.',
  'settings.heartbeat.title': 'Heartbeat und Schleifen',
  'settings.usage.title': 'Nutzung & Limits',
  'settings.usage.menuDesc': 'Kosten, Token-Verbrauch, Budgets und Hintergrundaktivität',
  'settings.costDashboard.title': 'Kosten-Dashboard',
  'settings.costDashboard.sevenDayCost': '7-Tage-Tageskosten',
  'settings.costDashboard.sevenDayTokens': '7-Tage-Token-Nutzung',
  'settings.costDashboard.totalSpend': '7 Tage insgesamt',
  'settings.costDashboard.monthlyPace': 'Monatstempo',
  'settings.costDashboard.budgetLimit': 'Budget-Limit',
  'settings.costDashboard.utilization': 'Utilization',
  'settings.costDashboard.modelBreakdown': 'Aufschlüsselung nach Modell',
  'settings.costDashboard.model': 'Modell',
  'settings.costDashboard.provider': 'Anbieter',
  'settings.costDashboard.cost': 'Kosten',
  'settings.costDashboard.tokens': 'Tokens',
  'settings.costDashboard.requests': 'Anträge',
  'settings.costDashboard.percentOfTotal': '% der Gesamtsumme',
  'settings.costDashboard.inputTokens': 'Eingabe',
  'settings.costDashboard.outputTokens': 'Ausgabe',
  'settings.costDashboard.budgetNormal': 'Im Zeitplan',
  'settings.costDashboard.budgetWarning': '  Achtung',
  'settings.costDashboard.budgetExceeded': 'Über dem Budget',
  'settings.costDashboard.noBudget': 'Kein Limit',
  'settings.costDashboard.noData': 'In den letzten 7 Tagen wurden noch keine Kosten erfasst.',
  'settings.costDashboard.noModels': 'Keine Modellaktivität in den letzten 7 Tagen.',
  'settings.costDashboard.loading': 'Kosten-Dashboard wird geladen...',
  'settings.costDashboard.disabledHint':
    'Das Kosten-Dashboard ist in der Konfiguration deaktiviert. [cost.dashboard] enabled = true in config.toml auf re-enable setzen.',
  'settings.costDashboard.subtitle':
    'Lebendige Ausgaben und Token brennen über den Schwarm. Leisten werden alle paar Sekunden automatisch aktualisiert — kein Neuladen der Seite erforderlich.',
  'settings.costDashboard.summaryAriaLabel': 'Kostenübersicht Metriken',
  'settings.costDashboard.lastSevenDays': 'letzten 7 Tage',
  'settings.costDashboard.utilizationOf': 'der',
  'settings.costDashboard.thisMonth': 'diesen Monat',
  'settings.costDashboard.monthlyPaceHint':
    'Voraussichtliche monatliche Ausgaben bei der aktuellen täglichen Ausführungsrate (durchschnittlich × 30).',
  'settings.costDashboard.budgetLimitHint':
    'Monatsbudget aus cost.monthly_limit_usd in config.toml gelesen.',
  'settings.costDashboard.dailyTarget': 'Tägliches Ziel',
  'settings.costDashboard.today': 'Heute',
  'settings.costDashboard.todayBadge': 'TODAY',
  'settings.costDashboard.unknownProvider': '—',
  'settings.costDashboard.justNow': 'Gerade jetzt',
  'settings.costDashboard.secondsAgo': 'Vor {value}s',
  'settings.costDashboard.minutesAgo': 'Vor {value}m',
  'settings.costDashboard.hoursAgo': 'Vor {value}h',
  'settings.costDashboard.daysAgo': '{value}d vor',
  'settings.costDashboard.updated': 'Aktualisiert',
  'settings.costDashboard.refresh': 'Aktualisieren',
  'settings.costDashboard.utcNote': 'Tage in UTC',
  'settings.costDashboard.stackedNote': 'Eingang + Ausgang gestapelt',
  'settings.costDashboard.modelBreakdownHint': 'Aggregiert über die letzten 7 Tage.',
  'settings.costDashboard.categoryDistribution': 'Ausgaben nach Kategorie',
  'settings.costDashboard.categoryDistributionHint':
    'Aus aktuellen Nutzungsdatensätzen für Chat, Embeddings, Sprache, Bild und Reranking abgeleitet.',
  'settings.costDashboard.noCategories': 'Noch keine Kategorieausgaben erfasst.',
  'settings.costDashboard.categoryMeta': '{requests} Anfragen • {tokens} Token',
  'settings.costDashboard.usageLog': 'Nutzungsprotokoll',
  'settings.costDashboard.usageLogHint':
    'Neueste Datensätze der letzten {days} Tage, begrenzt auf {limit} Zeilen.',
  'settings.costDashboard.logTotal': '{requests} Anfragen • {cost}',
  'settings.costDashboard.noUsageLog':
    'Für diesen Zeitraum wurden keine Nutzungsdatensätze gefunden.',
  'settings.costDashboard.when': 'Wann',
  'settings.costDashboard.category': 'Kategorie',
  'settings.costDashboard.session': 'Sitzung',
  'settings.costDashboard.noDataHint':
    'Senden Sie eine Agentennachricht — Die Tokenverwendung des nächsten Anbieteranrufs füllt das Diagramm innerhalb von ~10 Sekunden aus.',
  'settings.search.title': 'Suchmaschine',
  'settings.search.menuDesc':
    'Verwenden Sie standardmäßig die von OpenHuman verwaltete Suche oder verbinden Sie Ihren eigenen Anbieter mit einem API-Schlüssel.',
  'settings.search.description':
    'Wählen Sie die Suchmaschine, die der Agent verwendet, oder deaktivieren Sie Suchwerkzeuge vollständig. „Verwaltet“ nutzt das Backend von OpenHuman (keine Einrichtung erforderlich). Parallel, Brave und Querit laufen direkt von Ihrem Gerät aus und verwenden Ihren API-Schlüssel.',
  'settings.search.engineAria': 'Suchmaschine',
  'settings.search.engineDisabledLabel': 'Disabled',
  'settings.search.engineDisabledDesc':
    'Suchwerkzeuge aus dem Agenten-Kontext und der verfügbaren Tool-Liste entfernen.',
  'settings.search.engineManagedLabel': 'OpenHuman Verwaltet',
  'settings.search.engineManagedDesc':
    'Standard. Wird über das OpenHuman-Backend weitergeleitet – kein API-Schlüssel erforderlich.',
  'settings.search.localManagedUnavailable':
    'Die von OpenHuman verwaltete Suche ist für lokale Benutzer nicht verfügbar. Füge deinen eigenen Parallel- oder Brave-API-Schlüssel hinzu, um die Websuche zu aktivieren.',
  'settings.search.engineParallelLabel': 'Parallel',
  'settings.search.engineParallelDesc':
    'Direct Parallel API: Such-, Extrahierungs-, Chat-, Recherche-, Anreicherungs- und Datensatz-Tools.',
  'settings.search.engineBraveLabel': 'Brave Suche',
  'settings.search.engineBraveDesc':
    'Direct Brave Search API: Web-, Nachrichten-, Bild- und Video-Tools.',
  'settings.search.engineQueritLabel': 'Querit',
  'settings.search.engineQueritDesc':
    'Direct Querit API: Websuche mit Standort-, Zeitbereichs-, Länder- und Sprachfiltern.',
  'settings.search.statusConfigured': 'Konfiguriert',
  'settings.search.statusNeedsKey': 'Benötigt API-Schlüssel',
  'settings.search.fallbackToManaged':
    'Kein Schlüssel konfiguriert – die Suche wird auf „Verwaltet“ zurückgesetzt, bis ein Schlüssel gespeichert wird.',
  'settings.search.getApiKey': 'API-Schlüssel abrufen',
  'settings.search.save': 'Speichern',
  'settings.search.clear': 'Löschen',
  'settings.search.show': 'Anzeigen',
  'settings.search.hide': 'Ausblenden',
  'settings.search.statusSaving': 'Speichern…',
  'settings.search.statusSaved': 'Gespeichert.',
  'settings.search.statusError': 'Schlüssel',
  'settings.search.parallelKeyLabel': 'Parallel API fehlgeschlagen',
  'settings.search.braveKeyLabel': 'Brave Suche API Schlüssel',
  'settings.search.queritKeyLabel': 'Fragen Sie den API-Schlüssel ab',
  'settings.search.placeholderStored': '•••••••• (gespeichert)',
  'settings.search.placeholderParallel': 'pk_...',
  'settings.search.placeholderBrave': 'BSA...',
  'settings.search.placeholderQuerit': 'Fragen Sie den API-Schlüssel ab',
  'settings.search.allowedSitesLabel': 'Erlaubte Websites',
  'settings.search.allowedSitesHint':
    'Hosts, die der Assistent öffnen und lesen darf – per Web-Abruf und Browser-Tool – einer pro Zeile, z. B. reuters.com. Ein Host schließt auch seine Subdomains ein. Die Websuche selbst wird durch diese Liste nicht eingeschränkt.',
  'settings.search.allowedSitesAllOn':
    'Der Assistent kann jede öffentliche Website öffnen. Lokale und private Adressen bleiben gesperrt.',
  'settings.search.allowedSitesPlaceholder': 'reuters.com\napnews.com\ngithub.com',
  'settings.search.allowedSitesSave': 'Speichern Sie Websites',
  'settings.search.accessModeAria': 'Webzugriffsmodus',
  'settings.search.accessAllowAll': 'Alles zulassen',
  'settings.search.accessCustom': 'Angepasst',
  'settings.search.accessBlockAll': 'Alle blockieren',
  'settings.search.accessBlockAllHint':
    'Der gesamte Webzugriff ist blockiert – der Assistent kann keine Website öffnen oder lesen.',
  // ─── Settings global search bar ────────────────────────────
  'settings.settingsSearch.placeholder': 'Einstellungen durchsuchen…',
  'settings.settingsSearch.ariaLabel': 'Einstellungen durchsuchen',
  'settings.settingsSearch.clear': 'Suche löschen',
  'settings.settingsSearch.resultsLabel': 'Suchergebnisse',
  'settings.settingsSearch.noResults': 'Keine Einstellungen für „{query}“ gefunden',
  'settings.embeddings.title': 'Einbettungen',
  'settings.embeddings.description':
    'Wählen Sie den Embedding-Anbieter, der Erinnerungen in Vektoren für die semantische Suche umwandelt. Das Ändern des Anbieters, Modells oder der Dimensionen macht gespeicherte Vektoren ungültig und erfordert einen vollständigen Speicher-Reset.',
  'settings.embeddings.providerAria': 'Embedding-Anbieter',
  'settings.embeddings.statusConfigured': 'Konfiguriert',
  'settings.embeddings.statusNeedsKey': 'API-Schlüssel benötigt',
  'settings.embeddings.requiresSignIn': 'OpenHuman-Anmeldung erforderlich',
  'settings.embeddings.managedLoginRequired':
    'Verwaltete Einbettungen erfordern eine OpenHuman-Anmeldung. Melde dich an, um das OpenHuman-Backend zu verwenden.',
  'settings.embeddings.managedBannerIntro':
    'Verwaltete Einbettungen laufen über das OpenHuman-Backend und erfordern eine OpenHuman-Kontositzung.',
  'settings.embeddings.managedBannerLocalSession':
    'Beende die lokale Sitzung und melde dich an, um diesen Anbieter zu verwenden, oder wechsle zu einem lokalen oder eigenen Einbettungsanbieter.',
  'settings.embeddings.managedBannerRemoteSession':
    'Melde dich erneut an, um deine OpenHuman-Sitzung zu aktualisieren, oder wechsle zu einem lokalen oder eigenen Einbettungsanbieter.',
  'settings.embeddings.signInAgain': 'Erneut anmelden',
  'settings.embeddings.apiKeyLabel': '{provider} API-Schlüssel',
  'settings.embeddings.placeholderStored': '•••••••• (gespeichert)',
  'settings.embeddings.placeholderKey': 'API-Schlüssel einfügen…',
  'settings.embeddings.keyStoredEncrypted':
    'Ihr API-Schlüssel wird verschlüsselt auf diesem Gerät gespeichert.',
  'settings.embeddings.show': 'Anzeigen',
  'settings.embeddings.hide': 'Verbergen',
  'settings.embeddings.save': 'Speichern',
  'settings.embeddings.clear': 'Löschen',
  'settings.embeddings.model': 'Modell',
  'settings.embeddings.dimensions': 'Dimensionen',
  'settings.embeddings.customEndpoint': 'Benutzerdefinierter Endpunkt',
  'settings.embeddings.customModelPlaceholder': 'Modellname',
  'settings.embeddings.customDimsPlaceholder': 'Dim.',
  'settings.embeddings.applyCustom': 'Anwenden',
  'settings.embeddings.testConnection': 'Verbindung testen',
  'settings.embeddings.testing': 'Wird getestet…',
  'settings.embeddings.testSuccess': 'Verbunden — {dims} Dimensionen',
  'settings.embeddings.connectionTestFailed': 'Test fehlgeschlagen',
  'settings.embeddings.verifyFallback':
    'Der Embeddings-Endpunkt konnte nicht überprüft werden. Stelle sicher, dass er läuft und ein Embedding-Modell bereitstellt, und speichere erneut.',
  'settings.embeddings.testFailed': 'Fehlgeschlagen: {error}',
  'settings.embeddings.saving': 'Wird gespeichert…',
  'settings.embeddings.saved': 'Gespeichert.',
  'settings.embeddings.errorPrefix': 'Fehlgeschlagen',
  'settings.embeddings.wipeTitle': 'Speichervektoren zurücksetzen?',
  'settings.embeddings.wipeBody':
    'Das Ändern des Embedding-Anbieters, Modells oder der Dimensionen löscht alle gespeicherten Speichervektoren. Der Speicher muss neu aufgebaut werden, bevor die Abfrage wieder funktioniert. Dies kann nicht rückgängig gemacht werden.',
  'settings.embeddings.cancel': 'Abbrechen',
  'settings.embeddings.confirmWipe': 'Löschen & anwenden',
  'settings.embeddings.setupTitle': '{provider} einrichten',
  'settings.embeddings.saveAndSwitch': 'Speichern & wechseln',
  'settings.embeddings.optional': 'optional',
  'settings.embeddings.vectorSearchDisabled':
    'Die Vektorsuche ist deaktiviert. Der Speicherabruf verwendet nur Keyword-Matching und Aktualität — kein semantisches Ranking.',
  'settings.embeddings.clearKey': 'API-Schlüssel löschen',
  'pages.settings.ai.embeddings': 'Einbettungen',
  'pages.settings.ai.embeddingsDesc': 'Vektorkodierungsmodell für den Speicherabruf',
  'mcp.alphaBadge': 'Alpha',
  'mcp.alphaBannerText':
    'Die MCP-Serverunterstützung befindet sich in der frühen Alpha-Phase. Die Registrierung, der Installationsablauf und die Werkzeugverkabelung können sich zwischen den Versionen falsch verhalten oder ihre Form ändern.',
  'mcp.toolList.noTools': 'Keine Tools verfügbar.',
  'mcp.setup.secretDialog.title': 'MCP-Setup – Geben Sie das Geheimnis ein',
  'mcp.setup.secretDialog.bodyPrefix': 'Der MCP-Setup-Agent benötigt',
  'mcp.setup.secretDialog.bodySuffix':
    '. Ihr Wert wird direkt an den Kernprozess gesendet und geht nie in das AI-Gespräch ein.',
  'mcp.setup.secretDialog.inputLabel': 'Wert',
  'mcp.setup.secretDialog.inputPlaceholder': 'Hier einfügen',
  'mcp.setup.secretDialog.show': 'Anzeigen',
  'mcp.setup.secretDialog.hide': 'Ausblenden',
  'mcp.setup.secretDialog.submit': 'Senden',
  'mcp.setup.secretDialog.cancel': 'Abbrechen',
  'mcp.setup.secretDialog.submitting': 'Senden…',
  'mcp.setup.secretDialog.errorPrefix': 'Senden fehlgeschlagen:',
  'mcp.setup.secretDialog.privacyNote':
    'Verschlüsselt in der lokalen MCP-Geheimnistabelle gespeichert. Niemals protokolliert oder an ein Modell gesendet.',
  'devices.betaBadge': 'Beta',
  'devices.betaText':
    'Diese Funktion befindet sich derzeit in der Beta-Phase. Koppele iOS-Geräte mit diesem OpenHuman, um sie als Remote-Client zu verwenden.',
  'devices.comingSoonDescription':
    'Gerätekopplung kommt bald. Diese Seite wird für das Koppeln von iPhones und die Verwaltung verbundener Geräte zuständig sein.',
  'devices.title': 'Geräte',
  'devices.pairIphone': 'iPhone koppeln',
  'devices.noPaired': 'Keine gekoppelten Geräte',
  'devices.emptyState':
    'Scanne einen QR-Code auf deinem iPhone, um es mit dieser OpenHuman-Sitzung zu verbinden.',
  'devices.devicePairedTitle': 'Gerät gekoppelt.',
  'devices.devicePairedMessage': 'iPhone erfolgreich verbunden.',
  'devices.deviceRevokedTitle': 'Gerät widerrufen',
  'devices.deviceRevokedMessage': '{label} entfernt.',
  'devices.revokeFailedTitle': 'Widerruf fehlgeschlagen',
  'devices.online': 'Online',
  'devices.offline': 'Offline',
  'devices.lastSeenNever': 'Nie',
  'devices.lastSeenNow': 'Gerade jetzt',
  'devices.lastSeenMinutes': 'vor {count}m',
  'devices.lastSeenHours': 'vor {count}h',
  'devices.lastSeenDays': 'vor {count}d',
  'devices.revoke': 'Widerrufen',
  'devices.revokeAria': '{label} widerrufen',
  'devices.confirmRevokeTitle': 'Gerät widerrufen?',
  'devices.confirmRevokeBody':
    '{label} kann sich nicht mehr verbinden. Dies kann nicht rückgängig gemacht werden.',
  'devices.loadFailed': 'Geräte konnten nicht geladen werden: {message}',
  'devices.pairModal.title': 'iPhone koppeln',
  'devices.pairModal.loading': 'Kopplungscode wird erzeugt…',
  'devices.pairModal.instructions':
    'Öffne die OpenHuman-App auf deinem iPhone und scanne diesen Code.',
  'devices.pairModal.expiresIn': 'Code läuft in ~{count} Minute ab',
  'devices.pairModal.expiresInPlural': 'Code läuft in ~{count} Minuten ab',
  'devices.pairModal.showDetails': 'Details anzeigen',
  'devices.pairModal.hideDetails': 'Details ausblenden',
  'devices.pairModal.channelId': 'Kanal-ID',
  'devices.pairModal.pairingUrl': 'Kopplung URL',
  'devices.pairModal.expiredTitle': 'QR-Code abgelaufen',
  'devices.pairModal.expiredBody': 'Erzeuge einen neuen Code, um die Kopplung fortzusetzen.',
  'devices.pairModal.generateNewCode': 'Neuen Code erzeugen',
  'devices.pairModal.successTitle': 'iPhone gekoppelt',
  'devices.pairModal.autoClose': 'Wird automatisch geschlossen…',
  'devices.pairModal.errorPrefix': 'Kopplung konnte nicht erstellt werden: {message}',
  'devices.pairModal.errorTitle': 'Etwas ist schiefgelaufen',
  'devices.pairModal.copyUrl': 'Kopieren',
  'mcp.catalog.searchAria': 'MCP-Server-Katalog durchsuchen',
  'mcp.catalog.searchPlaceholder': 'MCP-Server-Katalog durchsuchen...',
  'mcp.catalog.loadFailed': 'Katalog konnte nicht geladen werden',
  'mcp.catalog.noResults': 'Keine Server gefunden.',
  'mcp.catalog.noResultsFor': 'Keine Server für „{query}“ gefunden.',
  'mcp.catalog.loadMore': 'Mehr laden',
  'mcp.configAssistant.title': 'Konfigurationsassistent',
  'mcp.configAssistant.empty':
    'Fragen Sie nach Konfiguration, erforderlichen Umgebungsvariablen oder Einrichtungsschritten.',
  'mcp.configAssistant.autoPromptCta': 'Schritt-für-Schritt-Einrichtungshilfe',
  'mcp.configAssistant.suggestedValues': 'Vorgeschlagene Werte:',
  'mcp.configAssistant.valueHidden': '(Wert ausgeblendet)',
  'mcp.configAssistant.applySuggested': 'Vorgeschlagene Werte anwenden',
  'mcp.configAssistant.reinstallHint': 'Neuinstallation mit diesen Werten, um sie anzuwenden.',
  'mcp.configAssistant.thinking': 'Nachdenken...',
  'mcp.configAssistant.inputPlaceholder':
    'Stellen Sie eine Frage (Eingabetaste zum Senden, Umschalt+Eingabetaste für Zeilenumbruch)',
  'mcp.configAssistant.send': 'Senden',
  'mcp.configAssistant.failedResponse': 'Es konnte keine Antwort erhalten werden',
  'mcp.toolList.availableSingular': '{count} Tool verfügbar',
  'mcp.toolList.availablePlural': '{count} Tools verfügbar',
  'mcp.toolList.tryTool': 'Versuchen',
  'mcp.toolList.tryToolAria': 'Ausführungsspielplatz für {name} öffnen',
  'mcp.playground.title': 'Führen Sie {name} aus',
  'mcp.playground.close': 'Naher Spielplatz',
  'mcp.playground.inputSchema': 'Eingabeschema',
  'mcp.playground.argsLabel': 'Argumente (JSON)',
  'mcp.playground.argsHelp':
    'Geben Sie JSON entsprechend dem Eingabeschema ein. Leere Eingaben werden als {} behandelt.',
  'mcp.playground.runShortcut': '⌘/Strg + Eingabetaste zum Ausführen',
  'mcp.playground.format': 'Format',
  'mcp.playground.invalidJson': 'Ungültiger JSON',
  'mcp.playground.run': 'Werkzeug ausführen',
  'mcp.playground.running': 'Läuft…',
  'mcp.playground.result': 'Ergebnis',
  'mcp.playground.resultError': 'Das Tool hat einen Fehler zurückgegeben',
  'mcp.playground.copyResult': 'Ergebnis kopieren',
  'mcp.playground.copied': 'Kopiert',
  'mcp.playground.history': 'Geschichte',
  'mcp.playground.historyEmpty': 'Noch keine Aufrufe in dieser Sitzung.',
  'mcp.playground.historyLoad': 'Laden',
  'mcp.playground.unexpectedError': 'Unerwarteter Fehler beim Aufrufen des Tools.',
  'mcp.catalog.deployed': 'Bereitgestellt',
  'mcp.catalog.installCount': '{count} installiert',
  'app.update.dismissNotification': 'Update-Benachrichtigung verwerfen',
  'bootCheck.rpcAuthSuffix': 'bei jedem RPC.',
  'app.localAiDownload.expandAria': 'Download-Fortschritt erweitern',
  'app.localAiDownload.collapseAria': 'Download-Fortschritt reduzieren',
  'app.localAiDownload.dismissAria': 'Download-Benachrichtigung verwerfen',
  'mobile.nav.ariaLabel': 'Mobile Navigation',
  'progress.stepsAria': 'Fortschrittsschritte',
  'progress.stepAria': 'Schritt {current} von {total}',
  'workspace.vaultsTitle': 'Wissensdepots',
  'workspace.vaultsDesc':
    'Zeigen Sie auf einen lokalen Ordner; Dateien werden aufgeteilt und in den Speicher gespiegelt.',
  'calls.title': 'Anrufe',
  'calls.comingSoonBody': 'KI-gestützte Anrufe folgen bald. Bleiben Sie dran.',
  'art.rotatingTetrahedronAria': 'Rotierendes umgekehrtes Tetraeder-Raumschiff',
  'mcp.installed.title': 'Installiert',
  'mcp.installed.browseCatalog': 'Katalog durchsuchen',
  'mcp.installed.empty': 'Noch keine MCP-Server installiert.',
  'mcp.installed.toolSingular': '{count}-Tool',
  'mcp.installed.toolPlural': '{count}-Tools',
  'mcp.health.title': 'Gesundheit',
  'mcp.health.summaryAria': 'Zusammenfassung des MCP-Verbindungszustands',
  'mcp.health.connectedCount': '{count} verbunden',
  'mcp.health.connectingCount': '{count} verbinden',
  'mcp.health.errorCount': '{count}-Fehler',
  'mcp.health.disconnectedCount': '{count} im Leerlauf',
  'mcp.health.retryAll': 'Alles erneut versuchen ({count})',
  'mcp.health.retryAllAria':
    'Versuchen Sie es erneut mit allen {count}-Fehlern auf den MCP-Servern',
  'mcp.health.disconnectAll': 'Alle trennen ({count})',
  'mcp.health.disconnectAllAria': 'Trennen Sie alle mit {count} verbundenen MCP-Server',
  'mcp.health.disconnectConfirm.title': 'Alle MCP-Server trennen?',
  'mcp.health.disconnectConfirm.body':
    'Dadurch werden {count} aktuell verbundene MCP-Server getrennt. Installierte Konfigurationen und Geheimnisse bleiben erhalten; Sie können jeden Server später wieder verbinden.',
  'mcp.health.disconnectConfirm.cancel': 'Stornieren',
  'mcp.health.disconnectConfirm.confirm': 'Trennen Sie alle',
  'mcp.health.opErrorGeneric': 'Der Massenvorgang ist fehlgeschlagen. Siehe Protokolle.',
  'mcp.health.bulkPartialFailure': '{failed} von {total} Servern fehlgeschlagen. Siehe Protokolle.',
  'mcp.installed.search.landmarkAria': 'Durchsuchen Sie installierte MCP-Server',
  'mcp.installed.search.inputAria': 'Filtern Sie installierte MCP-Server nach Namen',
  'mcp.installed.search.placeholder': 'Server filtern…',
  'mcp.installed.search.clearAria': 'Filter löschen',
  'mcp.installed.search.countMatches': '{shown} von {total}-Servern',
  'mcp.installed.search.noMatches': 'Kein Server entspricht „{query}“.',
  'mcp.inventory.openButton': 'Inventar',
  'mcp.inventory.openAria': 'Öffnen Sie das gemeinsam nutzbare MCP-Inventarfenster',
  'mcp.inventory.title': 'Gemeinsam nutzbares MCP-Inventar',
  'mcp.inventory.subtitle':
    'Exportieren Sie Ihre installierten MCP-Server als tragbares, geheimnisfreies Manifest oder importieren Sie eines von einem Teamkollegen. Geheime Umgebungswerte werden niemals einbezogen oder importiert.',
  'mcp.inventory.close': 'Inventarfenster schließen',
  'mcp.inventory.tablistAria': 'Inventarabschnitte',
  'mcp.inventory.tab.export': 'Export',
  'mcp.inventory.tab.import': 'Import',
  'mcp.inventory.export.empty':
    'Noch sind keine MCP-Server installiert – nichts zum Exportieren. Installieren Sie zuerst eines aus dem Katalog.',
  'mcp.inventory.export.privacyTitle': 'Was in diesem Manifest steht',
  'mcp.inventory.export.privacyBody':
    'Servernamen, qualifizierte Namen, SCHLÜSSELNAMEN der Umgebungsvariablen und nur nicht geheime Konfigurationen. Geheime Werte, Ihre Maschinenkennungen und Zeitstempel pro Installation werden absichtlich entfernt.',
  'mcp.inventory.export.serverCount': '{count}-Server in diesem Manifest',
  'mcp.inventory.export.copy': 'Kopie',
  'mcp.inventory.export.copied': 'Kopiert',
  'mcp.inventory.export.copyAria': 'Kopieren Sie das Manifest JSON in die Zwischenablage',
  'mcp.inventory.export.download': 'Herunterladen',
  'mcp.inventory.export.downloadAria': 'Laden Sie das Manifest als JSON-Datei herunter',
  'mcp.inventory.import.trustTitle':
    'Behandeln Sie importierte Manifeste als nicht vertrauenswürdigen Code',
  'mcp.inventory.import.trustBody':
    'Ein MCP-Server ist ein Tool, das Sie Ihrem Agenten zur Verfügung stellen. Importieren Sie Manifeste nur aus Quellen, denen Sie vertrauen. Für jede Installation ist Ihr ausdrücklicher Klick erforderlich. nichts wird automatisch installiert.',
  'mcp.inventory.import.pasteLabel': 'Fügen Sie das Manifest JSON ein',
  'mcp.inventory.import.pastePlaceholder':
    'Fügen Sie hier ein Manifest ein oder laden Sie unten eine.json-Datei hoch.',
  'mcp.inventory.import.preview': 'Vorschau',
  'mcp.inventory.import.clear': 'Klar',
  'mcp.inventory.import.uploadFile': 'oder laden Sie eine.json-Datei hoch',
  'mcp.inventory.import.uploadFileAria': 'Laden Sie eine Manifest-JSON-Datei hoch',
  'mcp.inventory.import.fileTooLarge': 'Datei ist zu groß (über 1 MB). Verweigert das Laden.',
  'mcp.inventory.import.fileReadFailed': 'Datei konnte nicht gelesen werden.',
  'mcp.inventory.import.parseErrorPrefix': 'Manifest konnte nicht analysiert werden:',
  'mcp.inventory.import.previewHeading': 'Vorschau',
  'mcp.inventory.import.previewCounts':
    '{total}-Server – {newly} neu, {already} bereits installiert',
  'mcp.inventory.import.previewEmpty': 'Manifest enthält keine Server.',
  'mcp.inventory.import.exportedFrom': 'Exportiert aus {exporter}',
  'mcp.inventory.import.exportedAt': 'bei {when}',
  'mcp.inventory.import.statusNew': 'Neu',
  'mcp.inventory.import.statusAlreadyInstalled': 'Bereits installiert',
  'mcp.inventory.import.envKeysLabel': 'Env-Schlüssel',
  'mcp.inventory.import.install': 'Installieren',
  'mcp.inventory.import.installAria': 'Installieren Sie {name} von diesem Manifest',
  'mcp.inventory.import.skipped': 'skipped',
  'mcp.inventory.parseError.empty': 'Manifest ist leer.',
  'mcp.inventory.parseError.invalidJson': 'Ungültiger JSON.',
  'mcp.inventory.parseError.rootNotObject':
    'Das Manifest muss ein JSON-Objekt im Stammverzeichnis sein.',
  'mcp.inventory.parseError.unsupportedSchema':
    'Nicht unterstütztes Manifestschema – diese Datei wurde nicht von einem kompatiblen Exporter erstellt.',
  'mcp.inventory.parseError.missingExportedAt': 'Fehlendes oder ungültiges `exported_at`-Feld.',
  'mcp.inventory.parseError.missingExportedBy': 'Fehlendes oder ungültiges `exported_by`-Feld.',
  'mcp.inventory.parseError.invalidServers': 'Fehlendes oder ungültiges `servers`-Array.',
  'mcp.inventory.parseError.serverNotObject': 'Ein Servereintrag ist kein Objekt.',
  'mcp.inventory.parseError.serverMissingQualifiedName':
    'Einem Servereintrag fehlt der qualifizierte Name.',
  'mcp.inventory.parseError.serverMissingDisplayName': 'Einem Servereintrag fehlt der Anzeigename.',
  'mcp.inventory.parseError.serverEnvKeysNotArray':
    'Ein Servereintrag verfügt über ein env_keys-Feld, das kein Array von Zeichenfolgen ist.',
  'mcp.inventory.parseError.serverContainsEnv':
    'Ein Servereintrag enthält eine `env`-Wertzuordnung. Den Import verweigern – Manifeste dürfen nur env_keys (Namen) enthalten, niemals geheime Werte.',
  'mcp.inventory.parseError.duplicateQualifiedName':
    'Doppelter qualifizierter Name im Manifest gefunden. Jeder Server darf höchstens einmal vorkommen.',
  'mcp.tab.loading': 'MCP-Server werden geladen...',
  'mcp.tab.emptyDetail': 'Wählen Sie einen Server aus oder durchsuchen Sie den Katalog.',
  'mcp.tab.filter.all': 'Alle',
  'mcp.tab.filter.installed': 'Installiert ({count})',
  'mcp.tab.filter.registry': 'Registrierung',
  'mcp.tab.column.name': 'Name',
  'mcp.tab.column.description': 'Beschreibung',
  'mcp.tab.column.type': 'Typ',
  'mcp.tab.column.author': 'Autor',
  'mcp.tab.column.action': 'Aktion',
  'mcp.tab.transport.hosted': 'Gehostet',
  'mcp.tab.transport.local': 'Stdio',
  'mcp.tab.transportFilter.label': 'Typ',
  'mcp.tab.transportFilter.aria': 'Server nach Transport filtern',
  'mcp.tab.link.website': 'Website',
  'mcp.tab.link.repo': 'Repository',
  'mcp.tab.transport.hostedHint':
    'Läuft auf einem entfernten Server – Anmeldung oder Token wird bei der Installation eingerichtet',
  'mcp.tab.transport.localHint':
    'Läuft auf Ihrem Gerät – benötigt bei der Installation möglicherweise ein Token',
  'mcp.tab.officialBadge': 'Offiziell',
  'mcp.tab.officialHint': 'Offizieller Server des Anbieters',
  'mcp.tab.badge.installed': 'Installiert',
  'mcp.tab.badge.registry': 'Registrierung',
  'mcp.tab.action.manage': 'Verwalten',
  'mcp.tab.aria.viewDetails': 'Details für {name} anzeigen',
  'mcp.tab.aria.installServer': '{name} installieren',
  'mcp.install.loadingDetail': 'Serverdetails werden geladen...',
  'mcp.install.back': 'Zurück',
  'mcp.install.title': 'Installieren Sie {name}',
  'mcp.install.requiredEnv': 'Erforderliche Umgebungsvariablen',
  'mcp.install.enterValue': 'Geben Sie {key} ein',
  'mcp.install.show': 'Zeigen',
  'mcp.install.hide': 'Ausblenden',
  'mcp.install.configLabel': 'Config (optionales JSON)',
  'mcp.install.configPlaceholder': '{"Schlüssel": "Wert"}',
  'mcp.install.missingRequired': '„{key}“ ist erforderlich',
  'mcp.install.invalidJson': 'Konfigurations-JSON ist ungültig. JSON',
  'mcp.install.failedDetail': 'Fehler beim Laden der Serverdetails',
  'mcp.install.failedInstall': 'Installation fehlgeschlagen',
  'mcp.install.button': 'Installation',
  'mcp.install.installing': 'Installation...',
  'mcp.install.by': 'von',
  'mcp.install.useCount': '{count} Installationen',
  'mcp.install.connections': 'Verfügbare Verbindungen',
  'mcp.install.published': 'veröffentlicht',
  'mcp.install.configureAndInstall': 'Konfigurieren & installieren',
  'mcp.install.configureTitle': '{name} konfigurieren',
  'mcp.install.advancedConfig': 'Erweiterte Konfiguration',
  'mcp.detail.suggestedEnvReady': 'Vorgeschlagene Umgebungswerte bereit',
  'mcp.detail.suggestedEnvBody':
    'Installieren Sie diesen Server mit den vorgeschlagenen Werten neu, um sie anzuwenden: {keys}',
  'mcp.detail.connect': 'Verbinden',
  'mcp.detail.connecting': 'Verbinden ...',
  'mcp.detail.authenticate': 'Anmelden',
  'mcp.detail.authRequired':
    'Dieser Server erfordert, dass Sie sich anmelden oder ein Zugriffstoken hinzufügen, bevor er eine Verbindung herstellen kann. Klicken Sie auf „Anmelden“, um sich zu authentifizieren.',
  'mcp.detail.disconnect': 'Trennen',
  'mcp.detail.hideAssistant': 'Ausblenden Assistent',
  'mcp.detail.helpConfigure': 'Helfen Sie mir bei der Konfiguration',
  'mcp.detail.confirmUninstall': 'Deinstallation bestätigen?',
  'mcp.detail.confirmUninstallAction': 'Ja, deinstallieren',
  'mcp.detail.uninstall': 'Deinstallieren',
  'mcp.detail.envVars': 'Umgebungsvariablen',
  'mcp.detail.reconfigure': 'Neu konfigurieren',
  'mcp.detail.reconfigureHint':
    'Geben Sie neue Werte für jede Variable ein und stellen Sie die Verbindung wieder her. Dadurch werden die gespeicherten Werte ersetzt.',
  'mcp.detail.saveReconnect': 'Speichern und neu verbinden',
  'mcp.detail.reconfigureSaving': 'Wird gespeichert…',
  'mcp.detail.reconfigureSuccess': 'Umgebung aktualisiert und neu verbunden.',
  'mcp.detail.reconfigureReconnectFailed':
    'Gespeichert, aber das Neuverbinden mit den neuen Werten ist fehlgeschlagen.',
  'mcp.detail.enable': 'Aktivieren',
  'mcp.detail.disable': 'Deaktivieren',
  'mcp.status.disabled': 'Deaktiviert',
  'mcp.status.unauthorized': 'Anmeldung erforderlich',
  'mcp.detail.tools': 'Werkzeuge',
  'mcp.connectAuth.title': '{name} verbinden',
  'mcp.connectAuth.hint':
    'Fügen Sie die für diesen Server erforderliche Authentifizierung hinzu und verbinden Sie sich dann. Tokens werden verschlüsselt gespeichert. Bei Servern ohne Authentifizierung leer lassen.',
  'mcp.connectAuth.requiredLabel': 'Erforderlich',
  'mcp.connectAuth.customHeadersLabel': 'Benutzerdefinierte Header',
  'mcp.connectAuth.customHeadersEmpty':
    'Keine benutzerdefinierten Header. Fügen Sie einen hinzu, wenn dieser Server einen Authentifizierungs-Header benötigt, den die Registry nicht angegeben hat.',
  'mcp.connectAuth.addHeader': '+ Header hinzufügen',
  'mcp.connectAuth.headerName': 'Header-Name',
  'mcp.connectAuth.headerValue': 'Wert',
  'mcp.connectAuth.removeHeader': 'Header entfernen',
  'mcp.connectAuth.howToGetToken': 'Hilfe & Einrichtung',
  'mcp.connectAuth.tokenProvider': 'Token beziehen von:',
  'mcp.connectAuth.findToken': 'Wo erhalte ich das Token?',
  'mcp.connectAuth.hideHelp': 'Hilfe ausblenden',
  'mcp.connectAuth.schemeLabel': 'Wie der Wert gesendet wird',
  'mcp.connectAuth.schemeBearer': 'Bearer',
  'mcp.connectAuth.schemeRaw': 'Keine',
  'mcp.connectAuth.reconnectFailed':
    'Anmeldedaten gespeichert, aber die Verbindung ist fehlgeschlagen.',
  'mcp.connectAuth.oauthHint':
    'Dieser Server verwendet OAuth. Melden Sie sich über Ihren Browser an, um OpenHuman zu autorisieren.',
  'mcp.connectAuth.signIn': 'Im Browser anmelden',
  'mcp.connectAuth.oauthWaiting': 'Warten auf Anmeldung…',
  'mcp.connectAuth.oauthOrToken':
    'Sie haben bereits ein Zugriffstoken? Fügen Sie es stattdessen unten als Authorization-Header ein.',
  'mcp.connectAuth.oauthTimeout':
    'Zeitüberschreitung beim Warten auf die Browser-Anmeldung. Versuchen Sie es erneut.',
  'mcp.connectAuth.authError.oauthRequired':
    'Dieser Server verwendet OAuth. Nutzen Sie “Im Browser anmelden” — ein eingefügtes Token wird nicht akzeptiert.',
  'mcp.connectAuth.authError.tokenRejected':
    'Der Server hat dieses Token abgelehnt. Prüfen Sie, ob es korrekt ist und nicht abgelaufen ist.',
  'mcp.connectAuth.authError.credentialRequired':
    'Dieser Server erfordert eine Authentifizierung. Fügen Sie ein Token hinzu oder melden Sie sich an.',
  'onboarding.skipForNow': 'Vorerst überspringen',
  'onboarding.localAI.continueWithCloud': 'Fahren Sie mit der Cloud fort.',
  'onboarding.localAI.useLocalAnyway':
    'Trotzdem lokale KI verwenden (für dieses Gerät nicht empfohlen)',
  'onboarding.localAI.useLocalInstead': 'Stattdessen lokale KI verwenden (Ollama jetzt verbinden)',
  'onboarding.localAI.setupIssue': 'Beim Einrichten der lokalen KI ist ein Problem aufgetreten.',
  'autonomy.title': 'Agentenautonomie',
  'autonomy.maxActionsLabel': 'Maximale Aktionen pro Stunde',
  'autonomy.maxActionsHelp':
    'Maximale Anzahl von Tool-Aktionen, die ein Agent pro rollierender Stunde ausführen darf. Der neue Wert gilt ab dem nächsten Chat. Cron-Jobs und Kanal-Listener behalten ihr aktuelles Limit, bis OpenHuman neu gestartet wird.',
  'autonomy.statusSaving': 'Wird gespeichert…',
  'autonomy.statusSaved': 'Gespeichert.',
  'autonomy.statusFailed': 'Fehlgeschlagen',
  'autonomy.unlimitedNote': 'Unbegrenzt – Ratenbegrenzung deaktiviert.',
  'autonomy.invalidIntegerMsg':
    "Muss eine positive ganze Zahl sein (für kein Limit das Preset 'Unbegrenzt' verwenden).",
  'autonomy.presetUnlimited': 'Unbegrenzt (Standard)',
  'triggers.toggleFailed': '{action} fehlgeschlagen für {trigger}: {message}',
  'settings.ai.overview': 'Übersicht über das KI-System',
  'settings.ai.configStatus': 'Konfigurationsstatus',
  'settings.ai.fallbackMode': 'Fallback-Modus',
  'settings.ai.loadedFromRuntime': 'Aus Runtime geladen',
  'settings.ai.loadingDuration': 'Ladedauer',
  'settings.ai.localRuntime': 'Lokale Modelllaufzeit',
  'settings.ai.openManager': 'Öffne den Manager',
  'settings.ai.retryDownload': 'Versuche den Download erneut',
  'settings.ai.state': 'Staat',
  'settings.ai.targetModel': 'Zielmodell',
  'settings.ai.download': 'Herunterladen',
  'settings.ai.localModelUnavailable': 'Lokaler Modellstatus nicht verfügbar.',
  'settings.ai.soulConfig': 'SOUL Persona-Konfiguration',
  'settings.ai.refreshing': 'Erfrischend...',
  'settings.ai.refreshSoul': 'SOUL aktualisieren',
  'settings.ai.loadingSoul': 'SOUL-Konfiguration wird geladen...',
  'settings.ai.identity': 'Identität',
  'settings.ai.personality': 'Persönlichkeit',
  'settings.ai.safetyRules': 'Sicherheitsregeln',
  'settings.ai.source': 'Quelle',
  'settings.ai.loaded': 'Geladen',
  'settings.ai.toolsConfig': 'TOOLS Konfiguration',
  'settings.ai.refreshTools': 'TOOLS aktualisieren',
  'settings.ai.toolsAvailable': 'Verfügbare Werkzeuge',
  'settings.ai.tools': 'Werkzeuge',
  'settings.ai.activeSkills': 'Aktive Fähigkeiten',
  'settings.ai.skills': 'Fähigkeiten',
  'settings.ai.skillsOverview': 'Überblick über die Fähigkeiten',
  'settings.ai.refreshingAll': 'Alles erfrischen...',
  'settings.ai.refreshAll': 'Aktualisiere alle AI-Konfigurationen',
  'settings.notifications.suppressAll': 'Alle Benachrichtigungen unterdrücken',
  'settings.notifications.suppressAllDesc':
    'Blockiere alle Betriebssystem-Benachrichtigungs-Toasts von eingebetteten Apps, unabhängig vom Fokusstatus.',
  'settings.notifications.toggleDnd': 'Schalte „Bitte nicht stören“ um',
  'settings.notifications.categories': 'Kategorien',
  'settings.notifications.categoryFooter':
    'Durch das Deaktivieren einer Kategorie wird verhindert, dass neue Benachrichtigungen dieses Typs im Benachrichtigungscenter angezeigt werden. Vorhandene Benachrichtigungen bleiben bestehen, bis sie gelöscht werden.',
  'settings.billing.movedToWeb': 'Die Abrechnung wurde ins Internet verlagert',
  'settings.billing.openDashboard': 'Abrechnungs-Dashboard öffnen',
  'settings.billing.movedToWebDesc':
    'Abonnementänderungen, Zahlungsmethoden, Gutschriften und Rechnungen werden jetzt bei TinyHumans im Internet verwaltet.',
  'settings.billing.backToSettings': 'Zurück zu den Einstellungen',
  'settings.billing.openingBrowser': 'Öffne deinen Browser...',
  'settings.billing.browserNotOpen':
    'Wenn dein Browser nicht geöffnet wurde, verwende die Schaltfläche oben.',
  'settings.billing.browserOpenFailed':
    'Der Browser konnte nicht automatisch geöffnet werden. Nutze den Button oben.',
  'settings.tools.chooseCapabilities':
    'Wähle aus, welche Funktionen OpenHuman in deinem Namen nutzen kann.',
  'settings.tools.saveChanges': 'Änderungen speichern',
  'settings.tools.preferencesSaved': 'Einstellungen gespeichert',
  'settings.tools.saveFailed':
    'Einstellungen konnten nicht gespeichert werden. Versuche es erneut.',
  'settings.screenAwareness.mode': 'Modus',
  'settings.screenAwareness.allExceptBlacklist': 'Alle außer Blacklist',
  'settings.screenAwareness.whitelistOnly': 'Nur Whitelist',
  'settings.screenAwareness.screenMonitoring': 'Bildschirmüberwachung',
  'settings.screenAwareness.saveSettings': 'Einstellungen speichern',
  'settings.screenAwareness.session': 'Sitzung',
  'settings.screenAwareness.status': 'Status',
  'settings.screenAwareness.active': 'Aktiv',
  'settings.screenAwareness.stopped': 'Angehalten',
  'settings.screenAwareness.remaining': 'Übrig',
  'settings.screenAwareness.startSession': 'Sitzung starten',
  'settings.screenAwareness.stopSession': 'Sitzung beenden',
  'settings.screenAwareness.analyzeNow': 'Jetzt analysieren',
  'settings.screenAwareness.macosOnly':
    'Die Desktop-Erfassung und Berechtigungssteuerung von Screen Awareness wird derzeit nur auf macOS unterstützt.',
  'connections.comingSoon': 'Kommt bald',
  'connections.setUp': 'Einrichten',
  'connections.configured': 'Konfiguriert',
  'connections.unavailable': 'Nicht verfügbar',
  'connections.checking': 'Überprüfen…',
  'connections.walletConfigured':
    'Lokale EVM-, BTC-, Solana- und Tron-Identitäten werden anhand deiner Wiederherstellungsphrase konfiguriert.',
  'connections.walletReady':
    'Richte lokale EVM-, BTC-, Solana- und Tron-Identitäten aus einer Wiederherstellungsphrase ein.',
  'connections.walletError':
    'Der Wallet-Status konnte nicht überprüft werden. Tippe im Bedienfeld „Wiederherstellungsphrase“ auf , um es noch einmal zu versuchen.',
  'connections.walletChecking': 'Wallet-Status wird überprüft...',
  'connections.walletIdentities': 'Wallet-Identitäten',
  'connections.walletDerived':
    'Wird lokal von deiner Wiederherstellungsphrase abgeleitet und nur als sichere Metadaten gespeichert.',
  'connections.privacySecurity': 'Datenschutz und Sicherheit',
  'connections.privacySecurityDesc':
    'Alle Daten und Anmeldeinformationen werden lokal mit einer Null-Datenaufbewahrungsrichtlinie gespeichert. Deine Daten werden verschlüsselt und niemals an Dritte weitergegeben.',
  'channels.status.connecting': 'Verbinden',
  'channels.status.notConfigured': 'Nicht konfiguriert',
  'channels.noActiveRoute': 'Keine aktive Route',
  'channels.activeRoute': 'Aktive Route',
  'channels.loadingDefinitions': 'Kanaldefinitionen werden geladen...',
  'channels.channelConnections': 'Kanalverbindungen',
  'channels.configureAuthModes': 'Konfiguriere Authentifizierungsmodi für jeden Nachrichtenkanal.',
  'channels.configNotAvailable': 'Konfiguration für',
  'channels.channel': 'Kanal',
  'devOptions.coreModeNotSet': 'Kernmodus: nicht eingestellt',
  'devOptions.coreModeNotSetDesc':
    'Der Boot-Check-Picker wurde noch nicht bestätigt. Verwende den Umschaltmodus in der Auswahl, um „Lokal“ oder „Cloud“ auszuwählen.',
  'devOptions.local': 'Lokal',
  'devOptions.embeddedCoreSidecar': 'Eingebetteter Core-Sidecar',
  'devOptions.sidecarSpawned': 'Wird prozessintern von der Tauri-Shell beim App-Start erzeugt.',
  'devOptions.cloud': 'Wolke',
  'devOptions.remoteCoreRpc': 'Remote-Kern RPC',
  'devOptions.token': 'Token',
  'devOptions.tokenNotSet': 'nicht gesetzt – RPC wird 401',
  'devOptions.triggerSentryTest': 'Trigger Sentry Test (Staging)',
  'devOptions.triggerSentryTestDesc':
    'Löst einen getaggten Fehler aus, um die Sentry-Pipeline zu überprüfen. Problem Nr. 1072 – nach Überprüfung entfernen.',
  'devOptions.sendTestEvent': 'Testereignis senden',
  'devOptions.sending': 'Senden…',
  'devOptions.eventSent': 'Ereignis gesendet',
  'devOptions.sentryDisabled': '(keine ID – Sentry in diesem Build deaktiviert)',
  'devOptions.failed': 'Fehlgeschlagen',
  'devOptions.appLogs': 'App-Protokolle',
  'devOptions.appLogsDesc':
    'Öffne den Ordner mit den fortlaufenden täglichen Protokolldateien. Hänge die aktuellste Datei an, wenn du ein Problem meldest.',
  'devOptions.openLogsFolder': 'Öffne den Protokollordner',
  'mnemonic.phraseSaved': 'Wiederherstellungsphrase gespeichert',
  'mnemonic.walletReady':
    'Multi-Chain-Wallet-Identitäten sind bereit. Zurück zu den Einstellungen...',
  'mnemonic.writeDownWords': 'Schreibe diese auf',
  'mnemonic.wordsInOrder':
    'Sortiere die Wörter in der richtigen Reihenfolge und bewahre sie an einem sicheren Ort auf. Dieser Satz sichert deinen lokalen Verschlüsselungsschlüssel und deine EVM-, BTC-, Solana- und Tron-Wallet-Identitäten.',
  'mnemonic.cannotRecover':
    'Dieser Satz kann bei Verlust niemals wiederhergestellt werden und sollte vollständig lokal auf deinem Gerät bleiben.',
  'mnemonic.copyToClipboard': 'In die Zwischenablage kopieren',
  'mnemonic.alreadyHavePhrase': 'Ich habe bereits einen Wiederherstellungssatz',
  'mnemonic.consentSaved':
    'Ich habe diesen Satz gespeichert und bin damit einverstanden, ihn für die lokale Wallet-Einrichtung zu verwenden',
  'mnemonic.enterPhraseToRestore':
    'Gib unten deine Wiederherstellungsphrase ein, um deine lokalen Wallet-Identitäten wiederherzustellen, oder füge die vollständige Phrase in ein beliebiges Feld ein (12 Wörter für neue Backups; 24-Wort-Phrasen aus älteren Versionen funktionieren weiterhin).',
  'mnemonic.words': 'Worte',
  'mnemonic.validPhrase': 'Gültige Wiederherstellungsphrase',
  'mnemonic.generateNewPhrase': 'Generiere stattdessen eine neue Wiederherstellungsphrase',
  'mnemonic.securingData': 'Sicherung deiner Daten...',
  'mnemonic.saveRecoveryPhrase': 'Speichere die Wiederherstellungsphrase',
  'mnemonic.userNotLoaded':
    'Benutzer nicht geladen. Bitte melde dich erneut an oder aktualisiere die Seite.',
  'mnemonic.invalidPhrase':
    'Ungültige Wiederherstellungsphrase. Bitte prüfe deine Wörter und versuche es erneut.',
  'mnemonic.somethingWentWrong': 'Etwas ist schief gelaufen. Bitte versuche es erneut.',
  'mnemonic.walletAlreadyConfigured': 'Deine Wallet ist bereits eingerichtet.',
  'mnemonic.walletSource': 'Quelle',
  'mnemonic.walletWordCount': 'Länge der Recovery-Phrase',
  'mnemonic.walletLastUpdated': 'Zuletzt aktualisiert',
  'mnemonic.replaceWallet': 'Wallet ersetzen',
  'mnemonic.replaceWalletWarning':
    'Dies wird deine aktuelle Wallet dauerhaft ersetzen. Stelle sicher, dass du deine Recovery-Phrase gesichert hast, bevor du fortfährst.',
  'mnemonic.replaceWalletConfirm': 'Ich verstehe, meine Wallet ersetzen',
  'mnemonic.loadingWalletStatus': 'Wallet-Status wird geprüft...',
  'mnemonic.viewAccounts': 'Wallet-Konten',
  'mnemonic.revealRecoveryPhrase': 'Wiederherstellungsphrase anzeigen',
  'mnemonic.hidePhrase': 'Phrase ausblenden',
  'team.failedToCreate': 'Team konnte nicht erstellt werden',
  'team.invalidInviteCode': 'Ungültiger oder abgelaufener Einladungscode',
  'team.failedToSwitch': 'Teamwechsel fehlgeschlagen',
  'team.failedToLeave': 'Das Team konnte nicht verlassen werden',
  'team.role.owner': 'Besitzer',
  'team.role.admin': 'Admin',
  'team.role.billingManager': 'Rechnungsmanager',
  'team.role.member': 'Mitglied',
  'team.active': 'Aktiv',
  'team.personalTeam': 'Persönliches Team',
  'team.manageTeam': 'Team verwalten',
  'team.switching': 'Wechsel...',
  'team.switch': 'Wechseln',
  'team.leaving': 'Verlassen...',
  'team.leave': 'Geh',
  'team.yourTeams': 'Deine Teams',
  'team.createNewTeam': 'Neues Team erstellen',
  'team.teamName': 'Teamname',
  'team.creating': 'Erstellen...',
  'team.joinExistingTeam': 'Tritt einem bestehenden Team bei',
  'team.personalAutoCreatedNote':
    'Dein persönliches Team wird automatisch erstellt. Um zusammenzuarbeiten, tritt unten mit einem Einladungscode einem bestehenden Team bei.',
  'team.inviteCode': 'Einladungscode',
  'team.joining': 'Beitritt...',
  'team.join': 'Mach mit',
  'team.leaveTeam': 'Verlasse das Team',
  'team.confirmLeave': 'Bist du sicher, dass du gehen möchtest?',
  'team.leaveWarning':
    'Du verlierst den Zugriff auf das Team und alle Teamressourcen. Du brauchst eine neue Einladung, um wieder beizutreten.',
  'team.management': 'Teammanagement',
  'team.notFound': 'Team nicht gefunden',
  'team.accessDenied': 'Zugriff verweigert',
  'team.members': 'Mitglieder',
  'team.membersDesc': 'Teammitglieder und Rollen verwalten',
  'team.invites': 'Einladungen',
  'team.invitesDesc': 'Einladungscodes generieren und verwalten',
  'team.settings': 'Teameinstellungen',
  'team.settingsDesc': 'Teamnamen und -einstellungen bearbeiten',
  'team.editSettings': 'Teameinstellungen bearbeiten',
  'team.enterName': 'Teamnamen eingeben',
  'team.saving': 'Speichern...',
  'team.saveChanges': 'Speichern Änderungen',
  'team.delete': 'Team löschen',
  'team.deleteDesc': 'Dieses Team dauerhaft löschen',
  'team.deleting': 'Löschen...',
  'team.failedToUpdate': 'Team konnte nicht aktualisiert werden',
  'team.failedToDelete': 'Team konnte nicht gelöscht werden',
  'team.manageTitle': '{name} verwalten',
  'team.planCreated': '{plan} Plan • Erstellt {date}',
  'team.confirmDelete': 'Sind Sie sicher, dass Sie {name} löschen möchten?',
  'team.deleteWarning':
    'Diese Aktion kann nicht rückgängig gemacht werden. Alle Teamdaten werden dauerhaft gelöscht.',
  'voice.title': 'Sprachdiktat',
  'voice.settings': 'Spracheinstellungen',
  'voice.settingsDesc':
    'Halte den Hotkey gedrückt, um zu diktieren und Text in das aktive Feld einzufügen.',
  'voice.hotkey': 'Hotkey',
  'voice.activationMode': 'Aktivierungsmodus',
  'voice.tapToToggle': 'Zum Umschalten tippen',
  'voice.writingStyle': 'Schreibstil',
  'voice.verbatimTranscription': 'Wörtliche Transkription',
  'voice.naturalCleanup': 'Natürliche Reinigung',
  'voice.autoStart': 'Sprachserver automatisch mit dem Core starten',
  'voice.customDictionary': 'Benutzerdefiniertes Wörterbuch',
  'voice.customDictionaryDesc':
    'Füge Namen, Fachbegriffe und Domänenwörter hinzu, um die Erkennungsgenauigkeit zu verbessern.',
  'voice.addWord': 'Füge ein Wort hinzu...',
  'voice.sttDisabled':
    'Das Sprachdiktieren ist deaktiviert, bis das lokale STT-Modell heruntergeladen und bereit ist.',
  'voice.openLocalAiModel': 'Öffne das lokale KI-Modell',
  'voice.serverRestarted': 'Der Sprachserver wurde mit den neuen Einstellungen neu gestartet.',
  'voice.settingsSaved': 'Spracheinstellungen gespeichert.',
  'voice.serverStarted': 'Sprachserver gestartet.',
  'voice.serverStopped': 'Sprachserver gestoppt.',
  'voice.saveVoiceSettings': 'Spracheinstellungen speichern',
  'voice.startVoiceServer': 'Starte den Sprachserver',
  'voice.stopVoiceServer': 'Sprachserver stoppen',
  'voice.debugTitle': 'Sprach-Debug',
  'voice.failedToLoadSettings': 'Spracheinstellungen konnten nicht geladen werden',
  'voice.failedToSaveSettings': 'Spracheinstellungen konnten nicht gespeichert werden.',
  'voice.failedToStartServer': 'Sprachserver konnte nicht gestartet werden.',
  'voice.failedToStopServer': 'Sprachserver konnte nicht gestoppt werden.',
  'voice.sttDisabledPrefix':
    'Spracheingabe ist deaktiviert, bis das lokale STT-Modell heruntergeladen wurde. Verwende die',
  'voice.sttDisabledSuffix': 'oben, um Whisper zu installieren.',
  'voice.debug.failedToLoadVoiceDebugData': 'Sprach-Debug-Daten konnten nicht geladen werden.',
  'voice.debug.settingsSaved': 'Debug-Einstellungen gespeichert.',
  'voice.debug.failedToSaveSettings': 'Spracheinstellungen konnten nicht gespeichert werden.',
  'voice.debug.runtimeStatus': 'Laufzeitstatus',
  'voice.debug.runtimeStatusDesc':
    'Live-Diagnose für den Sprach-Server und die Sprache-zu-Text-Engine.',
  'voice.debug.server': 'Server',
  'voice.debug.unavailable': 'Nicht verfügbar',
  'voice.debug.ready': 'Bereit',
  'voice.debug.notReady': 'Nicht bereit',
  'voice.debug.hotkey': 'Hotkey',
  'voice.debug.notAvailable': 'n/a',
  'voice.debug.mode': 'Modus',
  'voice.debug.transcriptions': 'Transkriptionen',
  'voice.debug.serverError': 'Serverfehler',
  'voice.debug.advancedSettings': 'Erweiterte Einstellungen',
  'voice.debug.advancedSettingsDesc':
    'Niederrangige Abstimmungsparameter für Aufnahme und Stille-Erkennung.',
  'voice.debug.minimumRecordingSeconds': 'Mindestaufzeichnungssekunden',
  'voice.debug.silenceThreshold': 'Ruheschwelle (RMS)',
  'voice.debug.silenceThresholdDesc':
    'Aufnahmen mit Energie unterhalb dieses Wertes werden als Stille behandelt und übersprungen. Niedriger = empfindlicher.',
  'voice.debug.alwaysOn': 'Dauerhaftes Zuhören',
  'voice.debug.alwaysOnDesc':
    'Hält das Mikrofon offen und sendet das Gesagte automatisch an den Agenten, ohne Tastenkürzel. Pausiert, wenn der Bildschirm gesperrt ist.',
  'voice.providers.saved': 'Sprachanbieter gespeichert.',
  'voice.providers.failedToSave': 'Sprachanbieter konnten nicht gespeichert werden.',
  'voice.providers.ellipsis': '…',
  'voice.providers.installing': 'Installiere',
  'voice.providers.installingBusy': 'Installiere…',
  'voice.providers.reinstallLocally': 'Lokal neu installieren',
  'voice.providers.repair': 'Reparieren',
  'voice.providers.retryLocally': 'Lokal erneut versuchen',
  'voice.providers.installLocally': 'Lokal installieren',
  'voice.providers.whisperReady': 'Whisper ist bereit.',
  'voice.providers.whisperInstallStarted': 'Whisper-Installation gestartet',
  'voice.providers.queued': 'in der Warteschlange',
  'voice.providers.failedToInstallWhisper': 'Installation von Whisper fehlgeschlagen',
  'voice.providers.piperReady': 'Piper ist bereit.',
  'voice.providers.piperInstallStarted': 'Piper-Installation gestartet',
  'voice.providers.failedToInstallPiper': 'Installation von Piper fehlgeschlagen',
  'voice.providers.title': 'Sprachanbieter',
  'voice.providers.desc':
    "Wähle, wo Transkription und Synthese ausgeführt werden. Mit den Schaltflächen 'Lokal installieren' werden die Binärdateien und Modelle in den Arbeitsbereich geladen. Lokale Anbieter können vor Abschluss der Installation gespeichert werden – keine manuelle WHISPER_BIN- oder PIPER_BIN-Konfiguration erforderlich.",
  'voice.providers.sttProvider': 'Speech-to-Text-Anbieter',
  'voice.providers.sttProviderAria': 'STT-Anbieter',
  'voice.providers.cloudWhisperProxy': 'Cloud (Whisper-Proxy)',
  'voice.providers.localWhisper': 'Lokales Whisper',
  'voice.providers.installRequired': '(Installation erforderlich)',
  'voice.providers.whisperInstalledTitle': 'Whisper ist installiert. Klicken zum Neuinstallieren.',
  'voice.providers.whisperDownloadTitle':
    'whisper.cpp und das GGML-Modell in den Arbeitsbereich herunterladen.',
  'voice.providers.installed': 'Installiert',
  'voice.providers.installFailed': 'Installation fehlgeschlagen',
  'voice.providers.notInstalled': 'Nicht installiert',
  'voice.providers.whisperModel': 'Whisper-Modell',
  'voice.providers.whisperModelAria': 'Whisper-Modell',
  'voice.providers.whisperModelTiny': 'Tiny (39 MB, am schnellsten)',
  'voice.providers.whisperModelBase': 'Basis (74 MB)',
  'voice.providers.whisperModelSmall': 'Klein (244 MB)',
  'voice.providers.whisperModelMedium': 'Mittel (769 MB, empfohlen)',
  'voice.providers.whisperModelLargeTurbo': 'Groß v3 Turbo (1,5 GB, beste Genauigkeit)',
  'voice.providers.ttsProvider': 'Text-to-Speech-Anbieter',
  'voice.providers.ttsProviderAria': 'TTS-Anbieter',
  'voice.providers.cloudElevenLabsProxy': 'Cloud (ElevenLabs-Proxy)',
  'voice.providers.localPiper': 'Lokaler Piper',
  'voice.providers.piperInstalledTitle': 'Piper ist installiert. Klicken zum Neuinstallieren.',
  'voice.providers.piperDownloadTitle':
    'Piper und die enthaltene Stimme en_US-lessac-medium in den Arbeitsbereich herunterladen.',
  'voice.providers.piperVoice': 'Piper-Stimme',
  'voice.providers.piperVoiceAria': 'Piper Voice',
  'voice.providers.customVoiceOption': 'Andere (unten eingeben)…',
  'voice.providers.customVoiceAria': 'Piper Voice-ID (benutzerdefiniert)',
  'voice.providers.customVoicePlaceholder': 'en_US-lessac-medium',
  'voice.providers.piperVoicesDesc':
    "Stimmen stammen von huggingface.co/rhasspy/piper-voices. Ein Stimmenwechsel erfordert möglicherweise einen Klick auf 'Installieren/Neu installieren', um die neue .onnx-Datei herunterzuladen.",
  'voice.providers.mascotVoice': 'Maskottchen-Stimme',
  'voice.providers.mascotVoiceDescPrefix':
    'Die ElevenLabs-Stimme, die das Maskottchen für gesprochene Antworten verwendet, wird unter',
  'voice.providers.mascotSettings': 'Maskottchen-Einstellungen konfiguriert',
  'voice.providers.mascotVoiceDescSuffix': '.',
  'voice.providers.hotkeyPlaceholder': 'Fn',
  'voice.providers.piperPreset.lessacMedium': 'USA · Lessac (neutral, empfohlen)',
  'voice.providers.piperPreset.lessacHigh': 'USA · Lessac (höhere Qualität, größer)',
  'voice.providers.piperPreset.ryanMedium': 'USA · Ryan (männlich)',
  'voice.providers.piperPreset.amyMedium': 'USA · Amy (weiblich)',
  'voice.providers.piperPreset.librittsHigh': 'USA · LibriTTS (mehrere Sprecher)',
  'voice.providers.piperPreset.alanMedium': 'GB · Alan (männlich)',
  'voice.providers.piperPreset.jennyDiocoMedium': 'GB · Jenny Dioco (weiblich)',
  'voice.providers.piperPreset.northernEnglishMaleMedium': 'GB · Nordenglisch (männlich)',
  'voice.providers.chip.cloud': 'OpenHuman (Verwaltet)',
  'voice.providers.chip.cloudAria': 'Verwalteter OpenHuman-Anbieter ist immer aktiv',
  'voice.providers.chip.whisper': 'Whisper (Lokal)',
  'voice.providers.chip.enableWhisper': 'Lokales Whisper STT aktivieren',
  'voice.providers.chip.disableWhisper': 'Lokales Whisper STT deaktivieren',
  'voice.providers.chip.piper': 'Piper (Lokal)',
  'voice.providers.chip.enablePiper': 'Lokales Piper TTS aktivieren',
  'voice.providers.chip.disablePiper': 'Lokales Piper TTS deaktivieren',
  'voice.providers.chip.enableProvider': 'Enable',
  'voice.providers.chip.disableProvider': 'Disable',
  'voice.providers.chip.apiKeyLabel': 'API-Schlüssel',
  'voice.providers.chip.apiKeyPlaceholder': 'sk-…',
  'voice.providers.chip.comingSoon': 'demnächst verfügbar',
  'voice.modal.title': 'Configure',
  'voice.modal.desc':
    'API-Schlüssel eingeben, um diesen Anbieter zu aktivieren. Die Verbindung kann vor dem Speichern getestet werden.',
  'voice.modal.testKey': 'Schlüssel testen',
  'voice.modal.testing': 'Teste…',
  'voice.modal.saveAndEnable': 'Speichern & aktivieren',
  'voice.modal.enable': 'Enable',
  'voice.modal.whisperDesc':
    'Wähle eine Modellgröße und installiere die Whisper-Binärdatei sowie das GGML-Modell in deinen Arbeitsbereich. Größere Modelle sind genauer, aber langsamer.',
  'voice.modal.piperDesc':
    'Wähle eine Stimme und installiere die Piper-Binärdatei sowie das ONNX-Modell in deinen Arbeitsbereich. Piper läuft vollständig offline mit geringer Latenz.',
  'voice.routing.title': 'Sprach-Routing',
  'voice.routing.desc':
    'Wähle, welche aktivierten Anbieter Sprache-zu-Text und Text-zu-Sprache übernehmen.',
  'voice.routing.save': 'Save',
  'voice.routing.testStt': 'STT testen',
  'voice.routing.testTts': 'TTS testen',
  'voice.routing.elevenlabsVoice': 'ElevenLabs-Stimme',
  'voice.routing.elevenlabsVoiceAria': 'ElevenLabs-Stimmenauswahl',
  'voice.routing.elevenlabsVoiceIdAria': 'ElevenLabs-Stimmen-ID (benutzerdefiniert)',
  'voice.routing.elevenlabsVoiceDesc':
    'Wähle eine kuratierte Stimme oder füge eine benutzerdefinierte Stimmen-ID aus deinem ElevenLabs-Dashboard ein.',
  'voice.externalProviders.title': 'Externe Sprachanbieter',
  'voice.externalProviders.desc':
    'Drittanbieter-STT/TTS-APIs wie Deepgram, ElevenLabs oder OpenAI direkt verbinden.',
  'voice.externalProviders.keySet': 'Schlüssel gesetzt',
  'voice.externalProviders.noKey': 'Kein API-Schlüssel',
  'voice.externalProviders.test': 'Test',
  'voice.externalProviders.testing': 'Teste…',
  'voice.externalProviders.remove': 'Remove',
  'voice.externalProviders.provider': 'Provider',
  'voice.externalProviders.selectProvider': 'Anbieter auswählen…',
  'voice.externalProviders.apiKey': 'API-Schlüssel',
  'voice.externalProviders.apiKeyPlaceholder': 'sk-…',
  'voice.externalProviders.add': 'Add',
  'pttSettings.title': 'Push-to-Talk',
  'pttSettings.description':
    'Halte eine Taste gedrückt, um mit OpenHuman zu sprechen, während du eine andere App nutzt. Loslassen sendet die Aufnahme; wenn „Antworten vorlesen" aktiviert ist, antwortet OpenHuman per Sprachausgabe.',
  'pttSettings.shortcutLabel': 'Tastenkürzel',
  'pttSettings.shortcutPlaceholder': 'Taste drücken (z. B. F13)',
  'pttSettings.shortcutUnsetHint':
    'Push-to-Talk ist aus — wähle ein Tastenkürzel, um es zu aktivieren.',
  'pttSettings.speakRepliesLabel': 'Antworten des Agenten vorlesen',
  'pttSettings.showOverlayLabel': 'Overlay während des Haltens anzeigen',
  'pttSettings.errorConflictsWithDictation':
    'Dieses Tastenkürzel wird bereits für die Diktierfunktion verwendet. Wähle eine andere Taste.',
  'pttSettings.errorModifierOnly':
    'Wähle eine normale Taste (z. B. F13) — reine Modifikator-Kürzel funktionieren bei Push-to-Talk nicht.',
  'pttSettings.errorEmpty': 'Wähle eine Taste zum Binden.',
  'pttSettings.errorAccessibility':
    'macOS benötigt für dieses Tastenkürzel die Bedienungshilfen-Berechtigung. Öffne Systemeinstellungen → Datenschutz & Sicherheit → Bedienungshilfen und aktiviere OpenHuman.',
  'pttSettings.errorShortcutInUse':
    'Eine andere App verwendet dieses Tastenkürzel bereits. Wähle ein anderes.',
  'pttSettings.errorUnsupportedWayland':
    'Wayland-Sitzungen unterstützen globale Tastenkürzel in OpenHuman noch nicht — wechsle zu einer X11-Sitzung oder nutze den In-App-Diktierschalter.',
  'pttSettings.exclusiveFullscreenHint':
    'In exklusivem Vollbild rendert das Overlay nicht — du hörst nur den Hinweiston. Wechsle zu randlosem Vollbild für das Overlay.',
  'pttOverlay.listening': 'Höre zu…',
  'pttOverlay.idle': 'Bereit',
  'autocomplete.title': 'Automatische Vervollständigung',
  'autocomplete.settings': 'Einstellungen',
  'autocomplete.acceptWithTab': 'Mit Tab akzeptieren',
  'autocomplete.stylePreset': 'Stilvoreinstellung',
  'autocomplete.style.balanced': 'Ausgewogen',
  'autocomplete.style.concise': 'Prägnant',
  'autocomplete.style.formal': 'Formell',
  'autocomplete.style.casual': 'Lässig',
  'autocomplete.style.custom': 'Benutzerdefiniert',
  'autocomplete.disabledApps': 'Deaktivierte Apps (ein Bundle/App-Token pro Zeile)',
  'autocomplete.saveSettings': 'Einstellungen speichern',
  'autocomplete.saving': 'Sparen…',
  'autocomplete.runtime': 'Laufzeit',
  'autocomplete.running': 'Laufen',
  'autocomplete.start': 'Starten',
  'autocomplete.stop': 'Stopp',
  'autocomplete.settingsSaved': 'Autovervollständigungseinstellungen gespeichert.',
  'autocomplete.started': 'Die automatische Vervollständigung wurde gestartet.',
  'autocomplete.didNotStart':
    'Die automatische Vervollständigung wurde nicht gestartet. Prüfe, ob es aktiviert ist.',
  'autocomplete.stopped': 'Die automatische Vervollständigung wurde gestoppt.',
  'autocomplete.advancedSettings': 'Erweiterte Einstellungen',
  'autocomplete.debugTitle': 'Autocomplete-Debug',
  'chat.agentChat': 'Agenten-Chat',
  'chat.overrides': 'Überschreibt',
  'chat.model': 'Modell',
  'chat.temperature': 'Temperatur',
  'chat.conversation': 'Gespräch',
  'chat.startAgentConversation': 'Beginne ein Gespräch mit dem Agenten.',
  'chat.you': 'Du',
  'chat.agent': 'Agent',
  'chat.askAgent': 'Frag den Agenten etwas ...',
  'chat.sendMessage': 'Nachricht senden',
  'composio.triageTitle': 'Integrationsauslöser',
  'composio.triageDesc':
    'Wenn er aktiv ist, durchläuft jeder eingehende Composio-Auslöser einen KI-Triage-Schritt, der das Ereignis klassifiziert und möglicherweise automatisierte Aktionen auslöst – eine lokale LLM-Runde pro Auslöser. Deaktiviere die Option global oder pro Integration, wenn du eine manuelle Überprüfung bevorzugst. Wenn die Umgebungsvariable',
  'composio.disableAllTriage': 'Deaktiviere die KI-Triage für alle Auslöser',
  'composio.triggersStillRecorded':
    'Auslöser werden weiterhin im Verlauf aufgezeichnet – es wird kein LLM-Turn ausgeführt.',
  'composio.disableSpecificIntegrations': 'Deaktiviere die KI-Triage für bestimmte Integrationen',
  'composio.settingsSaved': 'Einstellungen gespeichert',
  'composio.saveFailed': 'Speichern fehlgeschlagen. Versuche es erneut.',
  'cron.title': 'Cron-Jobs',
  'cron.scheduledJobs': 'Geplante Jobs',
  'cron.manageCronJobs': 'Verwalte Cron-Jobs über den Kernplaner.',
  'cron.refreshCronJobs': 'Cron-Jobs aktualisieren',
  'localModel.modelStatus': 'Modellstatus',
  'localModel.downloadModels': 'Modelle herunterladen',
  'localModel.usage': 'Nutzung',
  'localModel.usageDesc':
    'Wähle aus, welche Subsysteme auf dem lokalen Modell ausgeführt werden. Alles, was nicht funktioniert, nutzt die Cloud.',
  'localModel.enableRuntime': 'Aktiviere die lokale AI-Laufzeit',
  'localModel.enableRuntimeDesc':
    'Hauptschalter. Standardmäßig deaktiviert – Ollama bleibt inaktiv. Wenn diese Option aktiviert ist, verwenden die Baumzusammenfassung, die Bildschirmintelligenz und die automatische Vervollständigung immer das lokale Modell.',
  'localModel.advancedSettings': 'Erweiterte Einstellungen',
  'localModel.debugTitle': 'Lokales Modell-Debug',
  'screenAwareness.debugTitle': 'Debuggen der Bildschirmerkennung',
  'screenAwareness.debug.debugAndDiagnostics': 'Debug & Diagnose',
  'screenAwareness.debug.collapse': 'Reduzieren',
  'screenAwareness.debug.expand': 'Erweitern',
  'screenAwareness.debug.failedToSave': 'Bildschirmintelligenz konnte nicht gespeichert werden.',
  'screenAwareness.debug.policyTitle': 'Bildschirmintelligenzrichtlinie',
  'screenAwareness.debug.baselineFps': 'Basis-FPS',
  'screenAwareness.debug.useVisionModel': 'Vision-Modell verwenden',
  'screenAwareness.debug.useVisionModelDesc':
    'Screenshots an ein Vision-LLM senden, um reichhaltigeren Kontext zu erhalten. Wenn deaktiviert, wird nur OCR-Text mit einem Text-LLM verwendet – schneller und ohne Vision-Modell.',
  'screenAwareness.debug.keepScreenshots': 'Screenshots behalten',
  'screenAwareness.debug.keepScreenshotsDesc':
    'Aufgenommene Screenshots im Arbeitsbereich speichern, anstatt sie nach der Verarbeitung zu löschen',
  'screenAwareness.debug.allowlist': 'Zulassungsliste (eine Regel pro Zeile)',
  'screenAwareness.debug.denylist': 'Sperrliste (eine Regel pro Zeile)',
  'screenAwareness.debug.saveSettings': 'Bildschirmintelligenzeinstellungen speichern',
  'screenAwareness.debug.sessionStats': 'Sitzungsstatistiken',
  'screenAwareness.debug.framesEphemeral': 'Frames (flüchtig)',
  'screenAwareness.debug.panicStop': 'Panikstopp',
  'screenAwareness.debug.defaultPanicHotkey': 'Befehl+Umschalt+.',
  'screenAwareness.debug.vision': 'Vision',
  'screenAwareness.debug.idle': 'inaktiv',
  'screenAwareness.debug.visionQueue': 'Vision-Warteschlange',
  'screenAwareness.debug.lastVision': 'Letzte Vision',
  'screenAwareness.debug.notAvailable': 'n/a',
  'screenAwareness.debug.visionSummaries': 'Vision-Zusammenfassungen',
  'screenAwareness.debug.refreshing': 'Erfrischend…',
  'screenAwareness.debug.noSummaries': 'Noch keine Zusammenfassungen.',
  'screenAwareness.debug.unknownApp': 'Unbekannte App',
  'screenAwareness.debug.macosOnly':
    'Screen Intelligence V1 wird derzeit nur unter macOS unterstützt.',
  'memory.debugTitle': 'Speicher-Debug',
  'memory.documents': 'Dokumente',
  'memory.filterByNamespace': 'Nach Namespace filtern...',
  'memory.refresh': 'Aktualisieren',
  'memory.noDocumentsFound': 'Keine Dokumente gefunden.',
  'memory.delete': 'Löschen',
  'memory.rawResponse': 'Rohantwort',
  'memory.namespaces': 'Namespaces',
  'memory.noNamespacesFound': 'Keine Namespaces gefunden.',
  'memory.queryRecall': 'Abfrage und Rückruf',
  'memory.namespace': 'Namespace',
  'memory.queryText': 'Abfragetext...',
  'memory.defaultMaxChunks': '10',
  'memory.maxChunks': 'max. Chunks',
  'memory.query': 'Abfrage',
  'memory.recall': 'Rückruf',
  'memory.queryLabel': 'Abfrage',
  'memory.recallLabel': 'Rückruf',
  'memory.queryResult': 'Abfrageergebnis',
  'memory.recallResult': 'Rückrufergebnis',
  'memory.clearNamespace': 'Namespace löschen',
  'memory.clearNamespaceDescription':
    'Alle Dokumente innerhalb eines Namespaces dauerhaft löschen.',
  'memory.selectNamespace': 'Namensraum auswählen...',
  'memory.exampleNamespace': 'z.B. skills:gmail:user@example.com',
  'memory.clear': 'Löschen',
  'memory.deleteConfirm': 'Dokument „{documentId}“ im Namespace „{namespace}“ löschen?',
  'memory.clearNamespaceConfirm':
    'Dadurch werden ALLE Dokumente im Namespace "{namespace}" dauerhaft gelöscht. Fortfahren?',
  'memory.clearNamespaceSuccess': 'Namespace „{namespace}“ gelöscht.',
  'memory.clearNamespaceEmpty': 'In „{namespace}“ gibt es nichts zu löschen.',
  'webhooks.debugTitle': 'Webhooks-Debug',
  'webhooks.failedToLoadDebugData': 'Webhook-Debug-Daten konnten nicht geladen werden.',
  'webhooks.clearLogsConfirm': 'Alle erfassten Webhook-Debug-Protokolle löschen?',
  'webhooks.failedToClearLogs': 'Webhook-Protokolle konnten nicht gelöscht werden.',
  'webhooks.loading': 'Laden...',
  'webhooks.refresh': 'Aktualisieren',
  'webhooks.clearing': 'Löschen...',
  'webhooks.clearLogs': 'Protokolle löschen',
  'webhooks.registered': 'registriert',
  'webhooks.captured': 'erfasst',
  'webhooks.live': 'live',
  'webhooks.disconnected': 'getrennt',
  'webhooks.lastEvent': 'Letztes Ereignis',
  'webhooks.at': 'um',
  'webhooks.registeredWebhooks': 'Registrierte Webhooks',
  'webhooks.noActiveRegistrations': 'Keine aktiven Registrierungen.',
  'webhooks.resolvingBackendUrl': 'Backend wird aufgelöst URL…',
  'webhooks.capturedRequests': 'Erfasste Anfragen',
  'webhooks.noRequestsCaptured': 'Es wurden noch keine Webhook-Anfragen erfasst.',
  'webhooks.unrouted': 'nicht weitergeleitet',
  'webhooks.pending': 'ausstehend',
  'webhooks.requestHeaders': 'Anforderungsheader',
  'webhooks.queryParams': 'Abfrageparameter',
  'webhooks.requestBody': 'Anforderungstext',
  'webhooks.responseHeaders': 'Antwortheader',
  'webhooks.responseBody': 'Antworttext',
  'webhooks.rawPayload': 'Rohnutzlast',
  'webhooks.empty': '[leer]',
  'providerSetup.error.defaultDetails': 'Anbietereinrichtung fehlgeschlagen.',
  'providerSetup.error.providerFallback': 'Der Anbieter',
  'providerSetup.error.credentialsRejected':
    '{provider} hat die Anmeldedaten abgelehnt. API-Schlüssel prüfen und erneut versuchen.',
  'providerSetup.error.endpointNotRecognized':
    '{provider} hat den Endpunkt nicht erkannt. Basis-URL prüfen und erneut versuchen.',
  'providerSetup.error.providerUnavailable':
    '{provider} ist derzeit nicht verfügbar. Erneut versuchen oder den Anbieterstatus prüfen.',
  'providerSetup.error.unreachable':
    '{provider} nicht erreichbar. Endpunkt-URL und Netzwerkverbindung prüfen, dann erneut versuchen.',
  'providerSetup.error.couldNotReachWithMessage': '{provider} nicht erreichbar: {message}',
  'providerSetup.error.technicalDetails': 'Technische Details',
  'notifications.routingTitle': 'Benachrichtigungsweiterleitung',
  'notifications.routing.pipelineStats': 'Pipeline-Statistiken',
  'notifications.routing.total': 'Gesamt',
  'notifications.routing.unread': 'Ungelesen',
  'notifications.routing.unscored': 'Nicht bewertet',
  'notifications.routing.intelligenceTitle': 'Benachrichtigungs-Intelligenz',
  'notifications.routing.intelligenceDesc':
    'Jede Benachrichtigung aus deinen verbundenen Konten wird von einem lokalen KI-Modell bewertet. Wichtige Benachrichtigungen werden automatisch an deinen Orchestrator-Agenten weitergeleitet, damit nichts Kritisches verloren geht.',
  'notifications.routing.howItWorks': 'So funktioniert es',
  'notifications.routing.level.drop': 'Verwerfen',
  'notifications.routing.level.dropDesc': 'Lärm/Spam – gespeichert, aber nicht angezeigt',
  'notifications.routing.level.acknowledge': 'Bestätigen',
  'notifications.routing.level.acknowledgeDesc':
    'Niedrige Priorität – im Benachrichtigungscenter angezeigt',
  'notifications.routing.level.react': 'Reagieren',
  'notifications.routing.level.reactDesc':
    'Mittlere Priorität – löst eine fokussierte Agenten-Antwort aus',
  'notifications.routing.level.escalate': 'Eskalieren',
  'notifications.routing.level.escalateDesc':
    'Hohe Priorität – an Orchestrator-Agenten weitergeleitet',
  'notifications.routing.perProvider': 'Routing pro Anbieter',
  'notifications.routing.threshold': 'Schwellenwert',
  'notifications.routing.routeToOrchestrator': 'Route zum Orchestrator',
  'notifications.routing.loadSettingsError':
    'Einstellungen konnten nicht geladen werden. Panel schließen und erneut öffnen.',
  'common.reload': 'Neu laden',
  'common.skip': 'Überspringen',
  'common.disable': 'Deaktivieren',
  'common.enable': 'Aktivieren',
  'chat.safetyTimeout':
    'Keine Antwort vom Agenten nach 2 Minuten. Versuche es erneut oder prüfe deine Verbindung.',
  'chat.filter.general': 'Allgemein',
  'chat.filter.subconscious': 'Unterbewusstsein',
  'chat.filter.meetings': 'Meetings',
  'chat.filter.tasks': 'Aufgaben',
  'chat.selectThread': 'Wähle einen Thread aus',
  'chat.threads': 'Themen',
  'chat.noThreads': 'Noch keine Threads',
  'chat.noLabelThreads': 'Keine „{label}“-Threads',
  'chat.deleteThread': 'Thread löschen',
  'chat.deleteThreadConfirm': 'Bist du sicher, dass du „{title}“ löschen möchtest?',
  'chat.untitledThread': 'Thread ohne Titel',
  'chat.editThreadTitle': 'Thread-Titel bearbeiten',
  'chat.hideSidebar': 'Seitenleiste ausblenden',
  'chat.showSidebar': 'Seitenleiste anzeigen',
  'chat.searchThreads': 'Unterhaltungen suchen',
  'layout.resizeSidebar': 'Seitenleiste anpassen',
  'layout.showSidebar': 'Seitenleiste anzeigen',
  'chat.newThreadShortcut': 'Neuer Thread (/new)',
  'chat.new': 'Neu',
  'chat.failedToLoadMessages': 'Nachrichten konnten nicht geladen werden',
  'chat.thinkingIteration': 'Denken... ({n})',
  'chat.thinkingDots': 'Denken...',
  'chat.approachingLimit': 'Das Nutzungslimit nähert sich',
  'chat.approachingLimitMsg': 'Du hast {pct} % deines verfügbaren Kontingents verwendet.',
  'chat.upgrade': 'Upgrade',
  'chat.weeklyLimitHit': 'Du hast dein enthaltenes Zyklusbudget aufgebraucht.',
  'chat.resets': 'Zurücksetzen',
  'chat.topUpToContinue': 'Lade Guthaben auf, um fortzufahren.',
  'chat.budgetComplete':
    'Dein enthaltenes Budget ist aufgebraucht. Füge Credits hinzu oder führe ein Upgrade durch, um fortzufahren.',
  'chat.topUp': 'Aufladen',
  'chat.cycle': 'Zyklus',
  'chat.cycleSpent': 'Habe diesen Zyklus verbracht',
  'chat.cycleRemaining': 'Übrig',
  'chat.left': 'links',
  'chat.setup': 'Einrichten',
  'chat.switchToText': 'Wechsle zu Text',
  'chat.superContext.label': 'Super-Kontext',
  'chat.superContext.hint':
    'Super-Kontext ermöglicht OpenHuman, Kontext aus allen verfügbaren Daten zu sammeln und aufzubereiten, um eine hochrelevante Antwort zu liefern. Super-Kontext befindet sich in einer frühen Beta-Phase.',
  'chat.transcribing': 'Transkribieren...',
  'chat.stopAndSend': 'Stoppen und senden',
  'chat.startTalking': 'Sprich los',
  'chat.playingVoiceReply': 'Sprachantwort wird abgespielt',
  'chat.voiceHint': 'Nutze das Mikrofon zum Sprechen',
  'chat.micUnavailable': 'Mikrofon nicht verfügbar',
  'chat.turn': 'drehen',
  'chat.turns': 'dreht sich',
  'chat.openWorkerThread': 'Arbeitsthread öffnen',
  'chat.attachment.attach': 'Bild anhängen',
  'chat.attachment.remove': '{name} entfernen',
  'chat.attachment.tooMany': 'Maximal {max} Bilder pro Nachricht',
  'chat.attachment.tooManyFiles': 'Maximal {max} Dateien pro Nachricht',
  'chat.attachment.tooManyVideos': 'Maximal {max} Videos pro Nachricht',
  'chat.attachment.videoNotSupported':
    'Dieses Modell kann keine Videos lesen. Du kannst die OpenHuman-Stufe „Denkmodus“ verwenden, um dein Video anzuhängen.',
  'chat.attachment.dropToAttach': 'Dateien zum Anhängen ablegen',
  'chat.attachment.tooLarge': 'Bild überschreitet die Größenbeschränkung von {max}',
  'chat.attachment.unsupportedType':
    'Nicht unterstützter Dateityp. Verwenden Sie ein Bild (PNG, JPEG, WebP, GIF, BMP) oder eine PDF-, TXT- oder Markdown-Datei.',
  'chat.attachment.imageNotSupported':
    'Dieses Modell kann keine Bilder lesen. Du kannst die OpenHuman-Stufe „Denkmodus“ verwenden, um dein Bild anzuhängen.',
  'chat.attachment.readFailed': 'Datei konnte nicht gelesen werden',
  'memory.searchAria': 'Speicher durchsuchen',
  'memory.searchPlaceholder': 'Speichereinträge durchsuchen...',
  'memory.sourceFilter.all': 'Alle Quellen',
  'memory.sourceFilter.email': 'E-Mail',
  'memory.sourceFilter.calendar': 'Kalender',
  'memory.sourceFilter.telegram': 'Telegram',
  'memory.sourceFilter.aiInsight': 'KI-Einblick',
  'memory.sourceFilter.system': 'System',
  'memory.sourceFilter.trading': 'Handel',
  'memory.sourceFilter.security': 'Sicherheit',
  'memory.ingestionActivity': 'Einnahmeaktivität',
  'memory.events': 'Ereignisse',
  'memory.event': 'Ereignis',
  'memory.overTheLast': 'im letzten',
  'memory.months': 'Monate',
  'memory.peak': 'Höhepunkt',
  'memory.perDay': '/Tag',
  'memory.less': 'Weniger',
  'memory.more': 'Mehr',
  'memory.on': 'auf',
  'memory.loading': 'Speicher wird geladen',
  'memory.fetching': 'Deine Speichereinträge werden abgerufen...',
  'memory.analyzing': 'Gedächtnis analysieren',
  'memory.analyzingHint': 'Verarbeite deine Erinnerungen, um Erkenntnisse zu gewinnen ...',
  'memory.noMatches': 'Keine Übereinstimmungen gefunden',
  'memory.noMatchesHint': 'Versuche, deine Suchbegriffe oder Filter zu ändern.',
  'memory.allCaughtUp': 'Alles aufgeholt',
  'memory.allCaughtUpHint': 'Es müssen keine neuen Speichereinträge verarbeitet werden.',
  'memory.noAnalysis': 'Noch keine Analyse',
  'memory.noAnalysisHint':
    'Führe eine Analyse durch, um Muster in deinen Erinnerungen zu entdecken.',
  'memory.emptyHint': 'Beginne mit der Interaktion, um deine ersten Erinnerungen zu schaffen.',
  'mic.unavailable': 'Mikrofon ist nicht verfügbar',
  'mic.permissionDenied': 'Mikrofonberechtigung verweigert',
  'mic.failedToStartRecorder': 'Der Rekorder konnte nicht gestartet werden',
  'mic.deviceUnavailable':
    'Ausgewähltes Mikrofon ist nicht verfügbar – versuchen Sie ein anderes Gerät.',
  'mic.deviceInUse': 'Das Mikrofon wird von einer anderen Anwendung verwendet.',
  'mic.error': 'Mikrofonfehler',
  'mic.transcribing': 'Transkribieren...',
  'mic.retryingTranscription': 'Erneuter Versuch… ({attempt} von {max})',
  'mic.tapToSend': 'Zum Senden tippen',
  'mic.waitingForAgent': 'Warten auf Agent...',
  'mic.tapAndSpeak': 'Tippen und sprechen',
  'mic.stopRecording': 'Aufnahme stoppen und senden',
  'mic.startRecording': 'Starte die Aufnahme',
  'mic.deviceSelector': 'Mikrofongerät',
  'mic.tapToSendCountdown': 'Zum Senden tippen ({seconds}s)',
  'token.usageLimitReached': 'Nutzungslimit erreicht',
  'token.approachingLimit': 'Annäherung an die Grenze',
  'token.planClickForDetails': 'Plan – klicke für Details',
  'token.sessionTokens': 'In: {in} | Aus: {out} | Turns: {turns}',
  'token.limit': 'Limit erreicht',
  'token.inLabel': 'EIN',
  'token.outLabel': 'AUS',
  'token.inputTokens': 'Eingabe-Tokens in dieser Sitzung',
  'token.outputTokens': 'Ausgabe-Tokens in dieser Sitzung',
  'token.turnsCount': 'Inferenzrunden in dieser Sitzung',
  'token.turn': 'Runde',
  'token.turns': 'Runden',
  'token.ctxLabel': 'CTX',
  'token.contextWindow': 'Kontextfenster-Nutzung (letzte Runde)',
  'token.cachedLabel': 'Zwischengespeichert',
  'token.costLabel': 'Kosten',
  'token.costTitle': 'Geschätzte Kosten dieser Sitzung (USD)',
  'token.sessionUsageTitle': 'Sitzungsnutzung',
  'token.subAgentsHeading': 'Subagenten-Nutzung',
  'token.byAgentHeading': 'Nach Agent',
  'token.orchestrator': 'Orchestrator',
  'token.noSubAgents': 'Noch keine Subagenten-Nutzung',
  'token.popInput': 'Eingabe-Tokens',
  'token.popOutput': 'Ausgabe-Tokens',
  'token.popCacheHit': 'Cache-Treffer',
  'token.popContext': 'Kontextfenster',
  'token.tipInput':
    'In dieser Sitzung an das Modell gesendete Tokens — deine Prompts plus der Gesprächsverlauf.',
  'token.tipOutput': 'In dieser Sitzung vom Modell erzeugte Tokens.',
  'token.tipCacheHit':
    'Eingabe-Tokens aus einem zwischengespeicherten Prompt-Präfix, zu einem reduzierten Tarif abgerechnet.',
  'token.clickForDetails': 'Für Details zur Sitzungsnutzung klicken',
  'catalog.noCapabilityBinding': 'Keine Fähigkeitsbindung',
  'catalog.downloadFailed': 'Der Download ist fehlgeschlagen',
  'catalog.active': 'Aktiv',
  'catalog.installed': 'Installiert',
  'catalog.notDownloaded': 'Nicht heruntergeladen',
  'catalog.inUse': 'Im Einsatz',
  'catalog.use': 'Benutzen',
  'catalog.deleteModel': 'Modell löschen',
  'catalog.download': 'Herunterladen',
  'navigator.recent': 'Neu',
  'navigator.today': 'Heute',
  'navigator.thisWeek': 'Diese Woche',
  'navigator.sources': 'Quellen',
  'navigator.email': 'E-Mail',
  'navigator.slack': 'Slack',
  'navigator.chat': 'Chatten',
  'navigator.documents': 'Dokumente',
  'navigator.people': 'Menschen',
  'navigator.topics': 'Themen',
  'dreams.description':
    'Träume sind KI-generierte Reflexionen, die Muster aus deinen Erinnerungen synthetisieren.',
  'dreams.comingSoon': 'Kommt bald',
  'assignment.memoryLlm': 'Speicher LLM',
  'assignment.memoryLlmAria': 'Auswahl des Speichers LLM',
  'assignment.embedder': 'Einbetter',
  'assignment.loaded': 'Geladen',
  'assignment.notDownloaded': 'Nicht heruntergeladen',
  'assignment.usedForExtractSummarise': 'Wird zur Extraktion und Zusammenfassung verwendet',
  'insights.knownFacts': 'Bekannte Fakten',
  'insights.preferences': 'Präferenzen',
  'insights.relationships': 'Beziehungen',
  'insights.skills': 'Fähigkeiten',
  'insights.opinions': 'Meinungen',
  'insights.other': 'Andere',
  'insights.title': 'Einblicke',
  'insights.empty':
    'Noch keine Erkenntnisse. Erkenntnisse werden generiert, wenn dein Gedächtnis wächst.',
  'insights.description': 'Basierend auf {count} Beziehungen in deinem Speicherdiagramm.',
  'insights.items': 'Artikel',
  'insights.more': 'mehr',
  'calls.joiningCall': 'Beitrittsgespräch',
  'calls.meetWindowOpening': 'Das Meet-Fenster wird geöffnet...',
  'calls.failedToStart': 'Der Meet-Anruf konnte nicht gestartet werden',
  'calls.couldNotStart': 'Anruf konnte nicht gestartet werden',
  'calls.failedToClose': 'Anruf konnte nicht geschlossen werden',
  'calls.couldNotClose': 'Anruf konnte nicht geschlossen werden',
  'calls.joinMeet': 'Nimm an einem Google Meet-Anruf teil',
  'calls.joinMeetDescription': 'Gib einen Google Meet-Link ein, um beizutreten.',
  'calls.meetLink': 'Meet-Link',
  'calls.displayName': 'Anzeigename',
  'calls.openingMeet': 'Meet wird geöffnet...',
  'calls.joinCall': 'Nimm am Anruf teil',
  'calls.activeCalls': 'Aktive Anrufe',
  'calls.leave': 'Verlassen',
  'workspace.wipeConfirm':
    'Bist du sicher, dass du den gesamten Speicher löschen möchtest? Dies kann nicht rückgängig gemacht werden.',
  'workspace.resetTreeConfirm': 'Bist du sicher, dass du den Speicherbaum neu erstellen möchtest?',
  'workspace.wipeTitle': 'Speicher löschen',
  'workspace.resetting': 'Zurücksetzen...',
  'workspace.resetMemory': 'Speicher zurücksetzen',
  'workspace.resetTreeTitle': 'Speicherbaum neu erstellen',
  'workspace.rebuilding': 'Wiederaufbau...',
  'workspace.resetMemoryTree': 'Speicherbaum zurücksetzen',
  'workspace.building': 'Wird erstellt...',
  'workspace.buildSummaryTrees': 'Erstelle Zusammenfassungsbäume',
  'workspace.viewVault': 'Vault anzeigen',
  'workspace.openingVaultTitle': 'Vault in Obsidian öffnen',
  'workspace.openingVaultMessage':
    'Falls Obsidian nicht geöffnet wird, installiere es von obsidian.md oder nutze „Ordner anzeigen“. Vault-Pfad:',
  'workspace.openVaultFailedTitle': 'Vault konnte nicht in Obsidian geöffnet werden',
  'workspace.openVaultFailedMessage':
    'Nutze „Ordner anzeigen“, um das Vault-Verzeichnis direkt zu öffnen. Vault-Pfad:',
  'workspace.revealVaultFailed': 'Vault-Ordner konnte nicht angezeigt werden',
  'workspace.revealFolder': 'Ordner anzeigen',
  'workspace.checkingVault': 'Prüfe…',
  'workspace.vaultNotRegisteredHelp':
    "Obsidian öffnet nur Ordner, die du als Vault hinzugefügt hast. Wähle in Obsidian 'Ordner als Vault öffnen' und wähle den Ordner unten aus – das musst du nur einmal tun. Klicke dann erneut auf 'Vault anzeigen'.",
  'workspace.obsidianNotFoundHelp':
    "Obsidian wurde auf diesem Gerät nicht gefunden. Installiere es oder – wenn es an einem nicht standardmäßigen Ort installiert ist – lege den Konfigurationsordner unter 'Erweitert' fest.",
  'workspace.openAnyway': 'Trotzdem in Obsidian öffnen',
  'workspace.installObsidian': 'Obsidian installieren',
  'workspace.obsidianAdvanced': 'Obsidian woanders installiert?',
  'workspace.obsidianConfigDirLabel': 'Obsidian-Konfigurationsordner',
  'workspace.obsidianConfigDirHint':
    'Pfad zum Ordner, der obsidian.json enthält (z. B. ~/.config/obsidian). Leer lassen für automatische Erkennung.',
  'workspace.obsidianConfigDirPlaceholder': '~/.config/obsidian',
  'workspace.graphLoadFailed': 'Speicherdiagramm konnte nicht geladen werden',
  'workspace.loadingGraph': 'Speicherdiagramm wird geladen...',
  'workspace.graphViewMode': 'Speicherdiagramm-Ansichtsmodus',
  'workspace.trees': 'Bäume',
  'workspace.contacts': 'Kontakte',
  'graph.noContactMentions': 'Keine Kontakterwähnungen',
  'graph.noMemory': 'Keine Erinnerung',
  'graph.source': 'Quelle',
  'graph.topic': 'Thema',
  'graph.global': 'Global',
  'graph.document': 'Dokument',
  'graph.contact': 'Kontakt',
  'graph.nodes': 'Knoten',
  'graph.parentChild': 'Eltern-Kind',
  'graph.documentContact': 'Dokumentenkontakt',
  'graph.link': 'Link',
  'graph.links': 'Links',
  'graph.children': 'Kinder',
  'graph.clickToOpenObsidian': 'Klicke hier, um in Obsidian zu öffnen',
  'graph.person': 'Person',
  'graph.resetView': 'Ansicht zurücksetzen',
  'modal.dontShowAgain': 'Ähnliche Vorschläge nicht anzeigen',
  'reflections.loading': 'Reflexionen werden geladen...',
  'reflections.empty': 'Noch keine Überlegungen',
  'reflections.title': 'Reflexionen',
  'reflections.proposedAction': 'Vorgeschlagene Aktion',
  'reflections.act': 'Handeln',
  'reflections.dismiss': 'Entlassen',
  'reflections.viewConversation': 'Ansehen',
  'subconscious.mode.label': 'Unterbewusstsein-Modus',
  'subconscious.mode.off.title': 'Aus',
  'subconscious.mode.off.desc': 'Unterbewusstsein ist deaktiviert.',
  'subconscious.mode.simple.title': 'Einfach',
  'subconscious.mode.simple.desc': 'Nur-Lese-Beobachtung. Nur Speicher- und Dateizugriff.',
  'subconscious.mode.aggressive.title': 'Aggressiv',
  'subconscious.mode.aggressive.desc':
    'Voller Werkzeugzugriff. Kann schreiben, Agenten starten und Aufgaben delegieren.',
  'subconscious.mode.aggressiveWarning':
    'Aggressiver Modus gewährt dem Unterbewusstsein vollen Werkzeugzugriff einschließlich Schreiben und Sub-Agenten-Erstellung.',
  'subconscious.interval.label': 'Häufigkeit',
  'subconscious.interval.minutes': '{n} Min',
  'subconscious.interval.hours': '{n} Std',
  'subconscious.interval.oneHour': '1 Stunde',
  'subconscious.interval.oneDay': '24 Stunden',
  'whatsapp.chatsSynced': 'Chats synchronisiert',
  'whatsapp.chatSynced': 'Chat synchronisiert',
  'sync.active': 'Aktiv',
  'sync.recent': 'Neu',
  'sync.idle': 'Leerlauf',
  'sync.memorySources': 'Speicherquellen',
  'sync.noConnectedSources': 'Keine angeschlossenen Quellen',
  'sync.chunks': 'Brocken',
  'sync.lastChunk': 'Letzter Teil:',
  'sync.pending': 'ausstehend',
  'sync.processed': 'verarbeitet',
  'sync.syncing': 'Synchronisierung…',
  'sync.sync': 'Synchronisieren',
  'sync.failedToLoad': 'Der Synchronisierungsstatus konnte nicht geladen werden',
  'sync.noContent':
    'Es wurden noch keine Inhalte in den Speicher synchronisiert. Verbinde eine Integration, um zu beginnen.',
  'memorySyncInterval.title': 'Synchronisierungsplan',
  'memorySyncInterval.lastSynced': 'Zuletzt synchronisiert',
  'memorySyncInterval.never': 'nie',
  'memorySyncInterval.everyHours': 'Alle {h} Std.',
  'memorySyncInterval.everyMinutes': 'Alle {m} Min.',
  'memorySyncInterval.manual': 'Nur manuell',
  'memorySyncInterval.saveFailed': 'Synchronisierungsplan konnte nicht aktualisiert werden',
  'memorySources.title': 'Speicherquellen',
  'memorySources.empty':
    'Noch keine Speicherquellen. Fügen Sie einen hinzu, um den Fütterungsspeicher zu starten',
  'memorySources.customSources': 'Benutzerdefinierte Datenquellen',
  'memorySources.addSource': 'Quelle hinzufügen',
  'memorySources.noCustomSources':
    'Noch keine benutzerdefinierten Quellen. Fügen Sie einen Ordner, GitHub-Repo, RSS-Feed oder eine Webseite hinzu, um zu starten.',
  'memorySources.loadingConnections': 'Verbindungen werden geladen...',
  'memorySources.noConnections':
    'Keine aktiven Composio-Verbindungen gefunden. Verbinden Sie zuerst eine Integration.',
  'memorySources.pickConnection': 'Wählen Sie eine Verbindung',
  'memorySources.selectConnection': 'Wählen Sie eine Verbindung aus.',
  'memorySources.comingSoon': 'Demnächst',
  'memorySources.composioListFailed': 'Fehler beim Laden der Composio-Verbindungen.',
  'memorySources.browse': 'Durchsuchen…',
  'memorySources.folderPathPlaceholder': '/Users/you/notes',
  'memorySources.globPatternPlaceholder': 'Md. ',
  'memorySources.repoUrlPlaceholder': 'https://github.com/org/repo',
  'memorySources.branchPlaceholder': 'main',
  'memorySources.feedUrlPlaceholder': 'https://example.com/feed.xml',
  'memorySources.pageUrlPlaceholder': 'https://example.com/article',
  'memorySources.cssSelectorPlaceholder': 'article',
  'memorySources.searchQueryPlaceholder': 'von:Benutzer AI Safety',
  'memorySources.kind.composio': 'Integration',
  'memorySources.kind.conversation': 'Unterhaltung',
  'memorySources.kind.folder': 'Lokaler Ordner',
  'memorySources.kind.github_repo': 'GitHub-Repo',
  'memorySources.kind.twitter_query': 'Twitter-Suche',
  'memorySources.kind.rss_feed': 'RSS-Feed',
  'memorySources.kind.web_page': 'Webseite',
  'memorySources.sync.successTitle': 'Synchronisierung läuft',
  'memorySources.sync.successMessage': 'Der Fortschritt wird in Kürze angezeigt.',
  'memorySources.sync.failedTitle': 'Synchronisierung ist fehlgeschlagen',
  'memorySources.sync.completeTitle': 'Synchronisiert',
  'memorySources.sync.itemsSynced': 'Elemente synchronisiert',
  'memorySources.sync.upToDate': 'Aktuell',
  'memorySources.sync.failedLabel': 'Fehlgeschlagen',
  'time.justNow': 'gerade eben',
  'time.secondsAgoSuffix': 'vor {count} Sek.',
  'time.minutesAgoSuffix': 'vor {count} Min.',
  'time.hoursAgoSuffix': 'vor {count} Std.',
  'time.daysAgoSuffix': 'vor {count} T',
  'memorySources.pickKind': 'Welche Art von Quelle möchten Sie hinzufügen?',
  'memorySources.backToKinds': 'Zurück zu Quellentypen',
  'memorySources.label': 'Etikett',
  'memorySources.labelPlaceholder': 'Meine Forschungsnotizen',
  'memorySources.add': 'Hinzufügen',
  'memorySources.adding': 'Hinzufügen…',
  'memorySources.added': 'Datenquelle hinzugefügt.',
  'memorySources.removed': 'Quelle entfernt',
  'memorySources.remove': 'Entlassen',
  'memorySources.enable': 'Aktivieren',
  'memorySources.disable': 'Horizontaler Parallaxeffekt',
  'memorySources.toggleFailed': 'Umschalten fehlgeschlagen',
  'memorySources.removeFailed': 'Entfernen fehlgeschlagen',
  'memorySources.folderPath': 'Ordnerpfad',
  'memorySources.globPattern': 'Glob-Muster',
  'memorySources.repoUrl': 'Repository-URL',
  'memorySources.branch': 'Zweigstelle',
  'memorySources.feedUrl': 'Feed-URL',
  'memorySources.pageUrl': 'Seite URL',
  'memorySources.cssSelector': 'CSS Wahlschalter (optional)',
  'memorySources.searchQuery': 'Suchanfrage',
  'memorySources.build.title': 'Erstellen',
  'memorySources.build.building': 'Wird erstellt…',
  'memorySources.build.successTitle': 'Baum erstellt',
  'memorySources.build.failedTitle': 'Erstellung fehlgeschlagen',
  'memorySources.build.sealsMessage': 'Versiegelung(en) abgeschlossen',
  'memorySources.allIn.button': 'Alles aktivieren',
  'memorySources.allIn.title': 'Alles aktivieren?',
  'memorySources.allIn.message':
    'Dadurch werden alle Speicherquellen aktiviert und alle Synchronisierungslimits entfernt. Es erstellt den reichhaltigsten Speichergraphen, kann aber mehr Credits verbrauchen.',
  'memorySources.allIn.confirm': 'Ja',
  'memorySources.allIn.cancel': 'Nein',
  'memorySources.allIn.success': 'Alle Quellen ohne Limits aktiviert. Synchronisierung gestartet.',
  'memorySources.allIn.failed': 'Konnte „Alles aktivieren" nicht anwenden. Bitte erneut versuchen.',
  'memorySources.settings.button': 'Einstellungen',
  'memorySources.settings.title': 'Synchronisierungseinstellungen',
  'memorySources.settings.maxPrs': 'Maximale Pull-Requests',
  'memorySources.settings.maxIssues': 'Maximale Issues',
  'memorySources.settings.maxCommits': 'Maximale Commits',
  'memorySources.settings.maxItems': 'Maximale Elemente',
  'memorySources.settings.sinceDays': 'Rückblick (Tage)',
  'memorySources.settings.syncDepthDays': 'Synchronisierungstiefe (Tage)',
  'memorySources.settings.maxTokens': 'Maximale Tokens pro Synchronisierung',
  'memorySources.settings.maxCost': 'Maximale Kosten pro Synchronisierung (USD)',
  'memorySources.settings.unlimited': 'Unbegrenzt',
  'memorySources.settings.unlimitedTooltip':
    'Du hast dich entschieden, das Maximum für {toolkit} zu synchronisieren. Du kannst die Limits hier ändern.',
  'memorySources.settings.maxed': 'Voll',
  'memorySources.settings.save': 'Speichern',
  'memorySources.settings.saving': 'Speichern…',
  'memorySources.settings.saved': 'Einstellungen gespeichert',
  'memorySources.settings.saveFailed': 'Einstellungen konnten nicht gespeichert werden',
  'backend.aiBackend': 'KI-Backend',
  'backend.cloud': 'Wolke',
  'backend.recommended': 'Empfohlen',
  'backend.cloudDescription':
    'Schnelle, leistungsstarke Modelle, die auf unseren Servern gehostet werden. Sofort einsatzbereit.',
  'backend.privacyNote':
    'Es werden niemals personenbezogene Daten, Nachrichten oder Schlüssel an unsere Server gesendet.',
  'backend.local': 'Lokal',
  'backend.advanced': 'Fortgeschritten',
  'backend.localDescription':
    'Führe Modelle auf deinem eigenen Computer mit Ollama aus. Vollständige Privatsphäre, erfordert eine Einrichtung.',
  'backend.ramRecommended': '16 GB+ RAM empfohlen',
  'subconscious.tasks': 'Aufgaben',
  'subconscious.ticks': 'Zecken',
  'subconscious.last': 'Zuletzt',
  'subconscious.failed': 'gescheitert',
  'subconscious.tickInterval': 'Tick-Intervall',
  'subconscious.runNow': 'Jetzt ausführen',
  'subconscious.providerUnavailableTitle': 'Unterbewusstsein ist pausiert',
  'subconscious.providerSettings': 'KI-Einstellungen',
  'subconscious.scratchpadInfo':
    'Bei jedem Tick prüft das Unterbewusstsein, was sich über Ihre verbundenen Quellen hinweg geändert hat, und erfasst dann Folgeaufgaben auf Ihrer To-do-Liste, aktualisiert Ihre Ziele oder benachrichtigt Sie, wenn etwas Aufmerksamkeit erfordert. Unter Einstellungen → Agentenzugriff können Sie Modus und Häufigkeit konfigurieren.',
  'subconscious.approvalNeeded': 'Genehmigung erforderlich',
  'subconscious.requiresApproval': 'Erfordert eine Genehmigung',
  'subconscious.fixInConnections': 'Fix in Verbindungen',
  'subconscious.goAhead': 'Mach weiter',
  'subconscious.activeTasks': 'Aktive Aufgaben',
  'subconscious.noActiveTasks': 'Keine aktiven Aufgaben',
  'subconscious.default': 'Standard',
  'subconscious.addTaskPlaceholder': 'Eine neue Aufgabe hinzufügen...',
  'subconscious.activityLog': 'Aktivitätsprotokoll',
  'subconscious.noActivity': 'Noch keine Aktivität',
  'subconscious.decision.nothingNew': 'Nichts Neues',
  'subconscious.decision.completed': 'Abgeschlossen',
  'subconscious.decision.evaluating': 'Bewerten',
  'subconscious.decision.waitingApproval': 'Warten auf Genehmigung',
  'subconscious.decision.failed': 'Fehlgeschlagen',
  'subconscious.decision.cancelled': 'Abgesagt',
  'subconscious.decision.skipped': 'Übersprungen',
  // Subconscious triggers (event-driven orchestrator) debug panel
  'subconsciousTriggers.title': 'Unterbewusstsein-Auslöser',
  'subconsciousTriggers.subtitle': 'Ereignisgesteuerter Hintergrund-Orchestrator',
  'subconsciousTriggers.pipeline': 'Pipeline',
  'subconsciousTriggers.mode': 'Modus',
  'subconsciousTriggers.orchestrator': 'Orchestrator',
  'subconsciousTriggers.running': 'Aktiv',
  'subconsciousTriggers.stopped': 'Gestoppt',
  'subconsciousTriggers.promotionsPerHour': 'Beförderungen / Stunde',
  'subconsciousTriggers.queueDepth': 'Warteschlangentiefe',
  'subconsciousTriggers.orchestratorThread': 'Orchestrator-Thread',
  'subconsciousTriggers.userThread': 'Benutzer-Thread',
  'subconsciousTriggers.disabledHint':
    'Aktiviere den ereignisgesteuerten Modus, um die Pipeline zu starten.',
  'subconsciousTriggers.enable': 'Aktivieren',
  'subconsciousTriggers.disable': 'Deaktivieren',
  'actionable.complete': 'Komplett',
  'actionable.dismiss': 'Entlassen',
  'actionable.snooze': 'Schlummern',
  'actionable.new': 'Neu',
  'stats.storage': 'Lagerung',
  'stats.files': 'Dateien',
  'stats.documents': 'Dokumente',
  'stats.today': 'heute',
  'stats.namespaces': 'Namensräume',
  'stats.relations': 'Beziehungen',
  'stats.firstMemory': 'Erste Erinnerung',
  'stats.latest': 'Neueste',
  'stats.sessions': 'Sitzungen',
  'stats.tokens': 'Token',
  'bootCheck.invalidUrl': 'Bitte gib eine Laufzeit URL ein.',
  'bootCheck.urlMustStartWith': 'Der URL muss mit http:// oder https:// beginnen.',
  'bootCheck.validUrlRequired':
    'Das sieht nicht nach einem gültigen URL aus (versuche es mit https://core.example.com/rpc)',
  'bootCheck.tokenRequired': 'Für die Verbindung benötigen wir ein Authentifizierungstoken.',
  'bootCheck.httpPublicWarning':
    'Dies ist eine reine HTTP-URL auf einem öffentlichen Host — der Datenverkehr wird nicht verschlüsselt. Verwende HTTPS, sofern du diesem Netzwerk nicht vertraust.',
  'bootCheck.chooseCoreMode': 'Wähle eine Laufzeit aus',
  'bootCheck.connectToCore': 'Stelle eine Verbindung zu deiner Laufzeit her',
  'bootCheck.desktopDescription':
    'OpenHuman benötigt eine Laufzeit zum Nachdenken. Wähle, wo es leben soll.',
  'bootCheck.webDescription':
    'Im Web stellt OpenHuman eine Verbindung zu einer von dir gesteuerten Laufzeit her. Gib unten den URL und das Authentifizierungstoken ein oder greife auf die Desktop-App zu, um eine direkt auf deinem Computer auszuführen.',
  'bootCheck.preferDesktop': 'Möchtest du lieber alles auf deinem eigenen Gerät behalten?',
  'bootCheck.downloadDesktop': 'Hol dir die Desktop-App',
  'bootCheck.localRecommended': 'Lokal ausführen (empfohlen)',
  'bootCheck.localDescription':
    'Läuft direkt hier auf deinem Computer. Am schnellsten, völlig privat, nichts einzurichten.',
  'bootCheck.cloudMode': 'In der Cloud ausführen (komplex)',
  'bootCheck.cloudDescription':
    'Stelle eine Verbindung zu einer Laufzeit her, die du woanders hostest. Die Laufzeit bleibt rund um die Uhr online, sodass du dieses Gerät nicht laufen lassen musst.',
  'bootCheck.coreRpcUrl': 'Laufzeit URL',
  'bootCheck.rpcUrlPlaceholder': 'https://core.example.com/rpc',
  'bootCheck.authToken': 'Authentifizierungstoken',
  'bootCheck.bearerTokenPlaceholder': 'Das Bearer-Token von deiner Remote-Laufzeit',
  'bootCheck.storedLocally': 'Wird nur auf diesem Gerät gespeichert. Gesendet als ',
  'bootCheck.testing': 'Testen…',
  'bootCheck.testConnection': 'Testverbindung',
  'bootCheck.connectedOk': 'Verbunden. Es kann losgehen.',
  'bootCheck.authFailed':
    'Dieser Token hat nicht funktioniert. Prüfe ihn noch einmal und versuche es erneut.',
  'bootCheck.unreachablePrefix': 'Konnte es nicht erreichen:',
  'bootCheck.checkingCore': 'Deine Laufzeit wird aufgeweckt ...',
  'bootCheck.cannotReach': 'Die Laufzeit kann nicht erreicht werden',
  'bootCheck.cannotReachDesc':
    'Wir konnten keine Verbindung zu deiner Laufzeit herstellen. Möchtest du etwas anderes ausprobieren?',
  'bootCheck.switchMode': 'Wähle eine andere Laufzeit',
  'bootCheck.quit': 'Beenden',
  'bootCheck.legacyDetected': 'Legacy-Hintergrundlaufzeit erkannt',
  'bootCheck.legacyDescription':
    'Auf diesem Gerät läuft bereits ein separat installierter OpenHuman-Daemon. Wir müssen es bereinigen, bevor die integrierte Laufzeit übernehmen kann.',
  'bootCheck.removing': 'Entfernen…',
  'bootCheck.removeContinue': 'Entfernen und fortfahren',
  'bootCheck.localNeedsRestart': 'Die lokale Laufzeit erfordert einen Neustart',
  'bootCheck.localNeedsRestartDesc':
    'Deine lokale Laufzeit hat eine andere Version als diese App. Durch einen schnellen Neustart werden sie wieder synchronisiert.',
  'bootCheck.restarting': 'Neustart...',
  'bootCheck.restartCore': 'Starte die Runtime neu',
  'bootCheck.cloudNeedsUpdate': 'Cloud Runtime benötigt ein Update',
  'bootCheck.cloudNeedsUpdateDesc':
    'Deine Cloud-Laufzeitumgebung hat eine andere Version als diese App. Führe den Updater aus, um sie wieder zu synchronisieren.',
  'bootCheck.updating': 'Aktualisierung…',
  'bootCheck.updateCloudCore': 'Aktualisiere Cloud Runtime',
  'bootCheck.versionCheckFailed': 'Laufzeitversionsprüfung fehlgeschlagen',
  'bootCheck.versionCheckFailedDesc':
    'Deine Laufzeit ist aktiv, meldet jedoch nicht ihre Version. Möglicherweise ist es veraltet. Starte es neu oder aktualisiere es, um fortzufahren.',
  'bootCheck.working': 'Arbeiten…',
  'bootCheck.restartUpdateCore': 'Runtime neu starten/aktualisieren',
  'bootCheck.unexpectedError': 'Unerwarteter Boot-Check-Fehler',
  'bootCheck.actionFailed': 'Etwas ist schief gelaufen. Bitte versuche es erneut.',
  'bootCheck.portConflictTitle': 'App-Engine konnte nicht gestartet werden',
  'bootCheck.portConflictBody':
    'Ein anderer Prozess nutzt den Netzwerkport, den OpenHuman benötigt. Wir versuchen, das automatisch zu beheben.',
  'bootCheck.portConflictFixButton': 'Automatisch beheben',
  'bootCheck.portConflictFixing': 'Wird behoben…',
  'bootCheck.portConflictFixFailed':
    'Automatische Behebung fehlgeschlagen. Bitte starten Sie Ihren Computer neu und versuchen Sie es erneut.',
  'bootCheck.portConflictOwner':
    '{name} (PID {pid}) verwendet den Netzwerkport, den OpenHuman benötigt.',
  'bootCheck.portConflictGuidance':
    'Schließen Sie dieses Programm, um den Port freizugeben, oder erzwingen Sie unten das Beenden, und versuchen Sie es erneut.',
  'bootCheck.portConflictForceQuit': '{name} beenden erzwingen',
  'bootCheck.portConflictForceQuitting': '{name} wird geschlossen…',
  'bootCheck.portConflictForceQuitFailed':
    'Das Programm konnte nicht geschlossen werden. Möglicherweise müssen Sie es manuell schließen und es dann erneut versuchen.',
  'notifications.justNow': 'gerade jetzt',
  'notifications.minAgo': 'Vor {n}m',
  'notifications.hrAgo': 'Vor {n}h',
  'notifications.dayAgo': 'Vor {n}d',
  'notifications.category.messages': 'Nachrichten',
  'notifications.category.agents': 'Agenten',
  'notifications.category.skills': 'Fähigkeiten',
  'notifications.category.system': 'System',
  'notifications.category.meetings': 'Treffen',
  'notifications.category.reminders': 'Erinnerungen',
  'notifications.category.important': 'Wichtig',
  'notifications.filterAll': 'Alle',
  'notifications.filterEmpty': 'Keine Benachrichtigungen in dieser Kategorie',
  'about.update.status.checking': 'Überprüfen...',
  'about.update.status.available': 'v{version} verfügbar',
  'about.update.status.availableNoVersion': 'Update verfügbar',
  'about.update.status.downloading': 'Herunterladen...',
  'about.update.status.readyToInstall': 'v{version} bereit zur Installation',
  'about.update.status.readyToInstallNoVersion':
    'Eine neue Version ist heruntergeladen und bereit. Starte neu, um das Update anzuwenden.',
  'about.update.status.installing': 'Installieren...',
  'about.update.status.restarting': 'Neustart...',
  'about.update.status.upToDate': 'Du verwendest die neueste Version.',
  'about.update.status.error': 'Die Aktualisierungsprüfung ist fehlgeschlagen',
  'about.update.status.default': 'Nach Updates suchen',
  'welcome.connectionFailed': 'Verbindung fehlgeschlagen: {status} {statusText}',
  'welcome.connectionFailedMsg': 'Verbindung fehlgeschlagen: {message}',
  'welcome.continueLocally': 'Lokal fortfahren',
  'welcome.continueLocallyExperimental': 'Lokal fortfahren (Experimentell)',
  'welcome.localSessionStarting': 'Lokal starten Sitzung...',
  'welcome.localSessionDesc':
    'Verwendet ein lokales Offline-Profil und überspringt TinyHumans OAuth.',
  'chat.agentChatDesc': 'Öffne eine direkte Chat-Sitzung mit dem Agenten.',
  'chat.modelPlaceholder': 'gpt-4o',
  'channels.activeRouteValue': '{channel} über {authMode}',
  'privacy.dataKind.messages': 'Nachrichten',
  'privacy.dataKind.agents': 'Agenten',
  'privacy.dataKind.skills': 'Fähigkeiten',
  'privacy.dataKind.system': 'System',
  'privacy.dataKind.meetings': 'Treffen',
  'privacy.dataKind.reminders': 'Erinnerungen',
  'privacy.dataKind.important': 'Wichtig',
  'onboarding.enableLocalAI': 'Aktiviere lokale KI',
  'onboarding.skills.status.available': 'Verfügbar',
  'onboarding.skills.status.connected': 'Verbunden',
  'onboarding.skills.status.connecting': 'Verbinden',
  'onboarding.skills.status.error': 'Fehler',
  'onboarding.skills.status.unavailable': 'Nicht verfügbar',
  'composio.statusUnavailable': 'Status nicht verfügbar',
  'composio.authExpired': 'Authentifizierung abgelaufen',
  'composio.reconnect': 'Wieder verbinden',
  'composio.expiredAuthorization': '{name}-Autorisierung abgelaufen',
  'composio.expiredDescription':
    'Stellen Sie die Verbindung erneut her, um {name}-Tools erneut zu aktivieren. OpenHuman sorgt dafür, dass diese Integration nicht verfügbar bleibt, bis Sie den OAuth-Zugriff aktualisieren.',
  'composio.envVarOverrides': 'festgelegt ist, überschreibt es diese Einstellung.',
  'composio.previewBadge': 'Vorschau',
  'composio.previewTooltip':
    'Agent-Integration folgt bald – Sie können eine Verbindung herstellen, aber der Agent kann dieses Toolkit noch nicht verwenden.',
  'memory.day.sun': 'Sonne',
  'memory.day.mon': 'Mo',
  'memory.day.tue': 'Di',
  'memory.day.wed': 'Mi',
  'memory.day.thu': 'Do',
  'memory.day.fri': 'Fr',
  'memory.day.sat': 'Sa',
  'memory.ingesting': 'Einnahme',
  'memory.ingestionQueued': 'In der Warteschlange',
  'memory.ingestingTitle': 'Einnahme von {title}',
  'mic.noAudioCaptured': 'Kein Ton aufgenommen',
  'mic.noSpeechDetected': 'Keine Sprache erkannt',
  'mic.lowConfidenceResult': 'Audio konnte nicht klar verstanden werden — bitte erneut versuchen',
  'mic.failedToStopRecording': 'Aufzeichnung konnte nicht gestoppt werden: {message}',
  'mic.transcriptionFailed': 'Transkription fehlgeschlagen: {message}',
  'reflections.kind.retrospective': 'Retrospektive',
  'reflections.kind.derivedFact': 'Abgeleitete Tatsache',
  'reflections.kind.moodInsight': 'Stimmungseinsicht',
  'reflections.kind.relationshipInsight': 'Beziehungseinblick',
  'graph.tooltip.summary': 'Zusammenfassung',
  'graph.tooltip.contact': 'Kontakt',
  'localModel.usage.never': 'Niemals',
  'localModel.usage.mediumLoad': 'Mittlere Belastung',
  'localModel.usage.lowLoad': 'Geringe Belastung',
  'localModel.usage.idleMode': 'Leerlaufmodus',
  'localModel.rebootstrapComplete': 'Modell-Re-Bootstrap abgeschlossen.',
  'localModel.modelsVerified': 'Lokale Modelle verifiziert.',
  'accounts.addModal.allConnected': 'Alles verbunden',
  'accounts.addModal.title': 'Konto hinzufügen',
  'accounts.respondQueue.empty': 'Leer',
  'accounts.respondQueue.hide': 'Antwortwarteschlange ausblenden',
  'accounts.respondQueue.loadFailed': 'Antwortwarteschlange konnte nicht geladen werden',
  'accounts.respondQueue.loading': 'Warteschlange wird geladen…',
  'accounts.respondQueue.pending': 'Ausstehend',
  'accounts.respondQueue.show': 'Antwortwarteschlange anzeigen',
  'accounts.respondQueue.title': 'Antwortwarteschlange',
  'accounts.webviewHost.almostReady': 'Fast fertig...',
  'accounts.webviewHost.loadTimeout': 'Zeitüberschreitung beim Laden der Webansicht',
  'accounts.webviewHost.loading': 'Laden {providerName}...',
  'accounts.webviewHost.loadingAccount': 'Konto wird geladen',
  'accounts.webviewHost.restoringSession': 'Sitzung wird wiederhergestellt...',
  'accounts.webviewHost.retryLoading': 'Versuche den Ladevorgang erneut',
  'accounts.webviewHost.takingLonger': '{providerName} dauert länger als erwartet.',
  'accounts.webviewHost.timeoutHint': 'Timeout-Hinweis',
  'app.connectionBadge.composio': 'Composio',
  'app.connectionBadge.messaging': 'Nachrichten',
  'app.connectionIndicator.connected': 'Verbunden mit OpenHuman AI 🚀',
  'app.connectionIndicator.connecting': 'Verbinden',
  'app.connectionIndicator.coreOffline': 'Core offline',
  'app.connectionIndicator.disconnected': 'Nicht verbunden',
  'app.connectionIndicator.offline': 'Offline',
  'app.connectionIndicator.reconnecting': 'Wieder verbinden…',
  'app.errorFallback.componentStack': 'Komponentenstapel',
  'app.errorFallback.contactSupport': 'Support kontaktieren',
  'app.errorFallback.copyEventId': 'Kopieren',
  'app.errorFallback.eventIdCopied': 'Kopiert',
  'app.errorFallback.eventIdLabel': 'Fehler-ID',
  'app.errorFallback.revealLogs': 'Protokolle anzeigen',
  'app.errorFallback.downloadLatest': 'Neueste herunterladen',
  'app.errorFallback.heading': 'Überschrift',
  'app.errorFallback.hint': 'Hinweis',
  'app.errorFallback.reloadApp': 'App neu laden',
  'app.errorFallback.subheading': 'Unterüberschrift',
  'app.errorFallback.tryRecover': 'Versuche es mit einer Wiederherstellung',
  'app.localAiDownload.installing': 'Installieren...',
  'app.localAiDownload.preparing': 'Vorbereiten...',
  'app.openhumanLink.accounts.continueWith': 'Fahre mit der Anmeldung bei {label} fort',
  'app.openhumanLink.accounts.done': 'Fertig',
  'app.openhumanLink.accounts.intro': 'Einführung',
  'app.openhumanLink.accounts.webviewNote': 'Webview-Hinweis',
  'app.openhumanLink.billing.openDashboard': 'Dashboard öffnen',
  'app.openhumanLink.billing.stayOnTrial': 'In der Testversion bleiben',
  'app.openhumanLink.billing.trialCredit': 'Registrierungs-Credits',
  'app.openhumanLink.billing.trialDesc':
    'Credit-Angebote können je nach Aktion und Kontoberechtigung variieren.',
  'app.openhumanLink.defaultBody':
    'Im Popup noch nicht fertig. Öffne bei Bedarf die vollständige Einstellungsseite.',
  'app.openhumanLink.discord.intro': 'Einführung',
  'app.openhumanLink.discord.openInvite': 'Einladung öffnen',
  'app.openhumanLink.discord.perk1': 'Vorteil1',
  'app.openhumanLink.discord.perk2': 'Vorteil2',
  'app.openhumanLink.discord.perk3': 'Vorteil3',
  'app.openhumanLink.discord.perk4': 'Vorteil4',
  'app.openhumanLink.discordReport.intro':
    'Entschuldigung — bei uns ist etwas schiefgelaufen. Wir versuchen, solche Fehler automatisch zu protokollieren, aber wenn du die Details auf Discord teilst, können wir sie schneller beheben.',
  'app.openhumanLink.discordReport.openDiscord': 'Discord öffnen',
  'app.openhumanLink.done': 'Fertig',
  'app.openhumanLink.notifications.desktopOnly':
    'Native Benachrichtigungen sind nur in der Desktop-App verfügbar (führe `pnpm dev:app` aus).',
  'app.openhumanLink.notifications.permissionOff':
    'Die Benachrichtigungsberechtigung ist deaktiviert. Aktiviere OpenHuman in den Systemeinstellungen → Benachrichtigungen und versuche es erneut.',
  'app.openhumanLink.notifications.triggerFailed':
    'OpenHuman konnte keine Systembenachrichtigung auslösen. Überprüfe die Benachrichtigungseinstellungen des Betriebssystems und versuche es erneut.',
  'app.openhumanLink.notifications.welcomeBody':
    'Du erhältst hier Hinweise, wenn etwas deine Aufmerksamkeit erfordert.',
  'app.openhumanLink.notifications.welcomeTitle': 'OpenHuman ist startklar',
  'app.openhumanLink.status.closed': 'Geschlossen',
  'app.openhumanLink.status.connected': 'Verbunden',
  'app.openhumanLink.status.error': 'Fehler',
  'app.openhumanLink.status.loading': 'Wird geladen…',
  'app.openhumanLink.status.needsSignIn': 'Anmeldung erforderlich',
  'app.openhumanLink.status.timedOut': 'Zeitüberschreitung',
  'app.openhumanLink.loadingChannelSetup': 'Kanal-Setup wird geladen',
  'app.openhumanLink.maybeLater': 'Vielleicht später',
  'app.openhumanLink.notifications.asking': 'Frag dein Betriebssystem ...',
  'app.openhumanLink.notifications.blocked': 'Blockiert',
  'app.openhumanLink.notifications.blockedStep1': 'Schritt 1 blockiert',
  'app.openhumanLink.notifications.blockedStep2': 'Schritt 2 blockiert',
  'app.openhumanLink.notifications.blockedStep3': 'Schritt 3 blockiert',
  'app.openhumanLink.notifications.intro': 'Einführung',
  'app.openhumanLink.notifications.promptHint': 'Prompter Hinweis',
  'app.openhumanLink.notifications.retry': 'Benachrichtigung zum erneuten Testversuch',
  'app.openhumanLink.notifications.send': 'Testbenachrichtigung senden',
  'app.openhumanLink.notifications.sendFailed': 'Konnte nicht gesendet werden: {error}',
  'app.openhumanLink.notifications.sent':
    'Testbenachrichtigung gesendet. Wenn du sie nicht erhalten hast, gehe zu Systemeinstellungen → Benachrichtigungen → OpenHuman, aktiviere „Benachrichtigungen zulassen“ und stelle den Bannerstil auf „Persistent“ ein.',
  'app.openhumanLink.skipForNow': 'Erstmal überspringen',
  'app.openhumanLink.telegramUnavailable': 'Telegram nicht verfügbar',
  'app.openhumanLink.title.accounts': 'Verbinde deine Apps',
  'app.openhumanLink.title.billing': 'Abrechnung und Gutschriften',
  'app.openhumanLink.title.discord': 'Tritt der Community bei',
  'app.openhumanLink.title.discordReport': 'Diesen Fehler melden',
  'app.openhumanLink.title.messaging': 'Verbinde einen Chat-Kanal',
  'app.openhumanLink.title.notifications': 'Benachrichtigungen zulassen',
  'app.persistRehydration.body': 'Körper',
  'app.persistRehydration.heading': 'Überschrift',
  'app.persistRehydration.resetCta': 'Zurücksetzen…',
  'app.persistRehydration.resetting': 'Zurücksetzen…',
  'app.routeLoading.initializing': 'OpenHuman wird initialisiert...',
  'app.update.currentlyOn': '{version}',
  'app.update.errorFallback': 'Beim Update ist ein Fehler aufgetreten.',
  'app.update.header.default': 'Aktualisieren',
  'app.update.header.error': 'Update fehlgeschlagen',
  'app.update.header.installing': 'Update installieren',
  'app.update.header.readyToInstall': 'Update zur Installation bereit',
  'app.update.header.restarting': 'Neustart...',
  'app.update.later': 'Später',
  'app.update.newVersionReady': 'Eine neue Version ist zur Installation bereit.',
  'app.update.progress.downloaded': '{amount} heruntergeladen',
  'app.update.progress.installing': 'Installation der neuen Version…',
  'app.update.progress.restarting': 'Neustart der App…',
  'app.update.progress.working': '{percent}%',
  'app.update.restartNote': 'Hinweis zum Neustart',
  'app.update.restartNow': 'Starte jetzt neu',
  'app.update.versionReady': 'Version {newVersion} ist zur Installation bereit.',
  'channels.discord.accountLinked': 'Konto verknüpft',
  'channels.discord.connect': 'Verbinden',
  'channels.discord.linkTokenExpired': 'Link-Token abgelaufen. Bitte versuche es erneut.',
  'channels.discord.linkTokenInstruction': '{token}',
  'channels.discord.linkTokenLabel': 'Link-Token-Label',
  'channels.discord.linkTokenOnce': 'Link-Token einmal',
  'channels.discord.picker.allPermissionsOk':
    'Bot verfügt über alle erforderlichen Berechtigungen in diesem Kanal.',
  'channels.discord.picker.botNotInServers': 'Bot nicht auf Servern',
  'channels.discord.picker.category': 'Kategorie',
  'channels.discord.picker.channel': 'Kanal',
  'channels.discord.picker.checkingPermissions': 'Berechtigungen prüfen',
  'channels.discord.picker.loadingChannels': 'Lade Kanäle...',
  'channels.discord.picker.loadingServers': 'Server werden geladen...',
  'channels.discord.picker.missingPermissions': 'Fehlende Berechtigungen',
  'channels.discord.picker.noChannels': 'Keine Textkanäle gefunden',
  'channels.discord.picker.noServers': 'Keine Server gefunden',
  'channels.discord.picker.selectChannel': 'Wähle einen Kanal aus',
  'channels.discord.picker.selectServer': 'Wähle einen Server aus',
  'channels.discord.picker.server': 'Server',
  'channels.discord.picker.serverChannelSelection': 'Server- und Kanalauswahl',
  'channels.discord.savedRestartRequired':
    'Kanal gespeichert. Starte die App neu, um sie zu aktivieren.',
  'channels.telegram.connect': 'Verbinden',
  'channels.telegram.managedDmConnecting': 'Verwaltete DM-Verbindung',
  'channels.telegram.managedDmTimeout': 'DM-Timeout verwaltet',
  'channels.telegram.reconnect': 'Wieder verbinden',
  'channels.telegram.savedRestartRequired':
    'Kanal gespeichert. Starte die App neu, um sie zu aktivieren.',
  'channels.web.alwaysAvailable': 'Immer verfügbar',
  'chat.approval.approve': 'Genehmigen',
  'chat.approval.alwaysAllow': 'Immer zulassen',
  'chat.approval.alwaysAllowHint':
    'Fragen Sie nicht mehr nach diesem Tool – fügen Sie es Ihrer Liste „Immer zulassen“ hinzu',
  'chat.approval.deciding': 'Arbeiten…',
  'chat.approval.deny': 'Leugnen',
  'chat.approval.error':
    'Ihre Entscheidung konnte nicht aufgezeichnet werden. Versuchen Sie es erneut.',
  'chat.approval.fallback':
    'Der Agent möchte eine Aktion ausführen, die Ihre Zustimmung erfordert.',
  'chat.approval.title': 'Genehmigung erforderlich',
  'chat.approval.tool': 'Werkzeug:',
  'channels.authMode.managed_dm': 'Mit OpenHuman anmelden',
  'channels.authMode.oauth': 'OAuth-Anmeldung',
  'channels.authMode.bot_token': 'Eigenen Bot-Token verwenden',
  'channels.authMode.api_key': 'Eigenen API-Schlüssel verwenden',
  'channels.fieldRequired': '{field} ist erforderlich',
  'channels.mcp.title': 'MCP-Server',
  'channels.mcp.description':
    'Durchsuche und verwalte Model Context Protocol-Server, die die KI um neue Tools erweitern.',
  'channels.discord.displayName': 'Discord',
  'channels.discord.description': 'Sende und empfange Nachrichten über Discord.',
  'channels.discord.authMode.bot_token.description': 'Gib deinen eigenen Discord-Bot-Token an.',
  'channels.discord.authMode.oauth.description':
    'Installiere den OpenHuman-Bot über OAuth auf deinem Discord-Server.',
  'channels.discord.authMode.managed_dm.description':
    'Verknüpfe dein persönliches Discord-Konto mit dem OpenHuman-Bot.',
  'channels.discord.fields.bot_token.label': 'Bot-Token',
  'channels.discord.fields.bot_token.placeholder': 'Dein Discord-Bot-Token',
  'channels.discord.fields.guild_id.label': 'Server- (Guild-) ID',
  'channels.discord.fields.guild_id.placeholder':
    'Optional: auf einen bestimmten Server beschränken',
  'channels.telegram.displayName': 'Telegram',
  'channels.telegram.description': 'Sende und empfange Nachrichten über Telegram.',
  'channels.telegram.authMode.managed_dm.description':
    'Schreibe dem OpenHuman-Telegram-Bot direkt.',
  'channels.telegram.authMode.bot_token.description':
    'Gib deinen eigenen Telegram-Bot-Token von @BotFather an.',
  'channels.telegram.fields.bot_token.label': 'Bot-Token',
  'channels.telegram.fields.bot_token.placeholder': '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11',
  'channels.telegram.fields.allowed_users.label': 'Erlaubte Benutzer',
  'channels.telegram.fields.allowed_users.placeholder':
    'Durch Kommas getrennte Telegram-Benutzernamen',
  'channels.telegram.remoteControlTitle': 'Fernsteuerung (Telegram)',
  'channels.telegram.remoteControlBody':
    'Senden Sie von einem zulässigen Telegram-Chat aus /status, /sessions, /new oder /help. Das Modellrouting verwendet weiterhin /model und /models.',
  'channels.web.displayName': 'Web',
  'channels.web.description': 'Chatte über die integrierte Web-Oberfläche.',
  'channels.web.authMode.managed_dm.description':
    'Nutze den eingebetteten Web-Chat — keine Einrichtung erforderlich.',
  'channels.yuanbao.connect': 'Connect',
  'channels.yuanbao.connecting': 'Verbinde…',
  'channels.yuanbao.fieldRequired': '{field} ist erforderlich',
  'channels.yuanbao.reconnect': 'Reconnect',
  'channels.yuanbao.savedRestartRequired':
    'Kanal gespeichert. App neu starten, um ihn zu aktivieren.',
  'channels.yuanbao.unexpectedStatus': 'Unerwarteter Verbindungsstatus: {status}',
  'chat.unsubscribeApproval.approve': 'Genehmigen und abbestellen',
  'chat.unsubscribeApproval.approved': '✓ Erfolgreich abgemeldet.',
  'chat.unsubscribeApproval.denied': '✕Anfrage abgelehnt.',
  'chat.unsubscribeApproval.deny': 'Leugnen',
  'chat.unsubscribeApproval.processing': 'Verarbeitung...',
  'chat.unsubscribeApproval.title': 'Abmeldeanfrage',
  'commandPalette.ariaLabel': 'Befehlspalette',
  'commandPalette.description': 'Beschreibung',
  'commandPalette.label': 'Befehle',
  'commandPalette.noResults': 'Keine Ergebnisse',
  'commandPalette.placeholder': 'Gib einen Befehl ein oder suche ...',
  'commandPalette.searchAria': 'Suchbefehle',
  'commandPalette.shortcutHint': 'Drücke ? für alle Verknüpfungen',
  'commandPalette.title': 'Befehlspalette',
  'kbd.ariaLabel': 'Tastenkombination: {shortcut}',
  'shortcuts.title': 'Tastenkürzel',
  'shortcuts.subtitle': 'Beschleunige deinen Workflow mit diesen Tastenkürzeln.',
  'shortcuts.menuDesc': 'Alle app-weiten Tastenkürzel durchsuchen.',
  'shortcuts.empty': 'Derzeit sind keine Tastenkürzel verfügbar.',
  'shortcuts.openHint': 'Diese Liste jederzeit öffnen mit',
  'shortcuts.group.navigation': 'Navigation',
  'shortcuts.group.profiles': 'Profile',
  'shortcuts.group.chat': 'Chat',
  'shortcuts.group.view': 'Ansicht',
  'shortcuts.group.general': 'Allgemein',
  'shortcuts.group.help': 'Hilfe',
  'shortcuts.action.home': 'Zur Startseite',
  'shortcuts.action.chat': 'Zum Chat',
  'shortcuts.action.knowledge': 'Zu Wissen & Gedächtnis',
  'shortcuts.action.connections': 'Zu Verbindungen',
  'shortcuts.action.activity': 'Zur Aktivität',
  'shortcuts.action.settings': 'Einstellungen öffnen',
  'shortcuts.action.newChat': 'Neuer Chat',
  'shortcuts.action.toggleSidebar': 'Seitenleiste umschalten',
  'shortcuts.action.commandPalette': 'Befehlspalette',
  'iosMascot.connectedTo': 'Verbunden mit',
  'iosMascot.defaultPairedLabel': 'Desktop',
  'iosMascot.disconnect': 'Trennen',
  'iosMascot.error.generic': 'Etwas ist schief gelaufen. Bitte versuchen Sie es erneut.',
  'iosMascot.error.sendFailed': 'Senden fehlgeschlagen. Überprüfen Sie Ihre Verbindung.',
  'iosMascot.pushToTalk': 'Push-to-talk',
  'iosMascot.sendMessage': 'Nachricht senden',
  'iosMascot.thinking': 'Denken...',
  'iosMascot.typeMessage': 'Geben Sie a ein Nachricht...',
  'iosPair.connectedLoading': 'Verbunden! Wird geladen...',
  'iosPair.connecting': 'Verbindung zum Desktop wird hergestellt...',
  'iosPair.desktopLabel': 'Desktop',
  'iosPair.error.camera':
    'Kamera-Scan fehlgeschlagen. Kameraberechtigungen prüfen und erneut versuchen.',
  'iosPair.error.connectionFailed':
    'Verbindung fehlgeschlagen. Sicherstellen, dass die Desktop-App läuft, und erneut versuchen.',
  'iosPair.error.invalidQr':
    'Ungültiger QR-Code. Sicherstellen, dass ein OpenHuman-Kopplungscode gescannt wird.',
  'iosPair.error.unreachableDesktop':
    'Desktop nicht erreichbar. Sicherstellen, dass beide Geräte online sind, und erneut versuchen.',
  'iosPair.expired': 'QR code abgelaufen. Bitten Sie den Desktop, den Code neu zu generieren.',
  'iosPair.instructions':
    "Öffne OpenHuman auf dem Desktop, gehe zu Einstellungen > Geräte und tippe auf 'Gerät koppeln', um den QR-Code anzuzeigen.",
  'iosPair.retryScan': 'Scan erneut versuchen',
  'iosPair.scanQrCode': 'Scannen QR code',
  'iosPair.scannerOpening': 'Scanner wird geöffnet...',
  'iosPair.step.openDesktop': 'OpenHuman auf dem Desktop öffnen',
  'iosPair.step.openSettings': 'Gehen Sie zu Einstellungen > Geräte',
  'iosPair.step.showQr': 'Tippen Sie auf „Telefon koppeln“, um QR anzuzeigen',
  'iosPair.title': 'Mit Ihrem Desktop koppeln',
  'composio.connect.additionalConfigRequired': 'Zusätzliche Konfiguration erforderlich',
  'composio.connect.atlassianSubdomainHint': 'acme',
  'composio.connect.atlassianSubdomainLabel': 'Atlassian-Subdomain-Label',
  'composio.connect.connect': 'Verbinden',
  'composio.connect.connectedAccounts': 'Verbundene Konten',
  'composio.connect.defaultLabel': 'Standard',
  'composio.connect.disconnectAccount': 'Entfernen',
  'composio.connect.addAnotherAccount': 'Weiteres Konto hinzufügen',
  'composio.connect.dynamicsOrgNameHint':
    'Beispiel: „myorg“ für myorg.crm.dynamics.com. Gib nur den kurzen Organisationsnamen ein, nicht den vollständigen URL.',
  'composio.connect.dynamicsOrgNameLabel': 'Name der Dynamics 365-Organisation',
  'composio.connect.connectionFailed': 'Verbindung fehlgeschlagen (Status: {status}).',
  'composio.connect.disconnectFailed': 'Verbindungstrennung fehlgeschlagen: {msg}',
  'composio.connect.disconnecting': 'Verbindung trennen…',
  'composio.connect.idleDescription': 'Verbinde deine',
  'composio.connect.idleDescriptionSuffix':
    'Konto. Wir öffnen ein Browserfenster, du genehmigst dort den Zugriff und diese App erkennt die Verbindung automatisch.',
  'composio.connect.isConnected': 'verbunden ist.',
  'composio.connect.manage': 'Verwalten',
  'composio.connect.needsFieldsPrefix': 'Zum Verbinden',
  'composio.connect.needsFieldsSuffix':
    'Wir brauchen ein bisschen mehr Informationen. Fülle die fehlenden Felder unten aus und versuche es erneut.',
  'composio.connect.needsSubdomain': 'Zum Verbinden',
  'composio.connect.needsSubdomainSuffix':
    'Gib deine Atlassian-Subdomain ein (z. B. acme für acme.atlassian.net) und versuche es erneut.',
  'composio.connect.oauthComplete': 'OAuth zum Abschließen…',
  'composio.connect.oauthTimeout': 'OAuth-Zeitüberschreitung',
  'composio.connect.permissions': 'Berechtigungen',
  'composio.connect.permissionsDefault': 'Lesen + Schreiben ist standardmäßig aktiviert',
  'composio.connect.permissionsNote': 'entlarven kann',
  'composio.connect.permissionsNoteSuffix':
    'Die eigenen Agentenberechtigungen von OpenHuman werden unten als Lese-, Schreib- und Admin-Umschaltung gesteuert.',
  'composio.connect.reopenBrowser': 'Browser erneut öffnen',
  'composio.connect.requestingUrl': 'Verbindung wird angefordert URL…',
  'composio.connect.requiredFieldEmpty': 'Dieses Feld ist erforderlich.',
  'composio.connect.retryConnection': 'Verbindung erneut versuchen',
  'composio.connect.scopeLoadError': 'Bereichseinstellungen konnten nicht geladen werden: {msg}',
  'composio.connect.scopeSaveError': 'Der Bereich {key} konnte nicht gespeichert werden: {msg}',
  'composio.connect.scope.read': 'Lesen',
  'composio.connect.scope.readHint':
    'Ermöglichen Sie dem Agenten, Daten von dieser Verbindung zu lesen.',
  'composio.connect.scope.write': 'Schreiben',
  'composio.connect.scope.writeHint':
    'Erlauben Sie dem Agenten, Daten über diese Verbindung zu erstellen oder zu ändern.',
  'composio.connect.scope.admin': 'Admin',
  'composio.connect.scope.adminHint':
    'Erlauben Sie dem Agenten, Einstellungen, Berechtigungen oder destruktive Aktionen zu verwalten.',
  'composio.connect.subdomainInvalid':
    'Gib nur die kurze Subdomain ein (z. B. „acme“), nicht die vollständige URL. Es sollte nur Buchstaben, Zahlen und Bindestriche enthalten.',
  'composio.connect.subdomainRequired': 'Bitte gib deine Atlassian-Subdomain ein, um fortzufahren.',
  'composio.connect.wabaIdHint':
    'Finde es über GET /me/businesses und dann GET /{business_id}/owned_whatsapp_business_accounts mit deinem Meta-Zugriffstoken.',
  'composio.connect.wabaIdLabel': 'Waba-ID-Etikett',
  'composio.connect.atlassianSubdomainPlaceholder': 'your-subdomain',
  'composio.connect.dynamicsOrgNamePlaceholder': 'myorg',
  'composio.connect.wabaIdPlaceholder': 'e.g. 123456789012345',
  'composio.connect.wabaIdRequired':
    'Bitte gib deine WhatsApp Geschäftskonto-ID (WABA ID) ein, um fortzufahren.',
  'composio.connect.waitingFor': 'Warten auf',
  'composio.connect.waitingHint': 'Wartender Hinweis',
  'composio.triggers.heading': 'Auslöser',
  'composio.triggers.listenFrom': 'Auf Ereignisse hören von',
  'composio.triggers.loadError': 'Trigger konnten nicht geladen werden',
  'composio.triggers.sessionExpired':
    'Deine OpenHuman-Sitzung ist abgelaufen. Melde dich erneut an, um Trigger zu laden.',
  'composio.triggers.needsConfiguration': 'Muss konfiguriert werden',
  'composio.triggers.noneAvailable': 'Derzeit sind keine Auslöser verfügbar für',
  'conversations.taskKanban.moveLeft': 'Bewege dich nach links',
  'conversations.taskKanban.moveRight': 'Bewege dich nach rechts',
  'conversations.taskKanban.title': 'Aufgaben',
  'conversations.threadTodo.title': 'Plan',
  'conversations.planReview.title': 'Plan prüfen',
  'conversations.planReview.subtitle':
    'Genehmigen zum Ausführen, ablehnen zum Verwerfen oder Feedback zum Überarbeiten senden.',
  'conversations.planReview.approve': 'Genehmigen & ausführen',
  'conversations.planReview.reject': 'Ablehnen',
  'conversations.planReview.feedbackLabel': 'Änderungen anfordern',
  'conversations.planReview.feedbackPlaceholder': 'Beschreiben Sie, was geändert werden soll…',
  'conversations.planReview.sendFeedback': 'Feedback senden',
  'conversations.threadGoal.label': 'Ziel',
  'conversations.threadGoal.setCta': 'Ziel festlegen',
  'conversations.threadGoal.placeholder': 'Was soll dieser Thread erreichen?',
  'conversations.threadGoal.save': 'Speichern',
  'conversations.threadGoal.cancel': 'Abbrechen',
  'conversations.threadGoal.edit': 'Ziel bearbeiten',
  'conversations.threadGoal.clear': 'Ziel löschen',
  'conversations.threadGoal.complete': 'Als erledigt markieren',
  'conversations.threadGoal.pause': 'Pausieren',
  'conversations.threadGoal.resume': 'Fortsetzen',
  'conversations.threadGoal.tokensSuffix': 'Tokens',
  'conversations.threadGoal.status.active': 'Aktiv',
  'conversations.threadGoal.status.paused': 'Pausiert',
  'conversations.threadGoal.status.budget_limited': 'Budget erreicht',
  'conversations.threadGoal.status.complete': 'Abgeschlossen',
  'conversations.taskKanban.approval.default': 'Standard',
  'conversations.taskKanban.approval.notRequired': 'Nicht erforderlich',
  'conversations.taskKanban.approval.notRequiredBadge': 'keine Genehmigung',
  'conversations.taskKanban.approval.required': 'Erforderlich',
  'conversations.taskKanban.approval.requiredBadge': 'approval',
  'conversations.taskKanban.approval.requiredBeforeExecution': 'Vor der Ausführung erforderlich',
  'conversations.taskKanban.briefButton': 'Aufgabenbeschreibung',
  'conversations.taskKanban.briefTitle': 'Aufgabenbeschreibung',
  'conversations.taskKanban.closeBrief': 'Aufgabenbeschreibung abschließen',
  'conversations.taskKanban.field.acceptanceCriteria': 'Akzeptanzkriterien',
  'conversations.taskKanban.field.allowedTools': 'Erlaubte Werkzeuge',
  'conversations.taskKanban.field.approval': 'Genehmigung',
  'conversations.taskKanban.field.assignedAgent': 'Zugewiesener Agent',
  'conversations.taskKanban.field.blocker': 'Blocker',
  'conversations.taskKanban.field.evidence': 'Beweis',
  'conversations.taskKanban.field.notes': 'Notizen',
  'conversations.taskKanban.field.objective': 'Objektiv',
  'conversations.taskKanban.field.plan': 'Planen',
  'conversations.taskKanban.field.status': 'Status',
  'conversations.taskKanban.field.title': 'Titel',
  'conversations.taskKanban.saveChanges': 'Änderungen speichern',
  'conversations.taskKanban.deleteCard': 'Löschen',
  'conversations.taskKanban.workTask': 'Aufgabe bearbeiten',
  'conversations.taskKanban.viewWork': 'Arbeit anzeigen',
  'conversations.taskKanban.startingTask': 'Startet…',
  'conversations.taskKanban.updateFailed':
    'Aufgabe konnte nicht aktualisiert werden; Änderungen wurden nicht gespeichert.',
  'conversations.taskKanban.sourcesButton': 'Quellen',
  'conversations.taskKanban.source.openExternal': 'Externe Aufgabe öffnen',
  'conversations.taskKanban.source.openExternalShort': 'Öffnen',
  'conversations.taskKanban.source.unknownProvider': 'Unbekannte Quelle',
  'conversations.taskKanban.source.urgencyValue': 'Dringlichkeit {percent}%',
  'conversations.taskKanban.sources.desktopOnly':
    'Aufgabenquellen-Steuerungen sind in der Desktop-App verfügbar.',
  'conversations.taskKanban.sources.title': 'Aufgabenquellen',
  'conversations.taskKanban.sources.statusEnabled': 'Automatische Abfrage aktiviert',
  'conversations.taskKanban.sources.manage': 'Quellen verwalten',
  'conversations.taskKanban.source.title': 'Quelle',
  'conversations.taskKanban.source.sourceId': 'Quellen-ID',
  'conversations.taskKanban.source.externalId': 'Externe ID',
  'conversations.taskKanban.source.repo': 'Repository',
  'conversations.taskKanban.source.urgency': 'Dringlichkeit',
  'conversations.toolTimeline.turn': 'drehen',
  'conversations.toolTimeline.step': 'Schritt',
  'conversations.toolTimeline.workerThread': 'Worker-Thread',
  'conversations.subagent.viewProcessing': 'Vollständige Verarbeitung anzeigen',
  'conversations.subagent.parent': 'Übergeordnet',
  'conversations.subagent.thinking': 'Denkt nach',
  'conversations.subagent.thoughts': 'Gedanken',
  'conversations.subagent.response': 'Antwort',
  'conversations.subagent.toolCalls': 'Tool-Aufrufe',
  'conversations.subagent.working': 'Arbeitet…',
  'conversations.subagent.noOutputYet': 'Noch keine Ausgabe',
  'conversations.subagent.input': 'Eingabe',
  'conversations.subagent.output': 'Ausgabe',
  'conversations.subagent.noOutput': 'Keine Ausgabe zurückgegeben',
  'conversations.subagent.close': 'Schließen',
  'conversations.subagent.cancel': 'Aufgabe abbrechen',
  'conversations.subagent.cancelling': 'Wird abgebrochen…',
  'conversations.subagent.cancelFailed':
    'Aufgabe konnte nicht abgebrochen werden. Bitte erneut versuchen.',
  'conversations.subagent.statusRunning': 'läuft',
  'conversations.subagent.statusCompleted': 'abgeschlossen',
  'conversations.subagent.statusFailed': 'fehlgeschlagen',
  'conversations.subagent.statusAwaitingUser': 'warte auf Benutzer',
  'conversations.subagent.statusCancelled': 'abgebrochen',
  'conversations.agentTaskInsights.title': 'Agenten-Aufgabeneinblicke',
  'conversations.agentTaskInsights.response': 'Antwort',
  'conversations.agentTaskInsights.processSourceTitle': 'Agentenprozess-Quelle',
  'conversations.agentTaskInsights.stepsHeading': 'Schritte',
  'conversations.agentTaskInsights.sourcesHeading': 'Quellen',
  'conversations.agentTaskInsights.noSteps': 'Keine Schritte aufgezeichnet',
  'conversations.agentTaskInsights.viewProcessSource':
    'Vollständige Agentenprozess-Quelle anzeigen',
  'conversations.agentTaskInsights.processing': 'Wird verarbeitet',
  'conversations.agentTaskInsights.done': 'Fertig',
  'conversations.agentTaskInsights.failed': 'Fehlgeschlagen',
  'conversations.agentTaskInsights.running': 'Läuft',
  'conversations.agentTaskInsights.cancelled': 'Abgebrochen',
  'conversations.agentTaskInsights.awaitingUser': 'Wartet auf Eingabe',
  'conversations.agentTaskInsights.viewDetails': 'Details anzeigen',
  'conversations.agentTaskInsights.subagentsHeading': 'Unteragenten',
  'daemon.serviceBlockingGate.body': 'Körper',
  'daemon.serviceBlockingGate.downloadHint': 'Hinweis herunterladen',
  'daemon.serviceBlockingGate.downloadLatest': 'Lade die neueste Version herunter',
  'daemon.serviceBlockingGate.retryCore': 'Core erneut versuchen',
  'daemon.serviceBlockingGate.retryFailed':
    'Wiederholungsversuch fehlgeschlagen. Lade den neuesten App-Build herunter und versuche es erneut.',
  'daemon.serviceBlockingGate.retrying': 'Erneuter Versuch...',
  'daemon.serviceBlockingGate.title': 'OpenHuman Kern ist nicht verfügbar',
  'home.banners.discordSubtitle': 'Discord Untertitel',
  'home.banners.discordTitle': 'Tritt unserem Discord bei',
  'home.banners.earlyBirdDismiss': 'Frühbucherbanner schließen',
  'home.banners.earlyBirdFirstSub': 'erstes Abonnement.',
  'home.banners.earlyBirdOn': 'Frühaufsteher',
  'home.banners.earlyBirdTitle': 'Die ersten 1.000 Nutzer erhalten 60 % Rabatt.',
  'home.banners.earlyBirdUseCode': 'Frühbucher-Nutzungscode',
  'home.banners.getSubscription': 'Hol dir ein Abonnement',
  'home.banners.promoCreditsBody': 'Du hast {amount} an Promo-Guthaben. Du kannst',
  'home.banners.promoCreditsUsage': 'und erhalte 10x mehr Nutzung.',
  'intelligence.memoryChunk.detail.chunk': 'Brocken',
  'intelligence.memoryChunk.detail.copyChunkId': 'Chunk-ID kopieren',
  'intelligence.memoryChunk.detail.embeddingInfo': 'bge-m3 1024dim',
  'intelligence.memoryChunk.detail.noEmbedding': 'Keine Einbettung',
  'intelligence.memoryChunk.letterhead.from': 'von',
  'intelligence.memoryChunk.letterhead.to': 'zu',
  'intelligence.memoryChunk.mentioned.chunkOne': '1 Stück',
  'intelligence.memoryChunk.mentioned.chunkOther': '{count} Stücke',
  'intelligence.memoryChunk.mentioned.heading': 'e r w ä h n t',
  'intelligence.memoryChunk.scoreBars.ariaScore': '{name} erzielen einen Wert von {pct} Prozent',
  'intelligence.memoryChunk.scoreBars.atThreshold': 'um {threshold}',
  'intelligence.memoryChunk.scoreBars.dropped': 'fallen gelassen',
  'intelligence.memoryChunk.scoreBars.heading': 'Warum hast du es behalten?',
  'intelligence.memoryChunk.scoreBars.kept': 'gehalten',
  'intelligence.diagram.title': 'Architekturdiagramm',
  'intelligence.diagram.description':
    'Neueste lokale Architektur-Ausgabe vom konfigurierten Diagramm-Endpunkt.',
  'intelligence.diagram.refresh': 'Refresh',
  'intelligence.diagram.refreshAria': 'Diagramm aktualisieren',
  'intelligence.diagram.emptyTitle': 'Noch kein Diagramm verfügbar',
  'intelligence.diagram.emptyDescription':
    'Generiere ein Architekturdiagramm über den Orchestrator – dieses Panel wird dann automatisch vom konfigurierten lokalen Endpunkt aktualisiert.',
  'intelligence.diagram.skillInstallCommand': 'npx skills add yizhiyanhua-ai/fireworks-tech-graph',
  'intelligence.diagram.promptExample':
    'Generiere ein Architekturdiagramm des aktuellen Schwarms im dunklen Terminal-Stil',
  'intelligence.diagram.imageAlt': 'Zuletzt generiertes OpenHuman-Architekturdiagramm',
  'intelligence.diagram.refreshesEvery': 'Aktualisiert alle {seconds} s',
  'intelligence.memoryText.entityTypePrefix': 'Entitätstyp',
  'intelligence.screenDebug.active': 'Aktiv',
  'intelligence.screenDebug.app': 'App',
  'intelligence.screenDebug.bounds': 'Grenzen',
  'intelligence.screenDebug.captureAlt': 'Testergebnis erfassen',
  'intelligence.screenDebug.captureFailed': 'Fehlgeschlagen',
  'intelligence.screenDebug.captureSuccess': 'Erfolg',
  'intelligence.screenDebug.captureTest': 'Capture-Test',
  'intelligence.screenDebug.capturing': 'Erfassen',
  'intelligence.screenDebug.frames': 'Rahmen',
  'intelligence.screenDebug.idle': 'Leerlauf',
  'intelligence.screenDebug.lastApp': 'Letzte App',
  'intelligence.screenDebug.mode': 'Modus',
  'intelligence.screenDebug.permAccessibility': 'Zugänglichkeit aufrechterhalten',
  'intelligence.screenDebug.permInput': 'Perm-Eingabe',
  'intelligence.screenDebug.permScreen': 'Barrierefreiheit',
  'intelligence.screenDebug.permissions': 'Berechtigungen',
  'intelligence.screenDebug.platformNotSupported': 'Plattform nicht unterstützt',
  'intelligence.screenDebug.recentVisionSummaries': 'Aktuelle Visionszusammenfassungen',
  'intelligence.screenDebug.session': 'Sitzung',
  'intelligence.screenDebug.size': 'Größe',
  'intelligence.screenDebug.status': 'Status',
  'intelligence.screenDebug.testCapture': 'Testaufnahme',
  'intelligence.screenDebug.time': 'Zeit',
  'intelligence.screenDebug.title': 'Titel',
  'intelligence.screenDebug.unknown': 'Unbekannt',
  'intelligence.screenDebug.visionQueue': 'Vision-Warteschlange',
  'intelligence.screenDebug.visionState': 'Visionszustand',
  'intelligence.tasks.activeBoardOne': '1 aktives Forum für alle Gespräche',
  'intelligence.tasks.activeBoardOther': '{count} aktive Boards in allen Gesprächen',
  'intelligence.tasks.empty': 'Noch keine Agenten-Taskboards',
  'intelligence.tasks.emptyHint': 'Leerer Hinweis',
  'intelligence.tasks.failedToLoad': 'Laden fehlgeschlagen',
  'intelligence.tasks.live': 'leben',
  'intelligence.tasks.loadingBoards': 'Taskboards werden geladen…',
  'intelligence.tasks.threadPrefix': 'Thread {thread}',
  'intelligence.tasks.subtitle': 'Ihre Aufgaben und Agenten-Taskboards im gesamten Arbeitsbereich.',
  'intelligence.tasks.newTask': 'Neue Aufgabe',
  'intelligence.tasks.personalBoardTitle': 'Agentenaufgaben',
  'intelligence.tasks.personalEmpty': 'Noch keine persönlichen Aufgaben',
  'intelligence.tasks.composer.title': 'Neue Aufgabe',
  'intelligence.tasks.composer.titleLabel': 'Titel',
  'intelligence.tasks.composer.titlePlaceholder': 'Was muss getan werden?',
  'intelligence.tasks.composer.statusLabel': 'Status',
  'intelligence.tasks.composer.attachLabel': 'Dem Gespräch beifügen',
  'intelligence.tasks.composer.attachNone': 'Persönlich (kein Gespräch)',
  'intelligence.tasks.composer.objectiveLabel': 'Objektiv',
  'intelligence.tasks.composer.objectivePlaceholder': 'Optional – das gewünschte Ergebnis',
  'intelligence.tasks.composer.notesLabel': 'Notizen',
  'intelligence.tasks.composer.notesPlaceholder': 'Optionale Notizen',
  'intelligence.tasks.composer.create': 'Aufgabe erstellen',
  'intelligence.tasks.composer.creating': 'Erstellen…',
  'intelligence.tasks.composer.createFailed': 'Die Aufgabe konnte nicht erstellt werden',
  'intelligence.tasks.composer.assignAgentLabel': 'Einen Agenten automatisch daran arbeiten lassen',
  'intelligence.tasks.composer.assignAgentHint':
    'Das Aufgabenboard übernimmt sie und erledigt sie für dich. Für eine einfache persönliche Aufgabe ausgeschaltet lassen.',
  'intelligence.tasks.sourceList.subtitle':
    'Quellaufgaben, die in Agentenarbeit umgewandelt werden sollen.',
  'intelligence.tasks.sourceList.empty': 'Keine Quellaufgaben in der Warteschlange.',
  'intelligence.tasks.sourceList.queued': 'Eingereiht',
  'intelligence.tasks.sourceList.workOnTask': 'Aufgabe bearbeiten',
  'intelligence.tasks.sourcePlan.title': 'Quellaufgabe verfeinern',
  'intelligence.tasks.sourcePlan.subtitle':
    'Prüfen Sie den Rechercheentwurf, bevor eine Agentenaufgabe erstellt wird.',
  'intelligence.tasks.sourcePlan.researchAgent': 'Entwurf des Recherche-Agenten',
  'intelligence.tasks.sourcePlan.approve': 'Plan genehmigen',
  'intelligence.tasks.sourcePlan.creating': 'Aufgabe wird erstellt…',
  'intelligence.tasks.sourcePlan.createFailed': 'Die Agentenaufgabe konnte nicht erstellt werden',
  'intelligence.tasks.workTaskFailed': 'Die Arbeit an der Aufgabe konnte nicht gestartet werden',
  'intelligence.workTask.sourceTaskHeading': 'Quellaufgabe:',
  'intelligence.workTask.repositoryLine': '- Repository (Repo): {repo}',
  'intelligence.workTask.externalIdLine': '- Externe ID: {externalId}',
  'intelligence.workTask.urlLine': '- Adresse: {url}',
  'intelligence.workTask.closingInstruction':
    'Beginne damit, den konkreten Umsetzungsplan kurz zu wiederholen, und führe ihn dann aus. Halte den Fortschritt in diesem Thread sichtbar und aktualisiere das Aufgabenboard, wenn sich der Arbeitsstand ändert.',
  'intelligence.agentWork.subtitle':
    'Jeder Hintergrund-Agentenlauf, gruppiert nach Lebenszyklusstatus.',
  'intelligence.agentWork.loading': 'Agentenarbeit wird geladen…',
  'intelligence.agentWork.failedToLoad': 'Agentenarbeit konnte nicht geladen werden',
  'intelligence.agentWork.empty': 'Noch keine Hintergrund-Agentenläufe.',
  'intelligence.agentWork.bucket.needsInput': 'Eingabe nötig',
  'intelligence.agentWork.bucket.working': 'In Arbeit',
  'intelligence.agentWork.bucket.completed': 'Abgeschlossen',
  'intelligence.agentWork.bucket.failed': 'Fehlgeschlagen',
  'intelligence.agentWork.bucket.stopped': 'Angehalten',
  'intelligence.agentWork.column.agent': 'Agent',
  'intelligence.agentWork.column.status': 'Status',
  'intelligence.agentWork.column.elapsed': 'Verstrichen',
  'intelligence.agentWork.column.cost': 'Kosten',
  'intelligence.agentWork.column.tokens': 'Tokens',
  'intelligence.agentWork.status.pending': 'Ausstehend',
  'intelligence.agentWork.status.running': 'Läuft',
  'intelligence.agentWork.status.awaitingUser': 'Eingabe nötig',
  'intelligence.agentWork.status.paused': 'Pausiert',
  'intelligence.agentWork.status.completed': 'Abgeschlossen',
  'intelligence.agentWork.status.failed': 'Fehlgeschlagen',
  'intelligence.agentWork.status.cancelled': 'Abgebrochen',
  'intelligence.agentWork.status.interrupted': 'Unterbrochen',
  'intelligence.agentWork.kind.subagent': 'Subagent',
  'intelligence.agentWork.kind.workerThread': 'Worker-Thread',
  'intelligence.agentWork.kind.backgroundAgent': 'Hintergrundagent',
  'intelligence.agentWork.kind.teamMember': 'Teammitglied',
  'intelligence.agentWork.kind.workflowChild': 'Workflow-Unterelement',
  'intelligence.agentWork.openThread': 'Thread öffnen',
  'intelligence.agentWork.openWorker': 'Worker öffnen',
  'worktree.label': 'Worktree',
  'worktree.dirty': 'Nicht committete Änderungen',
  'worktree.clean': 'Sauber',
  'worktree.changedFile': 'geänderte Datei',
  'worktree.changedFiles': 'geänderte Dateien',
  'worktree.removing': 'Wird entfernt…',
  'worktree.removeFailed': 'Worktree konnte nicht entfernt werden',
  'worktree.diffFailed': 'Diff konnte nicht geladen werden',
  'worktree.diffLoading': 'Diff wird geladen…',
  'worktree.diffEmpty': 'Keine Änderungen gegenüber HEAD.',
  'worktree.dirtyConfirm':
    'Dieser Worktree hat nicht committete Änderungen. Beim Entfernen geht diese Arbeit verloren. Der Worker-Branch bleibt erhalten.',
  'worktree.action.open': 'Ordner öffnen',
  'worktree.action.diff': 'Diff',
  'worktree.action.hideDiff': 'Diff ausblenden',
  'worktree.action.remove': 'Entfernen',
  'worktree.action.removeAnyway': 'Verwerfen & entfernen',
  'worktree.action.preserve': 'Beibehalten',
  'worktree.panel.subtitle':
    'Isolierte Git-Worktrees, die von parallelen Agenten-Workern erstellt wurden.',
  'worktree.panel.loading': 'Worktrees werden geladen…',
  'worktree.panel.failedToLoad': 'Worktrees konnten nicht geladen werden',
  'worktree.panel.empty':
    'Keine isolierten Worktrees. Parallele Worker mit Worktree-Isolation erscheinen hier.',
  'worktree.panel.overlapsTitle': 'Überlappende Änderungen',
  'worktree.panel.overlapHint':
    'Diese Dateien wurden von mehr als einem Worktree geändert — vor dem Mergen abgleichen.',
  'intelligence.agentWork.action.stop': 'Stoppen',
  'intelligence.agentWork.action.retry': 'Wiederholen',
  'intelligence.agentWork.action.continue': 'Fortsetzen',
  'intelligence.agentWork.action.followUp': 'Nachfassen',
  'intelligence.agentWork.action.send': 'Senden',
  'intelligence.agentWork.action.cancel': 'Abbrechen',
  'intelligence.agentWork.action.continuePlaceholder': 'Antworten, um diesen Agenten freizugeben…',
  'intelligence.agentWork.action.followUpPlaceholder': 'Eine Folgeanweisung senden…',
  'intelligence.agentWork.action.failed': 'Aktion fehlgeschlagen',
  'intelligence.teams.subtitle': 'Koordinierte Agententeams und die Aufgaben, die sie teilen.',
  'intelligence.teams.loading': 'Teams werden geladen…',
  'intelligence.teams.failedToLoad': 'Teams konnten nicht geladen werden',
  'intelligence.teams.empty': 'Noch keine Agententeams',
  'intelligence.teams.emptyHint':
    'Teams erscheinen hier, wenn ein Agent koordinierte Unteragenten erzeugt, die ein gemeinsames Ziel verfolgen.',
  'intelligence.teams.refresh': 'Aktualisieren',
  'intelligence.teams.backToList': 'Alle Teams',
  'intelligence.teams.status.active': 'Aktiv',
  'intelligence.teams.status.closed': 'Geschlossen',
  'intelligence.teams.header.lead': 'Leitung',
  'intelligence.teams.header.taskCount': '{count} Aufgaben',
  'intelligence.teams.header.memberCount': '{count} Mitglieder',
  'intelligence.teams.member.active': 'Aktiv',
  'intelligence.teams.member.pending': 'Ausstehend',
  'intelligence.teams.member.idle': 'Inaktiv',
  'intelligence.teams.member.stopped': 'Gestoppt',
  'intelligence.teams.column.todo': 'Zu tun',
  'intelligence.teams.column.ready': 'Bereit',
  'intelligence.teams.column.inProgress': 'In Bearbeitung',
  'intelligence.teams.column.blocked': 'Blockiert',
  'intelligence.teams.column.done': 'Fertig',
  'intelligence.teams.emptyColumn': 'Leer',
  'intelligence.teams.unclaimed': 'Nicht zugewiesen',
  'intelligence.teams.pickedUpBy': 'Übernommen von {name}',
  'intelligence.teams.depLockTitle': '{count} nicht erfüllte Abhängigkeiten',
  'intelligence.teams.gate.pending': 'Prüfung ausstehend',
  'intelligence.teams.gate.passed': 'Prüfung bestanden',
  'intelligence.teams.gate.failed': 'Prüfung fehlgeschlagen',
  'intelligence.teams.gate.label': 'Prüfung: {status}',
  'intelligence.teams.activity.title': 'Teamaktivität',
  'intelligence.teams.activity.empty': 'Noch keine Nachrichten',
  'intelligence.teams.activity.toTeam': 'Team',
  'intelligence.teams.member.start': 'Starten',
  'intelligence.teams.composer.placeholder': 'Einem Teammitglied schreiben…',
  'intelligence.teams.composer.send': 'Senden',
  'intelligence.teams.composer.recipient': 'Empfänger',
  'intelligence.teams.composer.toTeam': 'Gesamtes Team',
  'intelligence.teams.action.blocked': 'Wartet auf Abhängigkeiten',
  'intelligence.teams.action.alreadyClaimed': 'Bereits von einem anderen Teammitglied übernommen',
  'intelligence.teams.action.alreadyActive': 'Teammitglied läuft bereits',
  'intelligence.teams.action.noClaimableTask': 'Keine Aufgabe für dieses Teammitglied bereit',
  'intelligence.teams.action.unknownTask': 'Aufgabe nicht gefunden',
  'intelligence.refine.objectiveDefault':
    'Verwandle die Quellaufgabe in eine umsetzungsbereite Agentenaufgabe: {title}',
  'intelligence.refine.sourceLine': 'Quelle: {url}',
  'intelligence.refine.sourceIntake': 'Quelle: Aufgabenquellen-Eingang',
  'intelligence.refine.repositoryLine': 'Repository (Repo): {repo}',
  'intelligence.refine.externalTaskLine': 'Externe Aufgabe: {externalId}',
  'intelligence.refine.planStep1':
    'Lies die verknüpfte Quellaufgabe und bestätige das genau gewünschte Verhalten.',
  'intelligence.refine.planStep2':
    'Untersuche die relevanten Codepfade und ermittle die kleinste Umsetzungsgrenze.',
  'intelligence.refine.planStep3':
    'Setze die Änderung mit gezielten Tests rund um das nutzersichtbare Verhalten um.',
  'intelligence.refine.planStep4':
    'Führe gezielte Validierung durch und halte verbleibende Risiken oder Folgearbeiten fest.',
  'intelligence.refine.acceptance1':
    'Die Anforderungen der Quellaufgabe sind in der finalen Umsetzung abgebildet.',
  'intelligence.refine.acceptance2':
    'Relevante Unit- oder Integrationstests decken das geänderte Verhalten ab.',
  'intelligence.refine.acceptance3':
    'Validierungsergebnisse und ungelöste Risiken werden bei Abschluss festgehalten.',
  'notifications.card.dismiss': 'Benachrichtigung verwerfen',
  'notifications.card.importanceTitle': 'Wichtigkeit: {pct}%',
  'notifications.center.empty': 'Noch keine Benachrichtigungen',
  'notifications.center.emptyHint': 'Leerer Hinweis',
  'notifications.center.filterAll': 'Alles filtern',
  'notifications.center.markAllRead': 'Alles als gelesen markieren',
  'notifications.center.title': 'Benachrichtigungen',
  'notifications.meeting.joinListen': 'Beitreten (nur zuhören)',
  'notifications.meeting.joinActive': 'Beitreten und antworten',
  'notifications.meeting.skip': 'Nicht dieses',
  'notifications.meeting.alwaysJoin': 'Immer beitreten',
  'notifications.meeting.actionError':
    'Diese Aktion konnte nicht abgeschlossen werden. Bitte versuche es erneut.',
  'oauth.button.connecting': 'Verbinden...',
  'oauth.button.loopbackTimeout':
    'Anmeldung abgelaufen — der Browser hat die OAuth-Weiterleitung nicht abgeschlossen. Bitte versuche es erneut.',
  'oauth.login.continueWith': 'Weiter mit',
  'onboarding.contextGathering.buildingDesc': 'Gebäudebeschreibung',
  'onboarding.contextGathering.buildingProfile': 'Erstelle dein Profil...',
  'onboarding.contextGathering.continueToChat': 'Weiter chatten',
  'onboarding.contextGathering.coreAlive':
    'Der Kern ist erreichbar – der erste Start kann eine Minute dauern.',
  'onboarding.contextGathering.coreAliveProbing': 'Kernverbindung prüfen…',
  'onboarding.contextGathering.coreUnreachable':
    'Der Kern reagiert nicht. Du kannst fortfahren und es später noch einmal versuchen.',
  'onboarding.contextGathering.errorDesc':
    'Dein Chat ist fertig. Wir erstellen im Hintergrund weiterhin dein vollständiges Profil, sodass du jetzt fortfahren und es im Laufe der Zeit verfeinern kannst.',
  'onboarding.contextGathering.stillWorkingDesc':
    'Der erste Start kann 30–60 Sekunden dauern, während wir dein lokales Modell und deine Tools aufwärmen. Du kannst jederzeit weiter chatten – die Profilerstellung läuft im Hintergrund weiter.',
  'onboarding.contextGathering.stillWorkingTitle': 'Ich arbeite immer noch an deinem Profil…',
  'onboarding.contextGathering.title': 'Kontexterfassung',
  'openhuman.team_list_teams': 'Teamlisten-Teams',
  'overlay.ariaAttention': 'Achtung-Nachricht',
  'overlay.ariaCompanion': 'Begleiter aktiv',
  'overlay.ariaOrb': 'OpenHuman-Overlay',
  'overlay.ariaVoiceActive': 'Spracheingabe aktiv',
  'overlay.companion.error': 'Fehler',
  'overlay.companion.listening': 'Zuhören…',
  'overlay.companion.pointing': 'Zeigen…',
  'overlay.companion.speaking': 'Apropos…',
  'overlay.companion.thinking': 'Denken…',
  'overlay.orbTitle': 'Zum Verschieben ziehen · Doppelklicken, um die Position zurückzusetzen',
  'pages.settings.account.connections': 'Verbindungen',
  'pages.settings.account.connectionsDesc': 'Überprüfe und verwalte verknüpfte Kontoverbindungen',
  'pages.settings.account.migration': 'Von einem anderen Assistenten importieren',
  'pages.settings.account.migrationDesc':
    'Migriere Speicher und Notizen von OpenClaw (oder bald Hermes) in diesen Arbeitsbereich.',
  'pages.settings.account.privacy': 'Privatsphäre',
  'pages.settings.account.privacyDesc':
    'Verwalte die Datenfreigabe und anonymisierte Nutzungspräferenzen',
  'pages.settings.account.recoveryPhrase': 'Wiederherstellungssatz',
  'pages.settings.account.recoveryPhraseDesc':
    'Verwalte deine BIP39-Wiederherstellungsphrase für Verschlüsselung und Wallet-Zugriff',
  'pages.settings.account.team': 'Team',
  'pages.settings.account.teamDesc': 'Verwalte dein Team, deine Mitglieder und Einladungen',
  'pages.settings.accountSection.description':
    'Wiederherstellungsphrase, Team, Verbindungen und Datenschutzeinstellungen.',
  'pages.settings.accountSection.title': 'Konto',
  'pages.settings.ai.llm': 'Llm',
  'pages.settings.ai.llmDesc': 'Llm absch',
  'pages.settings.ai.voice': 'Stimme',
  'pages.settings.ai.voiceDesc': 'Sprachbeschreibung',
  'pages.settings.aiSection.description':
    'Sprachmodellanbieter, lokal Ollama und Sprache (STT / TTS).',
  'pages.settings.aiSection.title': 'AI',
  'settings.developerMenu.composio.title': 'Composio',
  'settings.developerMenu.composio.desc':
    'Routing-Modus, Integrations-Trigger und Trigger-Verlaufsarchiv.',
  'pages.settings.features.desktopCompanion': 'Desktop-Begleiter',
  'pages.settings.features.desktopCompanionDesc':
    'Sprachassistent mit Bildschirmerkennung – hört zu, sieht, spricht, zeigt',
  'pages.settings.features.messagingChannels': 'Messaging-Kanäle',
  'pages.settings.features.messagingChannelsDesc': 'Nachrichtenkanäle, Abschn',
  'pages.settings.features.notifications': 'Benachrichtigungen',
  'pages.settings.features.notificationsDesc': 'Benachrichtigungen absch',
  'pages.settings.features.screenAwareness': 'Bildschirmbewusstsein',
  'pages.settings.features.screenAwarenessDesc': 'Abschn. Bildschirmwahrnehmung',
  'pages.settings.features.tools': 'Werkzeuge',
  'pages.settings.features.toolsDesc': 'Werkzeugbeschr',
  'pages.settings.featuresSection.description': 'Bildschirmbewusstsein, Nachrichten und Tools.',
  'pages.settings.featuresSection.title': 'Funktionen',
  'privacy.dataKind.credentials': 'Anmeldeinformationen',
  'privacy.dataKind.derived': 'Abgeleitet',
  'privacy.dataKind.diagnostics': 'Diagnose',
  'privacy.dataKind.metadata': 'MetaDaten',
  'privacy.dataKind.raw': 'Roh',
  'privacy.whatLeaves.link.label': 'Was verlässt meinen Computer?',
  'rewards.community.achievementsUnlocked': '{unlocked} von {total} Erfolgen freigeschaltet',
  'rewards.community.connectDiscord': 'Verbinde Discord',
  'rewards.community.connectDiscordError':
    'Discord-Verbindung konnte nicht gestartet werden. Bitte versuche es erneut.',
  'rewards.community.connectingDiscord': 'Verbinden…',
  'rewards.community.cumulativeTokens': 'Kumulierte Token',
  'rewards.community.currentStreak': 'Aktuelle Serie',
  'rewards.community.disconnectDiscord': 'Trennen',
  'rewards.community.disconnectDiscordError':
    'Discord konnte nicht getrennt werden. Bitte versuche es erneut.',
  'rewards.community.disconnectingDiscord': 'Wird getrennt…',
  'rewards.community.discordAccount': 'Discord-Konto',
  'rewards.community.discordConnected': 'Discord verbunden',
  'rewards.community.discordConnectedAs': 'Verbunden als {username}',
  'rewards.community.discordLinkedNotInGuild': 'Verlinkt, aber nicht auf dem Server',
  'rewards.community.discordMember': 'Dem Server beigetreten',
  'rewards.community.discordNotLinked': 'Nicht verlinkt',
  'rewards.community.discordServer': 'Discord Server',
  'rewards.community.discordStatusUnavailable': 'Mitgliedschaftsstatus nicht verfügbar',
  'rewards.community.discordWaiting': 'Warten auf Backend-Synchronisierung',
  'rewards.community.heroSubtitle':
    'Schalte exklusive Kanäle, Unterstützerabzeichen und Backend-synchronisierte Belohnungen frei, indem du dein Discord-Konto verknüpfst.',
  'rewards.community.heroTitle': 'Verdiene Belohnungen und Discord Rollen',
  'rewards.community.joinDiscord': 'Tritt Discord bei',
  'rewards.community.loadingRewards': 'Prämien werden geladen…',
  'rewards.community.locked': 'Gesperrt',
  'rewards.community.retrying': 'Erneuter Versuch…',
  'rewards.community.roleAssigned': 'Rolle zugewiesen',
  'rewards.community.roleAssignmentCount': '{assigned} von {unlocked} Rollen zugewiesen',
  'rewards.community.roleClaimDesc':
    'Du hast Discord-Rollen freigeschaltet, bist dem OpenHuman-Server aber noch nicht beigetreten. Tritt bei, damit sie automatisch zugewiesen werden.',
  'rewards.community.roleClaimTitle': 'Hol dir deine Discord-Rollen',
  'rewards.community.roleJoinToClaim': 'Server beitreten zum Abholen',
  'rewards.community.rolePending': 'Rolle wird synchronisiert…',
  'rewards.community.rolesAndRewards': 'Rollen und Belohnungen',
  'rewards.community.streakDays': '{n} Tage',
  'rewards.community.syncPending': 'Synchronisierung der Prämien steht aus',
  'rewards.community.syncPendingDesc': 'Synchronisierung ausstehend',
  'rewards.community.syncUnavailable': 'Synchronisierung nicht verfügbar',
  'rewards.community.tryAgain': 'Erneuter Versuch…',
  'rewards.community.unknown': 'Unbekannt',
  'rewards.community.unlocked': 'Entsperrt',
  'rewards.community.yourProgress': 'Dein Fortschritt',
  'rewards.coupon.colCode': 'Code',
  'rewards.coupon.colRedeemed': 'Eingelöst',
  'rewards.coupon.colReward': 'Belohnung',
  'rewards.coupon.colStatus': 'Status',
  'rewards.coupon.loadingHistory': 'Prämienverlauf wird geladen…',
  'rewards.coupon.noCodes': 'Es wurden noch keine Prämiencodes eingelöst.',
  'rewards.coupon.pending': 'Ausstehend',
  'rewards.coupon.placeholder': 'Gutscheincode',
  'rewards.coupon.promoCredits': 'Promo-Credits',
  'rewards.coupon.recentRedemptions': 'Aktuelle Einlösungen',
  'rewards.coupon.redeemAccepted':
    '{code} akzeptiert. {amount} wird entsperrt, nachdem die erforderliche Aktion abgeschlossen ist.',
  'rewards.coupon.redeemButton': 'Code einlösen',
  'rewards.coupon.redeemSuccess': '{code} eingelöst. {amount} wurde zu deinen Credits hinzugefügt.',
  'rewards.coupon.redeemedCodes': 'Eingelöste Codes',
  'rewards.coupon.redeeming': 'Einlösen...',
  'rewards.coupon.statusApplied': 'Angewendet',
  'rewards.coupon.statusPendingAction': 'Ausstehende Maßnahmen',
  'rewards.coupon.statusRedeemed': 'Eingelöst',
  'rewards.coupon.subtitle': 'Untertitel',
  'rewards.coupon.title': 'Gutscheincode einlösen',
  'rewards.referralSection.activity': 'Empfehlungsaktivität',
  'rewards.referralSection.apply': 'Bewerben…',
  'rewards.referralSection.applying': 'Bewerben…',
  'rewards.referralSection.colReferredUser': 'Empfohlener Benutzer',
  'rewards.referralSection.colReward': 'Belohnung',
  'rewards.referralSection.colStatus': 'Status',
  'rewards.referralSection.colUpdated': 'Aktualisiert',
  'rewards.referralSection.completed': 'Abgeschlossen',
  'rewards.referralSection.copyCode': 'Code kopieren',
  'rewards.referralSection.copyFailed': 'Der Kopiervorgang ist fehlgeschlagen',
  'rewards.referralSection.haveCode': 'Hast du einen Empfehlungscode?',
  'rewards.referralSection.haveCodeDesc': 'Habe Codebeschreibung',
  'rewards.referralSection.linked': 'Verlinkt',
  'rewards.referralSection.linkedCode': '(Code {code})',
  'rewards.referralSection.loading': 'Empfehlungsprogramm wird geladen…',
  'rewards.referralSection.retry': 'Wiederholen',
  'rewards.referralSection.noReferrals': 'Keine Empfehlungen',
  'rewards.referralSection.pendingReferrals': 'Ausstehende Empfehlungen',
  'rewards.referralSection.placeholder': 'Empfehlungscode',
  'rewards.referralSection.share': 'Teilen',
  'rewards.referralSection.statusCompleted': 'Status abgeschlossen',
  'rewards.referralSection.statusExpired': 'Status abgelaufen',
  'rewards.referralSection.statusJoined': 'Status beigetreten',
  'rewards.referralSection.subtitle': 'Untertitel',
  'rewards.referralSection.title': 'Freunde einladen, Credits verdienen',
  'rewards.referralSection.totalEarned': 'Insgesamt verdient',
  'rewards.referralSection.yourCode': 'Dein Code',
  'settings.ai.addCloudProvider': 'Cloud-Anbieter hinzufügen',
  'settings.ai.addProvider': 'Sparen…',
  'settings.ai.apiKeyFieldLabel': 'Bezeichnung des API-Schlüsselfelds',
  'settings.ai.apiKeyRequired': 'Bitte füge deinen API-Schlüssel ein, um fortzufahren.',
  'settings.ai.apiKeyStoredEncrypted': 'API-Schlüssel verschlüsselt gespeichert',
  'settings.ai.apiKeysEncrypted': 'auth-profiles.json',
  'settings.ai.clearStoredKey': 'Gespeicherten Schlüssel löschen',
  'settings.ai.connectProvider': 'Anbieter verbinden',
  'settings.ai.customRouting': 'Benutzerdefiniertes Routing',
  'settings.ai.defaultResolvesTo': 'Standard wird aufgelöst zu',
  'settings.ai.discard': 'Verwerfen',
  'settings.ai.editProvider': 'Anbieter bearbeiten',
  'settings.ai.llmProviders': 'LLM Anbieter',
  'settings.ai.llmProvidersDesc': 'LLM-Anbieter absch',
  'settings.ai.localOllama': 'Lokal (Ollama)',
  'settings.ai.modelLabel': 'Modell',
  'settings.ai.noCustomProviders': 'Keine benutzerdefinierten Anbieter',
  'settings.ai.openAiCompat.authHeaderExample': 'Autorisierung: Bearer <Ihr Schlüssel>',
  'settings.ai.openAiCompat.authHeaderLabel': 'Auth-Header',
  'settings.ai.openAiCompat.baseUrlLabel': 'Basis URL',
  'settings.ai.openAiCompat.baseUrlUnavailable': 'Nicht verfügbar',
  'settings.ai.openAiCompat.clearKey': 'Schlüssel löschen',
  'settings.ai.openAiCompat.description':
    'Verweisen Sie lokale Kabelbäume auf diesen /v1-Server, um durch die unten konfigurierten Anbieter zu routen. Die Authentifizierung verwendet einen stabilen Schlüssel, den Sie hier festgelegt haben, nicht den internen Kernträger der App.',
  'settings.ai.openAiCompat.keyConfigured': 'Schlüssel konfiguriert',
  'settings.ai.openAiCompat.keyRequired': 'Schlüssel erforderlich',
  'settings.ai.openAiCompat.rotateKey': 'Schlüssel drehen',
  'settings.ai.openAiCompat.setKey': 'Schlüssel einstellen',
  'settings.ai.openAiCompat.title': 'OpenAI-kompatibler Endpunkt',
  'settings.ai.providerLabel': 'Anbieter',
  'skills.mcpComingSoon.title': 'MCP Server',
  'skills.mcpComingSoon.description':
    'MCP-Server-Verwaltung kommt bald. Dieser Tab wird zur zentralen Anlaufstelle für das Entdecken, Verbinden und Überwachen deiner MCP-Server-Integrationen.',
  'settings.ai.routing': 'Routenführung',
  'settings.ai.claudeCode.button': 'Claude Code',
  'settings.ai.claudeCode.inlineNotConnected':
    'Nicht verbunden — leitet den Chat über deine lokale Claude Code CLI.',
  'settings.ai.claudeCode.checkingSignIn': 'Anmeldung wird geprüft…',
  'settings.ai.claudeCode.inlineConnected': 'Verbunden.',
  'settings.ai.claudeCode.signedInAs': 'Angemeldet als',
  'settings.ai.claudeCode.subscriptionFallback': 'Claude-Abo',
  'settings.ai.claudeCode.usingApiKeyEnv': 'Verwendet ANTHROPIC_API_KEY',
  'settings.ai.claudeCode.cliNotInstalled': 'CLI nicht installiert',
  'settings.ai.claudeCode.signInUnknown': 'Anmeldestatus unbekannt',
  'settings.ai.claudeCode.connectedNotSignedIn': 'Verbunden · nicht angemeldet',
  'settings.ai.claudeCode.modalTitle': 'Claude Code CLI',
  'settings.ai.claudeCode.modalDescription':
    'Leitet Chat-, Agenten- und Reasoning-Aufgaben über deine lokal installierte Claude Code CLI. Kein API-Schlüssel — sie nutzt die eigene Anmeldung der CLI.',
  'settings.ai.claudeCode.close': 'Schließen',
  'settings.ai.claudeCode.connection': 'Verbindung',
  'settings.ai.claudeCode.enabled': 'Aktiviert',
  'settings.ai.claudeCode.notEnabled': 'Nicht aktiviert',
  'settings.ai.claudeCode.disconnect': 'Trennen',
  'settings.ai.claudeCode.disconnecting': 'Wird getrennt…',
  'settings.ai.claudeCode.enable': 'Claude Code aktivieren',
  'settings.ai.claudeCode.enabling': 'Wird aktiviert…',
  'settings.ai.claudeCode.authentication': 'Authentifizierung',
  'settings.ai.claudeCode.recheck': 'Erneut prüfen',
  'settings.ai.claudeCode.checking': 'Wird geprüft…',
  'settings.ai.claudeCode.openingTerminal': 'Terminal wird geöffnet…',
  'settings.ai.claudeCode.signIn': 'Mit Claude anmelden',
  'settings.ai.claudeCode.reconnect': 'Erneut verbinden',
  'settings.ai.claudeCode.loginHint':
    'Öffnet ein Terminal, das claude login ausführt. Klicke nach Abschluss auf „Erneut prüfen“.',
  'settings.ai.claudeCode.loginError':
    'Das Anmelde-Terminal konnte nicht geöffnet werden. Bitte versuche es erneut.',
  'settings.ai.claudeCode.fullAccess': 'Voller Zugriff',
  'settings.ai.claudeCode.fullAccessOn':
    'Claude Code kann Befehle ausführen, das Netzwerk nutzen und Subagenten starten.',
  'settings.ai.claudeCode.fullAccessOff':
    'Nur Änderungen akzeptieren — wendet Dateiänderungen automatisch an, begrenzt Befehle & Netzwerk.',
  'settings.ai.claudeCode.sandboxNoteMac':
    'Unter macOS bleibt ~/.openhuman in beiden Modi durch die Sandbox geschützt.',
  'settings.ai.claudeCode.sandboxNoteOther':
    'Voller Zugriff ist auf dieser Plattform uneingeschränkt — aktiviere ihn nur, wenn du dem Workspace vertraust.',
  'settings.ai.claudeCode.enableToCheck': 'Aktiviere Claude Code, um die Anmeldung zu prüfen.',
  'settings.ai.claudeCode.usingApiKeyEnvDetail': 'Verwendet ANTHROPIC_API_KEY aus der Umgebung.',
  'settings.ai.claudeCode.notFoundInstall':
    'Claude Code CLI nicht gefunden — installiere mit: npm install -g @anthropic-ai/claude-code',
  'settings.ai.claudeCode.unknownDetail':
    'Anmeldestatus konnte nicht ermittelt werden. Deine claude CLI ist möglicherweise älter als die Auth-Status-Unterstützung — versuche „Erneut verbinden“ und dann „Erneut prüfen“.',
  'settings.ai.claudeCode.notSignedIn': 'Nicht angemeldet.',
  'settings.ai.routingCustom': 'Routing benutzerdefiniert',
  'settings.ai.routingDefault': 'Standard',
  'settings.ai.routingDesc': 'Routing-Beschreibung',
  'settings.ai.saveChanges': 'Sparen…',
  'settings.ai.saving': 'Sparen…',
  'settings.ai.unsavedChange': 'nicht gespeicherte Änderung',
  'settings.ai.unsavedChanges': 'nicht gespeicherte Änderungen',
  'settings.ai.workloadGroupBackground': 'Hintergrund der Arbeitslastgruppe',
  'settings.ai.workloadGroupChat': 'Workload-Gruppenchat',
  'settings.ai.disconnectProvider': 'Trennen {label}',
  'settings.ai.connectProviderLabel': 'Verbinden {label}',
  'settings.ai.editProviderEndpoint': 'Endpunkt für {label} bearbeiten',
  'settings.ai.defaultLocalEndpoint': 'http://localhost:11434/v1',
  'settings.ai.editEndpoint': 'Endpunkt bearbeiten',
  'settings.ai.endpointUrlLabel': 'Endpunkt URL',
  'settings.ai.localRuntimeHelper':
    'Wo {label} erreichbar ist. Die Standardeinstellung ist localhost. Richten Sie dies auf einen Remote-Host (z. B. http://10.0.0.4:11434/v1), um eine freigegebene Instanz zu verwenden.',
  'settings.ai.endpointUrlRequired': 'Endpunkt URL ist erforderlich.',
  'settings.ai.endpointProtocolRequired': 'Endpunkt muss mit http:// oder https://. beginnen.',
  'settings.ai.connectProviderDialog': 'Verbinden Sie {label}',
  'settings.ai.getProviderApiKey': 'API-Key erhalten',
  'settings.ai.or': 'Oder',
  'settings.ai.codexOauthMissingAuthUrl':
    'Codex OAuth hat keine Autorisierungs-URL zurückgegeben. Versuchen Sie, sich erneut anzumelden.',
  'settings.ai.codexOauthMissingCallbackUrl':
    'Fügen Sie nach der Anmeldung die Weiterleitungs-URL aus Ihrem Browser ein.',
  'settings.ai.openRouterOauthDescription':
    'Melden Sie sich mit OpenRouter an und importieren Sie einen benutzergesteuerten API-Schlüssel mit PKCE.',
  'settings.ai.connecting': 'Verbindung wird hergestellt...',
  'settings.ai.backgroundLoops': 'Hintergrundschleifen',
  'settings.ai.backgroundLoopsDesc':
    'Sehen Sie, was ohne Chat-Nachricht läuft, pausieren Sie die Herzschlagarbeit und überprüfen Sie die letzten Kreditbuchzeilen.',
  'settings.ai.heartbeatControls': 'Heartbeat-Kontrollen',
  'settings.ai.heartbeatControlsDesc':
    'Standardmäßig aus. Durch Aktivieren wird die Schleife gestartet; durch Deaktivieren wird der ausgeführte Task abgebrochen.',
  'settings.ai.heartbeatLoop': 'Heartbeat-Schleife',
  'settings.ai.heartbeatLoopDesc':
    'Master-Scheduler für Planer + optionale unbewusste Schlussfolgerung.',
  'settings.ai.subconsciousInference': 'Unterbewusste Inferenz',
  'settings.ai.subconsciousInferenceDesc':
    'Führt eine modellgestützte task/reflection-Auswertung bei Herzschlagzecken durch.',
  'settings.ai.calendarMeetingChecks': 'Kalenderbesprechungsprüfungen',
  'settings.ai.calendarMeetingChecksDesc':
    'Ruft die Kalenderereignisliste für aktive Google Kalenderverbindungen auf.',
  'settings.ai.calendarCap': 'Kalenderobergrenze',
  'settings.ai.connectionsPerTick': '{count} Verb./Takt',
  'settings.ai.meetingLookahead': 'Besprechungsvorausschau',
  'settings.ai.minutesShort': '{count} Min.',
  'settings.ai.reminderLookahead': 'Erinnerungsvorschau',
  'settings.ai.cronReminderChecks': 'Cron-Erinnerungsprüfungen',
  'settings.ai.cronReminderChecksDesc':
    'Scans aktivierten Cron-Jobs für Erinnerungen - wie anstehende Elemente.',
  'settings.ai.relevantNotificationChecks': 'Relevante Benachrichtigungsprüfungen',
  'settings.ai.relevantNotificationChecksDesc':
    'Fördert dringende lokale Benachrichtigungen in proaktive Warnungen.',
  'settings.ai.externalDelivery': 'Externe Zustellung',
  'settings.ai.externalDeliveryDesc':
    'Ermöglicht Heartbeat-Warnungen, proaktive Nachrichten an externe Kanäle zu senden.',
  'settings.ai.interval': 'Intervall',
  'settings.ai.running': 'Läuft...',
  'settings.ai.plannerTickNow': 'Planer tickt jetzt',
  'settings.ai.loadingHeartbeatControls': 'Heartbeat-Steuerelemente werden geladen...',
  'settings.ai.heartbeatControlsUnavailable': 'Heartbeat-Steuerelemente nicht verfügbar.',
  'settings.ai.loopMap': 'Schleifenzuordnung',
  'settings.ai.plannerSummary':
    'Planer: {sourceEvents} Quellereignisse, {sent} gesendet, {deduped} dedupliziert.',
  'settings.ai.routeLabel': 'Route: {route}',
  'settings.ai.on': 'ein',
  'settings.ai.off': 'aus',
  'settings.ai.recentUsageLedger': 'Ledger der letzten Nutzung',
  'settings.ai.recentUsageLedgerDesc':
    'Backend-Zeilen setzen action/time heute frei; Quell-Tags benötigen Backend-Unterstützung.',
  'settings.ai.latestSpend': 'Letzte Ausgaben: {amount} um {time} ({action})',
  'settings.ai.topActions': 'Top-Aktionen',
  'settings.ai.noSpendRows': 'Keine Ausgabenzeilen geladen.',
  'settings.ai.topHours': 'Top-Stunden',
  'settings.ai.noHourlySpend': 'Noch keine stündlichen Ausgaben.',
  'settings.ai.openhumanDefault': 'OpenHuman (Standard)',
  'settings.ai.localModelResolved': 'Ollama · {model}',
  'settings.ai.customRoutingForWorkload': 'Benutzerdefiniertes Routing für {label}',
  'settings.ai.loadingModels': 'Modelle werden geladen...',
  'settings.ai.enterModelIdManually': 'oder Modell-ID manuell eingeben:',
  'settings.ai.modelIdPlaceholderForProvider': '{slug} Modell-ID',
  'settings.ai.modelIdPlaceholder': 'model-id',
  'settings.ai.selectModel': 'Wählen Sie ein Modell...',
  'settings.ai.temperatureOverride': 'Temperatur-Override',
  'settings.ai.temperatureOverrideSlider': 'Temperatur-Override (Schieberegler)',
  'settings.ai.temperatureOverrideValue': 'Temperatur-Override (Wert)',
  'settings.ai.temperatureOverrideDesc':
    'Niedriger = deterministischer. Deaktivieren Sie diese Option, um den Anbieterstandard zu verwenden.',
  'settings.ai.modelVision': 'Unterstützt Bildeingabe (Vision)',
  'settings.ai.modelVisionDesc':
    'Aktivieren, wenn dieses Modell Bilder akzeptiert. Ermöglicht das Anhängen von Bildern im Chat, wenn dieses Modell ausgewählt ist.',
  'settings.ai.testFailed': 'Test fehlgeschlagen.',
  'settings.ai.testingModel': 'Modell wird getestet...',
  'settings.ai.modelResponse': 'Modellantwort',
  'settings.ai.providerWithValue': 'Anbieter: {value}',
  'settings.ai.noneDash': '—',
  'settings.ai.promptHelloWorld': 'Eingabeaufforderung: Hallo Welt',
  'settings.ai.startedAt': 'Gestartet: {value}',
  'settings.ai.waitingForModelResponse': 'Warten auf Antwort vom ausgewählten Modell ...',
  'settings.ai.response': 'Antwort',
  'settings.ai.testing': 'Testen...',
  'settings.ai.test': 'Testen',
  'settings.ai.slugMissingError': 'Geben Sie einen Anbieternamen ein, um einen Slug zu generieren.',
  'settings.ai.slugInUseError': 'Dieser Anbietername wird bereits verwendet.',
  'settings.ai.slugReservedError': 'Wählen Sie einen anderen Anbieternamen.',
  'settings.ai.providerNamePlaceholder': 'Mein Anbieter',
  'settings.ai.slugLabel': 'Slug:',
  'settings.ai.openAiUrlLabel': 'OpenAI-URL',
  'settings.ai.openAiUrlPlaceholder': 'https://api.openai.com/v1',
  'settings.ai.keepExistingKeyPlaceholder': 'Leer lassen, um vorhandenen Schlüssel beizubehalten',
  'settings.ai.reindexingMemory': 'Speicher neu indizieren',
  'settings.ai.reindexingMemoryMessage':
    'Einbettungen werden neu verarbeitet. {pending} Speicherelement(e) werden unter dem aktuellen Modell neu eingebettet — der semantische Abruf wird reduziert, bis dies abgeschlossen ist. Die Keyword-Suche funktioniert weiterhin, und das erneute Einbetten wird im Hintergrund fortgesetzt, wenn Sie dies schließen.',
  'settings.ai.signInWithOpenRouter': 'Anmelden mit OpenRouter',
  'settings.ai.weekBudget': 'Wochenbudget',
  'settings.ai.cycleRemaining': 'Verbleibender Zyklus',
  'settings.ai.cycleTotalSpend': 'Gesamtausgaben für den Zyklus',
  'settings.ai.avgSpendRow': 'Zeile mit durchschnittlichen Ausgaben',
  'settings.ai.backgroundApiReads': 'Bg API liest',
  'settings.ai.backgroundWakeups': 'BG-Wakeups',
  'settings.ai.budgetMath': 'Budgetberechnung',
  'settings.ai.rowsLeft': 'Verbleibende Zeilen',
  'settings.ai.rowsPerFullWeekBudget': 'Zeilen pro vollem Wochenbudget',
  'settings.ai.sampleBurnRate': 'Sample-Brennrate',
  'settings.ai.projectedEmpty': 'Projiziert leer',
  'settings.ai.apiReadsPerDollarRemaining': 'API Lesevorgänge pro verbleibendem $',
  'settings.ai.loopCallBudget': 'Schleifenaufrufbudget',
  'settings.ai.heartbeatTicks': 'Heartbeat-Ticks',
  'settings.ai.calendarPlannerCalls': 'Kalenderplaner ruft auf',
  'settings.ai.calendarFanoutCap': 'Kalender-Fanout-Obergrenze',
  'settings.ai.subconsciousModelCalls': 'Unterbewusste Modellaufrufe',
  'settings.ai.composioSyncScans': 'Composio Synchronisierungsscans',
  'settings.ai.totalBackgroundApiReadBudget': 'Gesamtbg API Lesebudget',
  'settings.ai.memoryWorkerPolls': 'Speicher-Worker-Umfragen',
  'settings.ai.defaultProviderName': 'OpenHuman',
  'settings.ai.routing.managed': 'Verwaltet',
  'settings.ai.routing.managedAlwaysOn': 'Immer aktiv',
  'settings.ai.routing.managedHint':
    'Verwaltet ist immer als Fallback verfügbar. Um dein eigenes Modell zu verwenden, wähle unten einen Routing-Modus.',
  'settings.ai.routing.managedDesc':
    'OpenHuman führt alle Inferenzen in der Cloud aus, wählt das beste Modell für die Aufgabe aus, optimiert die Kosten und behält die sichersten Routing-Standards bei.',
  'settings.ai.routing.managedMsg':
    'OpenHuman verarbeitet alle Rückschlüsse für jede Arbeitsbelastung und wählt automatisch die beste Route für Kosten, Qualität und Sicherheit.',
  'settings.ai.routing.useYourOwn': 'Verwenden Sie Ihre eigenen Modelle',
  'settings.ai.routing.useYourOwnDesc':
    'Wählen Sie ein Anbieter + Modell und leiten Sie jede Arbeitslast durch. Das ist einfach, aber es kann ineffizient sein, weil leichte und schwere Inferenz alle die gleiche Route teilen.',
  'settings.ai.routing.advanced': 'Erweitert',
  'settings.ai.routing.advancedDesc':
    'Wählen Sie verschiedene Modelle für verschiedene Aufgaben. Dies ist die beste Option für eine enge Kostenoptimierung und die beste Kontrolle.',
  'settings.ai.routing.customDesc':
    'Feinkörniges Routing gibt Ihnen die beste Kostenoptimierung und die meiste Kontrolle. Verwenden Sie die folgenden Zeilen, um zu entscheiden, welche Workloads verwaltet bleiben, welche Ihren freigegebenen Standard verwenden und welche an ein bestimmtes Modell angeheftet sind.',
  'settings.ai.routing.chatAndConversations': 'Chat und Gespräche',
  'settings.ai.routing.chatDesc':
    'Modelle, die während der direkten Benutzerinteraktion verwendet werden, Antworten, Argumentation, Agentenschleifen und Codierungshilfe.',
  'settings.ai.routing.backgroundTasks': 'Hintergrundaufgaben',
  'settings.ai.routing.bgTasksDesc':
    'Modelle, die außerhalb des Hauptgesprächsflusses für Zusammenfassung, Herzschlag, Lernen und unbewusste Bewertung verwendet werden.',
  'settings.ai.routing.workload.chat.label': 'Chat',
  'settings.ai.routing.workload.chat.description':
    'Direkter dialogischer Austausch hin und her – „Schnell“-Modus in Unterhaltungen',
  'settings.ai.routing.workload.chat.hint':
    'Empfohlen: ein günstiges oder mittelpreisiges, schnelles Chat-Modell mit hohem Tokens/Sek.-Durchsatz und geringer Latenz. Quelloffene lokale Modelle eignen sich hier gut, wenn sie sich reaktionsschnell anfühlen.',
  'settings.ai.routing.workload.reasoning.label': 'Reasoning',
  'settings.ai.routing.workload.reasoning.description':
    'Haupt-Chat-Agent, Meeting-Zusammenfasser – „Reasoning“-Modus in Unterhaltungen',
  'settings.ai.routing.workload.reasoning.hint':
    'Empfohlen: ein leistungsfähigeres Frontier- oder starkes Reasoning-Modell für tiefes Nachdenken. Wird für den Haupt-Chat-Agenten, Meeting-Zusammenfassungen und aufwändigere Antwortsynthese genutzt.',
  'settings.ai.routing.workload.agentic.label': 'Agentisch',
  'settings.ai.routing.workload.agentic.description':
    'Sub-Agent-Runner, Tool-Schleifen, GIF-Entscheidungen',
  'settings.ai.routing.workload.agentic.hint':
    'Empfohlen: ein zuverlässiges, anweisungstreues Modell mit starker Tool-Nutzung. Mittelpreisige Frontier-Modelle sind meist am sichersten; leistungsfähige Open-Source-Modelle funktionieren, wenn das Tool-Calling stabil ist.',
  'settings.ai.routing.workload.coding.label': 'Programmierung',
  'settings.ai.routing.workload.coding.description': 'Code-Generierung und Refactoring-Durchläufe',
  'settings.ai.routing.workload.coding.hint':
    'Empfohlen: ein auf Programmierung abgestimmtes Modell mit starker Anweisungstreue, Edit-Qualität und Long-Context-Leistung. Hier lohnt sich meist eine größere Investition.',
  'settings.ai.routing.workload.vision.label': 'Vision',
  'settings.ai.routing.workload.vision.description':
    'Bildverständnis für den Vision-Sub-Agenten – immer multimodal',
  'settings.ai.routing.workload.vision.hint':
    'Empfohlen: ein multimodales Modell, das Bildeingaben akzeptiert. Der verwaltete Standard (vision-v1) ist bildfähig; jeder hier zugewiesene Anbieter wird stets als vision-fähig behandelt.',
  'settings.ai.routing.workload.memory.label': 'Memory-Zusammenfassung',
  'settings.ai.routing.workload.memory.description': 'Baum-Extraktionen und Konsolidierungen',
  'settings.ai.routing.workload.memory.hint':
    'Empfohlen: ein günstigeres Zusammenfassungsmodell. Es sollte konsistent und kompakt sein, braucht aber keine erstklassige Frontier-Reasoning-Leistung.',
  'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
  'settings.ai.routing.workload.heartbeat.description':
    'Hintergrund-Reasoning zwischen Nutzer-Eingaben',
  'settings.ai.routing.workload.heartbeat.hint':
    'Empfohlen: ein günstiges, effizientes Hintergrundmodell. Läuft häufig zwischen den Eingaben, daher zählen niedrige Kosten mehr als maximale Intelligenz.',
  'settings.ai.routing.workload.learning.label': 'Lernen · Reflexionen',
  'settings.ai.routing.workload.learning.description':
    'Periodische Reflexion über den jüngsten Verlauf',
  'settings.ai.routing.workload.learning.hint':
    'Empfohlen: ein stärkeres reflektierendes Modell. Kann mittelpreisig oder Premium sein, da es von besserer Synthese über den jüngsten Verlauf profitiert.',
  'settings.ai.routing.workload.subconscious.label': 'Unterbewusstsein',
  'settings.ai.routing.workload.subconscious.description':
    'Bewertung der Ereignishaftigkeit + Drift-Prüfungen',
  'settings.ai.routing.workload.subconscious.hint':
    'Empfohlen: ein sehr günstiges Überwachungsmodell, idealerweise leichtgewichtig und vorhersehbar. Für Ereignishaftigkeits-Bewertung, Drift-Prüfungen und stille Hintergrundauswertung.',
  'settings.ai.routing.addCustomProvider': 'Benutzerdefinierten Anbieter hinzufügen',
  'settings.ai.globalModel.title': 'Wählen Sie ein Modell für alles',
  'settings.ai.globalModel.desc':
    'Dies leitet alle Rückschlüsse über ein Modell. Es ist einfacher, kann aber in Bezug auf Kosten und Qualität ineffizient sein, da leichte und schwere Aufgaben alle die gleiche Route verwenden.',
  'settings.ai.globalModel.noProviders':
    'Fügen Sie zuerst einen Anbieter hinzu oder verbinden Sie ihn. Dann können Sie hier jeden Workload durch ein Modell routen.',
  'settings.ai.globalModel.provider': 'Anbieter',
  'settings.ai.globalModel.model': 'Modell',
  'settings.ai.globalModel.loadingModels': 'Modelle werden geladen…',
  'settings.ai.globalModel.enterModelId': 'Modell-ID eingeben',
  'settings.ai.globalModel.appliesToAll':
    'Wendet das gleiche Anbieter + -Modell auf Chat, Argumentation, Codierung, Gedächtnis, Herzschlag, Lernen und Unterbewusstsein an. Einbettungen werden separat konfiguriert. Änderungen speichern, wenn Sie auf Speichern klicken.',
  'settings.ai.globalModel.saving': 'Speichern…',
  'settings.ai.globalModel.saved': 'Gespeichert',
  'settings.ai.workload.noModel': 'Kein Modell ausgewählt',
  'settings.ai.workload.changeModel': 'Modell ändern',
  'settings.ai.workload.chooseModel': 'Modell auswählen',
  'settings.ai.provider.ollama': 'Ollama',
  'settings.autocomplete.appFilter.acceptSuggestion': 'Vorschlag annehmen',
  'settings.autocomplete.appFilter.app': 'App',
  'settings.autocomplete.appFilter.currentSuggestion': 'Aktueller Vorschlag',
  'settings.autocomplete.appFilter.contextOverride': 'Kontextüberschreibung (optional)',
  'settings.autocomplete.appFilter.debounce': 'Entprellen',
  'settings.autocomplete.appFilter.debugFocus': 'Debug-Fokus',
  'settings.autocomplete.appFilter.enabled': 'Aktiviert',
  'settings.autocomplete.appFilter.getSuggestion': 'Hol dir einen Vorschlag',
  'settings.autocomplete.appFilter.lastError': 'Letzter Fehler',
  'settings.autocomplete.appFilter.liveLogs': 'Live-Protokolle',
  'settings.autocomplete.appFilter.model': 'Modell',
  'settings.autocomplete.appFilter.noLogs': '):',
  'settings.autocomplete.appFilter.phase': 'Phase',
  'settings.autocomplete.appFilter.platformSupported': 'Unterstützte Plattform',
  'settings.autocomplete.appFilter.refreshStatus': 'Erfrischend…',
  'settings.autocomplete.appFilter.refreshing': 'Erfrischend…',
  'settings.autocomplete.appFilter.running': 'Wird ausgeführt',
  'settings.autocomplete.appFilter.runtime': 'Laufzeit',
  'settings.autocomplete.appFilter.test': 'Testen',
  'settings.autocomplete.completionStyle.acceptedCompletion':
    '{count} akzeptierter Abschluss gespeichert – wird zur Personalisierung zukünftiger Vorschläge verwendet.',
  'settings.autocomplete.completionStyle.acceptedCompletions':
    '{count} akzeptierte Vervollständigungen werden gespeichert – werden zur Personalisierung zukünftiger Vorschläge verwendet.',
  'settings.autocomplete.completionStyle.clearHistory': 'Löschen…',
  'settings.autocomplete.completionStyle.clearing': 'Löschen…',
  'settings.autocomplete.completionStyle.debounce': 'Entprellung (ms)',
  'settings.autocomplete.completionStyle.enabled': 'Aktiviert',
  'settings.autocomplete.completionStyle.maxChars': 'Max. Zeichen',
  'settings.autocomplete.completionStyle.noHistory':
    'Noch keine akzeptierten Abschlüsse. Akzeptiere Vorschläge mit der Tabulatortaste, um mit der Personalisierung zu beginnen.',
  'settings.autocomplete.completionStyle.overlayTtl': 'Overlay-TTL (ms)',
  'settings.autocomplete.completionStyle.personalizationHistory': 'Personalisierungsverlauf',
  'settings.autocomplete.completionStyle.styleExamples': 'Stilbeispiele (eines pro Zeile)',
  'settings.autocomplete.completionStyle.styleInstructions': 'Stilanweisungen',
  'settings.autocomplete.debug.acceptedPrefix': 'Akzeptiert: {value}',
  'settings.autocomplete.debug.acceptFailed': 'Vorschlag konnte nicht angenommen werden',
  'settings.autocomplete.debug.alreadyRunning': 'Autocomplete läuft bereits.',
  'settings.autocomplete.debug.clearHistoryFailed': 'Der Verlauf konnte nicht gelöscht werden.',
  'settings.autocomplete.debug.didNotStart':
    'Die automatische Vervollständigung wurde nicht gestartet.',
  'settings.autocomplete.debug.disabledInSettings':
    'Die automatische Vervollständigung ist in den Einstellungen deaktiviert. Aktivieren Sie es und speichern Sie es zunächst.',
  'settings.autocomplete.debug.fetchSuggestionFailed':
    'Der aktuelle Vorschlag konnte nicht abgerufen werden.',
  'settings.autocomplete.debug.inspectFocusedElementFailed':
    'Das fokussierte Element konnte nicht überprüft werden.',
  'settings.autocomplete.debug.loadSettingsFailed':
    'Die Einstellungen für die automatische Vervollständigung konnten nicht geladen werden.',
  'settings.autocomplete.debug.noSuggestionApplied': 'Es wurde kein Vorschlag angewendet.',
  'settings.autocomplete.debug.noSuggestionReturned': 'Kein Vorschlag zurückgegeben.',
  'settings.autocomplete.debug.refreshStatusFailed':
    'Der Status der automatischen Vervollständigung konnte nicht aktualisiert werden.',
  'settings.autocomplete.debug.saveAdvancedSettingsFailed':
    'Die erweiterten Einstellungen konnten nicht gespeichert werden.',
  'settings.autocomplete.debug.startFailed':
    'Die automatische Vervollständigung konnte nicht gestartet werden.',
  'settings.autocomplete.debug.stopFailed':
    'Die automatische Vervollständigung konnte nicht gestoppt werden.',
  'settings.autocomplete.debug.suggestionPrefix': 'Vorschlag: {value}',
  'settings.autocomplete.shared.none': 'Keine',
  'settings.autocomplete.shared.notApplicable': 'n/a',
  'settings.autocomplete.shared.unknown': 'Unbekannt',
  'settings.billing.autoRecharge.addAmount': 'Füge diesen Betrag hinzu',
  'settings.billing.autoRecharge.addCard': 'Karte hinzufügen',
  'settings.billing.autoRecharge.amountHint': 'Betragshinweis',
  'settings.billing.autoRecharge.defaultCard': 'Standardkarte',
  'settings.billing.autoRecharge.lastRechargeFailed': 'Das letzte Aufladen ist fehlgeschlagen',
  'settings.billing.autoRecharge.lastRecharged': 'Zuletzt aufgeladen',
  'settings.billing.autoRecharge.expires': 'Läuft ab {date}',
  'settings.billing.autoRecharge.noCards': 'Keine Karten',
  'settings.billing.autoRecharge.paymentMethods': 'Zahlungsmethoden',
  'settings.billing.autoRecharge.rechargeInProgress': 'Aufladen läuft',
  'settings.billing.autoRecharge.spentThisWeek': '${spent} von ${limit} diese Woche verwendet',
  'settings.billing.autoRecharge.rechargeWhen': 'Aufladen, wenn der Saldo darunter fällt',
  'settings.billing.autoRecharge.saveSettings': 'Sparen…',
  'settings.billing.autoRecharge.saving': 'Sparen…',
  'settings.billing.autoRecharge.setDefault': 'mer:',
  'settings.billing.autoRecharge.subtitle': 'Untertitel',
  'settings.billing.autoRecharge.title': 'Aktiviere die automatische Aufladung',
  'settings.billing.autoRecharge.toggleAriaLabel': 'Automatisches Aufladen umschalten',
  'settings.billing.autoRecharge.weeklyLimit': 'Wöchentliches Ausgabenlimit',
  'settings.billing.history.desc': 'Beschr',
  'settings.billing.history.empty': 'Leer',
  'settings.billing.history.openPortal': 'Portal öffnen',
  'settings.billing.history.posted': 'Gepostet',
  'settings.billing.history.title': 'Titel',
  'settings.billing.inferenceBudget.cycleEnds': 'Der Zyklus endet',
  'settings.billing.inferenceBudget.exhausted': 'Erschöpft',
  'settings.billing.inferenceBudget.loadError': 'Ladefehler',
  'settings.billing.inferenceBudget.noBudgetDesc': 'Kein Budgetabzug',
  'settings.billing.inferenceBudget.noRecurringBudget': 'Kein wiederkehrendes Budget',
  'settings.billing.inferenceBudget.noRecurringPlanBudget': 'Kein wiederkehrendes Planbudget',
  'settings.billing.inferenceBudget.noRecurringWeeklyDesc':
    'Ihr aktueller Plan enthält kein wiederkehrendes wöchentliches Inferenzbudget. Die Nutzung wird stattdessen aus verfügbaren Credits bezahlt.',
  'settings.billing.inferenceBudget.remaining': 'Übrig',
  'settings.billing.inferenceBudget.remainingSummary': '{remaining} / {budget} verbleibend',
  'settings.billing.inferenceBudget.spentThisCycle': '{amount} in diesem Zyklus ausgegeben',
  'settings.billing.inferenceBudget.cycleEndsOn': 'Zyklus endet {date}',
  'settings.billing.inferenceBudget.exhaustedDesc':
    'Die inbegriffene Abonnementnutzung ist erschöpft. Guthaben aufladen, um AI weiterhin zu verwenden, ohne auf den nächsten Zyklus zu warten.',
  'settings.billing.inferenceBudget.discountVsPayg':
    '{pct}% günstiger pro Anruf als Pay-as-you-go.',
  'settings.billing.inferenceBudget.cycleSpend': 'Zyklusausgaben',
  'settings.billing.inferenceBudget.totalAmount': '{amount} Gesamt',
  'settings.billing.inferenceBudget.inference': 'Inferenz',
  'settings.billing.inferenceBudget.integrations': 'Integrationen',
  'settings.billing.inferenceBudget.calls': '{count} Aufrufe',
  'settings.billing.inferenceBudget.dailySpend': 'Tägliche Ausgaben',
  'settings.billing.inferenceBudget.dailySpendPoint': '{date}: {amount}',
  'settings.billing.inferenceBudget.topModels': 'Topmodelle',
  'settings.billing.inferenceBudget.noInferenceUsage': 'Keine Inferenznutzung in diesem Zyklus.',
  'settings.billing.inferenceBudget.topIntegrations': 'Top-Integrationen',
  'settings.billing.inferenceBudget.noIntegrationUsage':
    'Keine Integrationsnutzung in diesem Zyklus.',
  'settings.billing.inferenceBudget.tenHourCap': 'Zehn-Stunden-Kappe',
  'settings.billing.inferenceBudget.title': 'Titel',
  'settings.billing.inferenceBudget.unableToLoad': 'Nutzungsdaten können nicht geladen werden.',
  'settings.billing.inferenceBudget.notAvailable': 'n/a',
  'settings.billing.payAsYouGo.available': 'Verfügbar',
  'settings.billing.payAsYouGo.chargeCustomAmount': 'Wird geöffnet…',
  'settings.billing.payAsYouGo.chooseTopUpDesc': 'Wähle „Aufladepreis“.',
  'settings.billing.payAsYouGo.chooseTopUpTitle': 'Wähle den Aufladetitel',
  'settings.billing.payAsYouGo.creditBalanceDesc': 'Guthabenbez',
  'settings.billing.payAsYouGo.creditBalanceTitle': 'Guthabentitel',
  'settings.billing.payAsYouGo.customAmount': 'Benutzerdefinierter Betrag',
  'settings.billing.payAsYouGo.enterAmount': 'Betrag eingeben',
  'settings.billing.payAsYouGo.opening': '{amount}',
  'settings.billing.payAsYouGo.promotionalCredits': 'Werbegutschriften',
  'settings.billing.payAsYouGo.topUpBalance': 'Aufladeguthaben',
  'settings.billing.payAsYouGo.topUpCredits': 'Guthaben aufladen',
  'settings.billing.payAsYouGo.unableToLoad': 'Der Ladeausgleich kann nicht durchgeführt werden.',
  'settings.billing.subscription.annual': 'Jährlich',
  'settings.billing.subscription.billedAnnually': 'Jährliche Abrechnung',
  'settings.billing.subscription.chooseSubtitle': 'Untertitel wählen',
  'settings.billing.subscription.chooseTitle': 'Titel wählen',
  'settings.billing.subscription.cryptoDesc': 'Krypto-Beschreibung',
  'settings.billing.subscription.cryptoQuestion': 'Krypto-Frage',
  'settings.billing.subscription.current': 'Aktuell',
  'settings.billing.subscription.currentPlan': 'Aktueller Plan',
  'settings.billing.subscription.monthly': 'Monatlich',
  'settings.billing.subscription.paymentConfirmed': 'Zahlung bestätigt',
  'settings.billing.subscription.perMonth': 'Pro Monat',
  'settings.billing.subscription.popular': 'Beliebt',
  'settings.billing.subscription.save': '{pct}',
  'settings.billing.subscription.upgrade': 'Upgrade',
  'settings.billing.subscription.waiting': 'Warten',
  'settings.billing.subscription.waitingPayment': 'Warten auf Zahlung',
  'settings.composio.apiKeyDesc':
    'Auf diesem Gerät ist derzeit ein Schlüssel vom Typ Composio API gespeichert.',
  'settings.composio.apiKeyExamplePlaceholder': 'ck_live_xxxxxxxxxxxxxxx',
  'settings.composio.apiKeyLabel': 'Composio API Schlüssel',
  'settings.composio.apiKeyStored': 'API Schlüssel gespeichert',
  'settings.composio.apiKeyStoredPlaceholder': '•·•······················',
  'settings.composio.clearedToBackend': 'In den Backend-Modus gewechselt',
  'settings.composio.confirmItem1': 'Ein Konto bei app.composio.dev mit einem API-Schlüssel',
  'settings.composio.confirmItem2':
    'Um jede Integration über dein persönliches Composio-Konto erneut zu verknüpfen',
  'settings.composio.confirmItem3':
    'Hinweis: Composio-Trigger (Echtzeit-Webhooks) werden noch nicht im Direktmodus ausgelöst, sondern nur bei synchronen Toolaufrufen',
  'settings.composio.confirmNeedItems': 'Du brauchst:',
  'settings.composio.confirmSwitch': 'Ich verstehe, zu Direct wechseln',
  'settings.composio.confirmTitle': '⚠️ Wechsel in den Direktmodus',
  'settings.composio.confirmWarning':
    'Deine vorhandenen Integrationen (Gmail, Slack, GitHub usw., die über OpenHuman verknüpft sind) sind nicht sichtbar – sie befinden sich im von OpenHuman verwalteten Composio-Mandanten.',
  'settings.composio.intro':
    'Composio integriert mehr als 250 externe Apps als Tools, die dein Agent aufrufen kann. Wähle aus, wie diese Werkzeugaufrufe weitergeleitet werden.',
  'settings.composio.title': 'Composio',
  'settings.composio.modeDirect': 'Direkt (bring deinen eigenen API-Schlüssel mit)',
  'settings.composio.modeDirectDesc':
    'Anrufe gehen direkt an backend.composio.dev. Souverän / offlinefreundlich. Die Werkzeugausführung erfolgt synchron; Echtzeit-Trigger-Webhooks werden noch nicht im Direktmodus weitergeleitet (Folgeproblem).',
  'settings.composio.modeManaged': 'Verwaltet (OpenHuman erledigt das für dich)',
  'settings.composio.modeManagedDesc':
    'OpenHuman leitet Tool-Aufrufe über unser Backend weiter (empfohlen). Auth wird vermittelt; du fügst niemals einen Composio API-Schlüssel ein. Webhooks werden vollständig weitergeleitet.',
  'settings.composio.routingMode': 'Routing-Modus',
  'settings.composio.saveErrorNoKey':
    'Speichern fehlgeschlagen. Der Direktmodus erfordert einen nicht leeren Schlüssel API.',
  'settings.composio.saving': 'Sparen…',
  'settings.composio.switching': 'Wechseln…',
  'settings.companion.title': 'Desktop-Begleiter',
  'settings.companion.session': 'Sitzung',
  'settings.companion.activeLabel': 'Aktiv',
  'settings.companion.inactiveStatus': 'Inaktiv',
  'settings.companion.stopping': 'Wird gestoppt…',
  'settings.companion.stopSession': 'Sitzung beenden',
  'settings.companion.starting': 'Wird gestartet…',
  'settings.companion.startSession': 'Sitzung starten',
  'settings.companion.sessionId': 'Sitzungs-ID',
  'settings.companion.turns': 'Drehungen',
  'settings.companion.remaining': 'Verbleibende',
  'settings.companion.configuration': 'Konfiguration',
  'settings.companion.hotkey': 'Hotkey',
  'settings.companion.activationMode': 'Aktivierungsmodus',
  'settings.companion.sessionTtl': 'Sitzungs-TTL',
  'settings.companion.screenCapture': 'Bildschirmaufnahme',
  'settings.companion.appContext': 'App-Kontext',
  'settings.cron.jobs.commandRequired': 'Bei Shell-Jobs ist ein Befehl erforderlich',
  'settings.cron.jobs.createJob': 'Neuer geplanter Job',
  'settings.cron.jobs.created': 'Job erstellt',
  'settings.cron.jobs.custom': 'Benutzerdefiniert',
  'settings.cron.jobs.desc': 'Beschr',
  'settings.cron.jobs.edit': 'Bearbeiten',
  'settings.cron.jobs.editJob': 'Geplanten Job bearbeiten',
  'settings.cron.jobs.empty': 'Keine zentralen Cron-Jobs gefunden.',
  'settings.cron.jobs.errorCreate': 'Cron-Job konnte nicht erstellt werden: {message}',
  'settings.cron.jobs.errorLoadList': 'Core-Cron-Jobs konnten nicht geladen werden: {message}',
  'settings.cron.jobs.errorLoadRuns': 'Ausführungsverlauf konnte nicht geladen werden: {message}',
  'settings.cron.jobs.errorRemove': 'Core-Cron-Job konnte nicht entfernt werden: {message}',
  'settings.cron.jobs.errorRun': 'Core-Cron-Job konnte nicht ausgeführt werden: {message}',
  'settings.cron.jobs.errorToggle': 'Core-Cron-Job konnte nicht aktualisiert werden: {message}',
  'settings.cron.jobs.errorUpdate': 'Cron-Job konnte nicht aktualisiert werden: {message}',
  'settings.cron.jobs.formAtLabel': 'Ausführen um',
  'settings.cron.jobs.formCancel': 'Abbrechen',
  'settings.cron.jobs.formCommand': 'Shell-Befehl',
  'settings.cron.jobs.formCommandPlaceholder': 'z. B. curl https://example.com/health',
  'settings.cron.jobs.formCreate': 'Erstellen',
  'settings.cron.jobs.formCronCustom': 'Benutzerdefinierter Ausdruck',
  'settings.cron.jobs.formCronCustomPlaceholder': 'z. B. */30 * * * *',
  'settings.cron.jobs.formCronPreset': 'Voreinstellung',
  'settings.cron.jobs.formCronPreview': 'Ausführungen: {preview}',
  'settings.cron.jobs.formDeleteAfterRun': 'Nach erster Ausführung löschen',
  'settings.cron.jobs.formDelivery': 'Zustellungsmodus',
  'settings.cron.jobs.formDeliveryNone': 'Keine (nur Ausgabe)',
  'settings.cron.jobs.formDeliveryProactive': 'Proaktiv (Push-Benachrichtigung)',
  'settings.cron.jobs.formError': 'Job konnte nicht gespeichert werden',
  'settings.cron.jobs.formEveryLabel': 'Intervall (Millisekunden)',
  'settings.cron.jobs.formEveryPlaceholder': 'z. B. 3600000',
  'settings.cron.jobs.formJobType': 'Job-Typ',
  'settings.cron.jobs.formJobTypeAgent': 'Agent (KI-Prompt)',
  'settings.cron.jobs.formJobTypeShell': 'Shell-Befehl',
  'settings.cron.jobs.formName': 'Job-Name',
  'settings.cron.jobs.formNamePlaceholder': 'z. B. daily-report, cleanup-task',
  'settings.cron.jobs.formPrompt': 'Agent-Prompt',
  'settings.cron.jobs.formPromptPlaceholder': 'Was soll der Agent bei jeder Ausführung tun?',
  'settings.cron.jobs.formPromptRequired': 'Bei Agent-Jobs ist ein Prompt erforderlich',
  'settings.cron.jobs.formSave': 'Speichern',
  'settings.cron.jobs.formSaving': 'Wird gespeichert…',
  'settings.cron.jobs.formScheduleAt': 'Einmalig (ausführen um)',
  'settings.cron.jobs.formScheduleCron': 'Wiederkehrend (Cron)',
  'settings.cron.jobs.formScheduleEvery': 'Intervall (alle N ms)',
  'settings.cron.jobs.formScheduleRequired': 'Ein Zeitplan ist erforderlich',
  'settings.cron.jobs.formScheduleType': 'Zeitplantyp',
  'settings.cron.jobs.formSessionIsolated': 'Isoliert (empfohlen)',
  'settings.cron.jobs.formSessionMain': 'Hauptsitzung',
  'settings.cron.jobs.formSessionTarget': 'Sitzungsziel',
  'settings.cron.jobs.lastStatus': 'Letzter Stand',
  'settings.cron.jobs.loading': 'Cron-Jobs werden geladen...',
  'settings.cron.jobs.loadingRuns': 'Ladeläufe',
  'settings.cron.jobs.nextRun': 'Nächster Lauf',
  'settings.cron.jobs.pause': 'Pause',
  'settings.cron.jobs.paused': 'Pausiert',
  'settings.cron.jobs.recentRuns': 'Aktuelle Läufe',
  'settings.cron.jobs.removing': 'Entfernen',
  'settings.cron.jobs.resume': 'Lebenslauf',
  'settings.cron.jobs.runningNow': 'Läuft jetzt',
  'settings.cron.jobs.saving': 'Sparen…',
  'settings.cron.jobs.schedule': 'Zeitplan',
  'settings.cron.jobs.title': 'Kern-Cron-Jobs',
  'settings.cron.jobs.updated': 'Job aktualisiert',
  'settings.cron.jobs.viewRuns': 'Läufe ansehen',
  'settings.cron.schedule.every2hours': 'Alle 2 Stunden',
  'settings.cron.schedule.every30min': 'Alle 30 Minuten',
  'settings.cron.schedule.every6hours': 'Alle 6 Stunden',
  'settings.cron.schedule.everyHour': 'Jede Stunde',
  'settings.cron.schedule.onceDaily': 'Einmal täglich (9 Uhr)',
  'settings.localModel.deviceCapability.active': 'Aktiv',
  'settings.localModel.deviceCapability.appliedTier': 'Angewandte Stufe',
  'settings.localModel.deviceCapability.applying': 'Bewerben',
  'settings.localModel.deviceCapability.cores': '{count}',
  'settings.localModel.deviceCapability.couldNotLoadPresets':
    'Voreinstellungen konnten nicht geladen werden',
  'settings.localModel.deviceCapability.cpu': 'CPU',
  'settings.localModel.deviceCapability.customModelIds': 'Benutzerdefinierte Modell-IDs',
  'settings.localModel.deviceCapability.detected': 'Erkannt',
  'settings.localModel.deviceCapability.disabled': 'Deaktiviert',
  'settings.localModel.deviceCapability.disabledDesc':
    'Lokale KI ist deaktiviert. Alle Inferenzanfragen laufen über die Cloud.',
  'settings.localModel.deviceCapability.downloadingModels': '(Modelle herunterladen)',
  'settings.localModel.deviceCapability.downloadingSetupDesc':
    'Lade das OllamaSetup-Installationsprogramm (~2 GB) herunter und entpacke es. Dies kann bei der ersten Installation eine Minute dauern.',
  'settings.localModel.deviceCapability.failedToApplyPreset':
    'Voreinstellung konnte nicht angewendet werden',
  'settings.localModel.deviceCapability.gpu': 'GPU',
  'settings.localModel.deviceCapability.installFailed': 'Ollama Installation fehlgeschlagen',
  'settings.localModel.deviceCapability.installFailedDesc':
    'Das Installationsprogramm wurde beendet, bevor Ollama verwendbar war. Klicke auf „Wiederholen“, um es noch einmal zu versuchen, oder installiere es manuell von ollama.com.',
  'settings.localModel.deviceCapability.installFirst': 'Führe zuerst Ollama aus.',
  'settings.localModel.deviceCapability.installFirstDesc':
    'Lokale Ebenen hängen von einem extern verwalteten Ollama-Endpunkt ab. Starte es selbst, rufe die gewünschten Modelle ab und verwende weiterhin „Deaktiviert (Cloud-Fallback)“, bis die Laufzeit erreichbar ist.',
  'settings.localModel.deviceCapability.installOllamaFirst':
    'Führe zuerst Ollama aus, um diese Stufe zu verwenden',
  'settings.localModel.deviceCapability.installingOllama': 'Ollama installieren',
  'settings.localModel.deviceCapability.loadingDeviceInfo': 'Geräteinformationen werden geladen',
  'settings.localModel.deviceCapability.localAiDisabled':
    'Lokale KI deaktiviert – Cloud-Fallback wird verwendet.',
  'settings.localModel.deviceCapability.modelTier': 'Modellebene',
  'settings.localModel.deviceCapability.needsOllama': 'Braucht Ollama',
  'settings.localModel.deviceCapability.notDetected': 'Nicht erkannt',
  'settings.localModel.deviceCapability.disabledLowercase': 'deaktiviert',
  'settings.localModel.deviceCapability.presetDetails':
    'Chat: {chatModel} · Vision: {visionModel} · Ziel-RAM: {targetRamGb} GB',
  'settings.localModel.deviceCapability.ram': 'RAM',
  'settings.localModel.deviceCapability.recommended': 'Empfohlen',
  'settings.localModel.deviceCapability.retryInstall': 'Erneuter Versuch…',
  'settings.localModel.deviceCapability.retrying': 'Erneuter Versuch…',
  'settings.localModel.deviceCapability.starting': 'Beginnend mit …',
  'settings.localModel.download.audioPathPlaceholder': 'Absoluter Pfad zur Audiodatei',
  'settings.localModel.download.capabilityChat': 'Chat',
  'settings.localModel.download.capabilityEmbedding': 'Einbettung',
  'settings.localModel.download.capabilityAssets': 'Fähigkeitsressourcen',
  'settings.localModel.download.capabilityStt': 'STT',
  'settings.localModel.download.capabilityTts': 'TTS',
  'settings.localModel.download.capabilityVision': 'Vision',
  'settings.localModel.download.downloading': 'Herunterladen...',
  'settings.localModel.download.embeddingDimensions': 'Abmessungen: {dimensions}',
  'settings.localModel.download.embeddingModel': 'Modell: {modelId}',
  'settings.localModel.download.embeddingPlaceholder': 'Eine Eingabezeichenfolge pro Zeile...',
  'settings.localModel.download.embeddingVectors': 'Vektoren: {count}',
  'settings.localModel.download.noThinkMode': 'Kein Denkmodus',
  'settings.localModel.download.notAvailable': 'n/a',
  'settings.localModel.download.promptPlaceholder':
    'Gib eine beliebige Eingabeaufforderung ein und führe sie für das lokale Modell aus ...',
  'settings.localModel.download.quantizationPref': 'Quantisierungspräferenz',
  'settings.localModel.download.runEmbeddingTest': 'Laufen...',
  'settings.localModel.download.runPromptTest': 'Führe den Prompt-Test durch',
  'settings.localModel.download.runSummaryTest': 'Führe einen Zusammenfassungstest durch',
  'settings.localModel.download.runTranscriptionTest': 'Laufen...',
  'settings.localModel.download.runTtsTest': 'Laufen...',
  'settings.localModel.download.runVisionTest': 'Laufen...',
  'settings.localModel.download.running': 'Laufen...',
  'settings.localModel.download.runningPrompt': 'Laufaufforderung',
  'settings.localModel.download.summaryHelper':
    'Ruft „openhuman.inference_summarize“ über den Rust-Kern auf',
  'settings.localModel.download.summarizePlaceholder':
    'Füge Text ein, um ihn mit dem lokalen Modell zusammenzufassen ...',
  'settings.localModel.download.testCustomPrompt':
    'Teste die benutzerdefinierte Eingabeaufforderung',
  'settings.localModel.download.testEmbeddings': 'Einbettungen testen',
  'settings.localModel.download.testSummarization': 'Testzusammenfassung',
  'settings.localModel.download.testVisionPrompt': 'Test-Sehaufforderung',
  'settings.localModel.download.testVoiceInput': 'Spracheingabe testen (STT)',
  'settings.localModel.download.testVoiceOutput': 'Sprachausgabe testen (TTS)',
  'settings.localModel.download.transcript': 'Transkript:',
  'settings.localModel.download.ttsOutput': 'Ausgabe: {outputPath}',
  'settings.localModel.download.ttsOutputPlaceholder': 'Optionaler Ausgabepfad WAV',
  'settings.localModel.download.ttsPlaceholder': 'Gib den zu synthetisierenden Text ein...',
  'settings.localModel.download.ttsVoice': 'Stimme: {voiceId}',
  'settings.localModel.download.visionImagePlaceholder':
    'Eine Bildreferenz pro Zeile (Daten URI, URL oder lokale Pfadmarkierung)',
  'settings.localModel.download.visionPromptPlaceholder':
    'Gib eine Eingabeaufforderung für das Vision-Modell ein...',
  'settings.localModel.status.allChecksPassed': 'Alle Prüfungen bestanden',
  'settings.localModel.status.artifact': 'Artefakt',
  'settings.localModel.status.backend': 'Backend',
  'settings.localModel.status.binary': 'Binär',
  'settings.localModel.status.bootstrapResume': 'Bootstrap / Fortsetzen',
  'settings.localModel.status.checking': 'Überprüfen...',
  'settings.localModel.status.checkingOllama': 'Ollama wird überprüft',
  'settings.localModel.status.contextBelowMinimumBadge':
    '{contextLength} ctx – unter {required} min',
  'settings.localModel.status.contextBelowMinimumTitle':
    'Abgelehnt: Kontextfenster-{contextLength}-Token liegen unter dem {required}-Token-Mindestwert, den die Speicherschicht erfordert. Der Rückruf würde durch stilles Abschneiden beschädigt werden.',
  'settings.localModel.status.contextOkBadge': '{contextLength} Kontext ✓',
  'settings.localModel.status.contextOkTitle':
    'Kontextfenster {contextLength}-Tokens erfüllen das Minimum an {required}-Tokens auf der Speicherebene.',
  'settings.localModel.status.contextUnknownBadge': 'ctx unbekannt',
  'settings.localModel.status.contextUnknownTitle':
    'Kontextfenster unbekannt; Es konnte nicht bestätigt werden, dass das {required}-Token-Memory-Layer-Mindestniveau erreicht wird.',
  'settings.localModel.status.customLocation': 'Benutzerdefinierter Standort',
  'settings.localModel.status.customLocationDesc': 'Benutzerdefinierte Standortbeschreibung',
  'settings.localModel.status.diagnosticsHint':
    'Klicke auf „Diagnose ausführen“, um zu überprüfen, ob Ollama ausgeführt wird und Modelle installiert sind.',
  'settings.localModel.status.downloadingUnknown': 'Wird heruntergeladen (Größe unbekannt)',
  'settings.localModel.status.eta': 'Eta',
  'settings.localModel.status.expectedModels': 'Erwartete Modelle',
  'settings.localModel.status.expectedChat': 'Chat: {model}',
  'settings.localModel.status.expectedEmbedding': 'Einbettung: {model}',
  'settings.localModel.status.expectedVision': 'Vision: {model}',
  'settings.localModel.status.externalProcess': 'Externer Prozess',
  'settings.localModel.status.forceRebootstrap': 'Neustart erzwingen',
  'settings.localModel.status.generationTps': 'Generierungs-TPS',
  'settings.localModel.status.hideErrorDetails': 'Fehlerdetails ausblenden',
  'settings.localModel.status.installManually': 'Manuell installieren',
  'settings.localModel.status.installManuallyFrom': 'Manuell installieren von',
  'settings.localModel.status.installOllama': 'Beginnend mit …',
  'settings.localModel.status.installedModels': 'Installierte Modelle',
  'settings.localModel.status.installing': 'Installieren...',
  'settings.localModel.status.installingOllama': 'Ollama-Laufzeit wird installiert...',
  'settings.localModel.status.issues': 'Probleme',
  'settings.localModel.status.issuesFound': '{count} Problem(e) gefunden',
  'settings.localModel.status.lastLatency': 'Letzte Latenz',
  'settings.localModel.status.model': 'Modell',
  'settings.localModel.status.notAvailable': 'n/a',
  'settings.localModel.status.notFound': 'Nicht gefunden',
  'settings.localModel.status.notRunning': 'Läuft nicht',
  'settings.localModel.status.ollamaBinaryPath': 'Ollama Binärpfad',
  'localModel.ollamaServer.helperText': 'Beispiel: http://192.168.1.5:11434',
  'localModel.ollamaServer.label': 'Ollama-Server-URL',
  'localModel.ollamaServer.modelCount': 'Modelle',
  'localModel.ollamaServer.placeholder': 'http://localhost:11434',
  'localModel.ollamaServer.reachable': 'Erreichbar',
  'localModel.ollamaServer.resetButton': 'Auf Standard zurücksetzen',
  'localModel.ollamaServer.saveButton': 'Speichern',
  'localModel.ollamaServer.testButton': 'Testverbindung',
  'localModel.ollamaServer.unreachable': 'Unerreichbar',
  'localModel.ollamaServer.validationError': 'Muss ein gültiges http:// oder https:// sein URL',
  'settings.localModel.status.ollamaDiagnostics': 'Ollama Diagnose',
  'settings.localModel.status.ollamaNotInstalled': 'Ollama Laufzeit nicht verfügbar',
  'settings.localModel.status.ollamaNotInstalledDesc':
    'OpenHuman behandelt jetzt Ollama als externe Inferenzlaufzeit. Starte deinen eigenen Ollama-Server, rufe die gewünschten Modelle ab und richte das Workload-Routing darauf aus.',
  'settings.localModel.status.progress': 'Fortschritt',
  'settings.localModel.status.provider': 'Anbieter',
  'settings.localModel.status.retryBootstrap': 'Versuche Bootstrap erneut',
  'settings.localModel.status.runDiagnostics': 'Überprüfen...',
  'settings.localModel.status.running': 'Laufen',
  'settings.localModel.status.runningExternalProcess':
    'Wird über einen externen Prozess ausgeführt',
  'settings.localModel.status.runtimeStatus': 'Laufzeitstatus',
  'settings.localModel.status.server': 'Server',
  'settings.localModel.status.setPath': 'Einstellung...',
  'settings.localModel.status.setting': 'Einstellung...',
  'settings.localModel.status.showErrorDetails': 'Fehlerdetails ausblenden',
  'settings.localModel.status.showInstallErrorDetails': 'Fehlerdetails ausblenden',
  'settings.localModel.status.suggestedFixes': 'Vorgeschlagene Korrekturen',
  'settings.localModel.status.thenSetPath': 'Dann lege den Pfad fest',
  'settings.localModel.status.triggering': 'Auslösen...',
  'settings.localModel.status.unavailable': 'Nicht verfügbar',
  'settings.localModel.status.working': 'Arbeiten...',
  'settings.developerMenu.ai.title': 'KI-Konfiguration',
  'settings.developerMenu.ai.desc':
    'Cloud-Anbieter, lokale Ollama-Modelle und Routing pro Workload',
  'settings.developerMenu.screenAwareness.title': 'Bildschirmbewusstsein',
  'settings.developerMenu.screenAwareness.desc':
    'Bildschirmaufnahmeberechtigungen, Überwachungsrichtlinien und Sitzungskontrollen',
  'settings.developerMenu.messagingChannels.title': 'Messaging-Kanäle',
  'settings.developerMenu.messagingChannels.desc':
    'Konfiguriere die Authentifizierungsmodi Telegram/Discord und das Standardkanalrouting',
  'settings.developerMenu.tools.title': 'Werkzeuge',
  'settings.developerMenu.tools.desc':
    'Aktiviere oder deaktiviere Funktionen, die OpenHuman in deinem Namen nutzen kann',
  'settings.developerMenu.agentChat.title': 'Agenten-Chat',
  'settings.developerMenu.agentChat.desc':
    'Test-Agent-Konversation mit Modell- und Temperaturüberschreibungen',
  'settings.developerMenu.devWorkflow.title': 'Entwicklungs-Workflow',
  'settings.developerMenu.devWorkflow.desc':
    'Autonomer Agent, der Ihre GitHub-Probleme auswählt und PRs nach einem Zeitplan einstellt',
  'settings.developerMenu.devWorkflow.panelDesc':
    'Konfigurieren Sie einen autonomen Entwickler-Agenten, der Ihnen zugewiesene GitHub-Probleme auswählt und Pull-Anfragen automatisch nach einem Zeitplan auslöst.',
  'settings.developerMenu.skillsRunner.title': 'Skills-Runner',
  'settings.developerMenu.skillsRunner.desc':
    'Führen Sie jede gebündelte Fähigkeit ad-hoc aus — füllen Sie ihre Eingaben aus und feuern Sie einen autonomen Hintergrundlauf ab',
  'settings.developerMenu.skillsRunner.panelDesc':
    'Wähle eine gebündelte Fertigkeit aus, fülle ihre deklarierten Eingaben aus und feuere einen Feuer-und-Vergesst-Hintergrundlauf ab. Verwenden Sie stattdessen Dev Workflow, wenn Sie einen Cron-geplanten wiederkehrenden Job wünschen.',
  'settings.skillsRunner.skill': 'Fähigkeit',
  'settings.skillsRunner.selectSkill': 'Wählen Sie eine Fertigkeit aus…',
  'settings.skillsRunner.loadingSkills': 'Fertigkeiten werden geladen…',
  'settings.skillsRunner.loadingDescription': 'Skill-Eingaben werden geladen…',
  'settings.skillsRunner.noInputs': 'Dieser Skill deklariert keine Eingaben.',
  'settings.skillsRunner.placeholder.required': 'erforderlich',
  'settings.skillsRunner.runNow': 'Jetzt ausführen',
  'settings.skillsRunner.starting': 'Beginnend mit…',
  'settings.skillsRunner.started': 'Gestartet – Lauf-ID:',
  'settings.skillsRunner.logPath': 'Protokoll:',
  'settings.skillsRunner.error.listSkills': 'Fertigkeiten konnten nicht geladen werden:',
  'settings.skillsRunner.error.describe': 'Eingaben konnten nicht geladen werden:',
  'settings.skillsRunner.error.missingRequired': 'Fehlende erforderliche Eingabe(n):',
  'settings.skillsRunner.error.run': 'Der Lauf konnte nicht gestartet werden:',
  'settings.skillsRunner.error.preflightGate': 'Das Preflight-Gate ist ausgefallen',
  'settings.skillsRunner.error.runtimeUnavailable': 'Laufzeit nicht verfügbar',
  'settings.skillsRunner.error.runtimeUnavailableDefault': 'nicht verfügbar',
  'settings.skillsRunner.schedule.heading': 'Zeitplan (wiederkehrend)',
  'settings.skillsRunner.schedule.help':
    'Speichern Sie diesen Skill + Eingaben als wiederkehrenden Cronjob. Der Agent ruft bei jedem Tick run_workflow auf.',
  'settings.skillsRunner.schedule.frequency': 'Frequenz',
  'settings.skillsRunner.schedule.every30min': 'Alle 30 Minuten',
  'settings.skillsRunner.schedule.everyHour': 'Jede Stunde',
  'settings.skillsRunner.schedule.every2hours': 'Alle 2 Stunden',
  'settings.skillsRunner.schedule.every6hours': 'Alle 6 Stunden',
  'settings.skillsRunner.schedule.onceDaily': 'Einmal täglich (9:00)',
  'settings.skillsRunner.schedule.save': 'Zeitplan speichern',
  'settings.skillsRunner.schedule.saving': 'Sichern…',
  'settings.skillsRunner.schedule.saved': 'Zeitplan gespeichert.',
  'settings.skillsRunner.schedule.error': 'Das Speichern des Zeitplans ist fehlgeschlagen:',
  'settings.skillsRunner.schedule.loadingJobs': 'Vorhandene Zeitpläne werden geladen…',
  'settings.skillsRunner.schedule.noJobs':
    'Für diesen Skill sind noch keine Zeitpläne gespeichert.',
  'settings.skillsRunner.schedule.existing': 'Geplante Jobs für diesen Skill:',
  'settings.skillsRunner.schedule.inputsLabel': 'Eingaben',
  'settings.skillsRunner.schedule.inputsNone': 'Keine Eingaben',
  'settings.skillsRunner.schedule.runNow': 'Laufen',
  'settings.skillsRunner.schedule.remove': 'Entlassen',
  'settings.skillsRunner.scheduleEnabled': 'Aktiviert',
  'settings.skillsRunner.scheduleDisabled': 'Angehalten',
  'settings.skillsRunner.scheduleToggleAria': 'Zeitplan aktiviert umschalten',
  'settings.skillsRunner.schedule.history': 'Geschichte',
  'settings.skillsRunner.schedule.historyLoading': 'Verlauf wird geladen…',
  'settings.skillsRunner.schedule.historyEmpty': 'Für diesen Zeitplan gibt es noch keine Läufe.',
  'settings.skillsRunner.schedule.historyNoOutput': 'Keine Ausgabe erfasst.',
  'settings.skillsRunner.schedule.active': 'Aktiv',
  'settings.skillsRunner.schedule.lastRunLabel': 'zuletzt:',
  'settings.skillsRunner.recentRuns.headingForSkill': 'Aktuelle Läufe für diesen Skill',
  'settings.skillsRunner.recentRuns.headingAll': 'Aktuelle Skillruns (alle)',
  'settings.skillsRunner.recentRuns.refresh': 'Aktualisieren',
  'settings.skillsRunner.recentRuns.loading': 'Letzte Läufe werden geladen…',
  'settings.skillsRunner.recentRuns.empty': 'Keine aktuellen Läufe.',
  'settings.skillsRunner.viewer.loading': 'Protokoll wird geladen…',
  'settings.skillsRunner.viewer.tailing': 'Live-Tailing',
  'settings.skillsRunner.viewer.fetching': 'fetching',
  'settings.skillsRunner.viewer.error': 'Das Lesen des Protokolls ist fehlgeschlagen:',
  'settings.skillsRunner.repoPicker.loading': 'Repositorys werden geladen…',
  'settings.skillsRunner.repoPicker.select': 'Wählen Sie ein Repository aus…',
  'settings.skillsRunner.repoPicker.empty':
    'Es wurden keine Repositorys zurückgegeben. Verbinden Sie GitHub über Composio, um diese Liste zu füllen.',
  'settings.skillsRunner.repoPicker.notConnected':
    'GitHub ist nicht über Composio verbunden. Verbinde es zunächst unter Skills → Composio.',
  'settings.skillsRunner.repoPicker.privateTag': '(privat)',
  'settings.skillsRunner.branchPicker.needRepo': 'Wählen Sie zuerst ein Repo aus...',
  'settings.skillsRunner.branchPicker.loading': 'Zweige werden geladen…',
  'settings.skillsRunner.branchPicker.select': 'Wählen Sie eine Filiale aus…',
  'settings.devWorkflow.githubRepository': 'GitHub-Repository',
  'settings.devWorkflow.loadingRepositories': 'Repositories werden geladen...',
  'settings.devWorkflow.selectRepository': 'Wählen Sie ein Repository aus',
  'settings.devWorkflow.privateTag': '(privat)',
  'settings.devWorkflow.detectingForkInfo': 'Gabelinformationen werden erkannt...',
  'settings.devWorkflow.forkDetected': 'Gabel erkannt',
  'settings.devWorkflow.upstream': 'Upstream:',
  'settings.devWorkflow.forkPrNote': 'PRs werden gegen das Upstream-Repository angehoben.',
  'settings.devWorkflow.notForkNote':
    'Keine Gabel. PRs werden direkt gegen dieses Repository angehoben.',
  'settings.devWorkflow.targetBranch': 'Ziel-Branch',
  'settings.devWorkflow.targetBranchNote': 'PRs werden gegen diese Niederlassung erhoben',
  'settings.devWorkflow.loadingBranches': 'Filialen werden geladen...',
  'settings.devWorkflow.runFrequency': 'Ausführungsfrequenz',
  'settings.devWorkflow.runFrequencyNote':
    'Wie oft sollte der Agent nach Problemen suchen und PRs einreichen.',
  'settings.devWorkflow.updateConfiguration': 'Update Konfiguration',
  'settings.devWorkflow.saveConfiguration': 'Konfiguration speichern',
  'settings.devWorkflow.remove': 'Entlassen',
  'settings.devWorkflow.saved': 'Gespeichert',
  'settings.devWorkflow.activeConfiguration': 'Aktive Konfiguration',
  'settings.devWorkflow.activeConfigRepository': 'Repository:',
  'settings.devWorkflow.activeConfigUpstream': 'Upstream:',
  'settings.devWorkflow.activeConfigTargetBranch': 'Zielbranch:',
  'settings.devWorkflow.activeConfigSchedule': 'Zeitplan: ',
  'settings.devWorkflow.enabled': 'Aktiviert',
  'settings.devWorkflow.paused': 'Angehalten',
  'settings.devWorkflow.nextRun': 'Nächste Ausführung',
  'settings.devWorkflow.lastRun': 'Letzte Ausführung',
  'settings.devWorkflow.runNow': 'Jetzt ausführen',
  'settings.devWorkflow.running': 'Läuft…',
  'settings.devWorkflow.recentRuns': 'Letzte Durchläufe',
  'settings.devWorkflow.cronSaveError': 'Fehler beim Speichern der VKK-Konfiguration',
  'settings.devWorkflow.lastOutput': 'Letzte Ausgabe',
  'settings.devWorkflow.noOutput': 'Keine Ausgabe erfasst',
  'settings.devWorkflow.runningStatus':
    'Agent läuft — er wählt ein Problem aus und arbeitet an einer Lösung...',
  'settings.devWorkflow.errorNotConnected':
    'GitHub ist nicht verbunden. Bitte verbinden Sie GitHub zuerst über Einstellungen > Erweitert > Composio.',
  'settings.devWorkflow.errorToolNotEnabled':
    'Das GITHUB_LIST_REPOSITORIES_FOR_THE_AUTHENTICATED_USER-Tool ist in diesem Backend nicht aktiviert. Bitten Sie Ihren Administrator, es in der Composio-Integration (backend#842) zu aktivieren.',
  'settings.devWorkflow.errorNotAuthenticated':
    'Nicht authentifiziert. Bitte melden Sie sich zuerst an.',
  'settings.devWorkflow.errorNoRepositories':
    'Keine Repositories für dieses GitHub-Konto gefunden.',
  'settings.devWorkflow.schedule.every30min': 'Alle 30 Minuten',
  'settings.devWorkflow.schedule.everyHour': 'Jede Stunde',
  'settings.devWorkflow.schedule.every2hours': 'Alle 2 Stunden',
  'settings.devWorkflow.schedule.every6hours': 'Alle 6 Stunden',
  'settings.devWorkflow.schedule.onceDaily': 'Einmal täglich (09:00 Uhr)',
  'settings.developerMenu.tasks.title': 'Aufgaben',
  'settings.developerMenu.tasks.desc':
    'Aufgaben-Boards durchsuchen und verwalten — deine eigenen To-dos sowie die Boards, die Agenten über Unterhaltungen hinweg erstellen.',
  'settings.developerMenu.cronJobs.title': 'Cron-Jobs',
  'settings.developerMenu.cronJobs.desc':
    'Zeige geplante Jobs für Laufzeitfähigkeiten an und konfiguriere sie',
  'settings.developerMenu.localModelDebug.title': 'Lokales Modell-Debug',
  'settings.developerMenu.localModelDebug.desc':
    'Ollama-Konfiguration, Asset-Downloads, Modelltests und Diagnose',
  'settings.developerMenu.webhooks.title': 'Webhooks',
  'settings.developerMenu.webhooks.desc':
    'Prüfe Laufzeit-Webhook-Registrierungen und erfasste Anforderungsprotokolle',
  'settings.developerMenu.eventLog.title': 'Ereignisprotokoll',
  'settings.developerMenu.eventLog.desc':
    'Farbcodierter Live-Stream aller Agenten-, Tool- und Systemereignisse',
  'settings.developerMenu.eventLog.allTypes': 'Alle Typen',
  'settings.developerMenu.eventLog.filterAgent': 'Filter&#xA0;…',
  'settings.developerMenu.eventLog.download': 'Herunterladen',
  'settings.developerMenu.eventLog.events': 'events',
  'settings.developerMenu.eventLog.live': 'Live',
  'settings.developerMenu.eventLog.disconnected': 'Nicht verbunden',
  'settings.developerMenu.eventLog.waiting': 'Warten auf Ereignisse...',
  'settings.developerMenu.eventLog.notConnected': 'Mit dem Hauptprogramm verbundenName',
  'settings.developerMenu.eventLog.jumpToLatest': 'Zur neuesten Seite springen',
  'settings.developerMenu.eventLog.badge.tool': 'TOOL',
  'settings.developerMenu.eventLog.badge.agent': 'AGENT',
  'settings.developerMenu.eventLog.badge.info': 'INFO',
  'settings.developerMenu.eventLog.badge.mem': 'MEM',
  'settings.developerMenu.eventLog.badge.chan': 'CHAN',
  'settings.developerMenu.eventLog.badge.cron': 'CRON',
  'settings.developerMenu.eventLog.badge.hook': 'HOOK',
  'settings.developerMenu.eventLog.badge.warn': 'WARN',
  'settings.developerMenu.eventLog.badge.skill': 'SKILL',
  'settings.developerMenu.eventLog.badge.comp': 'COMP',
  'settings.developerMenu.eventLog.badge.mcp': 'MCP',
  'settings.developerMenu.intelligence.title': 'Intelligenz',
  'settings.developerMenu.intelligence.desc':
    'Gedächtnisarbeitsbereich, Unterbewusstseinsmotor, Träume und Einstellungen',
  'settings.developerMenu.notificationRouting.title': 'Benachrichtigungsweiterleitung',
  'settings.developerMenu.notificationRouting.desc':
    'KI-Wichtigkeitsbewertung und Orchestrator-Eskalation für Integrationswarnungen',
  'settings.developerMenu.composeioTriggers.title': 'ComposeIO Auslöser',
  'settings.developerMenu.composeioTriggers.desc':
    'Sieh dir den ComposeIO-Triggerverlauf und das Archiv an',
  'settings.developerMenu.composioRouting.title': 'Composio Routing (Direktmodus)',
  'settings.developerMenu.composioRouting.desc':
    'Bring deinen eigenen Composio API-Schlüssel mit und leite Anrufe direkt an backend.composio.dev weiter',
  'settings.developerMenu.integrationTriggers.title': 'Integrationsauslöser',
  'settings.developerMenu.integrationTriggers.desc':
    'Konfiguriere KI-Triage-Einstellungen für Composio-Integrationsauslöser',
  'settings.developerMenu.mcpServer.title': 'MCP-Server',
  'settings.developerMenu.mcpServer.desc':
    'Konfiguriere externe MCP-Clients für die Verbindung mit OpenHuman',
  'settings.developerMenu.autonomy.title': 'Agent-Autonomie',
  'settings.developerMenu.autonomy.desc':
    'Aktionsraten-Limits und Sicherheitsschwellen für Werkzeuge',
  'settings.developerMenu.autocomplete.title': 'Autovervollständigung',
  'settings.developerMenu.autocomplete.desc':
    'KI-Inline-Autovervollständigung Einstellungen und Debug-Panel',
  'settings.developerMenu.voiceDebug.title': 'Sprache (Debug)',
  'settings.developerMenu.voiceDebug.desc':
    'Laufzeitstatus und Debug-Einstellungen für die Sprachdiktierung',
  'settings.mcpServer.title': 'MCP-Server',
  'settings.mcpServer.toolsSectionTitle': 'Verfügbare Werkzeuge',
  'settings.mcpServer.toolsSectionDesc':
    'Werkzeuge, die über den MCP-stdio-Server bereitgestellt werden, wenn openhuman-core mcp ausgeführt wird',
  'settings.mcpServer.configSectionTitle': 'Client-Konfiguration',
  'settings.mcpServer.configSectionDesc':
    'Wähle deinen MCP-Client aus, um den passenden Konfigurationsausschnitt zu erzeugen',
  'settings.mcpServer.copySnippet': 'In die Zwischenablage kopieren',
  'settings.mcpServer.copied': 'Kopiert!',
  'settings.mcpServer.openConfigFile': 'Konfigurationsdatei öffnen',
  'settings.mcpServer.binaryPathNotFound':
    'OpenHuman-Binärdatei nicht gefunden. Wenn du aus dem Quellcode arbeitest, baue sie mit: cargo build --bin openhuman-core',
  'settings.mcpServer.openConfigError': 'Konfigurationsdatei konnte nicht geöffnet werden',
  'settings.mcpServer.clientClaudeDesktop': 'Claude Desktop',
  'settings.mcpServer.clientCursor': 'Cursor',
  'settings.mcpServer.clientCodex': 'Codex',
  'settings.mcpServer.clientZed': 'ZED',
  'settings.mcpServer.configFilePath': 'Konfigurationsdatei',
  'settings.mcpServer.clientSelectorAriaLabel': 'MCP-Client-Auswahl',
  'settings.appearance.menuDesc': 'Wähle hell, dunkel oder passend zu deinem Systemthema',
  'settings.agentAccess.title': 'Zugriff auf das Agenten-Betriebssystem',
  'settings.agentAccess.menuDesc':
    'Steuern Sie, wo der Agent read/write kann und ob er die Shell verwenden kann.',
  'settings.agentAccess.loadError': 'Zugriffseinstellungen konnten nicht geladen werden',
  'settings.agentAccess.saveError': 'Speichern der Einstellungen fehlgeschlagen',
  'settings.agentAccess.saved': 'Gespeichert — gilt für deine nächste Nachricht.',
  'settings.agentAccess.desktopOnly':
    'Die Zugriffseinstellungen sind nur in der Desktop-App verfügbar.',
  'settings.agentAccess.loading': 'Laden…',
  'settings.agentAccess.accessMode': 'Aufrufmodus',
  'settings.agentAccess.tier.readonly.title': 'Nur lesen',
  'settings.agentAccess.tier.readonly.desc':
    'Liest Dateien und führt schreibgeschützte Befehle zum Erkunden aus — schreibt, bearbeitet oder führt jedoch niemals etwas aus, das den Status ändert.',
  'settings.agentAccess.tier.supervised.title': 'Vor der Bearbeitung fragen',
  'settings.agentAccess.tier.supervised.desc':
    'Erstellt neue Dateien frei, bittet aber um Ihre Zustimmung, bevor Sie eine vorhandene Datei bearbeiten, einen Befehl ausführen, das Netzwerk erreichen oder etwas installieren.',
  'settings.agentAccess.tier.full.title': 'Vollzugriff',
  'settings.agentAccess.tier.full.desc':
    'Führt Befehle mit Ihrem vollständigen Benutzerkontozugriff aus — es kann read/write überall dort ausführen, wo es erlaubt ist, mit Ausnahme von Anmeldeinformationen und Systemspeichern. Destruktive Befehle, Netzwerkzugriff und Installationen müssen noch genehmigt werden.',
  'settings.agentAccess.defaultTag': '(standard)',
  'settings.agentAccess.fullWarning':
    '⚠ Vollzugriff führt Befehle mit Ihrem vollständigen Kontozugriff aus und ist nicht sandboxed. Aktivieren Sie es nur, wenn Sie dem Agenten dieses Geräts anvertrauen. Anmeldeinformationen und Systemverzeichnisse bleiben blockiert, und destruktive Netzwerk- und Installationsaktionen erfordern immer noch die Genehmigung.',
  'settings.agentAccess.confine.label': 'Auf Arbeitsbereich beschränken',
  'settings.agentAccess.confine.desc':
    'Beschränken Sie den Agenten auf das Arbeitsbereichsverzeichnis (plus alle gewährten Ordner), je nachdem, welcher Zugriffsmodus ausgewählt ist. Wenn sie ausgeschaltet ist, kann sie an jeden Ort gelangen, den Ihr Benutzer erreichen kann — mit Ausnahme der immer gesperrten Anmeldeinformationen und Systemverzeichnisse.',
  'settings.agentAccess.requireTaskPlanApproval.label':
    'Erfordern Sie die Genehmigung des Aufgabenplans',
  'settings.agentAccess.requireTaskPlanApproval.desc':
    'Pausieren Sie, bevor ein zugewiesener Agent ein vom Agenten verfasstes Aufgaben-Briefing ausführt.',
  'settings.agentAccess.tinyplaceAutopilot.title': 'Autonomer tiny.place-Agent',
  'settings.agentAccess.tinyplaceAutopilot.desc':
    'Lass OpenHuman eigenständig auf tiny.place handeln: zeitgesteuert sucht es lohnende Arbeit – zuerst offene Bounties –, erledigt Passendes und handelt über deine Identität. Es läuft unbeaufsichtigt und kann Geld ausgeben; nutze beim Testen devnet. Standardmäßig aus.',
  'settings.agentAccess.tinyplaceAutopilot.label': 'Automatisch ausführen',
  'settings.agentAccess.timeout.label': 'Aktions-Timeout',
  'settings.agentAccess.timeout.desc':
    'Wie lange ein einzelnes Werkzeug oder eine Aktion laufen darf, bevor sie abgebrochen wird. Erhöhen Sie diesen Wert, wenn ein großes lokales Modell unterbrochen wird, bevor es seine Antwort beendet.',
  'settings.agentAccess.timeout.unit': 'Sekunden',
  'settings.agentAccess.timeout.invalid':
    'Geben Sie eine ganze Zahl von Sekunden innerhalb des zulässigen Bereichs ein',
  'settings.agentAccess.timeout.envOverride':
    'Die Umgebungsvariable OPENHUMAN_TOOL_TIMEOUT_SECS überschreibt diese Einstellung, daher haben Änderungen hier keine Wirkung, bis sie entfernt wird.',
  'settings.agentAccess.grantedFolders': 'Erteilte Ordner',
  'settings.agentAccess.alwaysAllow': 'Immer erlaubte Werkzeuge',
  'settings.agentAccess.alwaysAllowDesc':
    'Tools, die Sie im Chatlauf ohne zu fragen als "Immer zulassen" markiert haben. Entfernen Sie eine, um erneut aufgefordert zu werden.',
  'settings.agentAccess.alwaysAllowNone': 'Noch keine immer erlaubten Tools.',
  'settings.agentAccess.grantedDesc':
    'Ordner, die der Agent zusätzlich zum Arbeitsbereich lesen und schreiben kann. Anmeldedatenspeicher (~/.ssh, ~/.gnupg, ~/.aws, Schlüsselanhänger) und Systemverzeichnisse (/etc, /System, C:\\Windows,…) werden immer blockiert, auch innerhalb eines zugewiesenen Ordners.',
  'settings.agentAccess.noneGranted': 'Keine Ordner gewährt.',
  'settings.agentAccess.readWrite': 'Lesen+Schreiben',
  'settings.agentAccess.readOnly': 'read-only',
  'settings.agentAccess.remove': 'Entlassen',
  'settings.agentAccess.pathPlaceholder': 'Absoluter Ordnerpfad',
  'settings.agentAccess.accessLevelLabel': 'Auf Ebene zugreifen',
  'settings.agentAccess.add': 'Hinzufügen',
  'settings.agentAccess.saving': 'Sichern…',
  'settings.agentAccess.changesApply': 'Änderungen gelten für deine nächste Nachricht.',
  'settings.agentAccess.directories': 'Verzeichnisse',
  'settings.agentAccess.actionSandbox': 'Aktions-Sandbox',
  'settings.agentAccess.readWriteAccess': 'Lesen + Schreiben',
  'settings.agentAccess.actionSandboxDesc':
    'Standard-Arbeitsverzeichnis für Shell-, Datei- und Git-Tools.',
  'settings.agentAccess.actionDir.edit': 'Bearbeiten',
  'settings.agentAccess.actionDir.save': 'Speichern',
  'settings.agentAccess.actionDir.cancel': 'Abbrechen',
  'settings.agentAccess.actionDir.placeholder': 'Absoluter Pfad, z. B. /Users/you/Projects',
  'settings.agentAccess.actionDir.envLocked':
    'Durch OPENHUMAN_ACTION_DIR festgelegt. Ändere die Umgebungsvariable zum Überschreiben.',
  'settings.agentAccess.actionDir.saved': 'Aktionsverzeichnis aktualisiert.',
  'settings.agentAccess.internalState': 'Interner Zustand',
  'settings.agentAccess.agentBlocked': 'Agent-gesperrt',
  'settings.agentAccess.internalStateDesc':
    'Speicherdatenbanken, Sitzungen, Token und andere Kerndaten. Für Agent-Tools nicht zugänglich.',
  'settings.agentAccess.actionDirInputLabel': 'Pfad der Aktions-Sandbox',
  'settings.agentAccess.actionDirSave': 'Speichern',
  'settings.agentAccess.actionDirSaving': 'Wird gespeichert…',
  'settings.agentAccess.actionDirSaved': 'Aktions-Sandbox aktualisiert.',
  'settings.agentAccess.actionDirEmptyError': 'Pfad darf nicht leer sein.',
  'settings.agentAccess.actionDirSaveError': 'Aktions-Sandbox konnte nicht aktualisiert werden.',
  'settings.agentAccess.actionDirEnvOverrideError':
    'OPENHUMAN_ACTION_DIR ist gesetzt — entferne die Umgebungsvariable, um dies in den Einstellungen zu bearbeiten.',
  'settings.agentAccess.actionDirEnvOverrideNote':
    'Durch OPENHUMAN_ACTION_DIR überschrieben — entferne die Umgebungsvariable, um dies in den Einstellungen zu verwalten.',
  'settings.agentAccess.approvalHistory': 'Genehmigungsverlauf',
  'settings.agentAccess.approvalHistoryDesc':
    'Vergangene Genehmigen-/Ablehnen-Entscheidungen des Agenten überprüfen.',
  'settings.agentAccess.viewApprovalHistory': 'Genehmigungsverlauf anzeigen',

  // ── Berechtigungen-Panel ──────────────────────────────────────────
  'settings.permissions.title': 'Berechtigungen',
  'settings.permissions.menuDesc': 'Wähle, was dein Assistent tun darf und wo er arbeiten kann.',
  'settings.permissions.accessMode': 'Was darf der Assistent tun?',
  'settings.permissions.accessModeDesc':
    'Wähle, wie viel Freiheit der Assistent hat, wenn er Aktionen auf deinem Computer ausführt.',
  'settings.permissions.preset.readonly.title': 'Schauen, nicht anfassen',
  'settings.permissions.preset.readonly.desc':
    'Der Assistent kann Dateien lesen und erkunden – aber niemals schreiben, bearbeiten oder etwas ausführen, das den Zustand ändert.',
  'settings.permissions.preset.supervised.title': 'Erst fragen',
  'settings.permissions.preset.supervised.desc':
    'Kann neue Dateien frei erstellen, fragt aber immer um Erlaubnis, bevor er bearbeitet, Befehle ausführt oder auf das Netzwerk zugreift.',
  'settings.permissions.preset.full.title': 'Volle Kontrolle',
  'settings.permissions.preset.full.desc':
    'Läuft mit deinem vollen Kontozugriff. Destruktive Befehle, Netzwerkzugriff und Installationen erfordern weiterhin eine Genehmigung.',
  'settings.permissions.folders': 'Wo darf er arbeiten?',
  'settings.permissions.foldersDesc':
    'Der Standardordner, den der Assistent liest und beschreibt. In den erweiterten Einstellungen kannst du weitere Ordner hinzufügen.',

  'settings.meetings.title': 'Besprechungen',
  'settings.meetings.menuDesc':
    'Auto-Beitritt, Zusammenfassungen und Transkripte des Besprechungsassistenten',
  'settings.meetings.desktopOnly': 'Besprechungseinstellungen sind nur auf dem Desktop verfügbar.',
  'settings.meetings.loading': 'Wird geladen…',
  'settings.meetings.loadError': 'Besprechungseinstellungen konnten nicht geladen werden.',
  'settings.meetings.saveError': 'Besprechungseinstellungen konnten nicht gespeichert werden.',
  'settings.meetings.saved': 'Gespeichert',
  'settings.meetings.saving': 'Wird gespeichert…',
  'settings.meetings.autoJoin.title': 'Auto-Beitritt-Richtlinie',
  'settings.meetings.autoJoin.desc': 'Wenn ein Kalendereintrag einen Google-Meet-Link hat',
  'settings.meetings.autoJoin.askEachTime': 'Jedes Mal fragen',
  'settings.meetings.autoJoin.always': 'Immer beitreten',
  'settings.meetings.autoJoin.never': 'Nie beitreten',
  'settings.meetings.autoSummarize.title': 'Zusammenfassung nach dem Anruf',
  'settings.meetings.autoSummarize.desc': 'Nach Anrufende eine Zusammenfassung erstellen',
  'settings.meetings.autoSummarize.ask': 'Nach dem Anruf fragen',
  'settings.meetings.autoSummarize.always': 'Immer zusammenfassen',
  'settings.meetings.autoSummarize.never': 'Nie zusammenfassen',
  'settings.meetings.listenOnly': 'Nur-Zuhören-Modus',
  'settings.meetings.listenOnlyDesc': 'Mit stummgeschaltetem Mikrofon beitreten',
  'settings.meetings.ingestTranscripts': 'Backend-Transkripte aufnehmen',
  'settings.meetings.ingestTranscriptsDesc': 'Besprechungstranskripte im Speicher ablegen',
  'settings.sandbox.title': 'Sandbox-Ausführung',
  'settings.sandbox.menuDesc':
    'Sandbox-Backends für die Isolation von Agentenwerkzeugen konfigurieren.',
  'settings.sandbox.loading': 'Wird geladen…',
  'settings.sandbox.desktopOnly': 'Sandbox-Einstellungen sind nur in der Desktop-App verfügbar.',
  'settings.sandbox.loadError': 'Sandbox-Einstellungen konnten nicht geladen werden.',
  'settings.sandbox.saveError': 'Sandbox-Einstellungen konnten nicht gespeichert werden.',
  'settings.sandbox.saved': 'Gespeichert — gilt für neue Agentensitzungen.',
  'settings.sandbox.saving': 'Wird gespeichert…',
  'settings.sandbox.status': 'Status',
  'settings.sandbox.dockerStatus': 'Docker',
  'settings.sandbox.available': 'Verfügbar',
  'settings.sandbox.unavailable': 'Nicht verfügbar',
  'settings.sandbox.detectedBackend': 'OS-Backend',
  'settings.sandbox.enableLabel': 'Sandbox-Ausführung aktivieren',
  'settings.sandbox.enableDesc': 'Agentenwerkzeuge in einer isolierten Sandbox-Umgebung ausführen.',
  'settings.sandbox.backendLabel': 'Backend',
  'settings.sandbox.backendDesc': 'Wählen Sie das Isolierungs-Backend für die Sandbox-Ausführung.',
  'settings.sandbox.backend.auto': 'Automatisch (bestes verfügbares erkennen)',
  'settings.sandbox.backend.docker': 'Docker',
  'settings.sandbox.backend.landlock': 'Landlock (Linux)',
  'settings.sandbox.backend.firejail': 'Firejail (Linux)',
  'settings.sandbox.backend.bubblewrap': 'Bubblewrap (Linux)',
  'settings.sandbox.backend.none': 'Keine (ohne Sandbox)',
  'settings.sandbox.dockerSettings': 'Docker-Einstellungen',
  'settings.sandbox.dockerImage': 'Image',
  'settings.sandbox.dockerImagePlaceholder': 'alpine:3.20',
  'settings.sandbox.memoryLimit': 'Speicherlimit',
  'settings.sandbox.memoryUnit': 'MB',
  'settings.sandbox.cpuLimit': 'CPU-Limit',
  'settings.sandbox.cpuUnit': 'Kerne',
  'settings.sandbox.envPassthrough': 'Umgebungsvariablen-Durchleitung',
  'settings.sandbox.envPassthroughDesc':
    'Umgebungsvariablen, die in die Sandbox weitergeleitet werden.',
  'settings.sandbox.noEnvVars': 'Keine Umgebungsvariablen konfiguriert.',
  'settings.approvalHistory.title': 'Genehmigungsverlauf',
  'settings.approvalHistory.subtitle': 'Aktuelle Tool-Genehmigungsentscheidungen, neueste zuerst.',
  'settings.approvalHistory.refresh': 'Refresh',
  'settings.approvalHistory.loading': 'Genehmigungsverlauf wird geladen…',
  'settings.approvalHistory.retry': 'Retry',
  'settings.approvalHistory.emptyState': 'Noch keine Genehmigungsentscheidungen aufgezeichnet.',
  'settings.approvalHistory.errorGeneric':
    'Genehmigungsverlauf konnte nicht geladen werden. Erneut versuchen.',
  'settings.approvalHistory.decidedAt': 'Entschieden am {date}',
  'settings.approvalHistory.decision.approveOnce': 'Einmal genehmigt',
  'settings.approvalHistory.decision.approveAlways': 'Immer erlaubt',
  'settings.approvalHistory.decision.deny': 'Denied',
  'settings.theme.variantLight': 'Hell',
  'settings.theme.variantDark': 'Dunkel',
  'settings.theme.variantAuto': 'Automatisch',
  'settings.theme.variantAria': 'Theme-Variante',
  'settings.theme.backdropHeading': 'Hintergrund',
  'settings.theme.backdrop.mesh': 'Netz',
  'settings.theme.backdrop.solid': 'Einfarbig',
  'settings.theme.backdrop.image': 'Bild',
  'settings.theme.backdropImageUrl': 'URL des Hintergrundbilds',
  'settings.theme.backdropDots': 'Hintergrundpunkte anzeigen',
  'settings.theme.backdropHint':
    'Netz zeigt den animierten Farbverlauf; Einfarbig nutzt einen flachen Hintergrund; Bild verwendet dein eigenes.',
  'settings.theme.autoForkHint':
    'Beim Bearbeiten einer Vorlage werden deine Änderungen automatisch als neues benutzerdefiniertes Theme gespeichert.',
  'settings.theme.title': 'Theme-Studio',
  'settings.theme.menuDesc':
    'Passe Farben und Schriftarten vollständig an oder wähle ein voreingestelltes Theme.',
  'settings.theme.presetsHeading': 'Themes',
  'settings.theme.builtInBadge': 'Voreinstellung',
  'settings.theme.customBadge': 'Benutzerdefiniert',
  'settings.theme.customizeHint':
    'Integrierte Voreinstellungen sind schreibgeschützt. Dupliziere dieses Theme, um seine Farben und Schriftarten zu bearbeiten.',
  'settings.theme.duplicate': 'Duplizieren & anpassen',
  'settings.theme.copyName': '{name} (benutzerdefiniert)',
  'settings.theme.importedName': 'Importiertes Theme',
  'settings.theme.contrastWarn':
    'Geringer Kontrast zwischen Text und Hintergrund — dieses Theme ist möglicherweise schwer zu lesen.',
  'settings.theme.group.surfaces': 'Oberflächen',
  'settings.theme.group.text': 'Text',
  'settings.theme.group.borders': 'Ränder',
  'settings.theme.group.accents': 'Akzentfarben',
  'settings.theme.showShades': 'Alle Akzenttöne anzeigen',
  'settings.theme.hideShades': 'Alle Akzenttöne ausblenden',
  'settings.theme.fontsHeading': 'Schriftarten',
  'settings.theme.fontRole.title': 'Titel',
  'settings.theme.fontRole.heading': 'Überschrift',
  'settings.theme.fontRole.body': 'Fließtext',
  'settings.theme.fontRole.mono': 'Monospace',
  'settings.theme.fontRole.serif': 'Serif',
  'settings.theme.fontCurrent': 'Aktuell',
  'settings.theme.actions': 'Theme verwalten',
  'settings.theme.reset': 'Überschreibungen zurücksetzen',
  'settings.theme.delete': 'Theme löschen',
  'settings.theme.export': 'JSON kopieren',
  'settings.theme.copied': 'Kopiert!',
  'settings.theme.import': 'Theme importieren',
  'settings.theme.importHint':
    'Füge exportiertes Theme-JSON ein, um es als benutzerdefiniertes Theme hinzuzufügen.',
  'settings.theme.importApply': 'Importieren',
  'settings.theme.importError': 'Dieses Theme-JSON konnte nicht verarbeitet werden.',
  'settings.appearance.title': 'Aussehen',
  'settings.appearance.themeHeading': 'Thema',
  'settings.appearance.themeAria': 'Thema',
  'settings.appearance.modeLight': 'Licht',
  'settings.appearance.modeLightDesc': 'Helle Flächen, dunkler Text.',
  'settings.appearance.modeDark': 'Dunkel',
  'settings.appearance.modeDarkDesc':
    'Dunkle Oberflächen, nach Einbruch der Dunkelheit angenehmer für die Augen.',
  'settings.appearance.modeSystem': 'Match-System',
  'settings.appearance.modeSystemDesc':
    'Folgt den Einstellungen für das Erscheinungsbild deines Betriebssystems.',
  'settings.appearance.helperText':
    'Der Dunkelmodus schaltet die gesamte App – Chat, Einstellungen, Bedienfelder – auf eine dunkle Palette um. „Match System“ verfolgt das Erscheinungsbild deines Betriebssystems und aktualisiert es live.',
  'settings.appearance.fontSizeHeading': 'Schriftgröße',
  'settings.appearance.fontSizeAria': 'Schriftgröße',
  'settings.appearance.fontSizeSmall': 'Klein',
  'settings.appearance.fontSizeSmallDesc': 'Kompakter Text — mehr auf dem Bildschirm.',
  'settings.appearance.fontSizeMedium': 'Mittel',
  'settings.appearance.fontSizeMediumDesc': 'Die ausgewogene Standardgröße.',
  'settings.appearance.fontSizeLarge': 'Groß',
  'settings.appearance.fontSizeLargeDesc': 'Größerer Text für leichteres Lesen.',
  'settings.appearance.fontSizeXLarge': 'Sehr groß',
  'settings.appearance.fontSizeXLargeDesc': 'Der größte Text für maximale Lesbarkeit.',
  'settings.appearance.fontSizeHelperText':
    'Skaliert den Text in der gesamten App — Chat, Einstellungen und Bereiche — unabhängig von der Schrifteinstellung deines Systems.',
  'settings.appearance.tabBarHeading': 'Untere Tab-Leiste',
  'settings.appearance.tabBarAlwaysShowLabels': 'Beschriftungen immer anzeigen',
  'settings.appearance.tabBarAlwaysShowLabelsDesc':
    'Wenn diese Option deaktiviert ist, werden Beschriftungen nur beim Hover oder für die aktive Registerkarte angezeigt.',
  'settings.appearance.chatHeading': 'Chat',
  'settings.appearance.assistantTextMode': 'Assistentenantworten als Text',
  'settings.appearance.hideAgentInsights': 'Agent-Denkprozess ausblenden',
  'settings.appearance.hideAgentInsightsDesc':
    'Blendet die schrittweise Live-Zeitleiste des Agenten im Chat aus. Über einen blinkenden „Wird verarbeitet“-Link lässt sich der vollständige Ablauf weiterhin öffnen.',
  'settings.appearance.assistantTextModeDesc':
    'Zeigt Assistentenantworten als ungerahmten Text an und lässt deine Nachrichten in Blasen.',
  'settings.mascot.active': 'Aktiv',
  'settings.mascot.characterDesc': 'Charakterbeschreibung',
  'settings.mascot.characterDraft': 'Entwurf',
  'settings.mascot.characterHeading': 'Zeichenüberschrift',
  'settings.mascot.customGifError':
    'GIF konnte nicht geladen werden. Bitte überprüfe die URL und versuche es erneut.',
  'settings.mascot.customGifHeading': 'Benutzerdefinierter GIF-Avatar',
  'settings.mascot.customGifLabel': 'URL für benutzerdefinierten GIF-Avatar',
  'settings.mascot.customGifPlaceholder': 'https://example.com/avatar.gif',
  'settings.mascot.characterPreview': 'Vorschau',
  'settings.mascot.characterStates': 'Staaten',
  'settings.mascot.characterVisemes': 'Mundbilder',
  'settings.mascot.colorAria': 'OpenHuman Farbe',
  'settings.mascot.colorDesc': 'Farbbeschreibung',
  'settings.mascot.colorHeading': 'Farbüberschrift',
  'settings.mascot.colorBlack': 'Schwarz',
  'settings.mascot.colorBurgundy': 'Burgund',
  'settings.mascot.colorCustom': 'Angepasst',
  'settings.mascot.colorNavy': 'Marine',
  'settings.mascot.primaryColor': 'Primär Farbe',
  'settings.mascot.secondaryColor': 'Sekundär',
  'settings.mascot.colorYellow': 'Gelb',
  'settings.mascot.libraryUnavailable': 'OpenHuman Bibliothek nicht verfügbar',
  'settings.mascot.title': 'OpenHuman',
  'settings.mascot.loadingLibrary': 'OpenHuman-Bibliothek wird geladen…',
  'settings.mascot.loadDetailError': 'Maskottchen konnte nicht geladen werden.',
  'settings.mascot.loadLibraryError': 'Maskottchenbibliothek konnte nicht geladen werden.',
  'settings.mascot.localDefault': 'Lokal OpenHuman (Standard)',
  'settings.mascot.menuTitle': 'Maskottchen',
  'settings.mascot.menuDesc':
    'Wähle die Maskottchenfarbe aus, die in der gesamten App verwendet wird',
  'settings.mascot.noCharacters': 'Es sind noch keine OpenHuman Zeichen verfügbar',
  'settings.mascot.noColorVariants': 'Keine Farbvarianten',
  'settings.mascot.voice.current': 'aktuell',
  'settings.mascot.voice.customDesc':
    'Sprach-IDs findest du unter api.elevenlabs.io/v1/voices oder in deinem ElevenLabs-Dashboard. Es wird nur die ID gespeichert – dein API-Schlüssel bleibt im Backend.',
  'settings.mascot.voice.customHeading': 'Benutzerdefinierte Sprach-ID',
  'settings.mascot.voice.customOption': 'Andere (Sprach-ID einfügen)…',
  'settings.mascot.voice.customPlaceholder': 'z.B. 21m00Tcm4TlvDq8ikWAM',
  'settings.mascot.voice.desc':
    'Wähle die ElevenLabs-Stimme aus, die das Maskottchen für gesprochene Antworten verwendet. Filtere nach Geschlecht, wähle aus der kuratierten Liste aus, füge eine benutzerdefinierte ID ein oder lass die App eine Stimme auswählen, die deiner Benutzeroberflächensprache entspricht.',
  'settings.mascot.voice.genderFemale': 'Weiblich',
  'settings.mascot.voice.genderHeading': 'Stimmgeschlecht',
  'settings.mascot.voice.genderMale': 'Männlich',
  'settings.mascot.voice.heading': 'Stimme',
  'settings.mascot.voice.preset': 'Sprachvoreinstellung',
  'settings.mascot.voice.presetHeading': 'Sprachvoreinstellung',
  'settings.mascot.voice.preview': 'Vorschau der Stimme',
  'settings.mascot.voice.previewError': 'Die Sprachvorschau ist fehlgeschlagen',
  'settings.mascot.voice.previewText':
    'Hallo, ich bin Ihre Assistentin. Dies ist eine Sprachvorschau.',
  'settings.mascot.voice.previewing': 'Vorschau...',
  'settings.mascot.voice.reset': 'Auf Standard zurücksetzen',
  'settings.mascot.voice.useLocaleDefault': 'Passe die App-Sprache an',
  'settings.mascot.voice.useLocaleDefaultDesc':
    'Wähle automatisch eine Stimme für die aktuelle Schnittstellensprache aus.',
  'settings.persona.title': 'Persona',
  'settings.persona.menuTitle': 'Persona',
  'settings.persona.menuDesc':
    'Name, Persönlichkeit, Avatar und Stimme – Ihr Assistent als eine Identität',
  'settings.persona.identityHeading': 'Identität',
  'settings.persona.identityDesc':
    'Ein Anzeigename und eine kurze Beschreibung für Ihren Assistenten. Wird in der App angezeigt; ändert nichts an der Begründung des Assistenten.',
  'settings.persona.displayNameLabel': 'Anzeigename',
  'settings.persona.displayNamePlaceholder': 'z.B. Nova',
  'settings.persona.descriptionLabel': 'Beschreibung',
  'settings.persona.descriptionPlaceholder':
    'z.B. Ein ruhiger, prägnanter Assistent für mein Team.',
  'settings.persona.soul.heading': 'Persönlichkeit (SOUL.md)',
  'settings.persona.soul.desc':
    'Der Persönlichkeitsaufforderung folgt der Assistent in jedem Gespräch. Änderungen werden in Ihrem Arbeitsbereich gespeichert und werden bei der nächsten Antwort wirksam.',
  'settings.persona.soul.editorLabel': 'Inhalte von SOUL.md',
  'settings.persona.soul.reset': 'Auf Standard zurücksetzen',
  'settings.persona.soul.usingDefault': 'Verwendung der mitgelieferten Standardeinstellung',
  'settings.persona.soul.loadError': 'SOUL.md konnte nicht geladen werden',
  'settings.persona.soul.saveError': 'SOUL.md konnte nicht gespeichert werden',
  'settings.persona.soul.resetError': 'SOUL.md konnte nicht zurückgesetzt werden',
  'settings.persona.appearanceHeading': 'Avatar und Stimme',
  'settings.persona.appearanceDesc':
    'Maskottchenfarbe, benutzerdefinierter GIF-Avatar und Antwortstimme werden in den Maskottcheneinstellungen konfiguriert.',
  'settings.persona.openMascotSettings': 'Öffnen Sie die Maskottchen-Einstellungen',
  'settings.memoryWindow.balanced.badge': 'Empfohlen',
  'settings.memoryWindow.balanced.hint':
    'Sinnvolle Standardeinstellung – gute Kontinuität, ohne bei jedem Lauf zusätzliche Token zu verbrennen.',
  'settings.memoryWindow.balanced.label': 'Ausgewogen',
  'settings.memoryWindow.description':
    'Wie viel gespeicherter Kontext OpenHuman in jede neue Agentenausführung eingefügt wird. Bei größeren Fenstern ist man sich früherer Gespräche besser bewusst, verbraucht aber bei jedem Durchlauf mehr Token – und kostet mehr.',
  'settings.memoryWindow.extended.badge': 'Mehr Kontext',
  'settings.memoryWindow.extended.hint':
    'Bei jedem Lauf wird mehr Langzeitgedächtnis injiziert. Höhere Token-Kosten pro Spielzug.',
  'settings.memoryWindow.extended.label': 'Erweitert',
  'settings.memoryWindow.maximum.badge': 'Höchste Kosten',
  'settings.memoryWindow.maximum.hint':
    'Das größte sichere Fenster. Beste Kontinuität, deutlich höhere Token-Rechnung bei jedem Lauf.',
  'settings.memoryWindow.maximum.label': 'Maximal',
  'settings.memoryWindow.minimal.badge': 'Günstigstes',
  'settings.memoryWindow.minimal.hint':
    'Kleinstes Speicherfenster. Günstigstes, schnellstes, geringste Kontinuität zwischen den Läufen.',
  'settings.memoryWindow.minimal.label': 'Minimal',
  'settings.memoryWindow.title': 'Langzeitgedächtnisfenster',
  'settings.agentbox.title': 'AgentBox',
  'settings.agentbox.desc': 'Status des GMI-Cloud-Marktplatz-Adapters und Anbieterkonfiguration',
  'settings.agentbox.intro':
    'Schreibgeschützter Status des AgentBox-Marktplatz-Adapters. Modus und GMI-MaaS-Anbieter werden beim Start des Kerns über Umgebungsvariablen festgelegt.',
  'settings.agentbox.modeLabel': 'Marktplatz-Modus',
  'settings.agentbox.providerHeading': 'GMI MaaS Anbieter',
  'settings.agentbox.slug': 'Anbieterkennung',
  'settings.agentbox.baseUrl': 'Basis-URL',
  'settings.agentbox.model': 'Modell',
  'settings.agentbox.notConfigured':
    'Nicht konfiguriert. Legen Sie die Umgebungsvariablen GMI_MAAS_BASE_URL, GMI_MAAS_API_KEY und GMI_MODELS fest.',
  'settings.agentbox.unavailable': 'AgentBox-Status nicht verfügbar',
  'settings.modelHealth.title': 'Modellgesundheit',
  'settings.modelHealth.desc':
    'Qualität pro Modell, Halluzinationsrate und Kostenvergleich zwischen aktiven Modellen',
  'settings.modelHealth.allStatuses': 'Alle Stati',
  'settings.modelHealth.models': 'models',
  'settings.modelHealth.loading': 'Modelldaten werden geladen...',
  'settings.modelHealth.empty': 'Keine Modelle registriert',
  'settings.modelHealth.col.model': 'Modell',
  'settings.modelHealth.col.quality': 'Qualität',
  'settings.modelHealth.col.halluc': 'Halluz. Rate',
  'settings.modelHealth.col.cost': 'Kosten / 1 Mio. aus',
  'settings.modelHealth.col.agents': 'Agenten',
  'settings.modelHealth.col.status': 'Status',
  'settings.modelHealth.badge.keep': 'Behalten',
  'settings.modelHealth.badge.replace': 'Ersetzen',
  'settings.modelHealth.badge.staging': 'Staging/Test',
  'settings.modelHealth.badge.vision': 'Nur Vision',
  'settings.modelHealth.swap': 'Tauschen?',
  'settings.modelHealth.modal.title': 'Modell ersetzen?',
  'settings.modelHealth.modal.hallucRate': 'Halluzinationsrate',
  'settings.modelHealth.modal.cancel': 'Stornieren',
  'settings.modelHealth.modal.apply': 'Ersatz anwenden',
  'settings.modelHealth.tag.cheaper': 'CHEAPER',
  'settings.modelHealth.tag.better': 'BETTER',
  'settings.desktopAgent.title': 'Desktop-Agent',
  'settings.desktopAgent.description':
    'Überprüfen und erteilen Sie die Berechtigungen, die der Desktop-Agent benötigt.',
  'settings.desktopAgent.microphone': 'Mikrofon',
  'settings.desktopAgent.grant': 'Erlauben',
  'settings.desktopAgent.notRequiredOnOs': 'Auf diesem Betriebssystem nicht erforderlich',
  'settings.desktopAgent.allGranted':
    'Alles bereit – der Desktop-Agent hat alle erforderlichen Berechtigungen.',
  'settings.desktopAgent.recheck': 'Erneut prüfen',
  'settings.desktopAgent.restartAndRecheck': 'Kern neu starten und erneut prüfen',
  'settings.desktopAgent.seamless.title': 'Agentenaktionen',
  'settings.desktopAgent.seamless.label': 'Den Agenten ohne Nachfrage handeln lassen',
  'settings.desktopAgent.seamless.description':
    'Vollzugriff erteilen und Desktop-Aktionen (Apps öffnen, App-Oberflächen steuern) automatisch genehmigen, damit der Agent sie ohne Bestätigungsabfrage ausführt.',
  'settings.desktopAgent.seamless.note':
    'Nur Desktop-Aktionen überspringen die Abfrage — das Ausführen von Shell-Befehlen, das Bearbeiten von Dateien, Netzwerkanfragen und das Installieren von Software fragen weiterhin nach. Wird dies deaktiviert, endet die automatische Genehmigung von Desktop-Aktionen, die Zugriffsstufe bleibt jedoch unverändert.',
  'settings.desktopAgent.beta':
    'Beta – der Desktop-Agent ist experimentell und funktioniert möglicherweise nicht immer wie erwartet.',
  'settings.desktopAgent.wakeWordHint':
    'Sagen Sie „Hey Tiny“ vor Ihrem Befehl, um den Agenten zu wecken.',
  'settings.screenIntel.permissions.accessibility': 'Barrierefreiheit',
  'settings.screenIntel.permissions.grantHint': 'Grant-Hinweis',
  'settings.screenIntel.permissions.inputMonitoring': 'Eingabeüberwachung',
  'settings.screenIntel.permissions.macosAppliesPrivacy':
    'macOS verwaltet diese Berechtigungen unter Systemeinstellungen → Datenschutz & Sicherheit.',
  'settings.screenIntel.permissions.openInputMonitoring': 'Bitte um …',
  'settings.screenIntel.permissions.refreshStatus': 'Erfrischend…',
  'settings.screenIntel.permissions.refreshing': 'Erfrischend…',
  'settings.screenIntel.permissions.requestAccessibility': 'Bitte um …',
  'settings.screenIntel.permissions.requestScreenRecording': 'Bitte um …',
  'settings.screenIntel.permissions.requesting': 'Bitte um …',
  'settings.screenIntel.permissions.restartRefresh': 'Kern wird neu gestartet...',
  'settings.screenIntel.permissions.restartingCore': 'Kern wird neu gestartet...',
  'settings.screenIntel.permissions.screenRecording': 'Bildschirmaufzeichnung',
  'settings.screenIntel.permissions.title': 'Berechtigungen',
  'skills.card.moreActions': 'Weitere Aktionen',
  'skills.channelIcon.discord': 'Discord',
  'skills.channelIcon.imessage': 'iMessage',
  'skills.channelIcon.telegram': 'Telegram',
  'skills.channelIcon.web': 'Web',
  'skills.channelIcon.yuanbao': 'Yuanbao',
  'skills.composio.poweredBy': 'Unterstützt von Composio',
  'skills.composio.staleStatusTitle': 'Verbindungen zeigen den veralteten Status an',
  'skills.create.allowedTools': 'Erlaubte Werkzeuge',
  'skills.create.allowedToolsHelp': 'Im SKILL.md-Frontmatter gerendert als',
  'skills.create.allowedToolsPlaceholder': 'node_exec, fetch',
  'skills.create.author': 'Autor',
  'skills.create.authorPlaceholder': 'Dein Name',
  'skills.create.commaSeparated': '(durch Kommas getrennt)',
  'skills.create.createBtn': 'Fertigkeit schaffen',
  'skills.create.createError': 'Fertigkeit konnte nicht erstellt werden',
  'skills.create.creating': 'Erstellen…',
  'skills.create.description': 'Beschreibung',
  'skills.create.descriptionPlaceholder': 'Was bewirkt diese Fähigkeit?',
  'skills.create.optional': '(optional)',
  'skills.create.inputs.heading': 'Inputs',
  'skills.create.inputs.help':
    'Parameter deklarieren, die der Skill benötigt. Der Skills Runner erstellt zur Laufzeit ein Formular dafür.',
  'skills.create.inputs.add': 'Eingabe hinzufügen',
  'skills.create.inputs.row.name': 'Eingabename',
  'skills.create.inputs.row.namePlaceholder': 'z. B. repo',
  'skills.create.inputs.row.nameError':
    'Nur Buchstaben, Ziffern, Unterstriche und Bindestriche; muss mit einem Buchstaben beginnen.',
  'skills.create.inputs.row.description': 'Eingabebeschreibung',
  'skills.create.inputs.row.descriptionPlaceholder': 'Was wird in dieses Feld eingegeben?',
  'skills.create.inputs.row.type': 'Type',
  'skills.create.inputs.row.required': 'Required',
  'skills.create.inputs.row.remove': 'Eingabe entfernen',
  'skills.create.inputs.type.string': 'Text',
  'skills.create.inputs.type.integer': 'Number',
  'skills.create.inputs.type.boolean': 'Ja / Nein',
  'skills.create.license': 'Lizenz',
  'skills.create.licensePlaceholder': 'MIT',
  'skills.create.name': 'Name',
  'skills.create.namePlaceholder': 'z.B. Fachzeitschrift',
  'skills.create.scope': 'Umfang',
  'skills.create.scopeProjectHint': '/.openhuman/skills/',
  'skills.create.scopeUserHint':
    'Geschrieben an ~/.openhuman/skills/<slug>/SKILL.md – verfügbar in allen Arbeitsbereichen.',
  'skills.create.slugLabel': 'Schneckenetikett',
  'skills.create.subtitle': 'SKILL.md',
  'skills.create.tags': 'Schlagworte',
  'skills.create.tagsPlaceholder': 'Handel, Forschung',
  'skills.create.title': 'Neue Fähigkeit',
  'skills.detail.allowedTools': 'Erlaubte Werkzeuge',
  'skills.detail.author': 'Autor',
  'skills.detail.license': 'Lizenz',
  'skills.detail.bundledResources': 'Gebündelte Ressourcen',
  'skills.detail.description': 'Beschreibung',
  'skills.detail.closeAriaLabel': 'Fertigkeitsdetails schließen',
  'skills.detail.location': 'Standort',
  'skills.detail.noBundledResources': 'Keine gebündelten Ressourcen.',
  'skills.detail.platforms': 'Plattformen',
  'skills.detail.relatedSkills': 'Verwandte Skills',
  'skills.detail.source': 'Quell-URL',
  'skills.detail.sourceFormat': 'Format',
  'skills.detail.stars': 'Sterne',
  'skills.detail.tags': 'Schlagworte',
  'skills.detail.warnings': 'Warnungen',
  'skills.detail.version': 'Version',
  'skills.install.errors.alreadyInstalledHint':
    'Ein Skill mit diesem Slug ist bereits im Arbeitsbereich vorhanden. Entfernen Sie es zuerst oder ändern Sie die Frontmatter „metadata.id“ / „name“.',
  'skills.install.errors.alreadyInstalledTitle': 'Skill bereits installiert',
  'skills.install.errors.fetchFailedHint':
    'Die Anfrage wurde nicht erfolgreich abgeschlossen. Überprüfen Sie, ob URL auf eine erreichbare öffentliche Datei verweist und ob der Host eine 2xx-Antwort zurückgegeben hat.',
  'skills.install.errors.fetchFailedTitle': 'Abruf fehlgeschlagen',
  'skills.install.errors.fetchTimedOutHint':
    'Der Remote-Host hat nicht rechtzeitig geantwortet. Versuchen Sie es erneut oder erhöhen Sie das Timeout (1–600 s).',
  'skills.install.errors.fetchTimedOutTitle': 'Zeitüberschreitung beim Abruf',
  'skills.install.errors.fetchTooLargeHint':
    'Die Datei SKILL.md muss unter 1 MiB liegen. Teilen Sie gebündelte Ressourcen in „references/“- oder „scripts/“-Dateien auf, anstatt sie einzubinden.',
  'skills.install.errors.fetchTooLargeTitle': 'SKILL.md zu groß',
  'skills.install.errors.genericHint':
    'Das Backend hat einen Fehler zurückgegeben. Die Rohnachricht wird unten angezeigt.',
  'skills.install.errors.genericTitle': 'Skill konnte nicht installiert werden',
  'skills.install.errors.invalidSkillHint':
    'Der Frontmatter muss gültiges YAML mit nicht leeren Feldern „Name“ und „Beschreibung“ sein, abgeschlossen durch „---“.',
  'skills.install.errors.invalidSkillTitle': 'SKILL.md hat nicht geparst',
  'skills.install.errors.invalidUrlHint':
    'Nur öffentliche HTTPS URLs sind zulässig. Private, Loopback- und Metadaten-Hosts werden blockiert.',
  'skills.install.errors.invalidUrlTitle': 'URL abgelehnt',
  'skills.install.errors.unsupportedUrlHint':
    'Nur direkte „.md“-Links funktionieren. Für GitHub: Link zu einer Datei (github.com/owner/repo/blob/.../SKILL.md) – Baum- und Repo-Roots sind nicht installiert.',
  'skills.install.errors.unsupportedUrlTitle': 'URL-Formular nicht unterstützt',
  'skills.install.errors.writeFailedHint':
    'Das Workspace-Skills-Verzeichnis war nicht beschreibbar. Überprüfen Sie die Dateisystemberechtigungen für „<workspace>/.openhuman/skills/“.',
  'skills.install.errors.writeFailedTitle': 'SKILL.md konnte nicht geschrieben werden.',
  'skills.install.fetchLog': 'Protokoll abrufen',
  'skills.install.fetchingPrefix': 'Das Abrufen von',
  'skills.install.fetchingSuffix': 'kann bis zu dem von Ihnen konfigurierten Timeout dauern.',
  'skills.install.installBtn': 'Installieren…',
  'skills.install.installComplete': 'Installation abgeschlossen',
  'skills.install.installing': 'Installieren…',
  'skills.install.parseWarnings': 'Warnungen analysieren',
  'skills.install.rawError': 'Roher Fehler',
  'skills.install.subtitleMiddle': 'über HTTPS und installiert es unter',
  'skills.install.subtitlePrefix': 'Ruft nur einen einzelnen',
  'skills.install.subtitleSuffix': 'HTTPS ab; Private und Loopback-Hosts werden blockiert.',
  'skills.install.successDiscovered': '{count} neue Fähigkeiten entdeckt.',
  'skills.install.successNoNewIds':
    'Skill installiert, aber keine neuen Skill-IDs erschienen – der Katalog enthält möglicherweise bereits einen Skill mit demselben Slug.',
  'skills.install.timeoutHint': '(Sekunden, optional)',
  'skills.install.timeoutHelp':
    'Standardmäßig 60 Sekunden. Werte außerhalb von 1-600 werden serverseitig begrenzt.',
  'skills.install.timeoutInvalid': 'Muss eine Ganzzahl zwischen 1 und 600 sein.',
  'skills.install.timeoutLabel': 'Timeout-Label',
  'skills.install.timeoutPlaceholder': '60',
  'skills.install.title': 'Skill von URL installieren',
  'skills.install.urlHelpMiddle': 'Datei.',
  'skills.install.urlHelpPrefix': 'Direkter Link zu einem',
  'skills.install.urlHelpSuffix': 'URLs, zu dem automatisch umgeschrieben wird',
  'skills.install.urlInvalidPrefix': 'URL muss wohlgeformt sein',
  'skills.install.urlInvalidSuffix': 'Link.',
  'skills.install.urlLabel': 'Fähigkeit URL',
  'skills.install.urlPlaceholder': 'https://raw.githubusercontent.com/owner/repo/main/SKILL.md',
  'skills.meetingBots.bannerDesc':
    'Lege einen Google Meet-Link ab und OpenHuman tritt als Gast bei, spricht, hört zu und winkt zurück.',
  'skills.meetingBots.bannerTitle': 'Sende OpenHuman an eine Besprechung',
  'skills.meetingBots.busyTitle': 'OpenHuman ist beschäftigt',
  'skills.meetingBots.comingSoon': 'Kommt bald',
  'skills.meetingBots.couldNotLeaveTitle': 'Meeting konnte nicht verlassen werden',
  'skills.meetingBots.couldNotStartTitle': 'OpenHuman konnte nicht gestartet werden',
  'skills.meetingBots.displayName': 'Anzeigename',
  'skills.meetingBots.failedToStart': 'OpenHuman konnte nicht gestartet werden.',
  'skills.meetingBots.joiningMessage': 'Es sollte in wenigen Sekunden als Teilnehmer erscheinen.',
  'skills.meetingBots.joiningTitle': 'OpenHuman nimmt an der Besprechung teil',
  'skills.meetingBots.meetingLink': 'Link zum Treffen',
  'skills.meetingBots.modalAriaLabel': 'Sende OpenHuman an eine Besprechung',
  'skills.meetingBots.modalDesc':
    'OpenHuman tritt als anonymer Gast bei, streamt sein Video in den Anruf und antwortet über den Agenten.',
  'skills.meetingBots.modalTitle': 'Sende OpenHuman an eine Besprechung',
  'skills.meetingBots.newBadge': 'Neu',
  'skills.meetingBots.platformComingSoon': '{label}-Unterstützung ist bald verfügbar.',
  'skills.meetingBots.platformHints.gmeet': 'meet.google.com/abc-defg-hij',
  'skills.meetingBots.platformHints.teams': 'teams.microsoft.com/...',
  'skills.meetingBots.platformHints.webex': 'webex.com/meet/...',
  'skills.meetingBots.platformHints.zoom': 'zoom.us/j/...',
  'skills.meetingBots.platforms.gmeet': 'Google Treffen Sie',
  'skills.meetingBots.platforms.teams': 'Microsoft Teams',
  'skills.meetingBots.platforms.webex': 'Webex',
  'skills.meetingBots.platforms.zoom': 'Zoom',
  'skills.meetingBots.sendTo': 'Senden an',
  'skills.meetingBots.serverOverloaded':
    'OpenHuman ist gerade stark ausgelastet. Bitte versuche es in ein paar Minuten erneut.',
  'skills.meetingBots.soonSuffix': 'bald',
  'skills.meetingBots.starting': 'Beginnend mit …',
  'skills.meetingBots.recentCallsAriaLabel': 'Letzte Meeting-Anrufe',
  'skills.meetingBots.recentCallsHeading': 'Letzte Anrufe',
  'skills.meetingBots.recentCallsEmpty':
    'Noch keine früheren Anrufe — Ihr Meeting-Verlauf erscheint hier.',
  'skills.meetingBots.recentCallsLoading': 'Laden\u2026',
  'skills.meetingBots.recentCallAddedBy': 'Hinzugefügt von {name}',
  'skills.meetingBots.recentCallParticipants': 'Mit {names}',
  'skills.meetingBots.recentCallTurnSingular': '{count} Beitrag',
  'skills.meetingBots.recentCallTurnPlural': '{count} Beiträge',
  'skills.meetingBots.recentCallDuration': '{seconds}s im Gespräch',
  'skills.meetingBots.callDetailLoading': 'Transkript wird geladen…',
  'skills.meetingBots.callDetailError': 'Transkript konnte nicht geladen werden.',
  'skills.meetingBots.callDetailRetry': 'Wiederholen',
  'skills.meetingBots.callDetailEmpty':
    'Für diesen Anruf wurde kein Transkript und keine Zusammenfassung erfasst.',
  'skills.meetingBots.callSummaryHeading': 'Zusammenfassung',
  'skills.meetingBots.callKeyPointsHeading': 'Kernpunkte',
  'skills.meetingBots.callActionItemsHeading': 'Aktionspunkte',
  'skills.meetingBots.callTranscriptHeading': 'Transkript',
  'skills.meetingBots.liveBadge': 'Live',
  'skills.meetingBots.liveTitle': 'Im Meeting',
  'skills.meetingBots.liveStatusJoining': 'Beitritt\u2026',
  'skills.meetingBots.liveStatusActive': 'Live im Meeting',
  'skills.meetingBots.liveStatusListening': 'Zuhören (stumm)',
  'skills.meetingBots.liveStatusEnded': 'Meeting beendet',
  'skills.meetingBots.liveStatusError': 'Beitritt fehlgeschlagen',
  'skills.meetingBots.liveTranscriptHeading': 'Live-Transkript',
  'skills.meetingBots.liveTranscriptEmpty': 'Warte auf Sprache…',
  'skills.meetingBots.leaveButton': 'Verlassen',
  'skills.meetingBots.leavingButton': 'Wird verlassen…',
  'skills.meetingBots.respondToParticipant': 'Ihr Name in diesem Meeting',
  'skills.meetingBots.respondToParticipantHint': 'z. B. Max (Ihr Anzeigename im Anruf)',
  'skills.meetingBots.respondToParticipantDesc':
    'Geben Sie Ihren genauen Anzeigenamen aus dem Meeting ein. Der Bot antwortet nur, wenn Sie seinen Namen sagen (Wake-Phrase).',
  'skills.meetingBots.wakePhrase': 'Wake-Phrase',
  'skills.meetingBots.wakePhraseHint': 'Hey OpenHuman',
  'skills.meetingBots.wakePhraseDesc': 'Der Teilnehmer muss dies sagen, bevor der Bot antwortet.',
  'skills.meetingBots.activeMode': 'Antworten, wenn ich es anspreche',
  'skills.meetingBots.activeModeDesc':
    'Wenn aktiviert, antwortet der Bot hörbar, nachdem du seinen Weckruf gesagt hast. Wenn deaktiviert, hört er nur zu und transkribiert.',
  'skills.meetingBots.history.allPlatforms': 'Alle Plattformen',
  'skills.meetingBots.history.copyTranscript': 'Kopieren',
  'skills.meetingBots.history.downloadTranscript': 'Herunterladen',
  'skills.meetingBots.history.earlier': 'Früher',
  'skills.meetingBots.history.participantCount': '{count} Teilnehmer',
  'skills.meetingBots.history.participantCountPlural': '{count} Teilnehmer',
  'skills.meetingBots.history.runWithOpenHuman': 'Mit OpenHuman ausführen',
  'skills.meetingBots.history.searchPlaceholder': 'Anrufe suchen…',
  'skills.meetingBots.history.selectPrompt':
    'Wähle einen Anruf aus, um die Zusammenfassung und das Transkript zu sehen.',
  'skills.meetingBots.history.today': 'Heute',
  'skills.meetingBots.history.yesterday': 'Gestern',
  'skills.meetingBots.upcoming.heading': 'Bevorstehend',
  'skills.meetingBots.upcoming.when': 'Wann',
  'skills.meetingBots.upcoming.meeting': 'Meeting',
  'skills.meetingBots.upcoming.platform': 'Plattform',
  'skills.meetingBots.upcoming.people': 'Personen',
  'skills.meetingBots.upcoming.joinPolicy': 'Beitrittsstrategie',
  'skills.meetingBots.upcoming.joinNow': 'Jetzt beitreten',
  'skills.meetingBots.upcoming.joinNowAriaLabel': '{title} beitreten',
  'skills.meetingBots.upcoming.join': 'Beitreten',
  'skills.meetingBots.upcoming.auto': 'Auto',
  'skills.meetingBots.upcoming.ask': 'Fragen',
  'skills.meetingBots.upcoming.skip': 'Überspringen',
  'skills.meetingBots.upcoming.today': 'Heute',
  'skills.meetingBots.upcoming.tomorrow': 'Morgen',
  'skills.meetingBots.upcoming.empty':
    'Keine bevorstehenden Meetings — verbinde Google Calendar, um sie hier zu sehen.',
  'skills.meetingBots.upcoming.error': 'Bevorstehende Meetings konnten nicht geladen werden.',
  'skills.meetingBots.upcoming.retry': 'Erneut versuchen',
  'skills.meetingBots.upcoming.refresh': 'Aktualisieren',
  'skills.meetingBots.upcoming.filterAll': 'Alle Plattformen',
  'skills.meetingBots.upcoming.participants': '{count} Teilnehmer',
  'skills.meetingBots.upcoming.imminent': 'Beginnt bald',
  'skills.meetingBots.upcoming.autoJoinsAt': 'Auto-Beitritt ~um {time}',
  'skills.meetingBots.upcoming.asksAtStart': 'Fragt beim Start',
  'skills.meetingBots.upcoming.watchCalendarHint':
    "Aktivieren Sie 'Meinen Kalender überwachen' in den Standardeinstellungen (Zahnrad-Symbol), damit Auto/Fragen wirksam wird — andernfalls werden diese Richtlinien gespeichert, aber nicht ausgelöst.",
  'skills.meetingBots.relative.now': 'jetzt',
  'skills.meetingBots.relative.inMinutes': 'in {count} Min',
  'skills.meetingBots.relative.inHours': 'in {count} Std',
  'skills.meetingBots.relative.minutesAgo': 'vor {count} Min',
  'skills.meetingBots.relative.hoursAgo': 'vor {count} Std',
  'skills.meetingBots.relative.daysAgo': 'vor {count} T',
  'skills.meetingBots.relative.yesterday': 'gestern',
  'skills.meetingBots.defaults.drawerTitle': 'Besprechungsstandards',
  'skills.meetingBots.defaults.closeDrawer': 'Schließen',
  'skills.meetingBots.defaults.openDefaults': 'Besprechungsstandards',
  'skills.meetingBots.defaults.watchCalendar': 'Meinen Kalender überwachen',
  'skills.meetingBots.defaults.watchCalendarDesc':
    'Lassen Sie OpenHuman Ihren verbundenen Kalender überwachen, damit er Meetings automatisch beitreten oder Sie gemäß den folgenden Richtlinien dazu auffordern kann. Dies ist von Meeting-Erinnerungsbenachrichtigungen getrennt.',
  'skills.meetingBots.defaults.globalPolicy': 'Globale Auto-Beitrittsrichtlinie',
  'skills.meetingBots.defaults.perPlatformTitle': 'Plattformspezifische Einstellungen',
  'skills.meetingBots.defaults.perPlatformDesc':
    'Globale Richtlinie für bestimmte Plattformen überschreiben.',
  'skills.meetingBots.defaults.useDefault': 'Standard verwenden',
  'skills.resource.preview.closeAriaLabel': 'Vorschau schließen',
  'skills.resource.preview.failed': 'Vorschau fehlgeschlagen',
  'skills.resource.preview.loading': 'Vorschau wird geladen…',
  'skills.resource.tree.assets': 'Assets',
  'skills.resource.tree.examples': 'Beispiele',
  'skills.resource.tree.other': 'Andere',
  'skills.resource.tree.prompts': 'Prompts',
  'skills.resource.tree.references': 'Referenzen',
  'skills.resource.tree.scripts': 'Skripte',
  'skills.resource.tree.templates': 'Vorlagen',
  'skills.resource.tree.empty': 'Keine gebündelten Ressourcen.',
  'skills.search.placeholder': 'Platzhalter',
  'skills.setup.autocomplete.acceptKey': 'Schlüssel akzeptieren',
  'skills.setup.autocomplete.activeDesc': 'Inline-Vervollständigungen laufen und sind bereit.',
  'skills.setup.autocomplete.activeTitle': 'Die automatische Vervollständigung ist aktiv',
  'skills.setup.autocomplete.customizeSettings': 'Passe die Einstellungen an',
  'skills.setup.autocomplete.debounce': 'Entprellen',
  'skills.setup.autocomplete.description': 'Beschreibung',
  'skills.setup.autocomplete.enableBtn': 'Aktivieren...',
  'skills.setup.autocomplete.enableError':
    'Die automatische Vervollständigung konnte nicht aktiviert werden',
  'skills.setup.autocomplete.enabling': 'Aktivieren...',
  'skills.setup.autocomplete.notSupported': 'Nicht unterstützt',
  'skills.setup.autocomplete.stepEnable': 'Aktiviere Inline-Vervollständigungen',
  'skills.setup.autocomplete.stepSuccess': 'Bereit zu gehen',
  'skills.setup.autocomplete.stylePreset': 'Stilvoreinstellung',
  'skills.setup.autocomplete.stylePresetValue': 'Ausgewogen (später konfigurierbar)',
  'skills.setup.autocomplete.title': 'Automatische Textvervollständigung',
  'skills.setup.screenIntel.activeDesc':
    'Screen Intelligence läuft und liest dein aktives Fenster.',
  'skills.setup.screenIntel.activeTitle': 'Bildschirmintelligenz ist aktiviert',
  'skills.setup.screenIntel.advancedSettings': 'Erweiterte Einstellungen',
  'skills.setup.screenIntel.allGranted': 'Alle Berechtigungen erteilt',
  'skills.setup.screenIntel.captureMode': 'Aufnahmemodus',
  'skills.setup.screenIntel.captureModeValue': 'Alle Fenster (später konfigurierbar)',
  'skills.setup.screenIntel.deniedHint':
    'Nachdem du in den Systemeinstellungen Berechtigungen erteilt hast, klicke unten, um neu zu starten und die Änderungen zu übernehmen.',
  'skills.setup.screenIntel.enableBtn': 'Aktivieren...',
  'skills.setup.screenIntel.enableDesc':
    'Liest, was auf deinem Bildschirm ist, und gibt deinem Agenten nützlichen Kontext.',
  'skills.setup.screenIntel.enableError': 'Screen Intelligence konnte nicht aktiviert werden',
  'skills.setup.screenIntel.enabling': 'Aktivieren...',
  'skills.setup.screenIntel.grant': 'Öffnen...',
  'skills.setup.screenIntel.granted': 'Erteilt',
  'skills.setup.screenIntel.macosOnly': 'Nur macOS',
  'skills.setup.screenIntel.opening': 'Öffnen...',
  'skills.setup.screenIntel.panicHotkey': 'Panik-Hotkey',
  'skills.setup.screenIntel.permAccessibility': 'Barrierefreiheit',
  'skills.setup.screenIntel.permInputMonitoring': 'Eingabeüberwachung',
  'skills.setup.screenIntel.permScreenRecording': 'Bildschirmaufzeichnung',
  'skills.setup.screenIntel.permissionsDesc':
    'Screen Intelligence benötigt Berechtigungen für Bedienungshilfen, Eingabeüberwachung und Bildschirmaufnahme.',
  'skills.setup.screenIntel.permissionPathLabel': 'macOS wendet Datenschutz an:',
  'skills.setup.screenIntel.refreshStatus': 'Status aktualisieren',
  'skills.setup.screenIntel.restartRefresh': 'Neustart...',
  'skills.setup.screenIntel.restarting': 'Neustart...',
  'skills.setup.screenIntel.stepEnable': 'Aktiviere den Skill',
  'skills.setup.screenIntel.stepPermissions': 'Berechtigungen erteilen',
  'skills.setup.screenIntel.stepSuccess': 'Bereit zu gehen',
  'skills.setup.screenIntel.title': 'Bildschirmintelligenz',
  'skills.setup.screenIntel.visionModel': 'Vision-Modell',
  'skills.setup.voice.activation': 'Aktivierung',
  'skills.setup.voice.activeDescPrefix': 'Fn',
  'skills.setup.voice.activeDescSuffix': 'Fn',
  'skills.setup.voice.activeTitle': 'Sprachintelligenz ist aktiv',
  'skills.setup.voice.customizeSettings': 'Passe die Einstellungen an',
  'skills.setup.voice.downloadSttBtn': 'STT-Modell herunterladen',
  'skills.setup.voice.enableDesc': 'Diktiere Text freihändig über dein Mikrofon.',
  'skills.setup.voice.hotkey': 'Hotkey',
  'skills.setup.voice.startBtn': 'Starten...',
  'skills.setup.voice.startError': 'Der Sprachserver konnte nicht gestartet werden',
  'skills.setup.voice.starting': 'Startet...',
  'skills.setup.voice.stepEnable': 'Sprachserver starten',
  'skills.setup.voice.stepSetup': 'Modell-Download erforderlich',
  'skills.setup.voice.stepSuccess': 'Bereit zu gehen',
  'skills.setup.voice.sttNotReady': 'Speech-to-Text-Modell nicht bereit',
  'skills.setup.voice.sttNotReadyDesc':
    'Voice Intelligence erfordert für die Transkription ein lokales Whisper-Modell. Lade es aus den lokalen Modelleinstellungen herunter.',
  'skills.setup.voice.sttReady': 'Bereit für das Speech-to-Text-Modell',
  'skills.setup.voice.sttReturnHint': 'Stt-Rückgabehinweis',
  'skills.setup.voice.title': 'Sprachintelligenz',
  'skills.uninstall.couldNotUninstall': 'Konnte nicht deinstalliert werden',
  'skills.uninstall.description':
    'Dadurch werden das Skill-Verzeichnis und alle darin enthaltenen Ressourcen dauerhaft gelöscht. Der Agent wird es in der nächsten Runde nicht mehr sehen.',
  'skills.uninstall.title': 'Deinstallieren',
  'skills.uninstall.uninstallBtn': 'Deinstallieren',
  'skills.uninstall.uninstalling': 'Deinstallation…',
  'upsell.global.limitMessage': 'Aktualisiere deinen Plan oder lade Guthaben auf, um fortzufahren',
  'upsell.global.limitTitle': 'Du',
  'upsell.global.nearLimitMessage':
    'Du hast {pct} % deines Nutzungslimits verwendet. Upgrade für höhere Limits.',
  'upsell.global.nearLimitTitle': 'Das Nutzungslimit nähert sich',
  'upsell.usageLimit.bodyBudget':
    'Du hast dein wöchentliches Limit erreicht.{reset} Aktualisiere deinen Plan oder lade Guthaben auf, um Limits zu vermeiden.',
  'upsell.usageLimit.bodyRate':
    'Du hast dein 10-Stunden-Inferenzratenlimit erreicht.{reset} Führe ein Upgrade durch, um höhere Limits zu erhalten.',
  'upsell.usageLimit.heading': 'Nutzungslimit erreicht',
  'upsell.usageLimit.notNow': 'Nicht jetzt',
  'upsell.usageLimit.perWindow': '{amount}',
  'upsell.usageLimit.planIncludes': '{plan}',
  'upsell.usageLimit.resetsIn': 'Es setzt {time} zurück.',
  'upsell.usageLimit.upgradePlan': 'Upgrade-Plan',
  'upsell.usageLimit.weeklyInference': '{amount}',
  'walkthrough.steps.startChat.title': 'Im Chat starten',
  'walkthrough.steps.startChat.content':
    'Der Chat ist dein Startpunkt. Neue Fenster öffnen mit derselben Begrüßung und den Schnellaktionen aus der Einrichtung.',
  'walkthrough.steps.sayHello.title': 'Sag Hallo',
  'walkthrough.steps.sayHello.content':
    'Tippe hier, um jederzeit ein Gespräch mit deinem KI-Assistenten zu starten.',
  'walkthrough.steps.meetAi.title': 'Lerne deine KI kennen',
  'walkthrough.steps.meetAi.content':
    'Hier finden Unterhaltungen statt. Stelle Fragen, lass dir Zusammenfassungen geben oder sammle Ideen. Alles bleibt durchsuchbar.',
  'walkthrough.steps.connectWorld.title': 'Verbinde deine Welt',
  'walkthrough.steps.connectWorld.content':
    'Gmail, Slack, WhatsApp und mehr: Jede Verbindung gibt deinem Assistenten neue Fähigkeiten.',
  'walkthrough.steps.messagingApps.title': 'Chatte dort, wo du schon bist',
  'walkthrough.steps.messagingApps.content':
    'WhatsApp, Telegram, Slack, Discord: Verbinde deine Messenger, damit dein Assistent dich überall erreichen kann.',
  'walkthrough.steps.settings.title': 'Passe alles an',
  'walkthrough.steps.settings.content':
    'Einstellungen, Datenschutz und Benachrichtigungen sind hier. Du kannst diese Tour jederzeit von dieser Seite neu starten.',
  'walkthrough.steps.chatTab.title': 'Zurück zum Chat',
  'walkthrough.steps.chatTab.content':
    'Nutze den Chat-Tab, wenn du zu deinen Unterhaltungen zurückkehren möchtest.',
  'walkthrough.steps.humanTab.title': 'Dein Human-Profil',
  'walkthrough.steps.humanTab.content':
    'Human bündelt deinen persönlichen Kontext, deine Identität und dein Assistentenprofil.',
  'walkthrough.steps.brainTab.title': 'Öffne dein Brain',
  'walkthrough.steps.brainTab.content':
    'Brain ist der Wissensgraph: Hier prüfst du, was OpenHuman weiß und wie Ideen verbunden sind.',
  'walkthrough.steps.agentWorldTab.title': 'Agent World erkunden',
  'walkthrough.steps.agentWorldTab.content':
    'In Agent World findest du wiederverwendbare Agenten und gemeinsame Automatisierungen.',
  'walkthrough.steps.connectionsTab.title': 'Verbindungen verwalten',
  'walkthrough.steps.connectionsTab.content':
    'Connections ist immer in der Hauptnavigation verfügbar, wenn du Dienste hinzufügen oder anpassen möchtest.',
  'walkthrough.steps.feedbackTab.title': 'Feedback senden',
  'walkthrough.steps.feedbackTab.content':
    'Feedback ist der direkte Ort, um Probleme zu melden oder Verbesserungen vorzuschlagen.',
  'walkthrough.steps.allSet.title': 'Alles bereit!',
  'walkthrough.steps.allSet.content':
    'Dein Assistent hat dir eine Willkommensnotiz hinterlassen: Hier kannst du chatten, fragen oder Ideen sammeln. Viel Spaß!',
  'walkthrough.tooltip.letsGo': 'Lass uns gehen!',
  'walkthrough.tooltip.next': 'Weiter →',
  'walkthrough.tooltip.skip': 'Tour überspringen',
  'walkthrough.tooltip.stepCounter': '{n} von {total}',
  'webhooks.activity.empty': 'Leer',
  'webhooks.activity.title': 'Letzte Aktivität',
  'webhooks.composioHistory.empty': 'Leer',
  'webhooks.composioHistory.metadataId': 'MetaDaten-ID',
  'webhooks.composioHistory.metadataUuid': 'Metadaten-UUID',
  'webhooks.composioHistory.payload': 'Nutzlast',
  'webhooks.composioHistory.title': 'ComposeIO Trigger-Verlauf',
  'webhooks.tunnels.active': 'Aktiv',
  'webhooks.tunnels.createFailed': 'Tunnel konnte nicht erstellt werden',
  'webhooks.tunnels.creating': 'Erstellen...',
  'webhooks.tunnels.deleteFailed': 'Tunnel konnte nicht gelöscht werden',
  'webhooks.tunnels.descriptionPlaceholder': 'Beschreibung (optional)',
  'webhooks.tunnels.echo': 'Echo',
  'webhooks.tunnels.empty': 'Leer',
  'webhooks.tunnels.enableEcho': 'Echo aktivieren',
  'webhooks.tunnels.inactive': 'Inaktiv',
  'webhooks.tunnels.namePlaceholder': 'Tunnelname (z. B. Telegram-Bot)',
  'webhooks.tunnels.newTunnel': 'Neuer Tunnel',
  'webhooks.tunnels.removeEcho': 'Echo entfernen',
  'webhooks.tunnels.title': 'Webhook-Tunnel',
  'webhooks.tunnels.toggleFailed': 'Echo konnte nicht umgeschaltet werden',
  'composio.directModeRequiresKey':
    'Speichern fehlgeschlagen. Der Direktmodus erfordert einen nicht leeren Schlüssel API.',
  'composio.integrationSlugsHelp': 'Durch Kommas getrennte Integrations-Slugs, z.B.',
  'composio.integrationSlugsExample': 'Gmail, Slack',
  'composio.integrationSlugsCaseInsensitive': 'Groß- und Kleinschreibung wird nicht beachtet.',
  'composio.integrationSlugsPlaceholder': 'Gmail, Slack, ...',
  'composio.notYetRouted': 'noch nicht geroutet',
  'composio.triggers.loading': 'Laden…',
  'conversations.taskKanban.todo': 'Zu tun',
  'chat.addReaction': 'Reaktion hinzufügen',
  'chat.agentProfile.create': 'Agentenprofil erstellen',
  'chat.agentProfile.createFailed': 'Agentenprofil konnte nicht erstellt werden.',
  'chat.agentProfile.customDescription': 'Benutzerdefiniertes Agentenprofil',
  'chat.agentProfile.defaultAgentLabel': 'Orchestrator',
  'chat.agentProfile.exists': 'Agentenprofil „{name}“ ist bereits vorhanden.',
  'chat.agentProfile.label': 'Agentenprofil',
  'chat.agentProfile.quick': 'Schnell',
  'chat.agentProfile.reasoning': 'Denkmodus',
  'chat.agentProfile.namePlaceholder': 'Profilname',
  'chat.agentProfile.promptStylePlaceholder': 'Eingabeaufforderungsstil',
  'chat.agentProfile.allowedToolsPlaceholder': 'Zulässige Tools',
  'chat.backToThread': 'zurück zu {title}',
  'chat.parentThread': 'übergeordneter Thread',
  'chat.removeReaction': 'Entfernen {emoji}',
  'settings.composio.loading': 'Laden…',
  'settings.mascot.noCharactersAvailable': 'Es sind noch keine OpenHuman Zeichen verfügbar',
  'skills.uninstall.confirmTitle': '{name} deinstallieren?',
  'conversations.taskKanban.blocked': 'Blockiert',
  'conversations.taskKanban.done': 'Fertig',
  'conversations.taskKanban.pending': 'Ausstehend',
  'conversations.taskKanban.working': 'Arbeiten',
  'conversations.taskKanban.awaitingApproval': 'Warten auf Genehmigung',
  'conversations.taskKanban.ready': 'Bereit',
  'conversations.taskKanban.rejected': 'Abgelehnt',
  'conversations.taskKanban.inProgress': 'In Bearbeitung',
  'conversations.taskKanban.awaitingApprovalColumn': 'Wartet auf Genehmigung',
  'conversations.taskKanban.blockedColumn': 'Blockiert',
  'conversations.taskKanban.evidenceBadge': 'Belege ({count})',
  'conversations.taskKanban.needsInput': 'Diese Aufgaben erfordern Ihre Eingabe',
  'conversations.taskKanban.emptyColumn': 'Keine Aufgaben',
  'conversations.taskKanban.dragHint': 'Ziehen zum Verschieben zwischen Spalten',
  'conversations.taskKanban.movingCard': 'Wird verschoben…',
  'conversations.taskKanban.statusBadge.ready': 'Bereit zum Start',
  'conversations.taskKanban.statusBadge.rejected': 'Abgelehnt',
  'intelligence.memoryChunk.detail.copiedHint': 'kopiert',
  'settings.composio.notYetRouted': 'noch nicht geroutet',
  'settings.localModel.download.manageExternal':
    'Verwalte dieses Modell in deiner externen Laufzeit.',
  'settings.localModel.status.manageOllamaExternal':
    'Verwalte den Ollama-Prozess und die Modell-Pulls außerhalb von OpenHuman, und führe dann die Diagnose erneut aus.',
  'settings.localModel.status.ollamaDocs': 'Ollama Dokumente',
  'settings.localModel.status.thenRetry':
    'für Setup-Anweisungen, dann versuche es erneut, sobald deine Laufzeit erreichbar ist.',
  'devOptions.menuAi': 'KI-Konfiguration',
  'devOptions.menuAiDesc': 'Cloud-Anbieter, lokale Ollama-Modelle und Routing pro Workload',
  'devOptions.menuScreenAware': 'Bildschirmbewusstsein',
  'devOptions.menuScreenAwareDesc':
    'Bildschirmaufnahmeberechtigungen, Überwachungsrichtlinien und Sitzungskontrollen',
  'devOptions.menuMessaging': 'Messaging-Kanäle',
  'devOptions.menuMessagingDesc':
    'Konfiguriere die Authentifizierungsmodi Telegram/Discord und das Standardkanalrouting',
  'devOptions.menuTools': 'Werkzeuge',
  'devOptions.menuToolsDesc':
    'Aktiviere oder deaktiviere Funktionen, die OpenHuman in deinem Namen nutzen kann',
  'devOptions.menuAgentChat': 'Agenten-Chat',
  'devOptions.menuAgentChatDesc':
    'Test-Agent-Konversation mit Modell- und Temperaturüberschreibungen',
  'devOptions.menuCronJobs': 'Cron-Jobs',
  'devOptions.menuCronJobsDesc':
    'Zeige geplante Jobs für Laufzeitfähigkeiten an und konfiguriere sie',
  'devOptions.menuLocalModelDebug': 'Lokales Modell-Debug',
  'devOptions.menuLocalModelDebugDesc':
    'Ollama-Konfiguration, Asset-Downloads, Modelltests und Diagnose',
  'devOptions.menuWebhooksDebug': 'Webhooks',
  'devOptions.menuWebhooksDebugDesc':
    'Prüfe Laufzeit-Webhook-Registrierungen und erfasste Anforderungsprotokolle',
  'devOptions.menuIntelligence': 'Intelligenz',
  'devOptions.menuIntelligenceDesc':
    'Gedächtnisarbeitsbereich, Unterbewusstseinsmotor, Träume und Einstellungen',
  'devOptions.menuNotificationRouting': 'Benachrichtigungsweiterleitung',
  'devOptions.menuNotificationRoutingDesc':
    'KI-Wichtigkeitsbewertung und Orchestrator-Eskalation für Integrationswarnungen',
  'devOptions.menuComposeIOTriggers': 'ComposeIO Auslöser',
  'devOptions.menuComposeIOTriggersDesc': 'Sieh dir den ComposeIO-Triggerverlauf und das Archiv an',
  'devOptions.menuComposioRouting': 'Composio Routing (Direktmodus)',
  'devOptions.menuComposioRoutingDesc':
    'Bring deinen eigenen Composio API-Schlüssel mit und leite Anrufe direkt an backend.composio.dev weiter',
  'devOptions.menuComposioTriggers': 'Integrationsauslöser',
  'devOptions.menuComposioTriggersDesc':
    'Konfiguriere KI-Triage-Einstellungen für Composio-Integrationsauslöser',
  'memory.sourceFilterAria': 'Nach Quelle filtern',
  'calls.comingSoonDescription': 'KI-unterstützte Anrufe folgen in Kürze. Bleiben Sie dran.',
  'whatsapp.title': 'WhatsApp',
  'subconscious.priority.critical': 'kritisch',
  'subconscious.priority.important': 'wichtig',
  'subconscious.priority.normal': 'normal',
  'subconscious.durationSeconds': '{seconds} s',
  'subconscious.durationMilliseconds': '{milliseconds} ms',
  'settings.appearance': 'Aussehen',
  'settings.appearanceDesc': 'Wähle hell, dunkel oder passend zu deinem Systemthema',
  'settings.mascot': 'Maskottchen',
  'settings.mascotDesc': 'Wähle die Maskottchenfarbe aus, die in der gesamten App verwendet wird',
  'pages.settings.account.walletBalances': 'Wallet-Guthaben',
  'pages.settings.account.walletBalancesDesc':
    'Multi-Chain-Guthaben deiner lokalen Wallet anzeigen',
  'walletBalances.title': 'Wallet-Guthaben',
  'walletBalances.refresh': 'Refresh',
  'walletBalances.loading': 'Guthaben wird geladen…',
  'walletBalances.retry': 'Retry',
  'walletBalances.emptyState':
    "Noch keine Wallet-Konten – richte eine Wallet unter 'Wiederherstellungsphrase' ein.",
  'walletBalances.copyAddress': 'Adresse kopieren',
  'walletBalances.providerMissing': 'Anbieter nicht verfügbar',
  'walletBalances.rawBalance': 'Roh: {raw}',
  'walletBalances.errorGeneric':
    "Wallet-Guthaben konnten nicht geladen werden. Richte deine Wallet unter 'Wiederherstellungsphrase' ein und versuche es erneut.",
  'walletBalances.setupHint':
    'Deine Wiederherstellungsphrase ist noch nicht eingerichtet. Richte sie ein, um deine Wallet zu aktivieren und Live-Guthaben zu sehen.',
  'walletBalances.setupCta': 'Wiederherstellungsphrase einrichten',
  'walletBalances.notSetUp': 'Nicht eingerichtet',
  'walletBalances.send': 'Senden',
  'walletBalances.receive': 'Empfangen',
  'walletReceive.scanHint':
    'Scanne diesen Code oder kopiere die Adresse unten, um Gelder zu empfangen.',
  'walletReceive.addressLabel': '{network}-Adresse',
  'walletReceive.onlyChainWarning':
    'Sende nur {network}-Assets an diese Adresse. Das Senden von Assets aus einem anderen Netzwerk kann zu einem dauerhaften Verlust führen.',
  'walletSend.available': 'Verfügbar',
  'walletSend.recipient': 'Empfängeradresse',
  'walletSend.recipientPlaceholder': 'Zieladresse einfügen',
  'walletSend.recipientRequired': 'Gib eine Empfängeradresse ein',
  'walletSend.amount': 'Betrag',
  'walletSend.invalidAmount': 'Gib einen gültigen Betrag ein',
  'walletSend.review': 'Überprüfen',
  'walletSend.preparing': 'Wird vorbereitet…',
  'walletSend.confirmHint':
    'Überprüfe die Details unten. Die Signierung erfolgt lokal — nichts wird gesendet, bis du bestätigst.',
  'walletSend.estimatedFee': 'Geschätzte Netzwerkgebühr',
  'walletSend.confirmSend': 'Bestätigen und senden',
  'walletSend.sending': 'Wird gesendet…',
  'walletSend.sent': 'Transaktion gesendet',
  'walletSend.txHash': 'Transaktions-Hash',
  'walletSend.viewExplorer': 'Im Explorer ansehen',
  'walletSend.done': 'Fertig',
  'walletSend.genericError':
    'Überweisung konnte nicht abgeschlossen werden. Bitte versuche es erneut.',
  'settings.taskSources.title': 'Aufgabenquellen',
  'settings.integrations.title': 'Integrationen',
  'settings.integrations.menuDesc': 'Aufgabenquellen, Composio-Routing und Webhook-Trigger',
  'settings.taskSources.subtitle': 'Ziehen Sie Aufgaben aus Ihren Tools auf das Agenten-ToDo-Board',
  'settings.taskSources.description':
    'Sammeln Sie Arbeitselemente von GitHub, Notion, Linear und ClickUp, bereichern Sie sie und leiten Sie sie an das Agent-ToDo-Board weiter.',
  'settings.taskSources.connectHint':
    'Aufgabenquellen nutzen Ihre verbundenen Konten. Verbinden Sie sie zunächst unter Integrationen.',
  'settings.taskSources.disabledBanner':
    'Aufgabenquellen sind in den Einstellungen deaktiviert. Aktivieren Sie die automatische Umfrage.',
  'settings.taskSources.loadError': 'Aufgabenquellen konnten nicht geladen werden',
  'settings.taskSources.addTitle': 'Fügen Sie eine Aufgabenquelle hinzu',
  'settings.taskSources.provider': 'Anbieter',
  'settings.taskSources.name': 'Name (optional)',
  'settings.taskSources.namePlaceholder': 'z.B. Meine offenen Themen',
  'settings.taskSources.github.repo': 'Repository (Inhaber/Name, optional)',
  'settings.taskSources.github.labels': 'Beschriftungen (durch Kommas getrennt)',
  'settings.taskSources.notion.database': 'Datenbank-(Board-)ID',
  'settings.taskSources.notion.browseDatabases': 'Datenbanken durchsuchen',
  'settings.taskSources.notion.loadingDatabases': 'Datenbanken werden geladen…',
  'settings.taskSources.notion.selectDatabase': 'Datenbank auswählen…',
  'settings.taskSources.notion.noDatabases': 'Keine Datenbanken für diese Verbindung gefunden.',
  'settings.taskSources.linear.team': 'Team-ID (optional)',
  'settings.taskSources.clickup.team': 'Arbeitsbereichs-(Team-)ID (optional)',
  'settings.taskSources.assignedToMe': 'Nur mir zugewiesene Artikel',
  'settings.taskSources.add': 'Quelle hinzufügen',
  'settings.taskSources.adding': 'Hinzufügen…',
  'settings.taskSources.preview': 'Vorschau',
  'settings.taskSources.previewResult': '{count}-Aufgabe(n) entsprechen diesem Filter',
  'settings.taskSources.fetchNow': 'Jetzt abholen',
  'settings.taskSources.fetching': 'Abrufen…',
  'settings.taskSources.fetchResult':
    '{routed} von {fetched} Aufgabe(n) weitergeleitet; {pruned} veraltete Aufgabe(n) entfernt',
  'settings.taskSources.syncAll': 'Alle synchronisieren',
  'settings.taskSources.syncing': 'Synchronisierung…',
  'settings.taskSources.configured': 'Konfigurierte Quellen',
  'settings.taskSources.empty': 'Noch keine Aufgabenquellen konfiguriert.',
  'settings.taskSources.proactive': 'Proaktiv',
  'settings.taskSources.lastFetch': 'Letzter Abruf',
  'settings.taskSources.never': 'Nie',
  'settings.taskSources.statusEnabled': 'Aktiviert',
  'settings.taskSources.statusDisabled': 'Deaktiviert',
  'settings.taskSources.enable': 'Aktivieren',
  'settings.taskSources.disable': 'Horizontaler Parallaxeffekt',
  'settings.taskSources.remove': 'Entlassen',
  'settings.taskSources.removeConfirm':
    'Diese Aufgabenquelle entfernen? Der gesamte aufgenommene Aufgabenverlauf wird gelöscht und kann nicht rückgängig gemacht werden.',
  'settings.taskSources.refresh': 'Aktualisieren',
  'settings.taskSources.providers.github': 'GitHub',
  'settings.taskSources.providers.notion': 'Vorstellung',
  'settings.taskSources.providers.linear': 'Linear',
  'settings.taskSources.providers.clickup': 'ClickUp',
  'skills.dashboard.enable': 'Geplanten Workflow aktivieren',
  'skills.dashboard.disable': 'Geplanten Workflow deaktivieren',
  'skills.dashboard.lastRun': 'Letzter Lauf',
  'skills.dashboard.nextRun': 'Nächster Lauf',
  'skills.dashboard.cardOpenRunner': 'Im Runner öffnen',
  'skills.new.title': 'Workflow erstellen',
  'settings.agents.title': 'Agenten',
  'settings.agents.subtitle':
    'Verwalten Sie die für die Delegation verfügbaren Agenten — integrierte Standardeinstellungen und Ihre eigenen benutzerdefinierten Agenten.',
  'settings.agents.menuDesc': 'Integrierte und benutzerdefinierte Agenten verwalten',
  'settings.agents.newAgent': 'neuer Agent',
  'settings.agents.loadError': 'Agenten konnten nicht geladen werden',
  'settings.agents.empty': 'Noch keine Agenten',
  'settings.agents.sourceDefault': 'Einbau',
  'settings.agents.sourceCustom': 'Angepasst',
  'settings.agents.enable': 'Aktivieren Agent',
  'settings.agents.disable': 'Deaktivieren Agent',
  'settings.agents.edit': 'Bearbeiten',
  'settings.agents.delete': 'Löschen',
  'settings.agents.reset': 'Auf Standard zurücksetzen',
  'settings.agents.modelLabel': 'Modell',
  'settings.agents.toolsLabel': 'Werkzeuge',
  'settings.agents.toolsAll': 'Alle Tools',
  'settings.agents.toolsCount': '{count}-WERKZEUGE',
  'settings.agents.actionFailed': 'Der Agent konnte nicht aktualisiert werden',
  'settings.agents.orchestratorLocked': 'Der Orchestrator ist immer aktiviert.',
  'settings.agents.editor.createTitle': 'neuer Agent',
  'settings.agents.editor.editTitle': 'Mitarbeiter bearbeiten',
  'settings.agents.editor.id': 'ID',
  'settings.agents.editor.idHint': 'Nur Kleinbuchstaben, Zahlen, _ und -.',
  'settings.agents.editor.name': 'Name',
  'settings.agents.editor.description': 'Beschreibung',
  'settings.agents.editor.model': 'Modell (optional)',
  'settings.agents.editor.modelPlaceholder': 'z. B. erben, hint:fast oder eine Modell-ID',
  'settings.agents.editor.systemPrompt': 'Systemabfrage (optional)',
  'settings.agents.editor.tools': 'Erlaubte Werkzeuge',
  'settings.agents.editor.toolsHint':
    'Ein Werkzeugname pro Zeile. Verwenden Sie * für alle Werkzeuge.',
  'settings.agents.editor.defaultsNote':
    'Das Bearbeiten eines integrierten Agenten speichert eine Überschreibung, die Sie später zurücksetzen können.',
  'settings.agents.editor.save': 'Speichern',
  'settings.agents.editor.create': 'Vermittler erstellen',
  'settings.agents.editor.saving': 'Sichern…',
  'nav.workflows': 'Workflows',
  'workflows.title': 'Workflows',
  'workflows.subtitle':
    'Wiederverwendbare, ausführbare Abläufe — ein Ziel und die Schritte dorthin. Erstellen, über eine URL installieren oder einen Workflow öffnen und ausführen.',
  'workflows.createNew': 'Neuer Workflow',
  'workflows.listHeading': 'Workflows',
  'workflows.delete': 'Workflow löschen',
  'workflows.deleteError': 'Workflow konnte nicht gelöscht werden',
  'workflows.warnings': '{count} Warnung(en)',
  'workflows.empty.title': 'Noch keine Workflows',
  'workflows.empty.body':
    'Erstellen Sie einen Workflow, um Regeln und Skripte für Aufgaben-Lebenszyklusphasen zu definieren.',
  'workflows.create.title': 'Neuer Workflow',
  'workflows.create.subtitle':
    'Definieren Sie ein lebenszyklus-gebundenes Regelwerk für den Agenten.',
  'workflows.create.name': 'Name',
  'workflows.create.namePlaceholder': 'z. B. Python-Projekt-Workflow',
  'workflows.create.description': 'Description',
  'workflows.create.descriptionPlaceholder': 'Was macht dieser Workflow?',
  'workflows.create.whenToUse': 'Wann verwenden',
  'workflows.create.whenToUsePlaceholder': 'Wann soll der Agent diesen Workflow verwenden?',
  'workflows.create.optional': '(optional)',
  'workflows.create.createBtn': 'Workflow erstellen',
  'workflows.create.creating': 'Creating…',
  'workflows.create.createError': 'Workflow konnte nicht erstellt werden',
  'workflows.create.successTitle': 'Workflow erstellt',
  'workflows.create.successMessage': 'wurde erfolgreich erstellt.',
  'workflows.deleteConfirm.title': 'Workflow löschen',
  'workflows.deleteConfirm.body': '„{name}“ entfernen? Dies kann nicht rückgängig gemacht werden.',
  'workflows.detail.tags': 'Tags',
  'workflows.detail.location': 'Location',
  'workflows.detail.warnings': 'Warnings',
  'workflows.detail.phases': 'Phases',
  'workflows.detail.noPhases': 'Keine Phasen definiert.',
  'workflows.detail.loadError': 'Vollständiger Workflow konnte nicht geladen werden',
  'workflows.phase.rules': 'Rules',
  'workflows.phase.rules.empty': 'Keine Regeln.',
  'workflows.phase.scripts': 'Scripts',
  'workflows.phase.scripts.empty': 'Keine Skripte.',
  'workflows.phase.toolScope': 'Tool-Bereich',
  'workflows.phase.toolScope.allow': 'Allow',
  'workflows.phase.toolScope.deny': 'Deny',
  'workflows.phase.toolScope.inherited': 'Vom Workflow-Standard geerbt.',
  'workflows.phase.toolScope.empty': 'Keine Tool-Einschränkungen.',
  'workflows.phase.context': 'Context',
  'workflows.phase.context.empty': 'Keine Kontextanbieter.',
  'settings.agentsSection.title': 'Agents',
  'settings.agentsSection.description':
    'Verwalten Sie Ihre Agenten, deren Autonomie und worauf sie auf diesem Computer zugreifen dürfen.',
  'settings.agentsSection.menuDesc': 'Registrierung, Autonomie & BS-Zugriff',
  'settings.cryptoSection.title': 'Krypto',
  'settings.cryptoSection.description':
    'Verwalte deine Wiederherstellungsphrase und sieh dir die Guthaben deiner Wallet-Konten an.',
  'settings.cryptoSection.menuDesc': 'Wiederherstellungsphrase & Wallet-Guthaben',
  'settings.notificationsHub.title': 'Benachrichtigungen',
  'settings.notificationsHub.description':
    'Sieh dir deinen Hinweise-Posteingang an und verwalte Benachrichtigungseinstellungen und Routing.',
  'settings.notificationsHub.menuDesc': 'Hinweise-Posteingang & Benachrichtigungseinstellungen',
  'settings.notificationsHub.settingsItem': 'Benachrichtigungseinstellungen',
  'settings.notificationsHub.settingsItemDesc': 'Einstellungen & Routing',
  'settings.agents.editor.notFound': 'Agent nicht gefunden.',
  'settings.agents.editor.modelInherit': 'Übernehmen (Plattformstandard)',
  'settings.agents.editor.modelHints': 'Routing-Hinweise',
  'settings.agents.editor.modelTiers': 'Modellstufen',
  'settings.agents.editor.modelCustom': 'Benutzerdefinierte Modell-ID…',
  'settings.agents.editor.modelCustomPlaceholder': 'z. B. anthropic/claude-sonnet-4',
  'settings.agents.editor.selectTools': 'Tools hinzufügen',
  'settings.agents.editor.toolsAllSelected': 'Alle Tools',
  'settings.agents.editor.toolsNoneSelected': 'Keine Tools ausgewählt',
  'settings.agents.editor.removeToolAria': '{tool} entfernen',
  'settings.agents.editor.toolsModalTitle': 'Erlaubte Tools',
  'settings.agents.editor.toolsSelectedCount': '{count} ausgewählt',
  'settings.agents.editor.toolsSearchPlaceholder': 'Tools suchen…',
  'settings.agents.editor.toolsAllowAll': 'Alle Tools erlauben (*)',
  'settings.agents.editor.toolsAllowAllHint': 'Dieser Agent kann jedes verfügbare Tool verwenden.',
  'settings.agents.editor.toolsLoading': 'Tools werden geladen…',
  'settings.agents.editor.toolsLoadError': 'Tools konnten nicht geladen werden',
  'settings.agents.editor.toolsEmpty': 'Keine Tools entsprechen Ihrer Suche.',
  'settings.agents.editor.toolsDone': 'Done',
  'settings.agents.editor.builtInReadonly':
    'Integrierte Agenten können nicht bearbeitet werden. Sie können sie in der Agentenliste aktivieren, deaktivieren oder zurücksetzen.',
  // Chat — agent-generated artifacts (#2779)
  'chat.artifact.aria': 'Artefakt: {title}',
  'chat.artifact.generating': 'Erstelle {kind}…',
  'chat.artifact.ready': 'Bereit',
  'chat.artifact.failed': 'Erstellung fehlgeschlagen',
  'chat.artifact.download': 'Herunterladen',
  'chat.artifact.downloading': 'Wird heruntergeladen…',
  'chat.artifact.downloaded': 'Gespeichert unter {path}',
  'chat.artifact.download_failed': 'Download fehlgeschlagen: {reason}',
  'chat.artifact.retry': 'Erneut versuchen',
  'chat.artifact.reveal': 'Im Ordner anzeigen',
  'chat.artifact.show_more': 'Mehr anzeigen',
  'chat.artifact.show_less': 'Weniger anzeigen',

  // Chat — files panel (#3024)
  'chat.files.chip.aria.one': '{count} Datei in diesem Chat',
  'chat.files.chip.aria.other': '{count} Dateien in diesem Chat',
  'chat.files.panel.aria': 'Dateien in diesem Chat',
  'chat.files.panel.title': 'Dateien ({count})',
  'chat.files.panel.empty': 'Noch keine Dateien. Bitten Sie den Agenten, eine zu erstellen.',
  'chat.files.panel.close': 'Dateibereich schließen',
  'chat.files.delete.aria': '{title} löschen',
  'chat.files.delete.confirm': 'Diese Datei löschen?',
  'chat.files.delete.cancel': 'Abbrechen',
  'chat.files.delete.action': 'Löschen',
  'chat.files.delete.failed': 'Datei konnte nicht gelöscht werden. Erneut versuchen.',
  'chat.files.error.not_desktop': 'Downloads sind nur in der Desktop-App verfügbar.',
  'chat.files.error.missing_artifact_id': 'Artefakt-ID fehlt.',
  'chat.files.error.missing_artifact_path': 'Artefaktpfad fehlt in der Core-Antwort.',
  'chat.files.error.resolve_failed':
    'Das Artefakt konnte nicht aufgelöst werden. Bitte erneut versuchen.',
  'chat.files.error.download_failed': 'Download fehlgeschlagen. Bitte erneut versuchen.',
  'chat.files.error.delete_failed': 'Datei konnte nicht gelöscht werden. Bitte erneut versuchen.',
  'autocomplete.debounceMs': 'Entprellung (ms)',
  'autocomplete.maxChars': 'Maximale Kontextzeichen',
  'autocomplete.overlayTtlMs': 'Overlay-Timeout (ms)',
  'memory.tab.council': 'Council',
  'activity.tabs.automations': 'Automatisierungen',
  'activity.tabs.automationsDescription':
    'Wiederverwendbare, ausführbare Abläufe — ein Ziel und die Schritte dorthin.',
  'activity.tabs.backgroundActivity': 'Unterbewusstsein',
  'activity.tabs.alerts': 'Benachrichtigungen',

  'intelligence.agents.title': 'Agentenbibliothek',
  'intelligence.agents.subtitle':
    'Prüfe ausführbare Spezialisten und sende eine Aufgabe an einen benannten Agenten.',
  'intelligence.agents.refresh': 'Aktualisieren',
  'intelligence.agents.loading': 'Agenten werden geladen…',
  'intelligence.agents.failedToLoad': 'Agenten konnten nicht geladen werden',
  'intelligence.agents.empty': 'Keine ausführbaren Agenten verfügbar.',
  'intelligence.agents.readOnly': 'Nur lesen',
  'intelligence.agents.writeCapable': 'Schreibfähig',
  'intelligence.agents.allTools': 'Alle Tools',
  'intelligence.agents.toolCountOne': '{count} Tool',
  'intelligence.agents.toolCountOther': '{count} Tools',
  'intelligence.agents.subagentCountOne': '{count} Subagent',
  'intelligence.agents.subagentCountOther': '{count} Subagenten',
  'intelligence.agents.startChat': 'Chat starten',
  'intelligence.agents.startChatPrompt':
    'Starte einen Chat mit diesem Agenten. Stelle deine Spezialisierung vor, frage nach dem benötigten Kontext und warte auf meine Aufgabe.',
  'intelligence.agents.copyId': 'ID kopieren',
  'intelligence.agents.copied': 'Kopiert',
  'intelligence.agents.taskPlaceholder': 'Aufgabe für diesen Agenten',
  'intelligence.agents.runTask': 'Aufgabe ausführen',
  'intelligence.agents.running': 'Läuft…',
  'intelligence.agents.runFailed': 'Der ausgewählte Agent konnte nicht gestartet werden',
  'intelligence.agents.model.inherit': 'Übernehmen',
  'intelligence.agents.tier.chat': 'Chat',
  'intelligence.agents.tier.reasoning': 'Reasoning',
  'intelligence.agents.tier.worker': 'Worker',
  'modelCouncil.title': 'Modell-Rat',
  'modelCouncil.intro':
    'Stellen Sie eine Frage, erhalten Sie unabhängige Antworten von mehreren Modellen parallel, dann synthesiert das Vorsitz-Modell Übereinstimmungen, Unterschiede und einzigartige Beiträge.',
  'modelCouncil.listTitle': 'Councils',
  'modelCouncil.listIntro':
    'Wählen Sie einen gespeicherten Rat, bearbeiten Sie seine Agenten und den Richter, oder erstellen Sie einen neuen Rat für eine bestimmte Art von Entscheidung.',
  'modelCouncil.addCouncil': 'Neuer Rat',
  'modelCouncil.openCouncil': 'Rat öffnen',
  'modelCouncil.editCouncil': 'Rat bearbeiten',
  'modelCouncil.editCurrentCouncil': 'Aktuellen Rat bearbeiten',
  'modelCouncil.editCouncilAria': '{name} bearbeiten',
  'modelCouncil.deleteCouncilAria': '{name} löschen',
  'modelCouncil.backToCouncils': 'Zurück zu den Räten',
  'modelCouncil.saveCouncil': 'Rat speichern',
  'modelCouncil.savingCouncil': 'Saving…',
  'modelCouncil.cancelEdit': 'Cancel',
  'modelCouncil.loadingCouncils': 'Räte werden geladen…',
  'modelCouncil.noCouncils': 'Noch keine Räte. Fügen Sie einen hinzu, um zu beginnen.',
  'modelCouncil.noCouncilDescription': 'Keine Beschreibung',
  'modelCouncil.registryErrorPrefix': 'Rats-Registry fehlgeschlagen:',
  'modelCouncil.councilNameLabel': 'Ratsname',
  'modelCouncil.councilDescriptionLabel': 'Description',
  'modelCouncil.councilDescriptionPlaceholder': 'Wann diesen Rat verwenden',
  'modelCouncil.selectModel': 'Select',
  'modelCouncil.modelPickerHelp':
    'Wählen Sie einen Routing-Hinweis oder pinnen Sie ein genaues Anbietermodell.',
  'modelCouncil.closeModelPicker': 'Close',
  'modelCouncil.hint.chat': 'Chat',
  'modelCouncil.hint.code': 'Code',
  'modelCouncil.hint.default': 'Standard',
  'modelCouncil.hint.reasoning': 'Schlussfolgern',
  'modelCouncil.hint.summarize': 'Zusammenfassung',
  'modelCouncil.modelPickerHints': 'Hints',
  'modelCouncil.modelPickerProviderModel': 'Anbieter + Modell',
  'modelCouncil.modelProviderLabel': 'Modellanbieter',
  'modelCouncil.modelIdLabel': 'Modell-ID',
  'modelCouncil.useProviderModel': 'Anbietermodell verwenden',
  'modelCouncil.questionLabel': 'Question',
  'modelCouncil.questionPlaceholder': 'Stellen Sie dem Rat eine Frage…',
  'modelCouncil.membersLabel': 'Mitgliedsmodelle',
  'modelCouncil.maxMembersNote': 'bis zu {max}',
  'modelCouncil.memberPlaceholder': 'z. B. gpt-5.2',
  'modelCouncil.memberAria': 'Mitgliedsmodell {n}',
  'modelCouncil.removeMemberAria': 'Mitgliedsmodell {n} entfernen',
  'modelCouncil.addMember': '+ Modell hinzufügen',
  'modelCouncil.settingsTitle': 'Council-Einstellungen',
  'modelCouncil.settingsSummary': '{count} Juroren · Richter: {judge}',
  'modelCouncil.juryCountLabel': 'Anzahl der Juroren',
  'modelCouncil.debateRoundsLabel': 'Debattenrunden',
  'modelCouncil.debateRoundsHelp':
    'Jeder Juror debattiert über mehrere Runden, bevor der Richter die endgültige Synthese verfasst.',
  'modelCouncil.judgeAgentLabel': 'Richter-Agent',
  'modelCouncil.defaultJudge': 'Standardrichter',
  'modelCouncil.savedProfile': 'Gespeichertes Profil',
  'modelCouncil.customAgent': 'Eigener Agent',
  'modelCouncil.judgeProfileLabel': 'Richterprofil',
  'modelCouncil.chooseProfile': 'Profil auswählen',
  'modelCouncil.judgeNameLabel': 'Name des Richters',
  'modelCouncil.judgeNamePlaceholder': 'Vorsitzender Richter',
  'modelCouncil.rosterHeading': 'Council-Besetzung',
  'modelCouncil.rosterHelp':
    'Jeder Juror kann den Standardagenten erben, ein gespeichertes Profil nutzen oder für diesen Lauf ein eigenes Profil werden.',
  'modelCouncil.loadingProfiles': 'Profile werden geladen…',
  'modelCouncil.jurorLabel': 'Juror {n}',
  'modelCouncil.profileModeLabel': 'Profilquelle',
  'modelCouncil.mode.default': 'Standard',
  'modelCouncil.mode.profile': 'Profil',
  'modelCouncil.mode.custom': 'Eigen',
  'modelCouncil.memberProfileAria': 'Profil von Juror {n}',
  'modelCouncil.memberNameAria': 'Name von Juror {n}',
  'modelCouncil.memberNamePlaceholder': 'Agentenname',
  'modelCouncil.profileModelPlaceholder': 'Profilmodell überschreiben',
  'modelCouncil.memberBriefAria': 'Briefing für Juror {n}',
  'modelCouncil.memberBriefPlaceholder': 'Perspektive dieses Jurors',
  'modelCouncil.jurorFallback': 'Juror',
  'modelCouncil.sharedReasoningLabel': 'Gemeinsame Reasoning-Datei',
  'modelCouncil.sharedReasoningHelp':
    'Der Council arbeitet an diesem gemeinsamen Entwurf, bevor der Richter die Synthese schreibt.',
  'modelCouncil.liveScratchpadHelp':
    'Juroren-Updates werden hier nach jeder Runde angefügt und in die nächste Runde eingespeist.',
  'modelCouncil.liveScratchpadBadge': 'Live',
  'modelCouncil.scratchpadRoundHeading': 'Runde-{round}-Updates',
  'modelCouncil.scratchpadNoResponse': 'Keine Antwort',
  'modelCouncil.chairLabel': 'Vorsitz-Modell',
  'modelCouncil.chairPlaceholder': 'z. B. claude-opus-4-8',
  'modelCouncil.chairHelp':
    'Der Vorsitzende liest jede Mitgliederantwort und verfasst die Synthese.',
  'modelCouncil.run': 'Rat einberufen',
  'modelCouncil.running': 'Convening…',
  'modelCouncil.runningHint': 'Mitglieder werden parallel abgefragt, dann Synthese…',
  'modelCouncil.deliberationHeading': 'Rats-Beratung',
  'modelCouncil.deliberationHelp':
    'Maskottchen zeigen die Denkphase jedes Agenten, während die gemeinsame Argumentationsdatei aktiv ist.',
  'modelCouncil.debateRoundInstruction':
    'Antworten Sie auf die anderen Juroren. Bewahren Sie Meinungsverschiedenheiten, revidieren Sie Ihre Sicht wenn nötig und formulieren Sie Ihr aktuelles Fazit deutlich.',
  'modelCouncil.debateFinalInstruction':
    'Dies ist Ihre letzte Juroren-Runde. Konvergieren Sie, wo die Beweise es stützen, benennen Sie verbleibende Meinungsverschiedenheiten und geben Sie dem Richter ein klares Fazit.',
  'modelCouncil.roundLabel': 'Runde {round}',
  'modelCouncil.currentRoundThinking': 'Nächste Runde wird fortgesetzt…',
  'modelCouncil.thinkingBadge': 'Thinking',
  'modelCouncil.thinkingWithBrief': 'Arbeite aus dieser Perspektive: {brief}',
  'modelCouncil.thought.evidence':
    'Prüfe Beweise, Annahmen und was die gemeinsame Argumentationsdatei bereits enthält.',
  'modelCouncil.thought.plan':
    'Skizziere den praktischen Weg und wo die Umsetzung scheitern könnte.',
  'modelCouncil.thought.risk':
    'Suche nach Fehlermodi, fehlendem Kontext und brüchigen Schlussfolgerungen.',
  'modelCouncil.thought.tradeoffs':
    'Vergleiche Abwägungen, bevor ich dem Richter eine knappe Position übergebe.',
  'modelCouncil.thought.synthesis':
    'Bereite eine eigenständige Sicht vor, damit der Richter echte Meinungsverschiedenheiten vergleichen kann.',
  'modelCouncil.judgeWaitingBadge': 'Judge',
  'modelCouncil.judgeWaitingThought':
    'Warte auf Juroren-Antworten, dann lese die gemeinsame Argumentationsdatei zur Synthese.',
  'modelCouncil.judgeSynthesizingBadge': 'Synthesizing',
  'modelCouncil.judgeSynthesizingThought':
    'Lese die Live-Gedanken der Juroren und verfasse die endgültige Rats-Synthese.',
  'modelCouncil.errorPrefix': 'Rat fehlgeschlagen:',
  'modelCouncil.resultsHeading': 'Rats-Ergebnisse',
  'modelCouncil.memberAnswered': 'Answered',
  'modelCouncil.memberFailed': 'Failed',
  'modelCouncil.synthesisHeading': 'Synthesis',
  'modelCouncil.synthesisBy': 'von {model}',
  'modelCouncil.usageHeading': 'Debatten-Nutzung',
  'modelCouncil.usageEstimated':
    'Geschätzte Token-Anzahl aus Debatten-Prompts und -Antworten. Die echte Preisgestaltung erfordert Anbieternutzung aus dem Rats-RPC.',
  'modelCouncil.usageEstimatedBadge': 'Geschätzte Token',
  'modelCouncil.usageInputTokens': 'Input',
  'modelCouncil.usageOutputTokens': 'Output',
  'modelCouncil.usageTotalTokens': 'Total',
  'graphCohesion.brokerBadge': 'Broker',
  'graphCohesion.brokerTitle':
    'Strukturelles Loch: Die Nachbarn dieser Entität sind nicht miteinander verbunden — sie ist die einzige Verknüpfung zwischen ihnen.',
  'graphCohesion.colCohesion': 'Kohäsion',
  'graphCohesion.colEntity': 'Entität',
  'graphCohesion.colLinks': 'Verknüpfungen',
  'graphCohesion.colRank': '#',
  'graphCohesion.empty': 'Noch kein Wissensgraph.',
  'graphCohesion.emptyHint':
    'Während der Assistent verbundene Fakten über Sie erfasst, erscheint hier deren Clustering-Struktur.',
  'graphCohesion.errorPrefix': 'Graph konnte nicht geladen werden:',
  'graphCohesion.intro':
    'Wie eng verwoben die Nachbarschaft jeder Entität ist. Broker — Entitäten, deren Nachbarn untereinander nicht verbunden sind — sind die Einzelpunkte, die sonst getrennte Cluster zusammenhalten, was eine Häufigkeits- oder PageRank-Sortierung nicht aufdecken kann.',
  'graphCohesion.loading': 'Berechne Kohäsion…',
  'graphCohesion.metricConnections': 'Verbindungen',
  'graphCohesion.metricEntities': 'Entitäten',
  'graphCohesion.metricTriangles': 'Dreiecke',
  'graphCohesion.namespaceAll': 'Alle Namensräume',
  'graphCohesion.namespaceLabel': 'Namensraum',
  'graphCohesion.noBrokers': 'Noch keine Entitäten mit zwei oder mehr Verbindungen.',
  'graphCohesion.rankedHeading': 'Broker — lockerste Nachbarschaften',
  'graphCohesion.retry': 'Wiederholen',
  'graphCohesion.summaryCaption':
    'Durchschnittliches Clustering {avg} · Transitivität {transitivity}',
  'graphCohesion.title': 'Graph-Kohäsion',
  'memory.tab.cohesion': 'Cohesion',

  'harnessInit.title': 'Einrichtung läuft',

  'announcement.gotIt': 'Verstanden',
  'harnessInit.subtitle': 'OpenHuman bereitet beim ersten Start benötigte Komponenten vor.',
  'harnessInit.stepPython': 'Python-Laufzeitumgebung',
  'harnessInit.stepSpacy': 'Sprachmodell',
  'harnessInit.stepNode': 'Node.js-Laufzeitumgebung',
  'harnessInit.statePending': 'Wartet',
  'harnessInit.stateRunning': 'Wird installiert…',
  'harnessInit.stateDone': 'Bereit',
  'harnessInit.stateSkipped': 'Übersprungen',
  'harnessInit.stateFailed': 'Fehlgeschlagen',
  'harnessInit.failedMessage':
    'Einige Einrichtungsschritte wurden nicht abgeschlossen. Du kannst es erneut versuchen oder fortfahren — OpenHuman verwendet dann eine integrierte Ausweichlösung.',
  'harnessInit.retry': 'Erneut versuchen',
  'harnessInit.continueAnyway': 'Trotzdem fortfahren',
  'harnessInit.runInBackground': 'Im Hintergrund ausführen',
  'harnessInit.backgroundHint':
    'Du kannst OpenHuman weiter verwenden, während dies abgeschlossen wird.',

  'keyring.consent.title': 'Sicherer Speicher nicht verfügbar',
  'keyring.consent.description':
    'Der Schlüsselbund Ihres Betriebssystems ist nicht erreichbar. OpenHuman benötigt Ihre Erlaubnis, Geheimnisse stattdessen in einem lokal verschlüsselten Speicher abzulegen.',
  'keyring.consent.reasonPrefix': 'Grund:',
  'keyring.consent.showDetails': 'Was bedeutet das?',
  'keyring.consent.hideDetails': 'Details ausblenden',
  'keyring.consent.tradeoffTitle': 'Sicherheitskompromiss',
  'keyring.consent.tradeoffBody':
    'Bei lokal verschlüsseltem Speicher werden Ihre Geheimnisse mit einem Hauptschlüssel verschlüsselt, der neben den Daten gespeichert wird. Dies ist weniger sicher als der OS-Schlüsselbund, der hardwaregestützten Schutz bietet. Backups oder Dateisynchronisation können die verschlüsselten Daten enthalten.',
  'keyring.consent.consentButton': 'Lokal verschlüsselten Speicher verwenden',
  'keyring.consent.retryButton': 'OS Keychain erneut versuchen',
  'keyring.consent.declineButton': 'Ablehnen',
  'keyring.consent.retrying': 'Erneuter Versuch…',
  'keyring.consent.error': 'Einstellung konnte nicht gespeichert werden. Bitte erneut versuchen.',
  'keyring.consent.retryFailed': 'Schlüsselbund ist weiterhin nicht verfügbar.',
  'keyring.settings.title': 'Sicherheit',
  'keyring.settings.storageMode': 'Geheimnisspeicher-Modus',
  'keyring.settings.mode.osKeychain': 'OS-Schlüsselbund',
  'keyring.settings.mode.encryptedFile': 'Lokal verschlüsselt',
  'keyring.settings.mode.consentPending': 'Nicht konfiguriert',
  'keyring.settings.mode.declined': 'Abgelehnt',
  'keyring.settings.availability': 'Schlüsselbund-Verfügbarkeit',
  'keyring.settings.available': 'OS-Schlüsselbund ist verfügbar',
  'keyring.settings.unavailable': 'OS-Schlüsselbund ist nicht verfügbar',
  'keyring.settings.backend': 'Backend',
  'keyring.settings.retryButton': 'Schlüsselbund-Erkennung wiederholen',
  'keyring.settings.retryFailed':
    'Erneuter Versuch fehlgeschlagen. Schlüsselbund weiterhin nicht verfügbar.',
  'keyring.settings.consentTitle': 'Speicherzustimmung',
  'keyring.settings.consentDescription':
    'Wählen Sie, wie Geheimnisse gespeichert werden, wenn der OS-Schlüsselbund nicht verfügbar ist.',
  'keyring.settings.grantConsent': 'Lokal verschlüsselten Speicher erlauben',
  'keyring.settings.revokeConsent': 'Lokalen Speicher ablehnen',
  'pages.settings.account.security': 'Sicherheit',
  'pages.settings.account.securityDesc': 'Geheimnisspeicher-Modus und Schlüsselbund-Status',
  // #002 memory-pipeline-hardening: degraded badges + typed remediation.
  'memoryTree.status.statusDegraded': 'Eingeschränkt',
  'memoryTree.status.degradedRecall': 'Semantische Suche deaktiviert',
  'memoryTree.status.degradedStructure': 'Wiki-Struktur unvollständig',
  'memoryTree.status.extractionCoverage':
    'Extraktionsabdeckung: {pct}% der Abschnitte haben Struktur',
  'memory.health.remediation.budget_exhausted':
    'Die Speicher-Embeddings haben das verwaltete Budget erreicht. Richte lokale Ollama-Embeddings ein (Einstellungen → KI → Einbettungen) oder füge deinen eigenen Embeddings-API-Schlüssel hinzu, um den Speicher weiter aufzubauen.',
  'memory.health.remediation.auth_missing':
    'Keine Embeddings-Anmeldedaten gefunden. Melde dich bei OpenHuman an oder richte lokale Ollama-Embeddings unter Einstellungen → KI → Einbettungen ein.',
  'memory.health.remediation.auth_invalid':
    'Deine Embeddings-Anmeldedaten wurden abgelehnt. Authentifiziere dich erneut oder wechsle unter Einstellungen → KI → Einbettungen zu lokalen Ollama-Embeddings.',
  'memory.health.remediation.embeddings_unconfigured':
    'Es ist kein Embeddings-Anbieter konfiguriert, daher ist die semantische Suche deaktiviert. Richte lokale Ollama-Embeddings ein (empfohlen) oder füge unter Einstellungen → KI → Einbettungen einen Embeddings-Schlüssel hinzu.',
  'memory.health.remediation.embedding_dim_mismatch':
    'Das Embedding-Modell liefert die falsche Vektorgröße (der Speicher erwartet 1024 Dimensionen). Wähle ein Modell mit 1024 Dimensionen oder fordere 1024 Dimensionen von deinem Anbieter an.',
  'memory.health.remediation.local_model_unavailable':
    'Ein erforderliches lokales Modell ist nicht verfügbar. Installiere/starte Ollama und lade das Modell herunter, oder wechsle diese Arbeitslast unter Einstellungen → KI zu einem Cloud-Anbieter.',
  'memory.health.remediation.extraction_timeout':
    'Das Modell zur Speicherextraktion überschreitet die Zeit, daher hat das Wiki wenig Struktur. Wechsle das Modell für die Speicherextraktion unter Einstellungen → KI zu einem schnelleren.',
  'memory.health.remediation.summarizer_unavailable':
    'Für „Zusammenfassungsbäume erstellen” ist kein Zusammenfassungsanbieter verfügbar. Aktiviere die lokale KI (Ollama) oder aktiviere die Cloud-Zusammenfassung unter Einstellungen → KI → Speicher.',
  'memory.health.remediation.empty_input_refused':
    'Ein Speicherelement wurde übersprungen, weil sein Text leer war. Keine Aktion erforderlich — neue Einträge werden weiterhin normal eingebettet.',
  'memory.health.remediation.storage_unavailable':
    'OpenHuman kann nicht in seinen Speicher schreiben — die Festplatte oder SD-Karte scheint defekt, voll oder schreibgeschützt zu sein. Überprüfe das Laufwerk und gib Speicherplatz frei; die Speicherverarbeitung wird automatisch fortgesetzt, sobald der Speicher wieder beschreibbar ist.',
  'memory.health.remediation.transient':
    'Ein vorübergehender Fehler hat die Speicherverarbeitung unterbrochen. Es wird automatisch erneut versucht.',
  'memory.health.remediation.unknown':
    'Bei der Speicherverarbeitung ist ein Problem aufgetreten. Überprüfe Einstellungen → KI für die Konfiguration.',
  // Chat — agent-generated artifacts (#2779)

  // Chat composer toolbar
  'composer.attachFile': 'Datei anhängen',
  'composer.modelSelector': 'Modell',
  'composer.voiceMode': 'Sprachmodus',
  'composer.qualityHigh': 'Hoch',
  // Agent activity level
  'activityLevel.title': 'Agent-Aktivitätsstufe',
  'activityLevel.description':
    'Steuern Sie, wie proaktiv Ihr Agent ist. Höhere Stufen verbrauchen mehr Tokens.',
  'activityLevel.off': 'Aus',
  'activityLevel.offDesc': 'Keine Hintergrundverarbeitung. Synchronisiert nur auf Knopfdruck.',
  'activityLevel.minimal': 'Minimal',
  'activityLevel.minimalDesc':
    'Quellen einmal täglich synchronisieren. Keine proaktiven Nachrichten.',
  'activityLevel.moderate': 'Moderat',
  'activityLevel.moderateDesc':
    'Stündliche Synchronisierung. Tägliche Zusammenfassung. Schlägt Aktionen vor.',
  'activityLevel.active': 'Aktiv',
  'activityLevel.activeDesc':
    'Alle 10 Minuten synchronisieren. Überwacht Kanäle, priorisiert und entwirft Antworten.',
  'activityLevel.alwaysOn': 'Immer aktiv',
  'activityLevel.alwaysOnDesc':
    'Echtzeit-Synchronisierung. Volle Autonomie innerhalb von Leitplanken.',
  'activityLevel.currentMonth': 'Dieser Monat: ${amount}',
  'activityLevel.saved': 'Aktivitätsstufe aktualisiert.',
  'activityLevel.default': 'Standard',
  'activityLevel.costFree': '0 $',
  'activityLevel.costRange': '~${min}–${max}/Monat',

  // Sync budget dialog
  'syncBudget.title': 'Synchronisierungsbudget',
  'syncBudget.maxTokens': 'Max. Tokens pro Synchronisierung',
  'syncBudget.maxTokensHelp':
    'Synchronisierung stoppen, sobald diese Anzahl von Tokens verbraucht wurde.',
  'syncBudget.maxCost': 'Max. Kosten pro Synchronisierung (USD)',
  'syncBudget.maxCostHelp': 'Absolutes Kostenlimit pro Synchronisierungslauf.',
  'syncBudget.syncDepth': 'Synchronisierungstiefe',
  'syncBudget.syncDepthHelp': 'Nur Elemente aus diesem Zeitfenster abrufen.',
  'syncBudget.days7': 'Letzte 7 Tage',
  'syncBudget.days30': 'Letzte 30 Tage',
  'syncBudget.days90': 'Letzte 90 Tage',
  'syncBudget.allTime': 'Gesamte Zeit',
  'syncBudget.unlimited': 'Unbegrenzt',
  'syncBudget.saved': 'Budget gespeichert.',

  // Sync confirm dialog
  'syncConfirm.title': 'Synchronisierung bestätigen',
  'syncConfirm.message':
    'Diese Synchronisierung verarbeitet ~{items} Elemente (~{tokens} Tokens, ca. ${cost}).',
  'syncConfirm.budgetNote': 'Budgetlimit: ${max}',
  'syncConfirm.proceed': 'Fortfahren',
  'syncConfirm.cancel': 'Abbrechen',
  'syncConfirm.estimating': 'Kosten werden geschätzt...',

  // Monthly cost badge
  'monthlyCost.badge': '${amount} diesen Monat',
  'monthlyCost.noData': 'Keine Synchronisierungen diesen Monat',

  // Onboarding: Custom > Activity
  'onboarding.custom.stepperActivity': 'Aktivität',
  'onboarding.custom.activity.title': 'Agent-Aktivität',
  'onboarding.custom.activity.subtitle':
    'Wie proaktiv Ihr Agent im Hintergrund überwacht und handelt.',
  'onboarding.custom.activity.defaultDesc':
    'Moderate Aktivität – stündliche Synchronisierung, tägliche Zusammenfassung.',
  'onboarding.custom.activity.configureDesc':
    'Eigene Aktivitätsstufe wählen. Konfigurieren in Einstellungen › Agent-Aktivitätsstufe.',

  // Onboarding: Custom > Vault
  'onboarding.custom.stepperVault': 'Vault',
  'onboarding.custom.vault.title': 'Speicher & Vault-Einrichtung',
  'onboarding.custom.vault.subtitle':
    'Bestätigen Sie, wohin Speichernotizen geschrieben werden, wie Quelldaten gelesen werden und ob Ihre Vault-Pipeline fehlerfrei ist.',
  'onboarding.custom.vault.defaultDesc':
    'Von OpenHuman verwaltete Standardspeichereinstellungen verwenden. Vault-Pfad und Synchronisierungsstatus können später eingesehen werden.',
  'onboarding.custom.vault.configureDesc':
    'Vault-Eigentümerschaft prüfen, Integritätsprüfungen durchführen und Speicherkontrollen jetzt anpassen.',
  'onboarding.custom.vault.localDisabledReason':
    'Die verwaltete Einrichtung erfordert eine OpenHuman-Anmeldung und ist im lokalen Modus nicht verfügbar.',
  'onboarding.custom.vault.exitError':
    'Onboarding konnte nicht abgeschlossen werden. Bitte versuchen Sie es erneut.',

  // Vault Health
  'vaultHealth.title': 'Vault-Integritätsprüfliste',
  'vaultHealth.setupTitle': 'Vault-Einrichtungsstatus',
  'vaultHealth.workspaceVault': 'Arbeitsbereich-Vault:',
  'vaultHealth.refresh': 'Aktualisieren',
  'vaultHealth.refreshing': 'Wird aktualisiert…',
  'vaultHealth.revealFolder': 'Ordner anzeigen',
  'vaultHealth.openInObsidian': 'In Obsidian öffnen',
  'vaultHealth.installObsidian': 'Obsidian installieren',
  'vaultHealth.openObsidianError': 'Obsidian konnte nicht geöffnet werden',
  'vaultHealth.revealError': 'Vault-Ordner konnte nicht angezeigt werden',
  'vaultHealth.downloadError': 'Obsidian-Downloadseite konnte nicht geöffnet werden',
  'vaultHealth.loadError': 'Vault-Status konnte nicht geladen werden:',
  'vaultHealth.lastSync': 'Letzte Synchronisierung:',
  'vaultHealth.passed': 'Bestanden',
  'vaultHealth.needsAttention': 'Aufmerksamkeit erforderlich',
  'vaultHealth.existsLabel': 'Arbeitsbereich-Vault-Pfad vorhanden',
  'vaultHealth.existsRecovery':
    'Vault-Ordner fehlt. Starten Sie eine Synchronisierung oder erstellen Sie diesen Ordner und aktualisieren Sie dann diese Prüfliste.',
  'vaultHealth.writableLabel': 'Vault ist durch OpenHuman beschreibbar',
  'vaultHealth.writableRecovery':
    'OpenHuman kann noch nicht in diesen Vault schreiben. Schreibberechtigungen erteilen und aktualisieren.',
  'vaultHealth.obsidianLabel': 'Vault ist in Obsidian registriert',
  'vaultHealth.obsidianRecovery':
    'Wählen Sie in Obsidian „Ordner als Vault öffnen" für diesen Pfad und aktualisieren Sie dann diese Prüfliste.',
  'vaultHealth.pipelineLabel': 'Speicher-Pipeline ist fehlerfrei',
  'vaultHealth.pipelineRecovery':
    'Speicher-Pipeline ist pausiert oder fehlerhaft. Auto-Synchronisierung im Memory-Tree-Status wieder aktivieren und erneut versuchen.',
  'vaultHealth.timeNever': 'Nie',
  'vaultHealth.timeJustNow': 'gerade eben',
  'vaultHealth.timeMinAgo': 'vor {n} Min.',
  'vaultHealth.timeHrAgo': 'vor {n} Std.',
  'vaultHealth.timeDayAgo': 'vor {n} Tag',
  'vaultHealth.timeDaysAgo': 'vor {n} Tagen',

  // Memory Data
  'memoryData.howItWorks': 'So funktioniert die Speicherablage',
  'memoryData.workspaceVault': 'Arbeitsbereich-Vault · Schreiben',
  'memoryData.workspaceVaultDesc':
    'OpenHuman schreibt generierte Speichernotizen nach memory_tree/content.',
  'memoryData.connectedSources': 'Verbundene Quellen · Lesen',
  'memoryData.connectedSourcesDesc':
    'Ordner, Postfächer, Chats und Repositories werden für die Speicherindizierung importiert – die Originaldateien werden dabei nie überschrieben.',
  'memoryData.internalFiles': 'Interne Memory-Tree-Dateien',
  'memoryData.internalFilesDesc':
    'Indizes, Warteschlangenstatus und Zusammenfassungen werden von OpenHuman verwaltet, um Erinnerung und Synchronisierung fehlerfrei zu halten.',
  'memoryData.windowError': 'Speicherfenster',
  'memoryData.windowUpdated': 'Speicherfenster aktualisiert',
  'memoryData.windowUpdatedMsg': 'Auf {window} gesetzt.',
  'skills.create.whenToUse': 'Wann verwenden',
  'skills.create.whenToUsePlaceholder':
    'z. B. wenn der Nutzer darum bittet, seinen Posteingang zu sichten',
  'skills.create.whenToUseHelp':
    'Der Auslöser, anhand dessen ein Agent entscheidet, diesen Workflow auszuführen. Leer lassen, um die Beschreibung zu verwenden.',
  'skills.create.inputs.row.descriptionError':
    'Für jede Eingabe ist eine Beschreibung erforderlich.',
  'skills.detail.run': 'Ausführen',
  'skills.detail.runAriaLabel': 'Diesen Workflow ausführen',
  'skills.run.title': 'Workflow',
  'workflows.installFromUrl': 'Von URL installieren',
  // Security banner (approval-gate host-aware boot state)
  'security.approvalGateDisabled.title': 'Genehmigungstor deaktiviert',
  'security.approvalGateDisabled.body':
    'OPENHUMAN_APPROVAL_GATE=0 ist in deiner Umgebung gesetzt. Tools mit externer Wirkung werden ohne Bestätigungsabfrage ausgeführt.',
  'security.approvalGateOverrideIgnored.title': 'Override blockiert',
  'security.approvalGateOverrideIgnored.body':
    'Ein OPENHUMAN_APPROVAL_GATE=0-Override wurde erkannt, aber ignoriert: Die Desktop-App lässt das Genehmigungstor immer eingeschaltet.',

  // Run queue
  'runQueue.mode.interrupt': 'Unterbrechen',
  'runQueue.mode.steer': 'Steuern',
  'runQueue.mode.followup': 'Nachfassen',
  'runQueue.mode.collect': 'Kontext hinzufügen',
  'runQueue.queued': 'Nachricht in Warteschlange',
  'runQueue.steerHint': 'Aktuellen Durchlauf steuern',
  'runQueue.followupHint': 'Als Nachfassen einreihen',
  'runQueue.collectHint': 'Als zusätzlichen Kontext hinzufügen',
  'runQueue.status': '{total} in der Warteschlange',
  'runQueue.cleared': 'Warteschlange geleert',
  'notch.ready': 'Bereit',
  'notch.processing': 'Wird verarbeitet…',
  'notch.listening': 'Höre zu…',
  'notch.thinking': 'Denke nach…',
  'notch.speaking': 'Spreche…',
  'notch.transcribing': 'Transkribiere…',
  'notch.executing': 'Führe aus…',
  'memory.tab.orchestration': 'Orchestrierung',
  'memory.tab.orchestrationDescription':
    'Führe Multi-Agenten-Workflows aus — verteile eine Frage auf parallele Agenten, gleiche ihre Ergebnisse ab und sieh zu, wie jede Phase zu einer zusammengeführten Antwort wird.',
  'orchestration.subtitle':
    'Starte einen Multi-Agenten-Workflow, verfolge seinen Phasenfortschritt und lies das zusammengeführte Ergebnis.',
  'orchestration.loading': 'Lade Workflows…',
  'orchestration.failedToLoad': 'Workflows konnten nicht geladen werden',
  'orchestration.definitions': 'Verfügbare Workflows',
  'orchestration.noDefinitions': 'Keine Workflow-Definitionen verfügbar.',
  'orchestration.approvalRequired': 'Genehmigung erforderlich',
  'orchestration.start': 'Starten',
  'orchestration.confirmStart': 'Lauf starten',
  'orchestration.starting': 'Wird gestartet…',
  'orchestration.questionLabel': 'Forschungsfrage (optional)',
  'orchestration.questionPlaceholder': 'Was sollen die Agenten erforschen?',
  'orchestration.runProgress': 'Lauffortschritt',
  'orchestration.recentRuns': 'Letzte Läufe',
  'orchestration.noRuns': 'Noch keine Workflow-Läufe.',
  'orchestration.close': 'Schließen',
  'orchestration.tier.readOnly': 'Nur lesen',
  'orchestration.tier.standard': 'Standard',
  'orchestration.tier.editCapable': 'Bearbeitungsfähig',
  'orchestration.approval.title': 'Diesen Workflow-Lauf genehmigen',
  'orchestration.approval.body':
    'Dies ist ein kosten- oder parallelitätsintensiver Lauf und benötigt vor dem Start deine ausdrückliche Genehmigung:',
  'orchestration.approval.reason.tier':
    'Seine Agenten können über reine Lese-Recherche hinaus Aktionen ausführen.',
  'orchestration.approval.reason.concurrency': 'Er führt viele Agenten gleichzeitig aus.',
  'orchestration.approval.reason.children': 'Er kann insgesamt sehr viele Agenten erzeugen.',
  'orchestration.approval.tier': 'Sicherheitsstufe',
  'orchestration.approval.concurrency': 'Parallelität',
  'orchestration.approval.maxChildren': 'Max. Agenten',
  'orchestration.approval.approve': 'Genehmigen & starten',
  'orchestration.approval.starting': 'Wird gestartet…',
  'orchestration.approval.cancel': 'Abbrechen',
  'orchestration.runStatus.pending': 'Ausstehend',
  'orchestration.runStatus.running': 'Läuft',
  'orchestration.runStatus.completed': 'Abgeschlossen',
  'orchestration.runStatus.failed': 'Fehlgeschlagen',
  'orchestration.runStatus.cancelled': 'Abgebrochen',
  'orchestration.runStatus.interrupted': 'Unterbrochen',
  'orchestration.phaseStatus.pending': 'Ausstehend',
  'orchestration.phaseStatus.running': 'Läuft',
  'orchestration.phaseStatus.completed': 'Abgeschlossen',
  'orchestration.phaseStatus.failed': 'Fehlgeschlagen',
  'orchestration.detail.stop': 'Stoppen',
  'orchestration.detail.resume': 'Fortsetzen',
  'orchestration.detail.agents': 'Agenten',
  'orchestration.detail.childRefs': 'Untergeordnete Agenten',
  'orchestration.detail.synthesis': 'Endgültige Zusammenführung',
  // ── Agent Profiles ───────────────────────────────────────────────────────
  'settings.profiles.title': 'Agentenprofile',
  'settings.profiles.subtitle':
    'Agenten mit Charakter – jeder mit eigener Seele, Erinnerung, Konnektoren und Fähigkeiten.',
  'settings.profiles.menuDesc': 'Agentenprofile erstellen und verwalten',
  'settings.profiles.new': 'Neues Profil',
  'settings.profiles.empty': 'Noch keine Agentenprofile',
  'settings.profiles.loadError': 'Profile konnten nicht geladen werden',
  'settings.profiles.active': 'Aktiv',
  'settings.profiles.setActive': 'Als aktiv festlegen',
  'settings.profiles.sourceBuiltIn': 'Integriert',
  'settings.profiles.sourceCustom': 'Benutzerdefiniert',
  'settings.profiles.deleteConfirm':
    'Dieses Profil löschen? Das kann nicht rückgängig gemacht werden.',
  'settings.profiles.editor.createTitle': 'Neues Profil',
  'settings.profiles.editor.editTitle': 'Profil bearbeiten',
  'settings.profiles.editor.name': 'Name',
  'settings.profiles.editor.id': 'Kennung',
  'settings.profiles.editor.idHint': 'Nur Kleinbuchstaben, Ziffern und Bindestriche.',
  'settings.profiles.editor.description': 'Beschreibung',
  'settings.profiles.editor.soul': 'Seele (SOUL.md)',
  'settings.profiles.editor.soulHint':
    'Benutzerdefinierte Identität dieses Profils. Leer greift auf die SOUL.md des Arbeitsbereichs zurück.',
  'settings.profiles.editor.baseAgent': 'Basis-Agent',
  'settings.profiles.editor.baseAgentHint':
    'Mit welcher Agentendefinition dieses Profil läuft (z. B. orchestrator).',
  'settings.profiles.editor.model': 'Modell',
  'settings.profiles.editor.modelHint':
    'Optionale Modellüberschreibung. Leer erbt die Standardeinstellung.',
  'settings.profiles.editor.temperature': 'Temperatur',
  'settings.profiles.editor.systemPromptSuffix': 'Suffix der Systemaufforderung',
  'settings.profiles.editor.agentConversations': 'Agentengespräche abrufen',
  'settings.profiles.editor.agentConversationsHint':
    'Erinnerungen aus früheren und chatübergreifenden Gesprächen in den Kontext dieses Profils einbeziehen.',
  'settings.profiles.editor.memorySources': 'Gedächtnisquellen',
  'settings.profiles.editor.memorySourcesHint':
    'Gedächtnisquellen, aus denen dieses Profil abruft.',
  'settings.profiles.editor.connectors': 'Konnektoren',
  'settings.profiles.editor.connectorsHint': 'Composio-Toolkits, die dieses Profil verwenden kann.',
  'settings.profiles.editor.skills': 'Fähigkeiten',
  'settings.profiles.editor.skillsHint':
    'Workflows, die dieses Profil auflisten und ausführen kann.',
  'settings.profiles.editor.mcpServers': 'MCP-Server',
  'settings.profiles.editor.mcpServersHint': 'MCP-Server, die dieses Profil erreichen kann.',
  'settings.profiles.editor.all': 'Alle',
  'settings.profiles.editor.selected': 'Ausgewählt',
  'settings.profiles.editor.addPlaceholder': 'Kennung eingeben und Enter drücken',
  'settings.profiles.editor.removeAria': '{item} entfernen',
  'settings.profiles.editor.notFound': 'Profil nicht gefunden',
  'settings.profiles.editor.saving': 'Wird gespeichert…',
  'settings.profiles.editor.idRequired': 'Die Profil-Kennung darf nicht leer sein',
  'agentworld.jobs.applyModal.title': 'Auf Stelle bewerben',
  'agentworld.jobs.applyModal.successHeading': 'Vorschlag erfolgreich eingereicht!',
  'agentworld.jobs.applyModal.successBody': 'Der Auftraggeber wird Ihre Bewerbung prüfen.',
  'agentworld.jobs.applyModal.coverLetterLabel': 'Anschreiben',
  'agentworld.jobs.applyModal.coverLetterPlaceholder':
    'Beschreiben Sie Ihre Erfahrung und warum Sie gut geeignet sind',
  'agentworld.jobs.applyModal.bidAmountLabel': 'Gebotsbetrag',
  'agentworld.jobs.applyModal.bidAmountPlaceholder': 'z. B. 450 USDC',
  'agentworld.jobs.applyModal.deliveryLabel': 'Voraussichtliche Lieferzeit',
  'agentworld.jobs.applyModal.deliveryPlaceholder': 'z. B. 2 Wochen',
  'agentworld.jobs.applyModal.cancel': 'Abbrechen',
  'agentworld.jobs.applyModal.submit': 'Bewerbung einreichen',
  'agentworld.jobs.applyModal.submitting': 'Wird eingereicht…',
  'agentworld.messaging.missingSignalBundle':
    'Dieser Benutzer hat verschlüsselte Nachrichten noch nicht aktiviert. Bitte ihn, Agent World zu öffnen und sichere DMs zu aktivieren, bevor du eine Nachricht sendest.',

  // User-actionable runtime errors (#3931)
  'userErrors.title': 'Aktion erforderlich',
  'userErrors.dismiss': 'Verwerfen',
  'userErrors.action.openBilling': 'Abrechnung öffnen',
  'userErrors.action.openProviderSettings': 'Anbietereinstellungen',
  'userErrors.budgetExceeded.title': 'Verwaltetes Budget erreicht',
  'userErrors.budgetExceeded.body':
    'Dein verwaltetes KI-Budget ist aufgebraucht. Füge Budget hinzu oder ändere deinen Tarif.',
  'userErrors.insufficientCredits.title': 'Anbieter-Guthaben erforderlich',
  'userErrors.insufficientCredits.body':
    'Deinem KI-Anbieter ist das Guthaben ausgegangen. Lade es auf oder aktualisiere den Schlüssel.',
  'userErrors.apiKeyMissing.title': 'API-Schlüssel erforderlich',
  'userErrors.apiKeyMissing.body':
    'Für deinen KI-Anbieter ist kein API-Schlüssel hinterlegt. Füge in den Anbietereinstellungen einen hinzu, um fortzufahren.',
  'userErrors.scope.chat': 'Chat',
  'userErrors.scope.cron': 'Geplante Aufgabe',
  // Agent World — Identity trading (confirm-before-spend + balance gate)
  'agentWorld.trading.amountLabel': 'Betrag',
  'agentWorld.trading.networkLabel': 'Netzwerk',
  'agentWorld.trading.balanceLabel': 'Dein Guthaben',
  'agentWorld.trading.walletLabel': 'Wallet',
  'agentWorld.trading.balanceUnknown': 'Unbekannt',
  'agentWorld.trading.cancel': 'Abbrechen',
  'agentWorld.trading.addFunds': 'Guthaben aufladen',
  'agentWorld.trading.confirmPay': 'Bestätigen & zahlen',
  'agentWorld.trading.confirmCommit': 'Bestätigen',
  'agentWorld.trading.continue': 'Weiter',
  'agentWorld.trading.submitting': 'Wird gesendet…',
  'agentWorld.trading.placeBid': 'Gebot abgeben',
  'agentWorld.trading.submitOffer': 'Angebot senden',
  'agentWorld.trading.bidTitlePrefix': 'Gebot für',
  'agentWorld.trading.offerTitlePrefix': 'Angebot für',
  'agentWorld.trading.bidReviewTitlePrefix': 'Gebot bestätigen für',
  'agentWorld.trading.offerReviewTitlePrefix': 'Angebot bestätigen für',
  'agentWorld.trading.spendInsufficient':
    'Nicht genügend Guthaben, um diese Zahlung abzuschließen. Lade dein Wallet auf, um fortzufahren.',
  'agentWorld.trading.spendBroadcastNote':
    'Dein Wallet signiert diese Zahlung und überträgt sie auf',
  'agentWorld.trading.commitInsufficientWarning':
    'Dein Guthaben deckt dies möglicherweise nicht ab, falls die Zusage angenommen wird. Du kannst sie trotzdem absenden – Geld bewegt sich nur bei Annahme.',
  'agentWorld.trading.commitSettleNote':
    'Dies ist eine signierte Zusage – Geld bewegt sich nur bei Annahme.',
  'agentWorld.trading.commitReviewSubtitle': 'Überprüfe deine Zusage vor dem Absenden.',
  'agentWorld.trading.balanceUnverified':
    'Wir konnten dein Wallet-Guthaben nicht überprüfen. Du kannst trotzdem fortfahren – die Zahlung wird beim Absenden geprüft.',
  'agentWorld.trading.amountTooManyDecimals': 'Dieser Betrag hat zu viele Nachkommastellen.',
  'agentWorld.trading.amountMustBePositive': 'Gib einen Betrag größer als null ein.',
  'agentWorld.trading.amountInvalid': 'Gib einen gültigen Betrag ein.',

  // Code block chrome
  'codeBlock.copy': 'Kopieren',
  'codeBlock.copied': 'Kopiert!',
};

export default messages;
