Compare commits

..
8 Commits
Author SHA1 Message Date
fccview f08ff0f449 fix dependency vulnerabilities 2026-08-13 21:04:03 +01:00
fccview feb24e6369 fix dependency vulnerabilities 2026-05-27 11:50:03 +01:00
fccview fde426bbc3 bump package 2026-05-27 11:45:46 +01:00
fccview 7c21f79085 bump package 2026-05-27 11:45:37 +01:00
fccview debf40ed3c Merge branch 'develop' of github-fccview:fccview/cronmaster into develop 2026-05-27 11:44:33 +01:00
fccview 9fd1d4d2e9 fix dependency vulnerabilities 2026-05-27 11:44:26 +01:00
fccview d4fd83e606 Merge pull request #104 from molshape/feature/add-locale-de
feat: add German (de) translation
2026-05-27 11:36:09 +01:00
Axel Müller e9b529a05e feat: add German (de) translation
- Add full German translation de.json based on the English source en.json
- Translate all UI strings
- Use neutral, pronoun‑free phrasing to avoid formal/informal ambiguity in UI texts
- Apply consistent German IT terminology (e.g., “Backup” → “Sicherung”, “Task” → “Aufgabe”)
- Adapt confirmation prompts to natural German phrasing instead of literal translations (e.g., "Are you sure…" → "Soll ... wirklich ...")
- Ensure consistent terminology across all sections (e.g. "Log" → "Protokoll")
- No translation of established idiomatic expressions (e.g., "GAME OVER", "Job", or "Exit-Codes")
- Follow translation guidelines and structure outlined in TRANSLATIONS.md
2026-05-13 18:36:17 +02:00
3 changed files with 708 additions and 499 deletions

No files matched your search

+209
View File
@@ -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"
}
}
+18 -23
View File
@@ -1,6 +1,6 @@
{
"name": "cronjob-manager",
"version": "2.3.0",
"name": "cronmaster",
"version": "2.3.2",
"private": true,
"scripts": {
"dev": "next dev",
@@ -36,42 +36,37 @@
"cronstrue": "^3.2.0",
"fflate": "^0.8.2",
"jose": "^6.1.1",
"minimatch": "^10.2.3",
"next": "16.2.1",
"next-intl": "^4.4.0",
"minimatch": "^10.2.6",
"next": "^16.3.0",
"next-intl": "^4.9.2",
"next-themes": "^0.2.1",
"postcss": "^8",
"postcss": "^8.5.26",
"proper-lockfile": "^4.1.2",
"react": "19.2.4",
"react-dom": "19.2.4",
"react-syntax-highlighter": "^15.6.1",
"serwist": "^9.5.5",
"systeminformation": "^5.31.0",
"systeminformation": "^5.33.1",
"tailwind-merge": "^2.0.0",
"tailwindcss": "^3.3.0",
"tailwindcss": "^3.4.17",
"typescript": "^5"
},
"devDependencies": {
"@serwist/turbopack": "^9.5.5",
"@types/bcryptjs": "^2.4.6",
"@types/minimatch": "^6.0.0",
"eslint": "^9",
"eslint-config-next": "16.2.1",
"eslint-config-next": "16.3.0",
"postcss-import": "^16.1.1"
},
"resolutions": {
"@isaacs/brace-expansion": "^5.0.1",
"eslint/minimatch": "^3.1.3",
"@eslint/config-array/minimatch": "^3.1.3",
"@eslint/eslintrc/minimatch": "^3.1.3",
"eslint-plugin-import/minimatch": "^3.1.3",
"eslint-plugin-jsx-a11y/minimatch": "^3.1.3",
"@types/react": "19.2.14",
"@types/react-dom": "19.2.3",
"lodash": "^4.17.23",
"prismjs": "^1.30.0",
"systeminformation": "^5.31.0",
"ajv": "^6.14.0",
"flatted": "^3.4.2"
"prismjs": "1.30.0",
"postcss": "8.5.26",
"nanoid": "3.3.18",
"js-yaml": "4.3.1",
"sharp": "0.35.3",
"@babel/core": "7.29.7",
"eslint-config-next/**/brace-expansion": "1.1.18",
"eslint/**/brace-expansion": "1.1.18",
"@serwist/turbopack/**/brace-expansion": "2.1.4"
}
}
+481 -476
View File
File diff suppressed because it is too large. Load diff