Merge master

This commit is contained in:
pietervdvn 2022-03-17 23:11:20 +01:00
commit bed1352e37
58 changed files with 2085 additions and 181 deletions

View file

@ -340683,6 +340683,619 @@
] ]
} }
}, },
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [],
"tags": [],
"features": [],
"user": "L'imaginaire",
"uid": "654234",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #toerisme_vlaanderen",
"comments_count": 0,
"source": "Not reported",
"imagery_used": "Not reported",
"date": "2022-03-17T21:47:09Z",
"reviewed_features": [],
"create": 0,
"modify": 1,
"delete": 0,
"area": 0,
"is_suspect": false,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118611994,
"host": "https://mapcomplete.osm.be/toerisme_vlaanderen.html",
"theme": "toerisme_vlaanderen",
"answer": 2,
"locale": "nl",
"imagery": "osm"
},
"geometry": {
"type": "Point",
"coordinates": [
3.1054638,
51.0649694
]
}
},
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [],
"tags": [],
"features": [],
"user": "Stinus_Clasius",
"uid": "1086503",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #aed",
"comments_count": 0,
"source": "Not reported",
"imagery_used": "Not reported",
"date": "2022-03-17T21:01:27Z",
"reviewed_features": [],
"create": 0,
"modify": 2,
"delete": 0,
"area": 0.00180065448671988,
"is_suspect": false,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118610877,
"host": "https://mapcomplete.osm.be/aed.html",
"theme": "aed",
"locale": "nl",
"imagery": "osm",
"add-image": 2
},
"geometry": {
"type": "Point",
"coordinates": [
4.996756850000001,
51.320970700000004
]
}
},
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [
{
"id": 40,
"name": "New mapper"
}
],
"tags": [],
"features": [],
"user": "tissie",
"uid": "11544291",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #toerisme_vlaanderen",
"comments_count": 0,
"source": "Not reported",
"imagery_used": "Not reported",
"date": "2022-03-17T19:32:21Z",
"reviewed_features": [],
"create": 1,
"modify": 16,
"delete": 0,
"area": 0.00086489841434997,
"is_suspect": true,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118608266,
"host": "https://mapcomplete.osm.be/toerisme_vlaanderen.html",
"theme": "toerisme_vlaanderen",
"answer": 29,
"import": 1,
"locale": "nl",
"imagery": "osm",
"import:node/9586258366": "source: https://osm.org/note/3022934"
},
"geometry": {
"type": "Point",
"coordinates": [
4.45649525,
51.39093335
]
}
},
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [],
"tags": [],
"features": [],
"user": "L'imaginaire",
"uid": "654234",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #toerisme_vlaanderen",
"comments_count": 0,
"source": "Not reported",
"imagery_used": "Not reported",
"date": "2022-03-17T19:08:37Z",
"reviewed_features": [],
"create": 0,
"modify": 1,
"delete": 0,
"area": 2.5314093000299e-7,
"is_suspect": false,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118607485,
"host": "https://mapcomplete.osm.be/toerisme_vlaanderen.html",
"theme": "toerisme_vlaanderen",
"answer": 1,
"locale": "nl",
"imagery": "osm"
},
"geometry": {
"type": "Point",
"coordinates": [
3.23716075,
51.18855405
]
}
},
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [],
"tags": [],
"features": [],
"user": "Rienux",
"uid": "11911273",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #etymology",
"comments_count": 0,
"source": "Not reported",
"imagery_used": "Not reported",
"date": "2022-03-17T18:13:45Z",
"reviewed_features": [],
"create": 0,
"modify": 6,
"delete": 0,
"area": 0.000116369240680035,
"is_suspect": false,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118605990,
"host": "https://mapcomplete.osm.be/etymology.html",
"theme": "etymology",
"answer": 6,
"locale": "nl",
"imagery": "osm"
},
"geometry": {
"type": "Point",
"coordinates": [
4.289380850000001,
51.0482232
]
}
},
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [],
"tags": [],
"features": [],
"user": "jozin-belgium",
"uid": "1947314",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #grb",
"comments_count": 0,
"source": "Not reported",
"imagery_used": "Not reported",
"date": "2022-03-17T15:52:01Z",
"reviewed_features": [],
"create": 112,
"modify": 182,
"delete": 0,
"area": 0.000013143554639993,
"is_suspect": false,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118600405,
"host": "https://mapcomplete.osm.be/grb",
"move": 159,
"theme": "grb",
"import": 16,
"locale": "nl",
"imagery": "osm",
"conflation": 50
},
"geometry": {
"type": "Point",
"coordinates": [
5.2558033,
50.76333795
]
}
},
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [],
"tags": [],
"features": [],
"user": "jozin-belgium",
"uid": "1947314",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #grb",
"comments_count": 0,
"source": "Not reported",
"imagery_used": "Not reported",
"date": "2022-03-17T14:19:57Z",
"reviewed_features": [],
"create": 1515,
"modify": 1393,
"delete": 9,
"area": 0.000143165877400018,
"is_suspect": false,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118596301,
"host": "https://mapcomplete.osm.be/grb",
"move": 1239,
"theme": "grb",
"answer": 1,
"import": 208,
"locale": "nl",
"imagery": "osm",
"conflation": 326
},
"geometry": {
"type": "Point",
"coordinates": [
5.25004,
50.7673164
]
}
},
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [],
"tags": [],
"features": [],
"user": "paunofu",
"uid": "13779940",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #surveillance",
"comments_count": 0,
"source": "survey",
"imagery_used": "Not reported",
"date": "2022-03-17T14:11:44Z",
"reviewed_features": [],
"create": 0,
"modify": 2,
"delete": 0,
"area": 1.10402999997761e-9,
"is_suspect": false,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118595932,
"host": "https://mapcomplete.osm.be/surveillance.html",
"theme": "surveillance",
"answer": 4,
"locale": "en",
"imagery": "osm",
"change_over_5000m": 4
},
"geometry": {
"type": "Point",
"coordinates": [
0.10483805,
38.83519915
]
}
},
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [],
"tags": [],
"features": [],
"user": "L'imaginaire",
"uid": "654234",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #toerisme_vlaanderen",
"comments_count": 0,
"source": "survey",
"imagery_used": "Not reported",
"date": "2022-03-17T12:21:16Z",
"reviewed_features": [],
"create": 0,
"modify": 4,
"delete": 0,
"area": 0,
"is_suspect": false,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118591272,
"host": "https://mapcomplete.osm.be/toerisme_vlaanderen.html",
"theme": "toerisme_vlaanderen",
"answer": 3,
"locale": "nl",
"imagery": "osm",
"add-image": 1
},
"geometry": {
"type": "Point",
"coordinates": [
2.7505282,
50.796036
]
}
},
{
"type": "Feature",
"properties": {
"check_user": "jospyck",
"reasons": [
{
"id": 40,
"name": "New mapper"
}
],
"tags": [],
"features": [],
"user": "Jan Pirard",
"uid": "13678221",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #toerisme_vlaanderen",
"comments_count": 0,
"source": "Not reported",
"imagery_used": "Not reported",
"date": "2022-03-17T11:19:58Z",
"reviewed_features": [],
"create": 0,
"modify": 4,
"delete": 0,
"area": 0.000323085365750092,
"is_suspect": true,
"harmful": false,
"checked": true,
"check_date": "2022-03-17T13:11:23.974143Z",
"id": 118588371,
"host": "https://mapcomplete.osm.be/toerisme_vlaanderen.html",
"theme": "toerisme_vlaanderen",
"answer": 7,
"locale": "nl",
"imagery": "osm"
},
"geometry": {
"type": "Point",
"coordinates": [
5.20045715,
50.76450655
]
}
},
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [],
"tags": [],
"features": [],
"user": "L'imaginaire",
"uid": "654234",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #toerisme_vlaanderen",
"comments_count": 0,
"source": "Not reported",
"imagery_used": "Not reported",
"date": "2022-03-17T11:10:15Z",
"reviewed_features": [],
"create": 0,
"modify": 2,
"delete": 0,
"area": 0.0245139258209393,
"is_suspect": false,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118587883,
"host": "https://mapcomplete.osm.be/toerisme_vlaanderen.html",
"theme": "toerisme_vlaanderen",
"answer": 2,
"locale": "nl",
"imagery": "osm"
},
"geometry": {
"type": "Point",
"coordinates": [
3.3198669499999998,
51.1142117
]
}
},
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [],
"tags": [],
"features": [],
"user": "Robin van der Linde",
"uid": "5093765",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #waste",
"comments_count": 0,
"source": "survey",
"imagery_used": "Not reported",
"date": "2022-03-17T11:05:33Z",
"reviewed_features": [],
"create": 1,
"modify": 4,
"delete": 0,
"area": 0.00000327088838999726,
"is_suspect": false,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118587640,
"host": "https://mapcomplete.osm.be/waste.html",
"theme": "waste",
"answer": 3,
"locale": "nl",
"imagery": "osm",
"add-image": 2,
"change_over_5000m": 1,
"change_within_25m": 5
},
"geometry": {
"type": "Point",
"coordinates": [
6.570225150000001,
53.01745065
]
}
},
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [],
"tags": [],
"features": [],
"user": "jozin-belgium",
"uid": "1947314",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #grb",
"comments_count": 0,
"source": "Not reported",
"imagery_used": "Not reported",
"date": "2022-03-17T11:05:31Z",
"reviewed_features": [],
"create": 704,
"modify": 452,
"delete": 3,
"area": 0.000107972870700042,
"is_suspect": false,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118587636,
"host": "https://mapcomplete.osm.be/grb",
"move": 385,
"theme": "grb",
"import": 81,
"locale": "nl",
"imagery": "osm",
"conflation": 132
},
"geometry": {
"type": "Point",
"coordinates": [
5.251057749999999,
50.7744625
]
}
},
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [],
"tags": [],
"features": [],
"user": "jozin-belgium",
"uid": "1947314",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #grb",
"comments_count": 0,
"source": "Not reported",
"imagery_used": "Not reported",
"date": "2022-03-17T10:02:23Z",
"reviewed_features": [],
"create": 921,
"modify": 539,
"delete": 9,
"area": 0.00027927218667995,
"is_suspect": false,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118584609,
"host": "https://mapcomplete.osm.be/grb",
"move": 464,
"theme": "grb",
"import": 100,
"locale": "nl",
"imagery": "osm",
"conflation": 152
},
"geometry": {
"type": "Point",
"coordinates": [
5.2565728499999995,
50.782296
]
}
},
{
"type": "Feature",
"properties": {
"check_user": null,
"reasons": [],
"tags": [],
"features": [],
"user": "jozin-belgium",
"uid": "1947314",
"editor": "MapComplete 0.16.8",
"comment": "Adding data with #MapComplete for theme #grb",
"comments_count": 0,
"source": "Not reported",
"imagery_used": "Not reported",
"date": "2022-03-17T10:01:29Z",
"reviewed_features": [],
"create": 44,
"modify": 10,
"delete": 0,
"area": 0.00000190340395001113,
"is_suspect": false,
"harmful": null,
"checked": false,
"check_date": null,
"id": 118584566,
"host": "https://mapcomplete.osm.be/grb",
"move": 8,
"theme": "grb",
"import": 6,
"locale": "nl",
"imagery": "osm",
"conflation": 4
},
"geometry": {
"type": "Point",
"coordinates": [
5.25756495,
50.77894925
]
}
},
{ {
"type": "Feature", "type": "Feature",
"properties": { "properties": {
@ -340729,7 +341342,7 @@
{ {
"type": "Feature", "type": "Feature",
"properties": { "properties": {
"check_user": null, "check_user": "L'imaginaire",
"reasons": [], "reasons": [],
"tags": [], "tags": [],
"features": [], "features": [],
@ -340747,9 +341360,9 @@
"delete": 0, "delete": 0,
"area": 0.0000237232236799868, "area": 0.0000237232236799868,
"is_suspect": false, "is_suspect": false,
"harmful": null, "harmful": false,
"checked": false, "checked": true,
"check_date": null, "check_date": "2022-03-17T19:57:07.984287Z",
"id": 118577261, "id": 118577261,
"host": "https://mapcomplete.osm.be/toerisme_vlaanderen.html", "host": "https://mapcomplete.osm.be/toerisme_vlaanderen.html",
"theme": "toerisme_vlaanderen", "theme": "toerisme_vlaanderen",
@ -343243,7 +343856,7 @@
"uid": "1086503", "uid": "1086503",
"editor": "MapComplete 0.16.7", "editor": "MapComplete 0.16.7",
"comment": "Adding data with #MapComplete for theme #aed", "comment": "Adding data with #MapComplete for theme #aed",
"comments_count": 0, "comments_count": 3,
"source": "Not reported", "source": "Not reported",
"imagery_used": "Not reported", "imagery_used": "Not reported",
"date": "2022-03-15T09:09:49Z", "date": "2022-03-15T09:09:49Z",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 572 KiB

After

Width:  |  Height:  |  Size: 595 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 KiB

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 KiB

After

Width:  |  Height:  |  Size: 370 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 914 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

After

Width:  |  Height:  |  Size: 239 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 432 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 KiB

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 282 KiB

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 761 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 KiB

After

Width:  |  Height:  |  Size: 372 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 904 KiB

After

Width:  |  Height:  |  Size: 908 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 KiB

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 KiB

After

Width:  |  Height:  |  Size: 586 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 KiB

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 728 KiB

After

Width:  |  Height:  |  Size: 747 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 KiB

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 KiB

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 98 KiB

File diff suppressed because it is too large Load diff

View file

@ -19,14 +19,17 @@ export abstract class Conversion<TIn, TOut> {
} }
public static strict<T>(fixed: { errors?: string[], warnings?: string[], information?: string[], result?: T }): T { public static strict<T>(fixed: { errors?: string[], warnings?: string[], information?: string[], result?: T }): T {
if (fixed?.errors !== undefined && fixed?.errors?.length > 0) {
throw fixed.errors.join("\n\n");
}
fixed.information?.forEach(i => console.log(" ", i)) fixed.information?.forEach(i => console.log(" ", i))
const yellow = (s) => "\x1b[33m"+s+"\x1b[0m" const yellow = (s) => "\x1b[33m"+s+"\x1b[0m"
const red = s => '\x1b[31m'+s+'\x1b[0m' const red = s => '\x1b[31m'+s+'\x1b[0m'
fixed.warnings?.forEach(w => console.warn(red(`<!> `), yellow (w))) fixed.warnings?.forEach(w => console.warn(red(`<!> `), yellow (w)))
if (fixed?.errors !== undefined && fixed?.errors?.length > 0) {
fixed.errors?.forEach(e => console.error(red(`ERR `+e)))
throw "Detected one or more errors, stopping now"
}
return fixed.result; return fixed.result;
} }

View file

@ -239,8 +239,25 @@ export class PrevalidateTheme extends Fuse<LayoutConfigJson> {
} }
export class DetectShadowedMappings extends DesugaringStep<QuestionableTagRenderingConfigJson> { export class DetectShadowedMappings extends DesugaringStep<QuestionableTagRenderingConfigJson> {
constructor() { private readonly _calculatedTagNames: string[];
constructor(layerConfig?: LayerConfigJson) {
super("Checks that the mappings don't shadow each other", [], "DetectShadowedMappings"); super("Checks that the mappings don't shadow each other", [], "DetectShadowedMappings");
this._calculatedTagNames = DetectShadowedMappings.extractCalculatedTagNames(layerConfig);
}
/**
*
* DetectShadowedMappings.extractCalculatedTagNames({calculatedTags: ["_abc:=js()"]}) // => ["_abc"]
* DetectShadowedMappings.extractCalculatedTagNames({calculatedTags: ["_abc=js()"]}) // => ["_abc"]
*/
private static extractCalculatedTagNames(layerConfig?: LayerConfigJson){
return layerConfig?.calculatedTags?.map(ct => {
if(ct.indexOf(':=') >= 0){
return ct.split(':=')[0]
}
return ct.split("=")[0]
}) ?? []
} }
convert(json: QuestionableTagRenderingConfigJson, context: string): { result: QuestionableTagRenderingConfigJson; errors?: string[]; warnings?: string[] } { convert(json: QuestionableTagRenderingConfigJson, context: string): { result: QuestionableTagRenderingConfigJson; errors?: string[]; warnings?: string[] } {
@ -249,6 +266,10 @@ export class DetectShadowedMappings extends DesugaringStep<QuestionableTagRender
if (json.mappings === undefined || json.mappings.length === 0) { if (json.mappings === undefined || json.mappings.length === 0) {
return {result: json} return {result: json}
} }
const defaultProperties = {}
for (const calculatedTagName of this._calculatedTagNames) {
defaultProperties[calculatedTagName] = "some_calculated_tag_value_for_"+calculatedTagName
}
const parsedConditions = json.mappings.map(m => { const parsedConditions = json.mappings.map(m => {
const ifTags = TagUtils.Tag(m.if); const ifTags = TagUtils.Tag(m.if);
if(m.hideInAnswer !== undefined && m.hideInAnswer !== false && m.hideInAnswer !== true){ if(m.hideInAnswer !== undefined && m.hideInAnswer !== false && m.hideInAnswer !== true){
@ -264,7 +285,7 @@ export class DetectShadowedMappings extends DesugaringStep<QuestionableTagRender
// Yes, it might be shadowed, but running this check is to difficult right now // Yes, it might be shadowed, but running this check is to difficult right now
continue continue
} }
const keyValues = parsedConditions[i].asChange({}); const keyValues = parsedConditions[i].asChange(defaultProperties);
const properties = {} const properties = {}
keyValues.forEach(({k, v}) => { keyValues.forEach(({k, v}) => {
properties[k] = v properties[k] = v
@ -277,17 +298,19 @@ export class DetectShadowedMappings extends DesugaringStep<QuestionableTagRender
The mapping ${parsedConditions[i].asHumanString(false, false, {})} is fully matched by a previous mapping (namely ${j}), which matches: The mapping ${parsedConditions[i].asHumanString(false, false, {})} is fully matched by a previous mapping (namely ${j}), which matches:
${parsedConditions[j].asHumanString(false, false, {})}. ${parsedConditions[j].asHumanString(false, false, {})}.
Move the mapping up to fix this problem To fix this problem, you can try to:
- Move the shadowed mapping up
- Use "addExtraTags": ["key=value", ...] in order to avoid a different rendering
(e.g. [{"if": "fee=no", "then": "Free to use", "hideInAnswer":true},
{"if": {"and":["fee=no","charge="]}, "then": "Free to use"}]
can be replaced by
[{"if":"fee=no", "then": "Free to use", "addExtraTags": ["charge="]}]
`) `)
} }
} }
} }
// TODO make this errors again
warnings.push(...errors)
errors.splice(0, errors.length)
return { return {
errors, errors,
warnings, warnings,
@ -336,9 +359,9 @@ export class DetectMappingsWithImages extends DesugaringStep<TagRenderingConfigJ
} }
export class ValidateTagRenderings extends Fuse<TagRenderingConfigJson> { export class ValidateTagRenderings extends Fuse<TagRenderingConfigJson> {
constructor() { constructor(layerConfig: LayerConfigJson) {
super("Various validation on tagRenderingConfigs", super("Various validation on tagRenderingConfigs",
new DetectShadowedMappings(), new DetectShadowedMappings( layerConfig),
new DetectMappingsWithImages() new DetectMappingsWithImages()
); );
} }
@ -434,7 +457,7 @@ export class ValidateLayer extends DesugaringStep<LayerConfigJson> {
} }
} }
if (json.tagRenderings !== undefined) { if (json.tagRenderings !== undefined) {
const r = new OnEvery("tagRenderings", new ValidateTagRenderings()).convert(json, context) const r = new OnEvery("tagRenderings", new ValidateTagRenderings(json)).convert(json, context)
warnings.push(...(r.warnings??[])) warnings.push(...(r.warnings??[]))
errors.push(...(r.errors??[])) errors.push(...(r.errors??[]))
information.push(...(r.information??[])) information.push(...(r.information??[]))

View file

@ -73,7 +73,7 @@
"en": "Backrest: No", "en": "Backrest: No",
"de": "Rückenlehne: Nein", "de": "Rückenlehne: Nein",
"fr": "Dossier : Non", "fr": "Dossier : Non",
"nl": "Rugleuning ontbreekt", "nl": "Heeft geen rugleuning",
"es": "Respaldo: no", "es": "Respaldo: no",
"hu": "Háttámla nincs", "hu": "Háttámla nincs",
"id": "Sandaran: Tidak", "id": "Sandaran: Tidak",

View file

@ -8,7 +8,8 @@
"nl": "Defibrillatoren", "nl": "Defibrillatoren",
"de": "Defibrillatoren", "de": "Defibrillatoren",
"it": "Defibrillatori", "it": "Defibrillatori",
"ru": "Дефибрилляторы" "ru": "Дефибрилляторы",
"sl": "Defibrilatorji"
}, },
"source": { "source": {
"osmTags": "emergency=defibrillator" "osmTags": "emergency=defibrillator"
@ -27,7 +28,8 @@
"nl": "Defibrillator", "nl": "Defibrillator",
"de": "Defibrillator", "de": "Defibrillator",
"it": "Defibrillatore", "it": "Defibrillatore",
"ru": "Дефибриллятор" "ru": "Дефибриллятор",
"sl": "Defibrilator"
} }
}, },
"presets": [ "presets": [
@ -40,7 +42,8 @@
"nl": "Defibrillator", "nl": "Defibrillator",
"de": "Defibrillator", "de": "Defibrillator",
"it": "Defibrillatore", "it": "Defibrillatore",
"ru": "Дефибриллятор" "ru": "Дефибриллятор",
"sl": "Defibrilator"
}, },
"tags": [ "tags": [
"emergency=defibrillator" "emergency=defibrillator"
@ -49,7 +52,8 @@
{ {
"title": { "title": {
"en": "defibrillator mounted on a wall", "en": "defibrillator mounted on a wall",
"nl": "defibrillator die aan een muur hangt" "nl": "defibrillator die aan een muur hangt",
"sl": "defibrilator je pritrjen na steno"
}, },
"tags": [ "tags": [
"emergency=defibrillator" "emergency=defibrillator"
@ -72,7 +76,8 @@
"fr": "Ce défibrillateur est-il disposé en intérieur ?", "fr": "Ce défibrillateur est-il disposé en intérieur ?",
"nl": "Hangt deze defibrillator binnen of buiten?", "nl": "Hangt deze defibrillator binnen of buiten?",
"de": "Befindet sich dieser Defibrillator im Gebäude?", "de": "Befindet sich dieser Defibrillator im Gebäude?",
"it": "Questo defibrillatore si trova allinterno?" "it": "Questo defibrillatore si trova allinterno?",
"sl": "Ali se ta defibrilator nahaja znotraj?"
}, },
"mappings": [ "mappings": [
{ {
@ -84,7 +89,8 @@
"fr": "Ce défibrillateur est en intérieur (dans un batiment)", "fr": "Ce défibrillateur est en intérieur (dans un batiment)",
"nl": "Deze defibrillator bevindt zich in een gebouw", "nl": "Deze defibrillator bevindt zich in een gebouw",
"de": "Dieser Defibrillator befindet sich im Gebäude", "de": "Dieser Defibrillator befindet sich im Gebäude",
"it": "Questo defibrillatore si trova allinterno" "it": "Questo defibrillatore si trova allinterno",
"sl": "Defibrilator se nahaja znotraj"
} }
}, },
{ {
@ -96,7 +102,8 @@
"fr": "Ce défibrillateur est situé en extérieur", "fr": "Ce défibrillateur est situé en extérieur",
"nl": "Deze defibrillator hangt buiten", "nl": "Deze defibrillator hangt buiten",
"de": "Dieser Defibrillator befindet sich im Freien", "de": "Dieser Defibrillator befindet sich im Freien",
"it": "Questo defibrillatore si trova allesterno" "it": "Questo defibrillatore si trova allesterno",
"sl": "Defibrilator se nahaja zunaj"
} }
} }
] ]
@ -109,7 +116,8 @@
"fr": "Ce défibrillateur est-il librement accessible ?", "fr": "Ce défibrillateur est-il librement accessible ?",
"nl": "Is deze defibrillator vrij toegankelijk?", "nl": "Is deze defibrillator vrij toegankelijk?",
"de": "Ist dieser Defibrillator frei zugänglich?", "de": "Ist dieser Defibrillator frei zugänglich?",
"it": "Questo defibrillatore è liberamente accessibile?" "it": "Questo defibrillatore è liberamente accessibile?",
"sl": "Ali je ta defibrilator prosto dostopen?"
}, },
"render": { "render": {
"en": "Access is {access}", "en": "Access is {access}",
@ -118,7 +126,8 @@
"fr": "{access} accessible", "fr": "{access} accessible",
"nl": "Toegankelijkheid is {access}", "nl": "Toegankelijkheid is {access}",
"de": "Zugang ist {access}", "de": "Zugang ist {access}",
"it": "Accesso è {access}" "it": "Accesso è {access}",
"sl": "Dostop je {access}"
}, },
"freeform": { "freeform": {
"key": "access", "key": "access",
@ -137,7 +146,8 @@
"nl": "Publiek toegankelijk", "nl": "Publiek toegankelijk",
"de": "Öffentlich zugänglich", "de": "Öffentlich zugänglich",
"it": "Pubblicamente accessibile", "it": "Pubblicamente accessibile",
"ru": "Общедоступный" "ru": "Общедоступный",
"sl": "Javno dostopen"
} }
}, },
{ {
@ -150,7 +160,8 @@
"nl": "Publiek toegankelijk", "nl": "Publiek toegankelijk",
"de": "Öffentlich zugänglich", "de": "Öffentlich zugänglich",
"it": "Pubblicamente accessibile", "it": "Pubblicamente accessibile",
"ru": "Общедоступный" "ru": "Общедоступный",
"sl": "Javno dostopen"
}, },
"hideInAnswer": true "hideInAnswer": true
}, },
@ -164,7 +175,8 @@
"nl": "Enkel toegankelijk voor klanten", "nl": "Enkel toegankelijk voor klanten",
"de": "Nur für Kunden zugänglich", "de": "Nur für Kunden zugänglich",
"it": "Accessibile solo ai clienti", "it": "Accessibile solo ai clienti",
"ru": "Доступно только для клиентов" "ru": "Доступно только для клиентов",
"sl": "Dostopen samo strankam"
} }
}, },
{ {
@ -176,7 +188,8 @@
"fr": "Non accessible au public (par exemple réservé au personnel, au propriétaire, ...)", "fr": "Non accessible au public (par exemple réservé au personnel, au propriétaire, ...)",
"nl": "Niet toegankelijk voor het publiek (bv. enkel voor personeel, de eigenaar, ...)", "nl": "Niet toegankelijk voor het publiek (bv. enkel voor personeel, de eigenaar, ...)",
"de": "Nicht für die Öffentlichkeit zugänglich (z.B. nur für das Personal, die Eigentümer, ...)", "de": "Nicht für die Öffentlichkeit zugänglich (z.B. nur für das Personal, die Eigentümer, ...)",
"it": "Non accessibile al pubblico (ad esempio riservato al personale, ai proprietari, etc.)" "it": "Non accessibile al pubblico (ad esempio riservato al personale, ai proprietari, etc.)",
"sl": "Ni dostopen splošni javnosti (npr. samo za osebje, za lastnike, ...)"
} }
}, },
{ {
@ -186,7 +199,8 @@
"nl": "Niet toegankelijk, mogelijk enkel voor professionals", "nl": "Niet toegankelijk, mogelijk enkel voor professionals",
"fr": "Pas accessible, peut-être uniquement à usage professionnel", "fr": "Pas accessible, peut-être uniquement à usage professionnel",
"it": "Non accessibile, potrebbe essere solo per uso professionale", "it": "Non accessibile, potrebbe essere solo per uso professionale",
"de": "Nicht zugänglich, möglicherweise nur für betriebliche Nutzung" "de": "Nicht zugänglich, möglicherweise nur für betriebliche Nutzung",
"sl": "Ni dostopen, morda samo za profesionalno rabo"
} }
} }
], ],
@ -198,7 +212,8 @@
"nl": "Is dit een gewone automatische defibrillator of een manueel toestel enkel voor professionals?", "nl": "Is dit een gewone automatische defibrillator of een manueel toestel enkel voor professionals?",
"fr": "Est-ce un défibrillateur automatique normal ou un défibrillateur manuel à usage professionnel uniquement ?", "fr": "Est-ce un défibrillateur automatique normal ou un défibrillateur manuel à usage professionnel uniquement ?",
"it": "Si tratta di un normale defibrillatore automatico o un defibrillatore manuale riservato ai professionisti?", "it": "Si tratta di un normale defibrillatore automatico o un defibrillatore manuale riservato ai professionisti?",
"de": "Ist dies ein normaler automatischer Defibrillator oder ein manueller Defibrillator nur für Profis?" "de": "Ist dies ein normaler automatischer Defibrillator oder ein manueller Defibrillator nur für Profis?",
"sl": "Ali je to navaden avtomatski defibrilator ali ročni defibrilator namenjen poklicnim reševalcem?"
}, },
"condition": { "condition": {
"and": [ "and": [
@ -213,7 +228,8 @@
"nl": "Er is geen info over het soort toestel", "nl": "Er is geen info over het soort toestel",
"fr": "Il n'y a pas d'information sur le type de dispositif", "fr": "Il n'y a pas d'information sur le type de dispositif",
"it": "Non vi sono informazioni riguardanti il tipo di questo dispositivo", "it": "Non vi sono informazioni riguardanti il tipo di questo dispositivo",
"de": "Es gibt keine Informationen über den Gerätetyp" "de": "Es gibt keine Informationen über den Gerätetyp",
"sl": "Ni informacij o vrsti naprave"
}, },
"hideInAnswer": true "hideInAnswer": true
}, },
@ -224,7 +240,8 @@
"nl": "Dit is een manueel toestel enkel voor professionals", "nl": "Dit is een manueel toestel enkel voor professionals",
"fr": "C'est un défibrillateur manuel pour professionnel", "fr": "C'est un défibrillateur manuel pour professionnel",
"it": "Questo è un defibrillatore manuale per professionisti", "it": "Questo è un defibrillatore manuale per professionisti",
"de": "Dies ist ein manueller Defibrillator für den professionellen Einsatz" "de": "Dies ist ein manueller Defibrillator für den professionellen Einsatz",
"sl": "To je ročni defibrilator za poklicne reševalce"
} }
}, },
{ {
@ -235,14 +252,16 @@
"fr": "C'est un défibrillateur automatique manuel", "fr": "C'est un défibrillateur automatique manuel",
"it": "È un normale defibrillatore automatico", "it": "È un normale defibrillatore automatico",
"ru": "Это обычный автоматический дефибриллятор", "ru": "Это обычный автоматический дефибриллятор",
"de": "Dies ist ein normaler automatischer Defibrillator" "de": "Dies ist ein normaler automatischer Defibrillator",
"sl": "To je normalen avtomatski defibrilator"
} }
}, },
{ {
"if": "defibrillator~*", "if": "defibrillator~*",
"then": { "then": {
"en": "This is a special type of defibrillator: {defibrillator}", "en": "This is a special type of defibrillator: {defibrillator}",
"nl": "Dit is een speciaal type defibrillator: {defibrillator}" "nl": "Dit is een speciaal type defibrillator: {defibrillator}",
"sl": "To je posebna vrsta defibrilatorja: {defibrillator}"
}, },
"hideInAnswer": true "hideInAnswer": true
} }
@ -257,7 +276,8 @@
"fr": "À quel étage est situé ce défibrillateur ?", "fr": "À quel étage est situé ce défibrillateur ?",
"nl": "Op welke verdieping bevindt deze defibrillator zich?", "nl": "Op welke verdieping bevindt deze defibrillator zich?",
"de": "In welchem Stockwerk befindet sich dieser Defibrillator?", "de": "In welchem Stockwerk befindet sich dieser Defibrillator?",
"it": "A che piano si trova questo defibrillatore?" "it": "A che piano si trova questo defibrillatore?",
"sl": "V katerem nadstropju je defibrilator?"
}, },
"condition": { "condition": {
"and": [ "and": [
@ -275,7 +295,8 @@
"fr": "Ce défibrillateur est à l'étage {level}", "fr": "Ce défibrillateur est à l'étage {level}",
"nl": "De defibrillator bevindt zicht op verdieping {level}", "nl": "De defibrillator bevindt zicht op verdieping {level}",
"de": "Dieser Defibrallator befindet sich im {level}. Stockwerk", "de": "Dieser Defibrallator befindet sich im {level}. Stockwerk",
"it": "Questo defibrillatore è al piano {level}" "it": "Questo defibrillatore è al piano {level}",
"sl": "Ta defibrilator je v {level}. nadstropju"
}, },
"mappings": [ "mappings": [
{ {
@ -285,7 +306,8 @@
"nl": "Deze defibrillator bevindt zich <b>gelijkvloers</b>", "nl": "Deze defibrillator bevindt zich <b>gelijkvloers</b>",
"fr": "Ce défibrillateur est au <b>rez-de-chaussée</b>", "fr": "Ce défibrillateur est au <b>rez-de-chaussée</b>",
"it": "Questo defibrillatore è al <b>pian terreno</b>", "it": "Questo defibrillatore è al <b>pian terreno</b>",
"de": "Dieser Defibrillator befindet sich im <b>Erdgeschoss</b>" "de": "Dieser Defibrillator befindet sich im <b>Erdgeschoss</b>",
"sl": "Ta defibrilator je v <b>pritličju</b>"
} }
}, },
{ {
@ -295,7 +317,8 @@
"nl": "Deze defibrillator is op de <b>eerste verdieping</b>", "nl": "Deze defibrillator is op de <b>eerste verdieping</b>",
"fr": "Ce défibrillateur est au <b>premier étage</b>", "fr": "Ce défibrillateur est au <b>premier étage</b>",
"it": "Questo defibrillatore è al <b>primo piano</b>", "it": "Questo defibrillatore è al <b>primo piano</b>",
"de": "Dieser Defibrillator befindet sich in der <b>ersten Etage</b>" "de": "Dieser Defibrillator befindet sich in der <b>ersten Etage</b>",
"sl": "Ta defibrilator je v <b>prvem nadstropju</b>"
} }
} }
], ],
@ -307,7 +330,8 @@
"en": "<i>Extra information about the location (in the local languagel):</i><br/>{defibrillator:location}", "en": "<i>Extra information about the location (in the local languagel):</i><br/>{defibrillator:location}",
"fr": "<i>Informations supplémentaires à propos de l'emplacement (dans la langue locale) :</i><br/>{defibrillator:location}", "fr": "<i>Informations supplémentaires à propos de l'emplacement (dans la langue locale) :</i><br/>{defibrillator:location}",
"it": "<i>Informazioni supplementari circa la posizione (in lingua locale):</i><br/>{defibrillator:location}", "it": "<i>Informazioni supplementari circa la posizione (in lingua locale):</i><br/>{defibrillator:location}",
"de": "<i>Zusätzliche Informationen über den Standort (in der Landessprache):</i><br/>{defibrillator:location}" "de": "<i>Zusätzliche Informationen über den Standort (in der Landessprache):</i><br/>{defibrillator:location}",
"sl": "<i>Dodatne informacije o lokaciji (v lokalnem jeziku):</i><br/>{defibrillator:location}"
}, },
"question": { "question": {
"en": "Please give some explanation on where the defibrillator can be found (in the local language)", "en": "Please give some explanation on where the defibrillator can be found (in the local language)",
@ -316,7 +340,8 @@
"fr": "Veuillez indiquez plus précisément où se situe le défibrillateur (dans la langue local)", "fr": "Veuillez indiquez plus précisément où se situe le défibrillateur (dans la langue local)",
"nl": "Gelieve meer informatie te geven over de exacte locatie van de defibrillator (in de plaatselijke taal)", "nl": "Gelieve meer informatie te geven over de exacte locatie van de defibrillator (in de plaatselijke taal)",
"de": "Bitte geben Sie einige Erläuterungen dazu, wo der Defibrillator zu finden ist (in der lokalen Sprache)", "de": "Bitte geben Sie einige Erläuterungen dazu, wo der Defibrillator zu finden ist (in der lokalen Sprache)",
"it": "Indica più precisamente dove si trova il defibrillatore (in lingua locale)" "it": "Indica più precisamente dove si trova il defibrillatore (in lingua locale)",
"sl": "Prosimo, opišite kje se nahaja defibrilator (v lokalnem jeziku)"
}, },
"freeform": { "freeform": {
"type": "text", "type": "text",
@ -330,7 +355,8 @@
"en": "<i>Extra information about the location (in English):</i><br/>{defibrillator:location:en}", "en": "<i>Extra information about the location (in English):</i><br/>{defibrillator:location:en}",
"fr": "<i>Informations supplémentaires à propos de l'emplacement (en anglais) :</i><br/>{defibrillator:location:en}", "fr": "<i>Informations supplémentaires à propos de l'emplacement (en anglais) :</i><br/>{defibrillator:location:en}",
"it": "<i>Informazioni supplementari circa la posizione (in inglese):</i><br/>{defibrillator:location:en}", "it": "<i>Informazioni supplementari circa la posizione (in inglese):</i><br/>{defibrillator:location:en}",
"de": "<i>Zusätzliche Informationen über den Standort (auf Englisch):</i><br/>{defibrillator:location:en}" "de": "<i>Zusätzliche Informationen über den Standort (auf Englisch):</i><br/>{defibrillator:location:en}",
"sl": "<i>Dodatne informacije o lokaciji (v Angleščini):</i><br/>{defibrillator:location:en}"
}, },
"question": { "question": {
"en": "Please give some explanation on where the defibrillator can be found (in English)", "en": "Please give some explanation on where the defibrillator can be found (in English)",
@ -339,7 +365,8 @@
"fr": "Veuillez indiquez plus précisément où se situe le défibrillateur (en englais)", "fr": "Veuillez indiquez plus précisément où se situe le défibrillateur (en englais)",
"nl": "Gelieve meer informatie te geven over de exacte locatie van de defibrillator (in het Engels)", "nl": "Gelieve meer informatie te geven over de exacte locatie van de defibrillator (in het Engels)",
"de": "Bitte geben Sie einige Erläuterungen dazu, wo der Defibrillator zu finden ist (auf Englisch)", "de": "Bitte geben Sie einige Erläuterungen dazu, wo der Defibrillator zu finden ist (auf Englisch)",
"it": "Indica più precisamente dove si trova il defibrillatore (in inglese)" "it": "Indica più precisamente dove si trova il defibrillatore (in inglese)",
"sl": "Prosimo, opišite kje se nahaja defibrilator (v Angleščini)"
}, },
"freeform": { "freeform": {
"type": "text", "type": "text",
@ -353,7 +380,8 @@
"en": "<i>Extra information about the location (in French):</i><br/>{defibrillator:location:fr}", "en": "<i>Extra information about the location (in French):</i><br/>{defibrillator:location:fr}",
"fr": "<i>Informations supplémentaires à propos de l'emplacement (en Français) :</i><br/>{defibrillator:location:fr}", "fr": "<i>Informations supplémentaires à propos de l'emplacement (en Français) :</i><br/>{defibrillator:location:fr}",
"it": "<i>Informazioni supplementari circa la posizione (in francese):</i><br/>{defibrillator:location:fr}", "it": "<i>Informazioni supplementari circa la posizione (in francese):</i><br/>{defibrillator:location:fr}",
"de": "<i>Zusätzliche Informationen zum Standort (auf Französisch):</i><br/>{defibrillator:location:fr}" "de": "<i>Zusätzliche Informationen zum Standort (auf Französisch):</i><br/>{defibrillator:location:fr}",
"sl": "<i>Dodatne informacije o lokaciji (v Francoščini):</i><br/>{defibrillator:location:fr}"
}, },
"question": { "question": {
"en": "Please give some explanation on where the defibrillator can be found (in French)", "en": "Please give some explanation on where the defibrillator can be found (in French)",
@ -362,7 +390,8 @@
"fr": "Veuillez indiquez plus précisément où se situe le défibrillateur (en français)", "fr": "Veuillez indiquez plus précisément où se situe le défibrillateur (en français)",
"nl": "Gelieve meer informatie te geven over de exacte locatie van de defibrillator (in het Frans)", "nl": "Gelieve meer informatie te geven over de exacte locatie van de defibrillator (in het Frans)",
"de": "Bitte geben Sie einige Erläuterungen dazu, wo der Defibrillator zu finden ist (auf Französisch)", "de": "Bitte geben Sie einige Erläuterungen dazu, wo der Defibrillator zu finden ist (auf Französisch)",
"it": "Indica più precisamente dove si trova il defibrillatore (in francese)" "it": "Indica più precisamente dove si trova il defibrillatore (in francese)",
"sl": "Prosimo, opišite kje se nahaja defibrilator (v Francoščini)"
}, },
"freeform": { "freeform": {
"type": "text", "type": "text",
@ -377,14 +406,16 @@
"en": "Official identification number of the device: <i>{ref}</i>", "en": "Official identification number of the device: <i>{ref}</i>",
"fr": "Numéro d'identification officiel de ce dispositif : <i>{ref}</i>", "fr": "Numéro d'identification officiel de ce dispositif : <i>{ref}</i>",
"it": "Numero identificativo ufficiale di questo dispositivo:<i>{ref}</i>", "it": "Numero identificativo ufficiale di questo dispositivo:<i>{ref}</i>",
"de": "Offizielle Identifikationsnummer des Geräts: <i>{ref}</i>" "de": "Offizielle Identifikationsnummer des Geräts: <i>{ref}</i>",
"sl": "Uradna identifikacijska številka te naprave: <i>{ref}</i>"
}, },
"question": { "question": {
"en": "What is the official identification number of the device? (if visible on device)", "en": "What is the official identification number of the device? (if visible on device)",
"nl": "Wat is het officieel identificatienummer van het toestel? (indien zichtbaar op toestel)", "nl": "Wat is het officieel identificatienummer van het toestel? (indien zichtbaar op toestel)",
"fr": "Quel est le numéro d'identification officiel de ce dispositif ? (si il est visible sur le dispositif)", "fr": "Quel est le numéro d'identification officiel de ce dispositif ? (si il est visible sur le dispositif)",
"it": "Qual è il numero identificativo ufficiale di questo dispositivo? (se visibile sul dispositivo)", "it": "Qual è il numero identificativo ufficiale di questo dispositivo? (se visibile sul dispositivo)",
"de": "Wie lautet die offizielle Identifikationsnummer des Geräts? (falls am Gerät sichtbar)" "de": "Wie lautet die offizielle Identifikationsnummer des Geräts? (falls am Gerät sichtbar)",
"sl": "Kakšna je uradna identifikacijska številka te naprave? (če je vidna na napravi)"
}, },
"freeform": { "freeform": {
"type": "text", "type": "text",
@ -398,14 +429,16 @@
"nl": "Email voor vragen over deze defibrillator: <a href='mailto:{email}'>{email}</a>", "nl": "Email voor vragen over deze defibrillator: <a href='mailto:{email}'>{email}</a>",
"fr": "Adresse électronique pour des questions à propos de ce défibrillateur : <a href='mailto:{email}'>{email}</a>", "fr": "Adresse électronique pour des questions à propos de ce défibrillateur : <a href='mailto:{email}'>{email}</a>",
"it": "Indirizzo email per le domande su questo defibrillatore:<a href='mailto:{email}'>{email}</a>", "it": "Indirizzo email per le domande su questo defibrillatore:<a href='mailto:{email}'>{email}</a>",
"de": "E-Mail für Fragen zu diesem Defibrillator: <a href='mailto:{email}'>{email}</a>" "de": "E-Mail für Fragen zu diesem Defibrillator: <a href='mailto:{email}'>{email}</a>",
"sl": "Email naslov za vprašanja o tem defibrilatorju: <a href='mailto:{email}'>{email}</a>"
}, },
"question": { "question": {
"en": "What is the email for questions about this defibrillator?", "en": "What is the email for questions about this defibrillator?",
"nl": "Wat is het email-adres voor vragen over deze defibrillator", "nl": "Wat is het email-adres voor vragen over deze defibrillator",
"fr": "Quelle est l'adresse électronique pour des questions à propos de ce défibrillateur ?", "fr": "Quelle est l'adresse électronique pour des questions à propos de ce défibrillateur ?",
"it": "Qual è lindirizzo email per le domande riguardanti questo defibrillatore?", "it": "Qual è lindirizzo email per le domande riguardanti questo defibrillatore?",
"de": "Wie lautet die E-Mail für Fragen zu diesem Defibrillator?" "de": "Wie lautet die E-Mail für Fragen zu diesem Defibrillator?",
"sl": "Kakšen je email naslov za vprašanja o tem defibrilatorju?"
}, },
"freeform": { "freeform": {
"key": "email", "key": "email",
@ -419,14 +452,16 @@
"fr": "Numéro de téléphone pour questions sur le défibrillateur : <a href='tel:{phone}'>{phone}</a>", "fr": "Numéro de téléphone pour questions sur le défibrillateur : <a href='tel:{phone}'>{phone}</a>",
"nl": "Telefoonnummer voor vragen over deze defibrillator: <a href='tel:{phone}'>{phone}</a>", "nl": "Telefoonnummer voor vragen over deze defibrillator: <a href='tel:{phone}'>{phone}</a>",
"it": "Numero di telefono per le domande su questo defibrillatore:<a href='tel:{phone}'>{phone}</a>", "it": "Numero di telefono per le domande su questo defibrillatore:<a href='tel:{phone}'>{phone}</a>",
"de": "Telefonnummer für Fragen zu diesem Defibrillator: <a href='tel:{phone}'>{phone}</a>" "de": "Telefonnummer für Fragen zu diesem Defibrillator: <a href='tel:{phone}'>{phone}</a>",
"sl": "Telefonska številka za vprašanja o tem defibrilatorju: <a href='tel:{phone}'>{phone}</a>"
}, },
"question": { "question": {
"en": "What is the phone number for questions about this defibrillator?", "en": "What is the phone number for questions about this defibrillator?",
"fr": "Quel est le numéro de téléphone pour questions sur le défibrillateur ?", "fr": "Quel est le numéro de téléphone pour questions sur le défibrillateur ?",
"nl": "Wat is het telefoonnummer voor vragen over deze defibrillator", "nl": "Wat is het telefoonnummer voor vragen over deze defibrillator",
"it": "Qual è il numero di telefono per le domande riguardanti questo defibrillatore?", "it": "Qual è il numero di telefono per le domande riguardanti questo defibrillatore?",
"de": "Wie lautet die Telefonnummer für Fragen zu diesem Defibrillator?" "de": "Wie lautet die Telefonnummer für Fragen zu diesem Defibrillator?",
"sl": "Kakšna je telefonska številka za vprašanja o tem defibrilatorju?"
}, },
"freeform": { "freeform": {
"key": "phone", "key": "phone",
@ -441,7 +476,8 @@
"fr": "{opening_hours_table(opening_hours)}", "fr": "{opening_hours_table(opening_hours)}",
"it": "{opening_hours_table(opening_hours)}", "it": "{opening_hours_table(opening_hours)}",
"ru": "{opening_hours_table(opening_hours)}", "ru": "{opening_hours_table(opening_hours)}",
"de": "{opening_hours_table(opening_hours)}" "de": "{opening_hours_table(opening_hours)}",
"sl": "{opening_hours_table(opening_hours)}"
}, },
"question": { "question": {
"en": "At what times is this defibrillator available?", "en": "At what times is this defibrillator available?",
@ -449,7 +485,8 @@
"fr": "À quels horaires ce défibrillateur est-il accessible ?", "fr": "À quels horaires ce défibrillateur est-il accessible ?",
"it": "In quali orari è disponibile questo defibrillatore?", "it": "In quali orari è disponibile questo defibrillatore?",
"ru": "В какое время доступен этот дефибриллятор?", "ru": "В какое время доступен этот дефибриллятор?",
"de": "Zu welchen Zeiten ist dieser Defibrillator verfügbar?" "de": "Zu welchen Zeiten ist dieser Defibrillator verfügbar?",
"sl": "Ob katerih urah je ta defibrilator na voljo?"
}, },
"freeform": { "freeform": {
"key": "opening_hours", "key": "opening_hours",
@ -463,7 +500,8 @@
"nl": "24/7 open (inclusief feestdagen)", "nl": "24/7 open (inclusief feestdagen)",
"fr": "Ouvert 24/7 (jours feriés inclus)", "fr": "Ouvert 24/7 (jours feriés inclus)",
"it": "Aperto 24/7 (festivi inclusi)", "it": "Aperto 24/7 (festivi inclusi)",
"de": "24/7 geöffnet (auch an Feiertagen)" "de": "24/7 geöffnet (auch an Feiertagen)",
"sl": "Na voljo 24/7 (tudi za praznike)"
} }
} }
], ],
@ -477,14 +515,16 @@
"it": "Informazioni supplementari: {description}", "it": "Informazioni supplementari: {description}",
"ru": "Дополнительная информация: {description}", "ru": "Дополнительная информация: {description}",
"de": "Zusätzliche Informationen: {description}", "de": "Zusätzliche Informationen: {description}",
"id": "Informasi tambahan: {description}" "id": "Informasi tambahan: {description}",
"sl": "Dodatne informacije: {description}"
}, },
"question": { "question": {
"en": "Is there any useful information for users that you haven't been able to describe above? (leave blank if no)", "en": "Is there any useful information for users that you haven't been able to describe above? (leave blank if no)",
"nl": "Is er nog iets bijzonder aan deze defibrillator dat je nog niet hebt kunnen meegeven? (laat leeg indien niet)", "nl": "Is er nog iets bijzonder aan deze defibrillator dat je nog niet hebt kunnen meegeven? (laat leeg indien niet)",
"fr": "Y a-t-il des informations utiles pour les utilisateurs que vous n'avez pas pu décrire ci-dessus ? (laisser vide sinon)", "fr": "Y a-t-il des informations utiles pour les utilisateurs que vous n'avez pas pu décrire ci-dessus ? (laisser vide sinon)",
"it": "Vi sono altre informazioni utili agli utenti che non è stato possibile aggiungere prima? (lasciare vuoto in caso negativo)", "it": "Vi sono altre informazioni utili agli utenti che non è stato possibile aggiungere prima? (lasciare vuoto in caso negativo)",
"de": "Gibt es nützliche Informationen für Benutzer, die Sie oben nicht beschreiben konnten? (leer lassen, wenn nein)" "de": "Gibt es nützliche Informationen für Benutzer, die Sie oben nicht beschreiben konnten? (leer lassen, wenn nein)",
"sl": "Ali imate še kakšne uporabne informacije za uporabnike, ki jih niste mogli podati zgoraj? (pustite prazno če jih nimate)"
}, },
"freeform": { "freeform": {
"key": "description", "key": "description",
@ -498,14 +538,16 @@
"nl": "Wanneer is deze defibrillator het laatst gecontroleerd in OpenStreetMap?", "nl": "Wanneer is deze defibrillator het laatst gecontroleerd in OpenStreetMap?",
"fr": "Quand le défibrillateur a-t-il été vérifié pour la dernière fois ?", "fr": "Quand le défibrillateur a-t-il été vérifié pour la dernière fois ?",
"it": "Quando è stato verificato per lultima volta questo defibrillatore?", "it": "Quando è stato verificato per lultima volta questo defibrillatore?",
"de": "Wann wurde dieser Defibrillator zuletzt überprüft?" "de": "Wann wurde dieser Defibrillator zuletzt überprüft?",
"sl": "Kdaj je bil ta defibrilator nazadnje opažen?"
}, },
"render": { "render": {
"en": "This defibrillator was last surveyed on {survey:date}", "en": "This defibrillator was last surveyed on {survey:date}",
"nl": "Deze defibrillator is nagekeken in OSM op {survey:date}", "nl": "Deze defibrillator is nagekeken in OSM op {survey:date}",
"fr": "Ce défibrillateur a été vérifié pour la dernière fois le {survey:date}", "fr": "Ce défibrillateur a été vérifié pour la dernière fois le {survey:date}",
"it": "Questo defibrillatore è stato verificato per lultima volta in data {survey:date}", "it": "Questo defibrillatore è stato verificato per lultima volta in data {survey:date}",
"de": "Dieser Defibrillator wurde zuletzt am {survey:date} überprüft" "de": "Dieser Defibrillator wurde zuletzt am {survey:date} überprüft",
"sl": "Ta defibrilator je bil nazadnje opažen {survey:date}"
}, },
"freeform": { "freeform": {
"key": "survey:date", "key": "survey:date",
@ -520,7 +562,8 @@
"fr": "Vérifié aujourd'hui !", "fr": "Vérifié aujourd'hui !",
"it": "Verificato oggi!", "it": "Verificato oggi!",
"ru": "Проверено сегодня!", "ru": "Проверено сегодня!",
"de": "Heute überprüft!" "de": "Heute überprüft!",
"sl": "Preverjeno danes!"
} }
} }
], ],
@ -533,14 +576,16 @@
"fr": "Informations supplémentaires pour les experts d'OpenStreetMap : {fixme}", "fr": "Informations supplémentaires pour les experts d'OpenStreetMap : {fixme}",
"it": "Informazioni supplementari per gli esperti di OpenStreetMap: {fixme}", "it": "Informazioni supplementari per gli esperti di OpenStreetMap: {fixme}",
"de": "Zusätzliche Informationen für OpenStreetMap-Experten: {fixme}", "de": "Zusätzliche Informationen für OpenStreetMap-Experten: {fixme}",
"ru": "Дополнительная информация для экспертов OpenStreetMap: {fixme}" "ru": "Дополнительная информация для экспертов OpenStreetMap: {fixme}",
"sl": "Dodatne informacije za OpenStreetMap strokovnjake: {fixme}"
}, },
"question": { "question": {
"en": "Is there something wrong with how this is mapped, that you weren't able to fix here? (leave a note to OpenStreetMap experts)", "en": "Is there something wrong with how this is mapped, that you weren't able to fix here? (leave a note to OpenStreetMap experts)",
"nl": "Is er iets mis met de informatie over deze defibrillator dat je hier niet opgelost kreeg? (laat hier een berichtje achter voor OpenStreetMap experts)", "nl": "Is er iets mis met de informatie over deze defibrillator dat je hier niet opgelost kreeg? (laat hier een berichtje achter voor OpenStreetMap experts)",
"fr": "Y a-t-il quelque chose qui ne va pas dans la manière dont ça a été cartographié, et que vous n'avez pas pu réparer ici ? (laisser une note pour les experts d'OpenStreetMap)", "fr": "Y a-t-il quelque chose qui ne va pas dans la manière dont ça a été cartographié, et que vous n'avez pas pu réparer ici ? (laisser une note pour les experts d'OpenStreetMap)",
"it": "Cè qualcosa di sbagliato riguardante come è stato mappato, che non si è potuto correggere qua? (lascia una nota agli esperti di OpenStreetMap)", "it": "Cè qualcosa di sbagliato riguardante come è stato mappato, che non si è potuto correggere qua? (lascia una nota agli esperti di OpenStreetMap)",
"de": "Gibt es einen Fehler in der Kartierung, den Sie hier nicht beheben konnten? (hinterlasse eine Notiz an OpenStreetMap-Experten)" "de": "Gibt es einen Fehler in der Kartierung, den Sie hier nicht beheben konnten? (hinterlasse eine Notiz an OpenStreetMap-Experten)",
"sl": "Ali je kaj narobe s tem vnosom na zemljevid, in tega niste mogli sami popraviti tu? (pustite opombo OpenStreetMap strokovnjakom)"
}, },
"freeform": { "freeform": {
"key": "fixme", "key": "fixme",
@ -583,6 +628,7 @@
], ],
"description": { "description": {
"en": "A layer showing defibrillators which can be used in case of emergency. This contains public defibrillators, but also defibrillators which might need staff to fetch the actual device", "en": "A layer showing defibrillators which can be used in case of emergency. This contains public defibrillators, but also defibrillators which might need staff to fetch the actual device",
"nl": "Een laag die defibrillatoren toont die je kan gebruiken bij noodgevallen. Dit omvat zowel publiek beschikbare toestellen als defibrillatoren waarvoor het toestel enkel door personeel aangeboden kan worden" "nl": "Een laag die defibrillatoren toont die je kan gebruiken bij noodgevallen. Dit omvat zowel publiek beschikbare toestellen als defibrillatoren waarvoor het toestel enkel door personeel aangeboden kan worden",
"sl": "Sloj prikazuje defibrilatorje, ki jih je možno uporabiti v primeru sile. Sloj poleg javno dostopnih defibrilatorjev vsebuje tudi tiste, ki za dostop morda potrebujejo pomoč osebja"
} }
} }

View file

@ -16,7 +16,8 @@
"nb_NO": "Åpne AED-kart", "nb_NO": "Åpne AED-kart",
"sv": "Öppna AED-karta", "sv": "Öppna AED-karta",
"pl": "Otwórz mapę AED", "pl": "Otwórz mapę AED",
"pt_BR": "Abrir mapa AED" "pt_BR": "Abrir mapa AED",
"sl": "Zemljevid defibrilatorjev (AED)"
}, },
"maintainer": "MapComplete", "maintainer": "MapComplete",
"icon": "./assets/themes/aed/aed.svg", "icon": "./assets/themes/aed/aed.svg",
@ -36,7 +37,8 @@
"pl": "Na tej mapie można znaleźć i oznaczyć defibrylatory w okolicy", "pl": "Na tej mapie można znaleźć i oznaczyć defibrylatory w okolicy",
"pt_BR": "Neste mapa, pode-se encontrar e marcar desfibriladores próximos", "pt_BR": "Neste mapa, pode-se encontrar e marcar desfibriladores próximos",
"nb_NO": "Defibrillatorer i nærheten", "nb_NO": "Defibrillatorer i nærheten",
"hu": "Ezen a térképen a közeli defibrillátorokat lehet megtalálni és feltüntetni" "hu": "Ezen a térképen a közeli defibrillátorokat lehet megtalálni és feltüntetni",
"sl": "Na tem zemljevidu lahko poiščete in označite bližnje defibrilatorje"
}, },
"version": "2020-08-29", "version": "2020-08-29",
"startLat": 0, "startLat": 0,

View file

@ -538,16 +538,7 @@
] ]
}, },
"then": "Beheer door een privépersoon", "then": "Beheer door een privépersoon",
"hideInAnswer": true "addExtraTags": ["operator="]
},
{
"if": {
"and": [
"operator:type=private",
"operator="
]
},
"then": "Beheer door een privépersoon"
} }
], ],
"condition": { "condition": {

View file

@ -199,12 +199,8 @@
"nl": "Kan gratis gebruikt worden", "nl": "Kan gratis gebruikt worden",
"pt_BR": "Pode ser usado de graça", "pt_BR": "Pode ser usado de graça",
"de": "Nutzung kostenlos" "de": "Nutzung kostenlos"
}
}, },
{ "addExtraTags": ["charge="]
"if": "fee=no",
"then": "Can be used for free",
"hideInAnswer": true
} }
] ]
}, },

View file

@ -961,23 +961,6 @@
"it": "È possibile arrampicarsi qua?" "it": "È possibile arrampicarsi qua?"
}, },
"mappings": [ "mappings": [
{
"if": {
"and": [
"sport!~climbing"
]
},
"then": {
"en": "Climbing is not possible here",
"de": "Hier kann nicht geklettert werden",
"ja": "ここでは登ることができない",
"nb_NO": "Klatring er ikke mulig her",
"nl": "Klimmen is hier niet mogelijk",
"fr": "Escalader nest pas possible",
"it": "Non è possibile arrampicarsi qua"
},
"hideInAnswer": true
},
{ {
"if": { "if": {
"and": [ "and": [
@ -1005,6 +988,23 @@
"fr": "Escalader nest pas possible", "fr": "Escalader nest pas possible",
"it": "Non è possibile arrampicarsi qua" "it": "Non è possibile arrampicarsi qua"
} }
},
{
"if": {
"and": [
"sport!~climbing"
]
},
"then": {
"en": "Climbing is not possible here",
"de": "Hier kann nicht geklettert werden",
"ja": "ここでは登ることができない",
"nb_NO": "Klatring er ikke mulig her",
"nl": "Klimmen is hier niet mogelijk",
"fr": "Escalader nest pas possible",
"it": "Non è possibile arrampicarsi qua"
},
"hideInAnswer": true
} }
] ]
} }

View file

@ -129,16 +129,12 @@
}, },
{ {
"if": "building=apartments", "if": "building=apartments",
"then": "An apartment building - highrise for living" "then": "An apartment building (highrise building for living)"
}, },
{ {
"if": "building=office", "if": "building=office",
"then": "An office building - highrise for work" "then": "An office building - highrise for work"
}, },
{
"if": "building=apartments",
"then": "An apartment building"
},
{ {
"if": "building=shed", "if": "building=shed",
"then": "A small shed, e.g. in a garden" "then": "A small shed, e.g. in a garden"

View file

@ -127,16 +127,12 @@
}, },
{ {
"if": "building=apartments", "if": "building=apartments",
"then": "An apartment building - highrise for living" "then": "An apartment building (a highrise building for living)"
}, },
{ {
"if": "building=office", "if": "building=office",
"then": "An office building - highrise for work" "then": "An office building - highrise for work"
}, },
{
"if": "building=apartments",
"then": "An apartment building"
},
{ {
"if": "building=shed", "if": "building=shed",
"then": "A small shed, e.g. in a garden" "then": "A small shed, e.g. in a garden"

View file

@ -256,13 +256,14 @@
}, },
"mappings": [ "mappings": [
{ {
"if": "addr:unit=", "if": "not:addr:unit=yes",
"then": "<div class='subtle'>Sub-unit (e.g. \"1\", \"Flat 2\", \"Unit C\")</div>", "then": "There is no sub-unit within this address",
"hideInAnswer": true "addExtraTags": ["addr:unit="]
}, },
{ {
"if": "addr:unit=", "if": "addr:unit=",
"then": "There is no sub-unit within this address" "then": "<div class='subtle'>Sub-unit (e.g. \"1\", \"Flat 2\", \"Unit C\")</div>",
"hideInAnswer": true
} }
], ],
"condition": { "condition": {
@ -291,17 +292,12 @@
"addr:housename=" "addr:housename="
] ]
}, },
"then": "<div class='subtle'>House or building name</div>", "then": "This building has no housename"
"hideInAnswer": true
}, },
{ {
"if": { "if": "addr:housename=",
"and": [ "then": "<div class='subtle'>House or building name</div>",
"nohousename=yes", "hideInAnswer": true
"addr:housename="
]
},
"then": "This building has no housename"
}, },
{ {
"#": "By adding nohousenumber!=yes, this option will trigger when first added, but will be untriggered if a housenumber is added, resulting in the question poping up!", "#": "By adding nohousenumber!=yes, this option will trigger when first added, but will be untriggered if a housenumber is added, resulting in the question poping up!",
@ -329,10 +325,18 @@
] ]
}, },
"mappings": [ "mappings": [
{
"if": "nohousenumber=yes",
"then": {
"en": "This building has no house number",
"nl": "Dit gebouw heeft geen huisnummer",
"de": "Dieses Gebäude hat keine Hausnummer"
},
"addExtraTags": [ "addr:housenumber="]
},
{ {
"if": { "if": {
"and": [ "and": [
"nohousenumber=yes",
"addr:housenumber=" "addr:housenumber="
] ]
}, },
@ -340,19 +344,6 @@
"en": "<div class='subtle'>Number (e.g. 1, 1A, 2)</div>" "en": "<div class='subtle'>Number (e.g. 1, 1A, 2)</div>"
}, },
"hideInAnswer": true "hideInAnswer": true
},
{
"if": {
"and": [
"nohousenumber=yes",
"addr:housenumber="
]
},
"then": {
"en": "This building has no house number",
"nl": "Dit gebouw heeft geen huisnummer",
"de": "Dieses Gebäude hat keine Hausnummer"
}
} }
] ]
}, },
@ -373,17 +364,17 @@
}, },
"mappings": [ "mappings": [
{ {
"if": "not:addr:substreet=yes",
"then": {
"en": "No extra place name is given or needed"
},
"addExtraTags": ["addr:substreet="]
},{
"if": "addr:substreet=", "if": "addr:substreet=",
"then": { "then": {
"en": "<div class='subtle'>Place (e.g. \"Castle Mews\", \"West Business Park\")</div>" "en": "<div class='subtle'>Place (e.g. \"Castle Mews\", \"West Business Park\")</div>"
}, },
"hideInAnswer": true "hideInAnswer": true
},
{
"if": "addr:substreet=",
"then": {
"en": "No extra place name is given or needed"
}
} }
], ],
"condition": "addr:parentstreet=" "condition": "addr:parentstreet="
@ -403,18 +394,19 @@
] ]
}, },
"mappings": [ "mappings": [
{
"if": "not:addr:substreet=yes",
"then": {
"en": "No extra place name is given or needed"
},
"addExtraTags": ["addr:substreet="]
},
{ {
"if": "addr:substreet=", "if": "addr:substreet=",
"then": { "then": {
"en": "<div class='subtle'>Place (e.g. \"Castle Mews\", \"West Business Park\")</div>" "en": "<div class='subtle'>Place (e.g. \"Castle Mews\", \"West Business Park\")</div>"
}, },
"hideInAnswer": true "hideInAnswer": true
},
{
"if": "addr:substreet=",
"then": {
"en": "No extra place name is given or needed"
}
} }
], ],
"condition": { "condition": {
@ -479,15 +471,9 @@
}, },
"mappings": [ "mappings": [
{ {
"if": "addr:parentstreet=", "if": "not:addr:parentstreet=yes",
"then": { "then": "No parent street name is needed within this address",
"en": "<div class='subtle'>Parent street name</div>" "addExtraTags": ["addr:parentstreet="]
},
"hideInAnswer": true
},
{
"if": "addr:parentstreet=",
"then": "No parent street name is needed within this address"
}, },
{ {
"if": "addr:parentstreet:={_closest_street:0:name}", "if": "addr:parentstreet:={_closest_street:0:name}",
@ -503,6 +489,13 @@
"if": "addr:parentstreet:={_closest_street:2:name}", "if": "addr:parentstreet:={_closest_street:2:name}",
"then": "<b>{_closest_street:2:name}</b>", "then": "<b>{_closest_street:2:name}</b>",
"hideInAnswer": "_closest_street:2:name=" "hideInAnswer": "_closest_street:2:name="
},
{
"if": "addr:parentstreet=",
"then": {
"en": "<div class='subtle'>Parent street name</div>"
},
"hideInAnswer": true
} }
], ],
"condition": { "condition": {

View file

@ -262,7 +262,7 @@
"then": "Heeft een rugleuning" "then": "Heeft een rugleuning"
}, },
"1": { "1": {
"then": "Rugleuning ontbreekt" "then": "Heeft geen rugleuning"
} }
}, },
"question": "Heeft deze zitbank een rugleuning?" "question": "Heeft deze zitbank een rugleuning?"

130
langs/layers/sl.json Normal file
View file

@ -0,0 +1,130 @@
{
"defibrillator": {
"description": "Sloj prikazuje defibrilatorje, ki jih je možno uporabiti v primeru sile. Sloj poleg javno dostopnih defibrilatorjev vsebuje tudi tiste, ki za dostop morda potrebujejo pomoč osebja",
"name": "Defibrilatorji",
"presets": {
"0": {
"title": "Defibrilator"
},
"1": {
"title": "defibrilator je pritrjen na steno"
}
},
"tagRenderings": {
"defibrillator-access": {
"mappings": {
"0": {
"then": "Javno dostopen"
},
"1": {
"then": "Javno dostopen"
},
"2": {
"then": "Dostopen samo strankam"
},
"3": {
"then": "Ni dostopen splošni javnosti (npr. samo za osebje, za lastnike, ...)"
},
"4": {
"then": "Ni dostopen, morda samo za profesionalno rabo"
}
},
"question": "Ali je ta defibrilator prosto dostopen?",
"render": "Dostop je {access}"
},
"defibrillator-defibrillator": {
"mappings": {
"0": {
"then": "Ni informacij o vrsti naprave"
},
"1": {
"then": "To je ročni defibrilator za poklicne reševalce"
},
"2": {
"then": "To je normalen avtomatski defibrilator"
},
"3": {
"then": "To je posebna vrsta defibrilatorja: {defibrillator}"
}
},
"question": "Ali je to navaden avtomatski defibrilator ali ročni defibrilator namenjen poklicnim reševalcem?"
},
"defibrillator-defibrillator:location": {
"question": "Prosimo, opišite kje se nahaja defibrilator (v lokalnem jeziku)",
"render": "<i>Dodatne informacije o lokaciji (v lokalnem jeziku):</i><br/>{defibrillator:location}"
},
"defibrillator-defibrillator:location:en": {
"question": "Prosimo, opišite kje se nahaja defibrilator (v Angleščini)",
"render": "<i>Dodatne informacije o lokaciji (v Angleščini):</i><br/>{defibrillator:location:en}"
},
"defibrillator-defibrillator:location:fr": {
"question": "Prosimo, opišite kje se nahaja defibrilator (v Francoščini)",
"render": "<i>Dodatne informacije o lokaciji (v Francoščini):</i><br/>{defibrillator:location:fr}"
},
"defibrillator-description": {
"question": "Ali imate še kakšne uporabne informacije za uporabnike, ki jih niste mogli podati zgoraj? (pustite prazno če jih nimate)",
"render": "Dodatne informacije: {description}"
},
"defibrillator-email": {
"question": "Kakšen je email naslov za vprašanja o tem defibrilatorju?",
"render": "Email naslov za vprašanja o tem defibrilatorju: <a href='mailto:{email}'>{email}</a>"
},
"defibrillator-fixme": {
"question": "Ali je kaj narobe s tem vnosom na zemljevid, in tega niste mogli sami popraviti tu? (pustite opombo OpenStreetMap strokovnjakom)",
"render": "Dodatne informacije za OpenStreetMap strokovnjake: {fixme}"
},
"defibrillator-indoors": {
"mappings": {
"0": {
"then": "Defibrilator se nahaja znotraj"
},
"1": {
"then": "Defibrilator se nahaja zunaj"
}
},
"question": "Ali se ta defibrilator nahaja znotraj?"
},
"defibrillator-level": {
"mappings": {
"0": {
"then": "Ta defibrilator je v <b>pritličju</b>"
},
"1": {
"then": "Ta defibrilator je v <b>prvem nadstropju</b>"
}
},
"question": "V katerem nadstropju je defibrilator?",
"render": "Ta defibrilator je v {level}. nadstropju"
},
"defibrillator-opening_hours": {
"mappings": {
"0": {
"then": "Na voljo 24/7 (tudi za praznike)"
}
},
"question": "Ob katerih urah je ta defibrilator na voljo?",
"render": "{opening_hours_table(opening_hours)}"
},
"defibrillator-phone": {
"question": "Kakšna je telefonska številka za vprašanja o tem defibrilatorju?",
"render": "Telefonska številka za vprašanja o tem defibrilatorju: <a href='tel:{phone}'>{phone}</a>"
},
"defibrillator-ref": {
"question": "Kakšna je uradna identifikacijska številka te naprave? (če je vidna na napravi)",
"render": "Uradna identifikacijska številka te naprave: <i>{ref}</i>"
},
"defibrillator-survey:date": {
"mappings": {
"0": {
"then": "Preverjeno danes!"
}
},
"question": "Kdaj je bil ta defibrilator nazadnje opažen?",
"render": "Ta defibrilator je bil nazadnje opažen {survey:date}"
}
},
"title": {
"render": "Defibrilator"
}
}
}

View file

@ -60,7 +60,7 @@
"intro": "Kies hieronder welk punt je wilt toevoegen<br/>", "intro": "Kies hieronder welk punt je wilt toevoegen<br/>",
"layerNotEnabled": "De laag {layer} is gedeactiveerd. Activeer deze om een punt toe te voegen", "layerNotEnabled": "De laag {layer} is gedeactiveerd. Activeer deze om een punt toe te voegen",
"openLayerControl": "Open de laag-instellingen", "openLayerControl": "Open de laag-instellingen",
"pleaseLogin": "Gelieve je aan te melden om een punt to te voegen", "pleaseLogin": "Gelieve je aan te melden om een punt toe te voegen",
"presetInfo": "Het nieuwe object krijgt de attributen {tags}", "presetInfo": "Het nieuwe object krijgt de attributen {tags}",
"stillLoading": "De data worden nog geladen. Nog even geduld en dan kan je een punt toevoegen.", "stillLoading": "De data worden nog geladen. Nog even geduld en dan kan je een punt toevoegen.",
"title": "Nieuw punt toevoegen?", "title": "Nieuw punt toevoegen?",

View file

@ -0,0 +1 @@
{}

38
langs/sl.json Normal file
View file

@ -0,0 +1,38 @@
{
"general": {
"back": "Nazaj",
"cancel": "Prekliči",
"confirm": "Potrdi",
"pickLanguage": "Izberite jezik: ",
"skip": "Preskoči to vprašanje",
"weekdays": {
"abbreviations": {
"friday": "Pet",
"monday": "Pon",
"saturday": "Sob",
"sunday": "Ned",
"thursday": "Čet",
"tuesday": "Tor",
"wednesday": "Sre"
},
"friday": "Petek",
"monday": "Ponedeljek",
"saturday": "Sobota",
"sunday": "Nedelja",
"thursday": "Četrtek",
"tuesday": "Torek",
"wednesday": "Sreda"
}
},
"image": {
"addPicture": "Dodaj sliko",
"doDelete": "Odstrani sliko",
"dontDelete": "Prekliči",
"isDeleted": "Izbrisana"
},
"index": {
"intro": "MapComplete je pregledovalnik in urejevalnik zemljevida OpenStreetMap, ki prikazuje in omogoča urejanje informacij na določeno tematiko.",
"pickTheme": "Za začetek spodaj izberite tematiko.",
"title": "Dobrodošli na MapComplete"
}
}

View file

@ -442,10 +442,10 @@
"climbing-possible": { "climbing-possible": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Hier kann nicht geklettert werden" "then": "Hier kann geklettert werden"
}, },
"1": { "1": {
"then": "Hier kann geklettert werden" "then": "Hier kann nicht geklettert werden"
}, },
"2": { "2": {
"then": "Hier kann nicht geklettert werden" "then": "Hier kann nicht geklettert werden"

View file

@ -442,10 +442,10 @@
"climbing-possible": { "climbing-possible": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Climbing is not possible here" "then": "Climbing is possible here"
}, },
"1": { "1": {
"then": "Climbing is possible here" "then": "Climbing is not possible here"
}, },
"2": { "2": {
"then": "Climbing is not possible here" "then": "Climbing is not possible here"

View file

@ -428,10 +428,10 @@
"climbing-possible": { "climbing-possible": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Escalader nest pas possible" "then": "Escalader est possible"
}, },
"1": { "1": {
"then": "Escalader est possible" "then": "Escalader nest pas possible"
}, },
"2": { "2": {
"then": "Escalader nest pas possible" "then": "Escalader nest pas possible"

View file

@ -436,10 +436,10 @@
"climbing-possible": { "climbing-possible": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Non è possibile arrampicarsi qua" "then": "È possibile arrampicarsi qua"
}, },
"1": { "1": {
"then": "È possibile arrampicarsi qua" "then": "Non è possibile arrampicarsi qua"
}, },
"2": { "2": {
"then": "Non è possibile arrampicarsi qua" "then": "Non è possibile arrampicarsi qua"

View file

@ -364,10 +364,10 @@
"climbing-possible": { "climbing-possible": {
"mappings": { "mappings": {
"0": { "0": {
"then": "ここでは登ることができない" "then": "ここでは登ることができ"
}, },
"1": { "1": {
"then": "ここでは登ることができ" "then": "ここでは登ることができない"
}, },
"2": { "2": {
"then": "ここでは登ることができない" "then": "ここでは登ることができない"

View file

@ -119,10 +119,10 @@
"climbing-possible": { "climbing-possible": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Klatring er ikke mulig her" "then": "Klatring er mulig her"
}, },
"1": { "1": {
"then": "Klatring er mulig her" "then": "Klatring er ikke mulig her"
}, },
"2": { "2": {
"then": "Klatring er ikke mulig her" "then": "Klatring er ikke mulig her"

View file

@ -398,13 +398,13 @@
"climbing-possible": { "climbing-possible": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Klimmen is hier niet mogelijk" "then": "Klimmen is hier niet toegelaten"
}, },
"1": { "1": {
"then": "Klimmen is hier niet toegelaten" "then": "Klimmen is hier niet toegelaten"
}, },
"2": { "2": {
"then": "Klimmen is hier niet toegelaten" "then": "Klimmen is hier niet mogelijk"
} }
} }
} }

6
langs/themes/sl.json Normal file
View file

@ -0,0 +1,6 @@
{
"aed": {
"description": "Na tem zemljevidu lahko poiščete in označite bližnje defibrilatorje",
"title": "Zemljevid defibrilatorjev (AED)"
}
}

View file

@ -49,7 +49,7 @@
<div class="very-small-screen fixed inset-0 block z-above-controls" id="on-small-screen"></div> <div class="very-small-screen fixed inset-0 block z-above-controls" id="on-small-screen"></div>
<div class="hidden md:hidden fixed inset-0 block z-above-controls hidden-on-very-small-screen" id="fullscreen"></div> <div class="hidden md:hidden fixed inset-0 block z-above-controls hidden-on-very-small-screen" id="fullscreen"></div>
<div class="z-index-above-map pointer-events-none" id="topleft-tools">' <div class="z-index-above-map pointer-events-none" id="topleft-tools">
<div class="p-3 flex flex-col items-end sm:items-start sm:flex-row sm:flex-wrap w-full sm:justify-between"> <div class="p-3 flex flex-col items-end sm:items-start sm:flex-row sm:flex-wrap w-full sm:justify-between">
<div class="shadow rounded-full h-min w-full overflow-hidden sm:max-w-sm pointer-events-auto" <div class="shadow rounded-full h-min w-full overflow-hidden sm:max-w-sm pointer-events-auto"
id="searchbox"></div> id="searchbox"></div>