Enhance user profile and world travel pages with improved UI and functionality

- Updated user profile page to include achievement calculations and enhanced styling for user information and statistics.
- Added icons for better visual representation of user stats and achievements.
- Improved layout for displaying adventures and collections with conditional rendering for empty states.
- Refactored world travel page to include search and filter functionality for cities, with a sidebar for progress and stats.
- Implemented completion percentage and progress bars for visited cities.
- Enhanced map integration with markers for visited and not visited cities, including toggle options for map labels.
This commit is contained in:
Sean Morley
2025-06-14 11:10:59 -04:00
parent d4c76f8718
commit 151c76dbd1
21 changed files with 2209 additions and 2461 deletions

View File

@@ -12,30 +12,7 @@
"generic_attributions": "Melden Sie sich bei Adventurelog an, um Zuschreibungen für aktivierte Integrationen und Dienste anzuzeigen."
},
"adventures": {
"activities": {
"activity": "Aktivität 🏄",
"art_museums": "Kunst & Museen",
"attraction": "Sehenswürdigkeit 🎢",
"culture": "Kultur 🎭",
"dining": "Essen 🍽️",
"event": "Veranstaltung 🎉",
"festivals": "Festivals 🎪",
"fitness": "Fitness 🏋️",
"general": "Allgemein 🌍",
"hiking": "Wandern 🥾",
"historical_sites": "Historische Denkmäler 🏛️",
"lodging": "Herberge 🛌",
"music_concerts": "Musik & Konzerte",
"nightlife": "Nachtleben 🌃",
"other": "Sonstiges",
"outdoor": "Outdoor 🏞️",
"shopping": "Einkaufen 🛍️",
"spiritual_journeys": "Spirituelle Reisen 🧘‍♀️",
"transportation": "Transport 🚗",
"volunteer_work": "Ehrenamt 🤝",
"water_sports": "Wassersport 🚤",
"wildlife": "Wildtiere 🦒"
},
"activities": {},
"add_to_collection": "Zur Sammlung hinzufügen",
"adventure_delete_confirm": "Sind Sie sicher, dass Sie dieses Abenteuer löschen möchten? \nDiese Aktion kann nicht rückgängig gemacht werden.",
"collection_link_error": "Fehler beim Verknüpfen des Abenteuers mit der Sammlung",
@@ -49,8 +26,6 @@
"remove_from_collection": "Aus Sammlung entfernen",
"adventure": "Abenteuer",
"adventure_delete_success": "Abenteuer erfolgreich gelöscht!",
"adventure_details": "Abenteuerdetails",
"adventure_type": "Abenteuertyp",
"archive": "Archiv",
"archived": "Archiviert",
"archived_collection_message": "Sammlung erfolgreich archiviert!",
@@ -59,7 +34,6 @@
"cancel": "Abbrechen",
"category_filter": "Kategoriefilter",
"clear": "zurücksetzen",
"close_filters": "Filter schließen",
"collection": "Sammlung",
"collection_adventures": "Abenteuer aus Sammlung berücksichtigen",
"count_txt": "Suchergebnisse",
@@ -104,10 +78,8 @@
"visits": "Besuche",
"wiki_image_error": "Fehler beim Abrufen des Bildes aus Wikipedia",
"actions": "Aktionen",
"activity": "Aktivität",
"activity_types": "Aktivitätstypen",
"add": "Hinzufügen",
"add_an_activity": "Aktivität hinzufügen",
"add_notes": "Notizen hinzufügen",
"adventure_create_error": "Das Abenteuer konnte nicht erstellt werden",
"adventure_created": "Abenteuer erstellt",
@@ -129,24 +101,20 @@
"location": "Standort",
"location_information": "Standortinformationen",
"my_images": "Meine Bilder",
"my_visits": "Meine Besuche",
"new_adventure": "Neues Abenteuer",
"no_description_found": "Keine Beschreibung gefunden",
"no_images": "Keine Bilder",
"no_location": "Bitte geben Sie einen Ort ein",
"no_results": "Keine Ergebnisse gefunden",
"no_start_date": "Bitte geben Sie ein Startdatum ein",
"public_adventure": "Öffentliches Abenteuer",
"remove": "Entfernen",
"save_next": "Speichern & weiter",
"search_for_location": "Nach einem Ort suchen",
"search_results": "Suchergebnisse",
"see_adventures": "Siehe Abenteuer",
"select_adventure_category": "Wählen Sie die Abenteuerkategorie",
"share_adventure": "Teilen Sie dieses Abenteuer!",
"start_date": "Startdatum",
"upload_image": "Bild hochladen",
"upload_images_here": "Laden Sie hier Bilder hoch",
"url": "URL",
"warning": "Warnung",
"wiki_desc": "Ruft einen Auszug aus einem Wikipedia-Artikel ab, der zum Namen des Abenteuers passt.",
@@ -154,7 +122,6 @@
"adventure_not_found": "Keine Abenteuer vorhanden. \nFügen Sie welche über die Plus-Schaltfläche unten rechts hinzu oder versuchen Sie, die Filter zu ändern!",
"all": "Alle",
"error_updating_regions": "Fehler beim Aktualisieren der Regionen",
"mark_region_as_visited": "Region {region}, {country} als besucht markieren?",
"mark_visited": "als besucht markieren",
"my_adventures": "Meine Abenteuer",
"no_adventures_found": "Keine Abenteuer gefunden",
@@ -177,7 +144,6 @@
"link_new": "Neuer Link...",
"linked_adventures": "Verknüpfte Abenteuer",
"links": "Links",
"no_end_date": "Bitte ein Enddatum eingeben",
"note": "Notiz",
"notes": "Notizen",
"nothing_planned": "Für heute ist nichts geplant. \nGenieße die Reise!",
@@ -217,7 +183,6 @@
"starting_airport": "Startflughafen",
"to": "Nach",
"transportation_delete_confirm": "Sind Sie sicher, dass Sie diesen Transport löschen möchten? \nDies lässt sich nicht rückgängig machen.",
"show_map": "Karte anzeigen",
"will_be_marked": "wird als besucht markiert, sobald das Abenteuer gespeichert wird.",
"cities_updated": "Städte aktualisiert",
"create_adventure": "Erstelle Abenteuer",
@@ -233,10 +198,7 @@
"attachments": "Anhänge",
"gpx_tip": "Laden Sie GPX-Dateien als Anhänge hoch, um sie auf der Karte anzuzeigen!",
"images": "Bilder",
"primary": "Primär",
"upload": "Hochladen",
"view_attachment": "Anhang anzeigen",
"of": "von",
"city": "Stadt",
"display_name": "Anzeigename",
"location_details": "Standortdetails",
@@ -247,16 +209,13 @@
"lodging_information": "Informationen zur Unterkunft",
"price": "Preis",
"reservation_number": "Reservierungsnummer",
"welcome_map_info": "Frei zugängliche Abenteuer auf diesem Server",
"open_in_maps": "In Karten öffnen",
"all_day": "Den ganzen Tag",
"collection_no_start_end_date": "Durch das Hinzufügen eines Start- und Enddatums zur Sammlung werden Reiseroutenplanungsfunktionen auf der Sammlungsseite freigegeben.",
"date_itinerary": "Datumstrecke",
"no_ordered_items": "Fügen Sie der Sammlung Elemente mit Daten hinzu, um sie hier zu sehen.",
"ordered_itinerary": "Reiseroute bestellt",
"additional_info": "Weitere Informationen",
"invalid_date_range": "Ungültiger Datumsbereich",
"sunrise_sunset": "Sonnenaufgang",
"timezone": "Zeitzone",
"no_visits": "Keine Besuche",
"arrival_timezone": "Ankunftszeitzone",
@@ -294,7 +253,6 @@
"about": "Über AdventureLog",
"adventures": "Abenteuer",
"collections": "Sammlungen",
"discord": "Discord",
"documentation": "Dokumentation",
"greeting": "Hallo",
"logout": "Abmelden",
@@ -305,16 +263,7 @@
"settings": "Einstellungen",
"shared_with_me": "Mit mir geteilt",
"theme_selection": "Design",
"themes": {
"aqua": "Aqua",
"dark": "Dunkel",
"forest": "Wald",
"light": "Hell",
"night": "Nacht",
"aestheticDark": "Ästhetisches Dunkel",
"aestheticLight": "Ästhetisches Hell",
"northernLights": "Nordlichter"
},
"themes": {},
"users": "Benutzer",
"worldtravel": "Weltreisen",
"my_tags": "Meine Schlagworte",
@@ -339,10 +288,7 @@
"profile_picture": "Profilbild",
"public_profile": "Öffentliches Profil",
"public_tooltip": "Mit einem öffentlichen Profil können Benutzer Sammlungen mit Ihnen teilen und Ihr Profil auf der Benutzerseite anzeigen.",
"email_required": "E-Mail ist erforderlich",
"both_passwords_required": "Beide Passwörter sind erforderlich",
"new_password": "Neues Passwort",
"reset_failed": "Passwort konnte nicht zurückgesetzt werden",
"or_3rd_party": "Oder melden Sie sich bei einem Drittanbieter an",
"no_public_adventures": "Keine öffentlichen Abenteuer gefunden",
"no_public_collections": "Keine öffentlichen Sammlungen gefunden",
@@ -362,14 +308,12 @@
"not_visited": "Nicht besucht",
"num_countries": "Länder gefunden",
"partially_visited": "Teilweise besucht",
"all_visited": "Sie haben alle Regionen besucht in",
"cities": "Städte",
"failed_to_mark_visit": "Fehler beim Markieren des Besuchs von",
"failed_to_remove_visit": "Fehler beim Entfernen des Besuchs",
"marked_visited": "als besucht markiert",
"no_cities_found": "Keine Städte gefunden",
"region_failed_visited": "Die Region konnte nicht als besucht markiert werden",
"region_stats": "Regionsstatistiken",
"regions_in": "Regionen in",
"removed": "entfernt",
"view_cities": "Städte anzeigen",
@@ -378,7 +322,6 @@
},
"settings": {
"account_settings": "Benutzerkonto",
"current_email": "Bisherige E-Mail",
"email_change": "E-Mail ändern",
"new_email": "Neue E-Mail",
"new_password": "Neues Passwort",
@@ -390,27 +333,18 @@
"update_success": "Einstellungen erfolgreich aktualisiert!",
"change_password": "Kennwort ändern",
"confirm_new_password": "Bestätigen Sie das neue Passwort",
"invalid_token": "Das Token ist ungültig oder abgelaufen",
"login_redir": "Anschließend erfolgt eine Weiterleitung zur Anmeldeseite.",
"missing_email": "Bitte geben Sie eine E-Mail-Adresse ein",
"password_does_not_match": "Passwörter stimmen nicht überein",
"password_is_required": "Passwort ist erforderlich",
"possible_reset": "Wenn die von Ihnen angegebene E-Mail-Adresse mit einem Konto verknüpft ist, erhalten Sie eine E-Mail mit Anweisungen zum Zurücksetzen Ihres Passworts!",
"reset_password": "Passwort zurücksetzen",
"submit": "Absenden",
"token_required": "Zum Zurücksetzen des Passworts sind Token und UID erforderlich.",
"about_this_background": "Über diesen Hintergrund",
"join_discord": "Treten Sie dem Discord bei",
"join_discord_desc": "um Ihre eigenen Fotos zu teilen. \nVeröffentlichen Sie sie im",
"photo_by": "Foto aufgenommen von",
"change_password_error": "Das Passwort kann nicht geändert werden. \nUngültiges aktuelles oder neues Passwort.",
"current_password": "Aktuelles Passwort",
"password_change_lopout_warning": "Nach der Passwortänderung werden Sie abgemeldet.",
"authenticator_code": "Authentifizierungscode",
"copy": "Kopie",
"disable_mfa": "Deaktivieren Sie MFA",
"email_added": "E-Mail hinzugefügt!",
"email_added_error": "Fehler beim Hinzufügen der E-Mail",
"email_removed": "E-Mail entfernt!",
"email_removed_error": "Fehler beim Entfernen der E-Mail",
"email_set_primary": "E-Mail als primäre E-Mail-Adresse festgelegt!",
@@ -420,16 +354,12 @@
"email_verified_error": "Fehler bei der Verifizierung der E-Mail-Adresse",
"email_verified_success": "Ihre E-Mail-Adresse wurde bestätigt. \nSie können sich jetzt anmelden.",
"enable_mfa": "Aktivieren Sie MFA",
"error_change_password": "Fehler beim Ändern des Passworts. \nBitte überprüfen Sie Ihr aktuelles Passwort und versuchen Sie es erneut.",
"generic_error": "Bei der Bearbeitung Ihrer Anfrage ist ein Fehler aufgetreten.",
"invalid_code": "Ungültiger MFA-Code",
"invalid_credentials": "Ungültiger Benutzername oder Passwort",
"make_primary": "Als primär festlegen",
"mfa_disabled": "MFA-Authentifizierung deaktiviert!",
"mfa_enabled": "MFA-Authentifizierung aktiviert!",
"mfa_not_enabled": "MFA nicht aktiviert",
"mfa_page_title": "Multi-Faktor-Authentifizierung (MFA)",
"mfa_required": "MFA erforderlich",
"no_emai_set": "Keine E-Mail-Adresse festgelegt",
"not_verified": "Nicht verifiziert",
"primary": "Primär",
@@ -440,25 +370,13 @@
"verify": "Verifizieren",
"verify_email_error": "Fehler bei der E-Mail-Bestätigung. \nVersuchen Sie es in ein paar Minuten noch einmal.",
"verify_email_success": "E-Mail-Bestätigung gesendet!",
"add_email_blocked": "Sie können keine E-Mail-Adresse zu einem Konto hinzufügen, das durch die Zwei-Faktor-Authentifizierung (MFA) geschützt ist.",
"required": "Dieses Feld ist erforderlich",
"csrf_failed": "Fehler beim Abrufen des CSRF-Tokens",
"duplicate_email": "Diese E-Mail-Adresse wird bereits verwendet.",
"email_taken": "Diese E-Mail-Adresse wird bereits verwendet.",
"username_taken": "Dieser Benutzername wird bereits verwendet.",
"administration_settings": "Administrationseinstellungen",
"documentation_link": "Dokumentation",
"launch_account_connections": "Kontoverbindungen starten",
"launch_administration_panel": "Administrationseinstellungen öffnen",
"no_verified_email_warning": "Sie müssen über eine verifizierte E-Mail-Adresse verfügen, um die Zwei-Faktor-Authentifizierung zu aktivieren.",
"social_auth_desc": "Aktivieren oder deaktivieren Sie soziale und OIDC-Authentifizierungsanbieter für Ihr Konto. \nMit diesen Verbindungen können Sie sich bei selbst gehosteten Authentifizierungsidentitätsanbietern wie Authentik oder Drittanbietern wie GitHub anmelden.",
"social_auth_desc_2": "Diese Einstellungen werden auf dem AdventureLog-Server verwaltet und müssen vom Administrator manuell aktiviert werden.",
"social_oidc_auth": "Soziale und OIDC-Authentifizierung",
"add_email": "E-Mail hinzufügen",
"password_too_short": "Das Passwort muss mindestens 6 Zeichen lang sein",
"disable_password": "Passwort deaktivieren",
"password_disable": "Deaktivieren Sie die Passwortauthentifizierung",
"password_disable_desc": "Durch Deaktivieren der Kennwortauthentifizierung werden Sie daran hindern, sich mit einem Kennwort anzumelden. \nSie müssen einen sozialen oder OIDC-Anbieter verwenden, um sich anzumelden. Sollte Ihr sozialer Anbieter nicht verknüpft werden, wird die Kennwortauthentifizierung automatisch wieder aufgenommen, auch wenn diese Einstellung deaktiviert ist.",
"password_disable_warning": "Derzeit ist die Kennwortauthentifizierung deaktiviert. \nAnmelden Sie über einen sozialen oder OIDC -Anbieter erforderlich.",
"password_disabled": "Kennwortauthentifizierung deaktiviert",
"password_disabled_error": "Fehler beim Deaktivieren der Kennwortauthentifizierung. \nStellen Sie sicher, dass ein sozialer oder OIDC -Anbieter mit Ihrem Konto verknüpft ist.",
@@ -477,7 +395,6 @@
"advanced_settings_desc": "Erweiterte Konfigurations- und Entwicklungstools",
"all_rights_reserved": "Alle Rechte vorbehalten.",
"app_version": "App -Version",
"confirm_new_password_desc": "Neues Passwort bestätigen",
"connected": "Verbunden",
"debug_information": "Informationen debuggen",
"disabled": "Deaktiviert",
@@ -514,31 +431,24 @@
"social_auth_setup": "Social Authentication Setup",
"staff_status": "Personalstatus",
"staff_user": "Personalbenutzer",
"profile_info_desc": "Aktualisieren Sie Ihre persönlichen Daten und Ihr Profilbild",
"email_verified_error_desc": "Ihre E -Mail konnte nicht überprüft werden. \nBitte versuchen Sie es erneut."
"profile_info_desc": "Aktualisieren Sie Ihre persönlichen Daten und Ihr Profilbild"
},
"checklist": {
"add_item": "Eintrag hinzufügen",
"checklist_delete_error": "Fehler beim Löschen der Checkliste",
"checklist_deleted": "Checkliste gelöscht!",
"checklist_editor": "Checklisten-Editor",
"checklist_public": "Diese Checkliste ist öffentlich, da sie sich in einer öffentlichen Sammlung befindet.",
"editing_checklist": "Checkliste bearbeiten",
"failed_to_save": "Checkliste konnte nicht gespeichert werden",
"item": "Eintrag",
"item_already_exists": "Dieser Eintrag existiert bereits",
"item_cannot_be_empty": "Der Eintrag darf nicht leer sein",
"items": "Einträge",
"new_item": "Neuer Eintrag",
"save": "Speichern",
"checklist_viewer": "Checklisten-Viewer",
"new_checklist": "Neue Checkliste"
},
"collection": {
"collection_created": "Sammlung erfolgreich erstellt!",
"collection_edit_success": "Sammlung erfolgreich bearbeitet!",
"create": "Erstellen",
"edit_collection": "Sammlung bearbeiten",
"error_creating_collection": "Fehler beim Erstellen der Sammlung",
"error_editing_collection": "Fehler beim Bearbeiten der Sammlung",
"new_collection": "Neue Sammlung",
@@ -560,12 +470,8 @@
"note_viewer": "Notizenbetrachter"
},
"transportation": {
"date_and_time": "Datum",
"date_time": "Startdatum",
"edit": "Bearbeiten",
"edit_transportation": "Verkehrsmittel bearbeiten",
"end_date_time": "Enddatum",
"error_editing_transportation": "Fehler beim Bearbeiten des Verkehrsmittels",
"flight_number": "Flugnummer",
"from_location": "Vom Standort",
"modes": {
@@ -578,16 +484,11 @@
"plane": "Flugzeug",
"train": "Zug"
},
"transportation_added": "Verkehrsmittel erfolgreich hinzugefügt!",
"transportation_delete_error": "Fehler beim Löschen des Verkehrsmittels",
"transportation_deleted": "Verkehrsmittel erfolgreich gelöscht!",
"transportation_edit_success": "Verkehrsmittel erfolgreich bearbeitet!",
"type": "Typ",
"new_transportation": "Neues Verkehrsmittel",
"provide_start_date": "Bitte geben Sie ein Startdatum an",
"start": "Start",
"to_location": "Zum Standort",
"transport_type": "Verkehrsmittel",
"ending_airport_desc": "Geben Sie den Flughafencode des Zielflughafens ein (z. B. LAX)",
"fetch_location_information": "Standortinformationen abrufen",
"starting_airport_desc": "Geben Sie den Flughafencode des Startflughafens ein (z. B. JFK)"
@@ -634,7 +535,6 @@
"no_categories_found": "Keine Kategorien gefunden.",
"select_category": "Kategorie wählen",
"update_after_refresh": "Die Abenteuerkarten werden aktualisiert, sobald Sie die Seite aktualisieren.",
"add_category": "Kategorie hinzufügen",
"add_new_category": "Neue Kategorie hinzufügen"
},
"dashboard": {
@@ -651,25 +551,14 @@
"api_key": "Immich-API-Schlüssel",
"api_note": "Hinweis: Dies muss die URL zum Immich-API-Server sein, daher endet sie wahrscheinlich mit /api, es sei denn, Sie haben eine benutzerdefinierte Konfiguration.",
"disable": "Deaktivieren",
"enable_immich": "Immich aktivieren",
"imageid_required": "Bild-ID ist erforderlich",
"immich": "Immich",
"immich_desc": "Integrieren Sie Ihr Immich-Konto mit AdventureLog, damit Sie Ihre Fotobibliothek durchsuchen und Fotos für Ihre Abenteuer importieren können.",
"immich_disabled": "Immich-Integration deaktiviert!",
"immich_enabled": "Immich-Integration aktiviert!",
"immich_error": "Fehler beim aktualisieren der Immich-Integration",
"immich_updated": "Immich-Einstellungen erfolgreich aktualisiert!",
"integration_enabled": "Integration aktiviert",
"integration_fetch_error": "Fehler beim Abrufen der Daten aus der Immich-Integration",
"integration_missing": "Im Backend fehlt die Immich-Integration",
"load_more": "Mehr laden",
"no_items_found": "Keine Artikel gefunden",
"query_required": "Bitte geben Sie eine Suchanfrage ein",
"server_down": "Der Immich-Server ist derzeit nicht erreichbar",
"server_url": "Immich-Server-URL",
"update_integration": "Integration updaten",
"immich_integration": "Immich-Integration",
"documentation": "Dokumentation zur Immich-Integration",
"localhost_note": "Hinweis: localhost wird höchstwahrscheinlich nicht funktionieren, es sei denn, Sie haben Docker-Netzwerke entsprechend eingerichtet. \nEs wird empfohlen, die IP-Adresse des Servers oder den Domänennamen zu verwenden.",
"api_key_placeholder": "Geben Sie Ihren Immich -API -Schlüssel ein",
"enable_integration": "Integration aktivieren",
@@ -685,15 +574,10 @@
"validation_error": "Bei der Validierung der Immichintegration trat ein Fehler auf. \nBitte überprüfen Sie Ihre Server -URL- und API -Schlüssel."
},
"recomendations": {
"address": "Adresse",
"contact": "Kontakt",
"phone": "Telefon",
"recommendation": "Empfehlung",
"website": "Webseite",
"recommendations": "Empfehlungen",
"adventure_recommendations": "Abenteuerempfehlungen",
"food": "Essen",
"miles": "Meilen",
"tourism": "Tourismus"
},
"lodging": {
@@ -701,30 +585,17 @@
"bnb": "Bed & Breakfast",
"cabin": "Hütte",
"campground": "Campingplatz",
"check_in": "Check-in",
"check_out": "Check-out",
"date_and_time": "Datum und Uhrzeit",
"edit": "Bearbeiten",
"edit_lodging": "Unterkunft bearbeiten",
"error_editing_lodging": "Fehler beim Bearbeiten der Unterkunft",
"hostel": "Hostel",
"hotel": "Hotel",
"house": "Haus",
"lodging_added": "Unterkunft erfolgreich hinzugefügt!",
"lodging_delete_error": "Fehler beim Löschen der Unterkunft",
"lodging_deleted": "Unterkunft gelöscht!",
"lodging_edit_success": "Unterbringung bearbeitet!",
"lodging_type": "Unterkunftstyp",
"motel": "Motel",
"new_lodging": "Neue Unterkunft",
"other": "Sonstige",
"provide_start_date": "Bitte geben Sie einen Startdatum an",
"reservation_number": "Reservierungsnummer",
"resort": "Ferienanlage",
"start": "Start",
"type": "Typ",
"villa": "Villa",
"current_timezone": "Aktuelle Zeitzone"
"villa": "Villa"
},
"google_maps": {
"google_maps_integration_desc": "Verbinden Sie Ihr Google Maps-Konto, um hochwertige Suchergebnisse und Empfehlungen für Standort zu erhalten."