From c968a10284b750ed24eacf67089f62961326a0fc Mon Sep 17 00:00:00 2001
From: sgiehl <stefan@piwik.org>
Date: Wed, 30 Sep 2015 23:34:31 +0200
Subject: [PATCH] fixes #8848 - use translations for all countries on map

---
 plugins/UserCountryMap/Controller.php             | 11 +++++++++++
 plugins/UserCountryMap/javascripts/visitor-map.js |  9 ++++++++-
 plugins/UserCountryMap/templates/visitorMap.twig  |  1 +
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/plugins/UserCountryMap/Controller.php b/plugins/UserCountryMap/Controller.php
index e333e80c4a..c1c1b44e16 100644
--- a/plugins/UserCountryMap/Controller.php
+++ b/plugins/UserCountryMap/Controller.php
@@ -12,6 +12,7 @@ use Exception;
 use Piwik\API\Request;
 use Piwik\Common;
 use Piwik\Config;
+use Piwik\Container\StaticContainer;
 use Piwik\Piwik;
 use Piwik\Plugins\Goals\API as APIGoals;
 use Piwik\Site;
@@ -107,6 +108,16 @@ class Controller extends \Piwik\Plugin\Controller
         $view->config = json_encode($config);
         $view->noData = empty($config['visitsSummary']['nb_visits']);
 
+        $countriesByIso = array();
+        $regionDataProvider = StaticContainer::get('Piwik\Intl\Data\Provider\RegionDataProvider');
+        $countries = array_keys($regionDataProvider->getCountryList());
+
+        foreach ($countries AS $country) {
+            $countriesByIso[strtoupper($country)] = Piwik::translate('Intl_Country_'.strtoupper($country));
+        }
+
+        $view->countriesByIso = $countriesByIso;
+
         $view->continents = array(
             'AF' => \Piwik\Plugins\UserCountry\continentTranslate('afr'),
             'AS' => \Piwik\Plugins\UserCountry\continentTranslate('asi'),
diff --git a/plugins/UserCountryMap/javascripts/visitor-map.js b/plugins/UserCountryMap/javascripts/visitor-map.js
index 7b5210473c..fb4d5ad259 100644
--- a/plugins/UserCountryMap/javascripts/visitor-map.js
+++ b/plugins/UserCountryMap/javascripts/visitor-map.js
@@ -536,7 +536,14 @@
                             return UserCountryMap.countriesByIso[pd.iso] === undefined;
                         },
                         tooltips: function (pd) {
-                            return '<h3>' + pd.name + '</h3>' + _.no_visit;
+                            var countryName = pd.name;
+                            for (var iso in self.config.countryNames) {
+                                if (UserCountryMap.ISO2toISO3[iso.toUpperCase()] == pd.iso) {
+                                    countryName = self.config.countryNames[iso];
+                                    break;
+                                }
+                            }
+                            return '<h3>' + countryName + '</h3>' + _.no_visit;
                         }
                     });
 
diff --git a/plugins/UserCountryMap/templates/visitorMap.twig b/plugins/UserCountryMap/templates/visitorMap.twig
index 7fed992035..7873200c9f 100644
--- a/plugins/UserCountryMap/templates/visitorMap.twig
+++ b/plugins/UserCountryMap/templates/visitorMap.twig
@@ -80,6 +80,7 @@
     config = JSON.parse('{{ config|e('js') }}');
     config._ = JSON.parse('{{ localeJSON|e('js') }}');
     config.reqParams = JSON.parse('{{ reqParamsJSON|e('js') }}');
+    config.countryNames = JSON.parse('{{ countriesByIso|json_encode|e('js') }}');
 
     $('.UserCountryMap').addClass('dataTable');
 
-- 
GitLab