import type { Messages } from "./en"; export const de: Messages = { "common.loading": "Lädt…", "common.save": "Speichern", "common.add": "Hinzufügen", "common.edit": "Bearbeiten", "common.delete": "Löschen", "common.remove": "Entfernen", "common.close": "Schließen", "common.collapse": "Einklappen", "nav.menu": "Menü", "nav.settings": "Einstellungen", "nav.stats": "Statistik", "nav.images": "Bilder", "images.disabled": "Bildgenerierung ist nicht eingerichtet: Ein Admin aktiviert sie unter Einstellungen → Allgemein (fal.ai-Key in FAL_KEY).", "images.promptPlaceholder": "Beschreibe das Bild: Motiv, Stil, Komposition, Farben, Licht… (Strg+Enter)", "images.model": "Modell", "images.size": "Format", "images.count": "Anzahl", "images.countN": "{n}×", "images.folder": "Ordner", "images.generate": "Erzeugen", "images.generating": "Erzeuge…", "images.empty": "Noch keine Bilder.", "images.reuse": "Prompt wiederverwenden", "images.copyPath": "Dateipfad kopieren", "images.deleteConfirm": "Dieses Bild löschen (inklusive Datei)?", "images.size.square_hd": "Quadrat HD", "images.size.square": "Quadrat", "images.size.landscape_4_3": "Quer 4:3", "images.size.landscape_16_9": "Quer 16:9", "images.size.portrait_4_3": "Hoch 3:4", "images.size.portrait_16_9": "Hoch 9:16", "settings.images": "Bildgenerierung (fal.ai)", "settings.imagesEnabled": "Aktiv", "settings.imagesKey": "API-Key", "settings.imagesDefault": "Standardmodell", "settings.imagesDir": "Ordner im Projekt", "settings.imagesHint": "Modelle und Preise pro Bild werden in der Config-Datei bearbeitet ([images]).", "budget.title": "Budgets in diesem Monat", "budget.spent": "Verbraucht", "budget.budget": "Budget", "budget.remaining": "Verbleibend", "budget.provider": "Laut Anbieter", "budget.balance": "Guthaben {v}", "budget.providerSpent": "Abgerechnet {v}", "budget.orgWide": "Organisationsweiter Kostenbericht des Anbieters", "budget.remoteError": "nicht verfügbar", "budget.hint": "Verbraucht = von CodeCraft mit deinen Preisen erfasste Kosten. Werte des Anbieters kommen aus deren APIs (OpenRouter, Anthropic mit Admin-Key, fal.ai mit Admin-Key).", "budget.chip": "Budget {name}: {p}", "budget.chipHint": "Ein Monatsbudget ist fast aufgebraucht – siehe Statistik.", "settings.monthlyBudget": "Monatsbudget", "settings.monthlyBudgetTotal": "Monatsbudget (gesamt)", "settings.monthlyBudgetHint": "In der eingestellten Währung; 0 = keins. Warnungen erscheinen im Chat-Kopf.", "settings.budgetWarning": "Warnen ab", "settings.adminKey": "Admin-Key (optional)", "settings.adminKeyHint": "Anthropic Admin-API-Key (sk-ant-admin01-…), um die echten, organisationsweiten Monatskosten anzuzeigen.", "settings.fetchPrices": "Preise abrufen", "settings.pricesFetched": "Preise für {n} Modelle aktualisiert – zum Übernehmen speichern.", "stats.perMillion": "pro 1 Mio. Tok.", "stats.perMillionHint": "Effektive Kosten pro Million Tokens (Input inkl. Cache + Output)", "queue.pending": "{n} Nachricht(en) in der Warteschlange – werden beim nächsten Schritt übergeben", "queue.stopped": "{n} Nachricht(en) in der Warteschlange", "queue.sendNow": "Jetzt senden", "queue.remove": "Aus der Warteschlange entfernen", "queue.backgroundResult": "Ergebnis einer Hintergrundaufgabe", "permissionMode.auto": "Automatisch (fragt einmal, Sicheres läuft)", "nav.files": "Dateien", "files.search": "Dateien suchen…", "files.newFile": "Neue Datei", "files.newFolder": "Neuer Ordner", "files.upload": "Hochladen", "files.showHidden": "Versteckte Dateien zeigen", "files.newFileName": "Dateiname:", "files.newFolderName": "Ordnername:", "files.renameTo": "Neuer Name:", "files.copyTo": "Name der Kopie:", "files.rename": "Umbenennen", "files.duplicate": "Duplizieren", "files.download": "Herunterladen", "files.actions": "Aktionen", "files.deleteConfirm": "„{name}“ löschen?", "files.deleteFolderConfirm": "Den Ordner „{name}“ mit allem Inhalt löschen?", "files.noHits": "Keine Treffer", "files.emptyFolder": "Leerer Ordner", "files.dropHint": "Dateien hierher ziehen zum Hochladen", "files.selectFile": "Datei auswählen", "files.edit": "Bearbeiten", "files.preview": "Vorschau", "files.binary": "Binärdatei – zum Öffnen herunterladen.", "files.tooLarge": "Datei zu groß für den Editor – bitte herunterladen.", "files.discardChanges": "Ungespeicherte Änderungen verwerfen?", "files.conflict": "Die Datei wurde seit dem Öffnen geändert (z. B. von einem Agenten). Trotzdem überschreiben?", "files.tabFiles": "Dateien", "git.init": "Git-Repository anlegen", "git.clone": "Repository klonen", "git.cloneUrl": "Repository-URL (https://… oder git@…):", "git.cloneFolder": "Ordnername:", "git.branch": "Branch", "git.newBranch": "Neuer Branch", "git.newBranchName": "Name des neuen Branches:", "git.fetch": "Fetch", "git.pull": "Pull", "git.push": "Push", "git.done": "Erledigt.", "git.changes": "Änderungen", "git.history": "Verlauf", "git.staged": "Vorgemerkt", "git.unstaged": "Änderungen", "git.stage": "Vormerken", "git.unstage": "Nicht mehr vormerken", "git.stageAll": "Alle vormerken", "git.unstageAll": "Alle zurücknehmen", "git.discard": "Änderungen verwerfen", "git.discardConfirm": "Alle Änderungen an {file} verwerfen?", "git.openFile": "Datei öffnen", "git.clean": "Keine Änderungen.", "git.message": "Commit-Nachricht", "git.amend": "Letzten Commit ändern", "git.commit": "Commit", "git.noCommits": "Noch keine Commits.", "git.noDiff": "Keine Unterschiede.", "login.prompt": "Melde dich an, um fortzufahren.", "login.invalid": "Ungültiges Token.", "login.submit": "Anmelden", "sidebar.newSession": "Neue Session", "sidebar.noSessions": "Noch keine Sessions", "sidebar.today": "Heute", "sidebar.yesterday": "Gestern", "sidebar.week": "Letzte 7 Tage", "sidebar.older": "Älter", "sidebar.connected": "Verbunden", "sidebar.disconnected": "Getrennt – verbinde neu…", "sidebar.needsInput": "Wartet auf deine Eingabe", "session.untitled": "Neue Session", "new.title": "Neue Session", "new.directory": "Projektverzeichnis", "new.up": "Hoch", "new.noSubdirs": "Keine Unterverzeichnisse", "new.model": "Modell", "new.mode": "Modus", "new.firstPrompt": "Was soll erledigt werden? (optional)", "new.start": "Starten in {dir}", "activity.thinking": "Denkt nach…", "activity.writing": "Schreibt…", "activity.tool": "Führt {tool} aus…", "activity.subagent": "Subagent arbeitet: {name}", "activity.waitingForYou": "Pausiert – wartet auf deine Antwort", "activity.working": "Arbeitet", "activity.titleBusy": "{n} aktiv", "activity.titleInput": "Eingabe nötig", "chat.reasoningLive": "Denkt nach…", "chat.reasoningDone": "Gedacht · {n} Wörter", "settings.reasoningDisplay": "Reasoning des Modells", "settings.reasoningCollapsed": "Eingeklappt (per Klick öffnen)", "settings.reasoningExpanded": "Immer aufgeklappt", "settings.reasoningHidden": "Aus", "settings.reasoningHint": "Die Überlegungen des Modells (sofern Modell und Provider sie liefern).", "settings.reasoningLive": "Beim Denken offen, danach einklappen", "chat.empty": "Schreib eine Nachricht, um zu starten.", "chat.compacted": "Unterhaltung komprimiert – Zusammenfassung", "chat.context": "Kontext", "chat.contextHint": "{tokens} Tokens in der letzten Anfrage", "chat.statsHint": "Tokens und Kosten dieser Session (Klick für Details)", "chat.renameHint": "Doppelklick zum Umbenennen", "chat.rewind": "Ab hier bearbeiten und neu senden", "chat.rewindConfirm": "Diese Nachricht und alles danach entfernen? Dateiänderungen werden nicht rückgängig gemacht.", "chat.delete": "Session löschen", "chat.deleteConfirm": "Diese Session inklusive Subagenten löschen? Die Statistik bleibt erhalten.", "composer.placeholder": "Nachricht… (/ für Befehle, Bilder einfügen)", "composer.placeholderBusy": "Nachricht wird eingereiht und beim nächsten Schritt gesendet…", "composer.send": "Senden", "composer.queue": "Einreihen", "composer.stop": "Stopp", "composer.mode": "Modus", "composer.model": "Modell", "composer.permissionMode": "Berechtigungsmodus", "composer.attach": "Bilder anhängen", "command.compact": "Unterhaltung zusammenfassen, um Kontext freizugeben", "command.new": "Neue Session starten", "permissionMode.default": "Fragen (außer Lesebefehle)", "permissionMode.accept_edits": "Änderungen automatisch annehmen", "permissionMode.bypass": "Alles erlauben", "plan.implement": "Zu Build wechseln und Plan umsetzen", "plan.implementPrompt": "Setze den Plan um.", "tool.input": "Eingabe", "tool.output": "Ausgabe", "tool.todosUpdated": "Aufgaben aktualisiert ({done}/{total} erledigt)", "tool.todos": "Aufgaben", "tool.openSubagent": "Subagent-Session öffnen", "interaction.fromSubagent": "Vom Subagenten:", "permission.title": "Freigabe erforderlich", "permission.allowOnce": "Einmal erlauben", "permission.alwaysTool": "{tool} in dieser Session immer erlauben", "permission.alwaysCommand": "„{prefix}“ in dieser Session immer erlauben", "permission.reject": "Ablehnen", "permission.rejectWithFeedback": "Mit Rückmeldung ablehnen", "permission.feedback": "Optional: Sag dem Agenten, was er stattdessen tun soll", "question.title": "Frage an dich", "question.fromAgent": "Der Agent braucht eine Entscheidung", "question.fromMcp": "MCP-Server „{server}“ fragt", "question.other": "Andere Antwort (Freitext)", "question.answer": "Deine Antwort", "question.submit": "Antworten", "question.dismiss": "Verwerfen", "settings.tab.general": "Allgemein", "settings.tab.providers": "Provider & Modelle", "settings.tab.mcp": "MCP", "settings.tab.permissions": "Berechtigungen", "settings.tab.agents": "Agenten & Befehle", "settings.tab.raw": "Config-Datei", "settings.saved": "Gespeichert – Änderungen sind aktiv.", "settings.interface": "Oberfläche (dieses Gerät)", "settings.language": "Sprache", "settings.theme": "Design", "settings.themeSystem": "System", "settings.notifications": "Benachrichtigungen", "settings.notificationsEnable": "Aktivieren", "settings.notificationsOn": "Aktiv", "settings.notificationsHint": "Benachrichtigen, wenn ein Agent eine Frage stellt, während die App im Hintergrund ist.", "settings.server": "Server", "settings.workspace": "Workspace", "settings.defaultModel": "Standardmodell", "settings.smallModel": "Kleines Modell", "settings.smallModelHint": "Für Session-Titel. Die Komprimierung nutzt das Session-Modell.", "settings.currency": "Währung", "settings.autoCompact": "Auto-Komprimierung bei", "settings.autoCompactHint": "Anteil des Kontextfensters (0 = aus).", "settings.craft": "Craft-Modus", "settings.cleanRoom": "Clean Room", "settings.cleanRoomHint": "Nur nutzen, was ein Besucher sieht. Aus = Deep-Modus (Quelltext und Skripte dürfen gelesen werden).", "settings.chromium": "Chromium-Programm", "settings.widths": "Bildschirmbreiten (px)", "settings.kind": "Typ", "settings.baseUrl": "Basis-URL", "settings.apiKey": "API-Key", "settings.apiKeyStored": "Gespeichert – leer lassen zum Beibehalten", "settings.apiKeyHint": "Am besten ${ENV_VAR}-Verweise nutzen; direkte Keys stehen im Klartext in der Config-Datei.", "settings.authPrefix": "Auth-Präfix", "settings.enabled": "Aktiv", "settings.modelCount": "{n} Modelle", "settings.models": "Modelle & Preise", "settings.addModel": "Modell", "settings.addDiscovered": "{n} gefundene hinzufügen", "settings.pricesHint": "Preise pro 1 Mio. Tokens in der eingestellten Währung. Cache-Preise fallen auf den Input-Preis zurück.", "settings.modelsEmptyHint": "Keine Modelle eingetragen: Sie werden automatisch beim Provider abgefragt.", "settings.context": "Kontext", "settings.maxOutput": "Max. Ausgabe", "settings.reasoning": "Reasoning", "settings.vision": "Bilder", "settings.effort": "Effort", "settings.priceIn": "Input", "settings.priceOut": "Output", "settings.priceCacheRead": "Cache lesen", "settings.priceCacheWrite": "Cache schreiben", "settings.addProvider": "Provider hinzufügen", "settings.providerName": "Name (optional)", "settings.reloadProviders": "Provider & Modelle neu laden", "settings.deleteProviderConfirm": "Provider „{name}“ löschen?", "settings.invalidName": "Namen dürfen nur Buchstaben, Ziffern, - und _ enthalten.", "settings.name": "Name", "settings.addMcp": "MCP-Server hinzufügen", "settings.deleteMcpConfirm": "MCP-Server „{name}“ löschen?", "settings.rawHint": "Die komplette Konfigurationsdatei inklusive Kommentaren. Sie wird vor dem Speichern geprüft.", "settings.revert": "Zurücksetzen", "mcp.load": "Tools für das Modell", "mcp.loadAuto": "Automatisch (bei vielen Tools bei Bedarf)", "mcp.loadAlways": "Immer alle Tools mitsenden", "mcp.loadOnDemand": "Bei Bedarf (mcp_search / mcp_call)", "mcp.loadHint": "Jedes direkt mitgesendete Tool kostet bei jeder Anfrage Kontext. Große Server besser bei Bedarf laden.", "mcp.reconnect": "Alle neu verbinden", "mcp.none": "Keine MCP-Server konfiguriert.", "mcp.tools": "{n} Tools", "mcp.command": "Befehl", "mcp.args": "Argumente (eins pro Zeile)", "mcp.env": "Umgebung (KEY=Wert)", "mcp.headers": "Header (Name: Wert)", "mcp.state.disabled": "deaktiviert", "mcp.state.connecting": "verbinde…", "mcp.state.connected": "verbunden", "mcp.state.failed": "Fehler", "mcp.state.unknown": "nicht gestartet", "permissions.intro": "Regeln für die Tool-Nutzung. „Fragen“ zeigt eine Freigabekarte. MCP-Tools: mcp____, Platzhalter erlaubt (mcp__*).", "permissions.tools": "Tools", "permissions.bash": "Shell-Befehle", "permissions.bashHint": "Glob-Muster auf den ganzen Befehl. Zusammengesetzte Befehle (&&, ;, |) sind nur erlaubt, wenn jeder Teil erlaubt ist.", "permissions.tool": "Tool", "permissions.pattern": "Muster", "permissions.rule": "Regel", "permissions.allow": "Erlauben", "permissions.ask": "Fragen", "permissions.deny": "Verbieten", "agents.title": "Agenten", "agents.readOnly": "nur lesen", "agents.commands": "Slash-Befehle", "agents.skills": "Skills", "stats.range7": "7 Tage", "stats.range30": "30 Tage", "stats.range90": "90 Tage", "stats.range365": "1 Jahr", "stats.rangeAll": "Alles", "stats.tableView": "Tabellenansicht", "stats.chartView": "Diagrammansicht", "stats.cost": "Kosten", "stats.perRequest": "{v} pro Anfrage", "stats.requests": "Anfragen", "stats.errors": "{n} fehlgeschlagen", "stats.input": "Input", "stats.output": "Output", "stats.cacheRead": "Cache gelesen", "stats.cacheHit": "Cache-Trefferquote", "stats.tokens": "Tokens", "stats.ttft": "Zeit bis zum ersten Token", "stats.ttftHint": "Durchschnittliche Prefill-Wartezeit", "stats.outputSpeed": "Ausgabegeschwindigkeit", "stats.prefillSpeed": "Prefill-Geschwindigkeit", "stats.costPerDay": "Kosten pro Tag nach Modell", "stats.tokensPerDay": "Tokens pro Tag", "stats.heatmap": "Aktivität nach Wochentag und Uhrzeit", "stats.byModel": "Nach Modell", "stats.byProvider": "Nach Provider", "stats.byAgent": "Nach Modus", "stats.topSessions": "Teuerste Sessions", "stats.perDay": "Pro Tag", "stats.day": "Tag", "stats.model": "Modell", "stats.provider": "Provider", "stats.agent": "Modus", "stats.session": "Session", "stats.total": "Gesamt", "stats.other": "Sonstige", "stats.noData": "Keine Anfragen in diesem Zeitraum.", "common.cancel": "Abbrechen", "nav.logout": "Abmelden", "login.username": "Benutzername", "login.password": "Passwort", "login.passwordRepeat": "Passwort wiederholen", "login.setupPrompt": "Noch keine Benutzer. Gib den Setup-Code aus dem Server-Log ein und lege den ersten Admin an.", "login.setupCode": "Setup-Code", "login.createAdmin": "Admin anlegen", "login.invalidCode": "Ungültiger Setup-Code.", "login.mismatch": "Die Passwörter stimmen nicht überein.", "login.or": "oder", "sidebar.shared": "Mit dir geteilt", "chat.readOnly": "nur lesen", "chat.readOnlyHint": "Diese Session wurde mit dir geteilt – du kannst mitlesen, aber nicht schreiben.", "chat.backgroundDone": "Hintergrundaufgabe fertig", "chat.waitingModel": "Warte auf freien Slot bei {model}…", "chat.waitingSubagent": "Warte auf freien Subagent-Slot ({agent})…", "chat.anySubagent": "Limit für alle Subagenten", "tool.background": "Hintergrund", "share.title": "Session teilen", "share.hint": "Ausgewählte Benutzer können diese Session lesend verfolgen.", "share.noUsers": "Keine weiteren Benutzer.", "settings.tab.users": "Benutzer", "settings.tab.folders": "Freigegebene Ordner", "settings.tab.account": "Konto", "settings.maxParallelSubagents": "Parallele Subagenten", "settings.maxParallelSubagentsHint": "Max. gleichzeitig laufende Subagenten über alle Sessions (0 = unbegrenzt).", "settings.maxConcurrency": "Parallele Anfragen", "settings.maxConcurrencyHint": "Max. gleichzeitige Anfragen an diesen Host/dieses Modell; weitere warten in einer Warteschlange. 1 für Server, die nur eine Anfrage gleichzeitig verarbeiten.", "settings.slots": "Slots", "account.title": "Konto", "account.current": "Aktuelles Passwort", "account.new": "Neues Passwort", "account.change": "Passwort ändern", "account.changed": "Passwort geändert. Andere Geräte wurden abgemeldet.", "account.hint": "Mindestens 8 Zeichen.", "users.intro": "Benutzer arbeiten in ihrem eigenen Ordner / und in den für sie freigegebenen Ordnern. Admins können den ganzen Workspace nutzen und den Server verwalten.", "users.username": "Benutzername", "users.usernameHint": "Buchstaben, Ziffern, - _ . – gleichzeitig der Name des Benutzerordners.", "users.displayName": "Anzeigename", "users.role": "Rolle", "users.roleUser": "Benutzer", "users.roleAdmin": "Admin", "users.login": "Anmeldung", "users.password": "Passwort", "users.passwordHint": "Leer lassen für reine Single-Sign-on-Anmeldung.", "users.created": "Angelegt", "users.you": "du", "users.setPassword": "Passwort setzen", "users.newPasswordFor": "Neues Passwort für {name} (mind. 8 Zeichen):", "users.enable": "Aktivieren", "users.disable": "Deaktivieren", "users.deleteConfirm": "Benutzer „{name}“ löschen? Seine Sessions bleiben für Admins sichtbar.", "users.add": "Benutzer hinzufügen", "folders.intro": "Ordner im Workspace, in denen ausgewählte Benutzer zusätzlich zu ihrem eigenen Ordner arbeiten dürfen.", "folders.none": "Noch keine freigegebenen Ordner.", "folders.noUsers": "Keine Benutzer ohne Admin-Rolle.", "folders.add": "Ordner freigeben", "folders.addHint": "Der Ordner wird angelegt, falls er nicht existiert. Bestehende Projektordner lassen sich ebenso freigeben.", "folders.remove": "Freigabe aufheben", "folders.removeConfirm": "Freigabe dieses Ordners aufheben? Die Dateien bleiben erhalten.", "agents.intro": "Modi und Subagenten mit ihrem Modell. Ein Subagent kann auf einem anderen Modell oder Host laufen – z. B. ein kleines Modell, das im Hintergrund Doku oder Übersetzungen schreibt.", "agents.primaryTitle": "Modi", "agents.subagentTitle": "Subagenten", "agents.modePrimary": "Modus", "agents.modeSubagent": "Subagent", "agents.source.builtin": "eingebaut", "agents.source.config": "Config", "agents.source.file": "Datei", "agents.model": "Modell", "agents.sessionModel": "Session-Modell", "agents.modelHint": "Festes Modell für diesen Agenten; leer = das im Chat gewählte Modell.", "agents.maxParallel": "Max. parallel", "agents.maxParallelShort": "max. {n} parallel", "agents.description": "Beschreibung", "agents.descriptionHint": "Anhand dieser Beschreibung entscheidet der Hauptagent, wann er delegiert.", "agents.mode": "Art", "agents.tools": "Tools", "agents.toolsAll": "alle Tools (z. B. read, glob, grep)", "agents.prompt": "Anweisungen", "agents.reset": "Zurücksetzen", "agents.resetConfirm": "„{name}“ auf die eingebauten Standardwerte zurücksetzen?", "agents.deleteConfirm": "Agent „{name}“ löschen?", "agents.add": "Agent hinzufügen", "agents.addWriter": "Writer (Doku, Zusammenfassungen, Übersetzungen)", "agents.addBlank": "Leerer Agent", "stats.user": "Benutzer", "stats.allUsers": "Alle Benutzer", "stats.byUser": "Nach Benutzer", };