6 Commits

Author SHA1 Message Date
vcoppe 2e8b2d6f30 add ukrainian 2026-07-21 11:20:31 +02:00
Dobrovolskyi Bohdan 5259d007c9 Fix Locale subscription (#369) 2026-07-21 12:04:42 +02:00
vcoppe cb36725a46 New Crowdin updates (#373)
* New translations en.json (German)

[ci skip]

* New translations view.mdx (German)

[ci skip]
2026-07-21 12:00:16 +02:00
vcoppe deef1bab47 fix embedding playground zoom 2026-07-21 11:11:13 +02:00
Dobrovolskyi Bohdan 108880f8cd Update language on map (#365) 2026-07-14 18:50:51 +02:00
vcoppe 37a659831b New Crowdin updates (#359)
* New translations en.json (Hungarian)

[ci skip]

* New translations en.json (Hungarian)

[ci skip]

* New translations en.json (Ukrainian)

[ci skip]

* New translations file.mdx (Ukrainian)

[ci skip]

* New translations file.mdx (Ukrainian)

[ci skip]

* New translations settings.mdx (Ukrainian)

[ci skip]

* New translations view.mdx (Ukrainian)

[ci skip]

* New translations clean.mdx (Ukrainian)

[ci skip]

* New translations routing.mdx (Ukrainian)

[ci skip]

* New translations en.json (Ukrainian)

[ci skip]

* New translations clean.mdx (Ukrainian)

[ci skip]

* New translations routing.mdx (Ukrainian)

[ci skip]

* New translations extract.mdx (Ukrainian)

[ci skip]

* New translations merge.mdx (Ukrainian)

[ci skip]

* New translations minify.mdx (Ukrainian)

[ci skip]

* New translations poi.mdx (Ukrainian)

[ci skip]

* New translations elevation.mdx (Ukrainian)

[ci skip]

* New translations en.json (Ukrainian)

[ci skip]

* New translations routing.mdx (Ukrainian)

[ci skip]

* New translations scissors.mdx (Ukrainian)

[ci skip]

* New translations time.mdx (Ukrainian)

[ci skip]

* New translations faq.mdx (Ukrainian)

[ci skip]

* New translations en.json (Ukrainian)

[ci skip]

* New translations view.mdx (Ukrainian)

[ci skip]

* New translations faq.mdx (Ukrainian)

[ci skip]

* New translations files-and-stats.mdx (Ukrainian)

[ci skip]

* New translations getting-started.mdx (Ukrainian)

[ci skip]

* New translations gpx.mdx (Ukrainian)

[ci skip]

* New translations integration.mdx (Ukrainian)

[ci skip]

* New translations map-controls.mdx (Ukrainian)

[ci skip]

* New translations menu.mdx (Ukrainian)

[ci skip]

* New translations toolbar.mdx (Ukrainian)

[ci skip]

* New translations en.json (Basque)

[ci skip]
2026-07-14 18:49:25 +02:00
7 changed files with 35 additions and 23 deletions
@@ -21,6 +21,7 @@
import { selection } from '$lib/logic/selection';
import { untrack } from 'svelte';
import { isSelected, toggle } from '$lib/components/map/layer-control/utils';
import { boundsManager } from '$lib/logic/bounds';
let {
useHash = true,
@@ -90,6 +91,7 @@
fileStateCollection.setEmbeddedFiles(files);
$fileOrder = ids;
selection.selectAll();
boundsManager.fitBoundsOnLoad(ids);
});
}
+1
View File
@@ -58,6 +58,7 @@ export class StyleManager {
opacities.subscribe(() => this.updateOverlays());
terrainSource.subscribe(() => this.updateTerrain());
customLayers.subscribe(() => this.updateBasemap());
i18n.subscribe(() => this.updateBasemap());
distanceUnits.subscribe(() => {
const map = get(this._map);
if (map && (map.getLayer('contours_m') || map.getLayer('contours_ft'))) {
+2 -2
View File
@@ -50,5 +50,5 @@ Um die Ausrichtung und Neigung der Karte zu steuern, können Sie die Karte auch
### <Maximize2 size="16" class="inline-block" style="margin-bottom: 2px" /> Full screen
Enter or exit full screen mode.
You can also press <kbd>F11</kbd> to toggle, or <kbd>Escape</kbd> to exit.
Vollbildmodus ein- oder ausschalten.
Du kannst auch <kbd>F11</kbd> drücken, um zu wechseln, oder <kbd>Escape</kbd> zum Beenden.
+8
View File
@@ -1,3 +1,5 @@
import { writable } from 'svelte/store';
type Dictionary = {
[key: string]: string | Dictionary;
};
@@ -10,6 +12,7 @@ function getDateFormatter(locale: string) {
}
class Locale {
private _store = writable(this);
private _lang = $state('');
private _isLoadingInitial = $state(true);
private _isLoading = $state(true);
@@ -38,6 +41,7 @@ class Locale {
}
import(`../locales/${this._lang}.json`).then((module) => {
this.dictionary = module.default;
this._store.set(this);
if (this._isLoadingInitial) {
this._isLoadingInitial = false;
}
@@ -67,6 +71,10 @@ class Locale {
public get df() {
return this._df;
}
public subscribe(run: (value: Locale) => void, invalidate?: (value?: Locale) => void) {
return this._store.subscribe(run, invalidate);
}
}
export const i18n = new Locale();
+1
View File
@@ -10,5 +10,6 @@ export const languages: Record<string, string> = {
nl: 'Nederlands',
'pt-BR': 'Português (Brasil)',
tr: 'Türkçe',
uk: 'Українська',
zh: '简体中文',
};
+3 -3
View File
@@ -36,7 +36,7 @@
"switch_basemap": "Zur vorherigen Basemap wechseln",
"toggle_overlays": "Overlay umschalten",
"toggle_3d": "3D umschalten",
"fullscreen": "Full screen",
"fullscreen": "Vollbildmodus",
"settings": "Einstellungen",
"distance_units": "Entfernungseinheiten",
"metric": "Metrisch",
@@ -235,7 +235,7 @@
},
"elevation": {
"button": "Höhendaten anfragen",
"help": "Requesting elevation data will erase the existing elevation data, if any, and replace it with data from Mapterhorn.",
"help": "Das Anfordern von Höhendaten löscht die vorhandenen Höhendaten, falls vorhanden, und ersetzt diese durch Daten von Mapterhorn.",
"help_no_selection": "Wählen Sie ein Datei-Element, um Höhendaten anzufordern."
},
"waypoint": {
@@ -305,7 +305,7 @@
"united_kingdom": "Großbritannien",
"united_states": "USA",
"libertyTopo": "Liberty Topo",
"libertySatellite": "Liberty Satellite",
"libertySatellite": "Liberty Satellit",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite",
+18 -18
View File
@@ -36,7 +36,7 @@
"switch_basemap": "Aldatu aurreko mapa erabiltzera",
"toggle_overlays": "Txandakatu geruzak",
"toggle_3d": "Txandakatu 3D",
"fullscreen": "Full screen",
"fullscreen": "Pantaila osoa",
"settings": "Ezarpenak",
"distance_units": "Distantzia unitateak",
"metric": "Metrikoa",
@@ -64,7 +64,7 @@
"ctrl": "Ctrl",
"click": "Klik",
"drag": "Arrastatu",
"right_click_drag": "Right-click drag",
"right_click_drag": "Eskuin klik eta errestan eraman",
"metadata": {
"button": "Informazioa...",
"name": "Izena",
@@ -192,8 +192,8 @@
"from": "Hasiera puntua errepide hurbilenetik oso hurrun dago",
"via": "Puntua errepide hurbilenetik oso hurrun dago",
"to": "Bukaera puntua errepide hurbilenetik oso hurrun dago",
"distance": "The end point is too far from the start point",
"connection": "No connection found between the points",
"distance": "Bukaera-puntua hasiera-puntutik urrutiegi dago",
"connection": "Ez da konexiorik topatu puntuen artean",
"timeout": "Ibilbidea kalkulatzea luzeegi joan da, saiatu hurbilago dauden puntuak gehitzen"
}
},
@@ -235,7 +235,7 @@
},
"elevation": {
"button": "Eskatu altueraren datuak",
"help": "Requesting elevation data will erase the existing elevation data, if any, and replace it with data from Mapterhorn.",
"help": "Kota-datuak eskatzeak lehendik dauden kota-datuak ezabatuko ditu, halakorik balego, eta Mapterhorn-eko datuekin ordezkatuko dira.",
"help_no_selection": "Aukeratu fitxategi bat altuera datuak eskatzeko."
},
"waypoint": {
@@ -277,7 +277,7 @@
"new": "Geruza pertsonalizatu berria",
"edit": "Editatu geruza pertsonalizatua",
"urls": "URLa(k)",
"url_placeholder": "WMTS, WMS or MapLibre style JSON",
"url_placeholder": "WMTS, WMS edo MapLibre estiloko JSON",
"max_zoom": "Zoom max",
"layer_type": "Geruza mota",
"basemap": "Oinarrizko-mapa",
@@ -305,7 +305,7 @@
"united_kingdom": "Erresuma Batua",
"united_states": "Ameriketako Estatu Batuak",
"libertyTopo": "Liberty Topo",
"libertySatellite": "Liberty Satellite",
"libertySatellite": "Liberty Satelitea",
"osm": "OpenMapTiles OSM",
"osmTopo": "OpenMapTiles OSM Topo",
"esriSatellite": "Esri Satellite",
@@ -494,7 +494,7 @@
"email": "Eposta",
"contribute": "Lagundu",
"supported_by": "hauek lagunduta",
"features": "Features",
"features": "Funtzioak",
"route_planning": "Bideak planifikatzea",
"route_planning_description": "OpenStreetMapen datuetan oinarritutako interfaze erabilterraza kirol bakoitzerako ibilbideak sortzeko.",
"file_processing": "Fitxategien prozesaketa aurreratua",
@@ -503,15 +503,15 @@
"maps_description": "Oinarrizko mapa, geruza eta interes-puntuen bilduma zabala. Zure aire-libreko ekintzak planifikatzen lagunduko dizu!",
"data_visualization": "Datuak bistaratzea",
"data_visualization_description": "Grabatutako ekintzak edo etorkizuneko zure bideak aztertzeko altuera-profil interaktiboa.",
"philosophy": "Philosophy",
"foss": "Free, ad-free and open source",
"foss_description": "The website is free to use, without ads, and the source code is publicly available on GitHub.",
"privacy": "Privacy-friendly",
"privacy_description": "Your GPX files never leave your browser. No tracking, no data collection.",
"community": "Made possible by the community",
"community_description": "gpx.studio has an amazing community that has covered its costs through donations for years, while shaping the project through feature suggestions, bug reports, and translations into many languages.",
"support_button": "Support gpx.studio on Open Collective",
"translate_button": "Help translate the website on Crowdin"
"philosophy": "Filosofia",
"foss": "Doakoa, propagandarik gabe eta kode irekikoa",
"foss_description": "Webgunea doakoa da, iragarkirik gabe, eta iturburu-kodea publikoki eskuragarri dago GitHub-en.",
"privacy": "Pribatutasuna zaintzen du",
"privacy_description": "Zure GPX fitxategiak ez dira inoiz zure nabigatzailetik irteten. Ez dago jarraipenik, ez datu-bilketarik.",
"community": "Komunitateak posible egin du",
"community_description": "gpx.studio-k komunitate harrigarri bat du, urte luzez dohaintzen bidez bere kostuak estali dituena, proiektuaren ezaugarri-iradokizunen, akatsen txostenen eta hizkuntza askotarako itzulpenen bidez moldatu dena.",
"support_button": "Lagundu gpx.studio Open Collectiveren bidez",
"translate_button": "Lagundu webgunea itzultzen Crowdin-en"
},
"docs": {
"translate": "Lagundu itzulpenarekin Crowdinen",
@@ -536,7 +536,7 @@
},
"embedding": {
"title": "Sortu zure mapa",
"maptiler_key": "MapTiler key (optional, only required for MapTiler maps)",
"maptiler_key": "MapTiler gakoa (aukeran, bakarrik behar da MapTiler mapetan)",
"file_urls": "Fitxategien URLak (komarekin banatuta)",
"drive_ids": "Google Drive fitxategien IDak (komarekin banatuta)",
"basemap": "Oinarrizko-mapa",