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,