From 7f9c42994c5aea3985cbdffbe6e7ade14fd6d796 Mon Sep 17 00:00:00 2001 From: HolgerHatGarKeineNode Date: Fri, 21 Nov 2025 12:15:14 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=90=20Add=20German=20and=20Spanish=20t?= =?UTF-8?q?ranslations=20for=20Meetup-related=20terms?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/Meetup.php | 3 +- composer.json | 1 + composer.lock | 70 ++++++++++++++++++++++++++++++++++- lang/de.json | 85 ++++++++++++++++++++++++++++++++++++++++++- lang/en.json | 85 ++++++++++++++++++++++++++++++++++++++++++- lang/es.json | 85 ++++++++++++++++++++++++++++++++++++++++++- 6 files changed, 324 insertions(+), 5 deletions(-) diff --git a/app/Models/Meetup.php b/app/Models/Meetup.php index 1969f2c..7bff5e8 100644 --- a/app/Models/Meetup.php +++ b/app/Models/Meetup.php @@ -8,6 +8,7 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Facades\Cookie; +use Illuminate\Support\Facades\DB; use Spatie\Image\Enums\Fit; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; @@ -138,7 +139,7 @@ class Meetup extends Model implements HasMedia protected function belongsToMe(): Attribute { return Attribute::make( - get: fn() => false, + get: fn() => DB::table('meetup_user')->where('meetup_id', $this->id)->where('user_id', auth()->id())->exists(), ); } diff --git a/composer.json b/composer.json index 47fdb83..7014d52 100644 --- a/composer.json +++ b/composer.json @@ -11,6 +11,7 @@ "require": { "php": "^8.2", "akuechler/laravel-geoly": "^1.0", + "druc/laravel-langscanner": "^2.3", "laravel/framework": "^12.0", "laravel/tinker": "^2.10.1", "livewire/flux": "^2.2", diff --git a/composer.lock b/composer.lock index 6038c00..0eb81ba 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "2b5ac6d2d0ecd2bc146681ccff0ad722", + "content-hash": "908d6585805d7d7a2adfcbdfce08ba84", "packages": [ { "name": "akuechler/laravel-geoly", @@ -711,6 +711,74 @@ ], "time": "2025-10-31T18:51:33+00:00" }, + { + "name": "druc/laravel-langscanner", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/druc/laravel-langscanner.git", + "reference": "c53d8495fbe9125f5dd50da9b83a071417b6fec9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/druc/laravel-langscanner/zipball/c53d8495fbe9125f5dd50da9b83a071417b6fec9", + "reference": "c53d8495fbe9125f5dd50da9b83a071417b6fec9", + "shasum": "" + }, + "require": { + "ext-json": "*", + "illuminate/contracts": "^9.0|^10.0|^11.0|^12.0", + "php": "^8.0", + "spatie/laravel-package-tools": "^1.11.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.3", + "nunomaduro/collision": "^6.2|^7|^8", + "orchestra/testbench": "^7.02|^9.0", + "phpunit/phpunit": "^9.5|^10.1|^11.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Druc\\Langscanner\\LangscannerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Druc\\Langscanner\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Constantin Druc", + "email": "druc@pinsmile.com", + "role": "Developer" + } + ], + "description": "Scan missing language translations.", + "homepage": "https://github.com/druc/laravel-langscanner", + "keywords": [ + "druc", + "laravel-langscanner" + ], + "support": { + "issues": "https://github.com/druc/laravel-langscanner/issues", + "source": "https://github.com/druc/laravel-langscanner/tree/v2.3.0" + }, + "funding": [ + { + "url": "https://github.com/druc", + "type": "github" + } + ], + "time": "2025-08-20T08:37:59+00:00" + }, { "name": "egulias/email-validator", "version": "4.0.4", diff --git a/lang/de.json b/lang/de.json index eb1a9f9..62c6f6b 100644 --- a/lang/de.json +++ b/lang/de.json @@ -141,5 +141,88 @@ "Whoops!": "Ups!", "With two-factor authentication enabled, you will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "Wenn die Zwei-Faktor-Authentifizierung aktiviert ist, werden Sie bei der Anmeldung zur Eingabe einer sicheren, zufällig generierten PIN aufgefordert, die Sie über die TOTP-unterstützte Anwendung auf Ihrem Smartphone abrufen können.", "You are receiving this email because we received a password reset request for your account.": "Sie erhalten diese E-Mail, weil wir einen Antrag auf eine Zurücksetzung Ihres Passworts bekommen haben.", - "Your email address is unverified.": "Ihre E-Mail-Adresse ist nicht verifiziert." + "Your email address is unverified.": "Ihre E-Mail-Adresse ist nicht verifiziert.", + "Success!": "", + "Copied into clipboard": "", + "App": "", + "Meetups": "", + "Karte": "", + "Wallpaper": "", + "Land": "", + "Willkommen zurück": "", + "Log in mit Nostr": "", + "Wähle dein Land...": "", + "Suche dein Land...": "", + "Meine nächsten Meetup Termine": "", + "Keine bevorstehenden Termine": "", + "Meine Meetups": "", + "Meetup hinzufügen...": "", + "Meetup suchen...": "", + "Bearbeiten": "", + "Meetup entfernen?": "", + "Möchtest du": "", + "aus deinen Meetups entfernen?": "", + "Du kannst es jederzeit wieder hinzufügen.": "", + "Abbrechen": "", + "Entfernen": "", + "Keine Meetups zugeordnet": "", + "Meetup erfolgreich aktualisiert!": "", + "Meetup bearbeiten": "", + "Grundlegende Informationen": "", + "ID": "", + "System-generierte ID (nur lesbar)": "", + "Der Anzeigename für dieses Meetup": "", + "Stadt": "", + "Stadt auswählen": "", + "Suche passende Stadt...": "", + "Die nächstgrößte Stadt oder Ort": "", + "Einführung": "", + "Kurze Beschreibung des Meetups": "", + "Links & Soziale Medien": "", + "Webseite": "", + "Offizielle Webseite oder Landingpage": "", + "Telegram Link": "", + "Link zur Telegram-Gruppe oder zum Kanal": "", + "Twitter Benutzername": "", + "Twitter-Handle ohne @ Symbol": "", + "Matrix Gruppe": "", + "Matrix-Raum Bezeichner oder Link": "", + "Nostr": "", + "Nostr öffentlicher Schlüssel oder Bezeichner": "", + "SimpleX": "", + "SimpleX Chat Kontaktinformationen": "", + "Signal": "", + "Signal Kontakt- oder Gruppeninformationen": "", + "Zusätzliche Informationen": "", + "Gemeinschaft": "", + "Gemeinschafts- oder Organisationsname": "", + "Systeminformationen": "", + "Erstellt von": "", + "Unbekannt": "", + "Ersteller des Meetups": "", + "Erstellt am": "", + "Wann dieses Meetup erstellt wurde": "", + "Aktualisiert am": "", + "Letzte Änderungszeit": "", + "Meetup aktualisieren": "", + "Suche nach Meetups...": "", + "Nächster Termin": "", + "Links": "", + "Aktionen": "", + "Ort": "", + "Beschreibung": "", + "Mehr Informationen": "", + "Zusagen": "", + "Vielleicht": "", + "Zurück zum Meetup": "", + "Über uns": "", + "Kontakt & Links": "", + "Standort": "", + "Zoom = STRG+Scroll": "", + "Kommende Veranstaltungen": "", + "Bitcoin Meetups": "", + "Alle Meetups anzeigen": "", + "Kartenansicht öffnen": "", + "Verbinde dich mit Bitcoinern in deiner Nähe": "", + "Finde deine lokale Community": "" } \ No newline at end of file diff --git a/lang/en.json b/lang/en.json index 450a754..a264e38 100644 --- a/lang/en.json +++ b/lang/en.json @@ -141,5 +141,88 @@ "Whoops!": "Whoops!", "With two-factor authentication enabled, you will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "With two-factor authentication enabled, you will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.", "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." + "Your email address is unverified.": "Your email address is unverified.", + "Success!": "", + "Copied into clipboard": "", + "App": "", + "Meetups": "", + "Karte": "", + "Wallpaper": "", + "Land": "", + "Willkommen zurück": "", + "Log in mit Nostr": "", + "Wähle dein Land...": "", + "Suche dein Land...": "", + "Meine nächsten Meetup Termine": "", + "Keine bevorstehenden Termine": "", + "Meine Meetups": "", + "Meetup hinzufügen...": "", + "Meetup suchen...": "", + "Bearbeiten": "", + "Meetup entfernen?": "", + "Möchtest du": "", + "aus deinen Meetups entfernen?": "", + "Du kannst es jederzeit wieder hinzufügen.": "", + "Abbrechen": "", + "Entfernen": "", + "Keine Meetups zugeordnet": "", + "Meetup erfolgreich aktualisiert!": "", + "Meetup bearbeiten": "", + "Grundlegende Informationen": "", + "ID": "", + "System-generierte ID (nur lesbar)": "", + "Der Anzeigename für dieses Meetup": "", + "Stadt": "", + "Stadt auswählen": "", + "Suche passende Stadt...": "", + "Die nächstgrößte Stadt oder Ort": "", + "Einführung": "", + "Kurze Beschreibung des Meetups": "", + "Links & Soziale Medien": "", + "Webseite": "", + "Offizielle Webseite oder Landingpage": "", + "Telegram Link": "", + "Link zur Telegram-Gruppe oder zum Kanal": "", + "Twitter Benutzername": "", + "Twitter-Handle ohne @ Symbol": "", + "Matrix Gruppe": "", + "Matrix-Raum Bezeichner oder Link": "", + "Nostr": "", + "Nostr öffentlicher Schlüssel oder Bezeichner": "", + "SimpleX": "", + "SimpleX Chat Kontaktinformationen": "", + "Signal": "", + "Signal Kontakt- oder Gruppeninformationen": "", + "Zusätzliche Informationen": "", + "Gemeinschaft": "", + "Gemeinschafts- oder Organisationsname": "", + "Systeminformationen": "", + "Erstellt von": "", + "Unbekannt": "", + "Ersteller des Meetups": "", + "Erstellt am": "", + "Wann dieses Meetup erstellt wurde": "", + "Aktualisiert am": "", + "Letzte Änderungszeit": "", + "Meetup aktualisieren": "", + "Suche nach Meetups...": "", + "Nächster Termin": "", + "Links": "", + "Aktionen": "", + "Ort": "", + "Beschreibung": "", + "Mehr Informationen": "", + "Zusagen": "", + "Vielleicht": "", + "Zurück zum Meetup": "", + "Über uns": "", + "Kontakt & Links": "", + "Standort": "", + "Zoom = STRG+Scroll": "", + "Kommende Veranstaltungen": "", + "Bitcoin Meetups": "", + "Alle Meetups anzeigen": "", + "Kartenansicht öffnen": "", + "Verbinde dich mit Bitcoinern in deiner Nähe": "", + "Finde deine lokale Community": "" } \ No newline at end of file diff --git a/lang/es.json b/lang/es.json index 2a024d1..4de4e28 100644 --- a/lang/es.json +++ b/lang/es.json @@ -140,5 +140,88 @@ "Whoops!": "¡Ups!", "With two-factor authentication enabled, you will be prompted for a secure, random pin during login, which you can retrieve from the TOTP-supported application on your phone.": "Con la autenticación de dos factores habilitada, se le solicitará un PIN aleatorio seguro durante el inicio de sesión, que puede recuperar de la aplicación compatible con TOTP en su teléfono.", "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." + "Your email address is unverified.": "Su dirección de correo electrónico no está verificada.", + "Success!": "", + "Copied into clipboard": "", + "App": "", + "Meetups": "", + "Karte": "", + "Wallpaper": "", + "Land": "", + "Willkommen zurück": "", + "Log in mit Nostr": "", + "Wähle dein Land...": "", + "Suche dein Land...": "", + "Meine nächsten Meetup Termine": "", + "Keine bevorstehenden Termine": "", + "Meine Meetups": "", + "Meetup hinzufügen...": "", + "Meetup suchen...": "", + "Bearbeiten": "", + "Meetup entfernen?": "", + "Möchtest du": "", + "aus deinen Meetups entfernen?": "", + "Du kannst es jederzeit wieder hinzufügen.": "", + "Abbrechen": "", + "Entfernen": "", + "Keine Meetups zugeordnet": "", + "Meetup erfolgreich aktualisiert!": "", + "Meetup bearbeiten": "", + "Grundlegende Informationen": "", + "ID": "", + "System-generierte ID (nur lesbar)": "", + "Der Anzeigename für dieses Meetup": "", + "Stadt": "", + "Stadt auswählen": "", + "Suche passende Stadt...": "", + "Die nächstgrößte Stadt oder Ort": "", + "Einführung": "", + "Kurze Beschreibung des Meetups": "", + "Links & Soziale Medien": "", + "Webseite": "", + "Offizielle Webseite oder Landingpage": "", + "Telegram Link": "", + "Link zur Telegram-Gruppe oder zum Kanal": "", + "Twitter Benutzername": "", + "Twitter-Handle ohne @ Symbol": "", + "Matrix Gruppe": "", + "Matrix-Raum Bezeichner oder Link": "", + "Nostr": "", + "Nostr öffentlicher Schlüssel oder Bezeichner": "", + "SimpleX": "", + "SimpleX Chat Kontaktinformationen": "", + "Signal": "", + "Signal Kontakt- oder Gruppeninformationen": "", + "Zusätzliche Informationen": "", + "Gemeinschaft": "", + "Gemeinschafts- oder Organisationsname": "", + "Systeminformationen": "", + "Erstellt von": "", + "Unbekannt": "", + "Ersteller des Meetups": "", + "Erstellt am": "", + "Wann dieses Meetup erstellt wurde": "", + "Aktualisiert am": "", + "Letzte Änderungszeit": "", + "Meetup aktualisieren": "", + "Suche nach Meetups...": "", + "Nächster Termin": "", + "Links": "", + "Aktionen": "", + "Ort": "", + "Beschreibung": "", + "Mehr Informationen": "", + "Zusagen": "", + "Vielleicht": "", + "Zurück zum Meetup": "", + "Über uns": "", + "Kontakt & Links": "", + "Standort": "", + "Zoom = STRG+Scroll": "", + "Kommende Veranstaltungen": "", + "Bitcoin Meetups": "", + "Alle Meetups anzeigen": "", + "Kartenansicht öffnen": "", + "Verbinde dich mit Bitcoinern in deiner Nähe": "", + "Finde deine lokale Community": "" } \ No newline at end of file