diff --git a/app/Http/Middleware/DomainMiddleware.php b/app/Http/Middleware/DomainMiddleware.php new file mode 100644 index 0000000..8ecf518 --- /dev/null +++ b/app/Http/Middleware/DomainMiddleware.php @@ -0,0 +1,39 @@ +getHost(); // Erkennt die aktuelle Domain (via CNAME) + + // domains + $domainArray = [ + 'portal.eenentwintig.net' => [ + 'locale' => 'nl', + 'lang_country' => 'nl-NL', + 'app_name' => 'EENENTWINTIG Portaal', + ], + ]; + + // App-Locale dynamisch setzen + if (isset($domainArray[$domain]['locale'])) { + session([ + 'lang_country' => $domainArray[$domain]['lang_country'], + ]); + config([ + 'app.name' => $domainArray[$domain]['app_name'], + 'app.domain_country' => $domainArray[$domain]['locale'], + ]); + App::setLocale($domainArray[$domain]['locale']); + } + + return $next($request); + } +} diff --git a/bootstrap/app.php b/bootstrap/app.php index 0575e3d..55ba99d 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -13,6 +13,7 @@ return Application::configure(basePath: dirname(__DIR__)) ) ->withMiddleware(function (Middleware $middleware) { $middleware->web(append: [ + \App\Http\Middleware\DomainMiddleware::class, \Stefro\LaravelLangCountry\Middleware\LangCountrySession::class, \App\Http\Middleware\SetTimezone::class, ]); diff --git a/config/app.php b/config/app.php index 13fbf34..6303e83 100644 --- a/config/app.php +++ b/config/app.php @@ -15,6 +15,8 @@ return [ 'name' => env('APP_NAME', 'Laravel'), + 'domain_country' => 'de', + /* |-------------------------------------------------------------------------- | Application Environment diff --git a/lang/de.json b/lang/de.json index 6819db3..892f0b2 100644 --- a/lang/de.json +++ b/lang/de.json @@ -440,5 +440,22 @@ "Öffnen/RSVP": "", "Über den Dozenten": "", "Über den Kurs": "", - "Über uns": "" + "Über uns": "", + "Details": "", + "Die Endzeit muss nach der Startzeit liegen.": "", + "Startdatum": "", + "An welchem Tag beginnt das Event?": "", + "Um wie viel Uhr beginnt das Event?": "", + "Enddatum": "", + "An welchem Tag endet das Event?": "", + "Um wie viel Uhr endet das Event?": "", + "Datum": "", + "An welchem Tag findet das Event statt?": "", + "Uhrzeit": "", + "Um wie viel Uhr startet das Event?": "", + "Zeitzone": "", + "Wähle deine Zeitzone aus...": "", + "Zeitzone erfolgreich aktualisiert": "", + "Wähle deine Zeitzone...": "", + "Suche Zeitzone...": "" } \ No newline at end of file diff --git a/lang/en.json b/lang/en.json index d11ed5c..2ede6e0 100644 --- a/lang/en.json +++ b/lang/en.json @@ -440,5 +440,22 @@ "Öffnen/RSVP": "Open/RSVP", "Über den Dozenten": "About the lecturer", "Über den Kurs": "About the course", - "Über uns": "About us" + "Über uns": "About us", + "Details": "Details", + "Die Endzeit muss nach der Startzeit liegen.": "The end time must be after the start time.", + "Startdatum": "Start date", + "An welchem Tag beginnt das Event?": "On which day does the event start?", + "Um wie viel Uhr beginnt das Event?": "At what time does the event start?", + "Enddatum": "End date", + "An welchem Tag endet das Event?": "On which day does the event end?", + "Um wie viel Uhr endet das Event?": "At what time does the event end?", + "Datum": "Date", + "An welchem Tag findet das Event statt?": "On which day does the event take place?", + "Uhrzeit": "Time", + "Um wie viel Uhr startet das Event?": "At what time does the event start?", + "Zeitzone": "Timezone", + "Wähle deine Zeitzone aus...": "Select your timezone...", + "Zeitzone erfolgreich aktualisiert": "Timezone successfully updated", + "Wähle deine Zeitzone...": "Choose your timezone...", + "Suche Zeitzone...": "Search timezone..." } \ No newline at end of file diff --git a/lang/es.json b/lang/es.json index 1002a6d..b6c0f7c 100644 --- a/lang/es.json +++ b/lang/es.json @@ -439,5 +439,22 @@ "Öffnen/RSVP": "Abrir/RSVP", "Über den Dozenten": "Sobre el profesor", "Über den Kurs": "Sobre el curso", - "Über uns": "Sobre nosotros" + "Über uns": "Sobre nosotros", + "Details": "Detalles", + "Die Endzeit muss nach der Startzeit liegen.": "La hora de finalización debe ser posterior a la hora de inicio.", + "Startdatum": "Fecha de inicio", + "An welchem Tag beginnt das Event?": "¿En qué día comienza el evento?", + "Um wie viel Uhr beginnt das Event?": "¿A qué hora comienza el evento?", + "Enddatum": "Fecha de finalización", + "An welchem Tag endet das Event?": "¿En qué día termina el evento?", + "Um wie viel Uhr endet das Event?": "¿A qué hora termina el evento?", + "Datum": "Fecha", + "An welchem Tag findet das Event statt?": "¿En qué día se lleva a cabo el evento?", + "Uhrzeit": "Hora", + "Um wie viel Uhr startet das Event?": "¿A qué hora comienza el evento?", + "Zeitzone": "Zona horaria", + "Wähle deine Zeitzone aus...": "Selecciona tu zona horaria...", + "Zeitzone erfolgreich aktualisiert": "Zona horaria actualizada exitosamente", + "Wähle deine Zeitzone...": "Elige tu zona horaria...", + "Suche Zeitzone...": "Buscar zona horaria..." } \ No newline at end of file diff --git a/lang/nl.json b/lang/nl.json new file mode 100644 index 0000000..e901ff3 --- /dev/null +++ b/lang/nl.json @@ -0,0 +1,380 @@ +{ + "Login - Bitcoin Meetups": "Inloggen - Bitcoin Meetups", + "Logge dich ein, um auf dein Bitcoin Meetup Konto zuzugreifen und aan der Community teilzunehmen.": "Log in om toegang te krijgen tot je Bitcoin Meetup-account en deel te nemen aan de community.", + "Dashboard - Bitcoin Meetups": "Dashboard - Bitcoin Meetups", + "Verwalte deine Bitcoin Meetups, Events und Einstellungen in deinem persönlichen Dashboard.": "Beheer je Bitcoin Meetups, evenementen en instellingen in je persoonlijke dashboard.", + "Willkommen bei Bitcoin Meetups": "Welkom bij Bitcoin Meetups", + "Entdecke die Bitcoin Community in deiner Nähe. Finde lokale Meetups und vernetze dich mit Gleichgesinnten.": "Ontdek de Bitcoin-community in je buurt. Vind lokale Meetups en netwerk met gelijkgestemden.", + "Follow the Rabbit - Bitcoin Journey": "Follow the Rabbit - Bitcoin Journey", + "Starte deine Bitcoin-Reise und entdecke spannende Inhalte rund um Bitcoin und Blockchain.": "Start je Bitcoin-reis en ontdek spannende inhoud over Bitcoin en Blockchain.", + "Neue Stadt hinzufügen - Bitcoin Meetups": "Nieuwe stad toevoegen - Bitcoin Meetups", + "Füge eine neue Stadt hinzu, um Bitcoin Meetups in deiner Region zu organisieren.": "Voeg een nieuwe stad toe om Bitcoin Meetups in je regio te organiseren.", + "Stadt bearbeiten - Bitcoin Meetups": "Stad bewerken - Bitcoin Meetups", + "Aktualisiere die Informationen für Bitcoin Meetup Standorte in deiner Stadt.": "Werk de informatie bij voor Bitcoin Meetup-locaties in je stad.", + "Städteübersicht - Bitcoin Meetups": "Stedenoverzicht - Bitcoin Meetups", + "Durchsuche alle Städte mit aktiven Bitcoin Meetups und finde Events in deiner Nähe.": "Doorzoek alle steden met actieve Bitcoin Meetups en vind evenementen in je buurt.", + "Neuen Kurs erstellen - Bitcoin Education": "Nieuwe cursus maken - Bitcoin Education", + "Erstelle einen neuen Bitcoin-Bildungskurs und teile dein Wissen mit der Community.": "Maak een nieuwe Bitcoin-educatiecursus en deel je kennis met de community.", + "Kursevents bearbeiten - Bitcoin Education": "Cursusevenementen bewerken - Bitcoin Education", + "Verwalte die Termine und Details deiner Bitcoin-Bildungsveranstaltungen.": "Beheer de data en details van je Bitcoin-educatie-evenementen.", + "Kurs bearbeiten - Bitcoin Education": "Cursus bewerken - Bitcoin Education", + "Aktualisiere die Inhalte und Informationen deines Bitcoin-Bildungskurses.": "Werk de inhoud en informatie van je Bitcoin-educatiecursus bij.", + "Bitcoin Kurse - Übersicht": "Bitcoin Cursussen - Overzicht", + "Entdecke unsere vielfältigen Bitcoin-Bildungsangebote und Workshops.": "Ontdek onze diverse Bitcoin-educatie-aanbiedingen en workshops.", + "Bitcoin Bildung & Kurse": "Bitcoin Educatie & Cursussen", + "Lerne alles über Bitcoin - von den Grundlagen bis zu fortgeschrittenen Themen.": "Leer alles over Bitcoin - van de basis tot geavanceerde onderwerpen.", + "Dozent werden - Bitcoin Education": "Docent worden - Bitcoin Education", + "Werde Bitcoin-Dozent und teile dein Expertenwissen mit der Community.": "Word Bitcoin-docent en deel je expertise met de community.", + "Dozentenprofil bearbeiten": "Docentenprofiel bewerken", + "Aktualisiere dein Profil als Bitcoin-Dozent und deine Kursangebote.": "Werk je profiel als Bitcoin-docent en je cursusaanbiedingen bij.", + "Bitcoin Dozenten - Übersicht": "Bitcoin Docenten - Overzicht", + "Lerne unsere erfahrenen Bitcoin-Dozenten und ihre Expertise kennen.": "Leer onze ervaren Bitcoin-docenten en hun expertise kennen.", + "Bitcoin Meetup Events verwalten": "Bitcoin Meetup Evenementen beheren", + "Erstelle und bearbeite Bitcoin Meetup Events für deine Community.": "Maak en bewerk Bitcoin Meetup-evenementen voor je community.", + "Meetup bearbeiten - Bitcoin Events": "Meetup bewerken - Bitcoin Evenementen", + "Aktualisiere die Details und Informationen deines Bitcoin Meetups.": "Werk de details en informatie van je Bitcoin Meetup bij.", + "Bitcoin Meetups - Alle Events": "Bitcoin Meetups - Alle Evenementen", + "Finde alle aktuellen Bitcoin Meetups und Events in deiner Region.": "Vind alle huidige Bitcoin Meetups en evenementen in je regio.", + "Bitcoin Meetups - Community Events": "Bitcoin Meetups - Community Evenementen", + "Entdecke Bitcoin Community Events und vernetze dich mit Gleichgesinnten.": "Ontdek Bitcoin Community-evenementen en netwerk met gelijkgestemden.", + "Bitcoin Event Details": "Bitcoin Evenement Details", + "Alle Informationen zum ausgewählten Bitcoin Meetup Event.": "Alle informatie over het geselecteerde Bitcoin Meetup-evenement.", + "Bitcoin Meetups Karte": "Bitcoin Meetups Kaart", + "Finde Bitcoin Meetups in deiner Nähe mit unserer interaktiven Karte.": "Vind Bitcoin Meetups in je buurt met onze interactieve kaart.", + "Erscheinungsbild - Einstellungen": "Uiterlijk - Instellingen", + "Passe das Erscheinungsbild deines Bitcoin Meetup Profils an.": "Pas het uiterlijk van je Bitcoin Meetup-profiel aan.", + "Konto löschen - Bitcoin Meetups": "Account verwijderen - Bitcoin Meetups", + "Informationen zum Löschen deines Bitcoin Meetup Kontos.": "Informatie over het verwijderen van je Bitcoin Meetup-account.", + "Passwort ändern - Bitcoin Meetups": "Wachtwoord wijzigen - Bitcoin Meetups", + "Ändere dein Passwort für mehr Sicherheit deines Bitcoin Meetup Kontos.": "Wijzig je wachtwoord voor meer beveiliging van je Bitcoin Meetup-account.", + "Profil bearbeiten - Bitcoin Meetups": "Profiel bewerken - Bitcoin Meetups", + "Aktualisiere deine persönlichen Informationen und Profileinstellungen.": "Werk je persoonlijke informatie en profielinstellingen bij.", + "Neuen Veranstaltungsort erstellen": "Nieuwe locatie maken", + "Füge einen neuen Ort für Bitcoin Meetups und Events hinzu.": "Voeg een nieuwe locatie toe voor Bitcoin Meetups en evenementen.", + "Veranstaltungsort bearbeiten": "Locatie bewerken", + "Aktualisiere die Details eines Bitcoin Meetup Veranstaltungsortes.": "Werk de details van een Bitcoin Meetup-locatie bij.", + "Veranstaltungsorte - Übersicht": "Locaties - Overzicht", + "Finde alle Veranstaltungsorte für Bitcoin Meetups und Events.": "Vind alle locaties voor Bitcoin Meetups en evenementen.", + "Willkommen": "Welkom", + "Toximalistisches Infotainment für bullische Bitcoiner.": "Toximalistisch infotainment voor bullische Bitcoiners.", + "no location set": "geen locatie ingesteld", + "BooksForPlebs": "BooksForPlebs", + "Lokale Buchausleihe für Bitcoin-Meetups.": "Lokale boekuitlening voor Bitcoin-Meetups.", + "Bitcoin - Rabbit Hole": "Bitcoin - Rabbit Hole", + "Dies ist ein großartiger Überblick über die Bitcoin-Kaninchenhöhle mit Zugängen zu Bereichen, die Bitcoin umfasst. Jedes Thema hat seine eigene Kaninchenhöhle, die durch Infografiken auf einfache und verständliche Weise visualisiert wird, mit QR-Codes, die zu erklärenden Videos und Artikeln führen. Viel Spaß auf Ihrer Entdeckungsreise!": "Dit is een geweldig overzicht van de Bitcoin-rabbithole met toegang tot gebieden die Bitcoin omvatten. Elk onderwerp heeft zijn eigen rabbithole, gevisualiseerd door infographics op een eenvoudige en begrijpelijke manier, met QR-codes die leiden naar uitleggende video's en artikelen. Veel plezier op je ontdekkingstocht!", + "Saved.": "Opgeslagen.", + "Sprache wählen": "Taal selecteren", + "Dashboard": "Dashboard", + "Search": "Zoeken", + "Repository": "Repository", + "Documentation": "Documentatie", + "Settings": "Instellingen", + "Log Out": "Uitloggen", + "Platform": "Platform", + "Success!": "Succes!", + "Copied into clipboard": "Gekopieerd naar klembord", + "App": "App", + "Meetups": "Meetups", + "Karte": "Kaart", + "Kurse": "Cursussen", + "Dozenten": "Docenten", + "Diverses": "Diversen", + "Orte/Gebiete": "Locaties/Gebieden", + "Städte/Gebiete": "Steden/Gebieden", + "Veranstaltungsorte": "Locaties", + "Sprache wechseln": "Taal wisselen", + "Land": "Land", + "Nächster Termin": "Volgende afspraak", + "Zusagen": "Bevestigingen", + "Vielleicht": "Misschien", + "Telegram": "Telegram", + "Website": "Website", + "Twitter": "Twitter", + "Matrix": "Matrix", + "Nostr": "Nostr", + "Simplex": "Simplex", + "Signal": "Signal", + "Details": "Details", + "Profile": "Profiel", + "Password": "Wachtwoord", + "Appearance": "Uiterlijk", + "Unauthorized": "Ongeautoriseerd", + "Payment Required": "Betaling vereist", + "Forbidden": "Verboden", + "Not Found": "Niet gevonden", + "Page Expired": "Pagina verlopen", + "Too Many Requests": "Te veel verzoeken", + "Server Error": "Serverfout", + "Service Unavailable": "Service niet beschikbaar", + "Confirm password": "Bevestig wachtwoord", + "This is a secure area of the application. Please confirm your password before continuing.": "Dit is een beveiligd gebied van de applicatie. Bevestig je wachtwoord voordat je doorgaat.", + "Confirm": "Bevestigen", + "A reset link will be sent if the account exists.": "Er wordt een resetlink verzonden als het account bestaat.", + "Forgot password": "Wachtwoord vergeten", + "Enter your email to receive a password reset link": "Voer je e-mail in om een wachtwoordherstel-link te ontvangen", + "Email Address": "E-mailadres", + "Email password reset link": "E-mail wachtwoordherstel-link", + "Or, return to": "Of, terug naar", + "log in": "inloggen", + "Willkommen zurück": "Welkom terug", + "Log in mit Nostr": "Inloggen met Nostr", + "Copy": "Kopiëren", + "Click to connect": "Klik om te verbinden", + "Create an account": "Account aanmaken", + "Enter your details below to create your account": "Voer je gegevens hieronder in om je account aan te maken", + "Name": "Naam", + "Full name": "Volledige naam", + "Email address": "E-mailadres", + "Create account": "Account aanmaken", + "Already have an account?": "Heb je al een account?", + "Log in": "Inloggen", + "Reset password": "Wachtwoord herstellen", + "Please enter your new password below": "Voer je nieuwe wachtwoord hieronder in", + "Email": "E-mail", + "Please verify your email address by clicking on the link we just emailed to you.": "Verifieer je e-mailadres door op de link te klikken die we net naar je hebben gemaild.", + "A new verification link has been sent to the email address you provided during registration.": "Een nieuwe verificatielink is verzonden naar het e-mailadres dat je tijdens de registratie hebt opgegeven.", + "Resend verification email": "Verificatie-e-mail opnieuw verzenden", + "Log out": "Uitloggen", + "City successfully created!": "Stad succesvol aangemaakt!", + "Create City": "Stad aanmaken", + "Basic Information": "Basisinformatie", + "Country": "Land", + "Select a country": "Selecteer een land", + "Coordinates": "Coördinaten", + "Latitude": "Breedtegraad", + "Longitude": "Lengtegraad", + "Demographics": "Demografie", + "Population": "Bevolking", + "Population Date": "Bevolkingsdatum", + "Cancel": "Annuleren", + "City successfully updated!": "Stad succesvol bijgewerkt!", + "Edit City": "Stad bewerken", + "Update City": "Stad bijwerken", + "Cities": "Steden", + "Search cities...": "Zoek steden...", + "Created By": "Aangemaakt door", + "Actions": "Acties", + "Edit": "Bewerken", + "Wähle dein Land...": "Selecteer je land...", + "Suche dein Land...": "Zoek je land...", + "Die Endzeit muss nach der Startzeit liegen.": "De eindtijd moet na de starttijd liggen.", + "Event erfolgreich aktualisiert!": "Evenement succesvol bijgewerkt!", + "Event erfolgreich erstellt!": "Evenement succesvol aangemaakt!", + "Event erfolgreich gelöscht!": "Evenement succesvol verwijderd!", + "Event bearbeiten": "Evenement bewerken", + "Neues Event erstellen": "Nieuw evenement aanmaken", + "Event Details": "Evenement Details", + "Startdatum": "Startdatum", + "An welchem Tag beginnt das Event?": "Op welke dag begint het evenement?", + "Startzeit": "Starttijd", + "Um wie viel Uhr beginnt das Event?": "Hoe laat begint het evenement?", + "Enddatum": "Einddatum", + "An welchem Tag endet das Event?": "Op welke dag eindigt het evenement?", + "Endzeit": "Eindtijd", + "Um wie viel Uhr endet das Event?": "Hoe laat eindigt het evenement?", + "Veranstaltungsort": "Locatie", + "Ort hinzufügen": "Locatie toevoegen", + "Veranstaltungsort auswählen": "Locatie selecteren", + "Suche nach Ort...": "Zoek naar locatie...", + "Wo findet das Event statt?": "Waar vindt het evenement plaats?", + "Link": "Link", + "Link zu weiteren Informationen oder zur Anmeldung": "Link naar meer informatie of registratie", + "Abbrechen": "Annuleren", + "Bist du sicher, dass du dieses Event löschen möchtest?": "Weet je zeker dat je dit evenement wilt verwijderen?", + "Event löschen": "Evenement verwijderen", + "Event aktualisieren": "Evenement bijwerken", + "Event erstellen": "Evenement aanmaken", + "Veranstaltungsort hinzufügen": "Locatie toevoegen", + "Füge einen neuen Veranstaltungsort zur Datenbank hinzu.": "Voeg een nieuwe locatie toe aan de database.", + "z.B. Bitcoin Zentrum München": "bijv. Bitcoin Centrum Amsterdam", + "Stadt": "Stad", + "Stadt auswählen": "Stad selecteren", + "Suche passende Stadt...": "Zoek passende stad...", + "Straße": "Straat", + "z.B. Hauptstraße 1": "bijv. Hoofdstraat 1", + "Ort erstellen": "Locatie aanmaken", + "Kurs erfolgreich erstellt!": "Cursus succesvol aangemaakt!", + "Neuen Kurs erstellen": "Nieuwe cursus aanmaken", + "Grundlegende Informationen": "Basisinformatie", + "Der Anzeigename für diesen Kurs": "De weergavenaam voor deze cursus", + "Dozent": "Docent", + "Dozent auswählen": "Docent selecteren", + "Suche passenden Dozenten...": "Zoek passende docent...", + "Der Dozent, der diesen Kurs leitet": "De docent die deze cursus leidt", + "Beschreibung": "Beschrijving", + "Ausführliche Beschreibung des Kurses": "Gedetailleerde beschrijving van de cursus", + "Kurs erstellen": "Cursus aanmaken", + "Kurs erfolgreich aktualisiert!": "Cursus succesvol bijgewerkt!", + "Kurs bearbeiten": "Cursus bewerken", + "ID": "ID", + "System-generierte ID (nur lesbar)": "Systeemgegenereerde ID (alleen-lezen)", + "Systeminformationen": "Systeemgegevens", + "Erstellt von": "Aangemaakt door", + "Unbekannt": "Onbekend", + "Ersteller des Kurses": "Maker van de cursus", + "Erstellt am": "Aangemaakt op", + "Wann dieser Kurs erstellt wurde": "Wanneer deze cursus werd aangemaakt", + "Aktualisiert am": "Bijgewerkt op", + "Letzte Änderungszeit": "Laatste wijzigingstijd", + "Kurs aktualisieren": "Cursus bijwerken", + "Suche nach Kursen...": "Zoek naar cursussen...", + "Neuer Kurs": "Nieuwe cursus", + "Aktionen": "Acties", + "Bearbeiten": "Bewerken", + "Über den Kurs": "Over de cursus", + "Über den Dozenten": "Over de docent", + "Kommende Veranstaltungen": "Aankomende evenementen", + "Anmeldungen": "Registraties", + "Details/Anmelden": "Details/Aanmelden", + "Meine nächsten Meetup Termine": "Mijn volgende Meetup-afspraken", + "Keine bevorstehenden Termine": "Geen aankomende afspraken", + "Meine Meetups": "Mijn Meetups", + "Meetup hinzufügen...": "Meetup toevoegen...", + "Meetup suchen...": "Meetup zoeken...", + "Meetup entfernen?": "Meetup verwijderen?", + "Möchtest du": "Wil je", + "aus deinen Meetups entfernen?": "uit je Meetups verwijderen?", + "Du kannst es jederzeit wieder hinzufügen.": "Je kunt het altijd weer toevoegen.", + "Entfernen": "Verwijderen", + "Keine Meetups zugeordnet": "Geen Meetups toegewezen", + "Dozent erfolgreich erstellt!": "Docent succesvol aangemaakt!", + "Neuen Dozenten erstellen": "Nieuwe docent aanmaken", + "Vollständiger Name des Dozenten": "Volledige naam van de docent", + "Untertitel": "Ondertitel", + "Kurze Berufsbezeichnung oder Rolle": "Korte beroepsaanduiding of rol", + "Status": "Status", + "Ist dieser Dozent aktiv?": "Is deze docent actief?", + "Einführung": "Introductie", + "Kurze Vorstellung (wird auf Kurs-Seiten angezeigt)": "Korte introductie (wordt getoond op cursuspagina's)", + "Ausführliche Beschreibung und Biografie": "Gedetailleerde beschrijving en biografie", + "Links & Soziale Medien": "Links & Sociale media", + "Webseite": "Website", + "Persönliche Webseite oder Portfolio": "Persoonlijke website of portfolio", + "Twitter Benutzername": "Twitter-gebruikersnaam", + "Twitter-Handle ohne @ Symbol": "Twitter-handle zonder @ symbool", + "Nostr öffentlicher Schlüssel": "Nostr publieke sleutel", + "Zahlungsinformationen": "Betaalinformatie", + "Lightning Adresse": "Lightning-adres", + "Lightning-Adresse für Zahlungen": "Lightning-adres voor betalingen", + "LNURL": "LNURL", + "LNURL für Lightning-Zahlungen": "LNURL voor Lightning-betalingen", + "Node ID": "Node ID", + "Lightning Node ID": "Lightning Node ID", + "PayNym": "PayNym", + "PayNym für Bitcoin-Zahlungen": "PayNym voor Bitcoin-betalingen", + "Dozenten erstellen": "Docenten aanmaken", + "Dozent erfolgreich aktualisiert!": "Docent succesvol bijgewerkt!", + "Dozent bearbeiten": "Docent bewerken", + "Ersteller des Dozenten": "Maker van de docent", + "Wann dieser Dozent erstellt wurde": "Wanneer deze docent werd aangemaakt", + "Dozent aktualisieren": "Docent bijwerken", + "Suche nach Dozenten...": "Zoek naar docenten...", + "Dozenten anlegen": "Docenten aanleggen", + "Links": "Links", + "Aktiv": "Actief", + "Inaktiv": "Inactief", + "weitere Termine": "meer afspraken", + "Datum": "Datum", + "An welchem Tag findet das Event statt?": "Op welke dag vindt het evenement plaats?", + "Uhrzeit": "Tijd", + "Um wie viel Uhr startet das Event?": "Hoe laat start het evenement?", + "Ort": "Locatie", + "z.B. Café Mustermann, Hauptstr. 1": "bijv. Café Voorbeeld, Hoofdstr. 1", + "Beschreibe das Event...": "Beschrijf het evenement...", + "Details über das Event": "Details over het evenement", + "Link zu weiteren Informationen": "Link naar meer informatie", + "Meetup erfolgreich erstellt!": "Meetup succesvol aangemaakt!", + "Neues Meetup erstellen": "Nieuwe Meetup aanmaken", + "Der Anzeigename für dieses Meetup": "De weergavenaam voor deze Meetup", + "Stadt hinzufügen": "Stad toevoegen", + "Die nächstgrößte Stadt oder Ort": "De dichtstbijzijnde stad of plaats", + "Auf Karte sichtbar": "Zichtbaar op kaart", + "Soll dieses Meetup auf der Karte angezeigt werden?": "Moet deze Meetup op de kaart worden weergegeven?", + "Kurze Beschreibung des Meetups": "Korte beschrijving van de Meetup", + "Offizielle Webseite oder Landingpage": "Officiële website of landingpagina", + "Telegram Link": "Telegram-link", + "Link zur Telegram-Gruppe oder zum Kanal": "Link naar Telegram-groep of kanaal", + "Matrix Gruppe": "Matrix-groep", + "Matrix-Raum Bezeichner oder Link": "Matrix-ruim-identifier of link", + "Nostr öffentlicher Schlüssel oder Bezeichner": "Nostr publieke sleutel of identifier", + "SimpleX": "SimpleX", + "SimpleX Chat Kontaktinformationen": "SimpleX-chatcontactinformatie", + "Signal Kontakt- of Gruppeninformationen": "Signalcontact- of groepsinformatie", + "Zusätzliche Informationen": "Aanvullende informatie", + "Gemeinschaft": "Gemeenschap", + "Keine": "Geen", + "Gemeinschafts- oder Organisationsname": "Gemeenschaps- of organisatienaam", + "Meetup erstellen": "Meetup aanmaken", + "Füge eine neue Stadt zur Datenbank hinzu.": "Voeg een nieuwe stad toe aan de database.", + "Stadtname": "Stadsnaam", + "z.B. Berlin": "bijv. Amsterdam", + "Land auswählen": "Land selecteren", + "Breitengrad": "Breedtegraad", + "Längengrad": "Lengtegraad", + "Stadt erstellen": "Stad aanmaken", + "Meetup erfolgreich aktualisiert!": "Meetup succesvol bijgewerkt!", + "Meetup bearbeiten": "Meetup bewerken", + "Ersteller des Meetups": "Maker van de Meetup", + "Wann dieses Meetup erstellt wurde": "Wanneer deze Meetup werd aangemaakt", + "Meetup aktualisieren": "Meetup bijwerken", + "Kalender-Stream-URL kopieren": "Kalender-stream-URL kopiëren", + "Suche nach Meetups...": "Zoek naar Meetups...", + "Mehr Informationen": "Meer informatie", + "Teilnahme": "Deelname", + "Du bist nicht eingloggt und musst deshalb den Namen selbst eintippen.": "Je bent niet ingelogd en moet daarom de naam zelf intypen.", + "Dein Name": "Je naam", + "Name eingeben": "Naam invoeren", + "Ich komme": "Ik kom", + "Absagen": "Afmelden", + "Zurück zum Meetup": "Terug naar Meetup", + "Über uns": "Over ons", + "Kontakt & Links": "Contact & Links", + "Standort": "Locatie", + "Zoom = STRG+Scroll": "Zoom = CTRL+Scroll", + "Öffnen/RSVP": "Openen/RSVP", + "Update the appearance settings for your account": "Werk de uiterlijk-instellingen bij voor je account", + "Light": "Licht", + "Dark": "Donker", + "System": "Systeem", + "Delete account": "Account verwijderen", + "Delete your account and all of its resources": "Verwijder je account en al zijn bronnen", + "Are you sure you want to delete your account?": "Weet je zeker dat je je account wilt verwijderen?", + "Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.": "Zodra je account wordt verwijderd, worden al zijn bronnen en gegevens permanent verwijderd. Voer je wachtwoord in om te bevestigen dat je je account permanent wilt verwijderen.", + "Update password": "Wachtwoord bijwerken", + "Ensure your account is using a long, random password to stay secure": "Zorg ervoor dat je account een lang, willekeurig wachtwoord gebruikt om veilig te blijven", + "Current password": "Huidige wachtwoord", + "New password": "Nieuw wachtwoord", + "Confirm Password": "Bevestig wachtwoord", + "Save": "Opslaan", + "Update your name and email address": "Werk je naam en e-mailadres bij", + "Your email address is unverified.": "Je e-mailadres is niet geverifieerd.", + "Click here to re-send the verification email.": "Klik hier om de verificatie-e-mail opnieuw te verzenden.", + "A new verification link has been sent to your email address.": "Een nieuwe verificatielink is verzonden naar je e-mailadres.", + "Zeitzone": "Tijdzone", + "Wähle deine Zeitzone aus...": "Selecteer je tijdzone...", + "Spracheinstellungen": "Taalinstellingen", + "Wähle deine Sprache aus...": "Selecteer je taal...", + "Zeitzone erfolgreich aktualisiert": "Tijdzone succesvol bijgewerkt", + "Wähle deine Zeitzone...": "Selecteer je tijdzone...", + "Suche Zeitzone...": "Zoek tijdzone...", + "Venue successfully created!": "Locatie succesvol aangemaakt!", + "Create Venue": "Locatie aanmaken", + "Venue Information": "Locatie-informatie", + "City": "Stad", + "Select a city": "Selecteer een stad", + "Street": "Straat", + "Venue successfully updated!": "Locatie succesvol bijgewerkt!", + "Edit Venue": "Locatie bewerken", + "Update Venue": "Locatie bijwerken", + "Venues": "Locaties", + "Search venues...": "Zoek locaties...", + "Bitcoin Meetups": "Bitcoin Meetups", + "Alle Meetups anzeigen": "Alle Meetups weergeven", + "Kartenansicht öffnen": "Kartenweergave openen", + "Login": "Inloggen", + "Verbinde dich mit Bitcoinern in deiner Nähe": "Verbind je met Bitcoiners in je buurt", + "Finde deine lokale Community": "Vind je lokale community", + "Manage your profile and account settings": "Beheer je profiel- en accountinstellingen", + "Logge dich ein, um auf dein Bitcoin Meetup Konto zuzugreifen und an der Community teilzunehmen.": "Log in om toegang te krijgen tot je Bitcoin Meetup-account en deel te nemen aan de community.", + "Signal Kontakt- oder Gruppeninformationen": "Signal contact- of groepsinformatie" +} diff --git a/lang/pt.json b/lang/pt.json new file mode 100644 index 0000000..921b7c9 --- /dev/null +++ b/lang/pt.json @@ -0,0 +1,378 @@ +{ + "Login - Bitcoin Meetups": "Login - Bitcoin Meetups", + "Logge dich ein, um auf dein Bitcoin Meetup Konto zuzugreifen und an der Community teilzunehmen.": "Faça login para acessar sua conta do Bitcoin Meetup e participar da comunidade.", + "Dashboard - Bitcoin Meetups": "Painel - Bitcoin Meetups", + "Verwalte deine Bitcoin Meetups, Events und Einstellungen in deinem persönlichen Dashboard.": "Gerencie seus Bitcoin Meetups, eventos e configurações em seu painel pessoal.", + "Willkommen bei Bitcoin Meetups": "Bem-vindo aos Bitcoin Meetups", + "Entdecke die Bitcoin Community in deiner Nähe. Finde lokale Meetups und vernetze dich mit Gleichgesinnten.": "Descubra a comunidade Bitcoin perto de você. Encontre meetups locais e conecte-se com pessoas de ideias semelhantes.", + "Follow the Rabbit - Bitcoin Journey": "Follow the Rabbit - Jornada Bitcoin", + "Starte deine Bitcoin-Reise und entdecke spannende Inhalte rund um Bitcoin und Blockchain.": "Inicie sua jornada Bitcoin e descubra conteúdos fascinantes sobre Bitcoin e Blockchain.", + "Neue Stadt hinzufügen - Bitcoin Meetups": "Adicionar nova cidade - Bitcoin Meetups", + "Füge eine neue Stadt hinzu, um Bitcoin Meetups in deiner Region zu organisieren.": "Adicione uma nova cidade para organizar Bitcoin Meetups em sua região.", + "Stadt bearbeiten - Bitcoin Meetups": "Editar cidade - Bitcoin Meetups", + "Aktualisiere die Informationen für Bitcoin Meetup Standorte in deiner Stadt.": "Atualize as informações para locais de Bitcoin Meetup em sua cidade.", + "Städteübersicht - Bitcoin Meetups": "Visão geral das cidades - Bitcoin Meetups", + "Durchsuche alle Städte mit aktiven Bitcoin Meetups und finde Events in deiner Nähe.": "Pesquise todas as cidades com Bitcoin Meetups ativos e encontre eventos perto de você.", + "Neuen Kurs erstellen - Bitcoin Education": "Criar novo curso - Educação Bitcoin", + "Erstelle einen neuen Bitcoin-Bildungskurs und teile dein Wissen mit der Community.": "Crie um novo curso de educação Bitcoin e compartilhe seu conhecimento com a comunidade.", + "Kursevents bearbeiten - Bitcoin Education": "Editar eventos do curso - Educação Bitcoin", + "Verwalte die Termine und Details deiner Bitcoin-Bildungsveranstaltungen.": "Gerencie as datas e detalhes de seus eventos educacionais Bitcoin.", + "Kurs bearbeiten - Bitcoin Education": "Editar curso - Educação Bitcoin", + "Aktualisiere die Inhalte und Informationen deines Bitcoin-Bildungskurses.": "Atualize os conteúdos e informações do seu curso educacional Bitcoin.", + "Bitcoin Kurse - Übersicht": "Cursos Bitcoin - Visão geral", + "Entdecke unsere vielfältigen Bitcoin-Bildungsangebote und Workshops.": "Descubra nossas diversas ofertas educacionais Bitcoin e workshops.", + "Bitcoin Bildung & Kurse": "Educação & Cursos Bitcoin", + "Lerne alles über Bitcoin - von den Grundlagen bis zu fortgeschrittenen Themen.": "Aprenda tudo sobre Bitcoin - dos fundamentos aos tópicos avançados.", + "Dozent werden - Bitcoin Education": "Torne-se professor - Educação Bitcoin", + "Werde Bitcoin-Dozent und teile dein Expertenwissen mit der Community.": "Torne-se um professor de Bitcoin e compartilhe seu conhecimento especializado com a comunidade.", + "Dozentenprofil bearbeiten": "Editar perfil do professor", + "Aktualisiere dein Profil als Bitcoin-Dozent und deine Kursangebote.": "Atualize seu perfil como professor de Bitcoin e suas ofertas de cursos.", + "Bitcoin Dozenten - Übersicht": "Professores Bitcoin - Visão geral", + "Lerne unsere erfahrenen Bitcoin-Dozenten und ihre Expertise kennen.": "Conheça nossos professores experientes de Bitcoin e sua expertise.", + "Bitcoin Meetup Events verwalten": "Gerenciar eventos Bitcoin Meetup", + "Erstelle und bearbeite Bitcoin Meetup Events für deine Community.": "Crie e edite eventos de Bitcoin Meetup para sua comunidade.", + "Meetup bearbeiten - Bitcoin Events": "Editar Meetup - Eventos Bitcoin", + "Aktualisiere die Details und Informationen deines Bitcoin Meetups.": "Atualize os detalhes e informações do seu Bitcoin Meetup.", + "Bitcoin Meetups - Alle Events": "Bitcoin Meetups - Todos os eventos", + "Finde alle aktuellen Bitcoin Meetups und Events in deiner Region.": "Encontre todos os atuais Bitcoin Meetups e eventos em sua região.", + "Bitcoin Meetups - Community Events": "Bitcoin Meetups - Eventos da comunidade", + "Entdecke Bitcoin Community Events und vernetze dich mit Gleichgesinnten.": "Descubra eventos da comunidade Bitcoin e conecte-se com pessoas de ideias semelhantes.", + "Bitcoin Event Details": "Detalhes do evento Bitcoin", + "Alle Informationen zum ausgewählten Bitcoin Meetup Event.": "Todas as informações sobre o evento selecionado de Bitcoin Meetup.", + "Bitcoin Meetups Karte": "Mapa de Bitcoin Meetups", + "Finde Bitcoin Meetups in deiner Nähe mit unserer interaktiven Karte.": "Encontre Bitcoin Meetups perto de você com nosso mapa interativo.", + "Erscheinungsbild - Einstellungen": "Aparência - Configurações", + "Passe das Erscheinungsbild deines Bitcoin Meetup Profils an.": "Personalize a aparência do seu perfil de Bitcoin Meetup.", + "Konto löschen - Bitcoin Meetups": "Excluir conta - Bitcoin Meetups", + "Informationen zum Löschen deines Bitcoin Meetup Kontos.": "Informações sobre como excluir sua conta de Bitcoin Meetup.", + "Passwort ändern - Bitcoin Meetups": "Alterar senha - Bitcoin Meetups", + "Ändere dein Passwort für mehr Sicherheit deines Bitcoin Meetup Kontos.": "Altere sua senha para maior segurança da sua conta de Bitcoin Meetup.", + "Profil bearbeiten - Bitcoin Meetups": "Editar perfil - Bitcoin Meetups", + "Aktualisiere deine persönlichen Informationen und Profileinstellungen.": "Atualize suas informações pessoais e configurações de perfil.", + "Neuen Veranstaltungsort erstellen": "Criar novo local de evento", + "Füge einen neuen Ort für Bitcoin Meetups und Events hinzu.": "Adicione um novo local para Bitcoin Meetups e eventos.", + "Veranstaltungsort bearbeiten": "Editar local de evento", + "Aktualisiere die Details eines Bitcoin Meetup Veranstaltungsortes.": "Atualize os detalhes de um local de evento de Bitcoin Meetup.", + "Veranstaltungsorte - Übersicht": "Locais de eventos - Visão geral", + "Finde alle Veranstaltungsorte für Bitcoin Meetups und Events.": "Encontre todos os locais para Bitcoin Meetups e eventos.", + "Willkommen": "Bem-vindo", + "Toximalistisches Infotainment für bullische Bitcoiner.": "Entretenimento informativo toximalista para bitcoiners bullish.", + "no location set": "nenhum local definido", + "BooksForPlebs": "BooksForPlebs", + "Lokale Buchausleihe für Bitcoin-Meetups.": "Empréstimo local de livros para Bitcoin Meetups.", + "Bitcoin - Rabbit Hole": "Bitcoin - Toca do Coelho", + "Dies ist ein großartiger Überblick über die Bitcoin-Kaninchenhöhle mit Zugängen zu Bereichen, die Bitcoin umfasst. Jedes Thema hat seine eigene Kaninchenhöhle, die durch Infografiken auf einfache und verständliche Weise visualisiert wird, mit QR-Codes, die zu erklärenden Videos und Artikeln führen. Viel Spaß auf Ihrer Entdeckungsreise!": "Este é uma grande visão geral do abismo do coelho Bitcoin com acesso a áreas que abrangem Bitcoin. Cada tópico tem seu próprio abismo do coelho, visualizado de forma simples e compreensível através de infográficos, com códigos QR que levam a vídeos e artigos explicativos. Divirta-se em sua jornada de descoberta!", + "Saved.": "Salvo.", + "Sprache wählen": "Escolher idioma", + "Dashboard": "Painel", + "Search": "Buscar", + "Repository": "Repositório", + "Documentation": "Documentação", + "Settings": "Configurações", + "Log Out": "Sair", + "Platform": "Plataforma", + "Success!": "Sucesso!", + "Copied into clipboard": "Copiado para a área de transferência", + "App": "App", + "Meetups": "Meetups", + "Karte": "Mapa", + "Kurse": "Cursos", + "Dozenten": "Professores", + "Diverses": "Diversos", + "Orte/Gebiete": "Locais/Áreas", + "Städte/Gebiete": "Cidades/Áreas", + "Veranstaltungsorte": "Locais de Eventos", + "Sprache wechseln": "Alterar idioma", + "Land": "País", + "Nächster Termin": "Próxima data", + "Zusagen": "Confirmações", + "Vielleicht": "Talvez", + "Telegram": "Telegram", + "Website": "Website", + "Twitter": "Twitter", + "Matrix": "Matrix", + "Nostr": "Nostr", + "Simplex": "Simplex", + "Signal": "Signal", + "Details": "Detalhes", + "Profile": "Perfil", + "Password": "Senha", + "Appearance": "Aparência", + "Unauthorized": "Não autorizado", + "Payment Required": "Pagamento obrigatório", + "Forbidden": "Proibido", + "Not Found": "Não encontrado", + "Page Expired": "Página expirada", + "Too Many Requests": "Muitas solicitações", + "Server Error": "Erro do servidor", + "Service Unavailable": "Serviço indisponível", + "Confirm password": "Confirmar senha", + "This is a secure area of the application. Please confirm your password before continuing.": "Esta é uma área segura da aplicação. Por favor, confirme sua senha antes de continuar.", + "Confirm": "Confirmar", + "A reset link will be sent if the account exists.": "Um link de redefinição será enviado se a conta existir.", + "Forgot password": "Esqueceu a senha", + "Enter your email to receive a password reset link": "Digite seu e-mail para receber um link de redefinição de senha", + "Email Address": "Endereço de e-mail", + "Email password reset link": "Enviar link de redefinição de senha por e-mail", + "Or, return to": "Ou, retornar para", + "log in": "fazer login", + "Willkommen zurück": "Bem-vindo de volta", + "Log in mit Nostr": "Fazer login com Nostr", + "Copy": "Copiar", + "Click to connect": "Clique para conectar", + "Create an account": "Criar uma conta", + "Enter your details below to create your account": "Digite seus detalhes abaixo para criar sua conta", + "Name": "Nome", + "Full name": "Nome completo", + "Email address": "Endereço de e-mail", + "Create account": "Criar conta", + "Already have an account?": "Já tem uma conta?", + "Log in": "Fazer login", + "Reset password": "Redefinir senha", + "Please enter your new password below": "Por favor, digite sua nova senha abaixo", + "Email": "E-mail", + "Please verify your email address by clicking on the link we just emailed to you.": "Por favor, verifique seu endereço de e-mail clicando no link que acabamos de enviar para você.", + "A new verification link has been sent to the email address you provided during registration.": "Um novo link de verificação foi enviado para o endereço de e-mail que você forneceu durante o registro.", + "Resend verification email": "Reenviar e-mail de verificação", + "Log out": "Sair", + "City successfully created!": "Cidade criada com sucesso!", + "Create City": "Criar Cidade", + "Basic Information": "Informações básicas", + "Country": "País", + "Select a country": "Selecione um país", + "Coordinates": "Coordenadas", + "Latitude": "Latitude", + "Longitude": "Longitude", + "Demographics": "Demografia", + "Population": "População", + "Population Date": "Data da população", + "Cancel": "Cancelar", + "City successfully updated!": "Cidade atualizada com sucesso!", + "Edit City": "Editar Cidade", + "Update City": "Atualizar Cidade", + "Cities": "Cidades", + "Search cities...": "Buscar cidades...", + "Created By": "Criado por", + "Actions": "Ações", + "Edit": "Editar", + "Wähle dein Land...": "Escolha seu país...", + "Suche dein Land...": "Busque seu país...", + "Die Endzeit muss nach der Startzeit liegen.": "A hora de fim deve ser após a hora de início.", + "Event erfolgreich aktualisiert!": "Evento atualizado com sucesso!", + "Event erfolgreich erstellt!": "Evento criado com sucesso!", + "Event erfolgreich gelöscht!": "Evento deletado com sucesso!", + "Event bearbeiten": "Editar evento", + "Neues Event erstellen": "Criar novo evento", + "Event Details": "Detalhes do evento", + "Startdatum": "Data de início", + "An welchem Tag beginnt das Event?": "Em que dia começa o evento?", + "Startzeit": "Hora de início", + "Um wie viel Uhr beginnt das Event?": "A que hora começa o evento?", + "Enddatum": "Data de fim", + "An welchem Tag endet das Event?": "Em que dia termina o evento?", + "Endzeit": "Hora de fim", + "Um wie viel Uhr endet das Event?": "A que hora termina o evento?", + "Veranstaltungsort": "Local do evento", + "Ort hinzufügen": "Adicionar local", + "Veranstaltungsort auswählen": "Selecionar local do evento", + "Suche nach Ort...": "Buscar por local...", + "Wo findet das Event statt?": "Onde acontece o evento?", + "Link": "Link", + "Link zu weiteren Informationen oder zur Anmeldung": "Link para mais informações ou inscrição", + "Abbrechen": "Cancelar", + "Bist du sicher, dass du dieses Event löschen möchtest?": "Tem certeza de que deseja deletar este evento?", + "Event löschen": "Deletar evento", + "Event aktualisieren": "Atualizar evento", + "Event erstellen": "Criar evento", + "Veranstaltungsort hinzufügen": "Adicionar local do evento", + "Füge einen neuen Veranstaltungsort zur Datenbank hinzu.": "Adicione um novo local do evento ao banco de dados.", + "z.B. Bitcoin Zentrum München": "Ex.: Centro Bitcoin München", + "Stadt": "Cidade", + "Stadt auswählen": "Selecionar cidade", + "Suche passende Stadt...": "Buscar cidade adequada...", + "Straße": "Rua", + "z.B. Hauptstraße 1": "Ex.: Rua Principal 1", + "Ort erstellen": "Criar local", + "Kurs erfolgreich erstellt!": "Curso criado com sucesso!", + "Neuen Kurs erstellen": "Criar novo curso", + "Grundlegende Informationen": "Informações básicas", + "Der Anzeigename für diesen Kurs": "O nome de exibição para este curso", + "Dozent": "Professor", + "Dozent auswählen": "Selecionar professor", + "Suche passenden Dozenten...": "Buscar professor adequado...", + "Der Dozent, der diesen Kurs leitet": "O professor que conduz este curso", + "Beschreibung": "Descrição", + "Ausführliche Beschreibung des Kurses": "Descrição detalhada do curso", + "Kurs erstellen": "Criar curso", + "Kurs erfolgreich aktualisiert!": "Curso atualizado com sucesso!", + "Kurs bearbeiten": "Editar curso", + "ID": "ID", + "System-generierte ID (nur lesbar)": "ID gerada pelo sistema (somente leitura)", + "Systeminformationen": "Informações do sistema", + "Erstellt von": "Criado por", + "Unbekannt": "Desconhecido", + "Ersteller des Kurses": "Criador do curso", + "Erstellt am": "Criado em", + "Wann dieser Kurs erstellt wurde": "Quando este curso foi criado", + "Aktualisiert am": "Atualizado em", + "Letzte Änderungszeit": "Última alteração", + "Kurs aktualisieren": "Atualizar curso", + "Suche nach Kursen...": "Buscar cursos...", + "Neuer Kurs": "Novo curso", + "Aktionen": "Ações", + "Bearbeiten": "Editar", + "Über den Kurs": "Sobre o curso", + "Über den Dozenten": "Sobre o professor", + "Kommende Veranstaltungen": "Próximos eventos", + "Anmeldungen": "Inscrições", + "Details/Anmelden": "Detalhes/Inscrever-se", + "Meine nächsten Meetup Termine": "Minhas próximas datas de Meetup", + "Keine bevorstehenden Termine": "Nenhuma data futura", + "Meine Meetups": "Meus Meetups", + "Meetup hinzufügen...": "Adicionar Meetup...", + "Meetup suchen...": "Buscar Meetup...", + "Meetup entfernen?": "Remover Meetup?", + "Möchtest du": "Você deseja", + "aus deinen Meetups entfernen?": "remover dos seus Meetups?", + "Du kannst es jederzeit wieder hinzufügen.": "Você pode adicioná-lo novamente a qualquer momento.", + "Entfernen": "Remover", + "Keine Meetups zugeordnet": "Nenhum Meetup associado", + "Dozent erfolgreich erstellt!": "Professor criado com sucesso!", + "Neuen Dozenten erstellen": "Criar novo professor", + "Vollständiger Name des Dozenten": "Nome completo do professor", + "Untertitel": "Subtítulo", + "Kurze Berufsbezeichnung oder Rolle": "Breve título profissional ou papel", + "Status": "Status", + "Ist dieser Dozent aktiv?": "Este professor está ativo?", + "Einführung": "Introdução", + "Kurze Vorstellung (wird auf Kurs-Seiten angezeigt)": "Apresentação curta (exibida nas páginas do curso)", + "Ausführliche Beschreibung und Biografie": "Descrição detalhada e biografia", + "Links & Soziale Medien": "Links e mídias sociais", + "Webseite": "Website", + "Persönliche Webseite oder Portfolio": "Website pessoal ou portfólio", + "Twitter Benutzername": "Nome de usuário no Twitter", + "Twitter-Handle ohne @ Symbol": "Handle do Twitter sem o símbolo @", + "Nostr öffentlicher Schlüssel": "Chave pública Nostr", + "Zahlungsinformationen": "Informações de pagamento", + "Lightning Adresse": "Endereço Lightning", + "Lightning-Adresse für Zahlungen": "Endereço Lightning para pagamentos", + "LNURL": "LNURL", + "LNURL für Lightning-Zahlungen": "LNURL para pagamentos Lightning", + "Node ID": "Node ID", + "Lightning Node ID": "Lightning Node ID", + "PayNym": "PayNym", + "PayNym für Bitcoin-Zahlungen": "PayNym para pagamentos Bitcoin", + "Dozenten erstellen": "Criar professores", + "Dozent erfolgreich aktualisiert!": "Professor atualizado com sucesso!", + "Dozent bearbeiten": "Editar professor", + "Ersteller des Dozenten": "Criador do professor", + "Wann dieser Dozent erstellt wurde": "Quando este professor foi criado", + "Dozent aktualisieren": "Atualizar professor", + "Suche nach Dozenten...": "Buscar professores...", + "Dozenten anlegen": "Criar professores", + "Links": "Links", + "Aktiv": "Ativo", + "Inaktiv": "Inativo", + "weitere Termine": "mais datas", + "Datum": "Data", + "An welchem Tag findet das Event statt?": "Em que dia ocorre o evento?", + "Uhrzeit": "Hora", + "Um wie viel Uhr startet das Event?": "A que hora começa o evento?", + "Ort": "Local", + "z.B. Café Mustermann, Hauptstr. 1": "Ex.: Café Mustermann, Rua Principal 1", + "Beschreibe das Event...": "Descreva o evento...", + "Details über das Event": "Detalhes sobre o evento", + "Link zu weiteren Informationen": "Link para mais informações", + "Meetup erfolgreich erstellt!": "Meetup criado com sucesso!", + "Neues Meetup erstellen": "Criar novo Meetup", + "Der Anzeigename für dieses Meetup": "O nome de exibição para este Meetup", + "Stadt hinzufügen": "Adicionar cidade", + "Die nächstgrößte Stadt oder Ort": "A próxima maior cidade ou local", + "Auf Karte sichtbar": "Visível no mapa", + "Soll dieses Meetup auf der Karte angezeigt werden?": "Este Meetup deve ser exibido no mapa?", + "Kurze Beschreibung des Meetups": "Descrição curta do Meetup", + "Offizielle Webseite oder Landingpage": "Página oficial ou landing page", + "Telegram Link": "Link do Telegram", + "Link zur Telegram-Gruppe oder zum Kanal": "Link para o grupo ou canal do Telegram", + "Matrix Gruppe": "Grupo Matrix", + "Matrix-Raum Bezeichner oder Link": "Identificador de sala Matrix ou link", + "Nostr öffentlicher Schlüssel oder Bezeichner": "Chave pública Nostr ou identificador", + "SimpleX": "SimpleX", + "SimpleX Chat Kontaktinformationen": "Informações de contato do SimpleX Chat", + "Signal Kontakt- oder Gruppeninformationen": "Informações de contato ou grupo do Signal", + "Zusätzliche Informationen": "Informações adicionais", + "Gemeinschaft": "Comunidade", + "Keine": "Nenhuma", + "Gemeinschafts- oder Organisationsname": "Nome da comunidade ou organização", + "Meetup erstellen": "Criar Meetup", + "Füge eine neue Stadt zur Datenbank hinzu.": "Adicione uma nova cidade ao banco de dados.", + "Stadtname": "Nome da cidade", + "z.B. Berlin": "Ex.: Berlin", + "Land auswählen": "Selecionar país", + "Breitengrad": "Latitude", + "Längengrad": "Longitude", + "Stadt erstellen": "Criar cidade", + "Meetup erfolgreich aktualisiert!": "Meetup atualizado com sucesso!", + "Meetup bearbeiten": "Editar Meetup", + "Ersteller des Meetups": "Criador do Meetup", + "Wann dieses Meetup erstellt wurde": "Quando este Meetup foi criado", + "Meetup aktualisieren": "Atualizar Meetup", + "Kalender-Stream-URL kopieren": "Copiar URL do stream de calendário", + "Suche nach Meetups...": "Buscar Meetups...", + "Mehr Informationen": "Mais informações", + "Teilnahme": "Participação", + "Du bist nicht eingloggt und musst deshalb den Namen selbst eintippen.": "Você não está logado e precisa digitar o nome manualmente.", + "Dein Name": "Seu nome", + "Name eingeben": "Digite o nome", + "Ich komme": "Eu vou", + "Absagen": "Desistir", + "Zurück zum Meetup": "Voltar ao Meetup", + "Über uns": "Sobre nós", + "Kontakt & Links": "Contato e links", + "Standort": "Localização", + "Zoom = STRG+Scroll": "Zoom = CTRL+Scroll", + "Öffnen/RSVP": "Abrir/RSVP", + "Update the appearance settings for your account": "Atualizar as configurações de aparência da sua conta", + "Light": "Claro", + "Dark": "Escuro", + "System": "Sistema", + "Delete account": "Deletar conta", + "Delete your account and all of its resources": "Deletar sua conta e todos os seus recursos", + "Are you sure you want to delete your account?": "Tem certeza de que deseja deletar sua conta?", + "Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.": "Depois que sua conta for deletada, todos os seus recursos e dados serão permanentemente deletados. Por favor, digite sua senha para confirmar que deseja permanetemente deletar sua conta.", + "Update password": "Atualizar senha", + "Ensure your account is using a long, random password to stay secure": "Garanta que sua conta esteja usando uma senha longa e aleatória para permanecer segura", + "Current password": "Senha atual", + "New password": "Nova senha", + "Confirm Password": "Confirmar senha", + "Save": "Salvar", + "Update your name and email address": "Atualize seu nome e endereço de e-mail", + "Your email address is unverified.": "Seu endereço de e-mail não foi verificado.", + "Click here to re-send the verification email.": "Clique aqui para reenviar o e-mail de verificação.", + "A new verification link has been sent to your email address.": "Um novo link de verificação foi enviado para seu endereço de e-mail.", + "Zeitzone": "Fuso horário", + "Wähle deine Zeitzone aus...": "Escolha seu fuso horário...", + "Spracheinstellungen": "Configurações de idioma", + "Wähle deine Sprache aus...": "Escolha seu idioma...", + "Zeitzone erfolgreich aktualisiert": "Fuso horário atualizado com sucesso", + "Wähle deine Zeitzone...": "Escolha seu fuso horário...", + "Suche Zeitzone...": "Buscar fuso horário...", + "Venue successfully created!": "Local criado com sucesso!", + "Create Venue": "Criar Local", + "Venue Information": "Informações do Local", + "City": "Cidade", + "Select a city": "Selecionar uma cidade", + "Street": "Rua", + "Venue successfully updated!": "Local atualizado com sucesso!", + "Edit Venue": "Editar Local", + "Update Venue": "Atualizar Local", + "Venues": "Locais", + "Search venues...": "Buscar locais...", + "Bitcoin Meetups": "Bitcoin Meetups", + "Alle Meetups anzeigen": "Mostrar todos os Meetups", + "Kartenansicht öffnen": "Abrir vista do mapa", + "Login": "Login", + "Verbinde dich mit Bitcoinern in deiner Nähe": "Conecte-se com bitcoiners perto de você", + "Finde deine lokale Community": "Encontre sua comunidade local", + "Manage your profile and account settings": "Gerencie seu perfil e configurações de conta" +} diff --git a/public/img/domains/lat.png b/public/img/domains/lat.png new file mode 100644 index 0000000..f1c459e Binary files /dev/null and b/public/img/domains/lat.png differ diff --git a/public/img/domains/nl-NL.jpg b/public/img/domains/nl-NL.jpg new file mode 100644 index 0000000..b41bdc8 Binary files /dev/null and b/public/img/domains/nl-NL.jpg differ diff --git a/resources/views/components/app-logo-icon.blade.php b/resources/views/components/app-logo-icon.blade.php index 7f0a613..47ffe96 100644 --- a/resources/views/components/app-logo-icon.blade.php +++ b/resources/views/components/app-logo-icon.blade.php @@ -1,16 +1,45 @@ - - - +@php + $langCountry = session('lang_country', 'de-DE'); + $domainImage = asset('img/domains/'.$langCountry.'.jpg'); + if (!file_exists(public_path('img/domains/'.$langCountry.'.jpg'))) { + $langCountry = 'de-DE'; + } + $southAmericanCountries = [ + 'ar-AR', // Argentina + 'bo-BO', // Bolivia + 'br-BR', // Brazil + 'cl-CL', // Chile + 'co-CO', // Colombia + 'ec-EC', // Ecuador + 'gy-GY', // Guyana + 'py-PY', // Paraguay + 'pe-PE', // Peru + 'sr-SR', // Suriname + 'uy-UY', // Uruguay + 've-VE', // Venezuela + ]; + if (in_array($langCountry, $southAmericanCountries, true)) { + $domainImage = asset('img/domains/lat.png'); + } +@endphp + +@if($langCountry === 'de-DE') + + + + + + - - - - + +@else + {{ $langCountry }} +@endif diff --git a/resources/views/components/einundzwanzig/language-selector.blade.php b/resources/views/components/einundzwanzig/language-selector.blade.php index 71faf10..39dcecc 100644 --- a/resources/views/components/einundzwanzig/language-selector.blade.php +++ b/resources/views/components/einundzwanzig/language-selector.blade.php @@ -10,11 +10,25 @@ @php - $languages = [ + // Scan lang folder for available languages + $availableLanguages = collect(glob(base_path('lang/*.json'))) + ->map(fn($file) => pathinfo($file, PATHINFO_FILENAME)) + ->toArray(); + + $allLanguages = [ 'de' => ['name' => 'Deutsch', 'countries' => ['de-DE', 'de-AT', 'de-CH']], 'en' => ['name' => 'English', 'countries' => ['en-GB', 'en-US', 'en-AU', 'en-CA']], 'es' => ['name' => 'Español', 'countries' => ['es-ES', 'es-CL', 'es-CO']], + 'nl' => ['name' => 'Nederlands', 'countries' => ['nl-NL', 'nl-BE']], + 'pt' => ['name' => 'Português', 'countries' => ['pt-PT']], ]; + + // Filter languages based on available JSON files and allowed languages + $languages = array_filter($allLanguages, function($data, $key) use ($availableLanguages) { + return in_array($key, $availableLanguages) && + count(array_intersect($data['countries'], config('lang-country.allowed'))) > 0; + }, ARRAY_FILTER_USE_BOTH); + $currentLangCountry = session('lang_country', config('lang-country.fallback')); @endphp diff --git a/resources/views/livewire/auth/confirm-password.blade.php b/resources/views/livewire/auth/confirm-password.blade.php index fb75ef3..11e1ad5 100644 --- a/resources/views/livewire/auth/confirm-password.blade.php +++ b/resources/views/livewire/auth/confirm-password.blade.php @@ -32,7 +32,7 @@ class extends Component { session(['auth.password_confirmed_at' => time()]); - $this->redirectIntended(default: route('dashboard', ['country' => str(session('lang_country', 'de'))->after('-')->lower()], absolute: false), navigate: true); + $this->redirectIntended(default: route('dashboard', ['country' => str(session('lang_country', config('app.domain_country')))->after('-')->lower()], absolute: false), navigate: true); } }; ?> diff --git a/resources/views/livewire/auth/login.blade.php b/resources/views/livewire/auth/login.blade.php index 76e2fd2..6d7c70c 100644 --- a/resources/views/livewire/auth/login.blade.php +++ b/resources/views/livewire/auth/login.blade.php @@ -36,9 +36,12 @@ class extends Component { public ?string $url = null; public ?string $lnurl = null; public ?string $qrCode = null; + public string $currentLangCountry = 'de-DE'; public function mount(): void { + $this->currentLangCountry = session('lang_country'); + // Nur beim ersten Mount initialisieren if ($this->k1 === null) { $this->k1 = bin2hex(str()->random(32)); @@ -64,7 +67,7 @@ class extends Component { Auth::loginUsingId($user->id); Session::regenerate(); $this->redirectIntended( - default: route('dashboard', ['country' => str(session('lang_country', 'de'))->after('-')->lower()], absolute: false), + default: route('dashboard', ['country' => str(session('lang_country', config('app.domain_country')))->after('-')->lower()], absolute: false), navigate: true, ); return; @@ -85,9 +88,12 @@ class extends Component { RateLimiter::clear($this->throttleKey()); Session::regenerate(); + session([ + 'lang_country' => $this->currentLangCountry, + ]); $this->redirectIntended( - default: route('dashboard', ['country' => str(session('lang_country', 'de'))->after('-')->lower()], absolute: false), + default: route('dashboard', ['country' => str(session('lang_country', config('app.domain_country')))->after('-')->lower()], absolute: false), navigate: true ); } @@ -134,8 +140,12 @@ class extends Component { \App\Models\User::find(1) ->notify(new ModelCreatedNotification($user, 'users')); auth()->login($user); + Session::regenerate(); + session([ + 'lang_country' => $this->currentLangCountry, + ]); - return to_route('dashboard', ['country' => str(session('lang_country', 'de'))->after('-')->lower()]); + return to_route('dashboard', ['country' => str(session('lang_country', config('app.domain_country')))->after('-')->lower()]); } return true; diff --git a/resources/views/livewire/auth/register.blade.php b/resources/views/livewire/auth/register.blade.php index 795e595..83e8ab1 100644 --- a/resources/views/livewire/auth/register.blade.php +++ b/resources/views/livewire/auth/register.blade.php @@ -35,7 +35,7 @@ class extends Component { Auth::login($user); - $this->redirectIntended(route('dashboard', ['country' => str(session('lang_country', 'de'))->after('-')->lower()],absolute: false), navigate: true); + $this->redirectIntended(route('dashboard', ['country' => str(session('lang_country', config('app.domain_country')))->after('-')->lower()],absolute: false), navigate: true); } }; ?> diff --git a/resources/views/livewire/auth/verify-email.blade.php b/resources/views/livewire/auth/verify-email.blade.php index d363368..6a0ea49 100644 --- a/resources/views/livewire/auth/verify-email.blade.php +++ b/resources/views/livewire/auth/verify-email.blade.php @@ -17,7 +17,7 @@ class extends Component { public function sendVerification(): void { if (Auth::user()->hasVerifiedEmail()) { - $this->redirectIntended(default: route('dashboard', ['country' => str(session('lang_country', 'de'))->after('-')->lower()],absolute: false), navigate: true); + $this->redirectIntended(default: route('dashboard', ['country' => str(session('lang_country', config('app.domain_country')))->after('-')->lower()],absolute: false), navigate: true); return; } diff --git a/resources/views/livewire/cities/index.blade.php b/resources/views/livewire/cities/index.blade.php index 3e247ee..c4de172 100644 --- a/resources/views/livewire/cities/index.blade.php +++ b/resources/views/livewire/cities/index.blade.php @@ -17,7 +17,7 @@ class extends Component { public function mount(): void { - $this->country = request()->route('country'); + $this->country = request()->route('country', config('app.domain_country')); } public function with(): array diff --git a/resources/views/livewire/country/chooser.blade.php b/resources/views/livewire/country/chooser.blade.php index 9802699..fd742e3 100644 --- a/resources/views/livewire/country/chooser.blade.php +++ b/resources/views/livewire/country/chooser.blade.php @@ -9,7 +9,7 @@ new class extends Component { public function mount(): void { - $this->currentCountry = request()->route('country', 'de'); + $this->currentCountry = request()->route('country', config('app.domain_country')); $this->currentRouteName = request()->route()->getName(); $this->currentRouteParams = request()->route()->parameters(); } diff --git a/resources/views/livewire/courses/create-edit-events.blade.php b/resources/views/livewire/courses/create-edit-events.blade.php index 959f66b..20afdc1 100644 --- a/resources/views/livewire/courses/create-edit-events.blade.php +++ b/resources/views/livewire/courses/create-edit-events.blade.php @@ -37,7 +37,7 @@ class extends Component { public function mount(): void { - $this->country = request()->route('country'); + $this->country = request()->route('country', config('app.domain_country')); $timezone = auth()->user()->timezone ?? 'Europe/Berlin'; if ($this->event) { diff --git a/resources/views/livewire/courses/index.blade.php b/resources/views/livewire/courses/index.blade.php index e3f1d36..5df937f 100644 --- a/resources/views/livewire/courses/index.blade.php +++ b/resources/views/livewire/courses/index.blade.php @@ -17,7 +17,7 @@ class extends Component { public function mount(): void { - $this->country = request()->route('country'); + $this->country = request()->route('country', config('app.domain_country')); } public function with(): array diff --git a/resources/views/livewire/courses/landingpage.blade.php b/resources/views/livewire/courses/landingpage.blade.php index 76f892a..7b42676 100644 --- a/resources/views/livewire/courses/landingpage.blade.php +++ b/resources/views/livewire/courses/landingpage.blade.php @@ -17,7 +17,7 @@ class extends Component { public function mount(): void { - $this->country = request()->route('country'); + $this->country = request()->route('country', config('app.domain_country')); } public function with(): array diff --git a/resources/views/livewire/dashboard.blade.php b/resources/views/livewire/dashboard.blade.php index fb04b03..0fe61d1 100644 --- a/resources/views/livewire/dashboard.blade.php +++ b/resources/views/livewire/dashboard.blade.php @@ -18,7 +18,7 @@ class extends Component { public function mount(): void { - $this->country = request()->route('country'); + $this->country = request()->route('country', config('app.domain_country')); } public function addMeetup() diff --git a/resources/views/livewire/lecturers/index.blade.php b/resources/views/livewire/lecturers/index.blade.php index 17269e6..768aae8 100644 --- a/resources/views/livewire/lecturers/index.blade.php +++ b/resources/views/livewire/lecturers/index.blade.php @@ -17,7 +17,7 @@ class extends Component { public function mount(): void { - $this->country = request()->route('country'); + $this->country = request()->route('country', config('app.domain_country')); } public function with(): array diff --git a/resources/views/livewire/meetups/create-edit-events.blade.php b/resources/views/livewire/meetups/create-edit-events.blade.php index 5c6ff78..736b8ca 100644 --- a/resources/views/livewire/meetups/create-edit-events.blade.php +++ b/resources/views/livewire/meetups/create-edit-events.blade.php @@ -31,7 +31,7 @@ class extends Component { public function mount(): void { - $this->country = request()->route('country'); + $this->country = request()->route('country', config('app.domain_country')); $timezone = auth()->user()->timezone ?? 'Europe/Berlin'; if ($this->event) { diff --git a/resources/views/livewire/meetups/index.blade.php b/resources/views/livewire/meetups/index.blade.php index 83ffa64..2eff688 100644 --- a/resources/views/livewire/meetups/index.blade.php +++ b/resources/views/livewire/meetups/index.blade.php @@ -17,7 +17,7 @@ class extends Component { public function mount(): void { - $this->country = request()->route('country'); + $this->country = request()->route('country', config('app.domain_country')); } public function with(): array diff --git a/resources/views/livewire/meetups/landingpage-event.blade.php b/resources/views/livewire/meetups/landingpage-event.blade.php index fe5bfe5..317cb43 100644 --- a/resources/views/livewire/meetups/landingpage-event.blade.php +++ b/resources/views/livewire/meetups/landingpage-event.blade.php @@ -25,7 +25,7 @@ class extends Component { public function mount(): void { - $this->country = request()->route('country'); + $this->country = request()->route('country', config('app.domain_country')); $this->name = auth()->user()->name ?? ''; $this->loadAttendees(); } diff --git a/resources/views/livewire/meetups/landingpage.blade.php b/resources/views/livewire/meetups/landingpage.blade.php index 196d10b..a1176af 100644 --- a/resources/views/livewire/meetups/landingpage.blade.php +++ b/resources/views/livewire/meetups/landingpage.blade.php @@ -17,7 +17,7 @@ class extends Component { public function mount(): void { - $this->country = request()->route('country'); + $this->country = request()->route('country', config('app.domain_country')); } public function with(): array diff --git a/resources/views/livewire/meetups/map.blade.php b/resources/views/livewire/meetups/map.blade.php index 29bd86f..0d1d563 100644 --- a/resources/views/livewire/meetups/map.blade.php +++ b/resources/views/livewire/meetups/map.blade.php @@ -16,7 +16,7 @@ class extends Component { public function mount(): void { - $this->country = request()->route('country'); + $this->country = request()->route('country', config('app.domain_country')); $geoCountry = \Lwwcas\LaravelCountries\Models\Country::query() ->where('iso_alpha_2', str($this->country)->upper()) ->first() diff --git a/resources/views/livewire/settings/profile.blade.php b/resources/views/livewire/settings/profile.blade.php index 776a445..bf92acb 100644 --- a/resources/views/livewire/settings/profile.blade.php +++ b/resources/views/livewire/settings/profile.blade.php @@ -64,7 +64,7 @@ class extends Component { $user = Auth::user(); if ($user->hasVerifiedEmail()) { - $this->redirectIntended(default: route('dashboard', ['country' => str(session('lang_country', 'de'))->after('-')->lower()],absolute: false)); + $this->redirectIntended(default: route('dashboard', ['country' => str(session('lang_country', config('app.domain_country')))->after('-')->lower()],absolute: false)); return; } @@ -127,11 +127,22 @@ class extends Component {
@php - $languages = [ + // Scan lang folder for available languages + $availableLanguages = collect(glob(base_path('lang/*.json'))) + ->map(fn($file) => pathinfo($file, PATHINFO_FILENAME)) + ->toArray(); + + $allLanguages = [ 'de' => ['name' => 'Deutsch', 'countries' => ['de-DE', 'de-AT', 'de-CH']], 'en' => ['name' => 'English', 'countries' => ['en-GB', 'en-US', 'en-AU', 'en-CA']], 'es' => ['name' => 'Español', 'countries' => ['es-ES', 'es-CL', 'es-CO']], + 'nl' => ['name' => 'Nederlands', 'countries' => ['nl-NL', 'nl-BE']], + 'pt' => ['name' => 'Português', 'countries' => ['pt-PT', 'pt-BR']], ]; + + // Filter languages based on available JSON files + $languages = array_filter($allLanguages, fn($key) => in_array($key, $availableLanguages), ARRAY_FILTER_USE_KEY); + $currentLangCountry = session('lang_country', config('lang-country.fallback')); @endphp diff --git a/resources/views/livewire/venues/index.blade.php b/resources/views/livewire/venues/index.blade.php index 6e0035d..663a0af 100644 --- a/resources/views/livewire/venues/index.blade.php +++ b/resources/views/livewire/venues/index.blade.php @@ -17,7 +17,7 @@ class extends Component { public function mount(): void { - $this->country = request()->route('country'); + $this->country = request()->route('country', config('app.domain_country')); } public function with(): array diff --git a/resources/views/livewire/welcome.blade.php b/resources/views/livewire/welcome.blade.php index 8f07f12..75c3e4a 100644 --- a/resources/views/livewire/welcome.blade.php +++ b/resources/views/livewire/welcome.blade.php @@ -13,12 +13,12 @@ class extends Component { public function goToMeetups(): void { - $this->redirect(route('meetups.index', ['country' => str(session('lang_country', 'de'))->after('-')->lower()]), navigate: true); + $this->redirect(route('meetups.index', ['country' => str(session('lang_country', config('app.domain_country')))->after('-')->lower()]), navigate: true); } public function goToMap(): void { - $this->redirect(route('meetups.map', ['country' => str(session('lang_country', 'de'))->after('-')->lower()]), navigate: true); + $this->redirect(route('meetups.map', ['country' => str(session('lang_country', config('app.domain_country')))->after('-')->lower()]), navigate: true); } }; ?> @@ -60,7 +60,7 @@ class extends Component { {{ __('Kartenansicht öffnen') }} - {{ __('Login') }} diff --git a/routes/web.php b/routes/web.php index 247b1ff..1d4dc23 100644 --- a/routes/web.php +++ b/routes/web.php @@ -48,6 +48,12 @@ Route::middleware(['auth']) return redirect('/de/dashboard'); // Zu /de weiterleiten }); +Route::middleware([]) + ->prefix('/{country:code?}') + ->group(function () { + Volt::route('dashboard', 'dashboard')->name('dashboard'); + }); + Route::middleware([]) ->prefix('/{country:code}') ->group(function () { @@ -83,7 +89,6 @@ Route::middleware([]) Route::middleware(['auth']) ->prefix('/{country:code}') ->group(function () { - Volt::route('dashboard', 'dashboard')->name('dashboard'); Volt::route('meetup-create', 'meetups.create')->name('meetups.create'); Volt::route('meetup-edit/{meetup}', 'meetups.edit')->name('meetups.edit'); Volt::route('meetup/{meetup}/events/create', 'meetups.create-edit-events')->name('meetups.events.create');