open-design/apps/web/src/i18n/locales/de.ts
chaoxiaoche fce444bcab
Consolidate chat comments preview on main (#2906)
* feat(web): queue chat sends

* feat(web): render code comment directives

* feat(web): add preview comments and manual edits

* fix(web): polish shared chrome controls

* fix(web): align queued send loading state

* feat(web): open primary project artifacts

* fix(web): keep queued sends and tests aligned

* fix(web): restore docked comment tools layout

* fix(web): align preview comment toolbar

* fix(web): place local cli beside handoff

* fix(web): move agent menu beside handoff

* fix(web): make project instructions a direct header action

* fix(web): compact handoff and toolbar labels

* fix(web): clarify handoff menu and annotation label

* fix(web): restore compact cursor handoff trigger

* fix(web): align agent menu trigger with handoff

* fix(web): add draw toolbar close action

* fix(web): move inspect editing into edit mode

* fix(web): avoid reserving comment sidebar in annotation mode

* fix(web): float preview comments panel

* fix(web): keep edit canvas full width

* fix(web): polish preview annotation tools

* fix(web): highlight active preview comments

* fix(web): open comments panel after annotation save

* fix(web): polish comment handoff controls

* fix(web): remove palette preview tool

* fix(web): simplify draw annotation toolbar

* fix(web): restore queued tasks into composer

* fix(web): restore queued send strip styling

* fix(web): hide internal comment target ids

* fix(web): align manual edit panel header

* test(web): cover visual interaction contracts

* fix(web): address PR feedback regressions

* fix(web): preserve artifact chrome state

* fix(daemon): restore project raw file routes

---------

Co-authored-by: chaoxiaoche <chaoxiaoche@chaoxiaochedeMacBook-Pro.local>
Co-authored-by: mrcfps <mrc@powerformer.com>
2026-05-26 10:31:19 +00:00

1618 lines
92 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import type { Dict } from '../types';
import { en } from './en';
export const de: Dict = {
...en,
'workingDirPicker.title': "Folder",
'workingDirPicker.homeTitle': "Choose where this project should live",
'workingDirPicker.processing': "Processing…",
'workingDirPicker.select': "Choose working directory",
'workingDirPicker.clearAria': "Clear working directory",
'workingDirPicker.replaceFailed': "Could not replace working directory",
'workingDirPicker.unavailable': "Folder picker is unavailable in this build. Run the desktop app to pick a folder.",
'workingDirPicker.openUnavailable': "Open this project in the desktop app to show the folder.",
'workingDirPicker.openFailed': "Could not show this folder",
'workingDirPicker.showInFileManager': "Show in file manager",
'workingDirPicker.replace': "Clear and replace directory…",
'workingDirPicker.recent': "Recent directories",
'handoff.toTarget': 'Hand off to {target}',
'handoff.action': 'Hand off',
'handoff.fallbackTitle': 'No editors found on $PATH - opens in {target}',
'handoff.chooseTargetAria': 'Choose hand-off target',
'handoff.notInstalled': 'Not installed',
'handoff.notDetectedTitle': '{target} - not detected on $PATH',
'homeHero.promptExamples': "Beispiele",
'homeHero.footer.designSystem': "Stil",
'homeHero.footer.autoDesignSystem': "Auto",
'homeHero.footer.autoDesignSystemSummary': "Wählt automatisch das passende Designsystem und den visuellen Stil für den aktuellen Prompt.",
'homeHero.footer.ratio': "Format",
'homeHero.footer.duration': "Dauer",
'homeHero.footer.resolution': "Auflösung",
'homeHero.footer.speakerNotes': "Notes",
'homeHero.footer.noSpeakerNotes': "Keine Notizen",
'homeHero.footer.availableCount': "{n} available",
'homeHero.footer.noMatches': "No matches",
'homeHero.moreShortcuts': "Mehr",
'common.cancel': 'Abbrechen',
'common.save': 'Speichern',
'common.close': 'Schließen',
'common.delete': 'Löschen',
'common.rename': 'Umbenennen',
'common.edit': 'Bearbeiten',
'common.preview': 'Vorschau',
'common.share': 'Teilen',
'common.search': 'Suchen',
'common.searchEllipsis': 'Suchen…',
'common.loading': 'Wird geladen…',
'common.all': 'Alle',
'common.none': 'Keine',
'common.default': 'Standard',
'common.installed': 'installiert',
'common.notInstalled': 'nicht installiert',
'common.active': 'aktiv',
'common.offline': 'offline',
'common.selected': 'ausgewählt',
'common.create': 'Erstellen',
'common.openPreview': 'Vorschau öffnen',
'common.exitFullscreen': 'Vollbild verlassen',
'common.fullscreen': 'Vollbild',
'common.openInNewTab': 'In neuem Tab öffnen',
'common.exportPdf': 'Als PDF exportieren',
'common.exportZip': 'Als .zip herunterladen',
'common.exportHtml': 'Als eigenständiges HTML exportieren',
'common.justNow': 'gerade eben',
'common.minutesAgo': 'vor {n} Min.',
'common.hoursAgo': 'vor {n} Std.',
'common.daysAgo': 'vor {n} T.',
'common.weeksAgo': 'vor {n} Wo.',
'common.now': 'jetzt',
'common.minutesShort': '{n} Min.',
'common.hoursShort': '{n} Std.',
'common.daysShort': '{n} T.',
'common.untitled': 'Ohne Titel',
'app.brand': 'Open Design',
'app.brandPill': 'Forschungsvorschau',
'app.brandSubtitle': 'von Nexu Labs',
'app.welcomeLoading': 'Workspace wird geladen…',
'settings.welcomeKicker': "",
'settings.welcomeTitle': "Welcome",
'settings.welcomeSubtitle': "",
'settings.onboardingCreateTitle': 'Start from a brief',
'settings.onboardingCreateBody':
'Describe the site, app, deck, image, or video you want. Open Design will create a project and keep the work editable.',
'settings.onboardingMemoryTitle': 'Save working context',
'settings.onboardingMemoryBody':
'Add preferences, project facts, and recurring rules so future chats pick up the right context.',
'settings.onboardingSystemsTitle': 'Bring your design system',
'settings.onboardingSystemsBody':
'Pick or create a brand system so generated work follows real colors, typography, and product language.',
'settings.onboardingExecutionTitle': 'Choose how generation runs',
'settings.onboardingExecutionBody':
'Use a local CLI agent or connect your own API key. You can change this any time in Settings.',
'settings.onboardingStepConnect': "Connect",
'settings.onboardingStepDesignSystem': "Design system",
'settings.onboardingStepProfile': "About you",
'settings.onboardingConnectTitle': "Choose a runtime",
'settings.onboardingConnectBody': "",
'settings.onboardingRecommended': "Recommended",
'settings.onboardingLocalTitle': "Local coding agent",
'settings.onboardingLocalBody': "Use an installed CLI such as Claude Code, Codex, Cursor, Gemini, or OpenCode.",
'settings.onboardingLocalAction': "Open CLI settings",
'settings.onboardingCliScanHint': "This usually takes 5-10 seconds.",
'settings.onboardingByokTitle': "Bring your own key",
'settings.onboardingByokBody': "Use your own model provider credentials.",
'settings.onboardingByokAction': "Open BYOK settings",
'settings.onboardingDesignTitle': "Design system",
'settings.onboardingDesignBody': "Generate once, reuse everywhere.",
'settings.onboardingDesignIntroGenerateTitle': "Generate from existing work",
'settings.onboardingDesignIntroGenerateBody': "Upload your design system from GitHub or local code repositories, Figma files, images, and other content assets.",
'settings.onboardingDesignIntroReuseTitle': "Reuse in future work",
'settings.onboardingDesignIntroReuseBody': "Future prototypes, slides, and other content can reference your existing fonts, spacing, logo style, and color tone.",
'settings.onboardingDesignIntroSkipTitle': "Optional for now",
'settings.onboardingDesignIntroSkipBody': "Skip this step if you want to start without generating a design system.",
'settings.onboardingGithubTitle': "Import from GitHub",
'settings.onboardingGithubBody': "Use a frontend repository.",
'settings.onboardingUploadTitle': "Upload local files",
'settings.onboardingUploadBody': "Add project files, screenshots, CSS, docs, or assets.",
'settings.onboardingPromptTitle': "Generate from prompt",
'settings.onboardingPromptBody': "Describe the product or brand.",
'settings.onboardingProfileTitle': "About you",
'settings.onboardingProfileBody': "Optional details for better defaults.",
'settings.onboardingRoleLabel': "Your role",
'settings.onboardingOrgSizeLabel': "Organization size",
'settings.onboardingUseCaseLabel': "Use case",
'settings.onboardingSourceLabel': "Where did you hear about us?",
'settings.onboardingSelectPlaceholder': "Select one",
'settings.onboardingSelectMultiplePlaceholder': "Select one or more",
'settings.onboardingOrgSolo': "Solo / personal (1)",
'settings.onboardingOrgTeam': "Small team (2-10)",
'settings.onboardingOrgStartup': "Startup / SMB (11-50)",
'settings.onboardingOrgGrowth': "Growth company (51-200)",
'settings.onboardingOrgMidMarket': "Mid-market (201-1000)",
'settings.onboardingOrgEnterprise': "Enterprise (1000+)",
'settings.onboardingRolePm': "📋 Product manager",
'settings.onboardingRoleDesigner': "🎨 Designer",
'settings.onboardingRoleEngineer': "💻 Engineer",
'settings.onboardingRoleMarketing': "📣 Marketing",
'settings.onboardingRoleGrowth': "📈 Growth",
'settings.onboardingRoleOps': "⚙️ Operations",
'settings.onboardingRoleFounder': "🚀 Founder / executive",
'settings.onboardingRoleStudent': "🎓 Student / educator",
'settings.onboardingRoleOther': "✨ Other",
'settings.onboardingUseProduct': "🎨 Product design",
'settings.onboardingUseDesignSystem': "🧩 Design system",
'settings.onboardingUsePrototype': "📱 Prototype / app UI",
'settings.onboardingUseLanding': "🌐 Landing pages",
'settings.onboardingUseAds': "📣 Ads / social content",
'settings.onboardingUseDashboard': "📊 Dashboards / internal tools",
'settings.onboardingUseDeck': "🖥️ Presentation / deck",
'settings.onboardingUseMarketing': "📈 Marketing / growth",
'settings.onboardingUseEngineering': "🤝 Engineering handoff",
'settings.onboardingUseAgency': "💼 Agency / client work",
'settings.onboardingSourceGithub': "🐙 GitHub",
'settings.onboardingSourceFriend': "👥 Friend or coworker",
'settings.onboardingSourceSocial': "📱 Social media",
'settings.onboardingSourceProductHunt': "🅿️ Product Hunt",
'settings.onboardingSourceCommunity': "💬 Design / AI community",
'settings.onboardingSourceYoutube': "▶️ YouTube",
'settings.onboardingSourceBlog': "📰 Blog or newsletter",
'settings.onboardingSourceAiTool': "✨ AI tool recommendation",
'settings.onboardingSourceSearch': "🔍 Search",
'settings.onboardingSourceEvent': "🎤 Event or community",
'settings.onboardingBack': "Back",
'settings.onboardingContinue': "Continue",
'settings.onboardingFinish': "Finish setup",
'settings.onboardingSkip': "Skip for now",
'settings.kicker': 'Einstellungen',
'settings.title': 'Ausführungsmodus',
'settings.subtitle': 'Wählen Sie zwischen lokaler CLI und BYOK.',
'settings.modeAria': 'Ausführungsmodus',
'settings.protocolAria': 'API-Protokoll',
'settings.modeDaemon': 'Lokale CLI',
'settings.modeDaemonHelp': 'Über eine Code-Agent-CLI auf Ihrem Rechner ausführen',
'settings.modeDaemonOffline': 'Daemon läuft nicht',
'settings.modeDaemonOfflineMeta': 'Daemon offline',
'settings.modeDaemonInstalledMeta': '{count} installiert',
'settings.modeApi': 'API-Anbieter',
'settings.modeApiMeta': 'BYOK',
'settings.codeAgent': 'Code-Agent',
'settings.codeAgentHint':
'Durch Scannen Ihres PATH erkannt. Wählen Sie die CLI, über die Generierungen laufen sollen.',
'settings.rescan': '↻ Neu scannen',
'settings.rescanTitle': 'PATH erneut scannen',
'settings.rescanRunning': 'Scannen...',
'settings.rescanSuccess': 'Scan abgeschlossen. {count} verfuegbar.',
'settings.designSystemRenameFailed': 'Umbenennen fehlgeschlagen. Pruefen Sie den Daemon und versuchen Sie es erneut.',
'settings.rescanFailed': 'Scan fehlgeschlagen. Pruefen Sie den Daemon und versuchen Sie es erneut.',
'settings.test': 'Test',
'settings.testTitle': 'Sende einen winzigen Testprompt, um die Verbindung zu pruefen',
'settings.testRunning': 'Verbindung wird geprueft…',
'settings.testCancel': 'Abbrechen',
'settings.testSuccessApi': 'Verbunden. Antwort in {ms} ms — \'{sample}\'',
'settings.testSuccessCli': '{agentName} antwortete in {ms} ms — \'{sample}\'',
'settings.testAuthFailed': 'Authentifizierung fehlgeschlagen. Pruefen Sie Ihren API-Schluessel.',
'settings.testForbidden': 'Zugriff verweigert. Pruefen Sie Konto, Region oder Organisation.',
'settings.testNotFoundModel': 'Modell \'{model}\' an diesem Endpunkt nicht gefunden.',
'settings.testInvalidModelId': 'Modell-ID \'{model}\' ist ungueltig. Benutzerdefinierte IDs muessen mit einem Buchstaben oder einer Zahl beginnen und duerfen keine Leerzeichen enthalten.',
'settings.testInvalidBaseUrl': 'Base URL ist ungueltig oder nicht erreichbar.',
'settings.testRateLimited': 'Anbieter hat den Test ratenbegrenzt. Konfiguration sieht gueltig aus.',
'settings.testUpstream': 'Anbieter antwortete mit {status}. Versuchen Sie es gleich erneut.',
'settings.testTimeout': 'Test abgebrochen nach {ms} ms.',
'settings.testAgentMissing': '{agentName} ist nicht installiert oder nicht im PATH.',
'settings.testAgentSpawn': '{agentName} konnte nicht gestartet werden: {detail}.',
'settings.testUnknown': 'Test fehlgeschlagen: {detail}',
'settings.agentInstall.install': 'Installieren',
'settings.agentInstall.docs': 'Doku',
'settings.agentInstall.pathHint':
'Wenn Sie eine CLI mit npm oder Homebrew installiert haben und sie weiterhin als nicht installiert angezeigt wird, stellen Sie sicher, dass das Bin-Verzeichnis der CLI im PATH enthalten ist, den der Open-Design-Daemon erbt (Terminal und GUI-Apps koennen sich unter macOS unterscheiden). Siehe QUICKSTART.md (Abschnitt "Local agent CLI and PATH").',
'settings.agentInstall.stepOpenLinks': 'Oeffnen Sie Installieren oder Doku fuer den gewuenschten Agenten.',
'settings.agentInstall.stepAuth':
'Authentifizieren Sie sich mit der Anbieter-CLI (anmelden oder API-Zugangsdaten setzen), bevor Sie zu Open Design zurueckkehren.',
'settings.agentInstall.stepRescan': 'Klicken Sie in diesem Bereich auf Neu scannen.',
'settings.agentInstall.stepSelect': 'Waehlen Sie die Agent-Karte aus, sobald sie als installiert angezeigt wird.',
'settings.noAgentsDetected':
'Noch keine Agents erkannt. Installieren Sie Claude Code, Codex, Devin for Terminal, Gemini CLI, OpenCode, Cursor Agent, Qwen oder GitHub Copilot CLI und klicken Sie dann auf Neu scannen.',
'settings.agentInstalledGroup': 'Ihre CLIs ({count})',
'settings.agentInstallGroup': 'Zur Installation verfügbar ({count})',
'settings.agentAuthRequired': 'Authentifizierung erforderlich',
'settings.agentAuthUnknown': 'Authentifizierungsstatus unbekannt',
'settings.apiSection': 'Anthropic API',
'settings.quickFillProvider': 'Anbieter schnell ausfüllen',
'settings.customProvider': 'Benutzerdefinierter Anbieter',
'settings.apiKey': 'API-Key',
'settings.showKey': 'Key anzeigen',
'settings.hideKey': 'Key ausblenden',
'settings.show': 'Anzeigen',
'settings.hide': 'Ausblenden',
'settings.model': 'Modell',
'settings.suggestedModelsHint':
'Dies sind vorgeschlagene Modelle für dieses Protokoll. Ihr Anbieter kann andere Modelle unterstützen.',
'settings.baseUrl': 'Base URL',
'settings.baseUrlInvalid': 'Geben Sie eine gültige öffentliche http://- oder https://-URL ein. Localhost ist erlaubt; private Netzwerk-IPs werden blockiert.',
'settings.baseUrlCustomize': 'Anpassen',
'settings.baseUrlDefaultHint': 'Standard-Endpunkt. Normalerweise muss dies nicht geändert werden.',
'settings.azureBaseUrlPlaceholder': 'https://my-resource.openai.azure.com',
'settings.azureBaseUrlHint': 'Find this in Azure portal → your resource → Endpoint.',
'settings.azureDeploymentModel': 'Deployment-Name',
'settings.azureDeploymentModelHint':
'Fuer Azure OpenAI wird dieses Feld als Deployment-Name in /openai/deployments/<model> verwendet. Geben Sie den in Azure angelegten Deployment-Namen ein.',
'settings.apiVersion': 'API-Version',
'settings.byokImageModel': 'Bilderzeugungsmodell',
'settings.maxTokens': 'Max. Tokens (optional)',
'settings.maxTokensHint':
'Obergrenze für die Antwortlänge. Jedes Modell hat einen abgestimmten Standardwert (im Platzhalter sichtbar); leer lassen, um ihn zu verwenden, oder eine Zahl eingeben, um ihn zu überschreiben.',
'settings.apiHint': 'Anfragen werden über den lokalen Daemon-Proxy an die festgelegte Base URL gesendet. Der Schlüssel wird nur in diesem Browser gespeichert und mit Provider-Anfragen gesendet.',
'settings.skipForNow': 'Vorerst überspringen',
'settings.getStarted': 'Loslegen',
'settings.envConfigure': 'Ausführungsmodus',
'settings.localCli': 'Lokale CLI',
'settings.anthropicApi': 'Anthropic API',
'settings.noAgentSelected': 'kein Agent ausgewählt',
'settings.language': 'Sprache',
'settings.languageHint': 'Wechseln Sie die Sprache der Oberfläche. Wird in diesem Browser gespeichert.',
'settings.appearance': 'Erscheinungsbild',
'settings.appearanceHint': 'Hell, dunkel oder Systemeinstellung übernehmen.',
'settings.themeSystem': 'System',
'settings.themeLight': 'Hell',
'settings.themeDark': 'Dunkel',
'settings.agentModelHead': 'Modell für:',
'settings.modelPicker': 'Modell',
'settings.modelSourceLive': 'Live aus der CLI',
'settings.modelSourceFallback': 'Integrierte Liste',
'settings.reasoningPicker': 'Reasoning-Aufwand',
'settings.modelPickerHint':
'Wird aus der CLI geladen, wenn sie einen `models`-Befehl anbietet. „Standard“ überlässt die Auswahl der CLI-Konfiguration; mit „Benutzerdefiniert…“ können Sie jede von der CLI akzeptierte Modell-ID eingeben.',
'settings.modelPickerLiveHint':
'Modelle wurden aus der installierten CLI aktualisiert. Standard verwendet weiterhin die CLI-Konfiguration.',
'settings.modelPickerFallbackHint':
'Integrierte Standardwerte werden angezeigt. Klicken Sie auf Neu scannen, um Live-Modelle aus der CLI abzurufen.',
'settings.cliEnvTitle': 'CLI config locations',
'settings.cliEnvHint':
'Set non-secret config directories for packaged app runs and agent detection.',
'settings.cliEnvClaudeConfigDir': 'Claude Code config directory',
'settings.cliEnvClaudeBaseUrl': 'Claude proxy base URL',
'settings.cliEnvClaudeApiKey': 'Claude proxy API key',
'settings.cliEnvCodexHome': 'Codex home',
'settings.cliEnvCodexBin': 'Codex executable path',
'settings.cliEnvCodexBaseUrl': 'Codex/OpenAI proxy base URL',
'settings.cliEnvCodexApiKey': 'Codex/OpenAI proxy API key',
'settings.modelCustom': 'Benutzerdefiniert (unten eingeben)…',
'settings.modelCustomLabel': 'Benutzerdefinierte Modell-ID',
'settings.modelCustomPlaceholder': 'z. B. anthropic/claude-sonnet-4-6',
'settings.mediaProviders': 'Medienanbieter',
'settings.mediaProvidersHint':
'API-Keys für Bild-, Video- und Audiogenerierung. Lokal gespeichert und mit dem lokalen Daemon synchronisiert.',
'settings.mcpServerTitle': 'MCP-Server',
'settings.mcpServerHint': 'Stelle Open Design als MCP-Server für deinen Coding-Agent bereit.',
'settings.externalMcpTitle': 'Externes MCP',
'settings.externalMcpHint': 'MCP-Tools aus externen Diensten hinzufügen (Higgsfield, GitHub, …).',
'settings.mediaProviderApiKey': 'API-Key',
'settings.mediaProviderBaseUrl': 'Base URL',
'settings.mediaProviderConfigured': 'Konfiguriert',
'settings.mediaProviderUnset': 'Nicht gesetzt',
'settings.mediaProviderClear': 'Leeren',
'settings.mediaProviderClearConfirm': 'Gespeicherte {name}-Einstellungen löschen? Du musst sie erneut eingeben, um {name} zu nutzen.',
'settings.mediaProviderPlaceholder': 'API-Key einfügen',
'settings.mediaProviderBaseUrlPlaceholder': 'Standard-Base-URL überschreiben',
'settings.mediaProviderReload': 'Vom lokalen Daemon neu laden',
'settings.mediaProviderReloadError': 'Die Einstellungen der Medienanbieter konnten nicht vom lokalen Daemon neu geladen werden.',
'settings.mediaProviderReloadSuccess': 'Die Einstellungen der Medienanbieter wurden vom lokalen Daemon neu geladen.',
'settings.mediaProviderLoadError': 'Die Einstellungen der Medienanbieter konnten nicht vom lokalen Daemon geladen werden. Vorerst werden die im Browser gespeicherten Einstellungen verwendet.',
'settings.mediaProviderComingSoonHint': 'Wir verfolgen diese für die Roadmap; der Daemon liefert noch keinen Client, daher gibt es nichts zu konfigurieren.',
'settings.privacy': 'Privacy',
'settings.privacyHint': 'What data is shared with the Open Design team',
'settings.privacyConsentKicker': 'Help us improve Open Design',
'settings.privacyConsentLead': 'Open Design can share usage data with our team to help us improve. This includes:',
'settings.privacyConsentFooter': 'You can change either of these any time in Settings → Privacy. We never upload the contents of your generated artifact files.',
'settings.privacyConsentShare': 'Share usage data',
'settings.privacyConsentDecline': "Don't share",
'settings.privacyConsentAccept': 'I get it',
'settings.privacyConsentBannerFooter':
'Data sharing is on by default. You can turn it off any time in Settings → Privacy. We never upload the contents of your generated artifact files.',
'settings.privacyConsentPolicyLink': 'Read the privacy policy',
'settings.privacyMetrics': 'Anonymous metrics',
'settings.privacyMetricsHint': 'Run counts, token usage, error rate, duration. No prompts, no project data.',
'settings.privacyContent': 'Conversation content',
'settings.privacyContentHint': "Your prompts and the assistant's responses (truncated 8 KB / 16 KB). API keys, tokens, JWTs, emails, IPs, and credit-card numbers are stripped automatically before send.",
'settings.privacyArtifacts': 'Project artifacts manifest',
'settings.privacyArtifactsHint': 'Filenames, types, sizes of generated files. File contents are never sent.',
'settings.privacyInstallationId': 'Anonymous ID',
'settings.privacyOptedOut': 'opted out',
'settings.privacyDataDeletion': 'Delete my data',
'settings.privacyDataDeletionHint': 'Rotates your anonymous ID and stops sending. Existing traces age out under our retention policy.',
'settings.about': 'Info',
'settings.aboutHint': 'Version und Laufzeitdetails',
'settings.appVersion': 'Version',
'settings.appChannel': 'Kanal',
'settings.appRuntime': 'Laufzeit',
'settings.appPlatform': 'Plattform',
'settings.appArchitecture': 'Architektur',
'settings.runtimePackaged': 'Paketierte App',
'settings.runtimeDevelopment': 'Entwicklung',
'settings.versionUnavailable': 'Versionsdetails sind nicht verfügbar, solange der Daemon offline ist.',
'settings.installLatest': 'Neueste Version installieren',
'settings.alreadyLatest': 'Sie verwenden die neueste Version',
'entry.tabDesigns': 'Designs',
'entry.tabTemplates': 'Vorlagen',
'entry.tabDesignSystems': 'Designsysteme',
'entry.openSettingsTitle': 'Einstellungen',
'entry.openSettingsAria': 'Einstellungen öffnen',
'entry.resizeAria': 'Seitenleiste skalieren',
'entry.loadingWorkspace': 'Workspace wird geladen…',
'entry.useEverywhereTitle': 'Überall verwenden',
'entry.useEverywhereAria': 'Anleitung „Überall verwenden“ öffnen (CLI, MCP, HTTP, Skills)',
'entry.navNewProject': 'Neues Projekt',
'entry.navHome': 'Start',
'entry.navProjects': 'Projekte',
'entry.navDesignSystems': 'Design-Systeme',
'entry.helpAria': 'Hilfe',
'entry.helpMenuAria': 'Hilfemenü',
'entry.helpGetHelp': 'Hilfe auf GitHub',
'entry.helpSubmitFeature': 'Feature vorschlagen',
'entry.helpWhatsNew': 'Neuigkeiten',
'entry.helpDownloadDesktop': 'Desktop-App herunterladen',
'entry.githubStarLabel': 'Star',
'entry.githubStarTitle': 'Klicken, um uns auf GitHub einen Stern zu geben',
'entry.githubStarAria': 'Open Design auf GitHub einen Stern geben',
'entry.tabImageTemplates': 'Bildvorlagen',
'entry.tabVideoTemplates': 'Videovorlagen',
'promptTemplates.searchPlaceholder': 'Templates suchen…',
'promptTemplates.countLabel': '{n} Ergebnisse',
'promptTemplates.emptyImage': 'Noch keine Bild-Prompt-Templates installiert.',
'promptTemplates.emptyVideo': 'Noch keine Video-Prompt-Templates installiert.',
'promptTemplates.emptyNoMatch': 'Keine Templates passen zu Ihrer Suche.',
'promptTemplates.attributionFooter': 'Aus öffentlichen Prompt-Bibliotheken adaptiert. Jede Karte verlinkt zum ursprünglichen Autor.',
'promptTemplates.openPreviewTitle': 'Prompt und Vorschau öffnen',
'promptTemplates.sourcePrefix': 'Quelle:',
'promptTemplates.fetchError': 'Dieser Template-Inhalt konnte nicht geladen werden.',
'promptTemplates.promptLabel': 'Prompt-Text',
'promptTemplates.copyPrompt': 'Prompt kopieren',
'promptTemplates.copyDone': 'Kopiert!',
'promptTemplates.modelHint': 'Vorgeschlagenes Modell: {model}',
'promptTemplates.openSource': 'Original anzeigen',
'promptTemplates.openFullscreen': 'Vollbildvorschau öffnen',
'promptTemplates.closeFullscreen': 'Vollbildvorschau schließen',
'promptTemplates.allSources': 'Alle Quellen',
'promptTemplates.sourceFilterAria': 'Nach Quelle filtern',
'promptTemplates.retry': 'Erneut versuchen',
'newproj.tabPrototype': 'Prototyp',
'newproj.tabDeck': 'Slide Deck',
'newproj.tabTemplate': 'Aus Template',
'newproj.tabMedia': 'Medien',
'newproj.tabOther': 'Andere',
'newproj.titlePrototype': 'Neuer Prototyp',
'newproj.titleDeck': 'Neues Slide Deck',
'newproj.titleTemplate': 'Mit Template starten',
'newproj.titleImage': 'Neues Bild',
'newproj.titleVideo': 'Neues Video',
'newproj.titleAudio': 'Neues Audio',
'newproj.titleMedia': 'Neue Medien',
'newproj.titleOther': 'Neues Projekt',
'newproj.namePlaceholder': 'Projektname',
'newproj.fidelityLabel': 'Detailgrad',
'newproj.fidelityWireframe': 'Wireframe',
'newproj.fidelityHigh': 'High Fidelity',
'newproj.toggleSpeakerNotes': 'Sprechernotizen verwenden',
'newproj.toggleSpeakerNotesHint': 'Weniger Text auf Slides — Gesprächspunkte in Notizen halten.',
'newproj.toggleAnimations': 'Animationen einbeziehen',
'newproj.toggleAnimationsHint':
'Bewegung (Einstiege, Hover, Übergänge) zusätzlich zum Template hinzufügen.',
'newproj.templateLabel': 'Template',
'newproj.noTemplatesTitle': 'Noch keine Templates',
'newproj.noTemplatesBody':
'Öffnen Sie ein Projekt und nutzen Sie dann das Teilen-Menü im File Viewer, um es in ein Template umzuwandeln. Templates erscheinen hier.',
'newproj.savedTemplate': 'Gespeichertes Template',
'newproj.fileSingular': 'Datei',
'newproj.filePlural': 'Dateien',
'newproj.create': 'Erstellen',
'newproj.createFromTemplate': 'Aus Template erstellen',
'newproj.createDisabledTitle':
'Speichern Sie zuerst ein Projekt als Template (Teilen-Menü in einem beliebigen Projekt).',
'newproj.importClaudeZip': 'Claude Design ZIP importieren',
'newproj.importClaudeZipTitle': 'Einen Claude Design .zip-Export importieren',
'newproj.importingClaudeZip': 'Import läuft…',
'newproj.privacyFooter': 'Standardmäßig können nur Sie Ihr Projekt sehen.',
'newproj.designSystem': 'Designsystem',
'newproj.dsNoneFreeform': 'Keines — frei',
'newproj.dsNoneSubtitleEmpty': 'Keine System-Tokens, eigene Palette wählen',
'newproj.dsNoneSubtitleSelected': 'System-Tokens überspringen. Der Agent wählt eine eigene Palette.',
'newproj.dsCategoryFallback': 'Designsystem',
'newproj.dsSearch': 'Designsysteme suchen…',
'newproj.dsModeAria': 'Auswahlmodus',
'newproj.dsModeSingle': 'Einzeln',
'newproj.dsModeMulti': 'Mehrfach',
'newproj.dsNoneTitle': 'Keines — frei',
'newproj.dsNoneSub': 'System-Tokens überspringen. Der Agent wählt eine eigene Palette.',
'newproj.dsEmpty': 'Keine Designsysteme passen zu „{query}“.',
'newproj.dsFootSingular': 'dient nur als Inspiration.',
'newproj.dsFootPlural': 'dienen nur als Inspiration.',
'newproj.dsFootClear': 'Leeren',
'newproj.dsBadgeDefault': 'STANDARD',
'newproj.dsPrimaryFallback': 'Primär',
'newproj.surfaceImage': 'Bild',
'newproj.surfaceVideo': 'Video',
'newproj.surfaceAudio': 'Audio',
'newproj.modelLabel': 'Modell',
'newproj.modelSearch': 'Modelle suchen…',
'newproj.modelEmpty': 'Keine passenden Modelle.',
'newproj.modelRecommended': 'Empfohlen',
'newproj.modelMissingTitle': 'Modell auswählen',
'newproj.modelMissingSub': 'Wähle ein Modell für diese Oberfläche.',
'newproj.aspectLabel': 'Format',
'newproj.videoLengthLabel': 'Länge',
'newproj.videoLengthSeconds': '{n}s',
'newproj.audioKindLabel': 'Audiotyp',
'newproj.audioKindMusic': 'Musik',
'newproj.audioKindSpeech': 'Sprache / TTS',
'newproj.audioKindSfx': 'SFX',
'newproj.audioDurationLabel': 'Dauer',
'newproj.audioDurationSeconds': '{n}s',
'newproj.voiceLabel': 'Stimme',
'newproj.voicePlaceholder': 'Provider-Voice-ID, optional',
'newproj.promptTemplateLabel': 'Referenzvorlage',
'newproj.promptTemplateNoneTitle': 'Keine — eigene schreiben',
'newproj.promptTemplateNoneSub': 'Galerie überspringen und eigenes Briefing verfassen',
'newproj.promptTemplateRefSub': 'Referenzvorlage',
'newproj.promptTemplateSearch': 'Vorlagen suchen…',
'newproj.promptTemplateEmpty': 'Für dieses Format sind noch keine Vorlagen installiert.',
'newproj.promptTemplateBodyLabel': 'Prompt (kann angepasst werden)',
'newproj.promptTemplateOptimizeHint':
'Beliebig editierbar — deine Änderungen fließen in das Agenten-Briefing ein.',
'newproj.promptTemplateBodyEmpty':
'Leerer Body — der Agent erhält keine Vorlagenreferenz.',
'newproj.deleteTemplateTitle': 'Template löschen',
'newproj.deleteTemplateConfirm': '„{name}" löschen? Dies kann nicht rückgängig gemacht werden.',
'newproj.deleteTemplateConfirmCta': 'Template löschen',
'newproj.deleteTemplateError':
'Dieses Template konnte nicht gelöscht werden. Bitte erneut versuchen.',
'designs.subRecent': 'Aktuell',
'designs.subYours': 'Ihre Designs',
'designs.filterAria': 'Projekte filtern',
'designs.searchPlaceholder': 'Suchen…',
'designs.emptyNoProjects': 'Noch keine Projekte. Erstellen Sie links eines.',
'designs.emptyNoMatch': 'Keine Projekte passen zu Ihrer Suche.',
'designs.deleteTitle': 'Projekt löschen',
'designs.deleteConfirm': '„{name}“ löschen?',
'designs.cardFreeform': 'frei',
'designs.status.notStarted': 'Nicht gestartet',
'designs.status.queued': 'In Warteschlange',
'designs.status.running': 'Läuft',
'designs.status.awaitingInput': 'Eingabe nötig',
'designs.status.succeeded': 'Abgeschlossen',
'designs.status.published': 'Veröffentlicht',
'designs.status.failed': 'Fehlgeschlagen',
'designs.status.canceled': 'Abgebrochen',
'designs.viewToggleAria': 'Ansichtsmodus',
'designs.viewGrid': 'Rasteransicht',
'designs.viewKanban': 'Board-Ansicht',
'designs.kanbanEmptyColumn': 'Keine Designs',
'designs.deleteAria': 'Projekt {name} löschen',
'designs.menuMore': 'More actions',
'designs.menuRename': 'Rename',
'designs.menuDelete': 'Delete',
'designs.renamePrompt': 'New name for "{name}"',
'designs.selectMode': 'Select',
'designs.cancelSelect': 'Cancel',
'designs.deleteSelected': 'Delete selected',
'designs.selectedCount': '{n} selected',
'designs.deleteSelectedConfirm': 'Delete {n} project(s)?',
'designs.deleteSelectedSuccess': '{n} project(s) deleted successfully.',
'designs.deleteSelectedPartial': 'Deleted {deleted} project(s); {failed} failed.',
'designs.tagPrototype': 'Prototype',
'designs.tagLiveArtifact': 'Live Artifact',
'designs.tagSlide': 'Slide',
'designs.tagMedia': 'Media',
'designs.renameTitle': 'Rename project',
'designs.renameSave': 'OK',
'designs.renameCancel': 'Cancel',
'examples.typeLabel': 'Typ',
'examples.surfaceLabel': 'Oberfläche',
'examples.surfaceWeb': 'Web',
'examples.surfaceImage': 'Bild',
'examples.surfaceVideo': 'Video',
'examples.surfaceAudio': 'Audio',
'examples.scenarioLabel': 'Szenario',
'examples.modeAll': 'Alle',
'examples.modePrototypeDesktop': 'Prototypen · Desktop',
'examples.modePrototypeMobile': 'Prototypen · Mobil',
'examples.modeDeck': 'Folien',
'examples.modeDocument': 'Dokumente & Templates',
'examples.modeOrbit': 'Orbit',
'examples.modeLive': 'Live',
'examples.scenarioGeneral': 'Allgemein',
'examples.scenarioEngineering': 'Engineering',
'examples.scenarioProduct': 'Produkt',
'examples.scenarioDesign': 'Design',
'examples.scenarioMarketing': 'Marketing',
'examples.scenarioSales': 'Vertrieb',
'examples.scenarioFinance': 'Finanzen',
'examples.scenarioHr': 'Personal',
'examples.scenarioOperations': 'Betrieb',
'examples.scenarioSupport': 'Support',
'examples.scenarioLegal': 'Recht',
'examples.scenarioEducation': 'Bildung',
'examples.scenarioPersonal': 'Persönlich',
'examples.emptyNoSkills': 'Keine Skills verfügbar. Läuft der Daemon?',
'examples.searchPlaceholder': 'Beispiele suchen…',
'examples.searchAria': 'Beispiele nach Namen suchen',
'examples.emptyNoMatch': 'Keine Beispiele passen zu diesen Filtern.',
'examples.openPreview': '⤢ Vorschau öffnen',
'examples.loadingPreview': 'Vorschau wird geladen…',
'examples.hoverPreview': 'Für Vorschau hovern',
'examples.usePrompt': 'Diesen Prompt verwenden',
'examples.previewModalTitle': 'Vollständige Vorschau öffnen (Modal)',
'examples.shareTitle': 'Dieses Beispiel teilen',
'examples.shareLoadFirst': 'Zuerst hovern, um die Vorschau zu laden',
'examples.unavailablePlaceholder': 'Keine mitgelieferte {kind}-Vorschau — öffnen für mehr Infos',
'examples.shareUnavailable': 'Keine mitgelieferte {kind}-Vorschau zum Teilen',
'examples.shareMenu': 'Teilen ▾',
'examples.exportPdfAllSlides': 'Als PDF exportieren (alle Slides)',
'examples.exportPptxLocked': 'Als PPTX exportieren… (zuerst Template öffnen)',
'examples.tagSlideDeck': 'Foliendeck',
'examples.tagTemplate': 'Template',
'examples.tagDesignSystem': 'Designsystem',
'examples.tagMobilePrototype': 'Mobiler Prototyp',
'examples.tagDesktopPrototype': 'Desktop-Prototyp',
'examples.tagImage': 'Bild',
'examples.tagVideo': 'Video',
'examples.tagAudio': 'Audio',
'examples.previewLabel': 'Vorschau',
'ds.surfaceLabel': 'Oberfläche',
'ds.surfaceWeb': 'Web',
'ds.surfaceImage': 'Bild',
'ds.surfaceVideo': 'Video',
'ds.surfaceAudio': 'Audio',
'ds.searchPlaceholder': 'Designsysteme suchen…',
'ds.emptyNoMatch': 'Keine Designsysteme passen zu Ihrer Suche.',
'ds.badgeDefault': 'STANDARD',
'ds.preview': 'Vorschau',
'ds.previewTitle': 'Designsystem-Vorschau',
'ds.categoryAll': 'Alle',
'ds.categoryUncategorized': 'Nicht kategorisiert',
'ds.showcase': 'Showcase',
'ds.tokens': 'Tokens',
'ds.specToggle': 'DESIGN.md',
'ds.specLoading': 'DESIGN.md wird geladen…',
'avatar.title': 'Konto & Einstellungen',
'avatar.localCli': 'Lokale CLI',
'avatar.anthropicApi': 'Anthropic API',
'avatar.useLocal': 'Lokale CLI verwenden',
'avatar.useApi': 'API · BYOK verwenden',
'avatar.codeAgent': 'Code-Agent',
'avatar.rescan': 'PATH neu scannen',
'avatar.settings': 'Einstellungen',
'avatar.backToProjects': 'Zurück zu Projekten',
'avatar.metaActive': 'aktiv',
'avatar.metaOffline': 'offline',
'avatar.metaSelected': 'ausgewählt',
'avatar.noAgentSelected': 'kein Agent ausgewählt',
'avatar.modelSection': 'Modell',
'avatar.modelLabel': 'Modell',
'avatar.reasoningLabel': 'Reasoning',
'avatar.customSuffix': '(benutzerdefiniert)',
'inlineSwitcher.chipTitle': 'CLI / Modell wechseln',
'inlineSwitcher.chipCli': 'Lokales CLI',
'inlineSwitcher.chipByok': 'BYOK',
'inlineSwitcher.modelDefault': 'Standard',
'inlineSwitcher.noAgent': 'kein Agent',
'inlineSwitcher.modeLabel': 'Modus',
'inlineSwitcher.agentLabel': 'Agent',
'inlineSwitcher.providerLabel': 'Anbieter',
'inlineSwitcher.modelLabel': 'Modell',
'inlineSwitcher.useCli': 'Lokales CLI verwenden',
'inlineSwitcher.useByok': 'Eigenen API-Schlüssel verwenden',
'inlineSwitcher.daemonOffline': 'Daemon offline — Einstellungen öffnen',
'inlineSwitcher.noAgentsDetected': 'Kein CLI im PATH gefunden',
'inlineSwitcher.openSettingsForModel': 'Anbieter in den Einstellungen konfigurieren',
'inlineSwitcher.missingApiKey': 'API-Schlüssel fehlt — in den Einstellungen ergänzen.',
'inlineSwitcher.openFullSettings': 'Ausführungseinstellungen öffnen',
'inlineSwitcher.customSuffix': '(benutzerdefiniert)',
'project.backToProjects': 'Zurück zu Projekten',
'project.metaFreeform': 'frei',
'project.resizeChatPanel': 'Größe des Chat-Bereichs ändern',
'project.instructionsActive': 'Aktiv in jeder Nachricht enthalten',
'chat.tabChat': 'Chat',
'chat.tabComments': 'Kommentare',
'chat.commentsSoon': 'Kommentare — demnächst',
'chat.comments.attached': 'Attached to chat',
'chat.comments.emptyAttached': 'No comments attached.',
'chat.comments.saved': 'Saved comments',
'chat.comments.emptySaved': 'No saved comments.',
'chat.comments.add': 'Add',
'chat.comments.addAll': 'Add all',
'chat.comments.remove': 'Remove',
'chat.comments.placeholder': 'Comment on this element…',
'chat.comments.addSend': 'Add & send',
'chat.comments.updateSend': 'Update & send',
'chat.comments.removeAttachment': 'Remove comment attachment',
'chat.comments.removeAttachmentAria': 'Remove comment attachment for {name}',
'chat.comments.comment': 'Kommentar',
'chat.comments.sendToChat': 'An Chat senden',
'chat.comments.sending': 'Wird gesendet…',
'chat.comments.edit': 'Bearbeiten',
'chat.comments.select': 'Auswählen',
'chat.comments.deselect': 'Abwählen',
'chat.comments.nSelected': '{n} ausgewählt',
'chat.comments.pin': 'Pin',
'chat.comments.addNote': 'Notiz hinzufügen',
'chat.comments.savedToast': 'Kommentar gespeichert',
'chat.comments.pinSavedToast': 'Pin gespeichert',
'chat.comments.pinAtCoords': 'bei {x}, {y}',
'chat.comments.capturedItems': '{n} erfasste Elemente',
'chat.comments.clear': 'Löschen',
'chat.inspect.noEditableTargets': 'This page has no editable elements yet.',
'chat.inspect.noCommentTargets': 'This page has no commentable elements yet.',
'chat.inspect.editHint': 'Click an element in the canvas to edit its styles.',
'chat.inspect.commentHint': 'Click an element in the canvas to add a comment.',
'chat.conversationsTitle': 'Konversationen',
'chat.conversationsAria': 'Konversationsverlauf',
'chat.newConversation': 'Neue Konversation',
'chat.newConversationsTitle': 'Neue Konversation',
'chat.conversationsHeading': 'Konversationen',
'chat.new': 'Neu',
'chat.emptyConversations': 'Noch keine Konversationen.',
'chat.deleteConversation': 'Konversation löschen',
'chat.renameConversationLabel': '„{title}“ umbenennen',
'chat.deleteConversationConfirm':
'„{title}“ löschen? Dadurch werden die Nachrichten entfernt.',
'chat.untitledConversation': 'Konversation ohne Titel',
'chat.startTitle': 'Konversation starten',
'chat.startHint': "Beschreiben Sie, was Sie generieren möchten, oder starten Sie mit einem dieser Beispiele:",
'chat.fillInputTitle': 'Klicken, um die Eingabe zu füllen',
'chat.jumpToLatest': 'Zur neuesten springen',
'chat.scrollToLatest': 'Zur neuesten scrollen',
'chat.you': 'Sie',
'chat.openFile': '{name} öffnen',
'chat.copyPrompt': 'Prompt kopieren',
'chat.copyDone': 'Kopiert!',
'chat.composerPlaceholder': "Beschreiben Sie, was Sie generieren möchten…",
'chat.composerHint': "⌘/Ctrl + Enter zum Senden · Ziel, Inhalt, Stil und Format angeben",
'chat.cliSettingsTitle': 'CLI- & Modelleinstellungen',
'chat.cliSettingsAria': 'CLI- und Modelleinstellungen öffnen',
'chat.attachTitle': 'Dateien anhängen (oder einfügen / ablegen)',
'chat.attachAria': 'Dateien anhängen',
'chat.importTitle': 'Quellen importieren (demnächst)',
'chat.importLabel': 'Importieren',
'chat.importComingSoon': 'Demnächst',
'chat.importSoon': 'Bald',
'chat.importFig': '.fig-Datei hochladen',
'chat.importGitHub': 'GitHub verbinden',
'chat.importWeb': 'Webelement erfassen',
'chat.importFolder': 'Code-Ordner verknüpfen',
'chat.importSkills': 'Skills und Designsysteme',
'chat.importProject': 'Reference another project',
'chat.linkedFolderRemoveAria': 'Verknüpften Ordner {path} entfernen',
'chat.linkedFolderNotFound': 'Ordner existiert nicht',
'chat.linkedFolderAlready': 'Dieser Ordner ist bereits verknüpft',
'chat.linkedFolderPickError': 'Ordnerauswahl konnte nicht geöffnet werden',
'chat.queuedHeader': 'Queued',
'chat.queuedToSend': 'to Send',
'chat.queuedEditQueuedTaskAria': 'Edit queued task',
'chat.queuedSave': 'Save',
'chat.queuedCancel': 'Cancel',
'chat.queuedEdit': 'Edit',
'chat.queuedMore': 'more queued',
'chat.queuedFollowUpFallback': 'Queued follow-up',
'chat.send': 'Senden',
'chat.stop': 'Stoppen',
'chat.removeAria': '{name} entfernen',
'chat.example1Title': 'Editorial Pitch Deck',
'chat.example1Tag': 'Magazin',
'chat.example1Prompt':
'Ein 10-Slide-Editorial-Pitch-Deck für ein Designstudio, das eine Seed-Runde aufnimmt — Swiss-Grid-Layout, übergroße Serif-Headlines mit markanten Initialen, Monospace-Abschnittsnummern, großzügiger Negativraum und Full-Bleed-Fotoslides im Wechsel mit textlastigen Slides. Cover, Vision, Markt, Produkt, Traction, Team, Ask, Kontakt.',
'chat.example2Title': 'SaaS-Analytics-Dashboard',
'chat.example2Tag': 'Daten',
'chat.example2Prompt':
'Ein dichtes Analytics-Dashboard für ein Developer-Tools-SaaS — KPI-Leiste mit Week-over-Week-Deltas, zwei gestapelte Liniendiagramme (MRR und aktive Workspaces), eine Welt-Heatmap der Nutzung, ein Kohorten-Retention-Raster, eine Top-Customers-Bestenliste und ein Echtzeit-Event-Feed. Dark Theme, tabellarische Monospace-Ziffern, Sparkline-Akzente.',
'chat.example3Title': 'Annual Report Long-Scroll',
'chat.example3Tag': 'Editorial',
'chat.example3Prompt':
'Ein interaktiver Annual Report für eine Klima-Non-Profit-Organisation — Long-Scroll-Editorial-Layout mit großen Pull-Quote-Blöcken, Datenvisualisierungen (gestapelte Balken, animierte Counter, Choropleth-Karte der Projektstandorte), Fotobrechern, Spenderwand und finalem Call-to-Action. Moderne Serifenschrift für Body, Sans-Serif-Chartlabels, erdige Papierpalette.',
'preview.shareMenu': 'Teilen ▾',
'preview.openInNewTab': 'In neuem Tab öffnen',
'preview.exit': '⤓ Beenden',
'preview.fullscreen': '⤢ Vollbild',
'preview.closeTitle': 'Schließen (Esc)',
'preview.loading': '{label} wird geladen…',
'preview.errorTitle': 'Beispiel konnte nicht geladen werden.',
'preview.errorBody': 'Das Beispiel-HTML konnte nicht abgerufen werden. Stelle sicher, dass Open Design läuft, und versuche es erneut.',
'preview.retry': 'Erneut versuchen',
'preview.unavailableTitle': 'Für diesen Skill ist keine Vorschau verfügbar.',
'preview.unavailableBody': 'Dieser Skill erzeugt {kind}-Output — führe den Prompt im Chat aus, um etwas zu erzeugen.',
'preview.showSidebar': '{label} einblenden',
'preview.hideSidebar': '{label} ausblenden',
'misc.savedTemplate': 'Gespeichertes Template',
'misc.primary': 'Primär',
'misc.designSystem': 'Designsystem',
'workspace.designFiles': 'Design-Dateien',
'workspace.focusMode': 'Focus workspace',
'workspace.showChat': 'Show chat',
'workspace.closeTab': 'Tab schließen',
'workspace.deleteFileConfirm': '„{name}“ aus dem Projektordner löschen?',
'workspace.deleteSelectedFilesConfirm': '{n} ausgewählte Datei(en) aus dem Projektordner löschen?',
'workspace.deleteSelectedFilesPartial': '{n} Datei(en) konnten nicht gelöscht werden.',
'workspace.openFromDesignFiles': 'Datei öffnen aus',
'workspace.designFilesLink': 'Design-Dateien',
'workspace.loadingSketch': 'Sketch wird geladen…',
'designFiles.title': 'Design-Dateien',
'designFiles.upload': 'Dateien hochladen',
'designFiles.pasteText': 'Als Textdatei einfügen',
'designFiles.newSketch': 'Neuer Sketch',
'designFiles.empty': 'Kreationen erscheinen hier',
'designFiles.refresh': 'Aktualisieren',
'designFiles.delete': 'Löschen',
'designFiles.searchPlaceholder': 'Dateien suchen…',
'designFiles.up': 'Nach oben',
'designFiles.back': 'Zurück',
'designFiles.crumbs': 'Projekt',
'designFiles.rowMenu': 'Zeilenmenü',
'designFiles.openInTab': 'In Tab öffnen',
'designFiles.download': 'Herunterladen',
'designFiles.downloadSelected': '{n} als ZIP herunterladen',
'designFiles.deleteSelected': '{n} löschen',
'designFiles.clearSelection': 'Auswahl aufheben',
'designFiles.selectPage': 'Alle auf dieser Seite auswählen',
'designFiles.selectAll': 'Alle auswählen',
'designFiles.dropTitle': '⤓ Dateien hier ablegen',
'designFiles.dropDesc':
'Bilder, Docs, Referenzen oder Ordner — der Agent nutzt sie als Kontext.',
'designFiles.upload.title': 'Dateien hochladen',
'designFiles.paste.title': 'Text als Datei einfügen',
'designFiles.upload.label': 'Hochladen',
'designFiles.paste.label': 'Einfügen',
'designFiles.previewOpen': 'Öffnen',
'designFiles.previewClose': 'Vorschau schließen',
'designFiles.modified': 'Geändert {time} · {size}',
'designFiles.weeksAgo': 'vor {n} W.',
'designFiles.groupBy': 'Gruppieren nach',
'designFiles.groupByKind': 'Typ',
'designFiles.groupByModified': 'Geändert',
'designFiles.expandGroup': 'Erweitern',
'designFiles.collapseGroup': 'Einklappen',
'designFiles.sectionPages': 'Seiten',
'designFiles.sectionScripts': 'Skripte',
'designFiles.sectionImages': 'Bilder',
'designFiles.sectionSketches': 'Sketches',
'designFiles.sectionOther': 'Andere',
'designFiles.modifiedToday': 'Heute',
'designFiles.modifiedYesterday': 'Gestern',
'designFiles.modifiedPrevious7Days': 'Letzte 7 Tage',
'designFiles.modifiedPrevious30Days': 'Letzte 30 Tage',
'designFiles.modifiedOlder': 'Älter',
'designFiles.showMore': '+{n} weitere anzeigen',
'designFiles.kindHtml': 'HTML-Seite',
'designFiles.kindImage': 'Bild',
'designFiles.kindSketch': 'Sketch',
'designFiles.kindText': 'Text',
'designFiles.kindCode': 'Skript',
'designFiles.kindPdf': 'PDF',
'designFiles.kindDocument': 'Dokument',
'designFiles.kindPresentation': 'Präsentation',
'designFiles.kindSpreadsheet': 'Tabellenblatt',
'designFiles.kindBinary': 'Binärdatei',
'designFiles.kindFolder': 'Ordner',
'designFiles.folderCount': '{n} Dateien',
'designFiles.colName': 'Name',
'designFiles.colKind': 'Art',
'designFiles.colModified': 'Geändert',
'designFiles.perPage': 'Anzeigen',
'designFiles.all': 'Alle',
'designFiles.prev': 'Zurück',
'designFiles.next': 'Weiter',
'designFiles.jumpToPage': 'Gehe zu Seite',
'designFiles.pageInfo': '{start}{end} von {total}',
'quickSwitcher.placeholder': 'Datei öffnen…',
'quickSwitcher.empty': 'Keine Dateien in diesem Projekt',
'quickSwitcher.noMatches': 'Keine Treffer',
'quickSwitcher.navigate': 'navigieren',
'quickSwitcher.open': 'öffnen',
'quickSwitcher.close': 'schließen',
'pasteDialog.title': 'Text einfügen',
'pasteDialog.hint': 'Wird im Projektordner gespeichert. Wählen Sie einen beliebigen Namen.',
'pasteDialog.fileNameLabel': 'Dateiname',
'pasteDialog.namePlaceholder': 'notes.txt',
'pasteDialog.contentLabel': 'Inhalt',
'pasteDialog.contentPlaceholder': 'Beliebigen Text einfügen…',
'pasteDialog.save': 'Speichern',
'pasteDialog.cancel': 'Abbrechen',
'sketch.save': 'Sketch speichern',
'sketch.cancel': 'Abbrechen',
'sketch.saving': 'Speichern…',
'sketch.saved': 'Gespeichert',
'sketch.tooltipDirty': 'Ungespeicherte Änderungen',
'sketch.tooltipClean': 'Gespeichert',
'fileViewer.empty': 'Wählen Sie eine Datei zur Ansicht aus.',
'fileViewer.loading': 'Wird geladen…',
'fileViewer.exportPptx': 'Als PPTX exportieren',
'fileViewer.openInNewTab': 'In neuem Tab öffnen',
'fileViewer.copyPath': 'Pfad kopieren',
'fileViewer.copied': 'Kopiert!',
'fileViewer.share': 'Teilen',
'fileViewer.binaryMeta': 'Binärdatei · {size}',
'fileViewer.binaryNote':
'Binärdatei ({size} Bytes). Laden Sie sie herunter oder öffnen Sie sie von der Festplatte, um sie zu prüfen.',
'fileViewer.pdfMeta': 'PDF · {size}',
'fileViewer.documentMeta': 'Dokument',
'fileViewer.presentationMeta': 'Präsentation',
'fileViewer.spreadsheetMeta': 'Tabellenblatt',
'fileViewer.previewUnavailable': 'Vorschau nicht verfügbar. Laden Sie die Datei herunter oder öffnen Sie sie zur Prüfung.',
'fileViewer.download': 'Herunterladen',
'fileViewer.open': 'Öffnen',
'fileViewer.imageMeta': 'Bild · {size}',
'fileViewer.reactMeta': 'React-Komponente · {size}',
'fileViewer.sketchMeta': 'Sketch · {size}',
'fileViewer.markdownStreamingMeta': 'Streaming-Vorschau…',
'fileViewer.markdownErrorMeta': 'Vorschau ist möglicherweise unvollständig (Generierungsfehler).',
'fileViewer.markdownStreamingStatus': 'Streaming… zeige partielles Markdown.',
'fileViewer.markdownErrorStatus': 'Generierungsfehler. Zeige letzten verfügbaren Inhalt.',
'fileViewer.videoMeta': 'Video · {size}',
'fileViewer.audioMeta': 'Audio · {size}',
'fileViewer.reload': 'Neu laden',
'fileViewer.reloadDisk': 'Von Festplatte neu laden',
'fileViewer.copy': 'Kopieren',
'fileViewer.copyTitle': 'Dateiinhalte kopieren',
'fileViewer.saveDisabled': 'Speichern (Read-only-Viewer)',
'fileViewer.save': 'Speichern',
'fileViewer.preview': 'Vorschau',
'fileViewer.source': 'Quelle',
'fileViewer.tweaks': 'Tweaks',
'fileViewer.tweaksUnavailable': 'Kein Tweaks-Panel in diesem Artefakt',
'fileViewer.jsxModuleTitle': 'Keine eigenständige Vorschau',
'fileViewer.jsxModuleBody': 'Diese Datei ist ein Komponentenmodul, das von einer anderen Seite geladen wird.',
'fileViewer.jsxModuleCta': 'Öffne die Seite, die es rendert:',
'fileViewer.comment': 'Kommentieren',
'fileViewer.edit': 'Bearbeiten',
'fileViewer.draw': 'Zeichnen',
'manualEdit.layers': "Layers",
'manualEdit.editableCount': "{count} editable",
'manualEdit.hiddenBadge': "Hidden",
'manualEdit.title': "Manual editor",
'manualEdit.selectLayer': "Select a layer",
'manualEdit.empty': "Click an element in the preview or choose a layer.",
'manualEdit.noEditableLayers': "No editable layers found.",
'manualEdit.noClass': "no class",
'manualEdit.tabsAria': "Manual edit tabs",
'manualEdit.tabContent': "Content",
'manualEdit.tabStyle': "Style",
'manualEdit.tabAttributes': "Attributes",
'manualEdit.tabHtml': "Html",
'manualEdit.tabSource': "Source",
'manualEdit.attributesJson': "Attributes JSON",
'manualEdit.selectedHtml': "Selected element HTML",
'manualEdit.fullSource': "Full artifact source",
'manualEdit.applyContent': "Apply Content",
'manualEdit.applyStyle': "Apply Style",
'manualEdit.applyAttributes': "Apply Attributes",
'manualEdit.applyHtml': "Apply HTML",
'manualEdit.applySource': "Apply Source",
'manualEdit.invalidAttributes': "Invalid attributes JSON.",
'manualEdit.changes': "Changes",
'manualEdit.undo': "Undo",
'manualEdit.redo': "Redo",
'manualEdit.noChanges': "No manual edits yet.",
'manualEdit.imageUrl': "Image URL",
'manualEdit.altText': "Alt text",
'manualEdit.label': "Label",
'manualEdit.text': "Text",
'manualEdit.href': "Href",
'manualEdit.textColor': "Text color",
'manualEdit.background': "Background",
'manualEdit.fontSize': "Font size",
'manualEdit.weight': "Weight",
'manualEdit.align': "Align",
'manualEdit.padding': "Padding",
'manualEdit.margin': "Margin",
'manualEdit.radius': "Radius",
'manualEdit.border': "Border",
'manualEdit.width': "Width",
'manualEdit.minHeight': "Min height",
'fileViewer.zoomOut': 'Verkleinern',
'fileViewer.zoomIn': 'Vergrößern',
'fileViewer.resetZoom': 'Zoom zurücksetzen',
'fileViewer.viewportAria': 'Preview viewport',
'fileViewer.viewportDesktop': 'Desktop',
'fileViewer.viewportDesktopTitle': 'Full-width desktop preview',
'fileViewer.viewportTablet': 'Tablet',
'fileViewer.viewportTabletTitle': 'Tablet preview at 820 × 1180 (modern portrait baseline)',
'fileViewer.viewportMobile': 'Mobile',
'fileViewer.viewportMobileTitle': 'Mobile preview at 390 × 844',
'fileViewer.reloadAria': 'Neu laden',
'fileViewer.previousSlide': 'Vorherige Slide',
'fileViewer.nextSlide': 'Nächste Slide',
'fileViewer.slideNavAria': 'Slide-Navigation',
'fileViewer.present': 'Präsentieren',
'fileViewer.presentInTab': 'In diesem Tab',
'fileViewer.presentFullscreen': 'Vollbild',
'fileViewer.presentNewTab': 'Neuer Tab',
'fileViewer.exitPresentation': 'Präsentation beenden',
'fileViewer.shareLabel': "Teilen",
'fileViewer.exportPdf': 'Als PDF exportieren',
'fileViewer.exportPdfAllSlides': 'Als PDF exportieren (alle Slides)',
'fileViewer.exportPptxBusy': 'Warten Sie, bis der aktuelle Turn abgeschlossen ist.',
'fileViewer.exportPptxHint':
'Senden Sie eine Anfrage an den Agent, um dieses Design in PPTX umzuwandeln.',
'fileViewer.exportPptxNa': 'PPTX-Export ist hier nicht verfügbar.',
'fileViewer.exportZip': 'Als .zip herunterladen',
'fileViewer.exportHtml': 'Als eigenständiges HTML exportieren',
'fileViewer.exportMd': 'Als Markdown exportieren',
'fileViewer.exportImage': 'Als Bild exportieren',
'fileViewer.exportImageFailed': 'Bildaufnahme fehlgeschlagen. Bitte versuchen Sie es erneut oder verwenden Sie das Screenshot-Tool Ihres Browsers.',
'fileViewer.exportJsx': 'Als JSX exportieren',
'fileViewer.exportReactHtml': 'Vorschau als HTML exportieren',
'fileViewer.saveAsTemplate': 'Als Template speichern…',
'fileViewer.savingTemplate': 'Template wird gespeichert…',
'fileViewer.savedTemplate': 'Als „{name}“ gespeichert',
'fileViewer.savedTemplateFail': 'Template konnte nicht gespeichert werden — bitte erneut versuchen.',
'fileViewer.templateNamePrompt': 'Template-Name',
'fileViewer.templateNameDefault': 'Template ohne Titel',
'fileViewer.templateDescPrompt':
'Kurze Beschreibung (optional — was macht dieses Template nützlich?)',
'fileViewer.deployToVercel': 'Auf Vercel deployen',
'fileViewer.redeployToVercel': 'Erneut deployen',
'fileViewer.deployingToVercel': 'Deployment auf Vercel…',
'fileViewer.deployProviderLabel': 'Anbieter',
'fileViewer.vercelProvider': 'Vercel',
'fileViewer.cloudflarePagesProvider': 'Cloudflare Pages',
'fileViewer.deployToProvider': 'Auf {provider} deployen',
'fileViewer.redeployToProvider': 'Erneut auf {provider} deployen',
'fileViewer.deployingToProvider': 'Deployment auf {provider}…',
'fileViewer.preparingPublicLink': 'Öffentlicher Link wird vorbereitet…',
'fileViewer.copyDeployLink': 'Link kopieren',
'fileViewer.deployModalTitle': 'Bereitstellen',
'fileViewer.deployModalSubtitle': 'Verwende das Konto des gewählten Anbieters, um diese HTML-Vorschau zu deployen.',
'fileViewer.vercelToken': 'Vercel Token',
'fileViewer.vercelTokenGetLink': 'Vercel Token abrufen',
'fileViewer.vercelTokenPlaceholder': 'Vercel Token einfügen',
'fileViewer.vercelTokenReuseHint': 'Gespeicherter Token wird verwendet. Gib einen neuen Token ein, um ihn zu ersetzen.',
'fileViewer.vercelTokenRequired': 'Gib zuerst einen Vercel Token ein und speichere ihn.',
'fileViewer.cloudflareApiToken': 'Cloudflare API-Token',
'fileViewer.cloudflareApiTokenGetLink': 'Cloudflare API-Token abrufen',
'fileViewer.cloudflareApiTokenPlaceholder': 'Cloudflare API-Token einfügen',
'fileViewer.cloudflareApiTokenReuseHint': 'Der gespeicherte Cloudflare API-Token wird verwendet. Gib einen neuen Token ein, um ihn zu ersetzen.',
'fileViewer.cloudflareApiTokenRequired': 'Gib zuerst einen Cloudflare API-Token ein und speichere ihn.',
'fileViewer.cloudflareApiTokenScopeHint': 'Pages Edit is required for deploys. Zone Read is required to list domains. DNS Edit is only needed when binding a custom domain.',
'fileViewer.vercelTeamId': 'Team-ID',
'fileViewer.vercelTeamSlug': 'Team-Slug',
'fileViewer.cloudflareAccountId': 'Account-ID',
'fileViewer.cloudflareAccountIdHint': 'Erforderlich. Die Account-ID findest du im Cloudflare-Dashboard.',
'fileViewer.cloudflareAccountIdRequired': 'Gib zuerst eine Cloudflare Account ID ein und speichere sie.',
'fileViewer.cloudflareZoneLabel': 'Domain',
'fileViewer.cloudflareZonePlaceholder': 'Save Cloudflare settings to load domains',
'fileViewer.cloudflareZoneRequired': 'Select a Cloudflare domain first.',
'fileViewer.cloudflareZonesLoading': 'Loading Cloudflare domains…',
'fileViewer.cloudflareZonesRefresh': 'Refresh domains',
'fileViewer.cloudflareZonesLoadFailed': 'Could not load Cloudflare domains.',
'fileViewer.cloudflareZonesEmpty': 'No active full Cloudflare domains were found for this account.',
'fileViewer.cloudflareDomainPrefixLabel': 'Subdomain prefix',
'fileViewer.cloudflareDomainPrefixPlaceholder': 'demo',
'fileViewer.cloudflareDomainPrefixInvalid': 'Use one DNS label only: lowercase letters, numbers, and hyphens.',
'fileViewer.cloudflareHostnamePreview': 'Custom domain preview: {hostname}',
'fileViewer.cloudflareCustomDomainHint': 'Optional: choose a Cloudflare domain and prefix to bind a custom subdomain. pages.dev will still be available.',
'fileViewer.cloudflarePagesDevLinkLabel': 'pages.dev URL',
'fileViewer.cloudflareCustomDomainLinkLabel': 'Custom domain',
'fileViewer.optional': 'Optional',
'fileViewer.vercelPreviewOnly': 'Deployments sind derzeit nur Preview-Deployments.',
'fileViewer.cloudflarePagesPreviewHint': 'Cloudflare Pages nutzt Direct Upload.',
'fileViewer.savingConfig': 'Speichern…',
'fileViewer.deployConfigSaveFailed': 'Vercel-Einstellungen konnten nicht gespeichert werden.',
'fileViewer.deployFailed': 'Deployment fehlgeschlagen. Prüfe die Vercel-Einstellungen und versuche es erneut.',
'fileViewer.deployProviderConfigSaveFailed': '{provider}-Einstellungen konnten nicht gespeichert werden.',
'fileViewer.deployProviderFailed': '{provider}-Deployment fehlgeschlagen. Prüfe die Einstellungen und versuche es erneut.',
'fileViewer.deployResultLabel': 'Deployment-URL',
'fileViewer.deployLinkReady': 'Bereit',
'fileViewer.deployLinkPreparingLabel': 'Öffentlicher Link ausstehend',
'fileViewer.deployLinkDelayed': 'Die Seite wurde deployt. Der Anbieter bereitet den öffentlichen Link noch vor.',
'fileViewer.deployLinkFailed': 'Benutzerdefinierte Domain fehlgeschlagen',
'fileViewer.deployLinkProtectedLabel': 'Deployment-Schutz aktiviert',
'fileViewer.deployLinkProtected': 'Die Seite wurde deployt, aber dieser Vorschau-Link erfordert eine Anmeldung. Deaktiviere Deployment Protection oder nutze eine eigene Domain.',
'fileViewer.retryLink': 'Jetzt erneut versuchen',
'questionForm.submit': 'Absenden',
'questionForm.skip': 'Überspringen',
'questionForm.locked': 'Beantwortet',
'conv.switch': 'Konversation wechseln',
'conv.label': 'Konversation',
'conv.heading': 'Konversationen',
'conv.new': '+ Neu',
'conv.empty': 'Noch keine Konversationen.',
'conv.untitled': 'Konversation ohne Titel',
'conv.renameTooltip': 'Doppelklicken zum Umbenennen',
'conv.delete': 'Konversation löschen',
'conv.deleteConfirm': '„{title}“ löschen? Dadurch werden die Nachrichten entfernt.',
'agentPicker.label': 'Agent',
'agentPicker.modeChoose': 'Ausführungsmodus wählen',
'agentPicker.localCli': 'Lokale CLI',
'agentPicker.daemonOff': 'Daemon aus',
'agentPicker.byok': 'API · BYOK',
'agentPicker.selectAgent': 'Erkannte Code-Agent-CLI auswählen',
'agentPicker.noAgents': 'keine Agents im PATH',
'agentPicker.notInstalled': 'nicht installiert',
'agentPicker.rescan': 'Lokalen PATH erneut nach Agents scannen',
'tool.openInTab': '{name} in einem Tab öffnen',
'tool.open': 'öffnen',
'tool.todos': 'Todos',
'tool.askQuestion': 'Frage',
'tool.askQuestionSubmit': 'Senden',
'tool.askQuestionPending': 'Warte auf deine Antwort',
'tool.askQuestionAnswered': 'Beantwortet',
'tool.todosExpand': 'Aufgaben einblenden',
'tool.todosCollapse': 'Aufgaben ausblenden',
'tool.todosDone': 'Fertig',
'tool.todosDismiss': 'Aufgabenliste schließen',
'tool.write': 'Write',
'tool.edit': 'Edit',
'tool.read': 'Read',
'tool.bash': 'Bash',
'tool.glob': 'Glob',
'tool.grep': 'Grep',
'tool.fetch': 'Fetch',
'tool.search': 'Search',
'tool.lines': '{n} Zeilen',
'tool.changeSingular': 'Änderung',
'tool.changePlural': 'Änderungen',
'tool.in': 'in {path}',
'tool.hide': 'ausblenden',
'tool.output': 'Ausgabe',
'tool.running': 'läuft…',
'tool.error': 'Fehler',
'tool.done': 'fertig',
'assistant.role': 'Assistent',
'assistant.workingLabel': 'Arbeitet',
'assistant.doneLabel': 'Fertig',
'assistant.feedbackPrompt': 'Feedback',
'assistant.feedbackPositive': 'Hilfreich',
'assistant.feedbackNegative': 'Nicht hilfreich',
'assistant.feedbackReasonTitle': 'Tell us why',
'assistant.feedbackReasonPositiveMatched': 'Understood my request',
'assistant.feedbackReasonPositiveVisual': 'Looks good',
'assistant.feedbackReasonPositiveUseful': 'Useful structure',
'assistant.feedbackReasonPositiveEasy': 'Easy to keep editing',
'assistant.feedbackReasonPositiveDesignSystem': 'Followed the design system',
'assistant.feedbackReasonNegativeMissed': 'Missed my request',
'assistant.feedbackReasonNegativeVisual': 'Visual quality needs work',
'assistant.feedbackReasonNegativeIncomplete': 'Incomplete output',
'assistant.feedbackReasonNegativeHard': 'Hard to use',
'assistant.feedbackReasonNegativeDesignSystem': 'Did not follow the design system',
'assistant.feedbackReasonOther': 'Other',
'assistant.feedbackReasonPlaceholder': 'Add a short note...',
'assistant.feedbackReasonSubmit': 'Submit',
'assistant.emptyResponseLabel': 'No output',
'assistant.emptyResponseMessage': 'The provider ended the request without returning text or an artifact. Try another model or provider, check quota, or retry.',
'assistant.unfinishedLabel': 'Mit unerledigter Arbeit gestoppt',
'assistant.unfinishedSummary': '{n} Aufgabe(n) offen',
'assistant.unfinishedMore': '+{n} weitere',
'assistant.continueRemaining': 'Offene Aufgaben fortsetzen',
'assistant.outTokens': '{n} ausgehend',
'assistant.producedFiles': 'Dateien aus diesem Turn',
'assistant.openFile': 'Öffnen',
'assistant.downloadFile': 'Herunterladen',
'assistant.thinking': 'Denkt',
'assistant.systemReminder': 'Systemhinweis',
'assistant.waitingFirstOutput': 'Warte auf erste Ausgabe',
'assistant.statusBootingAgent': 'Agent wird gestartet',
'assistant.statusStarting': 'Startet',
'assistant.statusRequesting': 'Anfrage wird gesendet',
'assistant.statusThinking': 'Denkt',
'assistant.statusStreaming': 'Streamt',
'assistant.slowHint':
'Dauert länger als üblich. Das Formular erscheint normalerweise nach 510 s — Sie können Stoppen und umformulieren.',
'assistant.verbEditing': 'Bearbeitet',
'assistant.verbWriting': 'Schreibt',
'assistant.verbReading': 'Liest',
'assistant.verbSearching': 'Sucht',
'assistant.verbRunning': 'Führt aus',
'assistant.verbTodos': 'Todos',
'assistant.verbFetching': 'Holt',
'assistant.verbCalling': 'Ruft auf',
'qf.answered': 'beantwortet',
'qf.choose': 'Auswählen…',
'qf.required': 'erforderlich',
'qf.lockedSubmitted':
'Antworten gesendet — der Agent nutzt sie für den Rest der Sitzung.',
'qf.lockedPrev': 'Dieses Formular stammt aus einem vorherigen Turn.',
'qf.hint':
'Wählen Sie, was passt. Überspringen Sie optionale Felder, die Ihnen egal sind — der Agent nutzt sinnvolle Standards.',
'qf.submitDefault': 'Antworten senden',
'qf.submitDisabledTitle': 'Füllen Sie zuerst die erforderlichen Felder aus',
'qf.submitTitle': 'Antworten senden',
'qf.cardSelected': 'ausgewählt',
'qf.cardRefs': 'Refs:',
'qf.cardSampleText': 'Franz jagt im komplett verwahrlosten Taxi quer durch Bayern · 0123',
'sketch.toolSelect': 'Auswählen (no-op)',
'sketch.toolPen': 'Stift',
'sketch.toolText': 'Text',
'sketch.toolRect': 'Rechteck',
'sketch.toolArrow': 'Pfeil',
'sketch.toolEraser': 'Radierer',
'sketch.color': 'Farbe',
'sketch.strokeSize': 'Strichstärke',
'sketch.undo': 'Rückgängig',
'sketch.clear': 'Leeren',
'sketch.close': 'Schließen',
'sketch.closeConfirm': 'Skizze schließen und ungespeicherte Änderungen verwerfen?',
'sketch.textPrompt': 'Text:',
'sketch.textModalTitle': 'Text hinzufügen',
'critiqueTheater.userFacingName': 'Design-Jury',
'critiqueTheater.roleDesigner': 'Designer',
'critiqueTheater.roleCritic': 'Kritiker',
'critiqueTheater.roleBrand': 'Marke',
'critiqueTheater.roleA11y': 'Barrierefreiheit',
'critiqueTheater.roleCopy': 'Text',
'critiqueTheater.roundLabel': 'Runde {n} von {m}',
'critiqueTheater.mustFix': '{n} Pflichtkorrekturen',
'critiqueTheater.composite': 'Gesamtscore',
'critiqueTheater.threshold': 'Schwelle',
'critiqueTheater.consensus': 'Konsens',
'critiqueTheater.interrupt': 'Abbrechen',
'critiqueTheater.interrupting': 'Wird abgebrochen…',
'critiqueTheater.interrupted': 'Abgebrochen',
'critiqueTheater.interruptedSummary': 'In Runde {round} abgebrochen · bester Gesamtscore {composite}',
'critiqueTheater.degradedHeading': 'Jury für diesen Lauf offline',
'critiqueTheater.degradedReasonMalformed': 'Ungültige Jury-Ausgabe (Parser hat den Block abgelehnt).',
'critiqueTheater.degradedReasonOversize': 'Jury-Ausgabe hat das sichere Byte-Budget überschritten.',
'critiqueTheater.degradedReasonAdapter': 'Adapter {adapter} unterstützt das Critique-Protokoll nicht.',
'critiqueTheater.degradedReasonProtocol': 'Adapter {adapter} verwendet eine nicht unterstützte Protokollversion.',
'critiqueTheater.degradedReasonMissingArtifact': 'Der Lauf endete ohne ein finales Artefakt.',
'critiqueTheater.replay': 'Wiedergabe',
'critiqueTheater.replaySpeed': 'Wiedergabegeschwindigkeit',
'critiqueTheater.readOnly': 'Nur lesen',
'critiqueTheater.shippedSummary': 'In Runde {round} freigegeben · Gesamtscore {composite}',
'critiqueTheater.shippedBadge': 'Freigegeben',
'critiqueTheater.belowThresholdBadge': 'Unter der Schwelle',
'critiqueTheater.timedOutBadge': 'Zeitüberschreitung',
'critiqueTheater.failedHeading': 'Lauf fehlgeschlagen',
'critiqueTheater.failedReasonCliExit': 'Agent-CLI hat vor Ende der Jury mit einem Fehler beendet.',
'critiqueTheater.failedReasonPerRoundTimeout': 'Eine Runde hat ihr Zeitbudget überschritten.',
'critiqueTheater.failedReasonTotalTimeout': 'Der gesamte Lauf hat sein Zeitbudget überschritten.',
'critiqueTheater.failedReasonOrchestrator': 'Interner Orchestrierungsfehler.',
'critiqueTheater.transcriptEmpty': 'Noch keine Wiedergabe verfügbar. Starte eine Jury, um eine aufzuzeichnen.',
'critiqueTheater.transcriptLoading': 'Wiedergabe wird geladen…',
'critiqueTheater.transcriptError': 'Wiedergabe konnte nicht geladen werden: {error}',
'critiqueTheater.replaySpeedPaused': 'Pausiert',
'critiqueTheater.replaySpeedInstant': 'Sofort',
'critiqueTheater.replaySpeedLive': 'Live',
'critiqueTheater.replaySpeedFast': 'Schnell',
'critiqueTheater.settingsNav': 'Design Jury',
'critiqueTheater.settingsNavHint': 'Fünf-Panel-Review für deine Agent-Runs',
'critiqueTheater.settingsEnabledLabel': 'Design Jury während Agent-Runs anzeigen',
'critiqueTheater.settingsEnabledDescription':
'Aktiviert, läuft während jeder Agent-Generierung eine Fünf-Panel-Review mit, die das Ergebnis vor der Auslieferung bewertet. Du kannst jederzeit unterbrechen.',
'critiqueTheater.settingsEnabledProjectHint':
'Für dieses Projekt gespeichert. Neue Runs in diesem Projekt laufen serverseitig durch die Design Jury.',
'critiqueTheater.settingsEnabledNoProjectHint':
'Öffne ein Projekt, damit dies serverseitig persistiert. Bis dahin ändert sich nur die Browser-Voreinstellung.',
'pet.title': 'Haustiere',
'pet.tabBuiltIn': 'Vorgegeben',
'pet.tabBuiltInHint': 'Mit Open Design gebündelte Begleiter — auswählen und adoptieren.',
'pet.builtInEmpty': 'Eingebaute Pets sind gerade nicht verfügbar. Aktualisiere den Community-Tab, sobald der Daemon wieder online ist.',
'pet.tabCustom': 'Eigenes',
'pet.tabCustomHint': 'Eigener Name, Glyph, Farbe oder Sprite.',
'pet.tabCommunity': 'Community',
'pet.tabCommunityHint': 'Von Codex geschlüpfte Pets — adoptieren oder neue generieren.',
'pet.tabsAria': 'Pet-Quelle',
'pet.subtitle': 'Adoptiere ein kleines Maskottchen, das über deinem Workspace schwebt.',
'pet.navTitle': 'Haustiere',
'pet.navHint': 'Adoptieren oder anpassen',
'pet.adopt': 'Adoptieren',
'pet.adoptedBadge': 'Adoptiert',
'pet.adoptCallout': 'Ein Haustier adoptieren',
'pet.changePet': 'Haustier wechseln',
'pet.wake': 'Wecken',
'pet.tuck': 'Verstecken',
'pet.wakeTitle': 'Haustier wecken — Overlay anzeigen.',
'pet.tuckTitle': 'Haustier verstecken — Overlay ausblenden.',
'pet.settingsTitle': 'Haustier-Einstellungen öffnen',
'pet.useCustom': 'Mein Haustier verwenden',
'pet.customTitle': 'Selbst gestalten',
'pet.customHint': 'Wähle Name, Symbol und Akzentfarbe — das Overlay aktualisiert sich live.',
'pet.customGreetingPlaceholder': 'Eine Begrüßung von deinem Haustier…',
'pet.fieldName': 'Name',
'pet.fieldGlyph': 'Symbol',
'pet.fieldGlyphHint': 'Ein einzelnes Emoji passt am besten (z. B. 🐝, 🦄, 🐢).',
'pet.fieldGreeting': 'Begrüßung',
'pet.fieldAccent': 'Akzentfarbe',
'pet.fieldAccentCustom': 'Eigene Farbe',
'pet.fieldAccentDefault': 'Standard-Akzentfarbe',
'pet.overlayAria': 'Haustier-Begleiter',
'pet.spriteAria': '{name} — zum Bewegen ziehen, zum Plaudern klicken',
'pet.spriteTitle': 'Hallo von {name}! Klick zum Plaudern.',
'pet.composerTitle': 'Haustiere — wecken, verstecken oder auswählen',
'pet.composerMenuTitle': 'Haustiere',
'pet.composerMenuHint': 'Tipp: tippe /pet zum Umschalten',
'pet.composerOpenSettings': 'Haustiere verwalten',
'pet.welcomeTeaserTitle': 'Adoptiere ein Haustier',
'pet.welcomeTeaserBody': 'Ein kleiner schwebender Begleiter für deinen Workspace.',
'pet.welcomeTeaserCta': 'Eines wählen',
'pet.imageUpload': 'Sprite hochladen',
'pet.imageReplace': 'Sprite ersetzen',
'pet.imageRemove': 'Emoji verwenden',
'pet.imageHintIdle': 'PNG, JPG, WebP, GIF oder SVG. Spritesheet? Lade einen horizontalen Streifen hoch und setze die Frame-Anzahl.',
'pet.imageHintActive': 'Dein Sprite wird angezeigt. Setze Frames > 1, um einen horizontalen Spritesheet zu animieren.',
'pet.fieldFrames': 'Frames',
'pet.fieldFramesHint': '1 = statisch. > 1 = horizontaler Spritesheet.',
'pet.fieldFps': 'Geschwindigkeit (fps)',
'pet.fieldFpsHint': 'Wie schnell die Frames durchlaufen.',
'pet.atlasImport': 'Codex-Sprite importieren',
'pet.atlasImportTitle': 'Importiere ein hatch-pet 8x9 / 192x208 Atlas (PNG oder WebP).',
'pet.atlasPickerTitle': 'Animationszeile wählen',
'pet.atlasPickerHint': 'Codex-Pets bringen 9 Animationszeilen mit. Standardmäßig behalten wir den ganzen Atlas, damit das Pet bei Hover, Drag-Richtung und langer Untätigkeit die Reihen wechselt. Du kannst es auch auf eine Schleife festlegen.',
'pet.atlasCancel': 'Atlas verwerfen',
'pet.atlasAdopt': 'Auf diese Zeile festlegen',
'pet.atlasAdoptFull': 'Ganzen Atlas verwenden (animiert)',
'pet.atlasAdoptFullTitle': 'Alle Zeilen behalten, damit das Pet auf Hover, Drag-Richtung und lange Untätigkeit reagiert.',
'pet.atlasAdoptRowTitle': 'Nur die markierte Zeile als einzelne Endlosschleife herausschneiden.',
'pet.atlasActiveHint': 'Animierter Atlas aktiv — das Pet wählt anhand deiner Interaktion (Hover, Drag, Untätigkeit) eine Zeile aus.',
'pet.atlasRow.idle': 'Idle',
'pet.atlasRow.running-right': 'Lauf rechts',
'pet.atlasRow.running-left': 'Lauf links',
'pet.atlasRow.waving': 'Winken',
'pet.atlasRow.jumping': 'Springen',
'pet.atlasRow.failed': 'Gescheitert',
'pet.atlasRow.waiting': 'Warten',
'pet.atlasRow.running': 'Laufen',
'pet.atlasRow.review': 'Prüfen',
'pet.hatchTitle': 'Neues Pet mit KI ausbrüten',
'pet.hatchHint': 'Nutze das mitgelieferte hatch-pet-Skill im Chat, um ein Codex-Spritesheet zu erzeugen, und importiere es danach hier.',
'pet.hatchConcept': 'Pet-Konzept (optional)',
'pet.hatchConceptPlaceholder': 'z. B. ein winziger Pixel-Shiba im kuscheligen Pulli',
'pet.hatchCopy': 'Prompt kopieren',
'pet.hatchCopied': 'Kopiert!',
'pet.hatchFoot': 'Sobald das Skill dein Pet gespeichert hat, kommst du zurück und wählst „Codex-Sprite importieren".',
'pet.slashPopoverAria': 'Slash-Befehle',
'pet.slashPopoverTitle': 'Befehle',
'pet.slashPopoverHint': '↑↓ navigieren · enter auswählen · esc schließen',
'pet.slashPet': 'Pet umschalten, adoptieren oder Einstellungen öffnen.',
'pet.slashPetWake': 'Schwebende Pet-Anzeige aufwecken.',
'pet.slashPetTuck': 'Pet vorerst wegstecken.',
'pet.slashHatch': 'Codex-Pet mit dem hatch-pet-Skill erzeugen.',
'pet.slashHatchArg': '<Konzept>',
'pet.slashSearch': 'Suche im Web über den OD-Research-Befehl.',
'pet.slashSearchArg': '<Suchanfrage>',
'pet.codexTitle': 'Kürzlich ausgebrütet',
'pet.codexSubtitle': 'Vom hatch-pet-Skill gepackte Pets erscheinen hier zur Ein-Klick-Adoption.',
'pet.codexSubtitleWithDir': 'Suche in {dir} nach hatch-pet-Paketen.',
'pet.codexEmpty': 'Noch keine ausgebrüteten Pets. Tippe /hatch im Chat, um eines zu erzeugen.',
'pet.codexLoading': 'Suche nach ausgebrüteten Pets…',
'pet.codexRefresh': 'Aktualisieren',
'pet.codexAdopt': 'Adoptieren',
'pet.codexAdopting': 'Adoptiere…',
'pet.communitySync': 'Community-Pets herunterladen',
'pet.communitySyncing': 'Lade…',
'pet.communitySyncTitle': 'Synchronisiere die neuesten Pets aus Codex Pet Share + j20 Hatchery nach ~/.codex/pets/.',
'pet.communitySyncDone': '{wrote} neue Pets synchronisiert ({total} insgesamt).',
'pet.communitySyncFailed': 'Sync fehlgeschlagen: {error}',
'pet.codexBundled': 'Mitgeliefert',
'pet.codexBundledTitle': 'Wird mit Open Design ausgeliefert — kein Download nötig.',
'settings.notifications': 'Benachrichtigungen',
'settings.notificationsHint': 'Ton und Desktop-Benachrichtigung beim Abschluss von Aufgaben',
'settings.notifyCompletionSound': 'Abschluss-Ton',
'settings.notifyCompletionSoundHint': 'Wird abgespielt, wenn eine Runde endet. Standardmäßig aus.',
'settings.notifySuccessSound': 'Erfolgs-Ton',
'settings.notifyFailureSound': 'Fehler-Ton',
'settings.notifyDesktop': 'Desktop-Benachrichtigung',
'settings.notifyDesktopHint': 'Wird gesendet, wenn das Fenster nicht im Vordergrund ist.',
'settings.notifyDesktopBlocked': 'Vom Browser blockiert. Bitte in den Website-Einstellungen erlauben.',
'settings.notifyDesktopUnsupported': 'Desktop-Benachrichtigungen werden in dieser Umgebung nicht unterstützt.',
'settings.notifyTest': 'Test senden',
'settings.notifyTestSent': 'Testbenachrichtigung gesendet. Wenn kein Banner erscheint, Browser- und Systembenachrichtigungen prüfen.',
'settings.notifyTestFailed': 'Benachrichtigungsaufruf fehlgeschlagen. Browser- und Systembenachrichtigungen prüfen.',
'settings.notifySoundDing': 'Ding',
'settings.notifySoundChime': 'Glockenspiel',
'settings.notifySoundTwoToneUp': 'Zweiton aufwärts',
'settings.notifySoundPluck': 'Zupfen',
'settings.notifySoundBuzz': 'Summen',
'settings.notifySoundTwoToneDown': 'Zweiton abwärts',
'settings.notifySoundThud': 'Dumpfer Schlag',
'settings.skills': 'Skills',
'settings.skillsHint': 'Funktionale Skills, die der Agent während einer Aufgabe aufrufen kann',
'settings.skillsNew': 'Neuer Skill',
'settings.skillsEmpty': 'Wähle links einen Skill aus oder erstelle einen neuen.',
'settings.skillsEdit': 'Bearbeiten',
'settings.skillsDelete': 'Löschen',
'settings.skillsDeleteConfirm': 'Löschen bestätigen',
'settings.skillsName': 'Name',
'settings.skillsTriggers': 'Trigger (Komma- oder zeilengetrennt)',
'settings.skillsDescription': 'Beschreibung',
'settings.skillsBody': 'SKILL.md-Inhalt',
'settings.skillsCreate': 'Erstellen',
'settings.skillsSave': 'Speichern',
'settings.skillsSaving': 'Speichern…',
'settings.skillsFiles': 'Dateien',
'settings.skillsNoFiles': 'Keine Dateien in diesem Skill-Ordner.',
'settings.skillsNameRequired': 'Skill-Name ist erforderlich.',
'settings.skillsBodyRequired': 'Skill-Inhalt ist erforderlich.',
'settings.designSystems': 'Design-Systeme',
'settings.designSystemsHint': 'Verfügbare Design-Systeme durchsuchen und umschalten',
'settings.designSystemsInstalled': 'Installiert',
'settings.designSystemsAdd': 'Design-System hinzufügen',
'settings.designSystemsHiddenCount': '{count} in der Home-Galerie ausgeblendet',
'settings.designSystemsShowAll': 'Alle anzeigen',
'settings.designSystemsShowHidden': 'Ausgeblendete anzeigen',
'settings.designSystemsSource': 'Quelle',
'settings.designSystemsSourceLocal': 'Lokal',
'settings.designSystemsSourceGithub': 'GitHub',
'settings.designSystemsStructure': 'Struktur',
'settings.designSystemsModeHybrid': 'Hybrid',
'settings.designSystemsModeNormalized': 'Normalisiert',
'settings.designSystemsModeVerbatim': 'Unverändert',
'settings.designSystemsCraft': 'Craft',
'settings.designSystemsCraftColor': 'Farbe',
'settings.designSystemsCraftAccessibility': 'Barrierefreiheit',
'settings.designSystemsGithubUrl': 'GitHub-URL',
'settings.designSystemsProjectPath': 'Projektpfad',
'settings.designSystemsImportGithub': 'Aus GitHub importieren',
'settings.designSystemsImportProject': 'Aus Projekt importieren',
'settings.designSystemsImportedStatus': '{title} importiert',
'settings.designSystemsViewImported': 'Importiertes Design-System anzeigen',
'settings.designSystemsCategory': 'Kategorie',
'settings.designSystemsAllCategories': 'Alle Kategorien',
'settings.designSystemsShowInHomeGallery': 'In Home-Galerie anzeigen',
'settings.librarySkills': 'Fähigkeiten',
'settings.libraryDesignSystems': 'Designsysteme',
'settings.librarySearch': 'Suchen...',
'settings.libraryAll': 'Alle',
'settings.libraryPreview': 'Vorschau',
'settings.libraryPreviewClose': 'Schließen',
'settings.libraryLoading': 'Laden...',
'settings.libraryNoResults': 'Keine Elemente entsprechen Ihrer Suche.',
'settings.libraryEnabled': 'Aktiviert',
'settings.libraryDisabled': 'Deaktiviert',
'settings.connectorsNavHint': 'Externe Systemverbindungen',
'settings.connectorsHint': 'Verwalte Connector- und Tool-Anbieter-Einstellungen für dieses Gerät.',
'settings.connectorsComposioApiKey': 'Composio-API-Schlüssel',
'settings.connectorsSavedTitle': 'Im lokalen Daemon gespeichert',
'settings.connectorsSavedWithTail': 'Gespeichert · ••••{tail}',
'settings.connectorsSaved': 'Gespeichert',
'settings.connectorsGetApiKey': 'API-Schlüssel abrufen',
'settings.connectorsReplaceKeyPlaceholder': 'Neuen Schlüssel einfügen, um den gespeicherten zu ersetzen',
'settings.connectorsApiKeyPlaceholder': 'Composio-API-Schlüssel einfügen',
'settings.connectorsClear': 'Löschen',
'settings.connectorsClearConfirmTitle': 'Gespeicherten Composio-API-Schlüssel löschen?',
'settings.connectorsClearConfirmBody': 'Beim Entfernen des Schlüssels werden alle Composio-Connectors dieses Workspaces getrennt. Verknüpfte Konten, OAuth-Freigaben und Tool-Zugriffe werden allesamt entfernt.',
'settings.connectorsClearConfirmContinue': 'Weiter',
'settings.connectorsClearFinalTitle': 'Damit werden alle Connectors getrennt',
'settings.connectorsClearFinalBody': 'Dieser Schritt lässt sich nicht rückgängig machen. Nach dem Einfügen eines neuen Schlüssels musst du jede Integration neu verbinden.',
'settings.connectorsClearFinalConfirm': 'Schlüssel löschen & trennen',
'settings.connectorsClearArming': 'Einen Moment\u2026',
'settings.connectorsClearCancel': 'Abbrechen',
'settings.connectorsSaveKey': "Key speichern",
'settings.connectorsSaveKeyTitle': "Diesen Key an den lokalen Daemon senden",
'settings.connectorsKeySaving': "Speichere…",
'settings.connectorsKeySaved': "Gespeichert ✓",
'settings.connectorsKeyError': "Key konnte nicht gespeichert werden. Prüfe, ob der lokale Daemon läuft, und versuche es erneut.",
'settings.connectorsHelpSaved': 'Dein Schlüssel entsperrt den Katalog unten und bleibt im lokalen Daemon. Füge einen neuen Schlüssel ein, um ihn zu ersetzen, oder lösche ihn.',
'settings.connectorsHelpUnsaved': "Ungespeicherte Änderungen — klicke auf „Key speichern“, um diesen Schlüssel im lokalen Daemon abzulegen und den Katalog unten freizuschalten.",
'settings.connectorsHelpEmpty': 'Füge einen Schlüssel hinzu, um den Katalog unten zu entsperren. Schlüssel werden lokal im Daemon gespeichert und nie über Umgebungsvariablen gesendet.',
'settings.connectorsLoadingSavedKey': 'Im lokalen Daemon wird nach einem gespeicherten Schlüssel gesucht…',
'settings.autosaveSaving': "Speichere…",
'settings.autosaveSaved': "Alle Änderungen gespeichert",
'settings.autosaveError': "Änderungen konnten nicht gespeichert werden. Der lokale Daemon ist möglicherweise offline.",
'settings.libraryToggleLabel': 'Umschalten',
// Memory (auto-extracted personalization saved as on-disk markdown)
'settings.memory': 'Speicher',
'settings.memoryHint': 'Persönliche Fakten, automatisch aus Chats extrahiert',
'settings.memoryDescription': 'Aus Chats extrahierte Fakten zu deinen Präferenzen, gespeichert als Markdown-Dateien und in jeden Chat eingespielt.',
'settings.memoryEnabled': 'Aktiviert',
'settings.memoryDisabled': 'Deaktiviert',
'settings.memoryEnableLabel': 'Speicher-Injektion aktivieren',
'settings.memoryDisabledBanner': 'Der Speicher ist derzeit AUS. Bestehende Fakten bleiben auf der Festplatte, werden aber nicht in neue Chats eingespielt.',
'settings.memoryNew': 'Neuer Eintrag',
'settings.memoryEdit': 'Bearbeiten',
'settings.memoryDelete': 'Löschen',
'settings.memoryPreview': 'Vorschau',
'settings.memoryEmpty': 'Noch keine Erinnerungen.',
'settings.memoryEmptyHintZh': '记住: 用户偏好深色主题',
'settings.memoryEmptyHintEn': 'I prefer dark mode',
'settings.memoryName': 'Name',
'settings.memoryDesc': 'Einzeilige Beschreibung',
'settings.memoryBody': 'Inhalt (Markdown unterstützt)',
'settings.memoryBodyHint': 'Regel zuerst, dann Zeilen Why und How to apply.',
'settings.memoryStartersLabel': 'Need a starting point? Click to fill the form:',
'settings.memoryStarterUserName': 'My role',
'settings.memoryStarterUserDesc': 'I am a frontend engineer working on a SaaS design tool',
'settings.memoryStarterUserBody': '- Role: senior frontend engineer\n- Stack: React, TypeScript, Vite\n- Domain: design / collaboration tools\n- Timezone: GMT+8 (Asia/Shanghai)\n\nWhen to apply: any chat — frame examples around web frontend.',
'settings.memoryStarterFeedbackName': 'UI preferences',
'settings.memoryStarterFeedbackDesc': 'Dark mode, large body text, low information density',
'settings.memoryStarterFeedbackBody': '- Theme: dark by default\n- Body text: ≥ 18px\n- Information density: prefer whitespace, fewer items per screen\n\nWhy: less eye strain during long sessions.\nWhen to apply: whenever you generate UI, web pages, or slides.',
'settings.memoryStarterProjectName': 'Current project',
'settings.memoryStarterProjectDesc': 'Open Design v0.5 — chat-driven design editor',
'settings.memoryStarterProjectBody': '- Goal: ship the chat-driven editor this quarter\n- Priorities: streaming render, local multimodal, offline-first\n- Stack: Next.js 16, Express daemon, SQLite\n\nWhen to apply: in any conversation about this project.',
'settings.memorySaveHint': 'Not auto-saved — click Create / Save to apply.',
'settings.memoryIndexSaveHint': 'Edits to the index are not auto-saved — click Save index to apply.',
'settings.memoryIndexUnsaved': 'Unsaved changes',
'settings.memoryFlashCreated': '✓ Memory created',
'settings.memoryFlashSaved': '✓ Memory saved',
'settings.memoryFlashDeleted': '✓ Memory deleted',
'settings.memoryFlashIndexSaved': '✓ Index saved',
'settings.memoryFlashPathCopied': '✓ Pfad kopiert',
'settings.memoryNameLabel': 'Title',
'settings.memoryTypeLabel': 'Type',
'settings.memoryDescLabel': 'Description',
'settings.memoryBodyLabel': 'Content',
'settings.memoryTypeUser': 'Benutzer',
'settings.memoryTypeFeedback': 'Feedback',
'settings.memoryTypeProject': 'Projekt',
'settings.memoryTypeReference': 'Referenz',
'settings.memoryIndex': 'MEMORY.md (Index)',
'settings.memoryIndexSave': 'Index speichern',
'settings.memoryIndexReset': 'Zurücksetzen',
'settings.memoryToastChanged': 'Speicher aktualisiert',
'settings.memoryToastClickHint': 'Anzeigen',
'settings.memoryAll': 'Alle',
'settings.memoryExtractions': 'Extraction history',
'settings.memoryExtractionsHint': 'Recent LLM-backed extraction attempts. Heuristic regex extraction always runs first; LLM extraction runs in the background after each turn.',
'settings.memoryExtractionsEmpty': 'No extractions yet. The next chat turn will populate this list.',
'settings.memoryExtractionsRefresh': 'Refresh',
'settings.memoryExtractionsRefreshing': 'Refreshing…',
'settings.memoryExtractionPhaseRunning': 'Running…',
'settings.memoryExtractionPhaseSuccess': 'Success',
'settings.memoryExtractionPhaseSkipped': 'Skipped',
'settings.memoryExtractionPhaseFailed': 'Failed',
'settings.memoryExtractionSkipNoProvider': 'No API key configured for LLM memory extraction.',
'settings.memoryExtractionSkipDisabled': 'Memory is disabled.',
'settings.memoryExtractionSkipEmpty': 'Empty user message — nothing to extract.',
'settings.memoryExtractionSkipNoMatch': 'No regex pattern matched this turn.',
'settings.memoryExtractionKindHeuristic': 'regex',
'settings.memoryExtractionKindLlm': 'LLM',
'settings.memoryExtractionProviderEnv': 'env',
'settings.memoryExtractionProviderMediaConfig': 'media settings',
'settings.memoryExtractionProposed': 'proposed',
'settings.memoryExtractionWritten': 'written',
'settings.memoryExtractionDuration': 'in',
'settings.memoryNoProviderBannerTitle': 'LLM memory extraction is not running',
'settings.memoryNoProviderBannerBody': 'No API key found for the memory extractor. Add an OpenAI key under Media providers, or set ANTHROPIC_API_KEY / OPENAI_API_KEY in the environment, to enable LLM-driven extraction. Heuristic regex extraction is still active.',
'settings.memoryExtractionProviderOverride': 'memory settings',
'settings.memoryExtractionDelete': 'Delete',
'settings.memoryExtractionsClear': 'Clear',
'settings.memoryExtractionsClearTitle': 'Clear all extraction history',
'settings.libraryInstall': 'Installieren',
'settings.libraryInstallGithub': 'GitHub',
'settings.libraryInstallLocal': 'Lokaler Pfad',
'settings.libraryInstallUrl': 'https://github.com/owner/repo',
'settings.libraryInstallPath': '/path/to/skill-folder',
'settings.libraryInstallButton': 'Installieren',
'settings.libraryUninstall': 'Deinstallieren',
'settings.libraryBuiltIn': 'Integriert',
'settings.libraryInstalled': 'Installiert',
'notify.successTitle': 'Aufgabe abgeschlossen',
'notify.failureTitle': 'Aufgabe fehlgeschlagen',
'notify.successBody': 'Eine Runde ist abgeschlossen.',
'notify.failureBody': 'Die Aufgabe wurde mit einem Fehler beendet.',
'updater.available': 'Update verfügbar',
'updater.availableBody': 'Open Design {version} ist verfügbar. Es wird heruntergeladen, bevor der Installer geöffnet werden kann.',
'updater.checking': 'Suche nach Updates',
'updater.download': 'Update herunterladen',
'updater.downloading': 'Update wird heruntergeladen',
'updater.downloadingPercent': 'Update wird heruntergeladen {percent}%',
'updater.done': 'Fertig',
'updater.failed': 'Update fehlgeschlagen',
'updater.installerOpenBody': 'Der Installer ist geöffnet. Open Design wird beendet, damit Sie das Update abschließen können.',
'updater.installerOpened': 'Installer geöffnet',
'updater.later': 'Später',
'updater.openFailedFallback': 'Der Installer konnte nicht geöffnet werden.',
'updater.openInstaller': 'Update installieren',
'updater.opening': 'Installer wird geöffnet...',
'updater.quitButton': 'Open Design beenden',
'updater.quitFailedBody': 'Der Installer ist geöffnet, aber Open Design konnte nicht beendet werden. Beenden Sie Open Design, bevor Sie die App ersetzen.',
'updater.quitFailedTitle': 'Beenden fehlgeschlagen',
'updater.quitting': 'Wird beendet...',
'updater.ready': 'Update bereit',
'updater.readyGeneric': 'Eine neue Version ist bereit. Open Design wird geschlossen und der Installer geöffnet.',
'updater.readyVersion': 'Open Design {version} ist bereit. Open Design wird geschlossen und der Installer geöffnet.',
'updater.upToDate': 'Sie verwenden bereits die neueste Version.',
'settings.memoryModelInlineLabel': 'Memory model',
'settings.memoryModelInlineSameAsChat': 'Same as chat',
'settings.memoryModelInlineSameAsChatWithModel': 'Same as chat ({model})',
'settings.memoryModelInlineSameAsChatWithProvider': 'Same as chat ({provider})',
'settings.memoryModelInlineHintCli': 'Optional. The memory extractor uses an env-var or media-providers API key on this provider; pinning a model here just overrides the auto-pick.',
'settings.memoryModelInlineHintCliConstrained': 'Optional. Memory will call {provider}; needs an env-var or media-providers API key for that provider, or pick a model below to override.',
'settings.memoryModelInlineHintByok': 'Optional. Reuses your chat API key on the same provider — picking a different (usually cheaper) model only changes the request body.',
'settings.memoryModelInlineFlashSaved': 'Saved',
'settings.memoryModelInlineFlashCleared': 'Cleared',
'settings.orbit.eyebrow': 'Automatisierung',
'settings.orbit.title': 'Orbit',
'settings.orbit.navHint': 'Tägliche Connector-Zusammenfassung',
'settings.orbit.lede': 'Connector-Aktivität nach Zeitplan sammeln und das Ergebnis als aktualisierbares live artifact veröffentlichen.',
'settings.orbit.statusOnTitle': 'Geplante tägliche Läufe sind aktiv',
'settings.orbit.statusOffTitle': 'Geplante tägliche Läufe sind deaktiviert',
'settings.orbit.statusActive': 'Aktiv',
'settings.orbit.statusOff': 'Aus',
'settings.orbit.runTitle': 'Einen Orbit-Lauf starten und die Live-Konversation öffnen',
'settings.orbit.running': 'Läuft…',
'settings.orbit.runOpen': 'Jetzt ausführen',
'settings.orbit.dailySummaryTitle': 'Tägliche Zusammenfassung',
'settings.orbit.dailySummarySub': 'Wird einmal pro Tag zur geplanten lokalen Zeit ausgeführt.',
'settings.orbit.on': 'Ein',
'settings.orbit.off': 'Aus',
'settings.orbit.runTimeTitle': 'Ausführungszeit',
'settings.orbit.runTimeSub': 'Standard 08:00. Speichern, um den Daemon-Zeitplan anzuwenden.',
'settings.orbit.runTimeAria': 'Tägliche Orbit-Ausführungszeit',
'settings.orbit.nextRun': 'Nächster Lauf',
'settings.orbit.nextRunScheduledAfterSave': 'Nach dem Speichern geplant',
'settings.orbit.schedule': 'Zeitplan',
'settings.orbit.pausedManualOnly': 'Pausiert — nur manuelle Läufe',
'settings.orbit.templateTitle': 'Prompt-Vorlage',
'settings.orbit.templateMissing': 'Vorlage {id} ist nicht installiert.',
'settings.orbit.templateMissingOption': '{id} (fehlt)',
'settings.orbit.templateMissingInstall': 'Installiere eine Orbit-Skill, um den Prompt zu steuern.',
'settings.orbit.templateMissingPickAnother': 'Wähle eine andere Vorlage aus dem Dropdown.',
'settings.orbit.templateResetTitle': 'Auf {id} zurücksetzen',
'settings.orbit.templateReset': 'Zurücksetzen',
'settings.orbit.templateHelp': 'Steuere Orbit mit einer Skill — der Beispiel-Prompt der ausgewählten Vorlage wird in jeden Orbit-Lauf eingefügt, damit Zusammenfassungen dieser Vorlagenform folgen.',
'settings.orbit.templateAria': 'Orbit-Prompt-Vorlage',
'settings.orbit.templatesLoading': 'Vorlagen werden geladen…',
'settings.orbit.templatesOptgroup': 'Orbit-Skill-Vorlagen',
'settings.orbit.lastRun': 'Letzter Lauf',
'settings.orbit.triggerManual': 'Manuell',
'settings.orbit.triggerScheduled': 'Geplant',
'settings.orbit.meterAria': '{succeeded} erfolgreich, {skipped} übersprungen, {failed} fehlgeschlagen von {checked} geprüft',
'settings.orbit.countChecked': 'Geprüft',
'settings.orbit.countSucceeded': 'Erfolgreich',
'settings.orbit.countSkipped': 'Übersprungen',
'settings.orbit.countFailed': 'Fehlgeschlagen',
'settings.orbit.runError': 'Orbit konnte nicht ausgeführt werden. Stelle sicher, dass der lokale Daemon läuft und Connectors konfiguriert sind.',
'settings.orbit.gateAriaLabel': "Connectors werden für Orbit benötigt",
'settings.orbit.gateEyebrow': "Einrichtung erforderlich",
'settings.orbit.gateTitle': "Verbinde ein Tool, um Orbit zu nutzen",
'settings.orbit.gateBody': "Orbit fasst die Aktivität deiner Connectors zusammen. Du hast noch nichts verbunden — füge mindestens eine Integration hinzu, damit Orbit etwas zu berichten hat.",
'settings.orbit.gateBodyNoKey': "Orbit fasst die Aktivität deiner Connectors zusammen, und Connectors laufen über Composio. Trage einen Composio-API-Key unter Connectors ein, um den Katalog freizuschalten und deine erste Integration zu wählen.",
'settings.orbit.gateAction': "Connectors öffnen",
'settings.orbit.gateActionNoKey': "Composio konfigurieren",
'settings.orbit.gateLoading': "Connectors werden geprüft…",
'settings.orbit.controlsLockedBadge': "Gesperrt",
'settings.orbit.controlsLockedHint': "Verbinde ein Tool, um Zeitplan und Vorlage von Orbit freizuschalten.",
'settings.orbit.artifactKickerLive': 'live artifact',
'settings.orbit.artifactKickerLegacy': 'Legacy-Zusammenfassung',
'settings.orbit.artifactTitle': 'Tägliche Orbit-Aktivitätszusammenfassung',
'settings.orbit.artifactMetaLive': 'Aktualisierbares HTML-Artefakt, erzeugt aus Connector-Aktivität.',
'settings.orbit.artifactMetaLegacy': 'Erzeugt, bevor live artifact-Unterstützung aktiviert wurde — führe Orbit erneut aus, um eines zu veröffentlichen.',
'settings.orbit.copyMarkdownTitle': 'Markdown-Zusammenfassung in die Zwischenablage kopieren',
'settings.orbit.copied': 'Kopiert',
'settings.orbit.copy': 'Kopieren',
'settings.orbit.openArtifact': 'Artefakt öffnen',
'settings.orbit.sourceMarkdown': 'Quell-Markdown',
'liveArtifact.viewer.tabPreview': 'Vorschau',
'liveArtifact.viewer.tabCode': 'Code',
'liveArtifact.viewer.tabData': 'Daten',
'liveArtifact.viewer.tabRefreshHistory': 'Aktualisierungsverlauf',
'liveArtifact.viewer.dataEmpty': 'Kein data.json-Cache verfügbar.',
'liveArtifact.viewer.code.templateHeading': 'Vorlagen-HTML',
'liveArtifact.viewer.code.renderedHeading': 'Gerendertes HTML',
'liveArtifact.viewer.code.templateHelp': 'Die bearbeitbare Vorlage, die mit data.json zum Erzeugen der Vorschau verwendet wird.',
'liveArtifact.viewer.code.renderedHelp': 'Die erzeugte index.html, die derzeit von der Vorschau geladen wird.',
'liveArtifact.viewer.code.variantAria': 'Code-Variante',
'liveArtifact.viewer.code.variantTemplate': 'Vorlage',
'liveArtifact.viewer.code.variantRendered': 'Gerendert',
'liveArtifact.viewer.code.loading': 'Code wird geladen…',
'liveArtifact.viewer.code.unavailable': 'Code ist noch nicht verfügbar.',
'liveArtifact.viewer.code.empty': 'Diese Codedatei ist leer.',
// Diagnostics export
'diagnostics.exportTitle': 'Diagnose exportieren',
'diagnostics.exportButton': 'Diagnose exportieren',
'diagnostics.exportHint': 'Bündelt die aktuellen App-Logs und Geräteinformationen in ein Zip-Archiv, das du mit dem Team teilen kannst.',
'diagnostics.exporting': 'Exportiere…',
'diagnostics.exportSuccess': 'Diagnose gespeichert: {path}',
'diagnostics.exportFailed': 'Diagnose-Export fehlgeschlagen: {message}',
};