narrow-wide trail list view mode added (#666)

* narrow-wide trail list view mode added

* change icon, change pos, add i18n

* change icon

---------

Co-authored-by: Christian Beutel <>
Co-authored-by: Flomp <Flomp@users.noreply.github.com>
This commit is contained in:
slothful-vassal
2026-04-01 19:07:27 +02:00
committed by GitHub
parent 591a72e2d1
commit f6354dcd56
16 changed files with 290 additions and 33 deletions

View File

@@ -10,12 +10,13 @@
import SkeletonCard from "../base/skeleton_card.svelte"; import SkeletonCard from "../base/skeleton_card.svelte";
import SkeletonListItem from "../base/skeleton_list_item.svelte"; import SkeletonListItem from "../base/skeleton_list_item.svelte";
import { onMount, tick } from "svelte"; import { onMount, tick } from "svelte";
import type { Snippet } from "svelte";
import TrailDropdown from "$lib/components/trail/trail_dropdown.svelte"; import TrailDropdown from "$lib/components/trail/trail_dropdown.svelte";
interface Props { interface Props {
filter?: TrailFilter | null; filter?: TrailFilter | null;
trails: Trail[]; trails: Trail[];
pagination?: { page: number; totalPages: number, items: number }; pagination?: { page: number; totalPages: number; items: number };
loading?: boolean; loading?: boolean;
fullWidthCards?: boolean; fullWidthCards?: boolean;
onupdate?: ( onupdate?: (
@@ -23,6 +24,8 @@
selection: Set<Trail> | undefined, selection: Set<Trail> | undefined,
) => void; ) => void;
onpagination?: (page: number, items: number) => void; onpagination?: (page: number, items: number) => void;
ondisplaychange?: (display: string) => void;
trailWidthToggleSnippet?: Snippet;
} }
let { let {
@@ -37,6 +40,8 @@
fullWidthCards = false, fullWidthCards = false,
onupdate, onupdate,
onpagination, onpagination,
ondisplaychange,
trailWidthToggleSnippet: trailWidthToggleSnippet,
}: Props = $props(); }: Props = $props();
const displayOptions: SelectItem[] = [ const displayOptions: SelectItem[] = [
@@ -64,6 +69,10 @@
let selection: Set<Trail> | undefined = $state(); let selection: Set<Trail> | undefined = $state();
let hoveredTrail: Trail | undefined = $state(); let hoveredTrail: Trail | undefined = $state();
function notifyDisplayChange() {
ondisplaychange?.(selectedDisplayOption);
}
const sortOptions: SelectItem[] = [ const sortOptions: SelectItem[] = [
{ text: $_("name"), value: "name" }, { text: $_("name"), value: "name" },
{ text: $_("distance"), value: "distance" }, { text: $_("distance"), value: "distance" },
@@ -129,10 +138,14 @@
} }
if (itemsChanged) { if (itemsChanged) {
localStorage.setItem("paginationItems", pagination.items.toString()); localStorage.setItem(
"paginationItems",
pagination.items.toString(),
);
} }
} }
onupdate?.(filter, selection); onupdate?.(filter, selection);
notifyDisplayChange();
}); });
function setDisplayOption() { function setDisplayOption() {
@@ -170,8 +183,12 @@
} }
if (itemsChanged) { if (itemsChanged) {
localStorage.setItem("paginationItems", pagination.items.toString()); localStorage.setItem(
"paginationItems",
pagination.items.toString(),
);
} }
notifyDisplayChange();
} }
function setSort() { function setSort() {
@@ -304,7 +321,7 @@
<div class="min-w-0"> <div class="min-w-0">
<div class="flex items-end flex-wrap lg:flex-nowrap gap-x-6 gap-y-2 mx-4"> <div class="flex items-end flex-wrap lg:flex-nowrap gap-x-6 gap-y-2 mx-4">
<div class="basis-full order-1 md:order-none"> <div class="basis-full order-1 md:order-0">
<Pagination <Pagination
page={pagination.page} page={pagination.page}
totalPages={pagination.totalPages} totalPages={pagination.totalPages}
@@ -313,7 +330,7 @@
></Pagination> ></Pagination>
</div> </div>
{#if selection !== undefined && selection.size > 0} {#if selection !== undefined && selection.size > 0}
<div class="flex relative flex-shrink-0"> <div class="flex relative shrink-0">
<TrailDropdown <TrailDropdown
trails={selection} trails={selection}
mode={"multi-select"} mode={"multi-select"}
@@ -347,12 +364,16 @@
{/if} {/if}
<div class="shrink-0"> <div class="shrink-0">
<p class="text-sm text-gray-500 pb-2">{$_("display-as")}</p> <p class="text-sm text-gray-500 pb-2">{$_("display-as")}</p>
<div class="flex items-center gap-2">
<Select <Select
bind:value={selectedDisplayOption} bind:value={selectedDisplayOption}
items={displayOptions} items={displayOptions}
onchange={() => setDisplayOption()} onchange={() => setDisplayOption()}
></Select> ></Select>
{#if trailWidthToggleSnippet}
{@render trailWidthToggleSnippet?.()}
{/if}
</div>
</div> </div>
</div> </div>
@@ -428,8 +449,8 @@
{/if} {/if}
{/if} {/if}
</div> </div>
<div class="flex items-end flex-wrap lg:flex-nowrap gap-x-6 gap-y-2 mx-4"> <div class="flex items-start flex-wrap lg:flex-nowrap gap-x-6 gap-y-2 mx-4">
<div class="basis-full order-1 md:order-none"> <div class="basis-full order-1 md:order-0">
<Pagination <Pagination
page={pagination.page} page={pagination.page}
totalPages={pagination.totalPages} totalPages={pagination.totalPages}
@@ -440,7 +461,9 @@
<div class="shrink-0"> <div class="shrink-0">
<Select <Select
bind:value={pagination.items} bind:value={pagination.items}
items={selectedDisplayOption == "cards" ? perPageOptionsCards : perPageOptions} items={selectedDisplayOption == "cards"
? perPageOptionsCards
: perPageOptions}
onchange={setItemsPerPage} onchange={setItemsPerPage}
></Select> ></Select>
</div> </div>

View File

@@ -72,6 +72,7 @@
"clear-all": "Vymazat vše", "clear-all": "Vymazat vše",
"climbing": "Horolezectví", "climbing": "Horolezectví",
"close": "Zavřít", "close": "Zavřít",
"collapse-trail-list": "",
"comment": "{n, plural, =1 {Komentář} few {Komentáře} other {Komentářů}}", "comment": "{n, plural, =1 {Komentář} few {Komentáře} other {Komentářů}}",
"completed": "Dokončeno", "completed": "Dokončeno",
"completed-a-trail": "dokončil/a trasu", "completed-a-trail": "dokončil/a trasu",
@@ -148,6 +149,7 @@
"error-exporting-trail": "Chyba při exportování trasy", "error-exporting-trail": "Chyba při exportování trasy",
"error-generating-token": "", "error-generating-token": "",
"error-liking-trail": "Chyba při lajkování trasy", "error-liking-trail": "Chyba při lajkování trasy",
"error-logging-in-to-hammerhead": "",
"error-logging-in-to-komoot": "Chyba při přihlášení do Komootu", "error-logging-in-to-komoot": "Chyba při přihlášení do Komootu",
"error-posting-comment": "Chyba při vkládání komentáře", "error-posting-comment": "Chyba při vkládání komentáře",
"error-printing-map": "Při tisku mapy došlo k chybě", "error-printing-map": "Při tisku mapy došlo k chybě",
@@ -155,10 +157,14 @@
"error-saving-list": "Chyba při ukládání seznamu", "error-saving-list": "Chyba při ukládání seznamu",
"error-saving-trail": "Chyba při ukládání trasy", "error-saving-trail": "Chyba při ukládání trasy",
"error-setting-up-integration": "Chyba během nastavování {provider} integrace", "error-setting-up-integration": "Chyba během nastavování {provider} integrace",
"error-updating-hammerhead-integration": "",
"error-updating-komoot-integration": "",
"error-updating-password": "Chyba během aktualizace hesla", "error-updating-password": "Chyba během aktualizace hesla",
"error-updating-strava-integration": "Chyba při aktualizaci Komoot integrace", "error-updating-strava-integration": "Chyba při aktualizaci Komoot integrace",
"error-uploading-trail-to-hammerhead": "",
"est-duration": "Odhadovaná doba trvání", "est-duration": "Odhadovaná doba trvání",
"everyone-with-the-link": "Každý, kdo má odkaz", "everyone-with-the-link": "Každý, kdo má odkaz",
"expand-trail-list": "",
"expiration": "", "expiration": "",
"expires": "", "expires": "",
"explore": "Objevování", "explore": "Objevování",
@@ -195,6 +201,7 @@
"get-started": "Začněte", "get-started": "Začněte",
"grid": "Mřížka", "grid": "Mřížka",
"grocery-store": "Potraviny", "grocery-store": "Potraviny",
"hammerhead-integration-after-date-hint": "",
"heading": "Nadpis", "heading": "Nadpis",
"height": "Výška", "height": "Výška",
"help": "Nápověda", "help": "Nápověda",
@@ -210,11 +217,13 @@
"hut": "Chatka", "hut": "Chatka",
"hybrid": "Hybridní", "hybrid": "Hybridní",
"icon": "Ikonka", "icon": "Ikonka",
"ignore-trails-before-date": "",
"imperial": "Imperiální jednotky", "imperial": "Imperiální jednotky",
"import": "Importovat", "import": "Importovat",
"import-hint": "Vyberte nebo sem přetáhněte soubory GPX, FIT, KML, či TCX...", "import-hint": "Vyberte nebo sem přetáhněte soubory GPX, FIT, KML, či TCX...",
"include-description": "Zahrnout popis", "include-description": "Zahrnout popis",
"include-waypoints": "Zahrnout body trasy", "include-waypoints": "Zahrnout body trasy",
"integration-description-hammerhead": "",
"integration-description-komoot": "Synchronizuje vaše trasy z aplikace Komoot s Wandererem v pravidelných intervalech.", "integration-description-komoot": "Synchronizuje vaše trasy z aplikace Komoot s Wandererem v pravidelných intervalech.",
"integration-description-strava": "Synchronizuje vaše trasy a aktivity z aplikace Strava s Wandererem v pravidelných intervalech.", "integration-description-strava": "Synchronizuje vaše trasy a aktivity z aplikace Strava s Wandererem v pravidelných intervalech.",
"integration-disabled": "integrace zakázána", "integration-disabled": "integrace zakázána",
@@ -371,6 +380,7 @@
"search-trails": "Vyhledat trasy", "search-trails": "Vyhledat trasy",
"select-list": "Vybrat seznam", "select-list": "Vybrat seznam",
"selected": "vybráno", "selected": "vybráno",
"send-to": "",
"set-private": "", "set-private": "",
"set-public": "", "set-public": "",
"settings": "Nastavení", "settings": "Nastavení",
@@ -429,6 +439,7 @@
"tourism": "Turismus", "tourism": "Turismus",
"trail": "{n, plural, =1 {Trasa} few {Trasy} other {Tras}}", "trail": "{n, plural, =1 {Trasa} few {Trasy} other {Tras}}",
"trail-copied-successfully": "", "trail-copied-successfully": "",
"trail-has-no-gpx": "",
"trail-not-in-list": "", "trail-not-in-list": "",
"trail-not-shared": "Není sdíleno s nikým", "trail-not-shared": "Není sdíleno s nikým",
"trail-saved-successfully": "Trasa úspěšně uložena", "trail-saved-successfully": "Trasa úspěšně uložena",
@@ -441,6 +452,7 @@
"upload-gpx": "Nahrát GPX", "upload-gpx": "Nahrát GPX",
"upload-new-file": "Nahrát nový soubor", "upload-new-file": "Nahrát nový soubor",
"uploaded": "nahráno", "uploaded": "nahráno",
"uploaded-trail-to-hammerhead": "",
"use-hills": "Použít kopce", "use-hills": "Použít kopce",
"use-roads": "Použít silnice", "use-roads": "Použít silnice",
"username": "Uživatelské jméno", "username": "Uživatelské jméno",

View File

@@ -72,6 +72,7 @@
"clear-all": "Alle ausblenden", "clear-all": "Alle ausblenden",
"climbing": "Klettern", "climbing": "Klettern",
"close": "Schließen", "close": "Schließen",
"collapse-trail-list": "",
"comment": "{n, plural, =1 {Kommentar} other {Kommentare}}", "comment": "{n, plural, =1 {Kommentar} other {Kommentare}}",
"completed": "Abgeschlossen", "completed": "Abgeschlossen",
"completed-a-trail": "hat eine Route abgeschlossen", "completed-a-trail": "hat eine Route abgeschlossen",
@@ -156,13 +157,14 @@
"error-saving-list": "Fehler beim Speichern der Liste", "error-saving-list": "Fehler beim Speichern der Liste",
"error-saving-trail": "Fehler beim Speichern der Route", "error-saving-trail": "Fehler beim Speichern der Route",
"error-setting-up-integration": "Fehler beim Einrichten der {provider}-Integration", "error-setting-up-integration": "Fehler beim Einrichten der {provider}-Integration",
"error-updating-password": "Fehler beim Aktualisieren des Passworts",
"error-updating-hammerhead-integration": "Fehler bei Aktualisierung der Hammerhead-Integration", "error-updating-hammerhead-integration": "Fehler bei Aktualisierung der Hammerhead-Integration",
"error-updating-komoot-integration": "Fehler bei Aktualisierung der komoot-Integration", "error-updating-komoot-integration": "Fehler bei Aktualisierung der komoot-Integration",
"error-updating-password": "Fehler beim Aktualisieren des Passworts",
"error-updating-strava-integration": "Fehler bei Aktualisierung der Strava-Integration", "error-updating-strava-integration": "Fehler bei Aktualisierung der Strava-Integration",
"error-uploading-trail-to-hammerhead": "Fehler beim Hochladen der Route zu Hammerhead", "error-uploading-trail-to-hammerhead": "Fehler beim Hochladen der Route zu Hammerhead",
"est-duration": "Gesch. Dauer", "est-duration": "Gesch. Dauer",
"everyone-with-the-link": "Jeder mit dem Link", "everyone-with-the-link": "Jeder mit dem Link",
"expand-trail-list": "",
"expiration": "", "expiration": "",
"expires": "", "expires": "",
"explore": "Erkunden", "explore": "Erkunden",
@@ -436,8 +438,8 @@
"top-speed": "Höchstgeschwindigkeit", "top-speed": "Höchstgeschwindigkeit",
"tourism": "Tourismus", "tourism": "Tourismus",
"trail": "{n, plural, =1 {Route} other {Routen}}", "trail": "{n, plural, =1 {Route} other {Routen}}",
"trail-has-no-gpx": "Diese Route besitzt keine GPX Daten.",
"trail-copied-successfully": "Route erfolgreich kopiert", "trail-copied-successfully": "Route erfolgreich kopiert",
"trail-has-no-gpx": "Diese Route besitzt keine GPX Daten.",
"trail-not-in-list": "Trail gehört zu keiner Liste.", "trail-not-in-list": "Trail gehört zu keiner Liste.",
"trail-not-shared": "Mit niemandem geteilt", "trail-not-shared": "Mit niemandem geteilt",
"trail-saved-successfully": "Route gespeichert", "trail-saved-successfully": "Route gespeichert",

View File

@@ -71,6 +71,7 @@
"clear-all": "Clear all", "clear-all": "Clear all",
"climbing": "Climbing", "climbing": "Climbing",
"close": "Close", "close": "Close",
"collapse-trail-list": "Collapse trail list",
"comment": "{n, plural, =1 {Comment} other {Comments}}", "comment": "{n, plural, =1 {Comment} other {Comments}}",
"completed": "Completed", "completed": "Completed",
"completed-a-trail": "completed a trail", "completed-a-trail": "completed a trail",
@@ -155,13 +156,14 @@
"error-saving-list": "Error saving list", "error-saving-list": "Error saving list",
"error-saving-trail": "Error saving trail", "error-saving-trail": "Error saving trail",
"error-setting-up-integration": "Error setting up {provider} integration", "error-setting-up-integration": "Error setting up {provider} integration",
"error-updating-password": "Error updating password",
"error-updating-hammerhead-integration": "Error updating Hammerhead integration", "error-updating-hammerhead-integration": "Error updating Hammerhead integration",
"error-updating-komoot-integration": "Error updating komoot integration", "error-updating-komoot-integration": "Error updating komoot integration",
"error-updating-password": "Error updating password",
"error-updating-strava-integration": "Error updating Strava integration", "error-updating-strava-integration": "Error updating Strava integration",
"error-uploading-trail-to-hammerhead": "Error uploading trail to Hammerhead", "error-uploading-trail-to-hammerhead": "Error uploading trail to Hammerhead",
"est-duration": "Est. duration", "est-duration": "Est. duration",
"everyone-with-the-link": "Everyone with the link", "everyone-with-the-link": "Everyone with the link",
"expand-trail-list": "Expand trail list",
"expiration": "Expiration", "expiration": "Expiration",
"expires": "Expires", "expires": "Expires",
"explore": "Explore", "explore": "Explore",
@@ -435,8 +437,8 @@
"top-speed": "Top Speed", "top-speed": "Top Speed",
"tourism": "Tourism", "tourism": "Tourism",
"trail": "{n, plural, =1 {Trail} other {Trails}}", "trail": "{n, plural, =1 {Trail} other {Trails}}",
"trail-has-no-gpx": "This trail has no GPX data.",
"trail-copied-successfully": "trail copied successfully", "trail-copied-successfully": "trail copied successfully",
"trail-has-no-gpx": "This trail has no GPX data.",
"trail-not-in-list": "Trail is not in any list", "trail-not-in-list": "Trail is not in any list",
"trail-not-shared": "Not shared with anyone", "trail-not-shared": "Not shared with anyone",
"trail-saved-successfully": "Trail saved successfully", "trail-saved-successfully": "Trail saved successfully",

View File

@@ -72,6 +72,7 @@
"clear-all": "Limpiar todo", "clear-all": "Limpiar todo",
"climbing": "Escalada", "climbing": "Escalada",
"close": "Cerrar", "close": "Cerrar",
"collapse-trail-list": "",
"comment": "{n, plural, one {}=1 {Comentario} other {Comentarios}}", "comment": "{n, plural, one {}=1 {Comentario} other {Comentarios}}",
"completed": "Completado", "completed": "Completado",
"completed-a-trail": "completó una ruta", "completed-a-trail": "completó una ruta",
@@ -148,6 +149,7 @@
"error-exporting-trail": "Error exportando la ruta", "error-exporting-trail": "Error exportando la ruta",
"error-generating-token": "", "error-generating-token": "",
"error-liking-trail": "Error al dar \"me gusta\" a la ruta", "error-liking-trail": "Error al dar \"me gusta\" a la ruta",
"error-logging-in-to-hammerhead": "",
"error-logging-in-to-komoot": "Error al iniciar sesión en komoot", "error-logging-in-to-komoot": "Error al iniciar sesión en komoot",
"error-posting-comment": "Error publicando el comentario", "error-posting-comment": "Error publicando el comentario",
"error-printing-map": "Error durante la impresión del mapa", "error-printing-map": "Error durante la impresión del mapa",
@@ -155,10 +157,14 @@
"error-saving-list": "Error guardando la lista", "error-saving-list": "Error guardando la lista",
"error-saving-trail": "Error guardando la ruta", "error-saving-trail": "Error guardando la ruta",
"error-setting-up-integration": "Error al configurar la integración con {provider}", "error-setting-up-integration": "Error al configurar la integración con {provider}",
"error-updating-hammerhead-integration": "",
"error-updating-komoot-integration": "",
"error-updating-password": "Error actualizando la contraseña", "error-updating-password": "Error actualizando la contraseña",
"error-updating-strava-integration": "Error al actualizar la integración con komoot", "error-updating-strava-integration": "Error al actualizar la integración con komoot",
"error-uploading-trail-to-hammerhead": "",
"est-duration": "Duración estimada", "est-duration": "Duración estimada",
"everyone-with-the-link": "Cualquier persona con el enlace", "everyone-with-the-link": "Cualquier persona con el enlace",
"expand-trail-list": "",
"expiration": "", "expiration": "",
"expires": "", "expires": "",
"explore": "Explora", "explore": "Explora",
@@ -195,6 +201,7 @@
"get-started": "Iniciar", "get-started": "Iniciar",
"grid": "Cuadricula", "grid": "Cuadricula",
"grocery-store": "Supermercado", "grocery-store": "Supermercado",
"hammerhead-integration-after-date-hint": "",
"heading": "Título", "heading": "Título",
"height": "Altura", "height": "Altura",
"help": "Ayuda", "help": "Ayuda",
@@ -210,11 +217,13 @@
"hut": "Cabaña", "hut": "Cabaña",
"hybrid": "Hibrido", "hybrid": "Hibrido",
"icon": "Icono", "icon": "Icono",
"ignore-trails-before-date": "",
"imperial": "Imperial", "imperial": "Imperial",
"import": "Importar", "import": "Importar",
"import-hint": "Selecciona o arrastra aquí archivos GPX, FIT, KML o TCX...", "import-hint": "Selecciona o arrastra aquí archivos GPX, FIT, KML o TCX...",
"include-description": "Incluir descripción", "include-description": "Incluir descripción",
"include-waypoints": "Incluir puntos de interés", "include-waypoints": "Incluir puntos de interés",
"integration-description-hammerhead": "",
"integration-description-komoot": "Sincroniza tus recorridos de Komoot con Wanderer en intervalos regulares.", "integration-description-komoot": "Sincroniza tus recorridos de Komoot con Wanderer en intervalos regulares.",
"integration-description-strava": "Sincroniza tus recorridos y actividades de Strava con Wanderer en intervalos regulares.", "integration-description-strava": "Sincroniza tus recorridos y actividades de Strava con Wanderer en intervalos regulares.",
"integration-disabled": "integración desactivada", "integration-disabled": "integración desactivada",
@@ -371,6 +380,7 @@
"search-trails": "Buscar ruta", "search-trails": "Buscar ruta",
"select-list": "Seleccionar Lista", "select-list": "Seleccionar Lista",
"selected": "seleccionado", "selected": "seleccionado",
"send-to": "",
"set-private": "", "set-private": "",
"set-public": "", "set-public": "",
"settings": "Configuración", "settings": "Configuración",
@@ -429,6 +439,7 @@
"tourism": "Turismo", "tourism": "Turismo",
"trail": "{n, plural, one {}=1 {Ruta} other {Rutas}}", "trail": "{n, plural, one {}=1 {Ruta} other {Rutas}}",
"trail-copied-successfully": "", "trail-copied-successfully": "",
"trail-has-no-gpx": "",
"trail-not-in-list": "", "trail-not-in-list": "",
"trail-not-shared": "No compartida con nadie", "trail-not-shared": "No compartida con nadie",
"trail-saved-successfully": "Ruta guardada con éxito", "trail-saved-successfully": "Ruta guardada con éxito",
@@ -441,6 +452,7 @@
"upload-gpx": "Cargar GPX", "upload-gpx": "Cargar GPX",
"upload-new-file": "Subir nuevo archivo", "upload-new-file": "Subir nuevo archivo",
"uploaded": "cargado", "uploaded": "cargado",
"uploaded-trail-to-hammerhead": "",
"use-hills": "Usar cuestas", "use-hills": "Usar cuestas",
"use-roads": "Utilizar carreteras", "use-roads": "Utilizar carreteras",
"username": "Nombre de usuario", "username": "Nombre de usuario",

View File

@@ -71,6 +71,7 @@
"clear-all": "Garbitu dena", "clear-all": "Garbitu dena",
"climbing": "Eskalada", "climbing": "Eskalada",
"close": "Itxi", "close": "Itxi",
"collapse-trail-list": "",
"comment": "{n, plural, one {}=1 {iruzkin} other {iruzkin}}", "comment": "{n, plural, one {}=1 {iruzkin} other {iruzkin}}",
"completed": "Osatuta", "completed": "Osatuta",
"completed-a-trail": "ibilbide bat egin du", "completed-a-trail": "ibilbide bat egin du",
@@ -147,6 +148,7 @@
"error-exporting-trail": "Errorea ibilbidea esportatzean", "error-exporting-trail": "Errorea ibilbidea esportatzean",
"error-generating-token": "", "error-generating-token": "",
"error-liking-trail": "Errorea ibilbidea atsegitean", "error-liking-trail": "Errorea ibilbidea atsegitean",
"error-logging-in-to-hammerhead": "",
"error-logging-in-to-komoot": "Errorea komoot-en login egitean", "error-logging-in-to-komoot": "Errorea komoot-en login egitean",
"error-posting-comment": "Errorea iruzkina egitean", "error-posting-comment": "Errorea iruzkina egitean",
"error-printing-map": "Errorea mapa inprimatzean", "error-printing-map": "Errorea mapa inprimatzean",
@@ -154,10 +156,14 @@
"error-saving-list": "Errorea zerrenda gordetzean", "error-saving-list": "Errorea zerrenda gordetzean",
"error-saving-trail": "Errorea ibilbidea gordetzean", "error-saving-trail": "Errorea ibilbidea gordetzean",
"error-setting-up-integration": "Errorea {provider} integrazioa egitean", "error-setting-up-integration": "Errorea {provider} integrazioa egitean",
"error-updating-hammerhead-integration": "",
"error-updating-komoot-integration": "",
"error-updating-password": "Errorea pasahitza eguneratzean", "error-updating-password": "Errorea pasahitza eguneratzean",
"error-updating-strava-integration": "Errorea komoot integrazioa eguneratzean", "error-updating-strava-integration": "Errorea komoot integrazioa eguneratzean",
"error-uploading-trail-to-hammerhead": "",
"est-duration": "Ustezko iraupena", "est-duration": "Ustezko iraupena",
"everyone-with-the-link": "Esteka duen edonor", "everyone-with-the-link": "Esteka duen edonor",
"expand-trail-list": "",
"expiration": "", "expiration": "",
"expires": "", "expires": "",
"explore": "Arakatu", "explore": "Arakatu",
@@ -194,6 +200,7 @@
"get-started": "Hasi", "get-started": "Hasi",
"grid": "Sareta", "grid": "Sareta",
"grocery-store": "Janari-denda", "grocery-store": "Janari-denda",
"hammerhead-integration-after-date-hint": "",
"heading": "Goiburukoa", "heading": "Goiburukoa",
"height": "Altuera", "height": "Altuera",
"help": "Laguntza", "help": "Laguntza",
@@ -209,11 +216,13 @@
"hut": "Aterpea", "hut": "Aterpea",
"hybrid": "Hibridoa", "hybrid": "Hibridoa",
"icon": "Ikonoa", "icon": "Ikonoa",
"ignore-trails-before-date": "",
"imperial": "Inperiala", "imperial": "Inperiala",
"import": "Inportatu", "import": "Inportatu",
"import-hint": "Aukeratu edo arrastatu hona GPX, FIT, KML edo TCX fitxategiak...", "import-hint": "Aukeratu edo arrastatu hona GPX, FIT, KML edo TCX fitxategiak...",
"include-description": "Gehitu deskribapena", "include-description": "Gehitu deskribapena",
"include-waypoints": "Gehitu bidepuntuak", "include-waypoints": "Gehitu bidepuntuak",
"integration-description-hammerhead": "",
"integration-description-komoot": "Zure komooteko ibilbideak wandererekin sinkronizatzen ditu aldian behin.", "integration-description-komoot": "Zure komooteko ibilbideak wandererekin sinkronizatzen ditu aldian behin.",
"integration-description-strava": "Zure stravako ibilbideak wandererekin sinkronizatzen ditu aldian behin.", "integration-description-strava": "Zure stravako ibilbideak wandererekin sinkronizatzen ditu aldian behin.",
"integration-disabled": "integrazioa desaktibatuta", "integration-disabled": "integrazioa desaktibatuta",
@@ -370,6 +379,7 @@
"search-trails": "Bilatu ibilaldiak", "search-trails": "Bilatu ibilaldiak",
"select-list": "Aukeratu zerrenda", "select-list": "Aukeratu zerrenda",
"selected": "aukeratuta", "selected": "aukeratuta",
"send-to": "",
"set-private": "", "set-private": "",
"set-public": "", "set-public": "",
"settings": "Ezarpenak", "settings": "Ezarpenak",
@@ -428,6 +438,7 @@
"tourism": "Turismoa", "tourism": "Turismoa",
"trail": "{n, plural, one {}=1 {ibilbide} other {ibilbide}}", "trail": "{n, plural, one {}=1 {ibilbide} other {ibilbide}}",
"trail-copied-successfully": "", "trail-copied-successfully": "",
"trail-has-no-gpx": "",
"trail-not-in-list": "", "trail-not-in-list": "",
"trail-not-shared": "Inorekin partekatu gabe", "trail-not-shared": "Inorekin partekatu gabe",
"trail-saved-successfully": "Ibilbidea ondo gorde da", "trail-saved-successfully": "Ibilbidea ondo gorde da",
@@ -440,6 +451,7 @@
"upload-gpx": "Kargatu GPX", "upload-gpx": "Kargatu GPX",
"upload-new-file": "Kargatu fitxategi berria", "upload-new-file": "Kargatu fitxategi berria",
"uploaded": "kargatuta", "uploaded": "kargatuta",
"uploaded-trail-to-hammerhead": "",
"use-hills": "Erabili aldapak", "use-hills": "Erabili aldapak",
"use-roads": "Erabili errepideak", "use-roads": "Erabili errepideak",
"username": "Erabiltzaile-izena", "username": "Erabiltzaile-izena",

View File

@@ -72,6 +72,7 @@
"clear-all": "Cacher tous", "clear-all": "Cacher tous",
"climbing": "Escalade", "climbing": "Escalade",
"close": "Fermer", "close": "Fermer",
"collapse-trail-list": "",
"comment": "{n, plural, =1 {Commentaire} other {Commentaires}}", "comment": "{n, plural, =1 {Commentaire} other {Commentaires}}",
"completed": "Terminé", "completed": "Terminé",
"completed-a-trail": "a terminé un parcours", "completed-a-trail": "a terminé un parcours",
@@ -148,6 +149,7 @@
"error-exporting-trail": "Erreur lors de l'export de l'itinéraire", "error-exporting-trail": "Erreur lors de l'export de l'itinéraire",
"error-generating-token": "", "error-generating-token": "",
"error-liking-trail": "Erreur de like de l'itinéraire", "error-liking-trail": "Erreur de like de l'itinéraire",
"error-logging-in-to-hammerhead": "",
"error-logging-in-to-komoot": "Erreur de connexion à Komoot", "error-logging-in-to-komoot": "Erreur de connexion à Komoot",
"error-posting-comment": "Erreur lors de la publication du commentaire", "error-posting-comment": "Erreur lors de la publication du commentaire",
"error-printing-map": "Erreur d'impression de la carte", "error-printing-map": "Erreur d'impression de la carte",
@@ -155,10 +157,14 @@
"error-saving-list": "Erreur lors de l'enregistrement de la liste", "error-saving-list": "Erreur lors de l'enregistrement de la liste",
"error-saving-trail": "Erreur lors de l'enregistrement de l'itinéraire", "error-saving-trail": "Erreur lors de l'enregistrement de l'itinéraire",
"error-setting-up-integration": "Error setting up strava integration", "error-setting-up-integration": "Error setting up strava integration",
"error-updating-hammerhead-integration": "",
"error-updating-komoot-integration": "",
"error-updating-password": "Erreur lors de la mise à jour du mot de passe", "error-updating-password": "Erreur lors de la mise à jour du mot de passe",
"error-updating-strava-integration": "Erreur lors de la mise à jour de l'intégration Komoot", "error-updating-strava-integration": "Erreur lors de la mise à jour de l'intégration Komoot",
"error-uploading-trail-to-hammerhead": "",
"est-duration": "Temps estimé", "est-duration": "Temps estimé",
"everyone-with-the-link": "Tout le monde avec ce lien", "everyone-with-the-link": "Tout le monde avec ce lien",
"expand-trail-list": "",
"expiration": "", "expiration": "",
"expires": "", "expires": "",
"explore": "Explorer", "explore": "Explorer",
@@ -195,6 +201,7 @@
"get-started": "C'est parti", "get-started": "C'est parti",
"grid": "Grille", "grid": "Grille",
"grocery-store": "Épicerie", "grocery-store": "Épicerie",
"hammerhead-integration-after-date-hint": "",
"heading": "Titre", "heading": "Titre",
"height": "Hauteur", "height": "Hauteur",
"help": "Aide", "help": "Aide",
@@ -210,11 +217,13 @@
"hut": "Cabane", "hut": "Cabane",
"hybrid": "Hybride", "hybrid": "Hybride",
"icon": "Icône", "icon": "Icône",
"ignore-trails-before-date": "",
"imperial": "Impérial", "imperial": "Impérial",
"import": "Importer", "import": "Importer",
"import-hint": "Sélectionnez ou glissez des fichiers GPX, FIT, KML ou TCX ici...", "import-hint": "Sélectionnez ou glissez des fichiers GPX, FIT, KML ou TCX ici...",
"include-description": "Inclure la description", "include-description": "Inclure la description",
"include-waypoints": "Inclure les points de passage", "include-waypoints": "Inclure les points de passage",
"integration-description-hammerhead": "",
"integration-description-komoot": "Synchronisez vos Tours Komoot avec wanderer à intervalles réguliers.", "integration-description-komoot": "Synchronisez vos Tours Komoot avec wanderer à intervalles réguliers.",
"integration-description-strava": "Synchronisez vos itinéraires et vos activités Strava avec wanderer à intervalles réguliers.", "integration-description-strava": "Synchronisez vos itinéraires et vos activités Strava avec wanderer à intervalles réguliers.",
"integration-disabled": "Intégration désactivée", "integration-disabled": "Intégration désactivée",
@@ -371,6 +380,7 @@
"search-trails": "Chercher un itinéraire", "search-trails": "Chercher un itinéraire",
"select-list": "Liste de choix", "select-list": "Liste de choix",
"selected": "sélectionné(s)", "selected": "sélectionné(s)",
"send-to": "",
"set-private": "", "set-private": "",
"set-public": "", "set-public": "",
"settings": "Paramètres", "settings": "Paramètres",
@@ -429,6 +439,7 @@
"tourism": "Tourisme", "tourism": "Tourisme",
"trail": "{n, plural, =1 {Itinéraire} other {Itinéraires}}", "trail": "{n, plural, =1 {Itinéraire} other {Itinéraires}}",
"trail-copied-successfully": "", "trail-copied-successfully": "",
"trail-has-no-gpx": "",
"trail-not-in-list": "", "trail-not-in-list": "",
"trail-not-shared": "L'itinéraire n'a pas été partagé", "trail-not-shared": "L'itinéraire n'a pas été partagé",
"trail-saved-successfully": "Itinéraire enregistrée", "trail-saved-successfully": "Itinéraire enregistrée",
@@ -441,6 +452,7 @@
"upload-gpx": "Envoyer un GPX", "upload-gpx": "Envoyer un GPX",
"upload-new-file": "Importer un fichier", "upload-new-file": "Importer un fichier",
"uploaded": "importé", "uploaded": "importé",
"uploaded-trail-to-hammerhead": "",
"use-hills": "Utiliser les collines", "use-hills": "Utiliser les collines",
"use-roads": "Utiliser les routes", "use-roads": "Utiliser les routes",
"username": "Nom d'utilisateur", "username": "Nom d'utilisateur",

View File

@@ -71,6 +71,7 @@
"clear-all": "Clear all", "clear-all": "Clear all",
"climbing": "Climbing", "climbing": "Climbing",
"close": "Close", "close": "Close",
"collapse-trail-list": "",
"comment": "{n, plural, =1 {Megjegyzés} other {Megjegyzés}}", "comment": "{n, plural, =1 {Megjegyzés} other {Megjegyzés}}",
"completed": "Teljesítve", "completed": "Teljesítve",
"completed-a-trail": "completed a trail", "completed-a-trail": "completed a trail",
@@ -147,6 +148,7 @@
"error-exporting-trail": "Error exporting trail", "error-exporting-trail": "Error exporting trail",
"error-generating-token": "", "error-generating-token": "",
"error-liking-trail": "Error liking trail", "error-liking-trail": "Error liking trail",
"error-logging-in-to-hammerhead": "",
"error-logging-in-to-komoot": "Error logging in to komoot", "error-logging-in-to-komoot": "Error logging in to komoot",
"error-posting-comment": "Error posting comment", "error-posting-comment": "Error posting comment",
"error-printing-map": "Error printing map", "error-printing-map": "Error printing map",
@@ -154,10 +156,14 @@
"error-saving-list": "Error saving list", "error-saving-list": "Error saving list",
"error-saving-trail": "Error saving trail", "error-saving-trail": "Error saving trail",
"error-setting-up-integration": "Error setting up strava integration", "error-setting-up-integration": "Error setting up strava integration",
"error-updating-hammerhead-integration": "",
"error-updating-komoot-integration": "",
"error-updating-password": "Error updating password", "error-updating-password": "Error updating password",
"error-updating-strava-integration": "Error updating komoot integration", "error-updating-strava-integration": "Error updating komoot integration",
"error-uploading-trail-to-hammerhead": "",
"est-duration": "Becsült időtartam", "est-duration": "Becsült időtartam",
"everyone-with-the-link": "Everyone with the link", "everyone-with-the-link": "Everyone with the link",
"expand-trail-list": "",
"expiration": "", "expiration": "",
"expires": "", "expires": "",
"explore": "Felfedezés", "explore": "Felfedezés",
@@ -194,6 +200,7 @@
"get-started": "Get started", "get-started": "Get started",
"grid": "Grid", "grid": "Grid",
"grocery-store": "Grocery store", "grocery-store": "Grocery store",
"hammerhead-integration-after-date-hint": "",
"heading": "Heading", "heading": "Heading",
"height": "Height", "height": "Height",
"help": "Help", "help": "Help",
@@ -209,11 +216,13 @@
"hut": "Hut", "hut": "Hut",
"hybrid": "Hybrid", "hybrid": "Hybrid",
"icon": "Ikon", "icon": "Ikon",
"ignore-trails-before-date": "",
"imperial": "Angolszász", "imperial": "Angolszász",
"import": "Import", "import": "Import",
"import-hint": "Select or drag GPX, FIT, KML or TCX files here...", "import-hint": "Select or drag GPX, FIT, KML or TCX files here...",
"include-description": "Include description", "include-description": "Include description",
"include-waypoints": "Útpontok hozzáadása", "include-waypoints": "Útpontok hozzáadása",
"integration-description-hammerhead": "",
"integration-description-komoot": "Syncs your komoot tours with wanderer in regular intervals.", "integration-description-komoot": "Syncs your komoot tours with wanderer in regular intervals.",
"integration-description-strava": "Syncs your strava routes & activities with wanderer in regular intervals.", "integration-description-strava": "Syncs your strava routes & activities with wanderer in regular intervals.",
"integration-disabled": "integration disabled", "integration-disabled": "integration disabled",
@@ -370,6 +379,7 @@
"search-trails": "Nyomvonalak keresése", "search-trails": "Nyomvonalak keresése",
"select-list": "Lista kiválasztása", "select-list": "Lista kiválasztása",
"selected": "selected", "selected": "selected",
"send-to": "",
"set-private": "", "set-private": "",
"set-public": "", "set-public": "",
"settings": "Beállítások", "settings": "Beállítások",
@@ -428,6 +438,7 @@
"tourism": "Tourism", "tourism": "Tourism",
"trail": "{n, plural, =1 {Útvonal} other {Útvonalak}}", "trail": "{n, plural, =1 {Útvonal} other {Útvonalak}}",
"trail-copied-successfully": "", "trail-copied-successfully": "",
"trail-has-no-gpx": "",
"trail-not-in-list": "", "trail-not-in-list": "",
"trail-not-shared": "Not shared with anyone", "trail-not-shared": "Not shared with anyone",
"trail-saved-successfully": "Trail saved successfully", "trail-saved-successfully": "Trail saved successfully",
@@ -440,6 +451,7 @@
"upload-gpx": "GPX feltöltése", "upload-gpx": "GPX feltöltése",
"upload-new-file": "Upload new file", "upload-new-file": "Upload new file",
"uploaded": "uploaded", "uploaded": "uploaded",
"uploaded-trail-to-hammerhead": "",
"use-hills": "Use hills", "use-hills": "Use hills",
"use-roads": "Use Roads", "use-roads": "Use Roads",
"username": "Felhasználónév", "username": "Felhasználónév",

View File

@@ -71,6 +71,7 @@
"clear-all": "Clear all", "clear-all": "Clear all",
"climbing": "Climbing", "climbing": "Climbing",
"close": "Chiudi", "close": "Chiudi",
"collapse-trail-list": "",
"comment": "{n, plural, =1 {Commento} other {Commenti}}", "comment": "{n, plural, =1 {Commento} other {Commenti}}",
"completed": "Completato", "completed": "Completato",
"completed-a-trail": "percorso completato", "completed-a-trail": "percorso completato",
@@ -147,6 +148,7 @@
"error-exporting-trail": "Errore durante l'esportazione del percorso", "error-exporting-trail": "Errore durante l'esportazione del percorso",
"error-generating-token": "", "error-generating-token": "",
"error-liking-trail": "Error liking trail", "error-liking-trail": "Error liking trail",
"error-logging-in-to-hammerhead": "",
"error-logging-in-to-komoot": "Error logging in to komoot", "error-logging-in-to-komoot": "Error logging in to komoot",
"error-posting-comment": "Errore pubblicando il commento", "error-posting-comment": "Errore pubblicando il commento",
"error-printing-map": "Errore durante la stampa della mappa", "error-printing-map": "Errore durante la stampa della mappa",
@@ -154,10 +156,14 @@
"error-saving-list": "Errore salvando la lista", "error-saving-list": "Errore salvando la lista",
"error-saving-trail": "Errore nel salvataggio del percorso", "error-saving-trail": "Errore nel salvataggio del percorso",
"error-setting-up-integration": "Error setting up strava integration", "error-setting-up-integration": "Error setting up strava integration",
"error-updating-hammerhead-integration": "",
"error-updating-komoot-integration": "",
"error-updating-password": "Errore nell'aggiornamento della password", "error-updating-password": "Errore nell'aggiornamento della password",
"error-updating-strava-integration": "Error updating komoot integration", "error-updating-strava-integration": "Error updating komoot integration",
"error-uploading-trail-to-hammerhead": "",
"est-duration": "Durata stimata", "est-duration": "Durata stimata",
"everyone-with-the-link": "Everyone with the link", "everyone-with-the-link": "Everyone with the link",
"expand-trail-list": "",
"expiration": "", "expiration": "",
"expires": "", "expires": "",
"explore": "Esplora", "explore": "Esplora",
@@ -194,6 +200,7 @@
"get-started": "Get started", "get-started": "Get started",
"grid": "Griglia", "grid": "Griglia",
"grocery-store": "Grocery store", "grocery-store": "Grocery store",
"hammerhead-integration-after-date-hint": "",
"heading": "Heading", "heading": "Heading",
"height": "Height", "height": "Height",
"help": "Aiuto", "help": "Aiuto",
@@ -209,11 +216,13 @@
"hut": "Hut", "hut": "Hut",
"hybrid": "Hybrid", "hybrid": "Hybrid",
"icon": "Icona", "icon": "Icona",
"ignore-trails-before-date": "",
"imperial": "Imperiale", "imperial": "Imperiale",
"import": "Importa", "import": "Importa",
"import-hint": "Seleziona o trascina qui i file GPX, FIT, KML o TCX...", "import-hint": "Seleziona o trascina qui i file GPX, FIT, KML o TCX...",
"include-description": "Adotta descrizione", "include-description": "Adotta descrizione",
"include-waypoints": "Includi waypoint", "include-waypoints": "Includi waypoint",
"integration-description-hammerhead": "",
"integration-description-komoot": "Syncs your komoot tours with wanderer in regular intervals.", "integration-description-komoot": "Syncs your komoot tours with wanderer in regular intervals.",
"integration-description-strava": "Syncs your strava routes & activities with wanderer in regular intervals.", "integration-description-strava": "Syncs your strava routes & activities with wanderer in regular intervals.",
"integration-disabled": "integration disabled", "integration-disabled": "integration disabled",
@@ -370,6 +379,7 @@
"search-trails": "Cerca percorsi", "search-trails": "Cerca percorsi",
"select-list": "Seleziona lista", "select-list": "Seleziona lista",
"selected": "selected", "selected": "selected",
"send-to": "",
"set-private": "", "set-private": "",
"set-public": "", "set-public": "",
"settings": "Impostazioni", "settings": "Impostazioni",
@@ -428,6 +438,7 @@
"tourism": "Tourism", "tourism": "Tourism",
"trail": "{n, plural, =1 {Percorso} other {Percorsi}}", "trail": "{n, plural, =1 {Percorso} other {Percorsi}}",
"trail-copied-successfully": "", "trail-copied-successfully": "",
"trail-has-no-gpx": "",
"trail-not-in-list": "", "trail-not-in-list": "",
"trail-not-shared": "Percorso non condiviso con nessuno", "trail-not-shared": "Percorso non condiviso con nessuno",
"trail-saved-successfully": "Percorso salvato con successo", "trail-saved-successfully": "Percorso salvato con successo",
@@ -440,6 +451,7 @@
"upload-gpx": "Carica file GPX", "upload-gpx": "Carica file GPX",
"upload-new-file": "Upload new file", "upload-new-file": "Upload new file",
"uploaded": "caricato", "uploaded": "caricato",
"uploaded-trail-to-hammerhead": "",
"use-hills": "Use hills", "use-hills": "Use hills",
"use-roads": "Use Roads", "use-roads": "Use Roads",
"username": "Nome utente", "username": "Nome utente",

View File

@@ -72,6 +72,7 @@
"clear-all": "Wis alles", "clear-all": "Wis alles",
"climbing": "Klimmen", "climbing": "Klimmen",
"close": "Sluiten", "close": "Sluiten",
"collapse-trail-list": "",
"comment": "{n, plural, =1 {Opmerking} other {Opmerkingen}}", "comment": "{n, plural, =1 {Opmerking} other {Opmerkingen}}",
"completed": "Voltooid", "completed": "Voltooid",
"completed-a-trail": "heeft een route voltooid", "completed-a-trail": "heeft een route voltooid",
@@ -148,6 +149,7 @@
"error-exporting-trail": "Fout bij exporteren van parcours", "error-exporting-trail": "Fout bij exporteren van parcours",
"error-generating-token": "", "error-generating-token": "",
"error-liking-trail": "Fout bij het \"leuk vinden\" van route", "error-liking-trail": "Fout bij het \"leuk vinden\" van route",
"error-logging-in-to-hammerhead": "",
"error-logging-in-to-komoot": "Fout tijdens inloggen in Komoot", "error-logging-in-to-komoot": "Fout tijdens inloggen in Komoot",
"error-posting-comment": "Fout bij het plaatsen van een reactie", "error-posting-comment": "Fout bij het plaatsen van een reactie",
"error-printing-map": "Fout bij afdrukken van kaart", "error-printing-map": "Fout bij afdrukken van kaart",
@@ -155,10 +157,14 @@
"error-saving-list": "Fout bij bewaren van lijst", "error-saving-list": "Fout bij bewaren van lijst",
"error-saving-trail": "Fout bij bewaren van route", "error-saving-trail": "Fout bij bewaren van route",
"error-setting-up-integration": "Fout bij opzetten {provider} integratie", "error-setting-up-integration": "Fout bij opzetten {provider} integratie",
"error-updating-hammerhead-integration": "",
"error-updating-komoot-integration": "",
"error-updating-password": "Fout bij bijwerken van wachtwoord", "error-updating-password": "Fout bij bijwerken van wachtwoord",
"error-updating-strava-integration": "Fout bij bijwerken van Komoot integratie", "error-updating-strava-integration": "Fout bij bijwerken van Komoot integratie",
"error-uploading-trail-to-hammerhead": "",
"est-duration": "Geschatte duur", "est-duration": "Geschatte duur",
"everyone-with-the-link": "Iedereen met de link", "everyone-with-the-link": "Iedereen met de link",
"expand-trail-list": "",
"expiration": "", "expiration": "",
"expires": "", "expires": "",
"explore": "Verkennen", "explore": "Verkennen",
@@ -195,6 +201,7 @@
"get-started": "Aan de slag", "get-started": "Aan de slag",
"grid": "Rooster", "grid": "Rooster",
"grocery-store": "Kruidenier", "grocery-store": "Kruidenier",
"hammerhead-integration-after-date-hint": "",
"heading": "Titel", "heading": "Titel",
"height": "Hoogte", "height": "Hoogte",
"help": "Help", "help": "Help",
@@ -210,11 +217,13 @@
"hut": "Hut", "hut": "Hut",
"hybrid": "Hybride", "hybrid": "Hybride",
"icon": "Pictogram", "icon": "Pictogram",
"ignore-trails-before-date": "",
"imperial": "Imperiaal", "imperial": "Imperiaal",
"import": "Importeer", "import": "Importeer",
"import-hint": "Selecteer of sleep GPX-, FIT-, KML- of TCX-bestanden hierheen...", "import-hint": "Selecteer of sleep GPX-, FIT-, KML- of TCX-bestanden hierheen...",
"include-description": "Inclusief beschrijving", "include-description": "Inclusief beschrijving",
"include-waypoints": "Waypoints toevoegen", "include-waypoints": "Waypoints toevoegen",
"integration-description-hammerhead": "",
"integration-description-komoot": "Synchroniseert je Komoot-tochten met Wanderer op regelmatige tijdstippen.", "integration-description-komoot": "Synchroniseert je Komoot-tochten met Wanderer op regelmatige tijdstippen.",
"integration-description-strava": "Synchroniseert je Strava-routes en -activiteiten met Wanderer op regelmatige tijdstippen.", "integration-description-strava": "Synchroniseert je Strava-routes en -activiteiten met Wanderer op regelmatige tijdstippen.",
"integration-disabled": "Integratie uitgeschakeld", "integration-disabled": "Integratie uitgeschakeld",
@@ -371,6 +380,7 @@
"search-trails": "Zoek routes", "search-trails": "Zoek routes",
"select-list": "Kies een lijst", "select-list": "Kies een lijst",
"selected": "geselecteerd", "selected": "geselecteerd",
"send-to": "",
"set-private": "", "set-private": "",
"set-public": "", "set-public": "",
"settings": "Instellingen", "settings": "Instellingen",
@@ -429,6 +439,7 @@
"tourism": "Toerisme", "tourism": "Toerisme",
"trail": "{n, plural, =1 {Route} other {Routes}}", "trail": "{n, plural, =1 {Route} other {Routes}}",
"trail-copied-successfully": "", "trail-copied-successfully": "",
"trail-has-no-gpx": "",
"trail-not-in-list": "", "trail-not-in-list": "",
"trail-not-shared": "Niet gedeeld met iemand", "trail-not-shared": "Niet gedeeld met iemand",
"trail-saved-successfully": "Route succesvol bewaard", "trail-saved-successfully": "Route succesvol bewaard",
@@ -441,6 +452,7 @@
"upload-gpx": "GPX-bestand uploaden", "upload-gpx": "GPX-bestand uploaden",
"upload-new-file": "Nieuw bestand uploaden", "upload-new-file": "Nieuw bestand uploaden",
"uploaded": "geüpload", "uploaded": "geüpload",
"uploaded-trail-to-hammerhead": "",
"use-hills": "Gebruik heuvels", "use-hills": "Gebruik heuvels",
"use-roads": "Gebruik wegen", "use-roads": "Gebruik wegen",
"username": "Gebruikersnaam", "username": "Gebruikersnaam",

View File

@@ -73,6 +73,7 @@
"clear-all": "Fjern alle", "clear-all": "Fjern alle",
"climbing": "Klatring", "climbing": "Klatring",
"close": "Lukk", "close": "Lukk",
"collapse-trail-list": "",
"comment": "{n, plural, =1 {Comment} other {Comments}}", "comment": "{n, plural, =1 {Comment} other {Comments}}",
"completed": "Fullført", "completed": "Fullført",
"completed-a-trail": "fullførte en sti", "completed-a-trail": "fullførte en sti",
@@ -149,6 +150,7 @@
"error-exporting-trail": "Feil ved eksport av sti", "error-exporting-trail": "Feil ved eksport av sti",
"error-generating-token": "", "error-generating-token": "",
"error-liking-trail": "Feil ved likerklikk på sti", "error-liking-trail": "Feil ved likerklikk på sti",
"error-logging-in-to-hammerhead": "",
"error-logging-in-to-komoot": "Feil ved innlogging til Komoot", "error-logging-in-to-komoot": "Feil ved innlogging til Komoot",
"error-posting-comment": "Feil ved posting av kommentar", "error-posting-comment": "Feil ved posting av kommentar",
"error-printing-map": "Feil ved utskrift av kart", "error-printing-map": "Feil ved utskrift av kart",
@@ -156,10 +158,14 @@
"error-saving-list": "Feil ved lagring av liste", "error-saving-list": "Feil ved lagring av liste",
"error-saving-trail": "Feil ved lagring av sti", "error-saving-trail": "Feil ved lagring av sti",
"error-setting-up-integration": "Feil ved oppsett av {provider}-integrasjon", "error-setting-up-integration": "Feil ved oppsett av {provider}-integrasjon",
"error-updating-hammerhead-integration": "",
"error-updating-komoot-integration": "",
"error-updating-password": "Feil ved oppdatering av passord", "error-updating-password": "Feil ved oppdatering av passord",
"error-updating-strava-integration": "Feil ved oppdatering av Komoot-integrasjon", "error-updating-strava-integration": "Feil ved oppdatering av Komoot-integrasjon",
"error-uploading-trail-to-hammerhead": "",
"est-duration": "Est. varighet", "est-duration": "Est. varighet",
"everyone-with-the-link": "Alle med lenken", "everyone-with-the-link": "Alle med lenken",
"expand-trail-list": "",
"expiration": "", "expiration": "",
"expires": "", "expires": "",
"explore": "Utforsk", "explore": "Utforsk",
@@ -196,6 +202,7 @@
"get-started": "Kom i gang", "get-started": "Kom i gang",
"grid": "Rutenett", "grid": "Rutenett",
"grocery-store": "Dagligvarebutikk", "grocery-store": "Dagligvarebutikk",
"hammerhead-integration-after-date-hint": "",
"heading": "Overskrift", "heading": "Overskrift",
"height": "Høyde", "height": "Høyde",
"help": "Hjelp", "help": "Hjelp",
@@ -211,11 +218,13 @@
"hut": "Hytte", "hut": "Hytte",
"hybrid": "Hybrid", "hybrid": "Hybrid",
"icon": "Ikon", "icon": "Ikon",
"ignore-trails-before-date": "",
"imperial": "Imperisk", "imperial": "Imperisk",
"import": "Importer", "import": "Importer",
"import-hint": "Velg eller dra GPX, FIT, KML eller TCX-filer hit...", "import-hint": "Velg eller dra GPX, FIT, KML eller TCX-filer hit...",
"include-description": "Inkluder beskrivelse", "include-description": "Inkluder beskrivelse",
"include-waypoints": "Inkluder veipunkter", "include-waypoints": "Inkluder veipunkter",
"integration-description-hammerhead": "",
"integration-description-komoot": "Synkroniserer dine Komoot-turer med Wanderer med jevne mellomrom.", "integration-description-komoot": "Synkroniserer dine Komoot-turer med Wanderer med jevne mellomrom.",
"integration-description-strava": "Synkroniserer dine Strava-ruter og aktiviteter med Wanderer med jevne mellomrom.", "integration-description-strava": "Synkroniserer dine Strava-ruter og aktiviteter med Wanderer med jevne mellomrom.",
"integration-disabled": "integrasjon deaktivert", "integration-disabled": "integrasjon deaktivert",
@@ -372,6 +381,7 @@
"search-trails": "Søk etter stier", "search-trails": "Søk etter stier",
"select-list": "Velg liste", "select-list": "Velg liste",
"selected": "valgt", "selected": "valgt",
"send-to": "",
"set-private": "", "set-private": "",
"set-public": "", "set-public": "",
"settings": "Innstillinger", "settings": "Innstillinger",
@@ -430,6 +440,7 @@
"tourism": "Turisme", "tourism": "Turisme",
"trail": "{n, plural, =1 {Sti} other {Stier}}", "trail": "{n, plural, =1 {Sti} other {Stier}}",
"trail-copied-successfully": "", "trail-copied-successfully": "",
"trail-has-no-gpx": "",
"trail-not-in-list": "", "trail-not-in-list": "",
"trail-not-shared": "Ikke delt med noen", "trail-not-shared": "Ikke delt med noen",
"trail-saved-successfully": "Sti lagret", "trail-saved-successfully": "Sti lagret",
@@ -442,6 +453,7 @@
"upload-gpx": "Last opp GPX", "upload-gpx": "Last opp GPX",
"upload-new-file": "Last opp ny fil", "upload-new-file": "Last opp ny fil",
"uploaded": "lastet opp", "uploaded": "lastet opp",
"uploaded-trail-to-hammerhead": "",
"use-hills": "Bruk bakker", "use-hills": "Bruk bakker",
"use-roads": "Bruk veier", "use-roads": "Bruk veier",
"username": "Brukernavn", "username": "Brukernavn",

View File

@@ -71,6 +71,7 @@
"clear-all": "Wyczyść wszystko", "clear-all": "Wyczyść wszystko",
"climbing": "Climbing", "climbing": "Climbing",
"close": "Zamknij", "close": "Zamknij",
"collapse-trail-list": "",
"comment": "{n, plural, =1 {Komentarz} other {Komentarze}}", "comment": "{n, plural, =1 {Komentarz} other {Komentarze}}",
"completed": "Zakończono", "completed": "Zakończono",
"completed-a-trail": "ukończono szlak", "completed-a-trail": "ukończono szlak",
@@ -147,6 +148,7 @@
"error-exporting-trail": "Błąd podczas eksportowania szlaku", "error-exporting-trail": "Błąd podczas eksportowania szlaku",
"error-generating-token": "", "error-generating-token": "",
"error-liking-trail": "Error liking trail", "error-liking-trail": "Error liking trail",
"error-logging-in-to-hammerhead": "",
"error-logging-in-to-komoot": "Błąd zapisu do komoot", "error-logging-in-to-komoot": "Błąd zapisu do komoot",
"error-posting-comment": "Błąd wysyłania komentarza", "error-posting-comment": "Błąd wysyłania komentarza",
"error-printing-map": "Błąd podczas drukowania mapy", "error-printing-map": "Błąd podczas drukowania mapy",
@@ -154,10 +156,14 @@
"error-saving-list": "Błąd przy zapisywaniu listy", "error-saving-list": "Błąd przy zapisywaniu listy",
"error-saving-trail": "Błąd podczas zapisywania szlaku", "error-saving-trail": "Błąd podczas zapisywania szlaku",
"error-setting-up-integration": "Error setting up strava integration", "error-setting-up-integration": "Error setting up strava integration",
"error-updating-hammerhead-integration": "",
"error-updating-komoot-integration": "",
"error-updating-password": "Błąd podczas aktualizacji hasła", "error-updating-password": "Błąd podczas aktualizacji hasła",
"error-updating-strava-integration": "Błąd aktualizacji integracji kamoot", "error-updating-strava-integration": "Błąd aktualizacji integracji kamoot",
"error-uploading-trail-to-hammerhead": "",
"est-duration": "Szacowany czas", "est-duration": "Szacowany czas",
"everyone-with-the-link": "Everyone with the link", "everyone-with-the-link": "Everyone with the link",
"expand-trail-list": "",
"expiration": "", "expiration": "",
"expires": "", "expires": "",
"explore": "Eksploruj", "explore": "Eksploruj",
@@ -194,6 +200,7 @@
"get-started": "Get started", "get-started": "Get started",
"grid": "Siatka", "grid": "Siatka",
"grocery-store": "Grocery store", "grocery-store": "Grocery store",
"hammerhead-integration-after-date-hint": "",
"heading": "Heading", "heading": "Heading",
"height": "Wysokość", "height": "Wysokość",
"help": "Pomoc", "help": "Pomoc",
@@ -209,11 +216,13 @@
"hut": "Hut", "hut": "Hut",
"hybrid": "Hybrydowy", "hybrid": "Hybrydowy",
"icon": "Ikona", "icon": "Ikona",
"ignore-trails-before-date": "",
"imperial": "Anglosaskie", "imperial": "Anglosaskie",
"import": "Importuj", "import": "Importuj",
"import-hint": "Wybierz lub przeciągnij tutaj plik GPX, FIT, KML lub TCX...", "import-hint": "Wybierz lub przeciągnij tutaj plik GPX, FIT, KML lub TCX...",
"include-description": "Dołącz opis", "include-description": "Dołącz opis",
"include-waypoints": "Uwzględnij punkty trasy", "include-waypoints": "Uwzględnij punkty trasy",
"integration-description-hammerhead": "",
"integration-description-komoot": "Synchronizuje trasy kamoot z wanderer w równych odstępach.", "integration-description-komoot": "Synchronizuje trasy kamoot z wanderer w równych odstępach.",
"integration-description-strava": "Synchronizuje trasy i aktywność z wanderer w równych odstępach.", "integration-description-strava": "Synchronizuje trasy i aktywność z wanderer w równych odstępach.",
"integration-disabled": "integracja wyłączona", "integration-disabled": "integracja wyłączona",
@@ -370,6 +379,7 @@
"search-trails": "Szukaj szlaków", "search-trails": "Szukaj szlaków",
"select-list": "Wybierz Listę", "select-list": "Wybierz Listę",
"selected": "selected", "selected": "selected",
"send-to": "",
"set-private": "", "set-private": "",
"set-public": "", "set-public": "",
"settings": "Ustawienia", "settings": "Ustawienia",
@@ -428,6 +438,7 @@
"tourism": "Tourism", "tourism": "Tourism",
"trail": "{n, plural, one {Szlak} few {Szlaki} many {Szlaków}=1 {Szlak} other {Szlaki}}", "trail": "{n, plural, one {Szlak} few {Szlaki} many {Szlaków}=1 {Szlak} other {Szlaki}}",
"trail-copied-successfully": "", "trail-copied-successfully": "",
"trail-has-no-gpx": "",
"trail-not-in-list": "", "trail-not-in-list": "",
"trail-not-shared": "Szlak nie udostępniony", "trail-not-shared": "Szlak nie udostępniony",
"trail-saved-successfully": "Szlak pomyślnie zapisany", "trail-saved-successfully": "Szlak pomyślnie zapisany",
@@ -440,6 +451,7 @@
"upload-gpx": "Importuj GPX", "upload-gpx": "Importuj GPX",
"upload-new-file": "Prześlij nowy plik", "upload-new-file": "Prześlij nowy plik",
"uploaded": "wgrany", "uploaded": "wgrany",
"uploaded-trail-to-hammerhead": "",
"use-hills": "Use hills", "use-hills": "Use hills",
"use-roads": "Użyj dróg", "use-roads": "Użyj dróg",
"username": "Nazwa Użytkownika", "username": "Nazwa Użytkownika",

View File

@@ -71,6 +71,7 @@
"clear-all": "Clear all", "clear-all": "Clear all",
"climbing": "Climbing", "climbing": "Climbing",
"close": "Fechar", "close": "Fechar",
"collapse-trail-list": "",
"comment": "{n, plural, =1 {Comentário} other {Comentários}}", "comment": "{n, plural, =1 {Comentário} other {Comentários}}",
"completed": "Completada", "completed": "Completada",
"completed-a-trail": "completed a trail", "completed-a-trail": "completed a trail",
@@ -147,6 +148,7 @@
"error-exporting-trail": "Erro na exportação do percurso", "error-exporting-trail": "Erro na exportação do percurso",
"error-generating-token": "", "error-generating-token": "",
"error-liking-trail": "Error liking trail", "error-liking-trail": "Error liking trail",
"error-logging-in-to-hammerhead": "",
"error-logging-in-to-komoot": "Error logging in to komoot", "error-logging-in-to-komoot": "Error logging in to komoot",
"error-posting-comment": "Error posting comment", "error-posting-comment": "Error posting comment",
"error-printing-map": "Erro na impressão do mapa", "error-printing-map": "Erro na impressão do mapa",
@@ -154,10 +156,14 @@
"error-saving-list": "Erro ao gravar lista", "error-saving-list": "Erro ao gravar lista",
"error-saving-trail": "Erro ao gravar percurso", "error-saving-trail": "Erro ao gravar percurso",
"error-setting-up-integration": "Error setting up strava integration", "error-setting-up-integration": "Error setting up strava integration",
"error-updating-hammerhead-integration": "",
"error-updating-komoot-integration": "",
"error-updating-password": "Erro ao atualizar password", "error-updating-password": "Erro ao atualizar password",
"error-updating-strava-integration": "Error updating komoot integration", "error-updating-strava-integration": "Error updating komoot integration",
"error-uploading-trail-to-hammerhead": "",
"est-duration": "Duração prevista", "est-duration": "Duração prevista",
"everyone-with-the-link": "Everyone with the link", "everyone-with-the-link": "Everyone with the link",
"expand-trail-list": "",
"expiration": "", "expiration": "",
"expires": "", "expires": "",
"explore": "Explorar", "explore": "Explorar",
@@ -194,6 +200,7 @@
"get-started": "Get started", "get-started": "Get started",
"grid": "Grelha", "grid": "Grelha",
"grocery-store": "Grocery store", "grocery-store": "Grocery store",
"hammerhead-integration-after-date-hint": "",
"heading": "Heading", "heading": "Heading",
"height": "Height", "height": "Height",
"help": "Ajuda", "help": "Ajuda",
@@ -209,11 +216,13 @@
"hut": "Hut", "hut": "Hut",
"hybrid": "Hybrid", "hybrid": "Hybrid",
"icon": "Ícone", "icon": "Ícone",
"ignore-trails-before-date": "",
"imperial": "Imperial", "imperial": "Imperial",
"import": "Importar", "import": "Importar",
"import-hint": "Selecionar ou arrastar ficheiros GPX, FIT, KML ou TCX para aqui...", "import-hint": "Selecionar ou arrastar ficheiros GPX, FIT, KML ou TCX para aqui...",
"include-description": "Incluir descrição", "include-description": "Incluir descrição",
"include-waypoints": "Incluir pontos de passagem", "include-waypoints": "Incluir pontos de passagem",
"integration-description-hammerhead": "",
"integration-description-komoot": "Syncs your komoot tours with wanderer in regular intervals.", "integration-description-komoot": "Syncs your komoot tours with wanderer in regular intervals.",
"integration-description-strava": "Syncs your strava routes & activities with wanderer in regular intervals.", "integration-description-strava": "Syncs your strava routes & activities with wanderer in regular intervals.",
"integration-disabled": "integration disabled", "integration-disabled": "integration disabled",
@@ -370,6 +379,7 @@
"search-trails": "Procurar trilhos", "search-trails": "Procurar trilhos",
"select-list": "Selecionar lista", "select-list": "Selecionar lista",
"selected": "selected", "selected": "selected",
"send-to": "",
"set-private": "", "set-private": "",
"set-public": "", "set-public": "",
"settings": "Definições", "settings": "Definições",
@@ -428,6 +438,7 @@
"tourism": "Tourism", "tourism": "Tourism",
"trail": "{n, plural, =1 {Percurso} other {Percursos}}", "trail": "{n, plural, =1 {Percurso} other {Percursos}}",
"trail-copied-successfully": "", "trail-copied-successfully": "",
"trail-has-no-gpx": "",
"trail-not-in-list": "", "trail-not-in-list": "",
"trail-not-shared": "Não partilhado com ninguém", "trail-not-shared": "Não partilhado com ninguém",
"trail-saved-successfully": "Percurso gravado com sucesso", "trail-saved-successfully": "Percurso gravado com sucesso",
@@ -440,6 +451,7 @@
"upload-gpx": "Carregar GPX", "upload-gpx": "Carregar GPX",
"upload-new-file": "Upload new file", "upload-new-file": "Upload new file",
"uploaded": "carregado", "uploaded": "carregado",
"uploaded-trail-to-hammerhead": "",
"use-hills": "Use hills", "use-hills": "Use hills",
"use-roads": "Use Roads", "use-roads": "Use Roads",
"username": "Nome de utilizador", "username": "Nome de utilizador",

View File

@@ -71,6 +71,7 @@
"clear-all": "Очистить всё", "clear-all": "Очистить всё",
"climbing": "Climbing", "climbing": "Climbing",
"close": "Закрыть", "close": "Закрыть",
"collapse-trail-list": "",
"comment": "{n, plural, =1 {Комментарий} other {Комментарии}}", "comment": "{n, plural, =1 {Комментарий} other {Комментарии}}",
"completed": "Завершено", "completed": "Завершено",
"completed-a-trail": "завершил(ла) трек", "completed-a-trail": "завершил(ла) трек",
@@ -147,6 +148,7 @@
"error-exporting-trail": "Ошибка экспорта трека", "error-exporting-trail": "Ошибка экспорта трека",
"error-generating-token": "", "error-generating-token": "",
"error-liking-trail": "Error liking trail", "error-liking-trail": "Error liking trail",
"error-logging-in-to-hammerhead": "",
"error-logging-in-to-komoot": "Ошибка входа в Komoot", "error-logging-in-to-komoot": "Ошибка входа в Komoot",
"error-posting-comment": "Ошибка отправки комментария", "error-posting-comment": "Ошибка отправки комментария",
"error-printing-map": "Ошибка печати карты", "error-printing-map": "Ошибка печати карты",
@@ -154,10 +156,14 @@
"error-saving-list": "Ошибка сохранения списка", "error-saving-list": "Ошибка сохранения списка",
"error-saving-trail": "Ошибка сохранения трека", "error-saving-trail": "Ошибка сохранения трека",
"error-setting-up-integration": "Ошибка настройки {provider}", "error-setting-up-integration": "Ошибка настройки {provider}",
"error-updating-hammerhead-integration": "",
"error-updating-komoot-integration": "",
"error-updating-password": "Ошибка изменения пароля", "error-updating-password": "Ошибка изменения пароля",
"error-updating-strava-integration": "Ошибка обновления Strava", "error-updating-strava-integration": "Ошибка обновления Strava",
"error-uploading-trail-to-hammerhead": "",
"est-duration": "Продолжительность", "est-duration": "Продолжительность",
"everyone-with-the-link": "Everyone with the link", "everyone-with-the-link": "Everyone with the link",
"expand-trail-list": "",
"expiration": "", "expiration": "",
"expires": "", "expires": "",
"explore": "Изучить", "explore": "Изучить",
@@ -194,6 +200,7 @@
"get-started": "Get started", "get-started": "Get started",
"grid": "Сетка", "grid": "Сетка",
"grocery-store": "Продуктовый магазин", "grocery-store": "Продуктовый магазин",
"hammerhead-integration-after-date-hint": "",
"heading": "Heading", "heading": "Heading",
"height": "Высота", "height": "Высота",
"help": "Помощь", "help": "Помощь",
@@ -209,11 +216,13 @@
"hut": "Хижина", "hut": "Хижина",
"hybrid": "Гибрид", "hybrid": "Гибрид",
"icon": "Иконка", "icon": "Иконка",
"ignore-trails-before-date": "",
"imperial": "Имперская", "imperial": "Имперская",
"import": "Импорт", "import": "Импорт",
"import-hint": "Перетащите GPX, FIT, KML или TCX файлы сюда...", "import-hint": "Перетащите GPX, FIT, KML или TCX файлы сюда...",
"include-description": "Добавить описание", "include-description": "Добавить описание",
"include-waypoints": "Include waypoints", "include-waypoints": "Include waypoints",
"integration-description-hammerhead": "",
"integration-description-komoot": "Синхронизирует ваши данные с Komoot.", "integration-description-komoot": "Синхронизирует ваши данные с Komoot.",
"integration-description-strava": "Синхронизирует ваши данные со Strava.", "integration-description-strava": "Синхронизирует ваши данные со Strava.",
"integration-disabled": "интеграция отключена", "integration-disabled": "интеграция отключена",
@@ -370,6 +379,7 @@
"search-trails": "Поиск треков", "search-trails": "Поиск треков",
"select-list": "Выбрать список", "select-list": "Выбрать список",
"selected": "selected", "selected": "selected",
"send-to": "",
"set-private": "", "set-private": "",
"set-public": "", "set-public": "",
"settings": "Настройки", "settings": "Настройки",
@@ -428,6 +438,7 @@
"tourism": "Туризм", "tourism": "Туризм",
"trail": "{n, plural, =1 {Трек} other {Треки}}", "trail": "{n, plural, =1 {Трек} other {Треки}}",
"trail-copied-successfully": "", "trail-copied-successfully": "",
"trail-has-no-gpx": "",
"trail-not-in-list": "", "trail-not-in-list": "",
"trail-not-shared": "Нет общего доступа", "trail-not-shared": "Нет общего доступа",
"trail-saved-successfully": "Трек сохранён", "trail-saved-successfully": "Трек сохранён",
@@ -440,6 +451,7 @@
"upload-gpx": "Загрузить GPX", "upload-gpx": "Загрузить GPX",
"upload-new-file": "Загрузить новый файл", "upload-new-file": "Загрузить новый файл",
"uploaded": "загружено", "uploaded": "загружено",
"uploaded-trail-to-hammerhead": "",
"use-hills": "Use hills", "use-hills": "Use hills",
"use-roads": "Использование дорог", "use-roads": "Использование дорог",
"username": "Никнейм", "username": "Никнейм",

View File

@@ -71,6 +71,7 @@
"clear-all": "清除全部", "clear-all": "清除全部",
"climbing": "攀爬", "climbing": "攀爬",
"close": "关闭", "close": "关闭",
"collapse-trail-list": "",
"comment": "{n, plural, =1 {评论} other {评论}}", "comment": "{n, plural, =1 {评论} other {评论}}",
"completed": "已完成", "completed": "已完成",
"completed-a-trail": "完成轨迹", "completed-a-trail": "完成轨迹",
@@ -147,6 +148,7 @@
"error-exporting-trail": "导出路线失败", "error-exporting-trail": "导出路线失败",
"error-generating-token": "", "error-generating-token": "",
"error-liking-trail": "赞轨迹时出错", "error-liking-trail": "赞轨迹时出错",
"error-logging-in-to-hammerhead": "",
"error-logging-in-to-komoot": "登录到 komoot 时出错", "error-logging-in-to-komoot": "登录到 komoot 时出错",
"error-posting-comment": "发布评论时出错", "error-posting-comment": "发布评论时出错",
"error-printing-map": "打印地图失败", "error-printing-map": "打印地图失败",
@@ -154,10 +156,14 @@
"error-saving-list": "保存列表失败", "error-saving-list": "保存列表失败",
"error-saving-trail": "保存路线失败", "error-saving-trail": "保存路线失败",
"error-setting-up-integration": "Error setting up strava integration", "error-setting-up-integration": "Error setting up strava integration",
"error-updating-hammerhead-integration": "",
"error-updating-komoot-integration": "",
"error-updating-password": "更新密码失败", "error-updating-password": "更新密码失败",
"error-updating-strava-integration": "更新 komoot 集成出错", "error-updating-strava-integration": "更新 komoot 集成出错",
"error-uploading-trail-to-hammerhead": "",
"est-duration": "预计时长", "est-duration": "预计时长",
"everyone-with-the-link": "Everyone with the link", "everyone-with-the-link": "Everyone with the link",
"expand-trail-list": "",
"expiration": "", "expiration": "",
"expires": "", "expires": "",
"explore": "探索", "explore": "探索",
@@ -194,6 +200,7 @@
"get-started": "Get started", "get-started": "Get started",
"grid": "网格", "grid": "网格",
"grocery-store": "杂货店", "grocery-store": "杂货店",
"hammerhead-integration-after-date-hint": "",
"heading": "标题", "heading": "标题",
"height": "高度", "height": "高度",
"help": "帮助", "help": "帮助",
@@ -209,11 +216,13 @@
"hut": "小屋", "hut": "小屋",
"hybrid": "混合", "hybrid": "混合",
"icon": "图标", "icon": "图标",
"ignore-trails-before-date": "",
"imperial": "英制", "imperial": "英制",
"import": "导入", "import": "导入",
"import-hint": "在此选择或拖拽GPX、FIT、KML或TCX文件...", "import-hint": "在此选择或拖拽GPX、FIT、KML或TCX文件...",
"include-description": "包含描述", "include-description": "包含描述",
"include-waypoints": "包括途径点", "include-waypoints": "包括途径点",
"integration-description-hammerhead": "",
"integration-description-komoot": "定期与komoot同步您的wanderer。", "integration-description-komoot": "定期与komoot同步您的wanderer。",
"integration-description-strava": "定期与strava同步您的wanderer路线和活动。", "integration-description-strava": "定期与strava同步您的wanderer路线和活动。",
"integration-disabled": "整合已停用", "integration-disabled": "整合已停用",
@@ -370,6 +379,7 @@
"search-trails": "搜索路线", "search-trails": "搜索路线",
"select-list": "选择列表", "select-list": "选择列表",
"selected": "已选", "selected": "已选",
"send-to": "",
"set-private": "", "set-private": "",
"set-public": "", "set-public": "",
"settings": "设置", "settings": "设置",
@@ -428,6 +438,7 @@
"tourism": "旅游", "tourism": "旅游",
"trail": "{n, plural, =1 {路线} other {路线}}", "trail": "{n, plural, =1 {路线} other {路线}}",
"trail-copied-successfully": "", "trail-copied-successfully": "",
"trail-has-no-gpx": "",
"trail-not-in-list": "", "trail-not-in-list": "",
"trail-not-shared": "未与任何人分享", "trail-not-shared": "未与任何人分享",
"trail-saved-successfully": "路线保存成功", "trail-saved-successfully": "路线保存成功",
@@ -440,6 +451,7 @@
"upload-gpx": "上传 GPX", "upload-gpx": "上传 GPX",
"upload-new-file": "上传新文件", "upload-new-file": "上传新文件",
"uploaded": "已上传", "uploaded": "已上传",
"uploaded-trail-to-hammerhead": "",
"use-hills": "使用山地", "use-hills": "使用山地",
"use-roads": "使用道路", "use-roads": "使用道路",
"username": "用户名", "username": "用户名",

View File

@@ -37,7 +37,10 @@
if (!browser) { if (!browser) {
return; return;
} }
localStorage.setItem(TRAIL_LIST_FILTER_STORAGE_KEY, JSON.stringify(filter)); localStorage.setItem(
TRAIL_LIST_FILTER_STORAGE_KEY,
JSON.stringify(filter),
);
} }
let filterExpanded: boolean = $state(true); let filterExpanded: boolean = $state(true);
@@ -45,7 +48,8 @@
let loading: boolean = $state(true); let loading: boolean = $state(true);
let filter: TrailFilter = $state(restoreStoredFilter(page.data.filter)); let filter: TrailFilter = $state(restoreStoredFilter(page.data.filter));
const pagination: { page: number; totalPages: number, items: number } = $state({ const pagination: { page: number; totalPages: number; items: number } =
$state({
page: page.url.searchParams.has("page") page: page.url.searchParams.has("page")
? parseInt(page.url.searchParams.get("page")!) ? parseInt(page.url.searchParams.get("page")!)
: 1, : 1,
@@ -53,6 +57,10 @@
items: 25, items: 25,
}); });
let trails: Trail[] = $state([]); let trails: Trail[] = $state([]);
let trailsFullWidth = $state(false);
let widthPreferences: Record<string, boolean> = $state({});
let currentDisplayMode: string = $state("cards");
const widthPreferenceStorageKey = "trailWidthPreferences";
export const snapshot: Snapshot<TrailFilter> = { export const snapshot: Snapshot<TrailFilter> = {
capture: () => filter, capture: () => filter,
@@ -66,8 +74,60 @@
if (window.innerWidth < 768) { if (window.innerWidth < 768) {
filterExpanded = false; filterExpanded = false;
} }
loadWidthPreferences();
}); });
function loadWidthPreferences() {
if (typeof localStorage === "undefined") {
return;
}
try {
const stored = localStorage.getItem(widthPreferenceStorageKey);
if (stored) {
const parsed = JSON.parse(stored);
if (parsed && typeof parsed === "object") {
widthPreferences = parsed;
}
}
} catch (err) {
console.warn("Failed to parse trail width preferences", err);
}
applyWidthPreference(currentDisplayMode);
}
function applyWidthPreference(mode: string) {
trailsFullWidth = widthPreferences[mode] ?? false;
}
function persistWidthPreferences() {
if (typeof localStorage === "undefined") {
return;
}
try {
localStorage.setItem(
widthPreferenceStorageKey,
JSON.stringify(widthPreferences),
);
} catch (err) {
console.warn("Failed to persist trail width preferences", err);
}
}
function updateWidthPreference(mode: string, value: boolean) {
widthPreferences = { ...widthPreferences, [mode]: value };
persistWidthPreferences();
}
function handleDisplayModeChange(mode: string) {
currentDisplayMode = mode;
applyWidthPreference(mode);
}
function toggleTrailWidth() {
trailsFullWidth = !trailsFullWidth;
updateWidthPreference(currentDisplayMode, trailsFullWidth);
}
beforeNavigate(({ to }) => { beforeNavigate(({ to }) => {
if (!browser || !to?.url) { if (!browser || !to?.url) {
return; return;
@@ -90,7 +150,11 @@
loading = false; loading = false;
} }
async function paginate(newPage: number, items: number, scrollToTop: boolean = true) { async function paginate(
newPage: number,
items: number,
scrollToTop: boolean = true,
) {
pagination.page = newPage; pagination.page = newPage;
try { try {
@@ -130,7 +194,10 @@
} }
page.url.searchParams.set("page", newPage.toString()); page.url.searchParams.set("page", newPage.toString());
goto(`?${page.url.searchParams.toString()}`, { keepFocus: true, noScroll: !scrollToTop }); goto(`?${page.url.searchParams.toString()}`, {
keepFocus: true,
noScroll: !scrollToTop,
});
} }
async function doPaginate(newPage: number, items: number) { async function doPaginate(newPage: number, items: number) {
@@ -149,7 +216,7 @@
</svelte:head> </svelte:head>
<main <main
class="grid grid-cols-1 md:grid-cols-[300px_1fr] items-start gap-8 max-w-7xl mx-6 md:mx-auto" class={`grid grid-cols-1 md:grid-cols-[300px_1fr] items-start gap-8 mx-6 ${trailsFullWidth ? "md:mx-6 max-w-full" : "md:mx-auto max-w-7xl"}`}
> >
<TrailFilterPanel <TrailFilterPanel
categories={page.data.categories} categories={page.data.categories}
@@ -164,5 +231,24 @@
{pagination} {pagination}
onupdate={() => handleFilterUpdate(false)} onupdate={() => handleFilterUpdate(false)}
onpagination={paginate} onpagination={paginate}
></TrailList> ondisplaychange={handleDisplayModeChange}
>
{#snippet trailWidthToggleSnippet()}
<button
type="button"
class="btn-icon"
onclick={toggleTrailWidth}
aria-pressed={trailsFullWidth}
aria-label={trailsFullWidth
? $_("collapse-trail-list")
: $_("expand-trail-list")}
title={trailsFullWidth
? $_("collapse-trail-list")
: $_("expand-trail-list")}
>
<i class="fa {trailsFullWidth ? 'fa-compress' : 'fa-expand'}"
></i>
</button>
{/snippet}
</TrailList>
</main> </main>