diff --git a/website/src/lib/assets/layers.ts b/website/src/lib/assets/layers.ts
index edd1fab1..8f2defa2 100644
--- a/website/src/lib/assets/layers.ts
+++ b/website/src/lib/assets/layers.ts
@@ -384,13 +384,13 @@ export const basemapTree: LayerTreeType = {
bulgaria: ['bgMountains'],
finland: ['finlandTopo'],
france: ['ignPlanV2', 'ignFrScan25', 'ignSatellite'],
- newZealand: ['linz', 'linzTopo'],
+ new_zealand: ['linz', 'linzTopo'],
norway: ['norwayTopo'],
spain: ['ignEs'],
sweden: ['swedenTopo'],
switzerland: ['swisstopo'],
- unitedKingdom: ['ordnanceSurvey'],
- unitedStates: ['usgs'],
+ united_kingdom: ['ordnanceSurvey'],
+ united_states: ['usgs'],
},
},
}
@@ -399,7 +399,7 @@ export const overlayTree: LayerTreeType = {
overlays: {
world: {
cyclOSM: ['cyclOSMlite'],
- waymarkedTrails: ['waymarkedTrailsHiking', 'waymarkedTrailsCycling', 'waymarkedTrailsMTB', 'waymarkedTrailsSkating', 'waymarkedTrailsHorseRiding', 'waymarkedTrailsWinter']
+ waymarked_trails: ['waymarkedTrailsHiking', 'waymarkedTrailsCycling', 'waymarkedTrailsMTB', 'waymarkedTrailsSkating', 'waymarkedTrailsHorseRiding', 'waymarkedTrailsWinter']
},
countries: {
france: ['ignFrCadastre', 'ignSlope'],
diff --git a/website/src/lib/components/Map.svelte b/website/src/lib/components/Map.svelte
index 2398f12a..32261336 100644
--- a/website/src/lib/components/Map.svelte
+++ b/website/src/lib/components/Map.svelte
@@ -8,6 +8,8 @@
import '@mapbox/mapbox-gl-geocoder/dist/mapbox-gl-geocoder.css';
import { map, settings } from '$lib/stores';
+ import { locale } from 'svelte-i18n';
+ import { get } from 'svelte/store';
mapboxgl.accessToken =
'pk.eyJ1IjoiZ3B4c3R1ZGlvIiwiYSI6ImNrdHVoM2pjNTBodmUycG1yZTNwcnJ3MzkifQ.YZnNs9s9oCQPzoXAWs_SLg';
@@ -54,7 +56,7 @@
style: { version: 8, sources: {}, layers: [] },
projection: { name: 'mercator' },
hash: true,
- language: 'auto',
+ language: get(locale),
attributionControl: false,
logoPosition: 'bottom-right',
boxZoom: false
@@ -73,7 +75,8 @@
accessToken: mapboxgl.accessToken,
mapboxgl: mapboxgl,
collapsed: true,
- flyTo: fitBoundsOptions
+ flyTo: fitBoundsOptions,
+ language: get(locale)
})
);
diff --git a/website/src/lib/components/Menu.svelte b/website/src/lib/components/Menu.svelte
index 148e3bd7..3c3a15ad 100644
--- a/website/src/lib/components/Menu.svelte
+++ b/website/src/lib/components/Menu.svelte
@@ -49,112 +49,112 @@
- Load from desktop... ⌘O
+
+ {$_('menu.load_desktop')}
+ ⌘O
- Load from Google Drive...
- Duplicate ⌘D
+
+ {$_('menu.duplicate')}
+ ⌘D
- Export... ⌘S
+
+ {$_('menu.export')}
+ ⌘S
- Export all... ⇧⌘S
+
+ {$_('menu.export_all')}
+ ⇧⌘S
- Edit
+ {$_('menu.edit')}
- Undo ⌘Z
+
+ {$_('menu.undo')}
+ ⌘Z
- Redo ⇧⌘Z
+
+ {$_('menu.redo')}
+ ⇧⌘Z
- Delete ⌘⌫
+ {$_('menu.delete')}
+ ⌘⌫
- Delete all⇧⌘⌫
+ {$_('menu.delete_all')}⇧⌘⌫
- Help
-
-
- Quick help ⌘H
-
- User guide
-
-
-
- Settings
+ {$_('menu.settings')}
- Distance units
+ {$_('menu.distance_units')}
- Metric
- Imperial
+ {$_('menu.metric')}
+ {$_('menu.imperial')}
- Velocity units
+ {$_('menu.velocity_units')}
- Speed
- Pace
+ {$_('quantities.speed')}
+ {$_('quantities.pace')}
- Temperature units
+ {$_('menu.temperature_units')}
- Celsius
- Fahrenheit
+ {$_('menu.celsius')}
+ {$_('menu.fahrenheit')}
- Show distance markers
+ {$_('menu.distance_markers')}
- Show direction markers
+ {$_('menu.direction_markers')}
{$_('menu.about')}
{$_('menu.donate')}
diff --git a/website/src/lib/components/layer-control/LayerControlSettings.svelte b/website/src/lib/components/layer-control/LayerControlSettings.svelte
index f69691c5..5f445bd1 100644
--- a/website/src/lib/components/layer-control/LayerControlSettings.svelte
+++ b/website/src/lib/components/layer-control/LayerControlSettings.svelte
@@ -17,25 +17,26 @@
opacities,
defaultBasemap
} from '$lib/assets/layers';
+
+ import { _ } from 'svelte-i18n';
- Layer settings
+ {$_('layers.settings')}
- Select the map layers you want to show in the interface, add custom ones, and adjust their
- settings.
+ {$_('layers.settings_help')}
- Layer selection
+ {$_('layers.selection')}
- Custom layers
+ {$_('layers.custom_layers')}
TODO custom layer list + new custom layer form
- Heatmap
+ {$_('layers.heatmap')}
- Points of interest
+ {$_('layers.pois')}
diff --git a/website/src/lib/components/layer-control/LayerTreeNode.svelte b/website/src/lib/components/layer-control/LayerTreeNode.svelte
index 0b7e3c53..6a3fe383 100644
--- a/website/src/lib/components/layer-control/LayerTreeNode.svelte
+++ b/website/src/lib/components/layer-control/LayerTreeNode.svelte
@@ -8,6 +8,8 @@
import { type CollapsedInfoTreeType, type LayerTreeType } from '$lib/assets/layers';
+ import { _ } from 'svelte-i18n';
+
export let name: string;
export let node: LayerTreeType;
export let multiple: boolean = false;
@@ -60,7 +62,7 @@
}}
/>
{/if}
-
+
{/each}
@@ -73,7 +75,7 @@
variant="ghost"
class="w-full flex flex-row justify-between py-0 px-1 h-fit hover:bg-background"
>
- {id}
+ {$_(`layers.label.${id}`)}
{#if open.children[id].self}
{:else}
diff --git a/website/src/lib/components/toolbar/Toolbar.svelte b/website/src/lib/components/toolbar/Toolbar.svelte
index 0eb45f5a..d1ddd63a 100644
--- a/website/src/lib/components/toolbar/Toolbar.svelte
+++ b/website/src/lib/components/toolbar/Toolbar.svelte
@@ -15,6 +15,8 @@
FolderTree
} from 'lucide-svelte';
+ import { _ } from 'svelte-i18n';
+
let currentTool: string | null = null;
function getToggleTool(tool: string) {
@@ -33,45 +35,43 @@
>
- Edit the track points
+ {$_('toolbar.routing_tooltip')}
- Change time and speed data
+ {$_('toolbar.time_tooltip')}
- Reverse the file
+ {$_('toolbar.reverse_tooltip')}
- Merge with another file
+ {$_('toolbar.merge_tooltip')}
- Extract the tracks or track segments to new files
+ {$_('toolbar.extract_tooltip')}
- Create a new point of interest
+ {$_('toolbar.waypoint_tooltip')}
- Reduce the number of track points
+ {$_('toolbar.reduce_tooltip')}
- Clean track points and points of interest with a rectangle selection
+ {$_('toolbar.clean_tooltip')}
- Change the styling of the trace
+ {$_('toolbar.style_tooltip')}
- Manage the file structure
+ {$_('toolbar.structure_tooltip')}
{#if currentTool == 'routing'}
diff --git a/website/src/locales/en.json b/website/src/locales/en.json
index 3fdc666e..993b2db5 100644
--- a/website/src/locales/en.json
+++ b/website/src/locales/en.json
@@ -1,7 +1,98 @@
{
"menu": {
"file": "File",
- "new": "New"
+ "new": "New",
+ "load_desktop": "Load from desktop...",
+ "load_drive": "Load from Google Drive...",
+ "duplicate": "Duplicate",
+ "export": "Export...",
+ "export_all": "Export all...",
+ "edit": "Edit",
+ "undo": "Undo",
+ "redo": "Redo",
+ "delete": "Delete",
+ "delete_all": "Delete all",
+ "settings": "Settings",
+ "distance_units": "Distance units",
+ "metric": "Metric",
+ "imperial": "Imperial",
+ "velocity_units": "Velocity units",
+ "temperature_units": "Temperature units",
+ "celsius": "Celsius",
+ "fahrenheit": "Fahrenheit",
+ "distance_markers": "Show distance markers",
+ "direction_markers": "Show direction markers",
+ "about": "About",
+ "donate": "Donate"
+ },
+ "toolbar": {
+ "routing_tooltip": "Edit the route",
+ "time_tooltip": "Change the time and speed data",
+ "reverse_tooltip": "Reverse the direction",
+ "merge_tooltip": "Merge files together",
+ "extract_tooltip": "Extract inner tracks or segments",
+ "waypoint_tooltip": "Create a new point of interest",
+ "reduce_tooltip": "Reduce the number of points",
+ "clean_tooltip": "Clean track points and points of interest with a rectangle selection",
+ "style_tooltip": "Change the style of the route",
+ "structure_tooltip": "Manage the file structure"
+ },
+ "layers": {
+ "manage": "Manage layers",
+ "settings": "Layer settings",
+ "settings_help": "Select the map layers you want to show in the interface, add custom ones, and adjust their settings.",
+ "selection": "Layer selection",
+ "custom_layers": "Custom layers",
+ "heatmap": "Heatmap",
+ "pois": "Points of interest",
+ "label": {
+ "basemaps": "Basemaps",
+ "overlays": "Overlays",
+ "world": "World",
+ "countries": "Countries",
+ "bulgaria": "Bulgaria",
+ "finland": "Finland",
+ "france": "France",
+ "new_zealand": "New Zealand",
+ "norway": "Norway",
+ "spain": "Spain",
+ "sweden": "Sweden",
+ "switzerland": "Switzerland",
+ "united_kingdom": "United Kingdom",
+ "united_states": "United States",
+ "mapboxOutdoors": "Mapbox Outdoors",
+ "mapboxSatellite": "Mapbox Satellite",
+ "openStreetMap": "OpenStreetMap",
+ "openTopoMap": "OpenTopoMap",
+ "openHikingMap": "OpenHikingMap",
+ "cyclOSM": "CyclOSM",
+ "linz": "LINZ Topo",
+ "linzTopo": "LINZ Topo50",
+ "swisstopo": "swisstopo",
+ "ignPlanV2": "IGN Plan",
+ "ignFrScan25": "IGN SCAN25",
+ "ignSatellite": "IGN Satellite",
+ "ignEs": "IGN",
+ "ordnanceSurvey": "Ordnance Survey",
+ "norwayTopo": "Topografisk Norgeskart 4",
+ "swedenTopo": "Lantmäteriet Topo",
+ "finlandTopo": "Lantmäteriverket Terrängkarta",
+ "bgMountains": "BGMountains",
+ "usgs": "USGS",
+ "cyclOSMlite": "CyclOSM Lite",
+ "swisstopoSlope": "swisstopo Slope",
+ "swisstopoCycling": "swisstopo Cycling",
+ "swisstopoMountainBike": "swisstopo MTB",
+ "ignFrCadastre": "IGN Cadastre",
+ "ignSlope": "IGN Slope",
+ "waymarked_trails": "Waymarked Trails",
+ "waymarkedTrailsHiking": "Hiking",
+ "waymarkedTrailsCycling": "Cycling",
+ "waymarkedTrailsMTB": "MTB",
+ "waymarkedTrailsSkating": "Skating",
+ "waymarkedTrailsHorseRiding": "Horse Riding",
+ "waymarkedTrailsWinter": "Winter"
+ }
},
"quantities": {
"distance": "Distance",