2026-04-17 09:09:50 +08:00
export default {
// Login
login : {
title : 'Hermes Web UI' ,
2026-05-23 18:44:53 +08:00
description : 'Geben Sie Benutzername und Passwort ein, um fortzufahren.' ,
2026-04-17 09:09:50 +08:00
placeholder : 'Zugangs-Token' ,
submit : 'Anmelden' ,
tokenRequired : 'Bitte geben Sie Ihren Zugangs-Token ein' ,
invalidToken : 'Ungultiger Token' ,
connectionFailed : 'Verbindung zum Server nicht moglich' ,
2026-04-22 20:27:33 +08:00
passwordLogin : 'Passwort' ,
tokenLogin : 'Token' ,
usernamePlaceholder : 'Benutzername' ,
passwordPlaceholder : 'Passwort' ,
2026-05-24 09:49:21 +08:00
defaultCredentialsHint : 'Standard-Benutzername: admin. Standard-Passwort: 123456.' ,
2026-04-22 20:27:33 +08:00
credentialsRequired : 'Bitte Benutzername und Passwort eingeben' ,
invalidCredentials : 'Ungultiger Benutzername oder Passwort' ,
2026-05-08 18:29:43 +08:00
tooManyAttempts : 'Zu viele fehlgeschlagene Versuche, bitte versuchen Sie es spater erneut' ,
2026-05-24 22:36:21 +08:00
lockResetHint : 'Wenn dies Ihr Server ist, heben Sie die Login-Sperre auf mit:' ,
defaultLoginResetHint : 'Um das Standard-Admin-Passwort zuruckzusetzen, fuhren Sie aus:' ,
2026-05-23 18:44:53 +08:00
sessionExpired : 'Die Anmeldung ist abgelaufen. Bitte melden Sie sich erneut an.' ,
accessDenied : 'Sie haben keine Berechtigung fur diese Ressource.' ,
2026-04-22 20:27:33 +08:00
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' ,
2026-05-23 18:44:53 +08:00
setupDescription : 'Verwalten Sie Benutzername und Passwort fur die Anmeldung.' ,
removeConfirm : 'Passwort-Login ist fur Benutzerkonten erforderlich.' ,
2026-04-22 20:27:33 +08:00
passwordLoginNotConfigured : 'Passwort-Login ist nicht konfiguriert' ,
2026-05-23 18:44:53 +08:00
passwordLoginConfigured : 'Aktuelles Konto: {username}' ,
2026-05-24 09:49:21 +08:00
defaultCredentialTitle : 'Standardkonto und Passwort andern' ,
defaultCredentialMessage : 'Das aktuelle Konto verwendet noch den Standard-Benutzernamen oder das Standard-Passwort. Um unbefugten Zugriff zu vermeiden, andern Sie Benutzername und Passwort des aktuellen Kontos so bald wie moglich.' ,
defaultCredentialAction : 'Jetzt andern' ,
defaultCredentialLater : 'Spater erinnern' ,
2026-05-23 18:44:53 +08:00
},
users : {
title : 'Kontoverwaltung' ,
description : 'Benutzer erstellen, Rollen zuweisen und steuern, auf welche Profile normale Administratoren zugreifen koennen.' ,
create : 'Benutzer erstellen' ,
edit : 'Benutzer bearbeiten' ,
username : 'Benutzername' ,
role : 'Rolle' ,
statusLabel : 'Status' ,
2026-05-23 19:41:51 +08:00
profiles : 'Zugreifbare Profile' ,
2026-05-23 18:44:53 +08:00
profilesPlaceholder : 'Zugreifbare Profile auswaehlen' ,
allProfiles : 'Alle Profile' ,
noProfiles : 'Keine Profile zugewiesen' ,
lastLogin : 'Letzte Anmeldung' ,
newPasswordOptional : 'Neues Passwort (leer lassen zum Beibehalten)' ,
loadFailed : 'Benutzer konnten nicht geladen werden' ,
deleteConfirm : 'Diesen Benutzer loeschen?' ,
enable : 'Aktivieren' ,
disable : 'Deaktivieren' ,
roles : {
superAdmin : 'Super Admin' ,
admin : 'Admin' ,
},
status : {
active : 'Aktiv' ,
disabled : 'Deaktiviert' ,
},
2026-04-17 09:09:50 +08:00
},
// Common
common : {
loading : 'Laden...' ,
cancel : 'Abbrechen' ,
2026-04-17 23:11:57 +08:00
retry : 'Erneutern' ,
2026-04-17 09:09:50 +08:00
delete : 'Loschen' ,
edit : 'Bearbeiten' ,
save : 'Speichern' ,
saved : 'Gespeichert' ,
update : 'Aktualisieren' ,
create : 'Erstellen' ,
saveFailed : 'Speichern fehlgeschlagen' ,
2026-04-24 20:41:14 +08:00
deleteFailed : 'Loschen fehlgeschlagen' ,
2026-04-17 09:09:50 +08:00
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' ,
2026-05-20 17:13:32 +08:00
stop : 'Stoppen' ,
start : 'Starten' ,
expired : 'Abgelaufen' ,
2026-04-17 09:09:50 +08:00
},
// Sidebar
sidebar : {
chat : 'Chat' ,
2026-05-01 11:27:43 +08:00
search : 'Suche' ,
2026-05-07 22:16:52 +08:00
apiRelay : 'API-Relay' ,
2026-05-01 11:27:43 +08:00
history : 'Verlauf' ,
2026-04-17 09:09:50 +08:00
jobs : 'Geplante Aufgaben' ,
models : 'Modelle' ,
profiles : 'Profile' ,
2026-05-10 13:50:39 +02:00
plugins : 'Plugins' ,
2026-04-17 09:09:50 +08:00
skills : 'Fahigkeiten' ,
memory : 'Gedachtnis' ,
logs : 'Protokolle' ,
usage : 'Nutzung' ,
2026-05-23 09:05:03 +08:00
performance : 'Leistung' ,
2026-05-14 09:28:51 +08:00
skillsUsage : 'Skill-Nutzung' ,
2026-04-17 09:09:50 +08:00
channels : 'Kanale' ,
2026-05-20 17:13:32 +08:00
terminal : 'Konsole' ,
2026-04-23 14:10:14 +08:00
files : 'Dateien' ,
2026-04-24 20:41:14 +08:00
groupChat : 'Gruppenchat' ,
groupConversation : 'Konversation' ,
2026-05-19 02:33:53 +02:00
groupConversationShort : 'Konv' ,
groupAgent : 'Agent' ,
groupAgentShort : 'Agent' ,
groupSystem : 'System' ,
groupSystemShort : 'Sys' ,
2026-05-20 17:13:32 +08:00
groupMonitoring : 'Überwachung' ,
groupMonitoringShort : 'Überw.' ,
2026-04-17 09:09:50 +08:00
settings : 'Einstellungen' ,
connected : 'Verbunden' ,
disconnected : 'Getrennt' ,
updateTip : 'Fuhren Sie "hermes-web-ui update" im Terminal aus, um zu aktualisieren' ,
updateVersion : 'Aktualisieren auf v{version}' ,
2026-05-12 03:03:07 +02:00
reloadClientVersion : 'Für v{version} neu laden' ,
2026-04-17 09:09:50 +08:00
updating : 'Aktualisierung...' ,
2026-05-14 12:06:39 +08:00
updateSuccess : 'Aktualisierung erfolgreich. Bitte aktualisieren Sie die Seite in Kurze. Wenn der Dienst langere Zeit nicht startet, starten Sie ihn manuell.' ,
2026-04-17 09:09:50 +08:00
updateFailed : 'Aktualisierung fehlgeschlagen' ,
2026-04-22 20:27:33 +08:00
logout : 'Abmelden' ,
2026-04-24 02:31:42 +02:00
nodeVersionWarning : 'Node.js v{version} erkannt. Bitte aktualisieren Sie auf Version 23 oder neuer.' ,
2026-04-22 20:27:33 +08:00
changelog : 'Anderungsprotokoll' ,
noChangelog : 'Kein Anderungsprotokoll verfugbar' ,
2026-05-20 17:13:32 +08:00
kanban : 'Kanban' ,
groupTools : 'Werkzeuge' ,
2026-05-28 12:30:49 +08:00
groupToolsShort : "Tools" ,
2026-05-29 21:07:00 +08:00
codingAgents : "Coding Agents" ,
2026-05-28 12:30:49 +08:00
versionPreview : "Versionsvorschau" ,
2026-05-20 17:13:32 +08:00
groupPlatform : 'Plattform' ,
gateways : 'Gateways' ,
expand : 'Menü ausklappen' ,
collapse : 'Menü einklappen' ,
2026-04-17 09:09:50 +08:00
},
2026-05-23 09:05:03 +08:00
performance : {
title : 'Leistung' ,
subtitle : 'Systemressourcen, Bridge Broker, Workers und aktive Sitzungen überwachen' ,
refresh : 'Aktualisieren' ,
autoRefreshOn : 'Automatisch aktualisieren' ,
autoRefreshOff : 'Manuell aktualisieren' ,
loadFailed : 'Leistungsdaten konnten nicht geladen werden' ,
systemCpu : 'System-CPU' ,
systemMemory : 'Systemspeicher' ,
activeSessions : 'Aktive Sitzungen' ,
runningSessions : 'Laufend {count}' ,
workers : 'Workers' ,
totalWorkerMemory : 'Worker-Gesamtspeicher' ,
processes : 'Prozesse' ,
uptime : 'Laufzeit' ,
running : 'Läuft' ,
stopped : 'Gestoppt' ,
workerMemory : 'Worker-Speicher' ,
lastUpdated : 'Aktualisiert' ,
profile : 'Profile' ,
memory : 'Speicher' ,
sessions : 'Sitzungen' ,
runningActiveSessions : 'Laufend / Aktiv' ,
lastUsed : 'Zuletzt verwendet' ,
status : 'Status' ,
noWorkers : 'Keine Workers' ,
sessionsByProfile : 'Sitzungen nach Profile' ,
noActiveSessions : 'Keine aktiven Sitzungen' ,
},
2026-05-03 22:10:40 +08:00
// Drawer
drawer : {
2026-05-20 17:13:32 +08:00
terminal : 'Konsole' ,
2026-05-03 22:10:40 +08:00
files : 'Arbeitsbereich' ,
},
2026-04-17 09:09:50 +08:00
// Chat
chat : {
2026-04-22 16:14:50 +08:00
contextRemaining : 'übrig' ,
2026-05-06 15:05:44 +08:00
contextClickToEdit : 'Klicken zum Bearbeiten der Kontextlänge' ,
contextEditTitle : 'Kontextlänge bearbeiten' ,
contextEditDesc : 'Kontextlängenlimit für aktuelles Modell festlegen (in Tokens)' ,
contextEditPlaceholder : 'Kontextlänge eingeben' ,
2026-05-26 19:35:48 +08:00
contextEditHint : 'Häufige Werte: 256k (Hermes-Standard), 128k (GPT-4), 32k (GPT-3.5)' ,
2026-05-06 15:05:44 +08:00
contextEditSave : 'Speichern' ,
contextEditCancel : 'Abbrechen' ,
contextEditInvalid : 'Bitte geben Sie eine gültige Kontextlänge ein' ,
contextEditSuccess : 'Kontextlänge aktualisiert' ,
contextEditFailed : 'Aktualisierung fehlgeschlagen' ,
2026-04-17 09:09:50 +08:00
emptyState : 'Starten Sie eine Konversation mit Hermes Agent' ,
2026-05-19 08:25:01 +08:00
outlineTitle : 'Konversationsübersicht' ,
outlineEmpty : 'Kein Konversationsinhalt' ,
outlineUserQuestion : 'Benutzerfrage' ,
2026-04-17 09:09:50 +08:00
inputPlaceholder : 'Nachricht eingeben... (Enter zum Senden, Shift+Enter fur neue Zeile)' ,
2026-05-15 12:04:03 +08:00
slashCommandArgs : {
message : '<Nachricht>' ,
title : '<Titel>' ,
text : '<Text>' ,
},
slashCommands : {
usage : 'Nutzung der aktuellen Sitzung berechnen' ,
status : 'Sitzungsstatus und Warteschlange anzeigen' ,
abort : 'Aktiven Bridge-Lauf stoppen' ,
queue : 'Nachricht hinter dem aktiven Lauf einreihen' ,
2026-05-25 15:48:17 +08:00
plan : 'Markdown-Implementierungsplan schreiben' ,
2026-05-25 19:26:23 +08:00
goal : 'Set a standing goal that continues across turns' ,
goalStatus : 'Show the active goal status' ,
goalPause : 'Pause the active goal loop' ,
goalResume : 'Resume the paused goal loop' ,
goalDone : 'Complete and clear the active goal' ,
goalClear : 'Clear the active goal' ,
subgoal : 'Add a criterion to the active goal' ,
2026-05-15 12:04:03 +08:00
clear : 'Aktuelle Anzeige leeren' ,
clearHistory : 'Gespeicherten Nachrichtenverlauf dieser Sitzung löschen' ,
title : 'Diese Sitzung umbenennen' ,
compress : 'Kontextkomprimierung im Leerlauf ausführen' ,
steer : 'Steuertext an den aktiven Bridge-Lauf senden' ,
destroy : 'Bridge-Agent für diese Sitzung freigeben' ,
},
2026-04-17 09:09:50 +08:00
attachFiles : 'Dateien anhangen' ,
2026-05-17 09:01:59 +08:00
showToolCalls : 'Tool-Aufrufe anzeigen' ,
hideToolCalls : 'Tool-Aufrufe ausblenden' ,
2026-05-07 10:34:58 +08:00
messageQueue : 'Nachrichtenwarteschlange' ,
removeQueuedMessage : 'Nachricht aus Warteschlange entfernen' ,
2026-04-17 09:09:50 +08:00
stop : 'Stopp' ,
send : 'Senden' ,
contextUsed : 'Kontext verwendet:' ,
sessions : 'Sitzungen' ,
2026-05-06 16:15:42 +08:00
webUiSessions : 'Sitzungen' ,
2026-05-19 16:09:59 +08:00
allProfiles : 'Alle Profile' ,
2026-05-20 18:26:01 +08:00
profileMissingModelsTip : 'Profil "{profile}" hat keinen verfuegbaren Provider oder kein Modell fuer diese Sitzung' ,
2026-05-02 03:00:47 +02:00
sessionScopeHint : 'Chat zeigt nur Web-UI/API-Server-Sitzungen. CLI-, Telegram-, Discord-, Cron- und andere Kanal-Sitzungen sind schreibgeschützt im Verlauf.' ,
openHistory : 'Verlauf öffnen' ,
hermesHistory : 'Hermes-Verlauf' ,
2026-05-19 16:09:59 +08:00
historyScopeHint : 'Schreibgeschützte Hermes-Verlaufssitzungen des aktuellen Profils, nach Quelle gruppiert.' ,
2026-04-17 09:09:50 +08:00
noSessions : 'Keine Sitzungen' ,
newChat : 'Neuer Chat' ,
2026-05-16 00:11:51 +08:00
approvalKicker : 'Terminal-Berechtigung' ,
approvalTitle : 'Befehl vor dem Ausführen prüfen' ,
approvalAllowOnce : 'Einmal erlauben' ,
approvalAllowSession : 'Sitzung erlauben' ,
approvalAlways : 'Immer' ,
approvalDeny : 'Ablehnen' ,
2026-05-24 18:09:39 +08:00
clarifyKicker : 'Agent benötigt Klärung' ,
clarifyTitle : 'Der Agent hat eine Frage an Sie' ,
clarifyPlaceholder : 'Geben Sie Ihre Antwort ein...' ,
clarifySubmit : 'Antworten' ,
clarifyDismiss : 'Schließen' ,
2026-04-17 09:09:50 +08:00
deleteSession : 'Diese Sitzung loschen?' ,
2026-05-06 16:15:42 +08:00
toggleBatchMode : 'Batch-Auswahl' ,
selectAll : 'Alle auswählen' ,
confirmBatchDelete : '{count} ausgewählte Sitzungen löschen?' ,
batchDeleteSuccess : '{count} Sitzungen gelöscht' ,
batchDeletePartial : '{failed} Sitzungen konnten nicht gelöscht werden' ,
batchDeleteFailed : 'Batch-Löschung fehlgeschlagen' ,
2026-05-27 10:05:52 +08:00
importToWebUi : 'In Web UI importieren' ,
importSessionSuccess : 'Sitzung in Web UI importiert' ,
importSessionAlreadyExists : 'Sitzung existiert bereits in Web UI' ,
importSessionFailed : 'Sitzung konnte nicht importiert werden' ,
2026-04-17 09:09:50 +08:00
sessionDeleted : 'Sitzung geloscht' ,
rename : 'Umbenennen' ,
2026-04-22 02:09:58 +02:00
pin : 'Anheften' ,
unpin : 'Lösen' ,
pinned : 'Angeheftet' ,
2026-05-20 17:13:32 +08:00
chatMode : 'Chatmodus' ,
liveMode : 'Live-Modus' ,
2026-04-22 02:09:58 +02:00
liveSessions : 'Live-Sitzungen' ,
recentBadge : 'Kürzlich' ,
linkedSessions : '{count} verknüpft' ,
noVisibleMessages : 'Keine für Menschen sichtbaren Nachrichten.' ,
monitorRoleUser : 'Benutzer' ,
monitorRoleAssistant : 'Assistent' ,
2026-05-24 10:55:55 +08:00
copySessionLink : 'Sitzungslink kopieren' ,
2026-05-24 19:30:32 +08:00
openSessionInNewTab : 'In neuem Tab öffnen' ,
2026-05-24 14:13:42 +03:00
sessionLinkCopied : 'Session link copied' ,
2026-04-17 09:09:50 +08:00
copySessionId : 'Sitzungs-ID kopieren' ,
2026-05-07 13:49:57 +08:00
export : 'Exportieren' ,
exportFull : 'Vollständiger Export (JSON)' ,
exportCompressed : 'Komprimierter Export (TXT)' ,
exportCompressing : 'Komprimiere Kontext, bitte warten...' ,
exportSuccess : 'Sitzung exportiert' ,
exportFailed : 'Export fehlgeschlagen' ,
2026-04-17 09:09:50 +08:00
renamed : 'Umbenannt' ,
renameFailed : 'Umbenennung fehlgeschlagen' ,
renameSession : 'Sitzung umbenennen' ,
2026-05-03 22:10:40 +08:00
sessionNotFound : 'Sitzung nicht gefunden' ,
2026-04-17 09:09:50 +08:00
enterNewTitle : 'Neuen Titel eingeben' ,
other : 'Sonstige' ,
runFailed : 'Ausfuhrung fehlgeschlagen' ,
error : 'Fehler' ,
tool : 'Werkzeug' ,
arguments : 'Argumente' ,
result : 'Ergebnis' ,
truncated : '... (abgeschnitten)' ,
2026-05-20 17:13:32 +08:00
executionDuration : 'Ausführungszeit' , thinkingLabel : 'Denkprozess' ,
2026-04-25 08:46:50 +08:00
thinkingInProgress : 'Denkt…' ,
thinkingShow : 'Denkprozess anzeigen' ,
thinkingHide : 'Denkprozess ausblenden' ,
thinkingDuration : 'Beobachtet {duration}' ,
thinkingChars : '{count} Zeichen' ,
2026-04-26 22:59:43 +08:00
copyBubble : 'Nachricht kopieren' ,
copiedBubble : 'Nachricht kopiert' ,
copyFailed : 'Kopieren fehlgeschlagen' ,
2026-05-02 13:26:57 +08:00
playSpeech : 'Sprache abspielen' ,
2026-05-20 17:13:32 +08:00
pauseSpeech : 'Pausieren' ,
2026-05-02 13:26:57 +08:00
resumeSpeech : 'Fortsetzen' ,
stopSpeech : 'Stoppen' ,
speechNotSupported : 'Sprachwiedergabe in diesem Browser nicht unterstützt' ,
2026-05-20 17:13:32 +08:00
searchEnterHint : 'Enter zum Öffnen · Esc zum Schließen' ,
searchHint : 'Cmd/Ctrl+K' ,
searchScope : 'Suchbereich: nur lokale Web-UI-Sitzungsdatenbank; schreibgeschützte Hermes-Verlaufssitzungen sind nicht enthalten.' ,
searchFailed : 'Sitzungssuche fehlgeschlagen' ,
searchNoSnippet : 'Keine Vorschau verfügbar' ,
searchNoResults : 'Keine passenden Sitzungen' ,
searchRecent : 'Letzte Sitzung' ,
searchEmpty : 'Letzte Sitzungen' ,
searchPlaceholder : 'Sitzungen suchen...' ,
searchSubtitle : 'Nach Titel oder Nachrichteninhalt suchen' ,
searchTitle : 'Sitzungen suchen' ,
stopGateway : 'Gateway stoppen' ,
start : 'Starten' ,
workspaceSetFailed : 'Workspace konnte nicht festgelegt werden' ,
workspaceSet : 'Workspace festgelegt' ,
workspacePlaceholder : 'Projektpfad eingeben, z. B. /home/user/project' ,
workspace : 'Arbeitsbereich' ,
setWorkspaceTitle : 'Sitzungs-Workspace festlegen' ,
setWorkspace : 'Workspace festlegen' ,
modelSetFailed : 'Modell konnte nicht festgelegt werden' ,
modelSet : 'Modell festgelegt' ,
setModelTitle : 'Sitzungsmodell festlegen' ,
setModel : 'Modell festlegen' ,
newCliChat : 'Neue CLI' ,
cliEmptyState : 'CLI-Chat starten' ,
autoPlaySpeech : 'Sprache automatisch abspielen' ,
2026-04-17 09:09:50 +08:00
},
// 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' ,
2026-05-20 17:13:32 +08:00
prompt : 'Eingabeaufforderung' ,
2026-04-17 09:09:50 +08:00
promptPlaceholder : 'Der auszufuhrende Prompt' ,
deliverTarget : 'Zustellziel' ,
origin : 'Herkunft' ,
local : 'Lokal' ,
repeatCount : 'Wiederholungsanzahl (optional)' ,
2026-04-30 10:17:25 +10:00
modelPlaceholder : 'Standardmodell' ,
2026-04-17 09:09:50 +08:00
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' ,
2026-04-30 10:17:25 +10:00
jobTriggered : 'Job ausgelost' ,
modelUpdated : 'Modell aktualisiert' ,
2026-04-17 09:09:50 +08:00
jobDeleted : 'Aufgabe geloscht' ,
status : {
running : 'Lauft' ,
paused : 'Pausiert' ,
disabled : 'Deaktiviert' ,
scheduled : 'Geplant' ,
},
info : {
2026-04-30 10:17:25 +10:00
model : 'Modell' ,
2026-04-17 09:09:50 +08:00
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' ,
2026-04-30 10:17:25 +10:00
triggerImmediately : 'Sofort auslösen' ,
},
runHistory : {
title : 'Verlauf' ,
runs : 'Läufe' ,
noRuns : 'Kein Verlauf gefunden.' ,
2026-04-17 09:09:50 +08:00
},
},
// 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' ,
2026-05-02 10:56:58 +10:00
modified : 'Benutzerbearbeitet' ,
archived : 'Archiviert' ,
pinned : 'Angeheftet' ,
pin : 'Fahigkeit anheften' ,
unpin : 'Anheften aufheben' ,
pinFailed : 'Anheft-Status konnte nicht geandert werden' ,
2026-04-17 09:09:50 +08:00
toggleFailed : 'Aktivieren/Deaktivieren der Fahigkeit fehlgeschlagen' ,
2026-05-02 10:56:58 +10:00
source : {
builtin : 'Integriert' ,
hub : 'Hub' ,
local : 'Lokal' ,
2026-05-24 19:47:52 +08:00
external : 'Extern' ,
2026-05-02 10:56:58 +10:00
},
2026-04-17 09:09:50 +08:00
},
2026-05-10 13:50:39 +02:00
// Plugins
plugins : {
title : 'Plugins' ,
refresh : 'Aktualisieren' ,
notice : 'Schreibgeschütztes Inventar erkennbarer Hermes-Plugin-Manifeste. Discovery-Metadaten werden gelesen, ohne Plugin-Code zu laden. Verwaltungsaktionen bleiben in v1 im CLI; Änderungen gelten für neue Hermes-Sitzungen.' ,
loadFailed : 'Plugins konnten nicht geladen werden' ,
commandCopied : 'Befehl kopiert' ,
searchPlaceholder : 'Key, Name, Beschreibung, Pfad suchen...' ,
source : 'Quelle' ,
kind : 'Typ' ,
statusTitle : 'Status' ,
configStatus : 'config: {status}' ,
notAvailable : 'n/a' ,
copyCommand : 'Befehl kopieren' ,
managedElsewhere : 'anderweitig verwaltet' ,
noMatch : 'Keine Plugins passen zu den aktuellen Filtern' ,
enabled : 'aktiviert' ,
disabled : 'deaktiviert' ,
summary : {
total : 'Gesamt' ,
active : 'Aktiviert / auto' ,
inactive : 'Inaktiv' ,
disabled : 'Deaktiviert' ,
providerManaged : 'Provider-verwaltet' ,
},
status : {
enabled : 'Aktiviert' ,
'auto-active' : 'Auto-aktiv' ,
inactive : 'Inaktiv' ,
disabled : 'Deaktiviert' ,
'provider-managed' : 'Provider-verwaltet' ,
},
statusLabel : {
enabled : 'Per Konfiguration aktiviert' ,
'auto-active' : 'Auto-aktiv' ,
inactive : 'Inaktiv' ,
disabled : 'Deaktiviert' ,
'provider-managed' : 'Provider-verwaltet' ,
},
configStatuses : {
enabled : 'aktiviert' ,
disabled : 'deaktiviert' ,
'not-enabled' : 'nicht aktiviert' ,
auto : 'auto' ,
'provider-managed' : 'provider-verwaltet' ,
},
table : {
plugin : 'Plugin' ,
status : 'Status' ,
source : 'Quelle' ,
kind : 'Typ' ,
capabilities : 'Fähigkeiten' ,
path : 'Pfad / Entry Point' ,
cli : 'CLI' ,
},
capabilities : {
tools : '{count} Tools' ,
hooks : '{count} Hooks' ,
env : '{count} env' ,
},
metadata : {
2026-05-20 17:13:32 +08:00
agentRoot : 'Agent-Stammverzeichnis' ,
2026-05-10 13:50:39 +02:00
python : 'Python' ,
2026-05-20 17:13:32 +08:00
scanCwd : 'Arbeitsverzeichnis scannen' ,
2026-05-10 13:50:39 +02:00
projectPlugins : 'Projekt-Plugins' ,
},
},
2026-04-17 09:09:50 +08:00
// 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' ,
2026-04-25 14:00:07 +08:00
region : 'Region' ,
regionIntl : 'International' ,
regionCn : 'Festlandchina' ,
2026-04-17 09:09:50 +08:00
baseUrlPlaceholder : 'z. B. https://api.example.com/v1' ,
apiKey : 'API-Schlussel' ,
apiKeyPlaceholder : 'sk-...' ,
defaultModel : 'Standardmodell' ,
2026-04-17 22:05:06 +08:00
selectOrInput : 'Modell auswählen oder eingeben...' ,
2026-04-17 09:09:50 +08:00
selectModel : 'Modell auswahlen...' ,
providerAdded : 'Anbieter hinzugefugt' ,
providerDeleted : 'Anbieter geloscht' ,
deleteProvider : 'Anbieter loschen' ,
deleteConfirm : 'Mochten Sie "{name}" wirklich loschen?' ,
2026-04-17 23:11:57 +08:00
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.' ,
2026-05-20 17:13:32 +08:00
nousLoginTitle : 'Nous-Portal-Anmeldung' ,
2026-04-23 08:39:19 +08:00
nousWaiting : 'Geben Sie diesen Code auf der Autorisierungsseite ein:' ,
nousCopyCode : 'Code kopiert' ,
nousOpenLink : 'Autorisierungsseite öffnen' ,
nousApproved : 'Login erfolgreich' ,
nousDenied : 'Autorisierung wurde abgelehnt' ,
nousExpired : 'Autorisierung abgelaufen' ,
2026-04-26 22:51:35 +08:00
copilotLoginTitle : 'GitHub Copilot Anmeldung' ,
copilotWaiting : 'Öffnen Sie GitHub und geben Sie den unten angezeigten Gerätecode ein. Das Fenster schließt sich automatisch nach Genehmigung.' ,
copilotCopyCode : 'Code kopiert' ,
copilotOpenLink : 'GitHub-Autorisierungsseite öffnen' ,
copilotApproved : 'Anmeldung erfolgreich!' ,
copilotDenied : 'Autorisierung abgelehnt.' ,
copilotExpired : 'Der Autorisierungslink ist abgelaufen. Bitte erneut versuchen.' ,
copilotAddDetectedTitle : 'GitHub Copilot erkannt' ,
copilotAddDetected : 'Auf diesem Rechner wurde ein GitHub Copilot OAuth-Token erkannt. Klicken Sie auf „Hinzufügen", um Copilot in Hermes zu aktivieren.' ,
copilotAddSourceEnv : 'Quelle: ~/.hermes/.env (COPILOT_GITHUB_TOKEN)' ,
copilotAddSourceGhCli : 'Quelle: gh CLI (gh auth token)' ,
copilotAddSourceAppsJson : 'Quelle: VS Code Copilot-Erweiterung (apps.json)' ,
copilotDeleteHintEnv : 'Dies löscht COPILOT_GITHUB_TOKEN in ~/.hermes/.env. Andere Tools sind nicht betroffen.' ,
copilotDeleteHintGhCli : 'Copilot wird aus Hermes ausgeblendet. Ihre gh CLI-Anmeldung bleibt erhalten — `gh auth status` zeigt weiterhin als angemeldet.' ,
copilotDeleteHintAppsJson : 'Copilot wird aus Hermes ausgeblendet. Ihre VS Code Copilot-Erweiterung bleibt angemeldet.' ,
2026-04-24 08:49:45 +08:00
customBadge : 'BENUTZERDEF.' ,
2026-04-26 22:51:35 +08:00
previewBadge : 'VORSCHAU' ,
disabledBadge : 'NICHT VERFÜGBAR' ,
disabledTooltip : "Dieses Modell ist für Ihr Konto derzeit nicht verfügbar." ,
2026-05-11 16:18:13 +02:00
customModelPlaceholder : 'Nicht gelistete Modell-ID' ,
customModelHint : 'Für vom Provider unterstützte Modelle, die die API nicht zurückgibt; keine Anzeige-Umbenennung. Enter zum Laden.' ,
2026-04-17 09:09:50 +08:00
noProviders : 'Keine Anbieter gefunden. Fugen Sie einen benutzerdefinierten Anbieter hinzu, um zu beginnen.' ,
2026-05-14 23:36:07 +08:00
clearVisibleModels : 'Auswahl löschen' ,
2026-05-19 16:09:59 +08:00
currentDefault : 'Aktueller Standard' ,
defaultShort : 'Standard' ,
2026-04-17 09:09:50 +08:00
builtIn : 'Integriert' ,
customType : 'Benutzerdefiniert' ,
provider : 'Anbieter' ,
2026-04-24 11:18:11 +08:00
contextLength : 'Kontextlange' ,
2026-05-26 19:35:48 +08:00
contextLengthPlaceholder : 'z.B. 256000 (optional)' ,
2026-04-17 09:09:50 +08:00
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' ,
2026-05-20 17:13:32 +08:00
xaiWaiting : 'Schließen Sie die Autorisierung auf der geöffneten xAI-Seite ab. Das Fenster schließt sich nach der Freigabe automatisch.' ,
xaiOpenLink : 'xAI-Autorisierungsseite öffnen' ,
xaiLoginTitle : 'xAI Grok OAuth-Anmeldung' ,
xaiExpired : 'Der Autorisierungslink ist abgelaufen. Bitte erneut versuchen.' ,
xaiCopyLink : 'Autorisierungslink kopieren' ,
xaiApproved : 'Anmeldung erfolgreich!' ,
visibilitySelectOne : 'Mindestens ein sichtbares Modell behalten' ,
visibilitySaved : 'Sichtbare Modelle gespeichert' ,
visibilitySaveFailed : 'Sichtbare Modelle konnten nicht gespeichert werden' ,
visibilityHint : 'Wirkt sich nur auf Modellauswahl und Modellseite der Web UI aus. Die provider/model-Konfiguration der Hermes CLI wird nicht geändert; Aufrufe verwenden weiterhin die ursprüngliche Modell-ID.' ,
showAllModels : 'Alle Modelle anzeigen' ,
searchPlaceholder : 'Modelle suchen...' ,
removeCustomModel : 'Dieses nicht gelistete Modell entfernen' ,
more : 'weitere' ,
models : 'Modellliste' ,
manageVisibleModelsFor : 'Sichtbare Modelle für {name} verwalten' ,
manageVisibleModels : 'Sichtbare Modelle verwalten' ,
getApiKey : 'API Key abrufen' ,
count : 'Modelle' ,
aliasUseOriginal : 'Ursprüngliche ID wiederherstellen' ,
aliasTitleFor : 'Anzeigename für {model}' ,
aliasTitle : 'Modell-Anzeigename' ,
aliasSaveFailed : 'Anzeigename konnte nicht gespeichert werden' ,
aliasPlaceholder : 'Leer lassen, um die ursprüngliche Modell-ID zu verwenden' ,
aliasManageFor : 'Anzeigenamen für {provider}' ,
aliasManage : 'Anzeigenamen' ,
aliasHint : 'Ändert nur den Anzeigenamen in der Web UI. Hermes erhält weiterhin die ursprüngliche Modell-ID.' ,
aliasEdit : 'Umbenennen' ,
aliasCanonical : 'Original-ID: {model}' ,
2026-04-17 09:09:50 +08:00
},
// Profiles
profiles : {
title : 'Profile' ,
create : 'Profil erstellen' ,
import : 'Importieren' ,
export : 'Exportieren' ,
rename : 'Umbenennen' ,
delete : 'Loschen' ,
2026-05-23 18:44:53 +08:00
switchTo : 'Hermes Profile wechseln' ,
switchConfirm : 'Dies fuehrt `hermes profile use {name}` aus und aendert das aktive Hermes CLI Profile. Fortfahren?' ,
switchSuccess : 'Aktives Hermes Profile ist jetzt "{name}"' ,
switchFailed : 'Hermes Profile konnte nicht gewechselt werden. Das Gateway muss eventuell manuell neu gestartet werden.' ,
2026-04-17 09:09:50 +08:00
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' ,
2026-05-03 22:10:40 +08:00
nameValidation : 'Profilname darf nur Kleinbuchstaben, Zahlen, Unterstriche und Bindestriche enthalten' ,
2026-04-17 09:09:50 +08:00
newName : 'Neuer Name' ,
newNamePlaceholder : 'Neuen Namen eingeben' ,
cloneFromCurrent : 'Aus aktuellem Profil klonen' ,
2026-04-29 20:31:24 +08:00
cloneCleanupNotice : 'Beim Klonen werden exklusive Plattform-Anmeldeinformationen (Weixin / Telegram / Slack usw.) automatisch übersprungen, um Konflikte mit dem Quellprofil zu vermeiden' ,
cloneStrippedCredentials : '{count} exklusive Anmeldeinformation(en) entfernt: {list}' ,
cloneDisabledPlatforms : '{count} Plattform(en) deaktiviert: {list}' ,
cloneStrippedConfigCredentials : '{count} eingebettete Anmeldeinformation(en) aus config.yaml entfernt: {list}' ,
2026-04-17 09:09:50 +08:00
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.' ,
2026-05-20 14:15:01 +08:00
avatar : {
2026-05-20 17:13:32 +08:00
title : 'Eigenes Avatar' ,
customize : 'Avatar anpassen' ,
upload : 'Bild hochladen' ,
random : 'Zufällig erzeugen' ,
reset : 'Standard wiederherstellen' ,
hint : 'PNG, JPEG oder WebP, maximal 1 MB' ,
invalidType : 'Bitte ein PNG-, JPEG- oder WebP-Bild wählen' ,
tooLarge : 'Das Avatar-Bild darf höchstens 1 MB groß sein' ,
saveSuccess : 'Avatar gespeichert' ,
saveFailed : 'Avatar konnte nicht gespeichert werden' ,
resetSuccess : 'Standard-Avatar wiederhergestellt' ,
resetFailed : 'Standard-Avatar konnte nicht wiederhergestellt werden' ,
},
runtime : {
activeProfile : 'Aktuell: {name}' ,
bridgeWorker : 'Bridge-Status' ,
gateway : 'Gateway' ,
active : 'Aktiv' ,
activeTag : 'Aktuell' ,
idle : 'Leerlauf' ,
2026-05-30 09:17:37 +08:00
checking : 'Prüfung läuft' ,
2026-05-20 17:13:32 +08:00
running : 'Läuft' ,
stopped : 'Gestoppt' ,
restartGateway : 'Gateway neu starten' ,
restartProfile : 'Profil neu starten' ,
2026-05-23 19:41:51 +08:00
switchProfile : 'Frontend-Profil wechseln' ,
2026-05-20 17:13:32 +08:00
gatewayRestarted : 'Gateway neu gestartet: {name}' ,
gatewayRestartFailed : 'Gateway-Neustart fehlgeschlagen' ,
profileRestarted : 'Profil neu gestartet: {name}' ,
profileRestartFailed : 'Profil-Neustart fehlgeschlagen' ,
2026-05-20 14:15:01 +08:00
},
2026-04-17 09:09:50 +08:00
},
// 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' ,
2026-05-23 18:44:53 +08:00
account : 'Aktuelles Konto' ,
users : 'Kontoverwaltung' ,
2026-04-17 09:09:50 +08:00
agent : 'Agent' ,
memory : 'Gedachtnis' ,
2026-05-19 17:58:39 +08:00
compression : 'Komprimierung' ,
2026-04-17 09:09:50 +08:00
session : 'Sitzung' ,
privacy : 'Datenschutz' ,
apiServer : 'API-Server' ,
2026-05-10 20:08:38 +08:00
models : 'Modelle' ,
voice : 'Sprache' ,
2026-04-17 09:09:50 +08:00
},
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' ,
},
2026-05-19 17:58:39 +08:00
compression : {
enabled : 'Komprimierung aktivieren' ,
enabledHint : 'Langen Chatverlauf automatisch komprimieren, bevor der Modellkontext uberschritten wird' ,
threshold : 'Komprimierungsschwelle' ,
thresholdHint : 'Komprimierung starten, wenn geschatzte Token dieses Kontextverhaltnis uberschreiten' ,
targetRatio : 'Zielverhaltnis' ,
targetRatioHint : 'Zielgroße des Verlaufs nach der Komprimierung als Kontextverhaltnis' ,
protectLastN : 'Neueste Nachrichten schutzen' ,
protectLastNHint : 'So viele neueste Nachrichten unkomprimiert lassen' ,
protectFirstN : 'Erste Nachrichten schutzen' ,
protectFirstNHint : 'So viele erste Nachrichten unkomprimiert lassen' ,
},
2026-04-17 09:09:50 +08:00
session : {
mode : 'Zurucksetzungsmodus' ,
modeHint : 'Ausloser fur Sitzungszurucksetzung' ,
modeBoth : 'Inaktivitat + Geplant' ,
modeIdle : 'Nur Inaktivitat' ,
2026-05-16 21:18:59 +08:00
modeDaily : 'Nur Geplant' ,
modeNone : 'Nie (nur manuell)' ,
2026-04-17 09:09:50 +08:00
idleMinutes : 'Inaktivitats-Timeout' ,
idleMinutesHint : 'Wartezeit vor automatischer Zurucksetzung (Minuten)' ,
atHour : 'Geplante Zurucksetzungszeit' ,
2026-04-22 02:09:58 +02:00
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' ,
2026-04-17 09:09:50 +08:00
atHourHint : 'Sitzung taglich zu dieser Stunde zurucksetzen' ,
2026-05-04 21:29:39 +08:00
requireAuth : 'Sitzungsautorisierung' ,
requireAuthHint : 'Erfordert Autorisierung für Sitzungsvorgänge' ,
2026-04-17 09:09:50 +08:00
},
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' ,
},
2026-05-10 20:08:38 +08:00
voice : {
ttsProvider : 'TTS-Anbieter' ,
ttsProviderHint : 'Waehlen Sie die Sprachsynthese-Engine fuer die Nachrichtenwiedergabe' ,
providerWebSpeech : 'WebSpeech API (Browser)' ,
providerOpenai : 'OpenAI TTS' ,
providerCustom : 'Benutzerdefinierter Endpunkt (OpenAI-kompatibel)' ,
providerEdge : 'Edge TTS (Kostenlos, kein API-Key erforderlich)' ,
// WebSpeech
webspeechVoice : 'Stimme' ,
webspeechVoiceHint : 'Waehlen Sie eine Stimme aus Ihrem Browser oder Betriebssystem' ,
webspeechVoicePlaceholder : 'Auto (Standardstimme)' ,
// OpenAI
openaiKey : 'API-Key' ,
openaiKeyHint : 'Ihr OpenAI API-Key mit TTS-Zugriff' ,
openaiUrl : 'API-Basis-URL' ,
openaiUrlHint : 'z.B. https://api.openai.com/v1/audio/speech' ,
openaiModel : 'Modell' ,
openaiModelHint : 'tts-1 (schneller) / tts-1-hd (hoehere Qualitaet)' ,
openaiVoice : 'Stimme' ,
openaiVoiceHint : 'Stimme fuer die Synthese' ,
// Custom endpoint
customHint : 'Jede OpenAI-kompatible TTS-API verwenden — funktioniert mit GPT-SoVITS, CosyVoice, usw.' ,
customUrl : 'API-URL' ,
customUrlHint : 'Basis-URL Ihres TTS-Dienstes' ,
customUrlPlaceholder : 'Die im lokalen Adapter konfigurierte Adresse, z.B. http://127.0.0.1:9880' ,
customApiKey : 'API-Key (optional)' ,
customApiKeyHint : 'Einige benutzerdefinierte Endpunkte erfordern Authentifizierung' ,
customApiKeyPlaceholder : 'Leer lassen wenn nicht benoetigt' ,
// Edge TTS
edgeHint : 'Angetrieben von Microsoft Edge TTS (node-edge-tts).' ,
edgeUrl : 'Adapter-URL' ,
edgeUrlHint : 'Adresse des Edge TTS-Adapters, z.B. http://127.0.0.1:9882' ,
edgeUrlPlaceholder : 'http://127.0.0.1:9882' ,
edgeVoice : 'Stimme' ,
edgeVoiceHint : 'Waehlen Sie eine Stimme fuer die Sprachsynthese' ,
2026-05-11 21:56:11 +08:00
edgeRate : 'Geschwindigkeit' ,
edgeRateHint : 'Sprachgeschwindigkeit anpassen (0,5x ~ 2,0x)' ,
edgePitch : 'Tonhöhe' ,
edgePitchHint : 'Tonhöhe anpassen (-20 ~ +20 Hz)' ,
2026-05-10 20:08:38 +08:00
// Test
testTitle : 'Sprachtest' ,
testText : 'Testtext' ,
testTextPlaceholder : 'Text zum Testen eingeben...' ,
testTextDefault : 'Hallo, dies ist ein Sprachtest.' ,
testButton : 'Testen' ,
testButtonPlaying : 'Wiedergabe...' ,
testFailed : 'Test fehlgeschlagen: {error}' ,
2026-05-16 08:55:23 +08:00
// MiMo TTS
providerMimo : 'MiMo TTS' ,
mimoHint : 'Xiaomi MiMo TTS — unterstützt Voreingestellte Stimmen, Stimmdesign und Stimmklonung' ,
mimoApiKey : 'API-Schluessel' ,
mimoApiKeyHint : 'Holen Sie sich Ihren Schluessel auf platform.xiaomimimo.com' ,
mimoApiKeyPlaceholder : 'MiMo API-Schluessel' ,
mimoBaseUrl : 'Basis-URL' ,
mimoBaseUrlHint : 'MiMo API-Endpunkt-URL' ,
mimoModel : 'Modell' ,
mimoModelHint : 'Sprachsynthesemodell auswählen' ,
mimoModelPreset : 'Voreingestellte Stimmen' ,
mimoModelVoiceDesign : 'Stimmdesign' ,
mimoModelVoiceClone : 'Stimmklonung' ,
mimoVoice : 'Stimme' ,
mimoVoiceHint : 'Voreingestellte Stimme auswählen' ,
mimoVoiceDesignPrompt : 'Stimmbeschreibung' ,
mimoVoiceDesignPromptHint : 'Beschreiben Sie die gewünschten Stimmmerkmale' ,
mimoVoiceDesignPromptPlaceholder : 'Z.B.: Eine warme junge Frauenstimme, etwas langsam, mit magnetischem Ton' ,
mimoCloneAudio : 'Audio hochladen' ,
mimoCloneAudioHint : 'Audio-Beispiel für Stimmklonung hochladen (mp3/wav, max. 10 MB)' ,
mimoCloneAudioUpload : 'Datei auswählen' ,
mimoCloneAudioClear : 'Löschen' ,
mimoStylePrompt : 'Stil-Eingabe' ,
mimoStylePromptHint : 'Optional — beschreiben Sie den Sprechstil in natürlicher Sprache' ,
mimoStylePromptPlaceholder : 'Z.B.: Heller, lebhafter Ton, schnelles Tempo' ,
2026-05-10 20:08:38 +08:00
},
2026-05-08 18:29:43 +08:00
lockedIps : {
title : 'Gesperrte IPs' ,
count : '{count} gesperrt' ,
empty : 'Keine gesperrten IPs' ,
unlock : 'Entsperren' ,
unlockAll : 'Alle entsperren' ,
unlockAllConfirm : 'Alle gesperrten IPs entsperren?' ,
unlocked : 'IP entsperrt' ,
allUnlocked : '{count} IPs entsperrt' ,
},
2026-05-20 17:13:32 +08:00
models : {
apiKey : 'API Key' ,
apiKeyPlaceholder : 'API Key eingeben' ,
noProviders : 'Keine Provider konfiguriert' ,
save : 'Speichern' ,
saveFailed : 'Speichern fehlgeschlagen' ,
saved : 'Gespeichert' ,
},
2026-04-17 09:09:50 +08:00
},
2026-05-28 12:30:49 +08:00
githubPreview : {
title : "Versionsvorschau" ,
description : "Klont den ausgewählten GitHub-Tag in den Web-UI-Vorschaubereich, installiert Abhängigkeiten und startet ihn mit den Entwicklungsports." ,
refresh : "Aktualisieren" ,
selectTag : "Tag auswählen" ,
prepare : "Code vorbereiten" ,
install : "Abhängigkeiten installieren" ,
start : "Vorschau starten" ,
stop : "Stoppen" ,
note : "Der Vorschaucode wird im Web-UI-Datenverzeichnis gespeichert. Produktion bleibt auf Port 8648; die Vorschau nutzt Frontend 8651 und Backend 8650." ,
path : "Vorschaupfad" ,
webuiHome : "Vorschau-Datenverzeichnis" ,
currentTag : "Aktueller Tag" ,
repoReady : "Repository bereit" ,
dependencies : "Abhängigkeiten installiert" ,
running : "Status" ,
notRunning : "Nicht gestartet" ,
open : "Vorschau öffnen" ,
log : "Pfad zum Aktionslog" ,
logOutput : "Logausgabe" ,
actionLog : "Aktionslog" ,
devLog : "Dev-Server-Log" ,
yes : "Ja" ,
no : "Nein" ,
actionFailed : "Aktion fehlgeschlagen" ,
prepareSuccess : "Vorschaucode ist bereit" ,
installSuccess : "Abhängigkeiten installiert" ,
startSuccess : "Vorschau gestartet" ,
stopSuccess : "Vorschau gestoppt" ,
},
2026-04-17 09:09:50 +08:00
2026-05-29 21:07:00 +08:00
codingAgents : {
title : "Coding Agents" ,
notice : "Nicht alle Anbieter und Modelle sind kompatibel." ,
claudeDescription : "Anthropic CLI fur einmalige Print-Mode-Aufgaben und interaktive Coding-Sitzungen." ,
codexDescription : "OpenAI CLI und Hermes openai-codex Anbieter-Flow fur Repository-Aufgaben." ,
copyCommand : "Kopieren" ,
commandCopied : "Befehl kopiert" ,
commandCopyFailed : "Kopieren fehlgeschlagen" ,
refresh : "Aktualisieren" ,
checking : "Prufen" ,
installStatus : "Installationsstatus" ,
installed : "Installiert" ,
notInstalled : "Nicht installiert" ,
installNow : "Installieren" ,
installing : "Installiere" ,
installSuccess : "Installiert" ,
installFailed : "Installation fehlgeschlagen" ,
deleteNow : "Loschen" ,
deleting : "Losche" ,
deleteSuccess : "Gelöscht" ,
deleteFailed : "Loschen fehlgeschlagen" ,
configFiles : "Konfigurationsdateien" ,
profileScope : "Profil" ,
providerScope : "Anbieter" ,
providerPlaceholder : "z. B. custom:glm" ,
modelScope : "Modell" ,
modelPlaceholder : "Modell auswahlen" ,
launchModeScope : "Startmodus" ,
launchModeGlobal : "Globale Konfiguration" ,
launchModeScoped : "Anbieter und Modell" ,
protocolScope : "Protokoll" ,
protocolOpenAiChat : "OpenAI Chat Completions (/v1/chat/completions)" ,
protocolOpenAiResponses : "OpenAI Responses (/v1/responses)" ,
protocolAnthropicMessages : "Anthropic Messages (/v1/messages)" ,
reloadConfig : "Konfiguration neu laden" ,
configFileNotCreated : "Nicht erstellt" ,
configLoadFailed : "Konfigurationsdatei konnte nicht gelesen werden" ,
loadFailed : "Coding Agents konnten nicht gepruft werden" ,
launch : "Starten" ,
launchTitle : "Coding Agent starten" ,
nativeTerminal : "Natives Terminal" ,
builtInTerminal : "Integriertes Terminal" ,
launchPrepared : "Startkonfiguration vorbereitet" ,
launchPrepareFailed : "Startkonfiguration konnte nicht vorbereitet werden" ,
nativeLaunchStarted : "Natives Terminal geoffnet" ,
nativeLaunchFailed : "Natives Terminal konnte nicht geoffnet werden" ,
terminalTitle : "Coding-Agent-Terminal" ,
loadProvidersFailed : "Anbieter fur das aktuelle Profil konnten nicht geladen werden" ,
selectProviderModel : "Anbieter und Modell auswahlen" ,
launchConfigDir : "Start-Konfigurationsordner" ,
launchCommand : "Startbefehl" ,
table : {
tool : "Tool" ,
kind : "Schritt" ,
command : "Befehl" ,
note : "Hinweis" ,
action : "Aktion" ,
},
kinds : {
install : "Installation" ,
auth : "Auth" ,
health : "Status" ,
run : "Ausfuhren" ,
},
notes : {
claudeInstall : "Installiert die Claude Code CLI global." ,
codexInstall : "Installiert die Codex CLI global." ,
claudeAuth : "Prüft den Claude Code Login-Status; bei fehlendem Login einmal claude ausfuhren." ,
codexAuth : "Fugt Hermes-verwaltete OpenAI Codex OAuth-Zugangsdaten hinzu." ,
claudeHealth : "Prüft Updater und lokale CLI-Gesundheit." ,
codexHealth : "Bestatigt, dass die Codex CLI im PATH verfugbar ist." ,
claudeRun : "Print mode ist der sauberste Weg fur API-gesteuerte Einmalaufgaben." ,
codexRun : "Codex-Einmalaufgaben mussen in einem Git-Repository laufen." ,
},
},
2026-04-17 09:09:50 +08:00
// 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)' ,
2026-04-29 20:31:24 +08:00
exclusiveTokenWarning : 'Diese Plattform verwendet einen exklusiven Token-Lock. Jedes Profil muss einen anderen Identitäts-Token verwenden, um Konflikte mit anderen Profilen zu vermeiden.' ,
2026-04-17 09:09:50 +08:00
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' ,
2026-05-27 11:32:26 +08:00
cardTemplateId : 'KI-Karten-Vorlagen-ID' ,
cardTemplateIdHint : 'DingTalk KI-Karten-Vorlagen-ID; leer lassen, um KI-Karten zu deaktivieren' ,
2026-04-17 09:09:50 +08:00
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...' ,
2026-05-20 17:13:32 +08:00
qqSandboxHint : 'Sandbox-Umgebung aktivieren (für Tests)' ,
qqSandbox : 'Sandbox-Modus' ,
qqQrScanHint : 'QR-Code oben mit QQ scannen oder Link auf dem Telefon öffnen, um die Bindung abzuschließen' ,
qqMarkdownHint : 'Markdown-formatierte Nachrichten aktivieren (einige Clients unterstützen dies möglicherweise nicht)' ,
qqMarkdown : 'Markdown-Unterstützung' ,
qqAppSecretHint : 'QQ Open Platform Bot App Secret' ,
qqAppSecret : 'App Secret' ,
qqAppIdHint : 'QQ Open Platform Bot App ID' ,
qqAppId : 'App ID' ,
allowedUsersHint : 'Whitelist für Benutzer-IDs oder OpenIDs, durch Kommas getrennt' ,
allowedUsers : 'Erlaubte Benutzer' ,
allowAllUsersHint : 'Nachrichten von beliebigen Benutzern erlauben; deaktiviert lassen, um die Allowlist zu verwenden' ,
allowAllUsers : 'Alle Benutzer erlauben' ,
2026-04-17 09:09:50 +08:00
},
// 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}' ,
2026-05-03 22:10:40 +08:00
noSessions : 'Keine Terminal-Sitzungen' ,
connectionFailed : 'Terminaldienstverbindung fehlgeschlagen' ,
connectionClosed : 'Terminalverbindung geschlossen' ,
connectionError : 'Terminalverbindungsfehler' ,
2026-04-17 09:09:50 +08:00
},
// 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' ,
2026-05-13 01:41:49 +02:00
dailyTrend : 'Tagliche Nutzung' ,
2026-04-17 09:09:50 +08:00
date : 'Datum' ,
tokens : 'Tokens' ,
cache : 'Cache' ,
2026-05-20 17:13:32 +08:00
cacheRead : 'Cache gelesen' ,
cacheWrite : 'Cache geschrieben' ,
2026-04-17 09:09:50 +08:00
sessions : 'Sitzungen' ,
cost : 'Kosten' ,
noData : 'Keine Nutzungsdaten' ,
},
2026-04-22 20:27:33 +08:00
2026-05-14 09:28:51 +08:00
skillsUsage : {
title : 'Skill-Nutzung' ,
subtitle : 'Skill-Ladevorgänge und -Bearbeitungen aus Hermes-Sitzungen verfolgen' ,
refresh : 'Aktualisieren' ,
periodSelector : 'Zeitraum der Skill-Nutzung' ,
periodLabel : '{days} T' ,
summary : 'Zusammenfassung' ,
totalActions : 'Aktionen' ,
loads : 'Laden' ,
edits : 'Änd.' ,
distinctSkills : 'Skillzahl' ,
topSkills : 'Top-Skills' ,
dailyTrend : 'Trend' ,
periodSummary : 'Letzte {days} Tage' ,
skill : 'Fähigkeit' ,
share : '%' ,
lastUsed : 'Zuletzt' ,
noData : 'Keine Skill-Nutzungsdaten' ,
loadFailed : 'Skill-Nutzung konnte nicht geladen werden' ,
otherSkills : 'Andere Skills' ,
},
2026-04-22 20:27:33 +08:00
// Anderungsprotokoll
changelog : {
2026-05-28 13:50:52 +08:00
new_0_6_4_1 : 'CI wurde mit festem npm-Installationsverhalten und Docker-Smoke-Coverage für PRs gehärtet' ,
new_0_6_4_2 : 'Chat nutzt jetzt virtualisierte Pagination, damit lange Gespräche zuverlässiger scrollen und laden' ,
new_0_6_4_3 : 'Docker-Image-Publishing läuft jetzt nur noch für Releases statt für normale PR-Checks' ,
new_0_6_4_4 : 'Version Preview ist für Super-Admins verfügbar, mit main/tag-Auswahl, Preview-Checkout, Dependency-Installation, Start/Stop und Logs' ,
new_0_6_4_5 : 'Preview-Instanzen isolieren Frontend/Backend-Ports, Web UI home und agent bridge endpoint, inklusive Runtime-Patches für ältere Tags zu Ports, WebSocket-Routing, base URL und verschachtelter Preview-Navigation' ,
new_0_6_4_6 : 'Legacy session_usage Tabellen ohne created_at werden jetzt sicher mit einem Standardwert migriert' ,
new_0_6_4_7 : 'Bridge profile worker endpoints werden jetzt nach broker endpoint getrennt, damit Produktion und Preview mit gleichem Profile keine worker sockets stehlen und keine unknown run Fehler auslösen' ,
2026-05-29 21:07:00 +08:00
new_0_6_5_1 : 'Coding Agents bieten jetzt einen vollständigen Start-Workflow für Claude Code und Codex, mit globaler Konfiguration, profile/provider-isolierten Arbeitsbereichen sowie integriertem oder nativem Terminal' ,
new_0_6_5_2 : 'Codex-Start unterstützt OpenAI Chat Completions, OpenAI Responses und Anthropic Messages, inklusive lokaler Proxy-Anpassung für verschiedene Anbieter' ,
new_0_6_5_3 : 'Coding Agents laufen unter Windows stabiler mit .cmd/.bat shim-Erkennung, Terminal-Start-Fixes und Claude Code Custom-Model-Start ohne lokale Modellvalidierung' ,
new_0_6_5_4 : 'Nachrichtenlisten, History-Paging, TTS-Authentifizierung, Gruppenchat-Agent-Erwähnungen, Update-Check-Abschaltung und bridge worker transport verbessern die Laufzeitstabilität' ,
2026-05-27 12:21:37 +08:00
new_0_6_3_1 : 'Bridge-Spinner-Status wird nicht mehr als Modell-Reasoning gespeichert und verschmutzt dadurch keinen späteren Kontext' ,
new_0_6_3_2 : 'History bietet jetzt Controls zum Import von Hermes-CLI-Sessions in die lokale Web-UI-Historie mit sichererer Nachrichten-Normalisierung' ,
new_0_6_3_3 : 'Provider-Setup unterstützt editierbare eingebaute Base URLs, LM Studio als eingebauten Provider und Live-Erkennung über LM Studio /models' ,
new_0_6_3_4 : 'OpenRouter-Anfragen über die Web-UI-Bridge enthalten jetzt Hermes Web UI App-Attribution-Header' ,
new_0_6_3_5 : 'Der öffentliche auth status endpoint gibt den ersten Benutzernamen nicht mehr an nicht authentifizierte Anfragen aus' ,
new_0_6_3_6 : 'DingTalk-Einstellungen enthalten jetzt ein AI Card Template ID Feld, gespeichert als DINGTALK_CARD_TEMPLATE_ID' ,
new_0_6_3_7 : 'Bridge-Socket-JSON-Ausgaben bereinigen isolierte Unicode-Surrogate und verhindern dadurch SSE-Abstürze im Chat' ,
2026-05-26 19:35:48 +08:00
new_0_6_2_1 : 'Web Bridge unterstützt jetzt /plan-Befehle mit korrektem Run-Start und sichtbarem Befehlsstatus' ,
new_0_6_2_2 : 'Das Befehlsmenü im Chat-Eingabefeld enthält jetzt /goal und /subgoal mit Status, Pause, Resume, Done und Clear' ,
new_0_6_2_3 : 'Goal- und Subgoal-Workflows sind jetzt in Chat-Sessions integriert, inklusive Ziel-Fortsetzungen und Statusupdates' ,
new_0_6_2_4 : 'Zielkanaloptionen für Job-Zustellung sind wiederhergestellt, damit geplante Jobs das richtige Ziel auswählen können' ,
new_0_6_2_5 : 'Kontext-token-Nutzung wird nach Reconnects mit snapshot-bewusster Berechnung korrekt fortgesetzt' ,
new_0_6_2_6 : 'Kontext-Checkpoint-Komprimierung ist bei langsamer Codex-Zusammenfassung zuverlässiger: Web UI wartet 5 Minuten und der Python bridge broker beendet worker-Anfragen nicht mehr nach 2 Minuten' ,
new_0_6_2_7 : 'Chat-Queue-Promotion ist korrigiert, sodass queued-Nachrichten nicht zu früh in die Nachrichtenliste springen, auch in synchronisierten Fenstern' ,
new_0_6_2_8 : 'Clarify-Dialoge senden Freitext nicht mehr per Enter ab und beantwortete Prompts öffnen nach Sessionwechsel nicht erneut' ,
new_0_6_2_9 : 'Bridge-Terminal-Umgebungsrefresh und stale-pid-Cleanup sind enger begrenzt und reduzieren veraltete Laufzeitstatus in der UI' ,
new_0_6_2_10 : 'Die Standard-Kontextlänge folgt jetzt dem Hermes-Standard von 256.000 Tokens' ,
2026-05-23 10:41:24 +08:00
new_0_5_35_1 : 'Bridge-Sessions können nun über verschiedene Sessions hinweg parallel laufen, während Läufe derselben Session zur Wahrung der Nachrichtenreihenfolge serialisiert bleiben' ,
new_0_5_35_2 : 'Neue Performance-Monitor-Seite für System-CPU/Speicher, Web UI, Bridge Broker, Workers und aktive Sessions' ,
new_0_5_35_3 : 'Worker-Ressourcenmetriken zeigen CPU, Speicher, Profile, Session-Anzahl und Laufstatus pro worker' ,
new_0_5_35_4 : 'Bridge-worker-Lifecycle-Cleanup verbessert, damit Broker-Shutdowns und beendete Elternprozesse worker zurückfordern und verwaiste Python-Prozesse reduzieren' ,
new_0_5_35_5 : 'Monitoring-Kompatibilität mit Fallbacks für Ressourcenmessung unter macOS, Windows, Linux, Docker und Termux gehärtet' ,
new_0_5_35_6 : 'Performance Monitoring blockiert nicht mehr auf worker-Anfragen während Agent-Initialisierung und reduziert request timeouts unter Windows' ,
new_0_5_35_7 : 'Chat-Markdown unterstützt Inline-Vorschauen für Textinhalte, und Download-Icons laden Dateien direkt herunter statt die Vorschau zu öffnen' ,
new_0_5_35_8 : 'Content-Preview-Drawer verbessert: Schließen-Aktion auf Mobilgeräten, mobile Vollbreite, 800px Desktop-Breite und konsistente Text-/Markdown-Hintergründe' ,
2026-05-24 14:00:31 +08:00
new_0_6_0_1 : 'Account- und Profile-bezogene Verwaltung schützt Sessions, Modelle, Nutzung, Kanban, Jobs, Uploads, Medien und verwandte Hermes APIs konsistent' ,
new_0_6_0_2 : 'Gebündelte Medien-Skills verwenden das generierte Server-Token nur für Medien-Endpunkte und lösen fun-codex/xAI-Zugangsdaten aus dem angeforderten Profile auf' ,
new_0_6_0_3 : 'Einzelchat und Gruppenchat injizieren das aktuelle Hermes Profile in Run-Instructions, damit Skills X-Hermes-Profile senden können' ,
new_0_6_0_4 : 'delegate_task-Subagent-Fortschritt wird mit Start-, Tool-, Fortschritts- und Abschlussstatus in die Chat-UI gestreamt' ,
new_0_6_0_5 : 'Stoppen oder Abbrechen eines Runs bereinigt temporäre Events, damit alte abort-Zustände nicht in den nächsten Chat gelangen' ,
new_0_6_0_6 : 'Dokumentation und Website-Texte für Accountverwaltung, Standard-Zugangsdaten, Account/Profile-Verwaltung, Uploads/Downloads und Medien-Skills aktualisiert' ,
new_0_6_0_7 : 'CLI-Wartungsbefehle zum Löschen von Login-IP-Sperren und Zurücksetzen des Standard-Logins admin / 123456 hinzugefügt' ,
new_0_6_0_8 : 'Version 0.6.0 ist die Grenze zwischen Single-User- und Multi-User-Web-UI. Bei Problemen im Multi-User-Modus bitte ein Issue erstellen und bei Bedarf auf die Single-User-Version 0.5.35 zurückgehen' ,
2026-05-25 13:06:06 +08:00
new_0_6_1_1 : 'Sitzungslisten zeigen standardmäßig alle für das Konto verfügbaren Profile; nur ein expliziter Profilfilter schränkt ein, und CLI start/stop/status zeigen keine node:sqlite-Warnung mehr' ,
new_0_6_1_2 : 'Clarify- und Bestätigungsantworten laufen jetzt über den authentifizierten Chat-Socket zur Hermes Bridge, inklusive Tests für den Antwortpfad' ,
new_0_6_1_3 : 'Navigationseinträge und Chat-Sitzungszeilen nutzen native Links für neues Tab, Link kopieren und persistente eingeklappte Sidebar-Gruppen' ,
new_0_6_1_4 : 'Sitzungslinks leiten Route-Profile nicht mehr in die normale Sitzungslistenfilterung weiter, und Open-in-new-tab-Texte sind lokalisiert' ,
new_0_6_1_5 : 'Skills lesen jetzt skills.external_dirs aus der aktiven Profilkonfiguration, markieren externe Skills, behalten lokale Priorität und lösen externe Dateien auf' ,
new_0_6_1_6 : 'Die Login-IP-Sperre greift nun nach 10 Fehlversuchen, und der gesperrte Login zeigt Befehle zum Entsperren und Zurücksetzen des Standard-Logins' ,
new_0_6_1_7 : 'Mobile oder Hintergrund-Chat-Verbindungsabbrüche gelten als temporär; nach dem Reconnect wird der Run-Zustand vom Server fortgesetzt' ,
new_0_6_1_8 : 'Bridge-Tool-Marker-Flush persistiert nun unvollständige Tool-Call-Präfixe an Tool- und Run-Grenzen' ,
new_0_6_1_9 : 'Profilbewusste History-Aktionen löschen Sitzungen mit profilqualifizierten Zielen und aktualisieren History beim globalen Profilwechsel' ,
new_0_6_1_10 : 'Der alte AUTH_DISABLED-Bypass wurde für Mehrbenutzerrechte entfernt; AUTH_TOKEN bleibt unterstützt' ,
2026-04-22 20:27:33 +08:00
},
2026-04-23 14:10:14 +08:00
// Dateien
files : {
title : 'Dateien' ,
tree : 'Verzeichnisbaum' ,
list : 'Dateiliste' ,
breadcrumbRoot : 'Start' ,
newFile : 'Neue Datei' ,
newFolder : 'Neuer Ordner' ,
upload : 'Hochladen' ,
refresh : 'Aktualisieren' ,
open : 'Offnen' ,
edit : 'Bearbeiten' ,
preview : 'Vorschau' ,
download : 'Herunterladen' ,
copyPath : 'Pfad kopieren' ,
rename : 'Umbenennen' ,
delete : 'Loschen' ,
name : 'Name' ,
size : 'Grosse' ,
modified : 'Geandert' ,
actions : 'Aktionen' ,
emptyDir : 'Leeres Verzeichnis' ,
loading : 'Wird geladen...' ,
confirmDelete : 'Mochten Sie "{name}" wirklich loschen?' ,
confirmDeleteDir : 'Mochten Sie das Verzeichnis "{name}" und seinen gesamten Inhalt wirklich loschen?' ,
deleteFailed : 'Loschen fehlgeschlagen' ,
deleted : 'Geloscht' ,
renameTo : 'Umbenennen in' ,
newFileName : 'Dateiname' ,
newFolderName : 'Ordnername' ,
created : 'Erstellt' ,
createFailed : 'Erstellen fehlgeschlagen' ,
renamed : 'Umbenannt' ,
renameFailed : 'Umbenennen fehlgeschlagen' ,
uploadSuccess : '{count} Datei(en) hochgeladen' ,
uploadFailed : 'Hochladen fehlgeschlagen' ,
saveFailed : 'Speichern fehlgeschlagen' ,
saved : 'Gespeichert' ,
unsavedChanges : 'Sie haben ungespeicherte Anderungen. Verwerfen?' ,
pathCopied : 'Pfad kopiert' ,
fileTooLarge : 'Datei zu gross (max. 10 MB)' ,
permissionDenied : 'Geschutzte Datei kann nicht geandert werden' ,
notFound : 'Datei oder Verzeichnis nicht gefunden' ,
backendError : 'Dateioperation fehlgeschlagen' ,
dragDropHint : 'Dateien hierher ziehen, um sie hochzuladen' ,
closeEditor : 'Editor schliessen' ,
closePreview : 'Schliessen' ,
saveFile : 'Speichern' ,
2026-05-20 17:13:32 +08:00
fileTree : 'Dateibaum' ,
2026-04-23 14:10:14 +08:00
},
2026-04-24 20:41:14 +08:00
// Gruppenchat
groupChat : {
title : 'Gruppenchat' ,
createRoom : 'Raum erstellen' ,
joinByCode : 'Mit Code beitreten' ,
roomName : 'Raumname' ,
roomNamePlaceholder : 'Raumnamen eingeben' ,
inviteCode : 'Einladungscode' ,
autoGenerate : 'Automatisch generieren' ,
noRooms : 'Noch keine Raume' ,
selectOrCreate : 'Wahlen oder erstellen Sie einen Raum, um zu chatten' ,
agents : 'Agenten' ,
addAgent : 'Agent hinzufugen' ,
selectProfile : 'Wahlen Sie ein Profil' ,
agentAdded : 'Agent hinzugefugt' ,
agentAlreadyInRoom : 'Agent ist bereits in diesem Raum' ,
2026-05-21 14:54:41 +08:00
agentAddFailedCount : '{count} Agent(en) wurden nicht hinzugefugt: {details}' ,
2026-04-24 20:41:14 +08:00
noAgents : 'Keine Agenten in diesem Raum' ,
members : 'Mitglieder' ,
roomCreated : 'Raum erstellt' ,
roomDeleted : 'Raum gelöscht' ,
2026-05-15 15:52:16 +08:00
roomCloned : 'Raum geklont' ,
cloneRoom : 'Raum klonen' ,
2026-05-24 10:55:55 +08:00
copyRoomLink : 'Raumlink kopieren' ,
2026-04-24 20:41:14 +08:00
deleteRoomConfirm : 'Diesen Raum löschen?' ,
2026-05-15 15:52:16 +08:00
clearContext : 'Kontext löschen' ,
clearContextConfirm : 'Diesen Raumkontext löschen? Nachrichten und Komprimierungs-Snapshots werden entfernt, Agenten und Mitglieder bleiben.' ,
contextCleared : 'Kontext gelöscht' ,
2026-04-24 20:41:14 +08:00
you : 'Du' ,
joined : 'Raum beigetreten' ,
joinFailed : 'Beitreten fehlgeschlagen' ,
inputPlaceholder : 'Nachricht eingeben... (Enter zum Senden)' ,
enterCode : 'Einladungscode eingeben' ,
yourName : 'Dein Name' ,
yourNamePlaceholder : 'Gib deinen Anzeigenamen ein' ,
yourDescription : 'Beschreibung (optional)' ,
yourDescriptionPlaceholder : 'Erzahl anderen wer du bist...' ,
agentName : 'Agent-Name' ,
agentNamePlaceholder : 'Benutzerdefinierter Name (leer = Profilname)' ,
agentDesc : 'Agent-Beschreibung' ,
agentDescPlaceholder : 'Beschreiben Sie, was dieser Agent tut...' ,
agentReplying : 'antwortet...' ,
agentCompressing : 'komprimiert Kontext...' ,
compressionSettings : 'Komprimierungseinstellungen' ,
triggerTokens : 'Trigger-Token' ,
triggerTokensDesc : 'Token-Schwelle für Kontextkomprimierung' ,
maxHistoryTokens : 'Max. Verlaufs-Token' ,
maxHistoryTokensDesc : 'Maximale Token für komprimierten Kontext' ,
tailMessageCount : 'Nachrichten am Ende' ,
tailMessageCountDesc : 'Anzahl der letzten Nachrichten, die unverändert bleiben' ,
compressionConfig : 'Komprimierungskonfig' ,
compressNow : 'Jetzt komprimieren' ,
compressingInProgress : 'Komprimierung läuft, bitte warten' ,
compressionSaved : 'Konfiguration gespeichert' ,
},
2026-04-23 14:10:14 +08:00
// Download
download : {
downloading : 'Wird heruntergeladen...' ,
downloadFailed : 'Download fehlgeschlagen' ,
fileNotFound : 'Datei nicht gefunden oder geloscht' ,
fileTooLarge : 'Datei zu gross (Limit uberschritten)' ,
backendError : 'Lesen der Datei fehlgeschlagen, Remote-Umgebung moglicherweise nicht verfugbar' ,
backendTimeout : 'Zeituberschreitung beim Lesen der Datei' ,
unsupportedBackend : 'Aktuelles Terminal-Backend unterstutzt keine Datei-Downloads' ,
invalidPath : 'Ungultiger Dateipfad' ,
2026-05-22 19:04:15 +08:00
contentDisplay : 'Inhalt anzeigen' ,
2026-04-23 14:10:14 +08:00
download : 'Herunterladen' ,
2026-04-24 02:31:42 +02:00
downloadFile : 'Datei herunterladen' ,
2026-04-23 14:10:14 +08:00
},
2026-05-20 17:13:32 +08:00
gateways : {
title : 'Gateways' ,
running : 'Läuft' ,
stopped : 'Gestoppt' ,
started : 'Gestartet' ,
startFailed : 'Gateway konnte nicht gestartet werden' ,
stopFailed : 'Gateway konnte nicht gestoppt werden' ,
},
kanban : {
title : 'Kanban-Board' ,
createTask : 'Neue Aufgabe' ,
noTasks : 'Keine Aufgaben' ,
allStatuses : 'Alle Status' ,
allAssignees : 'Alle Verantwortlichen' ,
columns : {
triage : 'Sichtung' ,
todo : 'Zu erledigen' ,
ready : 'Bereit' ,
running : 'In Arbeit' ,
blocked : 'Blockiert' ,
done : 'Erledigt' ,
archived : 'Archiviert' ,
},
card : {
assigneeTooltip : 'Verantwortlicher' ,
priority : {
low : 'Niedrig' ,
medium : 'Mittel' ,
high : 'Hoch' ,
},
timeAgo : {
justNow : 'gerade eben' ,
minutes : 'vor {count} Min.' ,
hours : 'vor {count} Std.' ,
days : 'vor {count} Tg.' ,
},
},
board : {
create : 'Neues Board' ,
archive : 'Board archivieren' ,
archiveConfirm : 'Aktuelles Board archivieren?' ,
archived : 'Board archiviert' ,
created : 'Board erstellt' ,
slugPlaceholder : 'Board-Kennung, z. B. project-a' ,
namePlaceholder : 'Anzeigename (optional)' ,
slugRequired : 'Board-Kennung ist erforderlich' ,
},
form : {
title : 'Titel' ,
titlePlaceholder : 'Aufgabentitel' ,
titleRequired : 'Titel ist erforderlich' ,
body : 'Beschreibung' ,
bodyPlaceholder : 'Aufgabenbeschreibung (optional)' ,
assignee : 'Verantwortlicher' ,
selectAssignee : 'Verantwortlichen wählen...' ,
priority : 'Priorität' ,
selectPriority : 'Priorität wählen...' ,
},
detail : {
status : 'Status' ,
priority : 'Priorität' ,
assignee : 'Verantwortlicher' ,
tenant : 'Mandant' ,
createdAt : 'Erstellt' ,
startedAt : 'Gestartet' ,
completedAt : 'Abgeschlossen' ,
comments : 'Kommentare' ,
events : 'Ereignisse' ,
runs : 'Ausführungen' ,
artifacts : 'Artefakte' ,
result : 'Ergebnis' ,
highlights : 'Highlights' ,
sources : 'Datenquellen' ,
sessions : 'Zugehörige Sitzungen' ,
sessionMessages : 'Sitzungsnachrichten' ,
noSessions : 'Keine zugehörigen Sitzungen gefunden.' ,
},
action : {
title : 'Aktionen' ,
assign : 'Zuweisen' ,
assignTo : 'Zuweisen an...' ,
block : 'Blockieren' ,
blockReason : 'Blockierungsgrund' ,
unblock : 'Blockierung aufheben' ,
complete : 'Abschließen' ,
completeSummary : 'Abschlusszusammenfassung (optional)' ,
},
message : {
loadFailed : 'Aufgabe konnte nicht geladen werden' ,
taskCreated : 'Aufgabe erstellt' ,
taskAssigned : 'Aufgabe zugewiesen' ,
taskBlocked : 'Aufgabe blockiert' ,
taskUnblocked : 'Blockierung aufgehoben' ,
taskCompleted : 'Aufgabe abgeschlossen' ,
},
stats : {
total : 'Gesamt' ,
tasks : 'Aufgaben' ,
},
},
2026-04-17 09:09:50 +08:00
}