feat(i18n): full app + docs localization (de/en)
Build & Push Docker Image / build (push) Successful in 2m33s
Build & Push Docker Image / build (push) Successful in 2m33s
- translate remaining pages/components (admin, analytics, redundancy, trash, compare, browse, watchlist, admin tools tab, category combobox, theme toggle, tool preview card, tool-new/edit) to t() calls - locales: 453 keys each, parity verified - docs: bilingual handbook + release notes via *.en.md variants, language-aware docs.tsx (markdown paths, nav titles, search index), LanguageSwitcher in docs header - generate-docs: emit per-locale handbook/release/search output, localized index.json fields (fileEn/titleEn), en-aware snapshots
This commit is contained in:
@@ -53,7 +53,9 @@
|
||||
"loading": "Wird geladen…",
|
||||
"all": "Alle",
|
||||
"none": "Keine",
|
||||
"language": "Sprache"
|
||||
"language": "Sprache",
|
||||
"viewDetails": "Details ansehen",
|
||||
"guideTooltip": "Anleitung in der Dokumentation"
|
||||
},
|
||||
"home": {
|
||||
"welcome": "Willkommen bei toolr",
|
||||
@@ -80,6 +82,8 @@
|
||||
"category": "Kategorie",
|
||||
"rating": "Bewertung",
|
||||
"reviews": "Bewertungen",
|
||||
"reviewCount_one": "{{count}} Bewertung",
|
||||
"reviewCount_other": "{{count}} Bewertungen",
|
||||
"noToolsFound": "Keine Tools gefunden",
|
||||
"noToolsMatch": "Wir konnten keine Tools finden, die zu deinen Filtern passen. Versuche, die Suchkriterien anzupassen, oder füge ein neues Tool hinzu.",
|
||||
"addTool": "Tool hinzufügen",
|
||||
@@ -103,7 +107,9 @@
|
||||
"features": "Funktionen",
|
||||
"minRating": "Mindestbewertung",
|
||||
"any": "Beliebig",
|
||||
"clearFilters": "Filter zurücksetzen"
|
||||
"clearFilters": "Filter zurücksetzen",
|
||||
"removeFeature": "Funktion entfernen: {{feature}}",
|
||||
"removeMinRating": "Mindestbewertung entfernen"
|
||||
},
|
||||
"detail": {
|
||||
"ratingBreakdown": "Bewertungsaufschlüsselung",
|
||||
@@ -133,7 +139,65 @@
|
||||
"deleteToTrash": "Dies verschiebt {{name}} in den Papierkorb. Es kann später wiederhergestellt werden.",
|
||||
"deletePermanent": "Dies entfernt {{name}} dauerhaft inklusive aller Bewertungen. Das kann nicht rückgängig gemacht werden.",
|
||||
"deleting": "Löschen…",
|
||||
"deleteAction": "Löschen"
|
||||
"deleteAction": "Löschen",
|
||||
"invalidToolId": "Ungültige Tool-ID",
|
||||
"backToBrowse": "Zurück zur Übersicht",
|
||||
"keyFeatures": "Wichtige Funktionen",
|
||||
"toolNotFound": "Tool nicht gefunden.",
|
||||
"similarTools": "Ähnliche Tools",
|
||||
"noSimilarTools": "Keine ähnlichen Tools gefunden.",
|
||||
"linkTool": "Tool verknüpfen",
|
||||
"linkSimilarTool": "Ähnliches Tool verknüpfen",
|
||||
"linkSimilarToolSub": "Verknüpfe dieses Tool manuell mit einem anderen Tool.",
|
||||
"toolId": "Tool-ID",
|
||||
"toolIdPlaceholder": "Ziel-Tool-ID eingeben",
|
||||
"relationType": "Beziehungstyp",
|
||||
"relationSimilar": "Ähnlich",
|
||||
"relationReplaces": "Ersetzt",
|
||||
"relationSupersededBy": "Ersetzt durch",
|
||||
"notesOptional": "Notizen (optional)",
|
||||
"notesPlaceholder": "Warum sind diese Tools verwandt?",
|
||||
"createLink": "Verknüpfung erstellen",
|
||||
"noCostInfo": "Noch keine Kosteninformationen hinzugefügt.",
|
||||
"costDialogSub": "Verwalte die Lizenzkosteninformationen für dieses Tool.",
|
||||
"licenseType": "Lizenztyp",
|
||||
"licenseFree": "Kostenlos",
|
||||
"licenseSubscription": "Abonnement",
|
||||
"licenseOneTime": "Einmalig",
|
||||
"licenseUsageBased": "Nutzungsbasiert",
|
||||
"billingPeriod": "Abrechnungszeitraum",
|
||||
"billingMonthly": "Monatlich",
|
||||
"billingQuarterly": "Quartalsweise",
|
||||
"billingYearly": "Jährlich",
|
||||
"costLabel": "Kosten",
|
||||
"currency": "Währung",
|
||||
"costNotes": "Notizen",
|
||||
"costNotesPlaceholder": "Abrechnungsdetails, Vertragsinformationen…",
|
||||
"commentOptional": "Kommentar (optional)",
|
||||
"commentLabel": "Kommentar",
|
||||
"commentPlaceholder": "Was denkst du über dieses Tool?",
|
||||
"nameOptional": "Name (optional)",
|
||||
"nameLabel": "Name",
|
||||
"anonymousPlaceholder": "Anonym",
|
||||
"anonymousEngineer": "Anonymer Ingenieur",
|
||||
"beFirstToReview": "Sei der Erste, der seine Gedanken zu diesem Tool teilt.",
|
||||
"shareExperience": "Teile deine Erfahrung mit {{name}}",
|
||||
"score": "Punktestand",
|
||||
"toastRelationCreated": "Beziehung erstellt",
|
||||
"toastRelationFailed": "Beziehung konnte nicht erstellt werden",
|
||||
"toastRelationDeleted": "Beziehung gelöscht",
|
||||
"toastRelationDeleteFailed": "Beziehung konnte nicht gelöscht werden",
|
||||
"toastCostUpdated": "Kosten aktualisiert",
|
||||
"toastCostAdded": "Kosten hinzugefügt",
|
||||
"toastCostFailed": "Kosten konnten nicht gespeichert werden",
|
||||
"toastCostDeleted": "Kosten gelöscht",
|
||||
"toastCostDeleteFailed": "Kosten konnten nicht gelöscht werden",
|
||||
"toastRatingSubmitted": "Bewertung abgesendet",
|
||||
"toastRatingThanks": "Danke für dein Feedback!",
|
||||
"toastRatingFailed": "Bewertung konnte nicht abgesendet werden",
|
||||
"toastToolDeleted": "Tool gelöscht",
|
||||
"toastDeleteFailed": "Löschen fehlgeschlagen",
|
||||
"unexpectedError": "Ein unerwarteter Fehler ist aufgetreten."
|
||||
},
|
||||
"compare": {
|
||||
"title": "Tools vergleichen",
|
||||
@@ -176,7 +240,29 @@
|
||||
"deletePermanently": "Endgültig löschen",
|
||||
"emptyTrash": "Papierkorb leeren",
|
||||
"deletedAt": "Gelöscht am",
|
||||
"deletedBy": "Gelöscht von"
|
||||
"deletedBy": "Gelöscht von",
|
||||
"name": "Name",
|
||||
"category": "Kategorie",
|
||||
"actions": "Aktionen",
|
||||
"selectAll": "Alle auswählen",
|
||||
"selectName": "{{name}} auswählen",
|
||||
"restoreAction": "Wiederherstellen",
|
||||
"deleteAction": "Löschen",
|
||||
"deleteConfirmTitle": "{{count}} Tool(s) endgültig löschen?",
|
||||
"deleteConfirmSub": "Dies entfernt die ausgewählten Tools dauerhaft inklusive aller Bewertungen, Kosten und Beziehungen. Das kann nicht rückgängig gemacht werden.",
|
||||
"emptyConfirmTitle": "Papierkorb leeren?",
|
||||
"emptyConfirmSub": "Dies entfernt alle {{count}} Tool(s) im Papierkorb dauerhaft inklusive ihrer Bewertungen, Kosten und Beziehungen. Das kann nicht rückgängig gemacht werden.",
|
||||
"toastRestored": "Tools wiederhergestellt",
|
||||
"toastRestoredSub": "{{count}} Tool(s) wiederhergestellt.",
|
||||
"toastRestoreFailed": "Wiederherstellen fehlgeschlagen",
|
||||
"toastDeleted": "Tools gelöscht",
|
||||
"toastDeletedSub": "{{count}} Tool(s) endgültig entfernt.",
|
||||
"toastDeleteFailed": "Löschen fehlgeschlagen",
|
||||
"toastEmptied": "Papierkorb geleert",
|
||||
"toastEmptiedSub": "{{count}} Tool(s) endgültig entfernt.",
|
||||
"toastEmptyFailed": "Papierkorb konnte nicht geleert werden",
|
||||
"searchPlaceholder": "Tools suchen…",
|
||||
"toolCount": "{{count}} Tool(s)"
|
||||
},
|
||||
"notFound": {
|
||||
"text": "Diese Seite existiert nicht.",
|
||||
@@ -209,7 +295,10 @@
|
||||
"parameter": "Parameter",
|
||||
"noResults": "Keine Treffer",
|
||||
"fields": "Felder",
|
||||
"fieldHelpHint": "Hinweis: Formular-Felder verlinken per ?-Icon direkt zu den jeweiligen Zeilen dieser Tabelle."
|
||||
"fieldHelpHint": "Hinweis: Formular-Felder verlinken per ?-Icon direkt zu den jeweiligen Zeilen dieser Tabelle.",
|
||||
"name": "Name",
|
||||
"in": "In",
|
||||
"requestBody": "Request-Body"
|
||||
},
|
||||
"command": {
|
||||
"navigate": "Navigation",
|
||||
@@ -217,5 +306,192 @@
|
||||
"tools": "Tools",
|
||||
"noResults": "Keine Tools für „{{query}}“ gefunden.",
|
||||
"startTyping": "Beginne zu tippen, um Tools zu suchen."
|
||||
},
|
||||
"admin": {
|
||||
"accessRequired": "Admin-Zugriff erforderlich",
|
||||
"accessRequiredSub": "Du benötigst Admin-Rechte, um diese Seite anzusehen.",
|
||||
"goHome": "Zur Startseite",
|
||||
"panel": "Admin-Bereich",
|
||||
"panelSub": "Benutzer verwalten und Systemänderungen einsehen.",
|
||||
"redundancyDashboard": "Redundanz-Dashboard",
|
||||
"tabUsers": "Benutzer",
|
||||
"tabTools": "Tools",
|
||||
"tabAudit": "Audit-Log",
|
||||
"tabSystem": "System",
|
||||
"localUsers": "Lokale Benutzer",
|
||||
"localUsersSub": "Konten für die lokale Authentifizierung verwalten.",
|
||||
"addUser": "Benutzer hinzufügen",
|
||||
"noUsersYet": "Noch keine Benutzer.",
|
||||
"auditLog": "Audit-Log",
|
||||
"auditLogSub": "Alle vom System protokollierten Erstellungs-, Aktualisierungs- und Löschvorgänge.",
|
||||
"by": "von",
|
||||
"noAuditEntries": "Noch keine Audit-Einträge.",
|
||||
"system": "System",
|
||||
"systemSub": "Build-Informationen der aktuell laufenden Bereitstellung.",
|
||||
"version": "Version",
|
||||
"commit": "Commit",
|
||||
"buildDate": "Build-Datum",
|
||||
"trashRetention": "Papierkorb-Aufbewahrung",
|
||||
"days": "Tage",
|
||||
"keepForever": "Für immer behalten",
|
||||
"createNewUser": "Neuen Benutzer erstellen",
|
||||
"username": "Benutzername",
|
||||
"password": "Passwort",
|
||||
"emailOptional": "E-Mail (optional)",
|
||||
"role": "Rolle",
|
||||
"roleUser": "Benutzer",
|
||||
"roleAdmin": "Admin",
|
||||
"plan": "Plan",
|
||||
"planFree": "Kostenlos",
|
||||
"planPremium": "Premium",
|
||||
"planEnterprise": "Enterprise",
|
||||
"creating": "Erstelle…",
|
||||
"createUser": "Benutzer erstellen",
|
||||
"editUser": "Benutzer bearbeiten — {{username}}",
|
||||
"setPassword": "Passwort festlegen",
|
||||
"resetsPassword": "Setzt das Passwort des Benutzers sofort zurück.",
|
||||
"idpManaged": "Das Passwort wird vom Identity-Provider (Keycloak) verwaltet. Setze es dort zurück.",
|
||||
"setting": "Setze…",
|
||||
"deleteUser": "Benutzer löschen",
|
||||
"deleteUserConfirm": "Bist du sicher, dass du {{username}} löschen möchtest? Das kann nicht rückgängig gemacht werden.",
|
||||
"minPasswordPlaceholder": "min. 6 Zeichen",
|
||||
"usernamePlaceholder": "benutzername",
|
||||
"emailPlaceholder": "user@example.com",
|
||||
"toastUserCreated": "Benutzer erstellt",
|
||||
"toastUserCreatedSub": "{{username}} wurde erstellt.",
|
||||
"toastUserCreateFailed": "Benutzer konnte nicht erstellt werden",
|
||||
"toastUserUpdated": "Benutzer aktualisiert",
|
||||
"toastUserUpdateFailed": "Benutzer konnte nicht aktualisiert werden",
|
||||
"toastPwTooShort": "Passwort zu kurz",
|
||||
"toastPwTooShortSub": "Mindestens 6 Zeichen.",
|
||||
"toastPwUpdated": "Passwort aktualisiert",
|
||||
"toastPwUpdatedSub": "Passwort für {{username}} wurde festgelegt.",
|
||||
"toastPwSetFailed": "Passwort konnte nicht festgelegt werden",
|
||||
"toastUserDeleted": "Benutzer gelöscht",
|
||||
"toastUserDeletedSub": "{{username}} wurde entfernt.",
|
||||
"toastUserDeleteFailed": "Benutzer konnte nicht gelöscht werden"
|
||||
},
|
||||
"adminTools": {
|
||||
"accessRequired": "Admin-Zugriff erforderlich.",
|
||||
"allTools": "Alle Tools",
|
||||
"toolCount": "{{count}} Tool(s)",
|
||||
"selected": "{{count}} ausgewählt",
|
||||
"searchPlaceholder": "Tools suchen…",
|
||||
"moveToTrash": "In den Papierkorb verschieben ({{count}})",
|
||||
"noMatch": "Keine Tools entsprechen deiner Suche.",
|
||||
"noToolsYet": "Noch keine Tools.",
|
||||
"selectAll": "Alle auswählen",
|
||||
"selectName": "{{name}} auswählen",
|
||||
"name": "Name",
|
||||
"category": "Kategorie",
|
||||
"rating": "Bewertung",
|
||||
"createdBy": "Erstellt von",
|
||||
"createdAt": "Erstellt am",
|
||||
"actions": "Aktionen",
|
||||
"confirmTitle": "{{count}} Tool(s) in den Papierkorb verschieben?",
|
||||
"confirmSub": "Die ausgewählten Tools werden aus allen öffentlichen Ansichten entfernt und in den Papierkorb verschoben, wo sie wiederhergestellt oder endgültig gelöscht werden können.",
|
||||
"moveToTrashAction": "In den Papierkorb verschieben",
|
||||
"toastMoved": "Tools in den Papierkorb verschoben",
|
||||
"toastMovedSub": "{{count}} Tool(s) in den Papierkorb verschoben.",
|
||||
"toastMoveFailed": "Verschieben in den Papierkorb fehlgeschlagen"
|
||||
},
|
||||
"analytics": {
|
||||
"title": "Plattform-Analysen",
|
||||
"subtitle": "Makro-Einblicke in die Leistung der Tools und das Engagement der Community.",
|
||||
"totalToolsIndexed": "Indexierte Tools gesamt",
|
||||
"totalRatingsCast": "Abgegebene Bewertungen gesamt",
|
||||
"activeCategories": "Aktive Kategorien",
|
||||
"avgGlobalScore": "Ø Globaler Punktestand",
|
||||
"top8Tools": "Top 8 Tools nach kombiniertem Punktestand",
|
||||
"top8ToolsSub": "Die bestbewerteten Tools der Plattform",
|
||||
"toolsByCategory": "Tools nach Kategorie",
|
||||
"toolsByCategorySub": "Verteilung der Tools auf Kategorien",
|
||||
"globalRatingDistribution": "Globale Bewertungsverteilung",
|
||||
"globalRatingDistributionSub": "Wie Benutzer über alle Tools abstimmen",
|
||||
"radarTools": "Tools"
|
||||
},
|
||||
"redundancy": {
|
||||
"title": "Tool-Analyse & Empfehlungen",
|
||||
"subtitle": "Automatische Redundanz-Erkennung mit Kosten- und Bewertungsvergleich. Admins können manuell bestätigen, welches Tool die bessere Wahl ist.",
|
||||
"toolsComparisons": "{{tools}} Tools, {{pairs}} Vergleiche",
|
||||
"totalMonthly": "/Monat gesamt",
|
||||
"reviews": "Bewertungen",
|
||||
"features": "Features",
|
||||
"comparisonsTitle": "Vergleiche & Empfehlungen",
|
||||
"vs": "gegen",
|
||||
"noTools": "Keine Tools gefunden.",
|
||||
"perMonth": "/Monat",
|
||||
"toastEvalSaved": "Auswertung gespeichert",
|
||||
"toastEvalFailed": "Auswertung konnte nicht gespeichert werden"
|
||||
},
|
||||
"toolForm": {
|
||||
"backToBrowse": "Zurück zur Übersicht",
|
||||
"backToTool": "Zurück zum Tool",
|
||||
"addTitle": "Neues Tool hinzufügen",
|
||||
"addSubtitle": "Reiche ein Tool ein, das du nutzt, damit die Community es bewerten kann.",
|
||||
"editTitle": "Tool bearbeiten",
|
||||
"editSubtitle": "Aktualisiere Tool-Details und Metadaten.",
|
||||
"signInRequired": "Anmeldung erforderlich",
|
||||
"signInRequiredSub": "Du musst angemeldet sein, um ein Tool einzureichen.",
|
||||
"toolDetails": "Tool-Details",
|
||||
"toolDetailsNewSub": "Gib die grundlegenden Informationen zum Tool an.",
|
||||
"toolDetailsEditSub": "Ändere die Tool-Informationen unten.",
|
||||
"name": "Name",
|
||||
"nameMin": "Name muss mindestens 2 Zeichen haben",
|
||||
"category": "Kategorie",
|
||||
"categoryRequired": "Kategorie ist erforderlich",
|
||||
"websiteUrl": "Website-URL",
|
||||
"websiteUrlOptional": "Website-URL (optional)",
|
||||
"iconUrl": "Icon-/Logo-URL",
|
||||
"iconUrlOptional": "Icon-/Logo-URL (optional)",
|
||||
"iconPreview": "Icon-Vorschau",
|
||||
"description": "Beschreibung",
|
||||
"descriptionMin": "Beschreibung muss mindestens 10 Zeichen haben",
|
||||
"invalidUrl": "Muss eine gültige URL sein",
|
||||
"features": "Features",
|
||||
"featuresNewSub": "Liste die wichtigsten Funktionen auf. Vorhandene Features anderer Tools sind auswählbar.",
|
||||
"featuresEditSub": "Wichtige Funktionen dieses Tools. Vorhandene Features anderer Tools sind auswählbar.",
|
||||
"addFeature": "Feature hinzufügen",
|
||||
"noFeatures": "Keine Features hinzugefügt.",
|
||||
"featurePlaceholder": "z. B. Echtzeit-Zusammenarbeit",
|
||||
"tags": "Tags",
|
||||
"tagsNewSub": "Schlüsselwörter, um dieses Tool zu finden. Vorhandene Tags anderer Tools sind auswählbar.",
|
||||
"tagsEditSub": "Schlüsselwörter für dieses Tool. Vorhandene Tags anderer Tools sind auswählbar.",
|
||||
"addTag": "Tag hinzufügen",
|
||||
"tag": "Tag",
|
||||
"namePlaceholder": "z. B. React, Next.js, Postgres",
|
||||
"urlPlaceholder": "https://…",
|
||||
"logoPlaceholder": "https://example.com/logo.png",
|
||||
"descriptionPlaceholderNew": "Was macht dieses Tool? Warum nutzen es Menschen?",
|
||||
"descriptionPlaceholderEdit": "Was macht dieses Tool?",
|
||||
"addingTool": "Füge Tool hinzu…",
|
||||
"submitTool": "Tool einreichen",
|
||||
"saving": "Speichere…",
|
||||
"saveChanges": "Änderungen speichern",
|
||||
"toastAdded": "Tool erfolgreich hinzugefügt",
|
||||
"toastAddedSub": "Dein Tool ist jetzt zur Bewertung verfügbar.",
|
||||
"toastAddFailed": "Tool konnte nicht hinzugefügt werden",
|
||||
"toastUpdated": "Tool aktualisiert",
|
||||
"toastUpdatedSub": "Änderungen erfolgreich gespeichert.",
|
||||
"toastUpdateFailed": "Tool konnte nicht aktualisiert werden",
|
||||
"tagsHelp": "Schlüsselwörter, die helfen, dieses Tool zu finden. Vorhandene Tags anderer Tools sind auswählbar.",
|
||||
"tagPlaceholder": "Tag"
|
||||
},
|
||||
"category": {
|
||||
"placeholder": "Kategorie auswählen oder eingeben…",
|
||||
"searchPlaceholder": "Kategorie suchen oder neue eingeben…",
|
||||
"noCategories": "Keine Kategorien gefunden.",
|
||||
"knownCategories": "Bekannte Kategorien",
|
||||
"createNew": "Neu erstellen",
|
||||
"create": "+ Erstellen"
|
||||
},
|
||||
"theme": {
|
||||
"title": "Design",
|
||||
"light": "Hell",
|
||||
"dark": "Dunkel",
|
||||
"system": "System",
|
||||
"chooseTitle": "Design auswählen",
|
||||
"switchLight": "Zum hellen Design wechseln",
|
||||
"switchDark": "Zum dunklen Design wechseln"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user