export default { // Login login: { title: 'Hermes Web UI', description: 'Geben Sie Ihren Zugangs-Token ein, um fortzufahren. Finden Sie ihn in den Server-Startprotokollen.', placeholder: 'Zugangs-Token', submit: 'Anmelden', tokenRequired: 'Bitte geben Sie Ihren Zugangs-Token ein', invalidToken: 'Ungultiger Token', connectionFailed: 'Verbindung zum Server nicht moglich', passwordLogin: 'Passwort', tokenLogin: 'Token', usernamePlaceholder: 'Benutzername', passwordPlaceholder: 'Passwort', credentialsRequired: 'Bitte Benutzername und Passwort eingeben', invalidCredentials: 'Ungultiger Benutzername oder Passwort', passwordMismatch: 'Passworter stimmen nicht uberein', passwordTooShort: 'Passwort muss mindestens 6 Zeichen lang sein', setupSuccess: 'Passwort-Login erfolgreich konfiguriert', passwordChanged: 'Passwort erfolgreich geandert', passwordRemoved: 'Passwort-Login entfernt', setupPassword: 'Passwort-Login einrichten', changePassword: 'Passwort andern', changeUsername: 'Benutzername andern', removePasswordLogin: 'Entfernen', username: 'Benutzername', currentPassword: 'Aktuelles Passwort', newPassword: 'Neues Passwort', confirmPassword: 'Passwort bestatigen', newUsername: 'Neuer Benutzername', usernameChanged: 'Benutzername erfolgreich geandert', usernameTooShort: 'Benutzername muss mindestens 2 Zeichen lang sein', setupDescription: 'Richten Sie Benutzername und Passwort fur bequemes Login ein. Der Zugangs-Token bleibt als Backup verfugbar.', removeConfirm: 'Mochten Sie das Passwort-Login wirklich entfernen? Sie mussen dann den Zugangs-Token verwenden.', passwordLoginNotConfigured: 'Passwort-Login ist nicht konfiguriert', passwordLoginConfigured: 'Passwort-Login aktiviert ({username})', }, // Common common: { loading: 'Laden...', cancel: 'Abbrechen', retry: 'Erneutern', delete: 'Loschen', edit: 'Bearbeiten', save: 'Speichern', saved: 'Gespeichert', update: 'Aktualisieren', create: 'Erstellen', saveFailed: 'Speichern fehlgeschlagen', ok: 'OK', copied: 'Kopiert', copy: 'Kopieren', noData: 'Keine Daten', fetch: 'Abrufen', add: 'Hinzufugen', enable: 'Aktivieren', disable: 'Deaktivieren', configured: 'Konfiguriert', notConfigured: 'Nicht konfiguriert', confirm: 'Bestatigen', expand: 'Aufklappen', collapse: 'Zuklappen', }, // Sidebar sidebar: { chat: 'Chat', jobs: 'Geplante Aufgaben', models: 'Modelle', profiles: 'Profile', skills: 'Fahigkeiten', memory: 'Gedachtnis', logs: 'Protokolle', usage: 'Nutzung', channels: 'Kanale', terminal: 'Terminal', settings: 'Einstellungen', connected: 'Verbunden', disconnected: 'Getrennt', updateTip: 'Fuhren Sie "hermes-web-ui update" im Terminal aus, um zu aktualisieren', updateVersion: 'Aktualisieren auf v{version}', updating: 'Aktualisierung...', updateSuccess: 'Aktualisierung abgeschlossen, bitte Server neu starten', updateFailed: 'Aktualisierung fehlgeschlagen', logout: 'Abmelden', changelog: 'Anderungsprotokoll', noChangelog: 'Kein Anderungsprotokoll verfugbar', }, // Chat chat: { contextRemaining: 'übrig', emptyState: 'Starten Sie eine Konversation mit Hermes Agent', inputPlaceholder: 'Nachricht eingeben... (Enter zum Senden, Shift+Enter fur neue Zeile)', attachFiles: 'Dateien anhangen', stop: 'Stopp', send: 'Senden', contextUsed: 'Kontext verwendet:', sessions: 'Sitzungen', noSessions: 'Keine Sitzungen', newChat: 'Neuer Chat', deleteSession: 'Diese Sitzung loschen?', sessionDeleted: 'Sitzung geloscht', rename: 'Umbenennen', pin: 'Anheften', unpin: 'Lösen', pinned: 'Angeheftet', chatMode: 'Chat', liveMode: 'Live', liveSessions: 'Live-Sitzungen', recentBadge: 'Kürzlich', linkedSessions: '{count} verknüpft', noVisibleMessages: 'Keine für Menschen sichtbaren Nachrichten.', monitorRoleUser: 'Benutzer', monitorRoleAssistant: 'Assistent', copySessionId: 'Sitzungs-ID kopieren', renamed: 'Umbenannt', renameFailed: 'Umbenennung fehlgeschlagen', renameSession: 'Sitzung umbenennen', enterNewTitle: 'Neuen Titel eingeben', other: 'Sonstige', runFailed: 'Ausfuhrung fehlgeschlagen', error: 'Fehler', tool: 'Werkzeug', arguments: 'Argumente', result: 'Ergebnis', truncated: '... (abgeschnitten)', }, // Jobs jobs: { title: 'Geplante Aufgaben', createJob: 'Aufgabe erstellen', editJob: 'Aufgabe bearbeiten', noJobs: 'Noch keine geplanten Aufgaben. Erstellen Sie eine, um zu beginnen.', name: 'Name', namePlaceholder: 'Aufgabenname', schedule: 'Zeitplan (Cron-Ausdruck)', schedulePlaceholder: 'z. B. 0 9 * * *', quickPresets: 'Schnellvorgaben', selectPreset: 'Vorgabe auswahlen...', presetEveryMinute: 'Jede Minute', presetEvery5Min: 'Alle 5 Minuten', presetEveryHour: 'Jede Stunde', presetEveryDay: 'Jeden Tag um 00:00', presetEveryDay9: 'Jeden Tag um 09:00', presetEveryMonday: 'Jeden Montag um 09:00', presetEveryMonth: 'Am 1. jedes Monats um 09:00', prompt: 'Prompt', promptPlaceholder: 'Der auszufuhrende Prompt', deliverTarget: 'Zustellziel', origin: 'Herkunft', local: 'Lokal', repeatCount: 'Wiederholungsanzahl (optional)', repeatPlaceholder: 'Leer lassen fur unendlich', jobCreated: 'Aufgabe erstellt', jobUpdated: 'Aufgabe aktualisiert', nameRequired: 'Name ist erforderlich', scheduleRequired: 'Zeitplan ist erforderlich', loadFailed: 'Laden der Aufgabe fehlgeschlagen', jobPaused: 'Aufgabe pausiert', jobResumed: 'Aufgabe fortgesetzt', jobTriggered: 'Aufgabe ausgelost', jobDeleted: 'Aufgabe geloscht', status: { running: 'Lauft', paused: 'Pausiert', disabled: 'Deaktiviert', scheduled: 'Geplant', }, info: { schedule: 'Zeitplan', lastRun: 'Letzte Ausfuhrung', nextRun: 'Nachste Ausfuhrung', deliver: 'Zustellung', repeat: 'Wiederholung', }, action: { pause: 'Pausieren', pauseJob: 'Aufgabe pausieren', resume: 'Fortsetzen', resumeJob: 'Aufgabe fortsetzen', runNow: 'Jetzt ausfuhren', triggerImmediately: 'Sofort auslosen', }, }, // Skills skills: { title: 'Fahigkeiten', searchPlaceholder: 'Fahigkeiten suchen...', noMatch: 'Keine Fahigkeiten entsprechen Ihrer Suche', noSkills: 'Keine Fahigkeiten gefunden', backTo: 'Zuruck zu', attachedFiles: 'Angehange Dateien', loadFailed: 'Laden der Fahigkeit fehlgeschlagen', fileLoadFailed: 'Laden der Datei fehlgeschlagen', toggleFailed: 'Aktivieren/Deaktivieren der Fahigkeit fehlgeschlagen', }, // Memory memory: { title: 'Gedachtnis', refresh: 'Aktualisieren', loadFailed: 'Laden des Gedachtnisses fehlgeschlagen', myNotes: 'Meine Notizen', noNotes: 'Noch keine Notizen.', notesPlaceholder: 'Notizen schreiben...', userProfile: 'Benutzerprofil', noProfile: 'Noch kein Profil.', profilePlaceholder: 'Profil schreiben...', soul: 'Seele', noSoul: 'Noch keine Seelenkonfiguration.', soulPlaceholder: 'Seelenkonfiguration schreiben...', }, // Models models: { title: 'Modelle', addProvider: 'Anbieter hinzufugen', providerType: 'Anbietertyp', preset: 'Vorgabe', custom: 'Benutzerdefiniert', selectProvider: 'Anbieter auswahlen', chooseProvider: 'Anbieter wahlen...', name: 'Name', autoGeneratedName: 'Automatisch aus Basis-URL generiert', baseUrl: 'Basis-URL', baseUrlPlaceholder: 'z. B. https://api.example.com/v1', apiKey: 'API-Schlussel', apiKeyPlaceholder: 'sk-...', defaultModel: 'Standardmodell', selectOrInput: 'Modell auswählen oder eingeben...', selectModel: 'Modell auswahlen...', providerAdded: 'Anbieter hinzugefugt', providerDeleted: 'Anbieter geloscht', deleteProvider: 'Anbieter loschen', deleteConfirm: 'Mochten Sie "{name}" wirklich loschen?', codexLoginTitle: 'OpenAI Codex Anmeldung', codexWaiting: 'Geben Sie diesen Code auf der Autorisierungsseite ein, um sich anzumelden:', codexCopyCode: 'Code kopiert', codexOpenLink: 'Autorisierungsseite öffnen', codexApproved: 'Anmeldung erfolgreich', codexExpired: 'Die Autorisierung ist abgelaufen. Bitte versuchen Sie es erneut.', noProviders: 'Keine Anbieter gefunden. Fugen Sie einen benutzerdefinierten Anbieter hinzu, um zu beginnen.', builtIn: 'Integriert', customType: 'Benutzerdefiniert', provider: 'Anbieter', local: 'Lokal ({host})', selectProviderRequired: 'Bitte wahlen Sie einen Anbieter', baseUrlRequired: 'Basis-URL ist erforderlich', apiKeyRequired: 'API-Schlussel ist erforderlich', modelRequired: 'Standardmodell ist erforderlich', enterBaseUrl: 'Bitte geben Sie zuerst die Basis-URL ein', unexpectedFormat: 'Unerwartetes Antwortformat', foundModels: '{count} Modelle gefunden', fetchFailed: 'Abrufen der Modelle fehlgeschlagen', }, // Profiles profiles: { title: 'Profile', create: 'Profil erstellen', import: 'Importieren', export: 'Exportieren', rename: 'Umbenennen', delete: 'Loschen', switchTo: 'Wechseln zu', switchConfirm: 'Das Wechseln zum Profil "{name}" startet das Gateway neu. Fortfahren?', switchSuccess: 'Zum Profil "{name}" gewechselt', switchFailed: 'Profilwechsel fehlgeschlagen. Moglicherweise muss das Gateway manuell neu gestartet werden.', createSuccess: 'Profil "{name}" erstellt', createFailed: 'Erstellen des Profils fehlgeschlagen', renameSuccess: 'Profil umbenannt', renameFailed: 'Umbenennung des Profils fehlgeschlagen', deleteConfirm: 'Mochten Sie das Profil "{name}" wirklich loschen?', deleteSuccess: 'Profil geloscht', deleteFailed: 'Loschen des Profils fehlgeschlagen', exportSuccess: 'Profil exportiert', exportFailed: 'Exportieren des Profils fehlgeschlagen', importSuccess: 'Profil importiert', importFailed: 'Importieren des Profils fehlgeschlagen', importSelectFile: 'Archivdatei auswahlen', importInvalidFile: 'Bitte wahlen Sie ein gultiges Archiv (.tar.gz, .tgz, .gz, .zip)', name: 'Profilname', namePlaceholder: 'Nur Buchstaben, Zahlen und Bindestriche', newName: 'Neuer Name', newNamePlaceholder: 'Neuen Namen eingeben', cloneFromCurrent: 'Aus aktuellem Profil klonen', archivePath: 'Archivpfad', archivePathPlaceholder: 'Serverpfad zur Archivdatei', importName: 'Profilname (optional)', importNamePlaceholder: 'Leer lassen, um den Archivnamen zu verwenden', active: 'Aktiv', model: 'Modell', gateway: 'Gateway', alias: 'Alias', provider: 'Anbieter', path: 'Pfad', skills: 'Fahigkeiten', hasEnv: 'Hat .env', hasSoulMd: 'Hat soul.md', noProfiles: 'Keine Profile gefunden. Erstellen Sie eines, um zu beginnen.', }, // Logs logs: { title: 'Protokolle', all: 'Alle', searchPlaceholder: 'Suchen...', refresh: 'Aktualisieren', noEntries: 'Keine Protokolleintrage', }, // Settings settings: { title: 'Einstellungen', saved: 'Gespeichert', saveFailed: 'Speichern fehlgeschlagen', tabs: { display: 'Anzeige', account: 'Konto', agent: 'Agent', memory: 'Gedachtnis', session: 'Sitzung', privacy: 'Datenschutz', apiServer: 'API-Server', }, display: { streaming: 'Streaming-Antworten', streamingHint: 'KI-Antworten in Echtzeit anzeigen', compact: 'Kompaktmodus', compactHint: 'Nachrichtenabstand reduzieren', showReasoning: 'Schlussfolgerung anzeigen', showReasoningHint: 'Denkprozess des Modells anzeigen', showCost: 'Kosten anzeigen', showCostHint: 'Token-Nutzung in Antworten anzeigen', inlineDiffs: 'Inline-Diffs', inlineDiffsHint: 'Codeanderungen inline anzeigen', bellOnComplete: 'Abschluss-Signalton', bellOnCompleteHint: 'Ton abspielen, wenn die KI fertig ist', busyInputMode: 'Eingabemodus bei Beschaftigung', busyInputModeHint: 'Eingabe erlauben, wahrend die KI verarbeitet', theme: 'Design', themeHint: 'Hell, Dunkel oder Systemeinstellung verwenden', themeLight: 'Hell', themeDark: 'Dunkel', themeSystem: 'System', }, agent: { maxTurns: 'Maximale Runden', maxTurnsHint: 'Maximale Interaktionsrunden pro Konversation', gatewayTimeout: 'Gateway-Timeout', gatewayTimeoutHint: 'Anfrage-Timeout in Sekunden', restartDrainTimeout: 'Neustart-Drain-Timeout', restartDrainTimeoutHint: 'Drain-Timeout vor Neustart in Sekunden', toolEnforcement: 'Werkzeuferzwingung', toolEnforcementHint: 'Ausfuhrungsmodus fur Werkzeugaufrufe steuern', auto: 'Automatisch', always: 'Immer', never: 'Nie', }, memory: { enabled: 'Gedachtnis aktivieren', enabledHint: 'KI erlauben, den Konversationskontext zu merken', userProfile: 'Benutzerprofil', userProfileHint: 'KI erlauben, Benutzereinstellungen zu merken', charLimit: 'Zeichenlimit fur Gedachtnis', charLimitHint: 'Maximale Zeichen fur MEMORY.md', userCharLimit: 'Zeichenlimit fur Benutzerprofil', userCharLimitHint: 'Maximale Zeichen fur USER.md', }, session: { mode: 'Zurucksetzungsmodus', modeHint: 'Ausloser fur Sitzungszurucksetzung', modeBoth: 'Inaktivitat + Geplant', modeIdle: 'Nur Inaktivitat', modeHourly: 'Nur Geplant', idleMinutes: 'Inaktivitats-Timeout', idleMinutesHint: 'Wartezeit vor automatischer Zurucksetzung (Minuten)', atHour: 'Geplante Zurucksetzungszeit', humanOnly: 'Nur menschliche Sitzungen anzeigen', humanOnlyHint: 'Unteragenten- und Sitzungsmonitor-Rauschen standardmäßig ausblenden', liveMonitorHumanOnly: 'Live-Monitor: nur menschliche Sitzungen anzeigen', liveMonitorHumanOnlyHint: 'Im Live-Monitor Unteragenten- und Sitzungsmonitor-Rauschen standardmäßig ausblenden', atHourHint: 'Sitzung taglich zu dieser Stunde zurucksetzen', }, privacy: { redactPii: 'Personliche Daten maskieren', redactPiiHint: 'Sensible Informationen automatisch erkennen und ausblenden (Passworter, Schlussel usw.)', }, apiServer: { enable: 'Aktivieren', enableHint: 'API-Server aktivieren', host: 'Host', hostHint: 'Listen-Adresse', port: 'Port', portHint: 'Listen-Port', key: 'Schlussel', keyHint: 'API-Zugangsschlussel', cors: 'CORS-Ursprunge', corsHint: 'Erlaubte Cross-Origin-Quellen', }, }, // Platform channel settings platform: { requireMention: "Erwahnung {'@'} erfordern", requireMentionGroup: "Erwahnung {'@'} in Gruppen erfordern zum Antworten", requireMentionChannel: "Erwahnung {'@'} in Kanalen erfordern zum Antworten", requireMentionRoom: "Erwahnung {'@'} in Raumen erfordern zum Antworten", reactions: 'Reaktionen', reactionsHint: 'Auf Nachrichten mit Emoji reagieren', freeResponseChats: 'Frei antwortende Chats', freeResponseChatsHint: "Chat-IDs, die ohne {'@'}Erwahnung antworten (komma-getrennt)", freeResponseChannels: 'Frei antwortende Kanale', freeResponseChannelsHint: "Kanal-IDs, die ohne {'@'}Erwahnung antworten (komma-getrennt)", freeResponseRooms: 'Frei antwortende Raume', freeResponseRoomsHint: "Raum-IDs, die ohne {'@'}Erwahnung antworten (komma-getrennt)", mentionPatterns: 'Benutzerdefinierte Erwahnungsmuster', mentionPatternsHint: 'Zusatzliche Auslosermuster', autoThread: 'Auto-Thread', autoThreadHint: "Automatisch Antwort-Threads nach {'@'}Erwahnung erstellen", autoThreadHintRoom: 'Automatisch Antwort-Threads in Raumen erstellen', dmMentionThreads: 'DM-Erwahnungs-Threads', dmMentionThreadsHint: 'Thread-Antworten fur Erwahnungen in DMs verwenden', allowBots: 'Bot-Nachrichten erlauben', allowBotsHint: 'Auf Nachrichten von anderen Bots antworten', allowedChannels: 'Erlaubte Kanale', allowedChannelsHint: 'Whitelist der Kanal-IDs (komma-getrennt)', ignoredChannels: 'Ignorierte Kanale', ignoredChannelsHint: 'Kanale, in denen der Bot nie antwortet (komma-getrennt)', noThreadChannels: 'Thread-lose Kanale', noThreadChannelsHint: 'Kanale, in denen der Bot ohne Threads antwortet (komma-getrennt)', botToken: 'Bot-Token', botTokenHint: 'Bot-Token vom Entwicklerportal', accessToken: 'Zugangs-Token', accessTokenHint: 'Matrix-Zugangs-Token', homeserver: 'Homeserver-URL', homeserverHint: 'Matrix-Homeserver-URL', appId: 'App-ID', appIdHint: 'Feishu App-ID', appSecret: 'App-Geheimnis', appSecretHint: 'Feishu App-Geheimnis', clientId: 'Client-ID', clientIdHint: 'DingTalk Client-ID', clientSecret: 'Client-Geheimnis', clientSecretHint: 'DingTalk Client-Geheimnis', botId: 'Bot-ID', botIdHint: 'WeCom Bot-ID', wecomSecretHint: 'WeCom Bot-Geheimnis', waEnabled: 'WhatsApp aktivieren', waEnabledHint: 'WhatsApp uber QR-Code-Kopplung aktivieren', weixinToken: 'Weixin-Token', weixinTokenHint: 'Von Weixin-CLI QR-Anmeldung (hermes weixin)', accountId: 'Konto-ID', accountIdHint: 'Weixin-Konto-ID', qrLogin: 'QR-Anmeldung', qrRelogin: 'Erneut anmelden', qrFetching: 'QR-Code wird abgerufen...', qrScanHint: 'Mit WeChat scannen zum Anmelden', qrScanedHint: 'Gescannt, bitte auf dem Gerat bestatigen...', }, // Language language: { label: 'Sprache', zh: '中文', en: 'English', de: 'Deutsch', }, // Terminal terminal: { sessions: 'Sitzungen', newTab: 'Neues Terminal', closeSession: 'Diese Sitzung schliessen?', sessionExited: 'Beendet', processExited: 'Prozess beendet mit Code {code}', }, // Usage usage: { title: 'Nutzungsstatistiken', refresh: 'Aktualisieren', totalTokens: 'Gesamt-Tokens', inputTokens: 'Eingabe', outputTokens: 'Ausgabe', totalSessions: 'Gesamt-Sitzungen', avgPerDay: '~{n}/Tag Durchschn.', estimatedCost: 'Gesch. Kosten', cacheHitRate: 'Cache-Trefferquote', modelBreakdown: 'Modellaufschluesselung', dailyTrend: 'Tagliche Nutzung (letzte 30 Tage)', date: 'Datum', tokens: 'Tokens', cache: 'Cache', sessions: 'Sitzungen', cost: 'Kosten', noData: 'Keine Nutzungsdaten', }, // Anderungsprotokoll changelog: { new_0_4_3_1: 'Benutzername/Passwort-Login neben Token-Authentifizierung hinzugefugt', new_0_4_3_2: 'Kontoeinstellungen fur Anmeldeinformationen hinzugefugt', new_0_4_3_3: 'Abmelden-Schaltflache in der Seitenleiste hinzugefugt', new_0_4_3_4: 'Anderungsprotokoll-Popup durch Klick auf Versionsnummer hinzugefugt', new_0_4_2_1: 'Token-Nutzungsverfolgung und dynamische Kontextlange hinzugefugt', new_0_4_2_2: 'Sitzungssuche-Modal hinzugefugt', new_0_4_2_3: 'Gruppenchat-System mit Socket.IO und SQLite wiederhergestellt', new_0_4_2_4: 'Angeheftete Sitzungen und Live-Monitor hinzugefugt', new_0_4_2_5: 'Eingebaute Provider-Erkennung und Modellabgleich behoben', new_0_4_1_1: 'Authentifizierungsumgehung und SPA-Bereitstellung behoben', }, }