diff --git a/index.php b/index.php
index 74cd756b..fefcff84 100644
--- a/index.php
+++ b/index.php
@@ -42,10 +42,12 @@ html_export_var(array(
+
+
diff --git a/lang/ast.json b/lang/ast.json
index 4ca40ef9..6792c3f9 100644
--- a/lang/ast.json
+++ b/lang/ast.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/ca.json b/lang/ca.json
index aea8c0ec..92fbcbad 100644
--- a/lang/ca.json
+++ b/lang/ca.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/cs.json b/lang/cs.json
index b2960b3a..6a00b20d 100644
--- a/lang/cs.json
+++ b/lang/cs.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/da.json b/lang/da.json
index 887da9a0..246c041a 100644
--- a/lang/da.json
+++ b/lang/da.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/de.json b/lang/de.json
index 5b9d4659..36a8c64e 100644
--- a/lang/de.json
+++ b/lang/de.json
@@ -3,6 +3,7 @@
"category-info-tooltip": "Info & Legende",
"closed": "geschlossen",
"default": "Standard",
+ "download:geojson": "Als GeoJSON runterladen",
"edit": "bearbeiten",
"error": {
"message": "Fehler",
@@ -10,6 +11,7 @@
},
"facilities": "Einrichtungen",
"header:attributes": "Attribute",
+ "header:export": "Export",
"header:osm_meta": "OSM Meta",
"images": "Bilder",
"loading": "Laden ...",
diff --git a/lang/el.json b/lang/el.json
index b871e0c4..92acb3fc 100644
--- a/lang/el.json
+++ b/lang/el.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/en.json b/lang/en.json
index 56ac93ae..62a959c0 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -3,6 +3,7 @@
"category-info-tooltip": "Info & Map key",
"closed": "closed",
"default": "default",
+ "download:geojson": "Download as GeoJSON",
"edit": "edit",
"error": {
"message": "Error",
@@ -10,6 +11,7 @@
},
"facilities": "Facilities",
"header:attributes": "Attributes",
+ "header:export": "Export",
"header:osm_meta": "OSM Meta",
"images": "Images",
"loading": "Loading ...",
diff --git a/lang/es.json b/lang/es.json
index d909c601..62837550 100644
--- a/lang/es.json
+++ b/lang/es.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/et.json b/lang/et.json
index c512322d..9e346130 100644
--- a/lang/et.json
+++ b/lang/et.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/fr.json b/lang/fr.json
index 7db585e8..2e9720c6 100644
--- a/lang/fr.json
+++ b/lang/fr.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "Info & Légende",
"closed": "Fermé",
"default": "Par défaut",
+ "download:geojson": "Télécharger comme GeoJSON",
+ "edit": "éditer",
"error": "Erreur",
"facilities": "Aménagements",
"header:attributes": "Attributs",
+ "header:export": "Export",
"header:osm_meta": "Métadonnées OSM",
"images": "Images",
"loading": "Chargement...",
diff --git a/lang/hu.json b/lang/hu.json
index 5a40fc19..68765c34 100644
--- a/lang/hu.json
+++ b/lang/hu.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/it.json b/lang/it.json
index f12357d1..caa1f358 100644
--- a/lang/it.json
+++ b/lang/it.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/ja.json b/lang/ja.json
index 673916b9..d1d9466f 100644
--- a/lang/ja.json
+++ b/lang/ja.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/nl.json b/lang/nl.json
index 2b24c2b1..0c555511 100644
--- a/lang/nl.json
+++ b/lang/nl.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/pl.json b/lang/pl.json
index 102167c3..2dbff807 100644
--- a/lang/pl.json
+++ b/lang/pl.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/pt-br.json b/lang/pt-br.json
index 98ba97c2..a465f89c 100644
--- a/lang/pt-br.json
+++ b/lang/pt-br.json
@@ -3,15 +3,18 @@
"category-info-tooltip": "Info & Legenda",
"closed": "fechado",
"default": "padrão",
+ "download:geojson": "",
+ "edit": "editar",
"error": {
"message": "Erro",
"!=1": "Erros"
},
"facilities": "Instalações",
+ "header:attributes": "Atributos",
+ "header:export": "",
+ "header:osm_meta": "OSM Meta",
"images": "Imagens",
- "header:attributes": "",
- "header:osm_meta": "",
- "loading": "",
+ "loading": "Carregando...",
"main:options": "Opções",
"more": "mais",
"more_categories": "Mais categorias",
@@ -30,6 +33,6 @@
"unknown": "desconhecido",
"unnamed": "sem nome",
"wikipedia:no-url-parse": "Não se pôde analisar URL da Wikipédia",
- "zoom_in_appear": "",
- "zoom_in_more": ""
+ "zoom_in_appear": "aproxime para elementos do mapa aparecer",
+ "zoom_in_more": "aproxime para mais elementos do mapa"
}
diff --git a/lang/pt.json b/lang/pt.json
index 52e7982f..6209ffe5 100644
--- a/lang/pt.json
+++ b/lang/pt.json
@@ -3,14 +3,17 @@
"category-info-tooltip": "Info & Legenda",
"closed": "fechado",
"default": "padrão",
+ "download:geojson": "",
+ "edit": "editar",
"error": {
"message": "Erro",
"!=1": "Erros"
},
"facilities": "Instalações",
- "images": "Imagens",
"header:attributes": "Atributos",
- "header:osm_meta": "",
+ "header:export": "",
+ "header:osm_meta": "OSM Meta",
+ "images": "Imagens",
"loading": "A carregar...",
"main:options": "Opções",
"more": "mais",
diff --git a/lang/ro.json b/lang/ro.json
index 379045bf..393b5e82 100644
--- a/lang/ro.json
+++ b/lang/ro.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/ru.json b/lang/ru.json
index 6975b404..1c8389ad 100644
--- a/lang/ru.json
+++ b/lang/ru.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/sr.json b/lang/sr.json
index 0b6086bc..b53e0904 100644
--- a/lang/sr.json
+++ b/lang/sr.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/template.json b/lang/template.json
index 5fed86ae..09c4e48c 100644
--- a/lang/template.json
+++ b/lang/template.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lang/uk.json b/lang/uk.json
index b84f6266..11018c7e 100644
--- a/lang/uk.json
+++ b/lang/uk.json
@@ -3,9 +3,12 @@
"category-info-tooltip": "",
"closed": "",
"default": "",
+ "download:geojson": "",
+ "edit": "",
"error": "",
"facilities": "",
"header:attributes": "",
+ "header:export": "",
"header:osm_meta": "",
"images": "",
"loading": "",
diff --git a/lib/modulekit/form b/lib/modulekit/form
index c26a06bd..464a0cbf 160000
--- a/lib/modulekit/form
+++ b/lib/modulekit/form
@@ -1 +1 @@
-Subproject commit c26a06bdac5ba37a1ef020dd62a53de7ccce61d1
+Subproject commit 464a0cbfab6acad402bc23e7f050bb01ca136b84
diff --git a/lib/modulekit/lang b/lib/modulekit/lang
index 3688eae1..eb4addba 160000
--- a/lib/modulekit/lang
+++ b/lib/modulekit/lang
@@ -1 +1 @@
-Subproject commit 3688eae14c7cd2b7aa2f54ed23ffaa5e1c7b8338
+Subproject commit eb4addba3c06cd2ffbb973fb9c8193a1af655aec
diff --git a/package.json b/package.json
index 4fdec0b1..fb08b677 100644
--- a/package.json
+++ b/package.json
@@ -20,13 +20,14 @@
"leaflet-polylineoffset": "^1.1.0",
"leaflet-textpath": "https://github.com/makinacorpus/Leaflet.TextPath#leaflet0.8-dev",
"leaflet.locatecontrol": "^0.61.0",
+ "leaflet.polylinemeasure": "https://github.com/ppete2/Leaflet.PolylineMeasure.git",
"modulekit-tabs": "^0.1.0",
"moment": "^2.18.1",
"opening_hours": "^3.5.0",
"openstreetbrowser-categories-main": "https://github.com/plepe/openstreetbrowser-categories-main",
"openstreetmap-date-parser": "^0.1.0",
"openstreetmap-tag-translations": "https://github.com/plepe/openstreetmap-tag-translations",
- "overpass-layer": "https://github.com/plepe/overpass-layer",
+ "overpass-layer": "^1.0.1",
"query-string": "^5.0.0",
"sheet-router": "^4.2.3",
"weight-sort": "^1.3.0"
diff --git a/src/CategoryOverpass.js b/src/CategoryOverpass.js
index 42fe1165..1a42ed6b 100644
--- a/src/CategoryOverpass.js
+++ b/src/CategoryOverpass.js
@@ -260,7 +260,8 @@ CategoryOverpass.prototype.open = function () {
this.layer.addTo(this.map)
if (!this.list) {
- this.list = new OverpassLayerList(this.domContent, this.layer)
+ this.list = new OverpassLayerList(this.layer)
+ this.list.addTo(this.domContent)
this.origGetMarker = this.list._getMarker
this.list._getMarker = this._getMarker.bind(this)
}
diff --git a/src/ImageLoader.js b/src/ImageLoader.js
index d4634092..0a0db229 100644
--- a/src/ImageLoader.js
+++ b/src/ImageLoader.js
@@ -109,7 +109,7 @@ ImageLoader.prototype.loadWikimediaCommons = function (src, callback) {
if (this.found.indexOf(d.id) === -1) {
this.found.push(d.id)
d.type = 'wikimedia'
- this.data[id] = d
+ this.data[d.id] = d
}
}.bind(this))
}
diff --git a/src/index.js b/src/index.js
index bee2ceb1..b64148b0 100644
--- a/src/index.js
+++ b/src/index.js
@@ -52,6 +52,12 @@ window.onload = function () {
}
function onload2 (initState) {
+ // Measurement plugin
+ if (L.control.polylineMeasure) {
+ L.control.polylineMeasure({
+ }).addTo(map);
+ }
+
// Add Geo Search
var provider = new LeafletGeoSearch.OpenStreetMapProvider()
var searchControl = new LeafletGeoSearch.GeoSearchControl({
@@ -231,7 +237,7 @@ function show (id, options, callback) {
}
window.showDetails = function (data, category) {
- var div, h, dt, dd
+ var div, h, dt, dd, li, a
var k
var dom = document.getElementById('contentDetails')
@@ -268,6 +274,22 @@ window.showDetails = function (data, category) {
}
)
+ h = document.createElement('h3')
+ h.innerHTML = lang('header:export')
+ dom.appendChild(h)
+
+ div = document.createElement('ul')
+ dom.appendChild(div)
+
+ li = document.createElement('li')
+ div.appendChild(li)
+
+ a = document.createElement('a')
+ a.download = data.id + '.json'
+ a.href = 'data:application/json;charset=UTF-8,' + encodeURIComponent(JSON.stringify(data.object.GeoJSON(), null, ' '))
+ a.innerHTML = lang('download:geojson')
+ li.appendChild(a)
+
h = document.createElement('h3')
h.innerHTML = lang('header:attributes')
dom.appendChild(h)
diff --git a/src/language.php b/src/language.php
index 35852bf7..61995493 100644
--- a/src/language.php
+++ b/src/language.php
@@ -4,3 +4,31 @@ register_hook('options_save', function ($options) {
$_SESSION['ui_lang'] = $options['ui_lang'];
}
});
+
+register_hook('lang_report_non_translated', function ($strings, $ui_lang) {
+ if (!is_writeable('data')) {
+ return;
+ }
+
+ $db = new PDO('sqlite:data/lang.db');
+
+ $res = $db->query('select 1 from lang_non_translated');
+ if (!$res) {
+ $query = <<query($query);
+ }
+
+ foreach ($strings as $k => $count) {
+ if ($count > 0) {
+ $query = 'insert or replace into lang_non_translated values (' . $db->quote($k) . ', ' . $db->quote($ui_lang) . ', coalesce((select count + ' . $db->quote($count) . ' from lang_non_translated where str=' . $db->quote($k) . ' and lang=' . $db->quote($ui_lang) . '), ' . $db->quote($count) . '))';
+ $db->query($query);
+ }
+ }
+});
diff --git a/src/tagTranslations.js b/src/tagTranslations.js
index 39f08578..1840c3fd 100644
--- a/src/tagTranslations.js
+++ b/src/tagTranslations.js
@@ -20,6 +20,13 @@ OverpassLayer.twig.extendFunction('localizedTag', function (tags, id) {
OverpassLayer.twig.extendFunction('trans', function () {
return lang.apply(this, arguments)
})
+OverpassLayer.twig.extendFunction('isTranslated', function (str) {
+ return tagTranslationsIsTranslated(str)
+})
+
+function tagTranslationsIsTranslated (str) {
+ return !(str in lang_non_translated) && (str in lang_str)
+}
function tagTranslationsTrans () {
var tag = arguments[0]
@@ -59,6 +66,7 @@ function tagTranslationsTransList (key, values) {
module.exports = {
trans: tagTranslationsTrans,
+ isTranslated: tagTranslationsIsTranslated,
setTagLanguage: function (lang) {
tagLang = lang
}
diff --git a/src/wikipedia.js b/src/wikipedia.js
index 7ed479b5..0053b5c7 100644
--- a/src/wikipedia.js
+++ b/src/wikipedia.js
@@ -168,7 +168,7 @@ register_hook('show-details', function (data, category, dom, callback) {
found++
foundPrefixes.push('')
- wikidata.load(ob.tags[k], function (err, result) {
+ wikidata.load(ob.tags.wikidata, function (err, result) {
var x
if (err) {