1352 lines
59 KiB
TypeScript
1352 lines
59 KiB
TypeScript
export default {
|
|
// Login
|
|
login: {
|
|
title: 'Hermes Web UI',
|
|
description: 'Geben Sie Benutzername und Passwort ein, um fortzufahren.',
|
|
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',
|
|
defaultCredentialsHint: 'Standard-Benutzername: admin. Standard-Passwort: 123456.',
|
|
credentialsRequired: 'Bitte Benutzername und Passwort eingeben',
|
|
invalidCredentials: 'Ungultiger Benutzername oder Passwort',
|
|
tooManyAttempts: 'Zu viele fehlgeschlagene Versuche, bitte versuchen Sie es spater erneut',
|
|
lockResetHint: 'Wenn dies Ihr Server ist, heben Sie die Login-Sperre auf mit:',
|
|
defaultLoginResetHint: 'Um das Standard-Admin-Passwort zuruckzusetzen, fuhren Sie aus:',
|
|
sessionExpired: 'Die Anmeldung ist abgelaufen. Bitte melden Sie sich erneut an.',
|
|
accessDenied: 'Sie haben keine Berechtigung fur diese Ressource.',
|
|
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: 'Verwalten Sie Benutzername und Passwort fur die Anmeldung.',
|
|
removeConfirm: 'Passwort-Login ist fur Benutzerkonten erforderlich.',
|
|
passwordLoginNotConfigured: 'Passwort-Login ist nicht konfiguriert',
|
|
passwordLoginConfigured: 'Aktuelles Konto: {username}',
|
|
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',
|
|
},
|
|
|
|
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',
|
|
profiles: 'Zugreifbare Profile',
|
|
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',
|
|
},
|
|
},
|
|
|
|
// Common
|
|
common: {
|
|
loading: 'Laden...',
|
|
cancel: 'Abbrechen',
|
|
retry: 'Erneutern',
|
|
delete: 'Loschen',
|
|
edit: 'Bearbeiten',
|
|
save: 'Speichern',
|
|
saved: 'Gespeichert',
|
|
update: 'Aktualisieren',
|
|
create: 'Erstellen',
|
|
saveFailed: 'Speichern fehlgeschlagen',
|
|
deleteFailed: 'Loschen 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',
|
|
stop: 'Stoppen',
|
|
start: 'Starten',
|
|
expired: 'Abgelaufen',
|
|
},
|
|
|
|
// Sidebar
|
|
sidebar: {
|
|
chat: 'Chat',
|
|
search: 'Suche',
|
|
apiRelay: 'API-Relay',
|
|
history: 'Verlauf',
|
|
jobs: 'Geplante Aufgaben',
|
|
models: 'Modelle',
|
|
profiles: 'Profile',
|
|
plugins: 'Plugins',
|
|
skills: 'Fahigkeiten',
|
|
memory: 'Gedachtnis',
|
|
logs: 'Protokolle',
|
|
usage: 'Nutzung',
|
|
performance: 'Leistung',
|
|
skillsUsage: 'Skill-Nutzung',
|
|
channels: 'Kanale',
|
|
terminal: 'Konsole',
|
|
files: 'Dateien',
|
|
groupChat: 'Gruppenchat',
|
|
groupConversation: 'Konversation',
|
|
groupConversationShort: 'Konv',
|
|
groupAgent: 'Agent',
|
|
groupAgentShort: 'Agent',
|
|
groupSystem: 'System',
|
|
groupSystemShort: 'Sys',
|
|
groupMonitoring: 'Überwachung',
|
|
groupMonitoringShort: 'Überw.',
|
|
settings: 'Einstellungen',
|
|
connected: 'Verbunden',
|
|
disconnected: 'Getrennt',
|
|
updateTip: 'Fuhren Sie "hermes-web-ui update" im Terminal aus, um zu aktualisieren',
|
|
updateVersion: 'Aktualisieren auf v{version}',
|
|
reloadClientVersion: 'Für v{version} neu laden',
|
|
updating: 'Aktualisierung...',
|
|
updateSuccess: 'Aktualisierung erfolgreich. Bitte aktualisieren Sie die Seite in Kurze. Wenn der Dienst langere Zeit nicht startet, starten Sie ihn manuell.',
|
|
updateFailed: 'Aktualisierung fehlgeschlagen',
|
|
logout: 'Abmelden',
|
|
nodeVersionWarning: 'Node.js v{version} erkannt. Bitte aktualisieren Sie auf Version 23 oder neuer.',
|
|
changelog: 'Anderungsprotokoll',
|
|
noChangelog: 'Kein Anderungsprotokoll verfugbar',
|
|
kanban: 'Kanban',
|
|
groupTools: 'Werkzeuge',
|
|
groupPlatform: 'Plattform',
|
|
gateways: 'Gateways',
|
|
expand: 'Menü ausklappen',
|
|
collapse: 'Menü einklappen',
|
|
},
|
|
|
|
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',
|
|
},
|
|
|
|
// Drawer
|
|
drawer: {
|
|
terminal: 'Konsole',
|
|
files: 'Arbeitsbereich',
|
|
},
|
|
|
|
// Chat
|
|
chat: {
|
|
contextRemaining: 'übrig',
|
|
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',
|
|
contextEditHint: 'Häufige Werte: 256k (Hermes-Standard), 128k (GPT-4), 32k (GPT-3.5)',
|
|
contextEditSave: 'Speichern',
|
|
contextEditCancel: 'Abbrechen',
|
|
contextEditInvalid: 'Bitte geben Sie eine gültige Kontextlänge ein',
|
|
contextEditSuccess: 'Kontextlänge aktualisiert',
|
|
contextEditFailed: 'Aktualisierung fehlgeschlagen',
|
|
emptyState: 'Starten Sie eine Konversation mit Hermes Agent',
|
|
outlineTitle: 'Konversationsübersicht',
|
|
outlineEmpty: 'Kein Konversationsinhalt',
|
|
outlineUserQuestion: 'Benutzerfrage',
|
|
inputPlaceholder: 'Nachricht eingeben... (Enter zum Senden, Shift+Enter fur neue Zeile)',
|
|
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',
|
|
plan: 'Markdown-Implementierungsplan schreiben',
|
|
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',
|
|
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',
|
|
},
|
|
attachFiles: 'Dateien anhangen',
|
|
showToolCalls: 'Tool-Aufrufe anzeigen',
|
|
hideToolCalls: 'Tool-Aufrufe ausblenden',
|
|
messageQueue: 'Nachrichtenwarteschlange',
|
|
removeQueuedMessage: 'Nachricht aus Warteschlange entfernen',
|
|
stop: 'Stopp',
|
|
send: 'Senden',
|
|
contextUsed: 'Kontext verwendet:',
|
|
sessions: 'Sitzungen',
|
|
webUiSessions: 'Sitzungen',
|
|
allProfiles: 'Alle Profile',
|
|
profileMissingModelsTip: 'Profil "{profile}" hat keinen verfuegbaren Provider oder kein Modell fuer diese Sitzung',
|
|
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',
|
|
historyScopeHint: 'Schreibgeschützte Hermes-Verlaufssitzungen des aktuellen Profils, nach Quelle gruppiert.',
|
|
noSessions: 'Keine Sitzungen',
|
|
newChat: 'Neuer Chat',
|
|
approvalKicker: 'Terminal-Berechtigung',
|
|
approvalTitle: 'Befehl vor dem Ausführen prüfen',
|
|
approvalAllowOnce: 'Einmal erlauben',
|
|
approvalAllowSession: 'Sitzung erlauben',
|
|
approvalAlways: 'Immer',
|
|
approvalDeny: 'Ablehnen',
|
|
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',
|
|
deleteSession: 'Diese Sitzung loschen?',
|
|
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',
|
|
sessionDeleted: 'Sitzung geloscht',
|
|
rename: 'Umbenennen',
|
|
pin: 'Anheften',
|
|
unpin: 'Lösen',
|
|
pinned: 'Angeheftet',
|
|
chatMode: 'Chatmodus',
|
|
liveMode: 'Live-Modus',
|
|
liveSessions: 'Live-Sitzungen',
|
|
recentBadge: 'Kürzlich',
|
|
linkedSessions: '{count} verknüpft',
|
|
noVisibleMessages: 'Keine für Menschen sichtbaren Nachrichten.',
|
|
monitorRoleUser: 'Benutzer',
|
|
monitorRoleAssistant: 'Assistent',
|
|
copySessionLink: 'Sitzungslink kopieren',
|
|
openSessionInNewTab: 'In neuem Tab öffnen',
|
|
sessionLinkCopied: 'Session link copied',
|
|
copySessionId: 'Sitzungs-ID kopieren',
|
|
export: 'Exportieren',
|
|
exportFull: 'Vollständiger Export (JSON)',
|
|
exportCompressed: 'Komprimierter Export (TXT)',
|
|
exportCompressing: 'Komprimiere Kontext, bitte warten...',
|
|
exportSuccess: 'Sitzung exportiert',
|
|
exportFailed: 'Export fehlgeschlagen',
|
|
renamed: 'Umbenannt',
|
|
renameFailed: 'Umbenennung fehlgeschlagen',
|
|
renameSession: 'Sitzung umbenennen',
|
|
sessionNotFound: 'Sitzung nicht gefunden',
|
|
enterNewTitle: 'Neuen Titel eingeben',
|
|
other: 'Sonstige',
|
|
runFailed: 'Ausfuhrung fehlgeschlagen',
|
|
error: 'Fehler',
|
|
tool: 'Werkzeug',
|
|
arguments: 'Argumente',
|
|
result: 'Ergebnis',
|
|
truncated: '... (abgeschnitten)',
|
|
executionDuration: 'Ausführungszeit', thinkingLabel: 'Denkprozess',
|
|
thinkingInProgress: 'Denkt…',
|
|
thinkingShow: 'Denkprozess anzeigen',
|
|
thinkingHide: 'Denkprozess ausblenden',
|
|
thinkingDuration: 'Beobachtet {duration}',
|
|
thinkingChars: '{count} Zeichen',
|
|
copyBubble: 'Nachricht kopieren',
|
|
copiedBubble: 'Nachricht kopiert',
|
|
copyFailed: 'Kopieren fehlgeschlagen',
|
|
playSpeech: 'Sprache abspielen',
|
|
pauseSpeech: 'Pausieren',
|
|
resumeSpeech: 'Fortsetzen',
|
|
stopSpeech: 'Stoppen',
|
|
speechNotSupported: 'Sprachwiedergabe in diesem Browser nicht unterstützt',
|
|
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',
|
|
},
|
|
|
|
// 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: 'Eingabeaufforderung',
|
|
promptPlaceholder: 'Der auszufuhrende Prompt',
|
|
deliverTarget: 'Zustellziel',
|
|
origin: 'Herkunft',
|
|
local: 'Lokal',
|
|
repeatCount: 'Wiederholungsanzahl (optional)',
|
|
modelPlaceholder: 'Standardmodell',
|
|
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: 'Job ausgelost',
|
|
modelUpdated: 'Modell aktualisiert',
|
|
jobDeleted: 'Aufgabe geloscht',
|
|
status: {
|
|
running: 'Lauft',
|
|
paused: 'Pausiert',
|
|
disabled: 'Deaktiviert',
|
|
scheduled: 'Geplant',
|
|
},
|
|
info: {
|
|
model: 'Modell',
|
|
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 auslösen',
|
|
},
|
|
runHistory: {
|
|
title: 'Verlauf',
|
|
runs: 'Läufe',
|
|
noRuns: 'Kein Verlauf gefunden.',
|
|
},
|
|
},
|
|
|
|
// 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',
|
|
modified: 'Benutzerbearbeitet',
|
|
archived: 'Archiviert',
|
|
pinned: 'Angeheftet',
|
|
pin: 'Fahigkeit anheften',
|
|
unpin: 'Anheften aufheben',
|
|
pinFailed: 'Anheft-Status konnte nicht geandert werden',
|
|
toggleFailed: 'Aktivieren/Deaktivieren der Fahigkeit fehlgeschlagen',
|
|
source: {
|
|
builtin: 'Integriert',
|
|
hub: 'Hub',
|
|
local: 'Lokal',
|
|
external: 'Extern',
|
|
},
|
|
},
|
|
|
|
// 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: {
|
|
agentRoot: 'Agent-Stammverzeichnis',
|
|
python: 'Python',
|
|
scanCwd: 'Arbeitsverzeichnis scannen',
|
|
projectPlugins: 'Projekt-Plugins',
|
|
},
|
|
},
|
|
|
|
// 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',
|
|
region: 'Region',
|
|
regionIntl: 'International',
|
|
regionCn: 'Festlandchina',
|
|
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.',
|
|
nousLoginTitle: 'Nous-Portal-Anmeldung',
|
|
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',
|
|
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.',
|
|
customBadge: 'BENUTZERDEF.',
|
|
previewBadge: 'VORSCHAU',
|
|
disabledBadge: 'NICHT VERFÜGBAR',
|
|
disabledTooltip: "Dieses Modell ist für Ihr Konto derzeit nicht verfügbar.",
|
|
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.',
|
|
noProviders: 'Keine Anbieter gefunden. Fugen Sie einen benutzerdefinierten Anbieter hinzu, um zu beginnen.',
|
|
clearVisibleModels: 'Auswahl löschen',
|
|
currentDefault: 'Aktueller Standard',
|
|
defaultShort: 'Standard',
|
|
builtIn: 'Integriert',
|
|
customType: 'Benutzerdefiniert',
|
|
provider: 'Anbieter',
|
|
contextLength: 'Kontextlange',
|
|
contextLengthPlaceholder: 'z.B. 256000 (optional)',
|
|
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',
|
|
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}',
|
|
},
|
|
|
|
// Profiles
|
|
profiles: {
|
|
title: 'Profile',
|
|
create: 'Profil erstellen',
|
|
import: 'Importieren',
|
|
export: 'Exportieren',
|
|
rename: 'Umbenennen',
|
|
delete: 'Loschen',
|
|
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.',
|
|
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',
|
|
nameValidation: 'Profilname darf nur Kleinbuchstaben, Zahlen, Unterstriche und Bindestriche enthalten',
|
|
newName: 'Neuer Name',
|
|
newNamePlaceholder: 'Neuen Namen eingeben',
|
|
cloneFromCurrent: 'Aus aktuellem Profil klonen',
|
|
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}',
|
|
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.',
|
|
avatar: {
|
|
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',
|
|
running: 'Läuft',
|
|
stopped: 'Gestoppt',
|
|
restartGateway: 'Gateway neu starten',
|
|
restartProfile: 'Profil neu starten',
|
|
switchProfile: 'Frontend-Profil wechseln',
|
|
gatewayRestarted: 'Gateway neu gestartet: {name}',
|
|
gatewayRestartFailed: 'Gateway-Neustart fehlgeschlagen',
|
|
profileRestarted: 'Profil neu gestartet: {name}',
|
|
profileRestartFailed: 'Profil-Neustart fehlgeschlagen',
|
|
},
|
|
},
|
|
|
|
// 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: 'Aktuelles Konto',
|
|
users: 'Kontoverwaltung',
|
|
agent: 'Agent',
|
|
memory: 'Gedachtnis',
|
|
compression: 'Komprimierung',
|
|
session: 'Sitzung',
|
|
privacy: 'Datenschutz',
|
|
apiServer: 'API-Server',
|
|
models: 'Modelle',
|
|
voice: 'Sprache',
|
|
},
|
|
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',
|
|
},
|
|
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',
|
|
},
|
|
session: {
|
|
mode: 'Zurucksetzungsmodus',
|
|
modeHint: 'Ausloser fur Sitzungszurucksetzung',
|
|
modeBoth: 'Inaktivitat + Geplant',
|
|
modeIdle: 'Nur Inaktivitat',
|
|
modeDaily: 'Nur Geplant',
|
|
modeNone: 'Nie (nur manuell)',
|
|
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',
|
|
requireAuth: 'Sitzungsautorisierung',
|
|
requireAuthHint: 'Erfordert Autorisierung für Sitzungsvorgänge',
|
|
},
|
|
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',
|
|
},
|
|
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',
|
|
edgeRate: 'Geschwindigkeit',
|
|
edgeRateHint: 'Sprachgeschwindigkeit anpassen (0,5x ~ 2,0x)',
|
|
edgePitch: 'Tonhöhe',
|
|
edgePitchHint: 'Tonhöhe anpassen (-20 ~ +20 Hz)',
|
|
|
|
// Test
|
|
testTitle: 'Sprachtest',
|
|
testText: 'Testtext',
|
|
testTextPlaceholder: 'Text zum Testen eingeben...',
|
|
testTextDefault: 'Hallo, dies ist ein Sprachtest.',
|
|
testButton: 'Testen',
|
|
testButtonPlaying: 'Wiedergabe...',
|
|
testFailed: 'Test fehlgeschlagen: {error}',
|
|
|
|
// 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',
|
|
},
|
|
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',
|
|
},
|
|
models: {
|
|
apiKey: 'API Key',
|
|
apiKeyPlaceholder: 'API Key eingeben',
|
|
noProviders: 'Keine Provider konfiguriert',
|
|
save: 'Speichern',
|
|
saveFailed: 'Speichern fehlgeschlagen',
|
|
saved: 'Gespeichert',
|
|
},
|
|
},
|
|
|
|
// 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)',
|
|
exclusiveTokenWarning: 'Diese Plattform verwendet einen exklusiven Token-Lock. Jedes Profil muss einen anderen Identitäts-Token verwenden, um Konflikte mit anderen Profilen zu vermeiden.',
|
|
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...',
|
|
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',
|
|
},
|
|
|
|
// 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}',
|
|
noSessions: 'Keine Terminal-Sitzungen',
|
|
connectionFailed: 'Terminaldienstverbindung fehlgeschlagen',
|
|
connectionClosed: 'Terminalverbindung geschlossen',
|
|
connectionError: 'Terminalverbindungsfehler',
|
|
},
|
|
|
|
// 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',
|
|
date: 'Datum',
|
|
tokens: 'Tokens',
|
|
cache: 'Cache',
|
|
cacheRead: 'Cache gelesen',
|
|
cacheWrite: 'Cache geschrieben',
|
|
sessions: 'Sitzungen',
|
|
cost: 'Kosten',
|
|
noData: 'Keine Nutzungsdaten',
|
|
},
|
|
|
|
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',
|
|
},
|
|
|
|
// Anderungsprotokoll
|
|
changelog: {
|
|
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',
|
|
new_0_5_31_1: 'Bridge-Broker-Neustarts gehärtet, finale Gruppenchat-Stream-Darstellung korrigiert und {\'@\'}all-Routing für Gruppenchats hinzugefügt',
|
|
new_0_5_31_2: 'Dateimanager kann absolute Pfade kopieren; mobile Session-Schublade liegt nicht mehr hinter Chat-Inhalten',
|
|
new_0_5_31_3: 'Profilauswahl zeigt jetzt Avatare, eigene Avatar-Uploads, Laufzeitstatus-Dialog sowie Gateway-/Profil-Neustartaktionen',
|
|
new_0_5_31_4: 'Profilavatare erscheinen jetzt in Einzelchat, Gruppenchat und eingeklappter Seitenleiste, mit Web-UI-Profilmetadaten und Windows-sicheren Pfaden',
|
|
new_0_5_31_5: 'Docker-, Termux- und Windows-Gateway-Erkennung sowie Neustartprüfungen verbessert, indem gateway_state/gateway.pid für Managed-Gateway-Liveness genutzt wird',
|
|
new_0_5_31_6: 'APIKEY.FUN-Bildgenerierungs-Medienendpunkt und gebündelter apikey-image-gen-Skill für Text-zu-Bild, Bild-zu-Bild und Bildbearbeitung über den fun-codex-Provider des aktiven Profils hinzugefügt',
|
|
new_0_5_33_1: 'Ausführungsfehler und Socket-Fehler in Einzel- und Gruppenchats bleiben nun als rote Agent-Nachrichten in der Nachrichtenliste sichtbar',
|
|
new_0_5_33_2: 'Session-Suche kann auf das ausgewählte Profil begrenzt werden; ohne Auswahl werden weiterhin alle Profile durchsucht',
|
|
new_0_5_33_3: 'Skills-Seite zeigt chinesische/englische Empfehlungstexte, wenn kein Skill ausgewählt ist; erneuter Klick hebt die Auswahl auf',
|
|
new_0_5_33_4: 'Ungenutzte changelog-i18n-Einträge entfernt, um die Frontend-Größe zu reduzieren',
|
|
new_0_5_33_5: 'Agent-Bridge-Startfehler auf chinesischem Windows durch netstat-Ausgabecodierung behoben',
|
|
new_0_5_33_6: 'Nous-Portal-Modellpreset anhand des öffentlichen Catalogs und der Portal-Empfehlungen aktualisiert',
|
|
new_0_5_33_7: 'Profillisten und Laufzeitstatus lesen Profilnamen aus Verzeichnissen und Standardmodelle aus config, um CLI-Tabellenspaltenfehler zu vermeiden',
|
|
new_0_5_34_1: 'Multimodale tool-Ergebnisse werden beim Speichern von Sitzungs-/Gruppenchat-Nachrichten normalisiert, damit keine base64-Bilder in Replays gelangen',
|
|
new_0_5_34_2: 'Benutzerdefinierte Hermes-Modelle werden über backendverwaltete Konfiguration persistiert, mit neuen Endpunkten zum Hinzufügen und Entfernen',
|
|
new_0_5_34_3: 'Finale Bridge-Kontextnutzung und Tool-Statusupdates bleiben nach abgeschlossenen Läufen korrekt',
|
|
new_0_5_34_4: 'Kanban-Filterung, Verantwortlichenanzeige, Kartenaktionen und Aufgabendetails verbessert',
|
|
new_0_5_34_5: 'Komprimierungs-Nutzungszählung korrigiert, indem fixer prompt/tool-Kontext gecacht und vollständige Kontext-token gemeldet werden',
|
|
new_0_5_34_6: 'Gruppenchat-Agents cachen ihren eigenen fixen Kontext und zeigen Komprimierungsfortschritt erst an, wenn die Komprimierung wirklich startet',
|
|
new_0_5_34_7: 'Web-UI-gebündelte Skills werden in jedes Profile synchronisiert und das Ziel-Profile wird pro Injection protokolliert',
|
|
new_0_5_34_8: 'Wenn Kanban unter Windows fehlschlägt, aktualisieren Sie Hermes, um die neuesten Migration-Fixes für die Kanban-Datenbank zu erhalten',
|
|
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',
|
|
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',
|
|
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',
|
|
},
|
|
|
|
// 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',
|
|
fileTree: 'Dateibaum',
|
|
},
|
|
|
|
// 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',
|
|
agentAddFailedCount: '{count} Agent(en) wurden nicht hinzugefugt: {details}',
|
|
noAgents: 'Keine Agenten in diesem Raum',
|
|
members: 'Mitglieder',
|
|
roomCreated: 'Raum erstellt',
|
|
roomDeleted: 'Raum gelöscht',
|
|
roomCloned: 'Raum geklont',
|
|
cloneRoom: 'Raum klonen',
|
|
copyRoomLink: 'Raumlink kopieren',
|
|
deleteRoomConfirm: 'Diesen Raum löschen?',
|
|
clearContext: 'Kontext löschen',
|
|
clearContextConfirm: 'Diesen Raumkontext löschen? Nachrichten und Komprimierungs-Snapshots werden entfernt, Agenten und Mitglieder bleiben.',
|
|
contextCleared: 'Kontext gelöscht',
|
|
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',
|
|
},
|
|
|
|
// 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',
|
|
contentDisplay: 'Inhalt anzeigen',
|
|
download: 'Herunterladen',
|
|
downloadFile: 'Datei herunterladen',
|
|
},
|
|
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',
|
|
},
|
|
},
|
|
}
|