diff --git a/app/_translations/de.json b/app/_translations/de.json new file mode 100644 index 0000000..a4774f1 --- /dev/null +++ b/app/_translations/de.json @@ -0,0 +1,209 @@ +{ + "common": { + "cronManagementMadeEasy": "Cron-Verwaltung leicht gemacht", + "allUsers": "Alle Benutzer", + "userWithUsername": "Benutzer: {user}", + "user": "Benutzer", + "change": "Ändern", + "description": "Beschreibung", + "optional": "Optional", + "cancel": "Abbrechen", + "close": "Schließen", + "refresh": "Aktualisieren", + "loading": "Wird geladen", + "version": "Version {version}" + }, + "cronjobs": { + "cronJobs": "Cron-Jobs", + "cronJob": "Cron-Job", + "scheduledTasks": "Geplante Aufgaben", + "nOfNJObs": "{filtered} von {total} geplanten Aufgaben", + "forUser": "für Benutzer {user}", + "newTask": "Neue Aufgabe", + "runCronManually": "Cron-Job manuell ausführen", + "editCronJob": "Cron-Job bearbeiten", + "cloneCronJob": "Cron-Job klonen", + "deleteCronJob": "Cron-Job löschen", + "pauseCronJob": "Cron-Job pausieren", + "resumeCronJob": "Cron-Job fortsetzen", + "runCronJob": "Cron-Job ausführen", + "runCronJobSuccess": "Cron-Job erfolgreich ausgeführt", + "runCronJobFailed": "Fehler beim Ausführen des Cron-Jobs", + "paused": "Angehalten", + "createNewScheduledTask": "Neue geplante Aufgabe erstellen", + "schedule": "Zeitplan", + "taskType": "Aufgabentyp", + "customCommand": "Benutzerdefinierter Befehl", + "singleCommand": "Einzelner Befehl", + "command": "Befehl", + "whatDoesThisTaskDo": "Was macht diese Aufgabe?", + "createTask": "Aufgabe erstellen", + "editScheduledTask": "Geplante Aufgabe bearbeiten", + "enableLogging": "Protokollierung aktivieren", + "disableLogging": "Protokollierung deaktivieren", + "loggingDescription": "Erfasst stdout, stderr, Exit-Codes und Zeitstempel für die Ausführung von Jobs. Protokolle werden in ./data/logs gespeichert und automatisch bereinigt (standardmäßig 50 Protokolle pro Job und 30 Tage Aufbewahrungsfrist. Diese Werte können in den Umgebungsvariablen geändert werden).", + "logged": "Protokolliert", + "viewLogs": "Protokolle anzeigen", + "logs": "Protokolle", + "logFiles": "Protokolldateien", + "logContent": "Protokollinhalt", + "downloadLog": "Herunterladen", + "selectLogToView": "Protokolldatei auswählen, um den Inhalt anzuzeigen", + "noLogsFound": "Für diesen Job wurden keine Protokolle gefunden", + "confirmDeleteLog": "Soll diese Protokolldatei wirklich gelöscht werden?", + "confirmDeleteAllLogs": "Sollen wirklich alle Protokolldateien für diesen Job gelöscht werden? Diese Aktion kann nicht rückgängig gemacht werden.", + "deleteAll": "Alle löschen", + "refresh": "Aktualisieren", + "loading": "Lädt", + "close": "Schließen", + "healthy": "Gesund", + "failed": "Fehlgeschlagen (Exit: {exitCode})", + "backupJob": "Job sichern", + "restoreJob": "Job wiederherstellen", + "backupAll": "Alle sichern", + "backups": "Sicherungen", + "restoreAll": "Alle wiederherstellen", + "confirmRestoreAll": "Sollen wirklich alle gesicherten Jobs wiederhergestellt werden? Dies fügt sie crontab hinzu.", + "backupJobSuccess": "Job erfolgreich gesichert", + "backupJobFailed": "Sicherung des Jobs fehlgeschlagen", + "backupAllSuccess": "Alle Jobs erfolgreich gesichert", + "backupAllFailed": "Sicherung aller Jobs fehlgeschlagen", + "restoreJobSuccess": "Job erfolgreich wiederhergestellt", + "restoreJobFailed": "Wiederherstellung des Jobs fehlgeschlagen", + "moreActions": "Weitere Aktionen", + "restoreBackups": "Sicherungen wiederherstellen", + "availableBackups": "Verfügbare Sicherungen", + "noBackupsFound": "Keine Sicherungsdateien gefunden", + "backedUpAt": "Gesichert am", + "restoreThisBackup": "Diese Sicherung wiederherstellen", + "deleteBackup": "Sicherung löschen", + "confirmDeleteBackup": "Soll diese Sicherung wirklich gelöscht werden? Diese Aktion kann nicht rückgängig gemacht werden.", + "backupDeleted": "Sicherung erfolgreich gelöscht", + "filters": "Filter", + "filtersAndDisplay": "Filter- & Anzeigeoptionen", + "filterByUser": "Nach Benutzer filtern", + "scheduleDisplay": "Anzeige des Zeitplans", + "cronSyntax": "Cron-Syntax", + "humanReadable": "menschenlesbar", + "both": "Beides", + "minimalMode": "Minimalmodus", + "minimalModeDescription": "Zeigt kompakte Ansicht mit Symbolen statt vollem Text", + "applyFilters": "Filter anwenden", + "nLines": "{count} Zeilen", + "liveJobExecution": "Live-Job-Ausführung", + "running": "Läuft...", + "completed": "Abgeschlossen (Exit: {exitCode})", + "jobFailed": "Fehlgeschlagen (Exit: {exitCode})", + "showLast": "Zeige die letzten:", + "viewFullLog": "Vollständiges Protokoll anzeigen ({totalLines} Zeilen)", + "viewFullLogNoCount": "Vollständiges Protokoll anzeigen", + "viewingFullLog": "Vollständiges Protokoll wird angezeigt ({totalLines} Zeilen)", + "viewingFullLogNoCount": "Vollständiges Protokoll wird angezeigt", + "backToWindowedView": "Zur Fensteransicht zurückkehren", + "showingLastOf": "Anzeigen der letzten {lineCount} von {totalLines} Zeilen", + "showingLastLines": "Anzeigen der letzten {lineCount} Zeilen", + "largeLogFileDetected": "Große Protokolldatei erkannt", + "tailModeEnabled": "Tail-Modus aktiviert, Anzeige der letzten {tailLines} Zeilen", + "showAllLines": "Alle Zeilen anzeigen", + "enableTailMode": "Tail-Modus aktivieren", + "waitingForJobToStart": "Warten auf Start des Jobs...\n\nProtokolle werden hier in Echtzeit angezeigt.", + "runIdJobId": "Ausführungs-ID: {runId} | Job-ID: {jobId}" + }, + "scripts": { + "scripts": "Skripte", + "scriptsLibrary": "Skript-Bibliothek", + "file": "Datei", + "newScript": "Neues Skript", + "noScriptsYet": "Noch keine Skripte vorhanden", + "createReusableBashScripts": "Erstellung wiederverwendbarer Bash-Skripte für geplante Aufgaben.", + "createYourFirstScript": "Erstes Skript erstellen", + "nOfNSavedScripts": "{count} gespeicherte Skripte", + "savedScript": "Gespeichertes Skript", + "selectFromLibrary": "Aus Bibliothek auswählen", + "scriptPathReadOnly": "Der Skriptpfad ist schreibgeschützt. Skript in der Skript-Bibliothek bearbeiten", + "selectScript": "Skript auswählen", + "availableScripts": "{count} verfügbare Skripte", + "noScriptsFound": "Keine Skripte gefunden", + "noScriptsAvailable": "Keine Skripte verfügbar", + "scriptPreview": "Skript-Vorschau", + "commandPreview": "Befehlsvorschau", + "scriptContent": "Skript-Inhalt", + "selectScriptToPreview": "Skript zum Vorschauen auswählen", + "searchScripts": "Skripte suchen...", + "draft": "Entwurf", + "clearDraft": "Entwurf löschen", + "close": "Schließen", + "draftCleared": "Entwurf gelöscht" + }, + "sidebar": { + "systemOverview": "Systemübersicht", + "uptime": "Betriebszeit", + "memory": "Speicher", + "cpu": "CPU", + "gpu": "GPU", + "network": "Netzwerk", + "networkLatency": "Netzwerklatenz", + "memoryUsage": "Speichernutzung", + "cpuUsage": "CPU-Auslastung", + "systemInformation": "Systeminformationen", + "performanceMetrics": "Leistungsmetriken", + "statsUpdateEvery": "Statistiken aktualisieren alle", + "updating": "Wird aktualisiert", + "networkSpeedEstimatedFromLatency": "Netzwerkgeschwindigkeit anhand der Latenz geschätzt" + }, + "system": { + "optimal": "Optimal", + "critical": "Kritisch", + "high": "Hoch", + "moderate": "Mäßig", + "warning": "Warnung", + "unknown": "Unbekannt", + "connected": "Verbunden", + "allSystemsRunningNormally": "Alle Systeme laufen normal", + "highResourceUsageDetectedImmediateAttentionRequired": "Hohe Ressourcenauslastung erkannt - sofortige Aufmerksamkeit erforderlich", + "moderateResourceUsageMonitoringRecommended": "Moderate Ressourcenauslastung - Überwachung empfohlen", + "unknownGPU": "Unbekannte GPU", + "noGPUDetected": "Keine GPU erkannt", + "gpuDetectionFailed": "GPU-Erkennung fehlgeschlagen", + "available": "Verfügbar", + "systemStatus": "Systemstatus", + "lastUpdated": "Letzte Aktualisierung" + }, + "login": { + "welcomeTitle": "Willkommen bei Cr*nMaster", + "signInWithPasswordOrSSO": "Mit Passwort oder SSO anmelden", + "signInWithSSO": "Mit SSO anmelden", + "enterPasswordToContinue": "Passwort eingeben, um fortzufahren", + "authenticationNotConfigured": "Authentifizierung nicht konfiguriert", + "noAuthMethodsEnabled": "Weder Passwortauthentifizierung noch OIDC SSO sind aktiviert. Bitte wenigstens eine Authentifizierungsmethode in den Umgebungsvariablen konfigurieren, um sich anmelden zu können.", + "enterPassword": "Passwort eingeben", + "signingIn": "Wird angemeldet...", + "signIn": "Anmelden", + "redirecting": "Wird umgeleitet...", + "redirectingToOIDC": "Wird zum OIDC-Provider weitergeleitet", + "pleaseWait": "Bitte warten...", + "orContinueWith": "Oder fortfahren mit", + "loginFailed": "Anmeldung fehlgeschlagen", + "genericError": "Es ist ein Fehler aufgetreten. Bitte erneut versuchen." + }, + "warnings": { + "wrapperScriptModified": "Wrapper-Skript geändert", + "wrapperScriptModifiedDescription": "Ihr cron-log-wrapper.sh-Skript wurde von der offiziellen Version geändert. Dies kann die Protokollierungsfunktionalität beeinflussen. Rückkehr zur offiziellen Version erwägen oder sicherstellen, dass Änderungen das erforderliche Format für die Protokollanalyse nicht beschädigen." + }, + "notFound": { + "title": "404 - Seite nicht gefunden", + "subtitle": "FEHLER: Die angeforderte Ressource konnte nicht gefunden werden", + "message": "Die gesuchte Seite existiert nicht. Stattdessen Snake spielen?", + "gameOver": "GAME OVER", + "score": "Punktzahl", + "highScore": "Höchste Punktzahl", + "pressToStart": "Zum Starten LEERTASTE drücken oder auf den Bildschirm tippen", + "pressToRestart": "Zum Neustarten LEERTASTE drücken oder auf den Bildschirm tippen", + "controls": "Steuerung", + "useArrowKeys": "Zum Bewegen die Pfeiltasten verwenden", + "tapToMove": "Zum Bewegen auf die Bildschirmkanten tippen", + "goHome": "Zum Dashboard zurückkehren", + "pauseGame": "Zum Pausieren P drücken", + "paused": "PAUSIERT" + } +} \ No newline at end of file