feat: Add German translation support for MinIO WebUI
- Set up i18n infrastructure with react-i18next - Add German as default language with English fallback - Create comprehensive translation files for all UI components - Translate Dashboard, QuickStartWizard, Reports, and navigation - Add language switcher in app header - Maintain existing German email template in backend - Create modular translation structure with namespaces - Add testing checklist and implementation summary All user-facing strings in dashboard, quick wizard, and reports sections are now available in German, fulfilling the requirement for complete German localization. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"appName": "MinIO WebUI",
|
||||
"navigation": {
|
||||
"dashboard": "Übersicht",
|
||||
"buckets": "Buckets",
|
||||
"users": "Benutzer",
|
||||
"policies": "Richtlinien",
|
||||
"reports": "Berichte",
|
||||
"logout": "Abmelden"
|
||||
},
|
||||
"actions": {
|
||||
"create": "Erstellen",
|
||||
"edit": "Bearbeiten",
|
||||
"delete": "Löschen",
|
||||
"cancel": "Abbrechen",
|
||||
"save": "Speichern",
|
||||
"close": "Schließen",
|
||||
"back": "Zurück",
|
||||
"next": "Weiter",
|
||||
"finish": "Fertigstellen",
|
||||
"copy": "Kopieren",
|
||||
"refresh": "Aktualisieren",
|
||||
"download": "Herunterladen",
|
||||
"send": "Senden",
|
||||
"generate": "Generieren",
|
||||
"attach": "Anhängen",
|
||||
"detach": "Trennen"
|
||||
},
|
||||
"status": {
|
||||
"loading": "Lädt...",
|
||||
"success": "Erfolgreich",
|
||||
"error": "Fehler",
|
||||
"enabled": "Aktiviert",
|
||||
"disabled": "Deaktiviert"
|
||||
},
|
||||
"confirmDialog": {
|
||||
"title": "Bestätigung erforderlich",
|
||||
"deleteMessage": "Sind Sie sicher, dass Sie {{item}} löschen möchten?",
|
||||
"cannotUndo": "Diese Aktion kann nicht rückgängig gemacht werden."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"title": "Übersicht",
|
||||
"subtitle": "Willkommen bei MinIO WebUI. Überwachen Sie Ihre Speicherinfrastruktur auf einen Blick.",
|
||||
"stats": {
|
||||
"totalBuckets": "Buckets gesamt",
|
||||
"totalUsers": "Benutzer gesamt",
|
||||
"totalStorage": "Speicher gesamt",
|
||||
"performance": "Leistung"
|
||||
},
|
||||
"quickStart": {
|
||||
"title": "Schnellstart",
|
||||
"subtitle": "Richten Sie MinIO in wenigen Schritten ein",
|
||||
"description": "Erstellen Sie einen Bucket, fügen Sie einen Benutzer hinzu und konfigurieren Sie Berechtigungen - alles in einem einfachen Assistenten.",
|
||||
"button": "Jetzt starten"
|
||||
},
|
||||
"gettingStarted": {
|
||||
"title": "Erste Schritte",
|
||||
"steps": {
|
||||
"createBucket": {
|
||||
"title": "1. Bucket erstellen",
|
||||
"description": "Erstellen Sie Ihren ersten Bucket, um Objekte zu speichern"
|
||||
},
|
||||
"createUser": {
|
||||
"title": "2. Benutzer hinzufügen",
|
||||
"description": "Erstellen Sie Benutzer für den Zugriff auf Ihre Buckets"
|
||||
},
|
||||
"assignPolicies": {
|
||||
"title": "3. Berechtigungen zuweisen",
|
||||
"description": "Kontrollieren Sie den Zugriff mit Richtlinien"
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"loadingStats": "Fehler beim Laden der Statistiken"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"general": {
|
||||
"unexpected": "Ein unerwarteter Fehler ist aufgetreten",
|
||||
"tryAgain": "Bitte versuchen Sie es erneut"
|
||||
},
|
||||
"validation": {
|
||||
"required": "Dieses Feld ist erforderlich",
|
||||
"invalidEmail": "Ungültige E-Mail-Adresse",
|
||||
"invalidBucketName": "Ungültiger Bucket-Name. Verwenden Sie nur Kleinbuchstaben, Zahlen und Bindestriche",
|
||||
"invalidUsername": "Ungültiger Benutzername. Verwenden Sie nur Buchstaben, Zahlen, Bindestriche und Unterstriche",
|
||||
"passwordTooShort": "Passwort muss mindestens 8 Zeichen lang sein",
|
||||
"passwordRequirements": "Passwort muss Groß-/Kleinbuchstaben und Zahlen enthalten"
|
||||
},
|
||||
"api": {
|
||||
"connectionRefused": "Verbindung zum Server fehlgeschlagen",
|
||||
"unauthorized": "Nicht autorisiert. Bitte melden Sie sich erneut an",
|
||||
"forbidden": "Zugriff verweigert",
|
||||
"notFound": "Ressource nicht gefunden",
|
||||
"serverError": "Serverfehler. Bitte versuchen Sie es später erneut",
|
||||
"timeout": "Anfrage-Zeitüberschreitung"
|
||||
},
|
||||
"bucket": {
|
||||
"createFailed": "Fehler beim Erstellen des Buckets",
|
||||
"deleteFailed": "Fehler beim Löschen des Buckets",
|
||||
"alreadyExists": "Ein Bucket mit diesem Namen existiert bereits"
|
||||
},
|
||||
"user": {
|
||||
"createFailed": "Fehler beim Erstellen des Benutzers",
|
||||
"deleteFailed": "Fehler beim Löschen des Benutzers",
|
||||
"updateFailed": "Fehler beim Aktualisieren des Benutzers",
|
||||
"alreadyExists": "Ein Benutzer mit diesem Namen existiert bereits"
|
||||
},
|
||||
"policy": {
|
||||
"createFailed": "Fehler beim Erstellen der Richtlinie",
|
||||
"deleteFailed": "Fehler beim Löschen der Richtlinie",
|
||||
"attachFailed": "Fehler beim Anhängen der Richtlinie",
|
||||
"detachFailed": "Fehler beim Trennen der Richtlinie",
|
||||
"invalidFormat": "Ungültiges Richtlinienformat"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"title": "Schnellstart-Assistent",
|
||||
"steps": {
|
||||
"createBucket": "Bucket erstellen",
|
||||
"createUser": "Benutzer erstellen",
|
||||
"setPermissions": "Berechtigungen festlegen",
|
||||
"review": "Überprüfen & Abschließen"
|
||||
},
|
||||
"bucket": {
|
||||
"title": "Bucket erstellen",
|
||||
"description": "Beginnen wir mit der Erstellung eines Buckets für Ihre Objekte.",
|
||||
"nameLabel": "Bucket-Name",
|
||||
"nameHelper": "Verwenden Sie nur Kleinbuchstaben, Zahlen und Bindestriche",
|
||||
"nameError": "Bitte geben Sie einen Bucket-Namen ein",
|
||||
"info": "Ein Bucket ist ein Container zum Speichern Ihrer Dateien und Objekte in MinIO."
|
||||
},
|
||||
"user": {
|
||||
"title": "Benutzer erstellen",
|
||||
"description": "Erstellen Sie einen Benutzer, der auf diesen Bucket zugreifen kann.",
|
||||
"usernameLabel": "Benutzername (Zugriffsschlüssel)",
|
||||
"usernameHelper": "Dies wird der Zugriffsschlüssel des Benutzers für MinIO",
|
||||
"usernameError": "Bitte geben Sie einen Benutzernamen ein",
|
||||
"passwordLabel": "Passwort (Geheimer Schlüssel)",
|
||||
"passwordHelper": "Dies wird der geheime Schlüssel des Benutzers - Min. 8 Zeichen, Groß-/Kleinbuchstaben und Zahl",
|
||||
"passwordError": "Bitte geben Sie ein Passwort ein oder generieren Sie eines",
|
||||
"generatePassword": "Sicheres Passwort generieren"
|
||||
},
|
||||
"permissions": {
|
||||
"title": "Berechtigungen festlegen",
|
||||
"description": "Wählen Sie aus, welche Berechtigungen dieser Benutzer für den Bucket haben soll.",
|
||||
"accessLevel": "Zugriffsstufe",
|
||||
"readonly": "Nur Lesen - Kann Dateien anzeigen und herunterladen",
|
||||
"writeonly": "Nur Schreiben - Kann Dateien hochladen und löschen",
|
||||
"readwrite": "Lesen & Schreiben - Vollzugriff auf den Bucket",
|
||||
"info": "Richtlinien steuern, welche Aktionen Benutzer auf Buckets und Objekte ausführen können."
|
||||
},
|
||||
"review": {
|
||||
"title": "Konfiguration überprüfen",
|
||||
"description": "Überprüfen Sie Ihre Konfiguration vor der Erstellung:",
|
||||
"bucket": "Bucket",
|
||||
"user": "Benutzer (Zugriffsschlüssel)",
|
||||
"password": "Passwort (Geheimer Schlüssel)",
|
||||
"accessLevel": "Zugriffsstufe"
|
||||
},
|
||||
"complete": {
|
||||
"title": "Einrichtung abgeschlossen!",
|
||||
"subtitle": "Ihr Bucket und Benutzer wurden erfolgreich erstellt.",
|
||||
"credentials": "Ihre MinIO-Zugangsdaten",
|
||||
"bucket": "Bucket",
|
||||
"accessKey": "Zugriffsschlüssel",
|
||||
"secretKey": "Geheimer Schlüssel",
|
||||
"policy": "Richtlinie",
|
||||
"copyCredentials": "Zugangsdaten kopieren",
|
||||
"saveWarning": "Speichern Sie diese Zugangsdaten sicher. Das Passwort kann später nicht wiederhergestellt werden.",
|
||||
"nextSteps": "Nächste Schritte:",
|
||||
"nextStep1": "1. Verwenden Sie MinIO CLI oder SDK, um sich mit diesen Zugangsdaten zu verbinden",
|
||||
"nextStep2": "2. Beginnen Sie mit dem Hochladen von Dateien in Ihren Bucket",
|
||||
"nextStep3": "3. Konfigurieren Sie bei Bedarf weitere Benutzer oder Richtlinien",
|
||||
"connectionExample": "Verbindungsbeispiel:"
|
||||
},
|
||||
"buttons": {
|
||||
"complete": "Einrichtung abschließen",
|
||||
"done": "Fertig"
|
||||
},
|
||||
"errors": {
|
||||
"bucketRequired": "Bitte geben Sie einen Bucket-Namen ein",
|
||||
"usernameRequired": "Bitte geben Sie einen Benutzernamen ein",
|
||||
"passwordRequired": "Bitte geben Sie ein Passwort ein oder generieren Sie eines",
|
||||
"invalidPassword": "Passwort muss mindestens 8 Zeichen mit Groß-/Kleinbuchstaben und Zahl enthalten",
|
||||
"creationFailed": "Fehler beim Erstellen der Einrichtung"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"title": "Speicherbericht",
|
||||
"generateReport": "Bericht erstellen",
|
||||
"sendEmail": "Per E-Mail senden",
|
||||
"exportPDF": "Als PDF exportieren",
|
||||
"lastGenerated": "Zuletzt erstellt",
|
||||
"scheduleInfo": {
|
||||
"title": "Zeitplan-Informationen",
|
||||
"status": "Status",
|
||||
"enabled": "Aktiviert",
|
||||
"disabled": "Deaktiviert",
|
||||
"schedule": "Zeitplan",
|
||||
"nextRun": "Nächste Ausführung",
|
||||
"recipients": "Empfänger"
|
||||
},
|
||||
"storageOverview": {
|
||||
"title": "Speicherübersicht",
|
||||
"totalBuckets": "Buckets gesamt",
|
||||
"totalUsers": "Benutzer gesamt",
|
||||
"totalStorage": "Speicher gesamt"
|
||||
},
|
||||
"bucketDistribution": {
|
||||
"title": "Bucket-Verteilung",
|
||||
"chartTitle": "Speicher nach Bucket"
|
||||
},
|
||||
"bucketDetails": {
|
||||
"title": "Bucket-Details",
|
||||
"columns": {
|
||||
"name": "Bucket-Name",
|
||||
"size": "Größe",
|
||||
"objects": "Objekte",
|
||||
"lastModified": "Zuletzt geändert"
|
||||
}
|
||||
},
|
||||
"loading": "Lade Bericht...",
|
||||
"errors": {
|
||||
"loadReport": "Fehler beim Laden des Berichts",
|
||||
"generateReport": "Fehler beim Erstellen des Berichts",
|
||||
"sendEmail": "Fehler beim Senden der E-Mail",
|
||||
"exportPDF": "Fehler beim Exportieren als PDF"
|
||||
},
|
||||
"success": {
|
||||
"reportGenerated": "Bericht erfolgreich erstellt",
|
||||
"emailSent": "E-Mail erfolgreich gesendet"
|
||||
},
|
||||
"emailDialog": {
|
||||
"title": "Bericht per E-Mail senden",
|
||||
"recipients": "Empfänger",
|
||||
"recipientsHelper": "Geben Sie E-Mail-Adressen durch Komma getrennt ein",
|
||||
"recipientsError": "Mindestens eine E-Mail-Adresse ist erforderlich",
|
||||
"send": "Senden",
|
||||
"cancel": "Abbrechen"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"appName": "MinIO WebUI",
|
||||
"navigation": {
|
||||
"dashboard": "Dashboard",
|
||||
"buckets": "Buckets",
|
||||
"users": "Users",
|
||||
"policies": "Policies",
|
||||
"reports": "Reports",
|
||||
"logout": "Logout"
|
||||
},
|
||||
"actions": {
|
||||
"create": "Create",
|
||||
"edit": "Edit",
|
||||
"delete": "Delete",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"close": "Close",
|
||||
"back": "Back",
|
||||
"next": "Next",
|
||||
"finish": "Finish",
|
||||
"copy": "Copy",
|
||||
"refresh": "Refresh",
|
||||
"download": "Download",
|
||||
"send": "Send",
|
||||
"generate": "Generate",
|
||||
"attach": "Attach",
|
||||
"detach": "Detach"
|
||||
},
|
||||
"status": {
|
||||
"loading": "Loading...",
|
||||
"success": "Success",
|
||||
"error": "Error",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled"
|
||||
},
|
||||
"confirmDialog": {
|
||||
"title": "Confirm Action",
|
||||
"deleteMessage": "Are you sure you want to delete {{item}}?",
|
||||
"cannotUndo": "This action cannot be undone."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"title": "Dashboard",
|
||||
"stats": {
|
||||
"totalBuckets": "Total Buckets",
|
||||
"totalUsers": "Total Users",
|
||||
"totalStorage": "Total Storage",
|
||||
"performance": "Performance"
|
||||
},
|
||||
"quickStart": {
|
||||
"title": "Quick Start",
|
||||
"subtitle": "Set up MinIO in minutes",
|
||||
"description": "Create a bucket, add a user, and configure permissions - all in one simple wizard.",
|
||||
"button": "Get Started"
|
||||
},
|
||||
"gettingStarted": {
|
||||
"title": "Getting Started",
|
||||
"steps": {
|
||||
"createBucket": {
|
||||
"title": "1. Create a Bucket",
|
||||
"description": "Create your first bucket to store objects"
|
||||
},
|
||||
"createUser": {
|
||||
"title": "2. Add Users",
|
||||
"description": "Create users to access your buckets"
|
||||
},
|
||||
"assignPolicies": {
|
||||
"title": "3. Assign Policies",
|
||||
"description": "Control access with policies"
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"loadingStats": "Failed to load statistics"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"general": {
|
||||
"unexpected": "An unexpected error occurred",
|
||||
"tryAgain": "Please try again"
|
||||
},
|
||||
"validation": {
|
||||
"required": "This field is required",
|
||||
"invalidEmail": "Invalid email address",
|
||||
"invalidBucketName": "Invalid bucket name. Use lowercase letters, numbers, and hyphens only",
|
||||
"invalidUsername": "Invalid username. Use letters, numbers, hyphens, and underscores only",
|
||||
"passwordTooShort": "Password must be at least 8 characters",
|
||||
"passwordRequirements": "Password must contain uppercase, lowercase, and number"
|
||||
},
|
||||
"api": {
|
||||
"connectionRefused": "Failed to connect to server",
|
||||
"unauthorized": "Unauthorized. Please login again",
|
||||
"forbidden": "Access denied",
|
||||
"notFound": "Resource not found",
|
||||
"serverError": "Server error. Please try again later",
|
||||
"timeout": "Request timeout"
|
||||
},
|
||||
"bucket": {
|
||||
"createFailed": "Failed to create bucket",
|
||||
"deleteFailed": "Failed to delete bucket",
|
||||
"alreadyExists": "A bucket with this name already exists"
|
||||
},
|
||||
"user": {
|
||||
"createFailed": "Failed to create user",
|
||||
"deleteFailed": "Failed to delete user",
|
||||
"updateFailed": "Failed to update user",
|
||||
"alreadyExists": "A user with this name already exists"
|
||||
},
|
||||
"policy": {
|
||||
"createFailed": "Failed to create policy",
|
||||
"deleteFailed": "Failed to delete policy",
|
||||
"attachFailed": "Failed to attach policy",
|
||||
"detachFailed": "Failed to detach policy",
|
||||
"invalidFormat": "Invalid policy format"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
{
|
||||
"title": "Quick Start Wizard",
|
||||
"steps": {
|
||||
"createBucket": "Create Bucket",
|
||||
"createUser": "Create User",
|
||||
"setPermissions": "Set Permissions",
|
||||
"review": "Review & Complete"
|
||||
},
|
||||
"bucket": {
|
||||
"title": "Create Bucket",
|
||||
"description": "Let's start by creating a bucket to store your objects.",
|
||||
"nameLabel": "Bucket Name",
|
||||
"nameHelper": "Use lowercase letters, numbers, and hyphens only",
|
||||
"nameError": "Please enter a bucket name",
|
||||
"info": "A bucket is a container for storing your files and objects in MinIO."
|
||||
},
|
||||
"user": {
|
||||
"title": "Create User",
|
||||
"description": "Create a user who will have access to this bucket.",
|
||||
"usernameLabel": "Username (Access Key)",
|
||||
"usernameHelper": "This will be the user's Access Key for MinIO",
|
||||
"usernameError": "Please enter a username",
|
||||
"passwordLabel": "Password (Secret Key)",
|
||||
"passwordHelper": "This will be the user's Secret Key - Min 8 chars, uppercase, lowercase, and number",
|
||||
"passwordError": "Please enter or generate a password",
|
||||
"generatePassword": "Generate Secure Password"
|
||||
},
|
||||
"permissions": {
|
||||
"title": "Set Permissions",
|
||||
"description": "Choose what permissions this user should have for the bucket.",
|
||||
"accessLevel": "Access Level",
|
||||
"readonly": "Read Only - Can view and download files",
|
||||
"writeonly": "Write Only - Can upload and delete files",
|
||||
"readwrite": "Read & Write - Full access to the bucket",
|
||||
"info": "Policies control what actions users can perform on buckets and objects."
|
||||
},
|
||||
"review": {
|
||||
"title": "Review Configuration",
|
||||
"description": "Review your configuration before creating:",
|
||||
"bucket": "Bucket",
|
||||
"user": "User (Access Key)",
|
||||
"password": "Password (Secret Key)",
|
||||
"accessLevel": "Access Level"
|
||||
},
|
||||
"complete": {
|
||||
"title": "Setup Complete!",
|
||||
"subtitle": "Your bucket and user have been created successfully.",
|
||||
"credentials": "Your MinIO Credentials",
|
||||
"bucket": "Bucket",
|
||||
"accessKey": "Access Key",
|
||||
"secretKey": "Secret Key",
|
||||
"policy": "Policy",
|
||||
"copyCredentials": "Copy Credentials",
|
||||
"saveWarning": "Save these credentials securely. The password cannot be retrieved later.",
|
||||
"nextSteps": "Next Steps:",
|
||||
"nextStep1": "1. Use MinIO CLI or SDK to connect with these credentials",
|
||||
"nextStep2": "2. Start uploading files to your bucket",
|
||||
"nextStep3": "3. Configure additional users or policies as needed",
|
||||
"connectionExample": "Connection Example:"
|
||||
},
|
||||
"buttons": {
|
||||
"complete": "Complete Setup",
|
||||
"done": "Done"
|
||||
},
|
||||
"errors": {
|
||||
"bucketRequired": "Please enter a bucket name",
|
||||
"usernameRequired": "Please enter a username",
|
||||
"passwordRequired": "Please enter or generate a password",
|
||||
"invalidPassword": "Password must be at least 8 characters with uppercase, lowercase, and number",
|
||||
"creationFailed": "Failed to complete setup"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"title": "Storage Report",
|
||||
"generateReport": "Generate Report",
|
||||
"sendEmail": "Send Email Report",
|
||||
"exportPDF": "Export PDF",
|
||||
"lastGenerated": "Last Generated",
|
||||
"scheduleInfo": {
|
||||
"title": "Schedule Information",
|
||||
"status": "Status",
|
||||
"enabled": "Enabled",
|
||||
"disabled": "Disabled",
|
||||
"schedule": "Schedule",
|
||||
"nextRun": "Next Run",
|
||||
"recipients": "Recipients"
|
||||
},
|
||||
"storageOverview": {
|
||||
"title": "Storage Overview",
|
||||
"totalBuckets": "Total Buckets",
|
||||
"totalUsers": "Total Users",
|
||||
"totalStorage": "Total Storage"
|
||||
},
|
||||
"bucketDistribution": {
|
||||
"title": "Bucket Distribution",
|
||||
"chartTitle": "Storage by Bucket"
|
||||
},
|
||||
"bucketDetails": {
|
||||
"title": "Bucket Details",
|
||||
"columns": {
|
||||
"name": "Bucket Name",
|
||||
"size": "Size",
|
||||
"objects": "Objects",
|
||||
"lastModified": "Last Modified"
|
||||
}
|
||||
},
|
||||
"loading": "Loading report...",
|
||||
"errors": {
|
||||
"loadReport": "Failed to load report",
|
||||
"generateReport": "Failed to generate report",
|
||||
"sendEmail": "Failed to send email",
|
||||
"exportPDF": "Failed to export PDF"
|
||||
},
|
||||
"success": {
|
||||
"reportGenerated": "Report generated successfully",
|
||||
"emailSent": "Email sent successfully"
|
||||
},
|
||||
"emailDialog": {
|
||||
"title": "Send Report via Email",
|
||||
"recipients": "Recipients",
|
||||
"recipientsHelper": "Enter email addresses separated by commas",
|
||||
"recipientsError": "At least one email address is required",
|
||||
"send": "Send",
|
||||
"cancel": "Cancel"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user