Merge master

This commit is contained in:
Pieter Vander Vennet 2025-08-01 04:08:44 +02:00
parent 35f1c9d159
commit 37d6a65bab
16 changed files with 245 additions and 37 deletions

View file

@ -2,6 +2,19 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
### [0.54.5](https://source.mapcomplete.org/MapComplete/MapComplete/compare/v0.54.4...v0.54.5) (2025-07-28)
### Bug Fixes
* fix [#2476](https://source.mapcomplete.org/MapComplete/MapComplete/issues/2476) ([1020121](https://source.mapcomplete.org/MapComplete/MapComplete/commits/1020121d7c973525f0fdbd85fe1e4694637831f5))
* remove debug inset size indicator ([e2f7596](https://source.mapcomplete.org/MapComplete/MapComplete/commits/e2f7596678356c6d104a4871475998b7efeddd08))
### Theme improvements
* **toilets:** bring 'grab_rail:foldable:left' more in line with other tagging, fix [#2471](https://source.mapcomplete.org/MapComplete/MapComplete/issues/2471) ([55d2b23](https://source.mapcomplete.org/MapComplete/MapComplete/commits/55d2b239a49bca75a75d09c442703c91a33ce9bd))
### [0.54.4](https://source.mapcomplete.org/MapComplete/MapComplete/compare/v0.54.3...v0.54.4) (2025-07-21) ### [0.54.4](https://source.mapcomplete.org/MapComplete/MapComplete/compare/v0.54.3...v0.54.4) (2025-07-21)

View file

@ -84,16 +84,6 @@ openlovemap.de, www.openlovemap.de {
} }
} }
countrycoder.mapcomplete.org {
root * tiles/
encode
file_server browse
header {
+Permissions-Policy "interest-cohort=()"
+Access-Control-Allow-Origin *
}
}
data.mapcomplete.org { data.mapcomplete.org {
root * /root/data/ root * /root/data/
encode encode

View file

@ -911,8 +911,21 @@
], ],
"condition": "drive_through=yes" "condition": "drive_through=yes"
}, },
"child_highchair", {
"kids_area", "id": "eating_in_amenities",
"builtin": [
"seating",
"child_highchair",
"kids_area"
],
"override": {
"condition": {
"and+": [
"takeaway!=only"
]
}
}
},
"diets.diets_group", "diets.diets_group",
{ {
"builtin": "diets.diets_content", "builtin": "diets.diets_content",
@ -1229,7 +1242,6 @@
}, },
"smoking", "smoking",
"service:electricity", "service:electricity",
"seating",
"dog-access", "dog-access",
"internet-all", "internet-all",
"toilet_at_amenity_lib.all" "toilet_at_amenity_lib.all"

View file

@ -166,7 +166,7 @@
}, },
"mappings": [ "mappings": [
{ {
"if": "is_foldable:LOCATION=yes", "if": "grab_rail:foldable:LOCATION=yes",
"then": { "then": {
"en": "The {{TRANSL}} grab rail is <b>foldable</b>", "en": "The {{TRANSL}} grab rail is <b>foldable</b>",
"cs": "Madlo {{TRANSL}} je <b>skládací</b>", "cs": "Madlo {{TRANSL}} je <b>skládací</b>",
@ -175,7 +175,7 @@
} }
}, },
{ {
"if": "is_foldable:LOCATION=no", "if": "grab_rail:foldable:LOCATION=no",
"then": { "then": {
"en": "The {{TRANSL}} grab rail is not foldable", "en": "The {{TRANSL}} grab rail is not foldable",
"cs": "Madlo {{TRANSL}} není skládací", "cs": "Madlo {{TRANSL}} není skládací",

View file

@ -1449,7 +1449,8 @@
"wheelchair", "wheelchair",
"relevant-questions", "relevant-questions",
"prefixed", "prefixed",
"amenity-prefixed" "amenity-prefixed",
"hidden"
], ],
"question": { "question": {
"en": "Is the wheelchair-accessible toilet locked?", "en": "Is the wheelchair-accessible toilet locked?",
@ -1565,7 +1566,8 @@
"wheelchair", "wheelchair",
"relevant-questions", "relevant-questions",
"prefixed", "prefixed",
"amenity-prefixed" "amenity-prefixed",
"hidden"
], ],
"questionHint": { "questionHint": {
"en": "Left and right are interpreted as when <b>sitting</b> on the toilet", "en": "Left and right are interpreted as when <b>sitting</b> on the toilet",
@ -1600,7 +1602,8 @@
"wheelchair", "wheelchair",
"relevant-questions", "relevant-questions",
"prefixed", "prefixed",
"amenity-prefixed" "amenity-prefixed",
"hidden"
], ],
"condition": { "condition": {
"and+": [ "and+": [
@ -1629,7 +1632,8 @@
"wheelchair", "wheelchair",
"relevant-questions", "relevant-questions",
"prefixed", "prefixed",
"amenity-prefixed" "amenity-prefixed",
"hidden"
], ],
"condition": { "condition": {
"and+": [ "and+": [

View file

@ -2,11 +2,13 @@
"id": "sauna", "id": "sauna",
"title": { "title": {
"en": "Sauna", "en": "Sauna",
"da": "Sauna" "da": "Sauna",
"zh_Hant": "桑拿"
}, },
"description": { "description": {
"en": "Sauna", "en": "Sauna",
"da": "Sauna" "da": "Sauna",
"zh_Hant": "桑拿"
}, },
"icon": "./assets/layers/sauna/sauna.svg", "icon": "./assets/layers/sauna/sauna.svg",
"credits": [ "credits": [
@ -108,7 +110,8 @@
], ],
"title": { "title": {
"en": "a beauty shop", "en": "a beauty shop",
"da": "en skønhedsforhandler" "da": "en skønhedsforhandler",
"zh_Hant": "美容店"
} }
}, },
{ {
@ -117,7 +120,8 @@
], ],
"title": { "title": {
"en": "a massage shop", "en": "a massage shop",
"da": "en massagebutik" "da": "en massagebutik",
"zh_Hant": "按摩店"
} }
} }
] ]

View file

@ -5,7 +5,11 @@
"app": { "app": {
"back": "Jít zpět do MapComplete", "back": "Jít zpět do MapComplete",
"download": "Stáhnout aplikaci", "download": "Stáhnout aplikaci",
"downloadOnFDroid": "Stáhnout MapComplete na F-Droidu",
"getOnObtanium": "Získat na Obtainiu",
"intro": "MapComplete je k dispozici jako aplikace pro Android k přímému stažení. Pracujeme na to, aby byla zveřejněna i v repozitáři F-Droid.", "intro": "MapComplete je k dispozici jako aplikace pro Android k přímému stažení. Pracujeme na to, aby byla zveřejněna i v repozitáři F-Droid.",
"legacyExplanation": "Kvůli restrikcím společnosti Google nelze zkompilovat identický balíček APK pro novější i starší verze systému Android.\n\n Pokud instalace z F-Droidu, Google Play, Obtainia nebo instalace výše odkazované nejnovější verze ('latest') selže,\n zkuste balíčky pro starší verze Androidu, které jsou k dispozici níže.",
"legacyHeader": "Sestavení pro starší telefony se systémem Android",
"noPlayServices": "Aplikace funguje bez Google Play Services", "noPlayServices": "Aplikace funguje bez Google Play Services",
"older": "Zobrazit starší verze", "older": "Zobrazit starší verze",
"title": "Aplikace MapComplete pro Android" "title": "Aplikace MapComplete pro Android"
@ -23,6 +27,13 @@
"intro": "Navažte kontakt s ostatními lidmi, abyste je poznali, učili se od nich, …", "intro": "Navažte kontakt s ostatními lidmi, abyste je poznali, učili se od nich, …",
"title": "Spojte se s ostatními" "title": "Spojte se s ostatními"
}, },
"copy": {
"button": "Vytvořit kopii",
"confirm": "Vytvořit kopii na určeném místě",
"intro": "Vytvoření kopie vytvoří na mapě nový POI se stejnými vlastnosti, jako má aktuální objekt.",
"loading": "Vytváření kopie…",
"title": "Vytvořit kopii"
},
"delete": { "delete": {
"cancel": "Zrušit", "cancel": "Zrušit",
"cannotBeDeleted": "Tuto funkci nelze odstranit", "cannotBeDeleted": "Tuto funkci nelze odstranit",
@ -795,6 +806,11 @@
"affiliated_reviewer_warning": "(Recenze od zaměstnance)", "affiliated_reviewer_warning": "(Recenze od zaměstnance)",
"attribution": "Od Mangrove.reviews", "attribution": "Od Mangrove.reviews",
"averageRating": "Průměrné hodnocení {n} hvězdiček", "averageRating": "Průměrné hodnocení {n} hvězdiček",
"delete": "Smazat recenzi",
"deleteConfirm": "Trvale smazat tuto recenzi",
"deleteText": "Toto nelze vzít zpět",
"deleteTitle": "Smazat tuto recenzi?",
"edit": "Upravit recenzi",
"i_am_affiliated": "Jsem spojen s tímto objektem", "i_am_affiliated": "Jsem spojen s tímto objektem",
"i_am_affiliated_explanation": "Zkontrolujte, zda jste vlastníkem, tvůrcem, zaměstnancem, …", "i_am_affiliated_explanation": "Zkontrolujte, zda jste vlastníkem, tvůrcem, zaměstnancem, …",
"no_reviews_yet": "Zatím nejsou žádné recenze. Buďte první!", "no_reviews_yet": "Zatím nejsou žádné recenze. Buďte první!",
@ -804,6 +820,9 @@
"question_opinion": "Jaká byla vaše zkušenost?", "question_opinion": "Jaká byla vaše zkušenost?",
"rate": "Ohodnotit {n} hvězdičkami", "rate": "Ohodnotit {n} hvězdičkami",
"rated": "Hodnoceno {n} hvězdičkami", "rated": "Hodnoceno {n} hvězdičkami",
"reportReason": "Proč by měla být tato zpráva nahlášena?",
"reportReview": "Nahlásit tuto recenzi jako nevhodnou",
"reportReviewTitle": "Nahlásit tuto recenzi jako nevhodnou?",
"reviewPlaceholder": "Popište svou zkušenost…", "reviewPlaceholder": "Popište svou zkušenost…",
"reviewing_as": "Přezkoumání jako {nickname}", "reviewing_as": "Přezkoumání jako {nickname}",
"reviewing_as_anonymous": "Kontrola jako anonymní", "reviewing_as_anonymous": "Kontrola jako anonymní",

View file

@ -2,6 +2,13 @@
"advanced": { "advanced": {
"title": "Nodweddion uwch" "title": "Nodweddion uwch"
}, },
"app": {
"back": "Nôl i MapComplete",
"download": "Lawrlwytho'r ap",
"downloadOnFDroid": "Lawrlwytho MapComplete ar F-Droid",
"getOnObtanium": "Cael ar Obtainium",
"title": "Ap Android MapComplete"
},
"centerMessage": { "centerMessage": {
"allFilteredAway": "Bydd dim nodwedd yn cyflawni pob hidl", "allFilteredAway": "Bydd dim nodwedd yn cyflawni pob hidl",
"loadingData": "Wrthi'n llwytho data…", "loadingData": "Wrthi'n llwytho data…",
@ -325,6 +332,9 @@
"phone": { "phone": {
"description": "rhif ffôn" "description": "rhif ffôn"
}, },
"url": {
"description": "dolen i wefan"
},
"wikidata": { "wikidata": {
"description": "Dynodwr Wicidata" "description": "Dynodwr Wicidata"
} }

View file

@ -5,6 +5,8 @@
"app": { "app": {
"back": "Tilbage til MapComplete", "back": "Tilbage til MapComplete",
"download": "Download appen", "download": "Download appen",
"downloadOnFDroid": "Download MapComplete på F-Droid",
"getOnObtanium": "Hent på Obtainium",
"intro": "MapComplete er tilgængelig som Android-app som direkte download. Vi arbejder på også at udgive den på FDroid.", "intro": "MapComplete er tilgængelig som Android-app som direkte download. Vi arbejder på også at udgive den på FDroid.",
"noPlayServices": "Appen fungerer uden Google Play Services", "noPlayServices": "Appen fungerer uden Google Play Services",
"older": "Se ældre builds", "older": "Se ældre builds",
@ -802,6 +804,11 @@
"affiliated_reviewer_warning": "(Tilknyttet anmeldelse)", "affiliated_reviewer_warning": "(Tilknyttet anmeldelse)",
"attribution": "Af Mangrove.reviews", "attribution": "Af Mangrove.reviews",
"averageRating": "Gennemsnitlig bedømmelse på {n} stjerner", "averageRating": "Gennemsnitlig bedømmelse på {n} stjerner",
"delete": "Slet anmeldelse",
"deleteConfirm": "Slet denne anmeldelse permanent",
"deleteText": "Dette kan ikke fortrydes",
"deleteTitle": "Slet denne anmeldelse?",
"edit": "Rediger anmeldelse",
"i_am_affiliated": "<span>Jeg er tilknyttet dette objekt</span><br><span class=\"subtle\">Tjek, om du er ejer, skaber, ansat, ...</span>", "i_am_affiliated": "<span>Jeg er tilknyttet dette objekt</span><br><span class=\"subtle\">Tjek, om du er ejer, skaber, ansat, ...</span>",
"i_am_affiliated_explanation": "Tjek, om du er ejer, ophavsmand eller ansat, …", "i_am_affiliated_explanation": "Tjek, om du er ejer, ophavsmand eller ansat, …",
"no_reviews_yet": "Der er ingen anmeldelser endnu. Vær den første til at skrive en!", "no_reviews_yet": "Der er ingen anmeldelser endnu. Vær den første til at skrive en!",
@ -811,6 +818,9 @@
"question_opinion": "Hvordan var din oplevelse?", "question_opinion": "Hvordan var din oplevelse?",
"rate": "Bedøm med {n} stjerner", "rate": "Bedøm med {n} stjerner",
"rated": "Bedømt med {n} stjerner", "rated": "Bedømt med {n} stjerner",
"reportReason": "Hvorfor skal denne rapport rapporteres?",
"reportReview": "Rapporter denne anmeldelse som upassende",
"reportReviewTitle": "Rapporter denne anmeldelse som upassende?",
"reviewPlaceholder": "Beskriv din oplevelse…", "reviewPlaceholder": "Beskriv din oplevelse…",
"reviewing_as": "Bedømmer som {nickname}", "reviewing_as": "Bedømmer som {nickname}",
"reviewing_as_anonymous": "Bedømmer som anonym", "reviewing_as_anonymous": "Bedømmer som anonym",

View file

@ -5,6 +5,8 @@
"app": { "app": {
"back": "Revenir à MapComplete", "back": "Revenir à MapComplete",
"download": "Télécharger l'application", "download": "Télécharger l'application",
"downloadOnFDroid": "Télécharger MapComplete sur F-Droid",
"getOnObtanium": "Obtenir sur Obtainium",
"intro": "MapComplete est disponible en tant qu'application Android en téléchargement direct. Nous nous efforçons de publier également cette application sur FDroid.", "intro": "MapComplete est disponible en tant qu'application Android en téléchargement direct. Nous nous efforçons de publier également cette application sur FDroid.",
"noPlayServices": "L'application fonctionne sans Google Play Services", "noPlayServices": "L'application fonctionne sans Google Play Services",
"older": "Voir les anciens builds", "older": "Voir les anciens builds",
@ -313,7 +315,7 @@
"aboutMapComplete": "À propos de MapComplete", "aboutMapComplete": "À propos de MapComplete",
"filter": "Filtrer les données", "filter": "Filtrer les données",
"legal": "Mentions légales", "legal": "Mentions légales",
"moreUtilsTitle": "En savoir plus", "moreUtilsTitle": "Plus d'informations",
"openHereDifferentApp": "Ouvrir l'emplacement actuel dans d'autres applications", "openHereDifferentApp": "Ouvrir l'emplacement actuel dans d'autres applications",
"showIntroduction": "Voir la page d'introduction", "showIntroduction": "Voir la page d'introduction",
"title": "Menu" "title": "Menu"
@ -605,7 +607,7 @@
"pleaseLogin": "Connectez-vous pour téléverser une photo", "pleaseLogin": "Connectez-vous pour téléverser une photo",
"processing": "Le serveur traite votre image", "processing": "Le serveur traite votre image",
"reported": "Cette image est signalée et peut avoir un contenu préjudiciable", "reported": "Cette image est signalée et peut avoir un contenu préjudiciable",
"respectPrivacy": "Ne photographiez ni les personnes ni les plaques d'immatriculation. Ne téléversez rien issu de Google Maps, Google Streetview ou d'autre sources soumises à des droits d'auteurs.", "respectPrivacy": "Ne photographiez ni les personnes ni les plaques d'immatriculation. Ne récupérez rien issu de Google Maps, Google Street View ou d'autres sources soumises à des droits d'auteurs.",
"selectFile": "Sélectionnez une image à partir de votre appareil", "selectFile": "Sélectionnez une image à partir de votre appareil",
"showAnyway": "Afficher quand même l'image", "showAnyway": "Afficher quand même l'image",
"strictProtectionDetected": "Une protection stricte contre le suivi (ou un autre bloqueur de contenu) a été détectée et pourrait avoir bloqué l'accès à cette image.", "strictProtectionDetected": "Une protection stricte contre le suivi (ou un autre bloqueur de contenu) a été détectée et pourrait avoir bloqué l'accès à cette image.",
@ -634,15 +636,53 @@
}, },
"uploadFailed": "L'ajout de la photo a échoué. Avez-vous accès à Internet ? Les API tierces sont-elles autorisées ? Le navigateur Brave ou UMatrix peuvent les bloquer." "uploadFailed": "L'ajout de la photo a échoué. Avez-vous accès à Internet ? Les API tierces sont-elles autorisées ? Le navigateur Brave ou UMatrix peuvent les bloquer."
}, },
"imageQueue": {
"confirmDelete": "Supprimer définitivement cette image",
"confirmDeleteTitle": "Supprimer cette image?",
"delete": "Supprimer cette image",
"intro": "Les images suivantes sont en attente de téléchargement",
"menu": "File d'attente pour le téléchargement de {count} images",
"noFailedImages": "Il n'y a actuellement aucune image dans la file d'attente de téléchargement",
"retryAll": "Réessayer de télécharger toutes les images"
},
"importInspector": {
"title": "Contrôler et gérer les notes d'importation"
},
"importLayer": {
"description": "Un calque qui importe les entrées pour {title}",
"layerName": "{title} possible",
"notFound": "Je n'ai pas pu trouver {title} - le supprimer"
},
"index": { "index": {
"#": "Ces textes sont affichés au dessus des boutons de thème quand aucun thème n'est chargé", "#": "Ces textes sont affichés au dessus des boutons de thème quand aucun thème n'est chargé",
"about": "À propos de MapComplete",
"intro": "Des cartes sur différents sujets auxquels vous pouvez contribuer", "intro": "Des cartes sur différents sujets auxquels vous pouvez contribuer",
"learnMore": "En savoir plus",
"logIn": "Connectez-vous pour voir les autres thèmes que vous avez déjà visités",
"recentThemes": "Thèmes visités récemment",
"title": "Bienvenue sur MapComplete" "title": "Bienvenue sur MapComplete"
}, },
"input_helpers": {
"distance": {
"setFirst": "Mesure à partir de l'emplacement actuel"
}
},
"inspector": { "inspector": {
"aggregateView": "Agréger", "aggregateView": "Agréger",
"answeredCountTimes": "Répondu {count} fois",
"backToIndex": "Retour à l'aperçu de la carte",
"createdBy": "Créé par {contributor}",
"earlierInspected": "Voir les contributeurs que vous avez déjà évalués",
"images": "Images créées",
"load": "Inspecter les changements pour la zone de la carte",
"mapView": "Carte",
"menu": "Évaluer un contributeur", "menu": "Évaluer un contributeur",
"onlyGeometry": "Seulement des modifications de géométrie",
"previouslySpied": { "previouslySpied": {
"addLabel": "Ajouter une étiquette",
"allChanges": "Charger toutes les modifications pour les utilisateurs ayant cette étiquette",
"label": "Étiquette",
"noLabels": "Pas d'étiquettes",
"remove": "Enlever", "remove": "Enlever",
"time": "Date du dernier contrôle", "time": "Date du dernier contrôle",
"title": "Constructeurs évalués antérieurement", "title": "Constructeurs évalués antérieurement",
@ -668,7 +708,8 @@
"pointIsMoved": "Le point a été déplacé", "pointIsMoved": "Le point a été déplacé",
"reasons": { "reasons": {
"reasonInaccurate": "La position de cet objet est décalée", "reasonInaccurate": "La position de cet objet est décalée",
"reasonRelocation": "Cet objet a été déplacé" "reasonRelocation": "Cet objet a été déplacé",
"reasonSnapTo": "Cela devrait être accroché à {name}"
}, },
"zoomInFurther": "Zoomez pour confirmer ce déplacement" "zoomInFurther": "Zoomez pour confirmer ce déplacement"
}, },
@ -678,6 +719,8 @@
"notes": { "notes": {
"addAComment": "Ajouter un commentaire", "addAComment": "Ajouter un commentaire",
"addComment": "Ajouter un commentaire", "addComment": "Ajouter un commentaire",
"addCommentAndClose": "Ajouter un commentaire et fermer",
"addCommentPlaceholder": "Ajouter un commentaire…",
"anonymous": "Utilisateur anonyme", "anonymous": "Utilisateur anonyme",
"closeNote": "Fermer la note", "closeNote": "Fermer la note",
"createNote": "Créer une nouvelle note", "createNote": "Créer une nouvelle note",
@ -754,21 +797,60 @@
"activateButton": "Aider à traduire MapComplete", "activateButton": "Aider à traduire MapComplete",
"missing": "{count} segments non traduits" "missing": "{count} segments non traduits"
}, },
"unknown": {
"explanation": "Effacer ce fragment d'information si la réponse actuelle est incorrecte mais que la valeur réelle n'est pas connue. Aucune autre information ne sera supprimée.",
"keep": "Conserver la réponse",
"markUnknown": "Marquer comme inconnu",
"removedKeys": "Les clés suivantes seront supprimées :",
"title": "Marquer comme inconnu?"
},
"userinfo": { "userinfo": {
"notLoggedIn": "Déconnecté" "notLoggedIn": "Déconnecté"
}, },
"validation": { "validation": {
"color": {
"description": "Une couleur ou un code hexadécimal"
},
"date": {
"description": "Une date, commençant par l'année"
},
"direction": {
"description": "Une orientation"
},
"distance": {
"description": "Une distance en mètres"
},
"email": { "email": {
"description": "adresse électronique",
"feedback": "Cette adresse électronique n'est pas valide",
"noAt": "Une adresse email doit contenir un @" "noAt": "Une adresse email doit contenir un @"
}, },
"fediverse": {
"description": "Un identifiant fediverse, souvent @username@server.tld",
"feedback": "Une adresse fediverse est constituée de @username@server.tld ou d'un lien vers un profil",
"invalidHost": "{host} n'est pas un nom d'hôte valide",
"onYourServer": "Voir et suivre sur votre serveur"
},
"float": { "float": {
"description": "un nombre", "description": "un nombre",
"feedback": "Ceci n'est pas un nombre" "feedback": "Ceci n'est pas un nombre"
}, },
"generic": {
"suspiciouslyHigh": "Cette valeur est étrangement élevée. Êtes-vous sûr qu'elle est correcte?",
"suspiciouslyLow": "Cette valeur est étrangement basse. Êtes-vous sûr qu'elle est correcte?",
"tooHigh": "Cette valeur est trop élevée - la valeur la plus élevée autorisée est {max}",
"tooLow": "Cette valeur est trop basse - la valeur la plus basse autorisée est {min}"
},
"id": {
"description": "un identifiant",
"invalidCharacter": "Un identifiant ne peut contenir que des lettres, des chiffres et des tirets de soulignement",
"shouldBeLonger": "L'identifiant doit comporter au moins 3 caractères"
},
"int": { "int": {
"description": "un nombre entier" "description": "un nombre entier"
}, },
"nat": { "nat": {
"description": "un nombre entier positif ou zéro",
"mustBePositive": "Ce nombre doit être positif", "mustBePositive": "Ce nombre doit être positif",
"mustBeWhole": "Seuls les nombres entiers sont autorisés", "mustBeWhole": "Seuls les nombres entiers sont autorisés",
"notANumber": "Entrez un nombre" "notANumber": "Entrez un nombre"
@ -781,12 +863,26 @@
}, },
"phone": { "phone": {
"description": "un numéro de téléphone", "description": "un numéro de téléphone",
"feedback": "Ceci n'est pas un numéro de téléphone valide" "feedback": "Ceci n'est pas un numéro de téléphone valide",
"feedbackCountry": "Ce numéro de téléphone n'est pas valide pour ce pays : {country}"
}, },
"pnat": { "pnat": {
"description": "un nombre entier, positif", "description": "un nombre entier, positif",
"noZero": "Zéro n'est pas autorisé" "noZero": "Zéro n'est pas autorisé"
}, },
"regex": {
"description": "une expression régulière"
},
"slope": {
"inputExplanation": "Placez votre téléphone sur le sol, la partie supérieure du téléphone pointant vers le haut de la pente."
},
"string": {
"description": "un morceau de texte"
},
"text": {
"description": "un morceau de texte"
},
"tooLong": "Le texte est trop long, un maximum de 255 caractères est autorisé. Vous avez utilisé {count} caractères jusqu'à présent.",
"url": { "url": {
"description": "lien vers un site web", "description": "lien vers un site web",
"feedback": "Ceci n'est pas une adresse web valide" "feedback": "Ceci n'est pas une adresse web valide"

View file

@ -1184,6 +1184,24 @@
"description": "彩虹色的行人穿越道會在這份地圖上顯示,並且也很容易添加", "description": "彩虹色的行人穿越道會在這份地圖上顯示,並且也很容易添加",
"title": "彩虹人行穿越道" "title": "彩虹人行穿越道"
}, },
"sauna": {
"description": "桑拿",
"layers": {
"6": {
"override": {
"presets=": {
"0": {
"title": "美容店"
},
"1": {
"title": "按摩店"
}
}
}
}
},
"title": "桑拿"
},
"scouting": { "scouting": {
"description": "童軍團屬於少年社交活動,強調戶外活動,進行的活動有露營、登山、水上活動、背包旅行、探索自然、…", "description": "童軍團屬於少年社交活動,強調戶外活動,進行的活動有露營、登山、水上活動、背包旅行、探索自然、…",
"layers": { "layers": {

View file

@ -5,6 +5,8 @@
"app": { "app": {
"back": "回到MapComplete", "back": "回到MapComplete",
"download": "下載應用程式", "download": "下載應用程式",
"downloadOnFDroid": "在 F-Droid 下載 MapComplete",
"getOnObtanium": "從 Obtainium 取得",
"intro": "MapComplete可以在Android App直接下載。我們也計畫在Fdroid發佈。", "intro": "MapComplete可以在Android App直接下載。我們也計畫在Fdroid發佈。",
"noPlayServices": "本應用無需 Google Play 服務即可運行", "noPlayServices": "本應用無需 Google Play 服務即可運行",
"older": "檢視較舊的軟體構建", "older": "檢視較舊的軟體構建",
@ -23,6 +25,13 @@
"intro": "與其他人接洽並且與他們熟悉,從他們的經驗學習,…", "intro": "與其他人接洽並且與他們熟悉,從他們的經驗學習,…",
"title": "與其他人聯繫" "title": "與其他人聯繫"
}, },
"copy": {
"button": "新建複本",
"confirm": "在特定位置新建複本",
"intro": "新建複本時會在地圖上與目前物件同一位置有相同屬性建立新的興趣點。",
"loading": "新建複本…",
"title": "新建複本"
},
"delete": { "delete": {
"cancel": "取消", "cancel": "取消",
"cannotBeDeleted": "這圖徵無法刪除", "cannotBeDeleted": "這圖徵無法刪除",
@ -171,6 +180,7 @@
}, },
"apply_button": { "apply_button": {
"appliedOnAnotherObject": "物件 {id} 已經加上 {tags}", "appliedOnAnotherObject": "物件 {id} 已經加上 {tags}",
"applying": "套用變動",
"isApplied": "變動已經套用了" "isApplied": "變動已經套用了"
}, },
"attribution": { "attribution": {
@ -184,6 +194,7 @@
"editJosm": "採用 JOSM 編輯", "editJosm": "採用 JOSM 編輯",
"emailCreators": "寄 email 給創作者", "emailCreators": "寄 email 給創作者",
"followOnMastodon": "在 Mastodon 追蹤 MapComplete", "followOnMastodon": "在 Mastodon 追蹤 MapComplete",
"fundByNlNet": "NLnet建立的資金",
"gotoSourceCode": "檢視原始碼", "gotoSourceCode": "檢視原始碼",
"iconAttribution": { "iconAttribution": {
"title": "使用的圖示" "title": "使用的圖示"
@ -194,6 +205,9 @@
"mapContributionsBy": "目前檢視的資料由 {contributors} 貢獻編輯", "mapContributionsBy": "目前檢視的資料由 {contributors} 貢獻編輯",
"mapContributionsByAndHidden": "目前顯到的資料是由 {contributors} 和其他 {hiddenCount} 位貢獻者編輯貢獻", "mapContributionsByAndHidden": "目前顯到的資料是由 {contributors} 和其他 {hiddenCount} 位貢獻者編輯貢獻",
"mapillaryHelp": "線上服務 <b>Mapillary</b> 能夠以開放授權提供收集到的街景照片。貢獻者能夠採用 Mapillary 照片來改進開放街圖", "mapillaryHelp": "線上服務 <b>Mapillary</b> 能夠以開放授權提供收集到的街景照片。貢獻者能夠採用 Mapillary 照片來改進開放街圖",
"ngiProgram": "歐盟執委會下一世代網路計畫的財務支援。",
"ngiZero": "這個計畫是由NGI0 Entrust支援",
"nlNetMapComplete": "在NlNet計畫頁面瞭解更多",
"openIssueTracker": "提出臭蟲報告", "openIssueTracker": "提出臭蟲報告",
"openMapillary": "開啟 Mapillary", "openMapillary": "開啟 Mapillary",
"openOsmcha": "請見 {theme} 的最新編輯", "openOsmcha": "請見 {theme} 的最新編輯",
@ -562,6 +576,8 @@
"addPicture": "照相", "addPicture": "照相",
"doDelete": "移除圖片", "doDelete": "移除圖片",
"isDeleted": "已刪除", "isDeleted": "已刪除",
"loadingFailed": "載入這張影像時失敗",
"mapillaryTrackingProtection": "由於Mappillary是Facebook/Meta所有嚴格追蹤保護防止從Mapillary載入影像。如果要檢視影像請關閉嚴格追蹤保護。",
"nearby": { "nearby": {
"close": "以附近圖片收起面板", "close": "以附近圖片收起面板",
"failed": "從 {service} 擷取影像失敗", "failed": "從 {service} 擷取影像失敗",
@ -591,8 +607,11 @@
}, },
"pleaseLogin": "請登入以新增圖片", "pleaseLogin": "請登入以新增圖片",
"processing": "伺服器正在處理你的圖片", "processing": "伺服器正在處理你的圖片",
"reported": "這張影像已經被檢舉,也許含有害內容",
"respectPrivacy": "請別照人像或是車牌,不要上傳 Google 地圖、Google 街景或其他受版權保護的資料來源。", "respectPrivacy": "請別照人像或是車牌,不要上傳 Google 地圖、Google 街景或其他受版權保護的資料來源。",
"selectFile": "從你的裝置選取圖片", "selectFile": "從你的裝置選取圖片",
"showAnyway": "仍然顯示影像",
"strictProtectionDetected": "嚴格追蹤保護 (或其他內容阻擋)已經偵側了,你可以封鎖這張影像。",
"toBig": "{actual_size} 因此照片太大,請使用最大 {max_size} 的照片", "toBig": "{actual_size} 因此照片太大,請使用最大 {max_size} 的照片",
"unlink": { "unlink": {
"button": "解除連結圖片", "button": "解除連結圖片",
@ -785,6 +804,11 @@
"affiliated_reviewer_warning": "(關係者審核)", "affiliated_reviewer_warning": "(關係者審核)",
"attribution": "經由 Mangrove.reviews", "attribution": "經由 Mangrove.reviews",
"averageRating": "平均評分 {n} 顆星", "averageRating": "平均評分 {n} 顆星",
"delete": "刪除評論",
"deleteConfirm": "永久刪除這則評論",
"deleteText": "這無法恢復",
"deleteTitle": "刪除這則評論?",
"edit": "編輯評論",
"i_am_affiliated": "我是這物件的相關關係者", "i_am_affiliated": "我是這物件的相關關係者",
"i_am_affiliated_explanation": "檢查你是否是店主、創造者或是員工…", "i_am_affiliated_explanation": "檢查你是否是店主、創造者或是員工…",
"no_reviews_yet": "還沒有評論。成為第一個!", "no_reviews_yet": "還沒有評論。成為第一個!",
@ -794,6 +818,9 @@
"question_opinion": "你的體驗如何?", "question_opinion": "你的體驗如何?",
"rate": "評分 {n} 顆星", "rate": "評分 {n} 顆星",
"rated": "評分 {n} 顆星", "rated": "評分 {n} 顆星",
"reportReason": "為什麼需要檢舉這則評論?",
"reportReview": "檢舉這則評論並不適當",
"reportReviewTitle": "要檢舉這則評論為不洽當嗎?",
"reviewPlaceholder": "描述你的經驗…", "reviewPlaceholder": "描述你的經驗…",
"reviewing_as": "以 {nickname} 評鑑", "reviewing_as": "以 {nickname} 評鑑",
"reviewing_as_anonymous": "匿名評鑑", "reviewing_as_anonymous": "匿名評鑑",

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{ {
"name": "mapcomplete", "name": "mapcomplete",
"version": "0.54.4", "version": "0.54.5",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "mapcomplete", "name": "mapcomplete",
"version": "0.54.4", "version": "0.54.5",
"hasInstallScript": true, "hasInstallScript": true,
"license": "GPL-3.0-or-later", "license": "GPL-3.0-or-later",
"dependencies": { "dependencies": {

View file

@ -1,6 +1,6 @@
{ {
"name": "mapcomplete", "name": "mapcomplete",
"version": "0.54.4", "version": "0.54.5",
"repository": "https://source.mapcomplete.org/MapComplete/MapComplete", "repository": "https://source.mapcomplete.org/MapComplete/MapComplete",
"description": "A small website to edit OSM easily", "description": "A small website to edit OSM easily",
"bugs": "hhttps://source.mapcomplete.org/MapComplete/MapComplete/issues", "bugs": "hhttps://source.mapcomplete.org/MapComplete/MapComplete/issues",
@ -61,7 +61,7 @@
"https://maps.mail.ru/osm/tools/overpass/api/interpreter": "Blocked by firefox strict tracking protection as 'tracking'", "https://maps.mail.ru/osm/tools/overpass/api/interpreter": "Blocked by firefox strict tracking protection as 'tracking'",
"https://overpass.openstreetmap.ru/cgi/interpreter": "Broken as of 2024-09-05, might be a glitch" "https://overpass.openstreetmap.ru/cgi/interpreter": "Broken as of 2024-09-05, might be a glitch"
}, },
"country_coder_host": "https://countrycoder.mapcomplete.org", "country_coder_host": "https://data.mapcomplete.org/countrycoder/",
"community_index_host": "https://data.mapcomplete.org/community-index/", "community_index_host": "https://data.mapcomplete.org/community-index/",
"nominatimEndpoint": "https://geocoding.geofabrik.de/b75350b1cfc34962ac49824fe5b582dc/", "nominatimEndpoint": "https://geocoding.geofabrik.de/b75350b1cfc34962ac49824fe5b582dc/",
"#photonEndpoint": "`api/` or `reverse/` will be appended by the code", "#photonEndpoint": "`api/` or `reverse/` will be appended by the code",
@ -159,7 +159,7 @@
"android:build": "./scripts/buildAndroid.sh", "android:build": "./scripts/buildAndroid.sh",
"android:upload": "scp ./android/app/build/outputs/apk/release/app-release.apk hetzner:apk/mapcomplete-latest.apk && scp ./android/app/build/outputs/apk/release/app-release.apk hetzner:app/mapcomplete-latest.apk", "android:upload": "scp ./android/app/build/outputs/apk/release/app-release.apk hetzner:apk/mapcomplete-latest.apk && scp ./android/app/build/outputs/apk/release/app-release.apk hetzner:app/mapcomplete-latest.apk",
"android:uninstall": "adb shell pm uninstall org.mapcomplete", "android:uninstall": "adb shell pm uninstall org.mapcomplete",
"android:google": "npm run clean:deep && npm run prep:layeroverview && npm run generate:layeroverview -- --print-needed-assets --exclude-label=nsfw && cd android && ./gradlew bundleRelease", "android:google": "npm run clean:deep && npm run prep:layeroverview && npm run generate:layeroverview -- --print-needed-assets --exclude-label=nsfw && cd android && ./gradlew bundleRelease && echo 'Bundle is created at android/app/build/outputs/bundle/release/app-release.aab'",
"postinstall": "./scripts/fixPannellum.sh" "postinstall": "./scripts/fixPannellum.sh"
}, },
"keywords": [ "keywords": [

View file

@ -175,8 +175,7 @@
/> />
</div> </div>
<!-- Introduction pane --> <div class="mt-4 flex overflow-hidden break-words">
<div class="flex overflow-hidden break-words">
<div class="m-3 hidden flex-none md:block"> <div class="m-3 hidden flex-none md:block">
<Logo alt="MapComplete Logo" class="h-12 w-12 sm:h-24 sm:w-24" /> <Logo alt="MapComplete Logo" class="h-12 w-12 sm:h-24 sm:w-24" />
</div> </div>

View file

@ -6,6 +6,7 @@
import Qr from "../../Utils/Qr" import Qr from "../../Utils/Qr"
import { GeoOperations } from "../../Logic/GeoOperations" import { GeoOperations } from "../../Logic/GeoOperations"
import { Utils } from "../../Utils" import { Utils } from "../../Utils"
import { AndroidPolyfill } from "../../Logic/Web/AndroidPolyfill"
const smallSize = 100 const smallSize = 100
const bigSize = 200 const bigSize = 200
let size = new UIEventSource(smallSize) let size = new UIEventSource(smallSize)
@ -48,10 +49,15 @@
} }
}) })
.map( .map(
(id) => (id) => {
`${window.location.protocol}//${window.location.host}${ let host = `${window.location.protocol}//${window.location.host}`
if(AndroidPolyfill.inAndroid.data){
host = "https://mapcomplete.org"
}
return `${host}${
window.location.pathname window.location.pathname
}?${params.join("&")}${id}` }?${params.join("&")}${id}`
}
) )
function toggleSize() { function toggleSize() {