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

@@ -16,22 +16,12 @@
"logout": "Logg ut",
"about": "Om AdventureLog",
"documentation": "Dokumentasjon",
"discord": "Discord",
"language_selection": "Språk",
"support": "Støtte",
"calendar": "Kalender",
"theme_selection": "Tema-valg",
"admin_panel": "Admin Panel",
"themes": {
"light": "Lyst",
"dark": "Mørkt",
"night": "Natt",
"forest": "Skog",
"aestheticLight": "Estetisk Lyst",
"aestheticDark": "Estetisk Mørkt",
"aqua": "Aqua",
"northernLights": "Nordlys"
}
"themes": {}
},
"about": {
"about": "Om",
@@ -82,9 +72,7 @@
"not_found": "Fant ikke eventyret",
"not_found_desc": "Eventyret du leter etter, ble ikke funnet. Vennligst prøv et annet eventyr eller kom tilbake senere.",
"homepage": "Hjemmeside",
"adventure_details": "Eventyrdetaljer",
"collection": "Samling",
"adventure_type": "Eventyrtype",
"longitude": "Lengdegrad",
"latitude": "Breddegrad",
"visit": "Besøk",
@@ -106,10 +94,8 @@
"date_constrain": "Begrens til samlingsdatoer",
"rating": "Vurdering",
"my_images": "Mine bilder",
"add_an_activity": "Legg til en aktivitet",
"show_region_labels": "Vis regionetiketter",
"no_images": "Ingen bilder",
"upload_images_here": "Last opp bilder her",
"share_adventure": "Del dette eventyret!",
"copy_link": "Kopier lenke",
"image": "Bilde",
@@ -125,7 +111,6 @@
"add": "Legg til",
"save_next": "Lagre og fortsett",
"end_date": "Sluttdato",
"my_visits": "Mine besøk",
"start_date": "Startdato",
"remove": "Fjern",
"location": "Plassering",
@@ -137,8 +122,6 @@
"attachments": "Vedlegg",
"attachment": "Vedlegg",
"images": "Bilder",
"primary": "Primær",
"view_attachment": "Vis vedlegg",
"generate_desc": "Generer beskrivelse",
"public_adventure": "Offentlig eventyr",
"location_information": "Plasseringsinformasjon",
@@ -150,11 +133,9 @@
"filter": "Filter",
"category_filter": "Kategorifilter",
"category": "Kategori",
"select_adventure_category": "Velg eventyrkategori",
"clear": "Tøm",
"my_collections": "Mine samlinger",
"open_filters": "Åpne filtre",
"close_filters": "Lukk filtre",
"archived_collections": "Arkiverte samlinger",
"share": "Del",
"private": "Privat",
@@ -170,7 +151,6 @@
"delete_collection_success": "Samlingen ble slettet!",
"delete_collection_warning": "Er du sikker på at du vil slette denne samlingen? Dette vil også slette alle lenkede eventyr. Denne handlingen kan ikke angres.",
"cancel": "Avbryt",
"of": "av",
"delete_collection": "Slett samling",
"delete_adventure": "Slett eventyr",
"adventure_delete_success": "Eventyret ble slettet!",
@@ -186,13 +166,10 @@
"dates": "Datoer",
"wiki_image_error": "Feil ved henting av bilde fra Wikipedia",
"start_before_end_error": "Startdato må være før sluttdato",
"activity": "Aktivitet",
"actions": "Handlinger",
"no_end_date": "Vennligst angi en sluttdato",
"see_adventures": "Se eventyr",
"image_fetch_failed": "Kunne ikke hente bilde",
"no_location": "Vennligst angi et sted",
"no_start_date": "Vennligst angi en startdato",
"no_description_found": "Fant ingen beskrivelse",
"adventure_created": "Eventyr opprettet",
"adventure_create_error": "Kunne ikke opprette eventyr",
@@ -208,7 +185,6 @@
"display_name": "Visningsnavn",
"adventure_not_found": "Det finnes ingen eventyr å vise. Legg til noen ved å trykke på plusstegnet nederst til høyre, eller prøv å endre filtre!",
"no_adventures_found": "Ingen eventyr funnet",
"mark_region_as_visited": "Merk regionen {region}, {country} som besøkt?",
"mark_visited": "Merk som besøkt",
"error_updating_regions": "Feil ved oppdatering av regioner",
"regions_updated": "regioner oppdatert",
@@ -248,7 +224,6 @@
"will_be_marked": "vil bli markert som besøkt når eventyret er lagret.",
"start": "Start",
"end": "Slutt",
"show_map": "Vis kart",
"emoji_picker": "Emoji-velger",
"download_calendar": "Last ned kalender",
"date_information": "Dato-informasjon",
@@ -268,43 +243,17 @@
"attachment_update_success": "Vedlegg oppdatert!",
"attachment_name": "Vedleggsnavn",
"gpx_tip": "Last opp GPX-filer i vedlegg for å se dem på kartet!",
"welcome_map_info": "Offentlige eventyr på denne serveren",
"attachment_update_error": "Feil ved oppdatering av vedlegg",
"activities": {
"general": "Generelt 🌍",
"outdoor": "Utendørs 🏞️",
"lodging": "Overnatting 🛌",
"dining": "Servering 🍽️",
"activity": "Aktivitet 🏄",
"attraction": "Attraksjon 🎢",
"shopping": "Shopping 🛍️",
"nightlife": "Uteliv 🌃",
"event": "Arrangement 🎉",
"transportation": "Transport 🚗",
"culture": "Kultur 🎭",
"water_sports": "Vannsport 🚤",
"hiking": "Fotturer 🥾",
"wildlife": "Dyreliv 🦒",
"historical_sites": "Historiske steder 🏛️",
"music_concerts": "Musikk og konserter 🎶",
"fitness": "Trening 🏋️",
"art_museums": "Kunst og museer 🎨",
"festivals": "Festivaler 🎪",
"spiritual_journeys": "Spirituelle reiser 🧘‍♀️",
"volunteer_work": "Frivillig arbeid 🤝",
"other": "Annet"
},
"activities": {},
"lodging_information": "Overnattingsinformasjon",
"price": "Pris",
"reservation_number": "Reservasjonsnummer",
"additional_info": "Ytterligere informasjon",
"all_day": "Hele dagen",
"collection_no_start_end_date": "Å legge til en start- og sluttdato til samlingen vil låse opp reiseruteplanleggingsfunksjoner på innsamlingssiden.",
"date_itinerary": "Dato reiserute",
"invalid_date_range": "Ugyldig datoområde",
"no_ordered_items": "Legg til varer med datoer i samlingen for å se dem her.",
"ordered_itinerary": "Bestilt reiserute",
"sunrise_sunset": "Soloppgang",
"timezone": "Tidssone",
"no_visits": "Ingen besøk",
"arrival_timezone": "Ankomst tidssone",
@@ -344,8 +293,6 @@
"failed_to_remove_visit": "Kunne ikke fjerne besøk i",
"marked_visited": "markert som besøkt",
"regions_in": "Regioner i",
"region_stats": "Regionstatistikk",
"all_visited": "Du har besøkt alle regionene i",
"cities": "byer"
},
"auth": {
@@ -363,10 +310,7 @@
"profile_picture": "Profilbilde",
"public_profile": "Offentlig profil",
"public_tooltip": "Med en offentlig profil kan brukere dele samlinger med deg og se profilen din på brukersiden.",
"email_required": "E-post kreves",
"new_password": "Nytt passord (6+ tegn)",
"both_passwords_required": "Begge passord er påkrevd",
"reset_failed": "Kunne ikke tilbakestille passord",
"or_3rd_party": "Eller logg inn med en tredjepartstjeneste",
"no_public_adventures": "Ingen offentlige eventyr funnet",
"no_public_collections": "Ingen offentlige samlinger funnet",
@@ -387,25 +331,16 @@
"new_password": "Nytt passord",
"confirm_new_password": "Bekreft nytt passord",
"email_change": "Bytt e-post",
"current_email": "Nåværende e-post",
"no_email_set": "Ingen e-post angitt",
"new_email": "Ny e-post",
"change_password": "Bytt passord",
"login_redir": "Du blir da omdirigert til innloggingssiden.",
"token_required": "Token og UID kreves for tilbakestilling av passord.",
"reset_password": "Tilbakestill passord",
"possible_reset": "Hvis e-postadressen du oppga er knyttet til en konto, vil du motta en e-post med instruksjoner om å tilbakestille passordet ditt!",
"missing_email": "Vennligst skriv inn en e-postadresse",
"submit": "Send inn",
"password_does_not_match": "Passordene samsvarer ikke",
"password_is_required": "Passord er påkrevd",
"invalid_token": "Token er ugyldig eller utløpt",
"about_this_background": "Om denne bakgrunnen",
"photo_by": "Foto av",
"join_discord": "Bli med på Discord",
"join_discord_desc": "for å dele dine egne bilder. Legg dem ut i #travel-share-kanalen.",
"current_password": "Nåværende passord",
"change_password_error": "Kan ikke endre passord. Ugyldig nåværende passord eller ugyldig nytt passord.",
"password_change_lopout_warning": "Du vil bli logget ut etter å ha endret passordet.",
"generic_error": "En feil oppsto under behandlingen av forespørselen din.",
"email_removed": "E-post fjernet!",
@@ -413,7 +348,6 @@
"verify_email_success": "E-postbekreftelse sendt!",
"verify_email_error": "Feil ved e-postbekreftelse. Prøv igjen om noen minutter.",
"email_added": "E-post lagt til!",
"email_added_error": "Feil ved legging til e-post",
"email_set_primary": "E-post satt som primær!",
"email_set_primary_error": "Feil ved innstilling av primær e-post",
"verified": "Verifisert",
@@ -422,7 +356,6 @@
"make_primary": "Gjør til primær",
"verify": "Verifiser",
"no_emai_set": "Ingen e-post angitt",
"error_change_password": "Feil ved endring av passord. Sjekk ditt nåværende passord og prøv igjen.",
"mfa_disabled": "Tofaktorautentisering er deaktivert!",
"mfa_page_title": "Tofaktorautentisering",
"enable_mfa": "Aktiver MFA",
@@ -438,27 +371,12 @@
"email_verified_success": "E-posten din er verifisert. Du kan nå logge inn.",
"email_verified_error": "Feil ved verifisering av e-post",
"email_verified_erorr_desc": "E-posten din kunne ikke verifiseres. Vennligst prøv igjen.",
"invalid_code": "Ugyldig MFA-kode",
"invalid_credentials": "Ugyldig brukernavn eller passord",
"mfa_required": "Tofaktorautentisering er påkrevd",
"required": "Dette feltet er påkrevd",
"add_email_blocked": "Du kan ikke legge til en e-postadresse på en konto som er beskyttet av tofaktorautentisering.",
"duplicate_email": "Denne e-postadressen er allerede i bruk.",
"csrf_failed": "Kunne ikke hente CSRF-token",
"email_taken": "Denne e-postadressen er allerede i bruk.",
"username_taken": "Dette brukernavnet er allerede i bruk.",
"administration_settings": "Administrasjonsinnstillinger",
"launch_administration_panel": "Åpne administrasjonspanelet",
"social_oidc_auth": "Social og OIDC-autentisering",
"social_auth_desc": "Aktiver eller deaktiver sosiale og OIDC-autentiseringsleverandører for kontoen din. Disse koblingene lar deg logge inn med selvhostede autentiseringstjenester som Authentik eller tredjepartsleverandører som GitHub.",
"social_auth_desc_2": "Disse innstillingene administreres på AdventureLog-serveren og må aktiveres manuelt av administratoren.",
"documentation_link": "Dokumentasjonslenke",
"launch_account_connections": "Åpne kontotilkoblinger",
"password_too_short": "Passordet må være minst 6 tegn",
"add_email": "Legg til e-post",
"password_disable": "Deaktiver passordautentisering",
"password_disable_desc": "Å deaktivere passordautentisering vil hindre deg fra å logge inn med et passord. Du må bruke en sosial eller OIDC-leverandør for å logge inn. Skulle leverandøren din fjernes, vil passordautentisering automatisk bli gjenaktivert, selv om denne innstillingen er deaktivert.",
"disable_password": "Deaktiver passord",
"password_enabled": "Passordautentisering er aktivert",
"password_disabled": "Passordautentisering er deaktivert",
"password_disable_warning": "Akkurat nå er passordautentisering deaktivert. Innlogging via en sosial eller OIDC-leverandør er påkrevd.",
@@ -477,7 +395,6 @@
"advanced_settings_desc": "Avanserte konfigurasjons- og utviklingsverktøy",
"all_rights_reserved": "Alle rettigheter forbeholdt.",
"app_version": "Appversjon",
"confirm_new_password_desc": "Bekreft nytt passord",
"connected": "Tilkoblet",
"debug_information": "Feilsøkingsinformasjon",
"disabled": "Funksjonshemmet",
@@ -514,8 +431,7 @@
"social_auth_desc_1": "Administrer sosiale påloggingsalternativer og passordinnstillinger",
"social_auth_setup": "Sosial autentiseringsoppsett",
"staff_status": "Personalstatus",
"staff_user": "Personalbruker",
"email_verified_error_desc": "E -posten din kunne ikke bekreftes. \nVennligst prøv igjen."
"staff_user": "Personalbruker"
},
"collection": {
"collection_created": "Samling opprettet!",
@@ -524,7 +440,6 @@
"create": "Opprett",
"collection_edit_success": "Samling redigert!",
"error_editing_collection": "Feil ved redigering av samling",
"edit_collection": "Rediger samling",
"public_collection": "Offentlig samling",
"manage_collections": "Administrer samlinger"
},
@@ -545,16 +460,11 @@
"checklist": {
"checklist_deleted": "Sjekkliste slettet!",
"checklist_delete_error": "Feil ved sletting av sjekkliste",
"failed_to_save": "Kunne ikke lagre sjekkliste",
"checklist_editor": "Sjekklisteredigerer",
"checklist_viewer": "Sjekklisteviser",
"editing_checklist": "Redigerer sjekkliste",
"new_checklist": "Ny sjekkliste",
"item": "Punkt",
"items": "Punkter",
"add_item": "Legg til punkt",
"new_item": "Nytt punkt",
"save": "Lagre",
"checklist_public": "Denne sjekklisten er offentlig fordi den er i en offentlig samling.",
"item_cannot_be_empty": "Punktet kan ikke være tomt",
"item_already_exists": "Punktet finnes allerede"
@@ -562,14 +472,8 @@
"transportation": {
"transportation_deleted": "Transport slettet!",
"transportation_delete_error": "Feil ved sletting av transport",
"provide_start_date": "Vennligst angi en startdato",
"transport_type": "Transporttype",
"type": "Type",
"transportation_added": "Transport lagt til!",
"error_editing_transportation": "Feil ved redigering av transport",
"new_transportation": "Ny transport",
"date_time": "Startdato og -tid",
"end_date_time": "Sluttdato og -tid",
"flight_number": "Flynummer",
"from_location": "Fra sted",
"to_location": "Til sted",
@@ -587,27 +491,12 @@
"walking": "Går",
"other": "Annet"
},
"transportation_edit_success": "Transport redigert!",
"edit_transportation": "Rediger transport",
"start": "Start",
"date_and_time": "Dato og tid"
"edit_transportation": "Rediger transport"
},
"lodging": {
"lodging_deleted": "Overnatting slettet!",
"lodging_delete_error": "Feil ved sletting av overnatting",
"provide_start_date": "Vennligst angi en startdato",
"lodging_type": "Overnattingstype",
"type": "Type",
"lodging_added": "Overnatting lagt til!",
"error_editing_lodging": "Feil ved redigering av overnatting",
"new_lodging": "Ny overnatting",
"check_in": "Innsjekking",
"check_out": "Utsjekking",
"edit": "Rediger",
"lodging_edit_success": "Overnatting redigert!",
"edit_lodging": "Rediger overnatting",
"start": "Start",
"date_and_time": "Dato og tid",
"hotel": "Hotell",
"hostel": "Hostell",
"resort": "Resort",
@@ -619,8 +508,7 @@
"villa": "Villa",
"motel": "Motell",
"other": "Annet",
"reservation_number": "Reservasjonsnummer",
"current_timezone": "Gjeldende tidssone"
"reservation_number": "Reservasjonsnummer"
},
"search": {
"adventurelog_results": "AdventureLog-resultater",
@@ -664,7 +552,6 @@
"update_after_refresh": "Eventyrkortene vil oppdateres når du oppdaterer siden.",
"select_category": "Velg kategori",
"category_name": "Kategorinavn",
"add_category": "Legg til kategori",
"add_new_category": "Legg til ny kategori"
},
"dashboard": {
@@ -680,27 +567,16 @@
"immich": {
"immich": "Immich",
"integration_fetch_error": "Feil ved henting av data fra Immich-integrasjonen",
"integration_missing": "Immich-integrasjonen mangler på backend",
"query_required": "Forespørsel er påkrevd",
"server_down": "Immich-serveren er nede eller utilgjengelig",
"no_items_found": "Ingen elementer funnet",
"imageid_required": "Bilde-ID er påkrevd",
"load_more": "Last mer",
"immich_updated": "Immich-innstillinger oppdatert!",
"immich_enabled": "Immich-integrasjon aktivert!",
"immich_error": "Feil ved oppdatering av Immich-integrasjon",
"immich_disabled": "Immich-integrasjon deaktivert!",
"immich_desc": "Integrer Immich-kontoen din med AdventureLog for å søke i bildebiblioteket ditt og importere bilder til eventyrene dine.",
"integration_enabled": "Integrasjon aktivert",
"disable": "Deaktiver",
"server_url": "Immich-server-URL",
"api_note": "Merk: dette må være URL-en til Immich API-serveren, så den slutter sannsynligvis med /api, med mindre du har en tilpasset konfig.",
"api_key": "Immich API-nøkkel",
"enable_immich": "Aktiver Immich",
"update_integration": "Oppdater integrasjon",
"immich_integration": "Immich-integrasjon",
"localhost_note": "Merk: localhost vil sannsynligvis ikke fungere med mindre du har satt opp docker-nettverk. Det anbefales å bruke serverens IP-adresse eller domenenavn.",
"documentation": "Immich-integrasjonsdokumentasjon",
"api_key_placeholder": "Skriv inn Immich API -tasten",
"enable_integration": "Aktiver integrasjon",
"immich_integration_desc": "Koble til Immich Photo Management Server",
@@ -715,15 +591,10 @@
"validation_error": "Det oppstod en feil under validering av Immich -integrasjonen. \nVennligst sjekk server -URL -en og API -tasten."
},
"recomendations": {
"address": "Adresse",
"phone": "Telefon",
"contact": "Kontakt",
"website": "Nettsted",
"recommendation": "Anbefaling",
"recommendations": "Anbefalinger",
"adventure_recommendations": "Eventyranbefalinger",
"food": "Mat",
"miles": "Miles",
"tourism": "Turisme"
},
"google_maps": {