diff --git a/children.json b/children.json
index 69fc913..660515f 100644
--- a/children.json
+++ b/children.json
@@ -81,5 +81,41 @@
         "    <td>{{ tagTrans('amenity', 'toilets diaper=yes') }}</td>",
         "  </tr>",
         "</table>"
-    ]
+    ],
+    "filter": {
+        "type": {
+            "name": "{{ trans('filter:type') }}",
+            "type": "select",
+            "values": {
+                "playground": {
+                    "name": "{{ tagTrans('leisure', 'playground') }}",
+                    "query": "nwr[leisure=playground]"
+                },
+                "indoor_play": {
+                    "name": "{{ tagTrans('leisure', 'indoor_play') }}",
+                    "query": "nwr[leisure=indoor_play]"
+                },
+                "summer_camp": {
+                    "name": "{{ tagTrans('leisure', 'summer_camp') }}",
+                    "query": "nwr[leisure=summer_camp]"
+                },
+                "kids_area": {
+                    "name": "{{ keyTrans('kids_area') }}",
+                    "query": "nwr[kids_area]"
+                },
+                "shop_baby_goods": {
+                    "name": "{{ tagTrans('shop', 'baby_goods') }}",
+                    "query": "nwr[shop=baby_goods]"
+                },
+                "shop_toys": {
+                    "name": "{{ tagTrans('shop', 'toys') }}",
+                    "query": "nwr[shop=toys]"
+                },
+                "toilets": {
+                    "name": "{{ tagTrans('amenities', 'toilets diaper=yes') }}",
+                    "query": "nwr[amenity=toilets][diaper]"
+                }
+            }
+        }
+    }
 }
diff --git a/communication.json b/communication.json
index 83a90d3..3053b3e 100644
--- a/communication.json
+++ b/communication.json
@@ -130,5 +130,13 @@
             "sign": "<img src='maki:telephone'>",
             "zoom": 16
         }
+    },
+    "filter": {
+        "type": {
+            "name": "{{ trans('filter:type') }}",
+            "show_default": "true",
+            "type": "select",
+            "values": "{% for k, v in const %}<option value=\"{{ k }}\" query=\"nwr[{{ k }}]\" minzoom=\"{{ v.zoom }}\">{{ tagTrans(k) }}</option>{% endfor %}"
+        }
     }
 }
diff --git a/craft.json b/craft.json
index f9c49d4..af16569 100644
--- a/craft.json
+++ b/craft.json
@@ -73,5 +73,13 @@
             "window_construction": "",
             "winery": "🍷"
         }
+    },
+    "filter": {
+        "craft": {
+            "name": "{{ trans('filter:type') }}",
+            "type": "select",
+            "show_default": "true",
+            "values": "{% set list = [] %}{% for t, v in const.crafts %}<option value=\"{{ t }}\">{% set list = list|merge([ t ]) %}{{ tagTrans('craft', t) }}</option>{% endfor %}<option value='other' query='nwr[craft][craft!~\"^({{ list|join('|') }})$\"]'>{{ trans('other') }}</option>"
+        }
     }
 }
diff --git a/culture.json b/culture.json
index 39eea20..226b774 100644
--- a/culture.json
+++ b/culture.json
@@ -124,7 +124,8 @@
     ],
     "filter": {
         "type": {
-            "name": "Type",
+            "name": "{{ trans('filter:type') }}",
+            "show_default": "true",
             "query": "nwr[{{ value }}]",
             "type": "select",
             "values": "{% for k, v in const %}<option value=\"{{ k }}\">{{ trans('tag:' ~ k) }}</option>{% endfor %}<option value=\"other\" query=\"nwr[amenity=fountain]\">{{ trans('other') }}</option>",
diff --git a/education.json b/education.json
index 5b4772d..ba2fc70 100644
--- a/education.json
+++ b/education.json
@@ -129,5 +129,13 @@
             "sign": "<i class='fas fa-vials'></i>",
             "zoom": 14
         }
+    },
+    "filter": {
+        "type": {
+            "name": "{{ trans('filter:type') }}",
+            "show_default": "true",
+            "type": "select",
+            "values": "{% for k, v in const %}<option value=\"{{ k }}\" query=\"nwr[{{ k }}]\" minzoom=\"{{ v.zoom }}\">{{ tagTrans(k) }}</option>{% endfor %}"
+        }
     }
 }
diff --git a/emergency.json b/emergency.json
index c739352..361337c 100644
--- a/emergency.json
+++ b/emergency.json
@@ -99,8 +99,9 @@
     },
     "filter": {
         "type": {
-            "name": "{{ keyTrans('amenity') }}",
+            "name": "{{ trans('filter:type') }}",
             "type": "select",
+            "show_default": "true",
             "values": {
                 "fire_station": {
                     "name": "{{ tagTrans('amenity', 'fire_station') }}",
diff --git a/financial.json b/financial.json
index 82b3bfb..9dce980 100644
--- a/financial.json
+++ b/financial.json
@@ -101,5 +101,13 @@
             "sign": "<i class=\"fas fa-piggy-bank\"></i>",
             "zoom": 15
         }
+    },
+    "filter": {
+        "type": {
+            "name": "{{ trans('filter:type') }}",
+            "show_default": "true",
+            "type": "select",
+            "values": "{% for k, v in const %}<option value=\"{{ k }}\" query=\"nwr[{{ k }}]\" minzoom=\"{{ v.zoom }}\">{{ tagTrans(k) }}</option>{% endfor %}"
+        }
     }
 }
diff --git a/gastro.json b/gastro.json
index 83d645b..d26740a 100644
--- a/gastro.json
+++ b/gastro.json
@@ -49,8 +49,9 @@
     "info": "{{ repoTrans('Objects with diet information') }}",
     "filter": {
         "amenity": {
-            "name": "{{ keyTrans('amenity') }}",
+            "name": "{{ trans('filter:type') }}",
             "type": "select",
+            "show_default": "true",
             "values": [
               "bar",
               "biergarten",
diff --git a/health.json b/health.json
index a540782..8c7c3dd 100644
--- a/health.json
+++ b/health.json
@@ -88,5 +88,13 @@
         "amenity=pharmacy": "<img src='maki:pharmacy'>",
         "amenity=social_facility": "",
         "amenity=veterinary": "<img src='maki:veterinary'>"
+    },
+    "filter": {
+        "type": {
+            "name": "{{ trans('filter:type') }}",
+            "show_default": "true",
+            "type": "select",
+            "values": "{% for k, v in const %}<option value=\"{{ k }}\" query=\"nwr[{{ k }}]\" minzoom=\"{{ v.zoom }}\">{{ tagTrans(k) }}</option>{% endfor %}"
+        }
     }
 }
diff --git a/historic.json b/historic.json
index 067b740..adc3b1b 100644
--- a/historic.json
+++ b/historic.json
@@ -117,9 +117,10 @@
     "filter": {
         "type": {
             "key": "historic",
-            "name": "Type",
+            "show_default": "true",
+            "name": "{{ trans('filter:type') }}",
             "type": "select",
-            "values": "const",
+            "values": "{% set list = [] %}{% for t, v in const %}<option value=\"{{ t }}\">{% set list = list|merge([ t ]) %}{{ tagTrans('historic', t) }}</option>{% endfor %}<option value='other' query='nwr[historic][historic!~\"^({{ list|join('|') }})$\"]'>{{ trans('other') }}</option>",
             "valueName": "{{ tagTrans('historic', value) }}"
         },
         "conflict": {
diff --git a/law.json b/law.json
index f670988..a750264 100644
--- a/law.json
+++ b/law.json
@@ -57,5 +57,13 @@
             "sign": "<i class=\"fas fa-file-signature\"></i>",
             "zoom": 14
         }
+    },
+    "filter": {
+        "type": {
+            "name": "{{ trans('filter:type') }}",
+            "show_default": "true",
+            "type": "select",
+            "values": "{% for k, v in const %}<option value=\"{{ k }}\" query=\"nwr[{{ k }}]\" minzoom=\"{{ v.zoom }}\">{{ tagTrans(k) }}</option>{% endfor %}"
+        }
     }
 }
diff --git a/memorial.json b/memorial.json
index c2c4908..bd5b942 100644
--- a/memorial.json
+++ b/memorial.json
@@ -109,7 +109,7 @@
     },
     "filter": {
         "type": {
-            "name": "Type",
+            "name": "{{ trans('filter:type') }}",
             "type": "select",
             "values": {
                 "monument": {
diff --git a/office.json b/office.json
index b92ba34..ddefd6e 100644
--- a/office.json
+++ b/office.json
@@ -43,5 +43,13 @@
         "therapist": "<i class='fas fa-couch'></i>",
         "travel_agent": "<i class='fas fa-plane-departure'></i>",
         "publisher": "<i class='fas fa-book'></i>"
+    },
+    "filter": {
+        "type": {
+            "name": "{{ trans('filter:type') }}",
+            "show_default": "true",
+            "type": "select",
+            "values": "{% for k, v in const %}<option value=\"{{ k }}\" query=\"nwr[{{ k }}]\" minzoom=\"{{ v.zoom }}\">{{ tagTrans(k) }}</option>{% endfor %}"
+        }
     }
 }
diff --git a/organisations.json b/organisations.json
index 1d73ea0..f8ae358 100644
--- a/organisations.json
+++ b/organisations.json
@@ -78,5 +78,13 @@
             "sign": "<i class='fas fa-hands-helping'></i>",
             "zoom": 13
         }
+    },
+    "filter": {
+        "type": {
+            "name": "{{ trans('filter:type') }}",
+            "show_default": "true",
+            "type": "select",
+            "values": "{% for k, v in const %}<option value=\"{{ k }}\" query=\"nwr[{{ k }}]\" minzoom=\"{{ v.zoom }}\">{{ tagTrans(k) }}</option>{% endfor %}"
+        }
     }
 }
diff --git a/places.json b/places.json
index 2ca3d01..29d554b 100644
--- a/places.json
+++ b/places.json
@@ -34,5 +34,14 @@
         "description": "{{ tagTrans('place', tags.place) }}",
         "body": "{% if tags.population %}{{ keyTrans('population') }}: {{ tags.population }}{% endif %}",
         "priority": "{% set priorities = { 'continent': 0, 'country': 1, 'state': 2, 'region': 3, 'city': 4, 'town': 5, 'village': 6, 'suburb': 7, 'hamlet': 8, 'quarter': 9, neighbourhood: 10, 'isolated_dwelling': 11, 'farm': 12 } %}{{ priorities[tags.place] }}"
+    },
+    "filter": {
+        "name": {
+            "key": [ "name", "name:*" ],
+            "name": "{{ keyTrans('name') }}",
+            "type": "text",
+            "change_on": "keyup",
+            "op": "strsearch"
+        }
     }
 }
diff --git a/public.json b/public.json
index 448fb31..3c95f11 100644
--- a/public.json
+++ b/public.json
@@ -89,5 +89,13 @@
         "amenity=townhall": "<img data-src='maki:town-hall'>",
         "office=administration": "<img data-src='maki:town-hall'>",
         "office=government": "<img data-src='maki:town-hall'>"
+    },
+    "filter": {
+        "type": {
+            "name": "{{ trans('filter:type') }}",
+            "show_default": "true",
+            "type": "select",
+            "values": "{% for k, v in const %}<option value=\"{{ k }}\" query=\"nwr[{{ k }}]\" minzoom=\"{{ v.zoom }}\">{{ tagTrans(k) }}</option>{% endfor %}"
+        }
     }
 }
diff --git a/religion.json b/religion.json
index b3e2c5a..7e3c5aa 100644
--- a/religion.json
+++ b/religion.json
@@ -83,14 +83,88 @@
             "  {{ keyTrans('denomination') }}: {{ tagTransList('denomination', tags.denomination) }}<br/>",
             "{% endif %}"
         ],
-        "markerSign": [
-            "{% if tags.religion == 'christian' %}✝",
-            "{% elseif tags.religion == 'muslim' %}â˜Ē",
-            "{% elseif tags.religion == 'buddhist' %}☸",
-            "{% elseif tags.religion == 'hindu' %}āĨ",
-            "{% elseif tags.religion == 'jewish' %}✡",
-            "{% elseif tags.religion == 'pagan' %}☆",
-            "{% endif %}"
-        ]
+        "markerSign": "{{ const.religion[tags.religion] }}"
+    },
+    "const": {
+        "religion": {
+            "christian": "✝",
+            "muslim": "â˜Ē",
+            "buddhist": "☸",
+            "shinto": "",
+            "hindu": "āĨ",
+            "jewish": "✡",
+            "taoist": "",
+            "sikh": "",
+            "none": "",
+            "multifaith": "",
+            "unitarian_universialist": "",
+            "spiritualist": "",
+            "jain": "",
+            "voodoo": "",
+            "confucian": "",
+            "bahai": "",
+            "caodaism": "",
+            "tenrikyo": "",
+            "vietnamese_folk": "",
+            "pagan": "☆",
+            "scientologist": "",
+            "zoroastrian": "",
+            "pentecostal": "",
+            "shamanic": ""
+        }
+    },
+    "filter": {
+        "type": {
+            "name": "{{ trans('filter:type') }}",
+            "show_default": "true",
+            "query": "nwr[{{ value }}]",
+            "type": "select",
+            "values": {
+              "place_of_worship": {
+                "name": "{{ tagTrans('amenity', 'place_of_worship') }}",
+                "query": "nwr[amenity=place_of_worship]"
+              },
+              "grave_yard": {
+                "name": "{{ tagTrans('amenity', 'grave_yard') }}",
+                "query": "nwr[amenity=grave_yard]"
+              },
+              "crematorium": {
+                "name": "{{ tagTrans('amenity', 'crematorium') }}",
+                "query": "nwr[amenity=crematorium]"
+              },
+              "cemetery": {
+                "name": "{{ tagTrans('landuse', 'cemetery') }}",
+                "query": "nwr[landuse=cemetery]"
+              },
+              "wayside_cross": {
+                "name": "{{ tagTrans('historic', 'wayside_cross') }}",
+                "query": "nwr[historic=wayside_cross]"
+              },
+              "wayside_shrine": {
+                "name": "{{ tagTrans('historic', 'wayside_shrine') }}",
+                "query": "nwr[historic=wayside_shrine]"
+              },
+              "wayside_chapel": {
+                "name": "{{ tagTrans('historic', 'wayside_chapel') }}",
+                "query": "nwr[historic=wayside_chapel]"
+              },
+              "parish": {
+                "name": "{{ tagTrans('office', 'parish') }}",
+                "query": "nwr[office=parish]"
+              },
+              "office": {
+                "name": "{{ tagTrans('office', 'religion') }}",
+                "query": "nwr[office=religion]"
+              }
+            }
+        },
+        "religion": {
+            "name": "{{ keyTrans('religion') }}",
+            "show_default": "true",
+            "type": "select",
+            "valueName": "{{ tagTrans('religion', value) }}",
+            "values": "{% set list = [] %}{% for t, v in const.religion %}<option value=\"{{ t }}\">{% set list = list|merge([ t ]) %}{{ tagTrans('religion', t) }}</option>{% endfor %}<option value='other' query='nwr[religion][religion!~\"^({{ list|join('|') }})$\"]'>{{ trans('other') }}</option>",
+            "op": "has"
+        }
     }
 }
diff --git a/shop.json b/shop.json
index ce8c8cb..0c94727 100644
--- a/shop.json
+++ b/shop.json
@@ -150,5 +150,14 @@
                 "sign": "&#8986;"
             }
         ]
+    },
+    "filter": {
+        "shop": {
+            "name": "{{ trans('filter:type') }}",
+            "type": "select",
+            "show_default": "true",
+            "values": "{% set list = [] %}{% for k, v in const.shops %}{% for t in v.types %}<option value=\"{{ t }}\">{% set list = list|merge([ t ]) %}{{ tagTrans('shop', t) }}</option>{% endfor %}{% endfor %}<option value='other' query='nwr[shop][shop!~\"^(|.*;)({{ list|join('|') }})(|;.*)$\"]'>{{ trans('other') }}</option>",
+            "op": "has"
+        }
     }
 }
diff --git a/sport.json b/sport.json
index 2caadbc..3b7931b 100644
--- a/sport.json
+++ b/sport.json
@@ -68,5 +68,13 @@
         "tennis": "🎾",
         "volleyball": "🏐",
         "weightlifting": "🏋"
+    },
+    "filter": {
+        "sport": {
+            "name": "{{ keyTrans('sport') }}",
+            "type": "select",
+            "show_default": "true",
+            "values": "{% set list = [] %}{% for t, v in const %}<option value=\"{{ t }}\">{% set list = list|merge([ t ]) %}{{ tagTrans('sport', t) }}</option>{% endfor %}<option value='other' query='nwr[sport][sport!~\"^({{ list|join('|') }})$\"]'>{{ trans('other') }}</option>"
+        }
     }
 }
diff --git a/swimming_bathing.json b/swimming_bathing.json
index def3505..98e8aee 100644
--- a/swimming_bathing.json
+++ b/swimming_bathing.json
@@ -139,5 +139,13 @@
             "zoom": 16,
             "sign": "đŸšŋ "
         }
+    },
+    "filter": {
+        "type": {
+            "name": "{{ trans('filter:type') }}",
+            "type": "select",
+            "show_default": "true",
+            "values": "{% for k, v in const %}<option value=\"{{ k }}\" query=\"nwr[{{ k }}]\" minzoom=\"{{ v.zoom }}\">{{ tagTrans(k) }}</option>{% endfor %}"
+        }
     }
 }
diff --git a/tourism_attractions.json b/tourism_attractions.json
index d69b2b4..8f22154 100644
--- a/tourism_attractions.json
+++ b/tourism_attractions.json
@@ -56,5 +56,16 @@
         "theme_park": "<img data-src='maki:amusement-park'>",
         "viewpoint": "<i class='fas fa-eye' aria-hidden='true'></i>",
         "zoo": "đŸĻ"
+    },
+    "filter": {
+        "type": {
+            "name": "{{ trans('filter:type') }}",
+            "show_default": "true",
+            "query": "nwr[{{ value }}]",
+            "type": "select",
+            "key": "tourism",
+            "values": "{% set list = [] %}{% for t, v in const %}<option value=\"{{ t }}\">{% set list = list|merge([ t ]) %}{{ tagTrans('tourism', t) }}</option>{% endfor %}",
+            "op": "has"
+        }
     }
 }
diff --git a/tourism_services.json b/tourism_services.json
index 4901f18..57b77d2 100644
--- a/tourism_services.json
+++ b/tourism_services.json
@@ -141,5 +141,13 @@
             "sign": "â„šī¸",
             "zoom": 16
         }
+    },
+    "filter": {
+        "type": {
+            "name": "{{ trans('filter:type') }}",
+            "show_default": "true",
+            "type": "select",
+            "values": "{% for k, v in const %}<option value=\"{{ k }}\" query=\"nwr[{{ k }}]\" minzoom=\"{{ v.zoom }}\">{{ tagTrans(k) }}</option>{% endfor %}"
+        }
     }
 }