mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2026-06-13 02:26:32 +00:00
Compare commits
2 Commits
l10n
..
7f8751fa38
| Author | SHA1 | Date | |
|---|---|---|---|
| 7f8751fa38 | |||
| befcba00b4 |
@@ -45,26 +45,6 @@
|
|||||||
settings.initialize();
|
settings.initialize();
|
||||||
|
|
||||||
function applyOptions() {
|
function applyOptions() {
|
||||||
let downloads: Promise<GPXFile | null>[] = getFilesFromEmbeddingOptions(options).map(
|
|
||||||
(url) => {
|
|
||||||
return fetch(url)
|
|
||||||
.then((response) => response.blob())
|
|
||||||
.then((blob) => new File([blob], url.split('/').pop() ?? url))
|
|
||||||
.then(loadFile);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
Promise.all(downloads).then((answers) => {
|
|
||||||
const files = answers.filter((file) => file !== null) as GPXFile[];
|
|
||||||
let ids: string[] = [];
|
|
||||||
files.forEach((file, index) => {
|
|
||||||
let id = `gpx-${index}-embed`;
|
|
||||||
file._data.id = id;
|
|
||||||
ids.push(id);
|
|
||||||
});
|
|
||||||
fileStateCollection.setEmbeddedFiles(files);
|
|
||||||
$fileOrder = ids;
|
|
||||||
selection.selectAll();
|
|
||||||
});
|
|
||||||
if (allowedEmbeddingBasemaps.includes(options.basemap)) {
|
if (allowedEmbeddingBasemaps.includes(options.basemap)) {
|
||||||
$currentBasemap = options.basemap;
|
$currentBasemap = options.basemap;
|
||||||
}
|
}
|
||||||
@@ -90,6 +70,27 @@
|
|||||||
].filter((dataset) => dataset !== null)
|
].filter((dataset) => dataset !== null)
|
||||||
);
|
);
|
||||||
elevationFill.set(options.elevation.fill == 'none' ? undefined : options.elevation.fill);
|
elevationFill.set(options.elevation.fill == 'none' ? undefined : options.elevation.fill);
|
||||||
|
|
||||||
|
let downloads: Promise<GPXFile | null>[] = getFilesFromEmbeddingOptions(options).map(
|
||||||
|
(url) => {
|
||||||
|
return fetch(url)
|
||||||
|
.then((response) => response.blob())
|
||||||
|
.then((blob) => new File([blob], url.split('/').pop() ?? url))
|
||||||
|
.then(loadFile);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
Promise.all(downloads).then((answers) => {
|
||||||
|
const files = answers.filter((file) => file !== null) as GPXFile[];
|
||||||
|
let ids: string[] = [];
|
||||||
|
files.forEach((file, index) => {
|
||||||
|
let id = `gpx-${index}-embed`;
|
||||||
|
file._data.id = id;
|
||||||
|
ids.push(id);
|
||||||
|
});
|
||||||
|
fileStateCollection.setEmbeddedFiles(files);
|
||||||
|
$fileOrder = ids;
|
||||||
|
selection.selectAll();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
$effect(() => {
|
$effect(() => {
|
||||||
|
|||||||
@@ -88,6 +88,14 @@
|
|||||||
<span class="font-mono">{key}</span>
|
<span class="font-mono">{key}</span>
|
||||||
{#if key === 'website' || key.startsWith('website:') || key.endsWith(':website') || key === 'contact:facebook' || key === 'contact:instagram' || key === 'contact:twitter'}
|
{#if key === 'website' || key.startsWith('website:') || key.endsWith(':website') || key === 'contact:facebook' || key === 'contact:instagram' || key === 'contact:twitter'}
|
||||||
<a href={value} target="_blank" class="text-link underline">{value}</a>
|
<a href={value} target="_blank" class="text-link underline">{value}</a>
|
||||||
|
{:else if key === 'wikipedia' || key.startsWith('wikipedia:') || key.endsWith(':wikipedia')}
|
||||||
|
<a
|
||||||
|
href="https://wikipedia.org/wiki/{value}"
|
||||||
|
target="_blank"
|
||||||
|
class="text-link underline"
|
||||||
|
>
|
||||||
|
{value}
|
||||||
|
</a>
|
||||||
{:else if key === 'phone' || key === 'contact:phone'}
|
{:else if key === 'phone' || key === 'contact:phone'}
|
||||||
<a href={'tel:' + value} class="text-link underline">{value}</a>
|
<a href={'tel:' + value} class="text-link underline">{value}</a>
|
||||||
{:else if key === 'email' || key === 'contact:email'}
|
{:else if key === 'email' || key === 'contact:email'}
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ title: Instellingen
|
|||||||
|
|
||||||
Wijzig de eenheden die worden gebruikt om afstanden in de interface weer te geven.
|
Wijzig de eenheden die worden gebruikt om afstanden in de interface weer te geven.
|
||||||
|
|
||||||
### <Zap size="16" class="inline-block" style="margin-bottom: 2px" /> Snelheidseenheden
|
### <Zap size="16" class="inline-block" style="margin-bottom: 2px" /> Snelheids eenheden
|
||||||
|
|
||||||
Verander de eenheden die worden gebruikt om snelheden in de interface weer te geven.
|
Verander de eenheden die worden gebruikt om velocities in de interface weer te geven.
|
||||||
Je kunt kiezen tussen afstand per uur of minuten per afstand, wat geschikter kan zijn voor het uitvoeren van activiteiten.
|
Je kunt kiezen tussen afstand per uur of minuten per afstand, wat geschikter kan zijn voor het uitvoeren van activiteiten.
|
||||||
|
|
||||||
### <Thermometer size="16" class="inline-block" style="margin-bottom: 2px" /> Temperatuureenheden
|
### <Thermometer size="16" class="inline-block" style="margin-bottom: 2px" /> Temperatuureenheden
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ title: 地图控件
|
|||||||
<DocsLayers />
|
<DocsLayers />
|
||||||
<span class="text-sm text-center mt-2">
|
<span class="text-sm text-center mt-2">
|
||||||
|
|
||||||
鼠标悬停在地图上,可在地形图底图上方显示 <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails 徒步路线</a> 叠加层。
|
Hover over the map to show the <a href="https://hiking.waymarkedtrails.org" target="_blank">Waymarked Trails hiking</a> overlay on top of the topographic basemap.
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ title: 请求海拔数据
|
|||||||
|
|
||||||
<DocsNote>
|
<DocsNote>
|
||||||
|
|
||||||
海拔数据来自 <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a> ,
|
Elevation data is provided by <a href="https://mapterhorn.com" target="_blank">Mapterhorn</a>.
|
||||||
查阅 <a href="https://mapterhorn.com/attribution/" target="_blank">官方文档</a> 以了解海拔数据来源及其准确度。
|
You can learn more about its origin and accuracy in the <a href="https://mapterhorn.com/attribution/" target="_blank">documentation</a>.
|
||||||
|
|
||||||
</DocsNote>
|
</DocsNote>
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ export class BoundsManager {
|
|||||||
this._unsubscribes.push(
|
this._unsubscribes.push(
|
||||||
map.subscribe((map_) => {
|
map.subscribe((map_) => {
|
||||||
if (!map_) return;
|
if (!map_) return;
|
||||||
map_.fitBounds(this._bounds, { padding: 80, linear: true, easing: () => 1 });
|
map_.fitBounds(this._bounds, { padding: 80, linear: true, animate: false });
|
||||||
this.reset();
|
this.reset();
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|||||||
+22
-22
@@ -28,7 +28,7 @@
|
|||||||
"undo": "Anulează",
|
"undo": "Anulează",
|
||||||
"redo": "Refă",
|
"redo": "Refă",
|
||||||
"delete": "Șterge",
|
"delete": "Șterge",
|
||||||
"delete_all": "Șterge tot",
|
"delete_all": "Delete all",
|
||||||
"select_all": "Selectează tot",
|
"select_all": "Selectează tot",
|
||||||
"view": "Vizualizare",
|
"view": "Vizualizare",
|
||||||
"elevation_profile": "Profil de altitudine",
|
"elevation_profile": "Profil de altitudine",
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
"switch_basemap": "Comutați la harta de bază anterioară",
|
"switch_basemap": "Comutați la harta de bază anterioară",
|
||||||
"toggle_overlays": "Comută suprapunerile",
|
"toggle_overlays": "Comută suprapunerile",
|
||||||
"toggle_3d": "Comută 3D",
|
"toggle_3d": "Comută 3D",
|
||||||
"fullscreen": "Ecran complet",
|
"fullscreen": "Full screen",
|
||||||
"settings": "Setări",
|
"settings": "Setări",
|
||||||
"distance_units": "Unități de distanță",
|
"distance_units": "Unități de distanță",
|
||||||
"metric": "Metric",
|
"metric": "Metric",
|
||||||
@@ -62,46 +62,46 @@
|
|||||||
"more": "Mai multe...",
|
"more": "Mai multe...",
|
||||||
"donate": "Donați",
|
"donate": "Donați",
|
||||||
"ctrl": "Ctrl",
|
"ctrl": "Ctrl",
|
||||||
"click": "Clic",
|
"click": "Click",
|
||||||
"drag": "Drag",
|
"drag": "Drag",
|
||||||
"right_click_drag": "Right-click drag",
|
"right_click_drag": "Right-click drag",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"button": "Informații...",
|
"button": "Info...",
|
||||||
"name": "Nume",
|
"name": "Name",
|
||||||
"description": "Descriere",
|
"description": "Descriere",
|
||||||
"save": "Salvează"
|
"save": "Save"
|
||||||
},
|
},
|
||||||
"style": {
|
"style": {
|
||||||
"button": "Aspect...",
|
"button": "Aspect...",
|
||||||
"color": "Culoare",
|
"color": "Color",
|
||||||
"opacity": "Opacitate",
|
"opacity": "Opacitate",
|
||||||
"width": "Lățime"
|
"width": "Width"
|
||||||
},
|
},
|
||||||
"hide": "Ascunde",
|
"hide": "Ascunde",
|
||||||
"unhide": "Dezvăluie",
|
"unhide": "Dezvăluie",
|
||||||
"center": "Centrează",
|
"center": "Center",
|
||||||
"open_in": "Deschide în",
|
"open_in": "Open in",
|
||||||
"copy_coordinates": "Copiază coordonatele",
|
"copy_coordinates": "Copiază coordonatele",
|
||||||
"edit_osm": "Editează în OpenStreetMap"
|
"edit_osm": "Edit in OpenStreetMap"
|
||||||
},
|
},
|
||||||
"toolbar": {
|
"toolbar": {
|
||||||
"routing": {
|
"routing": {
|
||||||
"tooltip": "Planifică sau editează o rută",
|
"tooltip": "Planifică sau editează o rută",
|
||||||
"activity": "Activitate",
|
"activity": "Activitate",
|
||||||
"use_routing": "Rutare",
|
"use_routing": "Rutare",
|
||||||
"use_routing_tooltip": "Conectează puncte de ancorare prin rețeaua rutieră sau în linie dreaptă dacă este dezactivată",
|
"use_routing_tooltip": "Connect anchor points via road network, or in a straight line if disabled",
|
||||||
"allow_private": "Permite drumuri private",
|
"allow_private": "Allow private roads",
|
||||||
"reverse": {
|
"reverse": {
|
||||||
"button": "Inversează",
|
"button": "Reverse",
|
||||||
"tooltip": "Reverse the direction of the route"
|
"tooltip": "Reverse the direction of the route"
|
||||||
},
|
},
|
||||||
"route_back_to_start": {
|
"route_back_to_start": {
|
||||||
"button": "Înapoi la punctul de plecare",
|
"button": "Back to start",
|
||||||
"tooltip": "Conectează ultimul punct al rutei cu punctul de plecare"
|
"tooltip": "Connect the last point of the route with the starting point"
|
||||||
},
|
},
|
||||||
"round_trip": {
|
"round_trip": {
|
||||||
"button": "Călătorie dus-întors",
|
"button": "Round trip",
|
||||||
"tooltip": "Întoarce-te la punctul de plecare pe aceeași rută"
|
"tooltip": "Return to the starting point by the same route"
|
||||||
},
|
},
|
||||||
"start_loop_here": "Start loop here",
|
"start_loop_here": "Start loop here",
|
||||||
"help_no_file": "Select a trace to use the routing tool, or click on the map to start creating a new route.",
|
"help_no_file": "Select a trace to use the routing tool, or click on the map to start creating a new route.",
|
||||||
@@ -120,7 +120,7 @@
|
|||||||
"unknown": "Necunoscut",
|
"unknown": "Necunoscut",
|
||||||
"paved": "Asfaltat",
|
"paved": "Asfaltat",
|
||||||
"unpaved": "Unpaved",
|
"unpaved": "Unpaved",
|
||||||
"asphalt": "Asfalt",
|
"asphalt": "Asphalt",
|
||||||
"concrete": "Concrete",
|
"concrete": "Concrete",
|
||||||
"cobblestone": "Pavaj",
|
"cobblestone": "Pavaj",
|
||||||
"paving_stones": "Pavaj din pietre",
|
"paving_stones": "Pavaj din pietre",
|
||||||
@@ -140,11 +140,11 @@
|
|||||||
"grass": "Iarbă",
|
"grass": "Iarbă",
|
||||||
"grass_paver": "Pavaj cu iarbă",
|
"grass_paver": "Pavaj cu iarbă",
|
||||||
"clay": "Clay",
|
"clay": "Clay",
|
||||||
"stone": "Piatră"
|
"stone": "Stone"
|
||||||
},
|
},
|
||||||
"highway": {
|
"highway": {
|
||||||
"unknown": "Necunoscut",
|
"unknown": "Unknown",
|
||||||
"motorway": "Autostradă",
|
"motorway": "Highway",
|
||||||
"motorway_link": "Highway link",
|
"motorway_link": "Highway link",
|
||||||
"trunk": "Primary road",
|
"trunk": "Primary road",
|
||||||
"trunk_link": "Primary road link",
|
"trunk_link": "Primary road link",
|
||||||
|
|||||||
@@ -235,7 +235,7 @@
|
|||||||
},
|
},
|
||||||
"elevation": {
|
"elevation": {
|
||||||
"button": "请求海拔数据",
|
"button": "请求海拔数据",
|
||||||
"help": "请求成功后将移除原有的海拔数据,并使用 Mapterhorn 的海拔数据替换原有数据。",
|
"help": "Requesting elevation data will erase the existing elevation data, if any, and replace it with data from Mapterhorn.",
|
||||||
"help_no_selection": "选择要请求海拔数据的文件。"
|
"help_no_selection": "选择要请求海拔数据的文件。"
|
||||||
},
|
},
|
||||||
"waypoint": {
|
"waypoint": {
|
||||||
|
|||||||
Reference in New Issue
Block a user