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": "Cancelar",
"Absagen": "Cancelar",
"Aktionen": "Acciones",
"Aktiv": "Activo",
"Aktualisiert am": "Actualizado el",
"All rights reserved.": "Todos los derechos reservados.",
"Alle Meetups anzeigen": "Mostrar todos los encuentros",
@@ -16,7 +17,10 @@
"App": "Aplicación",
"Appearance": "Apariencia",
"Are you sure you want to delete your account?": "¿Está seguro que desea eliminar su cuenta?",
"Auf Karte sichtbar": "Visible en el mapa",
"aus deinen Meetups entfernen?": "eliminar de tus encuentros?",
"Ausführliche Beschreibung des Kurses": "Descripción detallada del curso",
"Ausführliche Beschreibung und Biografie": "Descripción detallada y biografía",
"Authentication Code": "Código de autenticación",
"Back": "Atrás",
"Bearbeiten": "Editar",
@@ -24,6 +28,7 @@
"Beschreibung": "Descripción",
"Bist du sicher, dass du dieses Event löschen möchtest?": "¿Estás seguro de que quieres eliminar este evento?",
"Bitcoin Meetups": "Encuentros Bitcoin",
"Breitengrad": "Latitud",
"Cancel": "Cancelar",
"Click here to re-send the verification email.": "Haga clic aquí para reenviar el correo de verificación.",
"Close": "Cerrar",
@@ -40,13 +45,25 @@
"Dein Name": "Tu nombre",
"Delete account": "Eliminar cuenta",
"Delete your account and all of its resources": "Elimine su cuenta y todos sus recursos",
"Der Anzeigename für diesen Kurs": "El nombre para mostrar de este curso",
"Der Anzeigename für dieses Meetup": "El nombre para mostrar de este encuentro",
"Der Dozent, der diesen Kurs leitet": "El profesor que imparte este curso",
"Details über das Event": "Detalles sobre el evento",
"Details/Anmelden": "Detalles/Inscribirse",
"Die nächstgrößte Stadt oder Ort": "La ciudad o lugar más cercano",
"Disable 2FA": "Desactivar 2FA",
"Disabled": "Desactivado",
"Documentation": "Documentación",
"Don't have an account?": "¿No tiene una cuenta?",
"Dozent": "Profesor",
"Dozent aktualisieren": "Actualizar profesor",
"Dozent auswählen": "Seleccionar profesor",
"Dozent bearbeiten": "Editar profesor",
"Dozent erfolgreich aktualisiert!": "¡Profesor actualizado exitosamente!",
"Dozent erfolgreich erstellt!": "¡Profesor creado exitosamente!",
"Dozenten": "Profesores",
"Dozenten anlegen": "Crear profesores",
"Dozenten erstellen": "Crear profesor",
"Du bist nicht eingloggt und musst deshalb den Namen selbst eintippen.": "No has iniciado sesión, por lo que debes escribir el nombre tú mismo.",
"Du kannst es jederzeit wieder hinzufügen.": "Puedes volver a añadirlo en cualquier momento.",
"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.": "Cada código de recuperación se puede usar una vez para acceder a su cuenta y se eliminará después de usarlo. Si necesita más, haga clic arriba en \"Regenerar códigos\".",
@@ -70,6 +87,8 @@
"Environment file already exists.": "El archivo de entorno ya existe.",
"Environment file not found.": "Archivo de entorno no encontrado.",
"errors": "errores",
"Ersteller des Dozenten": "Creador del profesor",
"Ersteller des Kurses": "Creador del curso",
"Ersteller des Meetups": "Creador del encuentro",
"Erstellt am": "Creado el",
"Erstellt von": "Creado por",
@@ -87,6 +106,7 @@
"Forgot password": "Olvido de contraseña",
"Forgot your password?": "¿Olvidó su contraseña?",
"Full name": "Nombre completo",
"Füge eine neue Stadt zur Datenbank hinzu.": "Añade una nueva ciudad a la base de datos.",
"Gemeinschaft": "Comunidad",
"Gemeinschafts- oder Organisationsname": "Nombre de la comunidad u organización",
"Go to page :page": "Ir a la página :page",
@@ -98,23 +118,41 @@
"If you did not create an account, no further action is required.": "Si no ha creado una cuenta, no se requiere ninguna acción adicional.",
"If you did not request a password reset, no further action is required.": "Si no ha solicitado el restablecimiento de contraseña, omita este mensaje de correo electrónico.",
"If you're having trouble clicking the \":actionText\" button, copy and paste the URL below\ninto your web browser:": "Si está teniendo problemas al hacer clic en el botón \":actionText\", copie y pegue la URL de abajo\nen su navegador web:",
"Inaktiv": "Inactivo",
"Invalid filename.": "Nombre de archivo no válido.",
"Invalid JSON was returned from the route.": "Se devolvió un JSON no válido desde la ruta.",
"Ist dieser Dozent aktiv?": "¿Está activo este profesor?",
"Kalender-Stream-URL kopieren": "Copiar URL del flujo del calendario",
"Karte": "Mapa",
"Kartenansicht öffnen": "Abrir vista de mapa",
"Keine": "Ninguno",
"Keine bevorstehenden Termine": "No hay eventos próximos",
"Keine Meetups zugeordnet": "No hay encuentros asignados",
"Kommende Veranstaltungen": "Próximos eventos",
"Kontakt & Links": "Contacto y enlaces",
"Kurs aktualisieren": "Actualizar curso",
"Kurs bearbeiten": "Editar curso",
"Kurs erfolgreich aktualisiert!": "¡Curso actualizado exitosamente!",
"Kurs erfolgreich erstellt!": "¡Curso creado exitosamente!",
"Kurs erstellen": "Crear curso",
"Kurse": "Cursos",
"Kurze Berufsbezeichnung oder Rolle": "Breve título profesional o rol",
"Kurze Beschreibung des Meetups": "Breve descripción del encuentro",
"Kurze Vorstellung (wird auf Kurs-Seiten angezeigt)": "Breve presentación (se muestra en las páginas del curso)",
"Land": "País",
"Land auswählen": "Seleccionar país",
"Letzte Änderungszeit": "Última hora de modificación",
"Light": "Claro",
"Lightning Adresse": "Dirección Lightning",
"Lightning Node ID": "ID del nodo Lightning",
"Lightning-Adresse für Zahlungen": "Dirección Lightning para pagos",
"Link": "Enlace",
"Link zu weiteren Informationen": "Enlace para más información",
"Link zur Telegram-Gruppe oder zum Kanal": "Enlace al grupo o canal de Telegram",
"Links": "Enlaces",
"Links & Soziale Medien": "Enlaces y redes sociales",
"LNURL": "LNURL",
"LNURL für Lightning-Zahlungen": "LNURL para pagos Lightning",
"Location": "Ubicación",
"Log in": "Iniciar sesión",
"log in": "iniciar sesión",
@@ -126,6 +164,7 @@
"login using a recovery code": "iniciar sesión usando un código de recuperación",
"login using an authentication code": "iniciar sesión usando un código de autenticación",
"Logout": "Finalizar sesión",
"Längengrad": "Longitud",
"Manage your profile and account settings": "Administre su perfil y la configuración de su cuenta",
"Manage your two-factor authentication settings": "Administre su configuración de autenticación de dos factores",
"Matrix": "",
@@ -135,6 +174,8 @@
"Meetup bearbeiten": "Editar encuentro",
"Meetup entfernen?": "¿Eliminar encuentro?",
"Meetup erfolgreich aktualisiert!": "¡Encuentro actualizado con éxito!",
"Meetup erfolgreich erstellt!": "¡Encuentro creado exitosamente!",
"Meetup erstellen": "Crear encuentro",
"Meetup hinzufügen...": "Añadir encuentro...",
"Meetup suchen...": "Buscar encuentro...",
"Meetups": "Encuentros",
@@ -144,9 +185,16 @@
"Möchtest du": "¿Quieres",
"Name": "Nombre",
"Name eingeben": "Introducir nombre",
"Neuen Dozenten erstellen": "Crear nuevo profesor",
"Neuen Kurs erstellen": "Crear nuevo curso",
"Neuer Kurs": "Nuevo curso",
"Neues Event erstellen": "Crear nuevo evento",
"Neues Meetup erstellen": "Crear nuevo encuentro",
"New password": "Nueva contraseña",
"no location set": "sin ubicación establecida",
"Node ID": "ID del nodo",
"Nostr": "Nostr",
"Nostr öffentlicher Schlüssel": "Clave pública de Nostr",
"Nostr öffentlicher Schlüssel oder Bezeichner": "Clave pública o identificador de Nostr",
"Not Found": "No encontrado",
"Nächster Termin": "Próxima cita",
@@ -162,6 +210,9 @@
"Pagination Navigation": "Navegación por los enlaces de paginación",
"Password": "Contraseña",
"Payment Required": "Pago requerido",
"PayNym": "PayNym",
"PayNym für Bitcoin-Zahlungen": "PayNym para pagos Bitcoin",
"Persönliche Webseite oder Portfolio": "Sitio web personal o portafolio",
"Platform": "Plataforma",
"Please click the button below to verify your email address.": "Por favor, haga clic en el botón de abajo para verificar su dirección de correo electrónico.",
"Please confirm access to your account by entering one of your emergency recovery codes.": "Confirme el acceso a su cuenta ingresando uno de sus códigos de recuperación de emergencia.",
@@ -193,14 +244,22 @@
"SimpleX": "SimpleX",
"Simplex": "",
"SimpleX Chat Kontaktinformationen": "Información de contacto de SimpleX Chat",
"Soll dieses Meetup auf der Karte angezeigt werden?": "¿Debe mostrarse este encuentro en el mapa?",
"Stadt": "Ciudad",
"Stadt auswählen": "Seleccionar ciudad",
"Stadt erstellen": "Crear ciudad",
"Stadt hinzufügen": "Añadir ciudad",
"Stadtname": "Nombre de la ciudad",
"Standort": "Ubicación",
"Startzeit": "Hora de inicio",
"Status": "Estado",
"Success!": "¡Éxito!",
"Suche dein Land...": "Busca tu país...",
"Suche nach Dozenten...": "Buscar profesores...",
"Suche nach Kursen...": "Buscar cursos...",
"Suche nach Meetups...": "Buscar encuentros...",
"Suche passende Stadt...": "Buscar ciudad correspondiente...",
"Suche passenden Dozenten...": "Buscar profesor adecuado...",
"System": "Sistema",
"System-generierte ID (nur lesbar)": "ID generado por el sistema (solo lectura)",
"Systeminformationen": "Información del sistema",
@@ -226,6 +285,7 @@
"Two-factor authentication is now enabled. Scan the QR code or enter the setup key in your authenticator app.": "La autenticación de dos factores ya está habilitada. Escanea el código QR o introduce la clave de configuración en tu app de autenticación.",
"Unauthorized": "No autorizado",
"Unbekannt": "Desconocido",
"Untertitel": "Subtítulo",
"Update password": "Actualizar contraseña",
"Update the appearance settings for your account": "Actualice la configuración de apariencia de su cuenta",
"Update your account's appearance settings": "Actualice la configuración de apariencia de su cuenta",
@@ -235,7 +295,10 @@
"Verify Email Address": "Confirme su correo electrónico",
"Vielleicht": "Quizás",
"View Recovery Codes": "Ver códigos de recuperación",
"Vollständiger Name des Dozenten": "Nombre completo del profesor",
"Wallpaper": "Fondo de pantalla",
"Wann dieser Dozent erstellt wurde": "Cuando se creó este profesor",
"Wann dieser Kurs erstellt wurde": "Cuando se creó este curso",
"Wann dieses Meetup erstellt wurde": "Cuando se creó este encuentro",
"Wann findet das Event statt?": "¿Cuándo tendrá lugar el evento?",
"Webseite": "Sitio web",
@@ -248,78 +311,15 @@
"Wähle dein Land...": "Elige tu país...",
"You are receiving this email because we received a password reset request for your account.": "Ha recibido este mensaje porque se solicitó un restablecimiento de contraseña para su cuenta.",
"Your email address is unverified.": "Su dirección de correo electrónico no está verificada.",
"z.B. Berlin": "p.ej. Berlín",
"z.B. Café Mustermann, Hauptstr. 1": "p.ej. Café Ejemplo, Calle Principal 1",
"Zahlungsinformationen": "Información de pago",
"Zoom = STRG+Scroll": "Zoom = CTRL+Scroll",
"Zurück zum Meetup": "Volver al encuentro",
"Zusagen": "Confirmaciones",
"Zusätzliche Informationen": "Información adicional",
"Öffnen/RSVP": "Abrir/RSVP",
"Über uns": "Sobre nosotros",
"no location set": "sin ubicación establecida",
"Kurse": "Cursos",
"Dozenten": "Profesores",
"Kurs erfolgreich erstellt!": "¡Curso creado exitosamente!",
"Neuen Kurs erstellen": "Crear nuevo curso",
"Der Anzeigename für diesen Kurs": "El nombre para mostrar de este curso",
"Dozent": "Profesor",
"Dozent auswählen": "Seleccionar profesor",
"Suche passenden Dozenten...": "Buscar profesor adecuado...",
"Der Dozent, der diesen Kurs leitet": "El profesor que imparte este curso",
"Ausführliche Beschreibung des Kurses": "Descripción detallada del curso",
"Kurs erstellen": "Crear curso",
"Kurs erfolgreich aktualisiert!": "¡Curso actualizado exitosamente!",
"Kurs bearbeiten": "Editar curso",
"Ersteller des Kurses": "Creador del curso",
"Wann dieser Kurs erstellt wurde": "Cuando se creó este curso",
"Kurs aktualisieren": "Actualizar curso",
"Suche nach Kursen...": "Buscar cursos...",
"Neuer Kurs": "Nuevo curso",
"Über den Kurs": "Sobre el curso",
"Über den Dozenten": "Sobre el profesor",
"Details/Anmelden": "Detalles/Inscribirse",
"Dozent erfolgreich erstellt!": "¡Profesor creado exitosamente!",
"Neuen Dozenten erstellen": "Crear nuevo profesor",
"Vollständiger Name des Dozenten": "Nombre completo del profesor",
"Untertitel": "Subtítulo",
"Kurze Berufsbezeichnung oder Rolle": "Breve título profesional o rol",
"Status": "Estado",
"Ist dieser Dozent aktiv?": "¿Está activo este profesor?",
"Kurze Vorstellung (wird auf Kurs-Seiten angezeigt)": "Breve presentación (se muestra en las páginas del curso)",
"Ausführliche Beschreibung und Biografie": "Descripción detallada y biografía",
"Persönliche Webseite oder Portfolio": "Sitio web personal o portafolio",
"Nostr öffentlicher Schlüssel": "Clave pública de Nostr",
"Zahlungsinformationen": "Información de pago",
"Lightning Adresse": "Dirección Lightning",
"Lightning-Adresse für Zahlungen": "Dirección Lightning para pagos",
"LNURL": "LNURL",
"LNURL für Lightning-Zahlungen": "LNURL para pagos Lightning",
"Node ID": "ID del nodo",
"Lightning Node ID": "ID del nodo Lightning",
"PayNym": "PayNym",
"PayNym für Bitcoin-Zahlungen": "PayNym para pagos Bitcoin",
"Dozenten erstellen": "Crear profesor",
"Dozent erfolgreich aktualisiert!": "¡Profesor actualizado exitosamente!",
"Dozent bearbeiten": "Editar profesor",
"Ersteller des Dozenten": "Creador del profesor",
"Wann dieser Dozent erstellt wurde": "Cuando se creó este profesor",
"Dozent aktualisieren": "Actualizar profesor",
"Suche nach Dozenten...": "Buscar profesores...",
"Dozenten anlegen": "Crear profesores",
"Aktiv": "Activo",
"Inaktiv": "Inactivo",
"Meetup erfolgreich erstellt!": "¡Encuentro creado exitosamente!",
"Neues Meetup erstellen": "Crear nuevo encuentro",
"Stadt hinzufügen": "Añadir ciudad",
"Auf Karte sichtbar": "Visible en el mapa",
"Soll dieses Meetup auf der Karte angezeigt werden?": "¿Debe mostrarse este encuentro en el mapa?",
"Keine": "Ninguno",
"Meetup erstellen": "Crear encuentro",
"Füge eine neue Stadt zur Datenbank hinzu.": "Añade una nueva ciudad a la base de datos.",
"Stadtname": "Nombre de la ciudad",
"z.B. Berlin": "p.ej. Berlín",
"Land auswählen": "Seleccionar país",
"Breitengrad": "Latitud",
"Längengrad": "Longitud",
"Stadt erstellen": "Crear ciudad",
"Kalender-Stream-URL kopieren": "Copiar URL del flujo del calendario"
}
"Über den Kurs": "Sobre el curso",
"Über uns": "Sobre nosotros"
}