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) {