Files
lemonspace_app/messages/de.json
Matthias Meister 79d9092d43 Implement internationalization support across components
- Integrated `next-intl` for toast messages and locale handling in various components, including `Providers`, `CanvasUserMenu`, and `CreditOverview`.
- Replaced hardcoded strings with translation keys to enhance localization capabilities.
- Updated `RootLayout` to dynamically set the language attribute based on the user's locale.
- Ensured consistent user feedback through localized toast messages in actions such as sign-out, canvas operations, and billing notifications.
2026-04-01 18:16:52 +02:00

221 lines
9.3 KiB
JSON

{
"common": {
"save": "Speichern",
"cancel": "Abbrechen",
"delete": "Löschen",
"close": "Schließen",
"confirm": "Bestätigen",
"loading": "Laden...",
"error": "Fehler",
"success": "Erfolg",
"back": "Zurück",
"next": "Weiter",
"upgrade": "Upgrade"
},
"auth": {
"signIn": "Anmelden",
"signOut": "Abmelden",
"magicLink": "Magischer Link",
"magicLinkSent": "Magischer Link gesendet",
"emailLabel": "E-Mail-Adresse",
"emailPlaceholder": "ihre@email.de"
},
"dashboard": {
"title": "Dashboard",
"newCanvas": "Neuer Canvas",
"recentlyOpened": "Zuletzt geöffnet",
"templates": "Vorlagen",
"noCanvases": "Keine Canvases gefunden",
"lastEdited": "Zuletzt bearbeitet",
"nodeCount": "{count, plural, one {# Node} other {# Nodes}}"
},
"canvas": {
"autosaved": "Automatisch gespeichert",
"share": "Teilen",
"credits": "Kreditpunkte",
"zoomFit": "Auf Fenster skalieren",
"addNode": "Node hinzufügen",
"sidebar": {
"properties": "Eigenschaften",
"layers": "Ebene",
"filters": "Filter",
"actions": "Aktionen"
}
},
"nodes": {
"image": "Bild",
"aiImage": "KI-Bild",
"curves": "Kurven",
"render": "Rendern",
"compare": "Vergleichen",
"compareAction": "Vergleichen",
"compareClose": "Schließen",
"compareCurrent": "Aktuell",
"compareOriginal": "Original",
"compareProcessed": "Verarbeitet",
"custom": "Benutzerdefiniert",
"customize": "Anpassen",
"prompts": {
"prompt1": "Prompt 1",
"prompt2": "Prompt 2",
"negative": "Negativ",
"style": "Stil",
"aspectRatio": "Formatverhältnis",
"imageSize": "Bildgröße",
"quality": "Qualität",
"seed": "Seed"
},
"status": {
"pending": "Ausstehend",
"processing": "Verarbeitung läuft",
"completed": "Abgeschlossen",
"failed": "Fehlgeschlagen"
}
},
"credits": {
"balance": "Guthaben",
"available": "Verfügbar",
"reserved": "Reserviert",
"topUp": "Aufladen",
"upgrade": "Upgrade",
"renewsOn": "Aktualisiert am",
"insufficientCredits": "Nicht genügend Guthaben",
"transactionHistory": "Transaktionshistorie"
},
"pricing": {
"free": "Kostenlos",
"starter": "Starter",
"pro": "Pro",
"max": "Max",
"perMonth": "/Monat",
"creditsPerMonth": "Kreditpunkte pro Monat",
"currentPlan": "Aktueller Plan",
"choosePlan": "Plan auswählen"
},
"errors": {
"generic": "Etwas ist schiefgelaufen — bitte versuche es erneut.",
"networkError": "Verbindungsfehler — prüfe deine Internetverbindung.",
"timeout": "Timeout — Credits wurden nicht abgebucht.",
"insufficientCredits": "Nicht genug Credits für diese Operation.",
"rateLimited": "Zu viele Anfragen — bitte kurz warten.",
"unauthorized": "Nicht angemeldet — bitte melde dich an.",
"modelUnavailable": "Modell aktuell nicht verfügbar — bitte ein anderes wählen.",
"contentPolicy": "Anfrage durch Inhaltsrichtlinie blockiert.",
"invalidRequest": "Ungültige Anfrage — bitte Eingaben prüfen.",
"dailyCap": "Tageslimit erreicht — morgen neu starten.",
"concurrency": "Generierung bereits aktiv — bitte warten.",
"nodeError": "Node-Fehler",
"uploadFailed": "Upload fehlgeschlagen",
"creditsTestDisabled": "Test-Gutschriften sind deaktiviert.",
"creditsInvalidAmount": "Ungültiger Betrag.",
"creditsBalanceNotFound": "Keine Credit-Balance gefunden.",
"creditsDailyCapReached": "Tageslimit erreicht — morgen neu starten.",
"creditsConcurrencyLimit": "Generierung bereits aktiv — bitte warten.",
"openrouterMissingMessage": "OpenRouter: Antwort ungültig.",
"openrouterModelRefusal": "Modell lehnt ab — {reason}.",
"openrouterNoImageInResponse": "OpenRouter: Kein Bild in der Antwort.",
"openrouterImageUrlLoadFailed": "OpenRouter: Bild-URL konnte nicht geladen werden.",
"openrouterDataUriCreationFailed": "OpenRouter: Bild konnte nicht verarbeitet werden.",
"openrouterDataUriMissingBase64": "OpenRouter: Bild konnte nicht verarbeitet werden."
},
"toasts": {
"canvas": {
"imageUploaded": "Bild hochgeladen",
"uploadFailed": "Upload fehlgeschlagen",
"uploadFormatError": "Format „{format}“ wird nicht unterstützt. Erlaubt: PNG, JPG, WebP.",
"uploadSizeError": "Maximale Dateigröße: {maxMb} MB.",
"nodeRemoved": "Element entfernt",
"nodesRemoved": "{count, plural, one {Element entfernt} other {# Elemente entfernt}}",
"nodeDeleteBlockedTitle": "Löschen momentan nicht möglich",
"nodeDeleteBlockedDesc": "Bitte kurz warten und erneut versuchen.",
"nodeDeleteOptimisticTitle": "Element wird noch angelegt",
"nodeDeleteOptimisticDesc": "Dieses Element ist noch nicht vollständig auf dem Server gespeichert. Sobald die Synchronisierung fertig ist, kannst du es löschen.",
"nodeDeleteBlockedMultiDesc": "Mindestens ein Element wird noch angelegt. Bitte kurz warten und erneut versuchen.",
"nodeDeleteBlockedPartialTitle": "Nicht alle Elemente entfernt",
"nodeDeleteBlockedPartialSuffixOne": "Ein Element wurde deshalb nicht gelöscht; die übrige Auswahl wurde entfernt.",
"nodeDeleteBlockedPartialSuffixOther": "{count} Elemente wurden deshalb nicht gelöscht; die übrige Auswahl wurde entfernt."
},
"ai": {
"generating": "Bild wird generiert…",
"generated": "Bild generiert",
"generatedDesc": "{credits} Credits verbraucht",
"generationQueued": "Generierung gestartet",
"generationQueuedDesc": "Das Bild erscheint automatisch, sobald es fertig ist.",
"generationFailed": "Generierung fehlgeschlagen",
"creditsNotCharged": "Credits wurden nicht abgebucht",
"insufficientCreditsTitle": "Nicht genügend Credits",
"insufficientCreditsDesc": "{needed} Credits benötigt, {available} verfügbar.",
"modelUnavailableTitle": "Modell vorübergehend nicht verfügbar",
"modelUnavailableDesc": "Versuche ein anderes Modell oder probiere es später erneut.",
"contentPolicyTitle": "Anfrage durch Inhaltsrichtlinie blockiert",
"contentPolicyDesc": "Versuche, den Prompt umzuformulieren.",
"timeoutTitle": "Generierung abgelaufen",
"timeoutDesc": "Credits wurden nicht abgebucht.",
"openrouterIssuesTitle": "OpenRouter möglicherweise gestört",
"openrouterIssuesDesc": "Mehrere Generierungen fehlgeschlagen.",
"concurrentLimitReachedTitle": "Generierung bereits aktiv",
"concurrentLimitReachedDesc": "Bitte warte, bis die laufende Generierung abgeschlossen ist."
},
"export": {
"frameExported": "Frame exportiert",
"exportingFrames": "Frames werden exportiert…",
"zipReady": "ZIP bereit",
"exportFailed": "Export fehlgeschlagen",
"frameEmptyTitle": "Export fehlgeschlagen",
"frameEmptyDesc": "Frame hat keinen sichtbaren Inhalt.",
"noFramesOnCanvasTitle": "Export fehlgeschlagen",
"noFramesOnCanvasDesc": "Keine Frames auf dem Canvas — zuerst einen Frame anlegen.",
"download": "Herunterladen",
"downloaded": "Heruntergeladen!"
},
"auth": {
"welcomeBack": "Willkommen zurück",
"welcomeOnDashboard": "Schön, dass du da bist",
"checkEmailTitle": "E-Mail prüfen",
"checkEmailDesc": "Bestätigungslink an {email} gesendet.",
"sessionExpiredTitle": "Sitzung abgelaufen",
"sessionExpiredDesc": "Bitte erneut anmelden.",
"signedOut": "Abgemeldet",
"signIn": "Anmelden",
"initialSetupTitle": "Startguthaben aktiv",
"initialSetupDesc": "Du kannst loslegen."
},
"billing": {
"subscriptionActivatedTitle": "Abo aktiviert",
"subscriptionActivatedDesc": "{credits} Credits deinem Guthaben hinzugefügt.",
"creditsAddedTitle": "Credits hinzugefügt",
"creditsAddedDesc": "+{credits} Credits",
"subscriptionCancelledTitle": "Abo gekündigt",
"subscriptionCancelledDesc": "Deine Credits bleiben bis {periodEnd} verfügbar.",
"paymentFailedTitle": "Zahlung fehlgeschlagen",
"paymentFailedDesc": "Bitte Zahlungsmethode aktualisieren.",
"dailyLimitReachedTitle": "Tageslimit erreicht",
"dailyLimitReachedDesc": "Maximal {limit} Generierungen pro Tag in deinem Tarif.",
"lowCreditsTitle": "Credits fast aufgebraucht",
"lowCreditsDesc": "Noch {remaining} Credits übrig.",
"topUp": "Aufladen",
"upgrade": "Upgrade",
"manage": "Verwalten",
"redirectingToCheckoutTitle": "Weiterleitung…",
"redirectingToCheckoutDesc": "Du wirst zum sicheren Checkout weitergeleitet.",
"openingPortalTitle": "Portal wird geöffnet…",
"openingPortalDesc": "Du wirst zur Aboverwaltung weitergeleitet.",
"testGrantFailedTitle": "Gutschrift fehlgeschlagen"
},
"system": {
"reconnected": "Verbindung wiederhergestellt",
"connectionLostTitle": "Verbindung verloren",
"connectionLostDesc": "Änderungen werden möglicherweise nicht gespeichert.",
"copiedToClipboard": "In Zwischenablage kopiert"
},
"dashboard": {
"renameEmptyTitle": "Name ungültig",
"renameEmptyDesc": "Name darf nicht leer sein.",
"renameSuccess": "Arbeitsbereich umbenannt",
"renameFailed": "Umbenennen fehlgeschlagen",
"deleteSuccess": "Arbeitsbereich gelöscht",
"deleteFailed": "Löschen fehlgeschlagen"
}
}
}