Flexible Map - Version 1.8.0

Version Description

[2014-08-31] = * fixed: Czech translation (thanks, caslavak!) * fixed: Norwegian translations (thanks, neonnero!) * changed: localisation uses standard .mo files now; if you'd like to help translate, please sign up for an account and dig in.

Download this release

Release Info

Developer webaware
Plugin Icon 128x128 Flexible Map
Version 1.8.0
Comparing to
See all releases

Code changes from version 1.7.3.1 to 1.8.0

Files changed (114) hide show
  1. class.FlxMapAdmin.php +0 -34
  2. styles.css → css/styles.css +0 -0
  3. flexible-map.min.js +0 -5
  4. flexible-map.php +13 -14
  5. i18n/af.js +0 -13
  6. i18n/ar.js +0 -13
  7. i18n/az.js +0 -13
  8. i18n/bg.js +0 -13
  9. i18n/bs.js +0 -13
  10. i18n/ca.js +0 -13
  11. i18n/cs.js +0 -13
  12. i18n/da.js +0 -13
  13. i18n/de.js +0 -13
  14. i18n/el.js +0 -13
  15. i18n/eo.js +0 -13
  16. i18n/es.js +0 -13
  17. i18n/et.js +0 -13
  18. i18n/fa.js +0 -13
  19. i18n/fi.js +0 -13
  20. i18n/fr.js +0 -16
  21. i18n/gl.js +0 -13
  22. i18n/he.js +0 -13
  23. i18n/hi.js +0 -13
  24. i18n/hr.js +0 -13
  25. i18n/hu.js +0 -13
  26. i18n/hy.js +0 -13
  27. i18n/id.js +0 -13
  28. i18n/is.js +0 -13
  29. i18n/it.js +0 -13
  30. i18n/ja.js +0 -13
  31. i18n/ko.js +0 -13
  32. i18n/lt.js +0 -13
  33. i18n/lv.js +0 -13
  34. i18n/mk.js +0 -13
  35. i18n/ms.js +0 -13
  36. i18n/nb.js +0 -13
  37. i18n/nl.js +0 -13
  38. i18n/pl.js +0 -13
  39. i18n/pt.js +0 -13
  40. i18n/ro.js +0 -13
  41. i18n/ru.js +0 -13
  42. i18n/sk.js +0 -13
  43. i18n/sl.js +0 -13
  44. i18n/sq.js +0 -13
  45. i18n/sr.js +0 -13
  46. i18n/sv.js +0 -13
  47. i18n/ta.js +0 -13
  48. i18n/th.js +0 -13
  49. i18n/tr.js +0 -13
  50. i18n/uk.js +0 -13
  51. i18n/vi.js +0 -13
  52. i18n/zh.js +0 -13
  53. includes/class.FlxMapAdmin.php +35 -0
  54. class.FlxMapPlugin.php → includes/class.FlxMapPlugin.php +75 -28
  55. includes/declare-strings.php +15 -0
  56. .jshintrc → js/.jshintrc +1 -0
  57. flexible-map.js → js/flexible-map.js +12 -1
  58. js/flexible-map.min.js +5 -0
  59. languages/flexible-map-af.mo +0 -0
  60. languages/flexible-map-ar.mo +0 -0
  61. languages/flexible-map-az.mo +0 -0
  62. languages/flexible-map-bel.mo +0 -0
  63. languages/flexible-map-bg_BG.mo +0 -0
  64. languages/flexible-map-ca.mo +0 -0
  65. languages/flexible-map-cs_CZ.mo +0 -0
  66. languages/flexible-map-da_DK.mo +0 -0
  67. languages/flexible-map-de_DE.mo +0 -0
  68. languages/flexible-map-el.mo +0 -0
  69. languages/flexible-map-eo.mo +0 -0
  70. languages/flexible-map-es_ES.mo +0 -0
  71. languages/flexible-map-et.mo +0 -0
  72. languages/flexible-map-fa_IR.mo +0 -0
  73. languages/flexible-map-fi.mo +0 -0
  74. languages/flexible-map-fr_FR.mo +0 -0
  75. languages/flexible-map-gl_ES.mo +0 -0
  76. languages/flexible-map-he_IL.mo +0 -0
  77. languages/flexible-map-hi_IN.mo +0 -0
  78. languages/flexible-map-hr.mo +0 -0
  79. languages/flexible-map-hu_HU.mo +0 -0
  80. languages/flexible-map-hy.mo +0 -0
  81. languages/flexible-map-id_ID.mo +0 -0
  82. languages/flexible-map-is_IS.mo +0 -0
  83. languages/flexible-map-it_IT.mo +0 -0
  84. languages/flexible-map-ja.mo +0 -0
  85. languages/flexible-map-ka_GE.mo +0 -0
  86. languages/flexible-map-ko_KR.mo +0 -0
  87. languages/flexible-map-lt_LT.mo +0 -0
  88. languages/flexible-map-lv.mo +0 -0
  89. languages/flexible-map-mk_MK.mo +0 -0
  90. languages/flexible-map-ms_MY.mo +0 -0
  91. languages/flexible-map-mt_MT.mo +0 -0
  92. languages/flexible-map-nb_NO.mo +0 -0
  93. languages/flexible-map-nl_NL.mo +0 -0
  94. languages/flexible-map-nn_NO.mo +0 -0
  95. languages/flexible-map-pl_PL.mo +0 -0
  96. languages/flexible-map-pt_BR.mo +0 -0
  97. languages/flexible-map-pt_PT.mo +0 -0
  98. languages/flexible-map-ro_RO.mo +0 -0
  99. languages/flexible-map-ru_RU.mo +0 -0
  100. languages/flexible-map-sk_SK.mo +0 -0
  101. languages/flexible-map-sl_SL.mo +0 -0
  102. languages/flexible-map-sq.mo +0 -0
  103. languages/flexible-map-sr_RS.mo +0 -0
  104. languages/flexible-map-sv_SE.mo +0 -0
  105. languages/flexible-map-ta_IN.mo +0 -0
  106. languages/flexible-map-th.mo +0 -0
  107. languages/flexible-map-tr_TR.mo +0 -0
  108. languages/flexible-map-uk.mo +0 -0
  109. languages/flexible-map-ur.mo +0 -0
  110. languages/flexible-map-vi.mo +0 -0
  111. languages/flexible-map-zh_CN.mo +0 -0
  112. languages/flexible-map.pot +59 -0
  113. readme.md +12 -0
  114. readme.txt +31 -29
class.FlxMapAdmin.php DELETED
@@ -1,34 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * class for admin screens
5
- */
6
- class FlxMapAdmin {
7
-
8
- protected $plugin;
9
-
10
- /**
11
- * @param FlxMapPlugin $plugin
12
- */
13
- public function __construct($plugin) {
14
- $this->plugin = $plugin;
15
-
16
- // add action hook for adding plugin meta links
17
- add_filter('plugin_row_meta', array($this, 'addPluginDetailsLinks'), 10, 2);
18
- }
19
-
20
- /**
21
- * action hook for adding plugin details links
22
- */
23
- public function addPluginDetailsLinks($links, $file) {
24
- // add settings link
25
- if ($file == FLXMAP_PLUGIN_NAME) {
26
- $links[] = '<a href="http://wordpress.org/support/plugin/wp-flexible-map">' . __('Get help') . '</a>';
27
- $links[] = '<a href="http://wordpress.org/plugins/wp-flexible-map/">' . __('Rating') . '</a>';
28
- $links[] = '<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=6ZCY9PST8E4GQ">' . __('Donate') . '</a>';
29
- }
30
-
31
- return $links;
32
- }
33
-
34
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
styles.css → css/styles.css RENAMED
File without changes
flexible-map.min.js DELETED
@@ -1,5 +0,0 @@
1
- /*!
2
- JavaScript for the WordPress plugin wp-flexible-map
3
- copyright (c) 2011-2014 WebAware Pty Ltd, released under LGPL v2.1
4
- */
5
- ;function FlexibleMap(){var e,c,a,d,b=false;this.getMap=function(){return e};this.getCenter=function(){return c};this.setCenter=function(f){c=f;e.setCenter(c)};this.setMarkerLocation=function(f){a=f};this.getMarkerLocation=function(){return a};this.getKmlLayer=function(){return d};this.redrawOnce=function(){if(!b){b=true;this.redraw()}};this.showMap=function(f,h){c=new google.maps.LatLng(h[0],h[1]);var i,g={small:google.maps.ZoomControlStyle.SMALL,large:google.maps.ZoomControlStyle.LARGE,"default":google.maps.ZoomControlStyle.DEFAULT};if(this.zoomControlStyle in g){i=g[this.zoomControlStyle]}else{i=g.small}e=new google.maps.Map(document.getElementById(f),{mapTypeId:this.mapTypeId,mapTypeControl:this.mapTypeControl,scaleControl:this.scaleControl,panControl:this.panControl,streetViewControl:this.streetViewControl,zoomControl:this.zoomControl,zoomControlOptions:{style:i},draggable:this.draggable,disableDoubleClickZoom:!this.dblclickZoom,scrollwheel:this.scrollwheel,center:c,zoom:this.zoom});return e};this.loadKmlMap=function(f){d=new google.maps.KmlLayer({map:e,url:f});google.maps.event.addListenerOnce(d,"defaultviewport_changed",function(){c=d.getDefaultViewport().getCenter()});return d};this.mapTypeId=google.maps.MapTypeId.ROADMAP;this.mapTypeControl=true;this.scaleControl=false;this.panControl=false;this.zoomControl=true;this.zoomControlStyle="small";this.streetViewControl=false;this.scrollwheel=false;this.draggable=true;this.dblclickZoom=true;this.zoom=16;this.markerTitle="";this.markerDescription="";this.markerHTML="";this.markerLink="";this.markerIcon="";this.markerShowInfo=true;this.markerDirections=false;this.markerDirectionsShow=false;this.markerDirectionsDefault="";this.markerAddress="";this.targetFix=true;this.dirService=false;this.dirRenderer=false;this.dirDraggable=false;this.dirSuppressMarkers=false;this.dirShowSteps=true;this.dirShowSearch=true;this.region="";this.locale="en";this.localeActive="en";this.kmlcache="none"}FlexibleMap.prototype=(function(){var d,b;if(document.addEventListener){d=function(f,e,g){f.addEventListener(e,g,false)};b=function(e){e.stopPropagation();e.preventDefault()}}else{if(document.attachEvent){d=function(e,f,g){e.attachEvent("on"+f,function(){g.call(e,window.event)})};b=function(e){e.cancelBubble=true;e.returnValue=0}}}var a=(function(){function e(g){var h=g.charCodeAt(0),f=h.toString(16);if(h<256){return"\\x"+("00"+f).slice(-2)}return"\\u"+("0000"+f).slice(-4)}return function(f){return f.replace(/[\\\/"'&<>\x00-\x1f\x7f-\xa0\u2000-\u200f\u2028-\u202f]/g,e)}})();function c(f,i){var e,g,j,h=/^(\d+)\s*(minute|hour|day)s?$/.exec(i);if(h){e=(new Date()).getTime();j=+h[1];switch(h[2]){case"minute":if(j<5){j=5}g=e/(60000*j);break;case"hour":g=e/(3600000*j);break;case"day":g=e/(86400000*j);break;default:g=false;break}if(g){g=Math.floor(g);f+=(f.indexOf("?")>-1?"&":"?")+"nocache="+g}}return f}return{constructor:FlexibleMap,i18n:{en:{"Click for details":"Click for details",Directions:"Directions",From:"From","Get directions":"Get directions"}},setlocale:function(e){this.locale=e;if(e in this.i18n){this.localeActive=e}else{e=e.substr(0,2);if(e in this.i18n){this.localeActive=e}else{this.localeActive="en"}}return this.localeActive},gettext:function(f){var e=this.i18n[this.localeActive];if(f in e){return e[f]}return f},showKML:function(e,h,i){if(typeof i!="undefined"){this.zoom=i}var g=this,f=document.getElementById(e),l=f.getAttribute("data-flxmap"),k=this.showMap(e,[0,0]),j=this.loadKmlMap(c(h,this.kmlcache));if(typeof i!="undefined"){google.maps.event.addListenerOnce(k,"zoom_changed",function(){k.setZoom(i);g.zoom=i})}if(this.markerDirections||this.markerDirectionsShow){this.startDirService(k)}google.maps.event.addListener(j,"click",function(r){var p=r.featureData;if(!p._flxmapOnce){p._flxmapOnce=true;if(g.targetFix){var o=/ target="_blank"/ig;p.description=p.description.replace(o,"");p.infoWindowHtml=p.infoWindowHtml.replace(o,"")}if(g.markerDirections){var n=r.latLng,q=n.lat()+","+n.lng()+",'"+a(p.name)+"',true",m='<br /><a href="#" data-flxmap-fix-opera="1" onclick="'+l+".showDirections("+q+'); return false;">'+g.gettext("Directions")+"</a>";p.infoWindowHtml=p.infoWindowHtml.replace(/<\/div><\/div>$/i,m+"</div></div>")}}});if(window.opera&&this.markerDirections){d(f,"click",function(m){if(m.target.getAttribute("data-flxmap-fix-opera")){b(m)}})}},showMarker:function(j,h,n){var g=this.showMap(j,h),e=new google.maps.LatLng(n[0],n[1]),r=new google.maps.Marker({map:g,position:e,icon:this.markerIcon});this.setMarkerLocation(e);if(!this.markerTitle){this.markerTitle=this.markerAddress}if(this.markerTitle){var m,o,t,k,l,q,s=this,f=document.createElement("DIV");f.className="flxmap-infowin";r.setTitle(this.markerTitle);l=document.createElement("DIV");l.className="flxmap-marker-title";l.appendChild(document.createTextNode(this.markerTitle));f.appendChild(l);if(this.markerHTML){l=document.createElement("DIV");l.innerHTML=this.markerHTML;f.appendChild(l)}if(this.markerDescription||this.markerLink){l=document.createElement("DIV");l.className="flxmap-marker-link";if(this.markerDescription){t=this.markerDescription.split("\n");for(m=0,o=t.length;m<o;m++){if(m>0){l.appendChild(document.createElement("BR"))}l.appendChild(document.createTextNode(t[m]))}if(this.markerLink){l.appendChild(document.createElement("BR"))}}if(this.markerLink){q=document.createElement("A");q.href=this.markerLink;q.appendChild(document.createTextNode(this.gettext("Click for details")));l.appendChild(q)}f.appendChild(l)}if(this.markerDirections){l=document.createElement("DIV");l.className="flxmap-directions-link";q=document.createElement("A");q.href="#";q.dataLatitude=n[0];q.dataLongitude=n[1];q.dataTitle=this.markerTitle;d(q,"click",function(i){b(i);s.showDirections(this.dataLatitude,this.dataLongitude,this.dataTitle,true)});q.appendChild(document.createTextNode(this.gettext("Directions")));l.appendChild(q);f.appendChild(l)}if(this.markerDirections||this.markerDirectionsShow){this.startDirService(g);if(this.markerDirectionsShow){this.showDirections(n[0],n[1],this.markerTitle,false)}}k=new google.maps.InfoWindow({content:f});if(this.markerShowInfo){google.maps.event.addListenerOnce(g,"tilesloaded",function(){k.open(g,r)})}google.maps.event.addListener(r,"click",function(){k.open(g,r)});var p=function(){s.updateGoogleLink()};google.maps.event.addListener(g,"idle",p);google.maps.event.addListener(g,"center_changed",p);google.maps.event.addListenerOnce(g,"tilesloaded",p)}},showAddress:function(e,f){var g=this,h=new google.maps.Geocoder();this.markerAddress=f;if(this.markerTitle===""){this.markerTitle=f}h.geocode({address:f,region:this.region},function(k,j){if(j==google.maps.GeocoderStatus.OK){var i=k[0].geometry.location,l=[i.lat(),i.lng()];g.showMarker(e,l,l)}else{window.alert("Map address returns error: "+j)}})},updateGoogleLink:function(){if("querySelectorAll" in document){try{var m=this.getMap().getDiv(),g=this.getMarkerLocation(),j=m.querySelectorAll("a[href*='maps.google.com/maps']:not([href*='mps_dialog']):not([href*='&q='])"),h=0,f=j.length,k=encodeURIComponent((this.markerAddress?this.markerAddress:this.markerTitle)+" @"+g.lat()+","+g.lng());for(;h<f;h++){j[h].href+="&mrt=loc&iwloc=A&q="+k}}catch(l){}}},redraw:function(){var f=this.getMap(),e=this.getKmlLayer();google.maps.event.trigger(f,"resize");if(e){f.fitBounds(e.getDefaultViewport())}else{f.setCenter(this.getCenter());f.setZoom(this.zoom)}},startDirService:function(e){if(!this.dirService){this.dirService=new google.maps.DirectionsService()}if(!this.dirRenderer){this.dirRenderer=new google.maps.DirectionsRenderer({map:e,draggable:this.dirDraggable,suppressMarkers:this.dirSuppressMarkers,panel:this.dirShowSteps?document.getElementById(this.markerDirectionsDiv):null})}},showDirections:function(l,h,k,e){var f=this;function j(){var m=document.getElementById(f.markerDirectionsDiv),o=document.createElement("form"),n,q,r;while(!!(q=m.lastChild)){m.removeChild(q)}q=document.createElement("p");q.appendChild(document.createTextNode(f.gettext("From")+": "));r=document.createElement("input");r.type="text";r.name="from";r.value=f.markerDirectionsDefault;q.appendChild(r);n=document.createElement("input");n.type="submit";n.value=f.gettext("Get directions");q.appendChild(n);o.appendChild(q);m.appendChild(o);if(typeof o.elements.from=="undefined"){o.elements.from=r}if(e){r.focus()}d(o,"submit",function(p){b(p);var s=this.elements.from.value;if(/\S/.test(s)){i(s)}})}function i(o){var m=(f.markerAddress==="")?new google.maps.LatLng(l,h):f.markerAddress,n={origin:o,region:f.region||"",destination:m,travelMode:google.maps.DirectionsTravelMode.DRIVING};f.dirService.route(n,g)}function g(o,m){var n=google.maps.DirectionsStatus;switch(m){case n.OK:f.dirRenderer.setDirections(o);break;case n.ZERO_RESULTS:window.alert("No route could be found between the origin and destination.");break;case n.OVER_QUERY_LIMIT:window.alert("The webpage has gone over the requests limit in too short a period of time.");break;case n.REQUEST_DENIED:window.alert("The webpage is not allowed to use the directions service.");break;case n.INVALID_REQUEST:window.alert("Invalid directions request.");break;case n.NOT_FOUND:window.alert("Origin or destination was not found.");break;default:window.alert("A directions request could not be processed due to a server error. The request may succeed if you try again.");break}}if(this.markerDirectionsDiv&&this.dirShowSearch){j()}if(this.markerDirectionsDefault){i(this.markerDirectionsDefault)}}}})();
 
 
 
 
 
flexible-map.php CHANGED
@@ -3,17 +3,20 @@
3
  Plugin Name: Flexible Map
4
  Plugin URI: http://flexible-map.webaware.net.au/
5
  Description: Embed Google Maps in pages and posts, either by centre coodinates or street address, or by URL to a Google Earth KML file.
6
- Version: 1.7.3.1
7
  Author: WebAware
8
- Author URI: http://www.webaware.com.au/
 
 
9
  */
10
 
11
  /*
12
- copyright (c) 2011-2014 WebAware Pty Ltd (email : rmckay@webaware.com.au)
13
 
14
- This program is free software; you can redistribute it and/or modify
15
- it under the terms of the GNU General Public License, version 2, as
16
- published by the Free Software Foundation.
 
17
 
18
  This program is distributed in the hope that it will be useful,
19
  but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -22,25 +25,21 @@ GNU General Public License for more details.
22
 
23
  You should have received a copy of the GNU General Public License
24
  along with this program; if not, write to the Free Software
25
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26
  */
27
 
28
  if (!defined('FLXMAP_PLUGIN_ROOT')) {
 
29
  define('FLXMAP_PLUGIN_ROOT', dirname(__FILE__) . '/');
30
  define('FLXMAP_PLUGIN_NAME', basename(dirname(__FILE__)) . '/' . basename(__FILE__));
31
-
32
- // script/style version
33
- if (defined('SCRIPT_DEBUG') && SCRIPT_DEBUG)
34
- define('FLXMAP_PLUGIN_VERSION', time());
35
- else
36
- define('FLXMAP_PLUGIN_VERSION', '1.7.3.1');
37
 
38
  // shortcode tags
39
  define('FLXMAP_PLUGIN_TAG_MAP', 'flexiblemap');
40
  }
41
 
42
  // instantiate the plug-in
43
- require FLXMAP_PLUGIN_ROOT . 'class.FlxMapPlugin.php';
44
  $FlxMapPlugin = FlxMapPlugin::getInstance();
45
 
46
  /**
3
  Plugin Name: Flexible Map
4
  Plugin URI: http://flexible-map.webaware.net.au/
5
  Description: Embed Google Maps in pages and posts, either by centre coodinates or street address, or by URL to a Google Earth KML file.
6
+ Version: 1.8.0
7
  Author: WebAware
8
+ Author URI: http://webaware.com.au/
9
+ Text Domain: flexible-map
10
+ Domain Path: /languages/
11
  */
12
 
13
  /*
14
+ copyright (c) 2011-2014 WebAware Pty Ltd (email : support@webaware.com.au)
15
 
16
+ This program is free software; you can redistribute it and/or
17
+ modify it under the terms of the GNU General Public License
18
+ as published by the Free Software Foundation; either version 2
19
+ of the License, or (at your option) any later version.
20
 
21
  This program is distributed in the hope that it will be useful,
22
  but WITHOUT ANY WARRANTY; without even the implied warranty of
25
 
26
  You should have received a copy of the GNU General Public License
27
  along with this program; if not, write to the Free Software
28
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
29
  */
30
 
31
  if (!defined('FLXMAP_PLUGIN_ROOT')) {
32
+ define('FLXMAP_PLUGIN_FILE', __FILE__);
33
  define('FLXMAP_PLUGIN_ROOT', dirname(__FILE__) . '/');
34
  define('FLXMAP_PLUGIN_NAME', basename(dirname(__FILE__)) . '/' . basename(__FILE__));
35
+ define('FLXMAP_PLUGIN_VERSION', '1.8.0');
 
 
 
 
 
36
 
37
  // shortcode tags
38
  define('FLXMAP_PLUGIN_TAG_MAP', 'flexiblemap');
39
  }
40
 
41
  // instantiate the plug-in
42
+ require FLXMAP_PLUGIN_ROOT . 'includes/class.FlxMapPlugin.php';
43
  $FlxMapPlugin = FlxMapPlugin::getInstance();
44
 
45
  /**
i18n/af.js DELETED
@@ -1,13 +0,0 @@
1
- // Afrikaans
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["af"] = {
7
- "Click for details" : "Klik vir meer inligting",
8
- "Directions" : "padkaart",
9
- "From" : "Plek van vertrek",
10
- "Get directions" : "Kry padkaart"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/ar.js DELETED
@@ -1,13 +0,0 @@
1
- // Arabic
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["ar"] = {
7
- "Click for details" : "فوق لمزيد من التفاصيل",
8
- "Directions" : "اتجاهات",
9
- "From" : "مكان المغادرة",
10
- "Get directions" : "الحصول على الاتجاهات"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/az.js DELETED
@@ -1,13 +0,0 @@
1
- // Azerbaijani
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["az"] = {
7
- "Click for details" : "Detaylar üçün tıklayınız",
8
- "Directions" : "istiqamətləri",
9
- "From" : "Gediş yeri",
10
- "Get directions" : "istiqamətləri almaq"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/bg.js DELETED
@@ -1,13 +0,0 @@
1
- // Bulgarian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["bg"] = {
7
- "Click for details" : "Кликнете за повече информация",
8
- "Directions" : "Карта на посоки",
9
- "From" : "Място на тръгване",
10
- "Get directions" : "Получаване на карта посоки"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/bs.js DELETED
@@ -1,13 +0,0 @@
1
- // Bosnian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["bs"] = {
7
- "Click for details" : "Кликнете за повече информация",
8
- "Directions" : "Карта на посоки",
9
- "From" : "Място на тръгване",
10
- "Get directions" : "Получаване на карта посоки"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/ca.js DELETED
@@ -1,13 +0,0 @@
1
- // Catalan
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["ca"] = {
7
- "Click for details" : "Feu clic per a més detalls",
8
- "Directions" : "mapa Direccions",
9
- "From" : "Lloc de sortida",
10
- "Get directions" : "Obtenir adreces mapa"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/cs.js DELETED
@@ -1,13 +0,0 @@
1
- // Czech
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["cs"] = {
7
- "Click for details" : "Klikněte pro detail",
8
- "Directions" : "Mapa směry",
9
- "From" : "Místo odletu",
10
- "Get directions" : "Získat mapu trasy"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/da.js DELETED
@@ -1,13 +0,0 @@
1
- // Danish
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["da"] = {
7
- "Click for details" : "Klik for detaljer",
8
- "Directions" : "Kørselsvejledning",
9
- "From" : "Afgangssted",
10
- "Get directions" : "Hent kørselsvejledning"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/de.js DELETED
@@ -1,13 +0,0 @@
1
- // German
2
- // translation by Carib Design http://profiles.wordpress.org/caribdesign/ -- thanks!
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["de"] = {
7
- "Click for details" : "Für Details klicken",
8
- "Directions" : "Wegbeschreibung",
9
- "From" : "Abfahrtsort",
10
- "Get directions" : "Wegbeschreibung anzeigen"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/el.js DELETED
@@ -1,13 +0,0 @@
1
- // Greek
2
- // translation by Pantelis Orfanos http://profiles.wordpress.org/ironwiller/ -- thanks!
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["el"] = {
7
- "Click for details" : "Κάντε κλικ για λεπτομέρειες",
8
- "Directions" : "Οδηγίες διαδρομής",
9
- "From" : "Από",
10
- "Get directions" : "Δείτε διαδρομή"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/eo.js DELETED
@@ -1,13 +0,0 @@
1
- // Esperanto
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["eo"] = {
7
- "Click for details" : "Klaku por detaloj",
8
- "Directions" : "direktoj",
9
- "From" : "Loko de partio",
10
- "Get directions" : "Get direktoj"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/es.js DELETED
@@ -1,13 +0,0 @@
1
- // Spanish
2
- // translation by edurramos http://wordpress.org/support/profile/edurramos -- thanks!
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["es"] = {
7
- "Click for details" : "Haga clic para más detalles",
8
- "Directions" : "Cómo llegar",
9
- "From" : "Desde",
10
- "Get directions" : "Obtener ruta"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/et.js DELETED
@@ -1,13 +0,0 @@
1
- // Estonian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["et"] = {
7
- "Click for details" : "Vaata lähemalt",
8
- "Directions" : "Kaart suunas",
9
- "From" : "Lähtekoht",
10
- "Get directions" : "Võta kaart suunas"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/fa.js DELETED
@@ -1,13 +0,0 @@
1
- // Farsi/Persian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["fa"] = {
7
- "Click for details" : "برای جزئیات کلیک کنید",
8
- "Directions" : "جهت نقشه",
9
- "From" : "محل عزیمت",
10
- "Get directions" : "جهت نقشه"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/fi.js DELETED
@@ -1,13 +0,0 @@
1
- // Finnish
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["fi"] = {
7
- "Click for details" : "Klikkaa lisätietoja",
8
- "Directions" : "Kartta suuntiin",
9
- "From" : "Lähtöpaikka",
10
- "Get directions" : "Hanki kartta ohjeet"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/fr.js DELETED
@@ -1,16 +0,0 @@
1
- // French
2
- // from Google Translate -- please help improve this translation
3
-
4
- // feedback from user:
5
- // "space":"space", colon can't be close to text (ref http://goo.gl/A2DgH)
6
-
7
- if (typeof FlexibleMap != "undefined") {
8
-
9
- FlexibleMap.prototype.i18n["fr"] = {
10
- "Click for details" : "Cliquez pour plus de détails",
11
- "Directions" : "Itinéraire",
12
- "From" : "Lieu de départ ",
13
- "Get directions" : "Itinéraire"
14
- };
15
-
16
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/gl.js DELETED
@@ -1,13 +0,0 @@
1
- // Galician
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["gl"] = {
7
- "Click for details" : "Preme aquí para detalles",
8
- "Directions" : "direccións Mapa",
9
- "From" : "Lugar de partida",
10
- "Get directions" : "obter direccións"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/he.js DELETED
@@ -1,13 +0,0 @@
1
- // Hebrew
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["he"] = {
7
- "Click for details" : "לחץ לפרטים נוספים",
8
- "Directions" : "כיוונים",
9
- "From" : "מקום יציאה",
10
- "Get directions" : "קבל הוראות"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/hi.js DELETED
@@ -1,13 +0,0 @@
1
- // Hindi
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["hi"] = {
7
- "Click for details" : "जानकारी के लिए क्लिक करें",
8
- "Directions" : "नक्शा दिशाओं",
9
- "From" : "प्रस्थान के प्लेस",
10
- "Get directions" : "नक्शा दिशाओं"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/hr.js DELETED
@@ -1,13 +0,0 @@
1
- // Croatian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["hr"] = {
7
- "Click for details" : "Kliknite za detalje",
8
- "Directions" : "Smjerovi",
9
- "From" : "Mjesto polaska",
10
- "Get directions" : "Nabavite karte smjerove"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/hu.js DELETED
@@ -1,13 +0,0 @@
1
- // Hungarian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["hu"] = {
7
- "Click for details" : "Kattintson a részletekért",
8
- "Directions" : "Térkép irányban",
9
- "From" : "Indulás helye",
10
- "Get directions" : "Térkép irányban"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/hy.js DELETED
@@ -1,13 +0,0 @@
1
- // Armenian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["hy"] = {
7
- "Click for details" : "Նոր մանրամասներ",
8
- "Directions" : "Քարտեզ ուղղություններն",
9
- "From" : "Հայը մեկնելը",
10
- "Get directions" : "ստանալ ուղղությունները"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/id.js DELETED
@@ -1,13 +0,0 @@
1
- // Indonesian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["id"] = {
7
- "Click for details" : "Klik untuk rincian",
8
- "Directions" : "Arah",
9
- "From" : "Tempat keberangkatan",
10
- "Get directions" : "Dapatkan arah"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/is.js DELETED
@@ -1,13 +0,0 @@
1
- // Icelandic
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["is"] = {
7
- "Click for details" : "Smelltu til að fá upplýsingar",
8
- "Directions" : "leiðbeiningar",
9
- "From" : "Brottfararstaður",
10
- "Get directions" : "fá leiðbeiningar"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/it.js DELETED
@@ -1,13 +0,0 @@
1
- // Italian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["it"] = {
7
- "Click for details" : "Clicca per i dettagli",
8
- "Directions" : "Indicazioni",
9
- "From" : "Luogo di partenza",
10
- "Get directions" : "Ottieni indicazioni stradali"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/ja.js DELETED
@@ -1,13 +0,0 @@
1
- // Japanese
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["ja"] = {
7
- "Click for details" : "詳細はこちらをクリック",
8
- "Directions" : "マップの方向性",
9
- "From" : "出発地",
10
- "Get directions" : "地図の方向を得る"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/ko.js DELETED
@@ -1,13 +0,0 @@
1
- // Korean
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["ko"] = {
7
- "Click for details" : "자세한 내용을 보려면 클릭하세요",
8
- "Directions" : "지도 방향",
9
- "From" : "출발 장소",
10
- "Get directions" : "지도 길찾기"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/lt.js DELETED
@@ -1,13 +0,0 @@
1
- // Lithuanian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["lt"] = {
7
- "Click for details" : "Click for details",
8
- "Directions" : "Medis kryptys",
9
- "From" : "Išvykimo vieta",
10
- "Get directions" : "Gauti žemėlapio kryptis"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/lv.js DELETED
@@ -1,13 +0,0 @@
1
- // Latvian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["lv"] = {
7
- "Click for details" : "Noklikšķiniet uz detaļām",
8
- "Directions" : "virzieni",
9
- "From" : "Atiešanas vieta",
10
- "Get directions" : "Saņemt kartes virzienus"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/mk.js DELETED
@@ -1,13 +0,0 @@
1
- // Macedonian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["mk"] = {
7
- "Click for details" : "Кликни за повеќе детали",
8
- "Directions" : "насоки",
9
- "From" : "Местото на поаѓање",
10
- "Get directions" : "добијат насоки"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/ms.js DELETED
@@ -1,13 +0,0 @@
1
- // Malaysian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["ms"] = {
7
- "Click for details" : "Klik untuk maklumat lanjut",
8
- "Directions" : "arahan",
9
- "From" : "Tempat berlepas",
10
- "Get directions" : "Dapatkan arah"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/nb.js DELETED
@@ -1,13 +0,0 @@
1
- // Norwegian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["nb"] = {
7
- "Click for details" : "Klikk for detaljer",
8
- "Directions" : "kartanvisninger",
9
- "From" : "Avgangssted",
10
- "Get directions" : "Få kartanvisninger"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/nl.js DELETED
@@ -1,13 +0,0 @@
1
- // Dutch
2
- // translation by Ivan Beemster http://www.lijndiensten.com/ -- thanks!
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["nl"] = {
7
- "Click for details" : "Klik hier voor details",
8
- "Directions" : "Routebeschrijving",
9
- "From" : "Plaats van vertrek",
10
- "Get directions" : "Routebeschrijving opvragen"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/pl.js DELETED
@@ -1,13 +0,0 @@
1
- // Polish
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["pl"] = {
7
- "Click for details" : "Kliknij po szczegóły",
8
- "Directions" : "Dojazd",
9
- "From" : "Miejsce wyjazdu",
10
- "Get directions" : "Pobierz Dojazd"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/pt.js DELETED
@@ -1,13 +0,0 @@
1
- // Portugese
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["pt"] = {
7
- "Click for details" : "Clique para detalhes",
8
- "Directions" : "direções Mapa",
9
- "From" : "Local de partida",
10
- "Get directions" : "Obter direcções mapa"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/ro.js DELETED
@@ -1,13 +0,0 @@
1
- // Romanian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["ro"] = {
7
- "Click for details" : "Click pentru detalii",
8
- "Directions" : "direcţii",
9
- "From" : "Locul de plecare",
10
- "Get directions" : "Obţineţi indicaţii"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/ru.js DELETED
@@ -1,13 +0,0 @@
1
- // Russian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["ru"] = {
7
- "Click for details" : "Нажмите для подробностей",
8
- "Directions" : "Карта проезда",
9
- "From" : "Место отправления",
10
- "Get directions" : "Получить карту направления"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/sk.js DELETED
@@ -1,13 +0,0 @@
1
- // Slovak
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["sk"] = {
7
- "Click for details" : "Kliknite pre detail",
8
- "Directions" : "Mapa smermi",
9
- "From" : "Miesto odletu",
10
- "Get directions" : "Získať mapu trasy"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/sl.js DELETED
@@ -1,13 +0,0 @@
1
- // Slovenian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["sl"] = {
7
- "Click for details" : "Klikni za podrobnosti",
8
- "Directions" : "Navodila",
9
- "From" : "Kraj odhoda",
10
- "Get directions" : "Navodila za pot"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/sq.js DELETED
@@ -1,13 +0,0 @@
1
- // Albanian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["sq"] = {
7
- "Click for details" : "Kliko për detaje",
8
- "Directions" : "drejtimet",
9
- "From" : "Vendi i nisjes",
10
- "Get directions" : "Merr drejtime"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/sr.js DELETED
@@ -1,13 +0,0 @@
1
- // Serbian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["sr"] = {
7
- "Click for details" : "Кликните за детаље",
8
- "Directions" : "Правци",
9
- "From" : "Место поласка",
10
- "Get directions" : "Упутства за вожњу"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/sv.js DELETED
@@ -1,13 +0,0 @@
1
- // Swedish
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["sv"] = {
7
- "Click for details" : "Klicka för mer information",
8
- "Directions" : "Karta håll",
9
- "From" : "Plats för avresa",
10
- "Get directions" : "Hämta vägbeskrivning"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/ta.js DELETED
@@ -1,13 +0,0 @@
1
- // Tamil
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["ta"] = {
7
- "Click for details" : "விவரங்களுக்கு சொடுக்கவும்",
8
- "Directions" : "வரைபடத்தை திசைகளில்",
9
- "From" : "புறப்படும் இடம்",
10
- "Get directions" : "திசைகளை பெறவும்"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/th.js DELETED
@@ -1,13 +0,0 @@
1
- // Thai
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["th"] = {
7
- "Click for details" : "คลิกที่นี่เพื่อดูรายละเอียด",
8
- "Directions" : "เส้นทางแผนที่",
9
- "From" : "สถานที่ออกเดินทาง",
10
- "Get directions" : "ขอเส้นทางแผนที่"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/tr.js DELETED
@@ -1,13 +0,0 @@
1
- // Turkish
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["tr"] = {
7
- "Click for details" : "Detaylar için tıklayın",
8
- "Directions" : "harita tarifi",
9
- "From" : "Kalkış Yeri",
10
- "Get directions" : "Harita tarifi alın"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/uk.js DELETED
@@ -1,13 +0,0 @@
1
- // Ukrainian
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["uk"] = {
7
- "Click for details" : "Натисніть для подробиць",
8
- "Directions" : "проїзд",
9
- "From" : "Місце відправлення",
10
- "Get directions" : "Отримати карту напрямки"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/vi.js DELETED
@@ -1,13 +0,0 @@
1
- // Vietnamese
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["vi"] = {
7
- "Click for details" : "Nhấn vào đây để biết thêm chi tiết",
8
- "Directions" : "hướng dẫn",
9
- "From" : "Nơi khởi hành",
10
- "Get directions" : "nhận được hướng dẫn"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
i18n/zh.js DELETED
@@ -1,13 +0,0 @@
1
- // Chinese
2
- // from Google Translate -- please help improve this translation
3
-
4
- if (typeof FlexibleMap != "undefined") {
5
-
6
- FlexibleMap.prototype.i18n["zh"] = {
7
- "Click for details" : "點擊查看詳情",
8
- "Directions" : "方向",
9
- "From" : "出發地點",
10
- "Get directions" : "獲取路線"
11
- };
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/class.FlxMapAdmin.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * class for admin screens
5
+ */
6
+ class FlxMapAdmin {
7
+
8
+ protected $plugin;
9
+
10
+ /**
11
+ * @param FlxMapPlugin $plugin
12
+ */
13
+ public function __construct($plugin) {
14
+ $this->plugin = $plugin;
15
+
16
+ // add action hook for adding plugin meta links
17
+ add_filter('plugin_row_meta', array($this, 'addPluginDetailsLinks'), 10, 2);
18
+ }
19
+
20
+ /**
21
+ * action hook for adding plugin details links
22
+ */
23
+ public function addPluginDetailsLinks($links, $file) {
24
+ // add settings link
25
+ if ($file == FLXMAP_PLUGIN_NAME) {
26
+ $links[] = sprintf('<a href="http://wordpress.org/support/plugin/wp-flexible-map" target="_blank">%s</a>', _x('Get Help', 'plugin details links', 'flexible-map'));
27
+ $links[] = sprintf('<a href="http://wordpress.org/plugins/wp-flexible-map/" target="_blank">%s</a>', _x('Rating', 'plugin details links', 'flexible-map'));
28
+ $links[] = sprintf('<a href="http://translate.webaware.com.au/projects/flexible-map" target="_blank">%s</a>', _x('Translate', 'plugin details links', 'flexible-map'));
29
+ $links[] = sprintf('<a href="http://shop.webaware.com.au/downloads/flexible-map/" target="_blank">%s</a>', _x('Donate', 'plugin details links', 'flexible-map'));
30
+ }
31
+
32
+ return $links;
33
+ }
34
+
35
+ }
class.FlxMapPlugin.php → includes/class.FlxMapPlugin.php RENAMED
@@ -5,7 +5,8 @@
5
  class FlxMapPlugin {
6
  public $urlBase; // string: base URL path to files in plugin
7
 
8
- protected $locale;
 
9
 
10
  /**
11
  * static method for getting the instance of this singleton object
@@ -27,19 +28,19 @@ class FlxMapPlugin {
27
  */
28
  private function __construct() {
29
  // record plugin URL base
30
- $this->urlBase = plugin_dir_url(__FILE__);
31
 
32
- add_action('init', array($this, 'actionInit'));
33
 
34
  if (is_admin()) {
35
  // kick off the admin handling
36
- require FLXMAP_PLUGIN_ROOT . 'class.FlxMapAdmin.php';
37
  new FlxMapAdmin($this);
38
  }
39
  else {
40
  // non-admin actions and filters for this plugin
41
- add_action('wp_enqueue_scripts', array($this, 'actionEnqueueScripts'));
42
- add_filter('clean_url', array($this, 'filterCleanURL'), 11);
43
 
44
  // custom actions and filters for this plugin
45
  add_filter('flexmap_getmap', array($this, 'getMap'), 10, 1);
@@ -54,21 +55,12 @@ class FlxMapPlugin {
54
  /**
55
  * initialise the plugin, called on init action
56
  */
57
- public function actionInit() {
58
  // start off required locales with this website's WP locale
59
  $this->locale = get_locale();
60
- }
61
 
62
- /**
63
- * hack: add charset='utf-8' to i18n scripts
64
- * @param string $url
65
- * @return string
66
- */
67
- public function filterCleanURL($url) {
68
- if (stripos($url, $this->urlBase . 'i18n/') !== false) {
69
- return "$url' charset='utf-8";
70
- }
71
- return $url;
72
  }
73
 
74
  /**
@@ -77,14 +69,14 @@ class FlxMapPlugin {
77
  */
78
  public function setLocales($locales) {
79
  foreach ($locales as $locale) {
80
- $this->enqueueLocale(strtr($locale, '_', '-'));
81
  }
82
  }
83
 
84
  /**
85
  * register and enqueue any scripts and styles we require
86
  */
87
- public function actionEnqueueScripts() {
88
  // allow others to override the Google Maps API URL
89
  $protocol = is_ssl() ? 'https' : 'http';
90
  $args = apply_filters('flexmap_google_maps_api_args', array('v' => '3.15', 'sensor' => 'false'));
@@ -94,10 +86,11 @@ class FlxMapPlugin {
94
  }
95
 
96
  $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
97
- wp_register_script('flxmap', "{$this->urlBase}flexible-map$min.js", array('google-maps'), FLXMAP_PLUGIN_VERSION, true);
 
98
 
99
  // theme writers: you can remove this stylesheet by calling wp_dequeue_script('flxmap');
100
- wp_enqueue_style('flxmap', $this->urlBase . 'styles.css', false, FLXMAP_PLUGIN_VERSION);
101
  }
102
 
103
  /**
@@ -105,11 +98,63 @@ class FlxMapPlugin {
105
  * @param string $locale
106
  */
107
  protected function enqueueLocale($locale) {
108
- // check for specific locale first, e.g. 'zh-CN', then for generic locale, e.g. 'zh'
109
- foreach (array($locale, substr($locale, 0, 2)) as $locale) {
110
- if (file_exists(FLXMAP_PLUGIN_ROOT . "i18n/$locale.js")) {
111
- wp_enqueue_script('flxmap-' . $locale, $this->urlBase . "i18n/$locale.js", array('flxmap'), FLXMAP_PLUGIN_VERSION, true);
112
- break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  }
114
  }
115
  }
@@ -284,7 +329,8 @@ HTML;
284
  }
285
 
286
  if (isset($attrs['locale'])) {
287
- $script .= " f.setlocale(\"{$this->str2js($attrs['locale'])}\");\n";
 
288
  $this->enqueueLocale($attrs['locale']);
289
  }
290
  else if ($this->locale != '' || $this->locale != 'en-US') {
@@ -487,4 +533,5 @@ HTML;
487
  protected static function str2js($text) {
488
  return addcslashes($text, "\\/\'\"&\n\r<>");
489
  }
 
490
  }
5
  class FlxMapPlugin {
6
  public $urlBase; // string: base URL path to files in plugin
7
 
8
+ protected $locale; // locale of current website
9
+ protected $locales = array(); // list of locales enqueued for localisation of maps
10
 
11
  /**
12
  * static method for getting the instance of this singleton object
28
  */
29
  private function __construct() {
30
  // record plugin URL base
31
+ $this->urlBase = plugin_dir_url(FLXMAP_PLUGIN_FILE);
32
 
33
+ add_action('init', array($this, 'init'));
34
 
35
  if (is_admin()) {
36
  // kick off the admin handling
37
+ require FLXMAP_PLUGIN_ROOT . 'includes/class.FlxMapAdmin.php';
38
  new FlxMapAdmin($this);
39
  }
40
  else {
41
  // non-admin actions and filters for this plugin
42
+ add_action('wp_enqueue_scripts', array($this, 'enqueueScripts'));
43
+ add_action('wp_print_footer_scripts', array($this, 'justInTimeLocalisation'), 9);
44
 
45
  // custom actions and filters for this plugin
46
  add_filter('flexmap_getmap', array($this, 'getMap'), 10, 1);
55
  /**
56
  * initialise the plugin, called on init action
57
  */
58
+ public function init() {
59
  // start off required locales with this website's WP locale
60
  $this->locale = get_locale();
 
61
 
62
+ // load translation strings for the admin
63
+ load_plugin_textdomain('flexible-map', false, basename(dirname(FLXMAP_PLUGIN_FILE)) . '/languages/');
 
 
 
 
 
 
 
 
64
  }
65
 
66
  /**
69
  */
70
  public function setLocales($locales) {
71
  foreach ($locales as $locale) {
72
+ $this->enqueueLocale($locale);
73
  }
74
  }
75
 
76
  /**
77
  * register and enqueue any scripts and styles we require
78
  */
79
+ public function enqueueScripts() {
80
  // allow others to override the Google Maps API URL
81
  $protocol = is_ssl() ? 'https' : 'http';
82
  $args = apply_filters('flexmap_google_maps_api_args', array('v' => '3.15', 'sensor' => 'false'));
86
  }
87
 
88
  $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
89
+ $ver = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? time() : FLXMAP_PLUGIN_VERSION;
90
+ wp_register_script('flxmap', "{$this->urlBase}js/flexible-map$min.js", array('google-maps'), $ver, true);
91
 
92
  // theme writers: you can remove this stylesheet by calling wp_dequeue_script('flxmap');
93
+ wp_enqueue_style('flxmap', $this->urlBase . 'css/styles.css', false, $ver);
94
  }
95
 
96
  /**
98
  * @param string $locale
99
  */
100
  protected function enqueueLocale($locale) {
101
+ $locale = strtr($locale, '_', '-');
102
+ $this->locales[$locale] = 1;
103
+ }
104
+
105
+ /**
106
+ * load any enqueued locales as localisations on the main script
107
+ */
108
+ public function justInTimeLocalisation() {
109
+ if (!empty($this->locales)) {
110
+ $domain = 'flexible-map';
111
+ $i18n = array();
112
+
113
+ // map old two-character language-only locales that now need to target language_country translations
114
+ $upgradeMap = array(
115
+ 'bg' => 'bg_BG', 'cs' => 'cs_CZ', 'da' => 'da_DK', 'de' => 'de_DE',
116
+ 'es' => 'es_ES', 'fa' => 'fa_IR', 'fr' => 'fr_FR', 'gl' => 'gl_ES',
117
+ 'he' => 'he_IL', 'hi' => 'hi_IN', 'hu' => 'hu_HU', 'id' => 'id_ID',
118
+ 'is' => 'is_IS', 'it' => 'it_IT', 'ko' => 'ko_KR', 'lt' => 'lt_LT',
119
+ 'mk' => 'mk_MK', 'ms' => 'ms_MY', 'mt' => 'mt_MT', 'nb' => 'nb_NO',
120
+ 'nl' => 'nl_NL', 'pl' => 'pl_PL', 'pt' => 'pt_PT', 'ro' => 'ro_RO',
121
+ 'ru' => 'ru_RU', 'sk' => 'sk_SK', 'sl' => 'sl_SL', 'sr' => 'sr_RS',
122
+ 'sv' => 'sv_SE', 'ta' => 'ta_IN', 'tr' => 'tr_TR', 'zh' => 'zh_CN',
123
+ );
124
+
125
+ foreach (array_keys($this->locales) as $locale) {
126
+ // check for specific locale first, e.g. 'zh-CN', then for generic locale, e.g. 'zh'
127
+ foreach (array($locale, substr($locale, 0, 2)) as $locale) {
128
+ if (isset($upgradeMap[$locale])) {
129
+ // upgrade old two-character language-only locales
130
+ $moLocale = $upgradeMap[$locale];
131
+ }
132
+ else {
133
+ // revert locale name to WordPress locale name as used in .mo files
134
+ $moLocale = strtr($locale, '-', '_');
135
+ }
136
+
137
+ // compose full path to .mo file
138
+ $mofile = sprintf('%slanguages/%s-%s.mo', FLXMAP_PLUGIN_ROOT, $domain, $moLocale);
139
+
140
+ if (is_readable($mofile)) {
141
+ $mo = new MO();
142
+ if ($mo->import_from_file($mofile)) {
143
+ // pull all translation strings into a simplified format for our script
144
+ // TODO: handle plurals (not yet needed, don't have any)
145
+ $strings = array();
146
+ foreach ($mo->entries as $original => $translation) {
147
+ $strings[$original] = $translation->translations[0];
148
+ }
149
+ $i18n[$locale] = $strings;
150
+ break;
151
+ }
152
+ }
153
+ }
154
+ }
155
+
156
+ if (!empty($i18n)) {
157
+ wp_localize_script('flxmap', 'flxmap', array('i18n' => $i18n));
158
  }
159
  }
160
  }
329
  }
330
 
331
  if (isset($attrs['locale'])) {
332
+ $locale = self::str2js(str_replace('_', '-', $attrs['locale']));
333
+ $script .= " f.setlocale(\"{$this->str2js($locale)}\");\n";
334
  $this->enqueueLocale($attrs['locale']);
335
  }
336
  else if ($this->locale != '' || $this->locale != 'en-US') {
533
  protected static function str2js($text) {
534
  return addcslashes($text, "\\/\'\"&\n\r<>");
535
  }
536
+
537
  }
includes/declare-strings.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * declare l10n strings used in JavaScript so a gettext scanner can find them
5
+ * NB: never called!
6
+ */
7
+ function justDeclare() {
8
+ $strings = array(
9
+ __('Click for details', 'flexible-map'),
10
+ __('Directions', 'flexible-map'),
11
+ __('From', 'flexible-map'),
12
+ __('Get directions', 'flexible-map'),
13
+ );
14
+ }
15
+
.jshintrc → js/.jshintrc RENAMED
@@ -9,6 +9,7 @@
9
  // globals
10
  "browser": true,
11
  "globals": {
 
12
  "google": false
13
  }
14
  }
9
  // globals
10
  "browser": true,
11
  "globals": {
12
+ "flxmap": false,
13
  "google": false
14
  }
15
  }
flexible-map.js → js/flexible-map.js RENAMED
@@ -287,6 +287,7 @@ FlexibleMap.prototype = (function() {
287
  "Get directions" : "Get directions"
288
  }
289
  },
 
290
 
291
  /**
292
  * set the locale used for i18n phrase lookup, picking the best match
@@ -296,6 +297,14 @@ FlexibleMap.prototype = (function() {
296
  setlocale: function(localeWanted) {
297
  this.locale = localeWanted;
298
 
 
 
 
 
 
 
 
 
299
  // attempt to set this locale as active
300
  if (localeWanted in this.i18n) {
301
  this.localeActive = localeWanted;
@@ -416,8 +425,10 @@ FlexibleMap.prototype = (function() {
416
 
417
  this.setMarkerLocation(markerLocation);
418
 
419
- if (!this.markerTitle)
 
420
  this.markerTitle = this.markerAddress;
 
421
 
422
  if (this.markerTitle) {
423
  var i, len, lines, infowin, element, a,
287
  "Get directions" : "Get directions"
288
  }
289
  },
290
+ i18n_loaded: false, // set to true once localisations have been loaded
291
 
292
  /**
293
  * set the locale used for i18n phrase lookup, picking the best match
297
  setlocale: function(localeWanted) {
298
  this.locale = localeWanted;
299
 
300
+ // load localisations if they haven't already been loaded
301
+ if (!this.i18n_loaded && "flxmap" in window) {
302
+ for (var locale in flxmap.i18n) {
303
+ this.i18n[locale] = flxmap.i18n[locale];
304
+ }
305
+ FlexibleMap.prototype.i18n_loaded = true;
306
+ }
307
+
308
  // attempt to set this locale as active
309
  if (localeWanted in this.i18n) {
310
  this.localeActive = localeWanted;
425
 
426
  this.setMarkerLocation(markerLocation);
427
 
428
+
429
+ if (!this.markerTitle) {
430
  this.markerTitle = this.markerAddress;
431
+ }
432
 
433
  if (this.markerTitle) {
434
  var i, len, lines, infowin, element, a,
js/flexible-map.min.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ /*!
2
+ JavaScript for the WordPress plugin wp-flexible-map
3
+ copyright (c) 2011-2014 WebAware Pty Ltd, released under LGPL v2.1
4
+ */
5
+ ;function FlexibleMap(){var e,c,a,d,b=false;this.getMap=function(){return e};this.getCenter=function(){return c};this.setCenter=function(f){c=f;e.setCenter(c)};this.setMarkerLocation=function(f){a=f};this.getMarkerLocation=function(){return a};this.getKmlLayer=function(){return d};this.redrawOnce=function(){if(!b){b=true;this.redraw()}};this.showMap=function(f,h){c=new google.maps.LatLng(h[0],h[1]);var i,g={small:google.maps.ZoomControlStyle.SMALL,large:google.maps.ZoomControlStyle.LARGE,"default":google.maps.ZoomControlStyle.DEFAULT};if(this.zoomControlStyle in g){i=g[this.zoomControlStyle]}else{i=g.small}e=new google.maps.Map(document.getElementById(f),{mapTypeId:this.mapTypeId,mapTypeControl:this.mapTypeControl,scaleControl:this.scaleControl,panControl:this.panControl,streetViewControl:this.streetViewControl,zoomControl:this.zoomControl,zoomControlOptions:{style:i},draggable:this.draggable,disableDoubleClickZoom:!this.dblclickZoom,scrollwheel:this.scrollwheel,center:c,zoom:this.zoom});return e};this.loadKmlMap=function(f){d=new google.maps.KmlLayer({map:e,url:f});google.maps.event.addListenerOnce(d,"defaultviewport_changed",function(){c=d.getDefaultViewport().getCenter()});return d};this.mapTypeId=google.maps.MapTypeId.ROADMAP;this.mapTypeControl=true;this.scaleControl=false;this.panControl=false;this.zoomControl=true;this.zoomControlStyle="small";this.streetViewControl=false;this.scrollwheel=false;this.draggable=true;this.dblclickZoom=true;this.zoom=16;this.markerTitle="";this.markerDescription="";this.markerHTML="";this.markerLink="";this.markerIcon="";this.markerShowInfo=true;this.markerDirections=false;this.markerDirectionsShow=false;this.markerDirectionsDefault="";this.markerAddress="";this.targetFix=true;this.dirService=false;this.dirRenderer=false;this.dirDraggable=false;this.dirSuppressMarkers=false;this.dirShowSteps=true;this.dirShowSearch=true;this.region="";this.locale="en";this.localeActive="en";this.kmlcache="none"}FlexibleMap.prototype=(function(){var d,b;if(document.addEventListener){d=function(f,e,g){f.addEventListener(e,g,false)};b=function(e){e.stopPropagation();e.preventDefault()}}else{if(document.attachEvent){d=function(e,f,g){e.attachEvent("on"+f,function(){g.call(e,window.event)})};b=function(e){e.cancelBubble=true;e.returnValue=0}}}var a=(function(){function e(g){var h=g.charCodeAt(0),f=h.toString(16);if(h<256){return"\\x"+("00"+f).slice(-2)}return"\\u"+("0000"+f).slice(-4)}return function(f){return f.replace(/[\\\/"'&<>\x00-\x1f\x7f-\xa0\u2000-\u200f\u2028-\u202f]/g,e)}})();function c(f,i){var e,g,j,h=/^(\d+)\s*(minute|hour|day)s?$/.exec(i);if(h){e=(new Date()).getTime();j=+h[1];switch(h[2]){case"minute":if(j<5){j=5}g=e/(60000*j);break;case"hour":g=e/(3600000*j);break;case"day":g=e/(86400000*j);break;default:g=false;break}if(g){g=Math.floor(g);f+=(f.indexOf("?")>-1?"&":"?")+"nocache="+g}}return f}return{constructor:FlexibleMap,i18n:{en:{"Click for details":"Click for details",Directions:"Directions",From:"From","Get directions":"Get directions"}},i18n_loaded:false,setlocale:function(f){this.locale=f;if(!this.i18n_loaded&&"flxmap" in window){for(var e in flxmap.i18n){this.i18n[e]=flxmap.i18n[e]}FlexibleMap.prototype.i18n_loaded=true}if(f in this.i18n){this.localeActive=f}else{f=f.substr(0,2);if(f in this.i18n){this.localeActive=f}else{this.localeActive="en"}}return this.localeActive},gettext:function(f){var e=this.i18n[this.localeActive];if(f in e){return e[f]}return f},showKML:function(e,h,i){if(typeof i!="undefined"){this.zoom=i}var g=this,f=document.getElementById(e),l=f.getAttribute("data-flxmap"),k=this.showMap(e,[0,0]),j=this.loadKmlMap(c(h,this.kmlcache));if(typeof i!="undefined"){google.maps.event.addListenerOnce(k,"zoom_changed",function(){k.setZoom(i);g.zoom=i})}if(this.markerDirections||this.markerDirectionsShow){this.startDirService(k)}google.maps.event.addListener(j,"click",function(r){var p=r.featureData;if(!p._flxmapOnce){p._flxmapOnce=true;if(g.targetFix){var o=/ target="_blank"/ig;p.description=p.description.replace(o,"");p.infoWindowHtml=p.infoWindowHtml.replace(o,"")}if(g.markerDirections){var n=r.latLng,q=n.lat()+","+n.lng()+",'"+a(p.name)+"',true",m='<br /><a href="#" data-flxmap-fix-opera="1" onclick="'+l+".showDirections("+q+'); return false;">'+g.gettext("Directions")+"</a>";p.infoWindowHtml=p.infoWindowHtml.replace(/<\/div><\/div>$/i,m+"</div></div>")}}});if(window.opera&&this.markerDirections){d(f,"click",function(m){if(m.target.getAttribute("data-flxmap-fix-opera")){b(m)}})}},showMarker:function(j,h,n){var g=this.showMap(j,h),e=new google.maps.LatLng(n[0],n[1]),r=new google.maps.Marker({map:g,position:e,icon:this.markerIcon});this.setMarkerLocation(e);if(!this.markerTitle){this.markerTitle=this.markerAddress}if(this.markerTitle){var m,o,t,k,l,q,s=this,f=document.createElement("DIV");f.className="flxmap-infowin";r.setTitle(this.markerTitle);l=document.createElement("DIV");l.className="flxmap-marker-title";l.appendChild(document.createTextNode(this.markerTitle));f.appendChild(l);if(this.markerHTML){l=document.createElement("DIV");l.innerHTML=this.markerHTML;f.appendChild(l)}if(this.markerDescription||this.markerLink){l=document.createElement("DIV");l.className="flxmap-marker-link";if(this.markerDescription){t=this.markerDescription.split("\n");for(m=0,o=t.length;m<o;m++){if(m>0){l.appendChild(document.createElement("BR"))}l.appendChild(document.createTextNode(t[m]))}if(this.markerLink){l.appendChild(document.createElement("BR"))}}if(this.markerLink){q=document.createElement("A");q.href=this.markerLink;q.appendChild(document.createTextNode(this.gettext("Click for details")));l.appendChild(q)}f.appendChild(l)}if(this.markerDirections){l=document.createElement("DIV");l.className="flxmap-directions-link";q=document.createElement("A");q.href="#";q.dataLatitude=n[0];q.dataLongitude=n[1];q.dataTitle=this.markerTitle;d(q,"click",function(i){b(i);s.showDirections(this.dataLatitude,this.dataLongitude,this.dataTitle,true)});q.appendChild(document.createTextNode(this.gettext("Directions")));l.appendChild(q);f.appendChild(l)}if(this.markerDirections||this.markerDirectionsShow){this.startDirService(g);if(this.markerDirectionsShow){this.showDirections(n[0],n[1],this.markerTitle,false)}}k=new google.maps.InfoWindow({content:f});if(this.markerShowInfo){google.maps.event.addListenerOnce(g,"tilesloaded",function(){k.open(g,r)})}google.maps.event.addListener(r,"click",function(){k.open(g,r)});var p=function(){s.updateGoogleLink()};google.maps.event.addListener(g,"idle",p);google.maps.event.addListener(g,"center_changed",p);google.maps.event.addListenerOnce(g,"tilesloaded",p)}},showAddress:function(e,f){var g=this,h=new google.maps.Geocoder();this.markerAddress=f;if(this.markerTitle===""){this.markerTitle=f}h.geocode({address:f,region:this.region},function(k,j){if(j==google.maps.GeocoderStatus.OK){var i=k[0].geometry.location,l=[i.lat(),i.lng()];g.showMarker(e,l,l)}else{window.alert("Map address returns error: "+j)}})},updateGoogleLink:function(){if("querySelectorAll" in document){try{var m=this.getMap().getDiv(),g=this.getMarkerLocation(),j=m.querySelectorAll("a[href*='maps.google.com/maps']:not([href*='mps_dialog']):not([href*='&q='])"),h=0,f=j.length,k=encodeURIComponent((this.markerAddress?this.markerAddress:this.markerTitle)+" @"+g.lat()+","+g.lng());for(;h<f;h++){j[h].href+="&mrt=loc&iwloc=A&q="+k}}catch(l){}}},redraw:function(){var f=this.getMap(),e=this.getKmlLayer();google.maps.event.trigger(f,"resize");if(e){f.fitBounds(e.getDefaultViewport())}else{f.setCenter(this.getCenter());f.setZoom(this.zoom)}},startDirService:function(e){if(!this.dirService){this.dirService=new google.maps.DirectionsService()}if(!this.dirRenderer){this.dirRenderer=new google.maps.DirectionsRenderer({map:e,draggable:this.dirDraggable,suppressMarkers:this.dirSuppressMarkers,panel:this.dirShowSteps?document.getElementById(this.markerDirectionsDiv):null})}},showDirections:function(l,h,k,e){var f=this;function j(){var m=document.getElementById(f.markerDirectionsDiv),o=document.createElement("form"),n,q,r;while(!!(q=m.lastChild)){m.removeChild(q)}q=document.createElement("p");q.appendChild(document.createTextNode(f.gettext("From")+": "));r=document.createElement("input");r.type="text";r.name="from";r.value=f.markerDirectionsDefault;q.appendChild(r);n=document.createElement("input");n.type="submit";n.value=f.gettext("Get directions");q.appendChild(n);o.appendChild(q);m.appendChild(o);if(typeof o.elements.from=="undefined"){o.elements.from=r}if(e){r.focus()}d(o,"submit",function(p){b(p);var s=this.elements.from.value;if(/\S/.test(s)){i(s)}})}function i(o){var m=(f.markerAddress==="")?new google.maps.LatLng(l,h):f.markerAddress,n={origin:o,region:f.region||"",destination:m,travelMode:google.maps.DirectionsTravelMode.DRIVING};f.dirService.route(n,g)}function g(o,m){var n=google.maps.DirectionsStatus;switch(m){case n.OK:f.dirRenderer.setDirections(o);break;case n.ZERO_RESULTS:window.alert("No route could be found between the origin and destination.");break;case n.OVER_QUERY_LIMIT:window.alert("The webpage has gone over the requests limit in too short a period of time.");break;case n.REQUEST_DENIED:window.alert("The webpage is not allowed to use the directions service.");break;case n.INVALID_REQUEST:window.alert("Invalid directions request.");break;case n.NOT_FOUND:window.alert("Origin or destination was not found.");break;default:window.alert("A directions request could not be processed due to a server error. The request may succeed if you try again.");break}}if(this.markerDirectionsDiv&&this.dirShowSearch){j()}if(this.markerDirectionsDefault){i(this.markerDirectionsDefault)}}}})();
languages/flexible-map-af.mo ADDED
Binary file
languages/flexible-map-ar.mo ADDED
Binary file
languages/flexible-map-az.mo ADDED
Binary file
languages/flexible-map-bel.mo ADDED
Binary file
languages/flexible-map-bg_BG.mo ADDED
Binary file
languages/flexible-map-ca.mo ADDED
Binary file
languages/flexible-map-cs_CZ.mo ADDED
Binary file
languages/flexible-map-da_DK.mo ADDED
Binary file
languages/flexible-map-de_DE.mo ADDED
Binary file
languages/flexible-map-el.mo ADDED
Binary file
languages/flexible-map-eo.mo ADDED
Binary file
languages/flexible-map-es_ES.mo ADDED
Binary file
languages/flexible-map-et.mo ADDED
Binary file
languages/flexible-map-fa_IR.mo ADDED
Binary file
languages/flexible-map-fi.mo ADDED
Binary file
languages/flexible-map-fr_FR.mo ADDED
Binary file
languages/flexible-map-gl_ES.mo ADDED
Binary file
languages/flexible-map-he_IL.mo ADDED
Binary file
languages/flexible-map-hi_IN.mo ADDED
Binary file
languages/flexible-map-hr.mo ADDED
Binary file
languages/flexible-map-hu_HU.mo ADDED
Binary file
languages/flexible-map-hy.mo ADDED
Binary file
languages/flexible-map-id_ID.mo ADDED
Binary file
languages/flexible-map-is_IS.mo ADDED
Binary file
languages/flexible-map-it_IT.mo ADDED
Binary file
languages/flexible-map-ja.mo ADDED
Binary file
languages/flexible-map-ka_GE.mo ADDED
Binary file
languages/flexible-map-ko_KR.mo ADDED
Binary file
languages/flexible-map-lt_LT.mo ADDED
Binary file
languages/flexible-map-lv.mo ADDED
Binary file
languages/flexible-map-mk_MK.mo ADDED
Binary file
languages/flexible-map-ms_MY.mo ADDED
Binary file
languages/flexible-map-mt_MT.mo ADDED
Binary file
languages/flexible-map-nb_NO.mo ADDED
Binary file
languages/flexible-map-nl_NL.mo ADDED
Binary file
languages/flexible-map-nn_NO.mo ADDED
Binary file
languages/flexible-map-pl_PL.mo ADDED
Binary file
languages/flexible-map-pt_BR.mo ADDED
Binary file
languages/flexible-map-pt_PT.mo ADDED
Binary file
languages/flexible-map-ro_RO.mo ADDED
Binary file
languages/flexible-map-ru_RU.mo ADDED
Binary file
languages/flexible-map-sk_SK.mo ADDED
Binary file
languages/flexible-map-sl_SL.mo ADDED
Binary file
languages/flexible-map-sq.mo ADDED
Binary file
languages/flexible-map-sr_RS.mo ADDED
Binary file
languages/flexible-map-sv_SE.mo ADDED
Binary file
languages/flexible-map-ta_IN.mo ADDED
Binary file
languages/flexible-map-th.mo ADDED
Binary file
languages/flexible-map-tr_TR.mo ADDED
Binary file
languages/flexible-map-uk.mo ADDED
Binary file
languages/flexible-map-ur.mo ADDED
Binary file
languages/flexible-map-vi.mo ADDED
Binary file
languages/flexible-map-zh_CN.mo ADDED
Binary file
languages/flexible-map.pot ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # copyright (c) 2014 WebAware Pty Ltd
2
+ # This file is distributed under the same license as the plugin package.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Flexible Map\n"
6
+ "Report-Msgid-Bugs-To: \n"
7
+ "POT-Creation-Date: 2014-08-31 13:40+1000\n"
8
+ "PO-Revision-Date: 2014-08-31 13:40+1000\n"
9
+ "Last-Translator: Ross McKay <rmckay@webaware.com.au>\n"
10
+ "Language-Team: \n"
11
+ "Language: en_US\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
16
+ "_n_noop:1,2;_c;_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;_ex:1,2c;"
17
+ "esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
18
+ "X-Poedit-Basepath: .\n"
19
+ "X-Poedit-SourceCharset: UTF-8\n"
20
+ "X-Textdomain-Support: yes\n"
21
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22
+ "X-Generator: Poedit 1.5.4\n"
23
+ "X-Poedit-SearchPath-0: ..\n"
24
+
25
+ #: ../includes/class.FlxMapAdmin.php:26
26
+ msgctxt "plugin details links"
27
+ msgid "Get Help"
28
+ msgstr ""
29
+
30
+ #: ../includes/class.FlxMapAdmin.php:27
31
+ msgctxt "plugin details links"
32
+ msgid "Rating"
33
+ msgstr ""
34
+
35
+ #: ../includes/class.FlxMapAdmin.php:28
36
+ msgctxt "plugin details links"
37
+ msgid "Translate"
38
+ msgstr ""
39
+
40
+ #: ../includes/class.FlxMapAdmin.php:29
41
+ msgctxt "plugin details links"
42
+ msgid "Donate"
43
+ msgstr ""
44
+
45
+ #: ../includes/declare-strings.php:9
46
+ msgid "Click for details"
47
+ msgstr ""
48
+
49
+ #: ../includes/declare-strings.php:10
50
+ msgid "Directions"
51
+ msgstr ""
52
+
53
+ #: ../includes/declare-strings.php:11
54
+ msgid "From"
55
+ msgstr ""
56
+
57
+ #: ../includes/declare-strings.php:12
58
+ msgid "Get directions"
59
+ msgstr ""
readme.md ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # WP Flexible Map #
2
+
3
+ Embed Google Maps in pages and posts, either by centre coordinates or street address, or by URL to a Google Earth KML file.
4
+
5
+ * [Home](http://flexible-map.webaware.net.au/)
6
+ * [GitHub](https://github.com/webaware/flexible-map)
7
+ * [Readme](https://github.com/webaware/flexible-map/blob/master/readme.txt)
8
+ * [Download](http://wordpress.org/plugins/wp-flexible-map/)
9
+ * [Documentation](http://flexible-map.webaware.net.au/)
10
+ * [Support](http://wordpress.org/support/plugin/wp-flexible-map)
11
+ * [Translate](http://translate.webaware.com.au/projects/flexible-map)
12
+ * [Donate](http://shop.webaware.com.au/downloads/flexible-map/)
readme.txt CHANGED
@@ -3,11 +3,11 @@ Contributors: webaware
3
  Plugin Name: WP Flexible Map
4
  Plugin URI: http://flexible-map.webaware.net.au/
5
  Author URI: http://www.webaware.com.au/
6
- Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=6ZCY9PST8E4GQ
7
  Tags: google, map, maps, google maps, shortcode, google maps shortcode, kml
8
  Requires at least: 3.2.1
9
- Tested up to: 3.9
10
- Stable tag: 1.7.3.1
11
  License: GPLv2 or later
12
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
13
 
@@ -46,26 +46,29 @@ Thanks for sponsoring new features on WP Flexible Maps!
46
 
47
  Many thanks to the generous efforts of these people for human translations:
48
 
 
49
  * Dutch (nl) -- [Ivan Beemster](http://www.lijndiensten.com/)
50
  * French (fr) -- [mister klucha](http://profiles.wordpress.org/mister-klucha/)
51
  * German (de) -- [Carib Design](http://www.caribdesign.com/)
52
  * Greek (el) -- [Pantelis Orfanos](http://profiles.wordpress.org/ironwiller/)
 
 
53
  * Spanish (es) -- [edurramos](http://profiles.wordpress.org/edurramos/)
54
 
55
- The initial translations for all other languages were made using Google Translate, so it's likely that some will be truly awful! Please help by editing the .js file for your language in the i18n folder, and tell me about it in the [support forum](http://wordpress.org/support/plugin/wp-flexible-map).
56
 
57
  == Installation ==
58
 
59
  1. Upload this plugin to your /wp-content/plugins/ directory.
60
  2. Activate the plugin through the 'Plugins' menu in WordPress.
61
- 3. Add the shortcode [flexiblemap] to your pages / posts to embed maps
62
 
63
  There are two ways to load maps with this plugin:
64
 
65
  * specify the map's coordinates or street address
66
  * specify the URL to a KML file (e.g. from Google Earth)
67
 
68
- To add a Flexible Map to a post or a page, add a shortcode [flexiblemap] and give it some useful attributes. A map can either be specified using centre coordinates or street address, or by loading a KML file.
69
 
70
  = Attributes for centre coordinates or street address map =
71
 
@@ -94,7 +97,7 @@ Either the center or the address paramater is required. If you provide both, the
94
  * **kmlcache**: ask Google Maps to use a new map instead of cached map, specified in minutes (90 minutes), hours (2 hours), days (1 day), or "none"; minimum 5 minutes, default "none"
95
 
96
  *Sample*:
97
- `[flexiblemap src="http://snippets.webaware.com.au/maps/example-toronto.kml" width="100%" height="400px"]`
98
 
99
  = Attributes for all maps =
100
 
@@ -177,8 +180,8 @@ Google Maps API caches the KML file, so it can take a while for your new changes
177
 
178
  If your map is auto-generated or changes frequently, add the `kmlcache` attribute to ask Google to fetch a new copy periodically. You can specify the interval in minutes (e.g. "90 minutes"), hours (e.g. "2 hours"), or days (e.g. "1 day"). The minimum interval is 5 minutes.
179
 
180
- `[flexiblemap src="http://snippets.webaware.com.au/maps/example-toronto.kml?v=2"]
181
- [flexiblemap src="http://snippets.webaware.com.au/maps/example-toronto.kml" kmlcache="8 hours"]`
182
 
183
  = What parts of KML are supported? =
184
 
@@ -201,44 +204,38 @@ Google Maps will use the locale information from your web browser to help displa
201
  `add_filter('flexmap_google_maps_api_args', 'force_flexmap_map_language');
202
 
203
  function force_flexmap_map_language($args) {
204
- $args['language'] = get_locale();
205
- return $args;
206
  }`
207
 
208
  = You've translated my language badly / it's missing =
209
 
210
- The initial translations were made using Google Translate, so it's likely that some will be truly awful! Please help by editing the .js file for your language in the i18n folder, and tell me about it in the [support forum](http://wordpress.org/support/plugin/wp-flexible-map).
211
 
212
  = The map is broken in jQuery UI tabs =
213
 
214
- When you hide the map in a tab, and then click on the tab to reveal its contents, the map doesn't know how big to draw until it is revealed. You need to give Google Maps a nudge so that it will pick up the correct size and position when you reveal it. Here's some sample jQuery code to do this, which you should add somewhere on the page (e.g. in your theme's footer):
215
 
216
  `<script>
217
- jQuery(function($) {
218
-
219
- $("body").bind("tabsactivate", function(event, ui) {
220
- $("#" + ui.newPanel[0].id + " div.flxmap-container").each(function() {
221
- var flxmap = window[this.getAttribute("data-flxmap")];
222
- flxmap.redrawOnce();
223
- });
224
- });
225
-
226
  });
227
  </script>`
228
 
229
  For jQuery versions 1.8 or older:
230
 
231
  `<script>
232
- jQuery(function($) {
233
-
234
- $("body").bind("tabsshow", function(event, ui) {
235
- $("#" + ui.panel.id + " div.flxmap-container").each(function() {
236
  var flxmap = window[this.getAttribute("data-flxmap")];
237
  flxmap.redrawOnce();
238
  });
239
  });
240
-
241
- });
242
  </script>`
243
 
244
  For tabs in jQuery Tools, see [this support topic](http://wordpress.org/support/topic/tabs-map#post-3784706).
@@ -292,11 +289,16 @@ Either turn off CloudFlare Rocketscript :) or install the [Flxmap No Rocketscrip
292
 
293
  1. `[flexiblemap center="-32.918657,151.797894" title="Nobby's Head" zoom="14" width="500" height="400" directions="true" maptype="satellite"]`
294
  2. `[flexiblemap address="116 Beaumont Street Hamilton NSW Australia" title="Raj's Corner" description="SWMBO's favourite Indian diner" width="500" height="400" directions="true"]`
295
- 3. `[flexiblemap src="http://snippets.webaware.com.au/maps/example-toronto.kml?v=2" width="500" height="400" maptype="satellite"]`
296
  4. `[flexiblemap center="-34.916721,138.828878" width="500" height="400" title="Adelaide Hills" directions="true" showdirections="true" directionsfrom="Adelaide"]`
297
 
298
  == Changelog ==
299
 
 
 
 
 
 
300
  = 1.7.3.1 [2014-03-22] =
301
  * fixed: infowindow width on some Webkit browsers, and IE10/11
302
 
3
  Plugin Name: WP Flexible Map
4
  Plugin URI: http://flexible-map.webaware.net.au/
5
  Author URI: http://www.webaware.com.au/
6
+ Donate link: http://shop.webaware.com.au/downloads/flexible-map/
7
  Tags: google, map, maps, google maps, shortcode, google maps shortcode, kml
8
  Requires at least: 3.2.1
9
+ Tested up to: 4.0
10
+ Stable tag: 1.8.0
11
  License: GPLv2 or later
12
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
13
 
46
 
47
  Many thanks to the generous efforts of these people for human translations:
48
 
49
+ * Czech (cs) -- [caslavak](http://profiles.wordpress.org/caslavak/)
50
  * Dutch (nl) -- [Ivan Beemster](http://www.lijndiensten.com/)
51
  * French (fr) -- [mister klucha](http://profiles.wordpress.org/mister-klucha/)
52
  * German (de) -- [Carib Design](http://www.caribdesign.com/)
53
  * Greek (el) -- [Pantelis Orfanos](http://profiles.wordpress.org/ironwiller/)
54
+ * Norwegian: Bokmål (nb_NO) -- [neonnero](http://www.neonnero.com/)
55
+ * Norwegian: Nynorsk (nn_NO) -- [neonnero](http://www.neonnero.com/)
56
  * Spanish (es) -- [edurramos](http://profiles.wordpress.org/edurramos/)
57
 
58
+ The initial translations for all other languages were made using Google Translate, so it's likely that some will be truly awful! If you'd like to help out by translating this plugin, please [sign up for an account and dig in](http://translate.webaware.com.au/projects/flexible-map).
59
 
60
  == Installation ==
61
 
62
  1. Upload this plugin to your /wp-content/plugins/ directory.
63
  2. Activate the plugin through the 'Plugins' menu in WordPress.
64
+ 3. Add the shortcode `[flexiblemap]` to your pages / posts to embed maps
65
 
66
  There are two ways to load maps with this plugin:
67
 
68
  * specify the map's coordinates or street address
69
  * specify the URL to a KML file (e.g. from Google Earth)
70
 
71
+ To add a Flexible Map to a post or a page, add a shortcode `[flexiblemap]` and give it some useful attributes. A map can either be specified using centre coordinates or street address, or by loading a KML file.
72
 
73
  = Attributes for centre coordinates or street address map =
74
 
97
  * **kmlcache**: ask Google Maps to use a new map instead of cached map, specified in minutes (90 minutes), hours (2 hours), days (1 day), or "none"; minimum 5 minutes, default "none"
98
 
99
  *Sample*:
100
+ `[flexiblemap src="http://webaware.com.au/maps/example-toronto.kml" width="100%" height="400px"]`
101
 
102
  = Attributes for all maps =
103
 
180
 
181
  If your map is auto-generated or changes frequently, add the `kmlcache` attribute to ask Google to fetch a new copy periodically. You can specify the interval in minutes (e.g. "90 minutes"), hours (e.g. "2 hours"), or days (e.g. "1 day"). The minimum interval is 5 minutes.
182
 
183
+ `[flexiblemap src="http://webaware.com.au/maps/example-toronto.kml?v=2"]
184
+ [flexiblemap src="http://webaware.com.au/maps/example-toronto.kml" kmlcache="8 hours"]`
185
 
186
  = What parts of KML are supported? =
187
 
204
  `add_filter('flexmap_google_maps_api_args', 'force_flexmap_map_language');
205
 
206
  function force_flexmap_map_language($args) {
207
+ $args['language'] = get_locale();
208
+ return $args;
209
  }`
210
 
211
  = You've translated my language badly / it's missing =
212
 
213
+ The initial translations were made using Google Translate, so it's likely that some will be truly awful! If you'd like to help out by translating this plugin, please [sign up for an account and dig in](http://translate.webaware.com.au/projects/flexible-map).
214
 
215
  = The map is broken in jQuery UI tabs =
216
 
217
+ When you hide the map in a tab, and then click on the tab to reveal its contents, the map doesn't know how big to draw until it is revealed. You need to give Google Maps a nudge so that it will pick up the correct size and position when you reveal it. Download the .php file from [this gist](https://gist.github.com/webaware/05b27e3a99ccb00200f5), and install / activate to fix. If you'd prefer to add the jQuery code yourself, add this somewhere on the page (e.g. in your theme's footer):
218
 
219
  `<script>
220
+ jQuery("body").on("tabsactivate", function(event, ui) {
221
+ if (ui.newPanel.length) {
222
+ $("#" + ui.newPanel[0].id + " div.flxmap-container").each(function() {
223
+ var flxmap = window[this.getAttribute("data-flxmap")];
224
+ flxmap.redrawOnce();
225
+ });
226
+ }
 
 
227
  });
228
  </script>`
229
 
230
  For jQuery versions 1.8 or older:
231
 
232
  `<script>
233
+ jQuery("body").bind("tabsshow", function(event, ui) {
234
+ jQuery("#" + ui.panel.id + " div.flxmap-container").each(function() {
 
 
235
  var flxmap = window[this.getAttribute("data-flxmap")];
236
  flxmap.redrawOnce();
237
  });
238
  });
 
 
239
  </script>`
240
 
241
  For tabs in jQuery Tools, see [this support topic](http://wordpress.org/support/topic/tabs-map#post-3784706).
289
 
290
  1. `[flexiblemap center="-32.918657,151.797894" title="Nobby's Head" zoom="14" width="500" height="400" directions="true" maptype="satellite"]`
291
  2. `[flexiblemap address="116 Beaumont Street Hamilton NSW Australia" title="Raj's Corner" description="SWMBO's favourite Indian diner" width="500" height="400" directions="true"]`
292
+ 3. `[flexiblemap src="http://webaware.com.au/maps/example-toronto.kml?v=2" width="500" height="400" maptype="satellite"]`
293
  4. `[flexiblemap center="-34.916721,138.828878" width="500" height="400" title="Adelaide Hills" directions="true" showdirections="true" directionsfrom="Adelaide"]`
294
 
295
  == Changelog ==
296
 
297
+ = 1.8.0 [2014-08-31] =
298
+ * fixed: Czech translation (thanks, [caslavak](http://profiles.wordpress.org/caslavak/)!)
299
+ * fixed: Norwegian translations (thanks, [neonnero](http://www.neonnero.com/)!)
300
+ * changed: localisation uses standard .mo files now; if you'd like to help translate, please [sign up for an account and dig in](http://translate.webaware.com.au/projects/flexible-map).
301
+
302
  = 1.7.3.1 [2014-03-22] =
303
  * fixed: infowindow width on some Webkit browsers, and IE10/11
304