diff --git a/packages/ui/src/lib/i18n/messages/de.settings.ts b/packages/ui/src/lib/i18n/messages/de.settings.ts new file mode 100644 index 00000000..0558eaa5 --- /dev/null +++ b/packages/ui/src/lib/i18n/messages/de.settings.ts @@ -0,0 +1,1958 @@ +import type { I18nDictionary } from '../types'; + +export const settingsDict: Partial = { + 'settings.providers.page.openCodeGo.title': 'OpenCode Go Nutzungsverfolgung', + 'settings.providers.page.openCodeGo.description': 'Verbinden Sie das OpenCode Go Dashboard, um rollierenden, wöchentlichen und monatlichen Verbrauch anzuzeigen.', + 'settings.providers.page.openCodeGo.workspaceId': 'Workspace-ID', + 'settings.providers.page.openCodeGo.authCookie': 'Auth-Cookie', + 'settings.providers.page.openCodeGo.help': 'Kopieren Sie die Workspace-ID aus der Dashboard-URL und den Auth-Cookie aus den Browser-Entwicklertools. OpenChamber liest niemals den Browser-Cookie-Speicher aus.', + 'settings.providers.page.openCodeGo.save': 'Speichern und validieren', + 'settings.providers.page.openCodeGo.replace': 'Ersetzen', + 'settings.providers.page.openCodeGo.validate': 'Validieren', + 'settings.providers.page.openCodeGo.delete': 'Löschen', + 'settings.providers.page.quotaCredentials.saved': '{provider}-Anmeldedaten gespeichert.', + 'settings.providers.page.openCodeGo.saveFailed': 'OpenCode Go-Anmeldedaten konnten nicht validiert werden.', + 'settings.providers.page.openCodeGo.valid': 'OpenCode Go-Anmeldedaten sind gültig.', + 'settings.providers.page.openCodeGo.invalid': 'OpenCode Go-Anmeldedaten sind ungültig oder abgelaufen.', + 'settings.providers.page.openCodeGo.deleted': 'OpenCode Go-Anmeldedaten gelöscht.', + 'settings.providers.page.openCodeGo.deleteFailed': 'OpenCode Go-Anmeldedaten konnten nicht gelöscht werden.', + 'settings.appearance.language.label': 'Sprache', + 'settings.appearance.language.description': 'Wählen Sie die Oberflächensprache.', + 'settings.appearance.language.select': 'Sprache auswählen', + 'settings.window.description': 'OpenChamber-Einstellungsfenster.', + 'settings.view.home.title': 'Einstellungen', + 'settings.view.home.description': 'Zu häufig verwendeten Seiten springen.', + 'settings.view.home.cards.providers.title': 'Anbieter', + 'settings.view.home.cards.providers.description': 'Modelle + Anmeldedaten verbinden', + 'settings.view.home.cards.agents.title': 'Agenten', + 'settings.view.home.cards.agents.description': 'Prompts, Tools, Berechtigungen', + 'settings.view.home.cards.skillsCatalog.title': 'Skills Catalog', + 'settings.view.home.cards.skillsCatalog.description': 'Skills aus Katalogen installieren', + 'settings.view.home.cards.mcp.title': 'MCP', + 'settings.view.home.cards.mcp.description': 'MCP-Server + Verbindungen konfigurieren', + 'settings.view.home.cards.plugins.title': 'Plugins', + 'settings.view.home.cards.plugins.description': 'OpenCode-Plugins verwalten', + 'settings.view.home.cards.usage.title': 'Nutzung', + 'settings.view.home.cards.usage.description': 'Kontingent + Verbrauchsübersicht', + 'settings.view.unavailable.title': 'Nicht verfügbar', + 'settings.view.unavailable.description': 'Diese Einstellungsseite ist in dieser Laufzeitumgebung nicht verfügbar.', + 'settings.view.badge.beta': 'Beta', + 'settings.view.actions.reloadOpenCode': 'OpenCode neu laden', + 'settings.view.actions.reloadOpenCodeTooltip': 'OpenCode neu starten und Konfiguration neu laden.', + 'settings.view.actions.backToSettings': 'Zurück zu Einstellungen', + 'settings.view.actions.closeSettings': 'Einstellungen schließen', + 'settings.view.actions.openSectionList': 'Abschnittsliste öffnen', + 'settings.view.actions.closeSettingsWithShortcut': 'Einstellungen schließen ({shortcut}+,)', + 'settings.view.actions.back': 'Zurück', + 'settings.view.actions.resizeNavigation': 'Einstellungsnavigation skalieren', + 'settings.view.search.placeholder': 'Einstellungen durchsuchen', + 'settings.view.search.aria': 'Einstellungen durchsuchen', + 'settings.view.search.clear': 'Einstellungsuche löschen', + 'settings.view.search.noResults': 'Keine passenden Einstellungen', + 'settings.page.projects.title': 'Projekte', + 'settings.page.remoteInstances.title': 'Remote-Instanzen', + 'settings.page.providers.title': 'Anbieter', + 'settings.page.usage.title': 'Nutzung', + 'settings.page.agents.title': 'Agenten', + 'settings.page.commands.title': 'Befehle', + 'settings.page.mcp.title': 'MCP', + 'settings.page.plugins.title': 'Plugins', + 'settings.page.skills.title': 'Skills', + 'settings.page.skillsCatalog.title': 'Skills Catalog', + 'settings.page.git.title': 'Git', + 'settings.page.appearance.title': 'Erscheinungsbild', + 'settings.page.chat.title': 'Chat', + 'settings.page.shortcuts.title': 'Tastenkombinationen', + 'settings.page.sessions.title': 'Sitzungen', + 'settings.page.magicPrompts.title': 'Magic Prompts', + 'settings.page.notifications.title': 'Benachrichtigungen', + 'settings.page.voice.title': 'Sprache', + 'settings.page.tunnel.title': 'Remote-Tunnel', + 'settings.page.about.title': 'Über', + 'settings.page.snippets.title': 'Snippets', + 'settings.snippets.sidebar.title': 'Snippets', + 'settings.snippets.sidebar.total': 'Gesamt: {count}', + 'settings.snippets.sidebar.actions.create': 'Snippet erstellen', + 'settings.snippets.sidebar.actions.more': 'Weitere Aktionen für {name}', + 'settings.snippets.sidebar.toast.deleted': 'Snippet gelöscht', + 'settings.snippets.sidebar.toast.deleteFailed': 'Snippet konnte nicht gelöscht werden', + 'settings.snippets.sidebar.dialog.deleteTitle': 'Snippet löschen?', + 'settings.snippets.sidebar.dialog.deleteDescription': 'Dadurch wird #{name} dauerhaft gelöscht.', + 'settings.snippets.page.empty.title': 'Snippet auswählen', + 'settings.snippets.page.empty.description': 'Wählen Sie ein Snippet aus der Seitenleiste, um es zu bearbeiten.', + 'settings.snippets.page.title.new': 'Neues Snippet', + 'settings.snippets.page.field.namePlaceholder': 'snippet-name', + 'settings.snippets.page.field.descriptionPlaceholder': 'Was dieses Snippet tut', + 'settings.snippets.page.field.aliases': 'Aliasse', + 'settings.snippets.page.field.aliasesPlaceholder': 'sicher, vorsichtig', + 'settings.snippets.page.field.content': 'Inhalt', + 'settings.snippets.page.field.contentPlaceholder': 'Snippet-Markdown...', + 'settings.snippets.page.hint': 'Verwenden Sie #name in Prompts. Unterstützt Aliasse und Voranstellen/Anhängen von Blöcken.', + 'settings.snippets.page.toast.nameRequired': 'Snippet-Name ist erforderlich', + 'settings.snippets.page.toast.contentRequired': 'Snippet-Inhalt ist erforderlich', + 'settings.snippets.page.toast.saveFailed': 'Snippet konnte nicht gespeichert werden', + 'settings.snippets.page.toast.saved': 'Snippet gespeichert', + 'settings.page.promptTemplates.title': 'Prompt-Vorlagen', + 'settings.promptTemplates.sidebar.title': 'Prompt-Vorlagen', + 'settings.promptTemplates.sidebar.total': 'Gesamt: {count}', + 'settings.promptTemplates.sidebar.empty.title': 'Keine Prompt-Vorlagen', + 'settings.promptTemplates.sidebar.empty.description': 'Erstellen Sie eine Prompt-Vorlage, um zu beginnen.', + 'settings.promptTemplates.sidebar.toast.deleted': 'Vorlage "{name}" gelöscht', + 'settings.promptTemplates.sidebar.toast.deleteFailed': 'Vorlage konnte nicht gelöscht werden', + 'settings.promptTemplates.sidebar.toast.nameRequired': 'Vorlagenname ist erforderlich', + 'settings.promptTemplates.sidebar.toast.renamed': 'Vorlage umbenannt', + 'settings.promptTemplates.sidebar.toast.renameFailed': 'Vorlage konnte nicht umbenannt werden', + 'settings.promptTemplates.sidebar.dialog.deleteTitle': 'Vorlage löschen?', + 'settings.promptTemplates.sidebar.dialog.deleteDescription': 'Dadurch wird "{name}" dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.', + 'settings.promptTemplates.sidebar.renameDialog.title': 'Vorlage umbenennen', + 'settings.promptTemplates.sidebar.renameDialog.description': 'Geben Sie einen neuen Namen für "{name}" ein.', + 'settings.promptTemplates.sidebar.renameDialog.placeholder': 'Vorlagenname', + 'settings.promptTemplates.sidebar.badge.default': 'Standard', + 'settings.promptTemplates.page.empty.title': 'Vorlage auswählen', + 'settings.promptTemplates.page.empty.description': 'Wählen Sie eine Vorlage aus der Seitenleiste, um sie zu bearbeiten.', + 'settings.promptTemplates.page.title.new': 'Neue Vorlage', + 'settings.promptTemplates.page.subtitle.edit': 'Vorlage bearbeiten', + 'settings.promptTemplates.page.subtitle.new': 'Neue Prompt-Vorlage erstellen', + 'settings.promptTemplates.page.section.identity': 'Identität', + 'settings.promptTemplates.page.field.name': 'Name', + 'settings.promptTemplates.page.field.namePlaceholder': 'Vorlagenname', + 'settings.promptTemplates.page.section.template': 'Vorlage', + 'settings.promptTemplates.page.field.templatePlaceholder': 'Prompt-Vorlagentext eingeben...', + 'settings.promptTemplates.page.templateHint': 'Dieser Text wird dem Prompt des Benutzers vorangestellt, wenn er in einer Multi-Run-Gruppe ausgewählt wird.', + 'settings.promptTemplates.page.toast.nameRequired': 'Vorlagenname ist erforderlich', + 'settings.promptTemplates.page.toast.updated': 'Vorlage aktualisiert', + 'settings.promptTemplates.page.toast.updateFailed': 'Vorlage konnte nicht aktualisiert werden', + 'settings.promptTemplates.page.toast.created': 'Vorlage erstellt', + 'settings.promptTemplates.page.toast.createFailed': 'Vorlage konnte nicht erstellt werden', + 'settings.promptTemplates.page.toast.saveUnexpectedError': 'Beim Speichern ist ein unerwarteter Fehler aufgetreten', + 'settings.openchamber.tunnel.title': 'Remote-Tunnel', + 'settings.openchamber.tunnel.description': 'Sicheren Remote-Zugriff konfigurieren.', + 'settings.openchamber.tunnel.note.serverSideEnforced': 'Sicherer Tunnel-Zugriff wird serverseitig erzwungen.', + 'settings.openchamber.tunnel.note.connectLinksOneTime': 'Verbindungslinks sind einmalig.', + 'settings.openchamber.tunnel.note.cloudflareConnectorTarget': 'Cloudflare-Connector-Ziel:', + 'settings.openchamber.tunnel.note.cloudflareConnectorTargetUse': 'Als Cloudflare-Connector-Ziel verwenden Sie', + 'settings.openchamber.tunnel.note.tokensSavedPerTunnel': 'Tokens werden pro Tunnel gespeichert.', + 'settings.openchamber.tunnel.note.customConfigUsed': 'Eine benutzerdefinierte Konfigurationsdatei wird verwendet.', + 'settings.openchamber.tunnel.note.defaultConfigUsed': 'Wenn leer, verwendet cloudflared seine Standardkonfiguration.', + 'settings.openchamber.tunnel.note.managedRemoteRequiresDomain': 'Verwaltete Remote-Tunnel erfordern eine Domain.', + 'settings.openchamber.tunnel.note.managedLocalUsesConfig': 'Verwaltete lokale Tunnel verwenden Ihre cloudflared-Konfiguration.', + 'settings.openchamber.tunnel.note.startModeAndGenerateLink': 'Einen {mode}-Tunnel starten und einen einmaligen Verbindungslink generieren.', + 'settings.openchamber.tunnel.note.scanQrToConnect': 'Scannen Sie mit Ihrem Smartphone, um eine Verbindung herzustellen.', + 'settings.openchamber.tunnel.section.redeemedAccessLinks': 'Eingelöste Zugriffslinks', + 'settings.openchamber.tunnel.section.savedManagedRemoteTunnels': 'Gespeicherte verwaltete Remote-Tunnel', + 'settings.openchamber.tunnel.notAvailable.cloudflaredNotFound': 'cloudflared nicht gefunden', + 'settings.openchamber.tunnel.notAvailable.dependencyNotFound': '{dependency} wurde nicht gefunden.', + 'settings.openchamber.tunnel.notAvailable.installHint': 'Installieren Sie es, um Remote-Tunnelzugriff zu aktivieren:', + 'settings.openchamber.tunnel.field.provider': 'Anbieter', + 'settings.openchamber.tunnel.field.providerPlaceholder': 'Anbieter auswählen', + 'settings.openchamber.tunnel.field.tunnelType': 'Tunneltyp', + 'settings.openchamber.tunnel.field.connectLinkTtl': 'Verbindungslink-TTL', + 'settings.openchamber.tunnel.field.tunnelSessionTtl': 'Tunnel-Sitzungs-TTL', + 'settings.openchamber.tunnel.field.hostnameLabel': 'Hostname:', + 'settings.openchamber.tunnel.field.savedTokenAvailablePlaceholder': 'Gespeicherter Token verfügbar (optional ersetzen)', + 'settings.openchamber.tunnel.field.pasteTokenPlaceholder': 'Token für diesen Tunnel einfügen', + 'settings.openchamber.tunnel.field.newPresetNamePlaceholder': 'Tunnelname (z. B. Produktion)', + 'settings.openchamber.tunnel.field.newPresetHostnamePlaceholder': 'Hostname (z. B. oc.example.com)', + 'settings.openchamber.tunnel.field.newPresetTokenPlaceholder': 'Token', + 'settings.openchamber.tunnel.field.managedRemoteTokenInfoAria': 'Token-Info für verwalteten Remote-Tunnel', + 'settings.openchamber.tunnel.field.configurationFile': 'Konfigurationsdatei', + 'settings.openchamber.tunnel.field.configurationFilePlaceholder': 'Standard-cloudflared-Konfiguration wird verwendet', + 'settings.openchamber.tunnel.field.managedRemoteTunnelToConnect': 'Verwalteter Remote-Tunnel zur Verbindung', + 'settings.openchamber.tunnel.field.selectSavedTunnelPlaceholder': 'Gespeicherten Tunnel auswählen', + 'settings.openchamber.tunnel.field.publicUrlHint': 'Public URL', + 'settings.openchamber.tunnel.field.connectLink': 'Verbindungslink', + 'settings.openchamber.tunnel.field.expires': 'Läuft ab', + 'settings.openchamber.tunnel.field.connectQrAlt': 'Tunnel-Verbindungs-QR-Code', + 'settings.openchamber.tunnel.actions.removePresetAria': '{name} entfernen', + 'settings.openchamber.tunnel.actions.saveToken': 'Token speichern', + 'settings.openchamber.tunnel.actions.browseConfigFileAria': 'Konfigurationsdatei durchsuchen', + 'settings.openchamber.tunnel.actions.clearConfigFileAria': 'Konfigurationsdatei leeren', + 'settings.openchamber.tunnel.actions.openManagedRemoteDocs': 'Dokumentation aufrufen', + 'settings.openchamber.tunnel.actions.openManagedLocalDocs': 'Dokumentation aufrufen', + 'settings.openchamber.tunnel.actions.startTunnel': 'Tunnel starten', + 'settings.openchamber.tunnel.actions.startingTunnel': 'Tunnel wird gestartet...', + 'settings.openchamber.tunnel.actions.stopTunnel': 'Tunnel stoppen', + 'settings.openchamber.tunnel.actions.stopping': 'Wird gestoppt...', + 'settings.openchamber.tunnel.actions.newConnectLink': 'Neuer Verbindungslink', + 'settings.openchamber.tunnel.actions.copied': 'Kopiert', + 'settings.openchamber.tunnel.actions.retry': 'Wiederholen', + 'settings.openchamber.tunnel.option.moreProvidersSoon': 'Weitere Anbieter folgen bald', + 'settings.openchamber.tunnel.option.mode.quick.label': 'Schnell', + 'settings.openchamber.tunnel.option.mode.quick.tooltip': 'Quick Tunnel ohne Verfügbarkeitsgarantie.', + 'settings.openchamber.tunnel.option.mode.managedRemote.label': 'Verwaltetes Remote', + 'settings.openchamber.tunnel.option.mode.managedRemote.tooltip': 'Verwendet Ihr Cloudflare-Konto für dauerhaften Zugriff.', + 'settings.openchamber.tunnel.option.mode.managedLocal.label': 'Verwaltetes Lokal', + 'settings.openchamber.tunnel.option.mode.managedLocal.tooltip': 'Verwendet Ihre lokale cloudflared-Konfigurationsdatei.', + 'settings.openchamber.tunnel.warning.quickModeReliability': 'Für zuverlässigeren Zugriff wechseln Sie zu "Verwaltetes Remote" oder "Verwaltetes Lokal".', + 'settings.openchamber.tunnel.warning.replacesActiveTunnel': 'Das Starten ersetzt den aktiven Tunnel.', + 'settings.openchamber.tunnel.badge.quick': 'SCHNELL', + 'settings.openchamber.tunnel.badge.remote': 'REMOTE', + 'settings.openchamber.tunnel.badge.local': 'LOKAL', + 'settings.openchamber.tunnel.state.loading': 'Wird geladen', + 'settings.openchamber.tunnel.state.expired': 'Abgelaufen', + 'settings.openchamber.tunnel.state.revoked': 'Widerrufen', + 'settings.openchamber.tunnel.state.inactive': 'Inaktiv', + 'settings.openchamber.tunnel.state.noExpiry': 'Kein Ablaufdatum', + 'settings.openchamber.tunnel.state.never': 'Nie', + 'settings.openchamber.tunnel.state.tunnelReady': 'Tunnel bereit', + 'settings.openchamber.tunnel.session.redeemedAt': 'Eingelöst {time}', + 'settings.openchamber.tunnel.session.expiresIn': 'Läuft ab in {remaining}', + 'settings.openchamber.tunnel.session.inactiveWithReason': 'Inaktiv ({reason})', + 'settings.openchamber.tunnel.error.invalidConfigExtension': 'Konfigurationsdatei muss .yml, .yaml oder .json verwenden.', + 'settings.openchamber.tunnel.tooltip.tokensSavedPath': 'Tokens werden unter ~/.config/openchamber/cloudflare-managed-remote-tunnels.json gespeichert.', + 'settings.openchamber.tunnel.empty.noManagedRemoteTunnels': 'Noch keine verwalteten Remote-Tunnel gespeichert.', + 'settings.openchamber.tunnel.toast.checkAvailabilityFailed': 'Tunnel-Verfügbarkeit konnte nicht geprüft werden', + 'settings.openchamber.tunnel.toast.saveSettingsFailed': 'Tunnel-Einstellungen konnten nicht gespeichert werden', + 'settings.openchamber.tunnel.toast.saveTtlFailed': 'Tunnel-TTL-Einstellungen konnten nicht gespeichert werden', + 'settings.openchamber.tunnel.toast.saveTokenFailed': 'Token konnte nicht gespeichert werden', + 'settings.openchamber.tunnel.toast.selectOrAddManagedRemoteFirst': 'Wählen oder fügen Sie zuerst einen verwalteten Remote-Tunnel hinzu', + 'settings.openchamber.tunnel.toast.managedRemoteTokenRequiredBeforeStarting': 'Token ist vor dem Start erforderlich', + 'settings.openchamber.tunnel.toast.addManagedRemoteTokenBeforeStarting': 'Fügen Sie vor dem Start einen Token hinzu', + 'settings.openchamber.tunnel.toast.startFailed': 'Tunnel konnte nicht gestartet werden', + 'settings.openchamber.tunnel.toast.startedButNoPublicUrl': 'Tunnel gestartet, aber keine Public URL zurückgegeben', + 'settings.openchamber.tunnel.toast.replacedTunnelSingleSingle': 'Vorherigen Tunnel ersetzt: 1 Link widerrufen, 1 Sitzung ungültig.', + 'settings.openchamber.tunnel.toast.replacedTunnelSingleManySessions': 'Vorherigen Tunnel ersetzt: 1 Link widerrufen, {invalidatedSessionCount} Sitzungen ungültig.', + 'settings.openchamber.tunnel.toast.replacedTunnelManyLinksSingleSession': 'Vorherigen Tunnel ersetzt: {revokedBootstrapCount} Links widerrufen, 1 Sitzung ungültig.', + 'settings.openchamber.tunnel.toast.replacedTunnelManyMany': 'Vorherigen Tunnel ersetzt: {revokedBootstrapCount} Links widerrufen, {invalidatedSessionCount} Sitzungen ungültig.', + 'settings.openchamber.tunnel.toast.linkReady': 'Tunnel-Link bereit', + 'settings.openchamber.tunnel.toast.stopped': 'Tunnel gestoppt', + 'settings.openchamber.tunnel.toast.stopFailed': 'Tunnel konnte nicht gestoppt werden', + 'settings.openchamber.tunnel.toast.connectLinkCopied': 'Verbindungslink kopiert', + 'settings.openchamber.tunnel.toast.copyUrlFailed': 'URL konnte nicht kopiert werden', + 'settings.openchamber.tunnel.toast.saveSelectedManagedRemoteFailed': 'Ausgewählter Tunnel konnte nicht gespeichert werden', + 'settings.openchamber.tunnel.toast.tunnelNameRequired': 'Tunnelname ist erforderlich', + 'settings.openchamber.tunnel.toast.managedRemoteHostnameRequired': 'Hostname ist erforderlich', + 'settings.openchamber.tunnel.toast.managedRemoteTokenRequired': 'Token ist erforderlich', + 'settings.openchamber.tunnel.toast.hostnameAlreadyExists': 'Dieser Hostname existiert bereits', + 'settings.openchamber.tunnel.toast.managedRemoteSaved': 'Verwalteter Remote-Tunnel gespeichert', + 'settings.openchamber.tunnel.toast.managedRemoteRemoved': 'Verwalteter Remote-Tunnel entfernt', + 'settings.magicPrompts.sidebar.title': 'Magic Prompts', + 'settings.magicPrompts.sidebar.description': 'Eine Prompt-Vorlage zum Bearbeiten auswählen.', + 'settings.magicPrompts.sidebar.group.git': 'Git', + 'settings.magicPrompts.sidebar.group.github': 'GitHub', + 'settings.magicPrompts.sidebar.group.planning': 'Planung', + 'settings.magicPrompts.sidebar.group.session': 'Sitzung', + 'settings.magicPrompts.sidebar.item.gitCommitGenerate': 'Commit-Generierung', + 'settings.magicPrompts.sidebar.item.gitPrGenerate': 'PR-Generierung', + 'settings.magicPrompts.sidebar.item.gitConflictResolve': 'Merge/Rebase-Konfliktauflösung', + 'settings.magicPrompts.sidebar.item.gitCherrypickConflictResolve': 'Cherry-pick-Konfliktauflösung', + 'settings.magicPrompts.sidebar.item.githubPrReview': 'PR-Review', + 'settings.magicPrompts.sidebar.item.githubIssueReview': 'Issue-Review', + 'settings.magicPrompts.sidebar.item.githubPrFailedChecksReview': 'PR-Review fehlgeschlagener Prüfungen', + 'settings.magicPrompts.sidebar.item.githubPrCommentsReview': 'PR-Kommentar-Review', + 'settings.magicPrompts.sidebar.item.githubSinglePrCommentReview': 'Einzelner PR-Kommentar-Review', + 'settings.magicPrompts.sidebar.item.planTodo': 'Aufgabenplanung', + 'settings.magicPrompts.sidebar.item.planImprove': 'Plan verbessern', + 'settings.magicPrompts.sidebar.item.planImplement': 'Plan umsetzen', + 'settings.magicPrompts.sidebar.item.sessionSummary': 'Sitzungszusammenfassung', + 'settings.magicPrompts.sidebar.item.sessionWorkspaceReview': 'Workspace-Review', + 'settings.magicPrompts.sidebar.item.sessionExplore': 'Codebase-Tour', + 'settings.magicPrompts.sidebar.item.sessionFeaturePlan': 'Feature-Planung', + 'settings.magicPrompts.sidebar.item.sessionCraftGoal': 'Zielformulierung', + 'settings.magicPrompts.page.group.sessionCraftGoal.title': 'Zielformulierung', + 'settings.magicPrompts.page.group.sessionCraftGoal.description': 'Prompts, die vom /craft-goal-Slash-Befehl verwendet werden: sichtbare Benutzermitteilung + versteckte Anweisungen. Wandelt eine Idee oder Aufgabe in ein klares, belegbares Ziel durch geführte Entdeckung um.', + 'settings.magicPrompts.sidebar.item.sessionCatchUp': 'Nachholen', + 'settings.magicPrompts.sidebar.item.sessionDebug': 'Fehlersuche', + 'settings.magicPrompts.sidebar.item.sessionWeigh': 'Gewichtungsoptionen', + 'settings.magicPrompts.sidebar.item.sessionFusion': 'Fusion', + 'settings.remoteInstances.sidebar.title': 'Remote-Instanzen', + 'settings.remoteInstances.sidebar.total': 'Gesamt {count}', + 'settings.remoteInstances.sidebar.newSshInstanceName': 'Neue SSH-Verbindung', + 'settings.remoteInstances.sidebar.actions.addSshInstance': 'SSH-Verbindung hinzufügen', + 'settings.remoteInstances.sidebar.actions.connect': 'Verbinden', + 'settings.remoteInstances.sidebar.actions.disconnect': 'Trennen', + 'settings.remoteInstances.sidebar.actions.retry': 'Wiederholen', + 'settings.remoteInstances.sidebar.actions.remove': 'Entfernen', + 'settings.remoteInstances.sidebar.confirm.localPortInUseRetry': 'Lokaler Port ist belegt. Zufälligen Port wählen und erneut versuchen?', + 'settings.remoteInstances.sidebar.toast.createFailed': 'SSH-Verbindung konnte nicht erstellt werden', + 'settings.remoteInstances.sidebar.toast.retriedWithRandomPort': 'Mit zufälligem lokalem Port erneut versucht', + 'settings.remoteInstances.sidebar.toast.connectFailed': 'Instanz konnte nicht verbunden werden', + 'settings.remoteInstances.sidebar.toast.disconnectFailed': 'Instanz konnte nicht getrennt werden', + 'settings.remoteInstances.sidebar.toast.retryFailed': 'Verbindungswiederholung fehlgeschlagen', + 'settings.remoteInstances.sidebar.toast.removeFailed': 'Instanz konnte nicht entfernt werden', + 'settings.remoteInstances.direct.sidebarTitle': 'Server-Links', + 'settings.remoteInstances.direct.sidebarDescription': 'Mit einem Link oder Token verbinden', + 'settings.remoteInstances.direct.title': 'Andere OpenChamber-Server', + 'settings.remoteInstances.direct.description': 'Server, zu denen diese App wechseln kann. Importiere einen Verbindungslink vom anderen Server oder füge einen per Adresse hinzu.', + 'settings.remoteInstances.direct.addDialog.description': 'Füge einen weiteren OpenChamber-Server per URL hinzu. Verwende dies, wenn der Server bereits läuft und du über einen Verbindungstoken verfügst.', + 'settings.remoteInstances.direct.field.labelPlaceholder': 'Bezeichnung (optional)', + 'settings.remoteInstances.direct.field.urlPlaceholder': 'https://host:port', + 'settings.remoteInstances.direct.field.tokenPlaceholder': 'Verbindungstoken (optional für vertrauenswürdige lokale Server)', + 'settings.remoteInstances.direct.note': 'Verbindungstoken werden auf diesem Gerät gespeichert und nur verwendet, wenn diese App eine Verbindung zu diesem Server herstellt.', + 'settings.remoteInstances.direct.headers.title': 'Zusätzliche Header', + 'settings.remoteInstances.direct.headers.description': 'Optionale HTTP-Header für Desktop-API-Anfragen. Autorisierung ist für den Verbindungstoken reserviert.', + 'settings.remoteInstances.direct.headers.field.namePlaceholder': 'Header-Name', + 'settings.remoteInstances.direct.headers.field.valuePlaceholder': 'Header-Wert', + 'settings.remoteInstances.direct.headers.actions.add': 'Header hinzufügen', + 'settings.remoteInstances.direct.headers.removeAria': 'Header entfernen', + 'settings.remoteInstances.direct.actions.add': 'Server hinzufügen', + 'settings.remoteInstances.direct.import.description': 'Füge einen Verbindungslink von einem anderen OpenChamber-Server ein.', + 'settings.remoteInstances.direct.import.placeholder': 'openchamber://connect?...', + 'settings.remoteInstances.direct.import.action': 'Link importieren', + 'settings.remoteInstances.direct.error.invalidConnectLink': 'Ungültiger OpenChamber-Verbindungslink.', + 'settings.remoteInstances.direct.state.loading': 'Instanzen werden geladen...', + 'settings.remoteInstances.direct.state.empty': 'Noch keine anderen Server hinzugefügt.', + 'settings.remoteInstances.clientAuth.title': 'Mit diesem Server verbinden', + 'settings.remoteInstances.clientAuth.description': 'Erstelle einen sicheren Link oder Token, damit OpenChamber Desktop eine Verbindung zu diesem Server herstellen kann.', + 'settings.remoteInstances.clientAuth.field.labelPlaceholder': 'Gerätename — z. B. Mein iPhone', + 'settings.remoteInstances.clientAuth.actions.create': 'Token erstellen', + 'settings.remoteInstances.clientAuth.actions.pair': 'Link erstellen', + 'settings.remoteInstances.clientAuth.actions.revoke': 'Widerrufen', + 'settings.remoteInstances.clientAuth.actions.clearRevoked': 'Widerrufene löschen', + 'settings.remoteInstances.clientAuth.qrAlt': 'OpenChamber-Verbindungs-QR-Code', + 'settings.remoteInstances.clientAuth.qrEnlarge': 'QR-Code vergrößern', + 'settings.remoteInstances.clientAuth.qrScanHint': 'Scanne diesen mit der OpenChamber-App auf deinem anderen Gerät. Er ist einmalig und läuft ab.', + 'settings.remoteInstances.clientAuth.qrDialogTitle': 'Zum Verbinden scannen', + 'settings.remoteInstances.clientAuth.actions.addDevice': 'Gerät hinzufügen', + 'settings.remoteInstances.clientAuth.actions.copied': 'Kopiert', + 'settings.remoteInstances.clientAuth.addDevice.transportLabel': 'Wo wirst du dieses Gerät verwenden?', + 'settings.remoteInstances.clientAuth.addDevice.subtitle': 'Erstelle einen Einmal-QR-Code, der ein weiteres Gerät mit diesem Server verbindet.', + 'settings.remoteInstances.clientAuth.addDevice.transport.local': 'Nur diesen Computer', + 'settings.remoteInstances.clientAuth.addDevice.transport.localHint': 'Für Apps, die auf derselben Maschine laufen.', + 'settings.remoteInstances.clientAuth.addDevice.transport.lan': 'Nur Heimnetzwerk', + 'settings.remoteInstances.clientAuth.addDevice.transport.lanHint': 'Verbindet direkt über dein Wi-Fi. Funktioniert nicht außerhalb dieses Netzwerks.', + 'settings.remoteInstances.clientAuth.addDevice.transport.relay': 'Überall', + 'settings.remoteInstances.clientAuth.addDevice.transport.relayHint': 'Funktioniert zu Hause und unterwegs. Verkehr außerhalb des Heimnetzwerks geht über OpenChamber Private Relay — einen Ende-zu-Ende-verschlüsselten Tunnel. Keine Einrichtung nötig.', + 'settings.remoteInstances.clientAuth.addDevice.fallback.relay': 'Verschlüsselte Relay-Verbindung auch außerhalb des Heimnetzwerks erlauben', + 'settings.remoteInstances.clientAuth.addDevice.fallback.preferLocal': 'Direkte Heimverbindung vorziehen, wenn verfügbar', + 'settings.remoteInstances.clientAuth.addDevice.create': 'QR-Code erstellen', + 'settings.remoteInstances.clientAuth.addDevice.done': 'Fertig', + 'settings.remoteInstances.clientAuth.addDevice.connectedToast': 'Gerät verbunden.', + 'settings.remoteInstances.clientAuth.pairingUrl': 'Verbindungslink', + 'settings.remoteInstances.clientAuth.createdToken': 'Kopieren Sie jetzt diesen Token. Aus Sicherheitsgründen wird er nicht erneut angezeigt.', + 'settings.remoteInstances.clientAuth.state.loading': 'Tokens werden geladen...', + 'settings.remoteInstances.clientAuth.state.empty': 'Noch keine Geräte verbunden.', + 'settings.remoteInstances.clientAuth.state.revoked': 'Widerrufen', + 'settings.remoteInstances.clientAuth.state.thisDevice': 'Dieses Gerät', + 'settings.remoteInstances.clientAuth.state.pending': 'Warten auf Verbindung…', + 'settings.remoteInstances.clientAuth.state.viaRelay': 'Relay', + 'settings.remoteInstances.clientAuth.state.connectedDirect': 'Verbunden · Lokales Netzwerk', + 'settings.remoteInstances.clientAuth.state.connectedRelay': 'Verbunden · Relay', + 'settings.remoteInstances.clientAuth.lastUsed': 'Zuletzt verwendet {date}', + 'settings.remoteInstances.clientAuth.neverUsed': 'Nie verwendet', + 'settings.remoteInstances.relay.title': 'OpenChamber Relay', + 'settings.remoteInstances.relay.autoHint': 'Schaltet automatisch ein, wenn Sie ein Gerät über das Relay koppeln.', + 'settings.remoteInstances.relay.description': 'Lassen Sie Ihre anderen Geräte von überall aus verbinden, ohne Ports zu öffnen. Der Datenverkehr ist Ende-zu-Ende verschlüsselt – der Relay kann ihn nicht lesen.', + 'settings.remoteInstances.relay.enableHint': 'Es wird nichts geteilt, bis Sie den Relay auf diesem Server aktivieren.', + 'settings.remoteInstances.relay.actions.enable': 'Relay aktivieren', + 'settings.remoteInstances.relay.actions.disable': 'Deaktivieren', + 'settings.remoteInstances.relay.confirm.disable': 'Relay deaktivieren? Geräte, die über ihn verbunden sind, werden sofort getrennt.', + 'settings.remoteInstances.relay.state.loading': 'Relay-Status wird überprüft...', + 'settings.remoteInstances.relay.state.disabled': 'Deaktiviert', + 'settings.remoteInstances.relay.state.connecting': 'Verbindung herstellen', + 'settings.remoteInstances.relay.state.connected': 'Verbunden', + 'settings.remoteInstances.relay.state.reconnecting': 'Erneut verbinden', + 'settings.remoteInstances.relay.state.error': 'Fehler', + 'settings.remoteInstances.relay.status.clientsOne': '{count} Gerät verbunden', + 'settings.remoteInstances.relay.status.clientsMany': '{count} Geräte verbunden', + 'settings.remoteInstances.relay.pair.title': 'Gerät koppeln', + 'settings.remoteInstances.relay.pair.labelPlaceholder': 'Gerätename (optional)', + 'settings.remoteInstances.relay.pair.includeToken': 'Zugriffstoken einbinden (Ein-Scan-Kopplung)', + 'settings.remoteInstances.relay.pair.noTokenHint': 'Ohne Token meldet sich das Gerät mit dem UI-Kennwort dieses Servers an, nachdem es verbunden ist.', + 'settings.remoteInstances.relay.pair.generate': 'Kopplungslink erstellen', + 'settings.remoteInstances.relay.pair.requiresConnected': 'Kopplung wird verfügbar, sobald der Relay verbunden ist.', + 'settings.remoteInstances.relay.pair.linkLabel': 'Kopplungslink', + 'settings.remoteInstances.relay.pair.warning': 'Dieser Link gewährt Zugriff auf diesen Server. Teile ihn nicht.', + 'settings.remoteInstances.relay.pair.qrAlt': 'Relay-Kopplungs-QR-Code', + 'settings.remoteInstances.relay.pair.showQr': 'QR-Code anzeigen', + 'settings.remoteInstances.relay.pair.qrDialogTitle': 'Zum Koppeln scannen', + 'settings.remoteInstances.relay.pair.qrDialogDescription': 'Scanne diesen QR-Code mit der OpenChamber-App auf deinem anderen Gerät.', + 'settings.remoteInstances.relay.pair.manageHint': 'Verwalte oder widerrufe gekoppelte Geräte in der Liste „Mit diesem Server verbinden“ oben.', + 'settings.remoteInstances.relay.toast.enableFailed': 'Aktivierung des Relays fehlgeschlagen', + 'settings.remoteInstances.relay.toast.disableFailed': 'Deaktivierung des Relays fehlgeschlagen', + 'settings.remoteInstances.relay.toast.offerFailed': 'Erstellung des Kopplungslinks fehlgeschlagen', + 'settings.remoteInstances.relay.toast.linkCopied': 'Kopplungslink kopiert', + 'settings.remoteInstances.sidebar.phase.ready': 'Bereit', + 'settings.remoteInstances.sidebar.phase.error': 'Fehler', + 'settings.remoteInstances.sidebar.phase.reconnect': 'Wiederverbinden', + 'settings.remoteInstances.sidebar.phase.installing': 'Wird installiert', + 'settings.remoteInstances.sidebar.phase.updating': 'Wird aktualisiert', + 'settings.remoteInstances.sidebar.phase.forwarding': 'Weiterleitung aktiv', + 'settings.remoteInstances.sidebar.phase.starting': 'Wird gestartet', + 'settings.remoteInstances.sidebar.phase.connecting': 'Verbindung wird hergestellt', + 'settings.remoteInstances.sidebar.phase.idle': 'Leerlauf', + 'settings.remoteInstances.page.section.instance': 'Instanz', + 'settings.remoteInstances.page.section.instanceDescription': 'SSH-Befehl und Anzeigename für diese Verbindung wählen.', + 'settings.remoteInstances.page.field.mode': 'Modus', + 'settings.remoteInstances.page.field.modeHint': 'Wählen Sie, ob OpenChamber den Server starten soll oder ob Sie sich zu einem laufenden verbinden.', + 'settings.remoteInstances.page.field.modePlaceholder': 'Modus auswählen', + 'settings.remoteInstances.page.field.modeManaged': 'Für mich starten', + 'settings.remoteInstances.page.field.modeExternal': 'Läuft bereits', + 'settings.remoteInstances.page.field.preferredRemotePort': 'Bevorzugter Remote-Port', + 'settings.remoteInstances.page.field.preferredRemotePortHint': 'Leer lassen für automatische Auswahl.', + 'settings.remoteInstances.page.field.keepServerRunning': 'Server am Laufen halten', + 'settings.remoteInstances.page.field.keepServerRunningHint': 'OpenChamber auf der Remote-Maschine weiterlaufen lassen nach Verbindungstrennung.', + 'settings.remoteInstances.page.field.bindHost': 'Bind-Host', + 'settings.remoteInstances.page.field.bindHostHint': 'Verwenden Sie 127.0.0.1 oder localhost, es sei denn, Sie benötigen LAN-Zugriff.', + 'settings.remoteInstances.page.field.preferredLocalPort': 'Bevorzugter lokaler Port', + 'settings.remoteInstances.page.field.preferredLocalPortHint': 'Leer lassen für automatische Auswahl.', + 'settings.remoteInstances.page.field.forwardType': 'Weiterleitungstyp', + 'settings.remoteInstances.page.field.localHostPlaceholder': '127.0.0.1', + 'settings.remoteInstances.page.field.remoteHostPlaceholder': '127.0.0.1', + 'settings.remoteInstances.page.field.auto': 'Automatisch', + 'settings.remoteInstances.page.confirm.bindAllInterfaces': 'Das Binden an 0.0.0.0 macht Ports für Ihr lokales Netzwerk sichtbar. Fortfahren?', + 'settings.remoteInstances.page.preview.localSocks5': '(lokales SOCKS5)', + 'settings.remoteInstances.page.preview.local': '(lokal)', + 'settings.remoteInstances.page.preview.remote': '(remote)', + 'settings.remoteInstances.page.toast.openLocalEndpointFailed': 'Lokale Adresse konnte nicht geöffnet werden', + 'settings.remoteInstances.page.toast.localUrlCopied': 'Lokale URL kopiert', + 'settings.remoteInstances.page.actions.copyLocalUrl': 'Lokale URL kopieren', + 'settings.remoteInstances.page.actions.open': 'Öffnen', + 'settings.remoteInstances.page.logsDialog.selectedInstanceFallback': 'Ausgewählte Instanz', + 'settings.remoteInstances.page.patternDialog.descriptionWithHost': '{host} erfordert ein konkretes Ziel.', + 'settings.remoteInstances.page.patternDialog.description': 'Ziel eingeben.', + 'settings.common.actions.cancel': 'Abbrechen', + 'settings.common.actions.create': 'Erstellen', + 'settings.common.actions.delete': 'Löschen', + 'settings.common.actions.reset': 'Zurücksetzen', + 'settings.common.actions.rename': 'Umbenennen', + 'settings.common.actions.duplicate': 'Duplizieren', + 'settings.common.actions.import': 'Importieren', + 'settings.common.actions.copyAll': 'Alles kopieren', + 'settings.common.actions.clear': 'Leeren', + 'settings.common.actions.saving': 'Wird gespeichert...', + 'settings.common.actions.saveChanges': 'Änderungen speichern', + 'settings.common.scope.global': 'Global', + 'settings.common.scope.project': 'Projekt', + 'settings.common.field.description': 'Beschreibung', + 'settings.common.badge.new': 'Neu', + 'settings.common.badge.modified': 'Geändert', + 'settings.common.permission.allow': 'Erlauben', + 'settings.common.permission.ask': 'Fragen', + 'settings.common.permission.deny': 'Ablehnen', + 'settings.common.state.comingSoon': 'Demnächst verfügbar...', + 'settings.projects.actions.title': 'Aktionen', + 'settings.projects.actions.description': 'Projektspezifische Befehle im Header.', + 'settings.projects.actions.validation.fillNameAndCommand': 'Bitte Aktionsname und Befehl ausfüllen.', + 'settings.projects.actions.state.loading': 'Wird geladen...', + 'settings.projects.actions.state.empty': 'Noch keine Aktionen konfiguriert.', + 'settings.projects.actions.state.untitled': 'Unbenannte Aktion', + 'settings.projects.actions.state.noDesktopSshForwards': 'Keine aktivierten lokalen SSH-Weiterleitungen verfügbar.', + 'settings.projects.actions.field.selectIconAria': 'Symbol auswählen', + 'settings.projects.actions.field.iconAria': 'Symbol {icon}', + 'settings.projects.actions.field.actionNamePlaceholder': 'Aktionsname', + 'settings.projects.actions.field.command': 'Befehl', + 'settings.projects.actions.field.commandPlaceholder': 'z. B. bun run lint', + 'settings.projects.actions.field.autoOpenUrl': 'URL automatisch öffnen', + 'settings.projects.actions.field.autoOpenUrlForAria': 'URL für {title} automatisch öffnen', + 'settings.projects.actions.field.autoOpenUrlDescription': 'URL aus der Ausgabe oder benutzerdefinierte URL unten öffnen', + 'settings.projects.actions.field.overrideUrlPlaceholder': 'URL überschreiben (optional)', + 'settings.projects.actions.field.overrideUrlTooltip': 'Wenn dieses Feld ausgefüllt ist, wird die benutzerdefinierte URL verwendet. Wenn leer, öffnet die App die beste URL aus der Ausgabe.', + 'settings.projects.actions.field.desktopSshForward': 'Desktop SSH-Weiterleitung', + 'settings.projects.actions.field.useOutputManualUrl': 'Ausgabe-/manuelle URL verwenden', + 'settings.projects.actions.actions.add': 'Aktion hinzufügen', + 'settings.projects.actions.actions.save': 'Aktionen speichern', + 'settings.projects.actions.toast.saveFailed': 'Aktionen konnten nicht gespeichert werden', + 'settings.projects.actions.toast.saved': 'Projektaktionen gespeichert', + 'settings.openchamber.about.title': 'Über OpenChamber', + 'settings.openchamber.about.field.version': 'Version', + 'settings.openchamber.about.field.openCodeVersion': 'OpenCode-Version', + 'settings.openchamber.about.state.checking': 'Wird geprüft...', + 'settings.openchamber.about.state.upToDate': 'Aktuell', + 'settings.openchamber.about.state.unknown': 'unbekannt', + 'settings.openchamber.about.actions.checkUpdates': 'Updates prüfen', + 'settings.openchamber.about.actions.update': 'Aktualisieren', + 'settings.openchamber.about.actions.updateToVersion': 'Auf {version} aktualisieren', + 'settings.openchamber.about.actions.checkForUpdates': 'Nach Updates suchen', + 'settings.openchamber.about.toast.latestVersion': 'Sie verwenden die neueste Version', + 'settings.agents.sidebar.title': 'Agents', + 'settings.agents.sidebar.total': 'Gesamt {count}', + 'settings.agents.sidebar.empty.title': 'Keine Agents konfiguriert', + 'settings.agents.sidebar.empty.description': 'Verwenden Sie die Schaltfläche + oben, um einen zu erstellen', + 'settings.agents.sidebar.section.builtIn': 'Integrierte Agents', + 'settings.agents.sidebar.section.custom': 'Benutzerdefinierte Agents', + 'settings.agents.sidebar.badge.system': 'system', + 'settings.agents.sidebar.dialog.deleteTitle': 'Agent löschen', + 'settings.agents.sidebar.dialog.resetTitle': 'Agent zurücksetzen', + 'settings.agents.sidebar.dialog.deleteDescription': 'Möchten Sie den Agent "{name}" wirklich löschen?', + 'settings.agents.sidebar.dialog.resetDescription': 'Möchten Sie den Agent "{name}" wirklich auf seine Standardkonfiguration zurücksetzen?', + 'settings.agents.sidebar.renameDialog.title': 'Agent umbenennen', + 'settings.agents.sidebar.renameDialog.description': 'Geben Sie einen neuen Namen für den Agent "@{name}" ein', + 'settings.agents.sidebar.renameDialog.placeholder': 'Neuer Agent-Name...', + 'settings.agents.sidebar.toast.builtInCannotDelete': 'Integrierte Agents können nicht gelöscht werden', + 'settings.agents.sidebar.toast.agentDeleted': 'Agent "{name}" erfolgreich gelöscht', + 'settings.agents.sidebar.toast.agentReset': 'Agent "{name}" auf Standard zurückgesetzt', + 'settings.agents.sidebar.toast.deleteFailed': 'Agent konnte nicht gelöscht werden', + 'settings.agents.sidebar.toast.definitionNotFound': 'Agent-Definition nicht gefunden. Es wurden keine Änderungen vorgenommen.', + 'settings.agents.sidebar.toast.resetFailed': 'Agent konnte nicht zurückgesetzt werden', + 'settings.agents.sidebar.toast.agentNameRequired': 'Agent-Name ist erforderlich', + 'settings.agents.sidebar.toast.agentExists': 'Ein Agent mit diesem Namen existiert bereits', + 'settings.agents.sidebar.toast.removeOldAfterRenameFailed': 'Alter Agent konnte nach Umbenennung nicht entfernt werden', + 'settings.agents.sidebar.toast.renameFailed': 'Agent konnte nicht umbenannt werden', + 'settings.agents.sidebar.toast.agentRenamed': 'Agent umbenannt in "{name}"', + 'settings.agents.page.toast.permissionNameRequired': 'Berechtigungsname ist erforderlich', + 'settings.agents.page.toast.created': 'Agent erfolgreich erstellt', + 'settings.agents.page.toast.updated': 'Agent erfolgreich aktualisiert', + 'settings.agents.page.toast.createFailed': 'Agent konnte nicht erstellt werden', + 'settings.agents.page.toast.updateFailed': 'Agent konnte nicht aktualisiert werden', + 'settings.agents.page.toast.saveUnexpectedError': 'Beim Speichern ist ein Fehler aufgetreten', + 'settings.agents.page.toast.savedManualRestart': 'Auf Datenträger gespeichert. Starten Sie Ihren verbundenen OpenCode-Server neu, um die Änderungen anzuwenden.', + 'settings.agents.page.empty.title': 'Wählen Sie einen Agent aus der Seitenleiste', + 'settings.agents.page.empty.description': 'oder erstellen Sie einen neuen', + 'settings.agents.page.title.new': 'Neuer Agent', + 'settings.agents.page.subtitle.new': 'Neue Assistenten-Persona konfigurieren', + 'settings.agents.page.subtitle.edit': 'Agent-Einstellungen bearbeiten', + 'settings.agents.page.section.identityRole': 'Identität & Rolle', + 'settings.agents.page.section.modelParameters': 'Modell & Parameter', + 'settings.agents.page.section.systemPrompt': 'System-Prompt', + 'settings.agents.page.section.toolPermissions': 'Tool-Berechtigungen', + 'settings.agents.page.field.agentName': 'Agent-Name', + 'settings.agents.page.field.agentNamePlaceholder': 'agent-name', + 'settings.agents.page.field.scopePlaceholder': 'Geltungsbereich', + 'settings.agents.page.field.descriptionPlaceholder': 'Was macht dieser Agent?', + 'settings.agents.page.field.mode': 'Modus', + 'settings.agents.page.field.modeTooltip': 'Sichtbarkeit: Primär vs. Subagent', + 'settings.agents.page.field.overrideModel': 'Modell überschreiben', + 'settings.agents.page.field.temperature': 'Temperatur', + 'settings.agents.page.field.temperatureTooltip': 'Steuert die Zufälligkeit. Höher = kreativ, Niedriger = fokussiert.', + 'settings.agents.page.field.temperatureRange': '0,0 bis 2,0', + 'settings.agents.page.field.clearTemperatureAria': 'Temperatur-Überschreibung zurücksetzen', + 'settings.agents.page.field.topP': 'Top P', + 'settings.agents.page.field.topPTooltip': 'Nucleus-Sampling-Vielfalt. Niedriger = nur wahrscheinliche Token.', + 'settings.agents.page.field.topPRange': '0,0 bis 1,0', + 'settings.agents.page.field.clearTopPAria': 'Top-P-Überschreibung zurücksetzen', + 'settings.agents.page.field.variant': 'Denk-Variante', + 'settings.agents.page.field.variantTooltip': 'Steuert die Denk-/Reasoning-Tiefe für diesen Agent.', + 'settings.agents.page.field.variantHint': 'z. B. high, max, low', + 'settings.agents.page.field.variantPlaceholder': 'Standard', + 'settings.agents.page.field.systemPromptPlaceholder': 'Sie sind ein erfahrener Programmierassistent...', + 'settings.agents.page.mode.primary': 'Primär', + 'settings.agents.page.mode.subagent': 'Subagent', + 'settings.agents.page.mode.all': 'Alle', + 'settings.agents.page.permissions.defaultLabel': 'Standard', + 'settings.agents.page.permissions.hideEditor': 'Editor ausblenden', + 'settings.agents.page.permissions.advancedEditor': 'Erweiterter Editor', + 'settings.agents.page.permissions.globalSummary': 'Global: {summary}', + 'settings.agents.page.permissions.rulesSummary': 'Regeln: {summary}', + 'settings.agents.page.permissions.globalDefault': 'Globaler Standard', + 'settings.agents.page.permissions.pattern': 'Muster', + 'settings.agents.page.permissions.addCustomRule': 'Benutzerdefinierte Regel hinzufügen', + 'settings.agents.page.permissions.permissionPlaceholder': 'Berechtigung...', + 'settings.agents.page.permissions.patternPlaceholder': 'Muster (z. B. *)', + 'settings.page.behavior.title': 'Verhalten', + 'settings.behavior.page.title': 'Verhalten', + 'settings.behavior.page.warning.title': 'Globale Regeln werden mit Projektregeln kombiniert', + 'settings.behavior.page.warning.description': 'Hier vorgenommene Änderungen aktualisieren {path}. OpenCode berücksichtigt auch alle AGENTS.md-Regeln auf Projektebene, sofern vorhanden.', + 'settings.behavior.page.section.systemPrompt': 'Globale AGENTS.md', + 'settings.behavior.page.field.systemPromptPlaceholder': 'Sie sind ein hilfreicher KI-Assistent... + +Verwenden Sie diesen Bereich, um absolute Regeln für das Verhalten der KI über alle Sitzungen und Anbieter hinweg festzulegen.', + 'settings.behavior.page.section.responseStyle': 'Antwortstil', + 'settings.behavior.page.responseStyle.tooltip': 'Wenn aktiviert, steuern diese Anweisungen, wie der Assistent in jedem neuen Gespräch antwortet.', + 'settings.behavior.page.responseStyle.enableAria': 'Antwortstil-Anweisungen aktivieren', + 'settings.behavior.page.responseStyle.enable': 'Antwortstil-Anweisungen zu neuen Gesprächen hinzufügen', + 'settings.behavior.page.responseStyle.preset': 'Voreinstellung', + 'settings.behavior.page.responseStyle.option.concise': 'Prägnant', + 'settings.behavior.page.responseStyle.option.detailed': 'Detailliert', + 'settings.behavior.page.responseStyle.option.mentor': 'Mentor', + 'settings.behavior.page.responseStyle.option.pushback': 'Kritisch hinterfragen', + 'settings.behavior.page.responseStyle.option.noFiller': 'Ohne Fülltext', + 'settings.behavior.page.responseStyle.option.matchEnergy': 'Meinem Ton anpassen', + 'settings.behavior.page.responseStyle.option.warmPeer': 'Freundlich & kollegial', + 'settings.behavior.page.responseStyle.option.custom': 'Benutzerdefiniert', + 'settings.behavior.page.responseStyle.customPlaceholder': 'Schreiben Sie die Anweisung, die der ersten Nachricht hinzugefügt werden soll...', + 'settings.behavior.page.toast.saved': 'Verhalten erfolgreich gespeichert', + 'settings.behavior.page.toast.saveFailed': 'Verhalten konnte nicht gespeichert werden', + 'settings.commands.sidebar.title': 'Befehle', + 'settings.commands.sidebar.total': 'Gesamt {count}', + 'settings.commands.sidebar.empty.title': 'Keine Befehle konfiguriert', + 'settings.commands.sidebar.empty.description': 'Verwenden Sie die Schaltfläche + oben, um einen zu erstellen', + 'settings.commands.sidebar.section.builtIn': 'Integrierte Befehle', + 'settings.commands.sidebar.section.custom': 'Benutzerdefinierte Befehle', + 'settings.commands.sidebar.dialog.deleteTitle': 'Befehl löschen', + 'settings.commands.sidebar.dialog.resetTitle': 'Befehl zurücksetzen', + 'settings.commands.sidebar.dialog.deleteDescription': 'Möchten Sie den Befehl "{name}" wirklich löschen?', + 'settings.commands.sidebar.dialog.resetDescription': 'Möchten Sie den Befehl "{name}" wirklich auf seine Standardkonfiguration zurücksetzen?', + 'settings.commands.sidebar.renameDialog.title': 'Befehl umbenennen', + 'settings.commands.sidebar.renameDialog.description': 'Geben Sie einen neuen Namen für den Befehl "/{name}" ein', + 'settings.commands.sidebar.renameDialog.placeholder': 'Neuer Befehlsname...', + 'settings.commands.sidebar.toast.builtInCannotDelete': 'Integrierte Befehle können nicht gelöscht werden', + 'settings.commands.sidebar.toast.commandDeleted': 'Befehl "{name}" erfolgreich gelöscht', + 'settings.commands.sidebar.toast.commandReset': 'Befehl "{name}" auf Standard zurückgesetzt', + 'settings.commands.sidebar.toast.deleteFailed': 'Befehl konnte nicht gelöscht werden', + 'settings.commands.sidebar.toast.resetFailed': 'Befehl konnte nicht zurückgesetzt werden', + 'settings.commands.sidebar.toast.commandNameRequired': 'Befehlsname ist erforderlich', + 'settings.commands.sidebar.toast.commandExists': 'Ein Befehl mit diesem Namen existiert bereits', + 'settings.commands.sidebar.toast.removeOldAfterRenameFailed': 'Alter Befehl konnte nach Umbenennung nicht entfernt werden', + 'settings.commands.sidebar.toast.renameFailed': 'Befehl konnte nicht umbenannt werden', + 'settings.commands.page.toast.templateRequired': 'Befehlsvorlage ist erforderlich', + 'settings.commands.page.toast.created': 'Befehl erfolgreich erstellt', + 'settings.commands.page.toast.updated': 'Befehl erfolgreich aktualisiert', + 'settings.commands.page.toast.createFailed': 'Befehl konnte nicht erstellt werden', + 'settings.commands.page.toast.updateFailed': 'Befehl konnte nicht aktualisiert werden', + 'settings.commands.page.toast.saveUnexpectedError': 'Beim Speichern ist ein Fehler aufgetreten', + 'settings.commands.page.empty.title': 'Wählen Sie einen Befehl aus der Seitenleiste', + 'settings.commands.page.empty.description': 'oder erstellen Sie einen neuen', + 'settings.commands.page.title.new': 'Neuer Befehl', + 'settings.commands.page.subtitle.new': 'Neuen Slash-Befehl konfigurieren', + 'settings.commands.page.subtitle.edit': 'Befehlseinstellungen bearbeiten', + 'settings.commands.page.section.identity': 'Identität', + 'settings.commands.page.section.executionContext': 'Ausführungskontext', + 'settings.commands.page.section.template': 'Befehlsvorlage', + 'settings.commands.page.field.commandName': 'Befehlsname', + 'settings.commands.page.field.commandNamePlaceholder': 'befehlsname', + 'settings.commands.page.field.descriptionPlaceholder': 'Was macht dieser Befehl?', + 'settings.commands.page.field.overrideAgent': 'Agent überschreiben', + 'settings.commands.page.field.templatePlaceholder': 'Ihre Befehlsvorlage hier...', + 'settings.commands.page.templateHint.userInput': 'Benutzereingabe', + 'settings.commands.page.templateHint.shellOutput': 'Shell-Ausgabe', + 'settings.commands.page.templateHint.fileContents': 'Dateiinhalt', + 'settings.commands.agentSelector.title': 'Agent auswählen', + 'settings.commands.agentSelector.notSelected': 'Nicht ausgewählt', + 'settings.commands.agentSelector.selectAgentPlaceholder': 'Agent auswählen...', + 'settings.gitIdentities.page.section.title': 'Identitäten', + 'settings.gitIdentities.page.empty.title': 'Keine Identitäten konfiguriert', + 'settings.gitIdentities.page.empty.description': 'Erstellen Sie eine, um Git-Autoreneinstellungen pro Projekt zu verwalten', + 'settings.gitIdentities.page.discoveredCredentials.title': 'Gefunden in ~/.git-credentials', + 'settings.gitIdentities.page.badge.default': 'Standard', + 'settings.gitIdentities.page.actions.setAsDefault': 'Als Standard festlegen', + 'settings.gitIdentities.page.actions.unsetDefault': 'Standard aufheben', + 'settings.gitIdentities.page.actions.import': 'Importieren', + 'settings.gitIdentities.page.toast.updateDefaultFailed': 'Standard-Identität konnte nicht aktualisiert werden', + 'settings.gitIdentities.page.toast.defaultUpdated': 'Standard-Identität aktualisiert', + 'settings.gitIdentities.page.toast.defaultUnset': 'Standard-Identität aufgehoben', + 'settings.gitIdentities.page.toast.profileDeleted': 'Profil "{name}" gelöscht', + 'settings.gitIdentities.page.toast.deleteProfileFailed': 'Profil konnte nicht gelöscht werden', + 'settings.gitIdentities.page.deleteDialog.title': 'Profil löschen', + 'settings.gitIdentities.page.deleteDialog.description': 'Möchten Sie "{name}" wirklich löschen?', + 'settings.gitIdentities.editor.title.importCredential': 'Anmeldedaten importieren', + 'settings.gitIdentities.editor.title.newIdentity': 'Neue Identität', + 'settings.gitIdentities.editor.title.globalIdentity': 'Globale Identität', + 'settings.gitIdentities.editor.title.editIdentity': 'Identität bearbeiten', + 'settings.gitIdentities.editor.description.globalReadOnly': 'Systemweite Git-Identität (schreibgeschützt)', + 'settings.gitIdentities.editor.description.newProfile': 'Neues Git-Identitätsprofil erstellen', + 'settings.gitIdentities.editor.description.editProfile': 'Identitätsprofil-Einstellungen bearbeiten', + 'settings.gitIdentities.editor.section.commitSigning': 'Commit-Signierung', + 'settings.gitIdentities.editor.field.profileName': 'Profilname', + 'settings.gitIdentities.editor.field.profileNamePlaceholder': 'Arbeitsprofil, Privat usw.', + 'settings.gitIdentities.editor.field.color': 'Farbe', + 'settings.gitIdentities.editor.field.icon': 'Icon', + 'settings.gitIdentities.editor.field.userName': 'Benutzername', + 'settings.gitIdentities.editor.field.userNameTooltip': 'Der Name, der in Git-Commit-Nachrichten angezeigt wird.', + 'settings.gitIdentities.editor.field.userNamePlaceholder': 'Max Mustermann', + 'settings.gitIdentities.editor.field.emailAddress': 'E-Mail-Adresse', + 'settings.gitIdentities.editor.field.emailAddressTooltip': 'Sollte Ihrer E-Mail-Adresse in GitHub/GitLab entsprechen.', + 'settings.gitIdentities.editor.field.emailAddressPlaceholder': 'max@beispiel.de', + 'settings.gitIdentities.editor.field.authMethod': 'Authentifizierungsmethode', + 'settings.gitIdentities.editor.field.authToken': 'Token', + 'settings.gitIdentities.editor.field.sshKeyPath': 'SSH-Schlüsselpfad', + 'settings.gitIdentities.editor.field.sshKeyPathTooltip': 'Optionaler Pfad zum privaten Schlüssel. Z. B. ~/.ssh/id_ed25519', + 'settings.gitIdentities.editor.field.sshKeyPathPlaceholder': '~/.ssh/id_ed25519', + 'settings.gitIdentities.editor.field.signCommits': 'Commits mit dieser Identität signieren', + 'settings.gitIdentities.editor.field.signingKey': 'Signierschlüssel', + 'settings.gitIdentities.editor.field.signingKeyPlaceholder': '~/.ssh/id_ed25519.pub', + 'settings.gitIdentities.editor.field.host': 'Host', + 'settings.gitIdentities.editor.field.hostTooltip': 'Das Token wird für diesen Host aus ~/.git-credentials gelesen.', + 'settings.gitIdentities.editor.field.hostPlaceholder': 'github.com', + 'settings.gitIdentities.editor.actions.close': 'Schließen', + 'settings.gitIdentities.editor.actions.create': 'Erstellen', + 'settings.gitIdentities.editor.actions.save': 'Speichern', + 'settings.gitIdentities.editor.toast.userNameEmailRequired': 'Benutzername und E-Mail sind erforderlich', + 'settings.gitIdentities.editor.toast.hostRequiredForToken': 'Host ist für tokenbasierte Authentifizierung erforderlich', + 'settings.gitIdentities.editor.toast.signingKeyRequired': 'Signierschlüssel ist erforderlich, wenn die Commit-Signierung aktiviert ist', + 'settings.gitIdentities.editor.toast.profileCreated': 'Profil erstellt', + 'settings.gitIdentities.editor.toast.profileUpdated': 'Profil aktualisiert', + 'settings.gitIdentities.editor.toast.createProfileFailed': 'Profil konnte nicht erstellt werden', + 'settings.gitIdentities.editor.toast.updateProfileFailed': 'Profil konnte nicht aktualisiert werden', + 'settings.gitIdentities.editor.toast.saveUnexpectedError': 'Beim Speichern ist ein Fehler aufgetreten', + 'settings.gitIdentities.editor.toast.profileDeleted': 'Profil gelöscht', + 'settings.gitIdentities.editor.toast.deleteProfileFailed': 'Profil konnte nicht gelöscht werden', + 'settings.gitIdentities.editor.toast.deleteUnexpectedError': 'Beim Löschen ist ein Fehler aufgetreten', + 'settings.skills.sidebar.title': 'Skills', + 'settings.skills.sidebar.total': 'Gesamt {count}', + 'settings.skills.sidebar.section.project': 'Projekt-Skills', + 'settings.skills.sidebar.section.user': 'Benutzer-Skills', + 'settings.skills.sidebar.empty.title': 'Keine Skills konfiguriert', + 'settings.skills.sidebar.empty.description': 'Verwenden Sie die Schaltfläche + oben, um einen zu erstellen', + 'settings.skills.sidebar.badge.claude': 'claude', + 'settings.skills.sidebar.badge.agents': 'agents', + 'settings.skills.sidebar.badge.opencode': 'opencode', + 'settings.skills.sidebar.toast.skillDeleted': 'Skill "{name}" erfolgreich gelöscht', + 'settings.skills.sidebar.toast.deleteSkillFailed': 'Skill konnte nicht gelöscht werden', + 'settings.skills.sidebar.toast.duplicateLoadFailed': 'Skill-Details für Duplizierung konnten nicht geladen werden', + 'settings.skills.sidebar.toast.renameLoadFailed': 'Skill-Details konnten nicht geladen werden', + 'settings.skills.sidebar.toast.removeOldAfterRenameFailed': 'Alter Skill konnte nach Umbenennung nicht entfernt werden', + 'settings.skills.sidebar.toast.renameFailed': 'Skill konnte nicht umbenannt werden', + 'settings.skills.sidebar.deleteDialog.title': 'Skill löschen', + 'settings.skills.sidebar.deleteDialog.description': 'Möchten Sie den Skill "{name}" wirklich löschen?', + 'settings.skills.sidebar.renameDialog.title': 'Skill umbenennen', + 'settings.skills.sidebar.renameDialog.description': 'Geben Sie einen neuen Namen für den Skill "{name}" ein', + 'settings.skills.sidebar.renameDialog.placeholder': 'Neuer Skill-Name...', + 'settings.skills.page.title.newSkill': 'Neuer Skill', + 'settings.skills.page.subtitle.newSkill': 'Neuen Skill konfigurieren', + 'settings.skills.page.subtitle.skillLocation': '{location} Skill', + 'settings.skills.page.section.basicInformation': 'Grundlegende Informationen', + 'settings.skills.page.section.instructions': 'Anweisungen', + 'settings.skills.page.section.supportingFiles': 'Unterstützende Dateien', + 'settings.skills.page.field.skillNameLocation': 'Skill-Name & Speicherort', + 'settings.skills.page.field.skillNameHint': 'Kleinbuchstaben, Zahlen, Bindestriche', + 'settings.skills.page.field.skillNamePlaceholder': 'skill-name', + 'settings.skills.page.field.descriptionHint': 'Der Agent verwendet dies, um zu entscheiden, wann der Skill geladen wird', + 'settings.skills.page.field.descriptionPlaceholder': 'Kurze Beschreibung, was dieser Skill tut...', + 'settings.skills.page.field.instructionsPlaceholder': 'Schritt-für-Schritt-Anweisungen, Richtlinien oder Referenzinhalte...', + 'settings.skills.page.badge.claudeCompatible': 'Claude-kompatibel', + 'settings.skills.page.badge.pending': 'Ausstehend', + 'settings.skills.page.actions.addFile': 'Datei hinzufügen', + 'settings.skills.page.actions.createSkill': 'Skill erstellen', + 'settings.skills.page.actions.createFile': 'Datei erstellen', + 'settings.skills.page.supportingFiles.empty': 'Keine unterstützenden Dateien. Verwenden Sie "Datei hinzufügen", um Referenzmaterialien einzubinden.', + 'settings.skills.page.loading.details': 'Skill-Details werden geladen...', + 'settings.skills.page.loading.fileContent': 'Dateiinhalt wird geladen...', + 'settings.skills.page.empty.title': 'Wählen Sie einen Skill aus der Seitenleiste', + 'settings.skills.page.empty.description': 'oder erstellen Sie einen neuen', + 'settings.skills.page.deleteFileDialog.title': 'Unterstützende Datei löschen', + 'settings.skills.page.deleteFileDialog.description': 'Möchten Sie "{path}" wirklich löschen?', + 'settings.skills.page.fileDialog.titleEdit': 'Unterstützende Datei bearbeiten', + 'settings.skills.page.fileDialog.titleAdd': 'Unterstützende Datei hinzufügen', + 'settings.skills.page.fileDialog.descriptionEdit': 'Dateiinhalt bearbeiten', + 'settings.skills.page.fileDialog.descriptionAdd': 'Neue Datei im Skill-Verzeichnis erstellen', + 'settings.skills.page.fileDialog.field.filePath': 'Dateipfad', + 'settings.skills.page.fileDialog.field.filePathPlaceholder': 'beispiel.md oder docs/referenz.txt', + 'settings.skills.page.fileDialog.field.filePathHint': 'Relativer Pfad innerhalb des Skill-Verzeichnisses. Unterverzeichnisse werden automatisch erstellt.', + 'settings.skills.page.fileDialog.field.content': 'Inhalt', + 'settings.skills.page.fileDialog.field.contentPlaceholder': 'Dateiinhalt...', + 'settings.skills.page.toast.skillNameRequired': 'Skill-Name ist erforderlich', + 'settings.skills.page.toast.invalidSkillName': 'Der Skill-Name muss 1–64 alphanumerische Kleinbuchstaben mit Bindestrichen enthalten', + 'settings.skills.page.toast.descriptionRequired': 'Beschreibung ist erforderlich', + 'settings.skills.page.toast.skillExists': 'Ein Skill mit diesem Namen existiert bereits', + 'settings.skills.page.toast.skillCreated': 'Skill erfolgreich erstellt', + 'settings.skills.page.toast.skillUpdated': 'Skill erfolgreich aktualisiert', + 'settings.skills.page.toast.createSkillFailed': 'Skill konnte nicht erstellt werden', + 'settings.skills.page.toast.updateSkillFailed': 'Skill konnte nicht aktualisiert werden', + 'settings.skills.page.toast.saveUnexpectedError': 'Beim Speichern ist ein Fehler aufgetreten', + 'settings.skills.page.toast.loadFileContentFailed': 'Dateiinhalt konnte nicht geladen werden', + 'settings.skills.page.toast.fileNameRequired': 'Dateiname ist erforderlich', + 'settings.skills.page.toast.fileExists': 'Eine Datei mit diesem Namen existiert bereits', + 'settings.skills.page.toast.noSkillSelected': 'Kein Skill ausgewählt', + 'settings.skills.page.toast.fileAdded': 'Datei "{path}" hinzugefügt', + 'settings.skills.page.toast.fileCreated': 'Datei "{path}" erstellt', + 'settings.skills.page.toast.fileUpdated': 'Datei "{path}" aktualisiert', + 'settings.skills.page.toast.fileRemoved': 'Datei "{path}" entfernt', + 'settings.skills.page.toast.fileDeleted': 'Datei "{path}" gelöscht', + 'settings.skills.page.toast.createFileFailed': 'Datei konnte nicht erstellt werden', + 'settings.skills.page.toast.updateFileFailed': 'Datei konnte nicht aktualisiert werden', + 'settings.skills.page.toast.deleteFileFailed': 'Datei konnte nicht gelöscht werden', + 'settings.skills.location.option.userOpencode.label': 'Benutzer / OpenCode', + 'settings.skills.location.option.userOpencode.description': 'Globaler OpenCode-Konfigurationsspeicherort', + 'settings.skills.location.option.projectOpencode.label': 'Projekt / OpenCode', + 'settings.skills.location.option.projectOpencode.description': 'Aktuelles Projekt .opencode-Speicherort', + 'settings.skills.location.option.userClaude.label': 'Benutzer / Claude', + 'settings.skills.location.option.userClaude.description': 'Globaler Claude Skills-Speicherort', + 'settings.skills.location.option.projectClaude.label': 'Projekt / Claude', + 'settings.skills.location.option.projectClaude.description': 'Aktuelles Projekt .claude-Speicherort', + 'settings.skills.location.option.userAgents.label': 'Benutzer / Agents', + 'settings.skills.location.option.userAgents.description': 'Globaler .agents-Kompatibilitätsspeicherort', + 'settings.skills.location.option.projectAgents.label': 'Projekt / Agents', + 'settings.skills.location.option.projectAgents.description': 'Aktuelles Projekt .agents-Kompatibilitätsspeicherort', + 'settings.skills.catalog.shared.field.repository': 'Repository', + 'settings.skills.catalog.shared.field.repositoryPlaceholder': 'owner/repo oder git@github.com:owner/repo.git', + 'settings.skills.catalog.shared.field.optionalSubpath': 'Optionaler Unterpfad', + 'settings.skills.catalog.shared.field.subpathPlaceholder': 'z. B. skills', + 'settings.skills.catalog.shared.field.targetLocation': 'Zielspeicherort', + 'settings.skills.catalog.shared.field.project': 'Projekt', + 'settings.skills.catalog.shared.field.noProjects': 'Keine Projekte verfügbar', + 'settings.skills.catalog.shared.field.chooseProjectPlaceholder': 'Projekt auswählen', + 'settings.skills.catalog.shared.field.searchSkillsPlaceholder': 'Skills suchen…', + 'settings.skills.catalog.shared.toast.repositoryRequired': 'Repository-Quelle ist erforderlich', + 'settings.skills.catalog.shared.toast.privateRepoNotSupportedVsCode': 'Private Repositories werden in VS Code noch nicht unterstützt', + 'settings.skills.catalog.shared.toast.foundSkills': '{count} Skill(s) gefunden', + 'settings.skills.catalog.shared.noDescription': 'Keine Beschreibung angegeben', + 'settings.skills.catalog.shared.actions.scan': 'Scannen', + 'settings.skills.catalog.shared.actions.scanning': 'Wird gescannt...', + 'settings.skills.catalog.shared.actions.install': 'Installieren', + 'settings.skills.catalog.shared.actions.installing': 'Wird installiert...', + 'settings.skills.catalog.shared.auth.title': 'Authentifizierung erforderlich', + 'settings.skills.catalog.shared.auth.description': 'Git-Identität auswählen (SSH-Schlüssel)', + 'settings.skills.catalog.shared.auth.chooseIdentity': 'Identität auswählen', + 'settings.skills.catalog.shared.auth.footerHint': 'Konfigurieren Sie Identitäten in Einstellungen - Git-Identitäten.', + 'settings.skills.catalog.shared.auth.footerHintArrow': 'Konfigurieren Sie Identitäten in Einstellungen → Git-Identitäten.', + 'settings.skills.catalog.conflicts.title': 'Fähigkeiten existieren bereits', + 'settings.skills.catalog.conflicts.description': 'Einige ausgewählte Fähigkeiten sind bereits in diesem Bereich installiert. Wählen Sie aus, ob sie übersprungen oder überschrieben werden sollen.', + 'settings.skills.catalog.conflicts.count': '{count} Konflikt(e)', + 'settings.skills.catalog.conflicts.installedIn': 'Installiert in {scope} / {source}', + 'settings.skills.catalog.conflicts.scope.user': 'Benutzer', + 'settings.skills.catalog.conflicts.scope.project': 'Projekt', + 'settings.skills.catalog.conflicts.source.opencode': 'opencode', + 'settings.skills.catalog.conflicts.source.agents': 'Agents', + 'settings.skills.catalog.conflicts.decision.skip': 'Überspringen', + 'settings.skills.catalog.conflicts.decision.overwrite': 'Überschreiben', + 'settings.skills.catalog.conflicts.actions.skipAll': 'Alle überspringen', + 'settings.skills.catalog.conflicts.actions.overwriteAll': 'Alle überschreiben', + 'settings.skills.catalog.conflicts.actions.continue': 'Weiter', + 'settings.skills.catalog.installSkill.title': 'Fähigkeit installieren', + 'settings.skills.catalog.installSkill.descriptionPrefix': 'Installiere', + 'settings.skills.catalog.installSkill.descriptionSuffix': 'in eine der vier Zielorte.', + 'settings.skills.catalog.installSkill.field.destination': 'Zielort', + 'settings.skills.catalog.installSkill.field.project': 'Projekt', + 'settings.skills.catalog.installSkill.field.noProjects': 'Keine Projekte verfügbar', + 'settings.skills.catalog.installSkill.field.chooseProjectPlaceholder': 'Projekt auswählen', + 'settings.skills.catalog.installSkill.actions.install': 'Installieren', + 'settings.skills.catalog.installSkill.actions.installing': 'Wird installiert...', + 'settings.skills.catalog.installSkill.toast.installed': 'Fertigkeit erfolgreich installiert', + 'settings.skills.catalog.installSkill.toast.authRequired': 'Authentifizierung erforderlich', + 'settings.skills.catalog.installSkill.toast.installFailed': 'Fertigkeit konnte nicht installiert werden', + 'settings.skills.catalog.add.title': 'Fertigkeiten-Katalog hinzufügen', + 'settings.skills.catalog.add.descriptionPrefix': 'Füge ein Git-Repository als neue Katalogquelle hinzu. OpenChamber durchsucht es nach Ordnern, die folgende enthalten', + 'settings.skills.catalog.add.descriptionSuffix': '.', + 'settings.skills.catalog.add.field.catalogName': 'Katalogname', + 'settings.skills.catalog.add.field.catalogNamePlaceholder': 'z. B. Team-Fertigkeiten', + 'settings.skills.catalog.add.field.repository': 'Repository', + 'settings.skills.catalog.add.field.optionalSubpath': 'Optionaler Unterpfad', + 'settings.skills.catalog.add.field.repositoryHint': 'Öffentliche Repos funktionieren überall. Private Repos benötigen SSH-Identität (Desktop/Web only).', + 'settings.skills.catalog.add.scanResult': 'Scan-Ergebnis: {count} Fertigkeit(en) gefunden', + 'settings.skills.catalog.add.duplicateMessage': 'Dieser Katalog wurde bereits hinzugefügt.', + 'settings.skills.catalog.add.actions.addCatalog': 'Katalog hinzufügen', + 'settings.skills.catalog.add.toast.repositoryRequired': 'Repository-Quelle ist erforderlich', + 'settings.skills.catalog.add.toast.authenticationRequiredScan': 'Authentifizierung erforderlich. Wähle eine Git-Identität aus und scanne erneut.', + 'settings.skills.catalog.add.toast.scanFailed': 'Repository konnte nicht gescannt werden', + 'settings.skills.catalog.add.toast.noSkillsFound': 'Keine Fertigkeiten in diesem Repository gefunden', + 'settings.skills.catalog.add.toast.catalogNameRequired': 'Katalogname ist erforderlich', + 'settings.skills.catalog.add.toast.scanBeforeAdd': 'Scanne das Repository, bevor dieser Katalog hinzugefügt wird', + 'settings.skills.catalog.add.toast.catalogAlreadyExists': 'Dieser Katalog existiert bereits', + 'settings.skills.catalog.add.toast.catalogAdded': 'Katalog hinzugefügt', + 'settings.skills.catalog.add.toast.saveFailed': 'Katalog konnte nicht gespeichert werden', + 'settings.skills.catalog.installFromRepo.title': 'Aus Git-Repository installieren', + 'settings.skills.catalog.installFromRepo.descriptionPrefix': 'Durchsuche ein Repository nach Ordnern, die folgende enthalten', + 'settings.skills.catalog.installFromRepo.descriptionSuffix': ', dann ausgewählte Fähigkeiten installieren.', + 'settings.skills.catalog.installFromRepo.repositoryHintPrefix': 'Für GitHub-Kurzform können Sie einen Unterpfad wie', + 'settings.skills.catalog.installFromRepo.authDescription': 'Wählen Sie eine Git-Identität (SSH-Schlüssel) aus, die auf dieses Repository zugreifen kann.', + 'settings.skills.catalog.installFromRepo.empty.noScanResultsTitle': 'Noch keine Scan-Ergebnisse', + 'settings.skills.catalog.installFromRepo.empty.noScanResultsDescription': 'Scannen Sie ein Repository, um Fähigkeiten zu entdecken', + 'settings.skills.catalog.installFromRepo.actions.selectAll': 'Alle auswählen', + 'settings.skills.catalog.installFromRepo.actions.selectNone': 'Nichts auswählen', + 'settings.skills.catalog.installFromRepo.actions.installSelected': 'Ausgewählte installieren', + 'settings.skills.catalog.installFromRepo.badge.installed': 'installiert ({scope}/{source})', + 'settings.skills.catalog.installFromRepo.selectedCount': 'Ausgewählt: {selected} / {total}', + 'settings.skills.catalog.installFromRepo.toast.authenticationRequiredScan': 'Authentifizierung erforderlich. Wählen Sie eine Git-Identität und versuchen Sie erneut zu scannen.', + 'settings.skills.catalog.installFromRepo.toast.authenticationRequiredInstall': 'Authentifizierung erforderlich. Wählen Sie eine Git-Identität und versuchen Sie erneut zu installieren.', + 'settings.skills.catalog.installFromRepo.toast.scanFailed': 'Fehler beim Scannen des Repositorys', + 'settings.skills.catalog.installFromRepo.toast.selectAtLeastOne': 'Wählen Sie mindestens eine Fähigkeit zur Installation aus', + 'settings.skills.catalog.installFromRepo.toast.installedCount': '{count} Fähigkeit(en) installiert', + 'settings.skills.catalog.installFromRepo.toast.installCompleted': 'Installation abgeschlossen', + 'settings.skills.catalog.installFromRepo.toast.installFailed': 'Fehler beim Installieren der Fähigkeiten', + 'settings.skills.catalog.page.mode.manual': 'Manuell', + 'settings.skills.catalog.page.mode.external': 'Extern', + 'settings.skills.catalog.page.title': 'Fähigkeitskatalog', + 'settings.skills.catalog.page.section.sourceRepository': 'Quell-Repository', + 'settings.skills.catalog.page.field.selectSourcePlaceholder': 'Quelle auswählen', + 'settings.skills.catalog.page.actions.refreshTitle': 'Aktualisieren', + 'settings.skills.catalog.page.actions.removeCatalogTitle': 'Katalog entfernen', + 'settings.skills.catalog.page.actions.addCatalog': 'Katalog hinzufügen', + 'settings.skills.catalog.page.actions.removeCatalog': 'Katalog entfernen', + 'settings.skills.catalog.page.actions.loadMoreSkills': 'Weitere Fähigkeiten laden', + 'settings.skills.catalog.page.loading.catalog': 'Wird geladen...', + 'settings.skills.catalog.page.loading.skills': 'Fähigkeiten werden geladen...', + 'settings.skills.catalog.page.loading.more': 'Wird geladen...', + 'settings.skills.catalog.page.foundCount': '{count} Fähigkeit(en) gefunden', + 'settings.skills.catalog.page.error.catalogTitle': 'Katalogfehler', + 'settings.skills.catalog.page.empty.noSkillsTitle': 'Keine Fähigkeiten gefunden', + 'settings.skills.catalog.page.empty.noSkillsDescription': 'Versuchen Sie eine andere Suche oder aktualisieren Sie den Katalog', + 'settings.skills.catalog.page.badge.installed': 'installiert ({scope})', + 'settings.skills.catalog.page.badge.notInstallable': 'nicht installierbar', + 'settings.skills.catalog.page.badge.unknown': 'unbekannt', + 'settings.skills.catalog.page.byOwnerPrefix': 'von', + 'settings.skills.catalog.page.removeDialog.title': 'Katalog entfernen', + 'settings.skills.catalog.page.removeDialog.description': 'Sind Sie sicher, dass Sie diesen Katalog entfernen möchten?', + 'settings.openchamber.passkeys.title': 'Passkeys', + 'settings.openchamber.passkeys.field.currentDevice': 'Aktuelles Gerät', + 'settings.openchamber.passkeys.actions.add': 'Passkey hinzufügen', + 'settings.openchamber.passkeys.actions.cancelSetup': 'Passkey-Einrichtung abbrechen', + 'settings.openchamber.passkeys.actions.signOutEverywhere': 'Überall abmelden', + 'settings.openchamber.passkeys.actions.signingOut': 'Abmeldung läuft…', + 'settings.openchamber.passkeys.actions.removing': 'Entfernung läuft…', + 'settings.openchamber.passkeys.state.uiPasswordRequired': 'Passkeys sind nur verfügbar, wenn die UI-Passwortsperre aktiviert ist.', + 'settings.openchamber.passkeys.state.loading': 'Passkeys werden geladen...', + 'settings.openchamber.passkeys.state.noneSaved': 'Für diesen Host wurden noch keine Passkeys gespeichert.', + 'settings.openchamber.passkeys.item.lastUsed': 'Zuletzt verwendet {time}', + 'settings.openchamber.passkeys.item.added': 'Hinzugefügt {time}', + 'settings.openchamber.passkeys.time.neverUsed': 'Nie verwendet', + 'settings.openchamber.passkeys.toast.loadFailed': 'Konnte Passkeys nicht laden.', + 'settings.openchamber.passkeys.toast.enableUiPasswordFirst': 'Aktiviere zuerst die UI-Passwortsperre, bevor du Passkeys hinzufügst.', + 'settings.openchamber.passkeys.toast.added': 'Passkey hinzugefügt', + 'settings.openchamber.passkeys.toast.setupCanceled': 'Passkey-Einrichtung abgebrochen', + 'settings.openchamber.passkeys.toast.addFailed': 'Konnte Passkey nicht hinzufügen.', + 'settings.openchamber.passkeys.toast.removed': 'Passkey entfernt', + 'settings.openchamber.passkeys.toast.removeFailed': 'Konnte Passkey nicht entfernen.', + 'settings.openchamber.passkeys.toast.clearAuthFailed': 'Konnte gespeicherte Authentifizierung nicht löschen.', + 'settings.openchamber.sessionRetention.title': 'Sitzungsaufbewahrung', + 'settings.openchamber.sessionRetention.tooltip': 'Automatisches Archivieren oder Löschen inaktiver Sitzungen basierend auf letzter Aktivität. Behält die 5 neuesten Sitzungen bei.', + 'settings.openchamber.sessionRetention.field.enableAutoCleanupAria': 'Automatische Bereinigung aktivieren', + 'settings.openchamber.sessionRetention.field.enableAutoCleanup': 'Automatische Bereinigung aktivieren', + 'settings.openchamber.sessionRetention.field.retentionPeriod': 'Aufbewahrungszeitraum', + 'settings.openchamber.sessionRetention.field.retentionPeriodAria': 'Aufbewahrungszeitraum in Tagen', + 'settings.openchamber.sessionRetention.field.days': 'Tage', + 'settings.openchamber.sessionRetention.field.whenSessionsExpire': 'Wenn Sitzungen ablaufen', + 'settings.openchamber.sessionRetention.actions.resetRetentionAria': 'Aufbewahrungszeitraum zurücksetzen', + 'settings.openchamber.sessionRetention.actions.runCleanupNow': 'Bereinigung jetzt ausführen', + 'settings.openchamber.sessionRetention.actions.cleaningUp': 'Bereinigung läuft...', + 'settings.openchamber.sessionRetention.action.archive': 'Archivieren', + 'settings.openchamber.sessionRetention.action.delete': 'Löschen', + 'settings.openchamber.sessionRetention.manualCleanup.title': 'Manuelle Bereinigung', + 'settings.openchamber.sessionRetention.manualCleanup.eligibleArchiveNow': 'Verfügbar für Archivierung jetzt: {count}', + 'settings.openchamber.sessionRetention.manualCleanup.eligibleDeleteNow': 'Verfügbar für Löschung jetzt: {count}', + 'settings.openchamber.sessionRetention.toast.noneEligibleArchive': 'Keine Sitzungen zur Archivierung verfügbar', + 'settings.openchamber.sessionRetention.toast.noneEligibleDelete': 'Keine Sitzungen zur Löschung verfügbar', + 'settings.openchamber.sessionRetention.toast.archivedCount': '{count} Sitzung(en) archiviert', + 'settings.openchamber.sessionRetention.toast.deletedCount': '{count} Sitzung(en) gelöscht', + 'settings.openchamber.sessionRetention.toast.failedArchiveCount': 'Fehler beim Archivieren von {count} Sitzung(en)', + 'settings.openchamber.sessionRetention.toast.failedDeleteCount': 'Fehler beim Löschen von {count} Sitzung(en)', + 'settings.openchamber.desktopNetwork.title': 'Desktop-Netzwerkzugriff', + 'settings.openchamber.desktopNetwork.field.windowControlsPosition': 'Position der Fenstersteuerung', + 'settings.openchamber.desktopNetwork.field.windowControlsPositionDescription': 'Wählen Sie aus, wo die Schaltflächen zum Minimieren, Maximieren und Schließen angezeigt werden. Auto folgt Ihrem Betriebssystem.', + 'settings.openchamber.desktopNetwork.field.windowControlsPositionAria': 'Position der Fenstersteuerung', + 'settings.openchamber.desktopNetwork.option.windowControlsAuto': 'Auto', + 'settings.openchamber.desktopNetwork.option.windowControlsLeft': 'Links', + 'settings.openchamber.desktopNetwork.option.windowControlsRight': 'Rechts', + 'settings.openchamber.desktopNetwork.field.launchAtLoginAria': 'OpenChamber bei Anmeldung starten', + 'settings.openchamber.desktopNetwork.field.launchAtLogin': 'OpenChamber beim Einloggen starten', + 'settings.openchamber.desktopNetwork.field.launchAtLoginDescription': 'Startet die App im Hintergrund ohne Öffnen eines Fensters. Verwenden Sie das Desktop-Statussymbol, um sie zu öffnen.', + 'settings.openchamber.desktopNetwork.field.minimizeToTrayAria': 'OpenChamber in die Systemleiste minimieren und schließen', + 'settings.openchamber.desktopNetwork.field.minimizeToTray': 'In die Systemleiste minimieren und schließen', + 'settings.openchamber.desktopNetwork.field.minimizeToTrayDescription': 'Lässt OpenChamber im Windows-Systemtray laufen, wenn das Hauptfenster minimiert oder geschlossen wird.', + 'settings.openchamber.desktopNetwork.field.keepAwakeAria': 'Computer wach halten, während OpenChamber läuft', + 'settings.openchamber.desktopNetwork.field.keepAwake': 'Computer wach halten, während OpenChamber läuft', + 'settings.openchamber.desktopNetwork.field.keepAwakeDescription': 'Verhindert den Ruhezustand des Systems, damit Geräte diese App erreichen können. Der Bildschirm kann weiterhin ausgeschaltet werden.', + 'settings.openchamber.desktopNetwork.field.allowLanAccessAria': 'LAN-Zugriff auf die Desktop-Seite erlauben', + 'settings.openchamber.desktopNetwork.field.allowLanAccess': 'Lassen Sie andere Geräte in Ihrem lokalen Netzwerk diese App öffnen', + 'settings.openchamber.desktopNetwork.field.allowLanAccessDescription': 'Startet die App neu, damit Smartphones, Tablets und andere Computer in Ihrem WLAN sie öffnen können.', + 'settings.openchamber.desktopNetwork.field.warning': 'Warnung: Solange aktiviert, ist die App für jeden im selben lokalen Netzwerk erreichbar.', + 'settings.openchamber.desktopNetwork.field.passwordRequiredWarning': 'LAN-Zugriff erfordert ein Desktop-UI-Kennwort. Bis ein Kennwort festgelegt ist, startet die Desktop-App nur lokal.', + 'settings.openchamber.desktopPassword.field.password': 'Desktop-UI-Kennwort', + 'settings.openchamber.desktopPassword.field.passwordPlaceholder': 'Kein Kennwort erforderlich', + 'settings.openchamber.desktopPassword.field.passwordDescription': 'OpenChamber fragt nach dem Neustart und dann, wenn die Anmeldesitzung abläuft: nach 12 Stunden oder 7 Tagen mit Vertrauen in dieses Gerät. Leer lassen, um die Anmeldung zu deaktivieren.', + 'settings.openchamber.desktopNetwork.hint.openAfterRestart': 'Nach dem Neustart von einem anderen Gerät aus öffnen: ', + 'settings.openchamber.desktopNetwork.hint.openNow': 'Von einem anderen Gerät aus öffnen: ', + 'settings.openchamber.desktopNetwork.actions.saveAndRestart': 'Speichern + Neustarten', + 'settings.openchamber.desktopNetwork.error.loadFailed': 'Fehler beim Laden der Desktop-Einstellungen', + 'settings.openchamber.desktopNetwork.error.saveFailed': 'Fehler beim Speichern der Desktop-Einstellungen', + 'settings.openchamber.desktopNetwork.error.savedRestartFailed': 'Gespeichert, aber Fehler beim Neustart der App', + 'settings.openchamber.desktopNetwork.error.launchAtLoginUnsupported': 'Starten bei Anmeldung wird auf diesem System nicht unterstützt', + 'settings.openchamber.desktopNetwork.error.launchAtLoginSaveFailed': 'Fehler beim Aktualisieren der Einstellung für Start bei Anmeldung', + 'settings.openchamber.desktopNetwork.error.minimizeToTrayUnsupported': 'Hintergrundmodus der Systemleiste wird auf diesem System nicht unterstützt', + 'settings.openchamber.desktopNetwork.error.minimizeToTraySaveFailed': 'Fehler beim Aktualisieren der Einstellung für Systemleiste', + 'settings.openchamber.desktopNetwork.error.keepAwakeUnsupported': 'Verhindern des Schlafens wird auf diesem System nicht unterstützt', + 'settings.openchamber.desktopNetwork.error.keepAwakeSaveFailed': 'Fehler beim Aktualisieren der Einstellung für Wachbleiben', + 'settings.openchamber.opencodeCli.title': 'OpenCode CLI', + 'settings.openchamber.opencodeCli.tooltipPrefix': 'Optionaler absoluter Pfad zur', + 'settings.openchamber.opencodeCli.tooltipSuffix': 'Binary.', + 'settings.openchamber.opencodeCli.field.binaryPath': 'OpenCode Binary-Pfad', + 'settings.openchamber.opencodeCli.field.binaryPathPlaceholder': '/Users/you/.bun/bin/opencode', + 'settings.openchamber.opencodeCli.field.showUpdateNotifications': 'OpenCode-Update-Benachrichtigungen anzeigen', + 'settings.openchamber.opencodeCli.field.showUpdateNotificationsAria': 'OpenCode-Update-Benachrichtigungen anzeigen', + 'settings.openchamber.opencodeCli.actions.browseAria': 'Nach OpenCode-Binärpfad suchen', + 'settings.openchamber.opencodeCli.actions.browse': 'Durchsuchen', + 'settings.openchamber.opencodeCli.actions.saveAndReload': 'Speichern + Neuladen', + 'settings.openchamber.opencodeCli.actions.restartingOpenCode': 'OpenCode wird neu gestartet…', + 'settings.openchamber.opencodeCli.dialog.selectBinaryTitle': 'opencode-Binärdatei auswählen', + 'settings.openchamber.opencodeCli.tipPrefix': 'Tipp: Sie können auch', + 'settings.openchamber.opencodeCli.tipMiddle': 'Umgebungsvariable verwenden, aber diese Einstellung bleibt in', + 'settings.mcp.sidebar.title': 'MCP-Server', + 'settings.mcp.sidebar.total': 'Gesamt {count}', + 'settings.mcp.sidebar.actions.refreshStatusAria': 'MCP-Status aktualisieren', + 'settings.mcp.sidebar.actions.refreshStatusTitle': 'MCP-Status aktualisieren', + 'settings.mcp.sidebar.actions.addServerTitle': 'MCP-Server hinzufügen', + 'settings.mcp.sidebar.actions.deleting': 'Wird gelöscht…', + 'settings.mcp.sidebar.empty.title': 'Keine MCP-Server konfiguriert', + 'settings.mcp.sidebar.empty.description': 'Verwenden Sie die + Schaltfläche oben, um einen hinzuzufügen', + 'settings.mcp.sidebar.group.projectServers': 'Projektserver', + 'settings.mcp.sidebar.group.userServers': 'Benutzerserver', + 'settings.mcp.sidebar.serverType.localTitle': 'Lokaler Server', + 'settings.mcp.sidebar.serverType.remoteTitle': 'Remote-Server', + 'settings.mcp.sidebar.deleteDialog.title': 'MCP-Server löschen', + 'settings.mcp.sidebar.deleteDialog.descriptionPrefix': 'Sind Sie sicher, dass Sie "{name}" löschen möchten? Dadurch wird es aus', + 'settings.mcp.sidebar.toast.deleteFailed': 'Fehler beim Löschen des MCP-Servers', + 'settings.mcp.sidebar.toast.serverDeleted': 'MCP-Server "{name}" gelöscht', + 'settings.mcp.sidebar.toast.refreshListIfStale': 'Aktualisieren Sie die MCP-Liste, wenn die Benutzeroberfläche veraltet aussieht.', + 'settings.plugins.sidebar.title': 'Plugins', + 'settings.plugins.sidebar.total': 'Gesamt {count}', + 'settings.plugins.sidebar.actions.addTitle': 'Plugin hinzufügen', + 'settings.plugins.sidebar.actions.deleting': 'Wird gelöscht…', + 'settings.plugins.sidebar.empty.title': 'Keine Plugins konfiguriert', + 'settings.plugins.sidebar.empty.description': 'Verwenden Sie die + Schaltfläche oben, um eines hinzuzufügen', + 'settings.plugins.sidebar.group.userEntries': 'Benutzerkonfiguration', + 'settings.plugins.sidebar.group.userFiles': 'Benutzer-Plugin-Datei', + 'settings.plugins.sidebar.group.projectEntries': 'Projektkonfiguration', + 'settings.plugins.sidebar.group.projectFiles': 'Projekt-Plugin-Datei', + 'settings.plugins.sidebar.kind.npm': 'npm-Paket', + 'settings.plugins.sidebar.kind.path': 'Lokaler Pfad', + 'settings.plugins.sidebar.kind.file': 'Plugin-Datei', + 'settings.plugins.sidebar.deleteDialog.title': 'Plugin löschen', + 'settings.plugins.sidebar.deleteDialog.description': 'Sind Sie sicher, dass Sie „{name}“ löschen möchten?', + 'settings.plugins.sidebar.toast.deleted': 'Plugin „{name}“ gelöscht', + 'settings.plugins.sidebar.toast.deleteFailed': 'Fehler beim Löschen des Plugins', + 'settings.plugins.page.empty.select': 'Wählen Sie ein Plugin aus, um es anzuzeigen oder zu bearbeiten', + 'settings.plugins.page.empty.add': 'Oder klicken Sie auf +, um ein neues Plugin hinzuzufügen', + 'settings.plugins.page.header.entry': 'Installiertes Plugin', + 'settings.plugins.page.header.file': 'Plugin-Datei', + 'settings.plugins.page.field.spec': 'Spezifikation', + 'settings.plugins.page.field.spec.placeholder': 'npm-package@version oder /absolute/pfad', + 'settings.plugins.page.field.options': 'Optionen (JSON)', + 'settings.plugins.page.field.options.invalidJson': 'Ungültiges JSON', + 'settings.plugins.page.field.fileName': 'Dateiname', + 'settings.plugins.page.field.content': 'Inhalt', + 'settings.plugins.page.field.scope': 'Bereich', + 'settings.plugins.scope.user': 'Benutzer', + 'settings.plugins.scope.project': 'Projekt', + 'settings.plugins.page.action.save': 'Speichern', + 'settings.plugins.page.action.discard': 'Verwerfen', + 'settings.plugins.dialog.add.title': 'Plugin hinzufügen', + 'settings.plugins.dialog.add.tab.npm': 'Von npm', + 'settings.plugins.dialog.add.tab.path': 'Von lokalem Pfad', + 'settings.plugins.dialog.add.tab.file': 'Neue Datei', + 'settings.plugins.dialog.add.action.submit': 'Hinzufügen', + 'settings.plugins.dialog.add.action.cancel': 'Abbrechen', + 'settings.plugins.toast.created': 'Plugin hinzugefügt', + 'settings.plugins.toast.updated': 'Plugin aktualisiert', + 'settings.plugins.toast.reloadFailed': 'opencode Neuladen fehlgeschlagen — Neustart erforderlich', + 'settings.plugins.validation.fileName': 'Dateiname muss klein geschrieben sein und auf .js / .ts / .mjs / .cjs enden', + 'settings.plugins.validation.specRequired': 'Spezifikation ist erforderlich', + 'settings.plugins.registry.badge.update.label': '↑ {version}', + 'settings.plugins.registry.badge.update.tooltip': 'Aktualisierung verfügbar: {current} → {latest}', + 'settings.plugins.registry.badge.malformed.tooltip': 'Spezifikation ist fehlerhaft', + 'settings.plugins.registry.badge.missingPackage.tooltip': 'Paket {name} nicht auf npm gefunden', + 'settings.plugins.registry.badge.missingVersion.tooltip': 'Version {version} von {name} nicht veröffentlicht', + 'settings.plugins.registry.badge.pathMissing.tooltip': 'Datei nicht gefunden: {path}', + 'settings.plugins.registry.badge.pathUnreadable.tooltip': 'Datei nicht lesbar: {path}', + 'settings.plugins.registry.badge.network.tooltip': 'Konnte npm-Registry nicht erreichen', + 'settings.plugins.registry.banner.updateAvailable.title': 'Update verfügbar', + 'settings.plugins.registry.banner.updateAvailable.description': '{current} → {latest}', + 'settings.plugins.registry.banner.updateAvailable.action': 'Auf {latest} aktualisieren', + 'settings.plugins.registry.banner.invalid.title': 'Ungültiges Plugin', + 'settings.plugins.registry.banner.invalid.malformed': 'Spec-Syntax ist fehlerhaft', + 'settings.plugins.registry.banner.invalid.missingPackage': 'Paket nicht auf npm gefunden', + 'settings.plugins.registry.banner.invalid.missingVersion': 'Version nicht veröffentlicht', + 'settings.plugins.registry.banner.invalid.pathMissing': 'Datei existiert nicht', + 'settings.plugins.registry.banner.invalid.pathUnreadable': 'Datei ist nicht lesbar', + 'settings.plugins.sidebar.actions.updateToLatest': 'Auf neueste Version aktualisieren', + 'settings.plugins.sidebar.actions.refresh': 'Nach Updates suchen', + 'settings.plugins.sidebar.group.updatesAvailable_one': '{count} Update verfügbar', + 'settings.plugins.sidebar.group.updatesAvailable_other': '{count} Updates verfügbar', + 'settings.plugins.toast.updatedToLatest': 'Plugin auf {version} aktualisiert', + 'settings.plugins.toast.refreshing': 'Suche nach Updates in npm…', + 'settings.plugins.toast.refreshFailed': 'Konnte npm-Registry nicht prüfen', + 'settings.openchamber.keyboardShortcuts.title': 'Tastenkombinationen', + 'settings.openchamber.keyboardShortcuts.actions.resetAll': 'Alle zurücksetzen', + 'settings.openchamber.keyboardShortcuts.actions.overwrite': 'Überschreiben', + 'settings.openchamber.keyboardShortcuts.tooltip': 'Neue Tastenkombination aufnehmen, speichern und Bindings werden sofort aktualisiert.', + 'settings.openchamber.keyboardShortcuts.overwritePrompt': 'Diese Kombination wird bereits von einem anderen Shortcut verwendet. Überschreiben und die andere Zuordnung löschen?', + 'settings.openchamber.keyboardShortcuts.field.pressKeys': 'Tasten drücken...', + 'settings.openchamber.keyboardShortcuts.error.captureFirst': 'Verwende zuerst eine Tastenkombination.', + 'settings.openchamber.keyboardShortcuts.warning.riskyBrowserShortcut': 'Diese Tastenkombination kann mit Standard-Tastenkombinationen des Browsers kollidieren. Sie wird dennoch gespeichert.', + 'settings.openchamber.keyboardShortcuts.action.open_go_to_line.label': 'Gehe zu Zeile (Datei-Editor)', + 'settings.openchamber.keyboardShortcuts.action.open_command_palette.label': 'Befehlspalette öffnen', + 'settings.openchamber.keyboardShortcuts.action.focus_input.label': 'Eingabe fokussieren', + 'settings.openchamber.keyboardShortcuts.action.open_settings.label': 'Einstellungen öffnen', + 'settings.openchamber.keyboardShortcuts.action.toggle_terminal.label': 'Terminal-Dock umschalten', + 'settings.openchamber.keyboardShortcuts.action.toggle_terminal_expanded.label': 'Terminal erweitert umschalten', + 'settings.openchamber.keyboardShortcuts.action.toggle_sidebar.label': 'Seitenleiste umschalten', + 'settings.openchamber.keyboardShortcuts.action.toggle_right_sidebar.label': 'Rechte Seitenleiste umschalten', + 'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_git.label': 'Git-Tab der rechten Seitenleiste öffnen', + 'settings.openchamber.keyboardShortcuts.action.open_right_sidebar_files.label': 'Datei-Tab der rechten Seitenleiste öffnen', + 'settings.openchamber.keyboardShortcuts.action.cycle_right_sidebar_tab.label': 'Rechte Seitenleisten-Tab durchschalten', + 'settings.openchamber.keyboardShortcuts.action.new_chat.label': 'Neue Sitzung', + 'settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label': 'Neuer Worktree-Entwurf', + 'settings.openchamber.keyboardShortcuts.action.new_mini_chat.label': 'Neues Mini-Chat-Fenster', + 'settings.openchamber.keyboardShortcuts.action.open_help.label': 'Tastenkürzel öffnen', + 'settings.openchamber.keyboardShortcuts.action.toggle_context_plan.label': 'Plan-Kontextpanel umschalten', + 'settings.openchamber.keyboardShortcuts.action.toggle_services_menu.label': 'Dienstemenü umschalten', + 'settings.openchamber.keyboardShortcuts.action.cycle_services_tab.label': 'Dienste-Tab durchschalten', + 'settings.openchamber.keyboardShortcuts.action.cycle_theme.label': 'Thema wechseln', + 'settings.openchamber.keyboardShortcuts.action.cycle_agent.label': 'Agent wechseln', + 'settings.openchamber.keyboardShortcuts.action.cycle_favorite_model_forward.label': 'Favorites Modell vorwärts durchschalten', + 'settings.openchamber.keyboardShortcuts.action.cycle_favorite_model_backward.label': 'Favorites Modell rückwärts durchschalten', + 'settings.openchamber.keyboardShortcuts.action.open_model_selector.label': 'Modellauswahl öffnen', + 'settings.openchamber.keyboardShortcuts.action.expand_input.label': 'Eingabe erweitern', + 'settings.openchamber.keyboardShortcuts.action.open_timeline_dialog.label': 'Konversations-Zeitleiste öffnen', + 'settings.openchamber.keyboardShortcuts.action.toggle_prompt_navigator.label': 'Prompt-Navigator umschalten', + 'settings.projects.sidebar.total': 'Gesamt {count}', + 'settings.projects.sidebar.actions.addProject': 'Projekt hinzufügen', + 'settings.projects.page.empty.noProjects': 'Keine Projekte verfügbar.', + 'settings.projects.page.title.default': 'Projekt-Einstellungen', + 'settings.projects.page.section.worktree': 'Arbeitsbaum', + 'settings.projects.page.field.projectName': 'Projektname', + 'settings.projects.page.field.projectNamePlaceholder': 'Projektname', + 'settings.projects.page.field.defaultModel': 'Standardmodell für neue Chats', + 'settings.projects.page.field.defaultModelDescription': 'Wird verwendet, wenn ein neuer Chat in diesem Projekt gestartet wird. Fallback auf globale Standardeinstellungen, wenn nicht gesetzt.', + 'settings.projects.page.field.accentColor': 'Akzentfarbe', + 'settings.projects.page.field.projectIcon': 'Projekt-Icon', + 'settings.projects.page.field.projectIconBackgroundAria': 'Hintergrundfarbe des Projekt-Icons', + 'settings.projects.page.field.clearIconBackgroundAria': 'Hintergrund des Icons löschen', + 'settings.projects.page.field.clearBackground': 'Hintergrund löschen', + 'settings.projects.page.field.none': 'Keine', + 'settings.projects.page.field.preview': 'Vorschau', + 'settings.projects.page.actions.uploadIcon': 'Icon hochladen', + 'settings.projects.page.actions.uploading': 'Hochladen...', + 'settings.projects.page.actions.discoverFavicon': 'Favicon entdecken', + 'settings.projects.page.actions.discovering': 'Entdecken...', + 'settings.projects.page.actions.removeProjectIcon': 'Projekt-Icon entfernen', + 'settings.projects.page.actions.removing': 'Entfernen...', + 'settings.projects.page.actions.undoRemove': 'Entfernen rückgängig machen', + 'settings.projects.page.toast.uploadIconFailed': 'Fehler beim Hochladen des Projekt-Icons', + 'settings.projects.page.toast.iconUpdated': 'Projekt-Icon aktualisiert', + 'settings.projects.page.toast.removeIconFailed': 'Fehler beim Entfernen des Projekt-Symbols', + 'settings.projects.page.toast.iconRemoved': 'Projekt-Symbol entfernt', + 'settings.projects.page.toast.discoverIconFailed': 'Fehler beim Suchen des Projekt-Symbols', + 'settings.projects.page.toast.customIconAlreadySet': 'Benutzerdefiniertes Symbol bereits für dieses Projekt festgelegt', + 'settings.projects.page.toast.iconDiscovered': 'Projekt-Symbol gefunden', + 'settings.projects.page.toast.saveFailed': 'Fehler beim Speichern der Projekteinstellungen', + 'settings.usage.sidebar.title': 'Nutzung', + 'settings.usage.sidebar.total': 'Gesamt {count}', + 'settings.usage.sidebar.actions.toggleAutoRefreshAria': 'Automatisches Aktualisieren umschalten', + 'settings.usage.sidebar.actions.refreshAria': 'Nutzung aktualisieren', + 'settings.usage.sidebar.actions.refreshTitle': 'Nutzung aktualisieren', + 'settings.usage.sidebar.tooltip.autoRefresh': 'Aktualisiere Nutzungsdaten automatisch in festgelegtem Intervall', + 'settings.usage.sidebar.field.intervalPlaceholder': 'Intervall', + 'settings.usage.sidebar.field.display': 'Anzeige', + 'settings.usage.sidebar.field.displayModePlaceholder': 'Anzeigemodus', + 'settings.usage.sidebar.field.displayModeUsage': 'Nutzung', + 'settings.usage.sidebar.field.displayModeRemaining': 'Verbleibendes Kontingent', + 'settings.usage.sidebar.field.showPredictions': 'Vorhersagen anzeigen', + 'settings.usage.sidebar.status.notSet': 'Nicht festgelegt', + 'settings.usage.page.empty.selectProvider': 'Wählen Sie einen Anbieter aus, um Nutzungsdetails anzuzeigen.', + 'settings.usage.page.header.providerUsage': '{provider} Nutzung', + 'settings.usage.page.header.refreshing': 'Aktualisiere Nutzung...', + 'settings.usage.page.header.lastUpdated': 'Zuletzt aktualisiert: {time}', + 'settings.usage.page.options.showInHeaderAria': 'Im Kopfmenü anzeigen', + 'settings.usage.page.options.showInHeader': 'Im Kopfmenü anzeigen', + 'settings.usage.page.options.showInHeaderTooltip': 'Wenn aktiviert, ist die Nutzung dieses Anbieters im Schnellzugriff-Menü in der App-Kopfzeile sichtbar.', + 'settings.usage.page.state.noData': 'Noch keine Nutzungsdaten verfügbar.', + 'settings.usage.page.state.refreshFailedTitle': 'Aktualisierung der Nutzungsdaten fehlgeschlagen', + 'settings.usage.page.state.providerNotConfiguredTitle': 'Anbieter nicht konfiguriert', + 'settings.usage.page.state.providerNotConfiguredDescription': 'Fügen Sie Anmeldeinformationen auf der Registerkarte \'Anbieter\' hinzu, um die Nutzungsverfolgung zu aktivieren.', + 'settings.usage.page.section.modelQuotas': 'Modell-Kontingente', + 'settings.usage.page.section.otherModels': 'Andere Modelle', + 'settings.usage.page.state.noQuotaWindowsTitle': 'Keine Kontingentfenster berichtet', + 'settings.usage.page.state.noQuotaWindowsDescription': 'Dieser Anbieter meldet derzeit keine Ratenbegrenzungen oder Nutzungsquoten.', + 'settings.usage.pace.status.onTrack': 'Im Plan', + 'settings.usage.pace.status.slightlyFast': 'Leicht zu schnell', + 'settings.usage.pace.status.tooFast': 'Zu schnell', + 'settings.usage.pace.status.usedUp': 'Verbraucht', + 'settings.usage.pace.predictionTooltip': 'Vorhergesagte Nutzung zum Fensterende basierend auf aktuellem Tempo: {prediction}', + 'settings.usage.pace.wait': 'Warten {duration}', + 'settings.usage.pace.prediction': 'Vorh.: {prediction}', + 'settings.usage.pace.rate': 'Tempo: {rate}', + 'settings.usage.pace.waitSeparator': ' · Warten ', + 'settings.usage.pace.predictionLabel': 'Vorh.: ', + 'settings.remoteInstances.page.title': 'Remote-Instanz', + 'settings.remoteInstances.page.description': 'Stellen Sie eine Verbindung zu einem anderen Computer über SSH her und öffnen Sie dort OpenChamber.', + 'settings.remoteInstances.page.empty.selectInstance': 'Wählen Sie eine Instanz aus, um ihre Einstellungen anzuzeigen und zu bearbeiten.', + 'settings.remoteInstances.page.empty.noExtraForwards': 'Keine zusätzlichen Portweiterleitungen konfiguriert.', + 'settings.remoteInstances.page.section.actions': 'Aktionen', + 'settings.remoteInstances.page.section.actionsDescription': 'Verbinden, erneut verbinden, Protokolle anzeigen oder diese Verbindung entfernen.', + 'settings.remoteInstances.page.section.remoteServer': 'OpenChamber auf dem Remote-Rechner', + 'settings.remoteInstances.page.section.remoteServerDescription': 'Wählen Sie aus, wie OpenChamber nach dem SSH-Verbindungsaufbau ausgeführt werden soll.', + 'settings.remoteInstances.page.section.mainTunnel': 'Lokaler Zugriff', + 'settings.remoteInstances.page.section.mainTunnelDescription': 'Wählen Sie die lokale Adresse, die zum Öffnen des Remote-OpenChamber-Servers verwendet wird.', + 'settings.remoteInstances.page.section.authentication': 'Authentifizierung', + 'settings.remoteInstances.page.section.authenticationDescription': 'Optionale Anmeldedaten für SSH und die Remote-OpenChamber-Benutzeroberfläche.', + 'settings.remoteInstances.page.section.portForwards': 'Portweiterleitungen', + 'settings.remoteInstances.page.section.portForwardsDescription': 'Zusätzliche Ports, die über diese SSH-Verbindung verfügbar gemacht werden sollen.', + 'settings.remoteInstances.page.field.sshCommand': 'SSH-Befehl', + 'settings.remoteInstances.page.field.sshCommandPlaceholder': 'ssh user@host', + 'settings.remoteInstances.page.field.nickname': 'Spitzname', + 'settings.remoteInstances.page.field.nicknamePlaceholder': 'Arbeitslaptop', + 'settings.remoteInstances.page.field.connectionTimeoutSeconds': 'Verbindungs-Timeout (Sekunden)', + 'settings.remoteInstances.page.field.installMethod': 'Installationsmethode', + 'settings.remoteInstances.page.field.installMethodHint': 'Wie OpenChamber auf dem Remote-Rechner platziert werden soll, wenn diese Anwendung es für Sie startet.', + 'settings.remoteInstances.page.field.selectInstallMethodPlaceholder': 'Installationsmethode auswählen', + 'settings.remoteInstances.page.field.installMethodDownloadRelease': 'Release herunterladen', + 'settings.remoteInstances.page.field.installMethodUploadBundle': 'Bundle hochladen', + 'settings.remoteInstances.page.field.selectBindHostPlaceholder': 'Bind-Host auswählen', + 'settings.remoteInstances.page.field.sshPasswordOptional': 'SSH-Passwort (optional)', + 'settings.remoteInstances.page.field.sshPasswordPlaceholder': 'SSH-Passwort eingeben', + 'settings.remoteInstances.page.field.uiPasswordOptional': 'UI-Passwort (optional)', + 'settings.remoteInstances.page.field.uiPasswordPlaceholder': 'UI-Passwort eingeben', + 'settings.remoteInstances.page.field.forwardTypeHint': 'Wählen Sie aus, welche Art von Port-Zugriff diese SSH-Verbindung bereitstellen soll.', + 'settings.remoteInstances.page.field.typePlaceholder': 'Typ', + 'settings.remoteInstances.page.forwardType.local': 'Lokal (-L)', + 'settings.remoteInstances.page.forwardType.remote': 'Entfernt (-R)', + 'settings.remoteInstances.page.forwardType.dynamic': 'Dynamisch (-D)', + 'settings.remoteInstances.page.forwardTypeDescription.local': 'Öffnet einen lokalen Port, der eine Verbindung zu etwas auf dem entfernten Rechner herstellt.', + 'settings.remoteInstances.page.forwardTypeDescription.remote': 'Öffnet einen Port auf dem entfernten Rechner, der eine Verbindung zu Ihrem Computer herstellt.', + 'settings.remoteInstances.page.forwardTypeDescription.dynamic': 'Öffnet einen lokalen SOCKS-Proxy über die SSH-Verbindung.', + 'settings.remoteInstances.page.actions.create': 'Erstellen', + 'settings.remoteInstances.page.actions.cancel': 'Abbrechen', + 'settings.remoteInstances.page.actions.connecting': 'Verbinden...', + 'settings.remoteInstances.page.actions.reconnecting': 'Neuverbinden...', + 'settings.remoteInstances.page.actions.reconnectNow': 'Jetzt neu verbinden', + 'settings.remoteInstances.page.actions.logs': 'SSH-Protokolle', + 'settings.remoteInstances.page.actions.pickRandomPort': 'Zufälligen Port wählen', + 'settings.remoteInstances.page.actions.enableForwardAria': 'Weiterleitung aktivieren', + 'settings.remoteInstances.page.actions.openLocal': 'Lokal öffnen', + 'settings.remoteInstances.page.actions.addForward': 'Weiterleitung hinzufügen', + 'settings.remoteInstances.page.import.sectionTitle': 'Gespeicherte SSH-Hosts', + 'settings.remoteInstances.page.import.loading': 'SSH-Hosts werden geladen...', + 'settings.remoteInstances.page.import.noneFound': 'Keine SSH-Hosts gefunden.', + 'settings.remoteInstances.page.import.noneAvailable': 'Keine SSH-Hosts zum Importieren verfügbar.', + 'settings.remoteInstances.page.import.patternSuffix': '(Muster)', + 'settings.remoteInstances.page.status.currentLocalUrl': 'Aktuelle lokale URL:', + 'settings.remoteInstances.page.status.reconnectStale': 'Neuverbindung scheint blockiert zu sein. Sie können es jetzt erneut versuchen.', + 'settings.remoteInstances.page.logsDialog.title': 'SSH-Protokolle', + 'settings.remoteInstances.page.logsDialog.loading': 'Protokolle werden geladen...', + 'settings.remoteInstances.page.logsDialog.empty': 'Noch keine SSH-Protokolle.', + 'settings.remoteInstances.page.patternDialog.title': 'Wählen Sie ein SSH-Ziel', + 'settings.remoteInstances.page.patternDialog.destinationPlaceholder': 'benutzer@rechner', + 'settings.remoteInstances.page.phase.resolvingConfiguration': 'Konfiguration wird aufgelöst', + 'settings.remoteInstances.page.phase.checkingAuth': 'Authentifizierung wird überprüft', + 'settings.remoteInstances.page.phase.establishingSsh': 'SSH-Verbindung wird hergestellt', + 'settings.remoteInstances.page.phase.probingRemote': 'Entfernte Maschine wird überprüft', + 'settings.remoteInstances.page.phase.installingOpenChamber': 'OpenChamber wird installiert', + 'settings.remoteInstances.page.phase.updatingOpenChamber': 'OpenChamber wird aktualisiert', + 'settings.remoteInstances.page.phase.detectingServer': 'Server wird erkannt', + 'settings.remoteInstances.page.phase.startingServer': 'Server wird gestartet', + 'settings.remoteInstances.page.phase.forwardingPorts': 'Ports werden weitergeleitet', + 'settings.remoteInstances.page.phase.reconnecting': 'Verbindung wird wiederhergestellt', + 'settings.remoteInstances.page.confirm.storeSshPasswordPlaintext': 'SSH-Kennwort im Klartext auf Festplatte speichern?', + 'settings.remoteInstances.page.confirm.storeUiPasswordPlaintext': 'UI-Kennwort im Klartext auf Festplatte speichern?', + 'settings.remoteInstances.page.confirm.removeInstance': 'Diese Remote-Instanz entfernen?', + 'settings.remoteInstances.page.toast.sshCommandRequired': 'SSH-Befehl ist erforderlich', + 'settings.remoteInstances.page.toast.saveFailed': 'Fehler beim Speichern der Instanz', + 'settings.remoteInstances.page.toast.instanceSaved': 'Instanz gespeichert', + 'settings.remoteInstances.page.toast.instanceCreated': 'Instanz erstellt', + 'settings.remoteInstances.page.toast.destinationRequired': 'Ziel ist erforderlich', + 'settings.remoteInstances.page.toast.noLogsToCopy': 'Keine Protokolle zum Kopieren', + 'settings.remoteInstances.page.toast.logsCopied': 'Protokolle kopiert', + 'settings.remoteInstances.page.toast.logsCleared': 'Protokolle gelöscht', + 'settings.remoteInstances.page.toast.clearLogsFailed': 'Fehler beim Löschen der Protokolle', + 'settings.remoteInstances.page.toast.instanceUrlUnavailable': 'Instanz-URL ist nicht verfügbar', + 'settings.remoteInstances.page.toast.connectFailed': 'Verbindung zur Instanz fehlgeschlagen', + 'settings.remoteInstances.page.toast.cancelConnectionFailed': 'Abbrechen der Verbindung fehlgeschlagen', + 'settings.remoteInstances.page.toast.disconnectFailed': 'Trennung der Instanz fehlgeschlagen', + 'settings.remoteInstances.page.toast.retryFailed': 'Wiederholung der Verbindung fehlgeschlagen', + 'settings.remoteInstances.page.toast.instanceRemoved': 'Instanz entfernt', + 'settings.remoteInstances.page.toast.removeInstanceFailed': 'Entfernen der Instanz fehlgeschlagen', + 'settings.openchamber.worktrees.state.selectProject': 'Wählen Sie ein Projekt aus, um Worktrees zu verwalten.', + 'settings.openchamber.worktrees.state.gitOnly': 'Worktree-Einstellungen sind nur für Git-Repositories verfügbar.', + 'settings.openchamber.worktrees.setup.title': 'Setup-Befehle', + 'settings.openchamber.worktrees.setup.tooltipPrefix': 'Automatisch im neuen Worktree-Verzeichnis ausführen, wenn ein Worktree erstellt wird. Verwenden Sie', + 'settings.openchamber.worktrees.setup.tooltipSuffix': 'für das Projektstammverzeichnis.', + 'settings.openchamber.worktrees.setup.loading': 'Wird geladen...', + 'settings.openchamber.worktrees.setup.commandPlaceholder': 'z. B. bun install', + 'settings.openchamber.worktrees.setup.removeCommandAria': 'Befehl entfernen', + 'settings.openchamber.worktrees.setup.addCommand': 'Befehl hinzufügen', + 'settings.openchamber.worktrees.setup.waitForCommands': 'Warten auf Setup-Befehle vor dem Erstellen oder Senden einer Sitzung', + 'settings.openchamber.worktrees.setup.waitForCommandsAria': 'Warten auf Worktree-Setup-Befehle vor dem Erstellen oder Senden einer Sitzung', + 'settings.openchamber.worktrees.setup.toast.saveFailed': 'Speichern der Worktree-Setup-Befehle fehlgeschlagen', + 'settings.openchamber.worktrees.list.title': 'Vorhandene Worktrees', + 'settings.openchamber.worktrees.list.tooltip': 'Worktrees befinden sich außerhalb des Repos (von OpenCode verwaltet). Das Löschen eines Worktrees entfernt auch verknüpfte Sitzungen.', + 'settings.openchamber.worktrees.list.loading': 'Worktrees werden geladen...', + 'settings.openchamber.worktrees.list.empty': 'Keine Worktrees für dieses Projekt gefunden', + 'settings.openchamber.worktrees.list.detachedHead': 'Detached HEAD', + 'settings.openchamber.worktrees.list.deleteWorktreeAria': 'Worktree {name} löschen', + 'settings.agents.modelSelector.title': 'Modell auswählen', + 'settings.agents.modelSelector.searchPlaceholder': 'Modelle durchsuchen', + 'settings.agents.modelSelector.selectPlaceholder': 'Modell auswählen...', + 'settings.agents.modelSelector.notSelected': 'Nicht ausgewählt', + 'settings.agents.modelSelector.noModelOptional': 'Kein Modell (optional)', + 'settings.agents.modelSelector.section.favorites': 'Favoriten', + 'settings.agents.modelSelector.section.recents': 'Kürzlich verwendet', + 'settings.agents.modelSelector.section.recent': 'Kürzlich', + 'settings.agents.modelSelector.badge.current': 'Aktuell', + 'settings.agents.modelSelector.actions.favorite': 'Favorit', + 'settings.agents.modelSelector.actions.unfavorite': 'Favorit entfernen', + 'settings.agents.modelSelector.actions.addToFavorites': 'Zu Favoriten hinzufügen', + 'settings.agents.modelSelector.actions.removeFromFavorites': 'Aus Favoriten entfernen', + 'settings.agents.modelSelector.state.noModelsFound': 'Keine Modelle gefunden', + 'settings.agents.modelSelector.keyboardHints': '↑↓ navigieren • Enter auswählen • Esc schließen', + 'settings.providers.sidebar.title': 'Anbieter', + 'settings.providers.sidebar.total': 'Gesamt {count}', + 'settings.providers.sidebar.actions.connectProviderAria': 'Anbieter verbinden', + 'settings.providers.sidebar.actions.connectProviderTitle': 'Anbieter verbinden', + 'settings.providers.sidebar.empty.title': 'Keine Anbieter gefunden', + 'settings.providers.sidebar.empty.description': 'Überprüfen Sie Ihre OpenCode-Konfiguration', + 'settings.providers.sidebar.section.userProviders': 'Benutzer-Anbieter', + 'settings.providers.sidebar.section.projectProviders': 'Projekt-Anbieter', + 'settings.providers.page.state.loading': 'Wird geladen...', + 'settings.providers.page.state.unableToLoadProviderList': 'Anbieterliste konnte nicht geladen werden', + 'settings.providers.page.empty.noProvidersDetected': 'Keine Anbieter erkannt', + 'settings.providers.page.empty.checkOpenCodeConfiguration': 'Überprüfen Sie Ihre OpenCode-Konfiguration', + 'settings.providers.page.empty.selectProviderFromSidebar': 'Wählen Sie einen Anbieter aus der Seitenleiste', + 'settings.providers.page.empty.reviewDetailsAndConfigureAuth': 'Details überprüfen und Authentifizierung konfigurieren', + 'settings.providers.page.connect.title': 'Anbieter verbinden', + 'settings.providers.page.connect.selectProviderTitle': 'Anbieter auswählen', + 'settings.providers.page.connect.providerField': 'Anbieter', + 'settings.providers.page.connect.selectProviderPlaceholder': 'Anbieter auswählen', + 'settings.providers.page.connect.searchProvidersPlaceholder': 'Suche...', + 'settings.providers.page.connect.noProvidersFound': 'Keine Anbieter gefunden', + 'settings.providers.page.connect.allProvidersConnected': 'Alle Anbieter verbunden.', + 'settings.providers.page.auth.title': 'Authentifizierung', + 'settings.providers.page.auth.loadingMethods': 'Lade Authentifizierungsmethoden...', + 'settings.providers.page.auth.apiKeyLabel': 'API-Schlüssel', + 'settings.providers.page.auth.apiKeyTooltip': 'Schlüssel werden direkt an OpenCode gesendet und nie von OpenChamber gespeichert.', + 'settings.providers.page.auth.apiKeyPlaceholder': 'sk-...', + 'settings.providers.page.auth.oauthMethodFallback': 'OAuth-Methode {index}', + 'settings.providers.page.auth.pasteAuthorizationCodePlaceholder': 'Autorisierungscode einfügen', + 'settings.providers.page.auth.connected': 'Verbunden', + 'settings.providers.page.auth.useReconnectHint': '· Verwenden Sie „Erneut verbinden“, um Anmeldedaten zu aktualisieren', + 'settings.providers.page.connectionDetails.title': 'Verbindungsdetails', + 'settings.providers.page.connectionDetails.configuredIn': 'Konfiguriert in:', + 'settings.providers.page.connectionDetails.noActiveSource': 'Keine aktive Konfigurationsquelle', + 'settings.providers.page.connectionDetails.source.authCredentials': 'Anmeldedaten', + 'settings.providers.page.connectionDetails.source.userConfig': 'Benutzerkonfiguration', + 'settings.providers.page.connectionDetails.source.projectConfig': 'Projektkonfiguration', + 'settings.providers.page.connectionDetails.source.customConfig': 'Benutzerkonfiguration', + 'settings.providers.page.models.title': 'Verfügbare Modelle', + 'settings.providers.page.models.filterPlaceholder': 'Modelle filtern...', + 'settings.providers.page.models.noModelsMatchFilter': 'Keine Modelle entsprechen diesem Filter.', + 'settings.providers.page.models.capability.toolCalling': 'Tool-Aufruf', + 'settings.providers.page.models.capability.reasoning': 'Reasoning', + 'settings.providers.page.models.capability.imageInput': 'Bildeingabe', + 'settings.providers.page.models.tokenBadge.context': 'ctx', + 'settings.providers.page.models.tokenBadge.output': 'out', + 'settings.providers.page.models.actions.hideModelFromSelectors': 'Modell aus Selektoren ausblenden', + 'settings.providers.page.models.actions.showModelInSelectors': 'Modell in Selektoren anzeigen', + 'settings.providers.page.models.actions.hideModel': 'Modell ausblenden', + 'settings.providers.page.models.actions.showModel': 'Modell anzeigen', + 'settings.providers.page.actions.saving': 'Speichern...', + 'settings.providers.page.actions.saveKey': 'Schlüssel speichern', + 'settings.providers.page.actions.connect': 'Verbinden', + 'settings.providers.page.actions.copyCode': 'Code kopieren', + 'settings.providers.page.actions.open': 'Öffnen', + 'settings.providers.page.actions.copy': 'Kopieren', + 'settings.providers.page.actions.complete': 'Vervollständigen', + 'settings.providers.page.actions.hide': 'Ausblenden', + 'settings.providers.page.actions.reconnect': 'Erneut verbinden', + 'settings.providers.page.actions.disconnecting': 'Trennen...', + 'settings.providers.page.actions.disconnect': 'Trennen', + 'settings.providers.page.actions.hideAll': 'Alle ausblenden', + 'settings.providers.page.actions.showAll': 'Alle anzeigen', + 'settings.providers.page.toast.authMethodsLoadFailed': 'Fehler beim Laden der Anbieter-Authentifizierungsmethoden', + 'settings.providers.page.toast.providerSourcesLoadFailed': 'Fehler beim Laden der Anbieter-Quellen', + 'settings.providers.page.toast.apiKeyRequired': 'API-Schlüssel ist erforderlich', + 'settings.providers.page.toast.apiKeySaveFailed': 'Fehler beim Speichern des API-Schlüssels', + 'settings.providers.page.toast.apiKeySaved': 'API-Schlüssel gespeichert', + 'settings.providers.page.toast.oauthStartFailed': 'Fehler beim Starten des OAuth-Flows', + 'settings.providers.page.toast.oauthDetailsMissing': 'Keine OAuth-Details zurückgegeben', + 'settings.providers.page.toast.completeOAuthInBrowser': 'Schließen Sie den OAuth-Flow in Ihrem Browser ab', + 'settings.providers.page.toast.oauthCompleteFailed': 'Fehler beim Abschließen des OAuth-Flows', + 'settings.providers.page.toast.oauthCompleted': 'OAuth-Verbindung abgeschlossen', + 'settings.providers.page.toast.oauthLinkCopied': 'OAuth-Link kopiert', + 'settings.providers.page.toast.oauthLinkCopyFailed': 'Fehler beim Kopieren des OAuth-Links', + 'settings.providers.page.toast.deviceCodeCopied': 'Gerätecode kopiert', + 'settings.providers.page.toast.deviceCodeCopyFailed': 'Fehler beim Kopieren des Gerätecodes', + 'settings.providers.page.toast.providerDisconnected': 'Anbieter getrennt', + 'settings.providers.page.toast.providerDisconnectFailed': 'Fehler beim Trennen des Anbieters', + 'settings.mcp.page.empty.selectServer': 'Wählen Sie einen MCP-Server aus der Seitenleiste', + 'settings.mcp.page.empty.addNewOne': 'oder fügen Sie einen neuen hinzu', + 'settings.mcp.page.header.newServer': 'Neuer MCP-Server', + 'settings.mcp.page.header.configureNewServer': 'Konfigurieren Sie einen neuen MCP-Server', + 'settings.mcp.page.header.transport': '{type} Transport', + 'settings.mcp.page.transport.local': 'Lokal · stdio', + 'settings.mcp.page.transport.remote': 'Entfernt · SSE', + 'settings.mcp.page.status.label.connected': 'Verbunden', + 'settings.mcp.page.status.label.failed': 'Fehlgeschlagen', + 'settings.mcp.page.status.label.needsAuth': 'Autorisierung erforderlich', + 'settings.mcp.page.status.label.needsRegistration': 'Registrierung erforderlich', + 'settings.mcp.page.status.description.connected': 'Verbunden und bereit, Tools und Ressourcen zu entdecken.', + 'settings.mcp.page.status.description.failedDefault': 'OpenCode konnte diesen MCP-Server nicht erreichen.', + 'settings.mcp.page.status.description.needsAuth': 'Dieser entfernte MCP-Server erfordert Autorisierung, bevor eine Verbindung hergestellt werden kann.', + 'settings.mcp.page.status.description.needsClientRegistrationDefault': 'Dieser entfernte MCP-Server erfordert Client-Registrierung, bevor die Autorisierung abgeschlossen werden kann.', + 'settings.mcp.page.status.description.disabled': 'Dieser MCP-Server ist in der Konfiguration deaktiviert.', + 'settings.mcp.page.status.description.default': 'Aktualisieren oder Testen Sie die Verbindung, um den Live-Status zu laden.', + 'settings.mcp.page.status.runtimeStatus': 'Laufzeitstatus', + 'settings.mcp.page.status.projectScopedTo': 'Projektbezogen auf {directory}', + 'settings.mcp.page.status.userScoped': 'Benutzerbezogene Konfiguration', + 'settings.mcp.page.status.activeProject': 'das aktive Projekt', + 'settings.mcp.page.actions.connect': 'Verbinden', + 'settings.mcp.page.actions.disconnect': 'Trennen', + 'settings.mcp.page.actions.authorize': 'Autorisieren', + 'settings.mcp.page.actions.reauthorize': 'Erneut autorisieren', + 'settings.mcp.page.actions.clearAuth': 'Autorisierung löschen', + 'settings.mcp.page.actions.test': 'Testen', + 'settings.mcp.page.actions.testConnection': 'Verbindung testen', + 'settings.mcp.page.actions.working': 'Arbeite...', + 'settings.mcp.page.actions.starting': 'Starte...', + 'settings.mcp.page.actions.clearing': 'Lösche...', + 'settings.mcp.page.actions.testing': 'Teste...', + 'settings.mcp.page.actions.completing': 'Abschließen...', + 'settings.mcp.page.actions.completeAuthorization': 'Autorisierung abschließen', + 'settings.mcp.page.actions.openInBrowser': 'Im Browser öffnen', + 'settings.mcp.page.actions.copyLink': 'Link kopieren', + 'settings.mcp.page.actions.deleting': 'Löschen…', + 'settings.mcp.page.auth.authorizationUrl': 'Autorisierungs-URL', + 'settings.mcp.page.auth.manualFallbackTitle': 'Manueller Autorisierungsfallback', + 'settings.mcp.page.auth.manualFallbackDescription': 'Wenn der Browser auf eine andere Maschine zurückkehrt oder eine Callback-URL mit einem Code anzeigt, fügen Sie diese vollständige URL oder den Rohcode hier ein.', + 'settings.mcp.page.auth.callbackInputPlaceholder': 'Fügen Sie die Callback-URL oder den Autorisierungscode ein', + 'settings.mcp.page.auth.waitingForOpenCode': 'Warten auf OpenCode, um den abgeschlossenen Browser-Autorisierungsfluss zu beobachten...', + 'settings.mcp.page.server.title': 'Server', + 'settings.mcp.page.server.name': 'Servername', + 'settings.mcp.page.server.namePlaceholder': 'mein-mcp-server', + 'settings.mcp.page.server.importJson': 'Aus JSON-Snippet importieren', + 'settings.mcp.page.server.importJsonTitle': 'Eine vollständige MCP-Server-Konfiguration aus einem JSON-Snippet importieren', + 'settings.mcp.page.server.enable': 'Server aktivieren', + 'settings.mcp.page.server.enableAria': 'Server aktivieren', + 'settings.mcp.page.server.transportMode': 'Transportmodus', + 'settings.mcp.page.connection.command': 'Befehl', + 'settings.mcp.page.connection.serverUrl': 'Server-URL', + 'settings.mcp.page.connection.serverUrlPlaceholder': 'https://mcp.example.com/mcp', + 'settings.mcp.page.connection.pasteCommand': 'Befehl einfügen', + 'settings.mcp.page.connection.pasteCommandTitle': 'Einen lokalen Befehl aus der Zwischenablage einfügen und automatisch aufteilen', + 'settings.mcp.page.connection.previewArgs': 'Vorschau ({count} Argumente)', + 'settings.mcp.page.advanced.title': 'Erweiterte Remote-Optionen', + 'settings.mcp.page.advanced.configure': 'Erweiterte Optionen konfigurieren', + 'settings.mcp.page.advanced.autoDetect': 'Automatische Erkennung', + 'settings.mcp.page.advanced.custom': 'Benutzerdefiniert', + 'settings.mcp.page.advanced.headers': 'Header', + 'settings.mcp.page.advanced.timeoutMs': 'Timeout (ms)', + 'settings.mcp.page.advanced.timeoutHint': 'Leer lassen, um den Standard-MCP-Timeout von OpenCode zu verwenden.', + 'settings.mcp.page.advanced.requestHeaders': 'Anfrage-Header', + 'settings.mcp.page.advanced.headerNamePlaceholder': 'Header-Name', + 'settings.mcp.page.advanced.pasteHeaders': 'Header einfügen', + 'settings.mcp.page.advanced.pasteHeadersTitle': 'KEY=VALUE-Headerzeilen aus der Zwischenablage einfügen', + 'settings.mcp.page.advanced.oauthAutoDetection': 'OAuth-Auto-Erkennung aktivieren', + 'settings.mcp.page.advanced.oauthAutoDetectionAria': 'OAuth-Auto-Erkennung aktivieren', + 'settings.mcp.page.advanced.oauthClientIdPlaceholder': 'OAuth Client-ID', + 'settings.mcp.page.advanced.oauthClientSecretPlaceholder': 'OAuth Client-Geheimnis', + 'settings.mcp.page.advanced.oauthScopesPlaceholder': 'Bereiche (Leerzeichen-getrennt)', + 'settings.mcp.page.advanced.oauthRedirectUriPlaceholder': 'Weiterleitungs-URI', + 'settings.mcp.page.advanced.oauthHint': 'Lassen Sie diese Felder leer, damit OpenCode die OAuth-Einstellungen vom MCP-Server ableiten kann.', + 'settings.mcp.page.advanced.oauthCallbackHint': 'Browserbasierte MCP-Autorisierung verwendet diese Callback-URL, wenn der Redirect-URI leer ist:', + 'settings.mcp.page.env.title': 'Umgebungsvariablen', + 'settings.mcp.page.env.key': 'Schlüssel', + 'settings.mcp.page.env.value': 'Wert', + 'settings.mcp.page.env.valuePlaceholder': 'Wert', + 'settings.mcp.page.env.hide': 'Verstecken', + 'settings.mcp.page.env.show': 'Anzeigen', + 'settings.mcp.page.env.addVariable': 'Variable hinzufügen', + 'settings.mcp.page.env.addEnvironmentVariable': 'Umgebungsvariable hinzufügen', + 'settings.mcp.page.env.keyPlaceholder': 'API_SCHLÜSSEL', + 'settings.mcp.page.env.pasteEnv': '.env einfügen', + 'settings.mcp.page.env.pasteEnvTitle': 'KEY=VALUE-Zeilen aus der Zwischenablage einfügen', + 'settings.mcp.page.env.plainTextWarning': '⚠ Werte werden als Klartext in opencode.json gespeichert', + 'settings.mcp.page.env.removeVariableAria': 'Variable entfernen', + 'settings.mcp.page.importDialog.title': 'JSON-Schnipsel importieren', + 'settings.mcp.page.importDialog.description': 'Fügen Sie einen vollständigen MCP-JSON-Schnipsel aus Dokumentationen oder einer anderen Konfigurationsdatei ein. Die geparsten Werte werden dieses Formular zur Überprüfung vor dem Speichern ausfüllen.', + 'settings.mcp.page.importDialog.pasteFromClipboard': 'JSON aus der Zwischenablage einfügen', + 'settings.mcp.page.deleteDialog.title': '"{name}" löschen?', + 'settings.mcp.page.deleteDialog.descriptionPrefix': 'Dadurch wird der Server entfernt aus', + 'settings.mcp.page.deleteDialog.descriptionSuffix': 'OpenCode muss neu geladen werden.', + 'settings.mcp.page.toast.clipboardReadFailed': 'Kann Zwischenablage nicht lesen', + 'settings.mcp.page.toast.configImported': 'MCP-Konfiguration importiert', + 'settings.mcp.page.toast.nameRequired': 'Name ist erforderlich', + 'settings.mcp.page.toast.serverNameExists': 'Ein Server mit diesem Namen existiert bereits', + 'settings.mcp.page.toast.localCommandRequired': 'Befehl darf für einen lokalen Server nicht leer sein', + 'settings.mcp.page.toast.remoteUrlRequired': 'URL darf für einen Remote-Server nicht leer sein', + 'settings.mcp.page.toast.serverCreatedReloadFailed': 'MCP-Server erstellt, aber OpenCode-Neuladen fehlgeschlagen.', + 'settings.mcp.page.toast.savedReloadFailed': 'Gespeichert, aber OpenCode-Neuladen fehlgeschlagen.', + 'settings.mcp.page.toast.retryRefreshHint': 'Aktualisierung erneut versuchen oder Einstellungen vor der Autorisierung dieses Servers neu öffnen.', + 'settings.mcp.page.toast.serverCreatedReloading': 'MCP-Server erstellt. OpenCode wird neu geladen…', + 'settings.mcp.page.toast.savedReloading': 'Gespeichert. OpenCode wird neu geladen…', + 'settings.mcp.page.toast.saveFailed': 'Speichern fehlgeschlagen', + 'settings.mcp.page.toast.unexpectedError': 'Ein Fehler ist aufgetreten', + 'settings.mcp.page.toast.serverDeletedReloadFailed': '"{name}" gelöscht, aber OpenCode-Neuladen fehlgeschlagen', + 'settings.mcp.page.toast.refreshListIfStale': 'Aktualisiere die MCP-Liste, falls die Benutzeroberfläche veraltet aussieht.', + 'settings.mcp.page.toast.serverDeleted': '"{name}" gelöscht', + 'settings.mcp.page.toast.deleteFailed': 'Löschen fehlgeschlagen', + 'settings.mcp.page.toast.disconnected': 'Getrennt', + 'settings.mcp.page.toast.connected': 'Verbunden', + 'settings.mcp.page.toast.connectionNeedsAuthorization': 'Verbindung erfordert Autorisierung', + 'settings.mcp.page.toast.connectionNeedsClientRegistration': 'Verbindung erfordert Client-Registrierung', + 'settings.mcp.page.toast.connectionFailed': 'Verbindung fehlgeschlagen', + 'settings.mcp.page.toast.connectionAttemptFinished': 'Verbindungsversuch abgeschlossen. Aktualisiere den Status für Details.', + 'settings.mcp.page.toast.createServerBeforeLiveActions': 'Erstelle den Server, bevor du Live-Aktionen ausführst', + 'settings.mcp.page.toast.saveBeforeLiveActions': 'Speichere Änderungen, bevor du Live-Aktionen ausführst', + 'settings.mcp.page.toast.refreshStatusFailed': 'Aktualisierung des MCP-Status fehlgeschlagen', + 'settings.mcp.page.toast.oauthRedirectUrlBuildFailed': 'Kann die MCP OAuth-Umleitungs-URL nicht erstellen', + 'settings.mcp.page.toast.oauthBrowserCallbackSaveFailed': 'Fehler beim Speichern der Browser-Callback-URL für MCP-Autorisierung', + 'settings.mcp.page.toast.openCodeReloadFailedAfterCallbackSave': 'OpenCode-Neuladen fehlgeschlagen nach dem Speichern der Browser-Callback-URL', + 'settings.mcp.page.toast.completeAuthorizationInBrowserWithPaste': 'Schließe den MCP-Autorisierungsprozess in deinem Browser ab, füge dann den zurückgegebenen Code oder die Callback-URL hier ein', + 'settings.mcp.page.toast.completeAuthorizationInBrowser': 'Schließe den MCP-Autorisierungsprozess in deinem Browser ab', + 'settings.mcp.page.toast.openAuthorizationUrlFailed': 'Konnte die Autorisierungs-URL nicht automatisch öffnen', + 'settings.mcp.page.toast.authorizationStartFailed': 'Fehler beim Starten der Autorisierung', + 'settings.mcp.page.toast.authSessionExpired': 'Autorisierungssitzung abgelaufen oder während des Neuladens gelöscht. Klicke erneut auf Autorisieren.', + 'settings.mcp.page.toast.savedAuthorizationRemoved': 'Gespeicherte MCP-Autorisierung wurde entfernt', + 'settings.mcp.page.toast.clearAuthorizationFailed': 'Fehler beim Löschen der Autorisierung', + 'settings.mcp.page.toast.authorizationUrlCopied': 'Autorisierungs-URL kopiert', + 'settings.mcp.page.toast.authorizationUrlCopyFailed': 'Fehler beim Kopieren der Autorisierungs-URL', + 'settings.mcp.page.toast.pasteCallbackOrCodeFirst': 'Füge zuerst die Callback-URL oder den Autorisierungscode ein', + 'settings.mcp.page.toast.missingServerDetails': 'Fehlende MCP-Serverdetails. Wähle den Server erneut aus oder füge die vollständige Callback-URL ein.', + 'settings.mcp.page.toast.authorizationCompleted': 'MCP-Autorisierung abgeschlossen', + 'settings.mcp.page.toast.authorizationCompletedFor': 'MCP-Autorisierung abgeschlossen für {name}', + 'settings.mcp.page.toast.authorizationCompleteFailed': 'Fehler beim Abschließen der MCP-Autorisierung', + 'settings.mcp.page.toast.enableServerBeforeTest': 'Aktiviere diesen Server, bevor du die Verbindung testest', + 'settings.mcp.page.toast.connectionTestSucceeded': 'Verbindungstest erfolgreich', + 'settings.mcp.page.toast.connectionTestFailed': 'Verbindungstest fehlgeschlagen', + 'settings.mcp.page.toast.connectionTestFinished': 'Verbindungstest abgeschlossen. Aktualisiere den Status für Details.', + 'settings.mcp.page.toast.authorizationFailed': 'Autorisierung fehlgeschlagen', + 'settings.mcp.page.toast.authorizationStillInProgress': 'Autorisierung läuft noch in deinem Browser. Füge die Callback-URL oder den Code ein, falls nötig.', + 'settings.mcp.page.toast.noKeyValuePairsFound': 'Keine KEY=VALUE-Paare im Clipboard gefunden', + 'settings.mcp.page.toast.importedVariablesCount': 'Importierte Variablen: {count}', + 'settings.mcp.page.toast.pastedArgumentsCount': 'Eingefügte Argumente: {count}', + 'settings.shared.projectSelector.fallbackProject': 'Projekt', + 'settings.shared.projectSelector.switchProjectAria': 'Projekt wechseln', + 'settings.shared.projectSelector.switchProjectTitle': 'Projekt wechseln', + 'settings.openchamber.defaults.title': 'Sitzungsstandardwerte', + 'settings.openchamber.defaults.summaryPrefix': 'Neue Sitzungen starten mit:', + 'settings.openchamber.defaults.summaryOpenCodeDefault': 'OpenCode-Agent-Standard', + 'settings.openchamber.defaults.field.defaultModel': 'Standardmodell', + 'settings.openchamber.defaults.field.defaultThinking': 'Standard-Denken', + 'settings.openchamber.defaults.field.thinkingPlaceholder': 'Denken', + 'settings.openchamber.defaults.field.defaultAgent': 'Standard-Agent', + 'settings.openchamber.defaults.field.showDeletionDialogAria': 'Löschdialog anzeigen', + 'settings.openchamber.defaults.field.showDeletionDialog': 'Löschdialog anzeigen', + 'settings.openchamber.defaults.smallModel.title': 'Kleines Modell', + 'settings.openchamber.defaults.smallModel.description': 'Ein günstiges Modell für schnelle Dienstaufgaben wie kurze Zusammenfassungen und Faziten.', + 'settings.openchamber.defaults.smallModel.useDefault': 'Standardmodell verwenden', + 'settings.openchamber.defaults.smallModel.useDefaultAria': 'Standardmodell verwenden', + 'settings.openchamber.defaults.smallModel.overrideModel': 'Modell überschreiben', + 'settings.openchamber.defaults.field.openFilesPreviewAria': 'Vorschau-fähige Dateien im Vorschaumodus öffnen', + 'settings.openchamber.defaults.field.openFilesPreview': 'Vorschau-fähige Dateien im Vorschaumodus öffnen', + 'settings.openchamber.defaults.option.default': 'Standard', + 'settings.openchamber.defaults.option.defaultLowercase': 'Standard', + 'settings.openchamber.git.title': 'Git-Einstellungen', + 'settings.openchamber.git.changesViewTitle': 'Änderungsansicht', + 'settings.openchamber.git.changesViewAria': 'Git-Änderungsansichtsmodus', + 'settings.openchamber.git.option.flatList': 'Flache Liste', + 'settings.openchamber.git.option.treeView': 'Baumansicht', + 'settings.openchamber.git.optionAria': 'Git-Änderungsansichtsmodus: {option}', + 'settings.openchamber.git.enableGitmojiAria': 'Gitmoji-Auswähler aktivieren', + 'settings.openchamber.git.enableGitmoji': 'Gitmoji-Auswähler aktivieren', + 'settings.openchamber.git.showGitignoredAria': 'Git-ignorierte Dateien anzeigen', + 'settings.openchamber.git.showGitignored': 'Git-ignorierte Dateien anzeigen', + 'settings.github.page.tooltip.connectAccount': 'Verbinden Sie ein GitHub-Konto für PR- und Issue-Workflows innerhalb der App.', + 'settings.github.page.avatarAlt.withLogin': '{login} Avatar', + 'settings.github.page.avatarAlt.fallback': 'GitHub-Avatar', + 'settings.github.page.label.unknownUser': 'unbekannt', + 'settings.github.page.label.scopes': 'Bereiche: {value}', + 'settings.github.page.label.otherAccounts': 'Andere Konten', + 'settings.github.page.accountSource.oauth': 'OAuth', + 'settings.github.page.accountSource.cli': 'CLI', + 'settings.github.page.actions.disconnect': 'Trennen', + 'settings.github.page.actions.connect': 'GitHub verbinden', + 'settings.github.page.actions.switchTo': 'Wechseln zu', + 'settings.github.page.actions.addAccount': 'Konto hinzufügen', + 'settings.github.page.actions.openGithub': 'GitHub öffnen', + 'settings.github.page.status.notConnected': 'Nicht verbunden', + 'settings.github.page.status.active': 'Aktiv', + 'settings.github.page.flow.title': 'OpenChamber autorisieren', + 'settings.github.page.flow.description': 'Geben Sie in GitHub den folgenden Code ein, um dieses Gerät zu autorisieren:', + 'settings.github.page.flow.waiting': 'Warten auf Genehmigung… (Auto-Refresh)', + 'settings.github.page.toast.startConnectFailed': 'Fehler beim Starten der GitHub-Verbindung', + 'settings.github.page.toast.connected': 'GitHub verbunden', + 'settings.github.page.toast.authorizationFailed': 'GitHub-Autorisierung fehlgeschlagen', + 'settings.github.page.toast.disconnected': 'GitHub getrennt', + 'settings.github.page.toast.disconnectFailed': 'Fehler beim Trennen von GitHub', + 'settings.github.page.toast.accountSwitched': 'GitHub-Konto gewechselt', + 'settings.github.page.toast.accountSwitchFailed': 'Fehler beim Wechseln des GitHub-Kontos', + 'settings.github.page.oauth.title': 'GitHub OAuth-Token', + 'settings.github.page.ghCli.title': 'GitHub CLI-Token', + 'settings.github.page.ghCli.activeDescription': 'Authentifiziert über die gh CLI', + 'settings.github.page.ghCli.fallbackDescription': 'Verfügbar als Fallback, falls OpenChamber-Auth entfernt wird', + 'settings.github.page.ghCli.disabledDescription': 'Installiert, aber nicht als Fallback verwendet', + 'settings.github.page.ghCli.actions.disable': 'Deaktivieren', + 'settings.github.page.ghCli.actions.enable': 'Aktivieren', + 'settings.github.page.toast.ghCliEnabled': 'gh CLI Fallback aktiviert', + 'settings.github.page.toast.ghCliDisabled': 'gh CLI Fallback deaktiviert', + 'settings.github.page.toast.ghCliUpdateFailed': 'Fehler beim Aktualisieren der gh CLI Einstellung', + 'settings.notifications.page.delivery.title': 'Benachrichtigungsübermittlung', + 'settings.notifications.page.delivery.enableAria': 'Benachrichtigungen aktivieren', + 'settings.notifications.page.delivery.enableLabel': 'Benachrichtigungen aktivieren', + 'settings.notifications.page.delivery.focusedAria': 'Benachrichtigen, wenn App im Vordergrund ist', + 'settings.notifications.page.delivery.focusedLabel': 'Benachrichtigen, wenn App im Vordergrund ist', + 'settings.notifications.page.delivery.testAction': 'Testbenachrichtigung senden', + 'settings.notifications.page.delivery.browserPermissionHint': 'Ihr Browser könnte die Berechtigung beim ersten Mal abfragen.', + 'settings.notifications.page.delivery.permissionDenied': 'Benachrichtigungsberechtigung verweigert. Aktivieren Sie sie in Ihren Browsereinstellungen.', + 'settings.notifications.page.delivery.permissionGrantedButDisabled': 'Berechtigung erteilt, aber Benachrichtigungen sind deaktiviert.', + 'settings.notifications.page.delivery.vscodeHint': 'Wenn aktiviert, werden Benachrichtigungen über VS Codes native Benachrichtigungen zugestellt.', + 'settings.notifications.page.events.title': 'Benachrichtigungsereignisse', + 'settings.notifications.page.events.completionAria': 'Agentenabschluss', + 'settings.notifications.page.events.completionLabel': 'Agentenabschluss', + 'settings.notifications.page.events.subtaskAria': 'Unteragentenabschluss', + 'settings.notifications.page.events.subtaskLabel': 'Unteragentenabschluss', + 'settings.notifications.page.events.errorAria': 'Agentenfehler', + 'settings.notifications.page.events.errorLabel': 'Agentenfehler', + 'settings.notifications.page.events.questionAria': 'Agentenfragen', + 'settings.notifications.page.events.questionLabel': 'Agentenfragen', + 'settings.notifications.page.template.title': 'Benachrichtigungsvorlagen', + 'settings.notifications.page.template.variablesLabel': 'Variablen:', + 'settings.notifications.page.template.event.completion': 'Abschluss', + 'settings.notifications.page.template.event.subtask': 'Teilaufgabe abgeschlossen', + 'settings.notifications.page.template.event.error': 'Fehler', + 'settings.notifications.page.template.event.question': 'Frage', + 'settings.notifications.page.template.field.title': 'Titel', + 'settings.notifications.page.template.field.message': 'Nachricht', + 'settings.notifications.page.template.defaults.completion.title': '{agent_name} ist bereit', + 'settings.notifications.page.template.defaults.completion.message': '{model_name} hat die Aufgabe abgeschlossen', + 'settings.notifications.page.template.defaults.error.title': 'Werkzeugfehler', + 'settings.notifications.page.template.defaults.error.message': '{last_message}', + 'settings.notifications.page.template.defaults.question.title': 'Eingabe erforderlich', + 'settings.notifications.page.template.defaults.question.message': '{last_message}', + 'settings.notifications.page.template.defaults.subtask.title': '{agent_name} ist bereit', + 'settings.notifications.page.template.defaults.subtask.message': '{model_name} hat die Aufgabe abgeschlossen', + 'settings.notifications.page.summary.title': 'KI-Zusammenfassung', + 'settings.notifications.page.summary.toggleAria': 'Letzte Nachricht zusammenfassen', + 'settings.notifications.page.summary.toggleLabel': 'Letzte Nachricht zusammenfassen', + 'settings.notifications.page.summary.requiresTemplateVariable': 'Erfordert', + 'settings.notifications.page.summary.modelLabel': 'Zusammenfassungsmodell', + 'settings.notifications.page.summary.modelTooltip': 'Wird für Benachrichtigungs- und Sprachzusammenfassungen verwendet.', + 'settings.notifications.page.summary.notSelected': 'Nicht ausgewählt', + 'settings.notifications.page.summary.thresholdLabel': 'Schwellenwert', + 'settings.notifications.page.summary.thresholdHint': 'Nachrichten, die länger sind als dieser Wert, werden zusammengefasst', + 'settings.notifications.page.summary.resetThresholdAria': 'Schwellenwert zurücksetzen', + 'settings.notifications.page.summary.lengthLabel': 'Länge', + 'settings.notifications.page.summary.lengthHint': 'Zielzeichenlänge der Zusammenfassung', + 'settings.notifications.page.summary.resetLengthAria': 'Zusammenfassungslänge zurücksetzen', + 'settings.notifications.page.summary.maxLengthLabel': 'Maximale Länge', + 'settings.notifications.page.summary.maxLengthHint': '{last_message} auf diese Länge kürzen', + 'settings.notifications.page.summary.resetMaxLengthAria': 'Maximale Nachrichtenlänge zurücksetzen', + 'settings.notifications.page.push.title': 'Hintergrund-Push-Benachrichtigungen', + 'settings.notifications.page.push.enableAria': 'Push-Benachrichtigungen aktivieren', + 'settings.notifications.page.push.enableLabel': 'Push-Benachrichtigungen aktivieren', + 'settings.notifications.page.push.unsupportedHint': 'Push wird nicht unterstützt. Desktop Chrome/Edge und Android unterstützen Push. iOS erfordert eine installierte PWA.', + 'settings.notifications.page.push.supportedHint': 'Empfange Benachrichtigungen über den Hintergrunddienst deines Betriebssystems', + 'settings.notifications.page.push.loadingAria': 'Wird geladen', + 'settings.notifications.page.toast.permissionDenied.title': 'Benachrichtigungsberechtigung verweigert', + 'settings.notifications.page.toast.permissionDenied.description': 'Bitte aktiviere Benachrichtigungen in deinen Browser-Einstellungen.', + 'settings.notifications.page.toast.permissionDenied.enableInBrowser': 'Aktiviere Benachrichtigungen in deinen Browser-Einstellungen.', + 'settings.notifications.page.toast.requestPermissionFailed': 'Fehler beim Anfordern der Benachrichtigungsberechtigung', + 'settings.notifications.page.toast.notificationsApiUnavailable': 'Benachrichtigungs-API nicht verfügbar', + 'settings.notifications.page.toast.testNotificationSent': 'Testbenachrichtigung erfolgreich gesendet', + 'settings.notifications.page.toast.testNotificationFailed': 'Fehler beim Senden der Testbenachrichtigung', + 'settings.notifications.page.toast.pushUnsupported': 'Push-Benachrichtigungen werden nicht unterstützt', + 'settings.notifications.page.toast.pushApiUnavailable': 'Push-API nicht verfügbar', + 'settings.notifications.page.toast.pushKeyLoadFailed': 'Fehler beim Laden des Push-Schlüssels', + 'settings.notifications.page.toast.enableBackgroundFailed': 'Fehler beim Aktivieren von Hintergrundbenachrichtigungen', + 'settings.notifications.page.toast.backgroundEnabled': 'Hintergrundbenachrichtigungen aktiviert', + 'settings.notifications.page.toast.backgroundDisabled': 'Hintergrundbenachrichtigungen deaktiviert', + 'settings.notifications.page.testNotification.title': 'Testbenachrichtigung', + 'settings.notifications.page.testNotification.body': 'Dies ist eine Testbenachrichtigung von OpenChamber.', + 'settings.voice.page.section.speechRecognition': 'Spracherkennung', + 'settings.voice.page.field.enableVoiceInput': 'Spracheingabe aktivieren', + 'settings.voice.page.field.enableVoiceInputAria': 'Spracheingabe aktivieren (Diktat)', + 'settings.voice.page.section.playbackAndSummary': 'Wiedergabe', + 'settings.voice.page.field.provider': 'Anbieter', + 'settings.voice.page.provider.browser': 'Browser', + 'settings.voice.page.provider.custom': 'Benutzerdefiniert', + 'settings.voice.page.provider.say': 'Sagen', + 'settings.voice.page.provider.server': 'Server', + 'settings.voice.page.provider.local': 'Lokal', + 'settings.voice.page.tooltip.sttLocal': 'On-device Transkription auf dem OpenChamber-Server. Modelle werden automatisch heruntergeladen; kein API-Schlüssel erforderlich.', + 'settings.voice.page.tooltip.localTts': 'On-device Synthese auf dem OpenChamber-Server (Kokoro, Englisch). Das Modell wird automatisch heruntergeladen; kein API-Schlüssel erforderlich.', + 'settings.voice.page.stt.model.parakeetV2': 'Parakeet v2 (Englisch)', + 'settings.voice.page.stt.model.parakeetV3': 'Parakeet v3 (25 europäische Sprachen)', + 'settings.voice.page.stt.model.whisperBase': 'Whisper base (mehrsprachig)', + 'settings.voice.page.stt.model.whisperTiny': 'Whisper tiny (mehrsprachig)', + 'settings.voice.page.stt.badge.bestForEnglish': 'Am besten für Englisch', + 'settings.voice.page.stt.badge.bestForMultilingual': 'Am besten für mehrsprachig', + 'settings.voice.page.stt.meta.accuracy': 'Genauigkeit', + 'settings.voice.page.stt.meta.speed': 'Geschwindigkeit', + 'settings.voice.page.stt.modelInstalled': 'Modell installiert', + 'settings.voice.page.stt.modelDownloading': 'Modell wird heruntergeladen...', + 'settings.voice.page.stt.modelDownloadingProgress': 'Modell wird heruntergeladen... {percent}%', + 'settings.voice.page.stt.modelNotInstalled': 'Modell nicht heruntergeladen', + 'settings.voice.page.stt.modelDownload': 'Herunterladen', + 'settings.voice.page.stt.modelDelete': 'Modell löschen', + 'settings.voice.page.stt.modelRetry': 'Wiederholen', + 'settings.voice.page.provider.wasm': 'Lokal', + 'settings.voice.page.stt.wasmModel': 'Whisper-Modell', + 'settings.voice.page.stt.wasmLoaded': 'Modell geladen, bereit', + 'settings.voice.page.stt.wasmDownloading': 'Modell wird heruntergeladen...', + 'settings.voice.page.stt.wasmLoading': 'Modell wird geladen...', + 'settings.voice.page.stt.wasmNotLoaded': 'Modell wird beim ersten Sprachgebrauch geladen', + 'settings.voice.page.stt.wasmDownload': 'Laden', + 'settings.voice.page.stt.wasmRetry': 'Wiederholen', + 'settings.voice.page.tooltip.browser': 'Kostenlos, offline, begrenzte mobile Unterstützung.', + 'settings.voice.page.tooltip.openai': 'Hohe Qualität, mobil bereit, benötigt API-Schlüssel.', + 'settings.voice.page.tooltip.custom': 'OpenAI-kompatibler Server (z. B. Kokoro).', + 'settings.voice.page.tooltip.say': 'Nativ auf macOS. Schnell, kostenlos, offline.', + 'settings.voice.page.tooltip.sttBrowser': 'Web Speech API (Chrome/Edge). Kostenlos, keine Einrichtung.', + 'settings.voice.page.tooltip.sttServer': 'OpenAI-kompatibler Whisper-Server. Bessere Genauigkeit, beliebige Sprache.', + 'settings.voice.page.field.apiKey': 'API-Schlüssel', + 'settings.voice.page.field.apiKeyHintUsingConfig': 'Verwendeter Schlüssel aus Konfiguration', + 'settings.voice.page.field.apiKeyHintRequired': 'OpenAI TTS benötigt einen API-Schlüssel', + 'settings.voice.page.field.apiKeyHintProvide': 'Geben Sie Ihren OpenAI-Schlüssel ein', + 'settings.voice.page.field.serverUrl': 'Server-URL', + 'settings.voice.page.field.serverUrlHint': 'Basis-URL des OpenAI-kompatiblen TTS-Servers', + 'settings.voice.page.field.model': 'Modell', + 'settings.voice.page.field.voice': 'Stimme', + 'settings.voice.page.field.voiceIdentifierHint': 'Vom Server unterstützter Sprachidentifier', + 'settings.voice.page.field.configuredAbove': 'Oben konfiguriert', + 'settings.voice.page.actions.preview': 'Vorschau', + 'settings.voice.page.field.selectVoicePlaceholder': 'Sprache auswählen', + 'settings.voice.page.field.auto': 'Automatisch', + 'settings.voice.page.field.speechRate': 'Sprachgeschwindigkeit', + 'settings.voice.page.field.speechPitch': 'Sprachpitch', + 'settings.voice.page.field.speechVolume': 'Sprachlautstärke', + 'settings.voice.page.field.language': 'Sprache', + 'settings.voice.page.field.selectLanguagePlaceholder': 'Sprache auswählen', + 'settings.voice.page.field.sttBrowserSupportError': 'MediaRecorder oder AudioContext ist in diesem Browser nicht verfügbar. Server-STT funktioniert möglicherweise nicht.', + 'settings.voice.page.field.sttServerUrlHint': 'Basis-URL des Whisper-kompatiblen Servers', + 'settings.voice.page.field.sttLanguageHint': 'BCP-47-Code (z.B. en, fr). Leer lassen für automatische Erkennung.', + 'settings.voice.page.field.silenceThreshold': 'Schwellenwert für Stille', + 'settings.voice.page.field.silenceHold': 'Halten bei Stille', + 'settings.voice.page.field.transcribeOnStopAria': 'Transkribieren beim Beenden der Aufnahme', + 'settings.voice.page.field.transcribeOnStop': 'Beim Stoppen transkribieren', + 'settings.voice.page.field.millisecondsUnit': 'ms', + 'settings.voice.page.field.messageReadAloudButtonAria': 'Schaltfläche für Vorlesen der Nachricht', + 'settings.voice.page.field.messageReadAloudButton': 'Nachricht vorlesen-Taste', + 'settings.voice.page.field.summarizeBeforePlaybackAria': 'Zusammenfassen vor der Wiedergabe', + 'settings.voice.page.field.summarizeBeforePlayback': 'Vor der Wiedergabe zusammenfassen', + 'settings.voice.page.field.summarizeVoiceModeResponsesAria': 'Antworten im Sprachmodus zusammenfassen', + 'settings.voice.page.field.summarizeVoiceModeResponses': 'Antworten im Sprachmodus zusammenfassen', + 'settings.voice.page.field.summarizationThreshold': 'Zusammenfassungsschwellenwert', + 'settings.voice.page.field.summaryMaxLength': 'Maximale Länge der Zusammenfassung', + 'settings.voice.page.hint.shiftClickPrefix': 'Drücken Sie', + 'settings.voice.page.hint.shiftClickSuffix': 'auf die Mikrofon-Schaltfläche, um den kontinuierlichen Modus umzuschalten', + 'settings.voice.page.preview.browserVoiceFallback': 'Ihre Browserstimme', + 'settings.voice.page.preview.voiceLine': 'Hallo! Ich bin {voiceName}. So klinge ich.', + 'settings.voice.page.preview.customServerLine': 'Hallo! Das ist eine Vorschau des benutzerdefinierten TTS-Servers.', + 'settings.voice.page.field.ttsInputMode': 'TTS-Eingabemodus', + 'settings.voice.page.field.ttsInputModeSanitized': 'Gereinigt', + 'settings.voice.page.field.ttsInputModeRaw': 'Rohes Markdown', + 'settings.voice.page.field.ttsInputModeSummarized': 'zusammengefasst', + 'settings.openchamber.visual.section.colorMode': 'Farbmodus', + 'settings.openchamber.visual.section.mobileLayout': 'Mobiles Layout', + 'settings.openchamber.visual.option.mobileLayout.default': 'Alt', + 'settings.openchamber.visual.option.mobileLayout.new': 'Neu', + 'settings.openchamber.visual.section.localization': 'Lokalisierung', + 'settings.openchamber.visual.section.spacingAndLayout': 'Abstand & Layout', + 'settings.openchamber.visual.section.navigation': 'Navigation', + 'settings.openchamber.visual.section.chatRenderMode': 'Chat-Darstellungsmodus', + 'settings.openchamber.visual.section.chatRenderModeAria': 'Chat-Darstellungsmodus', + 'settings.openchamber.visual.section.messageStreamTransport': 'Nachrichtenstrom-Transport', + 'settings.openchamber.visual.section.activityDefault': 'Aktivitätsstandard', + 'settings.openchamber.visual.section.activityDefaultAria': 'Aktivitätsstandardmodus', + 'settings.openchamber.visual.section.showToolsOpenedByDefault': 'Werkzeuge standardmäßig geöffnet anzeigen:', + 'settings.openchamber.visual.section.sessionAssistance': 'Sitzungshilfe', + 'settings.openchamber.visual.section.reasoning': 'Reasoning', + 'settings.openchamber.visual.section.messageAppearance': 'Nachrichten-Erscheinungsbild', + 'settings.openchamber.visual.section.toolsAndFiles': 'Werkzeuge & Dateien', + 'settings.openchamber.visual.section.composer': 'Komponist', + 'settings.openchamber.visual.section.userMessageRendering': 'Benutzer-Nachrichtendarstellung', + 'settings.openchamber.visual.section.userMessageRenderingAria': 'Modus der Benutzer-Nachrichtendarstellung', + 'settings.openchamber.visual.section.mermaidRendering': 'Mermaid-Darstellung', + 'settings.openchamber.visual.section.mermaidRenderingAria': 'Mermaid-Darstellungsmodus', + 'settings.openchamber.visual.section.diffLayout': 'Diff-Layout', + 'settings.openchamber.visual.section.diffLayoutAria': 'Diff-Layout', + 'settings.openchamber.visual.section.privacy': 'Datenschutz', + 'settings.openchamber.visual.field.lightTheme': 'Helles Design', + 'settings.openchamber.visual.field.darkTheme': 'Dunkles Design', + 'settings.openchamber.visual.field.selectLightThemeAria': 'Helles Design auswählen', + 'settings.openchamber.visual.field.selectDarkThemeAria': 'Dunkles Design auswählen', + 'settings.openchamber.visual.field.selectThemePlaceholder': 'Design auswählen', + 'settings.openchamber.visual.field.timeFormat': 'Zeitformat', + 'settings.openchamber.visual.field.weekStartsOn': 'Woche beginnt am', + 'settings.openchamber.visual.field.selectTimeFormatAria': 'Zeitformat auswählen', + 'settings.openchamber.visual.field.selectWeekStartAria': 'Wochenstart auswählen', + 'settings.openchamber.visual.actions.reloadThemes': 'Designs neu laden', + 'settings.openchamber.visual.actions.reloadingThemes': 'Designs werden neu geladen...', + 'settings.openchamber.visual.field.macVibrancy': 'Fenstertransparenz', + 'settings.openchamber.visual.field.macVibrancyHint': 'Verwenden Sie den nativen macOS-Blur (Vibrancy) hinter der Seitenleiste. Ausschalten für vollständig solide, undurchsichtige Oberflächen.', + 'settings.openchamber.visual.field.dockBadge': 'Dock-Badge', + 'settings.openchamber.visual.field.dockBadgeHint': 'Zeigt eine Anzahl an Chats mit nicht gesehenem Aktivität auf dem macOS-Dock-Icon an.', + 'settings.openchamber.visual.actions.saveAndRestart': 'Speichern & Neustart', + 'settings.openchamber.visual.actions.restarting': 'Neustarten…', + 'settings.openchamber.visual.field.themeImportInfoAria': 'Informationen zum Importieren von Designs', + 'settings.openchamber.visual.field.themeImportInfoTooltip': 'Benutzerdefinierte Designs aus ~/.config/openchamber/themes/ importieren', + 'settings.openchamber.visual.field.installAppName': 'App-Name installieren', + 'settings.openchamber.visual.field.installAppNameHint': 'Wird vom PWA-Installationsprozess verwendet.', + 'settings.openchamber.visual.field.pwaInstallAppNameAria': 'PWA-Installations-App-Name', + 'settings.openchamber.visual.actions.resetInstallAppNameAria': 'Installations-App-Namen zurücksetzen', + 'settings.openchamber.visual.field.installOrientation': 'Ausrichtung installieren', + 'settings.openchamber.visual.field.installOrientationHint': 'Wird von der installierten Web-App verwendet. PWA neu installieren nach Änderung.', + 'settings.openchamber.visual.field.pwaInstallOrientationAria': 'PWA-Installationsorientierung', + 'settings.openchamber.visual.field.selectOrientationPlaceholder': 'Ausrichtung auswählen', + 'settings.openchamber.visual.actions.resetInstallOrientationAria': 'Installationsorientierung zurücksetzen', + 'settings.openchamber.visual.field.mobileKeyboardMode': 'Verhalten der mobilen Tastatur', + 'settings.openchamber.visual.field.mobileKeyboardModeHint': 'Das Standard-Verhalten des Browsers ist am sichersten. Das Größenändern des Inhalts bittet unterstützte Browser dazu, die App zu verkleinern, wenn die On-Screen-Tastatur geöffnet wird.', + 'settings.openchamber.visual.field.mobileKeyboardModeAria': 'Verhalten der mobilen Tastatur', + 'settings.openchamber.visual.field.selectMobileKeyboardModePlaceholder': 'Tastaturverhalten auswählen', + 'settings.openchamber.visual.actions.resetMobileKeyboardModeAria': 'Tastaturverhalten zurücksetzen', + 'settings.openchamber.visual.field.interfaceFontSize': 'Schriftgröße der Benutzeroberfläche', + 'settings.openchamber.visual.field.interfaceFont': 'Schriftart der Benutzeroberfläche', + 'settings.openchamber.visual.field.selectInterfaceFontAria': 'Schriftart der Benutzeroberfläche auswählen', + 'settings.openchamber.visual.actions.resetInterfaceFontAria': 'Schriftart der Benutzeroberfläche zurücksetzen', + 'settings.openchamber.visual.field.fontSizePercentageAria': 'Prozentsatz der Schriftgröße', + 'settings.openchamber.visual.actions.resetFontSizeAria': 'Schriftgröße zurücksetzen', + 'settings.openchamber.visual.field.terminalFontSize': 'Schriftgröße des Terminals', + 'settings.openchamber.visual.field.editorFontSize': 'Schriftgröße des Editors', + 'settings.openchamber.visual.field.codeFont': 'Schriftart für Code', + 'settings.openchamber.visual.field.selectCodeFontAria': 'Schriftart für Code auswählen', + 'settings.openchamber.visual.actions.resetCodeFontAria': 'Schriftart für Code zurücksetzen', + 'settings.openchamber.visual.actions.resetTerminalFontSizeAria': 'Schriftgröße des Terminals zurücksetzen', + 'settings.openchamber.visual.actions.resetEditorFontSizeAria': 'Schriftgröße des Editors zurücksetzen', + 'settings.openchamber.visual.field.spacingDensity': 'Abstandsdichte', + 'settings.openchamber.visual.actions.resetSpacingAria': 'Abstände zurücksetzen', + 'settings.openchamber.visual.field.inputBarOffset': 'Versatz der Eingabeleiste', + 'settings.openchamber.visual.field.inputBarOffsetTooltip': 'Eingabeleiste anheben, um Bildschirmverdeckungen auf Betriebssystemebene wie Home-Bars zu vermeiden.', + 'settings.openchamber.visual.actions.resetInputBarOffsetAria': 'Versatz der Eingabeleiste zurücksetzen', + 'settings.openchamber.visual.field.terminalQuickKeysAria': 'Schnelltasten des Terminals', + 'settings.openchamber.visual.field.terminalQuickKeys': 'Schnelltasten des Terminals', + 'settings.openchamber.visual.field.terminalQuickKeysTooltip': 'Esc, Strg, Pfeiltasten in der Terminalansicht anzeigen', + 'settings.openchamber.visual.field.fileEditorKeymap': 'Tastaturlayout für Datei-Editor', + 'settings.openchamber.visual.option.fileEditorKeymap.default': 'Standard', + 'settings.openchamber.visual.option.fileEditorKeymap.vim': 'Vim', + 'settings.openchamber.visual.field.activityDefaultModeAria': 'Aktivitäts-Standardmodus: {option}', + 'settings.openchamber.visual.field.showExpandedBashToolsAria': 'Erweiterte Bash-Tools anzeigen', + 'settings.openchamber.visual.field.showExpandedEditToolsAria': 'Erweiterte Bearbeitungstools anzeigen', + 'settings.openchamber.visual.field.bash': 'Bash', + 'settings.openchamber.visual.field.editTools': 'Bearbeitungstools', + 'settings.openchamber.visual.field.userMessageRenderingAria': 'Benutzernachrichten-Rendering: {option}', + 'settings.openchamber.visual.field.mermaidRenderingAria': 'Mermaid-Rendering: {option}', + 'settings.openchamber.visual.field.diffLayoutAria': 'Diff-Layout: {option}', + 'settings.openchamber.visual.field.sessionRecap': 'Sitzungs-Zusammenfassung generieren', + 'settings.openchamber.visual.field.sessionRecapAria': 'Eine Zusammenfassung nach Abschluss des Agents generieren', + 'settings.openchamber.visual.field.sessionSuggestion': 'Nächste Benutzernachricht vorschlagen', + 'settings.openchamber.visual.field.sessionSuggestionAria': 'Eine vorgeschlagene nächste Benutzernachricht nach Abschluss des Agents generieren', + 'settings.openchamber.visual.field.sessionGoal': 'Sitzungsziele aktivieren', + 'settings.openchamber.visual.field.sessionGoalAria': 'Die Sitzung automatisch auf ein Ziel hin arbeiten lassen', + 'settings.openchamber.visual.goal.sectionTitle': 'Ziel', + 'settings.openchamber.visual.goal.budgetLabel': 'Standard-Token-Budget', + 'settings.openchamber.visual.goal.budgetAria': 'Ein Standard-Token-Budget für neue Ziele anwenden', + 'settings.openchamber.visual.goal.description': 'Aktiviere die Ziel-Schaltfläche im Composer. Die nächste Nachricht wird zu einem Ziel: Der Agent arbeitet automatisch daran, auch wenn du weg bist, kontrolliert vom kleinen Modell.', + 'settings.openchamber.visual.field.showReasoningTracesAria': 'Denkspuren anzeigen', + 'settings.openchamber.visual.field.showReasoningTraces': 'Denkspuren anzeigen', + 'settings.openchamber.visual.field.collapsibleThinkingBlocksAria': 'Zusammenklappbare Denkblöcke aktivieren', + 'settings.openchamber.visual.field.collapsibleThinkingBlocks': 'Zusammenklappbare Denkblöcke aktivieren', + 'settings.openchamber.visual.field.collapsibleUserMessagesAria': 'Lange Benutzernachrichten einklappen', + 'settings.openchamber.visual.field.collapsibleUserMessages': 'Lange Benutzernachrichten einklappen', + 'settings.openchamber.visual.field.stickyUserHeaderAria': 'Fixierter Benutzerheader', + 'settings.openchamber.visual.field.stickyUserHeader': 'Fixierter Benutzerkopf', + 'settings.openchamber.visual.field.promptNavigatorEnabledAria': 'Prompt-Navigator', + 'settings.openchamber.visual.field.promptNavigatorEnabled': 'Prompt-Navigator', + 'settings.openchamber.visual.field.expandedEditorToolbarAria': 'Editor-Werkzeugleiste immer anzeigen', + 'settings.openchamber.visual.field.expandedEditorToolbar': 'Editor-Werkzeugleiste immer anzeigen (unter den Datei-Reitern angeheftet)', + 'settings.openchamber.visual.field.wideChatLayoutAria': 'Breites Chat-Layout', + 'settings.openchamber.visual.field.wideChatLayout': 'Breites Chat-Layout', + 'settings.openchamber.visual.field.codeBlockLineWrapAria': 'Codeblock-Zeilen umbrechen', + 'settings.openchamber.visual.field.codeBlockLineWrap': 'Codeblock-Zeilen umbrechen', + 'settings.openchamber.visual.field.showSplitAssistantMessageActionsAria': 'Inline-Assistant-Aktionen', + 'settings.openchamber.visual.field.showSplitAssistantMessageActions': 'Inline-Assistant-Aktionen', + 'settings.openchamber.visual.field.showSplitAssistantMessageActionsTooltip': 'Kopieren Sie Antwort, Speichern als Bild und Vorlesen in Assistant-Textblöcken anzeigen, die vor späteren Tool-Aufrufen in derselben Antwort erscheinen.', + 'settings.openchamber.visual.field.allowPromptingSubagentSessionsAria': 'Erlaube Prompting von Subagent-Sitzungen', + 'settings.openchamber.visual.field.allowPromptingSubagentSessions': 'Erlaube Prompting von Subagent-Sitzungen', + 'settings.openchamber.visual.field.showToolFileIconsAria': 'Tool-Datei-Symbole anzeigen', + 'settings.openchamber.visual.field.showToolFileIcons': 'Tool-Datei-Symbole anzeigen', + 'settings.openchamber.visual.field.showTurnChangedFilesAria': 'Geänderte Dateien für abgeschlossene Züge anzeigen', + 'settings.openchamber.visual.field.showTurnChangedFiles': 'Geänderte Dateien für abgeschlossene Züge anzeigen', + 'settings.openchamber.visual.field.showDotfilesAria': 'Dotfiles anzeigen', + 'settings.openchamber.visual.field.showDotfiles': 'Dotfiles anzeigen', + 'settings.openchamber.visual.field.queueMessagesByDefaultAria': 'Nachrichten standardmäßig in die Warteschlange stellen', + 'settings.openchamber.visual.field.queueMessagesByDefault': 'Nachrichten standardmäßig in die Warteschlange stellen', + 'settings.openchamber.visual.field.queueMessagesByDefaultTooltip': 'Wenn aktiviert, stellt Enter Nachrichten in die Warteschlange. Verwenden Sie {modifier}+Enter zum Senden.', + 'settings.openchamber.visual.field.persistDraftMessagesAria': 'Entwurfsnachrichten speichern', + 'settings.openchamber.visual.field.persistDraftMessages': 'Entwurfsnachrichten speichern', + 'settings.openchamber.visual.field.enableSpellcheckInTextInputsAria': 'Rechtschreibprüfung in Texteingaben aktivieren', + 'settings.openchamber.visual.field.enableSpellcheckInTextInputs': 'Rechtschreibprüfung in Texteingaben aktivieren', + 'settings.openchamber.visual.field.sendAnonymousUsageReportsAria': 'Anonyme Nutzungsberichte senden', + 'settings.openchamber.visual.field.sendAnonymousUsageReports': 'Anonyme Nutzungsberichte senden', + 'settings.openchamber.visual.field.sendAnonymousUsageReportsHint': 'Hilft uns zu verstehen, welche App-Versionen aktiv genutzt werden, damit wir Verbesserungen priorisieren können. Es werden nur die App-Version, Plattform und Laufzeit gesammelt - keine persönlichen Daten oder Code.', + 'settings.openchamber.visual.option.themeMode.system': 'System', + 'settings.openchamber.visual.option.themeMode.light': 'Hell', + 'settings.openchamber.visual.option.themeMode.dark': 'Dunkel', + 'settings.openchamber.visual.option.diffLayout.dynamic.label': 'Dynamisch', + 'settings.openchamber.visual.option.diffLayout.dynamic.description': 'Neu inline, geändert nebeneinander.', + 'settings.openchamber.visual.option.diffLayout.inline.label': 'Immer inline', + 'settings.openchamber.visual.option.diffLayout.inline.description': 'Als einheitliche Ansicht anzeigen.', + 'settings.openchamber.visual.option.diffLayout.sideBySide.label': 'Immer nebeneinander', + 'settings.openchamber.visual.option.diffLayout.sideBySide.description': 'Vergleiche Original- und geänderte Dateien.', + 'settings.openchamber.visual.option.mermaidRendering.svg.label': 'SVG', + 'settings.openchamber.visual.option.mermaidRendering.svg.description': 'Diagramme als skalierbare Grafiken rendern.', + 'settings.openchamber.visual.option.mermaidRendering.ascii.label': 'ASCII', + 'settings.openchamber.visual.option.mermaidRendering.ascii.description': 'Diagramme als Textblöcke rendern.', + 'settings.openchamber.visual.option.pwaOrientation.system.label': 'System folgen', + 'settings.openchamber.visual.option.pwaOrientation.system.description': 'Die Geräteorientierungseinstellung respektieren.', + 'settings.openchamber.visual.option.pwaOrientation.portrait.label': 'Hochformat sperren', + 'settings.openchamber.visual.option.pwaOrientation.portrait.description': 'App installieren, gesperrt im Hochformat.', + 'settings.openchamber.visual.option.pwaOrientation.landscape.label': 'Querformat sperren', + 'settings.openchamber.visual.option.pwaOrientation.landscape.description': 'App installieren, gesperrt im Querformat.', + 'settings.openchamber.visual.option.mobileKeyboardMode.native.label': 'Browser folgen', + 'settings.openchamber.visual.option.mobileKeyboardMode.native.description': 'Die Browser-Vorgabe für Panning und Viewport-Änderungen bei geöffneter Tastatur verwenden.', + 'settings.openchamber.visual.option.mobileKeyboardMode.resizeContent.label': 'Inhalt skalieren', + 'settings.openchamber.visual.option.mobileKeyboardMode.resizeContent.description': 'Fordert unterstützte Browser auf, das App-Layout zu verkleinern, anstatt nur auf Panning zu setzen.', + 'settings.openchamber.visual.option.userMessageRendering.markdown.label': 'Markdown', + 'settings.openchamber.visual.option.userMessageRendering.markdown.description': 'Benutzer-Text mit Markdown-Formatierung darstellen.', + 'settings.openchamber.visual.option.userMessageRendering.plain.label': 'Klartext', + 'settings.openchamber.visual.option.userMessageRendering.plain.description': 'Benutzer-Text mit erhaltenen Leerzeichen und Links darstellen.', + 'settings.openchamber.visual.option.chatRenderMode.sorted.label': 'Sortiert', + 'settings.openchamber.visual.option.chatRenderMode.sorted.description': 'Beendet Nachrichten des Assistenten ohne Live-Streaming darstellen.', + 'settings.openchamber.visual.option.chatRenderMode.live.label': 'Live', + 'settings.openchamber.visual.option.chatRenderMode.live.description': 'Streamt den Text und Werkzeuge des Assistenten, sobald sie eintreffen.', + 'settings.openchamber.visual.option.messageTransport.auto.label': 'Auto', + 'settings.openchamber.visual.option.messageTransport.auto.description': 'Bevorzugt WebSocket und wechselt bei Bedarf zu SSE.', + 'settings.openchamber.visual.option.messageTransport.ws.label': 'WebSocket', + 'settings.openchamber.visual.option.messageTransport.ws.description': 'Verwendet WebSocket für das Streamen von Nachrichten.', + 'settings.openchamber.visual.option.messageTransport.sse.label': 'SSE', + 'settings.openchamber.visual.option.messageTransport.sse.description': 'Verwendet Server-Sent Events für das Streamen von Nachrichten.', + 'settings.openchamber.visual.option.activityRenderMode.collapsed.label': 'Einklappen', + 'settings.openchamber.visual.option.activityRenderMode.collapsed.description': 'Aktivität standardmäßig einklappen.', + 'settings.openchamber.visual.option.activityRenderMode.summary.label': 'Erweitert', + 'settings.openchamber.visual.option.activityRenderMode.summary.description': 'Aktivität standardmäßig erweitern.', + 'settings.openchamber.visual.option.timeFormat.auto.label': 'Auto', + 'settings.openchamber.visual.option.timeFormat.auto.description': 'Verwendet die System-Lokalisierungseinstellung.', + 'settings.openchamber.visual.option.timeFormat.24h.label': '24-Stunden', + 'settings.openchamber.visual.option.timeFormat.24h.description': 'Zeigt die Zeit als 14:15 an.', + 'settings.openchamber.visual.option.timeFormat.12h.label': '12-Stunden', + 'settings.openchamber.visual.option.timeFormat.12h.description': 'Zeit als 02:15 PM anzeigen.', + 'settings.openchamber.visual.option.weekStart.auto.label': 'Automatisch', + 'settings.openchamber.visual.option.weekStart.auto.description': 'Lokale Wochenbeginn verwenden.', + 'settings.openchamber.visual.option.weekStart.monday.label': 'Montag', + 'settings.openchamber.visual.option.weekStart.sunday.label': 'Sonntag', + 'settings.magicPrompts.page.loading.aria': 'Wird geladen', + 'settings.magicPrompts.page.loading.text': 'Magic Prompts werden geladen...', + 'settings.magicPrompts.page.block.visiblePrompt': 'Sichtbare Eingabeaufforderung', + 'settings.magicPrompts.page.block.instructions': 'Anweisungen', + 'settings.magicPrompts.page.group.gitCommitGenerate.title': 'Commit-Erstellung', + 'settings.magicPrompts.page.group.gitCommitGenerate.description': 'Eingabeaufforderungen zur Commit-Nachrichtenerstellung: Sichtbare Benutzernachricht + versteckte Anweisungen.', + 'settings.magicPrompts.page.group.gitPrGenerate.title': 'PR-Erstellung', + 'settings.magicPrompts.page.group.gitPrGenerate.description': 'Eingabeaufforderungen zur PR-Titel-/Inhalts-Erstellung: Sichtbare Benutzernachricht + versteckte Anweisungen.', + 'settings.magicPrompts.page.group.githubPrReview.title': 'PR-Überprüfung', + 'settings.magicPrompts.page.group.githubPrReview.description': 'Eingabeaufforderungen für den PR-Überprüfungsprozess: Sichtbare Benutzernachricht + versteckte Anweisungspayload.', + 'settings.magicPrompts.page.group.githubIssueReview.title': 'Problem-Überprüfung', + 'settings.magicPrompts.page.group.githubIssueReview.description': 'Eingabeaufforderungen für den Problem-Überprüfungsprozess: Sichtbare Benutzernachricht + versteckte Anweisungspayload.', + 'settings.magicPrompts.page.group.githubPrFailedChecksReview.title': 'PR-Fehlgeschlagene Checks Überprüfung', + 'settings.magicPrompts.page.group.githubPrFailedChecksReview.description': 'Eingabeaufforderungen zur Analyse fehlgeschlagener PR-Checks.', + 'settings.magicPrompts.page.group.githubPrCommentsReview.title': 'PR-Kommentar-Überprüfung', + 'settings.magicPrompts.page.group.githubPrCommentsReview.description': 'Eingabeaufforderungen zur Analyse von PR-Kommentaren.', + 'settings.magicPrompts.page.group.githubSinglePrCommentReview.title': 'Einzelner PR-Kommentar-Überprüfung', + 'settings.magicPrompts.page.group.githubSinglePrCommentReview.description': 'Eingabeaufforderungen zur Analyse eines einzelnen PR-Kommentars.', + 'settings.magicPrompts.page.group.gitConflictResolve.title': 'Merge/Rebase Konfliktlösung', + 'settings.magicPrompts.page.group.gitConflictResolve.description': 'Eingabeaufforderungen beim Auflösen von Merge-/Rebase-Konflikten mit KI.', + 'settings.magicPrompts.page.group.gitCherrypickConflictResolve.title': 'Cherry-pick-Konfliktlösung', + 'settings.magicPrompts.page.group.gitCherrypickConflictResolve.description': 'Prompts, die bei der Auflösung von Cherry-pick-Konflikten im Integrierungsfluss verwendet werden.', + 'settings.magicPrompts.page.group.planImprove.title': 'Plan verbessern', + 'settings.magicPrompts.page.group.planImprove.description': 'Versteckter Prompt, der beim Senden eines gespeicherten Plans in einen Verbesserungsfluss verwendet wird.', + 'settings.magicPrompts.page.group.planTodo.title': 'Todo-Planung', + 'settings.magicPrompts.page.group.planTodo.description': 'Versteckter Prompt, der beim Senden einer Todo in eine neue Planungssitzung verwendet wird.', + 'settings.magicPrompts.page.group.planImplement.title': 'Plan umsetzen', + 'settings.magicPrompts.page.group.planImplement.description': 'Versteckter Prompt, der beim Senden eines gespeicherten Plans in einen Umsetzungsfluss verwendet wird.', + 'settings.magicPrompts.page.group.sessionSummary.title': 'Sitzungszusammenfassung', + 'settings.magicPrompts.page.group.sessionSummary.description': 'Prompts, die vom /summary-Slash-Befehl verwendet werden: sichtbare Benutzermitteilung + versteckte Anweisungen. Nicht-destructiv - komprimiert nicht die Sitzungshistorie.', + 'settings.magicPrompts.page.group.sessionWorkspaceReview.title': 'Arbeitsbereichsüberprüfung', + 'settings.magicPrompts.page.group.sessionExplore.title': 'Codebase-Tour', + 'settings.magicPrompts.page.group.sessionExplore.description': 'Von dem /explore-Slash-Befehl verwendete Prompts: sichtbare Benutzer-Nachricht + versteckte Anweisungen. Untersucht das Repository und gibt eine strukturierte Orientierung – den Überblick, Hauptmodule, wie sie miteinander verbunden sind und wo man beginnen sollte – anstelle einer Datei-für-Datei-Ausgabe.', + 'settings.magicPrompts.page.group.sessionWorkspaceReview.description': 'Prompts, die vom /workspace-review-Slash-Befehl verwendet werden: sichtbare Benutzermitteilung + versteckte Anweisungen. Überprüft die Arbeitsbereichsdifferenz, ob sie ihr Ziel erreicht und korrekt sowie angemessen ist, klassifiziert Ergebnisse nach Schweregrad.', + 'settings.magicPrompts.page.group.sessionFeaturePlan.title': 'Feature-Planung', + 'settings.magicPrompts.page.group.sessionFeaturePlan.description': 'Von dem /plan-feature-Slash-Befehl verwendete Prompts: sichtbare Benutzer-Nachricht + versteckte Anweisungen. Führt einen geführten Dialog durch, der die Codebasis erforscht und klärende Fragen in kleinen Mengen stellt, bevor ein Implementierungsplan erstellt wird.', + 'settings.magicPrompts.page.group.sessionCatchUp.title': 'Nachholen', + 'settings.magicPrompts.page.group.sessionCatchUp.description': 'Von dem /catch-up-Slash-Befehl verwendete Prompts: sichtbare Benutzer-Nachricht + versteckte Anweisungen. Erstellt branch-awareen Kontext – die Commits des Branches, seinen PR und uncommittede Arbeit zusammen – um zu verstehen, was du getan hast, dann gibt es eine übersichtliche Zusammenfassung und einen produktorientierten nächsten Schritt.', + 'settings.magicPrompts.page.group.sessionDebug.title': 'Fehlersuche', + 'settings.magicPrompts.page.group.sessionDebug.description': 'Von dem /debug-Slash-Befehl verwendete Prompts: sichtbare Benutzer-Nachricht + versteckte Anweisungen. Führt eine geführte Ursachenforschung durch – erfasst das Symptom, bildet Hypothesen, prüft diese gegen den Code und bestätigt die Ursache, bevor eine Lösung vorgeschlagen wird.', + 'settings.magicPrompts.page.group.sessionWeigh.title': 'Optionen bewerten', + 'settings.magicPrompts.page.group.sessionWeigh.description': 'Von dem /weigh-Slash-Befehl verwendete Prompts: sichtbare Benutzer-Nachricht + versteckte Anweisungen. Untersucht den Code, legt dann 2-3 verschiedene Ansätze mit Kompromissen und einer Empfehlung dar – ohne einen Plan oder Code zu schreiben.', + 'settings.magicPrompts.page.group.sessionFusion.title': 'Fusion', + 'settings.magicPrompts.page.group.sessionFusion.description': 'Prompts, die verwendet werden, wenn mehrere Lauf-Ergebnisse in eine endgültige Antwort zusammengeführt werden: sichtbare Benutzer-Nachricht + versteckte Anweisungen vor den Quell-Ergebnissen.', + 'settings.magicPrompts.page.actions.resetting': 'Zurücksetzen...', + 'settings.magicPrompts.page.actions.resetAllOverrides': 'Alle Überschreibungen zurücksetzen', + 'settings.magicPrompts.page.actions.resetToDefault': 'Auf Standard zurücksetzen', + 'settings.magicPrompts.page.actions.save': 'Speichern', + 'settings.magicPrompts.page.placeholdersLabel': 'Platzhalter:', + 'settings.magicPrompts.page.validation.visiblePromptRequired': 'Sichtbarer Prompt darf nicht leer sein.', + 'settings.magicPrompts.page.status.unsavedChanges': 'Nicht gespeicherte Änderungen', + 'settings.magicPrompts.page.status.usingSavedOverride': 'Gespeicherte Überschreibung wird verwendet', + 'settings.magicPrompts.page.status.usingBuiltinDefault': 'Eingebaute Standardeinstellung wird verwendet', + 'settings.magicPrompts.page.toast.loadFailed': 'Fehler beim Laden der Magic Prompts', + 'settings.magicPrompts.page.toast.visiblePromptRequired': 'Sichtbarer Prompt darf nicht leer sein', + 'settings.magicPrompts.page.toast.saved': 'Magic Prompt gespeichert', + 'settings.magicPrompts.page.toast.saveFailed': 'Fehler beim Speichern des Magic Prompts', + 'settings.magicPrompts.page.toast.resetSuccess': 'Prompt auf Standard zurückgesetzt', + 'settings.magicPrompts.page.toast.resetFailed': 'Fehler beim Zurücksetzen des Prompts', + 'settings.magicPrompts.page.toast.resetAllSuccess': 'Alle Prompt-Überschreibungen zurückgesetzt', + 'settings.magicPrompts.page.toast.resetAllFailed': 'Fehler beim Zurücksetzen aller Prompts', + 'settings.openchamber.visual.section.followUpBehavior': 'Follow-up-Verhalten', + 'settings.openchamber.visual.section.followUpBehaviorAria': 'Follow-up-Verhalten', + 'settings.openchamber.visual.field.followUpBehaviorAria': 'Follow-up-Verhalten: {option}', + 'settings.openchamber.visual.field.followUpBehaviorDescription': 'Wählen Sie aus, was passiert, wenn Sie Enter auf einer Follow-up-Nachricht drücken, während der Agent noch antwortet.', + 'settings.openchamber.visual.option.followUpBehavior.steer.label': 'Steuerung', + 'settings.openchamber.visual.option.followUpBehavior.queue.label': 'Warteschlange', +}; diff --git a/packages/ui/src/lib/i18n/messages/de.ts b/packages/ui/src/lib/i18n/messages/de.ts new file mode 100644 index 00000000..57aaad1a --- /dev/null +++ b/packages/ui/src/lib/i18n/messages/de.ts @@ -0,0 +1,2794 @@ +import { settingsDict } from './de.settings'; +import type { I18nDictionary } from '../types'; + +export const dict: Partial = { + ...settingsDict, + 'common.language.german': 'Deutsch', + 'chat.message.userText.collapseAria': 'Benutzer-Nachricht einklappen', + 'common.loading': 'Wird geladen...', + 'common.unavailable': 'Nicht verfügbar', + 'common.language.english': 'Englisch', + 'common.language.french': 'Französisch', + 'common.language.simplifiedChinese': 'Chinesisch (Vereinfacht)', + 'common.language.traditionalChinese': 'Chinesisch (Traditionell)', + 'common.language.ukrainian': 'Ukrainisch', + 'common.language.spanish': 'Spanisch', + 'common.language.brazilianPortuguese': 'Brasilianisches Portugiesisch', + 'common.language.korean': 'Koreanisch', + 'common.language.polish': 'Polnisch', + 'common.language.japanese': 'Japanisch', + 'common.revealPath.finder': 'Im Finder anzeigen', + 'common.revealPath.fileExplorer': 'In Datei-Explorer öffnen', + 'common.revealPath.fileManager': 'In Dateimanager öffnen', + 'pwa.installPrompt.description': 'Installiere OpenChamber für schnelleren Zugriff', + 'pwa.installPrompt.action': 'Installieren', + 'pwa.installPrompt.dismiss': 'Schließen', + 'pwa.installPrompt.started': 'Installation gestartet', + 'pwa.installPrompt.installed': 'OpenChamber installiert', + 'shareOpinion.actions.shareOpinion': 'Meinung teilen', + 'shareOpinion.actions.bookCall': 'Anruf vereinbaren', + 'shareOpinion.actions.shortSurvey': 'Kurze Umfrage', + 'shareOpinion.dialog.title': 'Teile deine Meinung', + 'shareOpinion.toast.title': 'Hilf bei der Gestaltung von OpenChamber', + 'shareOpinion.toast.description': 'Teile, was nützlich, verwirrend oder fehlt, um mitzuwirken, was als Nächstes kommt.', + 'sessions.sidebar.footer.actions.shareOpinion': 'Meinung teilen', + 'layout.mainTab.chat': 'Chat', + 'layout.mainTab.plan': 'Plan', + 'layout.mainTab.diff': 'Diff', + 'layout.mainTab.diagram': 'Diagramm', + 'layout.mainTab.files': 'Dateien', + 'layout.mainTab.terminal': 'Terminal', + 'layout.mainTab.context': 'Kontext', + 'mobile.nav.aria': 'Mobile Navigation', + 'mobile.connect.welcome.title': 'Mit OpenChamber verbinden', + 'mobile.connect.welcome.description': 'Füge eine Server-URL hinzu oder scanne einen Pairing-QR-Code, um die mobile App zu nutzen.', + 'mobile.connect.url.label': 'Server-URL', + 'mobile.connect.url.placeholder': 'http://192.168.1.74:2606', + 'mobile.connect.token.label': 'Client-Token', + 'mobile.connect.token.placeholder': 'Zugriffstoken einfügen', + 'mobile.connect.token.hint': 'Nur erforderlich, wenn Ihr Server ein Token anstelle eines Passworts erfordert.', + 'mobile.connect.password.label': 'Passwort', + 'mobile.connect.password.placeholder': 'OpenChamber-Passwort', + 'mobile.connect.connectButton': 'Verbinden', + 'mobile.connect.unlockButton': 'Entsperren und verbinden', + 'mobile.connect.cancelPassword': 'Anderen Server verwenden', + 'mobile.connect.connecting': 'Verbindung herstellen...', + 'mobile.connect.scanQr': 'QR-Code scannen', + 'mobile.connect.welcome.scanHint': 'Öffnen Sie auf Ihrem Computer «Gerät hinzufügen», um einen QR-Code anzuzeigen, und scannen Sie ihn dann hier.', + 'mobile.connect.advanced': 'Erweitert', + 'mobile.connect.manual.toggle': 'Verbindung über Adresse', + 'mobile.connect.scan.permissionDenied': 'Kamerazugriff ist ausgeschaltet. Aktivieren Sie ihn in den Einstellungen, um einen QR-Code zu scannen.', + 'mobile.connect.scan.failed': 'Konnte diesen QR-Code nicht scannen. Versuchen Sie es erneut oder geben Sie die URL manuell ein.', + 'mobile.connect.scan.invalid': 'Dieser QR-Code ist kein OpenChamber-Verbindungscode.', + 'mobile.connect.scan.unsupported': 'QR-Scanning ist nur in der installierten mobilen App verfügbar.', + 'mobile.connect.saved.title': 'Gespeicherte Verbindungen', + 'mobile.connect.saved.empty': 'Noch keine gespeicherten Verbindungen.', + 'mobile.connect.relay.badge': 'über OpenChamber Relay', + 'mobile.connect.error.urlRequired': 'Geben Sie eine Server-URL ein.', + 'mobile.connect.splash.connectingTo': 'Verbindung zum Gerät:', + 'mobile.connect.error.invalidUrl': 'Diese Server-URL ist ungültig.', + 'mobile.connect.error.unreachable': 'Konnte den OpenChamber-Server nicht erreichen.', + 'mobile.connect.error.authRequired': 'Dieser Server benötigt ein Passwort oder ein Client-Token.', + 'mobile.connect.error.passwordFailed': 'Konnte diesen Server nicht entsperren. Überprüfen Sie das Passwort.', + 'mobile.instances.addTitle': 'Instanz hinzufügen', + 'mobile.instances.addManual': 'Nach Adresse hinzufügen', + 'mobile.instances.editTitle': 'Instanz bearbeiten', + 'mobile.instances.edit': 'Bearbeiten', + 'mobile.instances.delete': 'Löschen', + 'mobile.instances.deleteAria': 'Lösche {label}', + 'mobile.instances.confirmDeleteAria': 'Löschen bestätigen {label}', + 'mobile.instances.cancelDeleteAria': '{label} behalten', + 'mobile.instances.cancelEdit': 'Abbrechen', + 'mobile.instances.label.label': 'Name', + 'mobile.instances.label.placeholder': 'Optionaler Anzeigename', + 'mobile.instances.saveNew': 'Instanz speichern', + 'mobile.instances.status.connectedDirect': 'Verbunden · Lokales Netzwerk', + 'mobile.instances.status.connectedRelay': 'Verbunden · Privater Relay', + 'mobile.instances.saveEdit': 'Änderungen speichern', + 'mobile.nav.changes': 'Änderungen', + 'mobile.nav.settings': 'Einstellungen', + 'mobile.surface.closeAria': 'Schließen', + 'mobile.header.openMenuAria': 'Menü öffnen', + 'mobile.header.openMetadataAria': 'Sitzungs-Metadaten öffnen', + 'mobile.header.metadata.context': 'Kontext', + 'mobile.header.metadata.branch': 'Zweig', + 'mobile.header.metadata.usage': 'Nutzung', + 'mobile.menu.titleAria': 'Arbeitsbereichstools', + 'mobile.menu.files': 'Dateien', + 'mobile.menu.changes': 'Änderungen', + 'mobile.menu.mcp': 'MCP', + 'mobile.menu.instances': 'Instanzen', + 'mobile.menu.update': 'Aktualisieren', + 'mobile.menu.settings': 'Einstellungen', + 'mobile.sessions.newChatCta': 'Neuer Chat in {project}', + 'mobile.sessions.dateGroup.today': 'Heute', + 'mobile.sessions.dateGroup.yesterday': 'Gestern', + 'mobile.sessions.dateGroup.thisWeek': 'Früher diese Woche', + 'mobile.sessions.dateGroup.older': 'Älter', + 'mobile.sessions.section.worktrees': 'Worktrees', + 'mobile.sessions.section.otherProjects': 'Projekt wechseln', + 'mobile.sessions.section.projects': 'Projekte', + 'mobile.sessions.empty.noProjectsTitle': 'Noch keine Projekte', + 'mobile.sessions.empty.noProjectsDescription': 'Füge ein Projekt hinzu, um mit deinem Code zu chatten.', + 'mobile.sessions.empty.noSessionsTitle': 'Noch keine Sitzungen', + 'mobile.sessions.empty.noSessionsDescription': 'Starte deinen ersten Chat, um ihn hier zu sehen.', + 'mobile.sessions.empty.searchTitle': 'Keine Treffer', + 'mobile.sessions.empty.searchDescription': 'Versuche einen anderen Suchbegriff.', + 'mobile.sessions.showArchived': 'Archivierte anzeigen ({count})', + 'mobile.sessions.hideArchived': 'Archivierte ausblenden', + 'mobile.sessions.activeWorktreeAria': 'Aktives Worktree', + 'mobile.sessions.activeProjectAria': 'Aktives Projekt', + 'mobile.sessions.startNewChat': 'Neuen Chat starten', + 'mobile.sessions.newChat': 'Neuer Chat', + 'mobile.sessions.editOrder': 'Projekte neu anordnen', + 'mobile.sessions.doneEditing': 'Fertig', + 'mobile.sessions.editOrderHint': 'Ziehe den Griff, um die Projekte neu anzuordnen. Tippe auf das Häkchen, um zu beenden.', + 'mobile.sessions.editProjectAria': '{label} bearbeiten', + 'mobile.sessions.dragHandleAria': '{label} ziehen, um neu anzuordnen', + 'mobile.sessions.moveUpAria': '{label} nach oben verschieben', + 'mobile.sessions.moveDownAria': '{label} nach unten verschieben', + 'mobile.sessions.removeProjectAria': '{label} entfernen', + 'mobile.sessions.cancelRemoveProjectAria': 'Entfernen von {label} abbrechen', + 'mobile.sessions.confirmRemoveProject': 'Schließen', + 'mobile.sessions.confirmRemoveProjectAria': 'Entfernen von {label} bestätigen', + 'mobile.sessions.toast.projectRemoved': '{label} entfernt', + 'mobile.sessions.archiveSessionAria': '{title} archivieren', + 'mobile.sessions.cancelArchiveAria': 'Archivierung von {title} abbrechen', + 'mobile.projectEdit.worktreesTitle': 'Worktrees', + 'mobile.projectEdit.worktreesEmpty': 'Noch keine Worktrees in diesem Projekt.', + 'mobile.projectEdit.reorderHint': 'Ziehen, um Worktrees neu anzuordnen.', + 'mobile.projectEdit.dragWorktreeAria': '{label} ziehen, um neu anzuordnen', + 'mobile.projectEdit.deleteWorktreeAria': 'Worktree {label} entfernen', + 'mobile.projectEdit.deleteWorktreeTitle': 'Worktree entfernen', + 'mobile.projectEdit.deleteWorktreeConfirmButton': 'Entfernen', + 'mobile.projectEdit.deleteWorktreeConfirm': 'Worktree „{name}“ entfernen? Dies kann nicht rückgängig gemacht werden.', + 'mobile.projectEdit.deleteWorktreeDirty': 'Dieser Worktree hat uncommittete Änderungen, die verloren gehen werden.', + 'mobile.projectEdit.deleteWorktreeArchiveNote': '{count} angehängte Sitzung(en) werden archiviert.', + 'mobile.projectEdit.deleteLocalBranch': 'Lokale Branch auch löschen', + 'mobile.projectEdit.deleteRemoteBranch': 'Entferne Remote-Branch', + 'mobile.sessions.showMore': '{count} weitere anzeigen', + 'mobile.sessions.search.section.sessions': 'Sitzungen', + 'mobile.sessions.search.section.archived': 'Archiviert', + 'mobile.sessions.search.section.projects': 'Projekte', + 'mobile.sessions.clearSearchAria': 'Suche löschen', + 'mobile.header.noProject': 'Projekt auswählen', + 'mobile.header.activeSession': 'Aktive Sitzung', + 'mobile.header.noSession': 'Keine aktive Sitzung', + 'mobile.sessions.openSheetAria': 'Sitzungen und Projekte öffnen', + 'mobile.sessions.closeSheetAria': 'Sitzungen und Projekte schließen', + 'mobile.sessions.sheet.title': 'Sitzungen', + 'mobile.sessions.sheet.description': 'Projekte wechseln, Sitzungen öffnen oder einen neuen Chat starten.', + 'mobile.sessions.search.placeholder': 'Sitzungen durchsuchen', + 'mobile.sessions.empty': 'Keine Sitzungen gefunden.', + 'mobile.sessions.unassignedProject': 'Andere Sitzungen', + 'mobile.sessions.newSessionAria': 'Neue Sitzung in diesem Projekt starten', + 'mobile.sessions.untitled': 'Unbenannte Sitzung', + 'mobile.sessions.project.sessionsSingle': '1 Sitzung', + 'mobile.sessions.project.sessionsPlural': '{count} Sitzungen', + 'mobile.files.refreshAria': 'Dateien aktualisieren', + 'mobile.files.backToParentAria': 'Zurück zu {name}', + 'mobile.files.rootDirectory': 'Projektdateien', + 'mobile.files.search.placeholder': 'Dateien durchsuchen', + 'mobile.files.search.empty': 'Keine Dateien gefunden.', + 'mobile.files.parentDirectory': 'Übergeordnetes Verzeichnis', + 'mobile.files.empty.noDirectory': 'Wählen Sie ein Projekt aus, um Dateien zu durchsuchen.', + 'mobile.files.empty.directory': 'Dieses Verzeichnis ist leer.', + 'mobile.files.error.listFailed': 'Fehler beim Laden der Dateien', + 'mobile.files.error.readUnavailable': 'Dateivorschau ist in dieser Laufzeit nicht verfügbar.', + 'mobile.files.file.truncated': 'Dateivorschau für mobile Geräte gekürzt.', + 'mobile.files.copyPathAria': 'Dateipfad kopieren', + 'mobile.files.copyContent': 'Inhalt kopieren', + 'mobile.files.copyContentAria': 'Dateiinhalt kopieren', + 'mobile.files.toast.pathCopied': 'Pfad kopiert', + 'mobile.files.toast.contentCopied': 'Inhalt kopiert', + 'mobile.files.toast.copyFailed': 'Kopieren fehlgeschlagen', + 'mobile.changes.placeholder.title': 'Änderungen', + 'mobile.changes.placeholder.description': 'Arbeitsbaum-Überprüfung, Synchronisierung und Commit-Aktionen werden hier angezeigt.', + 'mobile.changes.branchLabel': 'Branch: {branch}', + 'mobile.changes.noRemote': 'Kein Remote verfügbar', + 'mobile.changes.cleanDescription': 'Es gibt keine geänderten Dateien in dieser Arbeitsumgebung.', + 'mobile.changes.diffDetail.subtitle': 'Read-only Diff', + 'mobile.changes.diffDetail.loadFailed': 'Fehler beim Laden des Diffs', + 'mobile.changes.diffDetail.missingTitle': 'Datei wurde nicht mehr geändert', + 'mobile.changes.diffDetail.missingDescription': 'Zurück zu Änderungen gehen und Liste aktualisieren.', + 'mobile.changes.diffDetail.imageUnavailable': 'Bild-Diffs sind in mobilen Änderungen noch nicht verfügbar.', + 'mobile.settings.placeholder.title': 'Einstellungen', + 'mobile.settings.placeholder.description': 'Fokussierte mobile Verbindungs- und App-Einstellungen werden hier angezeigt.', + 'layout.rightSidebar.git': 'Git', + 'layout.rightSidebar.files': 'Dateien', + 'layout.rightSidebar.context': 'Kontext', + 'layout.services.instance': 'Instanz', + 'layout.services.usage': 'Nutzung', + 'sessions.sidebar.header.actions.closeSessions': 'Sitzungen schließen', + 'sessions.sidebar.header.actions.addProject': 'Projekt hinzufügen', + 'sessions.sidebar.header.actions.newSession': 'Neue Sitzung', + 'sessions.sidebar.header.actions.newMultiRun': 'Neuer Multi-Run', + 'sessions.sidebar.header.actions.scheduledTasks': 'Geplante Aufgaben', + 'sessions.scheduledTasks.dialog.title': 'Geplante Aufgaben', + 'sessions.scheduledTasks.dialog.description': 'Serverseitige Aufgaben, die eine neue Sitzung erstellen und einen konfigurierten Prompt senden.', + 'sessions.scheduledTasks.dialog.project.label': 'Projekt', + 'sessions.scheduledTasks.dialog.project.placeholder': 'Projekt auswählen', + 'sessions.scheduledTasks.dialog.project.empty': 'Keine Projekte', + 'sessions.scheduledTasks.dialog.actions.newTask': 'Neue Aufgabe', + 'sessions.scheduledTasks.dialog.actions.runNow': 'Jetzt ausführen', + 'sessions.scheduledTasks.dialog.actions.edit': 'Bearbeiten', + 'sessions.scheduledTasks.dialog.actions.editAria': 'Bearbeite {taskName}', + 'sessions.scheduledTasks.dialog.actions.deleteAria': 'Lösche {taskName}', + 'sessions.scheduledTasks.dialog.loading': 'Aufgaben werden geladen...', + 'sessions.scheduledTasks.dialog.empty.noTasks': 'Noch keine geplanten Aufgaben.', + 'sessions.scheduledTasks.dialog.empty.selectProject': 'Wählen Sie ein Projekt aus, um geplante Aufgaben zu verwalten.', + 'sessions.scheduledTasks.dialog.error.chooseProjectFirst': 'Wählen Sie zuerst ein Projekt', + 'sessions.scheduledTasks.dialog.toast.loadFailed': 'Fehler beim Laden der geplanten Aufgaben', + 'sessions.scheduledTasks.dialog.toast.saved': 'Geplante Aufgabe gespeichert', + 'sessions.scheduledTasks.dialog.toast.updateFailed': 'Fehler beim Aktualisieren der Aufgabe', + 'sessions.scheduledTasks.dialog.toast.deleted': 'Geplante Aufgabe gelöscht', + 'sessions.scheduledTasks.dialog.toast.deleteFailed': 'Fehler beim Löschen der Aufgabe', + 'sessions.scheduledTasks.dialog.toast.started': 'Aufgabe gestartet', + 'sessions.scheduledTasks.dialog.toast.runFailed': 'Fehler beim Ausführen der Aufgabe', + 'sessions.scheduledTasks.dialog.confirm.deleteTask': 'Geplante Aufgabe "{taskName}" löschen?', + 'sessions.scheduledTasks.dialog.schedule.daily': 'Täglich {time}', + 'sessions.scheduledTasks.dialog.schedule.dailyWithTimezone': 'Täglich {time} ({timezone})', + 'sessions.scheduledTasks.dialog.schedule.weekly': 'Wöchentlich {days} {time}', + 'sessions.scheduledTasks.dialog.schedule.weeklyWithTimezone': 'Wöchentlich {days} {time} ({timezone})', + 'sessions.scheduledTasks.dialog.schedule.once': 'Einmalig {date} {time}', + 'sessions.scheduledTasks.dialog.schedule.onceWithTimezone': 'Einmalig {date} {time} ({timezone})', + 'sessions.scheduledTasks.dialog.schedule.cron': 'Cron: {cron}', + 'sessions.scheduledTasks.dialog.schedule.cronWithTimezone': 'Cron: {cron} ({timezone})', + 'sessions.scheduledTasks.dialog.schedule.unknownDate': 'Unbekanntes Datum', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.sun': 'So', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.mon': 'Mo', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.tue': 'Di', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.wed': 'Mi', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.thu': 'Do', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.fri': 'Fr', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.sat': 'Sa', + 'sessions.scheduledTasks.dialog.schedule.weekdayShort.unknown': '?', + 'sessions.scheduledTasks.dialog.relativeTime.inLessThanOneMinute': 'in <1m', + 'sessions.scheduledTasks.dialog.relativeTime.justNow': 'gerade jetzt', + 'sessions.scheduledTasks.dialog.relativeTime.inMinutes': 'in {count}m', + 'sessions.scheduledTasks.dialog.relativeTime.minutesAgo': '{count}m her', + 'sessions.scheduledTasks.dialog.relativeTime.inDuration': 'in {duration}', + 'sessions.scheduledTasks.dialog.relativeTime.durationAgo': '{duration} her', + 'sessions.scheduledTasks.dialog.status.success': 'Erfolg', + 'sessions.scheduledTasks.dialog.status.error': 'Fehler', + 'sessions.scheduledTasks.dialog.status.running': 'Läuft', + 'sessions.scheduledTasks.dialog.status.idle': 'Leerlauf', + 'sessions.scheduledTasks.dialog.nextRun.label': 'Nächste', + 'sessions.scheduledTasks.dialog.lastRun.label': 'Letzte Ausführung', + 'sessions.scheduledTasks.dialog.lastRun.runningNow': 'läuft gerade', + 'sessions.scheduledTasks.dialog.lastRun.never': 'nie', + 'sessions.scheduledTasks.dialog.taskToggle.enableAria': '{taskName} aktivieren', + 'sessions.scheduledTasks.dialog.taskToggle.pauseAria': '{taskName} pausieren', + 'sessions.scheduledTasks.dialog.taskToggle.enabled': 'Aktiviert', + 'sessions.scheduledTasks.dialog.taskToggle.paused': 'Pausiert', + 'sessions.scheduledTasks.editor.title.edit': 'Geplante Aufgabe bearbeiten', + 'sessions.scheduledTasks.editor.title.new': 'Neue geplante Aufgabe', + 'sessions.scheduledTasks.editor.description': 'Konfigurieren Sie eine serverseitige Aufgabe, die eine neue Sitzung erstellt und eine Eingabeaufforderung sendet.', + 'sessions.scheduledTasks.editor.taskName.label': 'Aufgabenname', + 'sessions.scheduledTasks.editor.taskName.placeholder': 'Tägliche Synchronisierung', + 'sessions.scheduledTasks.editor.scheduleType.label': 'Zeitplan-Typ', + 'sessions.scheduledTasks.editor.scheduleType.daily': 'Täglich', + 'sessions.scheduledTasks.editor.scheduleType.weekly': 'Wöchentlich', + 'sessions.scheduledTasks.editor.scheduleType.once': 'Einmalig', + 'sessions.scheduledTasks.editor.scheduleType.cron': 'Cron', + 'sessions.scheduledTasks.editor.date.label': 'Datum', + 'sessions.scheduledTasks.editor.date.placeholder': 'Datum auswählen', + 'sessions.scheduledTasks.editor.date.previousMonth': 'Vorheriger Monat', + 'sessions.scheduledTasks.editor.date.nextMonth': 'Nächster Monat', + 'sessions.scheduledTasks.editor.date.jumpToToday': 'Zu heute springen', + 'sessions.scheduledTasks.editor.date.today': 'Heute', + 'sessions.scheduledTasks.editor.time.label': 'Uhrzeit', + 'sessions.scheduledTasks.editor.time.hourAria': 'Stunden', + 'sessions.scheduledTasks.editor.time.minuteAria': 'Minuten', + 'sessions.scheduledTasks.editor.time.periodAria': 'Zeitperiode', + 'sessions.scheduledTasks.editor.time.period.am': 'AM', + 'sessions.scheduledTasks.editor.time.period.pm': 'PM', + 'sessions.scheduledTasks.editor.times.label': 'Zeiten', + 'sessions.scheduledTasks.editor.times.add': 'Zeit hinzufügen', + 'sessions.scheduledTasks.editor.times.removeAria': 'Zeit entfernen', + 'sessions.scheduledTasks.editor.timezone.label': 'Zeitzone', + 'sessions.scheduledTasks.editor.weekdays.label': 'Wochentage', + 'sessions.scheduledTasks.editor.model.label': 'Modell', + 'sessions.scheduledTasks.editor.thinkingLevel.label': 'Denklevel', + 'sessions.scheduledTasks.editor.thinkingLevel.default': 'Standard', + 'sessions.scheduledTasks.editor.agent.label': 'Agent', + 'sessions.scheduledTasks.editor.prompt.label': 'Prompt', + 'sessions.scheduledTasks.editor.prompt.placeholder': 'Zusammenfassung offener Aufgaben und Vorschläge für nächste Schritte', + 'sessions.scheduledTasks.editor.enabled.aria': 'Aufgabe aktivieren', + 'sessions.scheduledTasks.editor.enabled.label': 'Aktiviert', + 'sessions.scheduledTasks.editor.goal.label': 'Als Ziel ausführen', + 'sessions.scheduledTasks.editor.goal.aria': 'Führe diese Aufgabe als Ziel aus, das der Agent bis zum Abschluss verfolgt', + 'sessions.scheduledTasks.editor.goal.budgetLabel': 'Token-Budget', + 'sessions.scheduledTasks.editor.goal.budgetAria': 'Begrenze das Ziel auf ein Token-Budget', + 'sessions.scheduledTasks.editor.actions.closeAria': 'Schließen', + 'sessions.scheduledTasks.editor.actions.cancel': 'Abbrechen', + 'sessions.scheduledTasks.editor.actions.save': 'Speichern', + 'sessions.scheduledTasks.editor.actions.saving': 'Speichern...', + 'sessions.scheduledTasks.editor.toast.saveFailed': 'Fehler beim Speichern der Aufgabe', + 'sessions.scheduledTasks.editor.validation.taskNameRequired': 'Aufgabenname ist erforderlich', + 'sessions.scheduledTasks.editor.validation.promptRequired': 'Prompt ist erforderlich', + 'sessions.scheduledTasks.editor.validation.modelRequired': 'Modell ist erforderlich', + 'sessions.scheduledTasks.editor.validation.dateFormat': 'Datum muss im Format YYYY-MM-DD sein', + 'sessions.scheduledTasks.editor.validation.timeFormat': 'Zeit muss im Format HH:mm sein', + 'sessions.scheduledTasks.editor.validation.atLeastOneTime': 'Fügen Sie mindestens eine gültige Zeit hinzu', + 'sessions.scheduledTasks.editor.validation.atLeastOneWeekday': 'Wählen Sie mindestens einen Wochentag aus', + 'sessions.scheduledTasks.editor.validation.timezoneRequired': 'Zeitzone ist erforderlich', + 'sessions.scheduledTasks.editor.validation.cronRequired': 'Cron-Ausdruck ist erforderlich', + 'sessions.scheduledTasks.editor.validation.cronInvalid': 'Ungültiger Cron-Ausdruck', + 'sessions.scheduledTasks.editor.cronExpression.label': 'Cron-Ausdruck', + 'sessions.scheduledTasks.editor.cronExpression.placeholder': '*/5 * * * *', + 'sessions.scheduledTasks.editor.cronExpression.nextRuns': 'Nächste Ausführungen', + 'sessions.scheduledTasks.editor.cronExpression.examples': 'Beispiele', + 'sessions.scheduledTasks.editor.cronExpression.examples.every5min': 'Alle 5 Minuten', + 'sessions.scheduledTasks.editor.cronExpression.examples.everyHour': 'Stündlich', + 'sessions.scheduledTasks.editor.cronExpression.examples.monday9am': 'Jeden Montag um 9 Uhr', + 'sessions.scheduledTasks.editor.cronExpression.examples.9am5pm': 'Täglich 9 Uhr und 17 Uhr', + 'sessions.scheduledTasks.editor.cronExpression.examples.firstOfMonth': 'Erster Tag jeden Monats', + 'multirun.launcher.title': 'Neuer Multi-Run', + 'multirun.launcher.actions.closeEsc': 'Schließen (Esc)', + 'multirun.launcher.actions.cancel': 'Abbrechen', + 'multirun.launcher.actions.creating': 'Erstellen...', + 'multirun.launcher.actions.startWithModelCount': 'Start ({count} Modelle)', + 'multirun.launcher.project.label': 'Projekt', + 'multirun.launcher.project.placeholder': 'Projekt auswählen', + 'multirun.launcher.project.empty': 'Fügen Sie zunächst ein Projekt hinzu.', + 'multirun.launcher.project.gitRequired': 'Keine Worktree-Isolation: Laufende Prozesse verwenden dasselbe Verzeichnis.', + 'multirun.launcher.groupName.label': 'Gruppenname', + 'multirun.launcher.groupName.info': 'Wird für Worktree-Verzeichnis und Branch-Namen verwendet', + 'multirun.launcher.groupName.placeholder': 'feature-auth, bugfix-login', + 'multirun.launcher.baseBranch.label': 'Basis-Branch', + 'multirun.launcher.baseBranch.info': 'Neuer Branch wird von diesem Basis-Branch pro Modell erstellt', + 'multirun.launcher.isolateRuns.label': 'Lauf isolation', + 'multirun.launcher.agent.label': 'Agent', + 'multirun.launcher.agent.info': 'Agent, der für alle Laufenden verwendet wird. Standardmäßig Ihr konfigurierter Agent.', + 'multirun.launcher.setupCommands.label': 'Setup-Befehle', + 'multirun.launcher.setupCommands.loading': 'Laden...', + 'multirun.launcher.setupCommands.commandPlaceholder': 'bun install', + 'multirun.launcher.setupCommands.removeCommandAria': 'Befehl entfernen', + 'multirun.launcher.setupCommands.addCommand': 'Befehl hinzufügen', + 'multirun.launcher.prompt.label': 'Eingabeaufforderung', + 'multirun.launcher.prompt.placeholder': 'Geben Sie die Eingabeaufforderung ein, die an alle Modelle gesendet werden soll...', + 'multirun.launcher.attachments.attach': 'Anhängen', + 'multirun.launcher.attachments.tooltip': 'Denselben Dateien an alle Durchläufe senden', + 'multirun.launcher.models.label': 'Modelle', + 'multirun.launcher.models.info': 'Wählen Sie 2-{max} Modelle. Das gleiche Modell kann mehrfach hinzugefügt werden.', + 'multirun.launcher.toast.fileTooLarge': 'Datei "{fileName}" ist zu groß (max. 10MB)', + 'multirun.launcher.toast.attachFailed': 'Fehler beim Anhängen von "{fileName}"', + 'multirun.launcher.toast.attachedSingle': '{count} Datei angehängt', + 'multirun.launcher.toast.attachedPlural': '{count} Dateien angehängt', + 'multirun.modelMultiSelect.actions.addModel': 'Modell hinzufügen', + 'multirun.modelMultiSelect.search.placeholder': 'Modelle durchsuchen', + 'multirun.modelMultiSelect.search.noResults': 'Keine Modelle gefunden', + 'multirun.modelMultiSelect.sections.favorites': 'Favoriten', + 'multirun.modelMultiSelect.sections.recent': 'Kürzlich', + 'multirun.modelMultiSelect.variant.placeholder': 'Wird nachgedacht', + 'multirun.modelMultiSelect.variant.default': 'Standard', + 'multirun.modelMultiSelect.keyboard.hint': '↑↓ navigieren • Enter auswählen • Esc schließen', + 'multirun.modelMultiSelect.validation.minOnly': 'Wählen Sie mindestens {min} Modelle.', + 'multirun.modelMultiSelect.validation.minToMax': 'Wählen Sie zwischen {min} und {max} Modellen.', + 'multirun.agentSelector.placeholder': 'Einen Agenten auswählen', + 'multirun.fusion.title': 'Fusion starten', + 'multirun.fusion.description': 'Kombinieren Sie die ausgewählten Multi-Run-Ergebnisse zu einer stärkeren Antwort.', + 'multirun.fusion.provider.placeholder': 'Anbieter', + 'multirun.fusion.model.placeholder': 'Modell', + 'multirun.fusion.sources.label': 'Quellen ({count})', + 'multirun.fusion.actions.cancel': 'Abbrechen', + 'multirun.fusion.actions.start': 'Fusion starten', + 'multirun.fusion.actions.starting': 'Starte...', + 'multirun.fusion.toast.noOutputs': 'Keine Assistentenausgaben zum Zusammenführen gefunden.', + 'multirun.fusion.toast.failed': 'Start des Zusammenführens fehlgeschlagen.', + 'multirun.launcher.attachments.label': 'Dateien', + 'multirun.launcher.actions.startWithRunCount': 'Start ({count} Durchläufe)', + 'multirun.launcher.groups.addGroup': 'Durchlaufgruppe hinzufügen', + 'multirun.launcher.groups.removeGroup': 'Gruppe entfernen', + 'multirun.launcher.groups.groupLabel': 'Durchlaufgruppe {index}', + 'multirun.launcher.groups.template.label': 'Vorlage', + 'multirun.launcher.groups.template.placeholder': 'Eine Vorlage auswählen...', + 'multirun.launcher.groups.template.custom': 'Benutzerdefinierter Prompt', + 'multirun.launcher.groups.prompt.label': 'Prompt', + 'multirun.launcher.groups.prompt.placeholder': 'Prompt für diese Gruppe eingeben...', + 'sessions.sidebar.header.actions.searchSessions': 'Sitzungen durchsuchen', + 'sessions.sidebar.header.actions.exitSelection': 'Auswahl beenden', + 'sessions.sidebar.header.actions.selectSessions': 'Sitzungen auswählen', + 'sessions.sidebar.header.actions.sortProjects': 'Projekte sortieren', + 'sessions.sidebar.header.actions.sessionDisplayMode': 'Sitzungs-Anzeigemodus', + 'sessions.sidebar.header.displayMode.label': 'Anzeigemodus', + 'sessions.sidebar.header.displayMode.default': 'Standard', + 'sessions.sidebar.header.displayMode.minimal': 'Minimal', + 'sessions.sidebar.header.displayMode.showRecent': 'Letzten Abschnitt anzeigen', + 'sessions.sidebar.header.displayMode.showArchived': 'Archivierte Sitzungen anzeigen', + 'sessions.sidebar.header.displayMode.collapseAll': 'Alle einklappen', + 'sessions.sidebar.header.displayMode.expandAll': 'Alle ausklappen', + 'sessions.sidebar.header.projectSort.manual': 'Manuell', + 'sessions.sidebar.header.projectSort.aToZ': 'A → Z', + 'sessions.sidebar.header.projectSort.zToA': 'Z → A', + 'sessions.sidebar.header.projectSort.dateAdded': 'Neueste', + 'sessions.sidebar.header.projectSort.recent': 'Kürzlich', + 'sessions.sidebar.header.search.matchCountSingle': '{count} Treffer', + 'sessions.sidebar.header.search.matchCountPlural': '{count} Treffer', + 'sessions.sidebar.header.search.escapeHint': 'Esc zum Löschen', + 'sessions.sidebar.header.search.placeholder': 'Sitzungen durchsuchen...', + 'sessions.sidebar.header.search.clear': 'Suche löschen', + 'sessions.sidebar.footer.actions.settings': 'Einstellungen', + 'sessions.sidebar.footer.actions.shortcuts': 'Tastenkürzel', + 'sessions.sidebar.footer.actions.aboutOpenChamber': 'Über OpenChamber', + 'sessions.sidebar.footer.actions.update': 'Aktualisieren', + 'sessions.sidebar.empty.noSessions.title': 'Noch keine Sitzungen', + 'sessions.sidebar.empty.noSessions.description': 'Erstellen Sie Ihre erste Sitzung, um zu coden.', + 'sessions.sidebar.empty.noMatches.title': 'Keine passenden Sitzungen', + 'sessions.sidebar.empty.noMatches.description': 'Versuchen Sie einen anderen Titel, Branch, Ordner oder Pfad.', + 'sessions.sidebar.activity.recentTitle': 'kürzlich', + 'sessions.switcher.openAria': 'Sitzungswechsler öffnen', + 'sessions.switcher.empty': 'Keine kürzlichen Sitzungen', + 'sessions.switcher.draftTitle': 'Neue Sitzung', + 'sessions.sidebar.updateCheck.errorTitle': 'Fehler beim Prüfen auf Aktualisierungen', + 'sessions.sidebar.updateCheck.latestVersion': 'Sie verwenden die neueste Version', + 'sessions.sidebar.directory.errorAddProjectTitle': 'Fehler beim Hinzufügen des Projekts', + 'sessions.sidebar.directory.errorAddProjectDescription': 'Bitte wählen Sie ein gültiges Verzeichnis aus.', + 'sessions.sidebar.directory.errorSelectDirectoryTitle': 'Fehler beim Auswählen des Verzeichnisses', + 'sessions.sidebar.folder.newFolderName': 'Neuer Ordner', + 'sessions.sidebar.bulkActions.delete': 'Löschen', + 'sessions.sidebar.bulkActions.archive': 'Archivieren', + 'sessions.sidebar.bulkActions.selectedCount': '{count} ausgewählt', + 'sessions.sidebar.bulkActions.moveToFolder': 'In Ordner verschieben', + 'sessions.sidebar.bulkActions.deletedSingle': '{count} Sitzung gelöscht', + 'sessions.sidebar.bulkActions.deletedPlural': '{count} Sitzungen gelöscht', + 'sessions.sidebar.bulkActions.failedDeleteSingle': 'Fehler beim Löschen von {count} Sitzung', + 'sessions.sidebar.bulkActions.failedDeletePlural': 'Fehler beim Löschen von {count} Sitzungen', + 'sessions.sidebar.bulkActions.archivedSingle': '{count} Sitzung archiviert', + 'sessions.sidebar.bulkActions.archivedPlural': '{count} Sitzungen archiviert', + 'sessions.sidebar.bulkActions.failedArchiveSingle': 'Fehler beim Archivieren von {count} Sitzung', + 'sessions.sidebar.bulkActions.failedArchivePlural': 'Fehler beim Archivieren von {count} Sitzungen', + 'sessions.sidebar.folders.none': 'Noch keine Ordner', + 'sessions.sidebar.folders.newFolderEllipsis': 'Neuer Ordner...', + 'sessions.sidebar.folders.removeFromFolder': 'Aus Ordner entfernen', + 'sessions.sidebar.folders.moveToFolder': 'In Ordner verschieben', + 'sessions.sidebar.project.actions.newWorktree': 'Neuer Worktree', + 'sessions.sidebar.project.actions.newWorktreeEllipsis': 'Neuer Worktree...', + 'sessions.sidebar.project.actions.projectMenu': 'Projektmenü', + 'sessions.sidebar.project.actions.newSession': 'Neue Sitzung', + 'sessions.sidebar.project.actions.edit': 'Bearbeiten', + 'sessions.sidebar.project.actions.closeProject': 'Projekt schließen', + 'sessions.sidebar.project.actions.newDraftSession': 'Neue Entwurfs-Sitzung', + 'sessions.sidebar.session.menu.rename': 'Umbenennen', + 'sessions.sidebar.session.rename.save': 'Sitzungsnamen speichern', + 'sessions.sidebar.session.rename.cancel': 'Umbenennung abbrechen', + 'sessions.sidebar.session.menu.unpin': 'Sitzung lösen', + 'sessions.sidebar.session.menu.pin': 'Sitzung anheften', + 'sessions.sidebar.session.menu.share': 'Teilen', + 'sessions.sidebar.session.menu.copied': 'Kopiert', + 'sessions.sidebar.session.menu.copyLink': 'Link kopieren', + 'sessions.sidebar.session.menu.unshare': 'Freigabe aufheben', + 'sessions.sidebar.session.menu.exportMarkdown': 'Als Markdown exportieren', + 'sessions.sidebar.session.menu.runFusion': 'Fusion ausführen', + 'sessions.sidebar.session.menu.openInSidePanel': 'In Seitenleiste öffnen', + 'sessions.sidebar.session.actions.openInEditor': 'Im Editor öffnen', + 'sessions.sidebar.session.menu.betaBadge': 'Beta', + 'sessions.sidebar.session.menu.label': 'Sitzungsmenü', + 'sessions.sidebar.session.untitled': 'Unbenannte Sitzung', + 'sessions.sidebar.session.export.nothingToExport': 'Nichts zum Exportieren', + 'sessions.sidebar.session.export.success': 'Sitzung exportiert', + 'sessions.sidebar.session.export.failedRevealPath': 'Pfad konnte nicht angezeigt werden', + 'sessions.sidebar.session.export.untitledSubagent': 'Unbenanntes Sub-Agent', + 'sessions.sidebar.session.export.skippedSubtaskSingle': 'Sitzung exportiert, aber {count} Unteraufgabe des Sub-Agents wurde übersprungen, da sie nicht geladen werden konnte.', + 'sessions.sidebar.session.export.skippedSubtaskMany': 'Sitzung exportiert, aber {count} Unteraufgaben des Sub-Agents wurden übersprungen, da sie nicht geladen werden konnten.', + 'sessions.sidebar.session.export.dialog.title': 'Markdown exportieren', + 'sessions.sidebar.session.export.dialog.descriptionSingle': 'Diese Sitzung hat {count} Unteraufgabe des Sub-Agents. Soll diese in den Export inkludiert werden?', + 'sessions.sidebar.session.export.dialog.descriptionMany': 'Diese Sitzung hat {count} Unteraufgaben des Sub-Agents. Sollen diese in den Export inkludiert werden?', + 'sessions.sidebar.session.export.dialog.includeSubtasks': 'Unteraufgaben des Sub-Agents einbeziehen', + 'sessions.sidebar.session.export.dialog.confirm': 'Exportieren', + 'sessions.sidebar.session.status.active': 'Sitzung aktiv', + 'sessions.sidebar.session.status.unread': 'Ungelesene Updates', + 'sessions.sidebar.session.status.pinned': 'Angeheftete Sitzung', + 'sessions.sidebar.session.status.permissionRequired': 'Berechtigung erforderlich', + 'sessions.sidebar.session.subsessions.collapse': 'Untersitzungen einklappen', + 'sessions.sidebar.session.subsessions.expand': 'Untersitzungen ausklappen', + 'sessions.sidebar.dialogs.deleteSession.title': 'Sitzung löschen?', + 'sessions.sidebar.dialogs.archiveSession.title': 'Sitzung archivieren?', + 'sessions.sidebar.dialogs.deleteSession.withOneSubtask': '"{sessionTitle}" und seine {count} Unteraufgabe werden dauerhaft gelöscht.', + 'sessions.sidebar.dialogs.deleteSession.withManySubtasks': '"{sessionTitle}" und seine {count} Unteraufgaben werden dauerhaft gelöscht.', + 'sessions.sidebar.dialogs.archiveSession.withOneSubtask': '"{sessionTitle}" und seine {count} Unteraufgabe werden archiviert.', + 'sessions.sidebar.dialogs.archiveSession.withManySubtasks': '"{sessionTitle}" und seine {count} Unteraufgaben werden archiviert.', + 'sessions.sidebar.dialogs.deleteSession.single': '"{sessionTitle}" wird dauerhaft gelöscht.', + 'sessions.sidebar.dialogs.archiveSession.single': '"{sessionTitle}" wird archiviert.', + 'sessions.sidebar.dialogs.neverAsk': 'Nicht mehr fragen', + 'sessions.sidebar.dialogs.cancel': 'Abbrechen', + 'sessions.sidebar.dialogs.deleteSession.titleAction': 'Sitzung löschen', + 'sessions.sidebar.dialogs.deleteSessions.titleAction': 'Sitzungen löschen', + 'sessions.sidebar.dialogs.deleteSessions.title': 'Sitzungen löschen?', + 'sessions.sidebar.dialogs.archiveSessions.title': 'Sitzungen archivieren?', + 'sessions.sidebar.dialogs.deleteSessions.singleDescription': '{count} Sitzung wird dauerhaft gelöscht.', + 'sessions.sidebar.dialogs.deleteSessions.pluralDescription': '{count} Sitzungen werden dauerhaft gelöscht.', + 'sessions.sidebar.dialogs.archiveSessions.singleDescription': '{count} Sitzung wird archiviert.', + 'sessions.sidebar.dialogs.archiveSessions.pluralDescription': '{count} Sitzungen werden archiviert.', + 'sessions.sidebar.dialogs.deleteFolder.title': 'Ordner löschen?', + 'sessions.sidebar.dialogs.deleteFolder.withOneSubfolder': '"{folderName}" wird zusammen mit {count} Unterordner gelöscht. Sitzungen darin werden nicht gelöscht.', + 'sessions.sidebar.dialogs.deleteFolder.withManySubfolders': '"{folderName}" wird zusammen mit {count} Unterordnern gelöscht. Sitzungen darin werden nicht gelöscht.', + 'sessions.sidebar.dialogs.deleteFolder.withContentsNoSubfolders': '"{folderName}" wird gelöscht. Sitzungen darin werden nicht gelöscht.', + 'sessions.sidebar.dialogs.deleteFolder.single': '"{folderName}" wird dauerhaft gelöscht.', + 'sessions.sidebar.dialogs.deleteResult.singleFailedToDelete': '{count} Sitzung konnte nicht gelöscht werden.', + 'sessions.sidebar.dialogs.deleteResult.manyFailedToDelete': '{count} Sitzungen konnten nicht gelöscht werden.', + 'sessions.sidebar.dialogs.deleteResult.singleFailedToArchive': '{count} Sitzung konnte nicht archiviert werden.', + 'sessions.sidebar.dialogs.deleteResult.manyFailedToArchive': '{count} Sitzungen konnten nicht archiviert werden.', + 'sessions.sidebar.dialogs.deleteResult.removedFromDate': 'Alle Sitzungen vom {dateLabel} entfernt.', + 'sessions.sidebar.dialogs.deleteResult.tryAgain': 'Bitte versuchen Sie es in einem Moment erneut.', + 'sessions.sidebar.dialogs.worktreeDelete.descriptionNoLinked': 'Dies entfernt den ausgewählten Worktree.', + 'sessions.sidebar.dialogs.worktreeDelete.descriptionOneLinked': 'Dies entfernt den ausgewählten Worktree und archiviert {count} verknüpfte Sitzung.', + 'sessions.sidebar.dialogs.worktreeDelete.descriptionManyLinked': 'Dies entfernt den ausgewählten Worktree und archiviert {count} verknüpfte Sitzungen.', + 'sessions.sidebar.dialogs.sessionDelete.descriptionOne': 'Diese Aktion entfernt dauerhaft 1 Sitzung.', + 'sessions.sidebar.dialogs.sessionDelete.descriptionOneWithDate': 'Diese Aktion entfernt dauerhaft 1 Sitzung vom {dateLabel}.', + 'sessions.sidebar.dialogs.sessionDelete.descriptionMany': 'Diese Aktion entfernt dauerhaft {count} Sitzungen.', + 'sessions.sidebar.dialogs.sessionDelete.descriptionManyWithDate': 'Diese Aktion entfernt dauerhaft {count} Sitzungen vom {dateLabel}.', + 'sessions.sidebar.dialogs.sessionList.more': '+{count} weitere', + 'sessions.sidebar.session.share.successTitle': 'Sitzung geteilt', + 'sessions.sidebar.session.share.successDescription': 'Sie können den Link aus dem Menü kopieren.', + 'sessions.sidebar.session.share.error': 'Sitzung kann nicht geteilt werden', + 'sessions.sidebar.session.share.copyUrlError': 'URL konnte nicht kopiert werden', + 'sessions.sidebar.session.unshare.success': 'Teilen der Sitzung aufgehoben', + 'sessions.sidebar.session.unshare.error': 'Sitzung kann nicht mehr geteilt werden', + 'sessions.sidebar.session.delete.success': 'Sitzung gelöscht', + 'sessions.sidebar.session.delete.error': 'Fehler beim Löschen der Sitzung', + 'sessions.sidebar.session.archive.success': 'Sitzung archiviert', + 'sessions.sidebar.session.archive.error': 'Fehler beim Archivieren der Sitzung', + 'sessions.sidebar.group.pr.checksPassed': '{success}/{total} Checks bestanden', + 'sessions.sidebar.group.pr.failingCount': '{count} fehlgeschlagen', + 'sessions.sidebar.group.pr.pendingCount': '{count} ausstehend', + 'sessions.sidebar.group.pr.conflictsOrBlocked': 'Konflikte oder blockiert', + 'sessions.sidebar.group.pr.mergeable': 'Zusammenführen möglich', + 'sessions.sidebar.group.pr.mergeState': 'Zusammenführungszustand: {state}', + 'sessions.sidebar.group.pr.status.merged': 'Zusammengeführt', + 'sessions.sidebar.group.pr.status.readyToMerge': 'Bereit zum Zusammenführen', + 'sessions.sidebar.group.pr.status.open': 'PR offen', + 'sessions.sidebar.group.pr.status.mergeConflicts': 'Zusammenführungskonflikte', + 'sessions.sidebar.group.pr.status.mergeBlocked': 'Zusammenführung blockiert', + 'sessions.sidebar.group.pr.status.draft': 'Entwurf PR', + 'sessions.sidebar.group.pr.status.closed': 'Geschlossen', + 'sessions.sidebar.group.empty.noArchivedSessions': 'Noch keine archivierten Sitzungen.', + 'sessions.sidebar.group.empty.noSessionsInWorkspace': 'Noch keine Sitzungen in diesem Arbeitsbereich.', + 'sessions.sidebar.group.showMore': 'Weitere Sitzungen anzeigen', + 'sessions.sidebar.group.showMoreSingle': '{count} weitere Sitzung anzeigen', + 'sessions.sidebar.group.showMorePlural': '{count} weitere Sitzungen anzeigen', + 'sessions.sidebar.group.showFewer': 'Weniger Sitzungen anzeigen', + 'sessions.sidebar.group.expandAria': '{label} erweitern', + 'sessions.sidebar.group.collapseAria': '{label} einklappen', + 'sessions.sidebar.group.actions.deleteArchivedInGroupAria': 'Archivierte Sitzungen in {label} löschen', + 'sessions.sidebar.group.actions.deleteArchivedSessions': 'Archivierte Sitzungen löschen', + 'sessions.sidebar.group.actions.deleteGroupAria': '{label} löschen', + 'sessions.sidebar.group.actions.deleteWorktree': 'Worktree löschen', + 'sessions.sidebar.group.actions.newDraftInGroupAria': 'Neue Entwurfs-Sitzung in {label}', + 'sessions.sidebar.grouping.projectRoot': 'Projektstamm', + 'sessions.sidebar.grouping.projectRootWithBranch': 'Projektstamm: {branch}', + 'sessions.sidebar.grouping.archived': 'archiviert', + 'sessions.sidebar.grouping.archivedDescription': 'Archivierte und nicht zugewiesene Sitzungen', + 'sessions.sidebar.folderItem.expandAria': 'Ordner {folderName} ausklappen', + 'sessions.sidebar.folderItem.collapseAria': 'Ordner {folderName} einklappen', + 'sessions.sidebar.folderItem.namePlaceholder': 'Ordnername', + 'sessions.sidebar.folderItem.newSessionAria': 'Neue Sitzung in {folderName}', + 'sessions.sidebar.folderItem.newSubfolderAria': 'Neuer Unterordner in {folderName}', + 'sessions.sidebar.folderItem.newSubfolder': 'Neuer Unterordner', + 'sessions.sidebar.folderItem.renameAria': 'Ordner {folderName} umbenennen', + 'sessions.sidebar.folderItem.deleteArchivedInFolderAria': 'Archivierte Sitzungen im Ordner {folderName} löschen', + 'sessions.sidebar.folderItem.deleteFolderAria': 'Ordner {folderName} löschen', + 'sessions.sidebar.folderItem.emptyFolder': 'Leerer Ordner', + 'sessions.sidebar.sessionDialogs.ok': 'OK', + 'sessions.sidebar.sessionDialogs.linkedSessionSingle': 'Verknüpfte Sitzung', + 'sessions.sidebar.sessionDialogs.linkedSessionPlural': 'Verknüpfte Sitzungen', + 'sessions.sidebar.sessionDialogs.delete.note': 'Worktree-Verzeichnisse bleiben unverändert. Untersitzungen, die mit den ausgewählten Sitzungen verknüpft sind, werden ebenfalls entfernt.', + 'sessions.sidebar.sessionDialogs.directory.errorSelectTitle': 'Fehler beim Auswählen des Verzeichnisses', + 'sessions.sidebar.sessionDialogs.directory.errorOpenTitle': 'Fehler beim Öffnen des Verzeichnisses', + 'sessions.sidebar.sessionDialogs.directory.errorOpenDescription': 'Desktop konnte keinen Dateizugriff gewähren.', + 'sessions.sidebar.sessionDialogs.directory.errorAddProjectTitle': 'Fehler beim Hinzufügen des Projekts', + 'sessions.sidebar.sessionDialogs.directory.errorAddProjectDescription': 'Bitte wählen Sie einen gültigen Verzeichnispfad aus.', + 'sessions.sidebar.sessionDialogs.worktree.errorRemoveTitle': 'Fehler beim Entfernen des Worktrees', + 'sessions.sidebar.sessionDialogs.worktree.removedTitle': 'Worktree entfernt', + 'sessions.sidebar.sessionDialogs.worktree.removed': 'Worktree entfernt.', + 'sessions.sidebar.sessionDialogs.worktree.removedWithRemote': 'Worktree und Remote-Branch entfernt.', + 'sessions.sidebar.sessionDialogs.worktree.attachedArchived': 'Angefügter Worktree archiviert.', + 'sessions.sidebar.sessionDialogs.worktree.attachedArchivedPlural': 'Angefügte Worktrees archiviert.', + 'sessions.sidebar.sessionDialogs.worktree.archivedAndRemoteRemoved': 'Archivierte Worktrees und entfernte Remote-Branches.', + 'sessions.sidebar.sessionDialogs.worktree.label': 'Worktree', + 'sessions.sidebar.sessionDialogs.worktree.pathUnavailable': 'Worktree-Pfad nicht verfügbar.', + 'sessions.sidebar.sessionDialogs.worktree.uncommittedWarning': 'Nicht committete Änderungen werden verworfen.', + 'sessions.sidebar.sessionDialogs.actions.deleteRemoteBranch': 'Entfernten Branch löschen', + 'sessions.sidebar.sessionDialogs.actions.remoteBranchInfoUnavailable': 'Informationen zum entfernten Branch nicht verfügbar', + 'sessions.sidebar.sessionDialogs.actions.deleteLocalBranch': 'Lokalen Branch löschen', + 'sessions.sidebar.sessionDialogs.actions.deleting': 'Wird gelöscht…', + 'sessions.sidebar.sessionDialogs.actions.deleteWorktree': 'Worktree löschen', + 'gitView.branch.branchToMergeInto': 'Branch zum Mergen in {branch}', + 'gitView.branch.branchToRebaseOnto': 'Branch zum Rebase auf', + 'gitView.branch.create': 'Neuen Branch erstellen...', + 'gitView.branch.currentBadge': 'Aktuell', + 'gitView.branch.currentBranchFallback': 'aktueller Branch', + 'gitView.branch.currentBranchTooltip': 'Aktueller Branch', + 'gitView.branch.detachedHead': 'Detached HEAD', + 'gitView.branch.dialogDescriptionPrefix': 'Wählen Sie, wie Sie einen anderen Branch in', + 'gitView.branch.empty': 'Keine Branches gefunden.', + 'gitView.branch.localBranches': 'Lokale Branches', + 'gitView.branch.mergeDescription': 'Erstellt einen Merge-Commit und erhält den Branch-Verlauf.', + 'gitView.branch.mergeRebase': 'Merge/Rebase', + 'gitView.branch.mergeRebaseTooltip': 'Aktualisiert diesen Branch von einem anderen Branch.', + 'gitView.branch.mergingInProgress': 'Merge läuft', + 'gitView.branch.namePlaceholder': 'Branch-Name', + 'gitView.branch.newBranchPlaceholder': 'Neuer Branch-Name', + 'gitView.branch.noLocalBranches': 'Keine lokalen Branches', + 'gitView.branch.noRemoteBranches': 'Keine entfernten Branches', + 'gitView.branch.operation': 'Operation', + 'gitView.branch.operationCompleted': 'Operation abgeschlossen', + 'gitView.branch.operationFailed': 'Operation fehlgeschlagen', + 'gitView.branch.pushToPrefix': 'Push zu Präfix', + 'gitView.branch.pushToSuffix': 'Push zu Suffix', + 'gitView.branch.rebaseDescription': 'Wende deine Commits auf den ausgewählten Branch an.', + 'gitView.branch.rebasingInProgress': 'Rebasing in Bearbeitung', + 'gitView.branch.remoteBranches': 'Remote-Branches', + 'gitView.branch.renameTitle': 'Branch umbenennen', + 'gitView.branch.renameSave': 'Branch-Namen speichern', + 'gitView.branch.renameSaving': 'Speichere Branch-Name', + 'gitView.branch.renameCancel': 'Umbenennung abbrechen', + 'gitView.branch.searchPlaceholder': 'Branches durchsuchen...', + 'gitView.branch.selectBranch': 'Branch auswählen', + 'gitView.branch.summaryMergeInfix': 'in', + 'gitView.branch.summaryMergePrefix': 'Dies wird zusammenführen', + 'gitView.branch.summaryRebaseInfix': 'auf', + 'gitView.branch.summaryRebasePrefix': 'Dies wird rebasen', + 'gitView.branch.updateDescriptionPrefix': 'Bringe die neuesten Änderungen in', + 'gitView.branch.updateTitle': 'Branch aktualisieren', + 'gitView.changes.changedFilesAria': 'Geänderte Dateien', + 'gitView.changes.clearSelectionAria': 'Dateiauswahl aufheben', + 'gitView.changes.collapseDirectoryAria': 'Verzeichnis {path} einklappen', + 'gitView.changes.expandDirectoryAria': 'Verzeichnis {path} ausklappen', + 'gitView.changes.revertAll': 'Alle rückgängig machen', + 'gitView.changes.revertAllDescriptionPlural': '{count} geänderte Dateien rückgängig machen? Dies kann nicht rückgängig gemacht werden.', + 'gitView.changes.revertAllDescriptionSingle': '{count} geänderte Datei rückgängig machen? Dies kann nicht rückgängig gemacht werden.', + 'gitView.changes.revertAllDialogTitle': 'Alle Änderungen rückgängig machen?', + 'gitView.changes.revertDirectoryAria': 'Änderungen in {path} rückgängig machen', + 'gitView.changes.revertDirectory': 'Ordner rückgängig machen', + 'gitView.changes.revertDirectoryDescriptionPlural': 'Dies wird lokale Änderungen in {count} Dateien unter {path} verwerfen.', + 'gitView.changes.revertDirectoryDescriptionSingle': 'Dies wird lokale Änderungen in {count} Datei unter {path} verwerfen.', + 'gitView.changes.revertDirectoryDialogTitle': 'Ordneränderungen rückgängig machen?', + 'gitView.changes.revertDirectoryTooltip': 'Ordneränderungen rückgängig machen', + 'gitView.changes.revertFileAria': 'Änderungen in {path} rückgängig machen', + 'gitView.changes.revertFileTooltip': 'Änderungen rückgängig machen', + 'gitView.changes.reverting': 'Rückgängig machen...', + 'gitView.changes.selectAllAria': 'Alle Dateien auswählen', + 'gitView.changes.selectFileAria': '{path} auswählen', + 'gitView.changes.stagedTitle': 'Bereitgestellt', + 'gitView.changes.resizeSplitAria': 'Größe der bereitgestellten und nicht-bereitgestellten Änderungen anpassen', + 'gitView.changes.stageAllAria': 'Alle Änderungen bereitstellen', + 'gitView.changes.stageDirectoryAria': 'Alle Änderungen in {path} bereitstellen', + 'gitView.changes.stageFileAria': '{path} bereitstellen', + 'gitView.changes.title': 'Änderungen', + 'gitView.changes.toggleDirectorySelectionAria': 'Auswahl für {path} umschalten', + 'gitView.changes.unstageAllAria': 'Alle Änderungen nicht mehr bereitstellen', + 'gitView.changes.unstageDirectoryAria': 'Alle Änderungen in {path} nicht mehr bereitstellen', + 'gitView.changes.unstageFileAria': '{path} nicht mehr bereitstellen', + 'gitView.commit.addGitmoji': 'Gitmoji hinzufügen', + 'gitView.commit.aiHighlights.insertAria': 'Einfügen aria-Label', + 'gitView.commit.aiHighlights.insertTooltip': 'Einfügen tooltip', + 'gitView.commit.aiHighlights.title': 'Highlights', + 'gitView.commit.commit': 'Commit', + 'gitView.commit.commitAria': 'Commit aria-Label', + 'gitView.commit.committing': 'Committen...', + 'gitView.commit.generate': 'Generieren', + 'gitView.commit.generateAria': 'Commit-Nachricht generieren', + 'gitView.commit.messagePlaceholder': 'Commit-Nachricht', + 'gitView.commit.push': 'Commit & synchronisieren', + 'gitView.commit.pushAria': 'Commit und synchronisieren', + 'gitView.commit.pushing': 'Synchronisieren...', + 'gitView.commit.selectFilesHint': 'Dateien in Änderungen auswählen, um Commit zu aktivieren.', + 'gitView.commit.stageFilesHint': 'Stagen Sie Dateien, um Commit zu aktivieren.', + 'gitView.commit.title': 'Commit', + 'gitView.common.cancel': 'Abbrechen', + 'gitView.common.close': 'Schließen', + 'gitView.common.done': 'Fertig', + 'gitView.common.processing': 'Verarbeitung läuft...', + 'gitView.common.reset': 'Zurücksetzen', + 'gitView.conflict.abortOperation': '{operation} abbrechen', + 'gitView.conflict.conflictedFiles': 'Konflikte in Dateien:', + 'gitView.conflict.continueLater': 'Später fortfahren', + 'gitView.conflict.detectedDescription': 'Lösen Sie die {operation}-Konflikte, um fortzufahren.', + 'gitView.conflict.detectedTitle': '{operation}-Konflikte erkannt', + 'gitView.conflict.errorLoadingDetails': 'Fehler beim Laden der Konflikt-Details: {message}', + 'gitView.conflict.headInfo': 'HEAD-Information:', + 'gitView.conflict.loadFailed': 'Fehler beim Laden der Konflikt-Details', + 'gitView.conflict.loading': 'Konflikt-Details werden geladen...', + 'gitView.conflict.noActiveSession': 'Keine aktive Sitzung', + 'gitView.conflict.noActiveSessionDescription': 'Öffnen oder erstellen Sie eine Sitzung, um Konflikte zu lösen.', + 'gitView.conflict.resolveCurrentSession': 'In aktueller Sitzung auflösen', + 'gitView.conflict.resolveNewSession': 'In neuer Sitzung auflösen', + 'gitView.empty.cleanDescription': 'Alle Änderungen wurden committet', + 'gitView.empty.cleanTitle': 'Arbeitsbaum ist sauber', + 'gitView.empty.pullBehindPlural': '{count} Commits abrufen', + 'gitView.empty.pullBehindSingle': '{count} Commit abrufen', + 'gitView.header.identityTooltip': 'Git-Identität', + 'gitView.header.noIdentity': 'Keine Identität', + 'gitView.header.noProfiles': 'Keine Profile zum Anwenden verfügbar.', + 'gitView.header.repositoryViews': 'Repository-Ansichten', + 'gitView.header.removeRemoteAria': 'Entferne Remote {name}', + 'gitView.header.removeRemoteTitle': 'Entferne Remote {name}', + 'gitView.header.upstreamSynced': 'synchronisiert', + 'gitView.header.upstreamTooltip': 'Verglichen mit {target}.', + 'gitView.header.upstreamTooltipTracking': 'Verglichen mit {target}. Die primären Synchronisierungs-Kennzeichen spiegeln immer noch {tracking} wider.', + 'gitView.history.actions.cancelButton': 'Abbrechen', + 'gitView.history.actions.checkout': 'Checkout', + 'gitView.history.actions.checkoutConfirm': 'Diesen Commit als getrennte HEAD auschecken?', + 'gitView.history.actions.cherryPick': 'Cherry-pick', + 'gitView.history.actions.cherryPickConfirm': 'Diesen Commit auf den aktuellen Branch cherry-picken?', + 'gitView.history.actions.conflictToastDescription': 'Konflikte in: {files}. Manuelles Auflösen und committen oder mit git cherry-pick/revert --abort abbrechen.', + 'gitView.history.actions.conflictToastTitle': 'Konflikt', + 'gitView.history.actions.confirmButton': 'Bestätigen', + 'gitView.history.actions.createBranch': 'Hier neuen Branch erstellen', + 'gitView.history.actions.createBranchConfirm': 'Erstellen', + 'gitView.history.actions.createBranchPlaceholder': 'Branch-Name', + 'gitView.history.actions.detachedHead': 'Ausgecheckt (getrennte HEAD)', + 'gitView.history.actions.merge': 'In aktuellen Branch mergen', + 'gitView.history.actions.mergeConfirm': 'Diesen Commit in den aktuellen Branch mergen?', + 'gitView.history.actions.rebase': 'Auf diesen rebasen', + 'gitView.history.actions.rebaseConfirm': 'Aktuellen Branch auf diesen Commit rebasen?', + 'gitView.history.actions.reset': 'Zurücksetzen...', + 'gitView.history.actions.resetHard': 'Hart — alle Änderungen verwerfen', + 'gitView.history.actions.resetHardConfirm': 'Hartes Zurücksetzen — HEAD bewegt sich, alle nicht committeten Änderungen werden dauerhaft verworfen.', + 'gitView.history.actions.resetHardConfirmButton': 'Änderungen verwerfen', + 'gitView.history.actions.resetMixed': 'Gemischt — Änderungen unstagen', + 'gitView.history.actions.resetMixedConfirm': 'Gemischtes Zurücksetzen — HEAD bewegt sich, Änderungen werden unstaged.', + 'gitView.history.actions.resetSoft': 'Weich — staged Änderungen behalten', + 'gitView.history.actions.resetSoftConfirm': 'Weiches Zurücksetzen — HEAD bewegt sich, staged Änderungen bleiben erhalten.', + 'gitView.history.actions.revert': 'Revert', + 'gitView.history.actions.revertConfirm': 'Einen Revert dieses Commits stagen?', + 'gitView.history.binary': 'Binär', + 'gitView.history.binaryNoDiff': 'Binäre Datei — kein Diff verfügbar', + 'gitView.history.commitsPlaceholder': 'Commits', + 'gitView.history.copySha': 'SHA kopieren', + 'gitView.history.diffError': 'Fehler beim Laden des Diffs. Klicken zum Wiederholen.', + 'gitView.history.largeDiffDescription': 'Die Darstellung kann langsam sein. Sie können den Diff dennoch durch Klicken unten ansehen.', + 'gitView.history.largeDiffTitle': 'Großer Diff ({count} geänderte Zeilen)', + 'gitView.history.loadingDiff': 'Lade Diff...', + 'gitView.history.loadingFiles': 'Lade Dateien...', + 'gitView.history.loadMore': 'Mehr laden', + 'gitView.history.loadingMore': 'Laden...', + 'gitView.history.logSize100': '100 Commits', + 'gitView.history.logSize25': '25 Commits', + 'gitView.history.logSize50': '50 Commits', + 'gitView.history.noCommits': 'Keine Commits gefunden', + 'gitView.history.noFiles': 'Keine Dateien', + 'gitView.history.renamedNoDiff': 'Umbenannte Datei — Diff nicht unterstützt', + 'gitView.history.renderDiffAnyway': 'Dennoch rendern', + 'gitView.history.title': 'Verlauf', + 'gitView.graph.title': 'Graph', + 'gitView.integrate.checking': 'Überprüfe…', + 'gitView.integrate.cherryPickAbortedToast': 'Cherry-pick abgebrochen', + 'gitView.integrate.cherryPickConflictDescription': 'Lösen Sie die Cherry-pick-Konflikte, um fortzufahren.', + 'gitView.integrate.cherryPickConflictToast': 'Cherry-pick-Konflikte erkannt', + 'gitView.integrate.cherryPickContinueFailedToast': 'Fehler beim Fortsetzen des Cherry-picks', + 'gitView.integrate.cherryPickFinishedToast': 'Cherry-pick abgeschlossen', + 'gitView.integrate.commitsMovedDescriptionPlural': '{count} Commits nach {branch} verschoben.', + 'gitView.integrate.commitsMovedDescriptionSingle': '{count} Commit nach {branch} verschoben.', + 'gitView.integrate.commitsMovedToast': 'Commits verschoben', + 'gitView.integrate.commitsToMove': 'Zu verschiebende Commits', + 'gitView.integrate.conflictsInFiles': 'Konflikte in Dateien', + 'gitView.integrate.currentCommit': 'Aktueller Commit', + 'gitView.integrate.currentSession': 'Aktuelle Sitzung', + 'gitView.integrate.failedToMoveToast': 'Fehler beim Verschieben der Commits', + 'gitView.integrate.moreFiles': 'Weitere Dateien', + 'gitView.integrate.move': 'Verschieben', + 'gitView.integrate.moveCommits': 'Commits verschieben', + 'gitView.integrate.moving': 'Wird verschoben…', + 'gitView.integrate.newSession': 'Neue Sitzung', + 'gitView.integrate.noActiveSession': 'Keine aktive Sitzung', + 'gitView.integrate.noActiveSessionDescription': 'Öffne oder erstelle eine Sitzung, um fortzufahren.', + 'gitView.integrate.noCommitsToMove': 'Keine Commits zum Verschieben.', + 'gitView.integrate.noCommitsToMoveToast': 'Keine Commits zum Verschieben', + 'gitView.integrate.previewUnavailable': 'Vorschau nicht verfügbar', + 'gitView.integrate.showAll': 'Alle anzeigen', + 'gitView.integrate.showLess': 'Weniger anzeigen', + 'gitView.integrate.showingFirstCommits': 'Erste Commits werden angezeigt', + 'gitView.integrate.target': 'Ziel', + 'gitView.integrate.title': 'Commits erneut integrieren', + 'gitView.integrate.toMoveCount': 'Zu verschieben', + 'gitView.operation.abort': 'Abbrechen', + 'gitView.operation.continue': 'Fortsetzen', + 'gitView.operation.inProgressTitle': '{operation} in Bearbeitung', + 'gitView.operation.merge': 'Merge', + 'gitView.operation.mergeInProgressWithHead': 'Merge von {head}', + 'gitView.operation.mergingMessage': 'Merge: {message}', + 'gitView.operation.rebase': 'Rebase', + 'gitView.operation.rebaseInProgress': 'Rebase in Bearbeitung', + 'gitView.operation.rebasingOnto': 'Rebase von {headName} auf {onto}', + 'gitView.operation.resolveConflictsHint': 'Löse Konflikte und fahre dann mit dem Vorgang fort.', + 'gitView.operation.resolveWithAi': 'Mit KI auflösen', + 'gitView.stash.confirmButton': '{operation}', + 'gitView.stash.description': 'Stash Sie Ihre lokalen Änderungen vor dem Start der {operation}.', + 'gitView.stash.mergeWith': 'mit', + 'gitView.stash.rebaseOnto': 'auf', + 'gitView.stash.restoreAfterOperation': 'Stashed Änderungen nach {operation} wiederherstellen', + 'gitView.stash.restoreAria': 'Stashed Änderungen nach Operation wiederherstellen', + 'gitView.stash.stepRestore': 'Stashed Änderungen wiederherstellen', + 'gitView.stash.stepStash': 'Nicht committete Änderungen stashen', + 'gitView.stash.thisWill': 'Das wird folgendes tun:', + 'gitView.stash.title': 'Nicht committete Änderungen', + 'gitView.stashes.actions.apply': 'Anwenden', + 'gitView.stashes.actions.drop': 'Verwerfen', + 'gitView.stashes.actions.pop': 'Pop', + 'gitView.stashes.actions.stashCurrent': 'Aktuelle Änderungen stashen', + 'gitView.stashes.actions.stashCurrentWithCount': '{count} Dateien stashen', + 'gitView.stashes.confirm.drop': '{ref} verwerfen?', + 'gitView.stashes.description': 'Speichern, wiederherstellen und aufräumen von Git-Stashes für dieses Repository.', + 'gitView.stashes.empty.list': 'Noch keine Stashes.', + 'gitView.stashes.empty.search': 'Keine passenden Stashes gefunden.', + 'gitView.stashes.includeUntrackedHint': 'Nicht verfolgte Dateien werden automatisch mit einbezogen.', + 'gitView.stashes.fileCount': '{count} Dateien', + 'gitView.stashes.fileCountLoading': 'Dateien werden gezählt...', + 'gitView.stashes.itemNumber': '#{number}', + 'gitView.stashes.latestLabel': 'Neueste', + 'gitView.stashes.messagePlaceholder': 'Stash-Name', + 'gitView.stashes.searchPlaceholder': 'Stashes durchsuchen', + 'gitView.stashes.title': 'Stashes', + 'gitView.stashes.toast.applyFailed': 'Fehler beim Anwenden des Stashes', + 'gitView.stashes.toast.applySuccess': 'Stash angewendet', + 'gitView.stashes.toast.createFailed': 'Fehler beim Stashen der Änderungen', + 'gitView.stashes.toast.created': 'Änderungen gestappt', + 'gitView.stashes.toast.dropFailed': 'Fehler beim Löschen des Stash', + 'gitView.stashes.toast.dropSuccess': 'Stash gelöscht', + 'gitView.stashes.toast.loadFailed': 'Fehler beim Laden der Stashes', + 'gitView.stashes.toast.noChanges': 'Keine lokalen Änderungen zum Stapeln', + 'gitView.stashes.toast.popFailed': 'Fehler beim Abrufen des Stash', + 'gitView.stashes.toast.popSuccess': 'Stash abgerufen', + 'gitView.stashes.untitled': 'Unbenannter Stash', + 'gitView.sync.fetch': 'Abrufen', + 'gitView.sync.fetchFromRemote': 'Von {name} abrufen', + 'gitView.sync.fetchTooltip': 'Vom Remote abrufen', + 'gitView.sync.commitOrStashTooltip': 'Committen oder Stapeln Sie Ihre Änderungen vor der Synchronisation', + 'gitView.sync.moreActionsAria': 'Weitere Synchronisationsaktionen', + 'gitView.sync.noRemoteTooltip': 'Keine Remotes konfiguriert', + 'gitView.sync.pull': 'Herunterziehen', + 'gitView.sync.pullTooltip': 'Änderungen herunterziehen', + 'gitView.sync.pullTooltipBehind': 'Änderungen herunterziehen ({count} hinterher)', + 'gitView.sync.push': 'Hochladen', + 'gitView.sync.pushTooltip': 'Änderungen hochladen', + 'gitView.sync.pushTooltipAhead': 'Änderungen hochladen ({count} voraus)', + 'gitView.sync.sync': 'synchronisieren', + 'gitView.sync.syncChanges': 'Änderungen synchronisieren', + 'gitView.sync.syncChangesTooltip': 'Änderungen synchronisieren ({behind} runter, {ahead} rauf)', + 'gitView.sync.syncChangesWithCounts': 'Änderungen synchronisieren {behind}↓ {ahead}↑', + 'gitView.sync.syncCounts': '{behind}↓ {ahead}↑', + 'gitView.branch.actionsUnavailable': 'Zweigaktionen nicht verfügbar in diesem Repository-Zustand', + 'gitView.conflict.noDetailsAvailable': 'Keine Konfliktdetails verfügbar', + 'gitView.empty.notGitRepository': 'Dieses Verzeichnis ist kein Git-Repository', + 'gitView.empty.notGitRepositoryDescription': 'Initialisieren Sie Git in diesem Verzeichnis oder öffnen Sie ein Repository.', + 'gitView.empty.selectSessionOrDirectory': 'Wählen Sie eine Sitzung oder ein Verzeichnis aus, um den Git-Status anzuzeigen', + 'gitView.empty.worktreeFeaturesUnavailable': 'Worktree-Funktionen sind in diesem Arbeitsbereichsmodus nicht verfügbar.', + 'gitView.empty.worktreeSetupDescription': 'Arbeitstruktur-Einrichtung wird abgeschlossen und Repository-Zustand wird vorbereitet.', + 'gitView.empty.worktreeSetupInProgress': 'Worktree-Einrichtung läuft', + 'worktree.bootstrap.toast.failed': 'Worktree-Einrichtung fehlgeschlagen', + 'worktree.bootstrap.toast.failedDescription': 'Die Worktree wurde erstellt, aber die Hintergrund-Einrichtung wurde nicht abgeschlossen.', + 'worktree.bootstrap.toast.timeoutDescription': 'Die Worktree wurde erstellt, aber die Hintergrund-Einrichtung hat ein Timeout.', + 'gitView.gitmoji.empty': 'Keine Gitmojis gefunden', + 'gitView.gitmoji.searchPlaceholder': 'Gitmojis durchsuchen...', + 'gitView.gitmoji.title': 'Gitmoji einfügen', + 'gitView.history.dialogDescription': 'Letzte Commits durchsuchen und geänderte Dateien prüfen.', + 'gitView.loading.checkingRepository': 'Repository wird überprüft...', + 'gitView.loading.loading': 'Wird geladen...', + 'gitView.pr.actions.add': 'Hinzufügen', + 'gitView.pr.actions.cancelEditing': 'Bearbeitung abbrechen', + 'gitView.pr.actions.cancelEditingAria': 'PR-Bearbeitung abbrechen', + 'gitView.pr.actions.createPr': 'PR erstellen', + 'gitView.pr.actions.edit': 'Bearbeiten', + 'gitView.pr.actions.editPr': 'PR bearbeiten', + 'gitView.pr.actions.editPrAria': 'Pull Request bearbeiten', + 'gitView.pr.actions.hide': 'Verstecken', + 'gitView.pr.actions.markReady': 'Als bereit markieren', + 'gitView.pr.actions.markReadyAria': 'Pull Request als bereit für Review markieren', + 'gitView.pr.actions.mergePr': 'PR mergen', + 'gitView.pr.actions.mergePrAria': 'Pull Request mergen', + 'gitView.pr.actions.openChecks': 'Prüfungen öffnen', + 'gitView.pr.actions.openChecksAria': 'Fehlgeschlagene Prüfungen öffnen', + 'gitView.pr.actions.openComments': 'Kommentare öffnen', + 'gitView.pr.actions.openCommentsAria': 'Pull Request-Kommentare öffnen', + 'gitView.pr.actions.openOnGitHub': 'Auf GitHub öffnen', + 'gitView.pr.actions.openOnGitHubAria': 'Pull Request auf GitHub öffnen', + 'gitView.pr.actions.openSettings': 'Einstellungen öffnen', + 'gitView.pr.actions.repo': 'Repository', + 'gitView.pr.actions.resolveFailedChecks': 'Fehlgeschlagene Checks auflösen', + 'gitView.pr.actions.resolveFailedChecksAria': 'Fehlgeschlagene Checks an Agent senden', + 'gitView.pr.actions.savePr': 'PR speichern', + 'gitView.pr.actions.savePrAria': 'Pull-Request-Änderungen speichern', + 'gitView.pr.actions.sendCommentToAgent': 'Kommentar an Agent senden', + 'gitView.pr.actions.sendCommentToAgentAria': 'Diesen Kommentar an Agent senden', + 'gitView.pr.actions.sendToAgent': 'An Agent senden', + 'gitView.pr.actions.shareComments': 'Kommentare teilen', + 'gitView.pr.actions.shareCommentsAria': 'Pull-Request-Kommentare an Agent senden', + 'gitView.pr.actions.toggleDraftAria': 'Entwurfsstatus umschalten', + 'gitView.pr.actions.refresh': 'PR-Status aktualisieren', + 'gitView.pr.actions.refreshAria': 'Pull-Request-Status aktualisieren', + 'gitView.pr.additionalContext.added': 'Hinzugefügt', + 'gitView.pr.additionalContext.hint': 'Zusätzlichen Kontext hinzufügen für bessere Review-Qualität.', + 'gitView.pr.additionalContext.optional': 'Optional', + 'gitView.pr.additionalContext.title': 'Zusätzlicher Kontext', + 'gitView.pr.checkDetails.empty': 'Keine Check-Details verfügbar', + 'gitView.pr.checkDetails.title': 'Details zu fehlgeschlagenen Checks', + 'gitView.pr.checkingStatus': 'Pull-Request-Status wird überprüft...', + 'gitView.pr.checks.label': 'Checks', + 'gitView.pr.checks.completedLabel': 'Abgeschlossen', + 'gitView.pr.checks.conclusionLabel': 'Ergebnis', + 'gitView.pr.checks.startedLabel': 'Gestartet', + 'gitView.pr.checks.statusLabel': 'Status', + 'gitView.pr.checks.stepLabel': 'Schritt', + 'gitView.pr.checks.steps': 'Schritte', + 'gitView.pr.comments.empty': 'Keine Kommentare gefunden', + 'gitView.pr.comments.generalContext': 'Allgemeiner Kommentar', + 'gitView.pr.comments.reviewContext': 'Kommentar überprüfen', + 'gitView.pr.comments.title': 'Kommentare', + 'gitView.pr.comments.unknownAuthor': 'Unbekannter Autor', + 'gitView.pr.createTitle': 'Pull-Request erstellen', + 'gitView.pr.draftMustBeReady': 'Draft PR muss als bereit zum Merge markiert werden.', + 'gitView.pr.field.baseBranch': 'Basis-Branch', + 'gitView.pr.field.description': 'Beschreibung', + 'gitView.pr.field.draft': 'Entwurf', + 'gitView.pr.field.title': 'Titel', + 'gitView.pr.githubNotConnected': 'GitHub ist nicht verbunden', + 'gitView.pr.loadingDescription': 'Beschreibung wird geladen...', + 'gitView.pr.mergeMethod.merge': 'Einen Merge-Commit erstellen', + 'gitView.pr.mergeMethod.rebase': 'Rebase und Merge', + 'gitView.pr.mergeMethod.squash': 'Squash und Merge', + 'gitView.pr.noDescription': 'Keine Beschreibung', + 'gitView.pr.noMergePermission': 'Sie haben keine Berechtigung, diesen Pull-Request zu mergen.', + 'gitView.pr.notMergeable': 'Nicht mergebar', + 'gitView.pr.numberLabel': 'PR #{number}', + 'gitView.pr.placeholder.additionalContext': 'Beliebige Einschränkungen, Rollout-Hinweise oder Kontext für die Reviewer...', + 'gitView.pr.placeholder.description': 'Beschreiben Sie die Änderung...', + 'gitView.pr.placeholder.main': 'Zusammenfassung Ihres Pull-Requests', + 'gitView.pr.placeholder.selectBaseBranch': 'Basis-Branch auswählen', + 'gitView.pr.placeholder.title': 'Pull-Request-Titel', + 'gitView.pr.placeholder.whatChanged': 'Was hat sich geändert und warum?', + 'gitView.pr.statusUnavailable': 'Pull-Request-Status nicht verfügbar', + 'gitView.pr.toast.baseBranchRequired': 'Wählen Sie einen Basis-Branch aus', + 'gitView.pr.toast.baseMustDifferFromHead': 'Basis-Branch muss sich vom aktuellen Branch unterscheiden', + 'gitView.pr.toast.createPrFailed': 'Fehler beim Erstellen des Pull-Requests', + 'gitView.pr.toast.generateDescriptionFailed': 'Fehler bei der Generierung der Pull-Request-Beschreibung', + 'gitView.pr.toast.githubApiUnavailable': 'GitHub-API ist nicht verfügbar', + 'gitView.pr.toast.loadCheckDetailsFailed': 'Fehler beim Laden der Prüfungsdetails', + 'gitView.pr.toast.loadChecksFailed': 'Fehler beim Laden der Pull-Request-Prüfungen', + 'gitView.pr.toast.loadCommentsFailed': 'Fehler beim Laden der Kommentare', + 'gitView.pr.toast.loadPrCommentsFailed': 'Fehler beim Laden der Pull-Request-Kommentare', + 'gitView.pr.toast.markReadyFailed': 'Fehler beim Markieren des Pull-Requests als bereit', + 'gitView.pr.toast.markedReady': 'Pull-Request als bereit für die Überprüfung markiert', + 'gitView.pr.toast.mergeFailed': 'Fehler beim Zusammenführen des Pull-Requests', + 'gitView.pr.toast.noActiveSession': 'Keine aktive Chat-Sitzung', + 'gitView.pr.toast.noActiveSessionDescription': 'Öffne oder erstelle eine Chat-Sitzung, um Kontext an einen Agenten zu senden.', + 'gitView.pr.toast.noFailedChecks': 'Keine fehlgeschlagenen Prüfungen gefunden', + 'gitView.pr.toast.noModelSelected': 'Wähle zuerst ein Modell aus', + 'gitView.pr.toast.noPrComments': 'Keine Pull-Request-Kommentare gefunden', + 'gitView.pr.toast.prCreated': 'Pull-Request erstellt', + 'gitView.pr.toast.prMerged': 'Pull-Request zusammengeführt', + 'gitView.pr.toast.prNotMerged': 'Pull-Request wurde nicht zusammengeführt', + 'gitView.pr.toast.prUpdated': 'Pull-Request aktualisiert', + 'gitView.pr.toast.sendMessageFailed': 'Fehler beim Senden der Nachricht an den Agenten', + 'gitView.pr.toast.titleRequired': 'Titel ist erforderlich', + 'gitView.pr.toast.updatePrFailed': 'Fehler beim Aktualisieren des Pull-Requests', + 'gitView.pullRequest.createHint': 'Erstelle und verwalte Pull-Requests aus diesem Branch.', + 'gitView.pullRequest.availableOnFeatureBranches': 'Verfügbar, wenn der aktuelle Branch einen Pull-Request öffnen kann.', + 'gitView.pullRequest.title': 'Pull-Request', + 'gitView.tabs.commit': 'Commit', + 'gitView.tabs.pr': 'PR', + 'gitView.tabs.update': 'Update', + 'gitView.tabs.worktree': 'Worktree', + 'gitView.toast.abortOperationFailed': 'Fehler beim Abbrechen der Operation', + 'gitView.toast.appliedIdentity': 'Identität angewendet: {name}', + 'gitView.toast.applyIdentityFailed': 'Fehler beim Anwenden der Identität', + 'gitView.toast.branchCreatedLocally': 'Branch lokal erstellt, aber Fehler beim Festlegen des Upstreams.', + 'gitView.toast.cannotCheckout': 'Kann Branch nicht auschecken: {reason}', + 'gitView.toast.cannotCreateBranch': 'Kann Branch nicht erstellen: {reason}', + 'gitView.toast.cannotRemoveOriginRemote': 'Kann den origin-Remote nicht entfernen', + 'gitView.toast.cannotRenameBranch': 'Kann Branch nicht umbenennen: {reason}', + 'gitView.toast.checkedOut': 'Ausgecheckt {name}', + 'gitView.toast.checkoutFailed': 'Fehler beim Auschecken von {name}', + 'gitView.toast.commitCreated': 'Commit erstellt', + 'gitView.toast.commitHashCopied': 'Commit-Hash kopiert', + 'gitView.toast.continueOperationFailed': 'Fehler beim Fortsetzen der Operation', + 'gitView.toast.copyFailed': 'Fehler beim Kopieren', + 'gitView.toast.createBranchFailed': 'Fehler beim Erstellen des Branches', + 'gitView.toast.createCommitFailed': 'Fehler beim Erstellen des Commits', + 'gitView.toast.createdBranch': 'Branch {name} erstellt', + 'gitView.toast.enterCommitMessage': 'Geben Sie eine Commit-Nachricht ein', + 'gitView.toast.fetchedFromRemote': 'Von {name} abgerufen', + 'gitView.toast.generateCommitMessageFailed': 'Fehler beim Generieren der Commit-Nachricht', + 'gitView.toast.mergeAborted': 'Merge abgebrochen', + 'gitView.toast.mergeCompleted': 'Merge abgeschlossen', + 'gitView.toast.mergeConflictsDetected': 'Merge-Konflikte erkannt', + 'gitView.toast.mergedIntoBranch': '{branch} in {currentBranch} gemerged', + 'gitView.toast.pulledFilesPlural': '{count} Dateien von {name} abgerufen', + 'gitView.toast.pulledFilesSingle': '{count} Datei von {name} abgerufen', + 'gitView.toast.pushedToUpstream': 'Zu {name} gepusht', + 'gitView.toast.commitOrStashBeforeSync': 'Committen oder stashen Sie Ihre Änderungen vor dem Sync', + 'gitView.toast.alreadyUpToDate': 'Bereits auf dem neuesten Stand', + 'gitView.toast.syncedPulledPluralAndPushed': '{count} Dateien von {name} abgerufen und zu Upstream gepusht', + 'gitView.toast.syncedPulledSingleAndPushed': '{count} Datei von {name} abgerufen und zu Upstream gepusht', + 'gitView.toast.syncedChanges': 'Änderungen synchronisiert', + 'gitView.toast.rebaseAborted': 'Rebase abgebrochen', + 'gitView.toast.rebaseConflictsDetected': 'Rebase-Konflikte erkannt', + 'gitView.toast.rebaseStepCompleted': 'Rebase-Schritt abgeschlossen', + 'gitView.toast.rebasedOntoBranch': '{currentBranch} neu basiert auf {branch}', + 'gitView.toast.refreshRepositoryFailed': 'Fehler beim Aktualisieren des Repositorys', + 'gitView.toast.remoteNameRequired': 'Remote-Name ist erforderlich', + 'gitView.toast.removedRemote': 'Remote {name} entfernt', + 'gitView.toast.renameBranchFailed': 'Fehler beim Umbenennen von {oldName} in {newName}', + 'gitView.toast.renamedBranch': '{oldName} umbenannt in {newName}', + 'gitView.toast.restoreStashFailed': 'Fehler beim Wiederherstellen des Stashes', + 'gitView.toast.restoreStashManually': 'Manuelles Wiederherstellen des Stashes erforderlich', + 'gitView.toast.revertFailed': 'Fehler beim Rückgängig machen der Änderungen', + 'gitView.toast.revertedFile': '{path} rückgängig gemacht', + 'gitView.toast.revertedFilesPlural': '{count} Dateien rückgängig gemacht', + 'gitView.toast.revertedFilesSingle': '{count} Datei rückgängig gemacht', + 'gitView.toast.revertedSomePlural': '{success} Dateien rückgängig gemacht, {failed} fehlgeschlagen', + 'gitView.toast.revertedSomeSingle': '{success} Datei rückgängig gemacht, {failed} fehlgeschlagen', + 'gitView.toast.stageFileFailed': 'Fehler beim Stagen der Änderungen', + 'gitView.toast.stageFileToCommit': 'Stage mindestens eine Datei zum Commit', + 'gitView.toast.stageFileToDescribe': 'Stage mindestens eine Datei zur Beschreibung', + 'gitView.toast.selectFileToCommit': 'Wähle mindestens eine Datei zum Commit aus', + 'gitView.toast.selectFileToDescribe': 'Wähle mindestens eine Datei zur Beschreibung aus', + 'gitView.toast.stashedRestored': 'Gestashete Änderungen wiederhergestellt', + 'gitView.toast.syncActionFailed': '{action} fehlgeschlagen', + 'gitView.toast.unstageFileFailed': 'Fehler beim Aufheben des Stages der Änderungen', + 'gitView.toast.upstreamSet': 'Upstream für {branch} auf {remote} gesetzt', + 'gitView.worktree.availableInWorktreeMode': 'Nur im Worktree-Modus verfügbar', + 'contextPanel.mode.chat': 'Chat', + 'contextPanel.mode.files': 'Dateien', + 'contextPanel.mode.diff': 'Änderungen', + 'contextPanel.mode.stagedDiff': 'Staged Diff', + 'contextPanel.mode.workingDiff': 'Working Diff', + 'contextPanel.mode.plan': 'Plan', + 'contextPanel.mode.context': 'Kontext', + 'contextPanel.mode.preview': 'Vorschau', + 'contextPanel.mode.browser': 'Browser', + 'contextPanel.browser.open': 'Browser-Panel öffnen', + 'contextPanel.browser.addressAria': 'Browser-Adresse', + 'contextPanel.browser.empty': 'Webbrowser', + 'contextPanel.browser.emptyHint': 'Geben Sie oben eine Adresse ein, um mit dem Surfen im Web zu beginnen', + 'contextPanel.browser.inspectUnavailable': 'Diese Seite kann nicht aus dem Browser-Panel inspectiert werden.', + 'contextPanel.browser.trustNotice': 'Seiten, die hier geöffnet werden, laufen mit vollständigem Zugriff auf OpenChamber — erforderlich für Inspect und Screenshots. Öffnen Sie nur Seiten, denen Sie vertrauen: Eine bösartige Seite könnte Ihre Daten lesen oder in Ihrem Namen handeln.', + 'contextPanel.tab.closeTabAria': '{label}-Registerkarte schließen', + 'contextPanel.actions.collapsePanel': 'Panel einklappen', + 'contextPanel.actions.expandPanel': 'Panel ausklappen', + 'contextPanel.actions.closePanel': 'Panel schließen', + 'contextPanel.actions.resizePanelAria': 'Größe des Kontextpanels ändern', + 'contextPanel.iframe.sessionChatTitle': 'Sitzungschat {sessionID}', + 'contextPanel.preview.actions.reload': 'Vorschau neu laden', + 'contextPanel.preview.actions.openExternal': 'Im Browser öffnen', + 'contextPanel.preview.actions.retry': 'Erneut versuchen', + 'contextPanel.preview.iframeTitle': 'Vorschau', + 'contextPanel.preview.invalidUrl': 'Vorschau benötigt eine gültige http(s)-URL.', + 'contextPanel.preview.empty': 'Keine Vorschau-URL', + 'contextPanel.preview.loading': 'Vorschau-Proxy wird verbunden...', + 'contextPanel.preview.proxyError': 'Konnte Vorschau-Proxy nicht starten.', + 'contextPanel.preview.upstreamUnreachable': 'Dev-Server antwortet nicht.', + 'contextPanel.preview.upstreamUnreachableHint': 'Stellen Sie sicher, dass Ihr Dev-Server noch läuft, und versuchen Sie es dann erneut.', + 'contextPanel.preview.startingServer': 'Dev-Server wird gestartet...', + 'contextPanel.preview.startingServerHint': 'Warten auf Annahme von Verbindungen durch den Server.', + 'contextPanel.preview.title': 'Vorschau', + 'contextPanel.preview.description': 'Verwenden Sie Projektaktionen oder eine Vorschau-Schaltfläche im Terminal, um eine Vorschau zu öffnen.', + 'contextPanel.preview.startPreview': 'Vorschau starten', + 'contextPanel.preview.starting': 'Starte...', + 'contextPanel.preview.noDevServer': 'Kein Dev-Server-Befehl gefunden. Konfiguriere eine Projektaktion oder füge einen "dev"-Skript in package.json hinzu.', + 'contextPanel.preview.startFailed': 'Fehler beim Starten des Vorschau-Servers.', + 'contextPanel.preview.serverExited': 'Dev-Server wurde unerwartet beendet.', + 'contextPanel.preview.noUrlDetected': 'Dev-Server gestartet, aber keine URL in der Ausgabe erkannt. Öffne den Vorschau-Terminal-Tab, um die Protokolle zu prüfen.', + 'contextPanel.preview.serverExitedWithLog': 'Dev-Server wurde unerwartet beendet. Letzte Ausgabe: + +{log}', + 'contextPanel.preview.noUrlDetectedWithLog': 'Dev-Server ist nicht erreichbar geworden. Letzte Ausgabe: + +{log}', + 'contextPanel.preview.console.open': 'Vorschau-Konsole öffnen', + 'contextPanel.preview.console.waiting': 'Warte auf Vorschau-Konsole', + 'contextPanel.preview.console.title': 'Vorschau-Konsole', + 'contextPanel.preview.console.attach': 'Anhängen', + 'contextPanel.preview.console.copy': 'Kopieren', + 'contextPanel.preview.console.clear': 'Leeren', + 'contextPanel.preview.console.empty': 'Noch keine Vorschau-Konsole-Ereignisse.', + 'contextPanel.preview.console.noFilteredEvents': 'Keine Ereignisse entsprechen diesem Filter.', + 'contextPanel.preview.console.runtimeError': 'Laufzeitfehler', + 'contextPanel.preview.console.copied': 'Vorschau-Konsole kopiert', + 'contextPanel.preview.console.copyFailed': 'Fehler beim Kopieren der Vorschau-Konsole', + 'contextPanel.preview.console.attached': 'Vorschau-Konsole an Chat angehängt', + 'contextPanel.preview.console.attachNoSession': 'Öffne eine Chat-Sitzung, bevor du Vorschau-Protokolle anhängst', + 'contextPanel.preview.console.attachAnnotation': 'Dies sind Browser-Konsole-Protokolle vom Dev-Server, der für dieses Projekt läuft.', + 'contextPanel.preview.inspect.toggle': 'Vorschau-Element untersuchen', + 'contextPanel.preview.inspect.attached': 'Vorschau-Anmerkung an Chat angehängt', + 'contextPanel.preview.inspect.attachNoSession': 'Öffne eine Chat-Sitzung, bevor du Vorschau-Anmerkungen anhängst', + 'contextPanel.preview.inspect.attachAnnotation': 'Dies ist ein ausgewähltes DOM-Element aus der In-App-Vorschau.', + 'contextPanel.preview.inspect.attachAnnotationWithScreenshot': 'Dies ist ein ausgewähltes DOM-Element aus der In-App-Vorschau. Ein Screenshot des sichtbaren Vorschau-Bereichs mit dem ausgewählten Element hervorgehoben ist angehängt.', + 'contextPanel.preview.console.filter.all': 'Alle', + 'contextPanel.preview.console.filter.errors': 'Fehler', + 'contextPanel.preview.console.filter.warnings': 'Warnungen', + 'contextPanel.preview.console.filter.logs': 'Protokolle', + 'terminalView.preview.open': 'Vorschau', + 'terminalView.preview.openTitle': 'Vorschaubereich öffnen', + 'sidebarFilesTree.menu.rename': 'Umbenennen', + 'sidebarFilesTree.menu.copyPath': 'Pfad kopieren', + 'sidebarFilesTree.menu.save': 'Speichern', + 'sidebarFilesTree.menu.newFile': 'Neue Datei', + 'sidebarFilesTree.menu.newFolder': 'Neuer Ordner', + 'sidebarFilesTree.menu.delete': 'Löschen', + 'sidebarFilesTree.toast.pathCopied': 'Pfad kopiert', + 'sidebarFilesTree.toast.copyFailed': 'Kopieren fehlgeschlagen', + 'sidebarFilesTree.toast.revealFailed': 'Pfad konnte nicht angezeigt werden', + 'sidebarFilesTree.toast.filenameRequired': 'Dateiname ist erforderlich', + 'sidebarFilesTree.toast.writeNotSupported': 'Schreiben nicht unterstützt', + 'sidebarFilesTree.toast.fileCreated': 'Datei erstellt', + 'sidebarFilesTree.toast.operationFailed': 'Operation fehlgeschlagen', + 'sidebarFilesTree.toast.folderNameRequired': 'Ordnername ist erforderlich', + 'sidebarFilesTree.toast.folderCreated': 'Ordner erstellt', + 'sidebarFilesTree.toast.nameRequired': 'Name ist erforderlich', + 'sidebarFilesTree.toast.renameNotSupported': 'Umbenennen nicht unterstützt', + 'sidebarFilesTree.toast.renamedSuccessfully': 'Erfolgreich umbenannt', + 'sidebarFilesTree.toast.deleteNotSupported': 'Löschen nicht unterstützt', + 'sidebarFilesTree.toast.deletedSuccessfully': 'Erfolgreich gelöscht', + 'sidebarFilesTree.search.placeholder': 'Dateien suchen...', + 'sidebarFilesTree.search.clearAria': 'Suche löschen', + 'sidebarFilesTree.actions.newFileTitle': 'Neue Datei', + 'sidebarFilesTree.actions.newFolderTitle': 'Neuer Ordner', + 'sidebarFilesTree.actions.refreshTitle': 'Aktualisieren', + 'sidebarFilesTree.actions.fileMenuTitle': 'Dateimenü', + 'sidebarFilesTree.state.searching': 'Suche läuft...', + 'sidebarFilesTree.state.loading': 'Wird geladen...', + 'sidebarFilesTree.dialog.createFile.title': 'Datei erstellen', + 'sidebarFilesTree.dialog.createFolder.title': 'Ordner erstellen', + 'sidebarFilesTree.dialog.rename.title': 'Umbenennen', + 'sidebarFilesTree.dialog.delete.title': 'Löschen', + 'sidebarFilesTree.dialog.createFile.description': 'Erstelle eine neue Datei in {path}', + 'sidebarFilesTree.dialog.createFolder.description': 'Erstelle einen neuen Ordner in {path}', + 'sidebarFilesTree.dialog.rename.description': '{name} umbenennen', + 'sidebarFilesTree.dialog.delete.description': 'Sind Sie sicher, dass Sie {name} löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.', + 'sidebarFilesTree.dialog.rootFallback': 'root', + 'sidebarFilesTree.dialog.rename.placeholder': 'Neuer Name', + 'sidebarFilesTree.dialog.namePlaceholder': 'Name', + 'sidebarFilesTree.dialog.cancel': 'Abbrechen', + 'sidebarFilesTree.dialog.confirm': 'Bestätigen', + 'sidebarFilesTree.dialog.delete.confirm': 'Löschen', + 'filesView.dialog.createFile.title': 'Datei erstellen', + 'filesView.dialog.createFolder.title': 'Ordner erstellen', + 'filesView.dialog.rename.title': 'Umbenennen', + 'filesView.dialog.delete.title': 'Löschen', + 'filesView.dialog.createFile.description': 'Erstelle eine neue Datei in {path}', + 'filesView.dialog.createFolder.description': 'Erstelle einen neuen Ordner in {path}', + 'filesView.dialog.rename.description': '{name} umbenennen', + 'filesView.dialog.delete.description': 'Sind Sie sicher, dass Sie {name} löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.', + 'filesView.dialog.rootFallback': 'root', + 'filesView.dialog.rename.placeholder': 'Neuer Name', + 'filesView.dialog.namePlaceholder': 'Name', + 'filesView.dialog.cancel': 'Abbrechen', + 'filesView.dialog.confirm': 'Bestätigen', + 'filesView.dialog.delete.confirm': 'Löschen', + 'filesView.editor.saving': 'Speichern...', + 'filesView.editor.saved': 'Gespeichert', + 'filesView.editor.autoSaveOn': 'Automatisch speichern ein', + 'filesView.editor.manualSave': 'Manuelles Speichern', + 'filesView.editor.saveNowTitle': 'Jetzt speichern ({shortcut}) - automatisches Speichern nach 1,5s', + 'filesView.editor.saveNowManualTitle': 'Jetzt speichern ({shortcut})', + 'filesView.editor.saveAria': 'Speichern ({shortcut})', + 'filesView.editor.openInDesktopApp': 'In Desktop-App öffnen', + 'filesView.editor.refreshApps': 'Apps aktualisieren', + 'filesView.editor.disableLineWrap': 'Zeilenumbruch deaktivieren', + 'filesView.editor.enableLineWrap': 'Zeilenumbruch aktivieren', + 'filesView.editor.findInFile': 'In Datei suchen', + 'filesView.editor.goToLine': 'Gehe zu Zeile', + 'filesView.editor.switchToEditMode': 'Zum Bearbeitungsmodus wechseln', + 'filesView.editor.switchToPreviewMode': 'Zum Vorschau-Modus wechseln', + 'filesView.editor.switchToTextView': 'Zur Textansicht wechseln', + 'filesView.editor.switchToTreeView': 'Zur Baumansicht wechseln', + 'filesView.toast.copyFailed': 'Kopieren fehlgeschlagen', + 'filesView.toast.openInAppFailed': 'Öffnen in {app} fehlgeschlagen', + 'filesView.toast.savingNotSupported': 'Speichern nicht unterstützt', + 'filesView.toast.writeFileFailed': 'Schreiben der Datei fehlgeschlagen', + 'filesView.toast.saveFailed': 'Speichern fehlgeschlagen', + 'filesView.editor.copyFileContents': 'Dateiinhalte kopieren', + 'filesView.editor.copyFilePathTitle': 'Dateipfad kopieren ({path})', + 'filesView.editor.saveFile': 'Datei speichern', + 'filesView.editor.exitFullscreen': 'Vollbild beenden', + 'filesView.editor.fullscreen': 'Vollbild', + 'filesView.unsaved.title': 'Ungespeicherte Änderungen', + 'filesView.unsaved.description': 'Änderungen speichern, bevor Sie fortfahren?', + 'filesView.unsaved.saveChanges': 'Änderungen speichern', + 'filesView.unsaved.discard': 'Verwerfen', + 'filesView.editor.back': 'Zurück', + 'filesView.editor.openFilesAria': 'Offene Dateien', + 'filesView.editor.closeFileAria': 'Schließe {name}', + 'filesView.editor.selectFile': 'Datei auswählen', + 'filesView.editor.showControlsAria': 'Editor-Kontrollen anzeigen', + 'filesView.editor.controlsTitle': 'Editor-Kontrollen', + 'filesView.editor.pickFileFromTree': 'Wählen Sie eine Datei aus dem Baum aus.', + 'filesView.state.loading': 'Laden...', + 'filesView.state.openingFileAtChange': 'Öffne Datei bei Änderung...', + 'filesView.tree.search.placeholder': 'Dateien durchsuchen...', + 'filesView.tree.search.clearAria': 'Suche löschen', + 'filesView.tree.search.searching': 'Suche...', + 'filesView.tree.actions.newFileTitle': 'Neue Datei', + 'filesView.tree.actions.newFolderTitle': 'Neuer Ordner', + 'filesView.tree.actions.refreshTitle': 'Aktualisieren', + 'filesView.editor.imageAltFallback': 'Bild', + 'filesView.error.jsonViewerUnavailable': 'JSON-Betrachter nicht verfügbar', + 'filesView.error.switchToTextMode': 'Wechseln Sie zum Textmodus, um den Rohinhalt anzuzeigen.', + 'filesView.warning.largeFilePreviewLimited': 'Diese Datei ist groß ({sizeKb}KB). Die Vorschau kann eingeschränkt sein.', + 'filesView.error.previewUnavailable': 'Vorschau nicht verfügbar', + 'filesView.error.switchToEditMode': 'Wechseln Sie zum Bearbeitungsmodus, um das Problem zu beheben.', + 'filesView.error.readFileFailed': 'Fehler beim Lesen der Datei', + 'filesView.editor.htmlPreviewTitle': 'HTML-Vorschau', + 'filesView.diagram.closeDiagramView': 'Diagrammansicht schließen', + 'filesView.diagram.saveDiagram': 'Diagramm speichern', + 'contextUsage.aria.label': 'Kontextnutzung', + 'contextUsage.mobile.title': 'Kontextnutzung', + 'contextUsage.mobile.usedTokens': 'Verwendete Tokens', + 'contextUsage.mobile.contextLimit': 'Kontextlimit', + 'contextUsage.mobile.outputLimit': 'Ausgabelimit', + 'contextUsage.mobile.usage': 'Nutzung', + 'contextUsage.tooltip.usedTokens': 'Verwendete Tokens: {tokens}', + 'contextUsage.tooltip.contextLimit': 'Kontextlimit: {tokens}', + 'contextUsage.tooltip.outputLimit': 'Ausgabelimit: {tokens}', + 'contextSidebar.session.untitled': 'Unbenannte Sitzung', + 'contextSidebar.empty.openSession': 'Öffnen Sie eine Sitzung, um den Kontext zu prüfen.', + 'contextSidebar.section.context': 'Kontext', + 'contextSidebar.section.lastAssistantMessage': 'Letzte Assistentennachricht', + 'contextSidebar.section.rawMessages': 'Rohmeldungen', + 'contextSidebar.context.percentUsed': '{percent}% verwendet', + 'contextSidebar.breakdown.user': 'Benutzer', + 'contextSidebar.breakdown.assistant': 'Assistent', + 'contextSidebar.breakdown.toolCalls': 'Werkzeugaufrufe', + 'contextSidebar.breakdown.other': 'Andere', + 'contextSidebar.stats.messages': 'Nachrichten', + 'contextSidebar.stats.user': 'Benutzer', + 'contextSidebar.stats.assistant': 'Assistent', + 'contextSidebar.stats.cost': 'Kosten', + 'contextSidebar.tokens.input': 'Eingabe', + 'contextSidebar.tokens.output': 'Ausgabe', + 'contextSidebar.tokens.reasoning': 'Reasoning', + 'contextSidebar.tokens.cacheRead': 'Cache-Lesevorgang', + 'contextSidebar.tokens.cacheWrite': 'Cache-Schreibvorgang', + 'contextSidebar.tokens.cacheHit': 'Cache-Treffer', + 'contextSidebar.actions.copyJson': 'JSON kopieren', + 'contextSidebar.actions.copy': 'Kopieren', + 'contextSidebar.actions.copied': 'Kopiert', + 'planView.file.defaultName': 'plan', + 'planView.title.default': 'Plan', + 'planView.error.saveFailed': 'Speichern fehlgeschlagen', + 'planView.error.previewUnavailable': 'Vorschau nicht verfügbar', + 'planView.error.switchToEditMode': 'Wechseln Sie zum Bearbeitungsmodus, um das Problem zu beheben.', + 'planView.error.writeFailed': 'Schreiben fehlgeschlagen', + 'planView.error.writePlanFileFailed': 'Fehler beim Schreiben der Plan-Datei ({status})', + 'planView.actions.improvePlanAria': 'Plan verbessern', + 'planView.actions.improve': 'Verbessern', + 'planView.actions.implementPlanAria': 'Plan implementieren', + 'planView.actions.implement': 'Implementieren', + 'planView.actions.sendToNewSession': 'An neue Sitzung senden', + 'planView.actions.sendToNewWorktreeSession': 'An neue Worktree-Sitzung senden', + 'planView.actions.copyPlanContents': 'Plan-Inhalt kopieren', + 'planView.state.loading': 'Wird geladen...', + 'diffView.binary.unavailable': 'Der Inhalt dieser Datei kann nicht angezeigt werden.', + 'diffView.change.untracked': 'Nicht überwachte Datei', + 'diffView.change.new': 'Neue Datei', + 'diffView.change.deleted': 'Gelöschte Datei', + 'diffView.change.renamed': 'Umbenannte Datei', + 'diffView.change.copied': 'Kopierte Datei', + 'diffView.change.modified': 'Geänderte Datei', + 'diffView.selector.selectFile': 'Datei auswählen', + 'diffView.image.original': 'Original', + 'diffView.image.modified': 'Geändert', + 'diffView.image.new': 'Neu', + 'diffView.image.originalAlt': 'Original: {path}', + 'diffView.image.modifiedAlt': 'Geändert: {path}', + 'diffView.section.files': 'Dateien', + 'diffView.state.selectSessionDirectory': 'Wählen Sie ein Sitzungsverzeichnis aus, um Unterschiede anzuzeigen', + 'diffView.state.loadingRepositoryStatus': 'Repository-Status wird geladen...', + 'diffView.state.notGitRepository': 'Kein Git-Repository. Verwenden Sie den Git-Tab, um es zu initialisieren oder ein Verzeichnis zu wechseln.', + 'diffView.state.cleanWorkingTree': 'Arbeitsverzeichnis ist sauber, keine Änderungen zum Anzeigen', + 'diffView.state.noLastTurnChanges': 'Keine Änderungen im letzten Zug zum Anzeigen', + 'diffView.state.failedToLoadDiff': 'Fehler beim Laden des Diffs', + 'diffView.state.loadingDiff': 'Lade Diff...', + 'diffView.state.loadingChanges': 'Lade Änderungen...', + 'diffView.state.largeDiff': 'Großer Diff ({count} geänderte Zeilen)', + 'diffView.state.largeDiffDescription': 'Die Darstellung kann langsam sein. Sie können den Diff dennoch anzeigen, indem Sie unten klicken.', + 'diffView.summary.changedFilesSingle': '{count} Datei geändert', + 'diffView.summary.changedFilesPlural': '{count} Dateien geändert', + 'diffView.scope.changed': 'Geändert', + 'diffView.scope.staged': 'Staged', + 'diffView.scope.lastTurn': 'Letzter Zug', + 'diffView.scope.selectorAria': 'Änderungsmodus auswählen', + 'diffView.actions.retry': 'Erneut versuchen', + 'diffView.actions.renderAnyway': 'Trotzdem rendern', + 'diffView.actions.expandAll': 'Alle erweitern', + 'diffView.actions.collapseAll': 'Alle reduzieren', + 'diffView.actions.loadFullFiles': 'Vollständige Dateien laden', + 'diffView.actions.disableFullFiles': 'Vollständige Dateien entladen', + 'diffView.actions.disableLineWrap': 'Zeilenumbruch deaktivieren', + 'diffView.actions.enableLineWrap': 'Zeilenumbruch aktivieren', + 'diffView.actions.openFileInEditorAtChange': 'Diese Datei im Editor bei der Änderung öffnen', + 'diffView.actions.openFileAtFirstChangedLine': 'Diese Datei an erster geänderter Zeile öffnen', + 'diffView.actions.review': 'Überprüfen', + 'diffView.actions.reviewAria': 'Änderungen überprüfen', + 'diffView.reviewDialog.title': 'Änderungen überprüfen', + 'diffView.reviewDialog.description': 'Starten Sie eine separate Überprüfungs-Sitzung für die aktuellen Änderungen.', + 'diffView.reviewDialog.generateHandoff': 'Übergabe generieren', + 'diffView.reviewDialog.autoReview': 'Automatische Überprüfungs-Schleife ausführen', + 'diffView.reviewDialog.info': 'Dieser Ablauf funktioniert am besten, wenn er aus der Sitzung gestartet wird, in der die Änderungen implementiert wurden.', + 'diffView.reviewDialog.actions.cancel': 'Abbrechen', + 'diffView.reviewDialog.actions.start': 'Überprüfen', + 'diffView.reviewDialog.actions.starting': 'Starte...', + 'diffView.reviewDialog.toast.noSessionDirectory': 'Sitzungsverzeichnis ist nicht verfügbar', + 'diffView.reviewDialog.toast.startFailed': 'Fehler beim Starten des Überprüfungsflusses', + 'chat.history.loadOlder': 'Ältere Nachrichten laden', + 'chat.autoReview.title': 'Code-Überprüfungs-Schleife läuft', + 'chat.autoReview.status.waitingForReviewer': 'Warte auf Überprüfer', + 'chat.autoReview.status.waitingForImplementer': 'Warte auf Implementierer', + 'chat.autoReview.reviewSessionLabel': 'Überprüfungssitzung', + 'chat.autoReview.actions.open': 'Öffnen', + 'chat.autoReview.actions.stop': 'Stoppen', + 'diffView.hunk.label': 'Stücke', + 'diffView.hunk.stage': 'Zu Staging hinzufügen', + 'diffView.hunk.unstage': 'Aus Staging entfernen', + 'diffView.hunk.discard': 'Verwerfen', + 'diffView.hunk.stageTitle': 'Stück {index} zu Staging hinzufügen', + 'diffView.hunk.unstageTitle': 'Stück {index} aus Staging entfernen', + 'diffView.hunk.discardTitle': 'Stück {index} verwerfen', + 'diffView.hunk.unavailable': 'Dieses Stück ist nicht länger verfügbar. Aktualisiere die Diff-Ansicht und versuche es erneut.', + 'diffView.hunk.unsupported': 'Das Staging einzelner Stücke wird in dieser Laufzeitumgebung nicht unterstützt.', + 'rightSidebar.contextNotesTodo.plan.defaultTitle': 'Plan', + 'rightSidebar.contextNotesTodo.empty.selectProject': 'Wähle ein Projekt aus, um Notizen und Aufgaben hinzuzufügen.', + 'rightSidebar.contextNotesTodo.notes.title': 'Schnelle Notizen - {project}', + 'rightSidebar.contextNotesTodo.notes.placeholder': 'Kontext, Erinnerungen oder Links festhalten', + 'rightSidebar.contextNotesTodo.todo.title': 'Aufgaben', + 'rightSidebar.contextNotesTodo.todo.itemsSingle': '{count} Element', + 'rightSidebar.contextNotesTodo.todo.itemsPlural': '{count} Elemente', + 'rightSidebar.contextNotesTodo.todo.clearCompleted': 'Abgeschlossene löschen', + 'rightSidebar.contextNotesTodo.todo.inputPlaceholder': 'Eine Aufgabe hinzufügen', + 'rightSidebar.contextNotesTodo.todo.addAria': 'Aufgabe hinzufügen', + 'rightSidebar.contextNotesTodo.todo.empty': 'Noch keine Aufgaben. Fügen Sie eine kleine Checkliste für dieses Projekt hinzu.', + 'rightSidebar.contextNotesTodo.todo.actions.markComplete': 'Markiere "{text}" als erledigt', + 'rightSidebar.contextNotesTodo.todo.actions.collapse': 'Aufgabe "{text}" einklappen', + 'rightSidebar.contextNotesTodo.todo.actions.expand': 'Aufgabe "{text}" ausklappen', + 'rightSidebar.contextNotesTodo.todo.actions.delete': 'Lösche "{text}"', + 'rightSidebar.contextNotesTodo.todo.actions.send': 'Sende "{text}"', + 'rightSidebar.contextNotesTodo.todo.actions.reorder': 'Ordne "{text}" neu', + 'rightSidebar.contextNotesTodo.todo.resizeAria': 'Größe der Aufgabenliste ändern', + 'rightSidebar.contextNotesTodo.todo.sendMenu.currentSession': 'An aktuelle Sitzung senden', + 'rightSidebar.contextNotesTodo.todo.sendMenu.newSession': 'An neue Sitzung senden', + 'rightSidebar.contextNotesTodo.todo.sendMenu.newWorktreeSession': 'An neue Worktree-Sitzung senden', + 'rightSidebar.contextNotesTodo.plans.title': 'Pläne', + 'rightSidebar.contextNotesTodo.plans.filesSingle': '{count} Datei', + 'rightSidebar.contextNotesTodo.plans.filesPlural': '{count} Dateien', + 'rightSidebar.contextNotesTodo.plans.importFromFile': 'Plan aus Datei importieren', + 'rightSidebar.contextNotesTodo.plans.empty': 'Noch keine gespeicherten Pläne.', + 'rightSidebar.contextNotesTodo.plans.deletePlan': 'Plan löschen', + 'rightSidebar.contextNotesTodo.plans.deletePlanWithTitle': 'Lösche Plan "{title}"', + 'rightSidebar.contextNotesTodo.sendDialog.title.newSession': 'An neue Sitzung senden', + 'rightSidebar.contextNotesTodo.sendDialog.title.newWorktree': 'An neuen Worktree senden', + 'rightSidebar.contextNotesTodo.sendDialog.variant.default': 'Standard', + 'rightSidebar.contextNotesTodo.sendDialog.actions.cancel': 'Abbrechen', + 'rightSidebar.contextNotesTodo.sendDialog.actions.send': 'Senden', + 'rightSidebar.contextNotesTodo.sendDialog.actions.sending': 'Senden', + 'rightSidebar.contextNotesTodo.toast.saveNotesFailed': 'Fehler beim Speichern der Projektnotizen', + 'rightSidebar.contextNotesTodo.toast.loadNotesFailed': 'Fehler beim Laden der Projektnotizen', + 'rightSidebar.contextNotesTodo.toast.noActiveSession': 'Keine aktive Sitzung ausgewählt', + 'rightSidebar.contextNotesTodo.toast.sentToCurrentSession': 'Aufgabe an aktuelle Sitzung gesendet', + 'rightSidebar.contextNotesTodo.toast.worktreeRequiresGitRepo': 'Worktree-Aktionen sind nur für Git-Repositories verfügbar', + 'rightSidebar.contextNotesTodo.toast.createSessionFailed': 'Fehler beim Erstellen der Sitzung', + 'rightSidebar.contextNotesTodo.toast.sentToNewSession': 'Todo an neue Sitzung gesendet', + 'rightSidebar.contextNotesTodo.toast.sentToNewWorktreeSession': 'Todo an neue Worktree-Sitzung gesendet', + 'rightSidebar.contextNotesTodo.toast.sendTodoFailed': 'Fehler beim Senden des Todos', + 'rightSidebar.contextNotesTodo.toast.deletePlanFailed': 'Fehler beim Löschen des Plans', + 'rightSidebar.contextNotesTodo.toast.planFileEmpty': 'Plan-Datei ist leer', + 'rightSidebar.contextNotesTodo.toast.importPlanFailed': 'Fehler beim Importieren des Plans', + 'rightSidebar.contextNotesTodo.toast.planImported': 'Plan importiert', + 'rightSidebar.contextNotesTodo.toast.readPlanFileFailed': 'Fehler beim Lesen der Plan-Datei', + 'inlineComment.range.lines': 'Zeilen {start}-{end}', + 'inlineComment.input.placeholder': 'Kommentar hinzufügen... (Cmd+Enter zum Speichern)', + 'inlineComment.input.placeholderShort': 'Kommentar hinzufügen...', + 'inlineComment.actions.cancel': 'Abbrechen', + 'inlineComment.actions.save': 'Speichern', + 'inlineComment.actions.comment': 'Kommentieren', + 'inlineComment.actions.showLess': 'Weniger anzeigen', + 'inlineComment.actions.showMore': 'Mehr anzeigen', + 'inlineComment.actions.editComment': 'Kommentar bearbeiten', + 'inlineComment.actions.deleteComment': 'Kommentar löschen', + 'inlineComment.toast.selectSessionToSave': 'Sitzung zum Speichern des Kommentars auswählen', + 'header.github.connectedWithLogin': 'GitHub: {login}', + 'header.github.connected': 'GitHub verbunden', + 'header.github.avatarWithLogin': '{login} Avatar', + 'header.github.avatar': 'GitHub-Avatar', + 'header.github.accountsTitle': 'GitHub-Konten', + 'header.github.accountSource.oauth': 'OAuth', + 'header.github.accountSource.cli': 'CLI', + 'header.services.openWithCurrent': 'Instanz öffnen, Nutzung und MCP (aktuell: {current})', + 'header.services.open': 'Dienste öffnen, Nutzung und MCP', + 'header.services.tooltip.currentInstanceWithShortcuts': 'Aktuelle Instanz: {current} ({toggle}; nächster Tab {nextTab})', + 'header.services.tooltip.servicesWithShortcuts': 'Dienste ({toggle}; nächster Tab {nextTab})', + 'header.services.title': 'Dienste', + 'header.services.viewAria': 'Dienste anzeigen', + 'header.services.closeAria': 'Dienste schließen', + 'header.services.rateLimits': 'Ratenlimits', + 'header.services.refreshRateLimitsAria': 'Ratenlimits aktualisieren', + 'header.services.noRateLimits': 'Keine Ratenlimits verfügbar.', + 'header.services.noRateLimitsReported': 'Keine Ratenlimits berichtet.', + 'header.services.remoteUpdate.title': 'Remote-Instanz-Update', + 'header.services.remoteUpdate.checking': 'Suche nach Updates...', + 'header.services.remoteUpdate.upToDate': 'Diese Instanz ist auf dem neuesten Stand.', + 'header.services.remoteUpdate.available': 'Version {version} ist für diese Instanz verfügbar.', + 'header.services.remoteUpdate.error': 'Fehler beim Prüfen von Remote-Instanz-Updates', + 'header.services.remoteUpdate.actions.open': 'Aktualisieren', + 'header.services.used': 'Verwendet', + 'header.services.remaining': 'Verbleibend', + 'header.services.modelFamily.other': 'Andere', + 'header.services.shutdownDev': 'OpenChamber stoppen', + 'header.actions.openPlanAria': 'Plan öffnen', + 'header.actions.toggleChangesPanel': 'Änderungspanel', + 'header.actions.toggleChangesPanelAria': 'Änderungspanel umschalten', + 'header.actions.planWithShortcut': 'Plan ({shortcut})', + 'header.actions.terminalPanelWithShortcut': 'Terminalpanel ({shortcut})', + 'chat.recap.aria': 'Sitzungs-Zusammenfassung', + 'chat.recap.label': 'Zusammenfassung:', + 'chat.goal.dialog.titleCreate': 'Sitzungsziel festlegen', + 'chat.goal.dialog.titleManage': 'Sitzungsziel', + 'chat.goal.dialog.objectiveLabel': 'Ziel', + 'chat.goal.dialog.objectivePlaceholder': 'Beschreiben Sie den Endzustand, den der Agent erreichen und überprüfen sollte...', + 'chat.goal.dialog.budgetLabel': 'Token-Budget', + 'chat.goal.status.active': 'Aktiv', + 'chat.goal.status.evaluating': 'Wird bewertet…', + 'chat.goal.status.paused': 'Pausiert', + 'chat.goal.status.blocked': 'Gesperrt', + 'chat.goal.status.budgetLimited': 'Budget erreicht', + 'chat.goal.status.complete': 'Abgeschlossen', + 'chat.goal.usage.tokens': '{used} Tokens', + 'chat.goal.usage.tokensWithBudget': '{used}/{budget} Tokens', + 'chat.goal.usage.turns': '{turns} Fortsetzungen', + 'chat.goal.action.pause': 'Pausieren', + 'chat.goal.action.resume': 'Fortsetzen', + 'chat.goal.action.markComplete': 'Als abgeschlossen markieren', + 'chat.goal.action.clear': 'Ziel entfernen', + 'chat.goal.action.cancel': 'Abbrechen', + 'chat.goal.action.save': 'Ziel speichern', + 'chat.goal.action.start': 'Ziel starten', + 'chat.goal.toast.actionFailed': 'Aktualisierung des Ziels fehlgeschlagen', + 'chat.goal.toast.distillFallback': 'Ziel überschreitet das Limit und konnte nicht reduziert werden — eine gekürzte Version wird für den Prüfer verwendet', + 'chat.goal.row.aria': 'Sitzungsziel — Details öffnen', + 'chat.goal.button.createAria': 'Sitzungsziel festlegen', + 'chat.goal.button.manageAria': 'Sitzungsziel verwalten', + 'chat.goal.button.armAria': 'Ein Ziel mit der nächsten Nachricht starten', + 'chat.goal.counter.aria': 'Längenlimit des Ziels', + 'chat.goal.button.disarmAria': 'Ziel aktiv — tippen, um es zu deaktivieren', + 'chat.goal.button.cancelAria': 'Ziel läuft — tippen, um es abzubrechen', + 'chat.goal.cancelDialog.title': 'Dieses Ziel abbrechen?', + 'chat.goal.cancelDialog.description': 'Der Agent wird automatisch mit der Erreichung dieses Ziels aufhören.', + 'chat.goal.cancelDialog.keep': 'Ziel behalten', + 'chat.goal.cancelDialog.confirm': 'Ziel abbrechen', + 'chat.suggestion.applyAria': 'Vorgeschlagene Nachricht verwenden', + 'chat.suggestion.dismissAria': 'Vorschlag ablehnen', + 'header.actions.toggleTerminalPanelAria': 'Terminalbereich ein-/ausblenden', + 'terminalView.stream.processExitedMessage': '[Prozess beendet{exitCodeSegment}{signalSegment}]', + 'terminalView.stream.processExitedWithCode': ' mit Code {exitCode}', + 'terminalView.stream.processExitedWithSignal': ' (Signal {signal})', + 'terminalView.error.sessionEnded': 'Terminal-Sitzung beendet', + 'terminalView.error.connectionFailed': 'Verbindung fehlgeschlagen: {message}', + 'terminalView.error.startSessionFailed': 'Start der Terminal-Sitzung fehlgeschlagen', + 'terminalView.error.restartFailed': 'Neustart des Terminals fehlgeschlagen', + 'terminalView.error.sendInputFailed': 'Senden der Eingabe fehlgeschlagen', + 'terminalView.empty.noWorkingDirectory': 'Kein Arbeitsverzeichnis für das Terminal verfügbar.', + 'terminalView.empty.selectSession': 'Wählen Sie eine Sitzung aus, um das Terminal zu öffnen.', + 'terminalView.empty.noWorkingDirectoryForSession': 'Kein Arbeitsverzeichnis für diese Sitzung verfügbar.', + 'terminalView.actions.retry': 'Erneut versuchen', + 'terminalView.actions.hardRestart': 'Harter Neustart', + 'terminalView.actions.hardRestartTitle': 'Erzwinge Beenden und erstelle neue Sitzung', + 'terminalView.quickKeys.escape': 'Esc', + 'terminalView.quickKeys.tabAria': 'Tab', + 'terminalView.quickKeys.controlLabel': 'Strg', + 'terminalView.quickKeys.controlModifierAria': 'Steuerungsmodifikator', + 'terminalView.quickKeys.commandModifierAria': 'Befehlsmodifikator', + 'terminalView.quickKeys.arrowUpAria': 'Pfeil nach oben', + 'terminalView.quickKeys.arrowLeftAria': 'Pfeil nach links', + 'terminalView.quickKeys.arrowDownAria': 'Pfeil nach unten', + 'terminalView.quickKeys.arrowRightAria': 'Pfeil nach rechts', + 'terminalView.quickKeys.enterAria': 'Enter', + 'terminalView.tabs.closeTabTitle': 'Registerkarte schließen', + 'terminalView.tabs.newTabTitle': 'Neue Registerkarte', + 'terminalView.bottomDock.resizeAria': 'Größe des Terminalbereichs ändern', + 'terminalView.bottomDock.restoreTitle': 'Höhe des Terminalbereichs wiederherstellen', + 'terminalView.bottomDock.restoreAria': 'Höhe des Terminalbereichs wiederherstellen', + 'terminalView.bottomDock.expandTitle': 'Terminalbereich ausklappen', + 'terminalView.bottomDock.expandAria': 'Terminalbereich ausklappen', + 'terminalView.bottomDock.closeTitle': 'Terminalbereich schließen', + 'terminalView.bottomDock.closeAria': 'Terminalbereich schließen', + 'terminalView.viewport.inputAria': 'Terminal-Eingabe', + 'directoryExplorerDialog.title': 'Projektverzeichnis hinzufügen', + 'directoryExplorerDialog.description': 'Wählen Sie einen Ordner aus, der als Projekt hinzugefügt werden soll.', + 'directoryExplorerDialog.toggle.showHidden': 'Versteckte anzeigen', + 'directoryExplorerDialog.pathInput.placeholder': 'Pfad eingeben oder aus Baumstruktur auswählen...', + 'directoryExplorerDialog.actions.openingFinder': 'Öffne...', + 'directoryExplorerDialog.actions.openInFinder': 'Im Finder öffnen', + 'directoryExplorerDialog.actions.adding': 'Füge hinzu...', + 'directoryExplorerDialog.actions.addProject': 'Projekt hinzufügen', + 'directoryExplorerDialog.actions.addLocalProject': 'Lokales Projekt hinzufügen', + 'directoryExplorerDialog.actions.cloneRepository': 'Repository klonen', + 'directoryExplorerDialog.actions.cloneAndAdd': 'Klonen & hinzufügen', + 'directoryExplorerDialog.actions.cloning': 'Klone...', + 'directoryExplorerDialog.actions.createAndAdd': 'Erstellen & hinzufügen', + 'directoryExplorerDialog.actions.alreadyAdded': 'Bereits hinzugefügt', + 'directoryExplorerDialog.clone.remoteUrlPlaceholder': 'Repository-URL (HTTPS oder SSH)', + 'directoryExplorerDialog.browse.directories': 'Verzeichnisse', + 'directoryExplorerDialog.browse.loading': 'Lade Verzeichnisse...', + 'directoryExplorerDialog.browse.empty': 'Keine passenden Verzeichnisse.', + 'directoryExplorerDialog.browse.parentDirectory': 'Übergeordnetes Verzeichnis', + 'directoryExplorerDialog.browse.addedBadge': 'Hinzugefügt', + 'directoryExplorerDialog.browse.quickAdd': 'Hinzufügen', + 'directoryExplorerDialog.footer.navigate': 'Navigieren', + 'directoryExplorerDialog.footer.select': 'Auswählen', + 'directoryExplorerDialog.footer.add': 'Hinzufügen', + 'directoryExplorerDialog.shortcut.enter': 'Enter', + 'directoryExplorerDialog.toast.unableToAccessDirectory': 'Auf Verzeichnis konnte nicht zugegriffen werden', + 'directoryExplorerDialog.toast.desktopDeniedAccess': 'Desktop hat den Zugriff auf das Verzeichnis verweigert.', + 'directoryExplorerDialog.toast.failedToOpenDirectory': 'Fehler beim Öffnen des Verzeichnisses', + 'directoryExplorerDialog.toast.desktopCouldNotGrantAccess': 'Desktop konnte keinen Dateizugriff gewähren.', + 'directoryExplorerDialog.toast.failedToAddProject': 'Fehler beim Hinzufügen des Projekts', + 'directoryExplorerDialog.toast.cloneUrlRequired': 'Geben Sie eine Repository-URL ein, bevor Sie klonen.', + 'directoryExplorerDialog.toast.selectValidDirectoryPath': 'Bitte wählen Sie einen gültigen Verzeichnispfad aus.', + 'directoryExplorerDialog.toast.failedToSelectDirectory': 'Fehler beim Auswählen des Verzeichnisses', + 'directoryExplorerDialog.toast.unknownError': 'Ein unbekannter Fehler ist aufgetreten.', + 'directoryTree.actions.createNewDirectory': 'Neues Verzeichnis erstellen', + 'directoryTree.actions.pinDirectory': 'Verzeichnis anheften', + 'directoryTree.actions.unpinDirectory': 'Verzeichnis lösen', + 'directoryTree.actions.createDirectory': 'Verzeichnis erstellen', + 'directoryTree.actions.cancel': 'Abbrechen', + 'directoryTree.actions.selectWorkingDirectoryAria': 'Arbeitsverzeichnis auswählen', + 'directoryTree.state.locatingHomeDirectory': 'Heimatverzeichnis wird gesucht...', + 'directoryTree.state.loading': 'Wird geladen...', + 'directoryTree.state.noDirectoriesFound': 'Keine Verzeichnisse gefunden', + 'directoryTree.section.pinned': 'Angeheftet', + 'directoryTree.section.browse': 'Durchsuchen', + 'aboutDialog.versionLabel': 'Version {version}', + 'aboutDialog.openChamberVersionLabel': 'OpenChamber Version {version}', + 'aboutDialog.openCodeVersionLabel': 'OpenCode Version {version}', + 'aboutDialog.actions.copyDiagnostics': 'Diagnose kopieren', + 'aboutDialog.actions.preparingDiagnostics': 'Diagnose wird vorbereitet...', + 'aboutDialog.actions.diagnosticsCopied': 'Diagnose kopiert', + 'aboutDialog.diagnosticsDescription': 'Enthält den OpenChamber-Zustand, die OpenCode-Integrität, Verzeichnisse und Projekte.', + 'aboutDialog.footerNote': 'Mit Liebe für die Community gemacht', + 'aboutDialog.toast.copyFailed': 'Kopieren fehlgeschlagen', + 'aboutDialog.toast.diagnosticsNotReady': 'Diagnose noch nicht bereit. Warten Sie eine Sekunde und versuchen Sie es erneut.', + 'aboutDialog.toast.diagnosticsCopied': 'Diagnose kopiert', + 'helpDialog.title': 'Tastaturkürzel', + 'helpDialog.description': 'Verwenden Sie diese Tastaturkürzel, um effizient durch OpenChamber zu navigieren', + 'helpDialog.section.navigationCommands': 'Navigation & Befehle', + 'helpDialog.section.sessionManagement': 'Sitzungsverwaltung', + 'helpDialog.section.panels': 'Panels', + 'helpDialog.section.interface': 'Oberfläche', + 'helpDialog.item.openCommandPalette': 'Befehlspalette öffnen', + 'helpDialog.item.showKeyboardShortcuts': 'Tastaturkürzel anzeigen (dieses Dialogfeld)', + 'helpDialog.item.toggleSessionSidebar': 'Sitzungs-Seitenleiste umschalten', + 'helpDialog.item.cycleAgent': 'Agent wechseln (Chat-Eingabe)', + 'helpDialog.item.openModelSelector': 'Modell-Auswahldialog öffnen', + 'helpDialog.item.navigateModels': 'Modelle navigieren (in Auswahl)', + 'helpDialog.item.adjustThinkingMode': 'Denkmodus anpassen (in Auswahl, wenn unterstützt)', + 'helpDialog.item.cycleThinkingVariant': 'Denkvariante wechseln (globale Tastenkombination)', + 'helpDialog.item.newWindow': 'Neues Fenster (nur Desktop)', + 'helpDialog.item.createNewSession': 'Neue Sitzung erstellen', + 'helpDialog.item.createNewWorktreeDraft': 'Neuer Worktree-Entwurf erstellen', + 'helpDialog.item.focusChatInput': 'Chat-Eingabe fokussieren', + 'helpDialog.item.togglePromptNavigator': 'Aufforderungs-Navigator umschalten', + 'helpDialog.item.abortActiveRun': 'Aktuelle Ausführung abbrechen (Doppeltaste)', + 'helpDialog.item.toggleRightSidebar': 'Rechte Seitenleiste umschalten', + 'helpDialog.item.openRightSidebarGitTab': 'Git-Registerkarte der rechten Seitenleiste öffnen', + 'helpDialog.item.openRightSidebarFilesTab': 'Datei-Registerkarte der rechten Seitenleiste öffnen', + 'helpDialog.item.cycleRightSidebarTab': 'Registerkarte der rechten Seitenleiste wechseln', + 'helpDialog.item.toggleTerminalDock': 'Terminal-Dock umschalten', + 'helpDialog.item.toggleTerminalExpanded': 'Terminal erweitert umschalten', + 'helpDialog.item.togglePlanContextPanel': 'Plan-Kontext-Panel umschalten', + 'helpDialog.item.cycleTheme': 'Thema wechseln (Hell → Dunkel → System)', + 'helpDialog.item.switchProject': 'Projekt wechseln', + 'helpDialog.item.toggleServicesMenu': 'Dienstemenü umschalten', + 'helpDialog.item.cycleServicesTab': 'Dienste-Registerkarte durchgehen', + 'helpDialog.item.openSettings': 'Einstellungen öffnen', + 'helpDialog.keyCombiner.or': 'oder', + 'helpDialog.proTips.title': 'Pro-Tipps:', + 'helpDialog.proTips.commandPalette': 'Verwenden Sie die Befehlspalette ({shortcut}), um schnell auf alle Aktionen zuzugreifen', + 'helpDialog.proTips.recentSessions': 'Die 5 zuletzt verwendeten Sitzungen erscheinen in der Befehlspalette', + 'helpDialog.proTips.themeCycling': 'Themenwechsel merken sich Ihre Einstellung über Sitzungen hinweg', + 'header.actions.rightSidebarWithShortcut': 'Rechte Seitenleiste ({shortcut})', + 'header.actions.toggleRightSidebarAria': 'Rechte Seitenleiste umschalten', + 'header.actions.openAppMenu': 'OpenChamber-Menü', + 'header.actions.openAppMenuAria': 'OpenChamber-Menü öffnen', + 'header.actions.openSessionsWithShortcut': 'Sitzungen öffnen ({shortcut})', + 'header.actions.openSessionsAria': 'Sitzungen öffnen', + 'header.actions.closeSessionsAria': 'Sitzungen schließen', + 'header.actions.newSessionAria': 'Neue Sitzung', + 'header.actions.newSessionWithShortcut': 'Neue Sitzung ({shortcut})', + 'header.actions.backAria': 'Zurück', + 'header.navigation.mainAria': 'Hauptnavigation', + 'header.sessions.title': 'Sitzungen', + 'header.changes.availableAria': 'Änderungen verfügbar', + 'session.githubIssuePicker.error.noActiveProject': 'Kein aktives Projekt', + 'session.githubIssuePicker.error.runtimeUnavailable': 'GitHub-Laufzeit-API nicht verfügbar', + 'session.githubIssuePicker.error.notConnected': 'GitHub nicht verbunden', + 'session.githubIssuePicker.error.repoNotResolvable': 'Repository kann nicht aufgelöst werden', + 'session.githubIssuePicker.error.repoMustBeGithub': 'Das origin-Remote muss eine GitHub-URL sein', + 'session.githubIssuePicker.error.issueNotFound': 'Problem nicht gefunden', + 'session.githubIssuePicker.error.noModelSelected': 'Kein Modell ausgewählt', + 'session.githubIssuePicker.toast.loadMoreFailed': 'Fehler beim Laden weiterer Probleme', + 'session.githubIssuePicker.toast.loadIssueDetailsFailed': 'Fehler beim Laden der Problem-details', + 'session.githubIssuePicker.toast.sendContextFailed': 'Fehler beim Senden des Problem-Kontexts', + 'session.githubIssuePicker.toast.sessionCreated': 'Sitzung aus Problem erstellt', + 'session.githubIssuePicker.toast.startSessionFailed': 'Fehler beim Starten der Sitzung', + 'session.githubIssuePicker.title.select': 'GitHub-Probleme verknüpfen', + 'session.githubIssuePicker.title.createSession': 'Neue Sitzung aus GitHub-Problem', + 'session.githubIssuePicker.description.select': 'Wählen Sie ein Problem, um es mit dieser Sitzung zu verknüpfen.', + 'session.githubIssuePicker.description.createSession': 'Erstellt eine neue Sitzung mit verstecktem Problem-Kontext (Titel/Inhalt/Labels/Kommentare).', + 'session.githubIssuePicker.searchPlaceholder': 'Suche unter Verwendung der GitHub-Code-Suchsyntax', + 'session.githubIssuePicker.empty.noActiveProject': 'Kein aktives Projekt ausgewählt.', + 'session.githubIssuePicker.empty.runtimeUnavailable': 'GitHub-Laufzeit-API nicht verfügbar.', + 'session.githubIssuePicker.empty.notConnected': 'GitHub nicht verbunden. Verbinden Sie Ihr GitHub-Konto in den Einstellungen.', + 'session.githubIssuePicker.empty.noIssuesFound': 'Keine Probleme gefunden', + 'session.githubIssuePicker.empty.noOpenIssuesFound': 'Keine offenen Probleme gefunden', + 'session.githubIssuePicker.loading.issues': 'Probleme werden geladen...', + 'session.githubIssuePicker.loading.more': 'Wird geladen...', + 'session.githubIssuePicker.actions.openSettings': 'Einstellungen öffnen', + 'session.githubIssuePicker.actions.useIssue': 'Problem #{number} verwenden', + 'session.githubIssuePicker.actions.openInGitHubAria': 'In GitHub öffnen', + 'session.githubIssuePicker.actions.loadMore': 'Mehr laden', + 'session.githubIssuePicker.actions.sectionTitle': 'Aktionen', + 'session.githubIssuePicker.actions.toggleWorktreeAria': 'Worktree umschalten', + 'session.githubIssuePicker.actions.createInWorktree': 'In Worktree erstellen', + 'session.githubIssuePicker.actions.openRepo': 'Repository öffnen', + 'session.githubIssuePicker.actions.refresh': 'Aktualisieren', + 'session.githubPrPicker.error.noActiveProject': 'Kein aktives Projekt', + 'session.githubPrPicker.error.runtimeUnavailable': 'GitHub-Laufzeit-API nicht verfügbar', + 'session.githubPrPicker.error.notConnected': 'GitHub nicht verbunden', + 'session.githubPrPicker.error.prNotFound': 'Pull-Request nicht gefunden', + 'session.githubPrPicker.error.repoNotResolvable': 'Repository kann nicht aufgelöst werden', + 'session.githubPrPicker.error.repoMustBeGithub': 'Das origin-Remote muss eine GitHub-URL sein', + 'session.githubPrPicker.toast.loadMoreFailed': 'Fehler beim Laden weiterer Pull Requests', + 'session.githubPrPicker.toast.loadDetailsFailed': 'Fehler beim Laden der Pull Request-Details', + 'session.githubPrPicker.title': 'GitHub-Pull Request verknüpfen', + 'session.githubPrPicker.description': 'Wählen Sie einen Pull Request aus, um den Überprüfungs-Kontext zu dieser Nachricht hinzuzufügen.', + 'session.githubPrPicker.searchPlaceholder': 'Suche mit GitHub-Code-Suchsyntax', + 'session.githubPrPicker.includeDiffAria': 'PR-Diff in angehängten Kontext einfügen', + 'session.githubPrPicker.includeDiff': 'PR-Diff einfügen', + 'session.githubPrPicker.empty.noActiveProject': 'Kein aktives Projekt ausgewählt.', + 'session.githubPrPicker.empty.runtimeUnavailable': 'GitHub-Laufzeit-API nicht verfügbar.', + 'session.githubPrPicker.empty.notConnected': 'GitHub nicht verbunden. Verbinden Sie Ihr GitHub-Konto in den Einstellungen.', + 'session.githubPrPicker.empty.noPullRequestsFound': 'Keine Pull Requests gefunden', + 'session.githubPrPicker.empty.noOpenPullRequestsFound': 'Keine offenen Pull Requests gefunden', + 'session.githubPrPicker.loading.pullRequests': 'Pull Requests werden geladen...', + 'session.githubPrPicker.loading.more': 'Wird geladen...', + 'session.githubPrPicker.actions.openSettings': 'Einstellungen öffnen', + 'session.githubPrPicker.actions.usePullRequest': 'Pull Request #{number} verwenden', + 'session.githubPrPicker.actions.openInGitHubAria': 'In GitHub öffnen', + 'session.githubPrPicker.actions.loadMore': 'Mehr laden', + 'session.newWorktree.title': 'Neuer Worktree', + 'session.newWorktree.mode.newBranch': 'Neue Branch', + 'session.newWorktree.mode.existingBranch': 'Vorhandener Branch', + 'session.newWorktree.selectBranch': 'Branch auswählen', + 'session.newWorktree.chooseBranch': 'Einen Branch wählen...', + 'session.newWorktree.fetchBranches': 'Branches abrufen', + 'session.newWorktree.searchBranches': 'Branches durchsuchen...', + 'session.newWorktree.loadingBranches': 'Branches werden geladen...', + 'session.newWorktree.noBranchesFound': 'Keine Branches gefunden', + 'session.newWorktree.matchingBranches': 'Übereinstimmende Branches', + 'session.newWorktree.noMatchingBranches': 'Keine übereinstimmenden Branches', + 'session.newWorktree.localBranches': 'Lokale Branches', + 'session.newWorktree.remoteBranches': 'Remote-Branches', + 'session.newWorktree.otherLocalBranches': 'Andere lokale Branches', + 'session.newWorktree.otherRemoteBranches': 'Andere Remote-Branches', + 'session.newWorktree.branchName': 'Branch-Name', + 'session.newWorktree.branchNamePlaceholder': 'feature/mein-geil-feature', + 'session.newWorktree.actions.change': 'Ändern', + 'session.newWorktree.actions.startFromGitHubIssuePr': 'Starte von GitHub Issue/PR', + 'session.newWorktree.usingPrBranch': 'Verwende PR-Branch: {branch}', + 'session.newWorktree.fromIssue': 'Von Issue #{number}: {title}', + 'session.newWorktree.worktreeDirectory': 'Worktree-Verzeichnis', + 'session.newWorktree.worktreeDirectoryPlaceholder': 'mein-worktree-verzeichnis', + 'session.newWorktree.resetToMatchBranchName': 'Zurücksetzen, um mit Branch-Namen übereinzustimmen', + 'session.newWorktree.sourceBranch': 'Quell-Branch', + 'session.newWorktree.selectSourceBranch': 'Quell-Branch auswählen', + 'session.newWorktree.selectSourceBranchPlaceholder': 'Quell-Branch auswählen...', + 'session.newWorktree.newBranchFromSource': 'Neuer Branch wird erstellt von {source}', + 'session.newWorktree.issueNumber': 'Issue #{number}', + 'session.newWorktree.prNumber': 'PR #{number}', + 'session.newWorktree.includeDiffBadge': '+diff', + 'session.newWorktree.newSessionTitle': 'Neue Sitzung', + 'session.newWorktree.fromSource': 'von {source}', + 'session.newWorktree.actions.cancel': 'Abbrechen', + 'session.newWorktree.actions.creating': 'Erstelle...', + 'session.newWorktree.actions.createWorktree': 'Worktree erstellen', + 'session.newWorktree.actions.reset': 'Zurücksetzen', + 'session.newWorktree.error.noModelSelected': 'Kein Modell ausgewählt', + 'session.newWorktree.error.noActiveProject': 'Kein aktives Projekt', + 'session.newWorktree.error.branchNameRequired': 'Branch-Name ist erforderlich', + 'session.newWorktree.error.worktreeDirectoryRequired': 'Worktree-Verzeichnis ist erforderlich', + 'session.newWorktree.error.sendGitHubContextFailed': 'Fehler beim Senden des GitHub-Kontexts', + 'session.newWorktree.error.createWorktreeFailed': 'Fehler beim Erstellen des Worktrees', + 'session.newWorktree.toast.sessionFromIssue': 'Sitzung aus Problem erstellt', + 'session.newWorktree.toast.sessionFromPr': 'Sitzung aus Pull Request erstellt', + 'session.newWorktree.toast.worktreeCreated': 'Worktree erstellt', + 'session.newWorktree.toast.worktreeCreatedDescription': '{target} - im Hintergrund initialisiert', + 'session.githubIntegration.title': 'Aus GitHub auswählen', + 'session.githubIntegration.tabs.issues': 'Probleme', + 'session.githubIntegration.tabs.pullRequests': 'Pull Requests', + 'session.githubIntegration.connect.title': 'Mit GitHub verbinden', + 'session.githubIntegration.connect.description': 'Verknüpfen Sie Probleme oder Pull Requests, um Worktree-Details automatisch auszufüllen', + 'session.githubIntegration.connect.action': 'GitHub verbinden', + 'session.githubIntegration.search.issuesPlaceholder': 'Suche mit GitHub-Code-Suchsyntax', + 'session.githubIntegration.search.prsPlaceholder': 'Suche mit GitHub-Code-Suchsyntax', + 'session.githubIntegration.empty.noIssuesFound': 'Keine Probleme gefunden', + 'session.githubIntegration.empty.noPullRequestsFound': 'Keine Pull Requests gefunden', + 'session.githubIntegration.actions.loadMore': 'Mehr laden', + 'session.githubIntegration.actions.cancel': 'Abbrechen', + 'session.githubIntegration.actions.select': 'Auswählen', + 'session.githubIntegration.selected.issueNumber': 'Problem #{number}', + 'session.githubIntegration.selected.prNumber': 'PR #{number}', + 'session.githubIntegration.includeDiffAria': 'PR-Diff in Sitzungskontext einbeziehen', + 'session.githubIntegration.includeDiff': 'PR-Diff einbeziehen', + 'session.githubIntegration.error.notConnected': 'GitHub nicht verbunden', + 'session.githubIntegration.error.loadDataFailed': 'Fehler beim Laden der Daten', + 'session.githubIntegration.validation.branchAlreadyCheckedOut': 'Branch ist bereits in einem Worktree ausgecheckt', + 'session.githubIntegration.validation.branchAlreadyExists': 'Branch existiert bereits lokal', + 'session.githubIntegration.validation.failed': 'Validierung fehlgeschlagen', + 'chat.fileAttachment.toast.attachFailed': 'Fehler beim Anhängen der Datei', + 'chat.fileAttachment.toast.someFilesSkipped': 'Einige Dateien wurden übersprungen: +{summary}', + 'chat.fileAttachment.toast.vscodePickFailed': 'Fehler beim Auswählen von Dateien in VS Code', + 'chat.fileAttachment.fileFallback': 'Datei', + 'chat.fileAttachment.skippedFallback': 'übersprungen', + 'chat.fileAttachment.actions.attachAria': 'Dateien anhängen', + 'chat.fileAttachment.actions.attach': 'Dateien anhängen', + 'chat.fileAttachment.actions.removeNamed': '{name} entfernen', + 'chat.fileAttachment.actions.removeImage': 'Bild entfernen', + 'chat.fileAttachment.activeEditor.addFile': 'Datei:{name} zum Kontext hinzufügen', + 'chat.fileAttachment.activeEditor.pinSelection': 'Auswahl zum Kontext hinzufügen', + 'chat.fileAttachment.activeEditor.remove': 'Aus Kontext entfernen', + 'chat.fileAttachment.openInDiagram': 'In Diagrammansicht öffnen', + 'chat.pendingChanges.fileCountSingle': '{count} Datei', + 'chat.pendingChanges.fileCountPlural': '{count} Dateien', + 'chat.pendingChanges.changedInWorkspace': 'im Workspace geändert', + 'chat.changedFiles.title': 'Geänderte Dateien', + 'chat.changedFiles.actions.openFileTitle': '{path} öffnen', + 'chat.emptyState.opencodeUnreachable': 'OpenCode ist nicht erreichbar', + 'chat.emptyState.startNewChat': 'Neuen Chat starten', + 'chat.emptyState.draftTitle': 'Worüber arbeiten wir?', + 'chat.emptyState.draftTitleWithProject': 'Worüber arbeiten wir in {project}?', + 'chat.draftPresets.explore.label': 'Codebase erkunden', + 'chat.draftPresets.catchup.label': 'Aktuellstand', + 'chat.draftPresets.weigh.label': 'Meine Optionen bewerten', + 'chat.draftPresets.plan.label': 'Feature-Planung starten', + 'chat.draftPresets.craftGoal.label': 'Ein Ziel formulieren', + 'chat.draftPresets.debug.label': 'Ein Problem debuggen', + 'chat.draftPresets.review.label': 'Meine Änderungen überprüfen', + 'chat.draftStarters.add': 'Einen Starter hinzufügen', + 'chat.draftStarters.searchPlaceholder': 'Befehle und Fähigkeiten durchsuchen…', + 'chat.draftStarters.empty': 'Nichts zum Hinzufügen', + 'chat.draftStarters.sectionBuiltIn': 'Integriert', + 'chat.draftStarters.sectionCommands': 'Befehle', + 'chat.draftStarters.sectionSkills': 'Fähigkeiten', + 'chat.draftStarters.remove': 'Entfernen', + 'chat.scrollToBottom.aria': 'Zum Ende scrollen', + 'chat.promptNavigator.aria': 'Prompt-Navigation', + 'chat.promptNavigator.currentPrompt': 'Aktueller Prompt', + 'chat.promptNavigator.loadMore': 'Weitere Prompts laden', + 'chat.timeline.relative.justNow': 'gerade jetzt', + 'chat.timeline.relative.minutesAgo': '{count}m her', + 'chat.timeline.relative.hoursAgo': '{count}h her', + 'chat.timeline.relative.daysAgo': '{count}d her', + 'chat.timeline.title': 'Konversations-Zeitleiste', + 'chat.timeline.description': 'Navigieren Sie zu einem beliebigen Punkt in der Konversation oder erstellen Sie eine neue Sitzung', + 'chat.timeline.searchPlaceholder': 'Nachrichten durchsuchen...', + 'chat.timeline.empty.search': 'Keine Nachrichten gefunden', + 'chat.timeline.empty.session': 'Noch keine Nachrichten in dieser Sitzung', + 'chat.timeline.noTextContent': '[Kein Textinhalt]', + 'chat.timeline.actions.title': 'Aktionen', + 'chat.timeline.actions.revertFromHere': 'Hierher zurücksetzen', + 'chat.timeline.actions.forkFromHere': 'Hier abzweigen', + 'chat.timeline.actions.previousTurn': 'Vorheriger Zug', + 'chat.timeline.actions.latest': 'Neueste', + 'chat.timeline.help.clickMessage': 'Klicken Sie auf eine Nachricht, um zur entsprechenden Stelle in der Konversation zu scrollen', + 'chat.timeline.help.undoToPoint': 'Zu diesem Punkt rückgängig machen (Nachrichtentext wird in das Eingabefeld übernommen)', + 'chat.timeline.help.createSessionFromHere': 'Neue Sitzung ab hier starten', + 'chat.statusRow.todo.status.inProgress': 'In Bearbeitung', + 'chat.statusRow.todo.status.pending': 'Ausstehend', + 'chat.statusRow.todo.status.completed': 'Abgeschlossen', + 'chat.statusRow.todo.status.cancelled': 'Abgebrochen', + 'chat.statusRow.todo.priority.high': 'Hohe Priorität', + 'chat.statusRow.todo.priority.medium': 'Mittlere Priorität', + 'chat.statusRow.todo.priority.low': 'Niedrige Priorität', + 'chat.statusRow.actions.stopGeneratingAria': 'Generierung stoppen', + 'chat.statusRow.tasksTitle': 'Aufgaben', + 'chat.statusRow.summary.activeLeft': '{active} aktiv · {left} übrig', + 'chat.statusRow.aborted': 'Abgebrochen', + 'chat.revertIndicator.redo': 'Wiederholen', + 'chat.revertIndicator.redoAria': 'Wiederholen — wiederhergestellte Nachrichten', + 'chat.revertPopover.title': 'Zurückgesetzt', + 'chat.revertPopover.noTextContent': 'Kein Textinhalt', + 'chat.revertPopover.forkFromHere': 'Hier forken', + 'chat.revertPopover.forkFromMessage': 'Von dieser Nachricht forken', + 'chat.revertPopover.restoreAll': 'Alle wiederherstellen', + 'chat.revertPopover.restore': 'Wiederherstellen', + 'chat.revertPopover.revert': 'Zurücksetzen', + 'chat.revertPopover.fork': 'Fork', + 'chat.revert.toast.undo': 'Zurückgesetzt auf {preview}', + 'chat.revert.toast.redo': 'Wiederholt', + 'chat.revert.toast.restored': 'Alle Nachrichten wiederhergestellt', + 'chat.errorBoundary.title': 'Chat-Fehler', + 'chat.errorBoundary.description': 'Die Chat-Oberfläche hat einen Fehler festgestellt. Dies könnte auf ein vorübergehendes Netzwerkproblem oder beschädigte Nachrichtendaten zurückzuführen sein.', + 'chat.errorBoundary.sessionLabel': 'Sitzung', + 'chat.errorBoundary.detailsSummary': 'Fehlerdetails', + 'chat.errorBoundary.resetAction': 'Chat zurücksetzen', + 'chat.errorBoundary.persistentHint': 'Wenn das Problem weiterhin besteht, versuchen Sie, die Seite neu zu laden.', + 'chat.autocomplete.tabs.commands': 'Befehle', + 'chat.autocomplete.tabs.agents': 'Agenten', + 'chat.autocomplete.tabs.files': 'Dateien', + 'chat.autocomplete.keyboardHint': '↑↓ navigieren • Enter auswählen • Esc schließen', + 'chat.commandAutocomplete.command.initDescription': 'AGENTS.md-Datei erstellen/aktualisieren', + 'chat.commandAutocomplete.command.undoDescription': 'Letzte Nachricht rückgängig machen', + 'chat.commandAutocomplete.command.redoDescription': 'Zuvor rückgängig gemachte Nachrichten erneut ausführen', + 'chat.commandAutocomplete.command.timelineDescription': 'Konversations-Zeitleiste öffnen', + 'chat.commandAutocomplete.command.compactDescription': 'Sitzungsverlauf mit KI komprimieren, um die Kontextgröße zu reduzieren', + 'chat.commandAutocomplete.command.summaryDescription': 'Nicht-destructive Zusammenfassung der Sitzung. Optionaler Themenhinweis nach dem Befehl.', + 'chat.commandAutocomplete.command.workspaceReviewDescription': 'Überprüfung des Arbeitsbereichs-Unterschieds hinsichtlich Absicht, Richtigkeit und Angemessenheit, bewertet nach Schweregrad.', + 'chat.commandAutocomplete.command.handoffReviewDescription': 'Erstellen oder Wiederverwenden einer separaten Überprüfungssitzung aus einem generierten Handoff.', + 'chat.commandAutocomplete.command.featurePlanDescription': 'Starte eine geführte, hin und her gehende Planungssitzung für eine neue Funktion.', + 'chat.commandAutocomplete.command.craftGoalDescription': 'Verwandelt eine Idee oder Aufgabe in ein klares, überprüfbares Ziel.', + 'chat.chatInput.toast.craftGoalFailed': 'Fehler beim Starten der Ziel-Erstellung', + 'chat.commandAutocomplete.command.catchUpDescription': 'Kontext wiederherstellen: Was du getan hast und wo du weitermachen sollst.', + 'chat.commandAutocomplete.command.debugDescription': 'Geführte Ursachenforschung für einen Fehler, bevor eine Lösung vorgeschlagen wird.', + 'chat.commandAutocomplete.command.weighDescription': 'Zwei bis drei Ansätze mit Kompromissen und einer Empfehlung bewerten, bevor du dich entscheidest.', + 'chat.commandAutocomplete.command.exploreDescription': 'Vertraut machen mit diesem Codebase: Eine Übersicht über die Architektur und Hauptbestandteile.', + 'chat.commandAutocomplete.badge.skill': 'Fähigkeit', + 'chat.commandAutocomplete.badge.command': 'Befehl', + 'chat.commandAutocomplete.badge.system': 'System', + 'chat.commandAutocomplete.empty': 'Keine Befehle gefunden', + 'chat.agentMentionAutocomplete.badge.system': 'System', + 'chat.agentMentionAutocomplete.empty': 'Keine Agenten gefunden', + 'chat.fileMentionAutocomplete.searchMoreAgents': 'Tippe, um mehr Agenten zu suchen', + 'chat.fileMentionAutocomplete.empty': 'Keine Übereinstimmungen gefunden', + 'chat.queuedMessage.attachments': '+{count} Datei(en)', + 'chat.queuedMessage.empty': '(leer)', + 'chat.queuedMessage.title': 'Nachrichten in der Warteschlange', + 'chat.queuedMessage.edit': 'bearbeiten', + 'chat.queuedMessage.send': 'senden', + 'chat.queuedMessage.removeAria': 'Aus der Warteschlange entfernen', + 'chat.queuedMessage.reorderAria': 'Ziehen, um neu anzuordnen', + 'chat.container.returnToParent.aria': 'Zurück zur übergeordneten Sitzung', + 'chat.container.returnToParent.titleNamed': 'Zurück zu: {title}', + 'chat.container.returnToParent.title': 'Zurück zur übergeordneten Sitzung', + 'chat.container.returnToParent.label': 'Übergeordnet', + 'chat.container.readOnlySubagentPromptBanner': 'Subagent-Sitzungen können nicht abgefragt werden.', + 'chat.unifiedControls.title': 'Steuerung', + 'chat.unifiedControls.model.title': 'Modell', + 'chat.unifiedControls.model.noRecent': 'Keine kürzlichen Modelle', + 'chat.unifiedControls.model.moreAria': 'Weitere Modelle', + 'chat.unifiedControls.effort.title': 'Aufwand', + 'chat.unifiedControls.effort.moreAria': 'Weitere Aufwandsoptionen', + 'chat.questionCard.summaryTab': 'Zusammenfassung', + 'chat.questionCard.noAnswer': '(keine Antwort)', + 'chat.questionCard.inputNeeded': 'Eingabe erforderlich', + 'chat.questionCard.fromSubagent': 'Von Subagent', + 'chat.questionCard.questionFallback': 'Frage {index}', + 'chat.questionCard.selectMultiple': 'Mehrere auswählen', + 'chat.questionCard.recommended': 'empfohlen', + 'chat.questionCard.other': 'Andere…', + 'chat.questionCard.yourAnswer': 'Ihre Antwort', + 'chat.questionCard.submit': 'Senden', + 'chat.questionCard.next': 'Weiter', + 'chat.questionCard.dismiss': 'Verwerfen', + 'chat.questionCard.copyMarkdown': 'Als Markdown kopieren', + 'chat.questionCard.copyJson': 'Als JSON kopieren', + 'chat.questionCard.copiedMarkdown': 'Frage als Markdown kopiert', + 'chat.questionCard.copiedJson': 'Frage als JSON kopiert', + 'chat.questionCard.copyFailed': 'Fehler beim Kopieren der Frage', + 'chat.questionCard.submitFailed': 'Fehler beim Senden der Antwort', + 'chat.questionCard.dismissFailed': 'Fehler beim Verwerfen der Frage', + 'chat.questionCard.noLongerPending': 'Diese Frage wartet nicht mehr auf eine Antwort.', + 'chat.questionCard.tryAgain': 'Bitte versuchen Sie es in einem Moment erneut.', + 'chat.textSelection.toast.noProject': 'Kein Projekt für diese Sitzung gefunden', + 'chat.textSelection.toast.addToNotesFailed': 'Fehler beim Hinzufügen zu Notizen', + 'chat.textSelection.toast.addToNotesSuccess': 'Ausgewählter Text zu Notizen hinzugefügt', + 'chat.textSelection.toast.addToNotesSummaryFailed': 'Zusammenfassung der Auswahl nicht möglich, ausgewählter Text wurde zu Notizen hinzugefügt', + 'chat.textSelection.actions.addToChat': 'Zum Chat hinzufügen', + 'chat.textSelection.actions.newSession': 'Neue Sitzung', + 'chat.textSelection.actions.copy': 'Kopieren', + 'chat.textSelection.actions.addToNotes': 'Zu Notizen hinzufügen', + 'chat.textSelection.title.addToCurrentChat': 'Zum aktuellen Chat hinzufügen', + 'chat.textSelection.title.newSessionWithSelection': 'Neue Sitzung mit Auswahl erstellen', + 'chat.textSelection.title.saveInsightToNotes': 'Ausgewählten Text zu Notizen speichern', + 'chat.messageBody.actions.revertAria': 'Zu dieser Nachricht zurückkehren', + 'chat.messageBody.actions.revert': 'Von hier zurückkehren', + 'chat.messageBody.actions.forkAria': 'Abzweigen von dieser Nachricht', + 'chat.messageBody.actions.fork': 'Abzweigen von hier', + 'chat.messageBody.actions.copyMessageAria': 'Nachrichtentext kopieren', + 'chat.messageBody.actions.copyMessage': 'Nachricht kopieren', + 'chat.messageBody.actions.openPreviewAria': 'Vorschau öffnen', + 'chat.messageBody.actions.openPreview': 'Vorschau öffnen', + 'chat.messageBody.actions.copyAnswer': 'Antwort kopieren', + 'chat.messageBody.actions.savingImage': 'Bild wird gespeichert...', + 'chat.messageBody.actions.saveAsImage': 'Als Bild speichern', + 'chat.messageBody.actions.saveAsPlan': 'Als Plan speichern', + 'chat.messageBody.actions.startNewSession': 'Neue Sitzung von dieser Antwort starten', + 'chat.messageBody.actions.startNewMultiRun': 'Neuer Multi-Run von dieser Antwort starten', + 'chat.messageBody.forkDialog.instructions.label': 'Anweisungen', + 'chat.messageBody.forkDialog.instructions.placeholder': 'Fügen Sie Anweisungen für die neue Sitzung hinzu…', + 'chat.messageBody.forkDialog.createWorktree': 'Worktree erstellen', + 'chat.generatedResult.actions.copy': 'Kopieren', + 'chat.generatedResult.actions.copied': 'Kopiert', + 'chat.generatedResult.commit.title': 'Generierte Commit-Nachricht', + 'chat.generatedResult.commit.highlights': 'Highlights', + 'chat.generatedResult.pullRequest.title': 'Generierter Pull Request', + 'chat.generatedResult.pullRequest.titleLabel': 'Titel', + 'chat.generatedResult.pullRequest.bodyLabel': 'Inhalt', + 'chat.messageBody.tts.stopSpeaking': 'Sprache stoppen', + 'chat.messageBody.tts.readAloud': 'Vorlesen', + 'chat.messageBody.tts.readAloudWithProvider': 'Vorlesen ({provider} Stimme)', + 'planView.tts.readAloud': 'Plan vorlesen', + 'planView.tts.stopSpeaking': 'Sprache stoppen', + 'filesView.tts.readAloud': 'Datei vorlesen', + 'filesView.tts.stopSpeaking': 'Sprache stoppen', + 'chat.messageBody.toast.noProject': 'Kein Projekt für diese Sitzung gefunden', + 'chat.messageBody.toast.savePlanFailed': 'Fehler beim Speichern des Plans', + 'chat.messageBody.toast.planSaved': 'Plan gespeichert', + 'chat.messageBody.toast.imageSaved': 'Bild gespeichert', + 'chat.messageBody.toast.generateImageFailed': 'Fehler bei der Bildgenerierung', + 'chat.chatInput.actions.commands': 'Befehle', + 'chat.chatInput.actions.attachFiles': 'Dateien anhängen', + 'chat.chatInput.actions.addAttachment': 'Anhang hinzufügen', + 'chat.chatInput.actions.linkGithubIssue': 'GitHub-Issue verknüpfen', + 'chat.chatInput.actions.linkGithubPr': 'GitHub-PR verknüpfen', + 'chat.chatInput.actions.modelAgentSettings': 'Modell- und Agenteneinstellungen', + 'chat.chatInput.actions.sendMessageAria': 'Nachricht senden', + 'chat.chatInput.actions.queueMessageAria': 'Nachricht in die Warteschlange stellen', + 'chat.chatInput.actions.stopGeneratingAria': 'Generierung stoppen', + 'chat.chatInput.focusMode.toggleAria': 'Fokusmodus umschalten', + 'chat.chatInput.focusMode.label': 'Fokusmodus', + 'chat.chatInput.permissionAutoAccept.disable': 'Automatische Zustimmung für Berechtigungen deaktivieren', + 'chat.chatInput.permissionAutoAccept.enable': 'Automatische Zustimmung für Berechtigungen aktivieren', + 'chat.chatInput.permissionAutoAccept.on': 'Automatische Zustimmung für Berechtigungen: an', + 'chat.chatInput.permissionAutoAccept.off': 'Automatische Zustimmung für Berechtigungen: aus', + 'chat.chatInput.linked.byAuthor': 'von {author}', + 'chat.chatInput.linked.issue.openInBrowserAria': 'Issue im Browser öffnen', + 'chat.chatInput.linked.issue.removeAria': 'Verknüpftes Issue entfernen', + 'chat.chatInput.linked.pr.number': 'PR #{number}', + 'chat.chatInput.linked.pr.openInBrowserAria': 'Pull Request im Browser öffnen', + 'chat.chatInput.linked.pr.removeAria': 'Verknüpften Pull Request entfernen', + 'chat.chatInput.placeholder.shell': 'Shell-Befehl eingeben...', + 'chat.chatInput.placeholder.chat': '@ für Dateien/Agenten; / für Befehle und Fähigkeiten; ! für Shell; # für Snippets', + 'chat.chatInput.placeholder.chatCompact': 'Verwende @ / ! # für Hilfsmittel', + 'chat.chatInput.placeholder.selectSession': 'Sitzung auswählen oder erstellen, um zu chatten', + 'chat.dictation.start': 'Dictation starten', + 'chat.dictation.overlayAria': 'Dictation', + 'chat.dictation.downloadingModel': 'Sprachmodell wird heruntergeladen...', + 'chat.dictation.downloadingModelProgress': 'Sprachmodell wird heruntergeladen... {percent}%', + 'chat.dictation.listening': 'Hören...', + 'chat.dictation.processing': 'Transkribieren...', + 'chat.dictation.failed': 'Transkription fehlgeschlagen', + 'chat.dictation.cancel': 'Dictation verwerfen', + 'chat.dictation.insert': 'Transkript einfügen', + 'chat.dictation.insertAndSend': 'Einfügen und senden', + 'chat.dictation.retry': 'Transkription erneut versuchen', + 'chat.dictation.discard': 'Aufnahme verwerfen', + 'chat.snippetAutocomplete.action.addNew': '+ Neues Snippet hinzufügen', + 'chat.snippetAutocomplete.empty': 'Keine Snippets gefunden', + 'chat.snippetAutocomplete.footer': '↑↓ navigieren • Enter auswählen • Esc schließen', + 'snippets.source.global': 'global', + 'snippets.source.project': 'Projekt', + 'chat.chatInput.toast.compactFailed': 'Fehler beim Komprimieren der Sitzung', + 'chat.chatInput.toast.summaryFailed': 'Fehler bei der Erstellung der Zusammenfassung', + 'chat.messageBody.actions.sendReviewFeedback': 'Feedback zur Überprüfung an den implementierenden Agenten senden', + 'chat.messageBody.actions.sendImplementationResponse': 'Implementierungsantwort an den überprüfenden Agenten senden', + 'chat.chatInput.toast.reviewFailed': 'Fehler bei der Überprüfung der Änderungen', + 'chat.chatInput.toast.planFeatureFailed': 'Fehler beim Starten der Funktionsplanung', + 'chat.chatInput.toast.catchUpFailed': 'Fehler beim Aufholen', + 'chat.chatInput.toast.debugFailed': 'Fehler beim Starten der Debugging', + 'chat.chatInput.toast.weighFailed': 'Fehler beim Vergleichen der Optionen', + 'chat.chatInput.toast.exploreFailed': 'Fehler beim Starten der Tour', + 'chat.chatInput.toast.attachmentsTooLarge': 'Anhänge sind zu groß zum Senden. Bitte versuche, die Anzahl oder Größe der Bilder zu reduzieren.', + 'chat.chatInput.toast.sendAttachmentsFailed': 'Fehler beim Senden der Anhänge. Versuche weniger Dateien oder kleinere Bilder.', + 'chat.chatInput.toast.messageSendFailed': 'Nachricht konnte nicht gesendet werden. Anhänge wurden wiederhergestellt.', + 'chat.chatInput.toast.clipboardAttachFailed': 'Fehler beim Anhängen des Bildes aus der Zwischenablage', + 'chat.chatInput.toast.addedFileMentions': '{count} Datei(er) hinzugefügt', + 'chat.chatInput.toast.attachFileFailed': 'Fehler beim Anhängen der Datei', + 'chat.chatInput.toast.attachNamedFailed': 'Fehler beim Anhängen von {name}', + 'chat.chatInput.toast.someFilesSkipped': 'Einige Dateien wurden übersprungen: +{summary}', + 'chat.chatInput.toast.vscodePickFailed': 'Fehler beim Auswählen der Dateien in VS Code', + 'chat.chatInput.toast.openSessionFirst': 'Öffne zuerst eine Sitzung', + 'chat.chatInput.toast.togglePermissionAutoAcceptFailed': 'Fehler beim Umschalten der automatischen Zustimmung zur Berechtigung', + 'chat.chatInput.reviewComments': 'Kommentare zur Überprüfung:', + 'chat.chatInput.reviewCommentsRemove': 'Kommentare zur Überprüfung entfernen', + 'chat.chatInput.devServerLogs': 'Entwicklungsserver-Protokolle:', + 'chat.chatInput.devServerLogsRemove': 'Entwicklungsserver-Protokolle entfernen', + 'chat.chatInput.previewAnnotations': 'Vorschau-Anmerkungen:', + 'chat.chatInput.previewContext': 'Vorschau-Kontext:', + 'chat.chatInput.previewContextRemove': 'Vorschau-Kontext entfernen', + 'chat.chatInput.projectRoot': 'Projektstamm', + 'chat.chatInput.branch': 'Zweig', + 'chat.chatInput.draftPicker.projectTitle': 'Projekt', + 'chat.chatInput.draftPicker.searchProjects': 'Projekte durchsuchen...', + 'chat.chatInput.draftPicker.searchBranches': 'Branches durchsuchen...', + 'chat.chatInput.worktrees': 'Worktrees', + 'chat.chatInput.worktreeNew': '+ Neu', + 'chat.chatInput.drop.insertMention': 'Hier ablegen, um als Erwähnung einzufügen', + 'chat.chatInput.drop.attachFiles': 'Dateien hier ablegen, um sie anzuhängen', + 'chat.chatInput.fileFallback': 'Datei', + 'chat.mobileStatus.editProjects.title': 'Projekte bearbeiten', + 'chat.mobileStatus.editProjects.footer': 'Ziehen Sie Elemente, um die Reihenfolge zu ändern, oder verwenden Sie Pfeile zum Verschieben. Tippen Sie auf Bearbeiten, um Details zu ändern.', + 'chat.mobileStatus.editProjects.empty': 'Keine Projekte zum Bearbeiten', + 'chat.mobileStatus.projects.empty': 'Keine Projekte', + 'chat.mobileStatus.projects.addAria': 'Projekt hinzufügen', + 'chat.mobileStatus.projects.removeTitle': 'Projekt entfernen', + 'chat.mobileStatus.projects.removeDescriptionPrefix': 'Sind Sie sicher, dass Sie folgendes entfernen möchten', + 'chat.mobileStatus.projects.cancel': 'Abbrechen', + 'chat.mobileStatus.projects.remove': 'Entfernen', + 'chat.mobileStatus.new': 'Neu', + 'chat.mobileStatus.noSessionsInProject': 'Keine Sitzungen in diesem Projekt', + 'chat.mobileStatus.swipeHint': '← Hier wischen, um Seitenleisten zu öffnen →', + 'chat.mobileStatus.toast.addProjectFailed': 'Fehler beim Hinzufügen des Projekts', + 'chat.mobileStatus.toast.selectValidDirectory': 'Bitte wählen Sie ein gültiges Verzeichnis aus.', + 'chat.mobileStatus.toast.selectDirectoryFailed': 'Fehler beim Auswählen des Verzeichnisses', + 'chat.toolOutputDialog.image.previousAria': 'Vorheriges Bild', + 'chat.toolOutputDialog.image.nextAria': 'Nächstes Bild', + 'chat.toolOutputDialog.image.closeAria': 'Bildvorschau schließen', + 'chat.toolOutputDialog.mermaid.missingSource': 'Fehlende Mermaid-Quell-URL.', + 'chat.toolOutputDialog.mermaid.loadFailed': 'Kann Mermaid-Diagramm nicht laden.', + 'chat.toolOutputDialog.mermaid.dataUrlMalformed': 'Die Mermaid-Daten-URL ist fehlerhaft formatiert.', + 'chat.toolOutputDialog.mermaid.invalidLocalPath': 'Der lokale Mermaid-Dateipfad ist ungültig.', + 'chat.toolOutputDialog.mermaid.readFileFailedWithStatus': 'Kann Mermaid-Datei nicht lesen. Status: {status}.', + 'chat.toolOutputDialog.mermaid.unsupportedUrlProtocol': 'Das Mermaid-URL-Protokoll wird nicht unterstützt.', + 'chat.toolOutputDialog.mermaid.loadFailedWithStatus': 'Kann Mermaid-Diagramm nicht laden. Status: {status}.', + 'chat.toolOutputDialog.mermaid.closeAria': 'Diagrammvorschau schließen', + 'chat.toolOutputDialog.mermaid.loading': 'Diagramm wird geladen...', + 'chat.toolOutputDialog.mermaid.renderFailed': 'Kann Mermaid-Diagramm nicht rendern.', + 'chat.toolOutputDialog.mermaid.retry': 'Wiederholen', + 'chat.toolOutputDialog.commandCompleted': 'Befehl erfolgreich abgeschlossen', + 'chat.toolOutputDialog.noOutputProduced': 'Keine Ausgabe erzeugt', + 'chat.toolPart.lspErrors': 'LSP-Fehler', + 'chat.toolPart.moreErrors': '+{count} weitere Fehler', + 'chat.toolPart.error': 'Fehler:', + 'chat.toolPart.awaitingResponse': 'Warte auf Antwort...', + 'chat.toolPart.noOutputProduced': 'Keine Ausgabe erzeugt', + 'chat.toolPart.output': 'Ausgabe', + 'chat.toolPart.showRawJson': 'Rohe JSON anzeigen', + 'chat.toolPart.showFormattedJson': 'Formatierte JSON anzeigen', + 'chat.toolPart.showNavigableJson': 'Navigierbare JSON anzeigen', + 'chat.toolPart.openFileAtFirstChange': 'Datei bei erster Änderung öffnen', + 'chat.toolPart.openFileDiff': 'Datei-Unterschied öffnen', + 'chat.toolPart.copyOutput': 'Ausgabe kopieren', + 'chat.toolPart.copiedOutput': 'Ausgabe kopiert', + 'chat.toolPart.copyOutputFailed': 'Kopieren der Ausgabe fehlgeschlagen', + 'chat.toolPart.openSubtask': '{type}-Unteraufgabe öffnen', + 'chat.todo.total': 'Gesamt', + 'chat.todo.inProgress': 'In Bearbeitung', + 'chat.todo.pending': 'Ausstehend', + 'chat.todo.completed': 'Abgeschlossen', + 'chat.todo.cancelled': 'Abgebrochen', + 'chat.permissionCard.workingDirectory': 'Arbeitsverzeichnis:', + 'chat.permissionCard.timeout': 'Timeout:', + 'chat.permissionCard.request': 'Anfrage:', + 'chat.permissionCard.headers': 'Headers:', + 'chat.permissionCard.body': 'Body:', + 'chat.permissionCard.action': 'Aktion:', + 'chat.permissionCard.details': 'Details:', + 'chat.permissionCard.patterns': 'Muster:', + 'chat.permissionToast.sessionFallback': 'Sitzung', + 'chat.permissionToast.permissionFallback': 'Berechtigungsdetails nicht verfügbar', + 'chat.permissionToast.labels.session': 'Sitzung:', + 'chat.permissionToast.labels.permission': 'Berechtigung:', + 'chat.permissionToast.actions.once': 'Einmal', + 'chat.permissionToast.actions.always': 'Immer', + 'chat.permissionToast.actions.deny': 'Ablehnen', + 'chat.permissionToast.actions.approveOnceAria': 'Einmal genehmigen', + 'chat.permissionToast.actions.approveOnceAriaWithSession': 'Einmal für {session} genehmigen', + 'chat.permissionToast.actions.approveAlwaysAria': 'Immer genehmigen', + 'chat.permissionToast.actions.approveAlwaysAriaWithSession': 'Immer für {session} genehmigen', + 'chat.permissionToast.actions.denyAria': 'Berechtigung ablehnen', + 'chat.permissionToast.actions.denyAriaWithSession': 'Berechtigung für {session} ablehnen', + 'chat.permissionRequest.required': 'Berechtigung erforderlich:', + 'chat.permissionRequest.actions.once': 'Einmal', + 'chat.permissionRequest.actions.always': 'Immer', + 'chat.permissionRequest.actions.reject': 'Ablehnen', + 'chat.modelControls.provider': 'Anbieter', + 'chat.modelControls.capability.toolCalling': 'Tool-Aufruf', + 'chat.modelControls.capability.reasoning': 'Reasoning', + 'chat.modelControls.modality.text': 'Text', + 'chat.modelControls.modality.image': 'Bild', + 'chat.modelControls.modality.video': 'Video', + 'chat.modelControls.modality.audio': 'Audio', + 'chat.modelControls.modality.pdf': 'PDF', + 'chat.modelControls.capabilities': 'Fähigkeiten', + 'chat.modelControls.modalities': 'Modalitäten', + 'chat.modelControls.input': 'Eingabe', + 'chat.modelControls.output': 'Ausgabe', + 'chat.modelControls.limits': 'Grenzen', + 'chat.modelControls.context': 'Kontext', + 'chat.modelControls.metadata': 'Metadaten', + 'chat.modelControls.knowledge': 'Wissen', + 'chat.modelControls.release': 'Veröffentlichung', + 'chat.modelControls.mode': 'Modus', + 'chat.modelControls.model': 'Modell', + 'chat.modelControls.temperature': 'Temperatur', + 'chat.modelControls.topP': 'Top P', + 'chat.modelControls.permissions': 'Berechtigungen', + 'chat.modelControls.edit': 'Bearbeiten', + 'chat.modelControls.bash': 'Bash', + 'chat.modelControls.webFetch': 'WebFetch', + 'chat.modelControls.customPrompt': 'Benutzerdefinierte Eingabeaufforderung', + 'chat.modelControls.selectModel': 'Modell auswählen', + 'chat.modelControls.searchProvidersOrModels': 'Anbieter oder Modelle suchen', + 'chat.modelControls.clearSearch': 'Suche löschen', + 'chat.modelControls.current': 'Aktuell', + 'chat.modelControls.thinking': 'Denken', + 'chat.modelControls.default': 'Standard', + 'chat.modelControls.selectAgent': 'Agent auswählen', + 'chat.modelControls.costPerMillion': 'Kosten ($/1M Tokens)', + 'chat.modelControls.metadataUnavailable': 'Modell-Metadaten nicht verfügbar.', + 'chat.modelControls.addNewProvider': 'Neuen Anbieter hinzufügen', + 'chat.modelControls.noAgentSelected': 'Kein Agent ausgewählt.', + 'chat.modelControls.resetToDefault': 'Auf Standard zurücksetzen', + 'chat.modelControls.searchModels': 'Modelle suchen', + 'chat.modelControls.searchAgents': 'Agenten suchen', + 'chat.modelControls.noModelsFound': 'Keine Modelle gefunden', + 'chat.modelControls.favorites': 'Favoriten', + 'chat.modelControls.recent': 'Kürzlich', + 'chat.modelControls.addToFavorites': 'Zu Favoriten hinzufügen', + 'chat.modelControls.removeFromFavorites': 'Aus Favoriten entfernen', + 'chat.modelControls.favoriteAria': 'Favorit', + 'chat.modelControls.unfavoriteAria': 'Nicht favorit', + 'chat.modelControls.collapseProvider': 'Anbieter einklappen', + 'chat.modelControls.expandProvider': 'Anbieter ausklappen', + 'chat.modelControls.keyboardHint': '↑↓ navigieren{thinking} • Enter auswählen • Esc schließen', + 'chat.modelControls.keyboardHintNavigate': '↑↓ navigieren', + 'chat.modelControls.keyboardHintSwitchAgent': '{shortcut} Agent wechseln', + 'chat.modelControls.keyboardHintThinking': '←→ denken', + 'chat.modelControls.showThinkingModes': 'Denkmodi anzeigen', + 'chat.modelControls.hideThinkingModes': 'Denkmodi ausblenden', + 'chat.modelControls.moreThinkingModes': 'Weitere Denkmodi', + 'chat.modelControls.noProvidersOrModelsFound': 'Keine Anbieter oder Modelle entsprechen Ihrer Suche.', + 'chat.modelControls.reorderFavoriteAria': 'Favorit neu anordnen', + 'chat.modelControls.reorderFavoriteTitle': 'Ziehen, um Favorit neu anzuordnen', + 'chat.modelControls.reorderProviderTitle': 'Ziehen, um Anbieter neu anzuordnen', + 'chat.modelControls.permissionLabel.custom': 'Benutzerdefiniert', + 'chat.modelControls.permissionLabel.allow': 'Erlauben', + 'chat.modelControls.permissionLabel.deny': 'Ablehnen', + 'chat.modelControls.permissionLabel.ask': 'Fragen', + 'chat.modelControls.modeValue.primary': 'Primär', + 'chat.modelControls.modeValue.subagent': 'Unteragent', + 'chat.modelControls.modeValue.all': 'Alle', + 'chat.modelControls.modeValue.none': '—', + 'chat.reasoningTrace.thinking': 'Denken', + 'chat.reasoningTrace.justification': 'Begründung', + 'chat.reasoningTrace.expandAria': 'Begründungstrace erweitern', + 'chat.reasoningTrace.collapseAria': 'Begründungstrace reduzieren', + 'chat.reasoningTrace.thought': 'Gedanke', + 'chat.messageBody.subtask.title': 'Delegierte Aufgabe', + 'chat.messageBody.subtask.hidePrompt': 'Eingabe ausblenden', + 'chat.messageBody.subtask.showPrompt': 'Eingabe anzeigen', + 'chat.messageBody.subtask.openSession': 'Unteraufgaben-Sitzung öffnen', + 'chat.messageBody.shellCommand.title': 'Shell-Befehl', + 'chat.messageBody.shellCommand.hideOutput': 'Ausgabe ausblenden', + 'chat.messageBody.shellCommand.showOutput': 'Ausgabe anzeigen', + 'chat.messageBody.shellCommand.copied': 'Kopiert', + 'chat.messageBody.shellCommand.copyOutput': 'Ausgabe kopieren', + 'commandPalette.title': 'Befehlspalette', + 'commandPalette.description': 'Dateien, Sitzungen und Befehle durchsuchen.', + 'commandPalette.input.placeholder': 'Dateien, Sitzungen, Befehle durchsuchen...', + 'commandPalette.empty.noResults': 'Keine Ergebnisse gefunden.', + 'commandPalette.empty.searchingFiles': 'Dateien werden durchsucht...', + 'commandPalette.item.newSession': 'Neue Sitzung', + 'commandPalette.item.newMiniChat': 'Neues Mini-Chat-Fenster', + 'commandPalette.item.newWorktreeDraft': 'Neuer Worktree-Entwurf', + 'commandPalette.item.addProject': 'Projekt hinzufügen', + 'commandPalette.item.showSessionSwitcher': 'Sitzungsumschalter anzeigen', + 'commandPalette.item.toggleSidebar': 'Seitenleiste umschalten', + 'commandPalette.item.toggleRightSidebar': 'Rechte Seitenleiste umschalten', + 'commandPalette.item.showContextUsage': 'Kontextnutzung anzeigen', + 'commandPalette.item.toggleTerminal': 'Terminal umschalten', + 'commandPalette.item.openSettings': 'Einstellungen öffnen...', + 'commandPalette.session.untitled': 'Unbenannte Sitzung', + 'openCodeStatusDialog.title': 'OpenCode-Status', + 'openCodeStatusDialog.description': 'Aktuellen OpenCode-Status und Diagnoseergebnisse prüfen.', + 'openCodeStatusDialog.actions.copy': 'Kopieren', + 'openCodeStatusDialog.empty.noData': 'Keine Daten.', + 'openCodeStatusDialog.toast.copiedTitle': 'Kopiert', + 'openCodeStatusDialog.toast.copiedDescription': 'Status in die Zwischenablage kopiert', + 'openCodeStatusDialog.toast.copyFailed': 'Fehler beim Kopieren des Status', + 'saveProjectPlanDialog.title': 'Projektplan speichern', + 'saveProjectPlanDialog.description': 'Diesen Plan als Markdown-Datei in Ihrem Projekt speichern.', + 'saveProjectPlanDialog.field.title': 'Titel', + 'saveProjectPlanDialog.field.titlePlaceholder': 'Plan-Titel', + 'saveProjectPlanDialog.field.contentPreview': 'Inhaltsvorschau', + 'saveProjectPlanDialog.actions.cancel': 'Abbrechen', + 'saveProjectPlanDialog.actions.save': 'Speichern', + 'saveProjectPlanDialog.actions.saving': 'Speichern...', + 'branchPickerDialog.title': 'Branch-Auswähler', + 'branchPickerDialog.description.localBranchesForProject': 'Lokale Branches für {project}', + 'branchPickerDialog.description.selectProject': 'Projekt auswählen, um Branches anzuzeigen', + 'branchPickerDialog.search.placeholder': 'Branches durchsuchen...', + 'branchPickerDialog.search.renameBranchPlaceholder': 'Branch umbenennen', + 'branchPickerDialog.state.noProjectSelected': 'Kein Projekt ausgewählt', + 'branchPickerDialog.state.loadingBranches': 'Branches werden geladen...', + 'branchPickerDialog.state.noMatchingBranches': 'Keine passenden Branches', + 'branchPickerDialog.state.noBranchesFound': 'Keine Branches gefunden', + 'branchPickerDialog.badge.head': 'HEAD', + 'branchPickerDialog.badge.worktree': 'Worktree', + 'branchPickerDialog.actions.createWorktreeAria': 'Worktree aus Branch erstellen', + 'branchPickerDialog.actions.renameAria': 'Branch umbenennen', + 'branchPickerDialog.actions.deleteAria': 'Branch löschen', + 'branchPickerDialog.actions.deleteWorktreeAria': 'Arbeitsbaum entfernen', + 'branchPickerDialog.actions.confirmRenameAria': 'Umbenennen bestätigen', + 'branchPickerDialog.actions.cancelRenameAria': 'Umbenennen abbrechen', + 'branchPickerDialog.actions.confirmDeleteAria': 'Löschen des Branches bestätigen', + 'branchPickerDialog.actions.cancelDeleteAria': 'Löschen des Branches abbrechen', + 'branchPickerDialog.actions.deletePrompt': 'Löschen', + 'branchPickerDialog.actions.forceDeletePrompt': 'Löschen erzwingen', + 'branchPickerDialog.tooltip.createWorktree': 'Arbeitsbaum erstellen', + 'branchPickerDialog.tooltip.worktreeAlreadyExists': 'Arbeitsbaum existiert bereits', + 'branchPickerDialog.tooltip.rename': 'Branch umbenennen', + 'branchPickerDialog.tooltip.renameDisabledForRoot': 'Root-Branch kann nicht umbenannt werden', + 'branchPickerDialog.tooltip.delete': 'Branch löschen', + 'branchPickerDialog.tooltip.deleteCurrentBranch': 'Aktueller Branch kann nicht gelöscht werden', + 'branchPickerDialog.tooltip.deleteDisabledForRoot': 'Root-Branch kann nicht gelöscht werden', + 'branchPickerDialog.tooltip.deleteWorktree': 'Arbeitsbaum entfernen', + 'branchPickerDialog.tooltip.deleteWorktreeRootProtected': 'Root-Arbeitsbaum kann nicht entfernt werden', + 'branchPickerDialog.toast.branchRenamed': 'Branch umbenannt', + 'branchPickerDialog.toast.failedToRenameBranch': 'Fehler beim Umbenennen des Branches', + 'branchPickerDialog.toast.branchDeleted': 'Branch gelöscht', + 'branchPickerDialog.toast.branchNotMerged': 'Branch ist nicht vollständig gemerged', + 'branchPickerDialog.toast.confirmAgainToForceDelete': 'Erneut bestätigen, um Löschen zu erzwingen', + 'branchPickerDialog.toast.failedToDeleteBranch': 'Fehler beim Löschen des Branches', + 'branchPickerDialog.toast.worktreeCreated': 'Arbeitsbaum erstellt', + 'branchPickerDialog.toast.failedToCreateWorktree': 'Fehler beim Erstellen des Arbeitsbaums', + 'branchPickerDialog.error.failedToLoad': 'Fehler beim Laden der Branches', + 'branchPickerDialog.error.renameRejected': 'Umbenennen wurde abgelehnt', + 'branchPickerDialog.error.renameFailed': 'Fehler beim Umbenennen des Branches', + 'branchPickerDialog.error.deleteRejected': 'Löschen wurde abgelehnt', + 'branchPickerDialog.error.deleteFailed': 'Fehler beim Löschen des Branches', + 'branchPickerDialog.error.createWorktreeFailed': 'Fehler beim Erstellen des Worktrees', + 'projectEditDialog.title': 'Projekt bearbeiten', + 'projectEditDialog.field.name': 'Name', + 'projectEditDialog.field.namePlaceholder': 'Projektname', + 'projectEditDialog.field.color': 'Farbe', + 'projectEditDialog.field.icon': 'Symbol', + 'projectEditDialog.field.preview': 'Vorschau', + 'projectEditDialog.field.iconBackground': 'Symbol-Hintergrund', + 'projectEditDialog.field.iconBackgroundAria': 'Projekt-Symbol-Hintergrundfarbe', + 'projectEditDialog.option.none': 'Keine', + 'projectEditDialog.actions.uploadIcon': 'Symbol hochladen', + 'projectEditDialog.actions.uploading': 'Hochladen...', + 'projectEditDialog.actions.discoverFavicon': 'Favicon entdecken', + 'projectEditDialog.actions.discovering': 'Entdecken...', + 'projectEditDialog.actions.removeProjectIcon': 'Projekt-Symbol entfernen', + 'projectEditDialog.actions.removing': 'Entfernen...', + 'projectEditDialog.actions.undoRemove': 'Entfernen rückgängig machen', + 'projectEditDialog.actions.clear': 'Leeren', + 'projectEditDialog.actions.cancel': 'Abbrechen', + 'projectEditDialog.actions.save': 'Speichern', + 'projectEditDialog.toast.failedToUploadIcon': 'Fehler beim Hochladen des Projekt-Symbols', + 'projectEditDialog.toast.iconUpdated': 'Projekt-Symbol aktualisiert', + 'projectEditDialog.toast.failedToRemoveIcon': 'Fehler beim Entfernen des Projekt-Symbols', + 'projectEditDialog.toast.iconRemoved': 'Projekt-Symbol entfernt', + 'projectEditDialog.toast.failedToDiscoverIcon': 'Fehler bei der Erkennung des Projekt-Symbols', + 'projectEditDialog.toast.customIconAlreadySet': 'Benutzerdefiniertes Symbol bereits für dieses Projekt festgelegt', + 'projectEditDialog.toast.iconDiscovered': 'Projekt-Symbol entdeckt', + 'agentManager.sidebar.search.placeholder': 'Agent-Gruppen durchsuchen...', + 'agentManager.sidebar.actions.newAgentGroup': 'Neue Agent-Gruppe', + 'agentManager.sidebar.actions.more': '... Mehr ({count})', + 'agentManager.sidebar.actions.showLess': 'Weniger anzeigen', + 'agentManager.sidebar.section.agentGroups': 'Agentengruppen', + 'agentManager.sidebar.state.loading': 'Laden...', + 'agentManager.sidebar.state.noGroupsFound': 'Keine Gruppen gefunden', + 'agentManager.sidebar.state.noGroupsYet': 'Noch keine Agentengruppen', + 'agentManager.sidebar.state.createToGetStarted': 'Erstellen Sie eine neue Agentengruppe, um loszulegen', + 'agentManager.sidebar.item.modelCountSingle': '{count} Modell', + 'agentManager.sidebar.item.modelCountPlural': '{count} Modelle', + 'agentManager.sidebar.item.groupMenuAria': 'Gruppenmenü', + 'agentManager.sidebar.item.delete': 'Löschen', + 'agentManager.sidebar.relativeTime.now': 'jetzt', + 'agentManager.sidebar.relativeTime.minutes': '{count}m', + 'agentManager.sidebar.relativeTime.hours': '{count}h', + 'agentManager.sidebar.relativeTime.days': '{count}d', + 'agentManager.sidebar.dialog.deleteGroupTitle': 'Agentengruppe löschen', + 'agentManager.sidebar.dialog.deleteGroupDescription': '"{group}" löschen? Dadurch werden alle Worktrees und Sitzungen in dieser Gruppe entfernt.', + 'agentManager.sidebar.dialog.cancel': 'Abbrechen', + 'agentManager.sidebar.dialog.delete': 'Löschen', + 'agentManager.sidebar.dialog.deleting': 'Löschen...', + 'agentManager.sidebar.toast.deletingGroup': '"{group}" wird gelöscht...', + 'agentManager.sidebar.toast.deletedGroup': '"{group}" gelöscht', + 'agentManager.sidebar.toast.failedToDeleteGroup': 'Vollständiges Löschen von "{group}" fehlgeschlagen', + 'agentManager.detail.header.modelCountSingle': '{count} Modell', + 'agentManager.detail.header.modelCountPlural': '{count} Modelle', + 'agentManager.detail.header.noBranch': 'Kein Branch', + 'agentManager.detail.actions.worktreeActionsAria': 'Worktree-Aktionen', + 'agentManager.detail.actions.removeThisWorktree': 'Diesen Worktree entfernen', + 'agentManager.detail.actions.keepThisRemoveOthers': 'Diesen behalten, andere entfernen', + 'agentManager.detail.actions.copyWorktreePath': 'Worktree-Pfad kopieren', + 'agentManager.detail.dialog.removeWorktreeTitle': 'Worktree entfernen', + 'agentManager.detail.dialog.removeOtherWorktreesTitle': 'Andere Worktrees entfernen', + 'agentManager.detail.dialog.removeWorktreeDescription': '"{label}" entfernen? Dadurch werden alle Sitzungen in diesem Worktree gelöscht und der Worktree selbst entfernt.', + 'agentManager.detail.dialog.removeOtherWorktreesDescription': '"{label}" behalten und die anderen Worktrees in "{group}" entfernen.', + 'agentManager.detail.dialog.cancel': 'Abbrechen', + 'agentManager.detail.dialog.remove': 'Entfernen', + 'agentManager.detail.dialog.removeOthers': 'Andere entfernen', + 'agentManager.detail.dialog.working': 'Arbeite...', + 'agentManager.detail.state.loadingSessionFor': 'Lade Sitzung für {label}', + 'agentManager.detail.state.sessionId': 'Sitzungs-ID: {id}', + 'agentManager.detail.state.noSessionsInGroup': 'Keine Sitzungen in dieser Gruppe', + 'agentManager.detail.toast.noWorktreePath': 'Kein Worktree-Pfad verfügbar', + 'agentManager.detail.toast.worktreePathCopied': 'Worktree-Pfad kopiert', + 'agentManager.detail.toast.failedToCopyPath': 'Fehler beim Kopieren des Pfads', + 'agentManager.detail.toast.removingWorktree': 'Entferne Worktree...', + 'agentManager.detail.toast.removingOtherWorktrees': 'Entferne andere Worktrees...', + 'agentManager.detail.toast.failedToFullyRemoveWorktree': 'Fehler beim vollständigen Entfernen des Worktrees', + 'agentManager.detail.toast.worktreeRemoved': 'Worktree entfernt', + 'agentManager.detail.toast.otherWorktreesRemoved': 'Andere Worktrees entfernt', + 'agentManager.empty.groupName.label': 'Gruppenname', + 'agentManager.empty.groupName.placeholder': 'z.B. feature-auth, bugfix-login', + 'agentManager.empty.groupName.description': 'Wird für Verzeichnis- und Branch-Namen verwendet', + 'agentManager.empty.baseBranch.label': 'Basis-Branch', + 'agentManager.empty.baseBranch.description': 'Erstellt neue Branches aus {branch}', + 'agentManager.empty.setupCommands.label': 'Setup-Befehle', + 'agentManager.empty.setupCommands.configured': '{count} konfiguriert', + 'agentManager.empty.setupCommands.description': 'Befehle, die in jedem neuen Worktree ausgeführt werden. Verwende $ROOT_PROJECT_PATH für das Projekt-Root.', + 'agentManager.empty.setupCommands.loading': 'Laden...', + 'agentManager.empty.setupCommands.commandPlaceholder': 'z.B., bun install', + 'agentManager.empty.setupCommands.removeCommandAria': 'Befehl entfernen', + 'agentManager.empty.setupCommands.addCommand': 'Befehl hinzufügen', + 'agentManager.empty.agent.label': 'Agent', + 'agentManager.empty.agent.description': 'Verwendet standardmäßig Ihren konfigurierten Standard-Agent', + 'agentManager.empty.models.label': 'Modelle', + 'agentManager.empty.models.addModel': 'Modell hinzufügen', + 'agentManager.empty.models.selectedSingle': '{count} Modell ausgewählt', + 'agentManager.empty.models.selectedPlural': '{count} Modelle ausgewählt', + 'agentManager.empty.prompt.label': 'Prompt', + 'agentManager.empty.prompt.placeholder': 'Frage alles...', + 'agentManager.empty.prompt.addAttachmentAria': 'Anhang hinzufügen', + 'agentManager.empty.actions.startAgentGroupAria': 'Agent-Gruppe starten', + 'agentManager.empty.toast.fileTooLarge': 'Datei "{fileName}" ist zu groß (max. 10MB)', + 'agentManager.empty.toast.failedToAttach': 'Fehler beim Anhängen von "{fileName}"', + 'agentManager.empty.toast.attachedSingle': '{count} Datei angehängt', + 'agentManager.empty.toast.attachedPlural': '{count} Dateien angehängt', + 'agentManager.empty.toast.failedToCreateGroup': 'Fehler beim Erstellen der Agent-Gruppe', + 'openInApp.actions.open': 'Öffnen', + 'openInApp.actions.openInAria': 'In {app} öffnen', + 'openInApp.actions.chooseAppAria': 'App zum Öffnen auswählen', + 'openInApp.actions.copyPath': 'Pfad kopieren', + 'openInApp.actions.refreshApps': 'Apps aktualisieren', + 'openInApp.toast.pathCopied': 'Pfad in die Zwischenablage kopiert', + 'projectActions.actions.addActionAria': 'Aktion hinzufügen', + 'projectActions.actions.addAction': 'Aktion hinzufügen', + 'projectActions.actions.addNewAction': 'Neue Aktion hinzufügen', + 'projectActions.actions.autoDiscover': 'Automatisch entdecken', + 'projectActions.actions.chooseActionAria': 'Projektaktion auswählen', + 'projectActions.actions.openPreview': 'Vorschau öffnen', + 'projectActions.actions.runNamedAria': '{name} ausführen', + 'projectActions.actions.stopNamedAria': '{name} stoppen', + 'projectActions.label.fallbackAction': 'Aktion', + 'projectActions.toast.openedUrlFromOutput': 'URL aus der Aktionsausgabe geöffnet', + 'projectActions.toast.openedForwardedUrl': 'Weitergeleitete URL geöffnet', + 'projectActions.toast.openedActionUrl': 'Aktions-URL geöffnet', + 'projectActions.error.noActiveDirectory': 'Kein aktives Verzeichnis', + 'projectActions.error.noActiveDirectoryForAction': 'Kein aktives Verzeichnis für Aktion', + 'projectActions.error.failedToCreateTerminalSession': 'Erstellung der Terminal-Sitzung fehlgeschlagen', + 'projectActions.error.invalidCustomUrlFormat': 'Ungültiges benutzerdefiniertes URL-Format', + 'projectActions.error.selectedDesktopSshForwardUnavailable': 'Ausgewählte Desktop-SSH-Weiterleitung ist nicht verfügbar', + 'projectActions.error.failedToRunAction': 'Aktion konnte nicht ausgeführt werden', + 'mcpDropdown.title': 'MCP-Server', + 'mcpDropdown.actions.refreshAria': 'Aktualisieren', + 'mcpDropdown.actions.openAria': 'MCP-Server', + 'mcpDropdown.statusAria': 'MCP-Status', + 'mcpDropdown.status.unknown': 'Unbekannt', + 'mcpDropdown.status.connected': 'Verbunden', + 'mcpDropdown.status.failed': 'Fehlgeschlagen: {error}', + 'mcpDropdown.status.unknownError': 'Unbekannter Fehler', + 'mcpDropdown.status.needsAuth': 'Authentifizierung erforderlich', + 'mcpDropdown.status.needsRegistration': 'Registrierung erforderlich: {error}', + 'mcpDropdown.empty.configureInConfig': 'Konfigurieren Sie MCP-Server in den Einstellungen.', + 'sessionAuth.error.rateLimitTitle': 'Zu viele Versuche', + 'sessionAuth.error.networkTitle': 'Server nicht erreichbar', + 'sessionAuth.error.rateLimitDescriptionSingle': 'Bitte warten Sie {minutes} Minute, bevor Sie es erneut versuchen.', + 'sessionAuth.error.rateLimitDescriptionPlural': 'Bitte warten Sie {minutes} Minuten, bevor Sie es erneut versuchen.', + 'sessionAuth.error.networkDescription': 'Wir konnten die UI-Sitzung nicht verifizieren. Wenn Sie OpenChamber von einem anderen Gerät in Ihrem lokalen Netzwerk öffnen, stellen Sie sicher, dass Desktop-Netzwerkzugriff in der Desktop-Anwendung aktiviert ist und verwenden Sie die im Einstellungen angezeigte LAN-Adresse.', + 'sessionAuth.error.retry': 'Erneut versuchen', + 'sessionAuth.error.passkeySetupFailed': 'Einrichtung des Passkeys fehlgeschlagen.', + 'sessionAuth.error.incorrectPassword': 'Falsches Passwort. Bitte erneut versuchen.', + 'sessionAuth.error.unexpectedResponse': 'Unerwartete Antwort vom Server.', + 'sessionAuth.error.networkRetry': 'Netzwerkfehler. Verbindung prüfen und erneut versuchen.', + 'sessionAuth.error.passkeySignInCanceled': 'Passkey-Anmeldung wurde abgebrochen.', + 'sessionAuth.error.enterPasswordForPasskey': 'Geben Sie Ihr Passwort ein, um einen Passkey hinzuzufügen.', + 'sessionAuth.locked.tunnelTitle': 'Tunnel-Zugriff erforderlich', + 'sessionAuth.locked.unlockTitle': 'OpenChamber entsperren', + 'sessionAuth.locked.tunnelDescription': 'Öffnen Sie diesen Tunnel über den Einmal-Verbindungslink aus der Desktop-Anwendung.', + 'sessionAuth.locked.passwordDescription': 'Diese Sitzung ist passwortgeschützt.', + 'sessionAuth.locked.hostSwitcherHint': 'Verwenden Sie Local, wenn Remote nicht erreichbar ist.', + 'sessionAuth.actions.cancelPasskey': 'Passkey abbrechen', + 'sessionAuth.actions.usePasskey': 'Passkey verwenden', + 'sessionAuth.actions.unlockingAria': 'Entsperren', + 'sessionAuth.actions.unlockAria': 'Entsperren', + 'sessionAuth.actions.trustDevice': 'Dieses Gerät vertrauen', + 'sessionAuth.actions.trustDeviceAria': 'Dieses Gerät vertrauen', + 'sessionAuth.actions.cancelPasskeySetup': 'Passkey-Einrichtung abbrechen', + 'sessionAuth.actions.addPasskey': 'Passkey hinzufügen', + 'sessionAuth.password.placeholder': 'Passwort eingeben', + 'sessionAuth.toast.passkeyAdded': 'Passkey hinzugefügt', + 'sessionAuth.toast.passkeySetupCanceled': 'Passkey-Einrichtung abgebrochen', + 'desktopHostSwitcher.title': 'Instanz', + 'desktopHostSwitcher.description': 'Zwischen lokalen und Remote-OpenChamber-Servern wechseln', + 'desktopHostSwitcher.header.current': 'Aktuell', + 'desktopHostSwitcher.header.default': 'Standard', + 'desktopHostSwitcher.header.currentColon': 'Aktuell:', + 'desktopHostSwitcher.header.currentDefaultColon': 'Aktueller Standard:', + 'desktopHostSwitcher.status.connected': 'Verbunden', + 'desktopHostSwitcher.status.authRequired': 'Authentifizierung erforderlich', + 'desktopHostSwitcher.status.checking': 'Überprüfung', + 'desktopHostSwitcher.status.updateRecommended': 'Aktualisierung empfohlen', + 'desktopHostSwitcher.status.incompatible': 'Nicht kompatibel', + 'desktopHostSwitcher.status.wrongService': 'Falscher Dienst', + 'desktopHostSwitcher.status.unreachable': 'Nicht erreichbar', + 'desktopHostSwitcher.status.unknown': 'Unbekannt', + 'desktopHostSwitcher.status.ping': ' · {ms}ms Ping', + 'desktopHostSwitcher.statusAria': 'Instanzstatus', + 'desktopHostSwitcher.sshPhase.ready': 'Bereit', + 'desktopHostSwitcher.sshPhase.error': 'Fehler', + 'desktopHostSwitcher.sshPhase.reconnecting': 'Verbindung wird wiederhergestellt', + 'desktopHostSwitcher.sshPhase.resolvingConfig': 'Konfiguration wird aufgelöst', + 'desktopHostSwitcher.sshPhase.checkingAuth': 'Authentifizierung wird überprüft', + 'desktopHostSwitcher.sshPhase.connectingSsh': 'SSH-Verbindung wird hergestellt', + 'desktopHostSwitcher.sshPhase.probingRemote': 'Entfernte Systeme werden untersucht', + 'desktopHostSwitcher.sshPhase.installing': 'Wird installiert', + 'desktopHostSwitcher.sshPhase.updating': 'Wird aktualisiert', + 'desktopHostSwitcher.sshPhase.detectingServer': 'Server wird erkannt', + 'desktopHostSwitcher.sshPhase.startingServer': 'Server wird gestartet', + 'desktopHostSwitcher.sshPhase.forwardingPorts': 'Ports werden weitergeleitet', + 'desktopHostSwitcher.sshPhase.idle': 'Leerlauf', + 'desktopHostSwitcher.ssh.needInstancesHint': 'Benötigen Sie SSH-Instanzen? Verwalten Sie diese in den Einstellungen.', + 'desktopHostSwitcher.ssh.instanceFallback': 'SSH-Instanz', + 'desktopHostSwitcher.ssh.connectingTo': 'Verbindung zu {host} wird hergestellt', + 'desktopHostSwitcher.actions.refresh': 'Aktualisieren', + 'desktopHostSwitcher.actions.refreshInstancesAria': 'Instanzen aktualisieren', + 'desktopHostSwitcher.actions.remoteSsh': 'Entferntes SSH', + 'desktopHostSwitcher.actions.instanceActionsAria': 'Instanzaktionen', + 'desktopHostSwitcher.actions.edit': 'Bearbeiten', + 'desktopHostSwitcher.actions.delete': 'Löschen', + 'desktopHostSwitcher.actions.connect': 'Verbinden', + 'desktopHostSwitcher.actions.defaultInstanceAria': 'Standardinstanz', + 'desktopHostSwitcher.actions.setAsDefaultAria': 'Als Standard festlegen', + 'desktopHostSwitcher.actions.setAsDefault': 'Als Standard festlegen', + 'desktopHostSwitcher.actions.openInNewWindowAria': 'In neuem Fenster öffnen', + 'desktopHostSwitcher.actions.openInNewWindow': 'In neuem Fenster öffnen', + 'desktopHostSwitcher.actions.addInstance': 'Instanz hinzufügen', + 'desktopHostSwitcher.actions.cancel': 'Abbrechen', + 'desktopHostSwitcher.actions.save': 'Speichern', + 'desktopHostSwitcher.actions.add': 'Hinzufügen', + 'desktopHostSwitcher.actions.switchToLocal': 'Zu Lokal wechseln', + 'desktopHostSwitcher.actions.retry': 'Wiederholen', + 'desktopHostSwitcher.actions.switchInstanceAria': 'Instanz wechseln', + 'desktopHostSwitcher.actions.switchInstance': 'Instanz wechseln', + 'desktopHostSwitcher.actions.switchToAria': 'Zu {instance} wechseln', + 'desktopHostSwitcher.field.labelPlaceholder': 'Bezeichnung', + 'desktopHostSwitcher.field.labelOptionalPlaceholder': 'Bezeichnung (optional)', + 'desktopHostSwitcher.field.urlPlaceholder': 'https://host:port', + 'desktopHostSwitcher.state.limitedOnPage': 'Instanzwechsler ist auf dieser Seite begrenzt. Verwenden Sie Lokal, um wiederherzustellen.', + 'desktopHostSwitcher.state.loading': 'Wird geladen...', + 'desktopHostSwitcher.state.instanceUnreachable': 'Instanz nicht erreichbar', + 'desktopHostSwitcher.edit.title': 'Instanz bearbeiten', + 'desktopHostSwitcher.add.title': 'Instanz hinzufügen', + 'desktopHostSwitcher.error.failedToSave': 'Speichern fehlgeschlagen', + 'desktopHostSwitcher.error.failedToLoad': 'Laden fehlgeschlagen', + 'desktopHostSwitcher.error.invalidUrl': 'Ungültige URL (muss http/https sein)', + 'desktopHostSwitcher.error.failedToOpenNewWindow': 'Öffnen eines neuen Fensters fehlgeschlagen', + 'desktopHostSwitcher.instance.local': 'Lokal', + 'desktopHostSwitcher.instance.fallback': 'Instanz', + 'desktopHostSwitcher.startup.title': 'Standard-SSH-Instanz nicht verfügbar', + 'desktopHostSwitcher.startup.connectingTo': 'Verbindung zu {host} herstellen...', + 'desktopHostSwitcher.startup.failed': 'Verbindung zur Standard-SSH-Instanz fehlgeschlagen.', + 'desktopHostSwitcher.toast.sshConnected': 'SSH-Instanz "{host}" verbunden', + 'desktopHostSwitcher.toast.sshFailedToConnect': 'SSH-Instanz "{host}" konnte keine Verbindung herstellen', + 'desktopHostSwitcher.toast.instanceUnreachable': 'Instanz "{host}" ist nicht erreichbar', + 'miniChat.header.newSession': 'Neue Sitzung', + 'miniChat.header.session': 'Sitzung', + 'miniChat.header.defaultAgent': 'Standard-Agent', + 'miniChat.header.noModel': 'Kein Modell', + 'miniChat.status.busy': 'Läuft', + 'miniChat.status.retry': 'Wiederholen', + 'miniChat.status.idle': 'Leerlauf', + 'miniChat.actions.pin': 'Oben über anderen Fenstern anheften', + 'miniChat.actions.unpin': 'Fenster lösen', + 'miniChat.actions.pinAria': 'Mini Chat-Fenster anheften', + 'miniChat.actions.unpinAria': 'Mini Chat-Fenster lösen', + 'miniChat.actions.openMain': 'In Hauptfenster öffnen', + 'miniChat.actions.openMainAria': 'Sitzung im Hauptfenster öffnen', + 'miniChat.unavailable.title': 'Sitzung nicht verfügbar', + 'miniChat.unavailable.description': 'Diese Sitzung konnte nicht geladen werden. Sie wurde möglicherweise gelöscht, archiviert oder aus einem anderen Projekt-Kontext geöffnet.', + 'sessions.sidebar.session.menu.openMiniChatWindow': 'In Mini Chat-Fenster öffnen', + 'header.actions.newMiniChat': 'Neues Mini Chat-Fenster', + 'header.actions.newMiniChatAria': 'Ein neues Mini Chat-Fenster öffnen', + 'header.actions.openSessionMiniChat': 'Sitzung in Mini Chat öffnen', + 'header.actions.openSessionMiniChatAria': 'Aktuelle Sitzung in Mini Chat öffnen', + 'header.windowControls.groupAria': 'Fenstersteuerung', + 'header.windowControls.minimize': 'Fenster minimieren', + 'header.windowControls.maximize': 'Fenster maximieren', + 'header.windowControls.restore': 'Fenster wiederherstellen', + 'header.windowControls.close': 'Fenster schließen', + 'errorBoundary.title': 'Etwas ist schiefgelaufen', + 'errorBoundary.description': 'Die Anwendung hat einen unerwarteten Fehler festgestellt. Dies wurde zur Fehlersuche protokolliert.', + 'errorBoundary.state.unknownError': 'Unbekannter Fehler', + 'errorBoundary.state.componentStackLabel': 'Komponentenstapel:', + 'errorBoundary.actions.errorDetails': 'Fehlerdetails', + 'errorBoundary.actions.tryAgain': 'Erneut versuchen', + 'errorBoundary.actions.copy': 'Kopieren', + 'errorBoundary.actions.copied': 'Kopiert', + 'jsonTreeView.error.emptyJson': 'Leerer JSON-Inhalt', + 'jsonTreeView.error.invalidJson': 'Ungültiges JSON', + 'jsonTreeView.error.invalidJsonTitle': 'Ungültiges JSON', + 'jsonTreeView.actions.expandAll': 'Alle erweitern', + 'jsonTreeView.actions.collapseAll': 'Alle reduzieren', + 'numberInput.actions.decreaseAria': 'Wert verringern', + 'numberInput.actions.increaseAria': 'Wert erhöhen', + 'goToLineDialog.field.linePlaceholderShort': 'Zeile', + 'goToLineDialog.field.linePlaceholder': 'Zeilennummer', + 'goToLineDialog.actions.go': 'Gehe zu', + 'goToLineDialog.helper.editorUnavailable': 'Editor nicht verfügbar.', + 'goToLineDialog.helper.currentLineRange': 'Aktuelle Zeile: {current}. Geben Sie eine Zeilennummer zwischen 1 und {max} ein, um zur gewünschten Zeile zu navigieren.', + 'goToLineDialog.helper.goToLine': 'Gehe zu Zeile {line}', + 'dialog.common.actions.close': 'Schließen', + 'filesView.toast.relativePathCopied': 'Relativer Pfad kopiert', + 'filesView.tree.menu.copyRelativePath': 'Relativen Pfad kopieren', + 'multiRun.branchSelector.placeholder.selectSourceBranch': 'Quell-Branch auswählen...', + 'multiRun.branchSelector.status.loadingBranches': 'Lade Branches...', + 'multiRun.branchSelector.status.noBranchesFound': 'Keine Branches gefunden', + 'multiRun.branchSelector.status.notInGitRepository': 'Nicht in einem Git-Repository.', + 'multiRun.branchSelector.groups.localBranches': 'Lokale Branches', + 'multiRun.branchSelector.groups.remoteBranches': 'Remote-Branches', + 'multiRun.window.actions.closeAria': 'Multi-Run schließen', + 'multiRun.window.description': 'OpenChamber Multi-Run Fenster.', + 'voice.status.idle': 'Sprache bereit', + 'voice.status.listening': 'Höre...', + 'voice.status.processing': 'Verarbeite...', + 'voice.status.speaking': 'Spricht...', + 'voice.status.error': 'Sprachfehler', + 'voice.status.conversationModeActiveAria': 'Konversationsmodus aktiv', + 'voice.action.finishAndTranscribe': 'Spracheingabe beenden und transkribieren', + 'onboarding.common.actions.back': 'Zurück', + 'onboarding.common.copyToClipboard': 'In Zwischenablage kopieren', + 'onboarding.common.status.copiedToClipboard': 'In Zwischenablage kopiert', + 'onboarding.chooser.title': 'Willkommen bei OpenChamber', + 'onboarding.chooser.description': 'Wählen Sie, wie Sie sich verbinden möchten, um loszulegen.', + 'onboarding.chooser.tabs.localInstall': 'Lokale Installation', + 'onboarding.chooser.tabs.connectRemote': 'Entfernte Verbindung', + 'onboarding.localSetup.title': 'Einrichtung von OpenCode', + 'onboarding.localSetup.description': 'Installieren Sie die OpenCode CLI, um fortzufahren.', + 'onboarding.localSetup.dialog.selectOpencodeBinary': 'opencode-Binärdatei auswählen', + 'onboarding.localSetup.errors.cliNotReady': 'OpenCode CLI ist noch nicht bereit. Bitte bestätigen Sie, dass die Installation abgeschlossen ist, und versuchen Sie es erneut.', + 'onboarding.localSetup.errors.detectionFailed': 'Erkennung fehlgeschlagen', + 'onboarding.localSetup.windows.title': 'Windows-Einrichtung', + 'onboarding.localSetup.windows.stepInstallWsl': 'Installieren Sie OpenCode mit dem folgenden Befehl.', + 'onboarding.localSetup.windows.stepRunInstallInWsl': 'Führen Sie den Installationsbefehl unten in einer Windows-Konsole aus.', + 'onboarding.localSetup.windows.stepSetBinaryPath': 'Wenn OpenChamber OpenCode nicht automatisch erkennt, legen Sie den Binärpfad unten fest.', + 'onboarding.localSetup.intro': 'OpenCode ist das Herz von OpenChamber – installieren Sie es, um loszulegen.', + 'onboarding.localSetup.docs.windows': 'OpenCode-Dokumentation', + 'onboarding.localSetup.docs.default': 'OpenCode-Dokumentation', + 'onboarding.localSetup.actions.checking': 'Überprüfe…', + 'onboarding.localSetup.actions.checkAndContinue': 'Ich habe die Installation abgeschlossen, überprüfen und fortfahren', + 'onboarding.localSetup.actions.checkNow': 'Jetzt überprüfen', + 'onboarding.localSetup.helper.checkAndContinue': 'Klicken Sie, um zu prüfen, ob OpenCode CLI verfügbar ist. Bei Erfolg gelangen Sie automatisch zum Hauptbildschirm.', + 'onboarding.localSetup.status.watching': 'Warte auf OpenCode', + 'onboarding.localSetup.status.autoContinue': 'Wir fahren automatisch fort, sobald es erkannt wurde.', + 'onboarding.localSetup.field.alreadyInstalled': 'Bereits installiert? Legen Sie den OpenCode CLI-Pfad fest:', + 'onboarding.localSetup.advanced.title': 'Benutzerdefinierten Binärpfad festlegen', + 'onboarding.localSetup.troubleshoot.title': 'Probleme beim Verbinden?', + 'onboarding.localSetup.actions.browse': 'Durchsuchen', + 'onboarding.localSetup.actions.apply': 'Anwenden', + 'onboarding.localSetup.helper.saveAndReload': 'Speichert in die OpenChamber-Einstellungen und lädt die OpenCode-Konfiguration neu.', + 'onboarding.localSetup.remotePreference': 'Bevorzugen Sie die Verwendung eines Remote-Servers?', + 'onboarding.localSetup.actions.connectRemoteServer': 'Mit Remote-Server verbinden →', + 'onboarding.localSetup.windows.hintInstallInWsl': 'Unter Windows installieren und führen Sie OpenCode nativ aus.', + 'onboarding.localSetup.windows.hintDetectionFailed': 'Falls die Erkennung fehlschlägt, legen Sie einen nativen Pfad wie opencode.cmd oder opencode.exe fest.', + 'onboarding.localSetup.hint.ensurePath': 'Bereits installiert? Stellen Sie sicher, dass opencode in Ihrem PATH enthalten ist.', + 'onboarding.localSetup.hint.setEnv': 'Oder legen Sie die Umgebungsvariable OPENCODE_BINARY fest.', + 'onboarding.localSetup.hint.missingRuntime': 'Wenn Sie „env: node: No such file or directory“ oder „env: bun: No such file or directory“ sehen, installieren Sie diese Laufzeitumgebung oder stellen Sie sicher, dass sie im PATH enthalten ist.', + 'onboarding.remoteConnection.title': 'Mit Remote-Server verbinden', + 'onboarding.remoteConnection.titleRecovery': 'Mit einem anderen Server verbinden', + 'onboarding.remoteConnection.description': 'Geben Sie die Adresse eines OpenChamber-Servers ein, mit dem Sie sich verbinden möchten.', + 'onboarding.remoteConnection.field.serverAddress': 'Server-Adresse', + 'onboarding.remoteConnection.field.serverAddressPlaceholder': 'https://your-server.example.com:4096', + 'onboarding.remoteConnection.field.nameOptional': 'Name (optional)', + 'onboarding.remoteConnection.field.namePlaceholder': 'Mein Remote-Server', + 'onboarding.remoteConnection.errors.connectionTestFailed': 'Verbindungstest fehlgeschlagen', + 'onboarding.remoteConnection.errors.failedToSaveConnection': 'Speichern der Verbindung fehlgeschlagen', + 'onboarding.remoteConnection.status.connectedSuccessfully': 'Erfolgreich verbunden ({latencyMs}ms)', + 'onboarding.remoteConnection.status.authWarning': 'Server erfordert Authentifizierung. Sie können sich immer noch verbinden.', + 'onboarding.remoteConnection.status.connectionFailed': 'Verbindung fehlgeschlagen', + 'onboarding.remoteConnection.status.suggestionsUnreachable': 'Vorschläge: Überprüfen Sie die Serveradresse, stellen Sie sicher, dass der Server läuft, oder prüfen Sie Ihre Netzwerkverbindung.', + 'onboarding.remoteConnection.status.suggestionsWrongService': 'Vorschläge: Stellen Sie sicher, dass die URL auf einen OpenChamber-Server zeigt, oder kontaktieren Sie den Server-Administrator.', + 'onboarding.remoteConnection.actions.testing': 'Teste…', + 'onboarding.remoteConnection.actions.testConnection': 'Verbindung testen', + 'onboarding.remoteConnection.actions.connectAndRestart': 'Verbinden & Neustarten', + 'onboarding.remoteConnection.actions.whatToDo': 'Was möchten Sie tun?', + 'onboarding.remoteConnection.actions.chooseDifferentServer': 'Anderen Server auswählen', + 'onboarding.remoteConnection.actions.useLocalInstead': 'Lokal stattdessen verwenden', + 'onboarding.remoteConnection.probe.authMessage': 'Der Server erfordert Authentifizierung. Sie können sich immer noch verbinden, aber müssen möglicherweise Anmeldedaten bereitstellen.', + 'onboarding.remoteConnection.probe.updateRecommendedMessage': 'Diese Instanz verwendet eine andere OpenChamber-Version. Sie können sich verbinden, aber aktualisieren Sie beide Apps, falls etwas nicht funktioniert.', + 'onboarding.remoteConnection.probe.incompatibleMessage': 'Der Server läuft unter OpenChamber, ist aber nicht kompatibel mit dieser App-Version. Aktualisieren Sie OpenChamber auf dem Server und versuchen Sie es dann erneut.', + 'onboarding.remoteConnection.probe.wrongServiceMessage': 'Der Server hat geantwortet, aber es läuft kein OpenChamber. Überprüfen Sie, ob die Adresse auf einen OpenChamber-Server zeigt.', + 'onboarding.remoteConnection.probe.unreachableMessage': 'Der Server ist nicht erreichbar. Überprüfen Sie Ihre Netzwerkverbindung und die Serveradresse.', + 'onboarding.desktopRecovery.localUnavailable.title': 'Lokales OpenCode nicht verfügbar', + 'onboarding.desktopRecovery.localUnavailable.description': 'OpenCode CLI konnte nicht gestartet werden oder ist nicht installiert. Installieren Sie OpenCode oder verbinden Sie sich stattdessen mit einem Remote-Server.', + 'onboarding.desktopRecovery.localUnavailable.retry': 'Lokal erneut versuchen', + 'onboarding.desktopRecovery.localUnavailable.useLocal': 'Lokale Einrichtung', + 'onboarding.desktopRecovery.noDefaultConnection.title': 'Keine Standardverbindung', + 'onboarding.desktopRecovery.noDefaultConnection.description': 'Ihre gespeicherte Standardverbindung konnte nicht gefunden werden. Wählen Sie aus, wie Sie sich verbinden möchten.', + 'onboarding.desktopRecovery.remoteUnreachable.title': 'Remote-Server nicht erreichbar', + 'onboarding.desktopRecovery.remoteUnreachable.description': 'Konnte keine Verbindung zu "{host}" herstellen. Überprüfen Sie Ihre Netzwerkverbindung und die Serveradresse.', + 'onboarding.desktopRecovery.remoteUnreachable.retry': 'Verbindung erneut versuchen', + 'onboarding.desktopRecovery.incompatibleServer.title': 'Inkompatibler Server', + 'onboarding.desktopRecovery.incompatibleServer.description': 'Der Server unter "{host}" läuft nicht unter OpenChamber. Überprüfen Sie, ob die Adresse auf einen OpenChamber-Server zeigt.', + 'onboarding.desktopRecovery.remoteIncompatible.title': 'Server-Update erforderlich', + 'onboarding.desktopRecovery.remoteIncompatible.description': 'Der OpenChamber-Server unter "{host}" ist nicht kompatibel mit dieser App-Version. Aktualisieren Sie OpenChamber auf dem Server und versuchen Sie es dann erneut.', + 'onboarding.desktopRecovery.common.useLocal': 'Lokal verwenden', + 'onboarding.desktopRecovery.common.useRemote': 'Remote verwenden', + 'onboarding.desktopRecovery.actions.retrying': 'Erneuter Versuch…', + 'onboarding.desktopRecovery.actions.retryConnection': 'Verbindung erneut versuchen', + 'startup.initRecovery.title': 'Start fehlgeschlagen', + 'startup.initRecovery.description': 'OpenChamber konnte die Initialisierung nicht abschließen. Überprüfen Sie, ob der Server läuft, und versuchen Sie es dann erneut.', + 'startup.initRecovery.retry': 'Erneut versuchen', + 'startup.initRecovery.retrying': 'Erneuter Versuch…', + 'onboarding.desktopRecovery.placeholders.remoteServer': 'der Remote-Server', + 'onboarding.desktopRecovery.placeholders.unknownServer': 'unbekannt', + 'vscodeLayout.title.chat': 'Chat', + 'vscodeLayout.title.newSession': 'Neue Sitzung', + 'vscodeLayout.title.sessions': 'Sitzungen', + 'vscodeLayout.title.sessionFallback': 'Sitzung', + 'vscodeLayout.actions.backToSessionsAria': 'Zurück zu den Sitzungen', + 'vscodeLayout.actions.archiveAllAria': 'Alle Sitzungen archivieren', + 'vscodeLayout.actions.archiveAllConfirm': 'Alle archivieren', + 'vscodeLayout.actions.archiveAllSuccess': '{count} Sitzung(en) archiviert', + 'vscodeLayout.actions.archiveAllError': 'Fehler beim Archivieren von {count} Sitzung(en)', + 'vscodeLayout.actions.cancel': 'Abbrechen', + 'vscodeLayout.actions.newSessionAria': 'Neue Sitzung', + 'vscodeLayout.actions.openAgentManagerAria': 'Agenten-Manager öffnen', + 'vscodeLayout.actions.resizeSessionsSidebarAria': 'Größe der Sitzungs-Seitenleiste anpassen', + 'vscodeLayout.actions.settingsAria': 'Einstellungen', + 'vscodeLayout.quota.title': 'Ratenlimits', + 'vscodeLayout.quota.mode.used': 'Verwendet', + 'vscodeLayout.quota.mode.remaining': 'Verbleibend', + 'vscodeLayout.quota.lastUpdated': 'Zuletzt aktualisiert {time}', + 'vscodeLayout.quota.noRateLimitsAvailable': 'Keine Ratenlimits verfügbar.', + 'vscodeLayout.quota.noRateLimitsReported': 'Keine Ratenlimits gemeldet.', + 'vscodeLayout.quota.actions.rateLimitsAria': 'Ratenlimits', + 'vscodeLayout.quota.actions.showUsedAria': 'Verwendete Quote anzeigen', + 'vscodeLayout.quota.actions.showRemainingAria': 'Verbleibende Quote anzeigen', + 'vscodeLayout.quota.actions.refreshAria': 'Ratenlimits aktualisieren', + 'updateDialog.header.updateAvailable': 'Update verfügbar', + 'updateDialog.header.updating': 'OpenChamber wird aktualisiert...', + 'updateDialog.changelog.title': 'Was ist neu', + 'updateDialog.status.installingUpdate': 'Update wird installiert...', + 'updateDialog.status.serverRestarting': 'Server wird neu gestartet...', + 'updateDialog.status.waitingForServer': 'Warten auf Server...', + 'updateDialog.status.autoReloadHint': 'Die Seite wird automatisch neu geladen, wenn das Update abgeschlossen ist.', + 'updateDialog.fallback.updateViaTerminal': 'Oder aktualisieren über Terminal:', + 'updateDialog.actions.copyCommand': 'Befehl kopieren', + 'updateDialog.actions.copied': 'Kopiert!', + 'updateDialog.status.downloadingPayload': 'Update-Payload wird heruntergeladen...', + 'updateDialog.actions.downloadUpdate': 'Update herunterladen', + 'updateDialog.status.downloading': 'Herunterladen...', + 'updateDialog.actions.restartToUpdate': 'Neu starten zum Aktualisieren', + 'updateDialog.actions.updateNow': 'Jetzt aktualisieren', + 'updateDialog.actions.openMobileUpdate': 'Update öffnen', + 'updateDialog.status.updating': 'Aktualisierung läuft...', + 'updateDialog.error.updateFailed': 'Aktualisierung fehlgeschlagen', + 'updateDialog.error.takingLonger': 'Die Aktualisierung dauert länger als erwartet. Warten Sie einen Moment und aktualisieren Sie die Seite oder führen Sie folgenden Befehl aus: openchamber update', + 'mobileUpdate.toast.available.title': 'OpenChamber-Update verfügbar', + 'mobileUpdate.toast.available.description': 'Version {version} ist für Android bereit.', + 'mobileUpdate.toast.actions.download': 'Herunterladen', + 'mobileUpdate.toast.actions.dismiss': 'Ablehnen', + 'opencodeUpdate.toast.available.title': 'OpenCode-Update', + 'opencodeUpdate.toast.available.description': 'Version {version} verfügbar.', + 'opencodeUpdate.toast.actions.update': 'Aktualisieren', + 'opencodeUpdate.toast.actions.dismiss': 'Ablehnen', + 'opencodeUpdate.toast.actions.reload': 'OpenCode neu laden', + 'opencodeUpdate.toast.upgrading.title': 'OpenCode wird aktualisiert...', + 'opencodeUpdate.toast.upgrading.description': 'Behalten Sie OpenChamber geöffnet.', + 'opencodeUpdate.toast.updated.title': 'OpenCode aktualisiert', + 'opencodeUpdate.toast.updated.description': 'Update installiert.', + 'opencodeUpdate.toast.updated.descriptionWithVersion': 'Version {version} installiert.', + 'opencodeUpdate.toast.failed.title': 'Konnte OpenCode nicht aktualisieren', + 'opencodeUpdate.toast.failed.description': 'Das OpenCode-Upgrade ist fehlgeschlagen.', + 'opencodeUpdate.toast.reload.message': 'OpenCode wird neu gestartet...', + 'memoryDebugPanel.title': 'Debug Panel', + 'memoryDebugPanel.tabs.memory': 'Speicher', + 'memoryDebugPanel.tabs.streaming': 'Streaming', + 'memoryDebugPanel.section.sessionsInMemory': 'Sitzungen im Speicher', + 'memoryDebugPanel.section.uiStreamingMetrics': 'UI-Streaming-Metriken', + 'memoryDebugPanel.section.vscodeBridgeMetrics': 'VS Code Bridge Metriken', + 'memoryDebugPanel.section.noUiSamples': 'Noch keine UI-Streaming-Proben. Starten Sie einen Stream und lassen Sie dieses Panel geöffnet.', + 'memoryDebugPanel.section.noVscodeSamples': 'Noch keine VS Code Bridge Proben.', + 'memoryDebugPanel.metric.totalMessages': 'Gesamte Nachrichten', + 'memoryDebugPanel.metric.cachedSessions': 'Zwischengespeicherte Sitzungen', + 'memoryDebugPanel.metric.userMessages': 'Benutzernachrichten', + 'memoryDebugPanel.metric.assistantMessages': 'Assistentennachrichten', + 'memoryDebugPanel.metric.viewportWindow': 'Viewport-Fenster', + 'memoryDebugPanel.metric.zombieTimeout': 'Zombie-Timeout', + 'memoryDebugPanel.metric.githubTotalRequests': 'GitHub Gesamtanfragen', + 'memoryDebugPanel.metric.metrics': 'Metriken', + 'memoryDebugPanel.metric.samples': 'Proben', + 'memoryDebugPanel.metric.lastUpdate': 'Letzte Aktualisierung', + 'memoryDebugPanel.metric.uiMetrics': 'UI-Metriken', + 'memoryDebugPanel.metric.vscodeMetrics': 'VS Code Metriken', + 'memoryDebugPanel.metric.messageListRenders': 'MsgList Rendern', + 'memoryDebugPanel.metric.messageListStreamRenders': 'MsgList Stream Rendern', + 'memoryDebugPanel.metric.chatMessageRenders': 'ChatMessage Rendern', + 'memoryDebugPanel.metric.chatMessageStreamRenders': 'ChatMessage Stream Rendern', + 'memoryDebugPanel.metric.chatMessageStaticDuringStream': 'ChatMessage statisch während Stream', + 'memoryDebugPanel.metric.chatMessageStaticOutsideActiveTurn': 'ChatMessage statisch außerhalb aktiver Runde', + 'memoryDebugPanel.metric.messagesValue': '{count} Nachrichten', + 'memoryDebugPanel.metric.minutesValue': '{count} Minuten', + 'memoryDebugPanel.metric.msgsValue': '{count} msgs', + 'memoryDebugPanel.metric.roleMsgsValue': 'U {user} / A {assistant}', + 'memoryDebugPanel.metric.countValue': 'count {value}', + 'memoryDebugPanel.metric.avgValue': 'avg {value}', + 'memoryDebugPanel.metric.maxValue': 'max {value}', + 'memoryDebugPanel.metric.totalValue': 'total {value}', + 'memoryDebugPanel.actions.logState': 'Status protokollieren', + 'memoryDebugPanel.actions.copyJson': 'JSON kopieren', + 'memoryDebugPanel.tooltip.logCurrentState': 'Aktuellen Speicherstatus in die Browser-Konsole protokollieren', + 'memoryDebugPanel.streaming.copy.copied': 'Streaming-Debug-JSON kopiert', + 'memoryDebugPanel.streaming.copy.failed': 'Fehler beim Kopieren der JSON-Datei', + 'memoryDebugPanel.streaming.copy.hint': 'Kopieren exportiert sowohl UI- als auch VS Code-Streaming-Metriken als JSON', + 'memoryDebugPanel.common.idle': 'inaktiv', + 'memoryDebugPanel.common.live': 'live', + 'memoryDebugPanel.common.notAvailable': 'n/a', + 'memoryDebugPanel.common.untitled': 'Unbenannt', + 'directoryTree.field.newDirectoryPlaceholder': 'neues_verzeichnis', + 'textarea.resizeHandleAria': 'Größe des Textbereichs ändern', + 'sidebar.resize.leftPanelAria': 'Größe des linken Panels ändern', + 'sidebar.resize.rightPanelAria': 'Größe des rechten Panels ändern', + 'mainLayout.mobile.closeDrawerAria': 'Drawer schließen', + 'sortableTabsStrip.aria.tabs': 'Tabs', + 'openChamberLogo.aria.logo': 'OpenChamber-Logo', + 'markdownRenderer.code.actions.copyTitle': 'Code kopieren', + 'markdownRenderer.code.actions.copiedTitle': 'Kopiert', + 'markdownRenderer.table.actions.copyTitle': 'Tabelle kopieren', + 'markdownRenderer.code.actions.enableWrapTitle': 'Zeilenumbruch aktivieren', + 'markdownRenderer.code.actions.disableWrapTitle': 'Zeilenumbruch deaktivieren', + 'markdownRenderer.table.actions.downloadTitle': 'Tabelle herunterladen', + 'markdownRenderer.table.toast.downloadedAsFormat': 'Tabelle als {format} heruntergeladen', + 'markdownRenderer.mermaid.actions.copyTitle': 'Kopieren', + 'markdownRenderer.mermaid.actions.copySourceTitle': 'Quelle kopieren', + 'markdownRenderer.mermaid.actions.downloadSvgTitle': 'SVG herunterladen', + 'markdownRenderer.mermaid.actions.zoomInTitle': 'Vergrößern', + 'markdownRenderer.mermaid.actions.zoomOutTitle': 'Verkleinern', + 'markdownRenderer.mermaid.actions.resetViewTitle': 'Ansicht zurücksetzen', + 'markdownRenderer.mermaid.toast.downloadFailed': 'Fehler beim Herunterladen des Diagramms', + 'common.date.today': 'Heute', + 'common.date.yesterday': 'Gestern', + 'common.date.yesterdayWithTime': 'Gestern {time}', + 'common.relative.justNow': 'Gerade jetzt', + 'common.relative.minutesAgoShort': '{count}min her', + 'common.relative.hoursAgoShort': '{count}h her', + 'common.relative.daysAgoShort': '{count}d her', + 'common.relative.weeksAgoShort': '{count}w her', + 'common.relative.yearsAgoShort': '{count}y her', + 'common.relative.daysAgoCompact': '{count}d her', + 'common.relative.weeksAgoCompact': '{count}w her', + 'common.relative.yearsAgoCompact': '{count}y her', + 'contextFileOpen.failure.tooLarge': 'Datei ist zu groß zum Öffnen (>{count} Zeilen)', + 'contextFileOpen.failure.missing': 'Datei nicht gefunden', + 'contextFileOpen.failure.unreadable': 'Fehler beim Öffnen der Datei', + 'quota.window.5h': '5-Stunden-Limit', + 'quota.window.7d': '7-Tage-Limit', + 'quota.window.7dSonnet': '7-Tage Sonnet-Limit', + 'quota.window.7dOpus': '7-Tage Opus-Limit', + 'quota.window.weekly': 'Wöchentliches Limit', + 'quota.window.daily': 'Täglich', + 'quota.window.monthly': 'Monatliches Limit', + 'quota.window.credits': 'Credits', + 'quota.window.creditsBalance': 'Kreditguthaben', + 'quota.window.billingCycle': 'Abrechnungszyklus', + 'quota.window.auto': 'Automatisch', + 'quota.window.api': 'API', + 'quota.window.planLimit': 'Planlimit', + 'quota.window.onDemand': 'On-Demand', + 'quota.window.session': 'Sitzung', + 'quota.window.premium': 'Premium-Interaktionen', + 'quota.window.chat': 'Chat-Anfragen', + 'quota.window.completions': 'Vervollständigungen', + 'quota.window.premiumInteractions': 'Premium-Interaktionen', +}; diff --git a/packages/ui/src/lib/i18n/messages/en.ts b/packages/ui/src/lib/i18n/messages/en.ts index 12e193ca..2ee50506 100644 --- a/packages/ui/src/lib/i18n/messages/en.ts +++ b/packages/ui/src/lib/i18n/messages/en.ts @@ -5,6 +5,7 @@ export const dict = { 'common.loading': 'Loading...', 'common.unavailable': 'Unavailable', 'common.language.english': 'English', + 'common.language.german': 'German', 'common.language.french': 'French', 'common.language.simplifiedChinese': 'Chinese (Simplified)', 'common.language.traditionalChinese': 'Chinese (Traditional)', diff --git a/packages/ui/src/lib/i18n/runtime.ts b/packages/ui/src/lib/i18n/runtime.ts index a80ad5a0..983ea2ca 100644 --- a/packages/ui/src/lib/i18n/runtime.ts +++ b/packages/ui/src/lib/i18n/runtime.ts @@ -1,6 +1,6 @@ -export type Locale = 'en' | 'fr' | 'zh-CN' | 'zh-TW' | 'uk' | 'es' | 'pt-BR' | 'ko' | 'pl' | 'ja'; +export type Locale = 'en' | 'de' | 'fr' | 'zh-CN' | 'zh-TW' | 'uk' | 'es' | 'pt-BR' | 'ko' | 'pl' | 'ja'; -export const LOCALES = ['en', 'fr', 'zh-CN', 'zh-TW', 'uk', 'es', 'pt-BR', 'ko', 'pl', 'ja'] as const satisfies readonly Locale[]; +export const LOCALES = ['en', 'de', 'fr', 'zh-CN', 'zh-TW', 'uk', 'es', 'pt-BR', 'ko', 'pl', 'ja'] as const satisfies readonly Locale[]; export const DEFAULT_LOCALE: Locale = 'en'; @@ -14,6 +14,7 @@ export const LOCALE_LABEL_KEYS: Record { ? await import('./messages/ko') as { dict: I18nDictionary } : locale === 'pl' ? await import('./messages/pl') as { dict: I18nDictionary } - : locale === 'ja' + : locale === 'de' + ? await import('./messages/de') as { dict: I18nDictionary } + : locale === 'ja' ? await import('./messages/ja') as { dict: I18nDictionary } : { dict: enDict }; dictionaries.set(locale, mod.dict);