From 6a4166febb5ce386beac8bbb06cd7527b90c6a12 Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Tue, 8 Oct 2024 19:02:19 +0200
Subject: [PATCH 01/55] Fix: reset translations
---
langs/en.json | 2 +-
langs/layers/ca.json | 12 ++++++------
langs/layers/cs.json | 12 ++++++------
langs/layers/de.json | 12 ++++++------
langs/layers/en.json | 14 ++++++++++----
langs/layers/fr.json | 12 ++++++------
langs/layers/nl.json | 12 ++++++------
scripts/generateTranslations.ts | 3 +++
8 files changed, 44 insertions(+), 35 deletions(-)
diff --git a/langs/en.json b/langs/en.json
index 644345f35..ccb74045e 100644
--- a/langs/en.json
+++ b/langs/en.json
@@ -897,4 +897,4 @@
"startsWithQ": "A wikidata identifier starts with Q and is followed by a number"
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/layers/ca.json b/langs/layers/ca.json
index 1212ae08a..15373e975 100644
--- a/langs/layers/ca.json
+++ b/langs/layers/ca.json
@@ -4315,13 +4315,13 @@
},
"friture-vegan": {
"mappings": {
- "0": {
+ "1": {
"then": "Hi han snacks vegans disponibles"
},
- "1": {
+ "2": {
"then": "Hi ha una petita selecció de snacks vegans disponibles"
},
- "2": {
+ "3": {
"then": "No hi ha snacks vegans disponibles"
}
},
@@ -4329,13 +4329,13 @@
},
"friture-vegetarian": {
"mappings": {
- "0": {
+ "1": {
"then": "Hi ha snacks vegetarians disponibles"
},
- "1": {
+ "2": {
"then": "Només una petita selecció de snacks son vegetarians"
},
- "2": {
+ "3": {
"then": "No hi han sacks disponibles"
}
},
diff --git a/langs/layers/cs.json b/langs/layers/cs.json
index 406b9f8cd..56cd2a519 100644
--- a/langs/layers/cs.json
+++ b/langs/layers/cs.json
@@ -4602,13 +4602,13 @@
},
"friture-vegan": {
"mappings": {
- "0": {
+ "1": {
"then": "Veganské občerstvení je k dispozici"
},
- "1": {
+ "2": {
"then": "K dispozici je malý výběr veganského občerstvení"
},
- "2": {
+ "3": {
"then": "Veganské občerstvení není k dispozici"
}
},
@@ -4616,13 +4616,13 @@
},
"friture-vegetarian": {
"mappings": {
- "0": {
+ "1": {
"then": "Vegetariánské občerstvení je k dispozici"
},
- "1": {
+ "2": {
"then": "Pouze malý výběr občerstvení je vegetariánský"
},
- "2": {
+ "3": {
"then": "Vegetariánské občerstvení není k dispozici"
}
},
diff --git a/langs/layers/de.json b/langs/layers/de.json
index a767ad155..07baa8371 100644
--- a/langs/layers/de.json
+++ b/langs/layers/de.json
@@ -5446,13 +5446,13 @@
},
"friture-vegan": {
"mappings": {
- "0": {
+ "1": {
"then": "Vegane Snacks sind erhältlich"
},
- "1": {
+ "2": {
"then": "Nur eine kleine Auswahl an veganen Snacks ist erhältlich"
},
- "2": {
+ "3": {
"then": "Es sind keine veganen Snacks verfügbar"
}
},
@@ -5460,13 +5460,13 @@
},
"friture-vegetarian": {
"mappings": {
- "0": {
+ "1": {
"then": "Vegetarische Snacks sind erhältlich"
},
- "1": {
+ "2": {
"then": "Nur eine kleine Auswahl an vegetarischen Snacks ist erhältlich"
},
- "2": {
+ "3": {
"then": "Es sind keine vegetarischen Snacks erhältlich"
}
},
diff --git a/langs/layers/en.json b/langs/layers/en.json
index 864b1c041..23f1a804f 100644
--- a/langs/layers/en.json
+++ b/langs/layers/en.json
@@ -5447,12 +5447,15 @@
"friture-vegan": {
"mappings": {
"0": {
- "then": "Vegan snacks are available"
+ "then": "Serves only vegan snacks and burgers"
},
"1": {
- "then": "A small selection of vegan snacks are available"
+ "then": "Vegan snacks are available"
},
"2": {
+ "then": "A small selection of vegan snacks are available"
+ },
+ "3": {
"then": "No vegan snacks are available"
}
},
@@ -5461,12 +5464,15 @@
"friture-vegetarian": {
"mappings": {
"0": {
- "then": "Vegetarian snacks are available"
+ "then": "Serves only vegetarian snacks and burgers"
},
"1": {
- "then": "Only a small selection of snacks are vegetarian"
+ "then": "Vegetarian snacks are available"
},
"2": {
+ "then": "Only a small selection of snacks are vegetarian"
+ },
+ "3": {
"then": "No vegetarian snacks are available"
}
},
diff --git a/langs/layers/fr.json b/langs/layers/fr.json
index 0889b7172..ef3a0b46c 100644
--- a/langs/layers/fr.json
+++ b/langs/layers/fr.json
@@ -3737,13 +3737,13 @@
},
"friture-vegan": {
"mappings": {
- "0": {
+ "1": {
"then": "Des collations végétaliens sont disponibles"
},
- "1": {
+ "2": {
"then": "Quelques snacks végétaliens seulement"
},
- "2": {
+ "3": {
"then": "Pas d'en-cas végétaliens disponibles"
}
},
@@ -3751,13 +3751,13 @@
},
"friture-vegetarian": {
"mappings": {
- "0": {
+ "1": {
"then": "Des collations végétariens sont disponibles"
},
- "1": {
+ "2": {
"then": "Quelques snacks végétariens seulement"
},
- "2": {
+ "3": {
"then": "Pas d'en-cas végétariens disponibles"
}
},
diff --git a/langs/layers/nl.json b/langs/layers/nl.json
index 3208a2e5a..b23b74540 100644
--- a/langs/layers/nl.json
+++ b/langs/layers/nl.json
@@ -4497,13 +4497,13 @@
},
"friture-vegan": {
"mappings": {
- "0": {
+ "1": {
"then": "Er zijn veganistische snacks aanwezig"
},
- "1": {
+ "2": {
"then": "Slechts enkele veganistische snacks"
},
- "2": {
+ "3": {
"then": "Geen veganistische snacks beschikbaar"
}
},
@@ -4511,13 +4511,13 @@
},
"friture-vegetarian": {
"mappings": {
- "0": {
+ "1": {
"then": "Er zijn vegetarische snacks aanwezig"
},
- "1": {
+ "2": {
"then": "Slechts enkele vegetarische snacks"
},
- "2": {
+ "3": {
"then": "Geen vegetarische snacks beschikbaar"
}
},
diff --git a/scripts/generateTranslations.ts b/scripts/generateTranslations.ts
index 0bde6e9ee..23097aaa6 100644
--- a/scripts/generateTranslations.ts
+++ b/scripts/generateTranslations.ts
@@ -49,6 +49,9 @@ class TranslationPart {
}
for (const translationsKey in translations) {
const v = translations[translationsKey]
+ if(Array.isArray(v) && context .endsWith("keywords")){
+ continue
+ }
if (typeof v != "string") {
console.error(
`Non-string object at ${context} in translation while trying to add the translation ` +
From f2b681caa59a419c4c217e705ad6d1a7ac271128 Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Wed, 9 Oct 2024 22:55:12 +0200
Subject: [PATCH 02/55] Fix: remove truly unrecoverable changes from report
logging
---
src/Logic/Osm/Changes.ts | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/Logic/Osm/Changes.ts b/src/Logic/Osm/Changes.ts
index c84fa9b18..a44aa4a02 100644
--- a/src/Logic/Osm/Changes.ts
+++ b/src/Logic/Osm/Changes.ts
@@ -72,7 +72,7 @@ export class Changes {
this.backend = state.osmConnection.Backend()
this._reportError = reportError
this._changesetHandler = new ChangesetHandler(
- state.featureSwitches.featureSwitchIsTesting,
+ state.featureSwitches?.featureSwitchIsTesting ?? new ImmutableStore(false),
state.osmConnection,
state.featureProperties,
this,
@@ -837,7 +837,12 @@ export class Changes {
)
// We keep all the refused changes to try them again
- this.pendingChanges.setData(refusedChanges.flatMap((c) => c))
+ this.pendingChanges.setData(refusedChanges.flatMap((c) => c).filter(c => {
+ if(c.id === null || c.id === undefined){
+ return false
+ }
+ return true
+ }))
} catch (e) {
console.error(
"Could not handle changes - probably an old, pending changeset in localstorage with an invalid format; erasing those",
From 8a8b2e20aebe8019af86aca02e6bcc4d90896b4f Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Thu, 10 Oct 2024 20:16:13 +0200
Subject: [PATCH 03/55] Fix: add spaces to opening hours picker for PH
---
src/UI/OpeningHours/OpeningHoursState.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/UI/OpeningHours/OpeningHoursState.ts b/src/UI/OpeningHours/OpeningHoursState.ts
index 1d5dccc6c..5e8b68d15 100644
--- a/src/UI/OpeningHours/OpeningHoursState.ts
+++ b/src/UI/OpeningHours/OpeningHoursState.ts
@@ -93,10 +93,10 @@ export default class OpeningHoursState {
let str = OH.ToString(rules) + ";"
const ph = this.phSelectorValue.data
if (ph) {
- str += ph + ";"
+ str += " " + ph + ";" // There must be a space after every ";"
}
- str += this.leftoverRules.data.join(";") + ";"
+ str += this.leftoverRules.data.join("; ") + ";"
str = str.trim()
while (str.endsWith(";")) {
From 1b3687830cabb87a321955d2f8f7191103e95b48 Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Thu, 10 Oct 2024 22:58:58 +0200
Subject: [PATCH 04/55] Chore: remove stray file
---
Cleanup.osc | 1122 ---------------------------------------------------
1 file changed, 1122 deletions(-)
delete mode 100644 Cleanup.osc
diff --git a/Cleanup.osc b/Cleanup.osc
deleted file mode 100644
index 8216e09ff..000000000
--- a/Cleanup.osc
+++ /dev/null
@@ -1,1122 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
From 66465fdc9893fa4c3f0c1f5b8279a51c33a1e407 Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Thu, 10 Oct 2024 23:02:12 +0200
Subject: [PATCH 05/55] Fix: attempt to workaround for #2202
---
src/Logic/ImageProviders/Panoramax.ts | 24 ++++++++++++++++++------
src/Models/ThemeViewState.ts | 2 +-
2 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/src/Logic/ImageProviders/Panoramax.ts b/src/Logic/ImageProviders/Panoramax.ts
index c05da71b3..60d558a26 100644
--- a/src/Logic/ImageProviders/Panoramax.ts
+++ b/src/Logic/ImageProviders/Panoramax.ts
@@ -23,11 +23,14 @@ export default class PanoramaxImageProvider extends ImageProvider {
private static knownMeta: Record = {}
- public SourceIcon(img?: { id: string, url: string, host?: string }, location?: { lon: number; lat: number; }): BaseUIElement {
+ public SourceIcon(img?: { id: string, url: string, host?: string }, location?: {
+ lon: number;
+ lat: number;
+ }): BaseUIElement {
const p = new Panoramax(img.host)
return new Link(new SvelteUIElement(Panoramax_bw), p.createViewLink({
imageId: img?.id,
- location
+ location,
}), true)
}
@@ -173,15 +176,24 @@ export class PanoramaxUploader implements ImageUploader {
absoluteUrl: string
}> {
- const tags = await ExifReader.load(blob)
- const hasDate = tags.DateTime !== undefined
- const hasGPS = tags.GPSLatitude !== undefined && tags.GPSLongitude !== undefined
+ let tags: ExifReader.Tags = undefined
+ let hasDate = false
+ let hasGPS = false
+ try {
+ const tags = await ExifReader.load(blob)
+ hasDate = tags?.DateTime !== undefined
+ hasGPS = tags?.GPSLatitude !== undefined && tags?.GPSLongitude !== undefined
+ } catch (e) {
+ console.error("Could not read EXIF-tags")
+ }
- const [lon, lat] = currentGps
+ let [lon, lat] = currentGps
const p = this._panoramax
const defaultSequence = (await p.mySequences())[0]
const img = await p.addImage(blob, defaultSequence, {
+ // It might seem odd that we set 'undefined' here - keep in mind that, by default, panoramax will use the EXIF-data
+ // We only pass variables as fallback!
lat: !hasGPS ? lat : undefined,
lon: !hasGPS ? lon : undefined,
datetime: !hasDate ? new Date().toISOString() : undefined,
diff --git a/src/Models/ThemeViewState.ts b/src/Models/ThemeViewState.ts
index 596060f12..f83053613 100644
--- a/src/Models/ThemeViewState.ts
+++ b/src/Models/ThemeViewState.ts
@@ -1036,7 +1036,7 @@ export default class ThemeViewState implements SpecialVisualizationState {
}
if (extramessage) {
- message += "(" + extramessage + ")"
+ message += " (" + extramessage + ")"
}
const stacktrace: string = new Error().stack
From cc6ce3c271475759a7a2062b1ca7e4668ca4a230 Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Thu, 10 Oct 2024 23:09:00 +0200
Subject: [PATCH 06/55] Fix: set max image size (100 MB)
---
src/Logic/ImageProviders/Panoramax.ts | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/Logic/ImageProviders/Panoramax.ts b/src/Logic/ImageProviders/Panoramax.ts
index 60d558a26..a24883be0 100644
--- a/src/Logic/ImageProviders/Panoramax.ts
+++ b/src/Logic/ImageProviders/Panoramax.ts
@@ -165,6 +165,7 @@ export default class PanoramaxImageProvider extends ImageProvider {
export class PanoramaxUploader implements ImageUploader {
private readonly _panoramax: AuthorizedPanoramax
+ maxFileSizeInMegabytes = 100 * 1000 * 1000 // 100MB
constructor(url: string, token: string) {
this._panoramax = new AuthorizedPanoramax(url, token)
From 368d7857a055c92109ec6d5155078aabaef230ac Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Thu, 10 Oct 2024 23:09:31 +0200
Subject: [PATCH 07/55] Fix: add error reporting when image upload fails, see
#2202
---
src/Logic/ImageProviders/ImageUploadManager.ts | 4 ++++
src/Models/ThemeViewState.ts | 3 ++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/Logic/ImageProviders/ImageUploadManager.ts b/src/Logic/ImageProviders/ImageUploadManager.ts
index 0363f3b21..f311a93cd 100644
--- a/src/Logic/ImageProviders/ImageUploadManager.ts
+++ b/src/Logic/ImageProviders/ImageUploadManager.ts
@@ -28,6 +28,7 @@ export class ImageUploadManager {
private readonly _osmConnection: OsmConnection
private readonly _changes: Changes
public readonly isUploading: Store
+ private readonly _reportError: (message: (string | Error | XMLHttpRequest), extramessage?: string) => Promise
constructor(
layout: LayoutConfig,
@@ -37,6 +38,7 @@ export class ImageUploadManager {
changes: Changes,
gpsLocation: Store,
allFeatures: IndexedFeatureSource,
+ reportError: (message: string | Error | XMLHttpRequest, extramessage?: string ) => Promise
) {
this._uploader = uploader
this._featureProperties = featureProperties
@@ -45,6 +47,7 @@ export class ImageUploadManager {
this._changes = changes
this._indexedFeatures = allFeatures
this._gps = gpsLocation
+ this._reportError = reportError
const failed = this.getCounterFor(this._uploadFailed, "*")
const done = this.getCounterFor(this._uploadFinished, "*")
@@ -163,6 +166,7 @@ export class ImageUploadManager {
} catch (e) {
console.error("Could again not upload image due to", e)
this.increaseCountFor(this._uploadFailed, featureId)
+ await this._reportError(e, JSON.stringify({ctx:"While uploading an image in the Image Upload Manager", featureId, author, targetKey}))
return undefined
}
}
diff --git a/src/Models/ThemeViewState.ts b/src/Models/ThemeViewState.ts
index f83053613..7a1e3052e 100644
--- a/src/Models/ThemeViewState.ts
+++ b/src/Models/ThemeViewState.ts
@@ -369,7 +369,8 @@ export default class ThemeViewState implements SpecialVisualizationState {
this.osmConnection,
this.changes,
this.geolocation.geolocationState.currentGPSLocation,
- this.indexedFeatures
+ this.indexedFeatures,
+ this.reportError
)
this.favourites = new FavouritesFeatureSource(this)
const longAgo = new Date()
From c795e74037ca1aa222fdba6eb2cc4a32a78a8eb7 Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Thu, 10 Oct 2024 23:28:05 +0200
Subject: [PATCH 08/55] Fix: some fixes to studio
---
src/Models/ThemeConfig/Conversion/PrepareLayer.ts | 7 ++++++-
src/UI/Studio/SchemaBasedArray.svelte | 2 +-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/Models/ThemeConfig/Conversion/PrepareLayer.ts b/src/Models/ThemeConfig/Conversion/PrepareLayer.ts
index 569f02271..e7465fa00 100644
--- a/src/Models/ThemeConfig/Conversion/PrepareLayer.ts
+++ b/src/Models/ThemeConfig/Conversion/PrepareLayer.ts
@@ -596,7 +596,12 @@ class DetectInline extends DesugaringStep {
return json
}
- if(!Object.values(json.render).some(render => render !== "{"+json.freeform.key+"}")){
+ if(json.render === undefined){
+ context.err("No 'render' defined")
+ return json
+ }
+
+ if(!Object.values(json?.render)?.some(render => render !== "{"+json.freeform.key+"}")){
// We only render the current value, without anything more. Not worth inlining
return json
}
diff --git a/src/UI/Studio/SchemaBasedArray.svelte b/src/UI/Studio/SchemaBasedArray.svelte
index f61b15495..9767baea0 100644
--- a/src/UI/Studio/SchemaBasedArray.svelte
+++ b/src/UI/Studio/SchemaBasedArray.svelte
@@ -56,7 +56,7 @@
currentValue.ping()
if (isTagRenderingBlock) {
- state.highlightedItem.setData({ path: [...path, currentValue.data.length - 1], schema })
+ state.highlightedItem?.setData({ path: [...path, currentValue.data.length - 1], schema })
}
}
From 4794032e49a4b5b2d3fdceac8a2b8a75994e94ea Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Sun, 13 Oct 2024 13:19:54 +0200
Subject: [PATCH 09/55] Fix: bug in error reporting
---
src/Models/ThemeViewState.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Models/ThemeViewState.ts b/src/Models/ThemeViewState.ts
index 7a1e3052e..0d9582579 100644
--- a/src/Models/ThemeViewState.ts
+++ b/src/Models/ThemeViewState.ts
@@ -1007,7 +1007,7 @@ export default class ThemeViewState implements SpecialVisualizationState {
console.error("Got (in themeViewSTate.reportError):", message, extramessage)
return
}
- const isTesting = this.featureSwitchIsTesting.data
+ const isTesting = this.featureSwitchIsTesting?.data
console.log(
isTesting
? ">>> _Not_ reporting error to report server as testmode is on"
From ca17d3da1b772e4976414b54406816a68ef0e175 Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Sun, 13 Oct 2024 21:37:04 +0200
Subject: [PATCH 10/55] Fix: fix #2207
---
assets/themes/hailhydrant/hailhydrant.json | 2 +-
scripts/downloadEli.ts | 20 ++-
src/Models/RasterLayers.ts | 49 +++---
.../Conversion/ConversionContext.ts | 6 +-
.../ThemeConfig/Conversion/Validation.ts | 146 ++++++++++--------
src/UI/Image/UploadImage.svelte | 2 +-
src/assets/bing.json | 2 +-
7 files changed, 136 insertions(+), 91 deletions(-)
diff --git a/assets/themes/hailhydrant/hailhydrant.json b/assets/themes/hailhydrant/hailhydrant.json
index d57485476..505bda243 100644
--- a/assets/themes/hailhydrant/hailhydrant.json
+++ b/assets/themes/hailhydrant/hailhydrant.json
@@ -64,4 +64,4 @@
"ambulancestation"
],
"widenFactor": 3
-}
\ No newline at end of file
+}
diff --git a/scripts/downloadEli.ts b/scripts/downloadEli.ts
index 8a56dd982..2fa15f362 100644
--- a/scripts/downloadEli.ts
+++ b/scripts/downloadEli.ts
@@ -13,10 +13,13 @@ class DownloadEli extends Script {
const url = "https://osmlab.github.io/editor-layer-index/imagery.geojson"
// Target should use '.json' instead of '.geojson', as the latter cannot be imported by the build systems
const target = args[0] ?? "public/assets/data/editor-layer-index.json"
+ const targetGlobal = args[1] ?? "src/assets/generated/editor-layer-index-global.json"
+
const targetBing = args[0] ?? "src/assets/bing.json"
const eli: Eli = await Utils.downloadJson(url)
const keptLayers: EliEntry[] = []
+ const keptGlobalLayers: EliEntry[] = []
console.log("Got", eli.features.length, "ELI-entries")
for (let layer of eli.features) {
const props = layer.properties
@@ -95,18 +98,26 @@ class DownloadEli extends Script {
}
layer = { properties: layer.properties, type: layer.type, geometry: layer.geometry }
- keptLayers.push(layer)
+ if(layer.geometry === null){
+ keptGlobalLayers.push(layer)
+ }else{
+ keptLayers.push(layer)
+ }
}
const contents =
'{"type":"FeatureCollection",\n "features": [\n' +
keptLayers
- .filter((l) => l.properties.id !== "Bing")
.map((l) => JSON.stringify(l))
.join(",\n") +
"\n]}"
- const bing = keptLayers.find((l) => l.properties.id === "Bing")
+ const contentsGlobal =
+ keptGlobalLayers
+ .filter((l) => l.properties.id !== "Bing")
+ .map(l => l.properties)
+
+ const bing = keptGlobalLayers.find((l) => l.properties.id === "Bing")
if (bing) {
fs.writeFileSync(targetBing, JSON.stringify(bing), { encoding: "utf8" })
console.log("Written", targetBing)
@@ -115,6 +126,9 @@ class DownloadEli extends Script {
}
fs.writeFileSync(target, contents, { encoding: "utf8" })
console.log("Written", keptLayers.length + ", entries to the ELI")
+ fs.writeFileSync(targetGlobal, JSON.stringify(contentsGlobal,null, " "), { encoding: "utf8" })
+ console.log("Written", keptGlobalLayers.length + ", entries to the global ELI")
+
}
}
diff --git a/src/Models/RasterLayers.ts b/src/Models/RasterLayers.ts
index cde3dddf3..c05d34bb8 100644
--- a/src/Models/RasterLayers.ts
+++ b/src/Models/RasterLayers.ts
@@ -1,5 +1,7 @@
import { Feature, Polygon } from "geojson"
import * as globallayers from "../assets/global-raster-layers.json"
+import * as globallayersEli from "../assets/generated/editor-layer-index-global.json"
+
import * as bingJson from "../assets/bing.json"
import { BBox } from "../Logic/BBox"
@@ -21,26 +23,37 @@ export class AvailableRasterLayers {
}
console.debug("Downloading ELI")
const eli = await Utils.downloadJson<{ features: EditorLayerIndex }>(
- "./assets/data/editor-layer-index.json"
+ "./assets/data/editor-layer-index.json",
)
this._editorLayerIndex = eli.features?.filter((l) => l.properties.id !== "Bing") ?? []
this._editorLayerIndexStore.set(this._editorLayerIndex)
return this._editorLayerIndex
}
- public static globalLayers: ReadonlyArray = globallayers.layers
- .filter(
- (properties) =>
- properties.id !== "osm.carto" && properties.id !== "Bing" /*Added separately*/
- )
- .map(
+ public static readonly globalLayers: ReadonlyArray = AvailableRasterLayers.initGlobalLayers()
+
+ private static initGlobalLayers(): RasterLayerPolygon[] {
+ const gl: RasterLayerProperties[] = (globallayers["default"] ?? globallayers ).layers
+ .filter(
+ (properties) =>
+ properties.id !== "osm.carto" && properties.id !== "Bing", /*Added separately*/
+ )
+ const glEli: RasterLayerProperties[] = globallayersEli["default"] ?? globallayersEli
+ const joined = gl.concat(glEli)
+ if (joined.some(j => !j.id)) {
+ console.log("Invalid layers:", JSON.stringify(joined .filter(l => !l.id)))
+ throw "Detected invalid global layer with invalid id"
+ }
+ return joined.map(
(properties) =>
{
type: "Feature",
properties,
geometry: BBox.global.asGeometry(),
- }
+ },
)
+ }
+
public static bing = bingJson
public static readonly osmCartoProperties: RasterLayerProperties = {
id: "osm",
@@ -72,18 +85,18 @@ export class AvailableRasterLayers {
public static layersAvailableAt(
location: Store<{ lon: number; lat: number }>,
- enableBing?: Store
+ enableBing?: Store,
): { store: Store } {
const store = { store: undefined }
Utils.AddLazyProperty(store, "store", () =>
- AvailableRasterLayers._layersAvailableAt(location, enableBing)
+ AvailableRasterLayers._layersAvailableAt(location, enableBing),
)
return store
}
private static _layersAvailableAt(
location: Store<{ lon: number; lat: number }>,
- enableBing?: Store
+ enableBing?: Store,
): Store {
this.editorLayerIndex() // start the download
const availableLayersBboxes = Stores.ListStabilized(
@@ -96,8 +109,8 @@ export class AvailableRasterLayers {
const lonlat: [number, number] = [loc.lon, loc.lat]
return eli.filter((eliPolygon) => BBox.get(eliPolygon).contains(lonlat))
},
- [AvailableRasterLayers._editorLayerIndexStore]
- )
+ [AvailableRasterLayers._editorLayerIndexStore],
+ ),
)
return Stores.ListStabilized(
availableLayersBboxes.map(
@@ -119,15 +132,15 @@ export class AvailableRasterLayers {
if (
!matching.some(
(l) =>
- l.id === AvailableRasterLayers.defaultBackgroundLayer.properties.id
+ l.id === AvailableRasterLayers.defaultBackgroundLayer.properties.id,
)
) {
matching.push(AvailableRasterLayers.defaultBackgroundLayer)
}
return matching
},
- [enableBing]
- )
+ [enableBing],
+ ),
)
}
}
@@ -146,7 +159,7 @@ export class RasterLayerUtils {
available: RasterLayerPolygon[],
preferredCategory: string,
ignoreLayer?: RasterLayerPolygon,
- skipLayers: number = 0
+ skipLayers: number = 0,
): RasterLayerPolygon {
const inCategory = available.filter((l) => l.properties.category === preferredCategory)
const best: RasterLayerPolygon[] = inCategory.filter((l) => l.properties.best)
@@ -154,7 +167,7 @@ export class RasterLayerUtils {
let all = best.concat(others)
console.log(
"Selected layers are:",
- all.map((l) => l.properties.id)
+ all.map((l) => l.properties.id),
)
if (others.length > skipLayers) {
all = all.slice(skipLayers)
diff --git a/src/Models/ThemeConfig/Conversion/ConversionContext.ts b/src/Models/ThemeConfig/Conversion/ConversionContext.ts
index ee38c8c62..3f31103eb 100644
--- a/src/Models/ThemeConfig/Conversion/ConversionContext.ts
+++ b/src/Models/ThemeConfig/Conversion/ConversionContext.ts
@@ -120,11 +120,11 @@ export class ConversionContext {
return new ConversionContext(this.messages, this.path, [...this.operation, key])
}
- warn(message: string) {
- this.messages.push({ context: this, level: "warning", message })
+ warn(...message: (string | number)[]) {
+ this.messages.push({ context: this, level: "warning", message: message.join(" ") })
}
- err(...message: string[]) {
+ err(...message: (string | number)[]) {
this._hasErrors = true
this.messages.push({ context: this, level: "error", message: message.join(" ") })
}
diff --git a/src/Models/ThemeConfig/Conversion/Validation.ts b/src/Models/ThemeConfig/Conversion/Validation.ts
index 84f0463d4..6309d0866 100644
--- a/src/Models/ThemeConfig/Conversion/Validation.ts
+++ b/src/Models/ThemeConfig/Conversion/Validation.ts
@@ -20,6 +20,8 @@ import { Translatable } from "../Json/Translatable"
import { ConversionContext } from "./ConversionContext"
import PointRenderingConfigJson from "../Json/PointRenderingConfigJson"
import { PrevalidateLayer } from "./PrevalidateLayer"
+import { AvailableRasterLayers } from "../../RasterLayers"
+import { eliCategory } from "../../RasterLayerProperties"
export class ValidateLanguageCompleteness extends DesugaringStep {
private readonly _languages: string[]
@@ -28,7 +30,7 @@ export class ValidateLanguageCompleteness extends DesugaringStep {
super(
"Checks that the given object is fully translated in the specified languages",
[],
- "ValidateLanguageCompleteness"
+ "ValidateLanguageCompleteness",
)
this._languages = languages ?? ["en"]
}
@@ -42,18 +44,18 @@ export class ValidateLanguageCompleteness extends DesugaringStep {
.filter(
(t) =>
t.tr.translations[neededLanguage] === undefined &&
- t.tr.translations["*"] === undefined
+ t.tr.translations["*"] === undefined,
)
.forEach((missing) => {
context
.enter(missing.context.split("."))
.err(
`The theme ${obj.id} should be translation-complete for ` +
- neededLanguage +
- ", but it lacks a translation for " +
- missing.context +
- ".\n\tThe known translation is " +
- missing.tr.textFor("en")
+ neededLanguage +
+ ", but it lacks a translation for " +
+ missing.context +
+ ".\n\tThe known translation is " +
+ missing.tr.textFor("en"),
)
})
}
@@ -70,7 +72,7 @@ export class DoesImageExist extends DesugaringStep {
constructor(
knownImagePaths: Set,
checkExistsSync: (path: string) => boolean = undefined,
- ignore?: Set
+ ignore?: Set,
) {
super("Checks if an image exists", [], "DoesImageExist")
this._ignore = ignore
@@ -103,22 +105,22 @@ export class DoesImageExist extends DesugaringStep {
return image
}
- if(Utils.isEmoji(image)){
+ if (Utils.isEmoji(image)) {
return image
}
if (!this._knownImagePaths.has(image)) {
if (this.doesPathExist === undefined) {
context.err(
- `Image with path ${image} not found or not attributed; it is used in ${context}`
+ `Image with path ${image} not found or not attributed; it is used in ${context}`,
)
} else if (!this.doesPathExist(image)) {
context.err(
- `Image with path ${image} does not exist.\n Check for typo's and missing directories in the path.`
+ `Image with path ${image} does not exist.\n Check for typo's and missing directories in the path.`,
)
} else {
context.err(
- `Image with path ${image} is not attributed (but it exists); execute 'npm run query:licenses' to add the license information and/or run 'npm run generate:licenses' to compile all the license info`
+ `Image with path ${image} is not attributed (but it exists); execute 'npm run query:licenses' to add the license information and/or run 'npm run generate:licenses' to compile all the license info`,
)
}
}
@@ -131,7 +133,7 @@ class OverrideShadowingCheck extends DesugaringStep {
super(
"Checks that an 'overrideAll' does not override a single override",
[],
- "OverrideShadowingCheck"
+ "OverrideShadowingCheck",
)
}
@@ -181,7 +183,7 @@ class MiscThemeChecks extends DesugaringStep {
context
.enter("layers")
.err(
- "The 'layers'-field should be an array, but it is not. Did you pase a layer identifier and forget to add the '[' and ']'?"
+ "The 'layers'-field should be an array, but it is not. Did you pase a layer identifier and forget to add the '[' and ']'?",
)
}
if (json.socialImage === "") {
@@ -215,9 +217,25 @@ class MiscThemeChecks extends DesugaringStep {
context
.enter("overideAll")
.err(
- "'overrideAll' is spelled with _two_ `r`s. You only wrote a single one of them."
+ "'overrideAll' is spelled with _two_ `r`s. You only wrote a single one of them.",
)
}
+
+ if (json.defaultBackgroundId
+ && ![AvailableRasterLayers.osmCartoProperties.id, ...eliCategory ]
+ .find(l => l === json.defaultBackgroundId) ) {
+ const background = json.defaultBackgroundId
+ const match = AvailableRasterLayers.globalLayers.find(l => l.properties.id === background)
+ if (!match) {
+ const suggestions = Utils.sortedByLevenshteinDistance(background,
+ AvailableRasterLayers.globalLayers, l => l.properties.id)
+ context.enter("defaultBackgroundId")
+ .warn("The default background layer with id", background, "does not exist or is not a global layer. Perhaps you meant one of:",
+ suggestions.slice(0, 5).map(l => l.properties.id).join(", "),
+ "If you want to use a certain category of background image, use", AvailableRasterLayers.globalLayers.join(", ")
+ )
+ }
+ }
return json
}
}
@@ -227,7 +245,7 @@ export class PrevalidateTheme extends Fuse {
super(
"Various consistency checks on the raw JSON",
new MiscThemeChecks(),
- new OverrideShadowingCheck()
+ new OverrideShadowingCheck(),
)
}
}
@@ -237,7 +255,7 @@ export class DetectConflictingAddExtraTags extends DesugaringStep ["_abc"]
*/
private static extractCalculatedTagNames(
- layerConfig?: LayerConfigJson | { calculatedTags: string[] }
+ layerConfig?: LayerConfigJson | { calculatedTags: string[] },
) {
return (
layerConfig?.calculatedTags?.map((ct) => {
@@ -537,16 +555,16 @@ export class DetectShadowedMappings extends DesugaringStep does have `rel='noopener'` set",
[],
- "ValidatePossibleLinks"
+ "ValidatePossibleLinks",
)
}
@@ -601,21 +619,21 @@ export class ValidatePossibleLinks extends DesugaringStep,
- context: ConversionContext
+ context: ConversionContext,
): string | Record {
if (typeof json === "string") {
if (this.isTabnabbingProne(json)) {
context.err(
"The string " +
- json +
- " has a link targeting `_blank`, but it doesn't have `rel='noopener'` set. This gives rise to reverse tabnapping"
+ json +
+ " has a link targeting `_blank`, but it doesn't have `rel='noopener'` set. This gives rise to reverse tabnapping",
)
}
} else {
for (const k in json) {
if (this.isTabnabbingProne(json[k])) {
context.err(
- `The translation for ${k} '${json[k]}' has a link targeting \`_blank\`, but it doesn't have \`rel='noopener'\` set. This gives rise to reverse tabnapping`
+ `The translation for ${k} '${json[k]}' has a link targeting \`_blank\`, but it doesn't have \`rel='noopener'\` set. This gives rise to reverse tabnapping`,
)
}
}
@@ -633,7 +651,7 @@ export class CheckTranslation extends DesugaringStep {
super(
"Checks that a translation is valid and internally consistent",
["*"],
- "CheckTranslation"
+ "CheckTranslation",
)
this._allowUndefined = allowUndefined
}
@@ -680,7 +698,7 @@ export class ValidateLayerConfig extends DesugaringStep {
isBuiltin: boolean,
doesImageExist: DoesImageExist,
studioValidations: boolean = false,
- skipDefaultLayers: boolean = false
+ skipDefaultLayers: boolean = false,
) {
super("Thin wrapper around 'ValidateLayer", [], "ValidateLayerConfig")
this.validator = new ValidateLayer(
@@ -688,7 +706,7 @@ export class ValidateLayerConfig extends DesugaringStep {
isBuiltin,
doesImageExist,
studioValidations,
- skipDefaultLayers
+ skipDefaultLayers,
)
}
@@ -716,7 +734,7 @@ export class ValidatePointRendering extends DesugaringStep {
.enters("fields", i)
.err(
`Invalid filter: ${type} is not a valid textfield type.\n\tTry one of ${Array.from(
- Validators.availableTypes
- ).join(",")}`
+ Validators.availableTypes,
+ ).join(",")}`,
)
}
}
@@ -893,13 +911,13 @@ export class DetectDuplicateFilters extends DesugaringStep<{
super(
"Tries to detect layers where a shared filter can be used (or where similar filters occur)",
[],
- "DetectDuplicateFilters"
+ "DetectDuplicateFilters",
)
}
convert(
json: { layers: LayerConfigJson[]; themes: LayoutConfigJson[] },
- context: ConversionContext
+ context: ConversionContext,
): { layers: LayerConfigJson[]; themes: LayoutConfigJson[] } {
const { layers, themes } = json
const perOsmTag = new Map<
@@ -963,7 +981,7 @@ export class DetectDuplicateFilters extends DesugaringStep<{
filter: FilterConfigJson
}[]
>,
- layout?: LayoutConfigJson | undefined
+ layout?: LayoutConfigJson | undefined,
): void {
if (layer.filter === undefined || layer.filter === null) {
return
@@ -1003,7 +1021,7 @@ export class DetectDuplicatePresets extends DesugaringStep {
super(
"Detects mappings which have identical (english) names or identical mappings.",
["presets"],
- "DetectDuplicatePresets"
+ "DetectDuplicatePresets",
)
}
@@ -1014,13 +1032,13 @@ export class DetectDuplicatePresets extends DesugaringStep {
if (new Set(enNames).size != enNames.length) {
const dups = Utils.Duplicates(enNames)
const layersWithDup = json.layers.filter((l) =>
- l.presets.some((p) => dups.indexOf(p.title.textFor("en")) >= 0)
+ l.presets.some((p) => dups.indexOf(p.title.textFor("en")) >= 0),
)
const layerIds = layersWithDup.map((l) => l.id)
context.err(
`This theme has multiple presets which are named:${dups}, namely layers ${layerIds.join(
- ", "
- )} this is confusing for contributors and is probably the result of reusing the same layer multiple times. Use \`{"override": {"=presets": []}}\` to remove some presets`
+ ", ",
+ )} this is confusing for contributors and is probably the result of reusing the same layer multiple times. Use \`{"override": {"=presets": []}}\` to remove some presets`,
)
}
@@ -1035,17 +1053,17 @@ export class DetectDuplicatePresets extends DesugaringStep {
Utils.SameObject(presetATags, presetBTags) &&
Utils.sameList(
presetA.preciseInput.snapToLayers,
- presetB.preciseInput.snapToLayers
+ presetB.preciseInput.snapToLayers,
)
) {
context.err(
`This theme has multiple presets with the same tags: ${presetATags.asHumanString(
false,
false,
- {}
+ {},
)}, namely the preset '${presets[i].title.textFor("en")}' and '${presets[
j
- ].title.textFor("en")}'`
+ ].title.textFor("en")}'`,
)
}
}
@@ -1070,13 +1088,13 @@ export class ValidateThemeEnsemble extends Conversion<
super(
"Validates that all themes together are logical, i.e. no duplicate ids exists within (overriden) themes",
[],
- "ValidateThemeEnsemble"
+ "ValidateThemeEnsemble",
)
}
convert(
json: LayoutConfig[],
- context: ConversionContext
+ context: ConversionContext,
): Map<
string,
{
@@ -1127,11 +1145,11 @@ export class ValidateThemeEnsemble extends Conversion<
context.err(
[
"The layer with id '" +
- id +
- "' is found in multiple themes with different tag definitions:",
+ id +
+ "' is found in multiple themes with different tag definitions:",
"\t In theme " + oldTheme + ":\t" + oldTags.asHumanString(false, false, {}),
"\tIn theme " + theme.id + ":\t" + tags.asHumanString(false, false, {}),
- ].join("\n")
+ ].join("\n"),
)
}
}
diff --git a/src/UI/Image/UploadImage.svelte b/src/UI/Image/UploadImage.svelte
index ff7d4581c..594b17a70 100644
--- a/src/UI/Image/UploadImage.svelte
+++ b/src/UI/Image/UploadImage.svelte
@@ -62,7 +62,7 @@
return
}
- await state?.imageUploadManager.uploadImageAndApply(file, tags, targetKey)
+ await state?.imageUploadManager?.uploadImageAndApply(file, tags, targetKey)
} catch (e) {
console.error(e)
state.reportError(e, "Could not upload image")
diff --git a/src/assets/bing.json b/src/assets/bing.json
index 0a75c21a3..e1f8ccaef 100644
--- a/src/assets/bing.json
+++ b/src/assets/bing.json
@@ -1 +1 @@
-{"properties":{"name":"Bing Maps Aerial","id":"Bing","url":"https://ecn.t3.tiles.virtualearth.net/tiles/a{quadkey}.jpeg?g=14634&pr=odbl&n=f","type":"bing","category":"photo","min_zoom":1,"max_zoom":22},"type":"Feature","geometry":null}
\ No newline at end of file
+{"properties":{"name":"Bing Maps Aerial","id":"Bing","url":"https://ecn.t3.tiles.virtualearth.net/tiles/a{quadkey}.jpeg?g=14738&pr=odbl&n=f","type":"bing","category":"photo","min_zoom":1,"max_zoom":22},"type":"Feature","geometry":null}
\ No newline at end of file
From 5b5e756019cbe472f8220850683d067cd75f1c03 Mon Sep 17 00:00:00 2001
From: Thibault Molleman
Date: Tue, 8 Oct 2024 23:42:58 +0000
Subject: [PATCH 11/55] Translated using Weblate (English)
Currently translated at 100.0% (3825 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/en/
---
langs/layers/en.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/langs/layers/en.json b/langs/layers/en.json
index 23f1a804f..542b9a114 100644
--- a/langs/layers/en.json
+++ b/langs/layers/en.json
@@ -5397,7 +5397,7 @@
"delivery": {
"mappings": {
"0": {
- "then": "This business does home delivery (eventually via a third party)"
+ "then": "This business does home delivery (possibly via a third party)"
},
"1": {
"then": "This business does not deliver at home"
@@ -12516,4 +12516,4 @@
"render": "wind turbine"
}
}
-}
\ No newline at end of file
+}
From 9d345b2dd720d5e07d0a14a451d751568b7fc6a9 Mon Sep 17 00:00:00 2001
From: Thibault Molleman
Date: Tue, 8 Oct 2024 23:42:58 +0000
Subject: [PATCH 12/55] Translated using Weblate (Catalan)
Currently translated at 75.3% (2884 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/ca/
---
langs/layers/ca.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/langs/layers/ca.json b/langs/layers/ca.json
index 15373e975..c4b74559c 100644
--- a/langs/layers/ca.json
+++ b/langs/layers/ca.json
@@ -9625,4 +9625,4 @@
"render": "Turbina eòlica"
}
}
-}
\ No newline at end of file
+}
From 309c82632aadd0d716d7f298bbcac9442e5ec47f Mon Sep 17 00:00:00 2001
From: kjon
Date: Tue, 8 Oct 2024 18:06:32 +0000
Subject: [PATCH 13/55] Translated using Weblate (German)
Currently translated at 99.9% (3824 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/de/
---
langs/layers/de.json | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/langs/layers/de.json b/langs/layers/de.json
index 07baa8371..0b49c928a 100644
--- a/langs/layers/de.json
+++ b/langs/layers/de.json
@@ -5446,6 +5446,9 @@
},
"friture-vegan": {
"mappings": {
+ "0": {
+ "then": "Nur vegane Snacks und Burger erhältlich"
+ },
"1": {
"then": "Vegane Snacks sind erhältlich"
},
@@ -5460,6 +5463,9 @@
},
"friture-vegetarian": {
"mappings": {
+ "0": {
+ "then": "Nur vegetarische Snacks und Burger erhältlich"
+ },
"1": {
"then": "Vegetarische Snacks sind erhältlich"
},
@@ -12510,4 +12516,4 @@
"render": "Windrad"
}
}
-}
\ No newline at end of file
+}
From 8b29b99067227c18b120f036d5894a7b67adaa19 Mon Sep 17 00:00:00 2001
From: Thibault Molleman
Date: Tue, 8 Oct 2024 23:42:59 +0000
Subject: [PATCH 14/55] Translated using Weblate (French)
Currently translated at 57.9% (2218 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/fr/
---
langs/layers/fr.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/langs/layers/fr.json b/langs/layers/fr.json
index ef3a0b46c..bf0ba93d6 100644
--- a/langs/layers/fr.json
+++ b/langs/layers/fr.json
@@ -7558,4 +7558,4 @@
"render": "éolienne"
}
}
-}
\ No newline at end of file
+}
From 727627182088cf01dfff251fcbd1b5bf57cc7867 Mon Sep 17 00:00:00 2001
From: Thibault Molleman
Date: Tue, 8 Oct 2024 23:42:59 +0000
Subject: [PATCH 15/55] Translated using Weblate (Dutch)
Currently translated at 77.2% (2954 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/nl/
---
langs/layers/nl.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/langs/layers/nl.json b/langs/layers/nl.json
index b23b74540..9bb94c795 100644
--- a/langs/layers/nl.json
+++ b/langs/layers/nl.json
@@ -9910,4 +9910,4 @@
"render": "windturbine"
}
}
-}
\ No newline at end of file
+}
From b56c156a38d08db2a3948c3f810bbac9940c7cee Mon Sep 17 00:00:00 2001
From: Thibault Molleman
Date: Tue, 8 Oct 2024 23:42:59 +0000
Subject: [PATCH 16/55] Translated using Weblate (Czech)
Currently translated at 76.6% (2932 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/cs/
---
langs/layers/cs.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/langs/layers/cs.json b/langs/layers/cs.json
index 56cd2a519..f802d00fe 100644
--- a/langs/layers/cs.json
+++ b/langs/layers/cs.json
@@ -9989,4 +9989,4 @@
"render": "větrná turbína"
}
}
-}
\ No newline at end of file
+}
From 833e3cbe3cafe329cdd6e9af8d066e34c905b4a0 Mon Sep 17 00:00:00 2001
From: mcliquid
Date: Wed, 9 Oct 2024 09:32:06 +0000
Subject: [PATCH 17/55] Translated using Weblate (German)
Currently translated at 100.0% (3825 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/de/
---
langs/layers/de.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/langs/layers/de.json b/langs/layers/de.json
index 0b49c928a..021b31a24 100644
--- a/langs/layers/de.json
+++ b/langs/layers/de.json
@@ -5397,7 +5397,7 @@
"delivery": {
"mappings": {
"0": {
- "then": "Dieses Unternehmen liefert nach Hause (eventuell über eine dritte Partei)"
+ "then": "Dieses Unternehmen liefert nach Hause (möglicherweise über eine dritte Partei)"
},
"1": {
"then": "Dieses Unternehmen liefert nicht nach Hause"
From 7179b421fb4ee2d62d18b043db48cfa458313d77 Mon Sep 17 00:00:00 2001
From: Languages add-on
Date: Wed, 9 Oct 2024 19:59:08 +0000
Subject: [PATCH 18/55] Added translation using Weblate (Ukrainian)
---
langs/layers/uk.json | 1 +
1 file changed, 1 insertion(+)
create mode 100644 langs/layers/uk.json
diff --git a/langs/layers/uk.json b/langs/layers/uk.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/langs/layers/uk.json
@@ -0,0 +1 @@
+{}
From 9263732c9926c6f92307042c0d0f39d49da04cc3 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Wed, 9 Oct 2024 20:48:24 +0000
Subject: [PATCH 19/55] Translated using Weblate (Ukrainian)
Currently translated at 0.3% (13 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/uk/
---
langs/layers/uk.json | 38 +++++++++++++++++++++++++++++++++++++-
1 file changed, 37 insertions(+), 1 deletion(-)
diff --git a/langs/layers/uk.json b/langs/layers/uk.json
index 0967ef424..17eb64929 100644
--- a/langs/layers/uk.json
+++ b/langs/layers/uk.json
@@ -1 +1,37 @@
-{}
+{
+ "address": {
+ "description": "Адреси",
+ "name": "Відомі адреси в OSM",
+ "tagRenderings": {
+ "fixme": {
+ "question": "Що тут треба виправити? Поясніть, будь ласка"
+ },
+ "housenumber": {
+ "mappings": {
+ "0": {
+ "then": "Ця будівля не має номера будинку"
+ }
+ },
+ "question": "Який номер цього будинку?",
+ "render": "Номер будинку {addr:housenumber}"
+ },
+ "street": {
+ "question": "На якій вулиці знаходиться ця адреса?",
+ "render": "Ця адреса знаходиться на вулиці {addr:street}"
+ }
+ },
+ "title": {
+ "render": "Відома адреса"
+ }
+ },
+ "advertising": {
+ "description": "Ми доповнимо дані з рекламних об'єктів посиланням, оператором та освітленням",
+ "name": "Оголошення",
+ "presets": {
+ "0": {
+ "description": "Велика зовнішня рекламна конструкція, зазвичай розташована в місцях з високим трафіком, наприклад, уздовж жвавих доріг",
+ "title": "білборд"
+ }
+ }
+ }
+}
From 9d56b4db2be9d0ac6507d3e976ee37ea8f04f8a9 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Wed, 9 Oct 2024 20:55:48 +0000
Subject: [PATCH 20/55] Translated using Weblate (Ukrainian)
Currently translated at 1.0% (40 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/uk/
---
langs/layers/uk.json | 79 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)
diff --git a/langs/layers/uk.json b/langs/layers/uk.json
index 17eb64929..177bcdd22 100644
--- a/langs/layers/uk.json
+++ b/langs/layers/uk.json
@@ -31,6 +31,85 @@
"0": {
"description": "Велика зовнішня рекламна конструкція, зазвичай розташована в місцях з високим трафіком, наприклад, уздовж жвавих доріг",
"title": "білборд"
+ },
+ "1": {
+ "description": "Велика зовнішня рекламна конструкція, зазвичай розташована в місцях з високим трафіком, наприклад, уздовж жвавих доріг, встановлена на стіні",
+ "title": "білборд, прикріплений до стіни"
+ },
+ "10": {
+ "title": "екран, встановлений на тимчасовому укритті"
+ },
+ "11": {
+ "description": "Шматок водонепроникного текстилю з надрукованим повідомленням, постійно закріплений на стіні",
+ "title": "брезент"
+ },
+ "12": {
+ "title": "тотем"
+ },
+ "13": {
+ "description": "Використовується для рекламних вивісок, неонових вивісок, логотипів та вхідних табличок установ",
+ "title": "знак"
+ },
+ "14": {
+ "title": "скульптура"
+ },
+ "15": {
+ "title": "настінний розпис"
+ },
+ "2": {
+ "title": "окремо стояча коробка для плакатів"
+ },
+ "3": {
+ "title": "коробка для плакатів, що кріпиться на стіну"
+ },
+ "4": {
+ "title": "афішна скринька, що є частиною зупинки громадського транспорту"
+ },
+ "5": {
+ "description": "Невеликий білборд для місцевої реклами, в основному призначений для пішоходів",
+ "title": "дошка"
+ },
+ "6": {
+ "description": "Циліндрична зовнішня конструкція, що показує рекламу",
+ "title": "стовпчик"
+ },
+ "7": {
+ "title": "прапор"
+ },
+ "8": {
+ "title": "екран"
+ },
+ "9": {
+ "title": "екран, встановлений на стіні"
+ }
+ },
+ "tagRenderings": {
+ "Sides": {
+ "mappings": {
+ "0": {
+ "then": "Цей об'єкт має рекламу з одного боку"
+ },
+ "1": {
+ "then": "Цей об'єкт має рекламу з обох боків"
+ }
+ },
+ "question": "Зі скількох сторін можна дивитися рекламу?"
+ },
+ "animated": {
+ "mappings": {
+ "0": {
+ "then": "Статичний, завжди показує одне й те саме повідомлення"
+ },
+ "1": {
+ "then": "Цей об'єкт має вбудований цифровий дисплей для відображення цін або іншого повідомлення"
+ },
+ "2": {
+ "then": "Поділ - білборд складається з багатьох трикутних призм, які регулярно обертаються"
+ },
+ "3": {
+ "then": "Прокрутка постерів"
+ }
+ }
}
}
}
From 039b63da520c84fe7b586963c8393fa0d72698e8 Mon Sep 17 00:00:00 2001
From: macpac
Date: Thu, 10 Oct 2024 12:30:08 +0000
Subject: [PATCH 21/55] Translated using Weblate (Czech)
Currently translated at 77.1% (2951 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/cs/
---
langs/layers/cs.json | 118 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 117 insertions(+), 1 deletion(-)
diff --git a/langs/layers/cs.json b/langs/layers/cs.json
index f802d00fe..5487332a4 100644
--- a/langs/layers/cs.json
+++ b/langs/layers/cs.json
@@ -5005,7 +5005,48 @@
}
},
"icons": {
- "description": "Vrstva sloužící jako knihovna pro ikony-značky, zejména pro zobrazení jako odznak vedle bodu zájmu"
+ "description": "Vrstva sloužící jako knihovna pro ikony-značky, zejména pro zobrazení jako odznak vedle bodu zájmu",
+ "tagRenderings": {
+ "osmlink": {
+ "mappings": {
+ "1": {
+ "then": {
+ "special": {
+ "arialabel": "Otevřít na openstreetmap.org"
+ }
+ }
+ },
+ "2": {
+ "then": {
+ "special": {
+ "arialabel": "Otevřít na openstreetmap.org"
+ }
+ }
+ }
+ },
+ "render": {
+ "special": {
+ "arialabel": "Otevřít na openstreetmap.org"
+ }
+ }
+ },
+ "phonelink": {
+ "mappings": {
+ "0": {
+ "then": {
+ "special": {
+ "arialabel": "telefon"
+ }
+ }
+ }
+ },
+ "render": {
+ "special": {
+ "arialabel": "telefon"
+ }
+ }
+ }
+ }
},
"indoors": {
"description": "Základní mapování interiérů: zobrazuje obrysy místností",
@@ -5817,6 +5858,11 @@
}
},
"render": "Poznámka"
+ },
+ "titleIcons": {
+ "0": {
+ "ariaLabel": "Zobrazit na OpenStreetMap.org"
+ }
}
},
"observation_tower": {
@@ -7532,6 +7578,14 @@
"render": "Škola {name}"
}
},
+ "search": {
+ "description": "Soukromá vrstva zobrazující výsledky hledání",
+ "tagRenderings": {
+ "intro": {
+ "render": "Výsledek hledání"
+ }
+ }
+ },
"selected_element": {
"description": "Zvýrazní aktuálně vybraný prvek. Přepište tuto vrstvu, aby měla různé barvy"
},
@@ -8299,6 +8353,11 @@
"render": "Pouliční lampa"
}
},
+ "summary": {
+ "title": {
+ "render": "Souhrn"
+ }
+ },
"surveillance_camera": {
"description": "Tato vrstva zobrazuje sledovací kamery a umožňuje přispěvateli aktualizovat informace a přidávat nové kamery",
"name": "Bezpečnostní kamery",
@@ -8591,6 +8650,18 @@
}
},
"tagRenderings": {
+ "gender_segregated": {
+ "mappings": {
+ "0": {
+ "then": "K dispozici je oddělený, označený prostor pro muže a ženy"
+ },
+ "1": {
+ "then": "Neexistuje žádný oddělený, označený prostor pro muže a ženy"
+ }
+ },
+ "question": "Jsou tyto toalety rozděleny podle pohlaví?",
+ "questionHint": "Existují samostatné stánky nebo oddělené prostory pro muže a ženy a jsou jako takové označeny?"
+ },
"opening_hours_24_7": {
"override": {
"question": "Kdy jsou tyto toalety otevřeny?"
@@ -9229,6 +9300,20 @@
"usersettings": {
"description": "Speciální vrstva, která není určena k zobrazení na mapě, ale slouží k nastavení uživatelských nastavení",
"tagRenderings": {
+ "a11y-features": {
+ "mappings": {
+ "0": {
+ "then": "Povolení funkcí přístupnosti při použití kláves se šipkami k navigaci na mapě"
+ }
+ }
+ },
+ "add-new-feature": {
+ "mappings": {
+ "4": {
+ "then": "Po kliknutí pravým tlačítkem myši nebo dlouhém stisknutí mapy se zobrazí značka, kam lze přidat nový prvek. Kromě toho se vlevo dole zobrazí tlačítko"
+ }
+ }
+ },
"all-questions-at-once": {
"mappings": {
"0": {
@@ -9331,6 +9416,16 @@
}
}
},
+ "more_privacy": {
+ "mappings": {
+ "0": {
+ "then": "Při provádění změn v OpenStreetMap neuvádějte, jak daleko jste byli od změněných objektů."
+ },
+ "1": {
+ "then": "Při provádění změn v OpenStreetMap zhruba uveďte, jak daleko jste byli od změněných objektů. To pomůže ostatním přispěvatelům pochopit, jak jste změnu provedli"
+ }
+ }
+ },
"picture-license": {
"mappings": {
"0": {
@@ -9359,6 +9454,14 @@
}
}
},
+ "scalebar": {
+ "mappings": {
+ "1": {
+ "then": "Skrytí panelu měřítka"
+ }
+ },
+ "question": "Má být na mapě zobrazeno měřítko?"
+ },
"settings-link": {
"render": {
"special": {
@@ -9402,6 +9505,19 @@
"question": "Zobrazit nezpracované/raw tagy OpenStreetMap?",
"questionHint": "Tagy jsou atributy, které má každý element. Jedná se o technické údaje, které jsou uloženy v databázi. K úpravám pomocí MapComplete tyto informace nepotřebujete, ale pokročilí uživatelé by je mohli chtít použít jako referenci."
},
+ "sync-visited-themes": {
+ "mappings": {
+ "0": {
+ "then": "Uložit navštívené tematické mapy a synchronizovat je prostřednictvím openstreetmap.org. OpenStreetMap a všechny aplikace, které používáte, mohou tuto historii vidět"
+ }
+ }
+ },
+ "title-editing": {
+ "render": "Úprava nastavení
"
+ },
+ "title-privacy-legal": {
+ "render": "Soukromí a právní záležitosti
"
+ },
"translation-completeness": {
"mappings": {
"0": {
From f9f56c327741da9283f4fe342910b12cad2ed1ab Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Thu, 10 Oct 2024 17:37:47 +0000
Subject: [PATCH 22/55] Translated using Weblate (Ukrainian)
Currently translated at 1.0% (41 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/uk/
---
langs/layers/uk.json | 3 +++
1 file changed, 3 insertions(+)
diff --git a/langs/layers/uk.json b/langs/layers/uk.json
index 177bcdd22..aae63c0df 100644
--- a/langs/layers/uk.json
+++ b/langs/layers/uk.json
@@ -112,5 +112,8 @@
}
}
}
+ },
+ "artwork": {
+ "description": "Відкрита карта статуй, бюстів, графіті та інших творів мистецтва по всьому світу"
}
}
From 42f8ed8eca03c5cf63f126660fca80fdde96620d Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Thu, 10 Oct 2024 18:37:19 +0000
Subject: [PATCH 23/55] Translated using Weblate (Ukrainian)
Currently translated at 2.2% (86 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/uk/
---
langs/layers/uk.json | 155 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 155 insertions(+)
diff --git a/langs/layers/uk.json b/langs/layers/uk.json
index aae63c0df..a187f0bec 100644
--- a/langs/layers/uk.json
+++ b/langs/layers/uk.json
@@ -108,6 +108,89 @@
},
"3": {
"then": "Прокрутка постерів"
+ },
+ "4": {
+ "then": "Обертається на себе"
+ }
+ },
+ "question": "Чи циркулює ця реклама через кілька повідомлень?"
+ },
+ "historic": {
+ "mappings": {
+ "0": {
+ "then": "Це історична рекламна вивіска (реклама підприємства, яке більше не існує, або дуже стара вивіска, що має історичну цінність)"
+ },
+ "1": {
+ "then": "Ця рекламна вивіска не має історичної цінності (бізнес все ще існує і не має історичної цінності)"
+ }
+ },
+ "question": "Це знак для бізнесу, який більше не існує або більше не підтримується?"
+ },
+ "luminous_or_lit_advertising": {
+ "override": {
+ "+mappings": {
+ "0": {
+ "then": "Це неонова лампа"
+ }
+ }
+ }
+ },
+ "message_type": {
+ "mappings": {
+ "0": {
+ "then": "Комерційне повідомлення"
+ },
+ "1": {
+ "then": "Місцева інформація"
+ },
+ "2": {
+ "then": "Інформація про безпеку"
+ },
+ "3": {
+ "then": "Передвиборча реклама"
+ },
+ "4": {
+ "then": "Інформація, пов'язана з театром, концертами, …"
+ },
+ "5": {
+ "then": "Повідомлення від неприбуткових організацій"
+ },
+ "6": {
+ "then": "Щоб висловити свою думку"
+ },
+ "7": {
+ "then": "Релігійне послання"
+ },
+ "8": {
+ "then": "Ознака фінансування"
+ },
+ "9": {
+ "then": "Карта"
+ }
+ },
+ "question": "Яке повідомлення відображається?"
+ },
+ "operator": {
+ "question": "Хто керує цим об'єктом?",
+ "render": "Управляється {operator}"
+ },
+ "ref": {
+ "question": "Який номер посилання?",
+ "render": "Номер посилання: {ref}"
+ },
+ "type": {
+ "mappings": {
+ "0": {
+ "then": "Це білборд"
+ },
+ "1": {
+ "then": "Це дошка"
+ },
+ "10": {
+ "then": "Це настінний розпис"
+ },
+ "11": {
+ "then": "Це кахельна плитка - реклама намальована на плитці"
}
}
}
@@ -115,5 +198,77 @@
},
"artwork": {
"description": "Відкрита карта статуй, бюстів, графіті та інших творів мистецтва по всьому світу"
+ },
+ "usersettings": {
+ "description": "Спеціальний шар, який не призначений для відображення на карті, але використовується для встановлення користувацьких налаштувань",
+ "tagRenderings": {
+ "a11y-features": {
+ "mappings": {
+ "0": {
+ "then": "Увімкніть функції доступності, коли для навігації по карті використовуються клавіші зі стрілками"
+ },
+ "1": {
+ "then": "Завжди вмикайте функції доступності"
+ },
+ "2": {
+ "then": "Ніколи не вмикайте функції доступності"
+ }
+ },
+ "question": "Які елементи доступності слід застосовувати?"
+ },
+ "add-new-feature": {
+ "mappings": {
+ "0": {
+ "then": "Додавання нового об'єкта здійснюється за допомогою кнопки внизу ліворуч. Клацання по карті нічого не робить"
+ },
+ "1": {
+ "then": "При натисканні або торканні мапи з'являється маркер, де додається новий об'єкт"
+ },
+ "2": {
+ "then": "При натисканні правою кнопкою миші або тривалому утриманні мапи з'являється маркер, де можна додати новий об'єкт"
+ },
+ "3": {
+ "then": "При натисканні або торканні мапи з'являється маркер, де можна додати новий об'єкт. Крім того, внизу ліворуч відображається кнопка"
+ },
+ "4": {
+ "then": "При натисканні правою кнопкою миші або тривалому утриманні на мапі з'являється маркер, куди можна додати новий об'єкт. Крім того, внизу ліворуч відображається кнопка"
+ }
+ },
+ "question": "Як має відкриватися меню для додавання нового об'єкту?"
+ },
+ "all-questions-at-once": {
+ "mappings": {
+ "0": {
+ "then": "Показати всі питання в інфобокс разом"
+ },
+ "1": {
+ "then": "Показувати питання по черзі"
+ }
+ },
+ "question": "Чи повинні питання для невідомих полів даних з'являтися по одному або разом?"
+ },
+ "background-layer": {
+ "mappings": {
+ "0": {
+ "then": "Використовуйте фоновий шар за замовчуванням"
+ },
+ "1": {
+ "then": "Використовувати OpenStreetMap-carto як шар за замовчуванням"
+ },
+ "2": {
+ "then": "Використовувати аерофотознімки як фон за замовчуванням"
+ },
+ "3": {
+ "then": "Використовувати мапу на основі не-openstreetmap як фон за замовчуванням"
+ },
+ "4": {
+ "then": "Використовувати поточний фоновий шар ({__current_background}) як фон за замовчуванням"
+ },
+ "5": {
+ "then": "Використовувати фоновий шар {mapcomplete-preferred-background-layer} як фон за замовчуванням"
+ }
+ }
+ }
+ }
}
}
From 47a36dd91dfc063efc53e802e4c7724f3abb89f8 Mon Sep 17 00:00:00 2001
From: danieldegroot2
Date: Fri, 11 Oct 2024 10:52:29 +0000
Subject: [PATCH 24/55] Translated using Weblate (English)
Currently translated at 100.0% (3825 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/en/
---
langs/layers/en.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/langs/layers/en.json b/langs/layers/en.json
index 542b9a114..3bac936e6 100644
--- a/langs/layers/en.json
+++ b/langs/layers/en.json
@@ -543,7 +543,7 @@
"then": "This artwork also serves as a memorial"
},
"1": {
- "then": "This artwork does not serve as a bench"
+ "then": "This artwork does not serve as a memorial"
}
},
"question": "Does this artwork serve as a memorial?"
From 8f7f724a4016234c3b28aa0002173b84e44f664f Mon Sep 17 00:00:00 2001
From: danieldegroot2
Date: Fri, 11 Oct 2024 10:52:30 +0000
Subject: [PATCH 25/55] Translated using Weblate (Spanish)
Currently translated at 41.3% (1582 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/es/
---
langs/layers/es.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/langs/layers/es.json b/langs/layers/es.json
index e1b22ea91..efb2d9d01 100644
--- a/langs/layers/es.json
+++ b/langs/layers/es.json
@@ -5374,4 +5374,4 @@
}
}
}
-}
\ No newline at end of file
+}
From 4677324efe74d33d05252b366a042605d513387e Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Fri, 11 Oct 2024 15:02:19 +0000
Subject: [PATCH 26/55] Translated using Weblate (Russian)
Currently translated at 15.1% (579 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/ru/
---
langs/layers/ru.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/langs/layers/ru.json b/langs/layers/ru.json
index 7202e84a3..550064b1d 100644
--- a/langs/layers/ru.json
+++ b/langs/layers/ru.json
@@ -2072,6 +2072,9 @@
}
}
}
+ },
+ "title": {
+ "render": "Настройки"
}
},
"vending_machine": {
@@ -2146,4 +2149,4 @@
}
}
}
-}
\ No newline at end of file
+}
From 7b95acba6b36cffc81d84c4d468ca73768418464 Mon Sep 17 00:00:00 2001
From: kjon
Date: Fri, 11 Oct 2024 16:32:23 +0000
Subject: [PATCH 27/55] Translated using Weblate (German)
Currently translated at 100.0% (3825 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/de/
---
langs/layers/de.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/langs/layers/de.json b/langs/layers/de.json
index 021b31a24..1b0eb9a5c 100644
--- a/langs/layers/de.json
+++ b/langs/layers/de.json
@@ -543,7 +543,7 @@
"then": "Dieses Kunstwerk dient auch als Mahnmal"
},
"1": {
- "then": "Dieses Kunstwerk dient nicht als Sitzbank"
+ "then": "Dieses Kunstwerk dient nicht als Denkmal"
}
},
"question": "Dient dieses Kunstwerk als Mahnmal?"
From 56cdbfefba2f051fb2a2bb5fb640f131fdf6e89f Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Sat, 12 Oct 2024 16:01:41 +0000
Subject: [PATCH 28/55] Translated using Weblate (Russian)
Currently translated at 15.1% (580 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/ru/
---
langs/layers/ru.json | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/langs/layers/ru.json b/langs/layers/ru.json
index 550064b1d..cd7e1bb69 100644
--- a/langs/layers/ru.json
+++ b/langs/layers/ru.json
@@ -1976,6 +1976,13 @@
"render": "Тропа"
}
},
+ "transit_routes": {
+ "tagRenderings": {
+ "via": {
+ "question": "Где находится конечный пункт этого автобусного маршрута?"
+ }
+ }
+ },
"tree_node": {
"name": "Дерево",
"presets": {
From 52560164f74104ac5a314a0d89da0ae8ee219832 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Sat, 12 Oct 2024 18:45:01 +0000
Subject: [PATCH 29/55] Translated using Weblate (Russian)
Currently translated at 15.2% (584 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/ru/
---
langs/layers/ru.json | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/langs/layers/ru.json b/langs/layers/ru.json
index cd7e1bb69..4181247fd 100644
--- a/langs/layers/ru.json
+++ b/langs/layers/ru.json
@@ -74,6 +74,9 @@
"render": "Станция скорой помощи"
}
},
+ "animal_shelter": {
+ "name": "Приюты для животных"
+ },
"artwork": {
"description": "Разнообразные произведения искусства",
"name": "Произведения искусства",
@@ -859,6 +862,9 @@
"description": "Этот слой визуализирует направление",
"name": "Визуализация направления"
},
+ "dogpark": {
+ "name": "парки для собак"
+ },
"drinking_water": {
"name": "Питьевая вода",
"presets": {
@@ -1066,6 +1072,9 @@
"render": "Велосипед Ghost"
}
},
+ "gps_track": {
+ "name": "Ваш пройденный путь"
+ },
"hackerspace": {
"description": "Хакерспейс",
"name": "Хакерспейс",
@@ -2105,6 +2114,9 @@
}
}
},
+ "veterinary": {
+ "name": "ветеринария"
+ },
"viewpoint": {
"name": "Смотровая площадка",
"presets": {
From c4658f8a48add1eb5a546dd64e11311ed1ca9b6d Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Sun, 13 Oct 2024 14:01:57 +0000
Subject: [PATCH 30/55] Translated using Weblate (Russian)
Currently translated at 15.5% (594 of 3825 strings)
Translation: MapComplete/Layer translations
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layers/ru/
---
langs/layers/ru.json | 46 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/langs/layers/ru.json b/langs/layers/ru.json
index 4181247fd..5746654d6 100644
--- a/langs/layers/ru.json
+++ b/langs/layers/ru.json
@@ -1313,6 +1313,13 @@
"render": "Карта"
}
},
+ "maxspeed": {
+ "tagRenderings": {
+ "maxspeed-maxspeed": {
+ "question": "С какой максимальной скоростью разрешено ездить по этой дороге?"
+ }
+ }
+ },
"memorial": {
"tagRenderings": {
"start_date": {
@@ -2144,12 +2151,51 @@
}
},
"waste_basket": {
+ "filter": {
+ "1": {
+ "options": {
+ "0": {
+ "question": "Корзина для мусора с дозатором для пакетов (собачьих) экскрементов"
+ }
+ }
+ }
+ },
"name": "Контейнер для мусора",
"presets": {
"0": {
"title": "Контейнер для мусора"
}
},
+ "tagRenderings": {
+ "waste-basket-waste-types": {
+ "mappings": {
+ "1": {
+ "then": "Корзина для общих отходов"
+ },
+ "2": {
+ "then": "Корзина для собачьих экскрементов"
+ },
+ "3": {
+ "then": "Корзина для сигарет"
+ },
+ "4": {
+ "then": "Корзина для наркотиков"
+ },
+ "5": {
+ "then": "Корзина для иголок и других острых предметов"
+ },
+ "6": {
+ "then": "Корзина для пластика"
+ },
+ "7": {
+ "then": "Корзина для пластиковой упаковки, металлической упаковки и картонной упаковки из-под напитков (PMD)"
+ },
+ "8": {
+ "then": "Корзина для бумаг"
+ }
+ }
+ }
+ },
"title": {
"render": "Контейнер для мусора"
}
From 473cd5545585bc80b66c81ce40934a5f0b8022c4 Mon Sep 17 00:00:00 2001
From: kjon
Date: Tue, 8 Oct 2024 18:05:53 +0000
Subject: [PATCH 31/55] Translated using Weblate (German)
Currently translated at 100.0% (704 of 704 strings)
Translation: MapComplete/Core
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/de/
---
langs/de.json | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/langs/de.json b/langs/de.json
index 86a568fba..8cc607951 100644
--- a/langs/de.json
+++ b/langs/de.json
@@ -206,6 +206,7 @@
"openPanoramax": "Panoramax öffnen",
"openThemeDocumentation": "Dokumentation zur Themenkarte {name} anzeigen",
"panoramaxHelp": "Panoramax ist ein Online-Service, der Straßenbilder sammelt und sie unter einer kostenlosen Lizenz anbietet. Mitwirkende dürfen diese Bilder nutzen, um OpenStreetMap zu verbessern",
+ "panoramaxLicenseCCBYSA": "Ihre Bilder werden unter CC-BY-SA veröffentlicht - jeder kann Ihr Bild weiterverwenden, wenn er Ihren Namen erwähnt",
"seeOnMapillary": "Dieses Bild auf Mapillary ansehen",
"themeBy": "Dieses Thema wurde erstellt von {author}",
"title": "Copyright und Urheberrechtsangabe",
@@ -309,6 +310,7 @@
"aboutMapComplete": "Über MapComplete",
"filter": "Daten filtern",
"moreUtilsTitle": "Mehr entdecken",
+ "openHereDifferentApp": "Aktuellen Standort in anderen Anwendungen öffnen",
"showIntroduction": "Einführung anzeigen",
"title": "Menü"
},
@@ -895,4 +897,4 @@
"startsWithQ": "Ein Wikidata-Identifikator beginnt mit Q und wird von einer Zahl gefolgt"
}
}
-}
\ No newline at end of file
+}
From 4ed75befacfb51bf43e065fcc8495dd56bec3afc Mon Sep 17 00:00:00 2001
From: gallegonovato
Date: Wed, 9 Oct 2024 10:26:21 +0000
Subject: [PATCH 32/55] Translated using Weblate (Spanish)
Currently translated at 100.0% (704 of 704 strings)
Translation: MapComplete/Core
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/es/
---
langs/es.json | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/langs/es.json b/langs/es.json
index 12f368827..8ee55be7c 100644
--- a/langs/es.json
+++ b/langs/es.json
@@ -206,6 +206,7 @@
"openPanoramax": "Abrir Panoramax aquí",
"openThemeDocumentation": "Abrir la documentación para el mapa temático {name}",
"panoramaxHelp": "Panoramax es un servicio en línea que recoge imágenes a pie de calle y las ofrece bajo una licencia libre. Los colaboradores pueden utilizar estas imágenes para mejorar OpenStreetMap",
+ "panoramaxLicenseCCBYSA": "Tus fotos son publicadas bajo CC-BY-SA - todos pueden reutilizar tu imagen si mencionan tu nombre",
"seeOnMapillary": "Vea esta imagen en Mapillary",
"themeBy": "Tema mantenido por {author}",
"title": "Derechos de autor y atribución",
@@ -309,6 +310,7 @@
"aboutMapComplete": "Sobre MapComplete",
"filter": "Filtrar datos",
"moreUtilsTitle": "Descubrir más",
+ "openHereDifferentApp": "Abrir la ubicación actual en otras aplicaciones",
"showIntroduction": "Mostrar introducción",
"title": "Menú"
},
@@ -571,6 +573,10 @@
"selectItem": "Seleccione el PDI más cercano al centro del mapa (cruz). Solo cuando se utiliza la navegación por teclado",
"selectItem2": "Seleccione el PDI que es el segundo elemento más cercano al centro del mapa (cruz). Solo cuando se utiliza la navegación mediante el teclado",
"selectItem3": "Seleccione el PDI que es el tercer elemento más cercano al centro del mapa (cruz). Solo cuando se utiliza la navegación mediante el teclado",
+ "selectItemI": "Seleccione el PDI que es el {i}o elemento más cercano al centro del mapa (cruz). Solo cuando se utiliza en la navegación por teclado",
+ "selectMap": "Establecer el fondo de un mapa desde fuentes externas. Alterna entre las dos mejores capas disponibles",
+ "selectMapnik": "Establecer la capa de fondo a OpenStreetMap-carto",
+ "selectOsmbasedmap": "Establecer la capa de fondo en el mapa basado en OpenStreetMap (o desactivar la capa de fondo)",
"selectSearch": "Selecciona la barra de búsqueda para buscar ubicaciones",
"shakePhone": "Agitar tu teléfono",
"title": "Atajos de teclado",
@@ -587,7 +593,8 @@
"failed": "Ha fallado la búsqueda de imágenes de {service}",
"link": "Esta imagen muestra el objeto",
"noNearbyImages": "No se han encontrado imágenes cercanas",
- "seeNearby": "Explorar fotos cercanas"
+ "seeNearby": "Explorar fotos cercanas",
+ "title": "Imágenes de streetview cercanas"
},
"pleaseLogin": "Accede para cargar una imagen",
"processing": "El servidor está procesando tu imagen",
@@ -795,8 +802,10 @@
},
"unknown": {
"clear": "Borrar respuesta",
+ "explanation": "Borrar esta información si la respuesta actual es incorrecta pero el valor real no se conoce. No se eliminará ninguna otra información.",
"keep": "Mantener respuesta",
"markUnknown": "Marcar como desconocido",
+ "removedKeys": "Se eliminarán las siguientes claves:",
"title": "¿Marcar como desconocido?"
},
"userinfo": {
@@ -824,6 +833,8 @@
"noAt": "Una dirección de correo electrónico debe de contener un @"
},
"fediverse": {
+ "description": "Un identificador fediverse, a menudo @username@server.tld",
+ "feedback": "Un identificador fediverse consiste en @username@server.tld o es un enlace a un perfil",
"invalidHost": "{host} es un nombre de host no válido",
"onYourServer": "Ver y seguir en tu servidor"
},
@@ -881,7 +892,9 @@
"spamSite": "{host} es considerado un sitio web de baja calidad. No se permite usar este sitio web."
},
"wikidata": {
- "description": "Un identificador de Wikidata"
+ "description": "Un identificador de Wikidata",
+ "empty": "Por favor, introduzca algunas entradas en wikidata",
+ "startsWithQ": "Un identificador wikidata comienza con Q y es seguido por un número"
}
}
-}
\ No newline at end of file
+}
From ad7d02cda264515666c415273ad939528601484f Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Wed, 9 Oct 2024 21:58:49 +0200
Subject: [PATCH 33/55] Added translation using Weblate (Ukrainian)
---
langs/uk.json | 1 +
1 file changed, 1 insertion(+)
create mode 100644 langs/uk.json
diff --git a/langs/uk.json b/langs/uk.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/langs/uk.json
@@ -0,0 +1 @@
+{}
From cd85d56bf038d3470578f01f70b54c06d045288c Mon Sep 17 00:00:00 2001
From: Languages add-on
Date: Wed, 9 Oct 2024 21:59:35 +0200
Subject: [PATCH 34/55] Added translation using Weblate (Ukrainian)
---
langs/themes/uk.json | 1 +
1 file changed, 1 insertion(+)
create mode 100644 langs/themes/uk.json
diff --git a/langs/themes/uk.json b/langs/themes/uk.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/langs/themes/uk.json
@@ -0,0 +1 @@
+{}
From 4c22a3db8a2b465162bb5f65e986036c62531df9 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Wed, 9 Oct 2024 20:00:03 +0000
Subject: [PATCH 35/55] Translated using Weblate (Ukrainian)
Currently translated at 4.2% (30 of 704 strings)
Translation: MapComplete/Core
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/uk/
---
langs/uk.json | 45 ++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)
diff --git a/langs/uk.json b/langs/uk.json
index 0967ef424..77d716301 100644
--- a/langs/uk.json
+++ b/langs/uk.json
@@ -1 +1,44 @@
-{}
+{
+ "advanced": {
+ "title": "Розширені можливості"
+ },
+ "centerMessage": {
+ "allFilteredAway": "Жоден з об'єктів не відповідає всім фільтрам",
+ "loadingData": "Завантаження даних…",
+ "noData": "У поточному поданні немає відповідних функцій",
+ "ready": "Готово!",
+ "retrying": "Не вдалося завантажити дані. Повторна спроба через {count} секунд…",
+ "zoomIn": "Збільшити масштаб для перегляду або редагування даних"
+ },
+ "communityIndex": {
+ "available": "Ця спільнота розмовляє {native}",
+ "intro": "Контактуйте з іншими людьми, щоб познайомитися з ними, вчитися у них, …",
+ "notAvailable": "Ця спільнота не розмовляє {native}",
+ "title": "Зв'яжіться з іншими"
+ },
+ "delete": {
+ "cancel": "Скасувати",
+ "cannotBeDeleted": "Цей елемент не можна видалити",
+ "delete": "Видалити",
+ "deletedTitle": "Видалений елемент",
+ "explanations": {
+ "hardDelete": "Цей елемент буде видалено з OpenStreetMap. Його може відновити досвідчений дописувач",
+ "retagNoOtherThemes": "Ця функція буде перекласифікована і прихована з цієї програми",
+ "retagOtherThemes": "Цей елемент буде позначений повторно і буде видимий в {otherThemes}",
+ "selectReason": "Будь ласка, виберіть, чому цей елемент слід видалити",
+ "softDelete": "Цей елемент буде оновлено та приховано з цієї програми. {reason}"
+ },
+ "isChanged": "Цей елемент був змінений і більше не відповідає цьому шару",
+ "isDeleted": "Цей елемент видалено",
+ "isntAPoint": "Видаляти можна лише точки, вибраний об'єкт - це лінія, полігон або зв'язок.",
+ "loading": "Перегляд властивостей, щоб перевірити, чи можна видалити цей елемент.",
+ "loginToDelete": "Ви повинні увійти в систему, щоб видалити елемент",
+ "notEnoughExperience": "Цей елемент був зроблений кимось іншим.",
+ "onlyEditedByLoggedInUser": "Цей елемент був відредагований тільки вами, ви можете сміливо видалити його.",
+ "partOfOthers": "Ця точка є частиною деякої лінії або зв'язку і не може бути видалена безпосередньо.",
+ "readMessages": "У вас є непрочитані повідомлення. Прочитайте їх, перш ніж видаляти елемент - можливо, хтось має відгук",
+ "reasons": {
+ "disused": "Цей елемент вимкнений або видалений"
+ }
+ }
+}
From d7e7e0a6a5053e5b9adfc141c6e8f9cdbcbcb9b4 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Wed, 9 Oct 2024 21:24:20 +0000
Subject: [PATCH 36/55] Translated using Weblate (Ukrainian)
Currently translated at 7.6% (54 of 704 strings)
Translation: MapComplete/Core
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/uk/
---
langs/uk.json | 36 ++++++++++++++++++++++++++++++++++--
1 file changed, 34 insertions(+), 2 deletions(-)
diff --git a/langs/uk.json b/langs/uk.json
index 77d716301..aa622f343 100644
--- a/langs/uk.json
+++ b/langs/uk.json
@@ -38,7 +38,39 @@
"partOfOthers": "Ця точка є частиною деякої лінії або зв'язку і не може бути видалена безпосередньо.",
"readMessages": "У вас є непрочитані повідомлення. Прочитайте їх, перш ніж видаляти елемент - можливо, хтось має відгук",
"reasons": {
- "disused": "Цей елемент вимкнений або видалений"
- }
+ "disused": "Цей елемент вимкнений або видалений",
+ "duplicate": "Цей елемент дублює інший елемент",
+ "notFound": "Цей елемент не вдалося знайти",
+ "test": "Це був тестовий елемент - насправді його ніколи не було"
+ },
+ "safeDelete": "Цей елемент можна безпечно видалити.",
+ "useSomethingElse": "Використовуйте інший OpenStreetMap-редактор, щоб видалити його замість цього",
+ "whyDelete": "Чому цей елемент слід видалити?"
+ },
+ "external": {
+ "allAreApplied": "Всі відсутні, зовнішні значення були скопійовані в OpenStreetMap",
+ "allIncluded": "Дані, завантажені з {source}, містяться в OpenStreetMap",
+ "apply": "Застосувати",
+ "applyAll": "Застосувати всі відсутні значення",
+ "conflicting": {
+ "intro": "OpenStreetMap має інші значення, ніж веб-сайт з джерелом, для наступних значень.",
+ "title": "Конфліктуючі елементи"
+ },
+ "currentInOsmIs": "На даний момент OpenStreetMap має наступне значення:",
+ "done": "Зроблено",
+ "error": "Не вдалося завантажити пов'язані дані з веб-сайту",
+ "lastModified": "Зовнішні дані востаннє були змінені {date}",
+ "loadedFrom": "Наступні дані завантажуються з {source} за допомогою вбудованого JSON-LD",
+ "missing": {
+ "intro": "OpenStreetMap не має інформації про наступні атрибути",
+ "title": "Відсутні елементи"
+ },
+ "noDataLoaded": "Зовнішній веб-сайт не має посилань на дані, які можна було б завантажити",
+ "overwrite": "Перезапис у OpenStreetMap",
+ "title": "Структуровані дані завантажуються із зовнішнього веб-сайту"
+ },
+ "general": {
+ "backToIndex": "Переглянути всі тематичні карти",
+ "seeIndex": "Дивіться огляд з усіма тематичними картами"
}
}
From 66140c2b83dbac46a896f6d79644bb50d36cbfb9 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Thu, 10 Oct 2024 17:36:37 +0000
Subject: [PATCH 37/55] Translated using Weblate (Ukrainian)
Currently translated at 4.6% (20 of 434 strings)
Translation: MapComplete/themes
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/themes/uk/
---
langs/themes/uk.json | 83 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 82 insertions(+), 1 deletion(-)
diff --git a/langs/themes/uk.json b/langs/themes/uk.json
index 0967ef424..5a5747bd1 100644
--- a/langs/themes/uk.json
+++ b/langs/themes/uk.json
@@ -1 +1,82 @@
-{}
+{
+ "advertising": {
+ "description": "Ви коли-небудь замислювалися над тим, скільки реклами знаходиться на наших вулицях і дорогах? За допомогою цієї карти ви можете знайти та додати інформацію про всі рекламні об'єкти, які ви можете знайти на вулиці",
+ "shortDescription": "Де я можу знайти рекламні об'єкти?",
+ "title": "Реклама"
+ },
+ "aed": {
+ "description": "На цій карті можна знайти та позначити найближчі дефібрилятори",
+ "title": "Дефібрилятори"
+ },
+ "artwork": {
+ "description": "Відкрита карта статуй, бюстів, графіті та інших творів мистецтва по всьому світу",
+ "title": "Витвір мистецтва"
+ },
+ "atm": {
+ "description": "На цій карті показані банкомати, де можна зняти або поповнити рахунок",
+ "layers": {
+ "3": {
+ "override": {
+ "=tagRenderings": {
+ "0": {
+ "render": {
+ "special": {
+ "text": "Імпортувати цей банкомат"
+ }
+ }
+ },
+ "1": {
+ "render": "OpenStreetMap знає про банкомат, що знаходиться за {_closest_osm_poi_distance} метрів від нього. "
+ },
+ "2": {
+ "render": {
+ "special": {
+ "message": "Додайте всі запропоновані теги до найближчого банкомату"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "title": "Банкомати"
+ },
+ "bag": {
+ "description": "Ця тема допомагає імпортувати дані з BAG",
+ "layers": {
+ "0": {
+ "tagRenderings": {
+ "Reference": {
+ "mappings": {
+ "0": {
+ "then": "Ця будівля не має жодної згадки в Базі даних"
+ }
+ },
+ "render": "Посилання у BAG має вигляд {ref:bag}"
+ }
+ }
+ },
+ "2": {
+ "description": "Будівлі з реєстру BAG",
+ "tagRenderings": {
+ "Build year": {
+ "mappings": {
+ "0": {
+ "then": "Будівництво було розпочато у {_bag_obj:start_date}"
+ }
+ },
+ "render": "Ця будівля була побудована у {_bag_obj:start_date}"
+ },
+ "Building type": {
+ "mappings": {
+ "0": {
+ "then": "Типом будівлі буде {_bag_obj:construction}"
+ }
+ },
+ "render": "Тип будівлі - {_bag_obj:building}"
+ }
+ }
+ }
+ }
+ }
+}
From fa988c805031e4e0be4f3d0124d3cf62551f259b Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Thu, 10 Oct 2024 17:57:30 +0000
Subject: [PATCH 38/55] Translated using Weblate (Ukrainian)
Currently translated at 6.9% (30 of 434 strings)
Translation: MapComplete/themes
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/themes/uk/
---
langs/themes/uk.json | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/langs/themes/uk.json b/langs/themes/uk.json
index 5a5747bd1..16e027df6 100644
--- a/langs/themes/uk.json
+++ b/langs/themes/uk.json
@@ -74,9 +74,33 @@
}
},
"render": "Тип будівлі - {_bag_obj:building}"
+ },
+ "Import button": {
+ "mappings": {
+ "0": {
+ "then": "Ще не розрахували правильні значення. Оновіть цю сторінку"
+ }
+ }
+ },
+ "Reference": {
+ "render": "Посилання у BAG має вигляд {_bag_obj:ref:bag}"
}
}
}
- }
+ },
+ "shortDescription": "Допоміжний інструмент для імпорту BAG",
+ "title": "Помічник з імпорту BAG"
+ },
+ "benches": {
+ "description": "На цій карті показані всі лавки, які зафіксовані в OpenStreetMap: Окремі лавки та лавки, що належать до зупинок громадського транспорту або притулків.",
+ "shortDescription": "Карта лавок",
+ "title": "Лавки"
+ },
+ "bicycle_parkings": {
+ "description": "Карта, що показує всі типи велосипедних парковок",
+ "title": "Велопарковки"
+ },
+ "bicycle_rental": {
+ "description": "На цій карті ви знайдете багато станцій прокату велосипедів, що є на OpenStreetMap"
}
}
From 4a1ad7fe67e8b862e56b53bec067740c535371d4 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Thu, 10 Oct 2024 19:48:48 +0000
Subject: [PATCH 39/55] Translated using Weblate (Ukrainian)
Currently translated at 8.2% (58 of 704 strings)
Translation: MapComplete/Core
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/uk/
---
langs/uk.json | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/langs/uk.json b/langs/uk.json
index aa622f343..e553b1ddd 100644
--- a/langs/uk.json
+++ b/langs/uk.json
@@ -71,6 +71,14 @@
},
"general": {
"backToIndex": "Переглянути всі тематичні карти",
+ "enableGeolocationForSafariLink": "Дізнайтеся, як увімкнути дозвіл на геолокацію в налаштуваннях",
+ "search": {
+ "editSearchSyncSettings": "Редагування налаштувань синхронізації",
+ "editThemeSync": "Редагування налаштувань синхронізації"
+ },
"seeIndex": "Дивіться огляд з усіма тематичними картами"
+ },
+ "userinfo": {
+ "gotoSettings": "Перейдіть до своїх налаштувань на OpenStreetMap.org"
}
}
From acd84240e80b2d44def73ecbafd2c25ef42bca86 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Thu, 10 Oct 2024 18:18:06 +0000
Subject: [PATCH 40/55] Translated using Weblate (Ukrainian)
Currently translated at 13.8% (60 of 434 strings)
Translation: MapComplete/themes
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/themes/uk/
---
langs/themes/uk.json | 84 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 83 insertions(+), 1 deletion(-)
diff --git a/langs/themes/uk.json b/langs/themes/uk.json
index 16e027df6..4f2497c9e 100644
--- a/langs/themes/uk.json
+++ b/langs/themes/uk.json
@@ -101,6 +101,88 @@
"title": "Велопарковки"
},
"bicycle_rental": {
- "description": "На цій карті ви знайдете багато станцій прокату велосипедів, що є на OpenStreetMap"
+ "description": "На цій карті ви знайдете багато станцій прокату велосипедів, що є на OpenStreetMap",
+ "shortDescription": "Карта зі станціями та пунктами прокату велосипедів",
+ "title": "Прокат велосипедів"
+ },
+ "bicyclelib": {
+ "description": "Велобібліотека - це місце, де можна взяти велосипед напрокат, часто за невелику річну плату. Особливий випадок використання - велосипедні бібліотеки для дітей, які дозволяють їм пересісти на більший велосипед, коли вони виростуть зі свого нинішнього",
+ "title": "Велобібліотеки"
+ },
+ "binoculars": {
+ "description": "Карта з біноклем, закріплена на місці за допомогою жердини. Зазвичай її можна знайти в туристичних місцях, на оглядових майданчиках, на вершинах панорамних веж або іноді в природних заповідниках.",
+ "shortDescription": "Карта з фіксованими біноклями",
+ "title": "Біноклі"
+ },
+ "blind_osm": {
+ "description": "Допоможіть нанести на карту об'єкти, важливі для незрячих",
+ "title": "OSM для незрячих"
+ },
+ "bookcases": {
+ "description": "Публічна книжкова шафа - це невелика вулична шафа, ящик, стара телефонна будка або інший об'єкт, де зберігаються книги. Будь-хто може покласти або взяти книгу. Ця мапа має на меті зібрати всі ці книжкові шафи.",
+ "title": "Публічні книжкові шафи"
+ },
+ "cafes_and_pubs": {
+ "description": "Кав'ярні, паби та бари",
+ "title": "Кафе та паби"
+ },
+ "campersite": {
+ "description": "На цьому сайті зібрані всі офіційні місця зупинки автокемперів та місця, де можна здати сірі та чорні води. Ви можете додати детальну інформацію про послуги, що надаються, та вартість. Додавайте фотографії та відгуки.",
+ "overrideAll": {
+ "tagRenderings+": {
+ "0": {
+ "question": "Хто керує цим місцем?",
+ "render": "Цим закладом керує {operator}"
+ },
+ "1": {
+ "mappings": {
+ "0": {
+ "then": "У цьому місці є електропостачання"
+ },
+ "1": {
+ "then": "Це місце не має електропостачання"
+ }
+ },
+ "question": "Чи є тут електропостачання?"
+ }
+ }
+ },
+ "shortDescription": "Знайдіть місця для ночівлі з вашим кемпером",
+ "title": "Кемпінги"
+ },
+ "charging_stations": {
+ "description": "На цій відкритій карті можна знайти та позначити інформацію про зарядні станції",
+ "shortDescription": "Карта зарядних станцій по всьому світу",
+ "title": "Зарядні станції"
+ },
+ "circular_economy": {
+ "description": "Різноманітні предмети, які допомагають людям ділитися, повторно використовувати або переробляти.",
+ "layers": {
+ "5": {
+ "override": {
+ "=name": "Магазини секонд-хенду"
+ }
+ }
+ },
+ "title": "Переробна економіка"
+ },
+ "climbing": {
+ "description": "На цій карті ви знайдете різні можливості для скелелазіння, такі як скелелазні зали, боулдерингові зали та скелі на природі.",
+ "descriptionTail": "Карту сходження спочатку склав Крістіан Нойманн. Будь ласка, зв'яжіться, якщо у вас є відгуки чи запитання.
< p>Проект використовує дані проекту OpenStreetMap.",
+ "layers": {
+ "0": {
+ "override": {
+ "tagRenderings+": {
+ "0": {
+ "mappings": {
+ "0": {
+ "then": "У що містить об'єкт зазначено, що це загальнодоступне
{_embedding_feature:access:description}"
+ }
+ }
+ }
+ }
+ }
+ }
+ }
}
}
From 1434b73a3e63bc44dcdf3ea424ecdbc2004c90bc Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Sat, 12 Oct 2024 10:17:09 +0000
Subject: [PATCH 41/55] Translated using Weblate (Russian)
Currently translated at 18.7% (132 of 704 strings)
Translation: MapComplete/Core
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/ru/
---
langs/ru.json | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/langs/ru.json b/langs/ru.json
index 5084c1959..7282800c8 100644
--- a/langs/ru.json
+++ b/langs/ru.json
@@ -27,6 +27,9 @@
"panelIntro": "Ваша личная тема
Активируйте свои любимые слои из официальных тем",
"reload": "Обновить данные"
},
+ "favouritePoi": {
+ "tab": "Ваши избранные и отзывы"
+ },
"general": {
"about": "С лёгкостью редактируйте и дополняйте OpenStreetMap на определённую тему",
"add": {
@@ -50,14 +53,18 @@
},
"mapContributionsBy": "Текущие видимые данные имеют правки, сделанные {contributors}",
"mapContributionsByAndHidden": "Текущие видимые данные имеют правки, сделанные {contributors} и ещё {hiddenCount} пользователями",
+ "openOsmcha": "Посмотреть последние изменения, сделанные с помощью {theme}",
+ "openThemeDocumentation": "Открыть документацию для тематической карты {name}",
"themeBy": "Тема поддерживается {author}"
},
"back": "Назад",
+ "backToIndex": "Посмотреть все тематические карты",
"backgroundMap": "Фоновая карта",
"cancel": "Отмена",
"customThemeIntro": "Пользовательские темы
Это ранее просмотренные темы, созданные пользователями.",
"download": {
- "downloadGpx": "Скачать файл GPX"
+ "downloadGpx": "Скачать файл GPX",
+ "title": "Скачать"
},
"error": "Что-то пошло не так",
"fewChangesBefore": "Пожалуйста, ответьте на несколько вопросов о существующих точках, прежде чем добавить новую точку.",
@@ -70,6 +77,13 @@
},
"loginToStart": "Войдите, чтобы ответить на этот вопрос",
"loginWithOpenStreetMap": "Войти с помощью OpenStreetMap",
+ "logout": "Выйти из системы",
+ "menu": {
+ "aboutCurrentThemeTitle": "Об этой карте",
+ "filter": "Фильтр данных",
+ "showIntroduction": "Показать введение",
+ "title": "Меню"
+ },
"morescreen": {
"createYourOwnTheme": "Создать собственную тему MapComplete с чистого листа",
"requestATheme": "Если вам нужен особенный квест, запросите его в issue-трекере",
@@ -118,7 +132,8 @@
"fsUserbadge": "Включить кнопку входа в систему",
"fsWelcomeMessage": "Показать всплывающее окно с приветствием и соответствующие вкладки",
"intro": "Поделиться этой картой
Поделитесь этой картой, скопировав ссылку ниже и отправив её друзьям и близким:",
- "thanksForSharing": "Спасибо, что поделились!"
+ "thanksForSharing": "Спасибо, что поделились!",
+ "title": "Поделитесь этой картой"
},
"skip": "Пропустить вопрос",
"weekdays": {
@@ -162,6 +177,7 @@
"#": "Эти надписи отображаются над кнопками тем, когда тема не загружена",
"featuredThemeTitle": "Интересное на этой неделе",
"intro": "MapComplete - это редактор OpenStreetMap, который показывает информацию с разделением по темам.",
+ "learnMore": "Узнать больше",
"logIn": "Войдите чтобы увидеть другие посещённые темы",
"pickTheme": "Выберите тему ниже, чтобы начать.",
"title": "Добро пожаловать в MapComplete"
@@ -202,4 +218,4 @@
"description": "Идентификатор Wikidata"
}
}
-}
\ No newline at end of file
+}
From a4bbc723118cb81c293318210b3f503a3ecc92a1 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Fri, 11 Oct 2024 15:20:20 +0000
Subject: [PATCH 42/55] Translated using Weblate (Russian)
Currently translated at 16.8% (73 of 434 strings)
Translation: MapComplete/themes
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/themes/ru/
---
langs/themes/ru.json | 52 +++++++++++++++++++++++++++++++++++++++++---
1 file changed, 49 insertions(+), 3 deletions(-)
diff --git a/langs/themes/ru.json b/langs/themes/ru.json
index 84fac43dc..7fba975b5 100644
--- a/langs/themes/ru.json
+++ b/langs/themes/ru.json
@@ -1,4 +1,7 @@
{
+ "advertising": {
+ "title": "Реклама"
+ },
"aed": {
"description": "На этой карте вы можете найти и отметить ближайшие дефибрилляторы",
"title": "Открытая карта АВД (Автоматизированных внешних дефибрилляторов)"
@@ -12,10 +15,19 @@
"shortDescription": "Карта скамеек",
"title": "Скамейки"
},
+ "bicycle_parkings": {
+ "title": "Велопарковки"
+ },
+ "bicycle_rental": {
+ "title": "Прокат велосипедов"
+ },
"bicyclelib": {
"description": "Велосипедная библиотека - это место, где велосипеды можно взять на время, часто за небольшую ежегодную плату. Примером использования являются библиотеки велосипедов для детей, что позволяет им сменить велосипед на больший, когда они перерастают свой нынешний велосипед",
"title": "Велосипедные библиотеки"
},
+ "binoculars": {
+ "title": "Бинокли"
+ },
"blind_osm": {
"title": "OSM для слепых и слабовидящих"
},
@@ -56,6 +68,9 @@
},
"title": "Открытая карта скалолазания"
},
+ "clock": {
+ "title": "Часы"
+ },
"cycle_infra": {
"title": "Велосипедная инфраструктура"
},
@@ -70,15 +85,22 @@
"render": "Улица"
}
}
- }
+ },
+ "title": "Велосипедные дорожки"
},
"cyclofix": {
"title": "Cyclofix - открытая карта для велосипедистов"
},
+ "disaster_response": {
+ "title": "Ликвидация последствий стихийных бедствий и аварийные службы"
+ },
"drinking_water": {
"description": "На этой карте показываются и могут быть легко добавлены общедоступные точки питьевой воды",
"title": "Питьевая вода"
},
+ "education": {
+ "title": "Образование"
+ },
"etymology": {
"title": "Открытая этимологическая карта"
},
@@ -119,6 +141,12 @@
"ghostbikes": {
"title": "Призрачные велосипеды"
},
+ "glutenfree": {
+ "title": "Без глютена"
+ },
+ "guideposts": {
+ "title": "Указатели"
+ },
"hackerspaces": {
"title": "Хакерспейсы"
},
@@ -130,10 +158,20 @@
"healthcare": {
"title": "Здравоохранение"
},
+ "hotels": {
+ "title": "Гостиницы"
+ },
+ "icecream": {
+ "title": "Мороженое"
+ },
+ "indoors": {
+ "title": "Внутри помещений"
+ },
"kerbs_and_crossings": {
"title": "Бордюры и пешеходные переходы"
},
"maps": {
+ "shortDescription": "Эта тема показывает все (туристические) карты, известные OpenStreetMap",
"title": "Карта карт"
},
"maxspeed": {
@@ -160,6 +198,7 @@
"title": "Радужные пешеходные переходы"
},
"shops": {
+ "shortDescription": "Редактируемая карта с основной информацией о магазине",
"title": "Открытая карта магазинов"
},
"sport_pitches": {
@@ -167,6 +206,9 @@
"shortDescription": "Карта, отображающая спортивные площадки",
"title": "Спортивные площадки"
},
+ "sports": {
+ "title": "Спортивные объекты"
+ },
"street_lighting": {
"layers": {
"2": {
@@ -179,7 +221,8 @@
"title": "Уличное освещение"
},
"surveillance": {
- "description": "На этой открытой карте можно найти камеры слежения."
+ "description": "На этой открытой карте можно найти камеры слежения.",
+ "title": "Наблюдение под наблюдением"
},
"toilets": {
"description": "Карта общественных туалетов",
@@ -190,7 +233,10 @@
"shortDescription": "Карта деревьев",
"title": "Деревья"
},
+ "vending_machine": {
+ "title": "Торговые автоматы"
+ },
"waste": {
"title": "Мусор"
}
-}
\ No newline at end of file
+}
From fa61a3ffbf3a65f4d6334317744ea17b50dec703 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Fri, 11 Oct 2024 12:18:35 +0000
Subject: [PATCH 43/55] Translated using Weblate (Ukrainian)
Currently translated at 8.3% (59 of 704 strings)
Translation: MapComplete/Core
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/uk/
---
langs/uk.json | 3 +++
1 file changed, 3 insertions(+)
diff --git a/langs/uk.json b/langs/uk.json
index e553b1ddd..9ced46e23 100644
--- a/langs/uk.json
+++ b/langs/uk.json
@@ -69,6 +69,9 @@
"overwrite": "Перезапис у OpenStreetMap",
"title": "Структуровані дані завантажуються із зовнішнього веб-сайту"
},
+ "favourite": {
+ "loginNeeded": "Увійти
Персональний макет доступний лише для користувачів OpenStreetMap"
+ },
"general": {
"backToIndex": "Переглянути всі тематичні карти",
"enableGeolocationForSafariLink": "Дізнайтеся, як увімкнути дозвіл на геолокацію в налаштуваннях",
From 3e43d3e386f49158d73b48b8f65ce33d823a24c4 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Fri, 11 Oct 2024 12:13:19 +0000
Subject: [PATCH 44/55] Translated using Weblate (Ukrainian)
Currently translated at 14.2% (62 of 434 strings)
Translation: MapComplete/themes
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/themes/uk/
---
langs/themes/uk.json | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/langs/themes/uk.json b/langs/themes/uk.json
index 4f2497c9e..1330e1cae 100644
--- a/langs/themes/uk.json
+++ b/langs/themes/uk.json
@@ -177,6 +177,12 @@
"mappings": {
"0": {
"then": "У що містить об'єкт зазначено, що це загальнодоступне
{_embedding_feature:access:description}"
+ },
+ "1": {
+ "then": "У функції зазначено, що потрібен дозвіл для доступу
{_embedding_feature:access:description}"
+ },
+ "2": {
+ "then": "У що містить об'єкт зазначено, що вона доступна лише клієнтам
{_embedding_feature:access:description}"
}
}
}
From d236de8616bd2a172620b6e575fbbe1df79a1827 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Babos=20G=C3=A1bor?=
Date: Sat, 12 Oct 2024 12:18:07 +0000
Subject: [PATCH 45/55] Translated using Weblate (Hungarian)
Currently translated at 47.5% (335 of 704 strings)
Translation: MapComplete/Core
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/hu/
---
langs/hu.json | 226 +++++++++++++++++++++++++++++++++++++-------------
1 file changed, 168 insertions(+), 58 deletions(-)
diff --git a/langs/hu.json b/langs/hu.json
index 94287046c..16658486a 100644
--- a/langs/hu.json
+++ b/langs/hu.json
@@ -1,69 +1,176 @@
{
+ "advanced": {
+ "title": "Speciális funkciók"
+ },
"centerMessage": {
+ "allFilteredAway": "A nézetben egyetlen objektum sem felel meg az összes szűrőnek",
"loadingData": "Adatok betöltése folyamatban…",
+ "noData": "Az aktuális nézetben nincs megfelelő objektum",
"ready": "Kész!",
"retrying": "Nem sikerült betölteni az adatokat. Újrapróbálkozás {count} másodperc múlva…",
"zoomIn": "Közelíts az adatok megtekintéséhez és szerkesztéséhez"
},
+ "communityIndex": {
+ "available": "Ez a közösség {native} nyelven beszél",
+ "intro": "Lépj kapcsolatba másokkal, hogy megismerd őket, és tanulj tőlük…",
+ "notAvailable": "Ez a közösség nem beszél {native} nyelven",
+ "title": "Lépj kapcsolatba másokkal"
+ },
"delete": {
"cancel": "Mégse",
- "cannotBeDeleted": "Ez a térkpelem nem törölhető",
+ "cannotBeDeleted": "Ez az objektum nem törölhető",
"delete": "Törlés",
+ "deletedTitle": "Törölt objektum",
"explanations": {
- "hardDelete": "Ez a térképelem törlődik az OpenStreetMapről. Csak tapasztalt szerkesztő tudja visszaállítani",
- "selectReason": "Kérjük, jelöld meg, miért kellene ezt a térképelemet törölni",
- "softDelete": "Ez a térképelem frissülni fog és ebben az alkalmazásban nem fog látszani. {reason}"
+ "hardDelete": "Ez az objektum törlődik az OpenStreetMapről. Csak tapasztalt szerkesztő tudja visszaállítani",
+ "retagNoOtherThemes": "Ez az objektum át lesz minősítve és eltűnik ebből az alkalmazásból",
+ "retagOtherThemes": "Ez az objektum át lesz címkézve és látható lesz itt: {otherThemes}",
+ "selectReason": "Kérjük, add meg, miért kellene ezt az objektumot törölni",
+ "softDelete": "Ez az objektum frissülni fog és ebben az alkalmazásban nem fog látszani. {reason}"
},
- "isDeleted": "Ez a térképelem törlődött",
- "isntAPoint": "Csak pontot lehet törölni, a kiválasztott térképelem viszont vonal, terület vagy kapcsolat.",
- "loading": "Tulajdonságok megvizsgálása annak ellenőrzéséhez, hogy a térképelem törölhető-e.",
- "loginToDelete": "Térképelem törléséhez be kell jelentkezni",
- "notEnoughExperience": "Ezt a térképelemet valaki más készítette.",
- "onlyEditedByLoggedInUser": "Ezt a térképelemet csak te magad szerkesztetted, így nyugodtan törölheted.",
+ "isChanged": "Ez az objektum megváltozott, és már nem felel meg ennek a rétegnek",
+ "isDeleted": "Ez az objektum törlődött",
+ "isntAPoint": "Csak pontot lehet törölni, a kijelölt objektum viszont vonal, terület vagy kapcsolat.",
+ "loading": "Tulajdonságok megvizsgálása annak ellenőrzéséhez, hogy az objektum törölhető-e.",
+ "loginToDelete": "Objektum törléséhez be kell jelentkezni",
+ "notEnoughExperience": "Ezt az objektumot valaki más készítette.",
+ "onlyEditedByLoggedInUser": "Ezt az objektumot csak te magad szerkesztetted, így nyugodtan törölheted.",
"partOfOthers": "Ez a pont egy vonal vagy kapcsolat része, ezért közvetlenül nem törölhető.",
- "readMessages": "Olvasatlan üzeneteid vannak. Olvasd el őket, mielőtt törölnél egy térképelemet – lehet, hogy valaki épp erről írt",
+ "readMessages": "Olvasatlan üzeneteid vannak. Olvasd el őket, mielőtt törölnél egy objektumot – lehet, hogy valaki épp erről írt",
"reasons": {
- "disused": "Ez a térképelem használaton kívüli vagy el lett távolítva",
- "duplicate": "Ez a térképelem egy másik térképelem megkettőzése",
- "notFound": "Ezt a térképelemet nem sikerült megtalálni",
- "test": "Ez egy tesztelésre szolgáló térképelem volt: az általa jelölt objektum valójában soha nem létezett"
+ "disused": "Ez az objektum használaton kívüli vagy el lett távolítva",
+ "duplicate": "Ez az objektum egy másik objektum megkettőzése",
+ "notFound": "Ezt az objektumot nem sikerült megtalálni",
+ "test": "Ez egy tesztobjektum volt: az általa jelölt objektum a valóságban soha nem létezett"
},
- "safeDelete": "Ez a térképelem nyugodtan törölhető.",
+ "safeDelete": "Ez az objektum nyugodtan törölhető.",
"useSomethingElse": "A törléséhez használj egy másik OpenStreetMap-szerkesztőt",
- "whyDelete": "Miért kellene törölni ezt a térképelemet?"
+ "whyDelete": "Miért kellene törölni ezt az objektumot?"
+ },
+ "external": {
+ "allAreApplied": "Az összes hiányzó, külső érték átmásoltatott az OpenStreetMap-re",
+ "allIncluded": "A {source} forrásból betöltött adatokat az OpenStreetMap tartalmazza",
+ "apply": "Alkalmazás",
+ "applyAll": "Az összes hiányzó érték alkalmazása",
+ "conflicting": {
+ "intro": "Az OpenStreetMap a következő értékeknél más értéket ad, mint a forrás weboldal.",
+ "title": "Egymásnak ellentmondó elemek"
+ },
+ "currentInOsmIs": "Jelenleg az OpenStreetMapen a következő érték van rögzítve:",
+ "done": "Kész",
+ "error": "Nem sikerült betölteni a belinkelt adatokat a webhelyről",
+ "lastModified": "A külső adatok utolsó módosítása: {date}",
+ "loadedFrom": "A következő adatok a {source} oldalról töltődnek be a beágyazott JSON-LD segítségével",
+ "missing": {
+ "intro": "Az OpenStreetMapen nincs adat a következő tulajdonságokról",
+ "title": "Hiányzó elemek"
+ },
+ "noDataLoaded": "A külső weboldalon nincs olyan belinkelt adat, amelyet be lehetne tölteni",
+ "overwrite": "Felülírás az OpenStreetMapen",
+ "title": "A külső weboldalról betöltött strukturált adatok"
},
"favourite": {
"loginNeeded": "Jelentkezz be
A személyes elrendezés csak OpenStreetMap-felhasználóknak érhető el",
"panelIntro": "A személyes témád
Aktiváld a kedvenc rétegeidet az összes hivatalos téma közül",
"reload": "Adatok újratöltése"
},
+ "favouritePoi": {
+ "button": {
+ "isFavourite": "Ez a hely jelenleg kedvencnek van jelölve, és megjelenik a MapComplete összes olyan tematikus térképén, amelyet megnézel.",
+ "isMarkedShort": "Kedvenc helyként megjelölve",
+ "isNotMarkedShort": "Nincs kedvenc helyként megjelölve",
+ "markAsFavouriteTitle": "Hely megjelölése kedvenc helyként",
+ "markDescription": "Add hozzá ezt a helyet a saját kedvenclistádhoz",
+ "unmark": "Eltávolítás a személyes kedvencek listájáról",
+ "unmarkNotDeleted": "A pont nem törlődik, és a megfelelő térképen továbbra is látható marad"
+ },
+ "downloadGeojson": "Kedvencek letöltése GeoJSON-formátumban",
+ "downloadGpx": "Kedvencek letöltése GPX-formátumban",
+ "intro": "Megjelölte {length} helyszínt kedvenc helyként.",
+ "introPrivacy": "Ezt a listát csak te látod",
+ "loginToSeeList": "Jelentkezz be a kedvencként megjelölt helyeid listájának megtekintéséhez",
+ "tab": "Kedvenceid és értékeléseid",
+ "title": "Kedvenc helyeid"
+ },
+ "flyer": {
+ "aerial": "Ez a térkép más hátteret használ, mégpedig az Agentschap Informatie Vlaanderen (Flamand Informatikai Ügynökség) légifelvételeit",
+ "callToAction": "Próbáld ki mapcomplete.org-on",
+ "cyclofix": "Kerékpárpumpák, javítóállomások, ivóvíz és kerékpárboltok a CycloFixen vannak",
+ "description": "Fektetett A4 alakú szórólap a MapComplete népszerűsítésére",
+ "editing": {
+ "ex": "Az alábbiakban látható egy leegyszerűsített példa arra, hogy ez hogyan néz ki egy természetvédelmi területnél.",
+ "intro": "A felhasználót egy objektumokat tartalmazó térkép köszönti. Ha kijelöl egy objektumot, megjelennek az adatai.",
+ "title": "Hogyan néz ki a kezelőfelület?"
+ },
+ "examples": "Nagyon sok tematikus térkép áll rendelkezésre, amelyek közül itt csak néhányat mutatunk be.\n\nAz interneten még sok más tematikus térkép is fellelhető: az egészségügyről, a beltéri navigációról, a kerekesszékes akadálymentességről, hulladékkezelő létesítményekről, nyilvános könyvszekrényekről, szivárványfestéssel ellátott gyalogátkelőhelyekről… Fedezd fel mindet a mapcomplete.org oldalon",
+ "fakeui": {
+ "add_images": "Kép hozzáadása néhány kattintással",
+ "attributes": "Barátságos módon jelenít meg tulajdonságokat",
+ "edit": "Téves vagy elavult az információ? A szerkesztés gomb ott van!",
+ "question": "Ha egy tulajdonság még nem ismert, a MapComplete feldob egy kérdést",
+ "see_images": "Megjelenít képeket korábbi szerkesztőktől, a Wikipédiáról, a Mapillaryről stb.",
+ "wikipedia": "Láthatók a belinkelt Wikipédia-szócikkek"
+ },
+ "frontParagraph": "A MapComplete egy könnyen használható webes alkalmazás OpenStreetMap geoadatok gyűjtésére, amellyel nyílt, tömeges és újrafelhasználható módon gyűjthetők és kezelhetők a megfelelő adatok.\n\nKérésre új kategóriák és tulajdonságok is felvehetők.",
+ "lines_too": "Vonalak és sokszögek is megjelennek. Az objektumokhoz tulajdonságok és képek kapcsolhatók, és ezeket frissíteni is lehet.",
+ "mapcomplete": {
+ "customize": "A MapComplete a saját igényeidhez igazítható, új térképrétegekkel, új funkciókkal, vagy a saját szervezeted színeivel és betűtípusával.\nVan tapasztalatunk geoadatok crowdsource-kampányainak indításában is.\nÁrajánlatért írj a pietervdvn@posteo.net címre.",
+ "intro": "A MapComplete olyan weboldal, amelyen {mapCount} interaktív térkép található. Minden egyes térképen lehet adatokat felvinni vagy frissíteni. Számos funkcióval rendelkezik:",
+ "li0": "Megmutatja, hol van érdekes pont (POI)",
+ "li1": "Új pont hozzáadása és a meglévők adatainak frissítése",
+ "li2": "Kapcsolattartási adatok és nyitvatartási idő egyszerű hozzáadása",
+ "li3": "iFrame-mel más weboldalakon is elhelyezhető",
+ "li4": "Az OpenStreetMap-ökoszisztémába ágyazva, amely számos eszközzel rendelkezik",
+ "li5": "Meglévő adatkészletek importálásának lehetősége",
+ "li6": "Számos speciális funkció, például fák felismerése és speciális beviteli módszerek",
+ "li7": "Copylefted szabad szoftver (GPL licenc) és ingyenesen használható",
+ "title": "Mi a MapComplete?"
+ },
+ "onwheels": "Kerekesszékeseknek beltéri térképek is rendelkezésre állnak.",
+ "osm": "Az OpenStreetMap egy olyan online térkép, amelyet bárki szerkeszthet és újra felhasználhat bármilyen célra, feltéve, hogy az adatokat továbbra is nyíltan hozzáférhetővé teszi.\n\nEz a világ legnagyobb térinformatikai adatbázisa, amelyet alkalmazások és weboldalak ezrei hasznosítanak.",
+ "tagline": "Geoadatok gyűjtése az OpenStreetMappel",
+ "title": "mapcomplete.org",
+ "toerisme_vlaanderen": "A Pin your point egy a flamand turisztikai ügynökséggel (Visit Flanders) közös projekt keretében jött létre. Több mint 160 szerkesztő több ezer padot és piknikezőasztalt, valamint 100 kerékpártöltő állomást rajzolt fel.",
+ "whatIsOsm": "Mi az OpenStreetMap?"
+ },
"general": {
- "about": "Egy adott téma esetében az OpenStreetMap egyszerű szerkesztése és hozzáadása",
+ "404": "Ez az oldal nem létezik",
+ "about": "Tematikus OpenStreetMap-objektumok egyszerű felrajzolása és szerkesztése",
+ "aboutMapComplete": {
+ "intro": "A MapComplete segítségével egyetlen témában fehetsz fel OpenStreetMap-adatokat. Válaszolj a kérdésekre, és a szerkesztésed perceken belül mindenhol láthatóvá válik. A legtöbb témához képeket is adhatsz, vagy akár véleményt is írhatsz. Az elemeket, a kérdéseket és a nyelveket tematikus térkép gazdája határozza meg."
+ },
"add": {
- "addNew": "Új {category} hozzáadása",
- "confirmButton": "{category} hozzáadása.
A hozzáadott objektum mindenki számára látható lesz
",
+ "addNew": "Új {category} felvétele",
+ "backToSelect": "Másik kategória kijelölése",
+ "confirmButton": "{category} felvétele.
A felvett objektumot mindenki látni fogja
",
+ "confirmLocation": "Hely megerősítése",
+ "confirmTitle": "Adsz hozzá {title} szöveget is?",
+ "confirmWarning": "Az itt létrehozott objektumot mindenki látni fogja. Csak akkor rajzolj valamit a térképre, ha az valóban létezik. Sok alkalmazás használja ezeket az adatokat.",
+ "creating": "Új pont létrehozása…",
"disableFilters": "Minden szűrő kikapcsolása",
- "disableFiltersExplanation": "Lehet, hogy a szűrő miatt egyes térképelemek nem látszanak",
- "hasBeenImported": "Ezt a térképelemet már importálták",
+ "disableFiltersExplanation": "A szűrő elrejthet bizonyos objektumokat",
+ "enableLayer": "{name} réteg engedélyezése",
+ "hasBeenImported": "Ez az objektum már importáltatott",
"import": {
"hasBeenImported": "Ez az objektum importáltatott",
"howToTest": "A teszteléshez add hozzá az URL-hez a test=true vagy a backend=osm-test szöveget. A módosításkészlet a konzolra lesz nyomtatva. Ha hivatalossá szeretnéd tenni ezt a témát (és szeretnéd engedélyezni az importálás gombot), akkor nyiss egy lekéréses kérelmet (pull request).",
"importTags": "Az elem a következő címkéket fogja kapni: {tags}",
"officialThemesOnly": "A balesetek elkerülése érdekében a nem hivatalos témáknál ki van kapcsolva az importálás gomb",
- "wrongType": "Ez a térképelem nem pont vagy vonal, ezért nem importálható",
- "zoomInMore": "Nagyíts tovább a térképelem importálásához"
+ "wrongType": "Ez az objektum nem pont vagy vonal, ezért nem importálható",
+ "wrongTypeToConflate": "Ez az objektum nem pont vagy vonal, ezért nem lehet összevonni",
+ "zoomInMore": "Nagyíts tovább az objektum importálásához"
},
"importTags": "Az elem {tags} címkéket fog kapni",
"intro": "Olyan helyre kattintottál, ahol még nincs ismert adat.
",
- "layerNotEnabled": "A {layer} réteg nincs engedélyezve. Térképelem hozzáadásához engedélyezd ezt a réteget",
+ "layerNotEnabled": "A {layer} réteg nincs engedélyezve. Objektum felrajzolásához engedélyezd ezt a réteget",
"openLayerControl": "Rétegvezérlő-doboz megnyitása",
- "pleaseLogin": "Új térképelem hozzáadásához be kell jelentkezned",
+ "pleaseLogin": "Új objektum felvételéhez be kell jelentkezned",
"presetInfo": "Az új érdekes pont (POI) címkéi: {tags}",
- "stillLoading": "Az adatok betöltése folyamatban van. Kérjük, várj egy kicsit mielőtt elhelyezel egy új térképelemet.",
- "title": "Hozzáadsz egy új térképelemet?",
+ "stillLoading": "Az adatok betöltése folyamatban van. Kérjük, várj egy kicsit mielőtt felviszel egy új objektumot.",
+ "title": "Új objektum felvétele",
"warnVisibleForEveryone": "A kiegészítésed mindenki számára látható lesz",
"wrongType": "Ez az elem nem pont vagy vonal, ezért nem importálható",
- "zoomInFurther": "Térképelem hozzáadásához közelíts jobban.",
+ "zoomInFurther": "Objektum felvételéhez közelíts jobban",
"zoomInMore": "Nagyíts tovább az elem importálásához"
},
"apply_button": {
@@ -71,12 +178,15 @@
"isApplied": "A módosítások alkalmazva lettek"
},
"attribution": {
- "attributionContent": "Az összes adatot az OpenStreetMap biztosítja, és szabadon újrafelhasználható az Open DataBase License alapján.
",
+ "attributionBackgroundLayer": "A jelenlegi háttérréteg: {name}",
+ "attributionBackgroundLayerWithCopyright": "A jelenlegi háttérréteg: {name} ({copyright})",
+ "attributionContent": "Az összes adatot az OpenStreetMap biztosítja; szabadon újrafelhasználhatók az Open DataBase License alapján.
",
"attributionTitle": "Szerzők",
"codeContributionsBy": "A MapComplete-et {contributors} és további {hiddenCount} közreműködő fejleszti",
"donate": "A MapComplete pénzügyi támogatása",
"editId": "Az OpenStreetMap online szerkesztőjének megnyitása itt",
"editJosm": "Szerkesztés itt JOSM-mal",
+ "emailCreators": "E-mail küldése az alkotóknak",
"followOnMastodon": "Kövesse a MapComplete-et a Mastodonon",
"iconAttribution": {
"title": "Felhasznált ikonok"
@@ -91,10 +201,10 @@
"themeBy": "A téma karbantartója: {author}"
},
"back": "Vissza",
- "backgroundMap": "Háttértérkép",
+ "backgroundMap": "Jelölj ki egy háttérréteget",
"cancel": "Mégse",
"confirm": "Megerősítés",
- "customThemeIntro": "Egyéni témák
Ezek korábban megnézett, felhasználó által létrehozott témák.",
+ "customThemeIntro": "Ezek korábban megnézett, felhasználó által létrehozott témák.",
"download": {
"downloadAsPdf": "A jelenlegi térkép letöltése PDF-ként",
"downloadAsPdfHelper": "Eszményi a jelenlegi térkép kinyomtatásához",
@@ -109,15 +219,15 @@
"downloadGpxHelper": "A GPX-fájlok a legtöbb navigációs eszközzel és alkalmazással használhatók",
"exporting": "Exportálás…",
"includeMetaData": "Metaadatokat is tartalmazzon (legutóbbi szerkesztő, számított értékek stb.)",
- "licenseInfo": "Szerzői jogi nyilatkozat
A megadott adatok az ODbL licenc szerint érhetők el. Újrafelhasználásuk bármilyen célra ingyenes, de - a © OpenStreetMap-közreműködők megnevezés szükséges, és
- minden változtatáshoz ezt a licencet kell használni
A részletekért kérjük, olvassa el a teljes szerzői jogi nyilatkozatot.",
+ "licenseInfo": "Szerzői jogi nyilatkozat
A megadott adatok az ODbL licenc szerint érhetők el. Újrafelhasználásuk bármilyen célra ingyenes, de - meg kell nevezni az © OpenStreetMap-közreműködőket, és
- minden változtatáshoz ezt a licencet kell használni
A részletekért kérjük, olvasd el a teljes szerzői jogi nyilatkozatot.",
"noDataLoaded": "Még nincs betöltött adat. A letöltés hamarosan elérhető lesz",
- "title": "A látható adatok letöltése",
+ "title": "Letöltés",
"uploadGpx": "Töltsd fel a nyomvonalaidat az OpenStreetMapre"
},
"error": "Valami rosszul sült el",
"example": "Példa",
"examples": "Példák",
- "fewChangesBefore": "Kérjük, válaszolj néhány meglévő térképelemekre vonatkozó kérdésre, mielőtt új elemet adnál hozzá.",
+ "fewChangesBefore": "Kérjük, válaszolj néhány meglévő objektumokra vonatkozó kérdésre, mielőtt felvennél egy újat.",
"getStartedLogin": "A kezdéshez jelentkezz be az OpenStreetMap-fiókoddal,",
"getStartedNewAccount": " vagy hozz létre új fiókot",
"goToInbox": "Beérkezett üzenetek megnyitása",
@@ -131,7 +241,7 @@
"loading": "Betöltés…",
"loadingTheme": "{theme} betöltése…",
"loginFailed": "Az OpenStreetMap-be való bejelentkezés nem sikerült",
- "loginOnlyNeededToEdit": "ha szerkeszteni szeretnéd a térképet",
+ "loginOnlyNeededToEdit": "ha módosítani szeretnél",
"loginToStart": "A kérdés megválaszolásához be kell jelentkezni",
"loginWithOpenStreetMap": "Bejelentkezés OpenStreetMap-fiókkal",
"logout": "Kijelentkezés",
@@ -159,7 +269,7 @@
"not_all_rules_parsed": "Ez a nyitva tartás bonyolult. A beviteli elemben a következő szabályok nem vétetnek figyelembe:",
"openTill": "eddig:",
"open_24_7": "Éjjel-nappal nyitva",
- "open_during_ph": "Munkaszüneti napokon ez",
+ "open_during_ph": "Munkaszüneti napokon",
"opensAt": "ettől:",
"ph_closed": "zárva",
"ph_not_known": " ",
@@ -173,7 +283,7 @@
"generatedWith": "Létrehozva a mapcomplete.org/{layoutid} segítségével",
"versionInfo": "{version} verzió – létrehozva: {date}"
},
- "pickLanguage": "Nyelv kiválasztása: ",
+ "pickLanguage": "Nyelv kiválasztása",
"poweredByOsm": "Motor: OpenStreetMap",
"questions": {
"emailIs": "Ezen {category} e-mail-címe: {email}",
@@ -183,7 +293,7 @@
"websiteIs": "Weboldal: {website}",
"websiteOf": "Mi a weboldala ennek ({category})?"
},
- "readYourMessages": "Kérjük, új térképelem hozzáadása előtt olvasd el az összes OpenStreetMap-üzeneted.",
+ "readYourMessages": "Kérjük, új objektum felvétele előtt olvasd el az összes OpenStreetMap-üzeneted.",
"removeLocationHistory": "Helyelőzmények törlése",
"returnToTheMap": "Vissza a térképhez",
"save": "Mentés",
@@ -196,9 +306,9 @@
"sharescreen": {
"copiedToClipboard": "Link a vágólapra másolva",
"embedIntro": "Beágyazás egy weboldalon
Kérjük, illeszd be ezt a térképet a weboldalba.
Biztatunk, tedd meg – még engedélyt sem kell kérned.
Ingyenes, és az is marad. Minél többen használják, annál értékesebbé válik. A pipákra kattintva módosíthatod a paramétereket:",
- "fsUserbadge": "Bejelentkezési gomb engedélyezése",
+ "fsUserbadge": "Engedélyezze a bejelentkezés gombot és így a módosítás lehetőségét",
"fsWelcomeMessage": "Felugró üdvözlő üzenet és kapcsolódó fülek megjelenítése",
- "intro": "Térkép megosztása
Oszd meg ezt a térképet! Másold ki az alábbi linket, és küldd el a barátaidnak és a családodnak:",
+ "intro": "Oszd meg ezt a térképet! Másold ki az alábbi linket, és küldd el barátaidnak és családodnak:",
"thanksForSharing": "Köszönjük a megosztást!"
},
"skip": "Kérdés kihagyása",
@@ -221,7 +331,7 @@
"tuesday": "Kedd",
"wednesday": "Szerda"
},
- "welcomeBack": "Be vagy jelentkezve, üdv ismét!",
+ "welcomeBack": "Isten hozott ismét!",
"wikipedia": {
"createNewWikidata": "Új Wikidata-elem létrehozása",
"doSearch": "Keress fent az eredmények megtekintéséhez",
@@ -239,7 +349,7 @@
"dontDelete": "Mégse",
"isDeleted": "Törölve",
"pleaseLogin": "Kép hozzáadásához be kell jelentkezni",
- "respectPrivacy": "Ne készíts fényképet emberekről és rendszámtáblákról. Ne tölts fel képet a Google Mapsről, a Google Streetview-ról (utcaképről) és egyéb szerzői jog által védett forrásokból.",
+ "respectPrivacy": "Ne tölts fel képet a Google térképről, a Google Streetview-ról (utcaképről) és egyéb szerzői jog által védett forrásokból.",
"toBig": "A kép túl nagy ({actual_size}). Kérjük, legfeljebb {max_size} méretű képeket használj",
"uploadDone": "A kép hozzá lett adva. Köszönjük a segítséged!",
"uploadFailed": "Nem sikerült feltölteni a képet. Van-e internetkapcsolatod, és engedélyezted-e a harmadik féltől származó API-kat? A Brave böngésző vagy a uMatrix bővítmény blokkolhatja őket.",
@@ -250,14 +360,14 @@
"index": {
"#": "Ezek a szövegek akkor jelennek meg a témagombok felett, ha nincs betöltve téma",
"featuredThemeTitle": "Kiemelt ezen a héten",
- "intro": "A MapComplete egy OpenStreetMap-nézegető és -szerkesztő program, amely egy adott témához kapcsolódó objektumokról jelenít meg információkat, és lehetővé teszi ezek frissítését.",
+ "intro": "Tematikus térképek, amelyeket te is szerkeszthetsz",
"logIn": "A korábban megnézett témák megtekintéséhez be kell jelentkezned",
"pickTheme": "Válassz egy témát lent a kezdéshez.",
- "title": "Isten hozott a MapComplete-en"
+ "title": "MapComplete"
},
"move": {
- "cancel": "Áthelyezés megszakítása",
- "cannotBeMoved": "Ez a térképelem nem mozdítható el.",
+ "cancel": "Válassz másik okot",
+ "cannotBeMoved": "Ez az objektum nem mozdítható el.",
"confirmMove": "Áthelyezés ide",
"inviteToMove": {
"generic": "Pont áthelyezése",
@@ -265,15 +375,15 @@
"reasonRelocation": "Objektum áthelyezése mert a valóságban is áthelyezték"
},
"inviteToMoveAgain": "Pont áthelyezése ismét",
- "isRelation": "Ez a térképelem egy kapcsolat, amely nem mozdítható el",
- "isWay": "Ez a térképelem egy vonal, amelyet csak egy másik OpenStreetMap-szerkesztővel lehet áthelyezni.",
+ "isRelation": "Ez az objektum egy kapcsolat, amely nem mozdítható el",
+ "isWay": "Ez a objektum egy vonal, amelyet csak egy másik OpenStreetMap-szerkesztővel lehet áthelyezni.",
"loginToMove": "Pont áthelyezéséhez be kell jelentkezned",
"moveTitle": "Pont áthelyezése",
- "partOfAWay": "Ez a térképelem egy másik vonal része; csak egy másik szerkesztő használatával lehet elmozdítani.",
- "partOfRelation": "Ez a térképelem egy kapcsolat része; csak egy másik szerkesztő használatával mozdítható el.",
+ "partOfAWay": "Ez az objektum egy másik vonal része; csak egy másik szerkesztővel lehet elmozdítani.",
+ "partOfRelation": "Ez az objektum egy kapcsolat része; csak egy másik szerkesztővel mozdítható el.",
"pointIsMoved": "A pont áthelyeződött",
"reasons": {
- "reasonInaccurate": "Az objektum helye pontatlan a térképen, ezért néhány méterrel arrébb kell tenni",
+ "reasonInaccurate": "Az objektum helye pontatlan, pár méterrel odébb van",
"reasonRelocation": "Az objektumot áthelyezték egy teljesen más helyre"
},
"selectReason": "Miért szeretnéd áthelyezni ezt az objektumot?",
@@ -293,11 +403,11 @@
},
"reviews": {
"affiliated_reviewer_warning": "(Kapcsolódó személy véleménye)",
- "attribution": "A véleményeket Mangrove Reviews tárolja, és a CC-BY 4.0 licenc szerint érhetők el.",
- "i_am_affiliated": "Kapcsolatban állok ezzel a létesítménnyel
Ellenőrizd, hogy tulajdonos, alkotó, alkalmazott vagy hasonló vagy-e.",
+ "attribution": "A Mangrove Reviews",
+ "i_am_affiliated": "Kapcsolatban állok ezzel a létesítménnyel",
"name_required": "Vélemények megjelenítéséhez és létrehozásához névre van szükség",
- "no_reviews_yet": "Még nincs vélemény. Légy Te az első, aki ír, és ezzel támogasd a nyílt adatokat és az üzletet!",
- "saved": "Vélemény elmentve. Köszönjük a megosztást!",
+ "no_reviews_yet": "Még nincs vélemény. Légy Te az első!",
+ "saved": "Vélemény elmentve. Köszönjük a megosztást!",
"saving_review": "Mentés…",
"title": "{count} vélemény",
"title_singular": "Egy vélemény",
@@ -310,6 +420,6 @@
"inviteToSplit": "Út szétvágása rövidebb szakaszokra. Ez lehetővé teszi, hogy az út egyes részei különböző tulajdonságokkal rendelkezzenek.",
"loginToSplit": "Egy út szétvágásához be kell jelentkezni",
"split": "Szétvágás",
- "splitTitle": "Válaszd ki a térképen, hogy az út hol legyen elvágva"
+ "splitTitle": "Válaszd ki a térképen, hol változnak az út tulajdonságai"
}
-}
\ No newline at end of file
+}
From 27151704cd3c476f0b3f9abe2ce0dd3b8a6d7711 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Sat, 12 Oct 2024 18:45:37 +0000
Subject: [PATCH 46/55] Translated using Weblate (Russian)
Currently translated at 19.0% (134 of 704 strings)
Translation: MapComplete/Core
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/ru/
---
langs/ru.json | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/langs/ru.json b/langs/ru.json
index 7282800c8..ed4aed774 100644
--- a/langs/ru.json
+++ b/langs/ru.json
@@ -68,6 +68,10 @@
},
"error": "Что-то пошло не так",
"fewChangesBefore": "Пожалуйста, ответьте на несколько вопросов о существующих точках, прежде чем добавить новую точку.",
+ "filterPanel": {
+ "disableAll": "Отключить все",
+ "enableAll": "Включить все"
+ },
"getStartedLogin": "Войти с помощью OpenStreetMap, чтобы начать работу",
"getStartedNewAccount": " или создать новую учетную запись",
"goToInbox": "Открыть входящие сообщения",
From 2250c681573fbc65ae1a10e8520843331f1df0c1 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Sat, 12 Oct 2024 18:46:25 +0000
Subject: [PATCH 47/55] Translated using Weblate (Russian)
Currently translated at 17.7% (77 of 434 strings)
Translation: MapComplete/themes
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/themes/ru/
---
langs/themes/ru.json | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/langs/themes/ru.json b/langs/themes/ru.json
index 7fba975b5..13d294bb6 100644
--- a/langs/themes/ru.json
+++ b/langs/themes/ru.json
@@ -102,6 +102,7 @@
"title": "Образование"
},
"etymology": {
+ "shortDescription": "Каково происхождение топонима?",
"title": "Открытая этимологическая карта"
},
"facadegardens": {
@@ -189,6 +190,17 @@
"personal": {
"description": "Создать персональную тему на основе доступных слоёв тем. Чтобы отобразить некоторые данные, откройте выбор слоя"
},
+ "pets": {
+ "description": "На этой карте вы найдете различные интересные места для ваших питомцев: ветеринарные клиники, парки для собак, зоомагазины, рестораны для собак, ...",
+ "layers": {
+ "1": {
+ "override": {
+ "name": "Заведения, где можно поесть с собаками"
+ }
+ }
+ },
+ "title": "Ветеринары, парки для собак и другие удобства для домашних животных"
+ },
"playgrounds": {
"description": "На этой карте можно найти игровые площадки и добавить дополнительную информацию",
"shortDescription": "Карта игровых площадок",
From b750f0b5cc192ad90ee0ebd934730c382e211b48 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Sun, 13 Oct 2024 14:05:24 +0000
Subject: [PATCH 48/55] Translated using Weblate (Russian)
Currently translated at 21.0% (148 of 704 strings)
Translation: MapComplete/Core
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/ru/
---
langs/ru.json | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)
diff --git a/langs/ru.json b/langs/ru.json
index ed4aed774..03a14ca16 100644
--- a/langs/ru.json
+++ b/langs/ru.json
@@ -28,10 +28,17 @@
"reload": "Обновить данные"
},
"favouritePoi": {
+ "button": {
+ "markAsFavouriteTitle": "Отметьте это место как любимое",
+ "unmarkNotDeleted": "Эта точка не будет удалена и по-прежнему будет видна на соответствующей карте для вас и других людей"
+ },
"tab": "Ваши избранные и отзывы"
},
"general": {
"about": "С лёгкостью редактируйте и дополняйте OpenStreetMap на определённую тему",
+ "aboutMapComplete": {
+ "intro": "Используйте MapComplete для добавления информации OpenStreetMap в отдельную тему. Отвечайте на вопросы, и через несколько минут ваши вклады будут доступны везде. В большинстве тем вы можете добавлять изображения или даже оставлять отзывы. Сопровождающий тему определяет элементы, вопросы и языки для нее."
+ },
"add": {
"addNew": "Добавить новую {category} здесь",
"confirmButton": "Добавить {category} сюда.
Ваш вклад будет виден каждому
",
@@ -54,6 +61,7 @@
"mapContributionsBy": "Текущие видимые данные имеют правки, сделанные {contributors}",
"mapContributionsByAndHidden": "Текущие видимые данные имеют правки, сделанные {contributors} и ещё {hiddenCount} пользователями",
"openOsmcha": "Посмотреть последние изменения, сделанные с помощью {theme}",
+ "openOsmchaLastWeek": "Просмотр правок за последние 7 дней",
"openThemeDocumentation": "Открыть документацию для тематической карты {name}",
"themeBy": "Тема поддерживается {author}"
},
@@ -90,6 +98,8 @@
},
"morescreen": {
"createYourOwnTheme": "Создать собственную тему MapComplete с чистого листа",
+ "hiddenExplanation": "Эти темы доступны только тем, у кого есть ссылка. Вы обнаружили {hidden_discovered} из {total_hidden} скрытых тем.",
+ "noSearch": "Показать все темы",
"requestATheme": "Если вам нужен особенный квест, запросите его в issue-трекере",
"streetcomplete": "Другое, похожее приложение — StreetComplete."
},
@@ -126,7 +136,10 @@
"save": "Сохранить",
"search": {
"error": "Что-то пошло не так…",
+ "instructions": "Используйте строку поиска выше, чтобы найти местоположение, фильтры или другие тематические карты",
"nothing": "Ничего не найдено…",
+ "recentThemes": "Недавно посещенные карты",
+ "recents": "Недавно увиденные места",
"search": "Найти место",
"searching": "Поиск…"
},
@@ -158,7 +171,14 @@
"tuesday": "Вторник",
"wednesday": "Среда"
},
- "welcomeBack": "Вы вошли, с возвращением!"
+ "welcomeBack": "Вы вошли, с возвращением!",
+ "welcomeExplanation": {
+ "addNew": "Какой-то объект отсутствует? Используйте кнопку в левом нижнем углу, чтобы добавить новую точку интереса.",
+ "general": "На этой карте вы можете видеть, редактировать и добавлять точки интереса. Увеличьте масштаб, чтобы увидеть POI, нажмите на одну из них, чтобы просмотреть или отредактировать информацию. Все данные получены и сохранены в OpenStreetMap, которые можно свободно использовать повторно."
+ },
+ "wikipedia": {
+ "readMore": "Прочитать остальную часть статьи"
+ }
},
"hotkeyDocumentation": {
"title": "Горячие клавиши"
@@ -169,6 +189,10 @@
"doDelete": "Удалить изображение",
"dontDelete": "Отмена",
"isDeleted": "Удалено",
+ "nearby": {
+ "noNearbyImages": "Близлежащих изображений не найдено",
+ "seeNearby": "Просмотреть соседние фотографии"
+ },
"pleaseLogin": "Пожалуйста, войдите в систему, чтобы добавить изображение",
"respectPrivacy": "Не фотографируйте людей и номерные знаки. Не загружайте снимки из Google Maps, Google Street View или из других источников с закрытой лицензией.",
"uploadDone": "Ваше изображение добавлено. Спасибо за помощь!",
@@ -206,7 +230,7 @@
"split": {
"cancel": "Отмена",
"hasBeenSplit": "Этот путь был разделён",
- "inviteToSplit": "Разделите эту дорогу на маленькие части. Это позволит дпть больше информации частей дороги.",
+ "inviteToSplit": "Разделите дорогу на небольшие сегменты. Это позволит придать частям дороги разные свойства.",
"loginToSplit": "Вы должны войти в профиль, чтобы разделить дорогу",
"split": "Разделить",
"splitTitle": "Выберите карту на которой хотите разделить дорогу"
From c613873d801a2607416bc4dad45549f0086cf9e0 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Sun, 13 Oct 2024 18:30:25 +0000
Subject: [PATCH 49/55] Translated using Weblate (Russian)
Currently translated at 20.2% (88 of 434 strings)
Translation: MapComplete/themes
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/themes/ru/
---
langs/themes/ru.json | 27 +++++++++++++++++++++++++--
1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/langs/themes/ru.json b/langs/themes/ru.json
index 13d294bb6..b607086a6 100644
--- a/langs/themes/ru.json
+++ b/langs/themes/ru.json
@@ -134,7 +134,8 @@
}
}
}
- }
+ },
+ "title": "Фасадные сады"
},
"food": {
"title": "Общественное питание"
@@ -176,11 +177,26 @@
"title": "Карта карт"
},
"maxspeed": {
+ "shortDescription": "На этой карте показана разрешенная законом максимальная скорость на каждой дороге.",
"title": "Ограничения скорости"
},
+ "memorials": {
+ "title": "Памятники"
+ },
+ "nature": {
+ "shortDescription": "Карта для любителей природы, с интересными POI",
+ "title": "На природе"
+ },
+ "notes": {
+ "title": "Заметки в OpenStreetMap"
+ },
"observation_towers": {
+ "shortDescription": "Общедоступные башни, с которых можно любоваться видами",
"title": "Смотровые башни"
},
+ "onwheels": {
+ "title": "Коляски"
+ },
"openwindpowermap": {
"title": "Открытая карта ветроэнергетики"
},
@@ -188,7 +204,8 @@
"title": "Парковка"
},
"personal": {
- "description": "Создать персональную тему на основе доступных слоёв тем. Чтобы отобразить некоторые данные, откройте выбор слоя"
+ "description": "Создать персональную тему на основе доступных слоёв тем. Чтобы отобразить некоторые данные, откройте выбор слоя",
+ "title": "Собственная тема"
},
"pets": {
"description": "На этой карте вы найдете различные интересные места для ваших питомцев: ветеринарные клиники, парки для собак, зоомагазины, рестораны для собак, ...",
@@ -240,6 +257,9 @@
"description": "Карта общественных туалетов",
"title": "Открытая карта туалетов"
},
+ "transit": {
+ "title": "Автобусные маршруты"
+ },
"trees": {
"description": "Нанесите все деревья на карту!",
"shortDescription": "Карта деревьев",
@@ -250,5 +270,8 @@
},
"waste": {
"title": "Мусор"
+ },
+ "waste_basket": {
+ "title": "Корзины для мусора"
}
}
From d0bf44f0ac33f7959281f3ba81611db9a6577db3 Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Sun, 13 Oct 2024 14:14:16 +0000
Subject: [PATCH 50/55] Translated using Weblate (Ukrainian)
Currently translated at 10.5% (74 of 704 strings)
Translation: MapComplete/Core
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/uk/
---
langs/uk.json | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/langs/uk.json b/langs/uk.json
index 9ced46e23..94a9ae26b 100644
--- a/langs/uk.json
+++ b/langs/uk.json
@@ -70,7 +70,26 @@
"title": "Структуровані дані завантажуються із зовнішнього веб-сайту"
},
"favourite": {
- "loginNeeded": "Увійти
Персональний макет доступний лише для користувачів OpenStreetMap"
+ "loginNeeded": "Увійти
Персональний макет доступний лише для користувачів OpenStreetMap",
+ "reload": "Перезавантажте дані"
+ },
+ "favouritePoi": {
+ "button": {
+ "isFavourite": "Наразі це місце позначено як обране і буде відображатися на всіх тематичних мапах MapComplete, які ви відвідаєте.",
+ "isMarkedShort": "Позначено як улюблену локацію",
+ "isNotMarkedShort": "Не позначено як обране",
+ "markAsFavouriteTitle": "Позначте цю локацію як обрану",
+ "markDescription": "Додайте цю локацію до особистого списку обраних",
+ "unmark": "Видалити з особистого списку обраних",
+ "unmarkNotDeleted": "Ця точка не буде видалена і залишиться видимою на відповідній карті для вас та інших користувачів"
+ },
+ "downloadGeojson": "Завантажте обрані у форматі geojson",
+ "downloadGpx": "Завантажуйте обрані у форматі GPX",
+ "intro": "Ви позначили {length} локацій як обрані.",
+ "introPrivacy": "Цей список бачите тільки ви",
+ "loginToSeeList": "Увійдіть, щоб переглянути список місць, які ви позначили як обрані",
+ "tab": "Ваші обрані та відгуки",
+ "title": "Ваші обрані локації"
},
"general": {
"backToIndex": "Переглянути всі тематичні карти",
From e14b5bcc2578a3933596ac3a2118e896ebe5825c Mon Sep 17 00:00:00 2001
From: mike140 <140mic@gmail.com>
Date: Sun, 13 Oct 2024 14:20:33 +0000
Subject: [PATCH 51/55] Translated using Weblate (Ukrainian)
Currently translated at 19.5% (85 of 434 strings)
Translation: MapComplete/themes
Translate-URL: https://hosted.weblate.org/projects/mapcomplete/themes/uk/
---
langs/themes/uk.json | 87 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 87 insertions(+)
diff --git a/langs/themes/uk.json b/langs/themes/uk.json
index 1330e1cae..009580b0b 100644
--- a/langs/themes/uk.json
+++ b/langs/themes/uk.json
@@ -183,8 +183,95 @@
},
"2": {
"then": "У що містить об'єкт зазначено, що вона доступна лише клієнтам
{_embedding_feature:access:description}"
+ },
+ "3": {
+ "then": "У що містить функцію зазначено, що вона доступна лише для членів клубу
{_embedding_feature:access:description}"
}
}
+ },
+ "1": {
+ "mappings": {
+ "0": {
+ "then": "Загальнодоступний для всіх"
+ },
+ "1": {
+ "then": "Для доступу сюди потрібен дозвіл"
+ },
+ "2": {
+ "then": "Тільки клієнти"
+ },
+ "3": {
+ "then": "Тільки члени клубу"
+ }
+ },
+ "question": "Хто може сюди потрапити?"
+ }
+ }
+ }
+ },
+ "1": {
+ "override": {
+ "+tagRenderings": {
+ "0": {
+ "mappings": {
+ "0": {
+ "then": "У цій майстерні ремонтують альпіністське взуття"
+ },
+ "1": {
+ "then": "Цей магазин не займається ремонтом альпіністського взуття"
+ }
+ },
+ "question": "Чи ремонтує ця майстерня альпіністське взуття?"
+ }
+ }
+ }
+ },
+ "2": {
+ "override": {
+ "+tagRenderings": {
+ "0": {
+ "mappings": {
+ "0": {
+ "then": "У цій майстерні ремонтують альпіністське взуття"
+ },
+ "1": {
+ "then": "Цей магазин не займається ремонтом альпіністського взуття"
+ }
+ },
+ "question": "Чи ремонтує ця майстерня також альпіністське взуття?"
+ }
+ },
+ "=presets": {
+ "0": {
+ "title": "майстерня по ремонту взуття"
+ }
+ }
+ }
+ }
+ },
+ "title": "Скелелазні тренажерні зали, клуби та місця"
+ },
+ "clock": {
+ "description": "Карта з усіма громадськими годинниками",
+ "title": "Годинники"
+ },
+ "cycle_highways": {
+ "description": "На цій карті показані велодоріжки",
+ "title": "Велосипедні доріжки"
+ },
+ "cycle_infra": {
+ "description": "Карта, на якій можна переглядати та редагувати речі, пов'язані з велосипедною інфраструктурою. Зроблено під час #osoc21.",
+ "shortDescription": "Карта, на якій ви можете переглядати та редагувати речі, пов'язані з велосипедною інфраструктурою.",
+ "title": "Велосипедна інфраструктура"
+ },
+ "cyclenodes": {
+ "layers": {
+ "0": {
+ "name": "Зв'язки між точками",
+ "tagRenderings": {
+ "node2node-survey:date": {
+ "override": {
+ "question": "Коли цей зв'язок між точками досліджувався востаннє?"
}
}
}
From 016908fb940a65dc863cddca5be8d681b9370c49 Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Sun, 13 Oct 2024 22:19:22 +0200
Subject: [PATCH 52/55] Fix: build: add generated file which is needed for some
steps
---
.../generated/editor-layer-index-global.json | 131 ++++++++++++++++++
1 file changed, 131 insertions(+)
create mode 100644 src/assets/generated/editor-layer-index-global.json
diff --git a/src/assets/generated/editor-layer-index-global.json b/src/assets/generated/editor-layer-index-global.json
new file mode 100644
index 000000000..f6818d833
--- /dev/null
+++ b/src/assets/generated/editor-layer-index-global.json
@@ -0,0 +1,131 @@
+[
+ {
+ "name": "CyclOSM",
+ "id": "cyclosm",
+ "url": "https://{switch:a,b,c}.tile-cyclosm.openstreetmap.fr/cyclosm/{zoom}/{x}/{y}.png",
+ "attribution": {
+ "text": "Rendering: CyclOSM (hosted by OpenStreetMap France) © Map data OpenStreetMap contributors",
+ "url": "https://www.cyclosm.org/"
+ },
+ "type": "tms",
+ "category": "osmbasedmap",
+ "max_zoom": 20
+ },
+ {
+ "name": "Esri World Imagery",
+ "id": "EsriWorldImagery",
+ "url": "https://{switch:services,server}.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{zoom}/{y}/{x}",
+ "attribution": {
+ "required": true,
+ "text": "Terms & Feedback",
+ "url": "https://wiki.openstreetmap.org/wiki/Esri"
+ },
+ "type": "tms",
+ "category": "photo",
+ "max_zoom": 22,
+ "default": true
+ },
+ {
+ "name": "Esri World Imagery (Clarity) Beta",
+ "id": "EsriWorldImageryClarity",
+ "url": "https://clarity.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/MapServer/tile/{zoom}/{y}/{x}",
+ "attribution": {
+ "required": true,
+ "text": "Terms & Feedback",
+ "url": "https://wiki.openstreetmap.org/wiki/Esri"
+ },
+ "type": "tms",
+ "category": "photo",
+ "max_zoom": 22,
+ "default": true
+ },
+ {
+ "name": "Mapbox Satellite",
+ "id": "Mapbox",
+ "url": "https://{switch:a,b,c,d}.tiles.mapbox.com/v4/mapbox.satellite/{zoom}/{x}/{y}.jpg?access_token=pk.eyJ1Ijoib3BlbnN0cmVldG1hcCIsImEiOiJjbGZkempiNDkyandvM3lwY3M4MndpdWdzIn0.QnvRv52n3qffVEKmQa9vJA",
+ "attribution": {
+ "required": true,
+ "text": "Terms & Feedback",
+ "url": "https://www.mapbox.com/about/maps"
+ },
+ "type": "tms",
+ "category": "photo",
+ "max_zoom": 22,
+ "default": true
+ },
+ {
+ "name": "OpenAerialMap Mosaic, by Kontur.io",
+ "id": "OpenAerialMapMosaic",
+ "url": "https://apps.kontur.io/raster-tiler/oam/mosaic/{zoom}/{x}/{y}.png",
+ "type": "tms",
+ "category": "photo",
+ "min_zoom": 1,
+ "max_zoom": 31,
+ "default": true
+ },
+ {
+ "name": "OpenStreetMap (Basque Style)",
+ "id": "osmfr-basque",
+ "url": "https://tile.openstreetmap.bzh/eu/{zoom}/{x}/{y}.png",
+ "attribution": {
+ "required": true,
+ "text": "Tiles © OpenStreetMap France, data © OpenStreetMap contributors, ODbL",
+ "url": "https://www.openstreetmap.org/"
+ },
+ "type": "tms",
+ "category": "osmbasedmap",
+ "max_zoom": 20
+ },
+ {
+ "name": "OpenStreetMap (Breton Style)",
+ "id": "osmfr-breton",
+ "url": "https://tile.openstreetmap.bzh/br/{zoom}/{x}/{y}.png",
+ "attribution": {
+ "required": true,
+ "text": "Tiles © OpenStreetMap France, data © OpenStreetMap contributors, ODbL",
+ "url": "https://www.openstreetmap.org/"
+ },
+ "type": "tms",
+ "category": "osmbasedmap",
+ "max_zoom": 20
+ },
+ {
+ "name": "OpenStreetMap (French Style)",
+ "id": "osmfr",
+ "url": "https://{switch:a,b,c}.tile.openstreetmap.fr/osmfr/{zoom}/{x}/{y}.png",
+ "attribution": {
+ "required": true,
+ "text": "Tiles © cquest@Openstreetmap France, data © OpenStreetMap contributors, ODBL",
+ "url": "https://www.openstreetmap.org/"
+ },
+ "type": "tms",
+ "category": "osmbasedmap",
+ "max_zoom": 20
+ },
+ {
+ "name": "OpenStreetMap (HOT Style)",
+ "id": "HDM_HOT",
+ "url": "https://{switch:a,b,c}.tile.openstreetmap.fr/hot/{zoom}/{x}/{y}.png",
+ "attribution": {
+ "required": true,
+ "text": "© OpenStreetMap contributors, tiles courtesy of Humanitarian OpenStreetMap Team",
+ "url": "https://www.hotosm.org/"
+ },
+ "type": "tms",
+ "category": "osmbasedmap",
+ "max_zoom": 20
+ },
+ {
+ "name": "OpenStreetMap (Occitan Style)",
+ "id": "osmfr-occitan",
+ "url": "https://tile.openstreetmap.bzh/oc/{zoom}/{x}/{y}.png",
+ "attribution": {
+ "required": true,
+ "text": "Tiles © OpenStreetMap France, data © OpenStreetMap contributors, ODbL",
+ "url": "https://www.openstreetmap.org/"
+ },
+ "type": "tms",
+ "category": "osmbasedmap",
+ "max_zoom": 20
+ }
+]
\ No newline at end of file
From 49de58f7549c56d0999efe3bc55eb2f564e9547d Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Mon, 14 Oct 2024 21:40:20 +0200
Subject: [PATCH 53/55] Chore: translation sync (welcome uk)
---
assets/layers/address/address.json | 27 ++-
assets/layers/advertising/advertising.json | 168 ++++++++++++------
.../layers/animal_shelter/animal_shelter.json | 3 +-
assets/layers/artwork/artwork.json | 7 +-
.../charging_station/charging_station.json | 10 +-
assets/layers/dogpark/dogpark.json | 3 +-
assets/layers/food/food.json | 10 +-
assets/layers/gps_track/gps_track.json | 3 +-
assets/layers/icons/icons.json | 15 +-
assets/layers/maxspeed/maxspeed.json | 3 +-
assets/layers/note/note.json | 3 +-
assets/layers/search/search.json | 6 +-
assets/layers/summary/summary.json | 3 +-
assets/layers/toilet/toilet.json | 12 +-
.../layers/transit_routes/transit_routes.json | 3 +-
assets/layers/usersettings/usersettings.json | 86 ++++++---
assets/layers/veterinary/veterinary.json | 3 +-
assets/layers/waste_basket/waste_basket.json | 27 ++-
assets/themes/advertising/advertising.json | 10 +-
assets/themes/aed/aed.json | 6 +-
assets/themes/artwork/artwork.json | 6 +-
assets/themes/atm/atm.json | 15 +-
assets/themes/bag/bag.json | 36 ++--
assets/themes/benches/benches.json | 9 +-
.../bicycle_parkings/bicycle_parkings.json | 7 +-
.../themes/bicycle_rental/bicycle_rental.json | 10 +-
assets/themes/bicyclelib/bicyclelib.json | 6 +-
assets/themes/binoculars/binoculars.json | 10 +-
assets/themes/blind_osm/blind_osm.json | 6 +-
assets/themes/bookcases/bookcases.json | 6 +-
.../themes/cafes_and_pubs/cafes_and_pubs.json | 6 +-
assets/themes/campersite/campersite.json | 24 ++-
.../charging_stations/charging_stations.json | 9 +-
.../circular_economy/circular_economy.json | 9 +-
assets/themes/climbing/climbing.json | 57 ++++--
assets/themes/clock/clock.json | 7 +-
.../themes/cycle_highways/cycle_highways.json | 6 +-
assets/themes/cycle_infra/cycle_infra.json | 9 +-
assets/themes/cyclenodes/cyclenodes.json | 6 +-
assets/themes/cyclestreets/cyclestreets.json | 3 +-
.../disaster_response/disaster_response.json | 3 +-
assets/themes/education/education.json | 3 +-
assets/themes/etymology/etymology.json | 3 +-
.../themes/facadegardens/facadegardens.json | 3 +-
assets/themes/glutenfree/glutenfree.json | 3 +-
assets/themes/guideposts/guideposts.json | 3 +-
assets/themes/hotels/hotels.json | 3 +-
assets/themes/icecream/icecream.json | 3 +-
assets/themes/indoors/indoors.json | 3 +-
assets/themes/maps/maps.json | 3 +-
assets/themes/maxspeed/maxspeed.json | 3 +-
assets/themes/memorials/memorials.json | 3 +-
assets/themes/nature/nature.json | 6 +-
assets/themes/notes/notes.json | 3 +-
.../observation_towers.json | 3 +-
assets/themes/onwheels/onwheels.json | 3 +-
assets/themes/personal/personal.json | 3 +-
assets/themes/pets/pets.json | 9 +-
assets/themes/shops/shops.json | 3 +-
assets/themes/sports/sports.json | 3 +-
assets/themes/surveillance/surveillance.json | 3 +-
assets/themes/transit/transit.json | 3 +-
.../vending_machine/vending_machine.json | 3 +-
assets/themes/waste_basket/waste_basket.json | 3 +-
langs/de.json | 2 +-
langs/es.json | 2 +-
langs/hu.json | 2 +-
langs/layers/ca.json | 2 +-
langs/layers/cs.json | 2 +-
langs/layers/de.json | 2 +-
langs/layers/en.json | 2 +-
langs/layers/es.json | 2 +-
langs/layers/fr.json | 2 +-
langs/layers/nl.json | 2 +-
langs/layers/ru.json | 2 +-
langs/layers/uk.json | 2 +-
langs/ru.json | 2 +-
langs/themes/ru.json | 2 +-
langs/themes/uk.json | 2 +-
langs/uk.json | 2 +-
src/assets/used_languages.json | 2 +-
81 files changed, 509 insertions(+), 261 deletions(-)
diff --git a/assets/layers/address/address.json b/assets/layers/address/address.json
index d1f48c6f5..c980e2d5a 100644
--- a/assets/layers/address/address.json
+++ b/assets/layers/address/address.json
@@ -22,7 +22,8 @@
"pt_BR": "Endereços conhecidos no OSM",
"eu": "OSMko helbide ezagunak",
"pl": "Znane adresy w OSM",
- "it": "Indirizzo presente su OSM"
+ "it": "Indirizzo presente su OSM",
+ "uk": "Відомі адреси в OSM"
},
"description": {
"en": "Addresses",
@@ -47,7 +48,8 @@
"pt_BR": "Endereços",
"he": "כתובות",
"eu": "Helbideak",
- "it": "Indirizzi"
+ "it": "Indirizzi",
+ "uk": "Адреси"
},
"source": {
"osmTags": {
@@ -85,7 +87,8 @@
"he": "כתובת ידועה",
"eu": "Helbide ezaguna",
"it": "Indirizzo conosciuto",
- "zh_Hant": "已知的地址"
+ "zh_Hant": "已知的地址",
+ "uk": "Відома адреса"
}
},
"pointRendering": [
@@ -172,7 +175,8 @@
"he": "מספר הבית הוא {addr:housenumber}",
"eu": "Etxearen zenbakia {addr:housenumber} da",
"it": "Il numero civico della casa è {addr:housenumber}",
- "zh_Hant": "門牌號碼是 {addr:housenumber}"
+ "zh_Hant": "門牌號碼是 {addr:housenumber}",
+ "uk": "Номер будинку {addr:housenumber}"
},
"question": {
"en": "What is the number of this house?",
@@ -194,7 +198,8 @@
"he": "מה המספר של הבית הזה?",
"eu": "Zein da etxe honen zenbakia?",
"it": "Qual è il numero civico di questa casa?",
- "zh_Hant": "這間房子的門牌號碼是多少?"
+ "zh_Hant": "這間房子的門牌號碼是多少?",
+ "uk": "Який номер цього будинку?"
},
"freeform": {
"key": "addr:housenumber",
@@ -232,7 +237,8 @@
"pt_BR": "Este prédio não tem número",
"he": "למבנה זה אין מספר בית",
"eu": "Eraikin honek ez du etxe zenbakirik",
- "it": "Questo edificio non ha indirizzo"
+ "it": "Questo edificio non ha indirizzo",
+ "uk": "Ця будівля не має номера будинку"
}
}
]
@@ -257,7 +263,8 @@
"he": "כתובת זו נמצאת ברחוב {addr:street}",
"eu": "Helbide hau {addr:street} kalean dago",
"it": "L’indirizzo è in via {addr:street}",
- "zh_Hant": "此地址位於街道 {addr:street}"
+ "zh_Hant": "此地址位於街道 {addr:street}",
+ "uk": "Ця адреса знаходиться на вулиці {addr:street}"
},
"question": {
"en": "What street is this address located in?",
@@ -278,7 +285,8 @@
"he": "באיזה רחוב נמצאת הכתובת הזו?",
"eu": "Zein kaletan dago helbide hori?",
"it": "Qual è la via in cui si trova?",
- "zh_Hant": "地址所在的道路是?"
+ "zh_Hant": "地址所在的道路是?",
+ "uk": "На якій вулиці знаходиться ця адреса?"
},
"freeform": {
"key": "addr:street"
@@ -329,7 +337,8 @@
"he": "מה צריך לתקן כאן? אנא הסבר",
"eu": "Zer konpondu behar da hemen? Azaldu mesedez",
"it": "Indica cosa deve essere corretto qui",
- "ru": "Что исправить? Пожалуйста, предложите"
+ "ru": "Что исправить? Пожалуйста, предложите",
+ "uk": "Що тут треба виправити? Поясніть, будь ласка"
},
"freeform": {
"key": "fixme"
diff --git a/assets/layers/advertising/advertising.json b/assets/layers/advertising/advertising.json
index dc5be8404..6faf8ef35 100644
--- a/assets/layers/advertising/advertising.json
+++ b/assets/layers/advertising/advertising.json
@@ -16,7 +16,8 @@
"it": "Pubblicità",
"zh_Hant": "廣告",
"fr": "Publicité",
- "ru": "Реклама"
+ "ru": "Реклама",
+ "uk": "Оголошення"
},
"description": {
"ca": "Completarem les dades dels elements publicitaris amb referència, operador i il·luminació",
@@ -29,7 +30,8 @@
"pl": "Uzupełnimy dane z obiektów reklamowych o referencję, operatora i oświetlenie",
"pt_BR": "Completaremos os dados das características de publicidade com referência, operador e iluminação",
"it": "Completeremo i dati da caratteristiche pubblicitarie, con referenza, operatore e illuminazione",
- "fr": "Nous allons compléter les information sur la publicité avec la référence, l'opérateur et l'éclairage"
+ "fr": "Nous allons compléter les information sur la publicité avec la référence, l'opérateur et l'éclairage",
+ "uk": "Ми доповнимо дані з рекламних об'єктів посиланням, оператором та освітленням"
},
"source": {
"osmTags": {
@@ -437,7 +439,8 @@
"zh_Hans": "一块广告牌",
"it": "un cartellone",
"zh_Hant": "一塊告示牌",
- "ru": "билборд"
+ "ru": "билборд",
+ "uk": "білборд"
},
"description": {
"en": "A large outdoor advertising structure, typically found in high-traffic areas such as alongside busy roads",
@@ -451,7 +454,8 @@
"eu": "Atari zabaleko publizitate-egitura handia, trafiko handiko eremuetan egon ohi dena, adibidez errepideen ondoan",
"pl": "Duża struktura reklamowa na dworze, zwykle znajdująca się w obszarach z dużym ruchem, np. w pobliżu ruchliwych dróg",
"pt_BR": "Uma grande estrutura de publicidade outdoor, geralmente encontrada em áreas com alto tráfego, como ao longo de estradas movimentadas",
- "it": "Grande struttura pubblicitaria all'aperto, trovata normalmente in aree ad alto traffico come accanto a strade molto trafficate"
+ "it": "Grande struttura pubblicitaria all'aperto, trovata normalmente in aree ad alto traffico come accanto a strade molto trafficate",
+ "uk": "Велика зовнішня рекламна конструкція, зазвичай розташована в місцях з високим трафіком, наприклад, уздовж жвавих доріг"
},
"exampleImages": [
"./assets/themes/advertising/KFC_Billboard.jpg",
@@ -471,7 +475,8 @@
"de": "Eine an einer Wand montierte Werbetafel",
"cs": "billboard připevněný na stěnu",
"ca": "un cartell muntat a una paret",
- "es": "una valla publicitaria montada en un muro"
+ "es": "una valla publicitaria montada en un muro",
+ "uk": "білборд, прикріплений до стіни"
},
"description": {
"en": "A large outdoor advertising structure, typically found in high-traffic areas such as alongside busy roads mounted on a wall",
@@ -479,7 +484,8 @@
"cs": "Velká venkovní reklamní konstrukce, která se obvykle nachází na frekventovaných místech, například podél frekventovaných silnic, umístěná na zdi",
"pl": "Duży obiekt reklamowy na zewnątrz, zazwyczaj znajduje się w obszarach z dużym ruchem, np. obok ruchliwych dróg na ścianie",
"ca": "Una gran estructura publicitària exterior, que normalment es troba en zones de gran trànsit, com ara al costat de carreteres transitades muntades a una paret",
- "es": "Una gran estructura de publicidad exterior, que suele encontrarse en zonas de mucho tráfico, por ejemplo, junto a carreteras muy transitadas"
+ "es": "Una gran estructura de publicidad exterior, que suele encontrarse en zonas de mucho tráfico, por ejemplo, junto a carreteras muy transitadas",
+ "uk": "Велика зовнішня рекламна конструкція, зазвичай розташована в місцях з високим трафіком, наприклад, уздовж жвавих доріг, встановлена на стіні"
},
"exampleImages": [
"./assets/themes/advertising/billboard_wall.jpg"
@@ -500,7 +506,8 @@
"pl": "wolnostojąca skrzynka plakatowa",
"pt_BR": "uma caixa expositora independente",
"it": "un cartellone pubblicitario fissato a terra",
- "zh_Hant": "獨自設立的海報框"
+ "zh_Hant": "獨自設立的海報框",
+ "uk": "окремо стояча коробка для плакатів"
},
"exampleImages": [
"./assets/themes/advertising/Mupi_spain.jpg",
@@ -522,7 +529,8 @@
"pl": "skrzynka plakatowa montowana na ścianie",
"pt_BR": "uma caixa de pôster montada em uma parede",
"zh_Hans": "安装在墙上的海报盒子",
- "it": "un cartellone pubblicitario fissato al muro"
+ "it": "un cartellone pubblicitario fissato al muro",
+ "uk": "коробка для плакатів, що кріпиться на стіну"
},
"snapToLayer": [
"walls_and_buildings"
@@ -540,7 +548,8 @@
"it": "un contenitore di poster pubblicitari di una pensilina del trasporto pubblico",
"es": "una caja de carteles que forma parte de una marquesina de transporte público",
"cs": "plakátovací skříňka, která je součástí přístřešku veřejné dopravy",
- "ca": "un mupi que forma part d'un refugi de transport públic"
+ "ca": "un mupi que forma part d'un refugi de transport públic",
+ "uk": "афішна скринька, що є частиною зупинки громадського транспорту"
},
"snapToLayer": [
"shelter"
@@ -561,7 +570,8 @@
"pt": "a bordo",
"pl": "tablica",
"pt_BR": "um painel publicitário",
- "it": "un piccolo pannello"
+ "it": "un piccolo pannello",
+ "uk": "дошка"
},
"description": {
"en": "Small billboard for neighbourhood advertising, generally intended for pedestrians",
@@ -574,7 +584,8 @@
"pt": "Pequeno outdoor para publicidade de bairro, geralmente destinado a pedestres",
"pl": "Mały bilbord dla reklam lokalnych, przeznaczony głównie dla pieszych",
"pt_BR": "Pequeno outdoor para publicidade local, geralmente destinado a pedestres",
- "it": "PIccolo pannello per la pubblicità di vicinanza, generalmente destinato ai pedoni"
+ "it": "PIccolo pannello per la pubblicità di vicinanza, generalmente destinato ai pedoni",
+ "uk": "Невеликий білборд для місцевої реклами, в основному призначений для пішоходів"
},
"exampleImages": [
"./assets/themes/advertising/local_Board.jpg",
@@ -598,7 +609,8 @@
"pl": "kolumna",
"pt_BR": "uma coluna",
"it": "una colonna",
- "ru": "столбец"
+ "ru": "столбец",
+ "uk": "стовпчик"
},
"description": {
"en": "A cylindrical outdoor structure which shows advertisements",
@@ -611,7 +623,8 @@
"pt": "Uma estrutura exterior cilíndrica que mostra anúncios",
"pl": "Cylindryczna konstrukcja zewnętrzna, na której pokazywane są reklamy",
"pt_BR": "Uma estrutura cilíndrica ao ar livre que exibe anúncios",
- "it": "Una struttura cilindrica all'esterno con affissa della pubblicità"
+ "it": "Una struttura cilindrica all'esterno con affissa della pubblicità",
+ "uk": "Циліндрична зовнішня конструкція, що показує рекламу"
},
"exampleImages": [
"./assets/themes/advertising/AdvertisingColumn_001.jpg",
@@ -635,7 +648,8 @@
"pl": "flaga",
"pt_BR": "uma bandeira",
"zh_Hans": "一个旗子",
- "it": "una bandiera"
+ "it": "una bandiera",
+ "uk": "прапор"
},
"exampleImages": [
"./assets/themes/advertising/Advertising_flag.jpg",
@@ -658,7 +672,8 @@
"pl": "ekran",
"pt_BR": "uma tela",
"zh_Hans": "一块屏幕",
- "it": "uno schermo"
+ "it": "uno schermo",
+ "uk": "екран"
},
"exampleImages": [
"./assets/themes/advertising/Screen_poster_box.jpg",
@@ -681,7 +696,8 @@
"pl": "ekran zamontowany na ścianie",
"pt_BR": "uma tela montada em uma parede",
"zh_Hans": "一块挂在墙上的屏幕",
- "it": "uno schermo fissato al muro"
+ "it": "uno schermo fissato al muro",
+ "uk": "екран, встановлений на стіні"
},
"exampleImages": [
"./assets/themes/advertising/Subway_screen.jpg",
@@ -705,7 +721,8 @@
"it": "uno schermo montato su una pensilina del traporto pubblico",
"es": "una pantalla montada en una marquesina de tránsito",
"cs": "obrazovka namontovaná na dopravním přístřešku",
- "ca": "una pantalla muntada en una marquesina"
+ "ca": "una pantalla muntada en una marquesina",
+ "uk": "екран, встановлений на тимчасовому укритті"
},
"snapToLayer": [
"shelter"
@@ -728,7 +745,8 @@
"pl": "plandeka",
"pt_BR": "uma lona",
"zh_Hans": "防水布",
- "it": "un telone"
+ "it": "un telone",
+ "uk": "брезент"
},
"description": {
"en": "A piece of waterproof textile with a printed message, permanently anchored on a wall",
@@ -741,7 +759,8 @@
"fr": "Une pièce de textile imperméable avec un message imprimé, ancrée de façon permanente sur un mur.",
"pl": "Kawałek wodoodpornej tkaniny z nadrukowanym przesłaniem, trwale przymocowany do ściany",
"pt_BR": "Um pedaço de tecido impermeável com uma mensagem impressa, permanentemente fixado a uma parede",
- "it": "Un telo impermeabile con un messaggio stampato, fissato in modo permanente al muro"
+ "it": "Un telo impermeabile con un messaggio stampato, fissato in modo permanente al muro",
+ "uk": "Шматок водонепроникного текстилю з надрукованим повідомленням, постійно закріплений на стіні"
},
"exampleImages": [
"./assets/themes/advertising/tarp_feder.jpg",
@@ -767,7 +786,8 @@
"pl": "totem",
"pt_BR": "um totem",
"zh_Hans": "图腾",
- "it": "un totem"
+ "it": "un totem",
+ "uk": "тотем"
},
"exampleImages": [
"./assets/themes/advertising/AdvertisingTotem_004.jpg",
@@ -791,7 +811,8 @@
"eu": "letrero bat",
"pl": "znak",
"zh_Hans": "标志",
- "it": "un'insegna"
+ "it": "un'insegna",
+ "uk": "знак"
},
"description": {
"en": "Used for advertising signs, neon signs, logos & institutional entrance signs",
@@ -804,7 +825,8 @@
"eu": "Iragarki publizitarioetarako, neon-karteletarako, logotipoetarako eta erakundeen sarrera-seinaleetarako erabiltzen da",
"pl": "Używany do znaków reklamowych, neonów, logo i znaków wejściowych do instytucji",
"pt_BR": "Usado para placas de publicidade, letreiros de neon, logotipos e placas de entrada institucionais",
- "it": "Utilizzato per insegna pubblicitaria, un'insegna al neon, i loghi o le indicazioni d'entrata"
+ "it": "Utilizzato per insegna pubblicitaria, un'insegna al neon, i loghi o le indicazioni d'entrata",
+ "uk": "Використовується для рекламних вивісок, неонових вивісок, логотипів та вхідних табличок установ"
},
"exampleImages": [
"./assets/themes/advertising/Waitrose_sign.jpg",
@@ -832,7 +854,8 @@
"pl": "rzeźba",
"pt_BR": "uma escultura",
"zh_Hans": "雕像",
- "it": "una scultura"
+ "it": "una scultura",
+ "uk": "скульптура"
},
"exampleImages": [
"./assets/themes/advertising/Aircraft_Sculpture.jpg",
@@ -857,7 +880,8 @@
"pl": "mural ścienny",
"pt_BR": "uma pintura mural",
"zh_Hans": "墙上的画",
- "it": "un murales"
+ "it": "un murales",
+ "uk": "настінний розпис"
},
"exampleImages": [
"./assets/themes/advertising/Capitol_wall.jpg",
@@ -916,7 +940,8 @@
"he": "זה שלט חוצות",
"pl": "To jest bilbord",
"pt_BR": "Isso é um outdoor",
- "zh_Hans": "这是一个广告牌"
+ "zh_Hans": "这是一个广告牌",
+ "uk": "Це білборд"
},
"icon": {
"path": "./assets/themes/advertising/billboard.svg",
@@ -935,7 +960,8 @@
"pt": "Isso é uma placa",
"pl": "To jest tablica",
"pt_BR": "Isso é uma placa",
- "zh_Hans": "这是一块板"
+ "zh_Hans": "这是一块板",
+ "uk": "Це дошка"
},
"icon": {
"path": "./assets/themes/advertising/board.svg",
@@ -1109,7 +1135,8 @@
"pl": "To jest mural ścienny",
"pt_BR": "Isso é uma pintura mural",
"zh_Hans": "这是一幅壁画",
- "pt": "Isto é uma pintura mural"
+ "pt": "Isto é uma pintura mural",
+ "uk": "Це настінний розпис"
},
"icon": {
"path": "./assets/themes/advertising/wall_painting.svg",
@@ -1122,7 +1149,8 @@
"en": "This is tilework - the advertisement is painted on tiles",
"de": "Dies ist eine Kachelarbeit - die Werbung ist auf Fliesen gemalt",
"cs": "Jedná se o dlaždice - reklama je namalovaná na dlaždicích",
- "es": "Esto es un azulejería - la publicidad está pintada en azulejos"
+ "es": "Esto es un azulejería - la publicidad está pintada en azulejos",
+ "uk": "Це кахельна плитка - реклама намальована на плитці"
}
},
{
@@ -1148,7 +1176,8 @@
"pt": "Este anúncio percorre várias mensagens?",
"pl": "Czy ta reklama przechodzi przez wiele różnych wiadomości?",
"pt_BR": "Este anúncio passa por várias mensagens em sequência?",
- "zh_Hans": "该广告是否会在多条消息中循环播放?"
+ "zh_Hans": "该广告是否会在多条消息中循环播放?",
+ "uk": "Чи циркулює ця реклама через кілька повідомлень?"
},
"condition": {
"#": "Screens are _always_ animated; flags, tarps, and wall_paintings cannot be animated; signs can be anything so we don't make guesses",
@@ -1174,7 +1203,8 @@
"pt": " Static, mostra sempre a mesma mensagem",
"pl": "Statyczne, zawsze pokazuje tą samą wiadomość",
"pt_BR": "Estático, mostra sempre a mesma mensagem",
- "zh_Hans": "静态,始终显示相同的消息"
+ "zh_Hans": "静态,始终显示相同的消息",
+ "uk": "Статичний, завжди показує одне й те саме повідомлення"
}
},
{
@@ -1189,7 +1219,8 @@
"pt": "Este objeto possui um digital display embutido para mostrar preços ou alguma outra mensagem",
"pl": "Ten obiekt ma wbudowany cyfrowy wyświetlacz do pokazywania cen lub innych informacji",
"pt_BR": "Este objeto possui um display digital incorporado para mostrar preços ou alguma outra mensagem",
- "zh_Hans": "该对象有一个内置的数字显示器来显示价格或其他一些消息"
+ "zh_Hans": "该对象有一个内置的数字显示器来显示价格或其他一些消息",
+ "uk": "Цей об'єкт має вбудований цифровий дисплей для відображення цін або іншого повідомлення"
},
"hideInAnswer": {
"and": [
@@ -1211,7 +1242,8 @@
"fr": "Trivision - le panneau est constitué de lames triangulaires qui tournent régulièrement",
"pt": "Trivision - o outdoor consiste em muitos prismas triangulares que giram regularmente",
"pt_BR": "Trivision - o outdoor consiste em muitos prismas triangulares que giram regularmente",
- "zh_Hans": "Trivision - 广告牌由许多有规律旋转的三棱柱组成"
+ "zh_Hans": "Trivision - 广告牌由许多有规律旋转的三棱柱组成",
+ "uk": "Поділ - білборд складається з багатьох трикутних призм, які регулярно обертаються"
},
"icon": {
"class": "large",
@@ -1231,7 +1263,8 @@
"fr": "Affiches défilantes",
"pt": "Pôsteres de rolagem",
"pt_BR": "Pôsteres deslizantes",
- "zh_Hans": "滚动海报"
+ "zh_Hans": "滚动海报",
+ "uk": "Прокрутка постерів"
},
"hideInAnswer": {
"and": [
@@ -1252,7 +1285,8 @@
"fr": "Tourne sur elle-même",
"pt": "Gira sobre si mesmo",
"pt_BR": "Gira sobre si mesmo",
- "zh_Hans": "自行旋转"
+ "zh_Hans": "自行旋转",
+ "uk": "Обертається на себе"
},
"hideInAnswer": {
"and": [
@@ -1283,7 +1317,8 @@
"he": "זהו תאורת ניאון",
"pl": "To jest lampa neonowa",
"pt_BR": "Isso é uma luz de neon",
- "zh_Hans": "这是霓虹灯管"
+ "zh_Hans": "这是霓虹灯管",
+ "uk": "Це неонова лампа"
},
"hideInAnswer": "advertising!=sign",
"addExtraTags": [
@@ -1313,7 +1348,8 @@
"pt_BR": "Operado por {operator}",
"he": "מופעל על ידי {operator}",
"pl": "Obsługiwane przez {operator}",
- "zh_Hans": "由{operator}运营"
+ "zh_Hans": "由{operator}运营",
+ "uk": "Управляється {operator}"
},
"question": {
"ca": "Qui opera aquest element?",
@@ -1327,7 +1363,8 @@
"he": "מי מפעיל את התכונה הזו?",
"pl": "Kto obsługuje ten obiekt?",
"pt_BR": "Quem opera este recurso?",
- "zh_Hans": "谁操作此物件?"
+ "zh_Hans": "谁操作此物件?",
+ "uk": "Хто керує цим об'єктом?"
},
"freeform": {
"addExtraTags": [],
@@ -1348,7 +1385,8 @@
"he": "איזה סוג הודעה מוצגת?",
"pl": "Jaki rodzaj wiadomości jest pokazany?",
"pt_BR": "Que tipo de mensagem é exibido?",
- "zh_Hans": "显示什么样的消息?"
+ "zh_Hans": "显示什么样的消息?",
+ "uk": "Яке повідомлення відображається?"
},
"mappings": [
{
@@ -1366,7 +1404,8 @@
"he": "מסר מסחרי",
"nl": "Commerciële boodschap",
"pl": "Wiadomość komercyjna",
- "zh_Hans": "商业留言"
+ "zh_Hans": "商业留言",
+ "uk": "Комерційне повідомлення"
}
},
{
@@ -1384,7 +1423,8 @@
"nl": "Lokale informatie",
"pl": "Informacja lokalna",
"pt_BR": "Informações locais",
- "zh_Hans": "本地信息"
+ "zh_Hans": "本地信息",
+ "uk": "Місцева інформація"
}
},
{
@@ -1401,7 +1441,8 @@
"he": "מידע אבטחה",
"pl": "Informacje dotyczące bezpieczeństwa",
"pt_BR": "Informações de segurança",
- "zh_Hans": "安全信息"
+ "zh_Hans": "安全信息",
+ "uk": "Інформація про безпеку"
},
"hideInAnswer": {
"and": [
@@ -1423,7 +1464,8 @@
"he": "פרסום בחירות",
"pl": "Reklamy wyborcze",
"pt_BR": "Propaganda eleitoral",
- "zh_Hans": "选举广告"
+ "zh_Hans": "选举广告",
+ "uk": "Передвиборча реклама"
}
},
{
@@ -1442,7 +1484,8 @@
"eu": "Antzerkiari, kontzertuei eta abarri buruzko informazioa",
"pl": "Informacje dotyczące teatru, koncertów, …",
"pt_BR": "Informações relacionadas a teatro, concertos, …",
- "zh_Hans": "与戏剧、音乐会等相关的信息……"
+ "zh_Hans": "与戏剧、音乐会等相关的信息……",
+ "uk": "Інформація, пов'язана з театром, концертами, …"
},
"hideInAnswer": {
"and": [
@@ -1464,7 +1507,8 @@
"pt": "Mensagem de organizações sem fins lucrativos",
"pl": "Wiadomość od organizacji non-profit",
"pt_BR": "Mensagens de organizações sem fins lucrativos",
- "zh_Hans": "来自非营利组织的消息"
+ "zh_Hans": "来自非营利组织的消息",
+ "uk": "Повідомлення від неприбуткових організацій"
}
},
{
@@ -1480,7 +1524,8 @@
"pt": "Para expressar sua opinião",
"pl": "Żeby wyrazić swoją opinię",
"pt_BR": "Para expressar sua opinião",
- "zh_Hans": "表达您的意见"
+ "zh_Hans": "表达您的意见",
+ "uk": "Щоб висловити свою думку"
},
"hideInAnswer": {
"or": [
@@ -1504,7 +1549,8 @@
"pt_BR": "Mensagem religiosa",
"he": "מסר דתי",
"pl": "Przekaz religijny",
- "zh_Hans": "宗教讯息"
+ "zh_Hans": "宗教讯息",
+ "uk": "Релігійне послання"
}
},
{
@@ -1519,7 +1565,8 @@
"pt": "sinal de financiamento",
"pl": "Znak finansowania",
"pt_BR": "Placa de financiamento",
- "zh_Hans": "资助标志"
+ "zh_Hans": "资助标志",
+ "uk": "Ознака фінансування"
},
"hideInAnswer": {
"or": [
@@ -1542,7 +1589,8 @@
"pt": "Um mapa",
"pt_BR": "Um mapa",
"pl": "Mapa",
- "zh_Hans": "地图"
+ "zh_Hans": "地图",
+ "uk": "Карта"
}
}
],
@@ -1573,7 +1621,8 @@
"eu": "Zenbat aldetatik ikus dezakezu publizitatea?",
"pl": "Z ilu stron można oglądać reklamy?",
"pt_BR": "De quantos lados você consegue visualizar os anúncios?",
- "zh_Hans": "您可以从几个侧面观看广告?"
+ "zh_Hans": "您可以从几个侧面观看广告?",
+ "uk": "Зі скількох сторін можна дивитися рекламу?"
},
"mappings": [
{
@@ -1590,7 +1639,8 @@
"pl": "Ten obiekt ma reklamy po jednej stronie",
"pt_BR": "Este objeto tem anúncios em um único lado",
"zh_Hans": "该物体单面有广告",
- "it": "Questo oggetto ha la pubblicità solo da un lato"
+ "it": "Questo oggetto ha la pubblicità solo da un lato",
+ "uk": "Цей об'єкт має рекламу з одного боку"
}
},
{
@@ -1606,7 +1656,8 @@
"eu": "Objektu honek iragarkiak ditu bi aldeetan",
"pl": "Ten obiekt ma reklamy po dwóch stronach",
"pt_BR": "Este objeto tem anúncios em ambos os lados",
- "zh_Hans": "该物体双面有广告"
+ "zh_Hans": "该物体双面有广告",
+ "uk": "Цей об'єкт має рекламу з обох боків"
}
}
]
@@ -1624,7 +1675,8 @@
"pt": "O número de referência é {ref}",
"pt_BR": "O número de referência é {ref}",
"pl": "Numer referencyjny to {ref}",
- "zh_Hans": "编号是{ref}"
+ "zh_Hans": "编号是{ref}",
+ "uk": "Номер посилання: {ref}"
},
"question": {
"ca": "Quin és el número de refèrencia?",
@@ -1637,7 +1689,8 @@
"pt": "Qual é o número de referência?",
"pl": "Jaki jest numer referencyjny?",
"pt_BR": "Qual é o número de referência?",
- "zh_Hans": "编号是多少?"
+ "zh_Hans": "编号是多少?",
+ "uk": "Який номер посилання?"
},
"freeform": {
"key": "ref"
@@ -1654,7 +1707,8 @@
"en": "Is this sign for a business that no longer exists or no longer being maintained?",
"de": "Ist dieses Schild für ein Geschäft, das nicht mehr existiert oder nicht mehr gepflegt wird?",
"es": "¿Es este cartel de un negocio que ya no existe o que ya no se mantiene?",
- "cs": "Je tato značka určena pro již neexistující nebo neudržovaný podnik?"
+ "cs": "Je tato značka určena pro již neexistující nebo neudržovaný podnik?",
+ "uk": "Це знак для бізнесу, який більше не існує або більше не підтримується?"
},
"mappings": [
{
@@ -1664,7 +1718,8 @@
"en": "This is a historic advertisement sign (an advertisement for a business that no longer exists or a very old sign with heritage value)",
"de": "Es handelt sich um ein historisches Werbeschild (eine Werbung für ein Unternehmen, das nicht mehr existiert, oder ein sehr altes Schild mit historischem Wert)",
"cs": "Jedná se o historický reklamní nápis (reklama na již neexistující podnik nebo velmi starý nápis s památkovou hodnotou)",
- "es": "Esto es un cartel publicitario histórico (un anuncio para un negocio que ya no existe o un cartel con un gran valor patrimonial)"
+ "es": "Esto es un cartel publicitario histórico (un anuncio para un negocio que ya no existe o un cartel con un gran valor patrimonial)",
+ "uk": "Це історична рекламна вивіска (реклама підприємства, яке більше не існує, або дуже стара вивіска, що має історичну цінність)"
}
},
{
@@ -1673,7 +1728,8 @@
"en": "This advertisement sign has no historic value (the business still exists and has no heritage value)",
"de": "Dieses Werbeschild hat keinen historischen Wert (das Unternehmen existiert noch und hat keinen denkmalpflegerischen Wert)",
"cs": "Tento reklamní nápis nemá žádnou historickou hodnotu (podnik stále existuje a nemá žádnou památkovou hodnotu)",
- "es": "Este cartel publicitario no tiene valor histórico (el negocio todavía existe y no tiene valor patrimonial)"
+ "es": "Este cartel publicitario no tiene valor histórico (el negocio todavía existe y no tiene valor patrimonial)",
+ "uk": "Ця рекламна вивіска не має історичної цінності (бізнес все ще існує і не має історичної цінності)"
}
}
]
diff --git a/assets/layers/animal_shelter/animal_shelter.json b/assets/layers/animal_shelter/animal_shelter.json
index 2cacd3259..12e870409 100644
--- a/assets/layers/animal_shelter/animal_shelter.json
+++ b/assets/layers/animal_shelter/animal_shelter.json
@@ -9,7 +9,8 @@
"ca": "Refugis d'animals",
"pl": "Schroniska dla zwierząt",
"fr": "Abri pour animaux",
- "cs": "Útulky pro zvířata"
+ "cs": "Útulky pro zvířata",
+ "ru": "Приюты для животных"
},
"description": {
"en": "An animal shelter is a facility where animals in trouble are brought and facility's staff (volunteers or not) feeds them and cares of them, rehabilitating and healing them if necessary. This definition includes kennels for abandoned dogs, catteries for abandoned cats, shelters for other abandoned pets and wildlife recovery centres. ",
diff --git a/assets/layers/artwork/artwork.json b/assets/layers/artwork/artwork.json
index f3310947c..dedada8e1 100644
--- a/assets/layers/artwork/artwork.json
+++ b/assets/layers/artwork/artwork.json
@@ -45,7 +45,8 @@
"zgh": "ⵢⴰⵜ ⵜⴽⴰⵕⴹⴰ ⵉⵕⵥⵎⵏ ⵅⴼ ⵉⵙⴼⵔⵉⵙⵏ, ⵉⵖⵔⴰⵙⵏ ⴷ ⵜⵡⵓⵔⵉⵡⵉⵏ ⵜⵉⵏⴰⵥⵓⵕⵉⵏ ⵢⴰⴹⵏⵉⵏ ⴳ ⵓⵎⴰⴹⴰⵍ",
"eu": "Estatuen, bustoen, graffitien eta mundu osoko beste artelan batzuen mapa irekia",
"pl": "Otwarta mapa posągów, popiersi, graffiti i innych dzieł sztuki z całego świata",
- "pt_BR": "Um mapa aberto de estátuas, bustos, grafites e outras obras de arte em todo o mundo"
+ "pt_BR": "Um mapa aberto de estátuas, bustos, grafites e outras obras de arte em todo o mundo",
+ "uk": "Відкрита карта статуй, бюстів, графіті та інших творів мистецтва по всьому світу"
},
"source": {
"osmTags": "tourism=artwork"
@@ -814,8 +815,8 @@
"if": "historic=",
"alsoShowIf": "historic!=memorial",
"then": {
- "en": "This artwork does not serve as a bench",
- "de": "Dieses Kunstwerk dient nicht als Sitzbank",
+ "en": "This artwork does not serve as a memorial",
+ "de": "Dieses Kunstwerk dient nicht als Denkmal",
"fr": "Cette œuvre ne sert pas de banc",
"cs": "Toto dílo neslouží jako lavička",
"es": "Esta obra de arte no sirve como banco"
diff --git a/assets/layers/charging_station/charging_station.json b/assets/layers/charging_station/charging_station.json
index cf0db46ef..808bf10a1 100644
--- a/assets/layers/charging_station/charging_station.json
+++ b/assets/layers/charging_station/charging_station.json
@@ -21,9 +21,13 @@
]
}
},
- "keywords": {"nl": [
- "oplaadstations","oplaad stations","oplaad punten"
- ]},
+ "keywords": {
+ "nl": [
+ "oplaadstations",
+ "oplaad stations",
+ "oplaad punten"
+ ]
+ },
"title": {
"render": {
"en": "Charging station",
diff --git a/assets/layers/dogpark/dogpark.json b/assets/layers/dogpark/dogpark.json
index 4aa930489..ecd2ac0bd 100644
--- a/assets/layers/dogpark/dogpark.json
+++ b/assets/layers/dogpark/dogpark.json
@@ -7,7 +7,8 @@
"es": "parques de perros",
"nl": "hondenweides",
"ca": "parcs de gossos",
- "cs": "psí parky"
+ "cs": "psí parky",
+ "ru": "парки для собак"
},
"description": "A layer showing dogparks, which are areas where dog are allowed to run without a leash",
"source": {
diff --git a/assets/layers/food/food.json b/assets/layers/food/food.json
index f54a878fc..61725d677 100644
--- a/assets/layers/food/food.json
+++ b/assets/layers/food/food.json
@@ -750,8 +750,8 @@
{
"if": "delivery=yes",
"then": {
- "en": "This business does home delivery (eventually via a third party)",
- "de": "Dieses Unternehmen liefert nach Hause (eventuell über eine dritte Partei)",
+ "en": "This business does home delivery (possibly via a third party)",
+ "de": "Dieses Unternehmen liefert nach Hause (möglicherweise über eine dritte Partei)",
"fr": "Ce restaurant effectue la livraison à domicile (éventuellement via un tiers)",
"nl": "Deze zaak levert aan huis (eventueel via een derde partij)",
"ca": "Aquest negoci fa lliuraments a domicili (eventualment a través d'un tercer)",
@@ -1044,7 +1044,8 @@
{
"if": "diet:vegetarian=only",
"then": {
- "en": "Serves only vegetarian snacks and burgers"
+ "en": "Serves only vegetarian snacks and burgers",
+ "de": "Nur vegetarische Snacks und Burger erhältlich"
}
},
{
@@ -1097,7 +1098,8 @@
{
"if": "diet:vegan=only",
"then": {
- "en": "Serves only vegan snacks and burgers"
+ "en": "Serves only vegan snacks and burgers",
+ "de": "Nur vegane Snacks und Burger erhältlich"
}
},
{
diff --git a/assets/layers/gps_track/gps_track.json b/assets/layers/gps_track/gps_track.json
index 3f7f771a2..6c2b7b8a7 100644
--- a/assets/layers/gps_track/gps_track.json
+++ b/assets/layers/gps_track/gps_track.json
@@ -7,7 +7,8 @@
"fr": "Votre chemin parcouru",
"da": "Dit tilbagelagte spor",
"ca": "La teva traça recorreguda",
- "cs": "Vaše procestovaná trasa"
+ "cs": "Vaše procestovaná trasa",
+ "ru": "Ваш пройденный путь"
},
"description": "Meta layer showing the previous locations of the user as single line with controls, e.g. to erase, upload or download this track. Add this to your theme and override the maprendering to change the appearance of the travelled track.",
"source": "special",
diff --git a/assets/layers/icons/icons.json b/assets/layers/icons/icons.json
index 08f36855b..85abbe9c4 100644
--- a/assets/layers/icons/icons.json
+++ b/assets/layers/icons/icons.json
@@ -127,7 +127,8 @@
"en": "phone",
"nl": "Telefoneer",
"de": "Telefon",
- "pl": "telefon"
+ "pl": "telefon",
+ "cs": "telefon"
}
}
},
@@ -144,7 +145,8 @@
"en": "phone",
"nl": "Telefoneer",
"de": "Telefon",
- "pl": "telefon"
+ "pl": "telefon",
+ "cs": "telefon"
}
}
}
@@ -329,7 +331,8 @@
"nl": "Bekijk op openstreetmap.org",
"de": "Auf openstreetmap.org öffnen",
"pl": "Otwórz na openstreetmap.org",
- "da": "Åbn på openstreetmap.org"
+ "da": "Åbn på openstreetmap.org",
+ "cs": "Otevřít na openstreetmap.org"
}
}
},
@@ -352,7 +355,8 @@
"nl": "Bekijk op openstreetmap.org",
"de": "Auf openstreetmap.org öffnen",
"pl": "Otwórz na openstreetmap.org",
- "da": "Åbn på openstreetmap.org"
+ "da": "Åbn på openstreetmap.org",
+ "cs": "Otevřít na openstreetmap.org"
}
}
}
@@ -370,7 +374,8 @@
"nl": "Bekijk op openstreetmap.org",
"de": "Auf openstreetmap.org öffnen",
"pl": "Otwórz na openstreetmap.org",
- "da": "Åbn på openstreetmap.org"
+ "da": "Åbn på openstreetmap.org",
+ "cs": "Otevřít na openstreetmap.org"
}
}
}
diff --git a/assets/layers/maxspeed/maxspeed.json b/assets/layers/maxspeed/maxspeed.json
index 46e54b11d..feecc2bf0 100644
--- a/assets/layers/maxspeed/maxspeed.json
+++ b/assets/layers/maxspeed/maxspeed.json
@@ -128,7 +128,8 @@
"nl": "Wat is de legale maximumsnelheid voor deze weg?",
"fr": "Quelle est la vitesse maximum autorisée sur cette route ?",
"cs": "Jaká je zákonná maximální povolená rychlost na této silnici?",
- "pl": "Jaka jest maksymalna prawnie dopuszczona prędkość na tej drodze?"
+ "pl": "Jaka jest maksymalna prawnie dopuszczona prędkość na tej drodze?",
+ "ru": "С какой максимальной скоростью разрешено ездить по этой дороге?"
},
"freeform": {
"key": "maxspeed",
diff --git a/assets/layers/note/note.json b/assets/layers/note/note.json
index 61df64781..ad6e9cf29 100644
--- a/assets/layers/note/note.json
+++ b/assets/layers/note/note.json
@@ -63,7 +63,8 @@
"nl": "Bekijk op OpenStreetMap.org",
"de": "Auf OpenStreetMap.org ansehen",
"da": "Se på OpenStreetMap.org",
- "fr": "Voir sur OpenStreetMap.org"
+ "fr": "Voir sur OpenStreetMap.org",
+ "cs": "Zobrazit na OpenStreetMap.org"
},
"render": ""
}
diff --git a/assets/layers/search/search.json b/assets/layers/search/search.json
index 3beeb12c1..307e1cc5e 100644
--- a/assets/layers/search/search.json
+++ b/assets/layers/search/search.json
@@ -2,7 +2,8 @@
"id": "search",
"description": {
"en": "Priviliged layer showing the search results",
- "de": "Priorisierte Ebene, die Suchergebnissen anzeigt"
+ "de": "Priorisierte Ebene, die Suchergebnissen anzeigt",
+ "cs": "Soukromá vrstva zobrazující výsledky hledání"
},
"source": "special",
"title": "{display_name}",
@@ -11,7 +12,8 @@
"id": "intro",
"render": {
"en": "Search result",
- "de": "Suchergebnis"
+ "de": "Suchergebnis",
+ "cs": "Výsledek hledání"
}
},
{
diff --git a/assets/layers/summary/summary.json b/assets/layers/summary/summary.json
index 3300de733..6b8c2f984 100644
--- a/assets/layers/summary/summary.json
+++ b/assets/layers/summary/summary.json
@@ -6,7 +6,8 @@
"render": {
"en": "Summary",
"de": "Übersicht",
- "nl": "Samenvatting"
+ "nl": "Samenvatting",
+ "cs": "Souhrn"
}
},
"pointRendering": [
diff --git a/assets/layers/toilet/toilet.json b/assets/layers/toilet/toilet.json
index abb9901d3..d6c92d4b0 100644
--- a/assets/layers/toilet/toilet.json
+++ b/assets/layers/toilet/toilet.json
@@ -606,12 +606,14 @@
"en": "Are these toilets gender-segregated?",
"nl": "Zijn deze toiletten gescheiden op basis van geslacht?",
"de": "Sind diese Toiletten geschlechtergetrennt?",
- "ca": "Aquests lavabos estan separats per gènere?"
+ "ca": "Aquests lavabos estan separats per gènere?",
+ "cs": "Jsou tyto toalety rozděleny podle pohlaví?"
},
"questionHint": {
"en": "Are there separate stalls or separate areas for men and women and are they signposted as such?",
"nl": "Is er een aparte ruimte voor mannen en vrouwen en zijn deze ruimtes ook expliciet aangegeven?",
- "de": "Gibt es getrennte Kabinen oder getrennte Bereiche für Männer und Frauen, und sind sie als solche ausgeschildert?"
+ "de": "Gibt es getrennte Kabinen oder getrennte Bereiche für Männer und Frauen, und sind sie als solche ausgeschildert?",
+ "cs": "Existují samostatné stánky nebo oddělené prostory pro muže a ženy a jsou jako takové označeny?"
},
"mappings": [
{
@@ -620,7 +622,8 @@
"en": "There is a separate, signposted area for men and women",
"nl": "Er zijn aparte ruimtes of toiletten voor mannen en vrouwen",
"de": "Es gibt einen separaten, ausgeschilderten Bereich für Männer und Frauen",
- "ca": "Hi ha una zona separada, senyalitzada per a homes i dones"
+ "ca": "Hi ha una zona separada, senyalitzada per a homes i dones",
+ "cs": "K dispozici je oddělený, označený prostor pro muže a ženy"
}
},
{
@@ -628,7 +631,8 @@
"then": {
"en": "There is no separate, signposted area for men and women",
"nl": "Mannen en vrouwen gebruiken dezelfde ruimtes en toiletten",
- "de": "Es gibt keinen getrennten, ausgeschilderten Bereich für Männer und Frauen"
+ "de": "Es gibt keinen getrennten, ausgeschilderten Bereich für Männer und Frauen",
+ "cs": "Neexistuje žádný oddělený, označený prostor pro muže a ženy"
}
}
]
diff --git a/assets/layers/transit_routes/transit_routes.json b/assets/layers/transit_routes/transit_routes.json
index 963fd131e..631cf66b0 100644
--- a/assets/layers/transit_routes/transit_routes.json
+++ b/assets/layers/transit_routes/transit_routes.json
@@ -138,7 +138,8 @@
"en": "What is the via point for this bus line?",
"de": "Über welchen Zwischenhalt fährt die Buslinie?",
"nl": "Via welk punt gaat deze buslijn?",
- "cs": "Jaký je průjezdní bod této autobusové linky?"
+ "cs": "Jaký je průjezdní bod této autobusové linky?",
+ "ru": "Где находится конечный пункт этого автобусного маршрута?"
}
},
{
diff --git a/assets/layers/usersettings/usersettings.json b/assets/layers/usersettings/usersettings.json
index fd54a5fda..6f191926c 100644
--- a/assets/layers/usersettings/usersettings.json
+++ b/assets/layers/usersettings/usersettings.json
@@ -6,7 +6,8 @@
"nl": "Een speciale lag die niet getoond wordt op de kaart, maar die de instellingen van de gebruiker weergeeft",
"pt": "Uma camada especial que não deve ser mostrada em um mapa, mas que é usada para definir as configurações do usuário",
"ca": "Una capa especial que no està pensada per mostrar-se en un mapa, però que s'utilitza per configurar la configuració de l'usuari",
- "cs": "Speciální vrstva, která není určena k zobrazení na mapě, ale slouží k nastavení uživatelských nastavení"
+ "cs": "Speciální vrstva, která není určena k zobrazení na mapě, ale slouží k nastavení uživatelských nastavení",
+ "uk": "Спеціальний шар, який не призначений для відображення на карті, але використовується для встановлення користувацьких налаштувань"
},
"source": "special",
"calculatedTags": [
@@ -28,7 +29,8 @@
"cs": "Nastavení",
"fi": "Asetukset",
"zh_Hant": "設定",
- "sl": "Nastavitve"
+ "sl": "Nastavitve",
+ "ru": "Настройки"
}
},
"pointRendering": null,
@@ -319,7 +321,8 @@
"en": "What accessibility features should be applied?",
"nl": "Wanneer moet de toegankelijkheidsmode ingeschakeld worden?",
"de": "Welche Barrierefrei-Funktionen sollen angewendet werden?",
- "da": "Hvilke tilgængelighedsfunktioner skal anvendes?"
+ "da": "Hvilke tilgængelighedsfunktioner skal anvendes?",
+ "uk": "Які елементи доступності слід застосовувати?"
},
"mappings": [
{
@@ -330,7 +333,9 @@
"ca": "Activar les funcions d'accessibilitat quan s'utilitzen les tecles de fletxa per navegar pel mapa",
"nl": "Schakel toegankelijkheidsmode aan wanneer op de pijltjestoetsen wordt geduwd om de kaart te bewegen",
"de": "Barrierefrei-Modus aktivieren, wenn Pfeiltasten zum Navigieren in der Karte verwendet werden",
- "da": "Aktiver tilgængelighedsfunktioner, når piletaster anvendes til at navigere i kortet"
+ "da": "Aktiver tilgængelighedsfunktioner, når piletaster anvendes til at navigere i kortet",
+ "cs": "Povolení funkcí přístupnosti při použití kláves se šipkami k navigaci na mapě",
+ "uk": "Увімкніть функції доступності, коли для навігації по карті використовуються клавіші зі стрілками"
}
},
{
@@ -340,7 +345,8 @@
"ca": "Sempre habilita les característiques d'accessibilitat",
"nl": "Schakel de toegankelijkheidsmode altijd aan",
"de": "Barrierefrei-Modus immer aktivieren",
- "da": "Aktiver altid tilgængelighedsfunktioner"
+ "da": "Aktiver altid tilgængelighedsfunktioner",
+ "uk": "Завжди вмикайте функції доступності"
}
},
{
@@ -349,7 +355,8 @@
"en": "Never enable accessibility features",
"nl": "Gebruik geen toegankelijkheidsmode",
"de": "Barrierefrei-Modus niemals aktivieren",
- "da": "Aktiver aldrig tilgængelighedsfunktioner"
+ "da": "Aktiver aldrig tilgængelighedsfunktioner",
+ "uk": "Ніколи не вмикайте функції доступності"
}
}
]
@@ -400,7 +407,8 @@
"cs": "Použití výchozí vrstvu pozadí",
"nl": "Gebruik de standaard achtergrondlaag",
"fr": "Utiliser le fond par défaut",
- "da": "Vis standardbaggrundslaget"
+ "da": "Vis standardbaggrundslaget",
+ "uk": "Використовуйте фоновий шар за замовчуванням"
}
},
{
@@ -415,7 +423,8 @@
"cs": "Použít OpenStreetMap-carto jako výchozí vrstvu",
"nl": "Gebruik OpenStreetMap-carto altijd als achtergrondlaag",
"fr": "Utiliser le fond OpenStreetMap-carto par défaut",
- "da": "Brug OpenStreetMap-carto som standardlag"
+ "da": "Brug OpenStreetMap-carto som standardlag",
+ "uk": "Використовувати OpenStreetMap-carto як шар за замовчуванням"
}
},
{
@@ -428,7 +437,8 @@
"cs": "Použít letecké snímky jako výchozí pozadí",
"nl": "Gebruik luchtfoto's als standaard achtergrondlaag",
"fr": "Utiliser le fond imagerie aérienne par défaut",
- "da": "Brug luftfoto som standardbaggrund"
+ "da": "Brug luftfoto som standardbaggrund",
+ "uk": "Використовувати аерофотознімки як фон за замовчуванням"
}
},
{
@@ -441,7 +451,8 @@
"cs": "Použití mapy, která není založena na mapě openstreetmap, jako výchozího pozadí",
"nl": "Gebruik altijd een kaart die niet op OpenStreetMap gebaseerd is als achtergrond",
"fr": "Utiliser un fond non basé sur OpenStreetMap par défaut",
- "da": "Brug et ikke-OpenSreetMap-baseret kort som standardbaggrund"
+ "da": "Brug et ikke-OpenSreetMap-baseret kort som standardbaggrund",
+ "uk": "Використовувати мапу на основі не-openstreetmap як фон за замовчуванням"
}
},
{
@@ -453,7 +464,8 @@
"cs": "Použít aktuální vrstvu pozadí ({__current_background}) jako výchozí pozadí",
"nl": "Gebruik altijd {__current_background} als achtergrondlaag. Dit is de huidige achtergrond.",
"fr": "Utiliser le fond actuel ({__current_background}) par défaut",
- "da": "Brug det nuværende baggrundslag ({__current_background}) som standardbaggrund"
+ "da": "Brug det nuværende baggrundslag ({__current_background}) som standardbaggrund",
+ "uk": "Використовувати поточний фоновий шар ({__current_background}) як фон за замовчуванням"
},
"hideInAnswer": {
"or": [
@@ -472,7 +484,8 @@
"cs": "Použít vrstvu pozadí {mapcomplete-preferred-background-layer} jako výchozí pozadí",
"nl": "Gebruik {mapcomplete-preferred-background-layer} altijd als achtergrondlaag",
"fr": "Utiliser le fond ({mapcomplete-preferred-background-layer})par défaut",
- "da": "Brug baggrundslaget {mapcomplete-preferred-background-layer} som standardbaggrund"
+ "da": "Brug baggrundslaget {mapcomplete-preferred-background-layer} som standardbaggrund",
+ "uk": "Використовувати фоновий шар {mapcomplete-preferred-background-layer} як фон за замовчуванням"
},
"hideInAnswer": true
}
@@ -558,7 +571,8 @@
"question": {
"en": "Should a scale bar be shown on the map?",
"nl": "Moet er een schaalbalk weergegeven worden?",
- "de": "Kartenmaßstab anzeigen?"
+ "de": "Kartenmaßstab anzeigen?",
+ "cs": "Má být na mapě zobrazeno měřítko?"
},
"mappings": [
{
@@ -575,7 +589,8 @@
"then": {
"en": "Hide the scalebar",
"nl": "Verberg de schaalbalk",
- "de": "Maßstab ausblenden"
+ "de": "Maßstab ausblenden",
+ "cs": "Skrytí panelu měřítka"
}
}
]
@@ -584,7 +599,8 @@
"id": "title-editing",
"render": {
"en": "Editing settings
",
- "de": " Einstellungen bearbeiten
"
+ "de": " Einstellungen bearbeiten
",
+ "cs": "Úprava nastavení
"
}
},
{
@@ -597,7 +613,8 @@
"ca": "Les preguntes amb camps de dades desconeguts haurien d'aparèixer una per una o juntes?",
"nl": "Moeten onbeantwoorde vragen om beurt of allemaal samen getoond worden?",
"cs": "Mají se otázky pro neznámá datová pole zobrazovat jednotlivě, nebo společně?",
- "da": "Skal spørgsmål for ukendte oplysninger vises ét ad gangen eller alle på én gang?"
+ "da": "Skal spørgsmål for ukendte oplysninger vises ét ad gangen eller alle på én gang?",
+ "uk": "Чи повинні питання для невідомих полів даних з'являтися по одному або разом?"
},
"mappings": [
{
@@ -610,7 +627,8 @@
"pt": "Mostrar todas as perguntas na caixa de informações juntas",
"nl": "Toon alle onbeantwoorde vragen",
"cs": "Zobrazit všechny otázky v infoboxu dohromady",
- "da": "Vis alle spørgsmål i infoboksen på én gang"
+ "da": "Vis alle spørgsmål i infoboksen på én gang",
+ "uk": "Показати всі питання в інфобокс разом"
}
},
{
@@ -623,7 +641,8 @@
"pt": "Mostrar perguntas uma a uma",
"nl": "Toon de vragen één per één",
"cs": "Zobrazit otázky jednu po druhé",
- "da": "Vis spørgsmål ét ad gangen"
+ "da": "Vis spørgsmål ét ad gangen",
+ "uk": "Показувати питання по черзі"
}
}
]
@@ -697,14 +716,16 @@
"id": "add-new-feature",
"question": {
"en": "How should the menu to add a new feature be opened?",
- "de": "Wie soll das Menü zum Hinzufügen eines neuen Objekts geöffnet werden?"
+ "de": "Wie soll das Menü zum Hinzufügen eines neuen Objekts geöffnet werden?",
+ "uk": "Як має відкриватися меню для додавання нового об'єкту?"
},
"mappings": [
{
"if": "mapcomplete-preferences-add-new-mode=button",
"then": {
"en": "Adding a new feature is done with the button at the bottom left. Clicking the map does nothing",
- "de": "Das Hinzufügen eines neuen Objekts erfolgt über die Schaltfläche unten links. Ein Klick auf die Karte bewirkt nichts"
+ "de": "Das Hinzufügen eines neuen Objekts erfolgt über die Schaltfläche unten links. Ein Klick auf die Karte bewirkt nichts",
+ "uk": "Додавання нового об'єкта здійснюється за допомогою кнопки внизу ліворуч. Клацання по карті нічого не робить"
}
},
{
@@ -712,28 +733,33 @@
"then": {
"en": "When clicking or tapping the map, a marker pops up where a new feature is added",
"de": "Wenn Sie auf die Karte klicken oder tippen, wird eine Markierung eingeblendet, an der ein neues Objekt hinzugefügt wird",
- "ca": "En fer clic o tocar el mapa, apareix un marcador on s'afegeix un element nou"
+ "ca": "En fer clic o tocar el mapa, apareix un marcador on s'afegeix un element nou",
+ "uk": "При натисканні або торканні мапи з'являється маркер, де додається новий об'єкт"
}
},
{
"if": "mapcomplete-preferences-add-new-mode=click_right",
"then": {
"en": "When right-clicking or long-pressing the map, a marker pops up where a new feature can be added",
- "de": "Beim Rechtsklick oder einem langen Druck auf die Karte erscheint eine Markierung, mit der ein neues Objekt hinzugefügt werden kann"
+ "de": "Beim Rechtsklick oder einem langen Druck auf die Karte erscheint eine Markierung, mit der ein neues Objekt hinzugefügt werden kann",
+ "uk": "При натисканні правою кнопкою миші або тривалому утриманні мапи з'являється маркер, де можна додати новий об'єкт"
}
},
{
"if": "mapcomplete-preferences-add-new-mode=button_click",
"then": {
"en": "When clicking or tapping the map, a marker pops up where a new feature can be added. Additionally, a button at the bottom left is shown",
- "de": "Beim Klicken oder Tippen auf die Karte wird eine Markierung eingeblendet, an der ein neues Objekt hinzugefügt werden kann. Zusätzlich wird unten links eine Schaltfläche angezeigt"
+ "de": "Beim Klicken oder Tippen auf die Karte wird eine Markierung eingeblendet, an der ein neues Objekt hinzugefügt werden kann. Zusätzlich wird unten links eine Schaltfläche angezeigt",
+ "uk": "При натисканні або торканні мапи з'являється маркер, де можна додати новий об'єкт. Крім того, внизу ліворуч відображається кнопка"
}
},
{
"if": "mapcomplete-preferences-add-new-mode=button_click_right",
"then": {
"en": "When right-clicking or long-pressing the map, a marker pops up where a new feature can be added. Additionally, a button at the bottom left is shown",
- "de": "Beim Rechtsklick oder einem langen Druck auf die Karte erscheint eine Markierung, an der ein neues Objekt hinzugefügt werden kann. Zusätzlich wird unten links eine Schaltfläche angezeigt"
+ "de": "Beim Rechtsklick oder einem langen Druck auf die Karte erscheint eine Markierung, an der ein neues Objekt hinzugefügt werden kann. Zusätzlich wird unten links eine Schaltfläche angezeigt",
+ "cs": "Po kliknutí pravým tlačítkem myši nebo dlouhém stisknutí mapy se zobrazí značka, kam lze přidat nový prvek. Kromě toho se vlevo dole zobrazí tlačítko",
+ "uk": "При натисканні правою кнопкою миші або тривалому утриманні на мапі з'являється маркер, куди можна додати новий об'єкт. Крім того, внизу ліворуч відображається кнопка"
}
}
]
@@ -742,7 +768,8 @@
"id": "title-privacy-legal",
"render": {
"en": "Privacy and legal
",
- "de": "Datenschutz und Rechtliches
"
+ "de": "Datenschutz und Rechtliches
",
+ "cs": "Soukromí a právní záležitosti
"
}
},
{
@@ -777,7 +804,8 @@
"then": {
"en": "When making changes to OpenStreetMap, do not indicate how far away you were from the changed objects.",
"de": "Wenn du Änderungen an OpenStreetMap vornimmst, gibst du nicht an, wie weit du von den geänderten Objekten entfernt warst.",
- "nl": "Geef niet aan hoever je je van de gewijzigde objecten bevindt wanneer je wijzigingen maakt met MapComplete."
+ "nl": "Geef niet aan hoever je je van de gewijzigde objecten bevindt wanneer je wijzigingen maakt met MapComplete.",
+ "cs": "Při provádění změn v OpenStreetMap neuvádějte, jak daleko jste byli od změněných objektů."
}
},
{
@@ -786,7 +814,8 @@
"then": {
"en": "When making changes to OpenStreetMap, roughly indicate how far away you were from the changed objects. This helps other contributors to understand how you made the change",
"de": "Gebe bei Änderungen an OpenStreetMap an, wie weit du ungefähr von den geänderten Objekten entfernt warst. Das hilft anderen Mitwirkenden zu verstehen, wie du die Änderung vorgenommen hast",
- "nl": "Geef aan hoever je je ongeveer bevindt ten opzichte van objecten die je wijzigt in OpenStreetMap. Dit helpt andere bijdagers te begrijpen welke wijzigingen je waarom maakt."
+ "nl": "Geef aan hoever je je ongeveer bevindt ten opzichte van objecten die je wijzigt in OpenStreetMap. Dit helpt andere bijdagers te begrijpen welke wijzigingen je waarom maakt.",
+ "cs": "Při provádění změn v OpenStreetMap zhruba uveďte, jak daleko jste byli od změněných objektů. To pomůže ostatním přispěvatelům pochopit, jak jste změnu provedli"
}
}
]
@@ -876,7 +905,8 @@
"alsoShowIf": "mapcomplete-preference-theme-history=",
"then": {
"en": "Save the visited thematic maps and sync them via openstreetmap.org. OpenStreetMap and all apps you use can see this history",
- "de": "Besuchte Themenkarten speichern und über opentreetmap.org synchronisieren. OpenStreetMap und alle verwendeten Programme können diesen Verlauf sehen"
+ "de": "Besuchte Themenkarten speichern und über opentreetmap.org synchronisieren. OpenStreetMap und alle verwendeten Programme können diesen Verlauf sehen",
+ "cs": "Uložit navštívené tematické mapy a synchronizovat je prostřednictvím openstreetmap.org. OpenStreetMap a všechny aplikace, které používáte, mohou tuto historii vidět"
}
},
{
diff --git a/assets/layers/veterinary/veterinary.json b/assets/layers/veterinary/veterinary.json
index 0da22a88d..635ba0fab 100644
--- a/assets/layers/veterinary/veterinary.json
+++ b/assets/layers/veterinary/veterinary.json
@@ -9,7 +9,8 @@
"fr": "vétérinaire",
"ca": "Veterinari",
"cs": "veterinář",
- "pl": "weterynaryjny"
+ "pl": "weterynaryjny",
+ "ru": "ветеринария"
},
"description": "A layer showing veterinarians",
"source": {
diff --git a/assets/layers/waste_basket/waste_basket.json b/assets/layers/waste_basket/waste_basket.json
index 8d4a11277..581ba25f6 100644
--- a/assets/layers/waste_basket/waste_basket.json
+++ b/assets/layers/waste_basket/waste_basket.json
@@ -133,7 +133,8 @@
"da": "En affaldskurv til almindeligt affald",
"fr": "Une poubelle pour tout type d'ordures",
"ca": "Una paperera per a residus generals",
- "cs": "Odpadkový koš na běžný odpad"
+ "cs": "Odpadkový koš na běžný odpad",
+ "ru": "Корзина для общих отходов"
}
},
{
@@ -147,7 +148,8 @@
"da": "En affaldskurv til hundeekskrementer",
"fr": "Une poubelle pour déjections canines",
"ca": "Una paperera per a excrements de gossos",
- "cs": "Odpadkový koš na psí exkrementy"
+ "cs": "Odpadkový koš na psí exkrementy",
+ "ru": "Корзина для собачьих экскрементов"
}
},
{
@@ -161,7 +163,8 @@
"da": "En affaldskurv til cigaretter",
"fr": "Une poubelle pour mégots",
"ca": "Una paperera per a cigarrets",
- "cs": "Odpadkový koš na cigarety"
+ "cs": "Odpadkový koš na cigarety",
+ "ru": "Корзина для сигарет"
}
},
{
@@ -175,7 +178,8 @@
"da": "En affaldskurv til stoffer",
"ca": "Una paperera per a medicaments",
"fr": "Une poubelle pour médicaments",
- "cs": "Odpadkový koš na léky"
+ "cs": "Odpadkový koš na léky",
+ "ru": "Корзина для наркотиков"
}
},
{
@@ -189,7 +193,8 @@
"da": "En affaldskurv til nåle og andre skarpe genstande",
"fr": "Une poubelle pour aiguilles et autres objets tranchants",
"ca": "Una paperera per a agulles i altres objectes punxants",
- "cs": "Odpadkový koš na jehly a jiné ostré předměty"
+ "cs": "Odpadkový koš na jehly a jiné ostré předměty",
+ "ru": "Корзина для иголок и других острых предметов"
}
},
{
@@ -203,7 +208,8 @@
"da": "En affaldskurv til plast",
"fr": "Une poubelle pour plastiques",
"ca": "Una paperera per a plàstic",
- "cs": "Odpadkový koš na plasty"
+ "cs": "Odpadkový koš na plasty",
+ "ru": "Корзина для пластика"
}
},
{
@@ -211,7 +217,8 @@
"then": {
"en": "A waste basket for plastic packaging, metal packaging and drink cartons (PMD)",
"nl": "Een vuilnisbak voor plastic verpakkingen, metalen verpakkingen en drankpakken (PMD)",
- "de": "Ein Papierkorb für Kunststoffverpackungen, Metallverpackungen und Getränkekartons (Tetrapak)"
+ "de": "Ein Papierkorb für Kunststoffverpackungen, Metallverpackungen und Getränkekartons (Tetrapak)",
+ "ru": "Корзина для пластиковой упаковки, металлической упаковки и картонной упаковки из-под напитков (PMD)"
}
},
{
@@ -225,7 +232,8 @@
"da": "En affaldskurv til papir",
"fr": "Une poubelle pour papier",
"ca": "Una paperera per a paper",
- "cs": "Odpadový koš na papír"
+ "cs": "Odpadový koš na papír",
+ "ru": "Корзина для бумаг"
}
}
]
@@ -438,7 +446,8 @@
"da": "Affaldskurv med dispenser til poser til (hunde)ekskrementer",
"ca": "Papereres amb dispensador de bosses d'excrements (per a gossos)",
"fr": "Poubelle avec distributeur de sacs pour ramasser les déjections canines",
- "cs": "Odpadkový koš se zásobníkem na sáčky na (psí) exkrementy"
+ "cs": "Odpadkový koš se zásobníkem na sáčky na (psí) exkrementy",
+ "ru": "Корзина для мусора с дозатором для пакетов (собачьих) экскрементов"
},
"osmTags": "vending=dog_excrement_bag"
}
diff --git a/assets/themes/advertising/advertising.json b/assets/themes/advertising/advertising.json
index 979dc9448..840978c9a 100644
--- a/assets/themes/advertising/advertising.json
+++ b/assets/themes/advertising/advertising.json
@@ -13,7 +13,9 @@
"pl": "Reklamy",
"it": "Pubblicità",
"da": "Reklamer",
- "zh_Hans": "广告"
+ "zh_Hans": "广告",
+ "ru": "Реклама",
+ "uk": "Реклама"
},
"description": {
"ca": "Alguna vegada t'has preguntat quanta publictat hi ha als nostres carrers i carreteres? Amb aquest mapa podràs trobar i afegir informació de tots els elements publictaris que t'hi trobes pel carrer",
@@ -29,7 +31,8 @@
"pl": "Czy zastanawiałeś się kiedyś, ile reklam jest na naszych ulicach i drogach? Dzięki tej mapie możesz znaleźć i dodać informacje o wszystkich funkcjach reklamowych, które możesz znaleźć na ulicy",
"pt": "Já se perguntou quantas propagandas existem nas nossas ruas e estradas? Com este mapa pode encontrar e adicionar informações sobre todos os recursos de publicidade que pode encontrar na rua",
"it": "Vi siete mai chiesti quante pubblicità ci sono nelle nostre strade e strade? Con questa mappa è possibile trovare e aggiungere informazioni su tutte le caratteristiche pubblicitarie che si possono trovare sulla strada",
- "zh_Hans": "你是否曾经想过我们的街道和道路上有多少广告?通过这张地图,你可以查找并添加有关街道上所有广告特征的信息"
+ "zh_Hans": "你是否曾经想过我们的街道和道路上有多少广告?通过这张地图,你可以查找并添加有关街道上所有广告特征的信息",
+ "uk": "Ви коли-небудь замислювалися над тим, скільки реклами знаходиться на наших вулицях і дорогах? За допомогою цієї карти ви можете знайти та додати інформацію про всі рекламні об'єкти, які ви можете знайти на вулиці"
},
"shortDescription": {
"ca": "On puc trobar elements publicitaris?",
@@ -42,7 +45,8 @@
"zh_Hant": "我能夠在那裡找到廣告物件?",
"eu": "Non aurki ditzaket publizitate ezaugarriak?",
"pl": "Gdzie mogę znaleźć obiekty reklamowe?",
- "zh_Hans": "我可以在哪里找到广告功能?"
+ "zh_Hans": "我可以在哪里找到广告功能?",
+ "uk": "Де я можу знайти рекламні об'єкти?"
},
"icon": "./assets/themes/advertising/icon.svg",
"credits": [
diff --git a/assets/themes/aed/aed.json b/assets/themes/aed/aed.json
index ba4f7f76b..f7775f7b1 100644
--- a/assets/themes/aed/aed.json
+++ b/assets/themes/aed/aed.json
@@ -23,7 +23,8 @@
"da": "Hjertestartere",
"cs": "Defibrilátory",
"zgh": "ⴽⵛⵎ ⵖⵔ ⵜⴽⴰⵕⴹⴰ ⵏ AED",
- "eu": "Desfibriladoreak"
+ "eu": "Desfibriladoreak",
+ "uk": "Дефібрилятори"
},
"description": {
"en": "On this map, one can find and mark nearby defibrillators",
@@ -49,7 +50,8 @@
"cs": "Na této mapě lze najít a označit defibrilátory v okolí",
"zgh": "ⴳ ⵜⴽⴰⵕⴹⴰ ⴰⴷ, ⵉⵣⵎⵔⵏ ⵓⴼⴳⴰⵏ ⴰⴷ ⵢⴰⴼ ⵓⵎⵍⴰⵏ ⵅⴼ ⵡⴰⵍⵍⴰⵍⵏ ⵏ ⵜⵓⴽⴽⵙⴰ ⵏ ⵜⵔⴳⴰⴳⴰⵢⵜ",
"eu": "Mapa honetan, hurbileko desfibriladoreak aurkitu eta marka daitezke",
- "pt": "Neste mapa, pode-se encontrar e marcar desfibriladores próximos"
+ "pt": "Neste mapa, pode-se encontrar e marcar desfibriladores próximos",
+ "uk": "На цій карті можна знайти та позначити найближчі дефібрилятори"
},
"icon": "./assets/themes/aed/aed.svg",
"startZoom": 12,
diff --git a/assets/themes/artwork/artwork.json b/assets/themes/artwork/artwork.json
index 3188a1bdd..03b0e777b 100644
--- a/assets/themes/artwork/artwork.json
+++ b/assets/themes/artwork/artwork.json
@@ -22,7 +22,8 @@
"pa_PK": "آزاد کلاکاری نقشہ",
"zgh": "ⵕⵥⵎ ⵜⴰⴽⴰⵕⴹⴰ ⵏ ⵜⵡⵓⵔⵉ ⵜⴰⵏⴰⵥⵓⵕⵜ",
"es": "Obras de arte",
- "eu": "Artelanak"
+ "eu": "Artelanak",
+ "uk": "Витвір мистецтва"
},
"description": {
"en": "An open map of statues, busts, graffitis and other artwork all over the world",
@@ -46,7 +47,8 @@
"zgh": "ⵢⴰⵜ ⵜⴽⴰⵕⴹⴰ ⵉⵕⵥⵎⵏ ⵅⴼ ⵉⵙⴼⵔⵉⵙⵏ, ⵉⵖⵔⴰⵙⵏ ⴷ ⵜⵡⵓⵔⵉⵡⵉⵏ ⵜⵉⵏⴰⵥⵓⵕⵉⵏ ⵢⴰⴹⵏⵉⵏ ⴳ ⵓⵎⴰⴹⴰⵍ",
"eu": "Estatuen, bustoen, graffitien eta mundu osoko beste artelan batzuen mapa irekia",
"pt_BR": "Um mapa aberto de estátuas, bustos, grafites e outras obras de arte em todo o mundo",
- "pt": "Um mapa aberto de estátuas, bustos, grafites e outras obras de arte em todo o mundo"
+ "pt": "Um mapa aberto de estátuas, bustos, grafites e outras obras de arte em todo o mundo",
+ "uk": "Відкрита карта статуй, бюстів, графіті та інших творів мистецтва по всьому світу"
},
"icon": "./assets/themes/artwork/artwork.svg",
"startZoom": 12,
diff --git a/assets/themes/atm/atm.json b/assets/themes/atm/atm.json
index 9b82fae42..7b4695fcb 100644
--- a/assets/themes/atm/atm.json
+++ b/assets/themes/atm/atm.json
@@ -16,7 +16,8 @@
"it": "Sportelli bancomat",
"pl": "Bankomaty",
"da": "Hæveautomater",
- "zh_Hans": "自动取款机"
+ "zh_Hans": "自动取款机",
+ "uk": "Банкомати"
},
"description": {
"en": "This map shows ATMs to withdraw or deposit money",
@@ -33,7 +34,8 @@
"it": "Questa mappa mostra gli sportelli Bancomat per ritirare o depositare del denaro",
"pl": "Ta mapa pokazuje bankomaty, w których można wypłacać lub wpłacać pieniądze",
"da": "Dette kort viser hæveautomater, hvor du kan hæve og indsætte kontanter",
- "zh_Hans": "这张地图显示了可以取款或存款的自动取款机"
+ "zh_Hans": "这张地图显示了可以取款或存款的自动取款机",
+ "uk": "На цій карті показані банкомати, де можна зняти або поповнити рахунок"
},
"icon": "./assets/themes/atm/logo.svg",
"layers": [
@@ -102,7 +104,8 @@
"pl": "Importuj ten bankomat",
"cs": "Importovat tento bankomat",
"da": "Importer denne hæveautomat",
- "zh_Hans": "导入这个ATM"
+ "zh_Hans": "导入这个ATM",
+ "uk": "Імпортувати цей банкомат"
},
"icon": "./assets/svg/addSmall.svg"
}
@@ -120,7 +123,8 @@
"pl": "OpenStreetMap wie o bankomacie oddalonym o {_closest_osm_poi_distance} metry. ",
"nl": "OpenStreetMap kent een geldautomaat die {_closest_osm_poi_distance} meter weg is ",
"da": "OpenStreetMap kender en hæveautomatet, som ligger {_closest_osm_poi_distance} meter væk. ",
- "zh_Hans": "OpenStreetMap 知道有一个自动取款机,它距离你 {_closest_osm_poi_distance} 米。 "
+ "zh_Hans": "OpenStreetMap 知道有一个自动取款机,它距离你 {_closest_osm_poi_distance} 米。 ",
+ "uk": "OpenStreetMap знає про банкомат, що знаходиться за {_closest_osm_poi_distance} метрів від нього. "
}
},
{
@@ -142,7 +146,8 @@
"cs": "Přidání všech navrhovaných značek do nejbližšího bankomatu",
"nl": "Voeg alle gesuggereerde tags toe aan de dichtstbijzijnde geldautomaat",
"da": "Tilføj alle foreslåede tags til den nærmeste hæveautomat",
- "zh_Hans": "将所有建议的标签添加到距离最近的自动取款机"
+ "zh_Hans": "将所有建议的标签添加到距离最近的自动取款机",
+ "uk": "Додайте всі запропоновані теги до найближчого банкомату"
},
"image": "./assets/svg/addSmall.svg",
"maproulette_id": "mr_taskId"
diff --git a/assets/themes/bag/bag.json b/assets/themes/bag/bag.json
index 274f86d13..0af44dc15 100644
--- a/assets/themes/bag/bag.json
+++ b/assets/themes/bag/bag.json
@@ -11,7 +11,8 @@
"cs": "Pomocník pro import BAG",
"zh_Hant": "BAG 匯入助手",
"pl": "Pomocnik importowy BAG",
- "zh_Hans": "BAG 导入助手"
+ "zh_Hans": "BAG 导入助手",
+ "uk": "Помічник з імпорту BAG"
},
"description": {
"nl": "Dit thema helpt het importeren van BAG data",
@@ -24,7 +25,8 @@
"es": "Este tema ayuda a importar datos de BAG",
"eu": "Gai honek BAGeko datuak inportatzen laguntzen du",
"pl": "Motyw ten pomaga w importowaniu danych z BAG",
- "zh_Hans": "这个主题帮助导入来自BAG的数据"
+ "zh_Hans": "这个主题帮助导入来自BAG的数据",
+ "uk": "Ця тема допомагає імпортувати дані з BAG"
},
"shortDescription": {
"nl": "BAG import helper tool",
@@ -36,7 +38,8 @@
"cs": "Pomocný nástroj pro import BAG",
"eu": "BAGak inportatzen laguntzeko tresna",
"pl": "Narzędzie wspomagające import BAG",
- "zh_Hans": "BAG 导入辅助工具"
+ "zh_Hans": "BAG 导入辅助工具",
+ "uk": "Допоміжний інструмент для імпорту BAG"
},
"icon": "./assets/themes/bag/logo.svg",
"startZoom": 9,
@@ -74,7 +77,8 @@
"cs": "Reference v BAG je {ref:bag}",
"pl": "Numer referencyjny w BAG to {ref:bag}",
"zh_Hans": "在 BAG 中的参考是 {ref:bag}",
- "fil": "Ang sanggunian sa BAG ay {ref:bag}"
+ "fil": "Ang sanggunian sa BAG ay {ref:bag}",
+ "uk": "Посилання у BAG має вигляд {ref:bag}"
},
"mappings": [
{
@@ -90,7 +94,8 @@
"es": "Este edificio no tiene referencia en el BAG",
"pl": "Budynek ten nie ma odniesienia w BAG",
"zh_Hans": "这栋建筑在BAG中没有参考信息",
- "fil": "Walang sanggunian ang gusaling ito sa BAG"
+ "fil": "Walang sanggunian ang gusaling ito sa BAG",
+ "uk": "Ця будівля не має жодної згадки в Базі даних"
}
}
]
@@ -208,7 +213,8 @@
"cs": "Budovy z registru BAG",
"pl": "Budynki z rejestru BAG",
"zh_Hans": "BAG 注册中的建筑物",
- "fil": "Mga gusali mula sa rehistro ng BAG"
+ "fil": "Mga gusali mula sa rehistro ng BAG",
+ "uk": "Будівлі з реєстру BAG"
},
"source": {
"geoJson": "https://service.pdok.nl/lv/bag/wfs/v2_0?request=GetFeature&service=WFS&version=2.0.0&outputFormat=application%2Fjson%3B%20subtype%3Dgeojson&typeName=bag%3Apand&bbox={x_min}%2C{y_min}%2C{x_max}%2C{y_max}%2CCRS84&srsName=EPSG%3A4326",
@@ -264,7 +270,8 @@
"nb_NO": "Har ikke regnet ut riktige verdier enda. Gjenoppfrisk siden.",
"es": "Aún no se han calculado los valores correctos. Actualice esta página",
"pl": "Jeszcze nie obliczono poprawnych wartości. Odśwież tę stronę",
- "zh_Hans": "尚未计算出正确的值。请刷新此页面"
+ "zh_Hans": "尚未计算出正确的值。请刷新此页面",
+ "uk": "Ще не розрахували правильні значення. Оновіть цю сторінку"
}
},
{
@@ -295,7 +302,8 @@
"cs": "Reference v BAG je {_bag_obj:ref:bag}",
"pl": "Odniesienie w BAG to {_bag_obj:ref:bag}",
"zh_Hans": "在 BAG 中的参考文献是 {_bag_obj:ref:bag}",
- "fil": "Ang sanggunian sa BAG ay {_bag_obj:ref:bag}"
+ "fil": "Ang sanggunian sa BAG ay {_bag_obj:ref:bag}",
+ "uk": "Посилання у BAG має вигляд {_bag_obj:ref:bag}"
}
},
{
@@ -313,7 +321,8 @@
"pl": "Ten budynek zbudowano w {_bag_obj:start_date}",
"pt": "Esta construção é de {_bag_obj:start_date}",
"zh_Hans": "这座建筑建于 {_bag_obj:start_date}",
- "fil": "Ang gusaling ito ay itinayo noong {_bag_obj:start_date}"
+ "fil": "Ang gusaling ito ay itinayo noong {_bag_obj:start_date}",
+ "uk": "Ця будівля була побудована у {_bag_obj:start_date}"
},
"mappings": [
{
@@ -329,7 +338,8 @@
"es": "Este edificio se empezó a construir en {_bag_obj:start_date}",
"pl": "Budynek został zbudowany w {_bag_obj:start_date}",
"zh_Hans": "该建筑始建于 {_bag_obj:start_date}",
- "fil": "Sinimulan ang gusali noong {_bag_obj:start_date}"
+ "fil": "Sinimulan ang gusali noong {_bag_obj:start_date}",
+ "uk": "Будівництво було розпочато у {_bag_obj:start_date}"
}
}
]
@@ -347,7 +357,8 @@
"es": "El edificio es de tipo {_bag_obj:building}",
"pl": "Rodzaj budynku to {_bag_obj:building}",
"zh_Hans": "建筑类型是 {_bag_obj:building}",
- "fil": "Ang uri ng gusali ay {_bag_obj:building}"
+ "fil": "Ang uri ng gusali ay {_bag_obj:building}",
+ "uk": "Тип будівлі - {_bag_obj:building}"
},
"mappings": [
{
@@ -362,7 +373,8 @@
"es": "El tipo de edificio será un {_bag_obj:construction}",
"pl": "Budynek będzie o typie {_bag_obj:construction}",
"zh_Hans": "建筑类型将是 {_bag_obj:construction}",
- "fil": "Ang uri ng gusali ay magiging {_bag_obj:construction}"
+ "fil": "Ang uri ng gusali ay magiging {_bag_obj:construction}",
+ "uk": "Типом будівлі буде {_bag_obj:construction}"
}
}
]
diff --git a/assets/themes/benches/benches.json b/assets/themes/benches/benches.json
index f3e45b8d1..e517e748f 100644
--- a/assets/themes/benches/benches.json
+++ b/assets/themes/benches/benches.json
@@ -22,7 +22,8 @@
"eu": "Eserlekuak",
"pl": "Ławki",
"pt": "Bancadas",
- "fil": "Mga upuan"
+ "fil": "Mga upuan",
+ "uk": "Лавки"
},
"description": {
"en": "This map shows all benches that are recorded in OpenStreetMap: Individual benches, and benches belonging to public transport stops or shelters.",
@@ -41,7 +42,8 @@
"cs": "Tato mapa zobrazuje všechny lavičky, které jsou zaznamenány v OpenStreetMap: samostatné lavičky a lavičky patřící k zastávkám veřejné dopravy nebo přístřeškům.",
"eu": "OpenStreetMap-en erregistratzen diren banku guztiak erakusten ditu mapa honek: garraio publikoko geralekuetako edo babeslekuetako banakako bankuak eta bankuak.",
"pl": "Mapa ta pokazuje wszystkie ławki zarejestrowane w OpenStreetMap: ławki indywidualne oraz ławki należące do przystanków komunikacji miejskiej lub wiat.",
- "zh_Hans": "这张地图显示了所有记录在 OpenStreetMap 中的长椅:包括独立长椅和属于公共交通站点或候车亭的长椅。"
+ "zh_Hans": "这张地图显示了所有记录在 OpenStreetMap 中的长椅:包括独立长椅和属于公共交通站点或候车亭的长椅。",
+ "uk": "На цій карті показані всі лавки, які зафіксовані в OpenStreetMap: Окремі лавки та лавки, що належать до зупинок громадського транспорту або притулків."
},
"shortDescription": {
"en": "A map of benches",
@@ -64,7 +66,8 @@
"eu": "Eserleku mapa bat",
"pl": "Mapa ławek",
"pt": "Um mapa de bancadas",
- "fil": "Mapa ng upuan"
+ "fil": "Mapa ng upuan",
+ "uk": "Карта лавок"
},
"icon": "./assets/themes/benches/bench_poi.svg",
"credits": [
diff --git a/assets/themes/bicycle_parkings/bicycle_parkings.json b/assets/themes/bicycle_parkings/bicycle_parkings.json
index 0368d82c4..d2be5e3e5 100644
--- a/assets/themes/bicycle_parkings/bicycle_parkings.json
+++ b/assets/themes/bicycle_parkings/bicycle_parkings.json
@@ -11,7 +11,9 @@
"zh_Hans": "自行车停车场",
"it": "Parcheggi per biciclette",
"fil": "Mga paradahan ng bisikleta",
- "cs": "Parkování jízdních kol"
+ "cs": "Parkování jízdních kol",
+ "ru": "Велопарковки",
+ "uk": "Велопарковки"
},
"description": {
"en": "A map showing all types of bicycle parkings",
@@ -21,7 +23,8 @@
"it": "Una mappa che mostra tutti i tipi di parcheggi per biciclette",
"fil": "Mapa na nagpapakita ng lahat ng uri ng paradahan ng bisikleta",
"ca": "Un mapa que mostra tots els tipus d'aparcaments de bicicletes",
- "cs": "Mapa všech typů parkovišť pro jízdní kola"
+ "cs": "Mapa všech typů parkovišť pro jízdní kola",
+ "uk": "Карта, що показує всі типи велосипедних парковок"
},
"icon": "./assets/themes/bicycle_parkings/logo.svg",
"layers": [
diff --git a/assets/themes/bicycle_rental/bicycle_rental.json b/assets/themes/bicycle_rental/bicycle_rental.json
index a567c8d79..308bb11e9 100644
--- a/assets/themes/bicycle_rental/bicycle_rental.json
+++ b/assets/themes/bicycle_rental/bicycle_rental.json
@@ -16,7 +16,9 @@
"eu": "Bizikleta alokairua",
"pl": "Wypożyczanie rowerów",
"zh_Hans": "自行车租赁",
- "it": "Noleggio biciclette"
+ "it": "Noleggio biciclette",
+ "ru": "Прокат велосипедов",
+ "uk": "Прокат велосипедів"
},
"description": {
"en": "On this map, you'll find the many bicycle rental stations as they are known by OpenStreetMap",
@@ -31,7 +33,8 @@
"eu": "Mapa honetan aurkituko dituzu bizikletak alokatzeko OpenStreetMap-ek ezagutzen dituen estazio ugari",
"it": "In questa mappa trovi i luoghi conosciuti da OpenStreetMap dove puoi noleggiare delle biciclette",
"pl": "Na tej mapie znajdziesz wiele stacji wynajmu rowerów, znanych w OpenStreetMap",
- "zh_Hans": "在这张地图上,你可以找到许多由 OpenStreetMap 记录的自行车租赁站点"
+ "zh_Hans": "在这张地图上,你可以找到许多由 OpenStreetMap 记录的自行车租赁站点",
+ "uk": "На цій карті ви знайдете багато станцій прокату велосипедів, що є на OpenStreetMap"
},
"shortDescription": {
"en": "A map with bicycle rental stations and bicycle rental shops",
@@ -47,7 +50,8 @@
"eu": "Bizikletak alokatzeko estazioen eta bizikletak alokatzeko denden mapa",
"pl": "Mapa ze stacjami wypożyczania rowerów i wypożyczalniami rowerów",
"zh_Hans": "一张包含自行车租赁站点和自行车租赁商店的地图",
- "it": "Una mappa con le stazioni e i negozi per il noleggio delle biciclette"
+ "it": "Una mappa con le stazioni e i negozi per il noleggio delle biciclette",
+ "uk": "Карта зі станціями та пунктами прокату велосипедів"
},
"icon": "./assets/themes/bicycle_rental/logo.svg",
"layers": [
diff --git a/assets/themes/bicyclelib/bicyclelib.json b/assets/themes/bicyclelib/bicyclelib.json
index 7184d3612..bb9d6a212 100644
--- a/assets/themes/bicyclelib/bicyclelib.json
+++ b/assets/themes/bicyclelib/bicyclelib.json
@@ -21,7 +21,8 @@
"es": "Bibliotecas de bicicletas",
"eu": "Bizikleta liburutegia",
"pt": "Bibliotecas de bicicletas",
- "zh_Hans": "自行车图书馆"
+ "zh_Hans": "自行车图书馆",
+ "uk": "Велобібліотеки"
},
"description": {
"nl": "Een fietsbibliotheek is een plaats waar men een fiets kan lenen, vaak voor een klein bedrag per jaar. Een typisch voorbeeld zijn kinderfietsbibliotheken, waar men een fiets op maat van het kind kan lenen. Is het kind de fiets ontgroeid, dan kan het te kleine fietsje omgeruild worden voor een grotere.",
@@ -40,7 +41,8 @@
"es": "Una biblioteca de bicicletas es un lugar donde se prestan bicicletas, a menudo por una pequeña cuota anual. Un caso de uso notable son las bibliotecas de bicicletas para niños, que les permiten cambiar por una bicicleta más grande cuando les queda pequeña",
"eu": "Bizikletak uzteko lekua da bizikleta-liburutegia, askotan urteko kuota txiki baten truke. Kasu aipagarri bat haurrentzako bizikleta-liburutegiak dira, egungo bizikleta gainditu dutenean bizikleta handiago baterako aldatzeko aukera ematen dietenak",
"pl": "Biblioteka rowerowa to miejsce, w którym można wypożyczyć rowery, często za niewielką opłatą roczną. Godnym uwagi przypadkiem zastosowania są biblioteki rowerowe dla dzieci, które pozwalają im zmienić rower na większy, gdy wyrosną z obecnego roweru",
- "zh_Hans": "自行车图书馆是一个可以借用自行车的地方,通常需要支付小额的年度费用。一个显著的使用场景是儿童自行车图书馆,这允许孩子们在长大后更换成更大的自行车"
+ "zh_Hans": "自行车图书馆是一个可以借用自行车的地方,通常需要支付小额的年度费用。一个显著的使用场景是儿童自行车图书馆,这允许孩子们在长大后更换成更大的自行车",
+ "uk": "Велобібліотека - це місце, де можна взяти велосипед напрокат, часто за невелику річну плату. Особливий випадок використання - велосипедні бібліотеки для дітей, які дозволяють їм пересісти на більший велосипед, коли вони виростуть зі свого нинішнього"
},
"icon": "./assets/themes/bicyclelib/logo.svg",
"layers": [
diff --git a/assets/themes/binoculars/binoculars.json b/assets/themes/binoculars/binoculars.json
index de754ea26..95e5d7422 100644
--- a/assets/themes/binoculars/binoculars.json
+++ b/assets/themes/binoculars/binoculars.json
@@ -16,7 +16,9 @@
"cs": "Dalekohledy",
"eu": "Binokularrak",
"pl": "Lornetki",
- "zh_Hans": "望远镜"
+ "zh_Hans": "望远镜",
+ "ru": "Бинокли",
+ "uk": "Біноклі"
},
"description": {
"en": "A map with binoculars fixed in place with a pole. It can typically be found on touristic locations, viewpoints, on top of panoramic towers or occasionally on a nature reserve.",
@@ -33,7 +35,8 @@
"cs": "Mapa s dalekohledem upevněným na místě pomocí tyče. Obvykle se nachází na turistických místech, rozhlednách, vrcholech panoramatických věží nebo příležitostně v přírodních rezervacích.",
"eu": "Zutoin batean prismatiko finkoak dituen mapa. Leku turistikoetan, begiratokietan, dorre panoramikoen gainean edo, batzuetan, erreserba natural batean egoten da.",
"pl": "Mapa z lornetkami zamocowanymi na słupku. Zwykle można je odnaleźć w lokalizacjach turystycznych, punktach widokowych, na szczytach wież panoramicznych lub czasami w rezerwacie przyrody.",
- "zh_Hans": "一张显示固定在杆子上的望远镜的地图。这种望远镜通常可以在旅游景点、观景点、全景塔顶部或偶尔在自然保护区找到。"
+ "zh_Hans": "一张显示固定在杆子上的望远镜的地图。这种望远镜通常可以在旅游景点、观景点、全景塔顶部或偶尔在自然保护区找到。",
+ "uk": "Карта з біноклем, закріплена на місці за допомогою жердини. Зазвичай її можна знайти в туристичних місцях, на оглядових майданчиках, на вершинах панорамних веж або іноді в природних заповідниках."
},
"shortDescription": {
"en": "A map with fixed binoculars",
@@ -50,7 +53,8 @@
"cs": "Mapa s pevnými dalekohledy",
"eu": "Prismatiko finkoak dituen mapa",
"pl": "Mapa ze stałymi lornetkami",
- "zh_Hans": "一张显示固定望远镜的地图"
+ "zh_Hans": "一张显示固定望远镜的地图",
+ "uk": "Карта з фіксованими біноклями"
},
"icon": "./assets/layers/binocular/telescope.svg",
"layers": [
diff --git a/assets/themes/blind_osm/blind_osm.json b/assets/themes/blind_osm/blind_osm.json
index 859aa5dec..5c0393f3e 100644
--- a/assets/themes/blind_osm/blind_osm.json
+++ b/assets/themes/blind_osm/blind_osm.json
@@ -15,7 +15,8 @@
"pl": "OSM dla niewidomych",
"da": "OSM for blinde",
"zh_Hans": "为盲人设计的OSM",
- "fil": "OSM para sa mga bulag"
+ "fil": "OSM para sa mga bulag",
+ "uk": "OSM для незрячих"
},
"description": {
"en": "Help to map features relevant for the blind",
@@ -29,7 +30,8 @@
"eu": "Itsuentzako elementu garrantzitsuak kartografiatzeko laguntza",
"it": "Aiuta a mappare le caratteristiche importanti per i non vedenti",
"pl": "Pomóż umieszczać na mapie obiekty ważne dla niewidomych",
- "zh_Hans": "帮助绘制与盲人相关的设施"
+ "zh_Hans": "帮助绘制与盲人相关的设施",
+ "uk": "Допоможіть нанести на карту об'єкти, важливі для незрячих"
},
"icon": "./assets/themes/blind_osm/Blindicon.svg",
"startZoom": 20,
diff --git a/assets/themes/bookcases/bookcases.json b/assets/themes/bookcases/bookcases.json
index d2a923292..728703a7f 100644
--- a/assets/themes/bookcases/bookcases.json
+++ b/assets/themes/bookcases/bookcases.json
@@ -19,7 +19,8 @@
"eu": "Apalategi publikoak",
"pl": "Publiczne regały na książki",
"da": "Bogbytteskabe",
- "zh_Hans": "公共书柜"
+ "zh_Hans": "公共书柜",
+ "uk": "Публічні книжкові шафи"
},
"description": {
"en": "A public bookcase is a small streetside cabinet, box, old phone booth or some other objects where books are stored. Everyone can place or take a book. This map aims to collect all these bookcases.",
@@ -37,7 +38,8 @@
"cs": "Veřejná knihovna je malá pouliční skříňka, krabice, stará telefonní budka nebo jiný předmět, ve kterém jsou uloženy knihy. Kdokoliv do ní může umístit, nebo si z ní vzít knihu. Cílem této mapy je shromáždit všechny tyto knihovny.",
"eu": "Kale-liburutegi publiko bat kale-armairu txiki bat da, kaxa, telefono-kabina zaharra edo liburuak gordetzeko beste objektu batzuk. Guztiek jar edo har dezakete liburu bat. Koaderno horiek guztiak biltzea da mapa honen helburua.",
"pl": "Publiczny regał na książki to mała przyuliczna szafka, pudełko, stara budka telefoniczna lub inne przedmioty, w których przechowywane są książki. Każdy może w nich zostawić lub zabrać książkę. Celem tej mapy jest zebranie wszystkich tych regałów.",
- "zh_Hans": "公共书柜是一个小型街边橱柜、盒子、旧电话亭或其他储存书籍的物品。任何人都可以放置或取走一本书。这张地图旨在收集所有这些书柜。"
+ "zh_Hans": "公共书柜是一个小型街边橱柜、盒子、旧电话亭或其他储存书籍的物品。任何人都可以放置或取走一本书。这张地图旨在收集所有这些书柜。",
+ "uk": "Публічна книжкова шафа - це невелика вулична шафа, ящик, стара телефонна будка або інший об'єкт, де зберігаються книги. Будь-хто може покласти або взяти книгу. Ця мапа має на меті зібрати всі ці книжкові шафи."
},
"icon": "./assets/themes/bookcases/bookcase.svg",
"layers": [
diff --git a/assets/themes/cafes_and_pubs/cafes_and_pubs.json b/assets/themes/cafes_and_pubs/cafes_and_pubs.json
index 46d05775f..5b9e10d5b 100644
--- a/assets/themes/cafes_and_pubs/cafes_and_pubs.json
+++ b/assets/themes/cafes_and_pubs/cafes_and_pubs.json
@@ -18,7 +18,8 @@
"cs": "Kavárny a hospody",
"eu": "Kafetegiak eta pubak",
"pl": "Kawiarnie i puby",
- "zh_Hans": "咖啡馆和酒吧"
+ "zh_Hans": "咖啡馆和酒吧",
+ "uk": "Кафе та паби"
},
"description": {
"en": "Coffeehouses, pubs and bars",
@@ -35,7 +36,8 @@
"zh_Hant": "咖啡廳、俱樂部與酒吧",
"eu": "Kafetegiak, pubak eta tabernak",
"pl": "Kawiarnie, puby i bary",
- "zh_Hans": "咖啡馆、酒吧和酒吧"
+ "zh_Hans": "咖啡馆、酒吧和酒吧",
+ "uk": "Кав'ярні, паби та бари"
},
"icon": "./assets/layers/cafe_pub/pub.svg",
"layers": [
diff --git a/assets/themes/campersite/campersite.json b/assets/themes/campersite/campersite.json
index c9749e3b8..8fe316bcb 100644
--- a/assets/themes/campersite/campersite.json
+++ b/assets/themes/campersite/campersite.json
@@ -17,7 +17,8 @@
"pa_PK": "کیمپسایٹاں",
"cs": "Kempovací místa",
"eu": "Kanpinak",
- "pl": "Miejsca dla kamperów"
+ "pl": "Miejsca dla kamperów",
+ "uk": "Кемпінги"
},
"description": {
"en": "This site collects all official camper stopover places and places where you can dump grey and black water. You can add details about the services provided and the cost. Add pictures and reviews.",
@@ -35,7 +36,8 @@
"cs": "Na této stránce jsou shromážděna všechna oficiální místa pro zastavení karavanů a místa, kde můžete vypouštět šedou a černou vodu. Můžete přidat podrobnosti o poskytovaných službách a cenách. Přidávejte fotografie a recenze.",
"eu": "Karabanak gelditzeko leku ofizial guztiak eta ur gris eta beltzak botatzeko lekuak biltzen ditu. Emandako zerbitzuei eta kostuari buruzko xehetasunak gehitu ditzakezu. Erantsi argazkiak eta aipamenak.",
"pl": "Na tej stronie zebrano wszystkie oficjalne miejsca postoju kamperów oraz miejsca, w których można wylać zanieczyszczoną wodę. Możesz dodać szczegóły dotyczące świadczonych usług i kosztów. Dodaj zdjęcia i recenzje.",
- "zh_Hans": "该网站汇总了所有官方的露营车停留点以及可以倾倒灰水和黑水的地点。你可以添加有关提供的服务和费用的详细信息,并且可以上传图片和撰写评论。"
+ "zh_Hans": "该网站汇总了所有官方的露营车停留点以及可以倾倒灰水和黑水的地点。你可以添加有关提供的服务和费用的详细信息,并且可以上传图片和撰写评论。",
+ "uk": "На цьому сайті зібрані всі офіційні місця зупинки автокемперів та місця, де можна здати сірі та чорні води. Ви можете додати детальну інформацію про послуги, що надаються, та вартість. Додавайте фотографії та відгуки."
},
"shortDescription": {
"en": "Find sites to spend the night with your camper",
@@ -53,7 +55,8 @@
"ca": "Troba llocs on passar la nit amb la teua caravana",
"cs": "Najděte místa, kde můžete strávit noc se svým karavanem",
"pl": "Znajdź miejsca, w których możesz spędzić noc w kamperze",
- "pt": "Encontre locais para passar a noite com o seu campista"
+ "pt": "Encontre locais para passar a noite com o seu campista",
+ "uk": "Знайдіть місця для ночівлі з вашим кемпером"
},
"icon": "./assets/themes/campersite/caravan.svg",
"socialImage": "./assets/themes/campersite/social_image.jpg",
@@ -85,7 +88,8 @@
"ca": "Aquest lloc és operat per {operator}",
"cs": "Toto místo je provozováno {operator}",
"eu": "Leku hau {operator}k operatzen du",
- "pl": "To miejsce jest obsługiwane przez {operator}"
+ "pl": "To miejsce jest obsługiwane przez {operator}",
+ "uk": "Цим закладом керує {operator}"
},
"question": {
"en": "Who operates this place?",
@@ -100,7 +104,8 @@
"nb_NO": "Hvem driver dette stedet?",
"ca": "Qui opera aquest lloc?",
"cs": "Kdo toto místo provozuje?",
- "pl": "Kto obsługuje to miejsce?"
+ "pl": "Kto obsługuje to miejsce?",
+ "uk": "Хто керує цим місцем?"
},
"freeform": {
"key": "operator"
@@ -121,7 +126,8 @@
"da": "Har dette sted en strømforsyning?",
"ca": "Aquest lloc té subministrament elèctric?",
"cs": "Má toto místo napájecí zdroj?",
- "pl": "Czy to miejsce ma dostęp do prądu?"
+ "pl": "Czy to miejsce ma dostęp do prądu?",
+ "uk": "Чи є тут електропостачання?"
},
"mappings": [
{
@@ -144,7 +150,8 @@
"ca": "Aquest lloc té subministrament elèctric",
"cs": "Toto místo má napájecí zdroj",
"eu": "Leku honek hornidura elektrikoa du",
- "pl": "To miejsce ma dostęp do prądu"
+ "pl": "To miejsce ma dostęp do prądu",
+ "uk": "У цьому місці є електропостачання"
}
},
{
@@ -166,7 +173,8 @@
"da": "Dette sted har ikke strømforsyning",
"ca": "Aquest lloc no té subministrament elèctric",
"cs": "Toto místo nemá napájecí zdroj",
- "pl": "To miejsce nie ma dostępu do prądu"
+ "pl": "To miejsce nie ma dostępu do prądu",
+ "uk": "Це місце не має електропостачання"
}
}
]
diff --git a/assets/themes/charging_stations/charging_stations.json b/assets/themes/charging_stations/charging_stations.json
index 38631084f..36b1c0d4b 100644
--- a/assets/themes/charging_stations/charging_stations.json
+++ b/assets/themes/charging_stations/charging_stations.json
@@ -17,7 +17,8 @@
"da": "Ladestationer",
"pa_PK": "چارج سٹیشن",
"cs": "Nabíjecí stanice",
- "pl": "Stacje ładowania"
+ "pl": "Stacje ładowania",
+ "uk": "Зарядні станції"
},
"description": {
"en": "On this open map, one can find and mark information about charging stations",
@@ -34,7 +35,8 @@
"da": "På dette åbne kort kan man finde og markere oplysninger om ladestandere",
"ca": "A aquest mapa, un pot trobar i marcar informació sobre punts de càrrega",
"cs": "Na této otevřené mapě lze vyhledávat a označovat informace o nabíjecích stanicích",
- "pl": "Na tej otwartej mapie można znaleźć i zaznaczyć informacje o stacjach ładowania"
+ "pl": "Na tej otwartej mapie można znaleźć i zaznaczyć informacje o stacjach ładowania",
+ "uk": "На цій відкритій карті можна знайти та позначити інформацію про зарядні станції"
},
"shortDescription": {
"en": "A worldwide map of charging stations",
@@ -52,7 +54,8 @@
"ca": "Un mapa mundial d'estacions de càrrega",
"cs": "Celosvětová mapa nabíjecích stanic",
"eu": "Karga-estazioen munduko mapa",
- "pl": "Światowa mapa stacji ładowania"
+ "pl": "Światowa mapa stacji ładowania",
+ "uk": "Карта зарядних станцій по всьому світу"
},
"icon": "./assets/themes/charging_stations/logo.svg",
"layers": [
diff --git a/assets/themes/circular_economy/circular_economy.json b/assets/themes/circular_economy/circular_economy.json
index 35a08d003..77b6cd7dc 100644
--- a/assets/themes/circular_economy/circular_economy.json
+++ b/assets/themes/circular_economy/circular_economy.json
@@ -5,14 +5,16 @@
"es": "Economía circular",
"de": "Kreislaufwirtschaft",
"ca": "Economia circular",
- "cs": "Cirkulární ekonomika"
+ "cs": "Cirkulární ekonomika",
+ "uk": "Переробна економіка"
},
"description": {
"en": "Various items which help people to share, reuse or recycle.",
"es": "Varios elementos que ayudan a la gente a compartir, reutilizar o reciclar.",
"de": "Verschiedene Gegenstände, die den Menschen helfen, zu teilen, wiederzuverwenden oder zu recyceln.",
"ca": "Varios elements que ajuden a la gent a compartir, reutilitzar o reciclar.",
- "cs": "Různé předměty, které pomáhají lidem sdílet, znovu používat nebo recyklovat."
+ "cs": "Různé předměty, které pomáhají lidem sdílet, znovu používat nebo recyklovat.",
+ "uk": "Різноманітні предмети, які допомагають людям ділитися, повторно використовувати або переробляти."
},
"icon": "./assets/themes/circular_economy/circular.svg",
"layers": [
@@ -43,7 +45,8 @@
"es": "Tiendas de segunda mano",
"de": "Second-Hand-Läden",
"ca": "Tendes de segona mà",
- "cs": "Obchody s použitým zbožím"
+ "cs": "Obchody s použitým zbožím",
+ "uk": "Магазини секонд-хенду"
},
"filter": null,
"source": {
diff --git a/assets/themes/climbing/climbing.json b/assets/themes/climbing/climbing.json
index 012eb1bc4..29fa0b882 100644
--- a/assets/themes/climbing/climbing.json
+++ b/assets/themes/climbing/climbing.json
@@ -15,7 +15,8 @@
"da": "Åbn klatrekort",
"cs": "Lezecké tělocvičny, kluby a místa",
"es": "Gimnasios de escalada, clubes y lugares",
- "pl": "Siłownie, kluby i miejsca wspinaczkowe"
+ "pl": "Siłownie, kluby i miejsca wspinaczkowe",
+ "uk": "Скелелазні тренажерні зали, клуби та місця"
},
"description": {
"nl": "Op deze kaart vind je verschillende klimgelegenheden, zoals klimzalen, bolderzalen en klimmen in de natuur",
@@ -32,7 +33,8 @@
"cs": "Na této mapě najdete nejrůznější možnosti lezení, jako lezecké tělocvičny, boulderingové haly a skály v přírodě.",
"ca": "A aquest mapa trobaràs varies oportunitats d'escalada, como gimnasos d'escalada, sales d'escalada en bloc i roques a la natura.",
"es": "En este mapa encontrará diversas posibilidades de escalada, como rocódromos, salas de búlder y rocas en la naturaleza.",
- "pl": "Na tej mapie znajdziesz różne możliwości wspinaczki, takie jak sale wspinaczkowe, hale do boulderingu i skały w przyrodzie."
+ "pl": "Na tej mapie znajdziesz różne możliwości wspinaczki, takie jak sale wspinaczkowe, hale do boulderingu i skały w przyrodzie.",
+ "uk": "На цій карті ви знайдете різні можливості для скелелазіння, такі як скелелазні зали, боулдерингові зали та скелі на природі."
},
"descriptionTail": {
"nl": "De klimkaart is oorspronkelijk gemaakt door Christian Neumann op kletterspots.de.",
@@ -47,7 +49,8 @@
"cs": "Horolezeckou mapu původně vytvořil Christian Neumann. V případě připomínek nebo dotazů ho prosím kontaktujte.Projekt využívá data projektu OpenStreetMap.
",
"es": "El mapa de escalada fue realizado originalmente por Christian Neumann. Por favor, ponte en contacto si tienes comentarios o preguntas.El proyecto utiliza datos del proyecto OpenStreetMap.
",
"ca": "El mapa d'escalada va ser creat originalment per Christian Neumann. Contacteu-vos si teniu comentaris o preguntes.< p>El projecte utilitza dades del projecte OpenStreetMap.",
- "pl": "Mapa wspinaczkowa została pierwotnie stworzona przez Christiana Neumanna. Jeśli masz uwagi lub pytania, skontaktuj się z nim.< p>Projekt wykorzystuje dane projektu OpenStreetMap."
+ "pl": "Mapa wspinaczkowa została pierwotnie stworzona przez Christiana Neumanna. Jeśli masz uwagi lub pytania, skontaktuj się z nim.< p>Projekt wykorzystuje dane projektu OpenStreetMap.",
+ "uk": "Карту сходження спочатку склав Крістіан Нойманн. Будь ласка, зв'яжіться, якщо у вас є відгуки чи запитання.< p>Проект використовує дані проекту OpenStreetMap."
},
"icon": "./assets/themes/climbing/climbing_icon.svg",
"credits": [
@@ -155,7 +158,8 @@
"es": "La característica que lo contiene indica que es de acceso público
{_embedding_feature:access:description}",
"ca": "Lal'element que el contéindica que és d'accés públic
{_embedding_feature:access:description}",
"cs": "V obsahující funkci je uvedeno, že toto je veřejně dostupné
{_embedding_feature:access:description}",
- "pl": "Obiekt zawarty stwierdza, że jest on publicznie dostępny
{_embedding_feature:access:description}"
+ "pl": "Obiekt zawarty stwierdza, że jest on publicznie dostępny
{_embedding_feature:access:description}",
+ "uk": "У що містить об'єкт зазначено, що це загальнодоступне
{_embedding_feature:access:description}"
}
},
{
@@ -170,7 +174,8 @@
"es": "Lacaracterística que lo contiene indica que se necesita un permiso para acceder a él
{_embedding_feature:access:description}",
"ca": "Lal'element que el conté indica que es necessita un permís per a accedir-hi
{_embedding_feature:access:description}",
"cs": "V obsahující funkci je uvedeno, že je k přístupu potřeba povolení
{_embedding_feature:access:description}",
- "pl": "Obiekt zawarty stwierdza, że potrzebne jest pozwolenie, aby do niego wejść
{_embedding_feature:access:description}"
+ "pl": "Obiekt zawarty stwierdza, że potrzebne jest pozwolenie, aby do niego wejść
{_embedding_feature:access:description}",
+ "uk": "У функції зазначено, що потрібен дозвіл для доступу
{_embedding_feature:access:description}"
}
},
{
@@ -185,7 +190,8 @@
"es": "La característica que lo contiene indica que sólo es accesible para los clientes
{_embedding_feature:access:description}",
"cs": "V obsahující funkci je uvedeno, že toto je dostupné pouze zákazníkům
{_embedding_feature:access:description}",
"ca": "Lacaracterística que ho conté indica que sols és accessible per als clients
{_embedding_feature:access:description}",
- "pl": "Obiekt zawarty stwierdza, że jest on dostępny tylko dla jego klientów
{_embedding_feature:access:description}"
+ "pl": "Obiekt zawarty stwierdza, że jest on dostępny tylko dla jego klientów
{_embedding_feature:access:description}",
+ "uk": "У що містить об'єкт зазначено, що вона доступна лише клієнтам
{_embedding_feature:access:description}"
}
},
{
@@ -200,7 +206,8 @@
"es": "La característica que lo contiene indica que sólo es accesible para los socios del club
{_embedding_feature:access:description}",
"cs": "V obsahující funkci je uvedeno, že toto je dostupné pouze členům klubu
{_embedding_feature:access:description}",
"ca": "Lacaracterística que ho conté indica que sols és accessible per als socis del club
{_embedding_feature:access:description}",
- "pl": "Obiekt zawarty stwierdza, że jest on dostępny tylko dla członków klubu
{_embedding_feature:access:description}"
+ "pl": "Obiekt zawarty stwierdza, że jest on dostępny tylko dla członków klubu
{_embedding_feature:access:description}",
+ "uk": "У що містить функцію зазначено, що вона доступна лише для членів клубу
{_embedding_feature:access:description}"
}
},
{
@@ -222,7 +229,8 @@
"ca": "Qui pot accedir aquí?",
"da": "Hvem kan få adgang her?",
"cs": "Kdo sem má přístup?",
- "pl": "Kto ma tutaj dostęp?"
+ "pl": "Kto ma tutaj dostęp?",
+ "uk": "Хто може сюди потрапити?"
},
"mappings": [
{
@@ -238,7 +246,8 @@
"da": "Offentligt tilgængelig for alle",
"cs": "Veřejně přístupné komukoli",
"ca": "Accessible públicament a qualsevol",
- "pl": "Publicznie dostępne dla każdego"
+ "pl": "Publicznie dostępne dla każdego",
+ "uk": "Загальнодоступний для всіх"
}
},
{
@@ -253,7 +262,8 @@
"da": "Du skal have en tilladelse for at få adgang her",
"ca": "Necesites un permís per a accedir ací",
"cs": "K přístupu je potřeba povolení",
- "pl": "Potrzebujesz pozwolenia, żeby tu wejść"
+ "pl": "Potrzebujesz pozwolenia, żeby tu wejść",
+ "uk": "Для доступу сюди потрібен дозвіл"
}
},
{
@@ -270,7 +280,8 @@
"da": "Kun for kunder",
"pa_PK": "صرف گاہک",
"cs": "Pouze zákazníci",
- "pl": "Tylko klienci"
+ "pl": "Tylko klienci",
+ "uk": "Тільки клієнти"
}
},
{
@@ -288,7 +299,8 @@
"da": "Kun klubmedlemmer",
"pa_PK": "صرف کلب دے میمبر",
"cs": "Pouze členové klubu",
- "pl": "Tylko członkowie klubu"
+ "pl": "Tylko członkowie klubu",
+ "uk": "Тільки члени клубу"
}
},
{
@@ -346,7 +358,8 @@
"cs": "Opravuje tato opravna obuvy horolezecké boty?",
"pl": "Czy ten warsztat szewski naprawia buty wspinaczkowe?",
"da": "Reparerer denne butik klatresko?",
- "it": "Questo negozio ripara scarpe da arrampicata?"
+ "it": "Questo negozio ripara scarpe da arrampicata?",
+ "uk": "Чи ремонтує ця майстерня альпіністське взуття?"
},
"mappings": [
{
@@ -360,7 +373,8 @@
"cs": "Tento obchod opravuje lezeckou obuv",
"pl": "Ten warsztat naprawia buty wspinaczkowe",
"da": "Denne butik reparerer klatresko",
- "it": "Questo negozio ripara scarpe da arrampicata"
+ "it": "Questo negozio ripara scarpe da arrampicata",
+ "uk": "У цій майстерні ремонтують альпіністське взуття"
}
},
{
@@ -374,7 +388,8 @@
"cs": "Tento obchod neopravuje lezeckou obuv",
"pl": "Ten warsztat nie naprawia butów wspinaczkowych",
"da": "Denne butik reparerer ikke klatresko",
- "it": "Questo negozio non ripara scarpe da arrampicata"
+ "it": "Questo negozio non ripara scarpe da arrampicata",
+ "uk": "Цей магазин не займається ремонтом альпіністського взуття"
}
}
]
@@ -408,7 +423,8 @@
"cs": "Opravuje tato opravna obuvy také lezeckou obuv?",
"pl": "Czy ten warsztat obuwniczy naprawia również buty wspinaczkowe?",
"da": "Reparerer denne skomager klatresko?",
- "it": "Questo negozio ripara scarpe da arrampicata?"
+ "it": "Questo negozio ripara scarpe da arrampicata?",
+ "uk": "Чи ремонтує ця майстерня також альпіністське взуття?"
},
"mappings": [
{
@@ -422,7 +438,8 @@
"cs": "Tento obchod opravuje lezeckou obuv",
"pl": "Ten warsztat naprawia buty wspinaczkowe",
"da": "Denne butik reparerer klatresko",
- "it": "Questo negozio ripara scarpe da arrampicata"
+ "it": "Questo negozio ripara scarpe da arrampicata",
+ "uk": "У цій майстерні ремонтують альпіністське взуття"
}
},
{
@@ -436,7 +453,8 @@
"cs": "Tento obchod neopravuje lezeckou obuv",
"pl": "Ten warsztat nie naprawia butów wspinaczkowych",
"da": "Denne butik reparerer ikke klatresko",
- "it": "Questo negozio non ripara scarpe da arrampicata"
+ "it": "Questo negozio non ripara scarpe da arrampicata",
+ "uk": "Цей магазин не займається ремонтом альпіністського взуття"
}
}
]
@@ -456,7 +474,8 @@
"cs": "opravna bot",
"pl": "warsztat szewski",
"da": "en skomager",
- "it": "un calzolaio"
+ "it": "un calzolaio",
+ "uk": "майстерня по ремонту взуття"
}
}
]
diff --git a/assets/themes/clock/clock.json b/assets/themes/clock/clock.json
index 46e473b6e..a00899f4c 100644
--- a/assets/themes/clock/clock.json
+++ b/assets/themes/clock/clock.json
@@ -11,7 +11,9 @@
"eu": "Erlojuak",
"pl": "Zegary",
"da": "Ure",
- "it": "Orologi"
+ "it": "Orologi",
+ "ru": "Часы",
+ "uk": "Годинники"
},
"description": {
"en": "Map showing all public clocks",
@@ -23,7 +25,8 @@
"fr": "Carte affichant toutes les horloges publiques",
"pl": "Mapa pokazująca wszystkie zegary publiczne",
"da": "Kort over alle ure i det offentlige rum",
- "it": "Mappa di tutti gli orologi pubblici"
+ "it": "Mappa di tutti gli orologi pubblici",
+ "uk": "Карта з усіма громадськими годинниками"
},
"icon": "./assets/layers/clock/clock.svg",
"layers": [
diff --git a/assets/themes/cycle_highways/cycle_highways.json b/assets/themes/cycle_highways/cycle_highways.json
index 3d58409f2..50e9e59fc 100644
--- a/assets/themes/cycle_highways/cycle_highways.json
+++ b/assets/themes/cycle_highways/cycle_highways.json
@@ -13,7 +13,8 @@
"pa_PK": "سائیکلوے",
"cs": "Cyklodálnice",
"pl": "Ścieżki rowerowe",
- "zh_Hant": "單車高速公路"
+ "zh_Hant": "單車高速公路",
+ "uk": "Велосипедні доріжки"
},
"description": {
"en": "This map shows cycle highways",
@@ -26,7 +27,8 @@
"ca": "Aquest mapa mostra carrils bici",
"da": "Dette kort viser cykelmotorveje",
"cs": "Tato mapa zobrazuje cyklostezky",
- "pl": "Ta mapa pokazuje ścieżki rowerowe"
+ "pl": "Ta mapa pokazuje ścieżki rowerowe",
+ "uk": "На цій карті показані велодоріжки"
},
"icon": "./assets/themes/cycle_highways/fietssnelwegen-logo.svg",
"startZoom": 7,
diff --git a/assets/themes/cycle_infra/cycle_infra.json b/assets/themes/cycle_infra/cycle_infra.json
index c6e32eeee..d76465476 100644
--- a/assets/themes/cycle_infra/cycle_infra.json
+++ b/assets/themes/cycle_infra/cycle_infra.json
@@ -15,7 +15,8 @@
"da": "Cykelinfrastruktur",
"pa_PK": "سائیکل ڈھانچا",
"cs": "Cyklistická infrastruktura",
- "pl": "Infrastruktura rowerowa"
+ "pl": "Infrastruktura rowerowa",
+ "uk": "Велосипедна інфраструктура"
},
"description": {
"en": "A map where you can view and edit things related to the bicycle infrastructure. Made during #osoc21.",
@@ -29,7 +30,8 @@
"ca": "Un mapa on es poden veure i editar coses relacionades amb la infraestructura ciclista. Fet durant #osoc21.",
"da": "Et kort, hvor du kan se og redigere ting relateret til cykelinfrastrukturen. Lavet under #osoc21.",
"cs": "Mapa, kde můžete prohlížet a upravovat věci související s cyklistickou infrastrukturou. Vytvořeno během #osoc21.",
- "pl": "Mapa, na której możesz przeglądać i edytować rzeczy związane z infrastrukturą rowerową. Wykonane podczas #osoc21."
+ "pl": "Mapa, na której możesz przeglądać i edytować rzeczy związane z infrastrukturą rowerową. Wykonane podczas #osoc21.",
+ "uk": "Карта, на якій можна переглядати та редагувати речі, пов'язані з велосипедною інфраструктурою. Зроблено під час #osoc21."
},
"shortDescription": {
"en": "A map where you can view and edit things related to the bicycle infrastructure.",
@@ -44,7 +46,8 @@
"ca": "Un mapa on es poden veure i editar coses relacionades amb la infraestructura ciclista.",
"da": "Et kort, hvor du kan se og redigere ting relateret til cykelinfrastrukturen.",
"cs": "Mapa, kde můžete prohlížet a upravovat věci související s cyklistickou infrastrukturou.",
- "pl": "Mapa, na której możesz przeglądać i edytować rzeczy związane z infrastrukturą rowerową."
+ "pl": "Mapa, na której możesz przeglądać i edytować rzeczy związane z infrastrukturą rowerową.",
+ "uk": "Карта, на якій ви можете переглядати та редагувати речі, пов'язані з велосипедною інфраструктурою."
},
"icon": "./assets/themes/cycle_infra/cycle-infra.svg",
"socialImage": "./assets/themes/cycle_infra/cycle-infra.svg",
diff --git a/assets/themes/cyclenodes/cyclenodes.json b/assets/themes/cyclenodes/cyclenodes.json
index 65e3c022e..41b99eb7c 100644
--- a/assets/themes/cyclenodes/cyclenodes.json
+++ b/assets/themes/cyclenodes/cyclenodes.json
@@ -41,7 +41,8 @@
"fr": "liens noeud à noeud",
"ca": "Enllaços node a node",
"cs": "Propojení mezi uzly",
- "pl": "łącza węzeł do węzła"
+ "pl": "łącza węzeł do węzła",
+ "uk": "Зв'язки між точками"
},
"source": {
"osmTags": {
@@ -92,7 +93,8 @@
"fr": "Quand cette liaison de nœud à nœud a-t-elle été contrôlée sur le terrain pour la dernière fois ?",
"ca": "Quan es va comprovar per última vegada aquest enllaç node a node presencialment?",
"cs": "Kdy bylo toto propojení mezi uzly naposledy zkontrolováno?",
- "pl": "Kiedy ostatnio badano to połączenie węzła z węzłem?"
+ "pl": "Kiedy ostatnio badano to połączenie węzła z węzłem?",
+ "uk": "Коли цей зв'язок між точками досліджувався востаннє?"
},
"render": {
"en": "This node to node link was last surveyed on {survey:date}",
diff --git a/assets/themes/cyclestreets/cyclestreets.json b/assets/themes/cyclestreets/cyclestreets.json
index 7bf579ea6..22d3bc5b9 100644
--- a/assets/themes/cyclestreets/cyclestreets.json
+++ b/assets/themes/cyclestreets/cyclestreets.json
@@ -16,7 +16,8 @@
"pa_PK": "سائیکل سڑکاں",
"cs": "Cyklostezky",
"eu": "Bidegorriak",
- "pl": "Ulice rowerowe"
+ "pl": "Ulice rowerowe",
+ "ru": "Велосипедные дорожки"
},
"description": {
"nl": "Een fietsstraat is een straat waar - automobilisten geen fietsers mogen inhalen
- Er een maximumsnelheid van 30km/u geldt
- Fietsers gemotoriseerde voertuigen links mogen inhalen
- Fietsers nog steeds voorrang aan rechts moeten verlenen - ook aan auto's en voetgangers op het zebrapad
Op deze open kaart kan je alle gekende fietsstraten zien en kan je ontbrekende fietsstraten aanduiden. Fietszones worden aangeduid door elke straat apart als fietsstraat te markeren.
Om de kaart aan te passen, moet je je aanmelden met OpenStreetMap en helemaal inzoomen tot straatniveau. ",
diff --git a/assets/themes/disaster_response/disaster_response.json b/assets/themes/disaster_response/disaster_response.json
index fbda6f45c..e111ab76e 100644
--- a/assets/themes/disaster_response/disaster_response.json
+++ b/assets/themes/disaster_response/disaster_response.json
@@ -7,7 +7,8 @@
"es": "Respuesta a catástrofes y servicios de emergencia",
"ca": "Resposta davant de desastres i serveis d'emergència",
"da": "Beredskab",
- "cs": "Reakce na katastrofy a záchranné služby"
+ "cs": "Reakce na katastrofy a záchranné služby",
+ "ru": "Ликвидация последствий стихийных бедствий и аварийные службы"
},
"description": {
"en": "This map contains elements meant for disaster preparedness and response.",
diff --git a/assets/themes/education/education.json b/assets/themes/education/education.json
index 536fc1272..8620fea4f 100644
--- a/assets/themes/education/education.json
+++ b/assets/themes/education/education.json
@@ -14,7 +14,8 @@
"eu": "Hezkuntza",
"pl": "Edukacja",
"zh_Hant": "教育",
- "it": "Istruzione"
+ "it": "Istruzione",
+ "ru": "Образование"
},
"description": {
"en": "On this map, you'll find information about all types of schools and education and can easily add more information",
diff --git a/assets/themes/etymology/etymology.json b/assets/themes/etymology/etymology.json
index 337b7e039..f95d69efe 100644
--- a/assets/themes/etymology/etymology.json
+++ b/assets/themes/etymology/etymology.json
@@ -42,7 +42,8 @@
"ca": "Quin és l'origen d'un topònim?",
"da": "Hvad er oprindelsen af et stednavn?",
"cs": "Jaký je původ toponyma?",
- "pl": "Jakie jest pochodzenie toponimów?"
+ "pl": "Jakie jest pochodzenie toponimów?",
+ "ru": "Каково происхождение топонима?"
},
"icon": "./assets/layers/etymology/logo.svg",
"hideFromOverview": false,
diff --git a/assets/themes/facadegardens/facadegardens.json b/assets/themes/facadegardens/facadegardens.json
index c7b2ee42c..e8c8bfaa7 100644
--- a/assets/themes/facadegardens/facadegardens.json
+++ b/assets/themes/facadegardens/facadegardens.json
@@ -13,7 +13,8 @@
"es": "Jardines de fachada",
"da": "Facadehaver",
"cs": "Fasádní zahrady",
- "pl": "Ogrody fasadowe"
+ "pl": "Ogrody fasadowe",
+ "ru": "Фасадные сады"
},
"description": {
"nl": "Ontharde voortuintjes, groene gevels en bomen ín de stad brengen naast rust ook een mooiere stad, een grotere biodiversiteit, een verkoelend effect en een betere luchtkwaliteit.
Klimaan VZW en 'Mechelen Klimaatneutraal' willen met het project Klim(t)aan je Gevel bestaande en nieuwe geveltuintjes in kaart brengen als voorbeeld voor mensen zelf een tuintje willen aanleggen of voor stadwandelaars die houden van de natuur.
Meer info over het project op klimaan.be.",
diff --git a/assets/themes/glutenfree/glutenfree.json b/assets/themes/glutenfree/glutenfree.json
index 134ec8102..76e11c951 100644
--- a/assets/themes/glutenfree/glutenfree.json
+++ b/assets/themes/glutenfree/glutenfree.json
@@ -6,7 +6,8 @@
"it": "Senza glutine",
"es": "Sin gluten",
"ca": "Sense gluten",
- "cs": "Bez lepku"
+ "cs": "Bez lepku",
+ "ru": "Без глютена"
},
"description": {
"en": "A crowdsourced map with glutenfree items",
diff --git a/assets/themes/guideposts/guideposts.json b/assets/themes/guideposts/guideposts.json
index d59671e63..afebd78d9 100644
--- a/assets/themes/guideposts/guideposts.json
+++ b/assets/themes/guideposts/guideposts.json
@@ -6,7 +6,8 @@
"de": "Wegweiser",
"es": "Poste guía",
"pl": "Drogowskazy",
- "ca": "Pal guia"
+ "ca": "Pal guia",
+ "ru": "Указатели"
},
"description": {
"en": "Guideposts (also known as fingerposts or finger posts) are often found along official hiking, cycling, skiing or horseback riding routes to indicate the directions to different destinations. Additionally, they are often named after a region or place and show the altitude.\n\nThe position of a signpost can be used by a hiker/biker/rider/skier as a confirmation of the current position, especially if they use a printed map without a GPS receiver. ",
diff --git a/assets/themes/hotels/hotels.json b/assets/themes/hotels/hotels.json
index 5f883cb1a..d0898f465 100644
--- a/assets/themes/hotels/hotels.json
+++ b/assets/themes/hotels/hotels.json
@@ -14,7 +14,8 @@
"eu": "Hotelak",
"pl": "Hotele",
"zh_Hant": "飯店",
- "it": "Hotel"
+ "it": "Hotel",
+ "ru": "Гостиницы"
},
"description": {
"en": "On this map, you'll find hotels in your area",
diff --git a/assets/themes/icecream/icecream.json b/assets/themes/icecream/icecream.json
index 4f9d48b31..57431f1a7 100644
--- a/assets/themes/icecream/icecream.json
+++ b/assets/themes/icecream/icecream.json
@@ -7,7 +7,8 @@
"ca": "Gelat",
"es": "Helado",
"da": "Is",
- "it": "Gelato"
+ "it": "Gelato",
+ "ru": "Мороженое"
},
"description": {
"en": "A map showing ice cream parlors and ice cream vending machines",
diff --git a/assets/themes/indoors/indoors.json b/assets/themes/indoors/indoors.json
index 21a78f89b..375c6b05f 100644
--- a/assets/themes/indoors/indoors.json
+++ b/assets/themes/indoors/indoors.json
@@ -14,7 +14,8 @@
"eu": "Barnealdean",
"pl": "Wewnątrz",
"zh_Hant": "室內",
- "it": "Al chiuso"
+ "it": "Al chiuso",
+ "ru": "Внутри помещений"
},
"description": {
"en": "On this map, publicly accessible indoor places are shown",
diff --git a/assets/themes/maps/maps.json b/assets/themes/maps/maps.json
index 6743b2244..3b3319fda 100644
--- a/assets/themes/maps/maps.json
+++ b/assets/themes/maps/maps.json
@@ -42,7 +42,8 @@
"da": "Dette tema viser alle (turisme) kort, som OpenStreetMap kender til",
"cs": "Toto téma zobrazuje všechny (turistické) mapy, které zná OpenStreetMap",
"ca": "Aquest tema mostra tots els mapes (turístics) que OpenStreetMap coneix",
- "pl": "Ten motyw pokazuje wszystkie mapy (turystyczne), które zna OpenStreetMap"
+ "pl": "Ten motyw pokazuje wszystkie mapy (turystyczne), które zna OpenStreetMap",
+ "ru": "Эта тема показывает все (туристические) карты, известные OpenStreetMap"
},
"icon": "./assets/themes/maps/logo.svg",
"defaultBackgroundId": "protomaps.white",
diff --git a/assets/themes/maxspeed/maxspeed.json b/assets/themes/maxspeed/maxspeed.json
index db6f21a4a..586dd4ace 100644
--- a/assets/themes/maxspeed/maxspeed.json
+++ b/assets/themes/maxspeed/maxspeed.json
@@ -37,7 +37,8 @@
"es": "Este mapa muestra la velocidad máxima permitida legalmente en cada carretera.",
"ca": "Aquest mapa mostra la velocitat màxima permesa legalment a cada carretera.",
"zh_Hant": "這份地圖顯示每一條道路的法定允許的最高速限。",
- "pl": "Ta mapa pokazuje prawnie dozwoloną maksymalną prędkość na każdej drodze."
+ "pl": "Ta mapa pokazuje prawnie dozwoloną maksymalną prędkość na każdej drodze.",
+ "ru": "На этой карте показана разрешенная законом максимальная скорость на каждой дороге."
},
"icon": "./assets/themes/maxspeed/maxspeed_logo.svg",
"layers": [
diff --git a/assets/themes/memorials/memorials.json b/assets/themes/memorials/memorials.json
index bd9cbdd8e..57f081a43 100644
--- a/assets/themes/memorials/memorials.json
+++ b/assets/themes/memorials/memorials.json
@@ -8,7 +8,8 @@
"da": "Mindesmærker",
"sl": "Spomeniki",
"es": "Memoriales",
- "cs": "Památníky"
+ "cs": "Památníky",
+ "ru": "Памятники"
},
"description": {
"en": "Memorials are physical objects permantently placed in the public space to remember a person or event. They can be a wide range of objects, such as statues, plaques, paintings, military objects (such as tanks), ...",
diff --git a/assets/themes/nature/nature.json b/assets/themes/nature/nature.json
index 785c1e266..eb1a8a1aa 100644
--- a/assets/themes/nature/nature.json
+++ b/assets/themes/nature/nature.json
@@ -11,7 +11,8 @@
"cs": "Do přírody",
"es": "En la naturaleza",
"zh_Hant": "投入自然懷抱",
- "pl": "W naturze"
+ "pl": "W naturze",
+ "ru": "На природе"
},
"description": {
"en": "On this map, one can find interesting information for tourists and nature lovers.",
@@ -37,7 +38,8 @@
"ca": "Un mapa per als amants de la natura, amb PDI interessants",
"zh_Hant": "為了自然愛好者,以及有趣的興趣點的地圖",
"pl": "Mapa dla miłośników przyrody z ciekawymi punktami POI",
- "it": "Una mappa per amanti della natura con interessanti POI"
+ "it": "Una mappa per amanti della natura con interessanti POI",
+ "ru": "Карта для любителей природы, с интересными POI"
},
"icon": "./assets/themes/nature/logo.svg",
"startZoom": 12,
diff --git a/assets/themes/notes/notes.json b/assets/themes/notes/notes.json
index c27ee0195..3f70f2ed2 100644
--- a/assets/themes/notes/notes.json
+++ b/assets/themes/notes/notes.json
@@ -12,7 +12,8 @@
"da": "Noter på OpenStreetMap",
"cs": "Poznámky k OpenStreetMap",
"zh_Hant": "開放街圖上的註解",
- "pl": "Notatki na OpenStreetMap"
+ "pl": "Notatki na OpenStreetMap",
+ "ru": "Заметки в OpenStreetMap"
},
"description": {
"en": "A note is a pin on the map with some text to indicate something wrong.
Make sure to checkout the filter view to search for users and text.",
diff --git a/assets/themes/observation_towers/observation_towers.json b/assets/themes/observation_towers/observation_towers.json
index 49f0a7fa1..58497233f 100644
--- a/assets/themes/observation_towers/observation_towers.json
+++ b/assets/themes/observation_towers/observation_towers.json
@@ -44,7 +44,8 @@
"da": "Offentligt tilgængelige tårne for at nyde udsigten",
"cs": "Veřejně přístupné věže s výhledem",
"ca": "Torres accesibles públicament per a disfrutar de la vista",
- "pl": "Publicznie dostępne wieże do podziwiania widoku"
+ "pl": "Publicznie dostępne wieże do podziwiania widoku",
+ "ru": "Общедоступные башни, с которых можно любоваться видами"
},
"icon": "./assets/layers/observation_tower/Tower_observation.svg",
"layers": [
diff --git a/assets/themes/onwheels/onwheels.json b/assets/themes/onwheels/onwheels.json
index 6cdf2f514..7d7f1f759 100644
--- a/assets/themes/onwheels/onwheels.json
+++ b/assets/themes/onwheels/onwheels.json
@@ -11,7 +11,8 @@
"es": "Sobre ruedas",
"cs": "Na kolečkách",
"eu": "Gurpil gainean",
- "pl": "Na kółkach"
+ "pl": "Na kółkach",
+ "ru": "Коляски"
},
"description": {
"en": "On this map, publicly weelchair accessible places are shown and can be easily added",
diff --git a/assets/themes/personal/personal.json b/assets/themes/personal/personal.json
index 38937002d..34a25f503 100644
--- a/assets/themes/personal/personal.json
+++ b/assets/themes/personal/personal.json
@@ -16,7 +16,8 @@
"da": "Personligt tema",
"pa_PK": "چݨی تھیم",
"cs": "Osobní téma",
- "pl": "Temat osobisty"
+ "pl": "Temat osobisty",
+ "ru": "Собственная тема"
},
"description": {
"en": "Create a personal theme based on all the available layers of all themes. In order to show some data, open layer selection",
diff --git a/assets/themes/pets/pets.json b/assets/themes/pets/pets.json
index 5846015cc..8d3e8fc6b 100644
--- a/assets/themes/pets/pets.json
+++ b/assets/themes/pets/pets.json
@@ -11,7 +11,8 @@
"cs": "Veterináři, psí parky a další služby pro domácí zvířata",
"zh_Hant": "獸醫院、寵物公園以及其他寵物設施",
"pl": "Kliniki weterynaryjne, parki dla psów i inne obiekty dla zwierząt",
- "it": "Veterinari, parchi accessibili ai cani e altri servizi per animali domestici"
+ "it": "Veterinari, parchi accessibili ai cani e altri servizi per animali domestici",
+ "ru": "Ветеринары, парки для собак и другие удобства для домашних животных"
},
"description": {
"en": "On this map, you'll find various interesting places for you pets: veterinarians, dog parks, pet shops, dog-friendly restaurants, ...",
@@ -22,7 +23,8 @@
"ca": "A aquest mapa, trobaràs diferents llocs interesants per a les teves mascotes: veterinaris, parcs per a gossos, botigues d'animals, restaurants amables amb gossos, ...",
"es": "En este mapa, encontrarás varios lugares interesantes para tus mascotas: veterinarios, parques para perros, tiendas de mascotas, restaurantes aptos para perros, ...",
"cs": "Na této mapě najdete různá zajímavá místa pro vaše domácí mazlíčky: veterináře, psí parky, obchody pro zvířata, restaurace pro psy, ...",
- "pl": "Na tej mapie znajdziesz różne ciekawe miejsca dla swoich zwierząt: weterynarze, wybiegi dla psów, sklepy zoologiczne, restauracje przyjazne psom, ..."
+ "pl": "Na tej mapie znajdziesz różne ciekawe miejsca dla swoich zwierząt: weterynarze, wybiegi dla psów, sklepy zoologiczne, restauracje przyjazne psom, ...",
+ "ru": "На этой карте вы найдете различные интересные места для ваших питомцев: ветеринарные клиники, парки для собак, зоомагазины, рестораны для собак, ..."
},
"icon": "./assets/layers/dogpark/dog-park.svg",
"startZoom": 10,
@@ -49,7 +51,8 @@
"cs": "Restaurace vhodné pro vstup se psy",
"zh_Hant": "寵物友善餐廳",
"pl": "Restauracje przyjazne psom",
- "it": "Ristoranti che accettano i cani"
+ "it": "Ristoranti che accettano i cani",
+ "ru": "Заведения, где можно поесть с собаками"
},
"pointRendering": [
{
diff --git a/assets/themes/shops/shops.json b/assets/themes/shops/shops.json
index 3e733c223..0706c0432 100644
--- a/assets/themes/shops/shops.json
+++ b/assets/themes/shops/shops.json
@@ -46,7 +46,8 @@
"ca": "Un mapa editable amb informació bàsica sobre botigues",
"cs": "Upravitelná mapa se základními informacemi o obchodech",
"zh_Hant": "有基本商家資訊的可編輯性的地圖",
- "pl": "Edytowalna mapa z podstawowymi informacjami o sklepach"
+ "pl": "Edytowalna mapa z podstawowymi informacjami o sklepach",
+ "ru": "Редактируемая карта с основной информацией о магазине"
},
"icon": "./assets/themes/shops/shop.svg",
"layers": [
diff --git a/assets/themes/sports/sports.json b/assets/themes/sports/sports.json
index 0cb224f39..27b26cd97 100644
--- a/assets/themes/sports/sports.json
+++ b/assets/themes/sports/sports.json
@@ -12,7 +12,8 @@
"zh_Hant": "運動",
"eu": "Kirolak",
"pl": "Sporty",
- "it": "Sport"
+ "it": "Sport",
+ "ru": "Спортивные объекты"
},
"description": {
"en": "All about sports, find sport pitches, fitness centres and more.",
diff --git a/assets/themes/surveillance/surveillance.json b/assets/themes/surveillance/surveillance.json
index 83fd347e5..d048d2219 100644
--- a/assets/themes/surveillance/surveillance.json
+++ b/assets/themes/surveillance/surveillance.json
@@ -15,7 +15,8 @@
"es": "Vigilancia bajo vigilancia",
"cs": "Dohled pod dohledem",
"pl": "Monitoring monitoringu",
- "sl": "Nadzor nadzora"
+ "sl": "Nadzor nadzora",
+ "ru": "Наблюдение под наблюдением"
},
"description": {
"en": "On this open map, you can find surveillance cameras.",
diff --git a/assets/themes/transit/transit.json b/assets/themes/transit/transit.json
index 5676d6802..cf9bab9c1 100644
--- a/assets/themes/transit/transit.json
+++ b/assets/themes/transit/transit.json
@@ -12,7 +12,8 @@
"es": "Rutas de autobús",
"cs": "Autobusové linky",
"zh_Hant": "公車路線",
- "pl": "Trasy autobusowe"
+ "pl": "Trasy autobusowe",
+ "ru": "Автобусные маршруты"
},
"description": {
"en": "Plan your trip with the help of the public transport system.",
diff --git a/assets/themes/vending_machine/vending_machine.json b/assets/themes/vending_machine/vending_machine.json
index 2dd0bd3b4..3c9b99fc9 100644
--- a/assets/themes/vending_machine/vending_machine.json
+++ b/assets/themes/vending_machine/vending_machine.json
@@ -11,7 +11,8 @@
"pl": "Automaty sprzedające",
"zh_Hant": "自動販賣機",
"da": "Salgsautomater",
- "it": "Distributori automatici"
+ "it": "Distributori automatici",
+ "ru": "Торговые автоматы"
},
"description": {
"en": "Find vending machines for everything",
diff --git a/assets/themes/waste_basket/waste_basket.json b/assets/themes/waste_basket/waste_basket.json
index d4762139f..09dfeb9c2 100644
--- a/assets/themes/waste_basket/waste_basket.json
+++ b/assets/themes/waste_basket/waste_basket.json
@@ -15,7 +15,8 @@
"pa_PK": "کوڑے دی ٹوکری",
"es": "Papeleras",
"cs": "Odpadkové koše",
- "pl": "Kosz na śmieci"
+ "pl": "Kosz na śmieci",
+ "ru": "Корзины для мусора"
},
"description": {
"en": "On this map, you'll find waste baskets near you. If a waste basket is missing on this map, you can add it yourself.",
diff --git a/langs/de.json b/langs/de.json
index 8cc607951..87c1ac50a 100644
--- a/langs/de.json
+++ b/langs/de.json
@@ -897,4 +897,4 @@
"startsWithQ": "Ein Wikidata-Identifikator beginnt mit Q und wird von einer Zahl gefolgt"
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/es.json b/langs/es.json
index 8ee55be7c..d9427e6c1 100644
--- a/langs/es.json
+++ b/langs/es.json
@@ -897,4 +897,4 @@
"startsWithQ": "Un identificador wikidata comienza con Q y es seguido por un número"
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/hu.json b/langs/hu.json
index 16658486a..98f1aaaf5 100644
--- a/langs/hu.json
+++ b/langs/hu.json
@@ -422,4 +422,4 @@
"split": "Szétvágás",
"splitTitle": "Válaszd ki a térképen, hol változnak az út tulajdonságai"
}
-}
+}
\ No newline at end of file
diff --git a/langs/layers/ca.json b/langs/layers/ca.json
index c4b74559c..15373e975 100644
--- a/langs/layers/ca.json
+++ b/langs/layers/ca.json
@@ -9625,4 +9625,4 @@
"render": "Turbina eòlica"
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/layers/cs.json b/langs/layers/cs.json
index 5487332a4..c5782f7b0 100644
--- a/langs/layers/cs.json
+++ b/langs/layers/cs.json
@@ -10105,4 +10105,4 @@
"render": "větrná turbína"
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/layers/de.json b/langs/layers/de.json
index 1b0eb9a5c..0032b3a16 100644
--- a/langs/layers/de.json
+++ b/langs/layers/de.json
@@ -12516,4 +12516,4 @@
"render": "Windrad"
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/layers/en.json b/langs/layers/en.json
index 3bac936e6..1fa369943 100644
--- a/langs/layers/en.json
+++ b/langs/layers/en.json
@@ -12516,4 +12516,4 @@
"render": "wind turbine"
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/layers/es.json b/langs/layers/es.json
index efb2d9d01..e1b22ea91 100644
--- a/langs/layers/es.json
+++ b/langs/layers/es.json
@@ -5374,4 +5374,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/layers/fr.json b/langs/layers/fr.json
index bf0ba93d6..ef3a0b46c 100644
--- a/langs/layers/fr.json
+++ b/langs/layers/fr.json
@@ -7558,4 +7558,4 @@
"render": "éolienne"
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/layers/nl.json b/langs/layers/nl.json
index 9bb94c795..b23b74540 100644
--- a/langs/layers/nl.json
+++ b/langs/layers/nl.json
@@ -9910,4 +9910,4 @@
"render": "windturbine"
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/layers/ru.json b/langs/layers/ru.json
index 5746654d6..7c4873e57 100644
--- a/langs/layers/ru.json
+++ b/langs/layers/ru.json
@@ -2214,4 +2214,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/layers/uk.json b/langs/layers/uk.json
index a187f0bec..e25e13aae 100644
--- a/langs/layers/uk.json
+++ b/langs/layers/uk.json
@@ -271,4 +271,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/ru.json b/langs/ru.json
index 03a14ca16..6346cb98d 100644
--- a/langs/ru.json
+++ b/langs/ru.json
@@ -246,4 +246,4 @@
"description": "Идентификатор Wikidata"
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/themes/ru.json b/langs/themes/ru.json
index b607086a6..45a603a39 100644
--- a/langs/themes/ru.json
+++ b/langs/themes/ru.json
@@ -274,4 +274,4 @@
"waste_basket": {
"title": "Корзины для мусора"
}
-}
+}
\ No newline at end of file
diff --git a/langs/themes/uk.json b/langs/themes/uk.json
index 009580b0b..f9072856a 100644
--- a/langs/themes/uk.json
+++ b/langs/themes/uk.json
@@ -278,4 +278,4 @@
}
}
}
-}
+}
\ No newline at end of file
diff --git a/langs/uk.json b/langs/uk.json
index 94a9ae26b..1c16f26f5 100644
--- a/langs/uk.json
+++ b/langs/uk.json
@@ -103,4 +103,4 @@
"userinfo": {
"gotoSettings": "Перейдіть до своїх налаштувань на OpenStreetMap.org"
}
-}
+}
\ No newline at end of file
diff --git a/src/assets/used_languages.json b/src/assets/used_languages.json
index d8e4d9444..e4163a517 100644
--- a/src/assets/used_languages.json
+++ b/src/assets/used_languages.json
@@ -1 +1 @@
-{"languages":["ca","cs","da","de","en","eo","es","eu","fi","fil","fr","gl","he","hu","id","it","ja","nb_NO","nl","pa_PK","pl","pt","pt_BR","ru","sl","sv","zgh","zh_Hans","zh_Hant"]}
\ No newline at end of file
+{"languages":["ca","cs","da","de","en","eo","es","eu","fi","fil","fr","gl","he","hu","id","it","ja","nb_NO","nl","pa_PK","pl","pt","pt_BR","ru","sl","sv","uk","zgh","zh_Hans","zh_Hant"]}
\ No newline at end of file
From fbcbdc571edd848106885f9148e473c816990a67 Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Mon, 14 Oct 2024 21:46:27 +0200
Subject: [PATCH 54/55] Fix: fix #2209, remove lingering incorrect translations
---
assets/layers/artwork/artwork.json | 5 +----
langs/layers/cs.json | 3 ---
langs/layers/es.json | 3 ---
langs/layers/fr.json | 3 ---
4 files changed, 1 insertion(+), 13 deletions(-)
diff --git a/assets/layers/artwork/artwork.json b/assets/layers/artwork/artwork.json
index dedada8e1..43598f2de 100644
--- a/assets/layers/artwork/artwork.json
+++ b/assets/layers/artwork/artwork.json
@@ -816,10 +816,7 @@
"alsoShowIf": "historic!=memorial",
"then": {
"en": "This artwork does not serve as a memorial",
- "de": "Dieses Kunstwerk dient nicht als Denkmal",
- "fr": "Cette œuvre ne sert pas de banc",
- "cs": "Toto dílo neslouží jako lavička",
- "es": "Esta obra de arte no sirve como banco"
+ "de": "Dieses Kunstwerk dient nicht als Denkmal"
}
}
]
diff --git a/langs/layers/cs.json b/langs/layers/cs.json
index c5782f7b0..1934d402a 100644
--- a/langs/layers/cs.json
+++ b/langs/layers/cs.json
@@ -541,9 +541,6 @@
"mappings": {
"0": {
"then": "Toto dílo slouží také jako památník"
- },
- "1": {
- "then": "Toto dílo neslouží jako lavička"
}
},
"question": "Slouží toto dílo jako památník?"
diff --git a/langs/layers/es.json b/langs/layers/es.json
index e1b22ea91..a97819acd 100644
--- a/langs/layers/es.json
+++ b/langs/layers/es.json
@@ -485,9 +485,6 @@
"mappings": {
"0": {
"then": "Esta obra de arte también sirve como monumento conmemorativo"
- },
- "1": {
- "then": "Esta obra de arte no sirve como banco"
}
},
"question": "¿Sirve esta obra de arte como monumento conmemorativo?"
diff --git a/langs/layers/fr.json b/langs/layers/fr.json
index ef3a0b46c..9f93f048a 100644
--- a/langs/layers/fr.json
+++ b/langs/layers/fr.json
@@ -425,9 +425,6 @@
"mappings": {
"0": {
"then": "Cette œuvre est un mémorial"
- },
- "1": {
- "then": "Cette œuvre ne sert pas de banc"
}
},
"question": "Cet œuvre a-t-elle un rôle de mémorial ?"
From 984c411d06d282d3a213cdb26dc3916a47c971eb Mon Sep 17 00:00:00 2001
From: Pieter Vander Vennet
Date: Tue, 15 Oct 2024 16:51:41 +0200
Subject: [PATCH 55/55] Chore: formatting (to prepare merge)
---
langs/en.json | 1768 ++++++++++++++++++++++++-------------------------
1 file changed, 884 insertions(+), 884 deletions(-)
diff --git a/langs/en.json b/langs/en.json
index ccb74045e..0a4f3b554 100644
--- a/langs/en.json
+++ b/langs/en.json
@@ -1,900 +1,900 @@
{
- "advanced": {
- "title": "Advanced features"
+ "advanced": {
+ "title": "Advanced features"
+ },
+ "centerMessage": {
+ "allFilteredAway": "No feature in view meets all filters",
+ "loadingData": "Loading data…",
+ "noData": "There are no relevant features in the current view",
+ "ready": "Done!",
+ "retrying": "Loading data failed. Trying again in {count} seconds…",
+ "zoomIn": "Zoom in to view or edit the data"
+ },
+ "communityIndex": {
+ "available": "This community speaks {native}",
+ "intro": "Get in touch with other people to get to know them, learn from them, …",
+ "notAvailable": "This community does not speak {native}",
+ "title": "Get in touch with others"
+ },
+ "delete": {
+ "cancel": "Cancel",
+ "cannotBeDeleted": "This feature can not be deleted",
+ "delete": "Delete",
+ "deletedTitle": "Deleted feature",
+ "explanations": {
+ "hardDelete": "This feature will be deleted in OpenStreetMap. It can be recovered by an experienced contributor",
+ "retagNoOtherThemes": "This feature will be reclassified and hidden from this application",
+ "retagOtherThemes": "This feature will be retagged and visible in {otherThemes}",
+ "selectReason": "Please, select why this feature should be deleted",
+ "softDelete": "This feature will be updated and hidden from this application. {reason}"
},
- "centerMessage": {
- "allFilteredAway": "No feature in view meets all filters",
- "loadingData": "Loading data…",
- "noData": "There are no relevant features in the current view",
- "ready": "Done!",
- "retrying": "Loading data failed. Trying again in {count} seconds…",
- "zoomIn": "Zoom in to view or edit the data"
+ "isChanged": "This feature has been changed and no longer matches this layer",
+ "isDeleted": "This feature is deleted",
+ "isntAPoint": "Only nodes can be deleted, the selected feature is a way, area or relation.",
+ "loading": "Inspecting properties to check if this feature can be deleted.",
+ "loginToDelete": "You must be logged in to delete a feature",
+ "notEnoughExperience": "This feature was made by someone else.",
+ "onlyEditedByLoggedInUser": "This feature has only been edited by yourself, you can safely delete it.",
+ "partOfOthers": "This node is part of some way or relation and can not be deleted directly.",
+ "readMessages": "You have unread messages. Read these before deleting a feature - someone might have feedback",
+ "reasons": {
+ "disused": "This feature is disused or removed",
+ "duplicate": "This feature is a duplicate of another feature",
+ "notFound": "This feature couldn't be found",
+ "test": "This was a testing feature - the feature was never actually there"
},
- "communityIndex": {
- "available": "This community speaks {native}",
- "intro": "Get in touch with other people to get to know them, learn from them, …",
- "notAvailable": "This community does not speak {native}",
- "title": "Get in touch with others"
+ "safeDelete": "This feature can be safely deleted.",
+ "useSomethingElse": "Use another OpenStreetMap-editor to delete it instead",
+ "whyDelete": "Why should this feature be deleted?"
+ },
+ "external": {
+ "allAreApplied": "All missing, external values have been copied into OpenStreetMap",
+ "allIncluded": "Data loaded from {source} is contained in OpenStreetMap",
+ "apply": "Apply",
+ "applyAll": "Apply all missing values",
+ "conflicting": {
+ "intro": "OpenStreetMap has a different value then the source website for the following values.",
+ "title": "Conflicting items"
},
- "delete": {
- "cancel": "Cancel",
- "cannotBeDeleted": "This feature can not be deleted",
- "delete": "Delete",
- "deletedTitle": "Deleted feature",
- "explanations": {
- "hardDelete": "This feature will be deleted in OpenStreetMap. It can be recovered by an experienced contributor",
- "retagNoOtherThemes": "This feature will be reclassified and hidden from this application",
- "retagOtherThemes": "This feature will be retagged and visible in {otherThemes}",
- "selectReason": "Please, select why this feature should be deleted",
- "softDelete": "This feature will be updated and hidden from this application. {reason}"
- },
- "isChanged": "This feature has been changed and no longer matches this layer",
- "isDeleted": "This feature is deleted",
- "isntAPoint": "Only nodes can be deleted, the selected feature is a way, area or relation.",
- "loading": "Inspecting properties to check if this feature can be deleted.",
- "loginToDelete": "You must be logged in to delete a feature",
- "notEnoughExperience": "This feature was made by someone else.",
- "onlyEditedByLoggedInUser": "This feature has only been edited by yourself, you can safely delete it.",
- "partOfOthers": "This node is part of some way or relation and can not be deleted directly.",
- "readMessages": "You have unread messages. Read these before deleting a feature - someone might have feedback",
- "reasons": {
- "disused": "This feature is disused or removed",
- "duplicate": "This feature is a duplicate of another feature",
- "notFound": "This feature couldn't be found",
- "test": "This was a testing feature - the feature was never actually there"
- },
- "safeDelete": "This feature can be safely deleted.",
- "useSomethingElse": "Use another OpenStreetMap-editor to delete it instead",
- "whyDelete": "Why should this feature be deleted?"
+ "currentInOsmIs": "At the moment, OpenStreetMap has the following value recorded:",
+ "done": "Done",
+ "error": "Could not load linked data from the website",
+ "lastModified": "External data has been last modified on {date}",
+ "loadedFrom": "The following data is loaded from {source} using the embedded JSON-LD",
+ "missing": {
+ "intro": "OpenStreetMap has no information about the following attributes",
+ "title": "Missing items"
},
- "external": {
- "allAreApplied": "All missing, external values have been copied into OpenStreetMap",
- "allIncluded": "Data loaded from {source} is contained in OpenStreetMap",
- "apply": "Apply",
- "applyAll": "Apply all missing values",
- "conflicting": {
- "intro": "OpenStreetMap has a different value then the source website for the following values.",
- "title": "Conflicting items"
- },
- "currentInOsmIs": "At the moment, OpenStreetMap has the following value recorded:",
- "done": "Done",
- "error": "Could not load linked data from the website",
- "lastModified": "External data has been last modified on {date}",
- "loadedFrom": "The following data is loaded from {source} using the embedded JSON-LD",
- "missing": {
- "intro": "OpenStreetMap has no information about the following attributes",
- "title": "Missing items"
- },
- "noDataLoaded": "The external website has no linked data that could be loaded",
- "overwrite": "Overwrite in OpenStreetMap",
- "title": "Structured data loaded from the external website"
+ "noDataLoaded": "The external website has no linked data that could be loaded",
+ "overwrite": "Overwrite in OpenStreetMap",
+ "title": "Structured data loaded from the external website"
+ },
+ "favourite": {
+ "loginNeeded": "Log in
A personal layout is only available for OpenStreetMap users",
+ "panelIntro": "Your personal theme
Activate your favourite layers from all the official themes",
+ "reload": "Reload the data"
+ },
+ "favouritePoi": {
+ "button": {
+ "isFavourite": "This location is currently marked as favourite and will show up on all thematic maps of MapComplete you visit.",
+ "isMarkedShort": "Marked as favourite location",
+ "isNotMarkedShort": "Not marked as favourite",
+ "markAsFavouriteTitle": "Mark this location as favourite location",
+ "markDescription": "Add this location to a personal list of your favourites",
+ "unmark": "Remove from your personal list of favourites",
+ "unmarkNotDeleted": "This point will not be deleted and still be visible on the appropriate map for you and others"
},
- "favourite": {
- "loginNeeded": "Log in
A personal layout is only available for OpenStreetMap users",
- "panelIntro": "Your personal theme
Activate your favourite layers from all the official themes",
- "reload": "Reload the data"
+ "downloadGeojson": "Download your favourites as geojson",
+ "downloadGpx": "Download your favourites as GPX",
+ "intro": "You marked {length} locations as a favourite location.",
+ "introPrivacy": "This list is only visible to you",
+ "loginToSeeList": "Login to see the list of locations you marked as favourite",
+ "tab": "Your favourites and reviews",
+ "title": "Your favourite locations"
+ },
+ "flyer": {
+ "aerial": "This map uses a different background, namely aerial imagery by Agentschap Informatie Vlaanderen",
+ "callToAction": "Test it on mapcomplete.org",
+ "cyclofix": "Bicycle pumps, repair stations, drinking water and cycle shops are on CycloFix",
+ "description": "An A4-landscape flyer to promote MapComplete",
+ "editing": {
+ "ex": "A simplified example of what this looks like for a nature reserve is shown below.",
+ "intro": "The user is greeted by a map with features. Upon selecting one, the information about that feature is shown.",
+ "title": "What does the interface look like?"
},
- "favouritePoi": {
- "button": {
- "isFavourite": "This location is currently marked as favourite and will show up on all thematic maps of MapComplete you visit.",
- "isMarkedShort": "Marked as favourite location",
- "isNotMarkedShort": "Not marked as favourite",
- "markAsFavouriteTitle": "Mark this location as favourite location",
- "markDescription": "Add this location to a personal list of your favourites",
- "unmark": "Remove from your personal list of favourites",
- "unmarkNotDeleted": "This point will not be deleted and still be visible on the appropriate map for you and others"
- },
- "downloadGeojson": "Download your favourites as geojson",
- "downloadGpx": "Download your favourites as GPX",
- "intro": "You marked {length} locations as a favourite location.",
- "introPrivacy": "This list is only visible to you",
- "loginToSeeList": "Login to see the list of locations you marked as favourite",
- "tab": "Your favourites and reviews",
- "title": "Your favourite locations"
+ "examples": "There are many thematic maps available of which a few are shown here.\n\nThere are many more thematic maps online: about healthcare, indoor navigation, wheelchair accessibility, waste facilities, public bookcases, pedestrian crossings with a rainbow-painting,… Discover them all on mapcomplete.org",
+ "fakeui": {
+ "add_images": "Add images with a few clicks",
+ "attributes": "Shows attributes in a friendly way",
+ "edit": "Wrong or outdated info? The edit button is right there.",
+ "question": "If an attribute is not yet known, MapComplete shows a question",
+ "see_images": "Shows images from previous contributors, Wikipedia, Mapillary, …",
+ "wikipedia": "Linked Wikipedia articles are shown"
},
- "flyer": {
- "aerial": "This map uses a different background, namely aerial imagery by Agentschap Informatie Vlaanderen",
- "callToAction": "Test it on mapcomplete.org",
- "cyclofix": "Bicycle pumps, repair stations, drinking water and cycle shops are on CycloFix",
- "description": "An A4-landscape flyer to promote MapComplete",
- "editing": {
- "ex": "A simplified example of what this looks like for a nature reserve is shown below.",
- "intro": "The user is greeted by a map with features. Upon selecting one, the information about that feature is shown.",
- "title": "What does the interface look like?"
- },
- "examples": "There are many thematic maps available of which a few are shown here.\n\nThere are many more thematic maps online: about healthcare, indoor navigation, wheelchair accessibility, waste facilities, public bookcases, pedestrian crossings with a rainbow-painting,… Discover them all on mapcomplete.org",
- "fakeui": {
- "add_images": "Add images with a few clicks",
- "attributes": "Shows attributes in a friendly way",
- "edit": "Wrong or outdated info? The edit button is right there.",
- "question": "If an attribute is not yet known, MapComplete shows a question",
- "see_images": "Shows images from previous contributors, Wikipedia, Mapillary, …",
- "wikipedia": "Linked Wikipedia articles are shown"
- },
- "frontParagraph": "MapComplete is an easy to use web application to collect geodata in OpenStreetMap, enabling collecting and managing relevant data in an open, crowdsourced and reusable way.\n\nNew categories and attributes can be added upon request.",
- "lines_too": "Lines and polygons are shown too. Attributes and images can be added and updated on those objects as well.",
- "mapcomplete": {
- "customize": "MapComplete can be tailored to your needs, with new map layers, new functionalities or styled with your organisations colours and font.\nWe also have experience with starting campaigns to crowdsource geodata.\nContact pietervdvn@posteo.net for a quote.",
- "intro": "MapComplete is a website which has {mapCount} interactive maps. Every single map allows to add or update information. It has many features:",
- "li0": "Show where POI are",
- "li1": "Add new points and update info on existing ones",
- "li2": "Add contact information and opening hours easily",
- "li3": "Can be placed in other websites as iFrame",
- "li4": "Embedded within the OpenStreetMap-ecosystem, which has many tools available",
- "li5": "Functionality to import existing datasets",
- "li6": "Many advanced features, such as tree detection and advanced input methods",
- "li7": "Copylefted libre software (GPL licensed) and gratis to use",
- "title": "What is MapComplete?"
- },
- "onwheels": "Indoor maps for wheelchair users are available as well.",
- "osm": "OpenStreetMap is an online map which can be edited and reused by anyone for any purpose as long as attribution is given and the data is kept open.\n\nIt is the biggest geospatial database in the world and is reused by thousands of applications and websites.",
- "tagline": "Collect geodata with OpenStreetMap",
- "title": "mapcomplete.org",
- "toerisme_vlaanderen": "For joint project with Visit Flanders, 'Pin your point' was created. Over 160 contributors added a few thousand benches and picnictables and spotted 100 charging station for bicycles.",
- "whatIsOsm": "What is OpenStreetMap?"
+ "frontParagraph": "MapComplete is an easy to use web application to collect geodata in OpenStreetMap, enabling collecting and managing relevant data in an open, crowdsourced and reusable way.\n\nNew categories and attributes can be added upon request.",
+ "lines_too": "Lines and polygons are shown too. Attributes and images can be added and updated on those objects as well.",
+ "mapcomplete": {
+ "customize": "MapComplete can be tailored to your needs, with new map layers, new functionalities or styled with your organisations colours and font.\nWe also have experience with starting campaigns to crowdsource geodata.\nContact pietervdvn@posteo.net for a quote.",
+ "intro": "MapComplete is a website which has {mapCount} interactive maps. Every single map allows to add or update information. It has many features:",
+ "li0": "Show where POI are",
+ "li1": "Add new points and update info on existing ones",
+ "li2": "Add contact information and opening hours easily",
+ "li3": "Can be placed in other websites as iFrame",
+ "li4": "Embedded within the OpenStreetMap-ecosystem, which has many tools available",
+ "li5": "Functionality to import existing datasets",
+ "li6": "Many advanced features, such as tree detection and advanced input methods",
+ "li7": "Copylefted libre software (GPL licensed) and gratis to use",
+ "title": "What is MapComplete?"
},
- "general": {
- "404": "This page does not exist",
- "about": "Easily edit and add OpenStreetMap for a certain theme",
- "aboutMapComplete": {
- "intro": "Use MapComplete to add OpenStreetMap info on a single theme. Answer questions, and within minutes your contributions are available everywhere. In most themes you can add pictures or even leave a review. The theme maintainer defines elements, questions and languages for it."
+ "onwheels": "Indoor maps for wheelchair users are available as well.",
+ "osm": "OpenStreetMap is an online map which can be edited and reused by anyone for any purpose as long as attribution is given and the data is kept open.\n\nIt is the biggest geospatial database in the world and is reused by thousands of applications and websites.",
+ "tagline": "Collect geodata with OpenStreetMap",
+ "title": "mapcomplete.org",
+ "toerisme_vlaanderen": "For joint project with Visit Flanders, 'Pin your point' was created. Over 160 contributors added a few thousand benches and picnictables and spotted 100 charging station for bicycles.",
+ "whatIsOsm": "What is OpenStreetMap?"
+ },
+ "general": {
+ "404": "This page does not exist",
+ "about": "Easily edit and add OpenStreetMap for a certain theme",
+ "aboutMapComplete": {
+ "intro": "Use MapComplete to add OpenStreetMap info on a single theme. Answer questions, and within minutes your contributions are available everywhere. In most themes you can add pictures or even leave a review. The theme maintainer defines elements, questions and languages for it."
+ },
+ "add": {
+ "addNew": "Add {category}",
+ "backToSelect": "Select a different category",
+ "confirmButton": "Add a {category}
Your addition is visible for everyone
",
+ "confirmLocation": "Confirm this location",
+ "confirmTitle": "Add a {title}?",
+ "confirmWarning": "The feature you create here will be visible for everyone. Please, only add things on to the map if they truly exist. A lot of applications use this data.",
+ "creating": "Creating a new point...",
+ "disableFilters": "Disable all filters",
+ "disableFiltersExplanation": "Some features might be hidden by a filter",
+ "enableLayer": "Enable layer {name}",
+ "hasBeenImported": "This feature has already been imported",
+ "import": {
+ "hasBeenImported": "This object has been imported",
+ "howToTest": "To test, add test=true or backend=osm-test to the URL. The changeset will be printed in the console. Please open a PR to officialize this theme to actually enable the import button.",
+ "importTags": "The element will receive {tags}",
+ "officialThemesOnly": "The import button is disabled for unofficial themes to prevent accidents",
+ "wrongType": "This feature is not a node or a way and can not be imported",
+ "wrongTypeToConflate": "This feature is not a node or a way and can not be conflated",
+ "zoomInMore": "Zoom in more to import this feature"
+ },
+ "importTags": "The element will receive {tags}",
+ "intro": "You clicked somewhere where no data is known yet.
",
+ "layerNotEnabled": "The layer {layer} is not enabled. Enable this layer to add a feature",
+ "openLayerControl": "Open the layer control box",
+ "pleaseLogin": "Please log in with OpenStreetMap to add a new feature",
+ "presetInfo": "The new POI will have {tags}",
+ "stillLoading": "The data is still loading. Please wait a bit before you add a new feature.",
+ "title": "Add a new feature",
+ "warnVisibleForEveryone": "Your addition will be visible for everyone",
+ "wrongType": "This feature is not a node or a way and can not be imported",
+ "zoomInFurther": "Zoom in further to add a feature",
+ "zoomInMore": "Zoom in more to import this feature"
+ },
+ "apply_button": {
+ "appliedOnAnotherObject": "The object {id} will receive {tags}",
+ "isApplied": "The changes are applied"
+ },
+ "attribution": {
+ "attributionBackgroundLayer": "The current background layer is {name}",
+ "attributionBackgroundLayerWithCopyright": "The current background layer is {name}: {copyright}",
+ "attributionContent": "All data is provided by OpenStreetMap, freely reusable under the Open DataBase License.
",
+ "attributionTitle": "Attribution notice",
+ "codeContributionsBy": "MapComplete has been built by {contributors} and {hiddenCount} more contributors",
+ "donate": "Support MapComplete financially",
+ "editId": "Open the OpenStreetMap online editor here",
+ "editJosm": "Edit here with JOSM",
+ "emailCreators": "Send an email to the creators",
+ "followOnMastodon": "Follow MapComplete on Mastodon",
+ "gotoSourceCode": "View the source code",
+ "iconAttribution": {
+ "title": "Used icons"
+ },
+ "josmNotOpened": "JOSM could not be reached. Make sure it is opened and remote control is enabled",
+ "josmOpened": "JOSM is opened",
+ "madeBy": "Made by {author}",
+ "mapContributionsBy": "The current visible data has edits made by {contributors}",
+ "mapContributionsByAndHidden": "The current visible data has edits made by {contributors} and {hiddenCount} more contributors",
+ "mapDataByOsm": "Map data: OpenStreetMap",
+ "mapillaryHelp": "Mapillary is an online service which gathers street-level pictures and offers them under a free license. Contributors are allowed to use these pictures to improve OpenStreetMap",
+ "openIssueTracker": "File a bug",
+ "openMapillary": "Open Mapillary here",
+ "openOsmcha": "See latest edits made with {theme}",
+ "openOsmchaLastWeek": "See edits from the last 7 days",
+ "openPanoramax": "Open Panoramax here",
+ "openThemeDocumentation": "Open the documentation for thematic map {name}",
+ "panoramaxHelp": "Panoramax is an online service which gathers street-level pictures and offers them under a free license. Contributors are allowed to use these pictures to improve OpenStreetMap",
+ "panoramaxLicenseCCBYSA": "Your pictures are published under CC-BY-SA - everyone can reuse your image if they mention your name",
+ "seeOnMapillary": "See this image on Mapillary",
+ "themeBy": "Theme maintained by {author}",
+ "title": "Copyright and attribution",
+ "translatedBy": "MapComplete has been translated by {contributors} and {hiddenCount} more contributors"
+ },
+ "back": "Back",
+ "backToIndex": "See all thematic maps",
+ "backToMap": "Back to the map",
+ "backgroundMap": "Select a background layer",
+ "backgroundSwitch": "Switch background",
+ "cancel": "Cancel",
+ "clearPendingChanges": "Clear pending changes",
+ "confirm": "Confirm",
+ "customThemeIntro": "These are previously visited user-generated themes.",
+ "customThemeTitle": "Custom themes",
+ "download": {
+ "custom": {
+ "download": "Download PNG of {width}mm wide and {height}mm high",
+ "downloadHelper": "This is meant for print",
+ "height": "Image height (in mm):",
+ "title": "Download an image with a custom width and height",
+ "width": "Image width (in mm): "
+ },
+ "downloadAsPdf": "Download a PDF of the current map",
+ "downloadAsPdfHelper": "Ideal to print the current map",
+ "downloadAsPng": "Download as image",
+ "downloadAsPngHelper": "Ideal to include in reports",
+ "downloadAsSvg": "Download an SVG of the current map",
+ "downloadAsSvgHelper": "Compatible with Inkscape or Adobe Illustrator; will need further processing",
+ "downloadAsSvgLinesOnly": "Download an SVG of the current map only containing lines",
+ "downloadAsSvgLinesOnlyHelper": "Self-intersecting lines are broken up, can be used with some 3D-software",
+ "downloadCSV": "Download visible data as CSV",
+ "downloadCSVHelper": "Compatible with LibreOffice Calc, Excel, …",
+ "downloadFeatureAsGeojson": "Download as GeoJSON-file",
+ "downloadFeatureAsGpx": "Download as GPX-file",
+ "downloadGeoJsonHelper": "Compatible with QGIS, ArcGIS, ESRI, …",
+ "downloadGeojson": "Download visible data as GeoJSON",
+ "downloadGpx": "Download as GPX-file",
+ "downloadGpxHelper": "A GPX-file can be used with most navigation devices and applications",
+ "downloadImage": "Download image",
+ "exporting": "Exporting…",
+ "includeMetaData": "Include metadata (last editor, calculated values, …)",
+ "licenseInfo": "Copyright notice
The provided data is available under ODbL. Reusing it is gratis for any purpose, but - the attribution © OpenStreetMap contributors must be shown
- Any change must be published under the same license
Please read the full copyright notice for details.",
+ "noDataLoaded": "No data is loaded yet. Download will be available soon",
+ "pdf": {
+ "current_view_generic": "Export a PDF of the current view for {paper_size} in {orientation} orientation"
+ },
+ "title": "Download",
+ "toMuch": "There are to many features to download them all",
+ "uploadGpx": "Upload your track to OpenStreetMap"
+ },
+ "enableGeolocationForSafari": "Did you not get the popup to ask for geopermission?",
+ "enableGeolocationForSafariLink": "Learn how to enable the geolocation permission in settings",
+ "eraseValue": "Erase this value",
+ "error": "Something went wrong",
+ "example": "Example",
+ "examples": "Examples",
+ "fewChangesBefore": "Please, answer a few questions of existing features before adding a new feature.",
+ "filterPanel": {
+ "allTypes": "All types",
+ "disableAll": "Disable all",
+ "enableAll": "Enable all"
+ },
+ "geopermissionDenied": "Using the geolocation was denied",
+ "getStartedLogin": "Log in with OpenStreetMap to get started",
+ "getStartedNewAccount": " or create a new account",
+ "goToInbox": "Open inbox",
+ "histogram": {
+ "error_loading": "Could not load the histogram"
+ },
+ "labels": {
+ "background": "Change background",
+ "filter": "Filter data",
+ "jumpToLocation": "Go to your current location",
+ "locationNotAvailable": "GPS location not available. Does this device have location or are you in a tunnel?",
+ "menu": "Menu",
+ "zoomIn": "Zoom in",
+ "zoomOut": "Zoom out"
+ },
+ "layerSelection": {
+ "title": "Select layers",
+ "zoomInToSeeThisLayer": "Zoom in to see this layer"
+ },
+ "levelSelection": {
+ "addNewOnLevel": "Is the new point location on level {level}?",
+ "confirmLevel": "Yes, add {preset} on level {level}"
+ },
+ "loading": "Loading…",
+ "loadingTheme": "Loading {theme}…",
+ "loginFailed": "Logging in into OpenStreetMap failed",
+ "loginFailedOfflineMode": "OpenStreetMap.org is currently not available due to maintenance. Making edits will be possible soon",
+ "loginFailedReadonlyMode": "OpenStreetMap.org is currently in readonly mode due to maintenance. Making edits will be possible soon",
+ "loginFailedUnreachableMode": "OpenStreetMap.org is currently not reachable. Are you connected to the internet or do you block third parties? Try again later",
+ "loginOnlyNeededToEdit": "if you want to make changes",
+ "loginToStart": "Log in to answer this question",
+ "loginWithOpenStreetMap": "Login with OpenStreetMap",
+ "logout": "Log out",
+ "mappingsAreHidden": "Some options are hidden. Use search to show more options.",
+ "menu": {
+ "aboutCurrentThemeTitle": "About this map",
+ "aboutMapComplete": "About MapComplete",
+ "filter": "Filter data",
+ "moreUtilsTitle": "Discover more",
+ "openHereDifferentApp": "Open the current location in other applications",
+ "showIntroduction": "Show introduction",
+ "title": "Menu"
+ },
+ "morescreen": {
+ "createYourOwnTheme": "Create your own MapComplete theme from scratch",
+ "enterToOpen": "Press enter to open theme",
+ "hiddenExplanation": "These themes are only accessible to those with the link. You have discovered {hidden_discovered} of {total_hidden} hidden themes.",
+ "noMatchingThemes": "No themes matched your search criteria",
+ "noSearch": "Show all themes",
+ "previouslyHiddenTitle": "Previously visited hidden themes",
+ "requestATheme": "If you want a custom-built theme, request it in the issue tracker",
+ "searchForATheme": "Search for a theme",
+ "streetcomplete": "Another, similar application is StreetComplete."
+ },
+ "nameInlineQuestion": "The name of this {category} is $$$",
+ "next": "Next",
+ "noMatchingMapping": "No entries match your search…",
+ "noNameCategory": "{category} without a name",
+ "noTagsSelected": "No tags selected",
+ "notValid": "Select a valid value to continue",
+ "number": "number",
+ "openStreetMapIntro": "An Open Map
One that everyone can use and edit freely. A single place to store all geo-info. Different, small, incompatible and outdated maps are not needed anywhere.
OpenStreetMap is not the enemy map. The map data can be used freely (with attribution and publication of changes to that data). Everyone can add new data and fix errors. This website uses OpenStreetMap. All the data is from there, and your answers and corrections are used all over.
Many people and apps already use OpenStreetMap: Organic Maps, OsmAnd, but also the maps at Facebook, Instagram, Apple-maps and Bing-maps are (partly) powered by OpenStreetMap.
",
+ "openTheMap": "Open the map",
+ "openTheMapAtGeolocation": "Zoom to your location",
+ "openTheMapReason": "to view, edit and add information",
+ "opening_hours": {
+ "all_days_from": "Opened every day {ranges}",
+ "closed_permanently": "Closed for an unknown duration",
+ "closed_until": "Opens at {date}",
+ "error": "Could not parse the opening hours",
+ "error_loading": "Error: could not visualize these opening hours.",
+ "friday": "On friday {ranges}",
+ "loadingCountry": "Determining country…",
+ "monday": "On monday {ranges}",
+ "not_all_rules_parsed": "These opening hours are complicated. The following rules are ignored in the input element:",
+ "on_weekdays": "Opened on weekdays {ranges}",
+ "on_weekends": "Opened on weekends {ranges}",
+ "openTill": "till",
+ "open_24_7": "Open around the clock",
+ "open_during_ph": "During a public holiday, it is",
+ "opensAt": "from",
+ "ph_closed": "closed",
+ "ph_not_known": " ",
+ "ph_open": "open",
+ "ph_open_as_usual": "open, as usual",
+ "ranges": "from {starttime} till {endtime}",
+ "rangescombined": "{range0} and {range1}",
+ "saturday": "On saturday {ranges}",
+ "sunday": "On sunday {ranges}",
+ "thursday": "On thursday {ranges}",
+ "tuesday": "On tuesday {ranges}",
+ "unknown": "The opening hours are unknown",
+ "wednesday": "On wednesday {ranges}"
+ },
+ "osmLinkTooltip": "Browse this object on OpenStreetMap for history and more editing options",
+ "pdf": {
+ "attr": "Map data © OpenStreetMap Contributors, reusable under ODbL",
+ "attrBackground": "Background layer: {background}",
+ "generatedWith": "Generated with mapcomplete.org/{layoutid}",
+ "versionInfo": "v{version} - generated on {date}"
+ },
+ "pickLanguage": "Select language",
+ "poweredByMapComplete": "Powered by MapComplete - crowdsourced, thematic maps with OpenStreetMap",
+ "poweredByOsm": "Powered by OpenStreetMap",
+ "questionBox": {
+ "answeredMultiple": "You answered {answered} questions",
+ "answeredMultipleSkippedMultiple": "You answered {answered} questions and skipped {skipped} questions",
+ "answeredMultipleSkippedOne": "You answered {answered} questions and skipped one question",
+ "answeredOne": "You answered one question",
+ "answeredOneSkippedMultiple": "You answered one question and skipped {skipped} questions",
+ "answeredOneSkippedOne": "You answered one and skipped one question",
+ "done": "No more questions! Thank you!",
+ "reactivate": "Reactivate skipped questions",
+ "skippedMultiple": "You skipped {skipped} questions",
+ "skippedOne": "You skipped one question"
+ },
+ "questions": {
+ "emailIs": "The email address of this {category} is {email}",
+ "emailOf": "What is the email address of {category}?",
+ "phoneNumberIs": "The phone number of this {category} is {phone}",
+ "phoneNumberOf": "What is the phone number of {category}?",
+ "websiteIs": "Website: {website}",
+ "websiteOf": "What is the website of {category}?"
+ },
+ "readYourMessages": "Please, read all your OpenStreetMap-messages before adding a new feature.",
+ "removeLocationHistory": "Delete the location history",
+ "retry": "Retry",
+ "returnToTheMap": "Return to the map",
+ "save": "Save",
+ "screenToSmall": "Open {theme} in a new window",
+ "search": {
+ "activeFilters": "Active filters",
+ "clearFilters": "Clear filters",
+ "deleteSearchHistory": "Delete location history",
+ "deleteThemeHistory": "Delete earlier visited themes",
+ "editSearchSyncSettings": "Edit sync settings",
+ "editThemeSync": "Edit sync settings",
+ "error": "Something went wrong…",
+ "instructions": "Use the search bar above to search for locations, filters or other thematic maps",
+ "locations": "Locations",
+ "nMoreFilters": "{n} more",
+ "nothing": "Nothing found…",
+ "nothingFor": "No results found for {term}",
+ "otherMaps": "Other maps",
+ "pickFilter": "Pick a filter",
+ "recentThemes": "Recently visited maps",
+ "recents": "Recently seen places",
+ "search": "Search a location",
+ "searchShort": "Search…",
+ "searching": "Searching…"
+ },
+ "searchAnswer": "Search an option…",
+ "seeIndex": "See the overview with all thematic maps",
+ "share": "Share",
+ "sharescreen": {
+ "copiedToClipboard": "Link copied to clipboard",
+ "documentation": "For more information on available URL-parameters, consult the documentation",
+ "embedIntro": "Embed on your website
Please, embed this map into your website.
We encourage you to do it - you don't even have to ask permission.
It is free, and always will be. The more people are using this, the more valuable it becomes.",
+ "fsBackground": "Enable switching backgrounds",
+ "fsFilter": "Enable the possibility to toggle layers and filters",
+ "fsGeolocation": "Enable geolocation",
+ "fsUserbadge": "Enable the login button and thus the possibility to make changes",
+ "fsWelcomeMessage": "Show the welcome message popup and associated tabs",
+ "intro": "Share this map by copying the link below and sending it to friends and family:",
+ "openInOtherApplications": "Open the current location with another map application",
+ "openLayers": "Open the layers and filters menu",
+ "options": "Sharing options",
+ "stateIsIncluded": "The current state of the layers and filters is included in the shared link and iframe.",
+ "thanksForSharing": "Thanks for sharing!",
+ "title": "Share this map"
+ },
+ "skip": "Skip this question",
+ "testing": "Testing - changes won't be saved",
+ "uploadError": "Error while uploading changes: {error}",
+ "uploadGpx": {
+ "choosePermission": "Choose below how your track should be shared:",
+ "confirm": "Confirm upload",
+ "gpxServiceOffline": "The GPX-service is currently offline - uploading is currently not possible. Try again later.",
+ "intro0": "By uploading your track, OpenStreetMap.org will retain a full copy of the track.",
+ "intro1": "You will be able to download your track again and to load them into OpenStreetMap editing programs",
+ "meta": {
+ "descriptionIntro": "Optionally, you can enter a description of your trace:",
+ "descriptionPlaceHolder": "Enter a description of your trace",
+ "intro": "Add a title for your track:",
+ "title": "Title and description",
+ "titlePlaceholder": "Enter the title of your trace"
+ },
+ "modes": {
+ "private": {
+ "docs": "The points of your track will be shared and aggregated among other tracks. The full track will be visible to you and you will be able to load it into other editing programs. OpenStreetMap.org retains a copy of your trace",
+ "name": "Anonymous"
},
- "add": {
- "addNew": "Add {category}",
- "backToSelect": "Select a different category",
- "confirmButton": "Add a {category}
Your addition is visible for everyone
",
- "confirmLocation": "Confirm this location",
- "confirmTitle": "Add a {title}?",
- "confirmWarning": "The feature you create here will be visible for everyone. Please, only add things on to the map if they truly exist. A lot of applications use this data.",
- "creating": "Creating a new point...",
- "disableFilters": "Disable all filters",
- "disableFiltersExplanation": "Some features might be hidden by a filter",
- "enableLayer": "Enable layer {name}",
- "hasBeenImported": "This feature has already been imported",
- "import": {
- "hasBeenImported": "This object has been imported",
- "howToTest": "To test, add test=true or backend=osm-test to the URL. The changeset will be printed in the console. Please open a PR to officialize this theme to actually enable the import button.",
- "importTags": "The element will receive {tags}",
- "officialThemesOnly": "The import button is disabled for unofficial themes to prevent accidents",
- "wrongType": "This feature is not a node or a way and can not be imported",
- "wrongTypeToConflate": "This feature is not a node or a way and can not be conflated",
- "zoomInMore": "Zoom in more to import this feature"
- },
- "importTags": "The element will receive {tags}",
- "intro": "You clicked somewhere where no data is known yet.
",
- "layerNotEnabled": "The layer {layer} is not enabled. Enable this layer to add a feature",
- "openLayerControl": "Open the layer control box",
- "pleaseLogin": "Please log in with OpenStreetMap to add a new feature",
- "presetInfo": "The new POI will have {tags}",
- "stillLoading": "The data is still loading. Please wait a bit before you add a new feature.",
- "title": "Add a new feature",
- "warnVisibleForEveryone": "Your addition will be visible for everyone",
- "wrongType": "This feature is not a node or a way and can not be imported",
- "zoomInFurther": "Zoom in further to add a feature",
- "zoomInMore": "Zoom in more to import this feature"
- },
- "apply_button": {
- "appliedOnAnotherObject": "The object {id} will receive {tags}",
- "isApplied": "The changes are applied"
- },
- "attribution": {
- "attributionBackgroundLayer": "The current background layer is {name}",
- "attributionBackgroundLayerWithCopyright": "The current background layer is {name}: {copyright}",
- "attributionContent": "All data is provided by OpenStreetMap, freely reusable under the Open DataBase License.
",
- "attributionTitle": "Attribution notice",
- "codeContributionsBy": "MapComplete has been built by {contributors} and {hiddenCount} more contributors",
- "donate": "Support MapComplete financially",
- "editId": "Open the OpenStreetMap online editor here",
- "editJosm": "Edit here with JOSM",
- "emailCreators": "Send an email to the creators",
- "followOnMastodon": "Follow MapComplete on Mastodon",
- "gotoSourceCode": "View the source code",
- "iconAttribution": {
- "title": "Used icons"
- },
- "josmNotOpened": "JOSM could not be reached. Make sure it is opened and remote control is enabled",
- "josmOpened": "JOSM is opened",
- "madeBy": "Made by {author}",
- "mapContributionsBy": "The current visible data has edits made by {contributors}",
- "mapContributionsByAndHidden": "The current visible data has edits made by {contributors} and {hiddenCount} more contributors",
- "mapDataByOsm": "Map data: OpenStreetMap",
- "mapillaryHelp": "Mapillary is an online service which gathers street-level pictures and offers them under a free license. Contributors are allowed to use these pictures to improve OpenStreetMap",
- "openIssueTracker": "File a bug",
- "openMapillary": "Open Mapillary here",
- "openOsmcha": "See latest edits made with {theme}",
- "openOsmchaLastWeek": "See edits from the last 7 days",
- "openPanoramax": "Open Panoramax here",
- "openThemeDocumentation": "Open the documentation for thematic map {name}",
- "panoramaxHelp": "Panoramax is an online service which gathers street-level pictures and offers them under a free license. Contributors are allowed to use these pictures to improve OpenStreetMap",
- "panoramaxLicenseCCBYSA": "Your pictures are published under CC-BY-SA - everyone can reuse your image if they mention your name",
- "seeOnMapillary": "See this image on Mapillary",
- "themeBy": "Theme maintained by {author}",
- "title": "Copyright and attribution",
- "translatedBy": "MapComplete has been translated by {contributors} and {hiddenCount} more contributors"
- },
- "back": "Back",
- "backToIndex": "See all thematic maps",
- "backToMap": "Back to the map",
- "backgroundMap": "Select a background layer",
- "backgroundSwitch": "Switch background",
- "cancel": "Cancel",
- "clearPendingChanges": "Clear pending changes",
- "confirm": "Confirm",
- "customThemeIntro": "These are previously visited user-generated themes.",
- "customThemeTitle": "Custom themes",
- "download": {
- "custom": {
- "download": "Download PNG of {width}mm wide and {height}mm high",
- "downloadHelper": "This is meant for print",
- "height": "Image height (in mm):",
- "title": "Download an image with a custom width and height",
- "width": "Image width (in mm): "
- },
- "downloadAsPdf": "Download a PDF of the current map",
- "downloadAsPdfHelper": "Ideal to print the current map",
- "downloadAsPng": "Download as image",
- "downloadAsPngHelper": "Ideal to include in reports",
- "downloadAsSvg": "Download an SVG of the current map",
- "downloadAsSvgHelper": "Compatible with Inkscape or Adobe Illustrator; will need further processing",
- "downloadAsSvgLinesOnly": "Download an SVG of the current map only containing lines",
- "downloadAsSvgLinesOnlyHelper": "Self-intersecting lines are broken up, can be used with some 3D-software",
- "downloadCSV": "Download visible data as CSV",
- "downloadCSVHelper": "Compatible with LibreOffice Calc, Excel, …",
- "downloadFeatureAsGeojson": "Download as GeoJSON-file",
- "downloadFeatureAsGpx": "Download as GPX-file",
- "downloadGeoJsonHelper": "Compatible with QGIS, ArcGIS, ESRI, …",
- "downloadGeojson": "Download visible data as GeoJSON",
- "downloadGpx": "Download as GPX-file",
- "downloadGpxHelper": "A GPX-file can be used with most navigation devices and applications",
- "downloadImage": "Download image",
- "exporting": "Exporting…",
- "includeMetaData": "Include metadata (last editor, calculated values, …)",
- "licenseInfo": "Copyright notice
The provided data is available under ODbL. Reusing it is gratis for any purpose, but - the attribution © OpenStreetMap contributors must be shown
- Any change must be published under the same license
Please read the full copyright notice for details.",
- "noDataLoaded": "No data is loaded yet. Download will be available soon",
- "pdf": {
- "current_view_generic": "Export a PDF of the current view for {paper_size} in {orientation} orientation"
- },
- "title": "Download",
- "toMuch": "There are to many features to download them all",
- "uploadGpx": "Upload your track to OpenStreetMap"
- },
- "enableGeolocationForSafari": "Did you not get the popup to ask for geopermission?",
- "enableGeolocationForSafariLink": "Learn how to enable the geolocation permission in settings",
- "eraseValue": "Erase this value",
- "error": "Something went wrong",
- "example": "Example",
- "examples": "Examples",
- "fewChangesBefore": "Please, answer a few questions of existing features before adding a new feature.",
- "filterPanel": {
- "allTypes": "All types",
- "disableAll": "Disable all",
- "enableAll": "Enable all"
- },
- "geopermissionDenied": "Using the geolocation was denied",
- "getStartedLogin": "Log in with OpenStreetMap to get started",
- "getStartedNewAccount": " or create a new account",
- "goToInbox": "Open inbox",
- "histogram": {
- "error_loading": "Could not load the histogram"
- },
- "labels": {
- "background": "Change background",
- "filter": "Filter data",
- "jumpToLocation": "Go to your current location",
- "locationNotAvailable": "GPS location not available. Does this device have location or are you in a tunnel?",
- "menu": "Menu",
- "zoomIn": "Zoom in",
- "zoomOut": "Zoom out"
- },
- "layerSelection": {
- "title": "Select layers",
- "zoomInToSeeThisLayer": "Zoom in to see this layer"
- },
- "levelSelection": {
- "addNewOnLevel": "Is the new point location on level {level}?",
- "confirmLevel": "Yes, add {preset} on level {level}"
- },
- "loading": "Loading…",
- "loadingTheme": "Loading {theme}…",
- "loginFailed": "Logging in into OpenStreetMap failed",
- "loginFailedOfflineMode": "OpenStreetMap.org is currently not available due to maintenance. Making edits will be possible soon",
- "loginFailedReadonlyMode": "OpenStreetMap.org is currently in readonly mode due to maintenance. Making edits will be possible soon",
- "loginFailedUnreachableMode": "OpenStreetMap.org is currently not reachable. Are you connected to the internet or do you block third parties? Try again later",
- "loginOnlyNeededToEdit": "if you want to make changes",
- "loginToStart": "Log in to answer this question",
- "loginWithOpenStreetMap": "Login with OpenStreetMap",
- "logout": "Log out",
- "mappingsAreHidden": "Some options are hidden. Use search to show more options.",
- "menu": {
- "aboutCurrentThemeTitle": "About this map",
- "aboutMapComplete": "About MapComplete",
- "filter": "Filter data",
- "moreUtilsTitle": "Discover more",
- "openHereDifferentApp": "Open the current location in other applications",
- "showIntroduction": "Show introduction",
- "title": "Menu"
- },
- "morescreen": {
- "createYourOwnTheme": "Create your own MapComplete theme from scratch",
- "enterToOpen": "Press enter to open theme",
- "hiddenExplanation": "These themes are only accessible to those with the link. You have discovered {hidden_discovered} of {total_hidden} hidden themes.",
- "noMatchingThemes": "No themes matched your search criteria",
- "noSearch": "Show all themes",
- "previouslyHiddenTitle": "Previously visited hidden themes",
- "requestATheme": "If you want a custom-built theme, request it in the issue tracker",
- "searchForATheme": "Search for a theme",
- "streetcomplete": "Another, similar application is StreetComplete."
- },
- "nameInlineQuestion": "The name of this {category} is $$$",
- "next": "Next",
- "noMatchingMapping": "No entries match your search…",
- "noNameCategory": "{category} without a name",
- "noTagsSelected": "No tags selected",
- "notValid": "Select a valid value to continue",
- "number": "number",
- "openStreetMapIntro": "An Open Map
One that everyone can use and edit freely. A single place to store all geo-info. Different, small, incompatible and outdated maps are not needed anywhere.
OpenStreetMap is not the enemy map. The map data can be used freely (with attribution and publication of changes to that data). Everyone can add new data and fix errors. This website uses OpenStreetMap. All the data is from there, and your answers and corrections are used all over.
Many people and apps already use OpenStreetMap: Organic Maps, OsmAnd, but also the maps at Facebook, Instagram, Apple-maps and Bing-maps are (partly) powered by OpenStreetMap.
",
- "openTheMap": "Open the map",
- "openTheMapAtGeolocation": "Zoom to your location",
- "openTheMapReason": "to view, edit and add information",
- "opening_hours": {
- "all_days_from": "Opened every day {ranges}",
- "closed_permanently": "Closed for an unknown duration",
- "closed_until": "Opens at {date}",
- "error": "Could not parse the opening hours",
- "error_loading": "Error: could not visualize these opening hours.",
- "friday": "On friday {ranges}",
- "loadingCountry": "Determining country…",
- "monday": "On monday {ranges}",
- "not_all_rules_parsed": "These opening hours are complicated. The following rules are ignored in the input element:",
- "on_weekdays": "Opened on weekdays {ranges}",
- "on_weekends": "Opened on weekends {ranges}",
- "openTill": "till",
- "open_24_7": "Open around the clock",
- "open_during_ph": "During a public holiday, it is",
- "opensAt": "from",
- "ph_closed": "closed",
- "ph_not_known": " ",
- "ph_open": "open",
- "ph_open_as_usual": "open, as usual",
- "ranges": "from {starttime} till {endtime}",
- "rangescombined": "{range0} and {range1}",
- "saturday": "On saturday {ranges}",
- "sunday": "On sunday {ranges}",
- "thursday": "On thursday {ranges}",
- "tuesday": "On tuesday {ranges}",
- "unknown": "The opening hours are unknown",
- "wednesday": "On wednesday {ranges}"
- },
- "osmLinkTooltip": "Browse this object on OpenStreetMap for history and more editing options",
- "pdf": {
- "attr": "Map data © OpenStreetMap Contributors, reusable under ODbL",
- "attrBackground": "Background layer: {background}",
- "generatedWith": "Generated with mapcomplete.org/{layoutid}",
- "versionInfo": "v{version} - generated on {date}"
- },
- "pickLanguage": "Select language",
- "poweredByMapComplete": "Powered by MapComplete - crowdsourced, thematic maps with OpenStreetMap",
- "poweredByOsm": "Powered by OpenStreetMap",
- "questionBox": {
- "answeredMultiple": "You answered {answered} questions",
- "answeredMultipleSkippedMultiple": "You answered {answered} questions and skipped {skipped} questions",
- "answeredMultipleSkippedOne": "You answered {answered} questions and skipped one question",
- "answeredOne": "You answered one question",
- "answeredOneSkippedMultiple": "You answered one question and skipped {skipped} questions",
- "answeredOneSkippedOne": "You answered one and skipped one question",
- "done": "No more questions! Thank you!",
- "reactivate": "Reactivate skipped questions",
- "skippedMultiple": "You skipped {skipped} questions",
- "skippedOne": "You skipped one question"
- },
- "questions": {
- "emailIs": "The email address of this {category} is {email}",
- "emailOf": "What is the email address of {category}?",
- "phoneNumberIs": "The phone number of this {category} is {phone}",
- "phoneNumberOf": "What is the phone number of {category}?",
- "websiteIs": "Website: {website}",
- "websiteOf": "What is the website of {category}?"
- },
- "readYourMessages": "Please, read all your OpenStreetMap-messages before adding a new feature.",
- "removeLocationHistory": "Delete the location history",
- "retry": "Retry",
- "returnToTheMap": "Return to the map",
- "save": "Save",
- "screenToSmall": "Open {theme} in a new window",
- "search": {
- "activeFilters": "Active filters",
- "clearFilters": "Clear filters",
- "deleteSearchHistory": "Delete location history",
- "deleteThemeHistory": "Delete earlier visited themes",
- "editSearchSyncSettings": "Edit sync settings",
- "editThemeSync": "Edit sync settings",
- "error": "Something went wrong…",
- "instructions": "Use the search bar above to search for locations, filters or other thematic maps",
- "locations": "Locations",
- "nMoreFilters": "{n} more",
- "nothing": "Nothing found…",
- "nothingFor": "No results found for {term}",
- "otherMaps": "Other maps",
- "pickFilter": "Pick a filter",
- "recentThemes": "Recently visited maps",
- "recents": "Recently seen places",
- "search": "Search a location",
- "searchShort": "Search…",
- "searching": "Searching…"
- },
- "searchAnswer": "Search an option…",
- "seeIndex": "See the overview with all thematic maps",
- "share": "Share",
- "sharescreen": {
- "copiedToClipboard": "Link copied to clipboard",
- "documentation": "For more information on available URL-parameters, consult the documentation",
- "embedIntro": "Embed on your website
Please, embed this map into your website.
We encourage you to do it - you don't even have to ask permission.
It is free, and always will be. The more people are using this, the more valuable it becomes.",
- "fsBackground": "Enable switching backgrounds",
- "fsFilter": "Enable the possibility to toggle layers and filters",
- "fsGeolocation": "Enable geolocation",
- "fsUserbadge": "Enable the login button and thus the possibility to make changes",
- "fsWelcomeMessage": "Show the welcome message popup and associated tabs",
- "intro": "Share this map by copying the link below and sending it to friends and family:",
- "openInOtherApplications": "Open the current location with another map application",
- "openLayers": "Open the layers and filters menu",
- "options": "Sharing options",
- "stateIsIncluded": "The current state of the layers and filters is included in the shared link and iframe.",
- "thanksForSharing": "Thanks for sharing!",
- "title": "Share this map"
- },
- "skip": "Skip this question",
- "testing": "Testing - changes won't be saved",
- "uploadError": "Error while uploading changes: {error}",
- "uploadGpx": {
- "choosePermission": "Choose below how your track should be shared:",
- "confirm": "Confirm upload",
- "gpxServiceOffline": "The GPX-service is currently offline - uploading is currently not possible. Try again later.",
- "intro0": "By uploading your track, OpenStreetMap.org will retain a full copy of the track.",
- "intro1": "You will be able to download your track again and to load them into OpenStreetMap editing programs",
- "meta": {
- "descriptionIntro": "Optionally, you can enter a description of your trace:",
- "descriptionPlaceHolder": "Enter a description of your trace",
- "intro": "Add a title for your track:",
- "title": "Title and description",
- "titlePlaceholder": "Enter the title of your trace"
- },
- "modes": {
- "private": {
- "docs": "The points of your track will be shared and aggregated among other tracks. The full track will be visible to you and you will be able to load it into other editing programs. OpenStreetMap.org retains a copy of your trace",
- "name": "Anonymous"
- },
- "public": {
- "docs": "Your trace will be visible to everyone, both on your user profile and on the list of GPS-traces on openstreetmap.org",
- "name": "Public"
- }
- },
- "title": "Upload your track to OpenStreetMap.org",
- "uploadFinished": "Your track has been uploaded!",
- "uploading": "Uploading your trace…"
- },
- "uploadPending": "{count} changes pending",
- "uploadPendingSingle": "One change pending",
- "uploadingChanges": "Uploading changes…",
- "useSearch": "Use the search above to see more options",
- "visualFeedback": {
- "closestFeaturesAre": "{n} features within viewport.",
- "directionsAbsolute": {
- "E": "east",
- "N": "north",
- "NE": "northeast",
- "NW": "northwest",
- "S": "south",
- "SE": "southeast",
- "SW": "southwest",
- "W": "west"
- },
- "directionsRelative": {
- "behind": "on your back",
- "left": "left",
- "right": "right",
- "sharp_left": "sharply left",
- "sharp_right": "sharply right",
- "slight_left": "slightly left",
- "slight_right": "slightly right",
- "straight": "straight ahead"
- },
- "east": "Moving east",
- "fromGps": "{distance} {direction} of your location",
- "fromMapCenter": "{distance} {direction} of the map center",
- "in": "Zooming in to level {z}",
- "islocked": "View locked to your GPS-location, moving disabled. Press the geolocation button to unlock.",
- "locked": "View is now locked to your GPS-location, moving disabled.",
- "navigation": "Use arrow keys to move the map, press space to select the closest feature. Press a number to select locations further away.",
- "noCloseFeatures": "No features in view.",
- "north": "Moving north",
- "oneFeatureInView": "One feature within viewport.",
- "out": "Zooming out to level {z}",
- "south": "Moving south",
- "unlocked": "Moving enabled.",
- "viewportCenterCloseToGps": "The map is centered around your location.",
- "viewportCenterDetails": "The viewport center is {distance} away and {bearing} from your location.",
- "west": "Moving west"
- },
- "waitingForGeopermission": "Waiting for your permission to use the geolocation…",
- "waitingForLocation": "Searching your current location…",
- "weekdays": {
- "abbreviations": {
- "friday": "Fri",
- "monday": "Mon",
- "saturday": "Sat",
- "sunday": "Sun",
- "thursday": "Thu",
- "tuesday": "Tue",
- "wednesday": "Wed"
- },
- "friday": "Friday",
- "monday": "Monday",
- "saturday": "Saturday",
- "sunday": "Sunday",
- "thursday": "Thursday",
- "tuesday": "Tuesday",
- "wednesday": "Wednesday"
- },
- "welcomeBack": "Welcome back!",
- "welcomeExplanation": {
- "addNew": "Is an item missing? Use the button on the bottom-left to add a new point of interest.",
- "general": "On this map, you can see, edit and add points of interest. Zoom around to see the POI, tap one to see or edit the information. All data is sourced from and saved to OpenStreetMap, which can be freely reused."
- },
- "wikipedia": {
- "addEntry": "Add another Wikipedia page",
- "createNewWikidata": "Create a new Wikidata item",
- "doSearch": "Search above to see results",
- "failed": "Loading the Wikipedia entry failed",
- "fromWikipedia": "From Wikipedia, the free encyclopedia",
- "loading": "Loading Wikipedia…",
- "noResults": "Nothing found for {search}",
- "noWikipediaPage": "This Wikidata item has no corresponding Wikipedia page yet.",
- "previewbox": {
- "born": "Born: {value}",
- "died": "Died: {value}"
- },
- "readMore": "Read the rest of the article",
- "searchToShort": "Your search query is too short, enter a longer text",
- "searchWikidata": "Search on Wikidata",
- "wikipediaboxTitle": "Wikipedia"
+ "public": {
+ "docs": "Your trace will be visible to everyone, both on your user profile and on the list of GPS-traces on openstreetmap.org",
+ "name": "Public"
}
+ },
+ "title": "Upload your track to OpenStreetMap.org",
+ "uploadFinished": "Your track has been uploaded!",
+ "uploading": "Uploading your trace…"
},
- "hotkeyDocumentation": {
- "action": "Action",
- "closeSidebar": "Close the sidebar",
- "geolocate": "Pan the map to the current location or zoom the map to the current location. Requests geopermission",
- "intro": "MapComplete supports the following keys:",
- "key": "Key combination",
- "openFilterPanel": "Opens the POI-layers and filter panel",
- "openLayersPanel": "Opens the background layers panel",
- "queryCurrentLocation": "Display the address which is nearest the map center",
- "selectAerial": "Set the background to aerial or satellite imagery. Toggles between the two best, available layers",
- "selectFavourites": "Open the favourites page",
- "selectItem": "Select the POI which is closest to the map center (crosshair). Only when in keyboard navigation is used",
- "selectItem2": "Select the POI which is second closest element to the map center (crosshair). Only when in keyboard navigation is used",
- "selectItem3": "Select the POI which is third closest element to the map center (crosshair). Only when in keyboard navigation is used",
- "selectItemI": "Select the POI which is the {i}th closest element to the map center (crosshair). Only when in keyboard navigation is used",
- "selectMap": "Set the background to a map from external sources. Toggles between the two best, available layers",
- "selectMapnik": "Set the background layer to OpenStreetMap-carto",
- "selectOsmbasedmap": "Set the background layer to on OpenStreetMap-based map (or disable the background raster layer)",
- "selectSearch": "Select the search bar to search locations",
- "shakePhone": "Shaking your phone",
- "title": "Hotkeys",
- "translationMode": "Toggle translation mode on or off"
+ "uploadPending": "{count} changes pending",
+ "uploadPendingSingle": "One change pending",
+ "uploadingChanges": "Uploading changes…",
+ "useSearch": "Use the search above to see more options",
+ "visualFeedback": {
+ "closestFeaturesAre": "{n} features within viewport.",
+ "directionsAbsolute": {
+ "E": "east",
+ "N": "north",
+ "NE": "northeast",
+ "NW": "northwest",
+ "S": "south",
+ "SE": "southeast",
+ "SW": "southwest",
+ "W": "west"
+ },
+ "directionsRelative": {
+ "behind": "on your back",
+ "left": "left",
+ "right": "right",
+ "sharp_left": "sharply left",
+ "sharp_right": "sharply right",
+ "slight_left": "slightly left",
+ "slight_right": "slightly right",
+ "straight": "straight ahead"
+ },
+ "east": "Moving east",
+ "fromGps": "{distance} {direction} of your location",
+ "fromMapCenter": "{distance} {direction} of the map center",
+ "in": "Zooming in to level {z}",
+ "islocked": "View locked to your GPS-location, moving disabled. Press the geolocation button to unlock.",
+ "locked": "View is now locked to your GPS-location, moving disabled.",
+ "navigation": "Use arrow keys to move the map, press space to select the closest feature. Press a number to select locations further away.",
+ "noCloseFeatures": "No features in view.",
+ "north": "Moving north",
+ "oneFeatureInView": "One feature within viewport.",
+ "out": "Zooming out to level {z}",
+ "south": "Moving south",
+ "unlocked": "Moving enabled.",
+ "viewportCenterCloseToGps": "The map is centered around your location.",
+ "viewportCenterDetails": "The viewport center is {distance} away and {bearing} from your location.",
+ "west": "Moving west"
},
- "image": {
- "addPicture": "Add picture",
- "currentLicense": "Your images will be published under {license}",
- "doDelete": "Remove image",
- "dontDelete": "Cancel",
- "isDeleted": "Deleted",
- "nearby": {
- "close": "Collapse panel with nearby images",
- "failed": "Fetching images from {service} failed",
- "link": "This picture shows the object",
- "noNearbyImages": "No nearby images were found",
- "seeNearby": "Browse nearby pictures",
- "title": "Nearby streetview imagery"
- },
- "pleaseLogin": "Please log in to add a picture",
- "processing": "The server is processing your image",
- "respectPrivacy": "Do not upload from Google Maps, Google Streetview or other copyrighted sources.",
- "toBig": "Your image is too large as it is {actual_size}. Please use images of at most {max_size}",
- "upload": {
- "failReasons": "You might have lost connection to the internet",
- "failReasonsAdvanced": "Alternatively, make sure your browser and extensions do not block third-party API's.",
- "multiple": {
- "done": "{count} images are successfully uploaded. Thank you!",
- "partiallyDone": "{count} images are getting uploaded, {done} images are done…",
- "someFailed": "Sorry, we could not upload {count} images",
- "uploading": "{count} images are getting uploaded…"
- },
- "one": {
- "done": "Your image was successfully uploaded. Thank you!",
- "failed": "Sorry, we could not upload your image",
- "retrying": "Your image is getting uploaded again…",
- "uploading": "Your image is getting uploaded…"
- }
- },
- "uploadDone": "Your picture has been added. Thanks for helping out!",
- "uploadFailed": "Could not upload your picture. Are you connected to the Internet, and allow third party API's? The Brave browser or the uMatrix plugin might block them.",
- "uploadMultipleDone": "{count} pictures have been added. Thanks for helping out!",
- "uploadingMultiple": "Uploading {count} pictures…",
- "uploadingPicture": "Uploading your picture…"
+ "waitingForGeopermission": "Waiting for your permission to use the geolocation…",
+ "waitingForLocation": "Searching your current location…",
+ "weekdays": {
+ "abbreviations": {
+ "friday": "Fri",
+ "monday": "Mon",
+ "saturday": "Sat",
+ "sunday": "Sun",
+ "thursday": "Thu",
+ "tuesday": "Tue",
+ "wednesday": "Wed"
+ },
+ "friday": "Friday",
+ "monday": "Monday",
+ "saturday": "Saturday",
+ "sunday": "Sunday",
+ "thursday": "Thursday",
+ "tuesday": "Tuesday",
+ "wednesday": "Wednesday"
},
- "importInspector": {
- "title": "Inspect and manage import notes"
+ "welcomeBack": "Welcome back!",
+ "welcomeExplanation": {
+ "addNew": "Is an item missing? Use the button on the bottom-left to add a new point of interest.",
+ "general": "On this map, you can see, edit and add points of interest. Zoom around to see the POI, tap one to see or edit the information. All data is sourced from and saved to OpenStreetMap, which can be freely reused."
},
- "importLayer": {
- "alreadyMapped": "There already is {title} on the map - this point is a duplicate",
- "description": "A layer which imports entries for {title}",
- "importButton": "import_button({layerId}, _tags, I have found a {title} here - add it to the map,./assets/svg/addSmall.svg,,,id)",
- "importHandled": "This feature has been handled! Thanks for your effort
",
- "layerName": "Possible {title}",
- "nearbyImagesIntro": "Nearby pictures
The following pictures are nearby geotagged pictures from various online services. They might help you to resolve this note.{nearby_images(open)}",
- "notFound": "I could not find {title} - remove it",
- "popupTitle": "There might be {title} here"
- },
- "index": {
- "#": "These texts are shown above the theme buttons when no theme is loaded",
- "about": "About MapComplete",
- "featuredThemeTitle": "Featured this week",
- "intro": "Maps about various topics which you can contribute to",
- "learnMore": "Learn more",
- "logIn": "Log in to see other themes you previously visited",
- "pickTheme": "Pick a theme below to get started.",
- "title": "MapComplete"
- },
- "move": {
- "cancel": "Select a different reason",
- "cannotBeMoved": "This feature cannot be moved.",
- "confirmMove": "Move here",
- "inviteToMove": {
- "generic": "Move this point",
- "reasonInaccurate": "Improve the accuracy of this point",
- "reasonRelocation": "Move this object to a another place because it has relocated"
- },
- "inviteToMoveAgain": "Move this point again",
- "isRelation": "This feature is a relation and can not be moved",
- "isWay": "This feature is a way. Use another OpenStreetMap editor to move it.",
- "loginToMove": "You must be logged in to move a point",
- "moveTitle": "Move this point",
- "partOfAWay": "This feature is part of another way. Use another editor to move it.",
- "partOfRelation": "This feature is part of a relation. Use another editor to move it.",
- "pointIsMoved": "The point has been moved",
- "reasons": {
- "reasonInaccurate": "The location is inaccurate by a few meter",
- "reasonRelocation": "The object has been relocated to a totally different location",
- "reasonSnapTo": "This should be snapped onto {name}"
- },
- "selectReason": "Why do you move this object?",
- "whyMove": "Why do you want to move this point?",
- "zoomInFurther": "Zoom in further to confirm this move"
- },
- "multi_apply": {
- "autoApply": "When changing the attributes {attr_names}, these attributes will automatically be changed on {count} other objects too"
- },
- "notes": {
- "addAComment": "Add a comment",
- "addComment": "Add comment",
- "addCommentAndClose": "Add comment and close",
- "addCommentPlaceholder": "Add a comment…",
- "anonymous": "Anonymous user",
- "closeNote": "Close note",
- "createNote": "Create a new note",
- "createNoteIntro": "Is something wrong or missing on the map? Create a note here. These will be checked by volunteers.",
- "createNoteTitle": "Create a new note here",
- "creating": "Creating note…",
- "disableAllNoteFilters": "Disable all filters",
- "isClosed": "This note is resolved",
- "isCreated": "Your note has been created!",
- "loginToAddComment": "Log in to add a comment",
- "loginToAddPicture": "Log in to add a picture",
- "loginToClose": "Log in to close this note",
- "noteIsPublic": "This will be visible to everyone",
- "noteLayerDoEnable": "Enable the layer showing notes",
- "noteLayerHasFilters": "Some notes might be hidden by a filter",
- "noteLayerNotEnabled": "The layer showing notes is not enabled. This layer must be enabled to add a new note",
- "notesLayerMustBeEnabled": "The 'notes'-layer is disabled. Enable it to add a note",
- "reopenNote": "Reopen note",
- "reopenNoteAndComment": "Reopen note and comment",
- "textNeeded": "Enter a descriptive text to create a note",
- "typeText": "Type some text to add a comment",
- "warnAnonymous": "You are not logged in. We won't be able to contact you to resolve your issue."
- },
- "plantDetection": {
- "back": "Back to species overview",
- "button": "Automatically detect the plant species using the AI of Plantnet.org",
- "confirm": "Select species",
- "done": "The species has been applied",
- "error": "Something went wrong while detecting the tree species: {error}",
- "howTo": {
- "intro": "For optimal results,",
- "li0": "take a picture which show the tree in the center without much background",
- "li1": "take a picture which shows a single leaf",
- "li2": "take a picture which shows the bark",
- "li3": "take a picture of the flowers",
- "li4": "take a picture of the fruits"
- },
- "loadingWikidata": "Loading information about {species}…",
- "matchPercentage": "{match}% match",
- "overviewIntro": "The AI on plantnet.org thinks the images show the species below.",
- "overviewTitle": "Automatically detected species",
- "overviewVerify": "Please verify that correct species and link it to the tree",
- "poweredByPlantnet": "Powered by plantnet.org",
- "querying": "Querying plantnet.org with {length} images",
- "seeInfo": "See more information about the species",
- "takeImages": "Take images of the tree to automatically detect the tree type",
- "tryAgain": "Select a different species"
- },
- "preset_type": {
- "question": "Of what type is this object?",
- "typeDescription": "This is {title}. {description}
",
- "typeTitle": "This is {title}"
- },
- "privacy": {
- "editingIntro": "When you make a change to the map, this change is recorded on OpenStreetMap and is publicly available to anyone. A changeset made with MapComplete includes the following data:",
- "editingOutro": "Please refer to the privacy policy on OpenStreetMap.org for detailed information. We'd like to remind you that you can use a fictional name when signing up.",
- "editingTitle": "When making changes",
- "geodata": "When MapComplete gets your geolocation, your geolocation and previously visited locations stay on your device. Your location data is never automatically sent to anywhere else - unless some functionality clearly states otherwise.",
- "geodataTitle": "Your geolocation",
- "intro": "Privacy is important - for both the individual and for society. MapComplete tries to respect your privacy as much as possible - up to the point no annoying cookie banner is needed. However, we still would like to inform you which information is gathered and shared, under which circumstances and why these trade-offs are made.",
- "items": {
- "changesYouMake": "The changes you made",
- "date": "When this change is made",
- "distanceIndicator": "An indication of how close you were to changed objects. Other mappers can use this information to determine if a change was made based on survey or on remote research",
- "language": "The language of the user interface",
- "theme": "The theme you used while making the change",
- "username": "Your username"
- },
- "miscCookies": "MapComplete integrates with various other services, especially to load images of features. Images are hosted on various third-party servers, which might set cookies on their own.",
- "miscCookiesTitle": "Other cookies",
- "surveillance": "As you are reading the privacy policy, you probably care about privacy - so do we! We even made a theme showing surveillance cameras. Feel free to map them all!",
- "title": "Privacy policy",
- "tracking": "To gather some insight in whom visits our website, some technical information is collected. This is included the country you visited the webpage from, which website referred you to MapComplete, the type of your device and the screensize. A cookie is placed on your device to indicate that you visited MapComplete earlier today. This data is not detailed enough to personally identify you. These statistics are only available to anyone in aggregate and are publicly available to anyone",
- "trackingTitle": "Statistical data",
- "whileYoureHere": "Do you care about privacy?"
- },
- "reviews": {
- "affiliated_reviewer_warning": "(Affiliated review)",
- "attribution": "By Mangrove Reviews",
- "averageRating": "Average rating of {n} stars",
- "i_am_affiliated": "I am affiliated with this object",
- "i_am_affiliated_explanation": "Check if you are an owner, creator, employee, …",
- "name_required": "A name is required in order to display and create reviews",
- "no_reviews_yet": "There are no reviews yet. Be the first one!",
- "non_place_review": "One review is not about a place and is not shown here.",
- "non_place_reviews": "{n} reviews are not about a place and are not shown here.",
- "question": "How would you rate {title()}?",
- "question_opinion": "How was your experience?",
- "rate": "Rate {n} stars",
- "rated": "Rated {n} stars",
- "reviewPlaceholder": "Describe your experience…",
- "reviewing_as": "Reviewing as {nickname}",
- "reviewing_as_anonymous": "Reviewing as anonymous",
- "reviews_bug": "Expected more reviews? Some reviews are not displayed due to a bug.",
- "save": "Save review",
- "saved": "Review saved. Thanks for sharing!",
- "saving_review": "Saving…",
- "see_all": "See all your reviews on mangrove.reviews",
- "title": "{count} reviews",
- "title_singular": "One review",
- "too_long": "At most {max} characters are allowed. Your review has {amount} characters.",
- "tos": "If you create a review, you agree to the TOS and privacy policy of Mangrove.reviews",
- "write_a_comment": "Leave a review…",
- "your_reviews": "Your previous reviews",
- "your_reviews_empty": "We couldn't find any of your previous reviews"
- },
- "split": {
- "cancel": "Cancel",
- "hasBeenSplit": "This way has been split",
- "inviteToSplit": "Split this road in smaller segments. This allows to give different properties to parts of the road.",
- "loginToSplit": "You must be logged in to split a road",
- "split": "Split",
- "splitAgain": "Split this road again",
- "splitTitle": "Choose on the map where the properties of this road change"
- },
- "translations": {
- "activateButton": "Help translate MapComplete",
- "allMissing": "No translations yet",
- "missing": "{count} untranslated strings",
- "notImmediate": "Translations are not updated directly. This typically takes a few days"
- },
- "unknown": {
- "clear": "Clear answer",
- "explanation": "Clear this bit of information if the current answer is incorrect but the actual value is not known. No other information will be removed.",
- "keep": "Keep answer",
- "markUnknown": "Mark as unknown",
- "removedKeys": "The following keys will be removed:",
- "title": "Mark as unknown?"
- },
- "userinfo": {
- "gotoInbox": "Open your inbox",
- "gotoSettings": "Go to your settings on OpenStreetMap.org",
- "noDescription": "You don't have a description on your profile yet",
- "notLoggedIn": "You have logged out"
- },
- "validation": {
- "color": {
- "description": "A color or hexcode"
- },
- "date": {
- "description": "A date, starting with the year"
- },
- "direction": {
- "description": "An orientation"
- },
- "distance": {
- "description": "A distance in meter"
- },
- "email": {
- "description": "e-mail address",
- "feedback": "This is not a valid email address",
- "noAt": "An e-mail address must contain an @"
- },
- "fediverse": {
- "description": "A fediverse handle, often @username@server.tld",
- "feedback": "A fediverse handle consists of @username@server.tld or is a link to a profile",
- "invalidHost": "{host} is not a valid hostname",
- "onYourServer": "See and follow on your server"
- },
- "float": {
- "description": "a number",
- "feedback": "This is not a number"
- },
- "id": {
- "description": "an identifier",
- "invalidCharacter": "An id can only contain letters, digits and underscores",
- "shouldBeLonger": "An id should be at least 3 characters long"
- },
- "int": {
- "description": "a whole number"
- },
- "nat": {
- "description": "a positive, whole number or zero",
- "mustBePositive": "This number should be positive",
- "mustBeWhole": "Only whole numbers are allowed",
- "notANumber": "Enter a number"
- },
- "opening_hours": {
- "description": "Opening hours"
- },
- "pfloat": {
- "description": "a positive number"
- },
- "phone": {
- "description": "a phone number",
- "feedback": "This is not a valid phone number",
- "feedbackCountry": "This is not a valid phone number (for country {country})"
- },
- "pnat": {
- "description": "a positive, whole number",
- "noZero": "Zero is not allowed"
- },
- "regex": {
- "description": "a regular expression"
- },
- "slope": {
- "inputExplanation": "Place your phone on the ground with the top side of your phone pointing towards the top of the slope.",
- "inputIncorrect": "For correct measurements, make sure the arrow is within the green area."
- },
- "string": {
- "description": "a piece of text"
- },
- "text": {
- "description": "a piece of text"
- },
- "tooLong": "The text is too long, at most 255 characters are allowed. You have {count} characters now.",
- "url": {
- "aggregator": "{host} is a third-party website. If possible, search the official website.",
- "description": "link to a website",
- "feedback": "This is not a valid web address",
- "spamSite": "{host} is considered a low-quality website. Using this website is not allowed."
- },
- "wikidata": {
- "description": "A Wikidata identifier",
- "empty": "Please, enter some wikidata-entries",
- "startsWithQ": "A wikidata identifier starts with Q and is followed by a number"
- }
+ "wikipedia": {
+ "addEntry": "Add another Wikipedia page",
+ "createNewWikidata": "Create a new Wikidata item",
+ "doSearch": "Search above to see results",
+ "failed": "Loading the Wikipedia entry failed",
+ "fromWikipedia": "From Wikipedia, the free encyclopedia",
+ "loading": "Loading Wikipedia…",
+ "noResults": "Nothing found for {search}",
+ "noWikipediaPage": "This Wikidata item has no corresponding Wikipedia page yet.",
+ "previewbox": {
+ "born": "Born: {value}",
+ "died": "Died: {value}"
+ },
+ "readMore": "Read the rest of the article",
+ "searchToShort": "Your search query is too short, enter a longer text",
+ "searchWikidata": "Search on Wikidata",
+ "wikipediaboxTitle": "Wikipedia"
}
-}
\ No newline at end of file
+ },
+ "hotkeyDocumentation": {
+ "action": "Action",
+ "closeSidebar": "Close the sidebar",
+ "geolocate": "Pan the map to the current location or zoom the map to the current location. Requests geopermission",
+ "intro": "MapComplete supports the following keys:",
+ "key": "Key combination",
+ "openFilterPanel": "Opens the POI-layers and filter panel",
+ "openLayersPanel": "Opens the background layers panel",
+ "queryCurrentLocation": "Display the address which is nearest the map center",
+ "selectAerial": "Set the background to aerial or satellite imagery. Toggles between the two best, available layers",
+ "selectFavourites": "Open the favourites page",
+ "selectItem": "Select the POI which is closest to the map center (crosshair). Only when in keyboard navigation is used",
+ "selectItem2": "Select the POI which is second closest element to the map center (crosshair). Only when in keyboard navigation is used",
+ "selectItem3": "Select the POI which is third closest element to the map center (crosshair). Only when in keyboard navigation is used",
+ "selectItemI": "Select the POI which is the {i}th closest element to the map center (crosshair). Only when in keyboard navigation is used",
+ "selectMap": "Set the background to a map from external sources. Toggles between the two best, available layers",
+ "selectMapnik": "Set the background layer to OpenStreetMap-carto",
+ "selectOsmbasedmap": "Set the background layer to on OpenStreetMap-based map (or disable the background raster layer)",
+ "selectSearch": "Select the search bar to search locations",
+ "shakePhone": "Shaking your phone",
+ "title": "Hotkeys",
+ "translationMode": "Toggle translation mode on or off"
+ },
+ "image": {
+ "addPicture": "Add picture",
+ "currentLicense": "Your images will be published under {license}",
+ "doDelete": "Remove image",
+ "dontDelete": "Cancel",
+ "isDeleted": "Deleted",
+ "nearby": {
+ "close": "Collapse panel with nearby images",
+ "failed": "Fetching images from {service} failed",
+ "link": "This picture shows the object",
+ "noNearbyImages": "No nearby images were found",
+ "seeNearby": "Browse nearby pictures",
+ "title": "Nearby streetview imagery"
+ },
+ "pleaseLogin": "Please log in to add a picture",
+ "processing": "The server is processing your image",
+ "respectPrivacy": "Do not upload from Google Maps, Google Streetview or other copyrighted sources.",
+ "toBig": "Your image is too large as it is {actual_size}. Please use images of at most {max_size}",
+ "upload": {
+ "failReasons": "You might have lost connection to the internet",
+ "failReasonsAdvanced": "Alternatively, make sure your browser and extensions do not block third-party API's.",
+ "multiple": {
+ "done": "{count} images are successfully uploaded. Thank you!",
+ "partiallyDone": "{count} images are getting uploaded, {done} images are done…",
+ "someFailed": "Sorry, we could not upload {count} images",
+ "uploading": "{count} images are getting uploaded…"
+ },
+ "one": {
+ "done": "Your image was successfully uploaded. Thank you!",
+ "failed": "Sorry, we could not upload your image",
+ "retrying": "Your image is getting uploaded again…",
+ "uploading": "Your image is getting uploaded…"
+ }
+ },
+ "uploadDone": "Your picture has been added. Thanks for helping out!",
+ "uploadFailed": "Could not upload your picture. Are you connected to the Internet, and allow third party API's? The Brave browser or the uMatrix plugin might block them.",
+ "uploadMultipleDone": "{count} pictures have been added. Thanks for helping out!",
+ "uploadingMultiple": "Uploading {count} pictures…",
+ "uploadingPicture": "Uploading your picture…"
+ },
+ "importInspector": {
+ "title": "Inspect and manage import notes"
+ },
+ "importLayer": {
+ "alreadyMapped": "There already is {title} on the map - this point is a duplicate",
+ "description": "A layer which imports entries for {title}",
+ "importButton": "import_button({layerId}, _tags, I have found a {title} here - add it to the map,./assets/svg/addSmall.svg,,,id)",
+ "importHandled": "This feature has been handled! Thanks for your effort
",
+ "layerName": "Possible {title}",
+ "nearbyImagesIntro": "Nearby pictures
The following pictures are nearby geotagged pictures from various online services. They might help you to resolve this note.{nearby_images(open)}",
+ "notFound": "I could not find {title} - remove it",
+ "popupTitle": "There might be {title} here"
+ },
+ "index": {
+ "#": "These texts are shown above the theme buttons when no theme is loaded",
+ "about": "About MapComplete",
+ "featuredThemeTitle": "Featured this week",
+ "intro": "Maps about various topics which you can contribute to",
+ "learnMore": "Learn more",
+ "logIn": "Log in to see other themes you previously visited",
+ "pickTheme": "Pick a theme below to get started.",
+ "title": "MapComplete"
+ },
+ "move": {
+ "cancel": "Select a different reason",
+ "cannotBeMoved": "This feature cannot be moved.",
+ "confirmMove": "Move here",
+ "inviteToMove": {
+ "generic": "Move this point",
+ "reasonInaccurate": "Improve the accuracy of this point",
+ "reasonRelocation": "Move this object to a another place because it has relocated"
+ },
+ "inviteToMoveAgain": "Move this point again",
+ "isRelation": "This feature is a relation and can not be moved",
+ "isWay": "This feature is a way. Use another OpenStreetMap editor to move it.",
+ "loginToMove": "You must be logged in to move a point",
+ "moveTitle": "Move this point",
+ "partOfAWay": "This feature is part of another way. Use another editor to move it.",
+ "partOfRelation": "This feature is part of a relation. Use another editor to move it.",
+ "pointIsMoved": "The point has been moved",
+ "reasons": {
+ "reasonInaccurate": "The location is inaccurate by a few meter",
+ "reasonRelocation": "The object has been relocated to a totally different location",
+ "reasonSnapTo": "This should be snapped onto {name}"
+ },
+ "selectReason": "Why do you move this object?",
+ "whyMove": "Why do you want to move this point?",
+ "zoomInFurther": "Zoom in further to confirm this move"
+ },
+ "multi_apply": {
+ "autoApply": "When changing the attributes {attr_names}, these attributes will automatically be changed on {count} other objects too"
+ },
+ "notes": {
+ "addAComment": "Add a comment",
+ "addComment": "Add comment",
+ "addCommentAndClose": "Add comment and close",
+ "addCommentPlaceholder": "Add a comment…",
+ "anonymous": "Anonymous user",
+ "closeNote": "Close note",
+ "createNote": "Create a new note",
+ "createNoteIntro": "Is something wrong or missing on the map? Create a note here. These will be checked by volunteers.",
+ "createNoteTitle": "Create a new note here",
+ "creating": "Creating note…",
+ "disableAllNoteFilters": "Disable all filters",
+ "isClosed": "This note is resolved",
+ "isCreated": "Your note has been created!",
+ "loginToAddComment": "Log in to add a comment",
+ "loginToAddPicture": "Log in to add a picture",
+ "loginToClose": "Log in to close this note",
+ "noteIsPublic": "This will be visible to everyone",
+ "noteLayerDoEnable": "Enable the layer showing notes",
+ "noteLayerHasFilters": "Some notes might be hidden by a filter",
+ "noteLayerNotEnabled": "The layer showing notes is not enabled. This layer must be enabled to add a new note",
+ "notesLayerMustBeEnabled": "The 'notes'-layer is disabled. Enable it to add a note",
+ "reopenNote": "Reopen note",
+ "reopenNoteAndComment": "Reopen note and comment",
+ "textNeeded": "Enter a descriptive text to create a note",
+ "typeText": "Type some text to add a comment",
+ "warnAnonymous": "You are not logged in. We won't be able to contact you to resolve your issue."
+ },
+ "plantDetection": {
+ "back": "Back to species overview",
+ "button": "Automatically detect the plant species using the AI of Plantnet.org",
+ "confirm": "Select species",
+ "done": "The species has been applied",
+ "error": "Something went wrong while detecting the tree species: {error}",
+ "howTo": {
+ "intro": "For optimal results,",
+ "li0": "take a picture which show the tree in the center without much background",
+ "li1": "take a picture which shows a single leaf",
+ "li2": "take a picture which shows the bark",
+ "li3": "take a picture of the flowers",
+ "li4": "take a picture of the fruits"
+ },
+ "loadingWikidata": "Loading information about {species}…",
+ "matchPercentage": "{match}% match",
+ "overviewIntro": "The AI on plantnet.org thinks the images show the species below.",
+ "overviewTitle": "Automatically detected species",
+ "overviewVerify": "Please verify that correct species and link it to the tree",
+ "poweredByPlantnet": "Powered by plantnet.org",
+ "querying": "Querying plantnet.org with {length} images",
+ "seeInfo": "See more information about the species",
+ "takeImages": "Take images of the tree to automatically detect the tree type",
+ "tryAgain": "Select a different species"
+ },
+ "preset_type": {
+ "question": "Of what type is this object?",
+ "typeDescription": "This is {title}. {description}
",
+ "typeTitle": "This is {title}"
+ },
+ "privacy": {
+ "editingIntro": "When you make a change to the map, this change is recorded on OpenStreetMap and is publicly available to anyone. A changeset made with MapComplete includes the following data:",
+ "editingOutro": "Please refer to the privacy policy on OpenStreetMap.org for detailed information. We'd like to remind you that you can use a fictional name when signing up.",
+ "editingTitle": "When making changes",
+ "geodata": "When MapComplete gets your geolocation, your geolocation and previously visited locations stay on your device. Your location data is never automatically sent to anywhere else - unless some functionality clearly states otherwise.",
+ "geodataTitle": "Your geolocation",
+ "intro": "Privacy is important - for both the individual and for society. MapComplete tries to respect your privacy as much as possible - up to the point no annoying cookie banner is needed. However, we still would like to inform you which information is gathered and shared, under which circumstances and why these trade-offs are made.",
+ "items": {
+ "changesYouMake": "The changes you made",
+ "date": "When this change is made",
+ "distanceIndicator": "An indication of how close you were to changed objects. Other mappers can use this information to determine if a change was made based on survey or on remote research",
+ "language": "The language of the user interface",
+ "theme": "The theme you used while making the change",
+ "username": "Your username"
+ },
+ "miscCookies": "MapComplete integrates with various other services, especially to load images of features. Images are hosted on various third-party servers, which might set cookies on their own.",
+ "miscCookiesTitle": "Other cookies",
+ "surveillance": "As you are reading the privacy policy, you probably care about privacy - so do we! We even made a theme showing surveillance cameras. Feel free to map them all!",
+ "title": "Privacy policy",
+ "tracking": "To gather some insight in whom visits our website, some technical information is collected. This is included the country you visited the webpage from, which website referred you to MapComplete, the type of your device and the screensize. A cookie is placed on your device to indicate that you visited MapComplete earlier today. This data is not detailed enough to personally identify you. These statistics are only available to anyone in aggregate and are publicly available to anyone",
+ "trackingTitle": "Statistical data",
+ "whileYoureHere": "Do you care about privacy?"
+ },
+ "reviews": {
+ "affiliated_reviewer_warning": "(Affiliated review)",
+ "attribution": "By Mangrove Reviews",
+ "averageRating": "Average rating of {n} stars",
+ "i_am_affiliated": "I am affiliated with this object",
+ "i_am_affiliated_explanation": "Check if you are an owner, creator, employee, …",
+ "name_required": "A name is required in order to display and create reviews",
+ "no_reviews_yet": "There are no reviews yet. Be the first one!",
+ "non_place_review": "One review is not about a place and is not shown here.",
+ "non_place_reviews": "{n} reviews are not about a place and are not shown here.",
+ "question": "How would you rate {title()}?",
+ "question_opinion": "How was your experience?",
+ "rate": "Rate {n} stars",
+ "rated": "Rated {n} stars",
+ "reviewPlaceholder": "Describe your experience…",
+ "reviewing_as": "Reviewing as {nickname}",
+ "reviewing_as_anonymous": "Reviewing as anonymous",
+ "reviews_bug": "Expected more reviews? Some reviews are not displayed due to a bug.",
+ "save": "Save review",
+ "saved": "Review saved. Thanks for sharing!",
+ "saving_review": "Saving…",
+ "see_all": "See all your reviews on mangrove.reviews",
+ "title": "{count} reviews",
+ "title_singular": "One review",
+ "too_long": "At most {max} characters are allowed. Your review has {amount} characters.",
+ "tos": "If you create a review, you agree to the TOS and privacy policy of Mangrove.reviews",
+ "write_a_comment": "Leave a review…",
+ "your_reviews": "Your previous reviews",
+ "your_reviews_empty": "We couldn't find any of your previous reviews"
+ },
+ "split": {
+ "cancel": "Cancel",
+ "hasBeenSplit": "This way has been split",
+ "inviteToSplit": "Split this road in smaller segments. This allows to give different properties to parts of the road.",
+ "loginToSplit": "You must be logged in to split a road",
+ "split": "Split",
+ "splitAgain": "Split this road again",
+ "splitTitle": "Choose on the map where the properties of this road change"
+ },
+ "translations": {
+ "activateButton": "Help translate MapComplete",
+ "allMissing": "No translations yet",
+ "missing": "{count} untranslated strings",
+ "notImmediate": "Translations are not updated directly. This typically takes a few days"
+ },
+ "unknown": {
+ "clear": "Clear answer",
+ "explanation": "Clear this bit of information if the current answer is incorrect but the actual value is not known. No other information will be removed.",
+ "keep": "Keep answer",
+ "markUnknown": "Mark as unknown",
+ "removedKeys": "The following keys will be removed:",
+ "title": "Mark as unknown?"
+ },
+ "userinfo": {
+ "gotoInbox": "Open your inbox",
+ "gotoSettings": "Go to your settings on OpenStreetMap.org",
+ "noDescription": "You don't have a description on your profile yet",
+ "notLoggedIn": "You have logged out"
+ },
+ "validation": {
+ "color": {
+ "description": "A color or hexcode"
+ },
+ "date": {
+ "description": "A date, starting with the year"
+ },
+ "direction": {
+ "description": "An orientation"
+ },
+ "distance": {
+ "description": "A distance in meter"
+ },
+ "email": {
+ "description": "e-mail address",
+ "feedback": "This is not a valid email address",
+ "noAt": "An e-mail address must contain an @"
+ },
+ "fediverse": {
+ "description": "A fediverse handle, often @username@server.tld",
+ "feedback": "A fediverse handle consists of @username@server.tld or is a link to a profile",
+ "invalidHost": "{host} is not a valid hostname",
+ "onYourServer": "See and follow on your server"
+ },
+ "float": {
+ "description": "a number",
+ "feedback": "This is not a number"
+ },
+ "id": {
+ "description": "an identifier",
+ "invalidCharacter": "An id can only contain letters, digits and underscores",
+ "shouldBeLonger": "An id should be at least 3 characters long"
+ },
+ "int": {
+ "description": "a whole number"
+ },
+ "nat": {
+ "description": "a positive, whole number or zero",
+ "mustBePositive": "This number should be positive",
+ "mustBeWhole": "Only whole numbers are allowed",
+ "notANumber": "Enter a number"
+ },
+ "opening_hours": {
+ "description": "Opening hours"
+ },
+ "pfloat": {
+ "description": "a positive number"
+ },
+ "phone": {
+ "description": "a phone number",
+ "feedback": "This is not a valid phone number",
+ "feedbackCountry": "This is not a valid phone number (for country {country})"
+ },
+ "pnat": {
+ "description": "a positive, whole number",
+ "noZero": "Zero is not allowed"
+ },
+ "regex": {
+ "description": "a regular expression"
+ },
+ "slope": {
+ "inputExplanation": "Place your phone on the ground with the top side of your phone pointing towards the top of the slope.",
+ "inputIncorrect": "For correct measurements, make sure the arrow is within the green area."
+ },
+ "string": {
+ "description": "a piece of text"
+ },
+ "text": {
+ "description": "a piece of text"
+ },
+ "tooLong": "The text is too long, at most 255 characters are allowed. You have {count} characters now.",
+ "url": {
+ "aggregator": "{host} is a third-party website. If possible, search the official website.",
+ "description": "link to a website",
+ "feedback": "This is not a valid web address",
+ "spamSite": "{host} is considered a low-quality website. Using this website is not allowed."
+ },
+ "wikidata": {
+ "description": "A Wikidata identifier",
+ "empty": "Please, enter some wikidata-entries",
+ "startsWithQ": "A wikidata identifier starts with Q and is followed by a number"
+ }
+ }
+}