i18n implemented

This commit is contained in:
2026-10-03 23:45:04 +02:00
parent 2ccea34bb9
commit d95ed40053
55 changed files with 2952 additions and 301 deletions
+263
View File
@@ -0,0 +1,263 @@
{
"common": {
"save": "Speichern",
"saving": "Speichern…",
"cancel": "Abbrechen",
"delete": "Löschen",
"deleting": "Löscht…",
"remove": "Entfernen",
"close": "Schließen",
"back": "Zurück",
"next": "Weiter",
"previous": "Zurück",
"reset": "Zurücksetzen",
"loginLink": "Melde dich an",
"name": "Name",
"password": "Passwort",
"email": "E-Mail"
},
"auth": {
"login": "Anmelden",
"logout": "Ausloggen",
"register": "Registrieren",
"loginTitle": "Login",
"loginDesc": "Melde dich mit Name und Passwort an.",
"registerTitle": "Registrieren",
"registerDesc": "Name und Passwort reichen — E-Mail ist optional.",
"emailOptional": "E-Mail (optional)",
"createAccount": "Konto erstellen",
"noAccount": "Noch kein Konto?",
"alreadyRegistered": "Schon registriert?",
"loginFailed": "Login fehlgeschlagen",
"registerFailed": "Registrierung fehlgeschlagen"
},
"nav": {
"users": "Benutzer",
"admin": "Admin",
"profile": "Profil",
"settings": "Einstellungen",
"search": "Suchen…",
"searchAria": "Schnellsuche öffnen (Strg+K)",
"searchShortcut": "Strg K",
"gridBento": "Bento-Layout",
"gridUniform": "Einheitliche Größe"
},
"upload": {
"upload": "Hochladen",
"uploading": "Lädt hoch…",
"dropToUpload": "Zum Hochladen loslassen",
"desc": "Datei oder URL — Bilder, Videos, Audio (MP3/FLAC), YouTube- und Twitch-Links.",
"file": "Datei",
"orUrl": "oder URL",
"urlHint": "Direkte Bild-/Video-URLs werden gespeichert, YouTube- und Twitch-Links eingebettet.",
"loginToUpload": ", um Dateien hochzuladen.",
"loginToUploadToast": "Melde dich an, um hochzuladen.",
"onlyMedia": "Nur Bilder, Videos und Audiodateien sind erlaubt",
"failedCount": "{failed} von {total} Dateien fehlgeschlagen",
"failed": "Upload fehlgeschlagen",
"threadLoadFailed": "Thread konnte nicht geladen werden",
"dropzoneText": "Datei hierher ziehen oder klicken",
"dropzoneHint": "Bilder, Videos & Audio, max. 200 MB",
"avatarHint": "Bilder, max. 5 MB"
},
"grid": {
"loading": "Lade Uploads…",
"emptyFiltered": "Keine Uploads für die aktiven Filter.",
"empty": "Noch keine Uploads. Sei der Erste!",
"count": "{n} Uploads"
},
"filters": {
"filter": "Filter",
"type": "Typ",
"uploader": "Uploader",
"period": "Zeitraum",
"allUploaders": "Alle Uploader",
"searchUser": "Nutzer suchen…",
"noUser": "Kein Nutzer gefunden.",
"images": "Bilder",
"videos": "Videos",
"audio": "Audio",
"links": "Links",
"today": "Heute",
"days7": "7 Tage",
"days30": "30 Tage",
"lastYear": "Letztes Jahr",
"allTime": "Gesamter Zeitraum",
"removeTag": "Tag-Filter entfernen",
"removeType": "Typ-Filter {label} entfernen",
"removeUploader": "Uploader-Filter entfernen",
"removePeriod": "Zeitraum-Filter entfernen"
},
"comments": {
"title": "Kommentare",
"none": "Noch keine Kommentare.",
"loading": "Lade Kommentare…",
"placeholder": "Kommentar schreiben… {'@'} zum Erwähnen, Dateien hierher ziehen",
"submit": "Kommentieren",
"loginToComment": "um zu kommentieren.",
"attachFiles": "Dateien anhängen",
"removeAttachment": "Anhang entfernen",
"attachments": "Anhänge",
"deleteComment": "Kommentar löschen",
"commentAria": "Kommentar",
"mentionAria": "Benutzer erwähnen",
"recordStart": "Sprachnachricht aufnehmen",
"recordStop": "Aufnahme beenden",
"recording": "Aufnahme läuft…",
"recordHint": "Zum Beenden Mikrofon klicken",
"voiceMessage": "Sprachnachricht",
"maxAttachments": "Maximal {n} Anhänge pro Kommentar",
"fileTooLarge": "{name}: Datei ist zu groß (max. 200 MB)",
"noMic": "Kein Zugriff aufs Mikrofon",
"sendFailed": "Kommentar konnte nicht gesendet werden",
"addReaction": "Reaktion hinzufügen",
"reactionFailed": "Reaktion fehlgeschlagen",
"loginToReact": "Melde dich an, um zu reagieren.",
"playAttachment": "{name} abspielen"
},
"thread": {
"notFound": "Upload nicht gefunden.",
"newer": "Neuerer Upload",
"older": "Älterer Upload",
"favAdd": "Zu Favoriten hinzufügen",
"favRemove": "Aus Favoriten entfernen",
"loginToFavorite": "Melde dich an, um zu favorisieren.",
"deleteUpload": "Upload löschen",
"deleteTitle": "Upload wirklich löschen?",
"deleteDesc": "Der Beitrag und alle Kommentare werden entfernt.",
"deleteFailed": "Löschen fehlgeschlagen",
"editTags": "Tags bearbeiten",
"addTag": "Tag hinzufügen…",
"removeTag": "Tag {tag} entfernen",
"tagsSaveFailed": "Tags konnten nicht gespeichert werden",
"subscribeOn": "Benachrichtigungen für diesen Thread aktivieren",
"subscribeOff": "Benachrichtigungen für diesen Thread deaktivieren",
"subOn": "Thread-Benachrichtigungen aktiviert",
"subOff": "Thread-Benachrichtigungen deaktiviert",
"subFailed": "Abonnement konnte nicht geändert werden"
},
"audio": {
"play": "Abspielen",
"pause": "Pause",
"seek": "Wiedergabeposition",
"mute": "Stumm",
"unmute": "Ton an",
"volume": "Lautstärke",
"download": "Herunterladen"
},
"notifications": {
"aria": "Benachrichtigungen",
"empty": "Keine Benachrichtigungen.",
"commented": "hat kommentiert",
"mentioned": "hat dich erwähnt",
"view": "Ansehen",
"toastCommented": "{name} hat in einem abonnierten Thread kommentiert",
"toastMentioned": "{name} hat dich erwähnt"
},
"settings": {
"title": "Einstellungen",
"desc": "Profil und Sprache anpassen.",
"nameColor": "Name-Farbe",
"pickColor": "Farbe auswählen",
"cardEffect": "Hover-Card-Effekt",
"noEffect": "Keiner",
"noEffectPlaceholder": "Kein Effekt",
"ownEffectColor": "Eigene Effekt-Farbe",
"pickEffectColor": "Effekt-Farbe auswählen",
"vignette": "Vignette (Text lesbar halten)",
"cardBorder": "Hover-Card-Border",
"ownBorderColor": "Eigene Border-Farbe",
"pickBorderColor": "Border-Farbe auswählen",
"preview": "Vorschau",
"previewHint": "So sieht deine Hover-Card für andere aus.",
"avatar": "Avatar",
"currentAvatar": "Aktueller Avatar",
"language": "Sprache",
"saved": "Einstellungen gespeichert",
"saveFailed": "Speichern fehlgeschlagen",
"loginToChange": ", um deine Einstellungen zu ändern."
},
"admin": {
"roles": "Rollen",
"rolesDesc": "Bestehende Rollen und neue anlegen (z. B. moderator). Die admin-Rolle hat immer alle Berechtigungen.",
"memberCount": "{n} Nutzer",
"deleteRole": "Rolle löschen",
"newRole": "Neuer Rollenname",
"create": "Anlegen",
"users": "Benutzer",
"usersDesc": "Rollen zuweisen oder entfernen.",
"searchUsers": "Name oder E-Mail suchen…",
"noRoles": "keine Rollen",
"chooseRole": "Rolle wählen…",
"assign": "Zuweisen",
"removeRole": "Rolle {name} entfernen",
"rolesCol": "Rollen",
"actionCol": "Aktion",
"motd": "Ansage",
"motdDesc": "Wird allen Besuchern direkt unter der Kopfzeile angezeigt und bei Änderung sofort aktualisiert. Leer lassen, um sie zu entfernen.",
"motdPlaceholder": "Ansagetext…",
"actionFailed": "Aktion fehlgeschlagen",
"perms": {
"admin": { "access": "Admin-Bereich öffnen" },
"roles": { "manage": "Rollen & Berechtigungen verwalten" },
"users": { "manage": "Benutzer & Rollen verwalten" },
"site": { "manage": "Seiten-Einstellungen verwalten" },
"comment": { "delete": "Kommentare löschen" },
"upload": { "delete": "Uploads löschen" },
"tag": { "delete": "Tags löschen" }
}
},
"palette": {
"title": "Schnellsuche",
"desc": "Seiten, Tags oder Uploader suchen",
"placeholder": "Seiten, Tags oder Uploader suchen…",
"empty": "Keine Ergebnisse.",
"pages": "Seiten",
"home": "Startseite",
"users": "Benutzer",
"myProfile": "Mein Profil",
"settings": "Einstellungen",
"adminArea": "Admin-Bereich",
"login": "Login",
"register": "Registrieren",
"tags": "Tags",
"uploaders": "Uploader"
},
"timeAgo": {
"justNow": "gerade eben",
"min": "vor {n} Min",
"hour": "vor {n} Std",
"day": "vor {n} T",
"month": "vor {n} Mon",
"year": "vor {n} J"
},
"misc": {
"userNotFound": "Nutzer nicht gefunden.",
"memberSince": "Mitglied seit {date}",
"since": "seit {date}",
"noUsers": "Noch keine Benutzer.",
"noUploads": "Noch keine Uploads.",
"joined": "Dabei seit",
"commentsCol": "Kommentare",
"uploadsCol": "Uploads",
"noEntries": "Keine Einträge.",
"pageOf": "Seite {page} von {total}",
"theme": "Theme",
"toggleSidebar": "Seitenleiste umschalten",
"sidebar": "Seitenleiste",
"sidebarDesc": "Zeigt die mobile Seitenleiste.",
"more": "Mehr",
"setColor": "Farbe auf {color} setzen",
"breadcrumb": "Brotkrumennavigation"
},
"pagination": {
"prev": "Vorherige Seite",
"next": "Nächste Seite",
"first": "Erste Seite",
"firstShort": "Erste",
"last": "Letzte Seite",
"lastShort": "Letzte",
"page": "Seite {page}",
"more": "Weitere Seiten"
}
}
+263
View File
@@ -0,0 +1,263 @@
{
"common": {
"save": "Save",
"saving": "Saving…",
"cancel": "Cancel",
"delete": "Delete",
"deleting": "Deleting…",
"remove": "Remove",
"close": "Close",
"back": "Back",
"next": "Next",
"previous": "Previous",
"reset": "Reset",
"loginLink": "Log in",
"name": "Name",
"password": "Password",
"email": "Email"
},
"auth": {
"login": "Log in",
"logout": "Log out",
"register": "Sign up",
"loginTitle": "Log in",
"loginDesc": "Log in with your name and password.",
"registerTitle": "Sign up",
"registerDesc": "Name and password are enough — email is optional.",
"emailOptional": "Email (optional)",
"createAccount": "Create account",
"noAccount": "No account yet?",
"alreadyRegistered": "Already registered?",
"loginFailed": "Login failed",
"registerFailed": "Registration failed"
},
"nav": {
"users": "Users",
"admin": "Admin",
"profile": "Profile",
"settings": "Settings",
"search": "Search…",
"searchAria": "Open quick search (Ctrl+K)",
"searchShortcut": "Ctrl K",
"gridBento": "Bento layout",
"gridUniform": "Uniform size"
},
"upload": {
"upload": "Upload",
"uploading": "Uploading…",
"dropToUpload": "Drop to upload",
"desc": "File or URL — images, videos, audio (MP3/FLAC), YouTube and Twitch links.",
"file": "File",
"orUrl": "or URL",
"urlHint": "Direct image/video URLs are saved, YouTube and Twitch links are embedded.",
"loginToUpload": " to upload files.",
"loginToUploadToast": "Log in to upload.",
"onlyMedia": "Only images, videos, and audio files are allowed",
"failedCount": "{failed} of {total} files failed",
"failed": "Upload failed",
"threadLoadFailed": "Thread could not be loaded",
"dropzoneText": "Drag file here or click",
"dropzoneHint": "Images, videos & audio, max. 200 MB",
"avatarHint": "Images, max. 5 MB"
},
"grid": {
"loading": "Loading uploads…",
"emptyFiltered": "No uploads match the active filters.",
"empty": "No uploads yet. Be the first!",
"count": "{n} uploads"
},
"filters": {
"filter": "Filter",
"type": "Type",
"uploader": "Uploader",
"period": "Time range",
"allUploaders": "All uploaders",
"searchUser": "Search users…",
"noUser": "No user found.",
"images": "Images",
"videos": "Videos",
"audio": "Audio",
"links": "Links",
"today": "Today",
"days7": "7 days",
"days30": "30 days",
"lastYear": "Last year",
"allTime": "All time",
"removeTag": "Remove tag filter",
"removeType": "Remove {label} type filter",
"removeUploader": "Remove uploader filter",
"removePeriod": "Remove time range filter"
},
"comments": {
"title": "Comments",
"none": "No comments yet.",
"loading": "Loading comments…",
"placeholder": "Write a comment… {'@'} to mention, drop files here",
"submit": "Comment",
"loginToComment": "to comment.",
"attachFiles": "Attach files",
"removeAttachment": "Remove attachment",
"attachments": "Attachments",
"deleteComment": "Delete comment",
"commentAria": "Comment",
"mentionAria": "Mention user",
"recordStart": "Record voice message",
"recordStop": "Stop recording",
"recording": "Recording…",
"recordHint": "Click the microphone to stop",
"voiceMessage": "Voice message",
"maxAttachments": "Max {n} attachments per comment",
"fileTooLarge": "{name}: File is too large (max. 200 MB)",
"noMic": "No microphone access",
"sendFailed": "Comment could not be sent",
"addReaction": "Add reaction",
"reactionFailed": "Reaction failed",
"loginToReact": "Log in to react.",
"playAttachment": "Play {name}"
},
"thread": {
"notFound": "Upload not found.",
"newer": "Newer upload",
"older": "Older upload",
"favAdd": "Add to favorites",
"favRemove": "Remove from favorites",
"loginToFavorite": "Log in to favorite.",
"deleteUpload": "Delete upload",
"deleteTitle": "Really delete this upload?",
"deleteDesc": "The post and all comments will be removed.",
"deleteFailed": "Delete failed",
"editTags": "Edit tags",
"addTag": "Add tag…",
"removeTag": "Remove tag {tag}",
"tagsSaveFailed": "Tags could not be saved",
"subscribeOn": "Enable notifications for this thread",
"subscribeOff": "Disable notifications for this thread",
"subOn": "Thread notifications enabled",
"subOff": "Thread notifications disabled",
"subFailed": "Subscription could not be changed"
},
"audio": {
"play": "Play",
"pause": "Pause",
"seek": "Playback position",
"mute": "Mute",
"unmute": "Unmute",
"volume": "Volume",
"download": "Download"
},
"notifications": {
"aria": "Notifications",
"empty": "No notifications.",
"commented": "commented",
"mentioned": "mentioned you",
"view": "View",
"toastCommented": "{name} commented in a subscribed thread",
"toastMentioned": "{name} mentioned you"
},
"settings": {
"title": "Settings",
"desc": "Adjust your profile and language.",
"nameColor": "Name color",
"pickColor": "Pick color",
"cardEffect": "Hover card effect",
"noEffect": "None",
"noEffectPlaceholder": "No effect",
"ownEffectColor": "Custom effect color",
"pickEffectColor": "Pick effect color",
"vignette": "Vignette (keeps text readable)",
"cardBorder": "Hover card border",
"ownBorderColor": "Custom border color",
"pickBorderColor": "Pick border color",
"preview": "Preview",
"previewHint": "This is how your hover card looks to others.",
"avatar": "Avatar",
"currentAvatar": "Current avatar",
"language": "Language",
"saved": "Settings saved",
"saveFailed": "Save failed",
"loginToChange": " to change your settings."
},
"admin": {
"roles": "Roles",
"rolesDesc": "Manage existing roles and create new ones (e.g. moderator). The admin role always has all permissions.",
"memberCount": "{n} users",
"deleteRole": "Delete role",
"newRole": "New role name",
"create": "Create",
"users": "Users",
"usersDesc": "Assign or remove roles.",
"searchUsers": "Search name or email…",
"noRoles": "no roles",
"chooseRole": "Choose role…",
"assign": "Assign",
"removeRole": "Remove role {name}",
"rolesCol": "Roles",
"actionCol": "Action",
"motd": "Announcement",
"motdDesc": "Shown to all visitors directly below the header and updated instantly on change. Leave empty to remove it.",
"motdPlaceholder": "Announcement text…",
"actionFailed": "Action failed",
"perms": {
"admin": { "access": "Open admin area" },
"roles": { "manage": "Manage roles & permissions" },
"users": { "manage": "Manage users & roles" },
"site": { "manage": "Manage site settings" },
"comment": { "delete": "Delete comments" },
"upload": { "delete": "Delete uploads" },
"tag": { "delete": "Delete tags" }
}
},
"palette": {
"title": "Quick search",
"desc": "Search pages, tags or uploaders",
"placeholder": "Search pages, tags or uploaders…",
"empty": "No results.",
"pages": "Pages",
"home": "Home",
"users": "Users",
"myProfile": "My profile",
"settings": "Settings",
"adminArea": "Admin area",
"login": "Log in",
"register": "Sign up",
"tags": "Tags",
"uploaders": "Uploaders"
},
"timeAgo": {
"justNow": "just now",
"min": "{n}m ago",
"hour": "{n}h ago",
"day": "{n}d ago",
"month": "{n}mo ago",
"year": "{n}y ago"
},
"misc": {
"userNotFound": "User not found.",
"memberSince": "Member since {date}",
"since": "since {date}",
"noUsers": "No users yet.",
"noUploads": "No uploads yet.",
"joined": "Joined",
"commentsCol": "Comments",
"uploadsCol": "Uploads",
"noEntries": "No entries.",
"pageOf": "Page {page} of {total}",
"theme": "Theme",
"toggleSidebar": "Toggle sidebar",
"sidebar": "Sidebar",
"sidebarDesc": "Displays the mobile sidebar.",
"more": "More",
"setColor": "Set color to {color}",
"breadcrumb": "Breadcrumb"
},
"pagination": {
"prev": "Previous page",
"next": "Next page",
"first": "First page",
"firstShort": "First",
"last": "Last page",
"lastShort": "Last",
"page": "Page {page}",
"more": "More pages"
}
}