diff --git a/categories/gastro.json b/categories/gastro.json
index 9536c991..a5f1c291 100644
--- a/categories/gastro.json
+++ b/categories/gastro.json
@@ -5,7 +5,7 @@
"minZoom": 16,
"feature": {
"markerSign": "{% if tags.amenity=='bar' %}🍸{% elseif tags.amenity=='biergarten'%}🍻{% elseif tags.amenity=='cafe' %}☕{% elseif tags.amenity=='fast_food' %}🍔{% elseif tags.amenity=='ice_cream' %}🍨{% elseif tags.amenity=='pub' %}🍺{% else %}🍴{% endif %}",
- "body": "{{ tagTrans('amenity', tags.amenity) }}
{{ tagTrans('cuisine') }}: {{ tagTrans('cuisine', tags.cuisine)|default('unknown') }}",
+ "body": "{{ tagTrans('amenity', tags.amenity) }}
{{ tagTrans('cuisine') }}: {{ tagTransList('cuisine', tags.cuisine)|default('unknown') }}",
"description": "{{ tagTrans('amenity', tags.amenity) }}"
}
}
diff --git a/categories/shop.json b/categories/shop.json
index 3cb03de0..e714aa95 100644
--- a/categories/shop.json
+++ b/categories/shop.json
@@ -7,9 +7,9 @@
},
"minZoom": 14,
"feature": {
- "pre": "{% set current = const.default %}{% for v in const.shops %}{% if tags.shop in v.types %}{% set current = v %}{% endif %}{% endfor %}",
- "body": "{{ tagTrans('shop', tags.shop) }}",
- "description": "{{ tagTrans('shop', tags.shop) }}",
+ "pre": "{% set shop0 = tags.shop|split(';')[0] %}{% set current = const.default %}{% for v in const.shops %}{% if shop0 in v.types %}{% set current = v %}{% endif %}{% endfor %}",
+ "body": "{{ tagTransList('shop', tags.shop) }}",
+ "description": "{{ tagTransList('shop', tags.shop) }}",
"markerSign": "{% set c = current.sign %}{% if c|slice(0, 3) == 'fa-' %}{% else %}{{ c|raw }}{% endif %}",
"__": "need better icons for: bakery, butcher, cheese, ice_cream, ",
"__": "no icons for: brewing_supplies, charity, second_hand, variety_store"
diff --git a/src/tagTranslations.js b/src/tagTranslations.js
index 2a8d5230..1aea7087 100644
--- a/src/tagTranslations.js
+++ b/src/tagTranslations.js
@@ -5,6 +5,9 @@ var tagLang = null
OverpassLayer.twig.extendFunction('tagTrans', function () {
return tagTranslationsTrans.apply(this, arguments)
})
+OverpassLayer.twig.extendFunction('tagTransList', function () {
+ return tagTranslationsTransList.apply(this, arguments)
+})
OverpassLayer.twig.extendFunction('localizedTag', function (tags, id) {
if (tagLang && id + ':' + tagLang in tags) {
return tags[id + ':' + tagLang]
@@ -88,6 +91,24 @@ function tagTranslationsTrans () {
}
}
+function tagTranslationsTransList (key, values) {
+ if (typeof values === 'undefined') {
+ return null
+ }
+
+ values = values.split(';')
+
+ values = values.map(function (key, value) {
+ return tagTranslationsTrans(key, value.trim())
+ }.bind(this, key))
+
+ if (values.length > 1)
+ return values.slice(0, -1).join(', ') + ' and ' + values.slice(-1)[0]
+
+
+ return values[0]
+}
+
module.exports = {
load: tagTranslationsLoad,
trans: tagTranslationsTrans,