diff --git a/Docs/Hotkeys.md b/Docs/Hotkeys.md
index fff477076c..8931d54f9c 100644
--- a/Docs/Hotkeys.md
+++ b/Docs/Hotkeys.md
@@ -7,7 +7,7 @@
## Table of contents
-1. [Hotkeys](#hotkeys)
+1. [Hotkeys](#)
diff --git a/Docs/wikiIndex.txt b/Docs/wikiIndex.txt
index 18223bccd8..02dc796a24 100644
--- a/Docs/wikiIndex.txt
+++ b/Docs/wikiIndex.txt
@@ -436,7 +436,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/street_lighting street_lighting]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:da|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:ca|en}}
|descr= A MapComplete theme: On this map you can find everything about street lighting
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
diff --git a/Logic/ImageProviders/Imgur.ts b/Logic/ImageProviders/Imgur.ts
index f4a491d68f..a7a1427331 100644
--- a/Logic/ImageProviders/Imgur.ts
+++ b/Logic/ImageProviders/Imgur.ts
@@ -105,7 +105,7 @@ export class Imgur extends ImageProvider {
}
/**
- * Download the attribution from attribution
+ * Download the attribution and license info for the picture at the given URL
*
* const data = {"data":{"id":"I9t6B7B","title":"Station Knokke","description":"author:Pieter Vander Vennet\r\nlicense:CC-BY 4.0\r\nosmid:node\/9812712386","datetime":1655052078,"type":"image\/jpeg","animated":false,"width":2400,"height":1795,"size":910872,"views":2,"bandwidth":1821744,"vote":null,"favorite":false,"nsfw":false,"section":null,"account_url":null,"account_id":null,"is_ad":false,"in_most_viral":false,"has_sound":false,"tags":[],"ad_type":0,"ad_url":"","edited":"0","in_gallery":false,"link":"https:\/\/i.imgur.com\/I9t6B7B.jpg","ad_config":{"safeFlags":["not_in_gallery","share"],"highRiskFlags":[],"unsafeFlags":["sixth_mod_unsafe"],"wallUnsafeFlags":[],"showsAds":false,"showAdLevel":1}},"success":true,"status":200}
* Utils.injectJsonDownloadForTests("https://api.imgur.com/3/image/E0RuAK3", data)
diff --git a/UI/Base/Hotkeys.ts b/UI/Base/Hotkeys.ts
index 0c9f6c6f4a..243417fdb9 100644
--- a/UI/Base/Hotkeys.ts
+++ b/UI/Base/Hotkeys.ts
@@ -7,6 +7,7 @@ import { UIEventSource } from "../../Logic/UIEventSource"
import { VariableUiElement } from "./VariableUIElement"
import { Translation } from "../i18n/Translation"
import { FixedUiElement } from "./FixedUiElement"
+import Translations from "../i18n/Translations"
export default class Hotkeys {
private static readonly _docs: UIEventSource<
@@ -106,11 +107,12 @@ export default class Hotkeys {
return <[string, string | Translation]>[modifiers.join("+"), documentation]
})
.sort()
+ const t = Translations.t.hotkeyDocumentation
return new Combine([
- new Title("Hotkeys", 1),
- "MapComplete supports the following keys:",
+ new Title(t.title, 1),
+ t.intro,
new Table(
- ["Key combination", "Action"],
+ [t.key, t.action],
byKey.map(([key, doc]) => {
return [new FixedUiElement(key).SetClass("code"), doc]
})
diff --git a/UI/Base/MinimapImplementation.ts b/UI/Base/MinimapImplementation.ts
index ebb46f0332..22972f35ff 100644
--- a/UI/Base/MinimapImplementation.ts
+++ b/UI/Base/MinimapImplementation.ts
@@ -404,7 +404,7 @@ export default class MinimapImplementation extends BaseUIElement implements Mini
if (this._options.lastClickLocation) {
const lastClickLocation = this._options.lastClickLocation
- map.on("click", function (e: LeafletMouseEvent) {
+ map.addEventListener("click", function (e: LeafletMouseEvent) {
if (e.originalEvent["dismissed"]) {
return
}
diff --git a/UI/ShowDataLayer/ShowDataLayerImplementation.ts b/UI/ShowDataLayer/ShowDataLayerImplementation.ts
index 2db66af1cf..0f3d9e19f4 100644
--- a/UI/ShowDataLayer/ShowDataLayerImplementation.ts
+++ b/UI/ShowDataLayer/ShowDataLayerImplementation.ts
@@ -340,6 +340,7 @@ export default class ShowDataLayerImplementation {
const self = this
function activate(event: LeafletMouseEvent) {
+ Utils.preventDefaultOnMouseEvent(event)
if (infobox === undefined) {
const tags =
self.allElements?.getEventSourceById(key) ??
@@ -383,8 +384,9 @@ export default class ShowDataLayerImplementation {
leafletLayer.on({
dblclick: activate,
contextmenu: activate,
- click: activate,
+ // click: activate,
})
+ leafletLayer.addEventListener("click", activate)
// Add the feature to the index to open the popup when needed
this.leafletLayersPerId.set(key, {
feature: feature,
diff --git a/assets/contributors.json b/assets/contributors.json
index 80b2b8d584..12e046b0db 100644
--- a/assets/contributors.json
+++ b/assets/contributors.json
@@ -1,11 +1,11 @@
{
"contributors": [
{
- "commits": 4812,
+ "commits": 4872,
"contributor": "Pieter Vander Vennet"
},
{
- "commits": 317,
+ "commits": 318,
"contributor": "Robin van der Linde"
},
{
@@ -212,6 +212,10 @@
"commits": 2,
"contributor": "Stanislas Gueniffey"
},
+ {
+ "commits": 1,
+ "contributor": "flaburgan"
+ },
{
"commits": 1,
"contributor": "bgo-eiu"
diff --git a/assets/layers/ambulancestation/ambulancestation.json b/assets/layers/ambulancestation/ambulancestation.json
index 84d1aed404..a2ce6d71c2 100644
--- a/assets/layers/ambulancestation/ambulancestation.json
+++ b/assets/layers/ambulancestation/ambulancestation.json
@@ -317,7 +317,8 @@
"es": "una estación de ambulancias",
"nb_NO": "en ambulansestasjon",
"da": "en ambulancestation",
- "cs": "stanice rychlé záchranné služby"
+ "cs": "stanice rychlé záchranné služby",
+ "ca": "una estació d'ambulàncies"
},
"description": {
"en": "Add an ambulance station to the map",
diff --git a/assets/layers/atm/atm.json b/assets/layers/atm/atm.json
index dd6099517a..e450f21fbe 100644
--- a/assets/layers/atm/atm.json
+++ b/assets/layers/atm/atm.json
@@ -45,7 +45,8 @@
"en": "an ATM",
"de": "ein Geldautomat",
"fr": "un DAB",
- "nl": "een geldautomaat"
+ "nl": "een geldautomaat",
+ "ca": "un caixer automàtic"
}
}
],
diff --git a/assets/layers/bank/bank.json b/assets/layers/bank/bank.json
index f43f891db7..ddcc86c75f 100644
--- a/assets/layers/bank/bank.json
+++ b/assets/layers/bank/bank.json
@@ -1,10 +1,13 @@
{
"id": "bank",
"description": {
- "en": "A financial institution to deposit money"
+ "en": "A financial institution to deposit money",
+ "de": "Ein Finanzinstitut, um Geld einzuzahlen",
+ "nl": "Een financiële instelling waar je geld kunt"
},
"name": {
- "en": "Banks"
+ "en": "Banks",
+ "de": "Banken"
},
"title": {
"render": "Bank",
@@ -31,25 +34,29 @@
{
"id": "has_atm",
"question": {
- "en": "Does this bank have an ATM?"
+ "en": "Does this bank have an ATM?",
+ "de": "Hat diese Bank einen Geldautomaten?"
},
"mappings": [
{
"if": "atm=yes",
"then": {
- "en": "This bank has an ATM"
+ "en": "This bank has an ATM",
+ "de": "Diese Bank hat einen Geldautomaten"
}
},
{
"if": "atm=no",
"then": {
- "en": "This bank does not have an ATM"
+ "en": "This bank does not have an ATM",
+ "de": "Diese Bank hat keinen Geldautomaten"
}
},
{
"if": "atm=separate",
"then": {
- "en": "This bank does have an ATM, but it is mapped as a different icon"
+ "en": "This bank does have an ATM, but it is mapped as a different icon",
+ "de": "Diese Bank hat zwar einen Geldautomaten, aber dieser ist mit einem anderen Symbol dargestellt"
}
}
]
@@ -62,7 +69,8 @@
"options": [
{
"question": {
- "en": "With an ATM"
+ "en": "With an ATM",
+ "de": "Mit einem Geldautomaten"
},
"osmTags": "atm=yes"
}
diff --git a/assets/layers/bike_cleaning/bike_cleaning.json b/assets/layers/bike_cleaning/bike_cleaning.json
index 8f00a5496b..75cf5485f7 100644
--- a/assets/layers/bike_cleaning/bike_cleaning.json
+++ b/assets/layers/bike_cleaning/bike_cleaning.json
@@ -189,7 +189,7 @@
"if": "fee=no",
"then": {
"en": "This cleaning service is free to use",
- "de": "Kostenloser Reinigungsservice",
+ "de": "Der Reinigungsservice ist kostenlos",
"nl": "Dit fietsschoonmaakpunt is gratis te gebruiken",
"es": "Servicio de limpieza gratis",
"fr": "Service de nettoyage gratuit",
@@ -207,7 +207,8 @@
"en": "This cleaning service is paid",
"nl": "Dit fietsschoonmaakpunt is betalend",
"es": "Este servicio de limpieza es de pago",
- "ca": "Aquest servei de neteja és de pagament"
+ "ca": "Aquest servei de neteja és de pagament",
+ "de": "Dieser Reinigungsservice ist kostenpflichtig"
}
}
],
diff --git a/assets/layers/bike_repair_station/bike_repair_station.json b/assets/layers/bike_repair_station/bike_repair_station.json
index d31f7a65bd..a98ee47a51 100644
--- a/assets/layers/bike_repair_station/bike_repair_station.json
+++ b/assets/layers/bike_repair_station/bike_repair_station.json
@@ -831,7 +831,8 @@
"pt_BR": "uma bomba de bicicleta",
"es": "una bomba de bicicletas",
"da": "en cykelpumpe",
- "cs": "pumpa na kolo"
+ "cs": "pumpa na kolo",
+ "ca": "una manxa per a bicicletes"
},
"tags": [
"amenity=bicycle_repair_station",
diff --git a/assets/layers/bike_shop/bike_shop.json b/assets/layers/bike_shop/bike_shop.json
index 05dddbc930..fbbf0d20bd 100644
--- a/assets/layers/bike_shop/bike_shop.json
+++ b/assets/layers/bike_shop/bike_shop.json
@@ -281,7 +281,7 @@
"pt": "Esta loja de bicicletas se chama {name}",
"es": "Esta tienda de bicicletas se llama {name}",
"da": "Denne cykelbutik hedder {name}",
- "ca": "Aquesta botiga de bicicletes és diu {name}"
+ "ca": "Aquesta botiga de bicicletes s'anomena {name}"
},
"freeform": {
"key": "name"
diff --git a/assets/layers/cafe_pub/cafe_pub.json b/assets/layers/cafe_pub/cafe_pub.json
index b6c305b7b3..14011a9053 100644
--- a/assets/layers/cafe_pub/cafe_pub.json
+++ b/assets/layers/cafe_pub/cafe_pub.json
@@ -34,7 +34,7 @@
"hu": "kocsma",
"ca": "un bar",
"da": "en pub",
- "es": "un pub",
+ "es": "un bar",
"fr": "un pub"
},
"description": {
@@ -59,9 +59,9 @@
"de": "eine Bar",
"ru": "бар",
"hu": "bár",
- "ca": "un pub",
+ "ca": "un bar de copes",
"da": "en bar",
- "es": "un bar",
+ "es": "un bar de copas",
"fr": "un bar"
},
"description": {
diff --git a/assets/layers/climbing_gym/climbing_gym.json b/assets/layers/climbing_gym/climbing_gym.json
index 1f1d01b962..f06128d5cb 100644
--- a/assets/layers/climbing_gym/climbing_gym.json
+++ b/assets/layers/climbing_gym/climbing_gym.json
@@ -237,7 +237,8 @@
{
"title": {
"en": "Climbing gym",
- "nl": "Klimzaal"
+ "nl": "Klimzaal",
+ "de": "Kletterhalle"
},
"tags": [
"leisure=sports_centre",
diff --git a/assets/layers/defibrillator/defibrillator.json b/assets/layers/defibrillator/defibrillator.json
index 86feb90141..f80b092210 100644
--- a/assets/layers/defibrillator/defibrillator.json
+++ b/assets/layers/defibrillator/defibrillator.json
@@ -44,8 +44,8 @@
{
"title": {
"en": "a defibrillator",
- "ca": "Desfibril·lador",
- "es": "una desfibrilador",
+ "ca": "un desfibril·lador",
+ "es": "un desfibrilador",
"fr": "une défibrillateur",
"nl": "een defibrillator",
"de": "einen Defibrillator",
diff --git a/assets/layers/food/food.json b/assets/layers/food/food.json
index 66101d3e74..a30199e23b 100644
--- a/assets/layers/food/food.json
+++ b/assets/layers/food/food.json
@@ -70,7 +70,8 @@
"en": "a fries shop",
"nl": "een frituur",
"de": "eine Pommesbude",
- "fr": "Une friterie"
+ "fr": "Une friterie",
+ "ca": "una botiga de patates fregides"
},
"tags": [
"amenity=fast_food",
diff --git a/assets/layers/gps_track/gps_track.json b/assets/layers/gps_track/gps_track.json
index 4b595f03b1..71d86a84d6 100644
--- a/assets/layers/gps_track/gps_track.json
+++ b/assets/layers/gps_track/gps_track.json
@@ -34,7 +34,8 @@
"nl": "Jouw afgelegde route",
"de": "Zurückgelegte Strecke anzeigen",
"fr": "Votre chemin parcouru",
- "da": "Dit tilbagelagte spor"
+ "da": "Dit tilbagelagte spor",
+ "ca": "La teva pista recorreguda"
},
"mapRendering": [
{
diff --git a/assets/layers/hospital/hospital.json b/assets/layers/hospital/hospital.json
index da2e405c1e..144490447b 100644
--- a/assets/layers/hospital/hospital.json
+++ b/assets/layers/hospital/hospital.json
@@ -29,7 +29,7 @@
"id": "name",
"render": {
"en": "This hospital is called {name}",
- "ca": "Aquest hospital es diu {name}",
+ "ca": "Aquest hospital s'anomena {name}",
"de": "Der Name des Krankenhauses lautet {name}",
"nl": "Dit ziekenhuis heet {name}"
},
diff --git a/assets/layers/hotel/hotel.json b/assets/layers/hotel/hotel.json
index 3a504e62e8..942d9debd9 100644
--- a/assets/layers/hotel/hotel.json
+++ b/assets/layers/hotel/hotel.json
@@ -38,7 +38,8 @@
"title": {
"en": "a hotel",
"nl": "een hotel",
- "de": "ein Hotel"
+ "de": "ein Hotel",
+ "ca": "un hotel"
},
"tags": [
"tourism=hotel"
diff --git a/assets/layers/kindergarten_childcare/kindergarten_childcare.json b/assets/layers/kindergarten_childcare/kindergarten_childcare.json
index b0537a113d..e8dbc246ea 100644
--- a/assets/layers/kindergarten_childcare/kindergarten_childcare.json
+++ b/assets/layers/kindergarten_childcare/kindergarten_childcare.json
@@ -77,7 +77,8 @@
"question": {
"en": "What is the name of this facility?",
"de": "Wie lautet der Name dieser Einrichtung?",
- "nl": "Wat is de naam van deze faciliteit?"
+ "nl": "Wat is de naam van deze faciliteit?",
+ "ca": "Com s'anomena aquesta instal·lació?"
},
"render": {
"en": "This facility is named {name}",
diff --git a/assets/layers/parking/parking.json b/assets/layers/parking/parking.json
index 14a99966d9..135a44b73f 100644
--- a/assets/layers/parking/parking.json
+++ b/assets/layers/parking/parking.json
@@ -41,7 +41,8 @@
"en": "This is a surface parking lot",
"nl": "Dit is een bovengronds parkeerterrein",
"de": "Dies ist ein oberirdischer Parkplatz",
- "fr": "Il s'agit d'un parking en surface"
+ "fr": "Il s'agit d'un parking en surface",
+ "ca": "Aquest és un aparcament en superfície"
}
},
{
@@ -180,7 +181,8 @@
"en": "How many disabled parking spots are there at this parking?",
"nl": "Hoeveel parkeerplaatsen voor gehandicapten zijn er op deze parking?",
"de": "Wie viele barrierefreie Stellplätze gibt es auf diesem Parkplatz?",
- "fr": "Combien y a-t-il de places de stationnement pour personnes à mobilité réduite dans ce parking ?"
+ "fr": "Combien y a-t-il de places de stationnement pour personnes à mobilité réduite dans ce parking ?",
+ "ca": "Quantes places d'aparcament per a persones amb mobilitat reduïda hi ha al parking?"
},
"render": {
"en": "There are {capacity:disabled} disabled parking spots",
diff --git a/assets/layers/school/school.json b/assets/layers/school/school.json
index dcc35c737b..bbe2f2e02c 100644
--- a/assets/layers/school/school.json
+++ b/assets/layers/school/school.json
@@ -32,13 +32,15 @@
"en": "This school is named {name}",
"nl": "Deze school heet {name}",
"de": "Diese Schule heißt {name}",
- "fr": "Cet établissement scolaire s'appelle {name}"
+ "fr": "Cet établissement scolaire s'appelle {name}",
+ "ca": "L'escola s'anomena {name}"
},
"question": {
"en": "What is the name of this school?",
"nl": "Wat is de naam van deze school?",
"de": "Wie lautet der Name dieser Schule?",
- "fr": "Quel est le nom de cet établissement scolaire?"
+ "fr": "Quel est le nom de cet établissement scolaire?",
+ "ca": "Quin és el nom d'aquesta escola?"
},
"freeform": {
"key": "name"
@@ -51,7 +53,8 @@
"en": "How much students can at most enroll in this school?",
"de": "Wie viele Schüler können sich maximal an dieser Schule anmelden?",
"nl": "Ten hoogste hoeveel studenten kunnen er les volgen in deze school?",
- "fr": "Combien d'élèves peuvent s'inscrire au maximum dans cette école ?"
+ "fr": "Combien d'élèves peuvent s'inscrire au maximum dans cette école ?",
+ "ca": "Quants alumnes poden matricular-se com a màxim a aquesta escola?"
},
"render": {
"en": "This school can enroll at most {capacity} students",
@@ -146,7 +149,8 @@
"en": "Which genders can enroll at this school?",
"nl": "Mogen jongens en meisjes les volgen op deze school?",
"de": "Welche Geschlechter können sich an dieser Schule anmelden?",
- "fr": "Quels genres de personnes peuvent s'inscrire dans cette école ?"
+ "fr": "Quels genres de personnes peuvent s'inscrire dans cette école ?",
+ "ca": "Quins gèneres poden inscriure's a aquesta escola?"
},
"mappings": [
{
@@ -155,7 +159,8 @@
"en": "Both boys and girls can enroll here and have classes together",
"nl": "Zowel jongens als meisjes kunnen hier les volgen. In de lessen zitten jongens en meisjes samen.",
"de": "Sowohl Jungen als auch Mädchen können sich hier anmelden und gemeinsam unterrichtet werden",
- "fr": "Les garçons et les filles peuvent s'inscrire ici et suivre des cours ensemble"
+ "fr": "Les garçons et les filles peuvent s'inscrire ici et suivre des cours ensemble",
+ "ca": "Els dos, nois i noies poden inscriure's aquí i prendre classes junts"
}
},
{
@@ -164,7 +169,8 @@
"en": "Both boys and girls can enroll here but they are separated (e.g. they have lessons in different classrooms or at different times)",
"nl": "Jongens en meisjes kunnen hier lesvolgen, maar de lessen zijn gescheiden (bv. de lessen zijn in andere lokalen of op andere momenten)",
"de": "Hier können sich sowohl Jungen als auch Mädchen anmelden, aber sie werden getrennt unterrichtet (z. B. in verschiedenen Klassenräumen oder zu verschiedenen Zeiten)",
- "fr": "Les garçons et les filles peuvent s'inscrire ici, mais ils sont séparés (par exemple, ils ont des cours dans des classes différentes ou à des heures différentes)"
+ "fr": "Les garçons et les filles peuvent s'inscrire ici, mais ils sont séparés (par exemple, ils ont des cours dans des classes différentes ou à des heures différentes)",
+ "ca": "Els dos, nois i noies poden inscriure's aquí, però estan separats (p. e. prenen les classes a diferents aules o diferentes hores)"
}
},
{
@@ -173,7 +179,8 @@
"en": "This is a boys only-school",
"nl": "Deze school is enkel voor jongens",
"de": "Dies ist eine reine Jungenschule",
- "fr": "C'est une école réservée aux garçons"
+ "fr": "C'est une école réservée aux garçons",
+ "ca": "Aquesta és una escola exclusivament per a nois"
}
},
{
@@ -182,7 +189,8 @@
"en": "This is a girls-only school",
"nl": "Deze school is enkel voor meisjes",
"de": "Dies ist eine reine Mädchenschule",
- "fr": "C'est une école réservée aux filles"
+ "fr": "C'est une école réservée aux filles",
+ "ca": "Aquesta és una escola exclusivament per a noies"
}
}
]
@@ -226,7 +234,7 @@
"nl": "Deze school richt zich op studenten zonder extra zorgbehoefte
Dazu gehören auch Schüler, die den Kursen mit kleinen Ad-hoc-Maßnahmen folgen können
",
"fr": "Ceci est un établissement scolaire pour étudiants sans besoins partucliers. Sont inclus les étudiants qui peuvent suivre les cours avec de petites adaptations.
",
- "ca": "Aquesta és una escola per a estudiants sense necesitats especials Açò inclou alumnes que poden seguir les classes amb petites messures
"
+ "ca": "Aquesta és una escola per a estudiants sense necessitats especials Açò inclou alumnes que poden seguir les classes amb petites mesures
"
}
},
{
@@ -235,7 +243,8 @@
"en": "This is a school where adults are taught skills on the level as specified.",
"nl": "Deze school richt zich op volwassenen",
"de": "Dies ist eine Schule, in der Erwachsene auf dem angegebenen Niveau unterrichtet werden.",
- "fr": "Ceci est un établissement où des adultes sont formés au niveau mentionné."
+ "fr": "Ceci est un établissement où des adultes sont formés au niveau mentionné.",
+ "ca": "Aquesta és una escola on els adults reben competències al nivell especificat."
}
},
{
@@ -310,23 +319,27 @@
"key": "language",
"render_all": {
"en": "The following languages are used in this school:{list()}",
- "de": "Folgende Sprachen werden in der Schule verwendet:{list()}"
+ "de": "Folgende Sprachen werden in der Schule verwendet:{list()}",
+ "ca": "En aquesta escola s'utilitzen els idiomes següents:{list()}"
},
"render_single_language": {
"en": "{language():font-bold} is the main language of this school",
- "de": "{language():font-bold} ist die Hauptsprache der Schule"
+ "de": "{language():font-bold} ist die Hauptsprache der Schule",
+ "ca": "{language():font-bold} és la llengua principal d'aquesta escola"
},
"question": {
"en": "What is the main language of this school?What language is spoken with the students in non-language related courses and with the administration?
",
"nl": "Wat is de voertaal van deze school?Welke taal wordt met de studenten gesproken in niet-taal-gerelateerde vakken en met de administratie?
",
"de": "Was ist die Hauptsprache dieser Schule?Welche Sprache wird mit den Schülern in den nicht sprachbezogenen Kursen und mit der Verwaltung gesprochen?
",
- "fr": "Quelle est la langue principale de cette école ?Quelle langue est parlée avec les élèves des cours non linguistiques et avec l'administration ?
"
+ "fr": "Quelle est la langue principale de cette école ?Quelle langue est parlée avec les élèves des cours non linguistiques et avec l'administration ?
",
+ "ca": "Quina és la llengua principal d'aquesta escola?Quina llengua es parla amb els estudiants en classes no relacionades amb la llengua i l'administració?
"
},
"no_known_languages": {
"en": "The main language of this school is unknown",
"nl": "De voertaal van deze school is niet gekend",
"de": "Die Unterrichtssprache der Schule ist unbekannt",
- "fr": "La langue principale de cette école est inconnue"
+ "fr": "La langue principale de cette école est inconnue",
+ "ca": "La llengua principal d'aquesta escola és desconeguda"
}
}
}
diff --git a/assets/layers/shops/shops.json b/assets/layers/shops/shops.json
index 7d03d65dc0..c591e0344e 100644
--- a/assets/layers/shops/shops.json
+++ b/assets/layers/shops/shops.json
@@ -98,7 +98,8 @@
"render": {
"en": "This shop is called {name}",
"de": "Der Name des Geschäfts lautet {name}",
- "nl": "Deze zaak heet {name}"
+ "nl": "Deze zaak heet {name}",
+ "ca": "La botiga s'anomena {name}"
},
"freeform": {
"key": "name"
@@ -219,7 +220,8 @@
"then": {
"en": "This shop offers organic products",
"de": "Dieses Geschäft bietet Bio-Produkte an",
- "nl": "Deze winkel biedt biologische producten aan"
+ "nl": "Deze winkel biedt biologische producten aan",
+ "ca": "Aquesta botiga ofereix productes orgànics"
}
},
{
diff --git a/assets/layers/street_lamps/street_lamps.json b/assets/layers/street_lamps/street_lamps.json
index bcb15754a3..36da306525 100644
--- a/assets/layers/street_lamps/street_lamps.json
+++ b/assets/layers/street_lamps/street_lamps.json
@@ -4,7 +4,8 @@
"en": "Street Lamps",
"nl": "Straatlantaarns",
"de": "Straßenlaternen",
- "es": "Farolas"
+ "es": "Farolas",
+ "ca": "Fanals"
},
"source": {
"osmTags": "highway=street_lamp"
@@ -51,7 +52,8 @@
"en": "a street lamp",
"nl": "een straatlantaarn",
"de": "eine Straßenlaterne",
- "es": "una farola"
+ "es": "una farola",
+ "ca": "un fanal"
},
"tags": [
"highway=street_lamp"
@@ -73,7 +75,8 @@
"en": "What is the reference number of this street lamp?",
"nl": "Wat is het nummer van deze straatlantaarn?",
"de": "Wie lautet die Referenznummer dieser Straßenlaterne?",
- "es": "¿Cual es el número de referencia de esta lámpara callejera?"
+ "es": "¿Cual es el número de referencia de esta lámpara callejera?",
+ "ca": "Quin és el número de referència d'aquest fanal?"
},
"freeform": {
"key": "ref"
@@ -130,7 +133,8 @@
"en": "This lamp is mounted on a pole",
"nl": "Deze lantaarn zit op een paal",
"de": "Die Straßenlaterne ist an einem Mast befestigt",
- "es": "Esta lámpara está montada en un poste"
+ "es": "Esta lámpara está montada en un poste",
+ "ca": "Aquest fanal està muntat en un pal"
}
},
{
@@ -159,7 +163,8 @@
"en": "How is this lamp mounted to the pole?",
"nl": "Hoe zit deze lantaarn aan de paal?",
"de": "Wie ist diese Straßenlaterne am Mast befestigt?",
- "es": "¿Cómo está montada esta lámpara al poste?"
+ "es": "¿Cómo está montada esta lámpara al poste?",
+ "ca": "Com està muntat aquest fanal al pal?"
},
"condition": "support=pole",
"mappings": [
@@ -169,7 +174,8 @@
"en": "This lamp sits atop of a straight mast",
"nl": "Deze lantaarn zit boven op een rechte paal",
"de": "Diese Straßenlaterne sitzt auf einem geraden Mast",
- "es": "Esta lampara está encima de un mástil recto"
+ "es": "Esta lampara está encima de un mástil recto",
+ "ca": "Aquest fanal es troba al final d'un pal recte"
}
},
{
@@ -178,7 +184,8 @@
"en": "This lamp sits at the end of a bent mast",
"nl": "Deze lantaarn zit aan het eind van een gebogen paal",
"de": "Diese Straßenlaterne sitzt am Ende eines gebogenen Mastes",
- "es": "Esta lámpara está encima de un mástil curvado"
+ "es": "Esta lámpara está encima de un mástil curvado",
+ "ca": "Aquest fanal es troba al final d'un pal doblegat"
}
}
]
@@ -208,7 +215,8 @@
"en": "This lamp uses LEDs",
"nl": "Deze lantaarn gebruikt LEDs",
"de": "Diese Straßenlaterne verwendet LEDs",
- "es": "Esta lámpara utiliza LEDs"
+ "es": "Esta lámpara utiliza LEDs",
+ "ca": "Aquest fanal utilitza LED"
}
},
{
@@ -217,7 +225,8 @@
"en": "This lamp uses incandescent lighting",
"nl": "Deze lantaarn gebruikt gloeilampen",
"de": "Diese Straßenlaterne verwendet Glühlampenlicht",
- "es": "Esta lámpara utiliza iluminación incandescente"
+ "es": "Esta lámpara utiliza iluminación incandescente",
+ "ca": "Aquest fanal utilitza il·luminació incandescent"
}
},
{
@@ -226,7 +235,8 @@
"en": "This lamp uses halogen lighting",
"nl": "Deze lantaarn gebruikt halogeen verlichting",
"de": "Diese Straßenlaterne verwendet Halogenlicht",
- "es": "Esta lámpara utiliza iluminación halógena"
+ "es": "Esta lámpara utiliza iluminación halógena",
+ "ca": "Aquest fanal utilitza il·luminació halògena"
}
},
{
@@ -235,7 +245,8 @@
"en": "This lamp uses discharge lamps (unknown type)",
"nl": "Deze lantaarn gebruikt gasontladingslampen (onbekend type)",
"de": "Diese Straßenlaterne verwendet Entladungslampen (unbekannter Typ)",
- "es": "Esta lámpara utiliza lámparas de descarga (de tipo desconocido)"
+ "es": "Esta lámpara utiliza lámparas de descarga (de tipo desconocido)",
+ "ca": "Aquest fanal utilitza làmpades de descàrrega (tipus desconegut)"
}
},
{
@@ -244,7 +255,8 @@
"en": "This lamp uses a mercury-vapour lamp (lightly blueish)",
"nl": "Deze lantaarn gebruikt een kwiklamp (enigszins blauwachtig)",
"de": "Diese Straßenlaterne verwendet eine Quecksilberdampflampe (leicht bläulich)",
- "es": "Esta lámpara utiliza una lámpara de vapor de mercurio (levemente azulada)"
+ "es": "Esta lámpara utiliza una lámpara de vapor de mercurio (levemente azulada)",
+ "ca": "Aquest fanal utilitza una làmpada de vapor de mercuri (lleugerament blau)"
}
},
{
@@ -252,7 +264,8 @@
"then": {
"en": "This lamp uses metal-halide lamps (bright white)",
"nl": "Deze lantaarn gebruikt metaalhalidelampen",
- "de": "Diese Straßenlaterne verwendet Halogen-Metalldampflampen (hellweiß)"
+ "de": "Diese Straßenlaterne verwendet Halogen-Metalldampflampen (hellweiß)",
+ "ca": "Aquest fanal utilitza làmpades d'halogenurs metàl·lics (blanc brillant)"
}
},
{
@@ -261,7 +274,8 @@
"en": "This lamp uses fluorescent lighting",
"nl": "Deze lantaarn gebruikt fluorescentieverlichting (TL en spaarlamp)",
"de": "Diese Straßenlaterne verwendet Leuchtstoffröhren",
- "es": "Esta lámpara utiliza iluminación fluorescente"
+ "es": "Esta lámpara utiliza iluminación fluorescente",
+ "ca": "Aquest fanal utilitza il·luminació fluorescent"
}
},
{
@@ -270,7 +284,8 @@
"en": "This lamp uses sodium lamps (unknown type)",
"nl": "Deze lantaarn gebruikt natriumlampen (onbekend type)",
"de": "Diese Straßenlaterne verwendet Natriumdampflampen (unbekannter Typ)",
- "es": "Esta lámpara utiliza lámparas de sodio (de tipo desconocido)"
+ "es": "Esta lámpara utiliza lámparas de sodio (de tipo desconocido)",
+ "ca": "Aquest fanal utilitza làmpades de sodi (tipus desconegut)"
}
},
{
@@ -279,7 +294,8 @@
"en": "This lamp uses low pressure sodium lamps (monochrome orange)",
"nl": "Deze lantaarn gebruikt lagedruknatriumlampen (monochroom oranje)",
"de": "Diese Straßenlaterne verwendet Niederdruck-Natriumdampflampen (einfarbig orange)",
- "es": "Esta lámpara utiliza lámparas de sodio de baja presión (naranja monocromo)"
+ "es": "Esta lámpara utiliza lámparas de sodio de baja presión (naranja monocromo)",
+ "ca": "Aquest fanal utilitza làmpades de sodi de baixa pressió (taronja monocroma)"
}
},
{
@@ -288,7 +304,8 @@
"en": "This lamp uses high pressure sodium lamps (orange with white)",
"nl": "Deze lantaarn gebruikt hogedruknatriumlampen (oranje met wit)",
"de": "Diese Straßenlaterne verwendet Hochdruck-Natriumdampflampen (orange mit weiß)",
- "es": "Esta lámpara utiliza lámparas de sodio de alta presión (naranja con blanco)"
+ "es": "Esta lámpara utiliza lámparas de sodio de alta presión (naranja con blanco)",
+ "ca": "Aquest fanal utilitza làmpades de sodi d'alta pressió (taronja amb blanc)"
}
},
{
@@ -297,7 +314,8 @@
"en": "This lamp is lit using gas",
"nl": "Deze lantaarn wordt verlicht met gas",
"de": "Diese Straßenlaterne wird mit Gas beleuchtet",
- "es": "Esta lampara se ilumina con gas"
+ "es": "Esta lampara se ilumina con gas",
+ "ca": "Aquest fanal s'il·lumina amb gas"
}
}
]
@@ -308,7 +326,8 @@
"en": "What colour light does this lamp emit?",
"nl": "Wat voor kleur licht geeft deze lantaarn?",
"de": "Welche Lichtfarbe strahlt diese Lampe aus?",
- "es": "¿De qué color es la luz que emite esta lámpara?"
+ "es": "¿De qué color es la luz que emite esta lámpara?",
+ "ca": "Quin color de llum emet aquest fanal?"
},
"render": {
"en": "This lamp emits {light:colour} light",
@@ -327,7 +346,8 @@
"en": "This lamp emits white light",
"nl": "Deze lantaarn geeft wit licht",
"de": "Diese Lampe strahlt weißes Licht aus",
- "es": "Esta lámpara emite luz blanca"
+ "es": "Esta lámpara emite luz blanca",
+ "ca": "Aquest fanal emet llum blanca"
}
},
{
@@ -336,7 +356,8 @@
"en": "This lamp emits green light",
"nl": "Deze lantaarn geeft groen licht",
"de": "Diese Lampe strahlt grünes Licht aus",
- "es": "Esta lámpara emite luz verde"
+ "es": "Esta lámpara emite luz verde",
+ "ca": "Aquest fanal emet llum verda"
}
},
{
@@ -345,7 +366,8 @@
"en": "This lamp emits orange light",
"nl": "Deze lantaarn geeft oranje licht",
"de": "Diese Lampe strahlt orangefarbenes Licht aus",
- "es": "Esta lámpara emite luz naranja"
+ "es": "Esta lámpara emite luz naranja",
+ "ca": "Aquest fanal emet llum taronja"
}
}
]
@@ -374,7 +396,8 @@
"en": "This lamp has 1 fixture",
"nl": "Deze lantaarn heeft 1 lamp",
"de": "Diese Straßenlaterne hat 1 Leuchte",
- "es": ""
+ "es": "",
+ "ca": "Aquest fanal té 1 aparell"
}
},
{
@@ -382,7 +405,8 @@
"then": {
"en": "This lamp has 2 fixtures",
"nl": "Deze lantaarn heeft 2 lampen",
- "de": "Diese Straßenlaterne hat 2 Leuchten"
+ "de": "Diese Straßenlaterne hat 2 Leuchten",
+ "ca": "Aquest fanal té 2 aparells"
}
}
]
@@ -393,7 +417,8 @@
"en": "When is this lamp lit?",
"nl": "Wanneer is deze lantaarn verlicht?",
"de": "Wann leuchtet diese Straßenlaterne?",
- "es": "¿Cuándo se ilumina esta lámpara?"
+ "es": "¿Cuándo se ilumina esta lámpara?",
+ "ca": "Quan s'encén aquest fanal?"
},
"mappings": [
{
@@ -402,7 +427,8 @@
"en": "This lamp is lit at night",
"nl": "Deze lantaarn is 's nachts verlicht",
"de": "Diese Straßenlaterne leuchtet nachts",
- "es": "Esta lámpara está iluminada por la noche"
+ "es": "Esta lámpara está iluminada por la noche",
+ "ca": "Aquest fanal s'encén a la nit"
}
},
{
@@ -411,7 +437,8 @@
"en": "This lamp is lit 24/7",
"nl": "Deze lantaarn is 24/7 verlicht",
"de": "Diese Straßenlaterne leuchtet durchgehend",
- "es": "Esta lámpara está iluminada 24/7"
+ "es": "Esta lámpara está iluminada 24/7",
+ "ca": "Aquest fanal està encès les 24 hores del dia"
}
},
{
@@ -420,7 +447,8 @@
"en": "This lamp is lit based on motion",
"nl": "Deze lantaarn is verlicht op basis van beweging",
"de": "Diese Straßenlaterne leuchtet bewegungsgesteuert",
- "es": "Esta lámpara se ilumina con el movimiento"
+ "es": "Esta lámpara se ilumina con el movimiento",
+ "ca": "Aquest fanal s'encén en funció del moviment"
}
},
{
@@ -429,7 +457,8 @@
"en": "This lamp is lit based on demand (e.g. with a pushbutton)",
"nl": "Deze lantaarn is verlicht op verzoek (bijv. met een drukknop)",
"de": "Diese Straßenlaterne leuchtet bei Bedarf (z. B. mit einem Taster)",
- "es": "Esta lámpara se ilumina bajo demanda (ej. con un pulsador)"
+ "es": "Esta lámpara se ilumina bajo demanda (ej. con un pulsador)",
+ "ca": "Aquest fanal s'encén segons la demanda (per exemple, amb un polsador)"
}
}
]
@@ -440,13 +469,15 @@
"en": "This lamp points towards {light:direction}",
"nl": "Deze lantaarn is gericht naar {light:direction}",
"de": "Diese Straßenlaterne leuchtet in Richtung {light:direction}",
- "es": "Esta lámpara apunta hacia {light:direction}"
+ "es": "Esta lámpara apunta hacia {light:direction}",
+ "ca": "Aquest fanal apunta cap a {light:direction}"
},
"question": {
"en": "Where does this lamp point to?",
"nl": "Waar is deze lamp heengericht?",
"de": "Wohin leuchtet diese Straßenlaterne?",
- "es": "¿Hacia donde apunta esta lámpara?"
+ "es": "¿Hacia donde apunta esta lámpara?",
+ "ca": "Cap a on apunta aquest fanal?"
},
"condition": "light:count=1",
"freeform": {
diff --git a/assets/layers/toilet/toilet.json b/assets/layers/toilet/toilet.json
index 96c1a3b66b..8dcc6798ce 100644
--- a/assets/layers/toilet/toilet.json
+++ b/assets/layers/toilet/toilet.json
@@ -90,7 +90,8 @@
"nl": "Toegankelijkheid is {access}",
"it": "L'accesso è {access}",
"es": "El acceso es {access}",
- "da": "Adgang er {access}"
+ "da": "Adgang er {access}",
+ "ca": "L'accés és {access}"
},
"freeform": {
"key": "access",
@@ -294,7 +295,8 @@
"en": "There is only a dedicated toilet for wheelchair users",
"nl": "Er is alleen een toilet voor rolstoelgebruikers",
"de": "Es gibt nur eine barrierefreie Toilette für Rollstuhlfahrer",
- "da": "Der er kun et særligt toilet til kørestolsbrugere"
+ "da": "Der er kun et særligt toilet til kørestolsbrugere",
+ "ca": "Sols hi ha un lavabo per a usuaris amb cadira de rodes"
}
}
]
@@ -381,7 +383,8 @@
"nl": "Er zijn zowel urinoirs als zittoiletten",
"it": "Ci sono sia sedili, sia urinali",
"es": "Aquí hay tanto váteres de sentarse como orinales",
- "da": "Både siddende toiletter og urinaler er tilgængelige her"
+ "da": "Både siddende toiletter og urinaler er tilgængelige her",
+ "ca": "Aquí hi ha lavabos per a utilitzar tant de peu com asseguts"
}
}
]
diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json
index 137bb92603..2b57761506 100644
--- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json
+++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json
@@ -580,4 +580,4 @@
}
}
]
-}
\ No newline at end of file
+}
diff --git a/assets/themes/street_lighting/street_lighting.json b/assets/themes/street_lighting/street_lighting.json
index 755a3efc65..0c7b5633e2 100644
--- a/assets/themes/street_lighting/street_lighting.json
+++ b/assets/themes/street_lighting/street_lighting.json
@@ -21,7 +21,8 @@
"de": "Eine Karte für alles zum Thema Straßenbeleuchtung",
"es": "En este mapa puedes encontrar todo sobre la iluminación callejera",
"fr": "Retrouvez tout ce qui touche à l’éclairage de rue sur cette carte",
- "da": "På dette kort kan du finde alt om gadebelysning"
+ "da": "På dette kort kan du finde alt om gadebelysning",
+ "ca": "En aquest mapa pots trobar tot el relacionat amb l'enllumenat públic"
},
"icon": "./assets/layers/street_lamps/street_lamp.svg",
"startZoom": 19,
diff --git a/assets/translators.json b/assets/translators.json
index 5a6f8f821e..7bc114c8d3 100644
--- a/assets/translators.json
+++ b/assets/translators.json
@@ -1,11 +1,11 @@
{
"contributors": [
{
- "commits": 230,
+ "commits": 233,
"contributor": "Pieter Vander Vennet"
},
{
- "commits": 198,
+ "commits": 204,
"contributor": "kjon"
},
{
@@ -14,11 +14,11 @@
},
{
"commits": 61,
- "contributor": "danieldegroot2"
+ "contributor": "Robin van der Linde"
},
{
- "commits": 58,
- "contributor": "Robin van der Linde"
+ "commits": 61,
+ "contributor": "danieldegroot2"
},
{
"commits": 45,
@@ -36,6 +36,10 @@
"commits": 29,
"contributor": "Artem"
},
+ {
+ "commits": 28,
+ "contributor": "paunofu"
+ },
{
"commits": 27,
"contributor": "Supaplex"
@@ -68,10 +72,6 @@
"commits": 14,
"contributor": "J. Lavoie"
},
- {
- "commits": 13,
- "contributor": "paunofu"
- },
{
"commits": 13,
"contributor": "Romain de Bossoreille"
@@ -132,6 +132,10 @@
"commits": 7,
"contributor": "Niels Elgaard Larsen"
},
+ {
+ "commits": 6,
+ "contributor": "Jaime Marquínez Ferrándiz"
+ },
{
"commits": 6,
"contributor": "Joost Schouppe"
@@ -218,11 +222,11 @@
},
{
"commits": 3,
- "contributor": "aleksej0R"
+ "contributor": "Bibi56"
},
{
"commits": 3,
- "contributor": "Jaime Marquínez Ferrándiz"
+ "contributor": "aleksej0R"
},
{
"commits": 3,
diff --git a/langs/ca.json b/langs/ca.json
index 659b24f9ab..9ad85131c8 100644
--- a/langs/ca.json
+++ b/langs/ca.json
@@ -88,6 +88,7 @@
"josmOpened": "JOSM és obert",
"mapContributionsBy": "Les dades mostrades tenen edicions fetes per {contributors}",
"mapContributionsByAndHidden": "Les dades mostrades tenen edicions fetes per {contributors} i {hiddenCount} col·laboradors més",
+ "mapillaryHelp": "Mapillary és un servei en línea que arreplega imatges a peu de carrer i les ofereix sota una llicència lliure. Els contribuïdors poden utilizar aquestes imatges per a millorar OpenStreetMap",
"openIssueTracker": "Registrar un error",
"openMapillary": "Obrir Mapillary aquí",
"openOsmcha": "Veure darreres edicions fetes amb {theme}",
@@ -122,6 +123,7 @@
},
"example": "Exemple",
"examples": "Exemples",
+ "feelFreeToSkip": "Podeu afegir més informació a sota, però sentiu-vos lliures de botar preguntes que no conegueu la resposta.",
"fewChangesBefore": "Contesta unes quantes preguntes sobre punts existents abans d'afegir-ne un de nou.",
"getStartedLogin": "Entra a OpenStreetMap per començar",
"getStartedNewAccount": " o crea un nou compte",
@@ -150,6 +152,7 @@
"streetcomplete": "Una altra aplicació similar és StreetComplete."
},
"nameInlineQuestion": "{category}: El seu nom és $$$",
+ "newlyCreated": "Acabeu de crear aquest element! Gràcies per compartir aquesta informació amb el mon i ajudar a persones al voltant del món.",
"next": "Següent",
"noNameCategory": "{category} sense nom",
"noTagsSelected": "No s'han seleccionat etiquetes",
@@ -242,7 +245,10 @@
},
"welcomeBack": "Has entrat, benvingut/da.",
"welcomeExplanation": {
- "addNew": "Toqueu el mapa per afegir un nou PDI."
+ "addNew": "Toqueu el mapa per afegir un nou PDI.",
+ "browseMoreMaps": "Descobreix més mapes",
+ "browseOtherThemesIntro": "Varios mapes temàtics existents a MapComplete",
+ "general": "A aquest mapa, podeu observar, editar i afegir punt d'interés. Feu zoom pel voltant per veure el PDI, toque una vegada per a veure o editar la informació. Totes les dades s'obtenen i es desen a OpenStreetMap, que es poden reutilitzar lliurement."
},
"wikipedia": {
"createNewWikidata": "Crear un ítem de Wikidata",
@@ -542,6 +548,11 @@
"missing": "{count} cadenes sense traduir",
"notImmediate": "Les traduccions no s'actualitzen directament. Això sol trigar uns quants dies"
},
+ "userinfo": {
+ "gotoInbox": "Obre la teva safata d'entrada",
+ "gotoSettings": "Aneu a la vostra configuració a OpenStreetMap.org",
+ "moveToHome": "Mou el mapa a la vostra ubicació de casa"
+ },
"validation": {
"color": {
"description": "Un color o codi hex"
diff --git a/langs/en.json b/langs/en.json
index 171a8b11e6..8dbf89fedc 100644
--- a/langs/en.json
+++ b/langs/en.json
@@ -355,12 +355,16 @@
}
},
"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",
"openLayersPanel": "Opens the Background, layers and filters panel",
"selectBackground": "Select a background layer of category {category}",
"selectMapnik": "Sets the background layer to OpenStreetMap-carto",
- "selectSearch": "Select the search bar to search locations"
+ "selectSearch": "Select the search bar to search locations",
+ "title": "Hotkeys"
},
"image": {
"addPicture": "Add picture",
diff --git a/langs/layers/ca.json b/langs/layers/ca.json
index 1d1a6f3446..f315b78eee 100644
--- a/langs/layers/ca.json
+++ b/langs/layers/ca.json
@@ -29,7 +29,8 @@
"name": "Mapa d'estacions d'ambulàncies",
"presets": {
"0": {
- "description": "Afegeix una estació d'ambulàncies al mapa"
+ "description": "Afegeix una estació d'ambulàncies al mapa",
+ "title": "una estació d'ambulàncies"
}
},
"tagRenderings": {
@@ -89,6 +90,11 @@
},
"atm": {
"description": "Caixers automàtics on retirar diners",
+ "presets": {
+ "0": {
+ "title": "un caixer automàtic"
+ }
+ },
"tagRenderings": {
"brand": {
"question": "De quina marca és aquest caixer?"
@@ -371,6 +377,11 @@
},
"bike_repair_station": {
"name": "Manxa i reparació de bicicletes",
+ "presets": {
+ "0": {
+ "title": "una manxa per a bicicletes"
+ }
+ },
"tagRenderings": {
"bike_repair_station-available-services": {
"mappings": {
@@ -458,7 +469,7 @@
}
},
"bike_shop-name": {
- "render": "Aquesta botiga de bicicletes és diu {name}"
+ "render": "Aquesta botiga de bicicletes s'anomena {name}"
}
},
"title": {
@@ -504,7 +515,7 @@
"title": "un bar"
},
"1": {
- "title": "un pub"
+ "title": "un bar de copes"
},
"2": {
"title": "un cafè"
@@ -772,7 +783,7 @@
"name": "Desfibril·ladors",
"presets": {
"0": {
- "title": "Desfibril·lador"
+ "title": "un desfibril·lador"
}
},
"tagRenderings": {
@@ -937,7 +948,8 @@
"title": "un de menjar ràpid"
},
"2": {
- "description": "Un local de menjar ràpid centrat en les patates fregides"
+ "description": "Un local de menjar ràpid centrat en les patates fregides",
+ "title": "una botiga de patates fregides"
}
},
"tagRenderings": {
@@ -995,6 +1007,9 @@
"render": "Bicicleta blanca"
}
},
+ "gps_track": {
+ "name": "La teva pista recorreguda"
+ },
"hackerspace": {
"presets": {
"1": {
@@ -1014,7 +1029,14 @@
"tagRenderings": {
"name": {
"question": "Quin és el nom d'aquest hospital?",
- "render": "Aquest hospital es diu {name}"
+ "render": "Aquest hospital s'anomena {name}"
+ }
+ }
+ },
+ "hotel": {
+ "presets": {
+ "0": {
+ "title": "un hotel"
}
}
},
@@ -1073,6 +1095,7 @@
}
},
"name": {
+ "question": "Com s'anomena aquesta instal·lació?",
"render": "Aquesta instal·lació s'anomena {name}"
}
}
@@ -1144,7 +1167,19 @@
}
},
"parking": {
- "name": "Aparcament"
+ "name": "Aparcament",
+ "tagRenderings": {
+ "capacity-disabled": {
+ "question": "Quantes places d'aparcament per a persones amb mobilitat reduïda hi ha al parking?"
+ },
+ "parking-type": {
+ "mappings": {
+ "0": {
+ "then": "Aquest és un aparcament en superfície"
+ }
+ }
+ }
+ }
},
"parking_spaces": {
"tagRenderings": {
@@ -1327,10 +1362,47 @@
},
"school": {
"tagRenderings": {
+ "capacity": {
+ "question": "Quants alumnes poden matricular-se com a màxim a aquesta escola?"
+ },
+ "gender": {
+ "mappings": {
+ "0": {
+ "then": "Els dos, nois i noies poden inscriure's aquí i prendre classes junts"
+ },
+ "1": {
+ "then": "Els dos, nois i noies poden inscriure's aquí, però estan separats (p. e. prenen les classes a diferents aules o diferentes hores)"
+ },
+ "2": {
+ "then": "Aquesta és una escola exclusivament per a nois"
+ },
+ "3": {
+ "then": "Aquesta és una escola exclusivament per a noies"
+ }
+ },
+ "question": "Quins gèneres poden inscriure's a aquesta escola?"
+ },
+ "school-language": {
+ "render": {
+ "special": {
+ "no_known_languages": "La llengua principal d'aquesta escola és desconeguda",
+ "question": "Quina és la llengua principal d'aquesta escola?Quina llengua es parla amb els estudiants en classes no relacionades amb la llengua i l'administració?
",
+ "render_all": "En aquesta escola s'utilitzen els idiomes següents:{list()}",
+ "render_single_language": "{language():font-bold} és la llengua principal d'aquesta escola"
+ }
+ }
+ },
+ "school-name": {
+ "question": "Quin és el nom d'aquesta escola?",
+ "render": "L'escola s'anomena {name}"
+ },
"target-audience": {
"mappings": {
"1": {
- "then": "Aquesta és una escola per a estudiants sense necesitats especials Açò inclou alumnes que poden seguir les classes amb petites messures
"
+ "then": "Aquesta és una escola per a estudiants sense necessitats especials Açò inclou alumnes que poden seguir les classes amb petites mesures
"
+ },
+ "2": {
+ "then": "Aquesta és una escola on els adults reben competències al nivell especificat."
},
"3": {
"then": "Aquesta és una escola per a estudiants amb autisme"
@@ -1354,6 +1426,18 @@
},
"shops": {
"name": "Botiga",
+ "tagRenderings": {
+ "organic": {
+ "mappings": {
+ "0": {
+ "then": "Aquesta botiga ofereix productes orgànics"
+ }
+ }
+ },
+ "shops-name": {
+ "render": "La botiga s'anomena {name}"
+ }
+ },
"title": {
"mappings": {
"0": {
@@ -1413,6 +1497,119 @@
"render": "Camp d'esports"
}
},
+ "street_lamps": {
+ "name": "Fanals",
+ "presets": {
+ "0": {
+ "title": "un fanal"
+ }
+ },
+ "tagRenderings": {
+ "colour": {
+ "mappings": {
+ "0": {
+ "then": "Aquest fanal emet llum blanca"
+ },
+ "1": {
+ "then": "Aquest fanal emet llum verda"
+ },
+ "2": {
+ "then": "Aquest fanal emet llum taronja"
+ }
+ },
+ "question": "Quin color de llum emet aquest fanal?"
+ },
+ "count": {
+ "mappings": {
+ "0": {
+ "then": "Aquest fanal té 1 aparell"
+ },
+ "1": {
+ "then": "Aquest fanal té 2 aparells"
+ }
+ }
+ },
+ "direction": {
+ "question": "Cap a on apunta aquest fanal?",
+ "render": "Aquest fanal apunta cap a {light:direction}"
+ },
+ "lamp_mount": {
+ "mappings": {
+ "0": {
+ "then": "Aquest fanal es troba al final d'un pal recte"
+ },
+ "1": {
+ "then": "Aquest fanal es troba al final d'un pal doblegat"
+ }
+ },
+ "question": "Com està muntat aquest fanal al pal?"
+ },
+ "lit": {
+ "mappings": {
+ "0": {
+ "then": "Aquest fanal s'encén a la nit"
+ },
+ "1": {
+ "then": "Aquest fanal està encès les 24 hores del dia"
+ },
+ "2": {
+ "then": "Aquest fanal s'encén en funció del moviment"
+ },
+ "3": {
+ "then": "Aquest fanal s'encén segons la demanda (per exemple, amb un polsador)"
+ }
+ },
+ "question": "Quan s'encén aquest fanal?"
+ },
+ "method": {
+ "mappings": {
+ "1": {
+ "then": "Aquest fanal utilitza LED"
+ },
+ "2": {
+ "then": "Aquest fanal utilitza il·luminació incandescent"
+ },
+ "3": {
+ "then": "Aquest fanal utilitza il·luminació halògena"
+ },
+ "4": {
+ "then": "Aquest fanal utilitza làmpades de descàrrega (tipus desconegut)"
+ },
+ "5": {
+ "then": "Aquest fanal utilitza una làmpada de vapor de mercuri (lleugerament blau)"
+ },
+ "6": {
+ "then": "Aquest fanal utilitza làmpades d'halogenurs metàl·lics (blanc brillant)"
+ },
+ "7": {
+ "then": "Aquest fanal utilitza il·luminació fluorescent"
+ },
+ "8": {
+ "then": "Aquest fanal utilitza làmpades de sodi (tipus desconegut)"
+ },
+ "9": {
+ "then": "Aquest fanal utilitza làmpades de sodi de baixa pressió (taronja monocroma)"
+ },
+ "10": {
+ "then": "Aquest fanal utilitza làmpades de sodi d'alta pressió (taronja amb blanc)"
+ },
+ "11": {
+ "then": "Aquest fanal s'il·lumina amb gas"
+ }
+ }
+ },
+ "ref": {
+ "question": "Quin és el número de referència d'aquest fanal?"
+ },
+ "support": {
+ "mappings": {
+ "4": {
+ "then": "Aquest fanal està muntat en un pal"
+ }
+ }
+ }
+ }
+ },
"surveillance_camera": {
"name": "Càmeres de videovigilància",
"tagRenderings": {
@@ -1440,7 +1637,22 @@
"toilet": {
"name": "Lavabos",
"tagRenderings": {
+ "toilet-access": {
+ "render": "L'accés és {access}"
+ },
+ "toilets-type": {
+ "mappings": {
+ "3": {
+ "then": "Aquí hi ha lavabos per a utilitzar tant de peu com asseguts"
+ }
+ }
+ },
"toilets-wheelchair": {
+ "mappings": {
+ "2": {
+ "then": "Sols hi ha un lavabo per a usuaris amb cadira de rodes"
+ }
+ },
"question": "Hi ha un lavabo específic per a usuaris de cadira de rodes?"
}
},
diff --git a/langs/layers/de.json b/langs/layers/de.json
index edcdef01f6..ebafc8f530 100644
--- a/langs/layers/de.json
+++ b/langs/layers/de.json
@@ -260,6 +260,35 @@
"render": "Geldautomat"
}
},
+ "bank": {
+ "description": "Ein Finanzinstitut, um Geld einzuzahlen",
+ "filter": {
+ "1": {
+ "options": {
+ "0": {
+ "question": "Mit einem Geldautomaten"
+ }
+ }
+ }
+ },
+ "name": "Banken",
+ "tagRenderings": {
+ "has_atm": {
+ "mappings": {
+ "0": {
+ "then": "Diese Bank hat einen Geldautomaten"
+ },
+ "1": {
+ "then": "Diese Bank hat keinen Geldautomaten"
+ },
+ "2": {
+ "then": "Diese Bank hat zwar einen Geldautomaten, aber dieser ist mit einem anderen Symbol dargestellt"
+ }
+ },
+ "question": "Hat diese Bank einen Geldautomaten?"
+ }
+ }
+ },
"barrier": {
"description": "Hindernisse beim Fahrradfahren, wie zum Beispiel Poller und Fahrrad Barrieren",
"name": "Hindernisse",
@@ -832,7 +861,10 @@
"bike_cleaning-charge": {
"mappings": {
"0": {
- "then": "Kostenloser Reinigungsservice"
+ "then": "Der Reinigungsservice ist kostenlos"
+ },
+ "1": {
+ "then": "Dieser Reinigungsservice ist kostenpflichtig"
}
},
"question": "Wie viel kostet die Nutzung des Reinigungsdienstes?",
@@ -2695,6 +2727,11 @@
"climbing_gym": {
"description": "Eine Kletterhalle",
"name": "Kletterhallen",
+ "presets": {
+ "0": {
+ "title": "Kletterhalle"
+ }
+ },
"tagRenderings": {
"Speed climbing?": {
"mappings": {
diff --git a/langs/layers/es.json b/langs/layers/es.json
index da803afa33..793c675791 100644
--- a/langs/layers/es.json
+++ b/langs/layers/es.json
@@ -1113,11 +1113,11 @@
"presets": {
"0": {
"description": "Un bar, principalmente para beber cervezas en un interior templado y relajado",
- "title": "un pub"
+ "title": "un bar"
},
"1": {
"description": "Un bar más moderno y comercial, posiblemente con una instalación de música y luz",
- "title": "un bar"
+ "title": "un bar de copas"
},
"2": {
"description": "Una cafetería para beber té, café o una bebida alcohólica en un ambiente tranquilo",
@@ -1947,7 +1947,7 @@
"name": "Desfibriladores",
"presets": {
"0": {
- "title": "una desfibrilador"
+ "title": "un desfibrilador"
},
"1": {
"title": "un desfibrilador montado en una pared"
diff --git a/langs/layers/nl.json b/langs/layers/nl.json
index cea5db9c4d..e4402b62bc 100644
--- a/langs/layers/nl.json
+++ b/langs/layers/nl.json
@@ -260,6 +260,9 @@
"render": "Geldautomaat"
}
},
+ "bank": {
+ "description": "Een financiële instelling waar je geld kunt"
+ },
"barrier": {
"description": "Hindernissen tijdens het fietsen, zoals paaltjes en fietshekjes",
"name": "Barrières",
diff --git a/langs/nl.json b/langs/nl.json
index 0979e1f08f..0ed96539e1 100644
--- a/langs/nl.json
+++ b/langs/nl.json
@@ -930,7 +930,7 @@
"gotoSettings": "Ga naar je instellingen op OpenStreetMap.org",
"moveToHome": "Beweeg de kaart naar je thuislocatie",
"newMessages": "je hebt nieuwe berichten",
- "noDescription": "Je hebt nog een beschrijving op je profiel",
+ "noDescription": "Je hebt nog geen beschrijving op je profiel",
"noDescriptionCallToAction": "Voeg een profielbeschrijving toe",
"welcome": "Welkom {name}"
},
diff --git a/langs/themes/ca.json b/langs/themes/ca.json
index 2076013a7c..1e41a70185 100644
--- a/langs/themes/ca.json
+++ b/langs/themes/ca.json
@@ -685,6 +685,7 @@
"title": "Camps d'esports"
},
"street_lighting": {
+ "description": "En aquest mapa pots trobar tot el relacionat amb l'enllumenat públic",
"layers": {
"1": {
"name": "Il·luminació de carrers",
diff --git a/package.json b/package.json
index fa552ba674..5e178008b8 100644
--- a/package.json
+++ b/package.json
@@ -47,9 +47,8 @@
"clean": "rm -rf .cache/ && (find *.html | grep -v \"^\\(404\\|index\\|land\\|test\\|preferences\\|customGenerator\\|professional\\|automaton\\|import_helper\\|import_viewer\\|theme\\).html\" | xargs rm) && (ls | grep \"^index_[a-zA-Z_-]\\+\\.ts$\" | xargs rm) && (ls | grep \".*.webmanifest$\" | grep -v \"manifest.webmanifest\" | xargs rm)",
"generate:dependency-graph": "node_modules/.bin/depcruise --exclude \"^node_modules\" --output-type dot Logic/State/MapState.ts > dependencies.dot && dot dependencies.dot -T svg -o dependencies.svg && rm dependencies.dot",
"script": "ts-node",
- "weblate-merge": "./scripts/automerge-translations.sh",
"weblate-add-upstream": "git remote add weblate-github git@github.com:weblate/MapComplete.git",
- "weblate-fix": "git remote update weblate-github; git merge weblate-github/weblate-mapcomplete-core; git merge weblate-github/weblate-mapcomplete-layers; git merge weblate-github/weblate-mapcomplete-layer-translations",
+ "weblate-merge": "git remote update weblate-github; git merge weblate-github/weblate-mapcomplete-core weblate-github/weblate-mapcomplete-layers weblate-github/weblate-mapcomplete-layer-translations",
"weblate-fix-heavy": "git remote rm weblate-layers; git remote add weblate-layers https://hosted.weblate.org/git/mapcomplete/layers/; git remote update weblate-layers; git merge weblate-layers/master",
"housekeeping": "npm run generate && npm run generate:docs && npm run generate:contributor-list && npm run format && git add assets/ langs/ Docs/ **/*.ts Docs/* && git commit -m 'Housekeeping...'",
"parseSchools": "ts-node scripts/schools/amendSchoolData.ts",
diff --git a/scripts/automerge-translations.sh b/scripts/automerge-translations.sh
deleted file mode 100755
index 013efa5bf0..0000000000
--- a/scripts/automerge-translations.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#! /usr/bin/env bash
-
-# Automerge translations automatically fetches the translations from weblate
-
-git fetch weblate-github
-git merge --no-commit weblate-github/weblate-mapcomplete-layers weblate-github/weblate-mapcomplete-layer-translations weblate-github/weblate-mapcomplete-core
-
-npm run generate:translations
- if [ "$?" = "0" ]; then
- # Translation generation went fine - commit
- git add langs/
- git add assets/
- git commit -m "Merge weblate translations and regenerate translations"
- git push
- else
- echo "Generation of translations failed!"
- git merge --abort
- fi