diff --git a/assets/layers/tree_node/tree_node.json b/assets/layers/tree_node/tree_node.json
index 4dd324cf1f..f3bd0cfca1 100644
--- a/assets/layers/tree_node/tree_node.json
+++ b/assets/layers/tree_node/tree_node.json
@@ -7,7 +7,8 @@
"ru": "Дерево",
"fr": "Arbre",
"de": "Bäume",
- "ca": "Arbre"
+ "ca": "Arbre",
+ "es": "Árbol"
},
"minzoom": 16,
"source": {
@@ -26,13 +27,14 @@
"fr": "Arbre",
"de": "Baum",
"eo": "Arbo",
- "ca": "Arbre"
+ "ca": "Arbre",
+ "es": "Árbol"
},
"mappings": [
{
- "if": "name~*",
+ "if": "species~*",
"then": {
- "*": "{name}"
+ "*": "{species}"
}
}
]
@@ -47,7 +49,8 @@
"it": "Altezza: {height}",
"ru": "Высота: {height}",
"fr": "Hauteur : {height}",
- "de": "Höhe: {height}"
+ "de": "Höhe: {height}",
+ "es": "Altura: {height}"
},
"condition": {
"and": [
@@ -67,7 +70,8 @@
"it": "Altezza: {height} m",
"ru": "Высота: {height} м",
"fr": "Hauteur : {height} m",
- "de": "Höhe: {height} m"
+ "de": "Höhe: {height} m",
+ "es": "Altura: {height} m"
}
}
]
@@ -79,7 +83,8 @@
"en": "Is this a broadleaved or needleleaved tree?",
"it": "Si tratta di un albero latifoglia o aghifoglia?",
"fr": "Cet arbre est-il un feuillu ou un résineux ?",
- "de": "Ist dies ein Laub- oder Nadelbaum?"
+ "de": "Ist dies ein Laub- oder Nadelbaum?",
+ "es": "¿Es un árbol de hoja ancha o de hoja aguja?"
},
"mappings": [
{
@@ -94,7 +99,8 @@
"it": "Latifoglia",
"fr": "Feuillu",
"de": "Laubbaum",
- "ca": "De fulla ampla"
+ "ca": "De fulla ampla",
+ "es": "Latifoliada"
},
"icon": {
"path": "./assets/themes/trees/broadleaved.svg",
@@ -113,7 +119,8 @@
"it": "Aghifoglia",
"fr": "Résineux",
"de": "Nadelbaum",
- "ca": "Amb fulles d'agulla"
+ "ca": "Amb fulles d'agulla",
+ "es": "Hoja aguja"
},
"icon": {
"path": "./assets/themes/trees/needleleaved.svg",
@@ -131,7 +138,8 @@
"en": "Permanently leafless",
"it": "Privo di foglie (permanente)",
"fr": "Sans feuilles (Permanent)",
- "de": "Dauerhaft blattlos"
+ "de": "Dauerhaft blattlos",
+ "es": "Permanentemente sin hojas"
},
"hideInAnswer": true,
"icon": {
@@ -148,7 +156,8 @@
"en": "How significant is this tree? Choose the first answer that applies.",
"it": "Quanto significativo è questo albero? Scegli la prima risposta che corrisponde.",
"fr": "Quelle est l'importance de cet arbre ? Choisissez la première réponse qui s'applique.",
- "de": "Wie bedeutsam ist dieser Baum? Wählen Sie die erste Antwort, die zutrifft."
+ "de": "Wie bedeutsam ist dieser Baum? Wählen Sie die erste Antwort, die zutrifft.",
+ "es": "¿Qué importancia tiene este árbol? Elige la primera respuesta que corresponda."
},
"mappings": [
{
@@ -162,7 +171,8 @@
"en": "The tree is remarkable due to its size or prominent location. It is useful for navigation.",
"it": "È un albero notevole per le sue dimensioni o per la posizione prominente. È utile alla navigazione.",
"fr": "L'arbre est remarquable en raison de sa taille ou de son emplacement proéminent. Il est utile pour la navigation.",
- "de": "Der Baum ist aufgrund seiner Größe oder seiner markanten Lage bedeutsam. Er ist nützlich zur Orientierung."
+ "de": "Der Baum ist aufgrund seiner Größe oder seiner markanten Lage bedeutsam. Er ist nützlich zur Orientierung.",
+ "es": "El árbol es notable debido a su tamaño o ubicación prominente. Es útil para la navegación."
}
},
{
@@ -176,7 +186,8 @@
"en": "The tree is a natural monument, e.g. because it is especially old, or of a valuable species.",
"it": "L’albero è un monumento naturale, ad esempio perché specialmente antico o appartenente a specie importanti.",
"fr": "Cet arbre est un monument naturel (ex : âge, espèce, etc…)",
- "de": "Der Baum ist ein Naturdenkmal, z. B. weil er besonders alt ist oder zu einer wertvollen Art gehört."
+ "de": "Der Baum ist ein Naturdenkmal, z. B. weil er besonders alt ist oder zu einer wertvollen Art gehört.",
+ "es": "El árbol es un monumento natural, por ejemplo, porque es especialmente antiguo, o de una especie valiosa."
}
},
{
@@ -190,7 +201,8 @@
"en": "The tree is used for agricultural purposes, e.g. in an orchard.",
"it": "L’albero è usato per scopi agricoli, ad esempio in un frutteto.",
"fr": "Cet arbre est utilisé à but d’agriculture (ex : dans un verger)",
- "de": "Der Baum wird für landwirtschaftliche Zwecke genutzt, z. B. in einer Obstplantage."
+ "de": "Der Baum wird für landwirtschaftliche Zwecke genutzt, z. B. in einer Obstplantage.",
+ "es": "El árbol se utiliza con fines agrícolas, por ejemplo, en un huerto."
}
},
{
@@ -204,7 +216,8 @@
"en": "The tree is in a park or similar (cemetery, school grounds, …).",
"it": "L’albero è in un parco o qualcosa di simile (cimitero, aree didattiche, etc.).",
"fr": "Cet arbre est dans un parc ou une aire similaire (ex : cimetière, cour d’école, …).",
- "de": "Der Baum steht in einem Park oder ähnlichem (Friedhof, Schulgelände, ...)."
+ "de": "Der Baum steht in einem Park oder ähnlichem (Friedhof, Schulgelände, ...).",
+ "es": "El árbol está en un parque o similar (cementerio, recinto escolar, ...)."
}
},
{
@@ -218,6 +231,7 @@
"en": "The tree is a residential garden.",
"it": "L’albero è un giardino residenziale.",
"fr": "Cet arbre est dans une cour résidentielle.",
+ "es": "El árbol está en un jardín privado o residencial.",
"de": "Der Baum steht in einem Wohngarten."
}
},
@@ -232,7 +246,8 @@
"en": "This is a tree along an avenue.",
"it": "Fa parte di un viale alberato.",
"fr": "C'est un arbre le long d'une avenue.",
- "de": "Dieser Baum steht entlang einer Straße."
+ "de": "Dieser Baum steht entlang einer Straße.",
+ "es": "El árbol está en bandejón de una avenida."
}
},
{
@@ -246,6 +261,7 @@
"en": "The tree is an urban area.",
"it": "L’albero si trova in un’area urbana.",
"fr": "L'arbre est une zone urbaine.",
+ "es": "El árbol está en un zona urbana.",
"de": "Der Baum steht in einem städtischen Gebiet."
}
},
@@ -260,7 +276,8 @@
"en": "The tree is outside of an urban area.",
"it": "L’albero si trova fuori dall’area urbana.",
"fr": "Cet arbre est en zone rurale.",
- "de": "Dieser Baum steht außerhalb eines städtischen Gebiets."
+ "de": "Dieser Baum steht außerhalb eines städtischen Gebiets.",
+ "es": "El árbol está fuera de una zona urbana."
}
}
]
@@ -273,7 +290,8 @@
"it": "È un sempreverde o caduco?",
"ru": "Это дерево вечнозелёное или листопадное?",
"fr": "L’arbre est-il à feuillage persistant ou caduc ?",
- "de": "Ist dies ein Nadelbaum oder ein Laubbaum?"
+ "de": "Ist dies ein Nadelbaum oder ein Laubbaum?",
+ "es": "¿El árbol es Siempreverde o Caduco?"
},
"mappings": [
{
@@ -288,7 +306,8 @@
"it": "Caduco: l’albero perde le sue foglie per un periodo dell’anno.",
"ru": "Листопадное: у дерева опадают листья в определённое время года.",
"fr": "Caduc : l’arbre perd son feuillage une partie de l’année.",
- "de": "Laubabwerfend: Der Baum verliert für eine gewisse Zeit des Jahres seine Blätter."
+ "de": "Laubabwerfend: Der Baum verliert für eine gewisse Zeit des Jahres seine Blätter.",
+ "es": "Caduco o Deciduo: el árbol pierde las hojas en un período del año"
}
},
{
@@ -304,7 +323,8 @@
"fr": "À feuilles persistantes.",
"ru": "Вечнозелёное.",
"de": "immergrüner Baum.",
- "ca": "Perenne."
+ "ca": "Perenne.",
+ "es": "Siempreverde."
}
}
],
@@ -366,7 +386,8 @@
"it": "L’albero ha un nome?",
"fr": "L'arbre a-t-il un nom ?",
"ru": "Есть ли у этого дерева название?",
- "de": "Hat der Baum einen Namen?"
+ "de": "Hat der Baum einen Namen?",
+ "es": "El árbol no tiene nombre?."
},
"freeform": {
"key": "name",
@@ -388,7 +409,8 @@
"it": "L’albero non ha un nome.",
"fr": "L'arbre n'a pas de nom.",
"ru": "У этого дерева нет названия.",
- "de": "Der Baum hat keinen Namen."
+ "de": "Der Baum hat keinen Namen.",
+ "es": "No identificas la especie."
}
}
],
@@ -408,7 +430,8 @@
"en": "Is this tree registered heritage?",
"it": "Quest’albero è registrato come patrimonio?",
"fr": "Cet arbre est-il inscrit au patrimoine ?",
- "de": "Ist dieser Baum ein Naturdenkmal?"
+ "de": "Ist dieser Baum ein Naturdenkmal?",
+ "es": "¿Este árbol es patrimonio registrado?"
},
"mappings": [
{
@@ -423,7 +446,8 @@
"en": "Registered as heritage by Onroerend Erfgoed Flanders",
"it": "Registrato come patrimonio da Onroerend Erfgoed Flanders",
"fr": "Fait partie du patrimoine par Onroerend Erfgoed",
- "de": "Als Denkmal registriert von der Onroerend Erfgoed Flandern"
+ "de": "Als Denkmal registriert von der Onroerend Erfgoed Flandern",
+ "es": "Registrado como patrimonio por Onroerend Erfgoed Flandes"
},
"icon": {
"path": "./assets/layers/tree_node/Onroerend_Erfgoed_logo_without_text.svg",
@@ -442,7 +466,8 @@
"en": "Registered as heritage by Direction du Patrimoine culturel Brussels",
"it": "Registrato come patrimonio da Direction du Patrimoine culturel di Bruxelles",
"fr": "Enregistré comme patrimoine par la Direction du Patrimoine culturel Bruxelles",
- "de": "Als Denkmal registriert von der Direction du Patrimoine culturel Brüssel"
+ "de": "Als Denkmal registriert von der Direction du Patrimoine culturel Brüssel",
+ "es": "Registrado como patrimonio por la Dirección de Patrimonio Cultural de Bruselas"
}
},
{
@@ -457,7 +482,8 @@
"en": "Registered as heritage by a different organisation",
"it": "Registrato come patrimonio da un’organizzazione differente",
"fr": "Enregistré comme patrimoine par une autre organisation",
- "de": "Von einer anderen Organisation als Denkmal registriert"
+ "de": "Von einer anderen Organisation als Denkmal registriert",
+ "es": "Registrado como patrimonio por una organización diferente"
}
},
{
@@ -472,7 +498,8 @@
"en": "Not registered as heritage",
"it": "Non è registrato come patrimonio",
"fr": "Non enregistré comme patrimoine",
- "de": "Nicht als Denkmal registriert"
+ "de": "Nicht als Denkmal registriert",
+ "es": "No registrado como patrimonio"
}
},
{
@@ -486,7 +513,8 @@
"en": "Registered as heritage by a different organisation",
"it": "Registrato come patrimonio da un’organizzazione differente",
"fr": "Enregistré comme patrimoine par une autre organisation",
- "de": "Von einer anderen Organisation als Denkmal registriert"
+ "de": "Von einer anderen Organisation als Denkmal registriert",
+ "es": "Registrado como patrimonio por un organización diferente"
},
"hideInAnswer": true
}
@@ -512,7 +540,8 @@
"en": "What is the ID issued by Onroerend Erfgoed Flanders?",
"it": "Qual è l’ID rilasciato da Onroerend Erfgoed Flanders?",
"fr": "Quel est son identifiant donné par Onroerend Erfgoed ?",
- "de": "Wie lautet die Kennung der Onroerend Erfgoed Flanders?"
+ "de": "Wie lautet die Kennung der Onroerend Erfgoed Flanders?",
+ "es": "¿Cuál es la identificación emitida por Onroerend Erfgoed Flandes?"
},
"freeform": {
"key": "ref:OnroerendErfgoed",
@@ -533,14 +562,16 @@
"it": "
Wikidata: {wikidata}",
"ru": "
Wikidata: {wikidata}",
"fr": "
Wikidata : {wikidata}",
- "de": "
Wikidata: {wikidata}"
+ "de": "
Wikidata: {wikidata}",
+ "es": "
Wikidata: {wikidata}"
},
"question": {
"nl": "Wat is het Wikidata-ID van deze boom?",
"en": "What is the Wikidata ID for this tree?",
"it": "Qual è l’ID Wikidata per questo albero?",
"fr": "Quel est l'identifiant Wikidata de cet arbre ?",
- "de": "Was ist das passende Wikidata Element zu diesem Baum?"
+ "de": "Was ist das passende Wikidata Element zu diesem Baum?",
+ "es": "¿Cuál es el ID de Wikidata para este árbol?"
},
"freeform": {
"key": "wikidata",
@@ -568,14 +599,16 @@
"it": "una albero latifoglia",
"fr": "une arbre feuillu",
"ru": "Лиственное дерево",
- "de": "eine laubbaum"
+ "de": "eine laubbaum",
+ "es": "árbol de hoja ancha"
},
"description": {
"nl": "Een boom van een soort die blaadjes heeft, bijvoorbeeld eik of populier.",
"en": "A tree of a species with leaves, such as oak or populus.",
"it": "Un albero di una specie con foglie larghe come la quercia o il pioppo.",
"fr": "Un arbre d'une espèce avec de larges feuilles, comme le chêne ou le peuplier.",
- "de": "Ein Baum mit Blättern, z. B. Eiche oder Buche."
+ "de": "Ein Baum mit Blättern, z. B. Eiche oder Buche.",
+ "es": "Un árbol de hojas como el Roble o el Álamo."
},
"preciseInput": {
"preferredBackground": "photo"
@@ -592,7 +625,8 @@
"it": "una albero aghifoglia",
"ru": "Хвойное дерево",
"fr": "une arbre résineux",
- "de": "eine nadelbaum"
+ "de": "eine nadelbaum",
+ "es": "Árbol tipo Conífera"
},
"description": {
"nl": "Een boom van een soort met naalden, bijvoorbeeld den of spar.",
@@ -600,7 +634,8 @@
"it": "Un albero di una specie con aghi come il pino o l’abete.",
"ru": "Дерево с хвоей (иглами), например, сосна или ель.",
"fr": "Une espèce d’arbre avec des épines comme le pin ou l’épicéa.",
- "de": "Ein Baum mit Nadeln, z. B. Kiefer oder Fichte."
+ "de": "Ein Baum mit Nadeln, z. B. Kiefer oder Fichte.",
+ "es": "Un árbol de hojas agujas, como el Pino o el Abeto."
},
"preciseInput": {
"preferredBackground": "photo"
@@ -618,7 +653,8 @@
"fr": "une arbre",
"id": "Pohon",
"de": "eine baum",
- "ca": "un arbre"
+ "ca": "un arbre",
+ "es": "un árbol"
},
"description": {
"nl": "Wanneer je niet zeker bent of het nu een loof- of naaldboom is.",
@@ -626,7 +662,8 @@
"it": "Qualora non si sia sicuri se si tratta di un albero latifoglia o aghifoglia.",
"fr": "Si vous n'êtes pas sûr(e) de savoir s'il s'agit d'un arbre à feuilles larges ou à aiguilles.",
"ru": "Если вы не уверены в том, лиственное это дерево или хвойное.",
- "de": "Wenn Sie nicht sicher sind, ob es sich um einen Laubbaum oder einen Nadelbaum handelt."
+ "de": "Wenn Sie nicht sicher sind, ob es sich um einen Laubbaum oder einen Nadelbaum handelt.",
+ "es": "Si no estás seguro de si es un árbol de hoja ancha o de hoja de aguja."
},
"preciseInput": {
"preferredBackground": "photo"
@@ -675,6 +712,7 @@
"description": {
"en": "A layer showing trees",
"nl": "Een laag die bomen toont",
+ "es": "Una capa que muestra árboles",
"de": "Eine Ebene, die Bäume zeigt"
}
}
\ No newline at end of file
diff --git a/assets/layers/windturbine/windturbine.json b/assets/layers/windturbine/windturbine.json
index 334d611c86..3e51ea7e17 100644
--- a/assets/layers/windturbine/windturbine.json
+++ b/assets/layers/windturbine/windturbine.json
@@ -9,6 +9,9 @@
"zh_Hant": "風機",
"hu": "Szélerőmű"
},
+ "description": {
+ "en": "Modern windmills generating electricity"
+ },
"source": {
"osmTags": "generator:source=wind"
},
diff --git a/assets/themes/trees/trees.json b/assets/themes/trees/trees.json
index 76d4f3b3ed..910160fa58 100644
--- a/assets/themes/trees/trees.json
+++ b/assets/themes/trees/trees.json
@@ -13,7 +13,8 @@
"nb_NO": "Trær",
"id": "Pohon",
"hu": "Fatérkép",
- "ca": "Arbres"
+ "ca": "Arbres",
+ "es": "Árboles"
},
"shortDescription": {
"nl": "Breng bomen in kaart",
@@ -27,7 +28,8 @@
"de": "Kartieren Sie alle Bäume",
"nb_NO": "Kartlegg alle trærne",
"hu": "Az összes fa feltérképezése",
- "ca": "Mapeja tots els arbres"
+ "ca": "Mapeja tots els arbres",
+ "es": "Mapa de los Árboles"
},
"description": {
"nl": "Breng bomen in kaart!",
@@ -40,7 +42,8 @@
"de": "Kartieren Sie alle Bäume!",
"nb_NO": "Kartlegg trærne.",
"hu": "Térképezzünk fel minden fát!",
- "ca": "Mapeja tots els arbres."
+ "ca": "Mapeja tots els arbres.",
+ "es": "Mapa de todos los Árboles"
},
"maintainer": "Midgard",
"icon": "./assets/themes/trees/logo.svg",
diff --git a/langs/layers/en.json b/langs/layers/en.json
index 3810cd4645..aaf6f81d83 100644
--- a/langs/layers/en.json
+++ b/langs/layers/en.json
@@ -5673,6 +5673,7 @@
"name": "Watermill"
},
"windturbine": {
+ "description": "Modern windmills generating electricity",
"name": "wind turbine",
"presets": {
"0": {
diff --git a/langs/layers/es.json b/langs/layers/es.json
index bb8a70ec85..482a0f017e 100644
--- a/langs/layers/es.json
+++ b/langs/layers/es.json
@@ -1093,5 +1093,125 @@
"question": "¿Se puede visitar esta torre?"
}
}
+ },
+ "tree_node": {
+ "description": "Una capa que muestra árboles",
+ "name": "Árbol",
+ "presets": {
+ "0": {
+ "description": "Un árbol de hojas como el Roble o el Álamo.",
+ "title": "árbol de hoja ancha"
+ },
+ "1": {
+ "description": "Un árbol de hojas agujas, como el Pino o el Abeto.",
+ "title": "Árbol tipo Conífera"
+ },
+ "2": {
+ "description": "Si no estás seguro de si es un árbol de hoja ancha o de hoja de aguja.",
+ "title": "un árbol"
+ }
+ },
+ "tagRenderings": {
+ "tree-decidouous": {
+ "mappings": {
+ "0": {
+ "then": "Caduco o Deciduo: el árbol pierde las hojas en un período del año"
+ },
+ "1": {
+ "then": "Siempreverde."
+ }
+ },
+ "question": "¿El árbol es Siempreverde o Caduco?"
+ },
+ "tree-denotation": {
+ "mappings": {
+ "0": {
+ "then": "El árbol es notable debido a su tamaño o ubicación prominente. Es útil para la navegación."
+ },
+ "1": {
+ "then": "El árbol es un monumento natural, por ejemplo, porque es especialmente antiguo, o de una especie valiosa."
+ },
+ "2": {
+ "then": "El árbol se utiliza con fines agrícolas, por ejemplo, en un huerto."
+ },
+ "3": {
+ "then": "El árbol está en un parque o similar (cementerio, recinto escolar, ...)."
+ },
+ "4": {
+ "then": "El árbol está en un jardín privado o residencial."
+ },
+ "5": {
+ "then": "El árbol está en bandejón de una avenida."
+ },
+ "6": {
+ "then": "El árbol está en un zona urbana."
+ },
+ "7": {
+ "then": "El árbol está fuera de una zona urbana."
+ }
+ },
+ "question": "¿Qué importancia tiene este árbol? Elige la primera respuesta que corresponda."
+ },
+ "tree-height": {
+ "mappings": {
+ "0": {
+ "then": "Altura: {height} m"
+ }
+ },
+ "render": "Altura: {height}"
+ },
+ "tree-heritage": {
+ "mappings": {
+ "0": {
+ "then": "Registrado como patrimonio por Onroerend Erfgoed Flandes"
+ },
+ "1": {
+ "then": "Registrado como patrimonio por la Dirección de Patrimonio Cultural de Bruselas"
+ },
+ "2": {
+ "then": "Registrado como patrimonio por una organización diferente"
+ },
+ "3": {
+ "then": "No registrado como patrimonio"
+ },
+ "4": {
+ "then": "Registrado como patrimonio por un organización diferente"
+ }
+ },
+ "question": "¿Este árbol es patrimonio registrado?"
+ },
+ "tree-leaf_type": {
+ "mappings": {
+ "0": {
+ "then": "Latifoliada"
+ },
+ "1": {
+ "then": "Hoja aguja"
+ },
+ "2": {
+ "then": "Permanentemente sin hojas"
+ }
+ },
+ "question": "¿Es un árbol de hoja ancha o de hoja aguja?"
+ },
+ "tree_node-name": {
+ "mappings": {
+ "0": {
+ "then": "No identificas la especie."
+ }
+ },
+ "question": "El árbol no tiene nombre?."
+ },
+ "tree_node-ref:OnroerendErfgoed": {
+ "question": "¿Cuál es la identificación emitida por Onroerend Erfgoed Flandes?"
+ },
+ "tree_node-wikidata": {
+ "question": "¿Cuál es el ID de Wikidata para este árbol?",
+ "render": "
Wikidata: {wikidata}"
+ }
+ },
+ "title": {
+ "render": "Árbol"
+ }
}
}
\ No newline at end of file
diff --git a/langs/themes/es.json b/langs/themes/es.json
index 03be0cd47e..b1af01d8aa 100644
--- a/langs/themes/es.json
+++ b/langs/themes/es.json
@@ -139,5 +139,10 @@
"personal": {
"description": "Crea una interficie basada en todas las capas disponibles de todas las interficies",
"title": "Interficie personal"
+ },
+ "trees": {
+ "description": "Mapa de todos los Árboles",
+ "shortDescription": "Mapa de los Árboles",
+ "title": "Árboles"
}
}
\ No newline at end of file
diff --git a/scripts/generateTranslations.ts b/scripts/generateTranslations.ts
index a046eabbd3..0f83f30ba3 100644
--- a/scripts/generateTranslations.ts
+++ b/scripts/generateTranslations.ts
@@ -582,14 +582,12 @@ if (!themeOverwritesWeblate) {
genTranslations()
const allTranslationFiles = ScriptUtils.readDirRecSync("langs").filter(path => path.endsWith(".json"))
for (const path of allTranslationFiles) {
- console.log("Formatting ", path)
formatFile(path)
}
-
// Some validation
TranslationPart.fromDirectory("./langs").validateStrict("./langs")
TranslationPart.fromDirectory("./langs/layers").validateStrict("layers")
TranslationPart.fromDirectory("./langs/themes").validateStrict("themes")
TranslationPart.fromDirectory("./langs/shared-questions").validateStrict("shared-questions")
-
+console.log("All done!")