diff --git a/langs/de.json b/langs/de.json
index dd57056ef4..f92a377368 100644
--- a/langs/de.json
+++ b/langs/de.json
@@ -188,7 +188,9 @@
"includeMetaData": "Metadaten übernehmen (letzter Bearbeiter, berechnete Werte, ...)",
"licenseInfo": "
Copyright-Hinweis
Die bereitgestellten Daten sind unter ODbL verfügbar. Die Wiederverwendung ist für jeden Zweck frei, aber - die Namensnennung © OpenStreetMap contributors ist darzustellen
- Jede Änderung muss unter der gleichen Lizenz veröffentlicht werden
Bitte lesen Sie den vollständigen Copyright-Hinweis für weitere Details.",
"noDataLoaded": "Noch keine Daten geladen. Download in Kürze verfügbar",
- "pdf": {},
+ "pdf": {
+ "current_view_generic": "Exportiere eine PDF-Ansicht im aktuellen Modus für {paper_size} im {orientation} Modus"
+ },
"title": "Download",
"uploadGpx": "Einen Track auf OpenStreetMap hochladen"
},
@@ -402,6 +404,7 @@
"key": "Tastenkombination",
"openLayersPanel": "Öffnet das Menü für Ebenen und Filter",
"selectAerial": "Hintergrund als Luftbild oder Satellitenbild einstellen. Wechselt zwischen den zwei besten verfügbaren Ebenen",
+ "selectItem": "Wähle das POI, das dem Kartenmittelpunkt (Fadenkreuz) am nächsten liegt. Nur wenn die Tastaturnavigation verwendet wird",
"selectMap": "Karte aus externer Quelle als Hintergrund wählen. Wechselt zwischen den zwei besten verfügbaren Ebenen",
"selectMapnik": "OpenStreetMap-carto als Hintergrundebene wählen",
"selectOsmbasedmap": "OpenStreetMap-basierte Karte als Hintergrund auswählen (oder Hintergrundebene deaktivieren)",
diff --git a/langs/fi.json b/langs/fi.json
index d0dfdabb2b..23dec3b104 100644
--- a/langs/fi.json
+++ b/langs/fi.json
@@ -1,36 +1,73 @@
{
+ "advanced": {
+ "title": "Lisäominaisuudet"
+ },
"centerMessage": {
- "ready": "Valmis!"
+ "allFilteredAway": "Mikään kohde näkyvällä alueella ei täytä kaikkien suodatinten ehtoja",
+ "loadingData": "Ladataan dataa…",
+ "noData": "Ei relevantteja kohteita näkyvällä alueella",
+ "ready": "Valmis!",
+ "retrying": "Datan lataaminen epäonnistui. Yritetään uudelleen {count} sekunnin kuluttua…",
+ "zoomIn": "Lähennä ensin karttaa, jotta data näytetään ja on muokattavissa"
+ },
+ "communityIndex": {
+ "available": "Tämä yhteisö puhuu kieltä {native}",
+ "intro": "Ole yhteydessä muihin, jotta voit tutustua heihin, oppia heiltä, …",
+ "notAvailable": "Tämä yhteisö ei puhu kieltä {native}",
+ "title": "Ole yhteydessä muihin"
},
"delete": {
- "explanations": {},
- "reasons": {}
- },
- "favourite": {},
- "general": {
- "add": {
- "import": {}
+ "cancel": "Peru",
+ "cannotBeDeleted": "Tätä kohdetta ei voi poistaa",
+ "delete": "Poista",
+ "explanations": {
+ "hardDelete": "Tämä kohde poistetaan OpenStreetMapistä. Kokenut kartoittaja voi palauttaa sen."
},
- "apply_button": {},
+ "isDeleted": "Tämä kohde on poistettu",
+ "loginToDelete": "Kohteen poistamiseksi täytyy kirjautua",
+ "notEnoughExperience": "Tämän kohteen loi joku muu.",
+ "onlyEditedByLoggedInUser": "Tätä kohdetta ei ole muokannut kukaan muu kuin sinä, joten sen voi huoletta poistaa."
+ },
+ "flyer": {
+ "callToAction": "Kokeile sitä osoitteessa mapcomplete.org",
+ "tagline": "Kerää paikkatietoa OpenStreetMapillä"
+ },
+ "general": {
"attribution": {
- "iconAttribution": {}
+ "followOnMastodon": "Seuraa MapCompletea Mastodonissa"
},
"backgroundMap": "Taustakartta",
"cancel": "Peruuta",
- "download": {},
- "histogram": {},
- "layerSelection": {},
- "levelSelection": {},
+ "download": {
+ "title": "Lataa"
+ },
+ "error": "Jotain meni vikaan",
+ "example": "Esimerkki",
+ "examples": "Esimerkit",
"loginWithOpenStreetMap": "Kirjaudu sisään OpenStreetMapilla",
- "morescreen": {},
+ "logout": "Kirjaudu ulos",
+ "menu": {
+ "aboutMapComplete": "Tietoa MapCompletesta"
+ },
+ "morescreen": {
+ "searchForATheme": "Etsi teemaa"
+ },
"number": "numero",
+ "openTheMap": "Avaa kartta",
+ "openTheMapAtGeolocation": "Zoomaa sijaintiisi",
"opening_hours": {
+ "loadingCountry": "Määritetään maata…",
"ph_closed": "suljettu",
"ph_not_known": " ",
"ph_open": "avattu"
},
- "pdf": {},
"pickLanguage": "Valitse kieli: ",
+ "questionBox": {
+ "answeredMultiple": "Vastasit {answered} kysymykseen",
+ "answeredOne": "Vastasit yhteen kysymykseen",
+ "skippedMultiple": "Ohitit {skipped} kysymystä",
+ "skippedOne": "Ohitit yhden kysymyksen"
+ },
"questions": {
"websiteIs": "Verkkosivusto: {website}"
},
@@ -42,6 +79,7 @@
"thanksForSharing": "Kiitos jakamisesta!"
},
"skip": "Ohita tämä kysymys",
+ "waitingForLocation": "Etsitään nykyistä sijaintiasi…",
"weekdays": {
"abbreviations": {
"friday": "Pe",
@@ -60,9 +98,8 @@
"tuesday": "Tiistai",
"wednesday": "Keskiviikko"
},
- "welcomeExplanation": {},
"wikipedia": {
- "previewbox": {}
+ "addEntry": "Lisää toinen Wikipedia-sivu"
}
},
"image": {
@@ -71,40 +108,27 @@
"dontDelete": "Peruuta",
"isDeleted": "Poistettu"
},
- "importInspector": {},
- "importLayer": {},
"index": {
"title": "Tervetuloa MapCompleteen"
},
- "move": {
- "inviteToMove": {},
- "reasons": {}
+ "plantDetection": {
+ "tryAgain": "Valitse eri laji"
},
- "multi_apply": {},
- "notes": {},
- "privacy": {},
"reviews": {
"title": "{count} arvostelua",
"title_singular": "Yksi arvostelu"
},
- "split": {},
- "translations": {},
+ "split": {
+ "splitAgain": "Katkaise tämä tie uudelleen"
+ },
+ "userinfo": {
+ "editDescription": "Muokkaa profiilin kuvausta",
+ "noDescriptionCallToAction": "Lisää profiilin kuvaus",
+ "notLoggedIn": "Olet kirjautunut ulos"
+ },
"validation": {
- "color": {},
- "date": {},
- "direction": {},
- "distance": {},
- "email": {},
- "float": {},
- "int": {},
- "nat": {},
- "opening_hours": {},
- "pfloat": {},
- "phone": {},
- "pnat": {},
- "string": {},
- "text": {},
- "url": {},
- "wikidata": {}
+ "distance": {
+ "description": "Etäisyys metreinä"
+ }
}
}
diff --git a/src/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts b/src/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts
index df4dec4598..3c7cf7efce 100644
--- a/src/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts
+++ b/src/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts
@@ -168,8 +168,18 @@ export class UpdateLegacyLayer extends DesugaringStep<
const pr = rendering
if (pr["icon"]) {
try {
- const icon = Utils.NoEmpty(pr["icon"].split(";"))
+ let iconConfig = pr["icon"]
+ if (
+ Object.keys(iconConfig).length === 1 &&
+ iconConfig["render"] !== undefined
+ ) {
+ iconConfig = iconConfig.render
+ }
+ const icon = Utils.NoEmpty(iconConfig.split(";"))
pr.marker = icon.map((i) => {
+ if (i.startsWith("http")) {
+ return { icon: i }
+ }
const [iconPath, color] = i.split(":")
return { icon: iconPath, color }
})
@@ -243,10 +253,6 @@ class UpdateLegacyTheme extends DesugaringStep {
delete oldThemeConfig.socialImage
}
- if (oldThemeConfig.defaultBackgroundId === "osm") {
- console.log("Removing old background in", json.id)
- }
-
if (typeof oldThemeConfig.credits === "string") {
oldThemeConfig.credits = [oldThemeConfig.credits]
}
diff --git a/src/Models/ThemeConfig/WithContextLoader.ts b/src/Models/ThemeConfig/WithContextLoader.ts
index c00f67edc1..0fee9d6dbf 100644
--- a/src/Models/ThemeConfig/WithContextLoader.ts
+++ b/src/Models/ThemeConfig/WithContextLoader.ts
@@ -27,11 +27,6 @@ export default class WithContextLoader {
`${translationContext ?? this._context}.${key}.default value`
)
}
- if (Object.keys(v).length === 1 && typeof v["render"] === "string") {
- throw `At ${
- translationContext ?? ""
- }: use the content directly instead of {${key}: ${JSON.stringify(v)}}`
- }
return new TagRenderingConfig(
v,