Add storage configuration, localization updates, and feed generation

- Added `publicDisk` configuration to `filesystems.php`.
- Expanded locale translations in `es.json` and `de.json`.
- Implemented RSS, Atom, and JSON feed views.
- Added `feed.php` configuration for feed generation.
- Introduced `ImageController` for image handling.
- Updated application routing to include `api.php`.
This commit is contained in:
HolgerHatGarKeineNode
2025-11-21 16:23:55 +01:00
parent d12ea30d5e
commit efe44cf344
31 changed files with 2493 additions and 208 deletions

View File

@@ -9,6 +9,7 @@
"Abbrechen": "Cancel",
"Absagen": "Cancel",
"Aktionen": "Actions",
"Aktiv": "Active",
"Aktualisiert am": "Updated at",
"All rights reserved.": "All rights reserved.",
"Alle Meetups anzeigen": "Show all meetups",
@@ -16,7 +17,10 @@
"App": "App",
"Appearance": "Appearance",
"Are you sure you want to delete your account?": "Are you sure you want to delete your account?",
"Auf Karte sichtbar": "Visible on map",
"aus deinen Meetups entfernen?": "remove from your meetups?",
"Ausführliche Beschreibung des Kurses": "Detailed description of the course",
"Ausführliche Beschreibung und Biografie": "Detailed description and biography",
"Authentication Code": "Authentication Code",
"Back": "Back",
"Bearbeiten": "Edit",
@@ -24,6 +28,7 @@
"Beschreibung": "Description",
"Bist du sicher, dass du dieses Event löschen möchtest?": "Are you sure you want to delete this event?",
"Bitcoin Meetups": "Bitcoin Meetups",
"Breitengrad": "Latitude",
"Cancel": "Cancel",
"Click here to re-send the verification email.": "Click here to re-send the verification email.",
"Close": "Close",
@@ -40,13 +45,25 @@
"Dein Name": "Your name",
"Delete account": "Delete account",
"Delete your account and all of its resources": "Delete your account and all of its resources",
"Der Anzeigename für diesen Kurs": "The display name for this course",
"Der Anzeigename für dieses Meetup": "The display name for this meetup",
"Der Dozent, der diesen Kurs leitet": "The lecturer who leads this course",
"Details über das Event": "Details about the event",
"Details/Anmelden": "Details/Register",
"Die nächstgrößte Stadt oder Ort": "The nearest major city or location",
"Disable 2FA": "Disable 2FA",
"Disabled": "Disabled",
"Documentation": "Documentation",
"Don't have an account?": "Don't have an account?",
"Dozent": "Lecturer",
"Dozent aktualisieren": "Update lecturer",
"Dozent auswählen": "Select lecturer",
"Dozent bearbeiten": "Edit lecturer",
"Dozent erfolgreich aktualisiert!": "Lecturer successfully updated!",
"Dozent erfolgreich erstellt!": "Lecturer successfully created!",
"Dozenten": "Lecturers",
"Dozenten anlegen": "Create lecturers",
"Dozenten erstellen": "Create lecturer",
"Du bist nicht eingloggt und musst deshalb den Namen selbst eintippen.": "You are not logged in and therefore need to type your name yourself.",
"Du kannst es jederzeit wieder hinzufügen.": "You can add it again anytime.",
"Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.": "Each recovery code can be used once to access your account and will be removed after use. If you need more, click Regenerate Codes above.",
@@ -70,6 +87,8 @@
"Environment file already exists.": "Environment file already exists.",
"Environment file not found.": "Environment file not found.",
"errors": "errors",
"Ersteller des Dozenten": "Creator of the lecturer",
"Ersteller des Kurses": "Creator of the course",
"Ersteller des Meetups": "Creator of the meetup",
"Erstellt am": "Created at",
"Erstellt von": "Created by",
@@ -87,6 +106,7 @@
"Forgot password": "Forgot password",
"Forgot your password?": "Forgot your password?",
"Full name": "Full name",
"Füge eine neue Stadt zur Datenbank hinzu.": "Add a new city to the database.",
"Gemeinschaft": "Community",
"Gemeinschafts- oder Organisationsname": "Community or organization name",
"Go to page :page": "Go to page :page",
@@ -98,24 +118,42 @@
"If you did not create an account, no further action is required.": "If you did not create an account, no further action is required.",
"If you did not request a password reset, no further action is required.": "If you did not request a password reset, no further action is required.",
"If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:",
"Inaktiv": "Inactive",
"Invalid filename.": "Invalid filename.",
"Invalid JSON was returned from the route.": "Invalid JSON was returned from the route.",
"Ist dieser Dozent aktiv?": "Is this lecturer active?",
"Kalender-Stream-URL kopieren": "Copy calendar stream URL",
"Karte": "Map",
"Kartenansicht öffnen": "Open map view",
"Keine": "None",
"Keine bevorstehenden Termine": "No upcoming dates",
"Keine Meetups zugeordnet": "No meetups assigned",
"Kommende Veranstaltungen": "Upcoming events",
"Kontakt & Links": "Contact & Links",
"Kurs aktualisieren": "Update course",
"Kurs bearbeiten": "Edit course",
"Kurs erfolgreich aktualisiert!": "Course successfully updated!",
"Kurs erfolgreich erstellt!": "Course successfully created!",
"Kurs erstellen": "Create course",
"Kurse": "Courses",
"Kurze Berufsbezeichnung oder Rolle": "Brief job title or role",
"Kurze Beschreibung des Meetups": "Brief description of the meetup",
"Kurze Vorstellung (wird auf Kurs-Seiten angezeigt)": "Brief introduction (shown on course pages)",
"Land": "Country",
"Land auswählen": "Select country",
"length": "length",
"Letzte Änderungszeit": "Last modification time",
"Light": "Light",
"Lightning Adresse": "Lightning Address",
"Lightning Node ID": "Lightning Node ID",
"Lightning-Adresse für Zahlungen": "Lightning address for payments",
"Link": "Link",
"Link zu weiteren Informationen": "Link to further information",
"Link zur Telegram-Gruppe oder zum Kanal": "Link to Telegram group or channel",
"Links": "Links",
"Links & Soziale Medien": "Links & Social Media",
"LNURL": "LNURL",
"LNURL für Lightning-Zahlungen": "LNURL for Lightning payments",
"Location": "Location",
"Log in": "Log in",
"log in": "log in",
@@ -127,6 +165,7 @@
"login using a recovery code": "login using a recovery code",
"login using an authentication code": "login using an authentication code",
"Logout": "Logout",
"Längengrad": "Longitude",
"Manage your profile and account settings": "Manage your profile and account settings",
"Manage your two-factor authentication settings": "Manage your two-factor authentication settings",
"Matrix": "",
@@ -136,6 +175,8 @@
"Meetup bearbeiten": "Edit meetup",
"Meetup entfernen?": "Remove meetup?",
"Meetup erfolgreich aktualisiert!": "Meetup successfully updated!",
"Meetup erfolgreich erstellt!": "Meetup successfully created!",
"Meetup erstellen": "Create meetup",
"Meetup hinzufügen...": "Add meetup...",
"Meetup suchen...": "Search meetup...",
"Meetups": "Meetups",
@@ -145,9 +186,16 @@
"Möchtest du": "Do you want to",
"Name": "Name",
"Name eingeben": "Enter name",
"Neuen Dozenten erstellen": "Create new lecturer",
"Neuen Kurs erstellen": "Create new course",
"Neuer Kurs": "New course",
"Neues Event erstellen": "Create new event",
"Neues Meetup erstellen": "Create new meetup",
"New password": "New password",
"no location set": "no location set",
"Node ID": "Node ID",
"Nostr": "Nostr",
"Nostr öffentlicher Schlüssel": "Nostr public key",
"Nostr öffentlicher Schlüssel oder Bezeichner": "Nostr public key or identifier",
"Not Found": "Not Found",
"Nächster Termin": "Next date",
@@ -163,6 +211,9 @@
"Pagination Navigation": "Pagination Navigation",
"Password": "Password",
"Payment Required": "Payment Required",
"PayNym": "PayNym",
"PayNym für Bitcoin-Zahlungen": "PayNym for Bitcoin payments",
"Persönliche Webseite oder Portfolio": "Personal website or portfolio",
"Platform": "Platform",
"Please click the button below to verify your email address.": "Please click the button below to verify your email address.",
"Please confirm access to your account by entering one of your emergency recovery codes.": "Please confirm access to your account by entering one of your emergency recovery codes.",
@@ -194,14 +245,22 @@
"SimpleX": "SimpleX",
"Simplex": "",
"SimpleX Chat Kontaktinformationen": "SimpleX Chat contact information",
"Soll dieses Meetup auf der Karte angezeigt werden?": "Should this meetup be shown on the map?",
"Stadt": "City",
"Stadt auswählen": "Select city",
"Stadt erstellen": "Create city",
"Stadt hinzufügen": "Add city",
"Stadtname": "City name",
"Standort": "Location",
"Startzeit": "Start time",
"Status": "Status",
"Success!": "Success!",
"Suche dein Land...": "Search your country...",
"Suche nach Dozenten...": "Search for lecturers...",
"Suche nach Kursen...": "Search for courses...",
"Suche nach Meetups...": "Search for meetups...",
"Suche passende Stadt...": "Search matching city...",
"Suche passenden Dozenten...": "Search matching lecturer...",
"System": "System",
"System-generierte ID (nur lesbar)": "System generated ID (read-only)",
"Systeminformationen": "System information",
@@ -227,6 +286,7 @@
"Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.": "Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.",
"Unauthorized": "Unauthorized",
"Unbekannt": "Unknown",
"Untertitel": "Subtitle",
"Update password": "Update password",
"Update the appearance settings for your account": "Update the appearance settings for your account",
"Update your account's appearance settings": "Update your account's appearance settings",
@@ -236,7 +296,10 @@
"Verify Email Address": "Verify Email Address",
"Vielleicht": "Maybe",
"View Recovery Codes": "View Recovery Codes",
"Vollständiger Name des Dozenten": "Full name of the lecturer",
"Wallpaper": "Wallpaper",
"Wann dieser Dozent erstellt wurde": "When this lecturer was created",
"Wann dieser Kurs erstellt wurde": "When this course was created",
"Wann dieses Meetup erstellt wurde": "When this meetup was created",
"Wann findet das Event statt?": "When does the event take place?",
"Webseite": "Website",
@@ -249,78 +312,15 @@
"Wähle dein Land...": "Choose your country...",
"You are receiving this email because we received a password reset request for your account.": "You are receiving this email because we received a password reset request for your account.",
"Your email address is unverified.": "Your email address is unverified.",
"z.B. Berlin": "e.g. Berlin",
"z.B. Café Mustermann, Hauptstr. 1": "e.g. Cafe Smith, Main St 1",
"Zahlungsinformationen": "Payment information",
"Zoom = STRG+Scroll": "Zoom = CTRL+Scroll",
"Zurück zum Meetup": "Back to meetup",
"Zusagen": "Commitments",
"Zusätzliche Informationen": "Additional information",
"Öffnen/RSVP": "Open/RSVP",
"Über uns": "About us",
"no location set": "no location set",
"Kurse": "Courses",
"Dozenten": "Lecturers",
"Kurs erfolgreich erstellt!": "Course successfully created!",
"Neuen Kurs erstellen": "Create new course",
"Der Anzeigename für diesen Kurs": "The display name for this course",
"Dozent": "Lecturer",
"Dozent auswählen": "Select lecturer",
"Suche passenden Dozenten...": "Search matching lecturer...",
"Der Dozent, der diesen Kurs leitet": "The lecturer who leads this course",
"Ausführliche Beschreibung des Kurses": "Detailed description of the course",
"Kurs erstellen": "Create course",
"Kurs erfolgreich aktualisiert!": "Course successfully updated!",
"Kurs bearbeiten": "Edit course",
"Ersteller des Kurses": "Creator of the course",
"Wann dieser Kurs erstellt wurde": "When this course was created",
"Kurs aktualisieren": "Update course",
"Suche nach Kursen...": "Search for courses...",
"Neuer Kurs": "New course",
"Über den Kurs": "About the course",
"Über den Dozenten": "About the lecturer",
"Details/Anmelden": "Details/Register",
"Dozent erfolgreich erstellt!": "Lecturer successfully created!",
"Neuen Dozenten erstellen": "Create new lecturer",
"Vollständiger Name des Dozenten": "Full name of the lecturer",
"Untertitel": "Subtitle",
"Kurze Berufsbezeichnung oder Rolle": "Brief job title or role",
"Status": "Status",
"Ist dieser Dozent aktiv?": "Is this lecturer active?",
"Kurze Vorstellung (wird auf Kurs-Seiten angezeigt)": "Brief introduction (shown on course pages)",
"Ausführliche Beschreibung und Biografie": "Detailed description and biography",
"Persönliche Webseite oder Portfolio": "Personal website or portfolio",
"Nostr öffentlicher Schlüssel": "Nostr public key",
"Zahlungsinformationen": "Payment information",
"Lightning Adresse": "Lightning Address",
"Lightning-Adresse für Zahlungen": "Lightning address for payments",
"LNURL": "LNURL",
"LNURL für Lightning-Zahlungen": "LNURL for Lightning payments",
"Node ID": "Node ID",
"Lightning Node ID": "Lightning Node ID",
"PayNym": "PayNym",
"PayNym für Bitcoin-Zahlungen": "PayNym for Bitcoin payments",
"Dozenten erstellen": "Create lecturer",
"Dozent erfolgreich aktualisiert!": "Lecturer successfully updated!",
"Dozent bearbeiten": "Edit lecturer",
"Ersteller des Dozenten": "Creator of the lecturer",
"Wann dieser Dozent erstellt wurde": "When this lecturer was created",
"Dozent aktualisieren": "Update lecturer",
"Suche nach Dozenten...": "Search for lecturers...",
"Dozenten anlegen": "Create lecturers",
"Aktiv": "Active",
"Inaktiv": "Inactive",
"Meetup erfolgreich erstellt!": "Meetup successfully created!",
"Neues Meetup erstellen": "Create new meetup",
"Stadt hinzufügen": "Add city",
"Auf Karte sichtbar": "Visible on map",
"Soll dieses Meetup auf der Karte angezeigt werden?": "Should this meetup be shown on the map?",
"Keine": "None",
"Meetup erstellen": "Create meetup",
"Füge eine neue Stadt zur Datenbank hinzu.": "Add a new city to the database.",
"Stadtname": "City name",
"z.B. Berlin": "e.g. Berlin",
"Land auswählen": "Select country",
"Breitengrad": "Latitude",
"Längengrad": "Longitude",
"Stadt erstellen": "Create city",
"Kalender-Stream-URL kopieren": "Copy calendar stream URL"
}
"Über den Kurs": "About the course",
"Über uns": "About us"
}