diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0e71eb78159949d17ed61a26971d8b961adae9c0..df034f4ea8b2bda15af2e9935db107f3089d74f7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -39,6 +39,12 @@ This is a changelog for Piwik platform developers. All changes for our HTTP API'
 * Support for IE8 was dropped. This affects only the Piwik UI, not the Piwik.js Tracker.
 * Required PHP version was changed from 5.3 to 5.5
 
+
+## Piwik 2.16.1
+
+### New features
+ * New method `setIsWritableByCurrentUser` for `SystemSetting` to change the writable permission for certain system settings via DI.
+
 ## Piwik 2.16.0
 
 ### New features
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f24e51b41bbcc0889d998051e958d22d7dac353f..2130bf7275640d72df4c2758244a409df6d04070 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -10,3 +10,7 @@ Please read the recommendations on writing a good [bug report](http://developer.
 ## How to suggest improvements to translations?
 
 You can help improve translations in Piwik, please read [contribute to translations](https://github.com/piwik/piwik/blob/master/lang/README.md).
+
+## How to submit code improvements via pull requests?
+
+You can help contribute to Piwik codebase via Pull Requests, see [Contributing to Piwik core](https://developer.piwik.org/guides/contributing-to-piwik-core)
diff --git a/README.md b/README.md
index 0b01769e0e9c5e6aad5006527a1ac1692345f94b..aec6448c3dfc72870e776a221c560ab409f669b5 100644
--- a/README.md
+++ b/README.md
@@ -12,6 +12,7 @@
 [![Code Coverage](https://scrutinizer-ci.com/g/piwik/piwik/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/piwik/piwik/?branch=master)
 [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/piwik/piwik.svg)](http://isitmaintained.com/project/piwik/piwik "Average time to resolve an issue")
 [![Percentage of issues still open](http://isitmaintained.com/badge/open/piwik/piwik.svg)](http://isitmaintained.com/project/piwik/piwik "Percentage of issues still open")
+[![Dependency Status](https://gemnasium.com/piwik/piwik.svg)](https://gemnasium.com/piwik/piwik)
 
 ## Description
 
diff --git a/composer.lock b/composer.lock
index 32d55198356bf20a0640d928a128bc4f32e63593..e880b460918bb124ad5381110e3a4d710e3765cd 100644
--- a/composer.lock
+++ b/composer.lock
@@ -823,16 +823,16 @@
         },
         {
             "name": "piwik/device-detector",
-            "version": "3.5.1",
+            "version": "3.6.0",
             "source": {
                 "type": "git",
                 "url": "https://github.com/piwik/device-detector.git",
-                "reference": "29830f9bd67c8300e37828db0688161dd6f5f7a5"
+                "reference": "8c2fcfce34d8bd25d8db9c48e67fabb65c5497ae"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/piwik/device-detector/zipball/29830f9bd67c8300e37828db0688161dd6f5f7a5",
-                "reference": "29830f9bd67c8300e37828db0688161dd6f5f7a5",
+                "url": "https://api.github.com/repos/piwik/device-detector/zipball/8c2fcfce34d8bd25d8db9c48e67fabb65c5497ae",
+                "reference": "8c2fcfce34d8bd25d8db9c48e67fabb65c5497ae",
                 "shasum": ""
             },
             "require": {
@@ -870,7 +870,7 @@
                 "parser",
                 "useragent"
             ],
-            "time": "2016-01-21 22:26:37"
+            "time": "2016-03-02 22:20:49"
         },
         {
             "name": "piwik/ini",
diff --git a/core/CronArchive.php b/core/CronArchive.php
index 28ddf49ce90755cb33979b208a52cc6ef3429449..d96a0a4ae82fb73696afd0a5641727f64df84102 100644
--- a/core/CronArchive.php
+++ b/core/CronArchive.php
@@ -265,6 +265,7 @@ class CronArchive
      *
      * @param string|null $processNewSegmentsFrom When to archive new segments from. See [General] process_new_segments_from
      *                                            for possible values.
+     * @param LoggerInterface|null $logger
      */
     public function __construct($processNewSegmentsFrom = null, LoggerInterface $logger = null)
     {
@@ -714,6 +715,12 @@ class CronArchive
 
     /**
      * Returns base URL to process reports for the $idSite on a given $period
+     *
+     * @param string $idSite
+     * @param string $period
+     * @param string $date
+     * @param bool|false $segment
+     * @return string
      */
     private function getVisitsRequestUrl($idSite, $period, $date, $segment = false)
     {
@@ -839,7 +846,11 @@ class CronArchive
         return true;
     }
 
-    private function getSegmentsForSite($idSite, $period)
+    /**
+     * @param $idSite
+     * @return array
+     */
+    private function getSegmentsForSite($idSite)
     {
         $segmentsAllSites = $this->segments;
         $segmentsThisSite = SettingsPiwik::getKnownSegmentsToArchiveForSite($idSite);
@@ -933,6 +944,8 @@ class CronArchive
 
     /**
      * Logs a section in the output
+     *
+     * @param string $title
      */
     private function logSection($title = "")
     {
@@ -968,6 +981,8 @@ class CronArchive
     /**
      * Issues a request to $url eg. "?module=API&method=API.getDefaultMetricTranslations&format=original&serialize=1"
      *
+     * @param string $url
+     * @return string
      */
     private function request($url)
     {
@@ -1053,6 +1068,7 @@ class CronArchive
 
     /**
      * @internal
+     * @param $api
      */
     public function setApiToInvalidateArchivedReport($api)
     {
@@ -1136,6 +1152,7 @@ class CronArchive
     /**
      * Detects whether a site had visits since midnight in the websites timezone
      *
+     * @param $idSite
      * @return bool
      */
     private function hadWebsiteTrafficSinceMidnightInTimezone($idSite)
@@ -1149,19 +1166,23 @@ class CronArchive
 
         $secondsSinceLastArchive = $this->getSecondsSinceLastArchive();
         if ($secondsSinceLastArchive < $secondsSinceMidnight) {
-            $secondsSinceMidnight = $secondsSinceLastArchive;
+            $secondsBackToLookForVisits = $secondsSinceLastArchive;
+            $sinceInfo = "(since the last successful archiving)";
+        } else {
+            $secondsBackToLookForVisits = $secondsSinceMidnight;
+            $sinceInfo = "(since midnight)";
         }
 
-        $from = Date::now()->subSeconds($secondsSinceMidnight)->getDatetime();
+        $from = Date::now()->subSeconds($secondsBackToLookForVisits)->getDatetime();
         $to   = Date::now()->addHour(1)->getDatetime();
 
         $dao = new RawLogDao();
         $hasVisits = $dao->hasSiteVisitsBetweenTimeframe($from, $to, $idSite);
 
         if ($hasVisits) {
-            $this->logger->info("- tracking data found for website id $idSite (between $from and $to)");
+            $this->logger->info("- tracking data found for website id $idSite since $from UTC $sinceInfo");
         } else {
-            $this->logger->info("- no new tracking data for website id $idSite (between $from and $to)");
+            $this->logger->info("- no new tracking data for website id $idSite since $from UTC $sinceInfo");
         }
 
         return $hasVisits;
@@ -1619,7 +1640,7 @@ class CronArchive
     private function getUrlsWithSegment($idSite, $period, $date)
     {
         $urlsWithSegment = array();
-        $segmentsForSite = $this->getSegmentsForSite($idSite, $period);
+        $segmentsForSite = $this->getSegmentsForSite($idSite);
 
         $segments = array();
         foreach ($segmentsForSite as $segment) {
@@ -1676,6 +1697,7 @@ class CronArchive
     /**
      * @param $idSite
      * @param $period
+     * @param $date
      */
     private function logArchiveWebsite($idSite, $period, $date)
     {
diff --git a/core/DataTable.php b/core/DataTable.php
index 326f25fc6f838ce888378c0b16027f7c7ee1f8f0..1cfe92491d5aea5c6468ee08716f2b3a7973e874 100644
--- a/core/DataTable.php
+++ b/core/DataTable.php
@@ -1722,6 +1722,7 @@ class DataTable implements DataTableInterface, \IteratorAggregate, \ArrayAccess
     public function mergeSubtables($labelColumn = false, $useMetadataColumn = false)
     {
         $result = new DataTable();
+        $result->setAllTableMetadata($this->getAllTableMetadata());
         foreach ($this->getRowsWithoutSummaryRow() as $row) {
             $subtable = $row->getSubtable();
             if ($subtable !== false) {
diff --git a/core/Piwik.php b/core/Piwik.php
index 89b1d6ce8759a3a657c63a26253615bef2b125fb..71817cb1964d051114d9736a3a6171359f41a6c4 100644
--- a/core/Piwik.php
+++ b/core/Piwik.php
@@ -589,7 +589,7 @@ class Piwik
         $l = strlen($userLogin);
         if (!($l >= $loginMinimumLength
             && $l <= $loginMaximumLength
-            && (preg_match('/^[A-Za-z0-9_.@+-]*$/D', $userLogin) > 0))
+            && (preg_match('/^[A-Za-zÄäÖöÜüß0-9_.@+-]*$/D', $userLogin) > 0))
         ) {
             throw new Exception(Piwik::translate('UsersManager_ExceptionInvalidLoginFormat', array($loginMinimumLength, $loginMaximumLength)));
         }
diff --git a/core/Plugin/ConsoleCommand.php b/core/Plugin/ConsoleCommand.php
index 29e2fc65f6c6fb422c7fa54d93e2d283bdf0871d..91d18c5c77a76baa2888e426177080be94ec7be4 100644
--- a/core/Plugin/ConsoleCommand.php
+++ b/core/Plugin/ConsoleCommand.php
@@ -21,19 +21,12 @@ class ConsoleCommand extends SymfonyCommand
 {
     public function writeSuccessMessage(OutputInterface $output, $messages)
     {
-        $lengths = array_map('strlen', $messages);
-        $maxLen = max($lengths) + 4;
-
-        $separator = str_pad('', $maxLen, '*');
-
         $output->writeln('');
-        $output->writeln('<info>' . $separator . '</info>');
 
         foreach ($messages as $message) {
-            $output->writeln('  ' . $message . '  ');
+            $output->writeln('<info>' . $message . '</info>');
         }
 
-        $output->writeln('<info>' . $separator . '</info>');
         $output->writeln('');
     }
 
diff --git a/core/Settings/SystemSetting.php b/core/Settings/SystemSetting.php
index fb0a4d7a2d6e23e767eed9fb110d7f4b01e2d74d..68e780a3e802c246156f055688b4537781925bbc 100644
--- a/core/Settings/SystemSetting.php
+++ b/core/Settings/SystemSetting.php
@@ -66,6 +66,16 @@ class SystemSetting extends Setting
         return $this->writableByCurrentUser;
     }
 
+    /**
+     * Set whether setting is writable or not. For example to hide setting from the UI set it to false.
+     *
+     * @param bool $isWritable
+     */
+    public function setIsWritableByCurrentUser($isWritable)
+    {
+        $this->writableByCurrentUser = (bool) $isWritable;
+    }
+
     /**
      * Returns `true` if this setting can be displayed for the current user, `false` if otherwise.
      *
diff --git a/js/piwik.js b/js/piwik.js
index 64998cd0cd7cbd829d4fc1a2f3a6ffe2456abe90..cd00196bd2cf609e3cd95b203cafb930385f427a 100644
--- a/js/piwik.js
+++ b/js/piwik.js
@@ -956,7 +956,7 @@ if (typeof JSON2 !== 'object' && typeof window.JSON === 'object' && window.JSON.
 /*global window */
 /*global unescape */
 /*global ActiveXObject */
-/*members encodeURIComponent, decodeURIComponent, getElementsByTagName,
+/*members Piwik, encodeURIComponent, decodeURIComponent, getElementsByTagName,
     shift, unshift, piwikAsyncInit, frameElement, self, hasFocus,
     createElement, appendChild, characterSet, charset, all,
     addEventListener, attachEvent, removeEventListener, detachEvent, disableCookies,
@@ -1046,8 +1046,8 @@ if (typeof _paq !== 'object') {
 }
 
 // Piwik singleton and namespace
-if (typeof Piwik !== 'object') {
-    Piwik = (function () {
+if (typeof window.Piwik !== 'object') {
+    window.Piwik = (function () {
         'use strict';
 
         /************************************************************
@@ -1702,6 +1702,21 @@ if (typeof Piwik !== 'object') {
             return -1;
         }
 
+        function stringEndsWith(str, suffix) {
+            str = String(str);
+            return str.indexOf(suffix, str.length - suffix.length) !== -1;
+        }
+
+        function stringContains(str, needle) {
+            str = String(str);
+            return str.indexOf(needle) !== -1;
+        }
+
+        function removeCharactersFromEndOfString(str, numCharactersToRemove) {
+            str = String(str);
+            return str.substr(0, str.length - numCharactersToRemove);
+        }
+
         /************************************************************
          * Element Visiblility
          ************************************************************/
@@ -2086,7 +2101,7 @@ if (typeof Piwik !== 'object') {
                     var foundNodes = nodeToSearch.getElementsByClassName(className);
                     return this.htmlCollectionToArray(foundNodes);
                 }
-                
+
                 var children = getChildrenFromNode(nodeToSearch);
 
                 if (!children || !children.length) {
@@ -2658,10 +2673,29 @@ if (typeof Piwik !== 'object') {
                 return apiUrl;
             }
 
-            if (trackerUrl.slice(-9) === 'piwik.php') {
-                trackerUrl = trackerUrl.slice(0, trackerUrl.length - 9);
+            // if eg http://www.example.com/js/tracker.php?version=232323 => http://www.example.com/js/tracker.php
+            if (stringContains(trackerUrl, '?')) {
+                var posQuery = trackerUrl.indexOf('?');
+                trackerUrl   = trackerUrl.slice(0, posQuery);
+            }
+
+            if (stringEndsWith(trackerUrl, 'piwik.php')) {
+                // if eg without domain or path "piwik.php" => ''
+                trackerUrl = removeCharactersFromEndOfString(trackerUrl, 'piwik.php'.length);
+            } else if (stringEndsWith(trackerUrl, '.php')) {
+                // if eg http://www.example.com/js/piwik.php => http://www.example.com/js/
+                // or if eg http://www.example.com/tracker.php => http://www.example.com/
+                var lastSlash = trackerUrl.lastIndexOf('/');
+                var includeLastSlash = 1;
+                trackerUrl = trackerUrl.slice(0, lastSlash + includeLastSlash);
+            }
+
+            // if eg http://www.example.com/js/ => http://www.example.com/ (when not minified Piwik JS loaded)
+            if (stringEndsWith(trackerUrl, '/js/')) {
+                trackerUrl = removeCharactersFromEndOfString(trackerUrl, 'js/'.length);
             }
 
+            // http://www.example.com/
             return trackerUrl;
         }
 
@@ -3058,16 +3092,6 @@ if (typeof Piwik !== 'object') {
                 return false;
             }
 
-            function stringEndsWith(str, suffix) {
-                str = String(str);
-                return str.indexOf(suffix, str.length - suffix.length) !== -1;
-            }
-
-            function removeCharactersFromEndOfString(str, numCharactersToRemove) {
-                str = String(str);
-                return str.substr(0, str.length - numCharactersToRemove);
-            }
-
             /*
              * Extract pathname from URL. element.pathname is actually supported by pretty much all browsers including
              * IE6 apart from some rare very old ones
@@ -4050,8 +4074,7 @@ if (typeof Piwik !== 'object') {
              * Log the page view / visit
              */
             function logPageView(customTitle, customData) {
-                var now = new Date(),
-                    request = getRequest('action_name=' + encodeWrapper(titleFixup(customTitle || configTitle)), customData, 'log');
+                var request = getRequest('action_name=' + encodeWrapper(titleFixup(customTitle || configTitle)), customData, 'log');
 
                 sendRequest(request, configTrackerPause);
             }
@@ -4153,7 +4176,7 @@ if (typeof Piwik !== 'object') {
                 var sourceHref = sourceElement.href.replace(originalSourceHostName, sourceHostName);
 
                 // browsers, such as Safari, don't downcase hostname and href
-                var scriptProtocol = new RegExp('^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto):', 'i');
+                var scriptProtocol = new RegExp('^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):', 'i');
 
                 if (!scriptProtocol.test(sourceHref)) {
                     // track outlinks and all downloads
@@ -6502,7 +6525,7 @@ if (window && window.piwikAsyncInit) {
 (function () {
     var jsTrackerType = (typeof AnalyticsTracker);
     if (jsTrackerType === 'undefined') {
-        AnalyticsTracker = Piwik;
+        AnalyticsTracker = window.Piwik;
     }
 }());
 /*jslint sloppy: false */
@@ -6544,7 +6567,7 @@ if (typeof piwik_log !== 'function') {
 
         // instantiate the tracker
         var option,
-            piwikTracker = Piwik.getTracker(piwikUrl, siteId);
+            piwikTracker = window.Piwik.getTracker(piwikUrl, siteId);
 
         // initialize tracker
         piwikTracker.setDocumentTitle(documentTitle);
diff --git a/lang/am.json b/lang/am.json
index 3635057355eeae1a9eaad34da0517cc99f058967..2ec6809da9a6e2b369e138599cdd6f8c87b0bc1a 100644
--- a/lang/am.json
+++ b/lang/am.json
@@ -61,7 +61,7 @@
         "Settings": "ቅንብሮች",
         "Table": "ሰንጠረዥ",
         "TagCloud": "መለያ Cloud",
-        "TranslatorName": "Alazar Tekle of <a href=\"http:\/\/www.addismap.com\">Addis Map<\/a> \/ <a href=\"http:\/\/www.map.et\">Ethiopia Map<\/a>",
+        "TranslatorName": "Alazar Tekle \/ Ethiopia Map",
         "Unknown": "ያልታወቀ",
         "VBarGraph": "አቀባዊ አሞሌ ግራፍ",
         "View": "ትእይታ",
diff --git a/lang/be.json b/lang/be.json
index 6d20136fc0e605a234f057fbc8fb8976e5c68d71..774c5757805134c852ba8f16c66378f221d8c2a7 100644
--- a/lang/be.json
+++ b/lang/be.json
@@ -226,7 +226,7 @@
         "Tax": "Падатак",
         "Total": "Агульна",
         "TotalRevenue": "Агульны прыбытак",
-        "TranslatorName": "Marcis G, <a href=\"http:\/\/finfact.org\">Alban 'r4bble' Ardua<\/a>, Iflexion design",
+        "TranslatorName": "Marcis G, Alban 'r4bble' Ardua, Iflexion design",
         "UniquePurchases": "Унікальныя пакупкі",
         "Unknown": "Невядома",
         "Upload": "Загрузіць",
diff --git a/lang/bg.json b/lang/bg.json
index 902bbfb91daed49431e5edcbe17374a65cfdf118..843f5ca515692200861ab6070af352dbbca56bba 100644
--- a/lang/bg.json
+++ b/lang/bg.json
@@ -340,7 +340,7 @@
         "TotalRatioTooltip": "Това е %1$s от всички %2$s %3$s.",
         "TotalRevenue": "Общо приход",
         "TransitionsRowActionTooltip": "Вижте какво посетителите са правили преди и след посещаването на тази страница",
-        "TranslatorName": "Kristalin Chavdarov, <a href=\"http:\/\/coffebreak.info\">Андон Иванов<\/a>, Tom Atanasov, Dimitar Stamenov, Панайотис Кондоянис",
+        "TranslatorName": "Kristalin Chavdarov, Андон Иванов, Tom Atanasov, Dimitar Stamenov, Панайотис Кондоянис",
         "UniquePurchases": "Уникални поръчки",
         "Unknown": "Неизвестен",
         "Upload": "Качи",
diff --git a/lang/cs.json b/lang/cs.json
index 2cfd9c7ea5b53c4a8c4c09aab79233fd04b97689..274cd5ed67554aa24271d8e643d666c18a445361 100644
--- a/lang/cs.json
+++ b/lang/cs.json
@@ -366,7 +366,7 @@
         "TrackingScopeVisit": "Návštěva",
         "TransitionsRowActionTooltip": "Podívejte se, co dělali návštěvníci před a po návštěvě této stránky",
         "TransitionsRowActionTooltipTitle": "Otevřít přechody",
-        "TranslatorName": "Filip Bartmann, Jakub Baláš, Michal Čihař",
+        "TranslatorName": "Filip Bartmann, Jakub Baláš, Michal Čihař, <a href=\"https:\/\/www.openhub.net\/accounts\/svetlemodry\">Jaroslav Lichtblau<\/a>",
         "UniquePurchases": "Jedineční nakupující",
         "Unknown": "Neznámý",
         "Upload": "Nahrát",
diff --git a/lang/da.json b/lang/da.json
index e5c5b2e313a6f1905d9cc4ad99dece05c0d97cfd..d390d5016d539e1b84617ac444d4a0a7b7611636 100644
--- a/lang/da.json
+++ b/lang/da.json
@@ -341,7 +341,7 @@
         "TotalRevenue": "Indtægter i alt",
         "TransitionsRowActionTooltip": "See hvad besøgende gjorde før og efter de så denne side",
         "TransitionsRowActionTooltipTitle": "Ã…ben overgange",
-        "TranslatorName": "<a href=\"http:\/\/danieljuhl.dk\/\">Daniel Juhl<\/a>, jan madsen",
+        "TranslatorName": "Daniel Juhl, jan madsen",
         "UniquePurchases": "Unikke køb",
         "Unknown": "Ukendt",
         "Upload": "Overfør",
diff --git a/lang/de.json b/lang/de.json
index 94f585b079d085cc803d003df4fc5a2577339294..4fcf0eb9bb13db6d1e5e472959696f4b1eb2e7b5 100644
--- a/lang/de.json
+++ b/lang/de.json
@@ -86,6 +86,7 @@
         "ConfigFileIsNotWritable": "Die Piwik-Konfigurationsdatei %1$s ist nicht schreibbar, Ihre Änderungen werden nicht gespeichert. %2$s Bitte ändern Sie die Zugriffsrechte der Konfigurationsdatei, um diese schreibbar zu machen.",
         "Continue": "Weiter",
         "ContinueToPiwik": "Weiter zu Piwik",
+        "CurrentlyUsingUnsecureHttp": "Sie besuchen Piwik über eine unsichere HTTP-Verbindung. Wir empfehlen Ihnen, SSL (HTTPS) zu aktivieren.",
         "CreatedByUser": "Erstellt von %s",
         "CurrentMonth": "Aktueller Monat",
         "CurrentWeek": "Aktuelle Woche",
@@ -230,6 +231,7 @@
         "Name": "Name",
         "NbActions": "Anzahl der Aktionen",
         "NbSearches": "Anzahl der internen Suchen",
+        "NeedMoreHelp": "Benötigen Sie weitere Hilfe?",
         "Never": "Niemals",
         "NewReportsWillBeProcessedByCron": "Wenn der Archivierungsprozess nicht vom Browser ausgelöst wird, werden neue Berichte vom Cronjob erzeugt.",
         "NewUpdatePiwikX": "Neue Version: Piwik %s",
diff --git a/lang/el.json b/lang/el.json
index 23662599bab37755a87592e1d4d53b56ba2ce39e..fcceae2a811a774290032c520b9d6efcf6316470 100644
--- a/lang/el.json
+++ b/lang/el.json
@@ -366,7 +366,7 @@
         "TrackingScopeVisit": "Επίσκεψη",
         "TransitionsRowActionTooltip": "Δείτε τι έκαναν οι επισκέπτες πριν και μετά την προβολή αυτής της σελίδας",
         "TransitionsRowActionTooltipTitle": "Άνοιγμα Μεταβάσεων",
-        "TranslatorName": "Jim Black www.jblack.info, Γεώργιος Τέλλος OnSite.Net VoIP & IT Solutions, Παναγιώτης Παπάζογλου Δρ. Δασολόγος-Περιβαλλοντολόγος, <a href=\"http:\/\/www.lourdas.name\">Λούρδας Βασίλειος<\/a>",
+        "TranslatorName": "Jim Black, Γεώργιος Τέλλος OnSite.Net VoIP & IT Solutions, Παναγιώτης Παπάζογλου Δρ. Δασολόγος-Περιβαλλοντολόγος, Λούρδας Βασίλειος, <a href=\"https:\/\/gr.linkedin.com\/in\/lourdas\">Vasilis Lourdas<\/a>",
         "UniquePurchases": "Μοναδικές Παραγγελίες",
         "Unknown": "Άγνωστο",
         "Upload": "Αποστολή",
diff --git a/lang/fa.json b/lang/fa.json
index f3761b143e78df48fa35f49b2e3434dc607bb7ff..248c7712e464fdda33e6813813cf64baade041c6 100644
--- a/lang/fa.json
+++ b/lang/fa.json
@@ -312,7 +312,7 @@
         "TotalRevenue": "درآمد کل",
         "TransitionsRowActionTooltip": "کارهایی که بازدیدکنندگان قبل و بعد از دیدن این صفحه انجام داده اند را ببینید",
         "TransitionsRowActionTooltipTitle": "انتقال های باز",
-        "TranslatorName": "reza abbasi, <a href=\"http:\/\/parsigate.com\">ParsiGate and Sweddata<\/a>, Hojat Ghanad",
+        "TranslatorName": "reza abbasi, ParsiGate and Sweddata, Hojat Ghanad",
         "UniquePurchases": "خرید های متفاوت",
         "Unknown": "ناشناس",
         "Upload": "آپلود",
diff --git a/lang/fi.json b/lang/fi.json
index eec6f7eba142911b6517e11633a06b4070e0843e..715c3afc411a6f7df469caee06a3e692f762246a 100644
--- a/lang/fi.json
+++ b/lang/fi.json
@@ -340,7 +340,7 @@
         "TotalRevenue": "Tulot yhteensä",
         "TransitionsRowActionTooltip": "Näe mitä kävijät tekivät ennen ja jälkeen tällä sivulla käymistä",
         "TransitionsRowActionTooltipTitle": "Avaa muutokset",
-        "TranslatorName": "<a href=\"http:\/\/olli.jarva.fi\/\">Olli Jarva<\/a>, <a href=\"http:\/\/www.alennuskoodia.fi\/\">Alennuskoodia.fi<\/a>",
+        "TranslatorName": "<a href=\"http:\/\/olli.jarva.fi\/\">Olli Jarva<\/a>",
         "UniquePurchases": "Uniikit ostot",
         "Unknown": "Tuntematon",
         "Upload": "Lähetä",
diff --git a/lang/fr.json b/lang/fr.json
index ca448a47060daac5d55c125054b031387daafae7..73317845606cc43d85df2ad3a894614e197f63e5 100644
--- a/lang/fr.json
+++ b/lang/fr.json
@@ -364,7 +364,7 @@
         "TrackingScopeVisit": "Visite",
         "TransitionsRowActionTooltip": "Visualisez ce que les visiteurs ont fait après avoir visité cette page",
         "TransitionsRowActionTooltipTitle": "Ouvrir les transitions",
-        "TranslatorName": "<a href=\"http:\/\/microsofttouch.fr\/default\/b\/vincent\/default.aspx\">Vincent BIRET<\/a>, <a href=\"http:\/\/www.ludovicevrard.com\">Ludovic Evrard<\/a>, Daniel Castronovo",
+        "TranslatorName": "<a href=\"http:\/\/microsofttouch.fr\/default\/b\/vincent\/default.aspx\">Vincent BIRET<\/a>, Ludovic Evrard, Daniel Castronovo",
         "UniquePurchases": "Achats uniques",
         "Unknown": "Inconnu",
         "Upload": "Téléchargement",
diff --git a/lang/he.json b/lang/he.json
index c73ae356ac6283f841aba7bf8ab117f2b1c9b5c4..ad2e793d5680f695ffecd62393711110f85c25e0 100644
--- a/lang/he.json
+++ b/lang/he.json
@@ -186,7 +186,7 @@
         "Table": "טבלה",
         "TagCloud": "ענן תגים",
         "Total": "סך הכל",
-        "TranslatorName": "<a href=\"http:\/\/www.nirlah.com\">Nirlah - Nir Lahad<\/a>",
+        "TranslatorName": "Nirlah - Nir Lahad",
         "Unknown": "לא ידוע",
         "Upload": "העלאה",
         "Username": "שם משתמש",
diff --git a/lang/hi.json b/lang/hi.json
index fedbd7a13d1bdfc80b8e57a72d98eba2440d704f..f186ddc2306b7a47d327550291f51711c9118843 100644
--- a/lang/hi.json
+++ b/lang/hi.json
@@ -336,7 +336,7 @@
         "TotalRevenue": "कुल राजस्व",
         "TransitionsRowActionTooltip": "पहले और इस पृष्ठ को देखने के बाद दर्शकों ने क्या किया देखें",
         "TransitionsRowActionTooltipTitle": "ओपन बदलाव",
-        "TranslatorName": "<a href=\"http:\/\/www.ajoft.com\/\">Ajoft Softwares<\/a> , <a href=\"http:\/\/search-sos.org\">Ritesh Kumar<\/a> , <a href=\"http:\/\/www.best-whiteningstrips.com\/\">Rahul Patil<\/a>",
+        "TranslatorName": "Ajoft Softwares , Ritesh Kumar , Rahul Patil",
         "UniquePurchases": "अद्वितीय खरीद",
         "Unknown": "अज्ञात",
         "Upload": "अपलोड करें",
diff --git a/lang/id.json b/lang/id.json
index 2e052353fcef56d36bc27cf2509e6530a37ff61e..32d01c7113a8c98742d773222075aeda673b487d 100644
--- a/lang/id.json
+++ b/lang/id.json
@@ -320,7 +320,7 @@
         "TotalRevenue": "Jumalh Pendapatan",
         "TransitionsRowActionTooltip": "Lihat apa yang pengujung lakukan sebelum dan sesudah melihat halaman ini",
         "TransitionsRowActionTooltipTitle": "Buka Peralihan",
-        "TranslatorName": "<a href=\"http:\/\/alihbahasa.yuah.web.id\/?asal=piwikfl\">Bayu Aditya H<\/a>, Djaka PM, Hendry Lee",
+        "TranslatorName": "Bayu Aditya H, Djaka PM, Hendry Lee",
         "UniquePurchases": "Pembelian Unik",
         "Unknown": "TakTahu",
         "Upload": "Unggah",
diff --git a/lang/ko.json b/lang/ko.json
index 0e3adbe8531bbb6e5d7828878036a963f794e363..615e8bf38319749ffd4378a47b31d79a22c5d2d9 100644
--- a/lang/ko.json
+++ b/lang/ko.json
@@ -83,6 +83,7 @@
         "ConfigFileIsNotWritable": "Piwik 설정 파일 %1$s를 쓸수 없기 때문에 일부 변경이 저장되지 않을 수 있습니다. %2$s 설정 파일의 권한을 쓸 수 있게 변경하세요.",
         "Continue": "계속",
         "ContinueToPiwik": "Piwik 계속 하기",
+        "CurrentlyUsingUnsecureHttp": "현재 위험할 수 있는 불안전한 HTTP를 통해 Piwik를 이용하고 있습니다. 우리는 SSL (HTTPS)를 설치하여 보안을 향상시킬 것을 추천합니다.",
         "CurrentMonth": "이번달",
         "CurrentWeek": "이번주",
         "CurrentYear": "올해",
@@ -188,6 +189,7 @@
         "Language": "언어",
         "LastDays": "마지막 %s일간 (오늘 포함)",
         "LastDaysShort": "마지막 %s일",
+        "Live": "라이브",
         "Loading": "로딩중...",
         "LoadingData": "데이터 로딩중...",
         "LoadingPopover": "로딩중 %s...",
@@ -321,9 +323,11 @@
         "TimeOnPage": "페이지에 머문 시간",
         "Total": "총",
         "TotalRevenue": "총 수익",
+        "TrackingScopePage": "페이지",
+        "TrackingScopeVisit": "방문",
         "TransitionsRowActionTooltip": "이 페이지를 조회하기 이전의 방문자 행동 추적",
         "TransitionsRowActionTooltipTitle": "트렌지션 열기",
-        "TranslatorName": "Jong-In Kim, <a href=\"http:\/\/firejune.com\">Joon Kyoung<\/a>",
+        "TranslatorName": "Jong-In Kim, Joon Kyoung, <a href=\"https:\/\/www.linkedin.com\/in\/jybak\">JinYeong Bak<\/a>",
         "UniquePurchases": "고유 주문",
         "Unknown": "알수없음",
         "Upload": "업로드",
@@ -358,6 +362,7 @@
         "Weekly": "주간",
         "WeeklyReport": "매주",
         "WeeklyReports": "주간 보고서",
+        "WellDone": "잘 처리되었습니다!",
         "Widgets": "위젯",
         "Widget": "위젯",
         "YearlyReport": "매년",
diff --git a/lang/pl.json b/lang/pl.json
index 743a5fc86229cfe5b29436462d94d80e0357a9a9..b908e83f8e73107ad88076c6163b8dec01c66019 100644
--- a/lang/pl.json
+++ b/lang/pl.json
@@ -331,7 +331,7 @@
         "TrackingScopePage": "Strona",
         "TrackingScopeVisit": "Wizyta",
         "TransitionsRowActionTooltipTitle": "Otwarte przejścia",
-        "TranslatorName": "<a href=\"http:\/\/eliteria.pl\">Remigiusz Waszkiewicz<\/a>, Marcin Kowol, Maciej Zawadziński, Artur Warchoł,AETERNUS, Tomasz Kornicki",
+        "TranslatorName": "Remigiusz Waszkiewicz, Marcin Kowol, Maciej Zawadziński, Artur Warchoł,AETERNUS, Tomasz Kornicki",
         "UniquePurchases": "Unikalnych zakupów",
         "Unknown": "Nieznany",
         "Upload": "Wgraj",
diff --git a/lang/pt-br.json b/lang/pt-br.json
index 9d55d2908d5c946cf622dfcfbe1eb51df10e699a..caa49ba874aa50e81d912bf916c0dc47bb2af09f 100644
--- a/lang/pt-br.json
+++ b/lang/pt-br.json
@@ -366,7 +366,7 @@
         "TrackingScopeVisit": "Visita",
         "TransitionsRowActionTooltip": "Veja o que os visitantes fizeram antes e depois de verem este página",
         "TransitionsRowActionTooltipTitle": "Transições abertas",
-        "TranslatorName": "Marcos Napier, Marcela Ferraro, Zob, Raphael Milani, Fernando Fraga Rodrigues",
+        "TranslatorName": "<a href=\"https:\/\/arenato.com\">A. Renato<\/a>",
         "UniquePurchases": "Pedidos únicos",
         "Unknown": "Desconhecido",
         "Upload": "Carregar",
diff --git a/lang/ro.json b/lang/ro.json
index ee042e57e643fddd7a2b591e0d6ddbb58440f348..b180bbe00ed3cd692b096a5b19be86932994831f 100644
--- a/lang/ro.json
+++ b/lang/ro.json
@@ -327,7 +327,7 @@
         "TotalRevenue": "Venit total",
         "TransitionsRowActionTooltip": "Vezi ce au făcut vizitatorii până la şi după vizionarea acestei pagini",
         "TransitionsRowActionTooltipTitle": "Treceri Deschise",
-        "TranslatorName": "astonsoftware, <a href=\"http:\/\/inboxtranslations.com\">Inbox Translation<\/a>, <a href=\"http:\/\/marcelbejgu.ro\">Marcel Bejgu<\/a>",
+        "TranslatorName": "astonsoftware, Inbox Translation, Marcel Bejgu",
         "UniquePurchases": "Cumparaturi unice",
         "Unknown": "Necunoscut",
         "Upload": "Incarca",
diff --git a/lang/ru.json b/lang/ru.json
index cd59aba81baabaf9bc3a13d72e0d8c793f0bd2a1..79d4aed2c4fd95e8a96ea2ad8e52730ff550d029 100644
--- a/lang/ru.json
+++ b/lang/ru.json
@@ -351,7 +351,7 @@
         "TotalVisitsPageviewsActionsRevenue": "(Всего: %1$s визиты, %2$s просмотры страниц, %3$s действия, %4$s выручка)",
         "TransitionsRowActionTooltip": "Посмотрите, что посетители делали до и после просмотра этой страницы",
         "TransitionsRowActionTooltipTitle": "Открыть переходы",
-        "TranslatorName": "Ademaro, <a href=\"http:\/\/jokerintertactive.ru\/\">Joker Interactive<\/a>, <a href=\"http:\/\/codax.ru\/\">Важенин Илья (компания Codax)<\/a>, Nelde Maxim, Andrey, Vadim Nekhai, <a href=\"https:\/\/uptimepal.net\">UptimePal<\/a>",
+        "TranslatorName": "Ademaro, Joker Interactive, Важенин Илья (компания Codax), Nelde Maxim, Andrey, Vadim Nekhai, UptimePal",
         "UniquePurchases": "Уникальные покупки",
         "Unknown": "Неизвестно",
         "Upload": "Закачать",
diff --git a/lang/sk.json b/lang/sk.json
index 8377e7666b6b2150bba5df36eceac58ab7922856..23e3e458ab04a9e73b25e652918f5a3dfc138feb 100644
--- a/lang/sk.json
+++ b/lang/sk.json
@@ -27,6 +27,7 @@
         "CannotUnzipFile": "Nie je možné rozbaliť súbor %1$s: %2$s",
         "ChangePassword": "Zmena hesla",
         "ChangeTagCloudView": "Všimnite si, že reporty môžete vidieť aj iným spôsobom ako oblak značiek. Použite ovládanie na spodku grafu pre prepínanie zobrazenia.",
+        "ChooseDate": "Vyberte dátum, aktuálne zvolený dátum je: %s",
         "ChooseLanguage": "Vyberte jazyk",
         "ChoosePeriod": "Vyberte si obdobie",
         "ClickHere": "Klinite pre viac informácií.",
@@ -85,6 +86,8 @@
         "ConfigFileIsNotWritable": "Konfiguračný súbor %1$s Piwiku , some of your changes might not be saved. %2$s Please change permissions of the config file to make it writable.",
         "Continue": "Pokračovať",
         "ContinueToPiwik": "Pokračovať do projektu Piwik",
+        "CurrentlyUsingUnsecureHttp": "Používate Piwik na nezabezpečenom HTTP, ktoré môže byť rizikové. Odporúčame vám nastaviť Piwik na používanie SSL (HTTPS) pre zlepšenie bezpečnosti.",
+        "CreatedByUser": "vytvoril %s",
         "CurrentMonth": "Aktuálny mesiac",
         "CurrentWeek": "Aktuálny týždeň",
         "CurrentYear": "Aktuálny rok",
@@ -228,6 +231,7 @@
         "Name": "Meno",
         "NbActions": "Počet akcií",
         "NbSearches": "Počet vnútorných vyhľadávaní",
+        "NeedMoreHelp": "Potrebujete pomoc?",
         "Never": "Nikdy",
         "NewReportsWillBeProcessedByCron": "Ak nie je archivovanie Piwiku spúštané prehliadačom, nové správy budú spracované crontabom.",
         "NewUpdatePiwikX": "Nová aktualizácia: Piwik %s",
@@ -262,8 +266,11 @@
         "OperationIsNot": "Nie je",
         "OperationLessThan": "Menej ako",
         "OperationNotEquals": "Nerovná sa",
+        "OperationStartsWith": "Začína s",
+        "OperationEndsWith": "Končí na",
         "OptionalSmtpPort": "Nepovinné. Východiskové nastavenie je port 25 pre nešifrované spojenie a TLS STMP, či port 465 pre SSL STMP.",
         "Options": "Možnosti",
+        "Or": "alebo",
         "OrCancel": "alebo %1$s Zatvoriť %2$s",
         "Others": "Ostatné",
         "Outlink": "Odchádzajúci preklik",
@@ -272,6 +279,7 @@
         "OverlayRowActionTooltipTitle": "Otvoriť prekrytie stránky",
         "Overview": "Prehľad",
         "Pages": "Stránky",
+        "Pagination": "%1$s - %2$s z %3$s",
         "PaginationWithoutTotal": "%1$s - %2$s",
         "ParameterMustIntegerBetween": "Parameter %1$s musí byť číselná hodnota medzi %2$s a %3$s.",
         "Password": "Heslo",
@@ -353,6 +361,9 @@
         "TotalRatioTooltip": "Toto je %1$s z celkového %2$s %3$s.",
         "TotalRevenue": "Celkový príjem",
         "TotalVisitsPageviewsActionsRevenue": "(Celkom: %1$s návštev, %2$s zobrazení, %3$s akcií, tržby: %4$s)",
+        "TrackingScopeAction": "Akcia",
+        "TrackingScopePage": "Strana",
+        "TrackingScopeVisit": "Návšteva",
         "TransitionsRowActionTooltip": "Pozrite si čo robili návštevníci pred a po prezretí si tejto stránky.",
         "TransitionsRowActionTooltipTitle": "Otvorené zmeny",
         "TranslatorName": "Miroslav Habara, Zdenko Podobný, Juraj \"Lup0\" Viktorín, Ivanka",
diff --git a/lang/sl.json b/lang/sl.json
index d1a09bcbbc569de5fa4b106f8c9df771105e7974..70c1860508744f771f9d7e8ceb1ce5083b84e7b1 100644
--- a/lang/sl.json
+++ b/lang/sl.json
@@ -345,7 +345,7 @@
         "TotalRevenue": "Skupni prihodki",
         "TransitionsRowActionTooltip": "Poglejte kaj so obiskovalci počeli pred in potem, ko so obiskali to stran",
         "TransitionsRowActionTooltipTitle": "Odpri prehode",
-        "TranslatorName": "Aleksej Lazanski, <a href=\"http:\/\/www.hupso.com\">Tom Merc<\/a>",
+        "TranslatorName": "Aleksej Lazanski, Tom Merc",
         "UniquePurchases": "Edinstveni nakupi",
         "Unknown": "Neznano",
         "Upload": "Naloži",
diff --git a/lang/sq.json b/lang/sq.json
index 28df9c980c8c4f686c524f073b90113eb6f37a49..6e516c0bf052f79a057d323ef282521cba45f26d 100644
--- a/lang/sq.json
+++ b/lang/sq.json
@@ -1,5 +1,7 @@
 {
     "General": {
+        "12HourClock": "orë 12-orëshe",
+        "24HourClock": "orë 24-orëshe",
         "AbandonedCarts": "Shporta të Braktisura",
         "AboutPiwikX": "Rreth Piwik-ut %s",
         "Action": "Veprim",
@@ -7,7 +9,7 @@
         "Add": "Shtoni",
         "AfterEntry": "pas hyrjes këtu",
         "All": "Krejt",
-        "AllowPiwikArchivingToTriggerBrowser": "Arkivoji raportet kur shihen që nga shfletuesi",
+        "AllowPiwikArchivingToTriggerBrowser": "Lejoje vënien në punë të arkivimit nga Piwik-u kur raportet shihen në një shfletues",
         "AllWebsitesDashboard": "Pult për krejt sajtet",
         "And": "dhe",
         "API": "API",
@@ -48,7 +50,7 @@
         "ColumnDestinationPage": "Faqe e Synuar",
         "ColumnEntrances": "Hyrje",
         "ColumnEntrancesDocumentation": "Numër vizitash që zunë fill në këtë faqe.",
-        "ColumnExitRate": "Mesatare Largimesh",
+        "ColumnExitRate": "Mesatare largimesh",
         "ColumnExitRateDocumentation": "Përqindje vizitash që e braktisën sajtin pas parjes së kësaj faqeje.",
         "ColumnExits": "Dalje",
         "ColumnExitsDocumentation": "Numër vizitash që përfunduan me këtë faqe.",
@@ -65,7 +67,7 @@
         "ColumnNbVisits": "Vizita",
         "ColumnNbVisitsDocumentation": "Nëse një vizitor vjen për herë të parë në sajtin tuaj, ose nëse e viziton një faqe pas më shumë se 30 minutash pasi ka parë faqen e fundit, kjo do të regjistrohet si vizitë e re.",
         "ColumnPageBounceRateDocumentation": "Përqindje vizitash që zunë fill në këtë faqe dhe e braktisën sajtin menjëherë.",
-        "ColumnPageviews": "Shikime faqesh",
+        "ColumnPageviews": "Parje faqesh",
         "ColumnPageviewsDocumentation": "Sa herë është vizituar kjo faqe.",
         "ColumnPercentageVisits": "% Vizita",
         "ColumnRevenue": "Të ardhura",
@@ -73,9 +75,8 @@
         "ColumnTotalPageviews": "Parje faqesh Gjithsej",
         "ColumnUniqueEntrances": "Hyrje unike",
         "ColumnUniqueExits": "Dalje unike",
-        "ColumnUniquePageviews": "Shikime Unike Faqesh",
+        "ColumnUniquePageviews": "Parje Unike Faqesh",
         "ColumnUniquePageviewsDocumentation": "Numër vizitash që përfshinë edhe këtë faqe. Nëse një faqe qe parë disa herë gjatë një vizite, numërohet vetëm një herë.",
-        "ColumnValuePerVisit": "Vlerë për Vizitë",
         "ColumnViewedAfterSearch": "Përfundime kërkimi të klikuara",
         "ColumnViewedAfterSearchDocumentation": "Numri i herëve që kjo Faqe qe vizituar nga një vizitor, pasi kreu një kërkim mbi sajtin tuaj, dhe klikoi mbi këtë faqe te përfundimet e kërkimit.",
         "ColumnVisitDuration": "Kohëzgjatje Vizite (në sekonda)",
@@ -97,6 +98,7 @@
         "DateRange": "Interval datash:",
         "DateRangeFrom": "Prej",
         "DateRangeFromTo": "Nga %1$s në %2$s",
+        "DateRangeInPeriodList": "Interval datash",
         "DateRangeTo": "Për",
         "DaysHours": "%1$s ditë %2$s orë",
         "DaysSinceFirstVisit": "Ditë që nga vizita e parë",
@@ -126,103 +128,91 @@
         "EcommerceVisitStatusDesc": "Shihni gjendjen e E-trgtisë në fund të vizitës",
         "EcommerceVisitStatusEg": "Për shembull, për të përzgjedhur krejt vizitat që janë bërë një porosi E-tregti, kërkesa API do të duhej të përmbante %s",
         "Edit": "Përpunojeni",
-        "EncryptedSmtpTransport": "Jepni kodimin e shtresës së mbartjes siç e kërkon shërbyesi juaj SMTP.",
+        "EncryptedSmtpTransport": "Jepni fshehtëzimin e shtresës së mbartjes siç e kërkon shërbyesi juaj SMTP.",
         "Error": "Gabim",
         "ErrorRequest": "Hmm… pati një problem gjatë kërkesës. Ndoshta shërbyesi pati një problem të përkohshëm, ose ndoshta kërkuat një raport me shumë të dhëna. Ju lutemi, riprovoni. Nëse jy gabim përsëritet vazhdimisht, ju lutemi, %1$slidhuni me përgjegjësin tuaj për Piwik-un%2$s për asistancë.",
-        "EvolutionOverPeriod": "Zhvillime përgjatë periudhës",
-        "EvolutionSummaryGeneric": "%1$s in %2$s compared to %3$s in %4$s. Evolution: %5$s",
         "ExceptionContactSupportGeneric": "Nëse e keni ende këtë problem, ju lutemi, %1$slidhuni me përgjegjësin e Piwik-ut tuaj%2$s për asistencë.",
-        "ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Përdoruesi duhet të jetë ose një Superpërdorues, ose vetë përdoruesi '%s'.",
-        "ExceptionConfigurationFileNotFound": "Nuk u gjet kartela {%s} e formësimit.",
+        "EvolutionOverPeriod": "Zhvillime përgjatë periudhës",
+        "EvolutionSummaryGeneric": "%1$s në %2$s krahasuar me %3$s te %4$s. Evolucion: %5$s",
+        "ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Përdoruesi duhet të jetë ose Superpërdorues, ose vetë përdoruesi '%s'.",
+        "ExceptionConfigurationFileNotFound": "S’u gjet kartela {%s} e formësimit.",
         "ExceptionConfigurationFileNotFound2": "Nëse kartela ekziston, ju lutemi, kontrolloni nëse përdoruesi '%1$s' mundet ta lexojë %2$s.",
         "ExceptionDatabaseVersion": "Versioni juaj për %1$s është %2$s por Piwik-u lyp të paktën %3$s.",
-        "ExceptionDatabaseVersionNewerThanCodebase": "Kodi i Piwik-ut tuaj po xhiron versionin e vjetër %1$s dhe kemi gjetur se Baza juaj e të Dhënave Piwik është përmirësuar tashmë me versionin e ri %2$s.",
-        "ExceptionDatabaseVersionNewerThanCodebaseWait": "Ndoshta përgjegjësit e Piwik-ut janë duke përfunduar procesin e përmirësimit të tij. Ju lutemi, riprovoni pas pak minutash.",
-        "ExceptionFileIntegrity": "Kontrolli i pacënueshmërisë dështoi: %s",
+        "ExceptionDatabaseVersionNewerThanCodebase": "Kodi bazë i Piwik-ut tuaj xhiron versionin e vjetër %1$s dhe kemi dalluar se Baza juaj e të Dhënave Piwik është përmirësuar tashmë me versionin më të ri %2$s.",
+        "ExceptionDatabaseVersionNewerThanCodebaseWait": "Ndoshta përgjegjësit e Piwik-ut tuaj janë duke përfunduar procesin e përmirësimit. Ju lutemi, riprovoni pas pak minutash.",
+        "ExceptionFileIntegrity": "Kontrolli i pacenueshmërisë dështoi: %s",
         "ExceptionFilesizeMismatch": "Mospërputhje madhësie kartelash: %1$s (pritej gjatësi: %2$s, u gjet: %3$s)",
         "ExceptionIncompatibleClientServerVersions": "Versioni i klientit tuaj për %1$s është %2$s çka është e papërputhshme me versionin e shërbyesit %3$s.",
         "ExceptionInvalidAggregateReportsFormat": "Formati '%1$s' për raporte të grumbulluar nuk është i vlefshëm. Provoni më mirë ndonjë nga vijuesit: %2$s.",
-        "ExceptionInvalidArchiveTimeToLive": "Jetëgjatësia e arkivës për sot duhet të jetë një numër sekondash më i madh se zero",
         "ExceptionInvalidDateFormat": "Formati i datës duhet të jetë: %1$s ose çfarëdo fjalëkyçi që funksioni %2$s e mbulon (për më tepër të dhëna, shihni %3$s)",
         "ExceptionInvalidDateRange": "Data '%1$s' nuk është interval i saktë datash. Ky do të duhej të kishte formatin vijues: %2$s.",
         "ExceptionInvalidPeriod": "Nuk mbulohet periudha '%1$s'. Provoni më mirë ndonjë nga vijuesit: %2$s",
         "ExceptionInvalidRendererFormat": "Formati '%1$s' për vizatuesin nuk është i vlefshëm. Provoni më mirë ndonjë nga vijuesit: %2$s.",
         "ExceptionInvalidReportRendererFormat": "Formati '%1$s' për raportuesin nuk është i vlefshëm. Provoni më mirë ndonjë nga vijuesit: %2$s.",
         "ExceptionInvalidStaticGraphType": "Lloji '%1$s' për grafik statik nuk është i vlefshëm. Provoni më mirë ndonjë nga vijuesit: %2$s.",
-        "ExceptionInvalidToken": "Token-i nuk është i vlefshëm.",
-        "ExceptionLanguageFileNotFound": "S’u gjet kartela e gjuhës '%s'.",
         "ExceptionMethodNotFound": "Metoda '%1$s' nuk ekziston ose nuk është e mundshme në modulin '%2$s'.",
+        "ExceptionInvalidArchiveTimeToLive": "Jetëgjatësia e arkivës për sot duhet të jetë një numër sekondash më i madh se zero",
+        "ExceptionInvalidToken": "Token-i s’është i vlefshëm.",
+        "ExceptionLanguageFileNotFound": "S’u gjet kartela e gjuhës '%s'.",
         "ExceptionMissingFile": "Kartelë që mungon: %s",
-        "ExceptionNonceMismatch": "Nuk u verifikua dot token-i i sigurisë në këtë formular.",
-        "ExceptionPrivilege": "Nuk mund të hyni në këtë burim, ngaqë lyp të drejta %s.",
-        "ExceptionPrivilegeAccessWebsite": "Nuk mund të hyni në këtë burim, ngaqë lyp të drejta %s për id = %d të site-it web.",
-        "ExceptionPrivilegeAtLeastOneWebsite": "Nuk mund të hyni në këtë burim, ngaqë lyp të drejta %s për të paktën një nga site-et web.",
+        "ExceptionNonceMismatch": "S’u verifikua dot token-i i sigurisë në këtë formular.",
+        "ExceptionPrivilege": "S’mund të hyni në këtë burim, ngaqë lyp të drejta %s.",
+        "ExceptionPrivilegeAccessWebsite": "S’mund të hyni në këtë burim, ngaqë lyp të drejta %s për id = %d të sajtit.",
+        "ExceptionPrivilegeAtLeastOneWebsite": "S’mund të hyni në këtë burim, ngaqë lyp të drejta %s për të paktën një nga sajtet.",
         "ExceptionUnableToStartSession": "I pazoti të nisë sesion.",
         "ExceptionUndeletableFile": "I pazoti të fshijë %s",
         "ExceptionUnreadableFileDisabledMethod": "Nuk u lexua dot kartela {%1$s} e formësimit. Streha juaj mund të ketë çaktivizuar %2$s.",
         "ExceptionReportNotFound": "Raporti i kërkuar s’ekziston.",
         "ExceptionWidgetNotFound": "Widget-i i kërkuar s’ekziston.",
-        "ExceptionReportNotEnabled": "Raporti i kërkuar nuk është i aktivizuar. Kjo zakonisht nënkupton se ose shtojca që mbulon raportin është e çaktivizuar, ose se nuk keni leje të mjaftueshme ta hapni këtë raport.",
+        "ExceptionReportNotEnabled": "Raporti i kërkuar s’është i aktivizuar. Kjo zakonisht do të thotë se ose shtojca që përcakton raportin është e çaktivizuar, ose se s’keni leje të mjaftueshme të përdorni këtë raport.",
         "ExpandDataTableFooter": "Ndryshoni vizualizimin ose formësoni raportin",
         "Export": "Eksporto",
         "ExportAsImage": "Eksportoje si Figurë",
         "ExportThisReport": "Eksportojeni këtë grup të dhënash në formate të tjerë",
         "Faq": "FAQ",
-        "FileIntegrityWarningExplanation": "Kontrolli i pacenueshmërisë së kartelës dështoi dhe njoftoi për disa gabime. Kjo ka shumë të ngjarë të vijë për shkak të një ngarkimi të pjesshëm ose të pasuksesshëm të disa kartelave Piwik. Do të duhej të ringarkonit krejt kartelat e Piwik-ut në trajtë DYORE dhe të rifreskoni faqen derisa të mos tregojë më gabim.",
+        "FileIntegrityWarningExplanation": "Kontrolli i pacënueshmërisë së kartelës dështoi dhe njoftoi për disa gabime. Kjo ka shumë të ngjarë të vijë për shkak të një ngarkimi të pjesshëm ose të pasuksesshëm të disa kartelave Piwik. Do të duhej të ringarkonit krejt kartelat e Piwik-ut në trajtë DYORE dhe të rifreskoni faqen derisa të mos tregojë më gabim.",
         "First": "I pari",
         "ForExampleShort": "p.sh.",
-        "Forums": "Forums",
+        "Forums": "Forume",
         "FromReferrer": "prej",
         "GeneralInformation": "Të dhëna të Përgjithshme",
         "General": "Të përgjithshme",
-        "GetStarted": "Fillojani",
+        "GetStarted": "Get started",
         "GiveUsYourFeedback": "Na jepni Përshtypjet!",
         "Goal": "Objektiv",
         "GoTo": "Shko te %s",
         "GraphHelp": "Më tepër të dhëna rreth shfaqjes së grafikëve në Piwik.",
         "HelloUser": "Tungjatjeta, %s!",
-        "Help": "Ndihmë",
-        "HelpTranslatePiwik": "Ndoshta do të donit të na %1$sndihmoni të përmirësojnë përkthimet për Piwik-un%2$s?",
-        "Hide": "fshihe",
+        "Help": "Nidhmë",
+        "Hide": "hide",
         "HoursMinutes": "%1$s orë %2$s minuta",
         "Id": "Id",
-        "IfArchivingIsFastYouCanSetupCronRunMoreOften": "Duke pranuar që arkivimi në sajtin tuaj është i shpejtë, mund ta rregulloni crontab-in të xhirojë më shpesh.",
-        "InfoFor": "Të dhëna për %s",
-        "Installed": "Installed",
-        "InvalidDateRange": "Interval i Pavlefshëm Datash, Ju lutemi, Riprovoni",
+        "IfArchivingIsFastYouCanSetupCronRunMoreOften": "Duke pranuar që arkivimi në site-in tuaj është i shpejtë, mund ta rregulloni crontab-in të xhirojë më shpesh.",
+        "InvalidDateRange": "Interval i Pavlefshëm Datash, Ju lutem, Riprovoni",
         "InvalidResponse": "Të dhënat e marra janë të pavlefshme.",
         "IP": "IP",
         "JsTrackingTag": "Kod JavaScript Gjurmimi",
         "Language": "Gjuhë",
         "LastDays": "%s ditët e fundit (përfshirë të sotmen)",
-        "LastDaysShort": "%s ditët e fundit",
-        "LearnMore": "%1$smësoni më tepër%2$s",
         "Loading": "Po ngarkohet...",
         "LoadingData": "Po ngarkohen të dhënat...",
-        "LoadingPopover": "Po ngarkohet %s...",
-        "LoadingPopoverFor": "Po ngarkohet %s për",
+        "LoadingPopover": "Loading %s...",
         "Locale": "sq_AL.UTF-8",
         "Logout": "Dilni",
-        "MainMetrics": "Llogaritjet kryesore",
         "Matches": "Përputhje",
+        "MainMetrics": "Matjet kryesore",
         "MediumToHighTrafficItIsRecommendedTo": "Për sajte me trafik të shumtë, këshillojmë t’i përpunoni raportet për ditën e sotme e shumta çdo gjysmë ore (%1$s sekonda) ose çdo një orë (%2$s sekonda).",
         "Metadata": "Tejtëdhëna",
-        "Metric": "Matje",
-        "Metrics": "Matje",
+        "Metric": "Metric",
+        "Metrics": "Metrics",
         "MetricsToPlot": "Matje për t’u hedhur në grafik",
         "MetricToPlot": "Matje për t’u hedhur në grafik",
         "MinutesSeconds": "%1$s minuta %2$ss",
-        "Mobile": "Celular",
+        "Mobile": "Mobile",
         "Monthly": "Përmuaj",
-        "MonthlyReport": "përmuaj",
-        "MonthlyReports": "Raporte të përmuajshme",
-        "More": "More",
-        "MoreDetails": "Më Tepër Hollësi",
-        "MoreLowerCase": "më tepër",
         "MultiSitesSummary": "Krejt Sajtet",
         "Name": "Emër",
         "NbActions": "Numër Veprimesh",
-        "NbSearches": "Numër Kërkimesh të Brendshme",
         "Never": "Kurrë",
         "NewReportsWillBeProcessedByCron": "Kur arkivimi nga Piwik-u nuk vihet në punë nga shfletuesi, raportet e reja do të përpunohen nga crontab.",
         "NewUpdatePiwikX": "Përditësim i Ri: Piwik %s",
@@ -233,19 +223,14 @@
         "NoDataForGraph": "Pa të dhëna për këtë grafik",
         "NoDataForTagCloud": "Pa të dhëna për këtë re etiketash.",
         "NotDefined": "%s pa u përkufizuar",
-        "Note": "Shënim",
-        "NotInstalled": "E painstaluar",
-        "NotRecommended": "e pakëshillueshme",
         "NotValid": "%s nuk është e vlefshme",
         "NumberOfVisits": "Numër vizitash",
-        "NUsers": "%s përdorues",
         "NVisits": "%s vizita",
         "Ok": "Ok",
-        "OneAction": "1 veprim",
         "OneVisit": "1 vizitë",
         "OnlyEnterIfRequired": "Jepni emër përdoruesi vetëm nëse shërbyesi juaj SMTP lyp një të tillë.",
         "OnlyEnterIfRequiredPassword": "Jepni fjalëkalim vetëm nëse shërbyesi juaj SMTP lyp një të tillë.",
-        "OnlyUsedIfUserPwdIsSet": "E përdorur vetëm kur ka të caktuar një emër përdoruesi\/fjalëkalim, pyetni mundësuesin e llogarisë suaj, nëse jeni i pasigurt se cilën metodë të përdorni.",
+        "OnlyUsedIfUserPwdIsSet": "E përdorur vetëm kur ka të caktuar një emër përdoruesi\/fjalëkalim, pyesni mundësuesin e llogarisë suaj nëse jeni i pasigurt se cilën metodë të përdorni.",
         "OpenSourceWebAnalytics": "Analizë Web me Burim të Hapët",
         "OperationAtLeast": "E pakta",
         "OperationAtMost": "E shumta",
@@ -257,14 +242,12 @@
         "OperationIsNot": "S’është",
         "OperationLessThan": "Më e vogël se",
         "OperationNotEquals": "Jo Baraz Me",
-        "OptionalSmtpPort": "Opsionale. Parazgjedhjet janë 25 për të pakoduarat dhe TLS SMTP, dhe 465 për SSL SMTP.",
         "Options": "Mundësi",
         "OrCancel": "ose %1$s Anulojeni %2$s",
+        "OptionalSmtpPort": "Opsionale. Parazgjedhjet janë 25 për të pafshehtëzuarat dhe TLS SMTP, dhe 465 për SSL SMTP.",
         "Others": "Tjetër",
         "Outlink": "Lidhje për gjetiu",
         "Outlinks": "Lidhje për Jashtë",
-        "OverlayRowActionTooltip": "Shihni të dhëna analitike drejt e te sajti juaj (hapet në skedë të re)",
-        "OverlayRowActionTooltipTitle": "Hapni Përmbledhje Faqeje",
         "Overview": "Përmbledhje",
         "Pages": "Faqe",
         "Pagination": "%1$s - %2$s of %3$s",
@@ -273,17 +256,14 @@
         "Password": "Fjalëkalim",
         "Period": "Periudhë",
         "Piechart": "Qarkore",
-        "PiwikIsACollaborativeProjectYouCanContributeAndDonate": "%1$sPiwik%2$s është një projekt bashkëpunues, sjellë për ju nga anëtarët e %7$sekipit Piwik%8$s, si dhe mjaft pjesëmarrës të tjerë nga anembanë rruzullit. Nëse jeni një dashamirës i Piwik-ut, mund të ndihmoni: shihni se si te %3$sSi të merrni pjesë te Piwik-u%4$s, ose %5$sdhuroni%6$s që të ndihmoni në financimin e Piwik 3.0!",
-        "PiwikXIsAvailablePleaseNotifyPiwikAdmin": "Është gati %1$s. Ju lutemi, njoftojani %2$spërgjegjësit të Piwik-ut tuaj%3$s.",
-        "PiwikXIsAvailablePleaseUpdateNow": "Mund të kihet Piwik %1$s. %2$s Ju lutemi, përditësojeni tani!%3$s (shihni %4$s ndryshimet%5$s).",
+        "PiwikXIsAvailablePleaseUpdateNow": "Mund të kihet Piwik %1$s. %2$s Ju lutem, përditësojeni tani!%3$s (shihni %4$s ndryshimet%5$s).",
         "PleaseSpecifyValue": "Ju lutemi, përcaktoni një vlerë për '%s'.",
         "PleaseUpdatePiwik": "Ju lutemi, përditësoni Piwik-un tuaj",
-        "Plugin": "Shtojcë",
+        "Plugin": "Shtojca",
         "Plugins": "Shtojca",
         "PoweredBy": "Bazuar në",
         "Previous": "E mëparshmja",
         "PreviousDays": "%s ditë më parë (pa përfshirë të sotmen)",
-        "PreviousDaysShort": "%s ditët e mëparshme",
         "Price": "Çmim",
         "ProductConversionRate": "Kurs Këmbimi Produkti",
         "ProductRevenue": "Të ardhura Produkti",
@@ -291,29 +271,16 @@
         "Measurables": "Të matshme",
         "PurchasedProducts": "Produkte të Blerë",
         "Quantity": "Sasi",
-        "RangeReports": "Intervale të personalizuar të dhënash",
-        "ReadThisToLearnMore": "%1$sLexoni këtë, që të mësoni më tepër.%2$s",
-        "Recommended": "E këshillueshme",
+        "Recommended": "(e këshilluar)",
         "RecordsToPlot": "Regjistrime për t’u hedhur në grafik",
-        "Refresh": "Rifreskoje",
         "RefreshPage": "Rifreskoje faqen",
-        "RelatedReport": "Raport i afërt",
-        "RelatedReports": "Raporte të afërt",
-        "Remove": "Hiqe",
-        "Report": "Raport",
-        "ReportGeneratedFrom": "Ky raport u prodhua duke përdorur të dhëna nga %s.",
-        "ReportRatioTooltip": "'%1$s' përfaqëson %2$s nga %3$s %4$s me %5$s.",
         "Reports": "Raporte",
-        "ReportsContainingTodayWillBeProcessedAtMostEvery": "Arkivo raporte e shumta çdo X sekonda",
+        "ReportsContainingTodayWillBeProcessedAtMostEvery": "Raportet për ditën e sotme (ose për çfarëdo Intervali Datash që përfshin ditën e sotme) do të përpunohen e shumta çdo",
         "RearchiveTimeIntervalOnlyForTodayReports": "Kjo prek vetëm raportet për sot (ose çfarëdo Interval Datash që përfshin të sotmen)",
         "ReportsWillBeProcessedAtMostEveryHour": "Ndaj raportet do të përpunohen e shumta çdo një orë.",
-        "RequestTimedOut": "Kërkesës për të dhëna te %s i mbaroi koha. Ju lutemi, riprovoni.",
+        "RequestTimedOut": "Kërkesës për të dhëna te %s i mbaroi koha. Ju lutem, riprovoni.",
         "Required": "%s i domosdoshëm",
         "ReturningVisitor": "Vizitor i Mëparshëm",
-        "ReturningVisitorAllVisits": "Shihni krejt vizitat",
-        "RowEvolutionRowActionTooltip": "Shihni se si kanë ndryshuar përgjatë kohës matjet për këtë rresht",
-        "RowEvolutionRowActionTooltipTitle": "Hap Evolucion Rreshti",
-        "Rows": "Rreshta",
         "RowsToDisplay": "Rreshta për shfaqje",
         "Save": "Ruaje",
         "SaveImageOnYourComputer": "Për ta ruajtur figurën në kompjuterin tuaj, djathtasklikoni mbi figurën dhe përzgjidhni \"Ruajeni Figurën Si...\"",
@@ -324,44 +291,36 @@
         "SeeTheOfficialDocumentationForMoreInformation": "Për më tepër të dhëna, shihni %1$sdokumentimin zyrtar%2$s.",
         "SeeThisFaq": "Shihni %1$skëtë ndarje FAQ%2$s.",
         "Segment": "Segment",
-        "SelectYesIfYouWantToSendEmailsViaServer": "Përzgjidhni \"Po\" nëse doni të dërgoni, ose keni për të dërguar, email përmes një shërbyesi të emërtuar, në vend se përmes të një funksioni vendor poste",
+        "SelectYesIfYouWantToSendEmailsViaServer": "Përzgjidhni \"Po\" nëse doni të dërgoni, ose keni për të dërguar, e-mail përmes një shërbyesi të emërtuar, në vend se përmes të një funksioni vendor poste",
         "Settings": "Rregullime",
         "Shipping": "Dërgesë",
-        "Show": "shfaqe",
-        "SingleWebsitesDashboard": "Pult Sajti Njësh",
-        "SmallTrafficYouCanLeaveDefault": "Për ssajte me trafik të pakët, mund të lini parazgjedhjen prej %s sekondash, dhe të konsultoni krejt raportet në kohë reale.",
-        "SmtpEncryption": "Kodim SMTP",
+        "SmallTrafficYouCanLeaveDefault": "Për sajte me trafik të pakët, mund të lini parazgjedhjen prej %s sekondash, dhe të konsultoni krejt raportet në kohë reale.",
+        "SmtpEncryption": "Fshehtëzim SMTP-je",
         "SmtpPassword": "Fjalëkalim SMTP",
         "SmtpPort": "Portë SMTP",
         "SmtpServerAddress": "Adresë shërbyesi SMTP",
         "SmtpUsername": "Emër përdoruesi SMTP",
         "Source": "Burim",
-        "StatisticsAreNotRecorded": "Gjurmimi i Vizitorëve nga Piwik-u hëpërhë është i çaktivizuar! Riaktivizojeni gjurmimin duke dhënë record_statistics = 1 te kartela juaj config\/config.ini.php.",
         "Subtotal": "Nëntotal",
-        "Summary": "Përmbledhje",
         "Table": "Tabelë",
         "TagCloud": "Re Etiketash",
         "Tax": "Taksë",
-        "TimeAgo": "%s më parë",
-        "TimeOnPage": "Kohëqëndrim në faqe",
         "Total": "Gjithsej",
-        "TotalRatioTooltip": "Kjo është %1$s nga krejt %2$s %3$s.",
         "TotalRevenue": "Të ardhura Gjithsej",
-        "TotalVisitsPageviewsActionsRevenue": "(Gjithsej: %1$s vizita, %2$s shikime faqesh, %3$s veprime, %4$s të ardhura)",
         "TransitionsRowActionTooltip": "Shihni se ç’bënë vizitorët para dhe pas parjes së kësaj faqeje",
         "TransitionsRowActionTooltipTitle": "Ndërkalime të Hapura",
+        "TotalVisitsPageviewsActionsRevenue": "(Gjithsej: %1$s vizita, %2$s parje faqesh, %3$s veprime, %4$s të ardhura)",
         "TranslatorName": "Besnik Bleta",
         "UniquePurchases": "Blerje Unike",
         "Unknown": "I panjohur",
         "Upload": "Ngarkoje",
         "UsePlusMinusIconsDocumentation": "Për lëvizje përdorni ikonën plus dhe minus majtas.",
-        "UserId": "ID përdoruesi",
+        "UserId": "User ID",
         "Username": "Emër përdoruesi",
         "UseSMTPServerForEmail": "Për email përdor shërbyes SMTP",
         "Value": "Vlerë",
         "VBarGraph": "Grafik me shtylla vertikale",
         "View": "Pamje",
-        "ViewDocumentationFor": "Shihni dokumentimin për %1$s",
         "Visit": "Vizitë",
         "VisitConvertedGoal": "Vizita shndërroi të paktën një Objektiv",
         "VisitConvertedGoalId": "Vizita shndërroi një Id specifike Objektivi",
@@ -373,43 +332,30 @@
         "Visitors": "Vizitorë",
         "VisitsWith": "Vizita me %s",
         "VisitorSettings": "Rregullimet për Vizitor",
-        "VisitType": "Lloj vizite",
-        "VisitTypeExample": "Për shembull, për përzgjedhjen e krejt vizitorëve që janë rikthyer te sajti, përfshi ata që kanë blerë diçka gjatë vizitash të mëparshme, kërkesa API do të duhej të përmbante %s",
+        "VisitType": "Lloj vizitori",
+        "VisitTypeExample": "Për shembull, për përzgjedhjen e krejt vizitorëve që janë rikthyer te site-i web, përfshi ata që kanë blerë diçka gjatë vizitash të mëparshme, kërkesa API do të duhej të përmbante %s",
         "Warning": "Sinjalizim",
         "WarningPhpVersionXIsTooOld": "Versioni PHP %s që po përdorni ka mbërritur në fund të ciklit të vet (EOL). Ftoheni me forcë ta përmirësoni me një version të tanishëm, ngaqë përdorimi i këtij versioni mund t’ju lërë zbuluar kundrejt cenimesh sigurie dhe të metash që janë ndrequr në versione më të rinj të PHP-së.",
-        "WarningFileIntegrityNoManifest": "Kontrolli i pacenueshmërisë së kartelës s’u krye dot, për shkak të mungesës së manifest.inc.php.",
         "WarningFileIntegrityNoManifestDeployingFromGit": "Nëse po krijoni një instalim të Piwik-ut prej Git-i, ky mesazh është normal.",
-        "WarningFileIntegrityNoMd5file": "Kontrolli i pacenueshmërisë së kartelës s’u plotësua dot, për shkak të mungesës së funksionit md5_file().",
         "WarningPasswordStored": "%1$sKujdes:%2$s Ky fjalëkalim do të depozitohet te kartela e formësimit që është e dukshme për këdo që mund të mbërrijë deri te ajo.",
+        "WarningFileIntegrityNoManifest": "Kontrolli i pacenueshmërisë së kartelës s’u krye dot për shkak të mungesës së manifest.inc.php.",
+        "WarningFileIntegrityNoMd5file": "Kontrolli i pacënueshmërisë së kartelës nuk u plotësua dot për shkak të mungesës së funksionit md5_file().",
         "WarningDebugOnDemandEnabled": "Mënyra gjurmues %1$s është e aktivizuar. Për arsye sigurie, kjo do të duhej të aktivizohej vetëm për një kohë të shkurtër. Që ta çaktivizoni, caktojeni %2$s si %3$s te %4$s",
         "Website": "Sajt",
         "Weekly": "Përjavë",
-        "WeeklyReport": "përjavë",
-        "WeeklyReports": "Raporte të përjavshëm",
-        "WellDone": "Ju lumtë!",
         "Widgets": "Widget-e",
         "Widget": "Widget",
-        "XComparedToY": "%1$s krahasuar me %2$s",
-        "XFromY": "%1$s nga %2$s",
-        "YearlyReport": "përvit",
-        "YearlyReports": "Raporte të përvitshëm",
         "YearsDays": "%1$s vite %2$s ditë",
         "Yes": "Po",
         "YouAreCurrentlyUsing": "Jeni duke përdorur Piwik %s.",
-        "YouAreViewingDemoShortMessage": "Po shihni demonstrimin e Piwik-ut",
+        "YouAreViewingDemoShortMessage": "Hëpërhë jeni duke parë një demonstrim të Piwik-ut",
         "YouMustBeLoggedIn": "Që të përdorni këtë funksion, duhet të keni bërë hyrjen.",
         "YourChangesHaveBeenSaved": "Ndryshimet tuaja u ruajtën."
     },
     "Mobile": {
-        "AboutPiwikMobile": "Rreth Piwik-ut për Celular",
-        "AccessUrlLabel": "URL Hyrjeje në Piwik",
         "Account": "Llogari",
         "Accounts": "Llogari",
-        "AddAccount": "Shtoni llogari",
-        "AddPiwikDemo": "Shtoni Demo Piwik",
-        "Advanced": "Të mëtejshme",
         "AnonymousAccess": "Hyrje anonime",
-        "AnonymousTracking": "Gjurmim anonim",
         "AskForAnonymousTrackingPermission": "Kur është i aktivizuar, Piwik-u për Celular do të dërgojë te piwik.org të dhëna anonime përdorimi. Qëllimi është të përdoren këto të dhëna për të ndihmuar zhvilluesit e Piwik-ut për Celular të kuptojnë më mirë se si përdoret aplikacioni. Të dhënat e dërguara janë: menu dhe rregullime mbi të cilat klikohet, emri dhe versioni i OS-it, çfarëdo gabimi i shfaqur te Piwik-u për Celular. NUK do të ndjekim ndonjë të dhënë të analizave tuaja. Këto të dhëna anonime nuk do të bëhen kurrë publike. Gjurmimin anonim mund ta çaktivizoni\/aktivizoni kur të doni, te Rregullimet.",
         "ChooseHttpTimeout": "Zgjidhni vlerë mbarimi kohe për HTTP-në",
         "ChooseMetric": "Zgjidhni matje",
@@ -469,20 +415,20 @@
         "VerifyAccount": "Po Verifikohet Llogaria",
         "ValidateSslCertificate": "Vleftësoni dëshminë SSL",
         "VerifyLoginData": "Sigurohuni që dyshja juaj emër përdoruesi dhe fjalëkalim të jetë e saktë.",
-        "YouAreOffline": "Na ndjeni, hëpërhë nuk jeni i lidhur"
+        "YouAreOffline": "Na ndjeni, hëpërhë nuk jeni i lidhur",
+        "AnonymousTracking": "Gjurmim anonim"
     },
     "RowEvolution": {
         "AvailableMetrics": "Matje të mundshme",
-        "CompareDocumentation": "Që të krahasoni regjistrime të shumëfishta, klikoni mbi lidhjen më poshtë dhe hapni këtë flluskë për një tjetër rresht nga e njëjta tabelë.<br \/>Përdorni shkurtoren që ta zgjidhni rreshtin për krahasim pa hapur këtë flluskë.",
         "CompareRows": "Krahasoni regjistrime",
         "ComparingRecords": "Po krahasohen %s rreshta",
         "Documentation": "Klikoni mbi matjet që të shfaqen në një grafik të madh rrjedhe kohore. Përdorni shkurtoren Shift-klikim që të shfaqen shumë matje njëherësh.",
-        "MetricBetweenText": "nga %1$s në %2$s",
         "MetricChangeText": "%s ndryshim gjatë periudhës",
         "MetricMinMax": "%1$s doli diku mes %2$s dhe %3$s gjatë periudhës",
-        "MetricsFor": "Matje për %s",
         "MultiRowEvolutionTitle": "Evolucion i shumë rreshtave",
         "PickAnotherRow": "Zgjidhni një tjetër rresht për krahasim",
-        "PickARow": "Zgjidhni një rresht për krahasim"
+        "PickARow": "Zgjidhni një rresht për krahasim",
+        "MetricBetweenText": "nga %1$s në %2$s",
+        "MetricsFor": "Matje për %s"
     }
 }
\ No newline at end of file
diff --git a/lang/sv.json b/lang/sv.json
index ae4c5588c3c99c6a713033bf73277782d906160a..9628ac2bf38c27f9dd725e11c3e766ee85ecd142 100644
--- a/lang/sv.json
+++ b/lang/sv.json
@@ -27,6 +27,7 @@
         "CannotUnzipFile": "Kan ej packa upp filen %1$s: %2$s",
         "ChangePassword": "Byt lösenord",
         "ChangeTagCloudView": "Observera att du kan visa rapporten på andra sätt än som ett taggmoln. Använd kontrollerna längst ned i rapporten för att göra det.",
+        "ChooseDate": "Välj datum, nuvarande datum är: %s",
         "ChooseLanguage": "Välj språk",
         "ChoosePeriod": "Välj period",
         "ClickHere": "Klicka här för mer information.",
@@ -85,6 +86,8 @@
         "ConfigFileIsNotWritable": "Piwik's konfigurationsfil %1$s är inte skrivbar, de ändringar som du har gjort kommer kanske inte att sparas. %2$s Var vänlig och ändra rättigheterna på konfigurationsfilen för att göra den skrivbar.",
         "Continue": "Fortsätt",
         "ContinueToPiwik": "Fortsätt till Piwik",
+        "CurrentlyUsingUnsecureHttp": "Du använder för närvarande Piwik genom en osäker HTTP, vilket kan vara riskabelt. Vi rekommenderar dig att använda SSL (HTTPS) för ökad säkerhet.",
+        "CreatedByUser": "skapad av %s",
         "CurrentMonth": "Denna månad",
         "CurrentWeek": "Denna vecka",
         "CurrentYear": "Detta år",
@@ -99,6 +102,7 @@
         "DateRange": "Intervall:",
         "DateRangeFrom": "Från",
         "DateRangeFromTo": "Från %1$s till %2$s",
+        "DateRangeInPeriodList": "datumintervall",
         "DateRangeTo": "Till",
         "DaysHours": "%1$s dagar %2$s timmar",
         "DaysSinceFirstVisit": "Dagar sedan första besöket",
@@ -227,6 +231,7 @@
         "Name": "Namn",
         "NbActions": "Antal händelser",
         "NbSearches": "Antal interna sökningar",
+        "NeedMoreHelp": "Behöver du mer hjälp?",
         "Never": "Aldrig",
         "NewReportsWillBeProcessedByCron": "När Piwik's arkivering inte aktiveras av webbläsaren så kommer nya rapporter att behandlas av crontab.",
         "NewUpdatePiwikX": "Ny uppdatering: Piwik %s",
@@ -361,7 +366,7 @@
         "TrackingScopeVisit": "Besök",
         "TransitionsRowActionTooltip": "Se vad besökarna gjorde före och efter att ha tittat på den här sidan",
         "TransitionsRowActionTooltipTitle": "Öppna övergångar",
-        "TranslatorName": "<a href=\"http:\/\/xn--skmotoroptimering-zzb.se\/\">Sökmotoroptimering.se<\/a>, <a href=\"http:\/\/www.kampanjjakt.se\/\">Kampanjjakt.se<\/a>, <a href=\"http:\/\/www.lagun.se\/\">Fredrik Astrom<\/a>, <a href=\"http:\/\/www.dumsnal.se\/\">Tony<\/a>",
+        "TranslatorName": "Sökmotoroptimering.se, Kampanjjakt.se, Fredrik Astrom, Tony",
         "UniquePurchases": "Unika beställningar",
         "Unknown": "Okänt",
         "Upload": "Ladda upp",
diff --git a/lang/th.json b/lang/th.json
index bdc397f1ec6290c82f49f0c5f2bc40a3c6a18b06..6905941b68ab21fbd9a7dbb57783ae55ada034be 100644
--- a/lang/th.json
+++ b/lang/th.json
@@ -6,8 +6,11 @@
         "Actions": "ดำเนินการ",
         "Add": "เพิ่ม",
         "AfterEntry": "หลังจากที่กรอกลงที่นี่",
+        "All": "ทั้งหมด",
         "AllWebsitesDashboard": "แผงควบคุมเว็บไซต์ทั้งหมด",
+        "And": "และ",
         "API": "API",
+        "Apply": "นำไปใช้",
         "ArchivingInlineHelp": "เหมาะสำหรับเว็บไซต์ที่มีการจราจรสูง เราแนะนำให้ปิดการใช้งาน Piwik ในการเรียกเก็บจากเบราว์เซอร์ แต่เราขอแนะนำให้คุณติดตั้ง Cron job ในการประมวลผลเพื่อรายงาน Piwik ทุกชั่วโมง",
         "ArchivingTriggerDescription": "แนะนำสำหรับการติดตั้ง Piwik ขนาดใหญ่ที่คุณจะต้อง %1$s ติดตั้ง Cron job%2$s เพื่อดำเนินการรายงานโดยอัตโนมัติ",
         "AuthenticationMethodSmtp": "วิธีการตรวจสอบข้อมูลของ SMTP",
@@ -22,6 +25,7 @@
         "ChooseLanguage": "เลือกภาษา",
         "ChoosePeriod": "เลือกช่วงเวลา",
         "ClickHere": "คลิกที่นี่สำหรับข้อมูลเพิ่มเติม",
+        "ClickToChangePeriod": "คลิกอีกครั้งเพื่อเปลี่ยนช่วงระยะเวลา",
         "Close": "ปิด",
         "ColumnActionsPerVisit": "การดำเนินการต่อผู้ชม",
         "ColumnActionsPerVisitDocumentation": "ค่าเฉลี่ยของจำนวนการกระทำ (ดูหน้าเว็บดาวน์โหลดหรือ outlinks) ที่ได้ดำเนินการในระหว่างการเข้าชม",
@@ -58,20 +62,24 @@
         "ColumnPercentageVisits": "% เข้าชม",
         "ColumnRevenue": "รายได้",
         "ColumnSumVisitLength": "ระยะเวลาทั้งหมดที่ใช้โดยผู้เข้าชม (วินาที)",
+        "ColumnTotalPageviews": "เพจวิวทั้งหมด",
         "ColumnUniqueEntrances": "การเข้าที่ไม่ซ้ำกัน",
         "ColumnUniqueExits": "การออกที่ไม่ซ้ำกัน",
         "ColumnUniquePageviews": "เข้าชมไม่ซ้ำกัน",
         "ColumnUniquePageviewsDocumentation": "จำนวนการเข้าชมที่รวมหน้านี้ ถ้าเพจที่ถูกเข้าชมหลายครั้งในระหว่างเข้าชมครั้งเดียว ก็จะถูกนับเพียงครั้งเดียว",
         "ColumnValuePerVisit": "ค่าต่อผู้ชม",
+        "ColumnViewedAfterSearch": "จำนวนคลิกในผลการค้นหา",
         "ColumnVisitDuration": "ระยะเวลาเข้าเยี่ยมชม (เป็นวินาที)",
         "ColumnVisitsWithConversions": "ผู้เข้าชมกับการเปลงข้อมูล",
         "ConfigFileIsNotWritable": "การตั้งค่าไฟล์ Piwik %1$s ไม่สามารถเขียนบางส่วนของการเปลี่ยนแปลงได้ ซึ่งอาจจะไม่ถูกบันทึก %2$s กรุณาเปลี่ยนสิทธิ์ของไฟล์การตั้งค่าเพื่อให้สามารถเขียนได้",
         "Continue": "ต่อไป",
         "ContinueToPiwik": "ต่อไปยัง Piwik",
+        "CreatedByUser": "สร้างโดย %s",
         "CurrentMonth": "เดือนนี้",
         "CurrentWeek": "สัปดาห์นี้",
         "CurrentYear": "ปีนี้",
         "Daily": "แต่ละวัน",
+        "DailyReport": "ทุกวัน",
         "DailyReports": "รายงาน รายวัน",
         "DailySum": "ผลรวมรายวัน",
         "DashboardForASpecificWebsite": "แผงควบคุมสำหรับเว็บไซต์ที่ระบุไว้",
@@ -300,27 +308,36 @@
         "AnonymousAccess": "การเข้าถึงโดยบุคคลนิรนาม",
         "AnonymousTracking": "ตรวจจับข้อมูลบุคคลนิรนาม",
         "ChooseReport": "เลือกรายงาน",
+        "ConfirmRemoveAccount": "คุณแน่ใจแล้วหรือว่าต้องลบบัญชีนี้ทิ้ง?",
         "DefaultReportDate": "วันที่รายงาน",
+        "EmailUs": "ส่งอีเมลถึงเรา",
         "EnableGraphsLabel": "แสดงแผนภูมิ",
         "LastUpdated": "อัพเดทครั้งล่าสุด: %s",
+        "LoadingReport": "กำลังโหลด %s",
         "LoginCredentials": "ข้อมูลการเข้าใช้งาน",
         "LoginUseHttps": "ใช้ https",
         "NavigationBack": "ย้อนกลับ",
         "NetworkNotReachable": "ไม่สามารถเข้าถึงเครือข่ายได้",
+        "NoDataShort": "ยังไม่มีข้อมูล",
         "NoPiwikAccount": "ยังไม่มีบัญชี Piwik?",
+        "NoReportsShort": "ยังไม่มีรายงาน",
         "NoVisitorFound": "ไม่พบผู้เยี่ยมชมที่ต้องการ",
+        "NoVisitorsShort": "ยังไม่มีผู้เยี่ยมชม",
         "NoWebsiteFound": "ไม่พบเว็บไซต์ที่ต้องการ",
+        "NoWebsitesShort": "ยังไม่มีเว็บไซต์",
         "RatingDontRemindMe": "ไม่ต้องแจ้งเตือนฉัน",
         "RatingNotNow": "ไม่ใช่ตอนนี้",
         "RatingNow": "ตกลง, ฉันต้องการโหวตให้คะแนนตอนนี้เลย",
         "Reloading": "กำลังโหลดข้อมูลซ้ำ...",
         "SearchWebsite": "ค้นหาเว็บไซต์",
         "ShowAll": "แสดงทั้งหมด",
+        "TryIt": "ลองดู!",
         "VerifyAccount": "ยืนยันบัญชี",
         "YouAreOffline": "ขออภัย, ขณะนี้คุณได้ออกจากระบบแล้ว"
     },
     "RowEvolution": {
         "CompareRows": "เปรียบเทียบเรคคอร์ด",
+        "ComparingRecords": "กำลังเปรียบเทียบ %s แถว",
         "MetricBetweenText": "ระหว่าง %1$s และ %2$s",
         "PickAnotherRow": "เลือกแถวอื่นๆที่ต้องการเปรียบเทียบ",
         "PickARow": "เลือกแถวที่ต้องการเปรียบเทียบ"
diff --git a/lang/tl.json b/lang/tl.json
index 006b1889f06bea87f5e2b75bf9a25a4b00c0f63c..a3d618b97aa1ce11235eb4f7fef352ea634d42c2 100644
--- a/lang/tl.json
+++ b/lang/tl.json
@@ -299,7 +299,7 @@
         "Segment": "Bahagi",
         "SelectYesIfYouWantToSendEmailsViaServer": "Piliin ang \"Oo\" kung gusto mo o magpadala ng e-mail sa pamamagitan ng isang server sa halip na ang mga lokal na mail function.",
         "Table": "Talahanayan",
-        "TranslatorName": "<a href=\"http:\/\/intripid.com\/\">Intripid<\/a>",
+        "TranslatorName": "Intripid",
         "View": "Tingnan",
         "Visitors": "Mga Bisita",
         "VisitorSettings": "Mga Setting ng bisita",
diff --git a/lang/tr.json b/lang/tr.json
index 14a9bdb103bbf6e37487aac2786aed693ec126ed..dd9d03abcb7c4724250a67ce6d5aab240da67c54 100644
--- a/lang/tr.json
+++ b/lang/tr.json
@@ -1,5 +1,7 @@
 {
     "General": {
+        "12HourClock": "12 saatlik zaman biçimi",
+        "24HourClock": "24 saatlik zaman biçimi",
         "AbandonedCarts": "Terkedilen Sepetler",
         "AboutPiwikX": "Piwik %s Hakkında",
         "Action": "Eylem",
@@ -7,16 +9,19 @@
         "Add": "Ekle",
         "AfterEntry": "buraya girdikten sonra",
         "All": "Hepsi",
+        "AllowPiwikArchivingToTriggerBrowser": "Tarayıcı tarafından görüntülendiğinde raporları arşivle",
         "AllWebsitesDashboard": "Tüm Websitelerin Panosu",
         "And": "ve",
         "API": "API",
         "Apply": "Uygula",
+        "ArchivingInlineHelp": "Orta yoğunluklu web siteleri için Tarayıcı üzerinden arşivlemenin kapatılması öneriilir. Bunun yerine her saat Piwik raporu üretecek zamanlanmış bir görev tanımlanması tavsiye edilir.",
         "AuthenticationMethodSmtp": "SMTP için kimlik doğrulama yöntemi",
         "AverageOrderValue": "Ortalama SipariÅŸ DeÄŸeri",
         "AveragePrice": "Ortalama Fiyat",
         "AverageQuantity": "Ortalama Ürün Adedi",
         "BackToPiwik": "Piwik'e geri dön.",
-        "Broken": "Kırık",
+        "Broken": "Bozuk",
+        "BrokenDownReportDocumentation": "aksis veya ordinatı olmayan kullanışlı küçük grafikler şeklinde sayfanın altına gösterilen çeşitli raporlar çökmüştür. Raporda bulunan grafiklere tıklayarak grafikleri büyütebilirsin.",
         "Cancel": "Ä°ptal",
         "CannotUnzipFile": "Zip'den çıkarılamıyor %1$s: %2$s",
         "ChangePassword": "Åžifre deÄŸiÅŸtir",
@@ -25,6 +30,7 @@
         "ClickHere": "Daha fazla bilgi için buraya tıklayın.",
         "ClickToChangePeriod": "Aralığı değiştirmek için tekrar tıklayın.",
         "Close": "Kapat",
+        "ClickToSearch": "Aramak için tıklayın",
         "ColumnActionsPerVisit": "Ziyaret başına eylemler",
         "ColumnAverageGenerationTime": "Ortalama oluşturma süresi",
         "ColumnAverageTimeOnPage": "Sayfada geçirilen ort. süre",
@@ -76,6 +82,7 @@
         "DateRange": "Tarih aralığı:",
         "DateRangeFrom": "Buradan",
         "DateRangeFromTo": "%1$s tarihinden %2$s tarihine",
+        "DateRangeInPeriodList": "Zaman aralığı",
         "DateRangeTo": "Buraya",
         "DaysHours": "%1$s gün %2$s saat",
         "DaysSinceFirstVisit": "İlk ziyaretten bu yana geçen gün",
@@ -115,6 +122,9 @@
         "ExceptionUnableToStartSession": "Oturum başlatılamadı.",
         "ExceptionUndeletableFile": "%s silinemedi",
         "ExceptionUnreadableFileDisabledMethod": "Yapılandırma dosyası {%1$s} okunamadı. Sitenizi barındıran servis %2$s özelliğini devre dışı bırakmış olabilir.",
+        "ExceptionReportNotFound": "Talep edilen rapor mevcut deÄŸil.",
+        "ExceptionWidgetNotFound": "Talep edilen widget mevcut deÄŸil",
+        "ExpandDataTableFooter": "Raporun görünümünü veya ayarlarını değiştir",
         "Export": "Dışa aktar",
         "ExportAsImage": "Resim olarak dışa aktar",
         "ExportThisReport": "Bu veri setini diğer formatlarda ihraç et",
@@ -126,6 +136,7 @@
         "Forums": "Forum",
         "FromReferrer": "ÅŸuradan",
         "GeneralInformation": "Genel Bilgiler",
+        "General": "Genel",
         "GetStarted": "BaÅŸla",
         "GiveUsYourFeedback": "Geri Bildirim Verin!",
         "Goal": "Hedef",
@@ -170,6 +181,7 @@
         "Name": "Ä°sim",
         "NbActions": "Eylem Sayısı",
         "NbSearches": "Site içi Arama Sayısı",
+        "NeedMoreHelp": "Daha fazla yardım?",
         "Never": "Asla",
         "NewUpdatePiwikX": "Yeni Güncelleme: Piwik %s",
         "NewVisitor": "Yeni Ziyaretçi",
@@ -192,9 +204,11 @@
         "OnlyEnterIfRequiredPassword": "SMTP sunucusu için gerekli olan şifreyi giriniz.",
         "OpenSourceWebAnalytics": "Açık kaynak kodlu Web İstatistik Servisi",
         "OperationAtLeast": "Sonunda",
+        "OperationAtMost": "Neredeyse",
         "OperationContains": "İçerir",
         "OperationDoesNotContain": "İçermez",
         "OperationEquals": "EÅŸittir",
+        "OperationGreaterThan": "büyüktür",
         "OperationIsNot": "DeÄŸil",
         "OperationNotEquals": "EÅŸit DeÄŸil",
         "OptionalSmtpPort": "İsteğe bağlıdır. Şifresiz 25 için TLS SMTP ve güvenli bağlantı için SSL SMTP 465",
@@ -225,6 +239,7 @@
         "ProductRevenue": "Ürün Kazancı",
         "PurchasedProducts": "Satın Alınan Ürünler",
         "Quantity": "Miktar",
+        "RangeReports": "Özel tarih aralığı",
         "Recommended": "Önerilen",
         "Refresh": "Yenile",
         "RefreshPage": "Sayfayı yenile",
@@ -248,6 +263,7 @@
         "Settings": "Ayarlar",
         "Shipping": "Teslimat",
         "Show": "göster",
+        "SingleWebsitesDashboard": "Tek Websitesi Panosu",
         "SmtpEncryption": "SMTP ÅŸifreleme",
         "SmtpPassword": "SMTP parolası",
         "SmtpPort": "SMTP Kapı Numarası",
@@ -265,10 +281,11 @@
         "Total": "Toplam",
         "TotalRevenue": "Toplam Kazanç",
         "TotalVisitsPageviewsActionsRevenue": "(Toplam: %1$s ziyaretçiler, %2$s sayfa görüntülemeler, %3$s aksiyonlar, %4$s geliri)",
+        "TrackingScopeAction": "Aksiyon",
         "TrackingScopePage": "Sayfa",
         "TrackingScopeVisit": "Ziyaret",
         "TransitionsRowActionTooltipTitle": "Açık Geçişler",
-        "TranslatorName": "Fabian Becker, Emre Yazici, Emre Saraçoğlu, <a href=\"http:\/\/www.ugureskici.com\">Uğur Eskici<\/a>, <a href=\"http:\/\/www.umutarcn.com\">Umut ARICAN<\/a>",
+        "TranslatorName": "Fabian Becker, Emre Yazici, Emre Saraçoğlu, Uğur Eskici, Umut ARICAN",
         "UniquePurchases": "Tekil Satın Alımlar",
         "Unknown": "Bilinmeyen",
         "Upload": "Yükle",
@@ -286,6 +303,7 @@
         "Visitors": "Ziyaretçiler",
         "VisitsWith": "%s ile Ziyaretler",
         "VisitorSettings": "Ziyaretçi Ayarlari",
+        "VisitType": "Ziyaret tipi",
         "Warning": "Uyarı",
         "WarningFileIntegrityNoManifest": "manifest.inc.php dosyası bulunamadığı için dosya bütünlük kontrolü gerçekleştirilemedi.",
         "WarningFileIntegrityNoMd5file": "md5_file() fonksiyonu bulunamadığı için dosya bütünlük kontrolü tamamlanamadı.",
@@ -300,6 +318,8 @@
         "YearlyReports": "Yıllık raporlar",
         "YearsDays": "%1$s yıl %2$s gün",
         "Yes": "Evet",
+        "YouAreCurrentlyUsing": "Şuan Piwik %s'i kullanıyorsun",
+        "YouAreViewingDemoShortMessage": "Piwik'in demosunu görüntülüyorsun",
         "YouMustBeLoggedIn": "Bu işleve erişmek için oturumu açmış olmanız gerekmekte.",
         "YourChangesHaveBeenSaved": "DeÄŸiÅŸiklikleriniz kaydedildi."
     },
@@ -314,23 +334,36 @@
         "AnonymousAccess": "Ä°simsiz eriÅŸim",
         "AnonymousTracking": "Ä°simsiz izleme",
         "ChooseHttpTimeout": "HTTP zamanaşımı değerini seçin",
+        "ChooseMetric": "Metriki seç",
         "ChooseReport": "Rapor seçin",
+        "ChooseSegment": "Bölüm seç",
         "ConfirmRemoveAccount": "Bu hesabı kaldırmak istediğinizden emin misiniz?",
         "DefaultReportDate": "Rapor tarihi",
+        "EmailUs": "Bize E-Posta gönder",
+        "EnableGraphsLabel": "Grafikleri Göster",
+        "EvolutionGraph": "Tarihsel Grafik",
+        "HelpUsToImprovePiwikMobile": "Piwik Mobil'de anonim kullanımları takip etmek ister misin?",
         "HowtoDeleteAnAccount": "Bir hesabı silmek için uzun basın.",
         "HowtoDeleteAnAccountOniOS": "Bir hesabı silmek için sağdan sola kaydırın.",
         "HowtoLoginAnonymous": "Anonim giriş yapmak için kullanıcı adı ve şifre kısmını boş bırakın",
+        "HttpIsNotSecureWarning": "Eğer 'HTTP' kullanıyorsan Piwik yetkilendirme jetonu (token_auth) şifrelenmemiş şekilde gönderilecektir. Bundan dolayı biz İnternet üzerinden güvenli veri iletişimi için HTTPS'yi tavsiye ederiz. Devam etmek ister misin?",
         "HttpTimeout": "HTTP Zamanaşımı",
         "LastUpdated": "Son Güncelleme: %s",
         "LoadingReport": "Yükleniyor %s",
+        "LoginCredentials": "Kimlik Bilgileri",
         "LoginUseHttps": "https kullan",
+        "MultiChartLabel": "Ekran mini grafikleri",
         "NavigationBack": "Geri",
         "NetworkError": "Ağ Hatası",
         "NetworkErrorWithStatusCodeShort": "Ağ Hatası %s",
         "NetworkNotReachable": "AÄŸa eriÅŸilemiyor",
         "NoDataShort": "Veri Yok",
         "NoPiwikAccount": "Piwik Hesabınız yok mu?",
+        "NoReportsShort": "Rapor yok",
         "NoVisitorFound": "Hiç ziyaretçi bulunamadı",
+        "NoVisitorsShort": "Ziyaretçi Yok",
+        "NoWebsiteFound": "Hiç bir website bulunamadı",
+        "NoWebsitesShort": "Websiteler bulunamadı",
         "PullDownToRefresh": "Yenilemek için aşağı çekin...",
         "PossibleSslError": "Muhtemel SSL sertifika hatası",
         "IgnoreSslError": "SSL Hatasını yoksay",
@@ -339,9 +372,14 @@
         "ReleaseToRefresh": "Yenilemek için bırakın...",
         "Reloading": "Yeniden yükleniyor...",
         "RequestTimedOutShort": "Ağ Zamanaşımı Hatası",
+        "SaveSuccessError": "Piwik adresi veya kullanıcı adı ve şifre kombinasyonu yanlış.",
+        "SearchWebsite": "Websitelerinde ara",
         "ShowAll": "Tümünü göster",
+        "ShowLess": "Daha az göster",
+        "TopVisitedWebsites": "En sık ziyaret edilen websiteleri",
         "TryIt": "Dene!",
         "VerifyAccount": "Hesap DoÄŸrulama",
+        "ValidateSslCertificate": "SSL Sertifikasını Doğrula",
         "YouAreOffline": "Üzgünüm, şu anda çevrimdışısınız"
     },
     "RowEvolution": {
@@ -350,6 +388,8 @@
         "CompareRows": "Kayıtları karşılaştır",
         "ComparingRecords": "%s satır karşılaştırılıyor",
         "MetricBetweenText": "%1$s - %2$s arası",
-        "MetricsFor": "%s için ölçümler"
+        "MetricChangeText": "%s zaman içinde değişim",
+        "PickAnotherRow": "Karşılaştırmak için başka bir satır seç",
+        "PickARow": "Karşılaştırmak için bir satır seç"
     }
 }
\ No newline at end of file
diff --git a/lang/uk.json b/lang/uk.json
index d2bca479d4197104be15af5854805cbb3d07a08a..923a203cc7c4212ed2b583b19974390e1ab3b6cb 100644
--- a/lang/uk.json
+++ b/lang/uk.json
@@ -154,7 +154,7 @@
         "SmtpUsername": "SMTP логін",
         "Table": "Таблиця",
         "TagCloud": "Хмара тегів",
-        "TranslatorName": "<a href=\"http:\/\/webdevbyjoss.blogspot.com\/\">Joseph Chereshnovsky<\/a>, Anton Andriyevskyy",
+        "TranslatorName": "Joseph Chereshnovsky, Anton Andriyevskyy",
         "Unknown": "Невідомо",
         "Username": "Логін",
         "UseSMTPServerForEmail": "Використовуйте SMTP сервер для надсилання електронної пошти",
diff --git a/lang/zh-cn.json b/lang/zh-cn.json
index 42e11ac18466b137ef2288d659f56c6fc3a31529..7968d6fd0a487c72acb7051e246b8f9eb63918c7 100644
--- a/lang/zh-cn.json
+++ b/lang/zh-cn.json
@@ -1,5 +1,7 @@
 {
     "General": {
+        "12HourClock": "12小时制式",
+        "24HourClock": "24小时制式",
         "AbandonedCarts": "丢弃的购物车",
         "AboutPiwikX": "关于 Piwik %s",
         "Action": "操作",
@@ -11,6 +13,7 @@
         "AllWebsitesDashboard": "所有网站报表",
         "And": "和",
         "API": "API",
+        "Apply": "同意",
         "ArchivingInlineHelp": "对于中高流量的网站,建议禁用Piwik浏览器触发处理。最好是设置定时任务(Cron job),每小时处理一次Piwik报表。",
         "ArchivingTriggerDescription": "适合大型的Piwik安装,需要%1$s设置定时任务(Cron job) %2$s来自动处理报表。",
         "AuthenticationMethodSmtp": "SMTP 验证方法",
@@ -24,11 +27,13 @@
         "CannotUnzipFile": "不能解压缩文件%1$s: %2$s",
         "ChangePassword": "修改密码",
         "ChangeTagCloudView": "提示: 您可以通过报表下方的控制按钮,用不同于标签云的其它格式显示报表。",
+        "ChooseDate": "选择日期,当前默认的日期为:%s",
         "ChooseLanguage": "选择语言",
         "ChoosePeriod": "选择时间段",
         "ClickHere": "点击查看更多信息",
         "ClickToChangePeriod": "点击更改时间段",
         "Close": "关闭",
+        "ClickToSearch": "点击选择",
         "ColumnActionsPerVisit": "平均活动次数",
         "ColumnActionsPerVisitDocumentation": "平均活动次数 (查看页面、站内搜索、下载或离站链接)。",
         "ColumnAverageGenerationTime": "平均生成时间",
@@ -59,6 +64,7 @@
         "ColumnNbUniqVisitors": "访客数",
         "ColumnNbUniqVisitorsDocumentation": "访问网站的不重复的访客数量,每个访客只统计一次,即使他一天访问多次。",
         "ColumnNbUsers": "用户管理",
+        "ColumnNbUsersDocumentation": "登录你的网站的用户数量。它是具有用户ID组唯一活跃用户的数量(通过追踪码函数'setUserId')。",
         "ColumnNbVisits": "访问次数",
         "ColumnNbVisitsDocumentation": "如果访客第一次访问您的网站,或者离他上次访问时间超过30分钟,将统计为一次新的访问。",
         "ColumnPageBounceRateDocumentation": "以该页为起始页后马上离开的百分比。",
@@ -80,6 +86,8 @@
         "ConfigFileIsNotWritable": "Piwik 配置文件 %1$s 无法写入,无法保存部分修改。%2$s 请修改配置文件的权限为可写。",
         "Continue": "继续",
         "ContinueToPiwik": "继续 Piwik",
+        "CurrentlyUsingUnsecureHttp": "目前您正在使用Piwik在不安全的HTTP,这是有风险的。我们建议您设置Piwik使用SSL(HTTPS)以提高安全性。",
+        "CreatedByUser": "版权所有 %s",
         "CurrentMonth": "本月",
         "CurrentWeek": "本周",
         "CurrentYear": "今年",
@@ -94,6 +102,7 @@
         "DateRange": "报表时间:",
         "DateRangeFrom": "从",
         "DateRangeFromTo": "从 %1$s 至 %2$s",
+        "DateRangeInPeriodList": "日期范围",
         "DateRangeTo": "至",
         "DaysHours": "%1$s 天 %2$s 小时",
         "DaysSinceFirstVisit": "第一次访问至今的天数",
@@ -125,10 +134,16 @@
         "Edit": "修改",
         "EncryptedSmtpTransport": "输入您的SMTP服务器需要的传输层加密方式",
         "Error": "错误",
+        "ErrorRequest": "抱歉...请求时出现问题。也许服务器存在暂时性的问题,或者你请求了太多的数据报告。 请再试一次。如果重复出现此错误,请%1$s联系您的Piwik管理员%2$s寻求援助。",
         "EvolutionOverPeriod": "趋势分析",
         "EvolutionSummaryGeneric": "%1$s 在 %2$s 对比 %3$s 在 %4$s。趋势: %5$s",
+        "ExceptionContactSupportGeneric": "如果您仍然有这个问题,请%1$s联系您的Piwik管理员%2$s寻求援助。",
+        "ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "用户必须是超级用户或是'%s' 自己。",
         "ExceptionConfigurationFileNotFound": "配置文件 {%s} 找不到。",
+        "ExceptionConfigurationFileNotFound2": "如果该文件存在,请检查用户 '%2$s'具有读写 %1$s 的权限。",
         "ExceptionDatabaseVersion": "您的 %1$s 版本为 %2$s ,但 Piwik 需求至少要 %3$s。",
+        "ExceptionDatabaseVersionNewerThanCodebase": "您的Piwik代码库运行旧版本%1$s,但是我们检测到您的Piwik数据库已经升级到新的版本%2$s。",
+        "ExceptionDatabaseVersionNewerThanCodebaseWait": "也许你的Piwik管理员正在完成升级过程。请在几分钟后再试一次。",
         "ExceptionFileIntegrity": "完整性检查失败: %s",
         "ExceptionFilesizeMismatch": "文件大小不符: %1$s (预计长度: %2$s, 找到: %3$s)",
         "ExceptionIncompatibleClientServerVersions": "您的 %1$s 客户端版本为 %2$s,与服务器版本 %3$s 不兼容。",
@@ -151,6 +166,10 @@
         "ExceptionUnableToStartSession": "无法启动会话",
         "ExceptionUndeletableFile": "无法刪除 %s",
         "ExceptionUnreadableFileDisabledMethod": "配置文件 {%1$s} 无法读取。您的主机空间可能禁用 %2$s。",
+        "ExceptionReportNotFound": "请求的报告不存在。",
+        "ExceptionWidgetNotFound": "所请求的插件不存在。",
+        "ExceptionReportNotEnabled": "请求的报告未启用。这通常意味着要么定义报表停用或您没有足够的权限来访问此报告的插件。",
+        "ExpandDataTableFooter": "更改可视化或配置报告",
         "Export": "导出",
         "ExportAsImage": "导出为图片",
         "ExportThisReport": "导出为其它格式",
@@ -170,6 +189,7 @@
         "GraphHelp": "更多关于 Piwik 显示图表的资讯",
         "HelloUser": "您好,%s!",
         "Help": "帮助",
+        "HelpTranslatePiwik": "也许你想%1$s帮助我们改进Piwik翻译%2$s?",
         "Hide": "隐藏",
         "HoursMinutes": "%1$s 小时 %2$s 分",
         "Id": "序号",
@@ -183,6 +203,7 @@
         "Language": "语言",
         "LastDays": "最近 %s 天 (包括今天)",
         "LastDaysShort": "最近 %s 天",
+        "LearnMore": "%1$s学习更多%2$s",
         "Live": "在线",
         "Loading": "载入中...",
         "LoadingData": "数据载入中...",
@@ -210,6 +231,7 @@
         "Name": "网站名称",
         "NbActions": "活动次数",
         "NbSearches": "搜索次数",
+        "NeedMoreHelp": "需要更多帮助?",
         "Never": "从不",
         "NewReportsWillBeProcessedByCron": "当 Piwik 不是通过浏览器触发处理时,新的报表将通过 crontab 处理。",
         "NewUpdatePiwikX": "最新更新: Piwik %s",
@@ -222,8 +244,10 @@
         "NotDefined": "%s 未定义",
         "Note": "注意",
         "NotInstalled": "未安装",
+        "NotRecommended": "(不推荐)",
         "NotValid": "%s 无效",
         "NumberOfVisits": "访问次数",
+        "NUsers": "%s 名用户",
         "NVisits": "%s 次访问",
         "Ok": "OK",
         "OneAction": "1 次活动",
@@ -242,8 +266,11 @@
         "OperationIsNot": "不是",
         "OperationLessThan": "小于",
         "OperationNotEquals": "不等于",
+        "OperationStartsWith": "开始",
+        "OperationEndsWith": "结束",
         "OptionalSmtpPort": "可选项,默认是未加密和TLS SMTP使用端口 25,SSL 加密使用端口 465",
         "Options": "选项",
+        "Or": "或者",
         "OrCancel": "或 %1$s 取消 %2$s",
         "Others": "其它",
         "Outlink": "离站链接",
@@ -252,10 +279,14 @@
         "OverlayRowActionTooltipTitle": "显示页面叠加",
         "Overview": "来源总表",
         "Pages": "页面",
+        "Pagination": "%1$s - %2$s of %3$s",
+        "PaginationWithoutTotal": "%1$s - %2$s",
         "ParameterMustIntegerBetween": "参数 %1$s 必须为介于 %2$s 和 %3$s 之间的整数",
         "Password": "密码",
         "Period": "统计时间",
         "Piechart": "圆饼图",
+        "PiwikIsACollaborativeProjectYouCanContributeAndDonate": "%1$s Piwik%2$s是由%7$s Piwik团队%8$s的成员以及全球许多其他贡献者赞助商的合作项目。如果你是Piwik的粉丝,你可以帮助我们:找到%3$s怎样参与Piwik项目%4$s,或者%5$s捐赠%6$s开发Piwik3.0的基金!",
+        "PiwikXIsAvailablePleaseNotifyPiwikAdmin": "%1$s可用。请通知%2$sPiwik管理员%3$s。",
         "PiwikXIsAvailablePleaseUpdateNow": "Piwik %1$s 已经发布。 %2$s 请立即更新!%3$s (查看 %4$s 与%5$s 的差异)。",
         "PleaseSpecifyValue": "请为 '%s' 选择一个指标。",
         "PleaseUpdatePiwik": "请更新 Piwik",
@@ -268,10 +299,13 @@
         "Price": "ä»·æ ¼",
         "ProductConversionRate": "产品转化率",
         "ProductRevenue": "产品收入",
+        "Measurable": "测",
+        "Measurables": "衡量标准",
         "PurchasedProducts": "已购买产品",
         "Quantity": "数量",
         "RangeReports": "自定义时间段",
         "ReadThisToLearnMore": "%1$s了解详情。%2$s",
+        "Recommended": "推荐",
         "RecordsToPlot": "用于制表的记录",
         "Refresh": "刷新",
         "RefreshPage": "刷新",
@@ -280,7 +314,10 @@
         "Remove": "删除",
         "Report": "访客报表",
         "ReportGeneratedFrom": "报表数据的时间段是 %s",
+        "ReportRatioTooltip": "'%1$s' 代表 %2$s of %3$s %4$s和 %5$s.",
         "Reports": "报表",
+        "ReportsContainingTodayWillBeProcessedAtMostEvery": "归档最多每X秒报告",
+        "RearchiveTimeIntervalOnlyForTodayReports": "这只会影响今天的报告(或任何其他日期范围包括今天)",
         "ReportsWillBeProcessedAtMostEveryHour": "因此,报表最多每隔一小时处理一次。",
         "RequestTimedOut": "%s 资料请求超时。请再试一次。",
         "Required": "%s是必填项",
@@ -293,9 +330,12 @@
         "Save": "保存",
         "SaveImageOnYourComputer": "将图片保存至我的电脑,在图片上点选鼠标右键然后选择\"将图片另存为...\"",
         "Search": "搜索",
+        "Clear": "清除",
         "SearchNoResults": "没有结果",
         "SeeAll": "查看全部",
         "SeeTheOfficialDocumentationForMoreInformation": "查看%1$s官方文件%2$s取得更多资讯",
+        "SeeThisFaq": "请参阅 %1$s这条帮助%2$s。",
+        "Segment": "分割",
         "SelectYesIfYouWantToSendEmailsViaServer": "如果您想通过邮件服务器来发送电子邮件,而不是 mail 函数的话请选择 \"是\"",
         "Settings": "管理设置",
         "Shipping": "运费",
@@ -314,12 +354,19 @@
         "Table": "表格",
         "TagCloud": "标签云",
         "Tax": "税收",
+        "TimeAgo": "%s以前",
+        "TimeFormat": "时间格式",
         "TimeOnPage": "页面停留时间",
         "Total": "总额",
+        "TotalRatioTooltip": "This is %1$s of all %2$s %3$s.",
         "TotalRevenue": "订单总额",
+        "TotalVisitsPageviewsActionsRevenue": "(总访问量: %1$s 访问者, %2$s 浏览量, %3$s 活动者, %4$s 收入)",
+        "TrackingScopeAction": "行动",
+        "TrackingScopePage": "页面",
+        "TrackingScopeVisit": "访问者",
         "TransitionsRowActionTooltip": "查看访客浏览这个页面之前和之后的活动",
         "TransitionsRowActionTooltipTitle": "显示转换分析",
-        "TranslatorName": "<a href=\"http:\/\/www.piwik.cn\/\">Jack Huang<\/a>, <a href=\"http:\/\/www.binaryoung.com\/\">Young<\/a>, Marine.Ming",
+        "TranslatorName": "Jack Huang, Young, Marine.Ming",
         "UniquePurchases": "唯一身份购买者",
         "Unknown": "未知",
         "Upload": "上传",
@@ -342,11 +389,16 @@
         "Visitors": "访客分析",
         "VisitsWith": "有%s的访客",
         "VisitorSettings": "访客设置",
+        "VisitType": "访问者类型",
         "VisitTypeExample": "例如,要选择所有回头访客,包括那些以前购买过产品的,API 请求需要包含 %s",
         "Warning": "警告",
+        "WarningPhpVersionXIsTooOld": "您正在使用的PHP版本%s 已达到其生命周期结束(EOL)。我们强烈敦促升级到最新版本,因为使用这个版本可能会使您已修复在最近版本的PHP中的安全漏洞和错误。",
+        "WarningPiwikWillStopSupportingPHPVersion": "Piwik将停止下一个主要版本,支持PHP%1$s。升级你的PHP来至少PHP%2$s还为时不晚。",
         "WarningFileIntegrityNoManifest": "缺少 manifest.inc.php,所以文件完整性检查无法完成。",
+        "WarningFileIntegrityNoManifestDeployingFromGit": "如果从Git的部署Piwik,此消息是正常的。",
         "WarningFileIntegrityNoMd5file": "缺少 md5_file() 函数,所以文件完整性检查无法完成。",
         "WarningPasswordStored": "%1$s警告:%2$s 此密码将被保存在配置文件中,且每个能读取它的人都看得到。",
+        "WarningDebugOnDemandEnabled": "跟踪%1$s模式是开启的。出于安全考虑,它应该被开启很短的时间。请设置 %2$s为%3$s在%4$s来关闭它。",
         "Website": "网站",
         "Weekly": "每周",
         "WeeklyReport": "每周",
@@ -361,6 +413,7 @@
         "YearsDays": "%1$s 年 %2$s 天",
         "Yes": "是",
         "YouAreCurrentlyUsing": "您正在使用 Piwik %s.",
+        "YouAreViewingDemoShortMessage": "您正在查看Piwik的演示",
         "YouMustBeLoggedIn": "您必须登录才能存取这个功能。",
         "YourChangesHaveBeenSaved": "修改已保存。"
     },
@@ -378,6 +431,7 @@
         "ChooseHttpTimeout": "请选择HTTP超时值",
         "ChooseMetric": "选择指标",
         "ChooseReport": "选择报表",
+        "ChooseSegment": "选择区间",
         "ConfirmRemoveAccount": "您确实要删除该帐户吗?",
         "DefaultReportDate": "报表日期",
         "EmailUs": "给我们发电子邮件",
@@ -385,7 +439,7 @@
         "EvolutionGraph": "历史图表",
         "HelpUsToImprovePiwikMobile": "您要启用 Piwik 移动版本中的匿名使用情况统计吗?",
         "HowtoDeleteAnAccount": "长按删除帐号",
-        "HowtoDeleteAnAccountOniOS": "从左到右滑动可删除帐号",
+        "HowtoDeleteAnAccountOniOS": "从右到左滑动可删除帐号",
         "HowtoLoginAnonymous": "用户名和密码留空为匿名登录",
         "HttpIsNotSecureWarning": "如果您使用 'HTTP',Piwik 授权号 (token_auth) 是明文传送,因此建议使用 HTTPS 加密发送数据。要继续吗?",
         "HttpTimeout": "HTTP超时",
@@ -410,6 +464,8 @@
         "NoWebsiteFound": "没有找到网站",
         "NoWebsitesShort": "没有网站",
         "PullDownToRefresh": "向下拉可以更新...",
+        "PossibleSslError": "可能的SSL证书错误",
+        "PossibleSslErrorExplanation": "出现错误,可能是由一个无效或自签名证书造成的:“%s”。忽略SSL验证时登录可能会为你工作,但它的安全性较低。你可以在设置随时更改SSL验证。",
         "IgnoreSslError": "忽略SSL错误",
         "RatingDontRemindMe": "不要记住我",
         "RatingNotNow": "不是现在",
@@ -429,6 +485,7 @@
         "TryIt": "试一试!",
         "UseSearchBarHint": "这里只显示第一个 %s 网站,请用搜索条访问其它网站。",
         "VerifyAccount": "账号确认",
+        "ValidateSslCertificate": "验证SSL证书",
         "VerifyLoginData": "确认用户名和密码正确。",
         "YouAreOffline": "抱歉,您目前离线状态"
     },
@@ -440,6 +497,7 @@
         "Documentation": "点击指标显示趋势图,按住 Shift 键点击可同时显示多个指标。",
         "MetricBetweenText": "在%1$s和%2$s之间",
         "MetricChangeText": "%s",
+        "MetricMinMax": "在段时期介入%1$s 、 %2$s或 %3$s不等。",
         "MetricsFor": "%s 的指标",
         "MultiRowEvolutionTitle": "多个记录的趋势图",
         "PickAnotherRow": "选择另外一行比较",
diff --git a/lang/zh-tw.json b/lang/zh-tw.json
index eed9e644b064176f8214d4811c89d32a672eb71c..ddb87cff7015e2a882514a51809aa49020f6e7c0 100644
--- a/lang/zh-tw.json
+++ b/lang/zh-tw.json
@@ -178,7 +178,7 @@
         "SmtpUsername": "SMTP 使用者名稱",
         "Table": "表格",
         "TagCloud": "標籤雲",
-        "TranslatorName": "<a href=\"http:\/\/www.freegroup.org\/\">Pseric<\/a>, Eros",
+        "TranslatorName": "Pseric, Eros",
         "Unknown": "未知",
         "Username": "使用者名稱",
         "UseSMTPServerForEmail": "使用 SMTP 伺服器來傳送 E-mail",
diff --git a/piwik.js b/piwik.js
index 08107280f43e89e9c38af24501907186a5322c18..550e6053ab80192df7dae760c3dfe64b58f36e82 100644
--- a/piwik.js
+++ b/piwik.js
@@ -18,49 +18,50 @@ var I="000000";var t=function(ac,ad){return(I+(ad||0)).slice(-ac)};var z="\\u00"
 }else{at=null}}else{if(typeof at.toJSON=="function"&&((ae!=N&&ae!=O&&ae!=E)||r.call(at,"toJSON"))){at=at.toJSON(ai)}}}if(ag){at=ag.call(aA,ai,at)}if(at===null){return"null"}ae=u.call(at);if(ae==A){return""+at}else{if(ae==N){return at>-1/0&&at<1/0?""+at:"null"}else{if(ae==O){return C(""+at)}}}if(typeof at=="object"){for(af=aj.length;af--;){if(aj[af]===at){throw aa()}}aj.push(at);ar=[];av=ac;ac+=ax;if(ae==E){for(ah=0,af=at.length;ah<af;ah++){ad=p(ah,at,ag,al,ax,ac,aj);ar.push(ad===L?"null":ad)}ao=ar.length?(ax?"[\n"+ac+ar.join(",\n"+ac)+"\n"+av+"]":("["+ar.join(",")+"]")):"[]"}else{m(al||at,function(aC){var aB=p(aC,at,ag,al,ax,ac,aj);if(aB!==L){ar.push(C(aC)+":"+(ax?" ":"")+aB)}});ao=ar.length?(ax?"{\n"+ac+ar.join(",\n"+ac)+"\n"+av+"}":("{"+ar.join(",")+"}")):"{}"}aj.pop();return ao}};V.stringify=function(ac,ae,af){var ad,al,aj,ai;if(e[typeof ae]&&ae){if((ai=u.call(ae))==U){al=ae}else{if(ai==E){aj={};for(var ah=0,ag=ae.length,ak;ah<ag;ak=ae[ah++],((ai=u.call(ak)),ai==O||ai==N)&&(aj[ak]=1)){}}}}if(af){if((ai=u.call(af))==N){if((af-=af%1)>0){for(ad="",af>10&&(af=10);
 ad.length<af;ad+=" "){}}}else{if(ai==O){ad=af.length<=10?af:af.slice(0,10)}}}return p("",(ak={},ak[""]=ac,ak),al,aj,ad,"",[])}}if(!o("json-parse")){var M=R.fromCharCode;var l={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"};var G,X;var H=function(){G=X=null;throw T()};var y=function(){var ah=X,af=ah.length,ag,ae,ac,ai,ad;while(G<af){ad=ah.charCodeAt(G);switch(ad){case 9:case 10:case 13:case 32:G++;break;case 123:case 125:case 91:case 93:case 58:case 44:ag=F?ah.charAt(G):ah[G];G++;return ag;case 34:for(ag="@",G++;G<af;){ad=ah.charCodeAt(G);if(ad<32){H()}else{if(ad==92){ad=ah.charCodeAt(++G);switch(ad){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:ag+=l[ad];G++;break;case 117:ae=++G;for(ac=G+4;G<ac;G++){ad=ah.charCodeAt(G);if(!(ad>=48&&ad<=57||ad>=97&&ad<=102||ad>=65&&ad<=70)){H()}}ag+=M("0x"+ah.slice(ae,G));break;default:H()}}else{if(ad==34){break}ad=ah.charCodeAt(G);ae=G;while(ad>=32&&ad!=92&&ad!=34){ad=ah.charCodeAt(++G)}ag+=ah.slice(ae,G)}}}if(ah.charCodeAt(G)==34){G++;
 return ag}H();default:ae=G;if(ad==45){ai=true;ad=ah.charCodeAt(++G)}if(ad>=48&&ad<=57){if(ad==48&&((ad=ah.charCodeAt(G+1)),ad>=48&&ad<=57)){H()}ai=false;for(;G<af&&((ad=ah.charCodeAt(G)),ad>=48&&ad<=57);G++){}if(ah.charCodeAt(G)==46){ac=++G;for(;ac<af&&((ad=ah.charCodeAt(ac)),ad>=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}ad=ah.charCodeAt(G);if(ad==101||ad==69){ad=ah.charCodeAt(++G);if(ad==43||ad==45){G++}for(ac=G;ac<af&&((ad=ah.charCodeAt(ac)),ad>=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}return +ah.slice(ae,G)}if(ai){H()}if(ah.slice(G,G+4)=="true"){G+=4;return true}else{if(ah.slice(G,G+5)=="false"){G+=5;return false}else{if(ah.slice(G,G+4)=="null"){G+=4;return null}}}H()}}return"$"};var W=function(ad){var ac,ae;if(ad=="$"){H()}if(typeof ad=="string"){if((F?ad.charAt(0):ad[0])=="@"){return ad.slice(1)}if(ad=="["){ac=[];for(;;ae||(ae=true)){ad=y();if(ad=="]"){break}if(ae){if(ad==","){ad=y();if(ad=="]"){H()}}else{H()}}if(ad==","){H()}ac.push(W(ad))}return ac}else{if(ad=="{"){ac={};for(;;ae||(ae=true)){ad=y();
-if(ad=="}"){break}if(ae){if(ad==","){ad=y();if(ad=="}"){H()}}else{H()}}if(ad==","||typeof ad!="string"||(F?ad.charAt(0):ad[0])!="@"||y()!=":"){H()}ac[ad.slice(1)]=W(y())}return ac}}H()}return ad};var P=function(ae,ad,af){var ac=w(ae,ad,af);if(ac===L){delete ae[ad]}else{ae[ad]=ac}};var w=function(af,ae,ag){var ad=af[ae],ac;if(typeof ad=="object"&&ad){if(u.call(ad)==E){for(ac=ad.length;ac--;){P(ad,ac,ag)}}else{m(ad,function(ah){P(ad,ah,ag)})}}return ag.call(af,ae,ad)};V.parse=function(ae,af){var ac,ad;G=0;X=""+ae;ac=W(y());if(y()!="$"){H()}G=X=null;return af&&u.call(af)==U?w((ad={},ad[""]=ac,ad),"",af):ac}}}V.runInContext=j;return V}if(h&&!c){j(i,h)}else{var f=i.JSON,k=i.JSON3,d=false;var g=j(i,(i.JSON3={noConflict:function(){if(!d){d=true;i.JSON=f;i.JSON3=k;f=k=null}return g}}));i.JSON={parse:g.parse,stringify:g.stringify}}if(c){define(function(){return g})}}).call(this);JSON2=a})()}if(typeof _paq!=="object"){_paq=[]}if(typeof Piwik!=="object"){Piwik=(function(){var k,a={},x=document,e=navigator,N=screen,J=window,f=J.performance||J.mozPerformance||J.msPerformance||J.webkitPerformance,r=false,H=[],m=J.encodeURIComponent,I=J.decodeURIComponent,h=unescape,O,w,d;
-function j(Z){try{return I(Z)}catch(aa){return unescape(Z)}}function z(aa){var Z=typeof aa;return Z!=="undefined"}function s(Z){return typeof Z==="function"}function M(Z){return typeof Z==="object"}function p(Z){return typeof Z==="string"||Z instanceof String}function t(aa){if(!aa){return true}var Z;var ab=true;for(Z in aa){if(Object.prototype.hasOwnProperty.call(aa,Z)){ab=false}}return ab}function U(){var Z,ab,aa;for(Z=0;Z<arguments.length;Z+=1){aa=arguments[Z];ab=aa.shift();if(p(ab)){O[ab].apply(O,aa)}else{ab.apply(O,aa)}}}function Y(ac,ab,aa,Z){if(ac.addEventListener){ac.addEventListener(ab,aa,Z);return true}if(ac.attachEvent){return ac.attachEvent("on"+ab,aa)}ac["on"+ab]=aa}function R(aa,ad){var Z="",ac,ab;for(ac in a){if(Object.prototype.hasOwnProperty.call(a,ac)){ab=a[ac][aa];if(s(ab)){Z+=ab(ad)}}}return Z}function V(){var Z;R("unload");if(k){do{Z=new Date()}while(Z.getTimeAlias()<k)}}function S(){var Z;if(!r){r=true;R("load");for(Z=0;Z<H.length;Z++){H[Z]()}}return true}function q(){var aa;
-if(x.addEventListener){Y(x,"DOMContentLoaded",function Z(){x.removeEventListener("DOMContentLoaded",Z,false);S()})}else{if(x.attachEvent){x.attachEvent("onreadystatechange",function Z(){if(x.readyState==="complete"){x.detachEvent("onreadystatechange",Z);S()}});if(x.documentElement.doScroll&&J===J.top){(function Z(){if(!r){try{x.documentElement.doScroll("left")}catch(ab){setTimeout(Z,0);return}S()}}())}}}if((new RegExp("WebKit")).test(e.userAgent)){aa=setInterval(function(){if(r||/loaded|complete/.test(x.readyState)){clearInterval(aa);S()}},10)}Y(J,"load",S,false)}function i(ab,aa){var Z=x.createElement("script");Z.type="text/javascript";Z.src=ab;if(Z.readyState){Z.onreadystatechange=function(){var ac=this.readyState;if(ac==="loaded"||ac==="complete"){Z.onreadystatechange=null;aa()}}}else{Z.onload=aa}x.getElementsByTagName("head")[0].appendChild(Z)}function A(){var Z="";try{Z=J.top.document.referrer}catch(ab){if(J.parent){try{Z=J.parent.document.referrer}catch(aa){Z=""}}}if(Z===""){Z=x.referrer
-}return Z}function l(Z){var ab=new RegExp("^([a-z]+):"),aa=ab.exec(Z);return aa?aa[1]:null}function c(Z){var ab=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)"),aa=ab.exec(Z);return aa?aa[1]:Z}function L(ab,aa){var Z="[\\?&#]"+aa+"=([^&#]*)";var ad=new RegExp(Z);var ac=ad.exec(ab);return ac?I(ac[1]):""}function v(Z){return unescape(m(Z))}function X(ao){var ab=function(av,au){return(av<<au)|(av>>>(32-au))},ap=function(ax){var av="",aw,au;for(aw=7;aw>=0;aw--){au=(ax>>>(aw*4))&15;av+=au.toString(16)}return av},ae,ar,aq,aa=[],ai=1732584193,ag=4023233417,af=2562383102,ad=271733878,ac=3285377520,an,am,al,ak,aj,at,Z,ah=[];ao=v(ao);Z=ao.length;for(ar=0;ar<Z-3;ar+=4){aq=ao.charCodeAt(ar)<<24|ao.charCodeAt(ar+1)<<16|ao.charCodeAt(ar+2)<<8|ao.charCodeAt(ar+3);ah.push(aq)}switch(Z&3){case 0:ar=2147483648;break;case 1:ar=ao.charCodeAt(Z-1)<<24|8388608;break;case 2:ar=ao.charCodeAt(Z-2)<<24|ao.charCodeAt(Z-1)<<16|32768;break;case 3:ar=ao.charCodeAt(Z-3)<<24|ao.charCodeAt(Z-2)<<16|ao.charCodeAt(Z-1)<<8|128;
-break}ah.push(ar);while((ah.length&15)!==14){ah.push(0)}ah.push(Z>>>29);ah.push((Z<<3)&4294967295);for(ae=0;ae<ah.length;ae+=16){for(ar=0;ar<16;ar++){aa[ar]=ah[ae+ar]}for(ar=16;ar<=79;ar++){aa[ar]=ab(aa[ar-3]^aa[ar-8]^aa[ar-14]^aa[ar-16],1)}an=ai;am=ag;al=af;ak=ad;aj=ac;for(ar=0;ar<=19;ar++){at=(ab(an,5)+((am&al)|(~am&ak))+aj+aa[ar]+1518500249)&4294967295;aj=ak;ak=al;al=ab(am,30);am=an;an=at}for(ar=20;ar<=39;ar++){at=(ab(an,5)+(am^al^ak)+aj+aa[ar]+1859775393)&4294967295;aj=ak;ak=al;al=ab(am,30);am=an;an=at}for(ar=40;ar<=59;ar++){at=(ab(an,5)+((am&al)|(am&ak)|(al&ak))+aj+aa[ar]+2400959708)&4294967295;aj=ak;ak=al;al=ab(am,30);am=an;an=at}for(ar=60;ar<=79;ar++){at=(ab(an,5)+(am^al^ak)+aj+aa[ar]+3395469782)&4294967295;aj=ak;ak=al;al=ab(am,30);am=an;an=at}ai=(ai+an)&4294967295;ag=(ag+am)&4294967295;af=(af+al)&4294967295;ad=(ad+ak)&4294967295;ac=(ac+aj)&4294967295}at=ap(ai)+ap(ag)+ap(af)+ap(ad)+ap(ac);return at.toLowerCase()}function Q(ab,Z,aa){if(!ab){ab=""}if(!Z){Z=""}if(ab==="translate.googleusercontent.com"){if(aa===""){aa=Z
-}Z=L(Z,"u");ab=c(Z)}else{if(ab==="cc.bingj.com"||ab==="webcache.googleusercontent.com"||ab.slice(0,5)==="74.6."){Z=x.links[0].href;ab=c(Z)}}return[ab,Z,aa]}function B(aa){var Z=aa.length;if(aa.charAt(--Z)==="."){aa=aa.slice(0,Z)}if(aa.slice(0,2)==="*."){aa=aa.slice(1)}if(aa.indexOf("/")!==-1){aa=aa.substr(0,aa.indexOf("/"))}return aa}function W(aa){aa=aa&&aa.text?aa.text:aa;if(!p(aa)){var Z=x.getElementsByTagName("title");if(Z&&z(Z[0])){aa=Z[0].text}}return aa}function F(Z){if(!Z){return[]}if(!z(Z.children)&&z(Z.childNodes)){return Z.children}if(z(Z.children)){return Z.children}return[]}function K(aa,Z){if(!aa||!Z){return false}if(aa.contains){return aa.contains(Z)}if(aa===Z){return true}if(aa.compareDocumentPosition){return !!(aa.compareDocumentPosition(Z)&16)}return false}function C(ab,ac){if(ab&&ab.indexOf){return ab.indexOf(ac)}if(!z(ab)||ab===null){return -1}if(!ab.length){return -1}var Z=ab.length;if(Z===0){return -1}var aa=0;while(aa<Z){if(ab[aa]===ac){return aa}aa++}return -1}function g(ab){if(!ab){return false
-}function Z(ad,ae){if(J.getComputedStyle){return x.defaultView.getComputedStyle(ad,null)[ae]}if(ad.currentStyle){return ad.currentStyle[ae]}}function ac(ad){ad=ad.parentNode;while(ad){if(ad===x){return true}ad=ad.parentNode}return false}function aa(af,al,ad,ai,ag,aj,ah){var ae=af.parentNode,ak=1;if(!ac(af)){return false}if(9===ae.nodeType){return true}if("0"===Z(af,"opacity")||"none"===Z(af,"display")||"hidden"===Z(af,"visibility")){return false}if(!z(al)||!z(ad)||!z(ai)||!z(ag)||!z(aj)||!z(ah)){al=af.offsetTop;ag=af.offsetLeft;ai=al+af.offsetHeight;ad=ag+af.offsetWidth;aj=af.offsetWidth;ah=af.offsetHeight}if(ab===af&&(0===ah||0===aj)&&"hidden"===Z(af,"overflow")){return false}if(ae){if(("hidden"===Z(ae,"overflow")||"scroll"===Z(ae,"overflow"))){if(ag+ak>ae.offsetWidth+ae.scrollLeft||ag+aj-ak<ae.scrollLeft||al+ak>ae.offsetHeight+ae.scrollTop||al+ah-ak<ae.scrollTop){return false}}if(af.offsetParent===ae){ag+=ae.offsetLeft;al+=ae.offsetTop}return aa(ae,al,ad,ai,ag,aj,ah)}return true}return aa(ab)
-}var T={htmlCollectionToArray:function(ab){var Z=[],aa;if(!ab||!ab.length){return Z}for(aa=0;aa<ab.length;aa++){Z.push(ab[aa])}return Z},find:function(Z){if(!document.querySelectorAll||!Z){return[]}var aa=document.querySelectorAll(Z);return this.htmlCollectionToArray(aa)},findMultiple:function(ab){if(!ab||!ab.length){return[]}var aa,ac;var Z=[];for(aa=0;aa<ab.length;aa++){ac=this.find(ab[aa]);Z=Z.concat(ac)}Z=this.makeNodesUnique(Z);return Z},findNodesByTagName:function(aa,Z){if(!aa||!Z||!aa.getElementsByTagName){return[]}var ab=aa.getElementsByTagName(Z);return this.htmlCollectionToArray(ab)},makeNodesUnique:function(Z){var ae=[].concat(Z);Z.sort(function(ag,af){if(ag===af){return 0}var ai=C(ae,ag);var ah=C(ae,af);if(ai===ah){return 0}return ai>ah?-1:1});if(Z.length<=1){return Z}var aa=0;var ac=0;var ad=[];var ab;ab=Z[aa++];while(ab){if(ab===Z[aa]){ac=ad.push(aa)}ab=Z[aa++]||null}while(ac--){Z.splice(ad[ac],1)}return Z},getAttributeValueFromNode:function(ad,ab){if(!this.hasNodeAttribute(ad,ab)){return
-}if(ad&&ad.getAttribute){return ad.getAttribute(ab)}if(!ad||!ad.attributes){return}var ac=(typeof ad.attributes[ab]);if("undefined"===ac){return}if(ad.attributes[ab].value){return ad.attributes[ab].value}if(ad.attributes[ab].nodeValue){return ad.attributes[ab].nodeValue}var aa;var Z=ad.attributes;if(!Z){return}for(aa=0;aa<Z.length;aa++){if(Z[aa].nodeName===ab){return Z[aa].nodeValue}}return null},hasNodeAttributeWithValue:function(aa,Z){var ab=this.getAttributeValueFromNode(aa,Z);return !!ab},hasNodeAttribute:function(ab,Z){if(ab&&ab.hasAttribute){return ab.hasAttribute(Z)}if(ab&&ab.attributes){var aa=(typeof ab.attributes[Z]);return"undefined"!==aa}return false},hasNodeCssClass:function(ab,Z){if(ab&&Z&&ab.className){var aa=typeof ab.className==="string"?ab.className.split(" "):[];if(-1!==C(aa,Z)){return true}}return false},findNodesHavingAttribute:function(ad,ab,Z){if(!Z){Z=[]}if(!ad||!ab){return Z}var ac=F(ad);if(!ac||!ac.length){return Z}var aa,ae;for(aa=0;aa<ac.length;aa++){ae=ac[aa];
-if(this.hasNodeAttribute(ae,ab)){Z.push(ae)}Z=this.findNodesHavingAttribute(ae,ab,Z)}return Z},findFirstNodeHavingAttribute:function(ab,aa){if(!ab||!aa){return}if(this.hasNodeAttribute(ab,aa)){return ab}var Z=this.findNodesHavingAttribute(ab,aa);if(Z&&Z.length){return Z[0]}},findFirstNodeHavingAttributeWithValue:function(ac,ab){if(!ac||!ab){return}if(this.hasNodeAttributeWithValue(ac,ab)){return ac}var Z=this.findNodesHavingAttribute(ac,ab);if(!Z||!Z.length){return}var aa;for(aa=0;aa<Z.length;aa++){if(this.getAttributeValueFromNode(Z[aa],ab)){return Z[aa]}}},findNodesHavingCssClass:function(ad,ac,Z){if(!Z){Z=[]}if(!ad||!ac){return Z}if(ad.getElementsByClassName){var ae=ad.getElementsByClassName(ac);return this.htmlCollectionToArray(ae)}var ab=F(ad);if(!ab||!ab.length){return[]}var aa,af;for(aa=0;aa<ab.length;aa++){af=ab[aa];if(this.hasNodeCssClass(af,ac)){Z.push(af)}Z=this.findNodesHavingCssClass(af,ac,Z)}return Z},findFirstNodeHavingClass:function(ab,aa){if(!ab||!aa){return}if(this.hasNodeCssClass(ab,aa)){return ab
-}var Z=this.findNodesHavingCssClass(ab,aa);if(Z&&Z.length){return Z[0]}},isLinkElement:function(aa){if(!aa){return false}var Z=String(aa.nodeName).toLowerCase();var ac=["a","area"];var ab=C(ac,Z);return ab!==-1},setAnyAttribute:function(aa,Z,ab){if(!aa||!Z){return}if(aa.setAttribute){aa.setAttribute(Z,ab)}else{aa[Z]=ab}}};var o={CONTENT_ATTR:"data-track-content",CONTENT_CLASS:"piwikTrackContent",CONTENT_NAME_ATTR:"data-content-name",CONTENT_PIECE_ATTR:"data-content-piece",CONTENT_PIECE_CLASS:"piwikContentPiece",CONTENT_TARGET_ATTR:"data-content-target",CONTENT_TARGET_CLASS:"piwikContentTarget",CONTENT_IGNOREINTERACTION_ATTR:"data-content-ignoreinteraction",CONTENT_IGNOREINTERACTION_CLASS:"piwikContentIgnoreInteraction",location:undefined,findContentNodes:function(){var aa="."+this.CONTENT_CLASS;var Z="["+this.CONTENT_ATTR+"]";var ab=T.findMultiple([aa,Z]);return ab},findContentNodesWithinNode:function(ac){if(!ac){return[]}var aa=T.findNodesHavingCssClass(ac,this.CONTENT_CLASS);var Z=T.findNodesHavingAttribute(ac,this.CONTENT_ATTR);
-if(Z&&Z.length){var ab;for(ab=0;ab<Z.length;ab++){aa.push(Z[ab])}}if(T.hasNodeAttribute(ac,this.CONTENT_ATTR)){aa.push(ac)}else{if(T.hasNodeCssClass(ac,this.CONTENT_CLASS)){aa.push(ac)}}aa=T.makeNodesUnique(aa);return aa},findParentContentNode:function(aa){if(!aa){return}var ab=aa;var Z=0;while(ab&&ab!==x&&ab.parentNode){if(T.hasNodeAttribute(ab,this.CONTENT_ATTR)){return ab}if(T.hasNodeCssClass(ab,this.CONTENT_CLASS)){return ab}ab=ab.parentNode;if(Z>1000){break}Z++}},findPieceNode:function(aa){var Z;Z=T.findFirstNodeHavingAttribute(aa,this.CONTENT_PIECE_ATTR);if(!Z){Z=T.findFirstNodeHavingClass(aa,this.CONTENT_PIECE_CLASS)}if(Z){return Z}return aa},findTargetNodeNoDefault:function(Z){if(!Z){return}var aa=T.findFirstNodeHavingAttributeWithValue(Z,this.CONTENT_TARGET_ATTR);if(aa){return aa}aa=T.findFirstNodeHavingAttribute(Z,this.CONTENT_TARGET_ATTR);if(aa){return aa}aa=T.findFirstNodeHavingClass(Z,this.CONTENT_TARGET_CLASS);if(aa){return aa}},findTargetNode:function(Z){var aa=this.findTargetNodeNoDefault(Z);
-if(aa){return aa}return Z},findContentName:function(aa){if(!aa){return}var ad=T.findFirstNodeHavingAttributeWithValue(aa,this.CONTENT_NAME_ATTR);if(ad){return T.getAttributeValueFromNode(ad,this.CONTENT_NAME_ATTR)}var Z=this.findContentPiece(aa);if(Z){return this.removeDomainIfIsInLink(Z)}if(T.hasNodeAttributeWithValue(aa,"title")){return T.getAttributeValueFromNode(aa,"title")}var ab=this.findPieceNode(aa);if(T.hasNodeAttributeWithValue(ab,"title")){return T.getAttributeValueFromNode(ab,"title")}var ac=this.findTargetNode(aa);if(T.hasNodeAttributeWithValue(ac,"title")){return T.getAttributeValueFromNode(ac,"title")}},findContentPiece:function(aa){if(!aa){return}var ac=T.findFirstNodeHavingAttributeWithValue(aa,this.CONTENT_PIECE_ATTR);if(ac){return T.getAttributeValueFromNode(ac,this.CONTENT_PIECE_ATTR)}var Z=this.findPieceNode(aa);var ab=this.findMediaUrlInNode(Z);if(ab){return this.toAbsoluteUrl(ab)}},findContentTarget:function(ab){if(!ab){return}var ac=this.findTargetNode(ab);if(T.hasNodeAttributeWithValue(ac,this.CONTENT_TARGET_ATTR)){return T.getAttributeValueFromNode(ac,this.CONTENT_TARGET_ATTR)
-}var aa;if(T.hasNodeAttributeWithValue(ac,"href")){aa=T.getAttributeValueFromNode(ac,"href");return this.toAbsoluteUrl(aa)}var Z=this.findPieceNode(ab);if(T.hasNodeAttributeWithValue(Z,"href")){aa=T.getAttributeValueFromNode(Z,"href");return this.toAbsoluteUrl(aa)}},isSameDomain:function(Z){if(!Z||!Z.indexOf){return false}if(0===Z.indexOf(this.getLocation().origin)){return true}var aa=Z.indexOf(this.getLocation().host);if(8>=aa&&0<=aa){return true}return false},removeDomainIfIsInLink:function(ab){var aa="^https?://[^/]+";var Z="^.*//[^/]+";if(ab&&ab.search&&-1!==ab.search(new RegExp(aa))&&this.isSameDomain(ab)){ab=ab.replace(new RegExp(Z),"");if(!ab){ab="/"}}return ab},findMediaUrlInNode:function(ad){if(!ad){return}var ab=["img","embed","video","audio"];var Z=ad.nodeName.toLowerCase();if(-1!==C(ab,Z)&&T.findFirstNodeHavingAttributeWithValue(ad,"src")){var ac=T.findFirstNodeHavingAttributeWithValue(ad,"src");return T.getAttributeValueFromNode(ac,"src")}if(Z==="object"&&T.hasNodeAttributeWithValue(ad,"data")){return T.getAttributeValueFromNode(ad,"data")
-}if(Z==="object"){var ae=T.findNodesByTagName(ad,"param");if(ae&&ae.length){var aa;for(aa=0;aa<ae.length;aa++){if("movie"===T.getAttributeValueFromNode(ae[aa],"name")&&T.hasNodeAttributeWithValue(ae[aa],"value")){return T.getAttributeValueFromNode(ae[aa],"value")}}}var af=T.findNodesByTagName(ad,"embed");if(af&&af.length){return this.findMediaUrlInNode(af[0])}}},trim:function(Z){if(Z&&String(Z)===Z){return Z.replace(/^\s+|\s+$/g,"")}return Z},isOrWasNodeInViewport:function(ae){if(!ae||!ae.getBoundingClientRect||ae.nodeType!==1){return true}var ad=ae.getBoundingClientRect();var ac=x.documentElement||{};var ab=ad.top<0;if(ab&&ae.offsetTop){ab=(ae.offsetTop+ad.height)>0}var aa=ac.clientWidth;if(J.innerWidth&&aa>J.innerWidth){aa=J.innerWidth}var Z=ac.clientHeight;if(J.innerHeight&&Z>J.innerHeight){Z=J.innerHeight}return((ad.bottom>0||ab)&&ad.right>0&&ad.left<aa&&((ad.top<Z)||ab))},isNodeVisible:function(aa){var Z=g(aa);var ab=this.isOrWasNodeInViewport(aa);return Z&&ab},buildInteractionRequestParams:function(Z,aa,ab,ac){var ad="";
-if(Z){ad+="c_i="+m(Z)}if(aa){if(ad){ad+="&"}ad+="c_n="+m(aa)}if(ab){if(ad){ad+="&"}ad+="c_p="+m(ab)}if(ac){if(ad){ad+="&"}ad+="c_t="+m(ac)}return ad},buildImpressionRequestParams:function(Z,aa,ab){var ac="c_n="+m(Z)+"&c_p="+m(aa);if(ab){ac+="&c_t="+m(ab)}return ac},buildContentBlock:function(ab){if(!ab){return}var Z=this.findContentName(ab);var aa=this.findContentPiece(ab);var ac=this.findContentTarget(ab);Z=this.trim(Z);aa=this.trim(aa);ac=this.trim(ac);return{name:Z||"Unknown",piece:aa||"Unknown",target:ac||""}},collectContent:function(ac){if(!ac||!ac.length){return[]}var ab=[];var Z,aa;for(Z=0;Z<ac.length;Z++){aa=this.buildContentBlock(ac[Z]);if(z(aa)){ab.push(aa)}}return ab},setLocation:function(Z){this.location=Z},getLocation:function(){var Z=this.location||J.location;if(!Z.origin){Z.origin=Z.protocol+"//"+Z.hostname+(Z.port?":"+Z.port:"")}return Z},toAbsoluteUrl:function(aa){if((!aa||String(aa)!==aa)&&aa!==""){return aa}if(""===aa){return this.getLocation().href}if(aa.search(/^\/\//)!==-1){return this.getLocation().protocol+aa
-}if(aa.search(/:\/\//)!==-1){return aa}if(0===aa.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+aa}if(0===aa.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+aa}if(0===aa.search("^[a-zA-Z]{2,11}:")){return aa}if(aa.search(/^\//)!==-1){return this.getLocation().origin+aa}var Z="(.*/)";var ab=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(Z))[0];return ab+aa},isUrlToCurrentDomain:function(aa){var ab=this.toAbsoluteUrl(aa);if(!ab){return false}var Z=this.getLocation().origin;if(Z===ab){return true}if(0===String(ab).indexOf(Z)){if(":"===String(ab).substr(Z.length,1)){return false}return true}return false},setHrefAttribute:function(aa,Z){if(!aa||!Z){return}T.setAnyAttribute(aa,"href",Z)},shouldIgnoreInteraction:function(ab){var aa=T.hasNodeAttribute(ab,this.CONTENT_IGNOREINTERACTION_ATTR);var Z=T.hasNodeCssClass(ab,this.CONTENT_IGNOREINTERACTION_CLASS);return aa||Z}};function E(Z,aa){if(aa){return aa}if(Z.slice(-9)==="piwik.php"){Z=Z.slice(0,Z.length-9)
-}return Z}function D(af){var ah="Piwik_Overlay";var aa=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var ab=aa.exec(x.referrer);if(ab){var ad=ab[1];if(ad!==String(af)){return false}var ae=ab[2],Z=ab[3],ac=ab[4];if(!ac){ac=""}else{if(ac.indexOf("&segment=")===0){ac=ac.substr("&segment=".length)}}J.name=ah+"###"+ae+"###"+Z+"###"+ac}var ag=J.name.split("###");return ag.length===4&&ag[0]===ah}function P(aa,ag,ac){var af=J.name.split("###"),ae=af[1],Z=af[2],ad=af[3],ab=E(aa,ag);i(ab+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(ab,ac,ae,Z,ad)})}function n(){if(z(J.frameElement)){return(J.frameElement&&String(J.frameElement.nodeName).toLowerCase()==="iframe")}try{return J.self!==J.top}catch(Z){return true}}function G(bJ,bD){var bz=Q(x.domain,J.location.href,A()),ch=B(bz[0]),bj=j(bz[1]),aY=j(bz[2]),cf=false,bN="GET",cu=bN,an="application/x-www-form-urlencoded; charset=UTF-8",bZ=an,aj=bJ||"",be="",cl="",bB=bD||"",a7="",bk="",aH,aU=x.title,cr=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],af=[ch],a8=[],bh=[],aK=[],bf=500,b8,aI,bn,bl,Z,bV=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],bd=["pk_kwd","piwik_kwd","utm_term"],aV="_pk_",cj,a0,aW=false,cd,aS,a4,b9=33955200000,bT=1800000,cq=15768000000,aF=true,bR=0,bm=false,au=false,bG,br={},bQ={},aX={},a3=200,cm={},cs={},bF=[],bK=false,b2=false,aa=false,ct=false,ar=false,aR=n(),ck=null,bH,av,a9,bC=X,aZ;
-function cx(cH,cE,cD,cG,cC,cF){if(aW){return}var cB;if(cD){cB=new Date();cB.setTime(cB.getTime()+cD)}x.cookie=cH+"="+m(cE)+(cD?";expires="+cB.toGMTString():"")+";path="+(cG||"/")+(cC?";domain="+cC:"")+(cF?";secure":"")}function ai(cD){if(aW){return 0}var cB=new RegExp("(^|;)[ ]*"+cD+"=([^;]*)"),cC=cB.exec(x.cookie);return cC?I(cC[2]):0}function bx(cB){var cC;if(bl){cC=new RegExp("#.*");return cB.replace(cC,"")}return cB}function bq(cD,cB){var cE=l(cB),cC;if(cE){return cB}if(cB.slice(0,1)==="/"){return l(cD)+"://"+c(cD)+cB}cD=bx(cD);cC=cD.indexOf("?");if(cC>=0){cD=cD.slice(0,cC)}cC=cD.lastIndexOf("/");if(cC!==cD.length-1){cD=cD.slice(0,cC+1)}return cD+cB}function b6(cD,cB){var cC;cD=String(cD).toLowerCase();cB=String(cB).toLowerCase();if(cD===cB){return true}if(cB.slice(0,1)==="."){if(cD===cB.slice(1)){return true}cC=cD.length-cB.length;if((cC>0)&&(cD.slice(cC)===cB)){return true}}return false}function co(cC,cB){cC=String(cC);return cC.indexOf(cB,cC.length-cB.length)!==-1}function aQ(cC,cB){cC=String(cC);
-return cC.substr(0,cC.length-cB)}function bP(cB){var cC=document.createElement("a");if(cB.indexOf("//")!==0&&cB.indexOf("http")!==0){cB="http://"+cB}cC.href=o.toAbsoluteUrl(cB);if(cC.pathname){return cC.pathname}return""}function aG(cC,cB){var cD=(!cB||cB==="/");if(cD){return true}if(cC===cB){return true}if(!cC){return false}cB=String(cB).toLowerCase();cC=String(cC).toLowerCase();if(!co(cC,"/")){cC+="/"}if(!co(cB,"/")){cB+="/"}return cC.indexOf(cB)===0}function ac(cF,cH){var cC,cB,cD,cE,cG;for(cC=0;cC<af.length;cC++){cE=B(af[cC]);cG=bP(af[cC]);if(b6(cF,cE)&&aG(cH,cG)){return true}}return false}function az(cE){var cC,cB,cD;for(cC=0;cC<af.length;cC++){cB=B(af[cC].toLowerCase());if(cE===cB){return true}if(cB.slice(0,1)==="."){if(cE===cB.slice(1)){return true}cD=cE.length-cB.length;if((cD>0)&&(cE.slice(cD)===cB)){return true}}}return false}function bU(cB,cD){var cC=new Image(1,1);cC.onload=function(){w=0;if(typeof cD==="function"){cD()}};cC.src=aj+(aj.indexOf("?")<0?"?":"&")+cB}function cp(cC,cF,cB){if(!z(cB)||null===cB){cB=true
-}try{var cE=J.XMLHttpRequest?new J.XMLHttpRequest():J.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;cE.open("POST",aj,true);cE.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cB){bU(cC,cF)}else{if(typeof cF==="function"){cF()}}};cE.setRequestHeader("Content-Type",bZ);cE.send(cC)}catch(cD){if(cB){bU(cC,cF)}}}function bL(cC){var cB=new Date();var cD=cB.getTime()+cC;if(!k||cD>k){k=cD}}function bS(cB){if(bH||!aI){return}bH=setTimeout(function cC(){bH=null;if(!aR){aR=(!x.hasFocus||x.hasFocus())}if(!aR){bS(aI);return}if(bn()){return}var cD=new Date(),cE=aI-(cD.getTime()-ck);cE=Math.min(aI,cE);bS(cE)},cB||aI)}function bg(){if(!bH){return}clearTimeout(bH);bH=null}function aN(){aR=true;if(bn()){return}bS()}function ag(){bg()}function cz(){if(ar||!aI){return}ar=true;Y(J,"focus",aN);Y(J,"blur",ag);bS()}function b3(cF){var cC=new Date();var cB=cC.getTime();ck=cB;if(b2&&cB<b2){var cD=b2-cB;setTimeout(cF,cD);bL(cD+50);b2+=50;return}if(b2===false){var cE=800;
-b2=cB+cE}cF()}function bc(cC,cB,cD){if(!cd&&cC){b3(function(){if(cu==="POST"){cp(cC,cD)}else{bU(cC,cD)}bL(cB)})}if(!ar){cz()}else{bS()}}function bO(cB){if(cd){return false}return(cB&&cB.length)}function cy(cD,cB){if(!bO(cD)){return}var cC='{"requests":["?'+cD.join('","?')+'"]}';b3(function(){cp(cC,null,false);bL(cB)})}function ax(cB){return aV+cB+"."+bB+"."+aZ}function bA(){if(aW){return"0"}if(!z(e.cookieEnabled)){var cB=ax("testcookie");cx(cB,"1");return ai(cB)==="1"?"1":"0"}return e.cookieEnabled?"1":"0"}function aT(){aZ=bC((cj||ch)+(a0||"/")).slice(0,4)}function bs(){var cC=ax("cvar"),cB=ai(cC);if(cB.length){cB=JSON2.parse(cB);if(M(cB)){return cB}}return{}}function b4(){if(au===false){au=bs()}}function ce(){return bC((e.userAgent||"")+(e.platform||"")+JSON2.stringify(cs)+(new Date()).getTime()+Math.random()).slice(0,16)}function cb(){var cD=new Date(),cB=Math.round(cD.getTime()/1000),cC=ax("id"),cG=ai(cC),cF,cE;if(cG){cF=cG.split(".");cF.unshift("0");if(bk.length){cF[1]=bk}return cF}if(bk.length){cE=bk
-}else{if("0"===bA()){cE=""}else{cE=ce()}}cF=["1",cE,cB,0,cB,"",""];return cF}function aB(){var cI=cb(),cE=cI[0],cF=cI[1],cC=cI[2],cB=cI[3],cG=cI[4],cD=cI[5];if(!z(cI[6])){cI[6]=""}var cH=cI[6];return{newVisitor:cE,uuid:cF,createTs:cC,visitCount:cB,currentVisitTs:cG,lastVisitTs:cD,lastEcommerceOrderTs:cH}}function am(){var cE=new Date(),cC=cE.getTime(),cF=aB().createTs;var cB=parseInt(cF,10);var cD=(cB*1000)+b9-cC;return cD}function ap(cB){if(!bB){return}var cD=new Date(),cC=Math.round(cD.getTime()/1000);if(!z(cB)){cB=aB()}var cE=cB.uuid+"."+cB.createTs+"."+cB.visitCount+"."+cC+"."+cB.lastVisitTs+"."+cB.lastEcommerceOrderTs;cx(ax("id"),cE,am(),a0,cj)}function bi(){var cB=ai(ax("ref"));if(cB.length){try{cB=JSON2.parse(cB);if(M(cB)){return cB}}catch(cC){}}return["","",0,""]}function bt(cD,cC,cB){cx(cD,"",-86400,cC,cB)}function a5(cC){var cB="testvalue";cx("test",cB,10000,null,cC);if(ai("test")===cB){bt("test",null,cC);return true}return false}function ak(){var cD=aW;aW=false;var cB=["id","ses","cvar","ref"];
-var cC,cE;for(cC=0;cC<cB.length;cC++){cE=ax(cB[cC]);if(0!==ai(cE)){bt(cE,a0,cj)}}aW=cD}function by(cB){bB=cB;ap()}function cA(cF){if(!cF||!M(cF)){return}var cE=[];var cD;for(cD in cF){if(Object.prototype.hasOwnProperty.call(cF,cD)){cE.push(cD)}}var cG={};cE.sort();var cB=cE.length;var cC;for(cC=0;cC<cB;cC++){cG[cE[cC]]=cF[cE[cC]]}return cG}function bI(){cx(ax("ses"),"*",bT,a0,cj)}function bW(cD,cY,cZ,cE){var cX,cC=new Date(),cL=Math.round(cC.getTime()/1000),cI,cW,cF=1024,c4,cM,cU=au,cG=ax("ses"),cS=ax("ref"),cP=ax("cvar"),cQ=ai(cG),cV=bi(),c1=aH||bj,cJ,cB;if(aW){ak()}if(cd){return""}var cR=aB();if(!z(cE)){cE=""}var cO=x.characterSet||x.charset;if(!cO||cO.toLowerCase()==="utf-8"){cO=null}cJ=cV[0];cB=cV[1];cI=cV[2];cW=cV[3];if(!cQ){var c0=bT/1000;if(!cR.lastVisitTs||(cL-cR.lastVisitTs)>c0){cR.visitCount++;cR.lastVisitTs=cR.currentVisitTs}if(!a4||!cJ.length){for(cX in bV){if(Object.prototype.hasOwnProperty.call(bV,cX)){cJ=L(c1,bV[cX]);if(cJ.length){break}}}for(cX in bd){if(Object.prototype.hasOwnProperty.call(bd,cX)){cB=L(c1,bd[cX]);
-if(cB.length){break}}}}c4=c(aY);cM=cW.length?c(cW):"";if(c4.length&&!az(c4)&&(!a4||!cM.length||az(cM))){cW=aY}if(cW.length||cJ.length){cI=cL;cV=[cJ,cB,cI,bx(cW.slice(0,cF))];cx(cS,JSON2.stringify(cV),cq,a0,cj)}}cD+="&idsite="+bB+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cC.getHours()+"&m="+cC.getMinutes()+"&s="+cC.getSeconds()+"&url="+m(bx(c1))+(aY.length?"&urlref="+m(bx(aY)):"")+((a7&&a7.length)?"&uid="+m(a7):"")+"&_id="+cR.uuid+"&_idts="+cR.createTs+"&_idvc="+cR.visitCount+"&_idn="+cR.newVisitor+(cJ.length?"&_rcn="+m(cJ):"")+(cB.length?"&_rck="+m(cB):"")+"&_refts="+cI+"&_viewts="+cR.lastVisitTs+(String(cR.lastEcommerceOrderTs).length?"&_ects="+cR.lastEcommerceOrderTs:"")+(String(cW).length?"&_ref="+m(bx(cW.slice(0,cF))):"")+(cO?"&cs="+m(cO):"")+"&send_image=0";for(cX in cs){if(Object.prototype.hasOwnProperty.call(cs,cX)){cD+="&"+cX+"="+cs[cX]}}var c3=[];if(cY){for(cX in cY){if(Object.prototype.hasOwnProperty.call(cY,cX)&&/^dimension\d+$/.test(cX)){var cH=cX.replace("dimension","");
-c3.push(parseInt(cH,10));c3.push(String(cH));cD+="&"+cX+"="+cY[cX];delete cY[cX]}}}if(cY&&t(cY)){cY=null}for(cX in aX){if(Object.prototype.hasOwnProperty.call(aX,cX)){var cN=(-1===c3.indexOf(cX));if(cN){cD+="&dimension"+cX+"="+aX[cX]}}}if(cY){cD+="&data="+m(JSON2.stringify(cY))}else{if(Z){cD+="&data="+m(JSON2.stringify(Z))}}function cK(c5,c6){var c7=JSON2.stringify(c5);if(c7.length>2){return"&"+c6+"="+m(c7)}return""}var c2=cA(br);var cT=cA(bQ);cD+=cK(c2,"cvar");cD+=cK(cT,"e_cvar");if(au){cD+=cK(au,"_cvar");for(cX in cU){if(Object.prototype.hasOwnProperty.call(cU,cX)){if(au[cX][0]===""||au[cX][1]===""){delete au[cX]}}}if(bm){cx(cP,JSON2.stringify(au),bT,a0,cj)}}if(aF){if(bR){cD+="&gt_ms="+bR}else{if(f&&f.timing&&f.timing.requestStart&&f.timing.responseEnd){cD+="&gt_ms="+(f.timing.responseEnd-f.timing.requestStart)}}}cR.lastEcommerceOrderTs=z(cE)&&String(cE).length?cE:cR.lastEcommerceOrderTs;ap(cR);bI();cD+=R(cZ);if(cl.length){cD+="&"+cl}if(s(bG)){cD=bG(cD)}return cD}bn=function aJ(){var cB=new Date();
-if(ck+aI<=cB.getTime()){var cC=bW("ping=1",null,"ping");bc(cC,bf);return true}return false};function a1(cE,cD,cI,cF,cB,cL){var cG="idgoal=0",cH,cC=new Date(),cJ=[],cK;if(String(cE).length){cG+="&ec_id="+m(cE);cH=Math.round(cC.getTime()/1000)}cG+="&revenue="+cD;if(String(cI).length){cG+="&ec_st="+cI}if(String(cF).length){cG+="&ec_tx="+cF}if(String(cB).length){cG+="&ec_sh="+cB}if(String(cL).length){cG+="&ec_dt="+cL}if(cm){for(cK in cm){if(Object.prototype.hasOwnProperty.call(cm,cK)){if(!z(cm[cK][1])){cm[cK][1]=""}if(!z(cm[cK][2])){cm[cK][2]=""}if(!z(cm[cK][3])||String(cm[cK][3]).length===0){cm[cK][3]=0}if(!z(cm[cK][4])||String(cm[cK][4]).length===0){cm[cK][4]=1}cJ.push(cm[cK])}}cG+="&ec_items="+m(JSON2.stringify(cJ))}cG=bW(cG,Z,"ecommerce",cH);bc(cG,bf)}function bu(cB,cF,cE,cD,cC,cG){if(String(cB).length&&z(cF)){a1(cB,cF,cE,cD,cC,cG)}}function a2(cB){if(z(cB)){a1("",cB,"","","","")}}function bv(cD,cE){var cB=new Date(),cC=bW("action_name="+m(W(cD||aU)),cE,"log");bc(cC,bf)}function aD(cD,cC){var cE,cB="(^| )(piwik[_-]"+cC;
-if(cD){for(cE=0;cE<cD.length;cE++){cB+="|"+cD[cE]}}cB+=")( |$)";return new RegExp(cB)}function ay(cB){return(aj&&cB&&0===String(cB).indexOf(aj))}function bX(cF,cB,cG,cC){if(ay(cB)){return 0}var cE=aD(bh,"download"),cD=aD(aK,"link"),cH=new RegExp("\\.("+cr.join("|")+")([?&#]|$)","i");if(cD.test(cF)){return"link"}if(cC||cE.test(cF)||cH.test(cB)){return"download"}if(cG){return 0}return"link"}function ad(cC){var cB;cB=cC.parentNode;while(cB!==null&&z(cB)){if(T.isLinkElement(cC)){break}cC=cB;cB=cC.parentNode}return cC}function cv(cG){cG=ad(cG);if(!T.hasNodeAttribute(cG,"href")){return}if(!z(cG.href)){return}var cF=T.getAttributeValueFromNode(cG,"href");if(ay(cF)){return}var cC=cG.pathname||bP(cG.href);var cH=cG.hostname||c(cG.href);var cI=cH.toLowerCase();var cD=cG.href.replace(cH,cI);var cE=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto):","i");if(!cE.test(cD)){var cB=bX(cG.className,cD,ac(cI,cC),T.hasNodeAttribute(cG,"download"));if(cB){return{type:cB,href:cD}
-}}}function at(cB,cC,cD,cE){var cF=o.buildInteractionRequestParams(cB,cC,cD,cE);if(!cF){return}return bW(cF,null,"contentInteraction")}function ca(cD,cE,cI,cB,cC){if(!z(cD)){return}if(ay(cD)){return cD}var cG=o.toAbsoluteUrl(cD);var cF="redirecturl="+m(cG)+"&";cF+=at(cE,cI,cB,(cC||cD));var cH="&";if(aj.indexOf("?")<0){cH="?"}return aj+cH+cF}function aO(cB,cC){if(!cB||!cC){return false}var cD=o.findTargetNode(cB);if(o.shouldIgnoreInteraction(cD)){return false}cD=o.findTargetNodeNoDefault(cB);if(cD&&!K(cD,cC)){return false}return true}function bY(cD,cC,cF){if(!cD){return}var cB=o.findParentContentNode(cD);if(!cB){return}if(!aO(cB,cD)){return}var cE=o.buildContentBlock(cB);if(!cE){return}if(!cE.target&&cF){cE.target=cF}return o.buildInteractionRequestParams(cC,cE.name,cE.piece,cE.target)}function aA(cC){if(!bF||!bF.length){return false}var cB,cD;for(cB=0;cB<bF.length;cB++){cD=bF[cB];if(cD&&cD.name===cC.name&&cD.piece===cC.piece&&cD.target===cC.target){return true}}return false}function bb(cE){if(!cE){return false
-}var cH=o.findTargetNode(cE);if(!cH||o.shouldIgnoreInteraction(cH)){return false}var cI=cv(cH);if(ct&&cI&&cI.type){return false}if(T.isLinkElement(cH)&&T.hasNodeAttributeWithValue(cH,"href")){var cB=String(T.getAttributeValueFromNode(cH,"href"));if(0===cB.indexOf("#")){return false}if(ay(cB)){return true}if(!o.isUrlToCurrentDomain(cB)){return false}var cF=o.buildContentBlock(cE);if(!cF){return}var cD=cF.name;var cJ=cF.piece;var cG=cF.target;if(!T.hasNodeAttributeWithValue(cH,o.CONTENT_TARGET_ATTR)||cH.wasContentTargetAttrReplaced){cH.wasContentTargetAttrReplaced=true;cG=o.toAbsoluteUrl(cB);T.setAnyAttribute(cH,o.CONTENT_TARGET_ATTR,cG)}var cC=ca(cB,"click",cD,cJ,cG);o.setHrefAttribute(cH,cC);return true}return false}function aq(cC){if(!cC||!cC.length){return}var cB;for(cB=0;cB<cC.length;cB++){bb(cC[cB])}}function aC(cB){return function(cC){if(!cB){return}var cF=o.findParentContentNode(cB);var cG;if(cC){cG=cC.target||cC.srcElement}if(!cG){cG=cB}if(!aO(cF,cG)){return}bL(bf);if(T.isLinkElement(cB)&&T.hasNodeAttributeWithValue(cB,"href")&&T.hasNodeAttributeWithValue(cB,o.CONTENT_TARGET_ATTR)){var cD=T.getAttributeValueFromNode(cB,"href");
-if(!ay(cD)&&cB.wasContentTargetAttrReplaced){T.setAnyAttribute(cB,o.CONTENT_TARGET_ATTR,"")}}var cK=cv(cB);if(aa&&cK&&cK.type){return cK.type}if(bb(cF)){return"href"}var cH=o.buildContentBlock(cF);if(!cH){return}var cE=cH.name;var cL=cH.piece;var cJ=cH.target;var cI=at("click",cE,cL,cJ);bc(cI,bf);return cI}}function bw(cD){if(!cD||!cD.length){return}var cB,cC;for(cB=0;cB<cD.length;cB++){cC=o.findTargetNode(cD[cB]);if(cC&&!cC.contentInteractionTrackingSetupDone){cC.contentInteractionTrackingSetupDone=true;Y(cC,"click",aC(cC))}}}function a6(cD,cE){if(!cD||!cD.length){return[]}var cB,cC;for(cB=0;cB<cD.length;cB++){if(aA(cD[cB])){cD.splice(cB,1);cB--}else{bF.push(cD[cB])}}if(!cD||!cD.length){return[]}aq(cE);bw(cE);var cF=[];for(cB=0;cB<cD.length;cB++){cC=bW(o.buildImpressionRequestParams(cD[cB].name,cD[cB].piece,cD[cB].target),undefined,"contentImpressions");cF.push(cC)}return cF}function b1(cC){var cB=o.collectContent(cC);return a6(cB,cC)}function aM(cC){if(!cC||!cC.length){return[]}var cB;
-for(cB=0;cB<cC.length;cB++){if(!o.isNodeVisible(cC[cB])){cC.splice(cB,1);cB--}}if(!cC||!cC.length){return[]}return b1(cC)}function al(cD,cB,cC){var cE=o.buildImpressionRequestParams(cD,cB,cC);return bW(cE,null,"contentImpression")}function cw(cE,cC){if(!cE){return}var cB=o.findParentContentNode(cE);var cD=o.buildContentBlock(cB);if(!cD){return}if(!cC){cC="Unknown"}return at(cC,cD.name,cD.piece,cD.target)}function cc(cC,cE,cB,cD){return"e_c="+m(cC)+"&e_a="+m(cE)+(z(cB)?"&e_n="+m(cB):"")+(z(cD)?"&e_v="+m(cD):"")}function ae(cD,cF,cB,cE,cG){if(String(cD).length===0||String(cF).length===0){return false}var cC=bW(cc(cD,cF,cB,cE),cG,"event");bc(cC,bf)}function bE(cB,cE,cC,cF){var cD=bW("search="+m(cB)+(cE?"&search_cat="+m(cE):"")+(z(cC)?"&search_count="+cC:""),cF,"sitesearch");bc(cD,bf)}function cg(cB,cE,cD){var cC=bW("idgoal="+cB+(cE?"&revenue="+cE:""),cD,"goal");bc(cC,bf)}function cn(cE,cB,cI,cH,cD){var cG=cB+"="+m(bx(cE));var cC=bY(cD,"click",cE);if(cC){cG+="&"+cC}var cF=bW(cG,cI,"link");bc(cF,(cH?0:bf),cH)
-}function bp(cC,cB){if(cC!==""){return cC+cB.charAt(0).toUpperCase()+cB.slice(1)}return cB}function bM(cG){var cF,cB,cE=["","webkit","ms","moz"],cD;if(!aS){for(cB=0;cB<cE.length;cB++){cD=cE[cB];if(Object.prototype.hasOwnProperty.call(x,bp(cD,"hidden"))){if(x[bp(cD,"visibilityState")]==="prerender"){cF=true}break}}}if(cF){Y(x,cD+"visibilitychange",function cC(){x.removeEventListener(cD+"visibilitychange",cC,false);cG()});return}cG()}function ao(cB){if(x.readyState==="complete"){cB()}else{if(J.addEventListener){J.addEventListener("load",cB)}else{if(J.attachEvent){J.attachEvent("onLoad",cB)}}}}function aP(cC){var cB=false;if(x.attachEvent){cB=x.readyState==="complete"}else{cB=x.readyState!=="loading"}if(cB){cC()}else{if(x.addEventListener){x.addEventListener("DOMContentLoaded",cC)}else{if(x.attachEvent){x.attachEvent("onreadystatechange",cC)}}}}function b7(cB){var cC=cv(cB);if(cC&&cC.type){cC.href=j(cC.href);cn(cC.href,cC.type,undefined,null,cB)}}function b0(){return x.all&&!x.addEventListener
-}function ci(cB){var cD=cB.which;var cC=(typeof cB.button);if(!cD&&cC!=="undefined"){if(b0()){if(cB.button&1){cD=1}else{if(cB.button&2){cD=3}else{if(cB.button&4){cD=2}}}}else{if(cB.button===0||cB.button==="0"){cD=1}else{if(cB.button&1){cD=2}else{if(cB.button&2){cD=3}}}}}return cD}function bo(cB){switch(ci(cB)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aE(cB){return cB.target||cB.srcElement}function ah(cB){return function(cE){cE=cE||J.event;var cD=bo(cE);var cF=aE(cE);if(cE.type==="click"){var cC=false;if(cB&&cD==="middle"){cC=true}if(cF&&!cC){b7(cF)}}else{if(cE.type==="mousedown"){if(cD==="middle"&&cF){av=cD;a9=cF}else{av=a9=null}}else{if(cE.type==="mouseup"){if(cD===av&&cF===a9){b7(cF)}av=a9=null}else{if(cE.type==="contextmenu"){b7(cF)}}}}}}function ab(cC,cB){Y(cC,"click",ah(cB),false);if(cB){Y(cC,"mouseup",ah(cB),false);Y(cC,"mousedown",ah(cB),false);Y(cC,"contextmenu",ah(cB),false)}}function ba(cC){if(!aa){aa=true;var cD,cB=aD(a8,"ignore"),cE=x.links;if(cE){for(cD=0;
-cD<cE.length;cD++){if(!cB.test(cE[cD].className)){ab(cE[cD],cC)}}}}}function aw(cD,cF,cG){if(bK){return true}bK=true;var cH=false;var cE,cC;function cB(){cH=true}ao(function(){function cI(cK){setTimeout(function(){if(!bK){return}cH=false;cG.trackVisibleContentImpressions();cI(cK)},cK)}function cJ(cK){setTimeout(function(){if(!bK){return}if(cH){cH=false;cG.trackVisibleContentImpressions()}cJ(cK)},cK)}if(cD){cE=["scroll","resize"];for(cC=0;cC<cE.length;cC++){if(x.addEventListener){x.addEventListener(cE[cC],cB)}else{J.attachEvent("on"+cE[cC],cB)}}cJ(100)}if(cF&&cF>0){cF=parseInt(cF,10);cI(cF)}})}function aL(cF,cH){var cG=bP(cF);var cE=bP(cH);if(!cG||cG==="/"||!cE||cE==="/"){return}var cD=B(cF);if(ac(cD,"/")){return}if(co(cG,"/")){cG=aQ(cG,1)}var cI=cG.split("/");var cC;for(cC=2;cC<cI.length;cC++){var cB=cI.slice(0,cC).join("/");if(ac(cD,cB)){cG=cB;break}}if(!aG(cE,cG)){return}return cG}function b5(){var cD,cF,cG={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"},cC=J.devicePixelRatio||1;
-if(!((new RegExp("MSIE")).test(e.userAgent))){if(e.mimeTypes&&e.mimeTypes.length){for(cD in cG){if(Object.prototype.hasOwnProperty.call(cG,cD)){cF=e.mimeTypes[cG[cD]];cs[cD]=(cF&&cF.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&z(e.javaEnabled)&&e.javaEnabled()){cs.java="1"}if(s(J.GearsFactory)){cs.gears="1"}cs.cookie=bA()}var cE=parseInt(N.width,10)*cC;var cB=parseInt(N.height,10)*cC;cs.res=parseInt(cE,10)+"x"+parseInt(cB,10)}b5();aT();ap();return{getVisitorId:function(){return aB().uuid},getVisitorInfo:function(){return cb()},getAttributionInfo:function(){return bi()},getAttributionCampaignName:function(){return bi()[0]},getAttributionCampaignKeyword:function(){return bi()[1]},getAttributionReferrerTimestamp:function(){return bi()[2]},getAttributionReferrerUrl:function(){return bi()[3]},setTrackerUrl:function(cB){aj=cB},getTrackerUrl:function(){return aj},getSiteId:function(){return bB},setSiteId:function(cB){by(cB)},setUserId:function(cB){if(!z(cB)||!cB.length){return
-}a7=cB;bk=bC(a7).substr(0,16)},getUserId:function(){return a7},setCustomData:function(cB,cC){if(M(cB)){Z=cB}else{if(!Z){Z={}}Z[cB]=cC}},getCustomData:function(){return Z},setCustomRequestProcessing:function(cB){bG=cB},appendToTrackingUrl:function(cB){cl=cB},getRequest:function(cB){return bW(cB)},addPlugin:function(cB,cC){a[cB]=cC},setCustomDimension:function(cB,cC){cB=parseInt(cB,10);if(cB>0){if(!z(cC)){cC=""}if(!p(cC)){cC=String(cC)}aX[cB]=cC}},getCustomDimension:function(cB){cB=parseInt(cB,10);if(cB>0&&Object.prototype.hasOwnProperty.call(aX,cB)){return aX[cB]}},deleteCustomDimension:function(cB){cB=parseInt(cB,10);if(cB>0){delete aX[cB]}},setCustomVariable:function(cC,cB,cF,cD){var cE;if(!z(cD)){cD="visit"}if(!z(cB)){return}if(!z(cF)){cF=""}if(cC>0){cB=!p(cB)?String(cB):cB;cF=!p(cF)?String(cF):cF;cE=[cB.slice(0,a3),cF.slice(0,a3)];if(cD==="visit"||cD===2){b4();au[cC]=cE}else{if(cD==="page"||cD===3){br[cC]=cE}else{if(cD==="event"){bQ[cC]=cE}}}}},getCustomVariable:function(cC,cD){var cB;
-if(!z(cD)){cD="visit"}if(cD==="page"||cD===3){cB=br[cC]}else{if(cD==="event"){cB=bQ[cC]}else{if(cD==="visit"||cD===2){b4();cB=au[cC]}}}if(!z(cB)||(cB&&cB[0]==="")){return false}return cB},deleteCustomVariable:function(cB,cC){if(this.getCustomVariable(cB,cC)){this.setCustomVariable(cB,"","",cC)}},storeCustomVariablesInCookie:function(){bm=true},setLinkTrackingTimer:function(cB){bf=cB},setDownloadExtensions:function(cB){if(p(cB)){cB=cB.split("|")}cr=cB},addDownloadExtensions:function(cC){var cB;if(p(cC)){cC=cC.split("|")}for(cB=0;cB<cC.length;cB++){cr.push(cC[cB])}},removeDownloadExtensions:function(cD){var cC,cB=[];if(p(cD)){cD=cD.split("|")}for(cC=0;cC<cr.length;cC++){if(C(cD,cr[cC])===-1){cB.push(cr[cC])}}cr=cB},setDomains:function(cB){af=p(cB)?[cB]:cB;var cD=false,cC;for(cC in af){if(Object.prototype.hasOwnProperty.call(af,cC)&&b6(ch,B(String(af[cC])))){cD=true;if(!a0){var cE=aL(af[cC],bj);if(cE){this.setCookiePath(cE)}break}}}if(!cD){af.push(ch)}},setIgnoreClasses:function(cB){a8=p(cB)?[cB]:cB
-},setRequestMethod:function(cB){cu=cB||bN},setRequestContentType:function(cB){bZ=cB||an},setReferrerUrl:function(cB){aY=cB},setCustomUrl:function(cB){aH=bq(bj,cB)},setDocumentTitle:function(cB){aU=cB},setAPIUrl:function(cB){be=cB},setDownloadClasses:function(cB){bh=p(cB)?[cB]:cB},setLinkClasses:function(cB){aK=p(cB)?[cB]:cB},setCampaignNameKey:function(cB){bV=p(cB)?[cB]:cB},setCampaignKeywordKey:function(cB){bd=p(cB)?[cB]:cB},discardHashTag:function(cB){bl=cB},setCookieNamePrefix:function(cB){aV=cB;au=bs()},setCookieDomain:function(cB){var cC=B(cB);if(a5(cC)){cj=cC;aT()}},setCookiePath:function(cB){a0=cB;aT()},setVisitorCookieTimeout:function(cB){b9=cB*1000},setSessionCookieTimeout:function(cB){bT=cB*1000},setReferralCookieTimeout:function(cB){cq=cB*1000},setConversionAttributionFirstReferrer:function(cB){a4=cB},disableCookies:function(){aW=true;cs.cookie="0";if(bB){ak()}},deleteCookies:function(){ak()},setDoNotTrack:function(cC){var cB=e.doNotTrack||e.msDoNotTrack;cd=cC&&(cB==="yes"||cB==="1");
-if(cd){this.disableCookies()}},addListener:function(cC,cB){ab(cC,cB)},enableLinkTracking:function(cB){ct=true;if(r){ba(cB)}else{H.push(function(){ba(cB)})}},enableJSErrorTracking:function(){if(cf){return}cf=true;var cB=J.onerror;J.onerror=function(cG,cE,cD,cF,cC){bM(function(){var cH="JavaScript Errors";var cI=cE+":"+cD;if(cF){cI+=":"+cF}ae(cH,cI,cG)});if(cB){return cB(cG,cE,cD,cF,cC)}return false}},disablePerformanceTracking:function(){aF=false},setGenerationTimeMs:function(cB){bR=parseInt(cB,10)},enableHeartBeatTimer:function(cB){cB=Math.max(cB,1);aI=(cB||15)*1000;if(ck!==null){cz()}},killFrame:function(){if(J.location!==J.top.location){J.top.location=J.location}},redirectFile:function(cB){if(J.location.protocol==="file:"){J.location=cB}},setCountPreRendered:function(cB){aS=cB},trackGoal:function(cB,cD,cC){bM(function(){cg(cB,cD,cC)})},trackLink:function(cC,cB,cE,cD){bM(function(){cn(cC,cB,cE,cD)})},trackPageView:function(cB,cC){bF=[];if(D(bB)){bM(function(){P(aj,be,bB)})}else{bM(function(){bv(cB,cC)
-})}},trackAllContentImpressions:function(){if(D(bB)){return}bM(function(){aP(function(){var cB=o.findContentNodes();var cC=b1(cB);cy(cC,bf)})})},trackVisibleContentImpressions:function(cB,cC){if(D(bB)){return}if(!z(cB)){cB=true}if(!z(cC)){cC=750}aw(cB,cC,this);bM(function(){ao(function(){var cD=o.findContentNodes();var cE=aM(cD);cy(cE,bf)})})},trackContentImpression:function(cD,cB,cC){if(D(bB)){return}if(!cD){return}cB=cB||"Unknown";bM(function(){var cE=al(cD,cB,cC);bc(cE,bf)})},trackContentImpressionsWithinNode:function(cB){if(D(bB)||!cB){return}bM(function(){if(bK){ao(function(){var cC=o.findContentNodesWithinNode(cB);var cD=aM(cC);cy(cD,bf)})}else{aP(function(){var cC=o.findContentNodesWithinNode(cB);var cD=b1(cC);cy(cD,bf)})}})},trackContentInteraction:function(cD,cE,cB,cC){if(D(bB)){return}if(!cD||!cE){return}cB=cB||"Unknown";bM(function(){var cF=at(cD,cE,cB,cC);bc(cF,bf)})},trackContentInteractionNode:function(cC,cB){if(D(bB)||!cC){return}bM(function(){var cD=cw(cC,cB);bc(cD,bf)})
-},logAllContentBlocksOnPage:function(){var cC=o.findContentNodes();var cB=o.collectContent(cC);if(console!==undefined&&console&&console.log){console.log(cB)}},trackEvent:function(cC,cE,cB,cD,cF){bM(function(){ae(cC,cE,cB,cD,cF)})},trackSiteSearch:function(cB,cD,cC,cE){bM(function(){bE(cB,cD,cC,cE)})},setEcommerceView:function(cE,cB,cD,cC){if(!z(cD)||!cD.length){cD=""}else{if(cD instanceof Array){cD=JSON2.stringify(cD)}}br[5]=["_pkc",cD];if(z(cC)&&String(cC).length){br[2]=["_pkp",cC]}if((!z(cE)||!cE.length)&&(!z(cB)||!cB.length)){return}if(z(cE)&&cE.length){br[3]=["_pks",cE]}if(!z(cB)||!cB.length){cB=""}br[4]=["_pkn",cB]},addEcommerceItem:function(cF,cB,cD,cC,cE){if(cF.length){cm[cF]=[cF,cB,cD,cC,cE]}},trackEcommerceOrder:function(cB,cF,cE,cD,cC,cG){bu(cB,cF,cE,cD,cC,cG)},trackEcommerceCartUpdate:function(cB){a2(cB)}}}function y(){return{push:U}}function b(ae,ad){var af={};var ab,ac;for(ab=0;ab<ad.length;ab++){var Z=ad[ab];af[Z]=1;for(ac=0;ac<ae.length;ac++){if(ae[ac]&&ae[ac][0]){var aa=ae[ac][0];
-if(Z===aa){U(ae[ac]);delete ae[ac];if(af[aa]>1){if(console!==undefined&&console&&console.error){console.error("The method "+aa+' is registered more than once in "paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: http://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}}af[aa]++}}}}return ae}Y(J,"beforeunload",V,false);q();Date.prototype.getTimeAlias=Date.prototype.getTime;O=new G();var u=["disableCookies","setTrackerUrl","setAPIUrl","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];_paq=b(_paq,u);for(w=0;w<_paq.length;w++){if(_paq[w]){U(_paq[w])}}_paq=new y();d={addPlugin:function(Z,aa){a[Z]=aa},getTracker:function(Z,aa){if(!z(aa)){aa=this.getAsyncTracker().getSiteId()}if(!z(Z)){Z=this.getAsyncTracker().getTrackerUrl()}return new G(Z,aa)},getAsyncTracker:function(){return O}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return d
-})}return d}())}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}};
+if(ad=="}"){break}if(ae){if(ad==","){ad=y();if(ad=="}"){H()}}else{H()}}if(ad==","||typeof ad!="string"||(F?ad.charAt(0):ad[0])!="@"||y()!=":"){H()}ac[ad.slice(1)]=W(y())}return ac}}H()}return ad};var P=function(ae,ad,af){var ac=w(ae,ad,af);if(ac===L){delete ae[ad]}else{ae[ad]=ac}};var w=function(af,ae,ag){var ad=af[ae],ac;if(typeof ad=="object"&&ad){if(u.call(ad)==E){for(ac=ad.length;ac--;){P(ad,ac,ag)}}else{m(ad,function(ah){P(ad,ah,ag)})}}return ag.call(af,ae,ad)};V.parse=function(ae,af){var ac,ad;G=0;X=""+ae;ac=W(y());if(y()!="$"){H()}G=X=null;return af&&u.call(af)==U?w((ad={},ad[""]=ac,ad),"",af):ac}}}V.runInContext=j;return V}if(h&&!c){j(i,h)}else{var f=i.JSON,k=i.JSON3,d=false;var g=j(i,(i.JSON3={noConflict:function(){if(!d){d=true;i.JSON=f;i.JSON3=k;f=k=null}return g}}));i.JSON={parse:g.parse,stringify:g.stringify}}if(c){define(function(){return g})}}).call(this);JSON2=a})()}if(typeof _paq!=="object"){_paq=[]}if(typeof window.Piwik!=="object"){window.Piwik=(function(){var l,a={},z=document,f=navigator,Q=screen,M=window,g=M.performance||M.mozPerformance||M.msPerformance||M.webkitPerformance,s=false,K=[],n=M.encodeURIComponent,L=M.decodeURIComponent,i=unescape,R,y,d;
+function k(ac){try{return L(ac)}catch(ad){return unescape(ac)}}function B(ad){var ac=typeof ad;return ac!=="undefined"}function u(ac){return typeof ac==="function"}function P(ac){return typeof ac==="object"}function q(ac){return typeof ac==="string"||ac instanceof String}function v(ad){if(!ad){return true}var ac;var ae=true;for(ac in ad){if(Object.prototype.hasOwnProperty.call(ad,ac)){ae=false}}return ae}function X(){var ac,ae,ad;for(ac=0;ac<arguments.length;ac+=1){ad=arguments[ac];ae=ad.shift();if(q(ae)){R[ae].apply(R,ad)}else{ae.apply(R,ad)}}}function ab(af,ae,ad,ac){if(af.addEventListener){af.addEventListener(ae,ad,ac);return true}if(af.attachEvent){return af.attachEvent("on"+ae,ad)}af["on"+ae]=ad}function U(ad,ag){var ac="",af,ae;for(af in a){if(Object.prototype.hasOwnProperty.call(a,af)){ae=a[af][ad];if(u(ae)){ac+=ae(ag)}}}return ac}function Y(){var ac;U("unload");if(l){do{ac=new Date()}while(ac.getTimeAlias()<l)}}function V(){var ac;if(!s){s=true;U("load");for(ac=0;ac<K.length;ac++){K[ac]()
+}}return true}function r(){var ad;if(z.addEventListener){ab(z,"DOMContentLoaded",function ac(){z.removeEventListener("DOMContentLoaded",ac,false);V()})}else{if(z.attachEvent){z.attachEvent("onreadystatechange",function ac(){if(z.readyState==="complete"){z.detachEvent("onreadystatechange",ac);V()}});if(z.documentElement.doScroll&&M===M.top){(function ac(){if(!s){try{z.documentElement.doScroll("left")}catch(ae){setTimeout(ac,0);return}V()}}())}}}if((new RegExp("WebKit")).test(f.userAgent)){ad=setInterval(function(){if(s||/loaded|complete/.test(z.readyState)){clearInterval(ad);V()}},10)}ab(M,"load",V,false)}function j(ae,ad){var ac=z.createElement("script");ac.type="text/javascript";ac.src=ae;if(ac.readyState){ac.onreadystatechange=function(){var af=this.readyState;if(af==="loaded"||af==="complete"){ac.onreadystatechange=null;ad()}}}else{ac.onload=ad}z.getElementsByTagName("head")[0].appendChild(ac)}function C(){var ac="";try{ac=M.top.document.referrer}catch(ae){if(M.parent){try{ac=M.parent.document.referrer
+}catch(ad){ac=""}}}if(ac===""){ac=z.referrer}return ac}function m(ac){var ae=new RegExp("^([a-z]+):"),ad=ae.exec(ac);return ad?ad[1]:null}function c(ac){var ae=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)"),ad=ae.exec(ac);return ad?ad[1]:ac}function O(ae,ad){var ac="[\\?&#]"+ad+"=([^&#]*)";var ag=new RegExp(ac);var af=ag.exec(ae);return af?L(af[1]):""}function x(ac){return unescape(n(ac))}function aa(ar){var ae=function(ay,ax){return(ay<<ax)|(ay>>>(32-ax))},at=function(aA){var ay="",az,ax;for(az=7;az>=0;az--){ax=(aA>>>(az*4))&15;ay+=ax.toString(16)}return ay},ah,av,au,ad=[],al=1732584193,aj=4023233417,ai=2562383102,ag=271733878,af=3285377520,aq,ap,ao,an,am,aw,ac,ak=[];ar=x(ar);ac=ar.length;for(av=0;av<ac-3;av+=4){au=ar.charCodeAt(av)<<24|ar.charCodeAt(av+1)<<16|ar.charCodeAt(av+2)<<8|ar.charCodeAt(av+3);ak.push(au)}switch(ac&3){case 0:av=2147483648;break;case 1:av=ar.charCodeAt(ac-1)<<24|8388608;break;case 2:av=ar.charCodeAt(ac-2)<<24|ar.charCodeAt(ac-1)<<16|32768;break;case 3:av=ar.charCodeAt(ac-3)<<24|ar.charCodeAt(ac-2)<<16|ar.charCodeAt(ac-1)<<8|128;
+break}ak.push(av);while((ak.length&15)!==14){ak.push(0)}ak.push(ac>>>29);ak.push((ac<<3)&4294967295);for(ah=0;ah<ak.length;ah+=16){for(av=0;av<16;av++){ad[av]=ak[ah+av]}for(av=16;av<=79;av++){ad[av]=ae(ad[av-3]^ad[av-8]^ad[av-14]^ad[av-16],1)}aq=al;ap=aj;ao=ai;an=ag;am=af;for(av=0;av<=19;av++){aw=(ae(aq,5)+((ap&ao)|(~ap&an))+am+ad[av]+1518500249)&4294967295;am=an;an=ao;ao=ae(ap,30);ap=aq;aq=aw}for(av=20;av<=39;av++){aw=(ae(aq,5)+(ap^ao^an)+am+ad[av]+1859775393)&4294967295;am=an;an=ao;ao=ae(ap,30);ap=aq;aq=aw}for(av=40;av<=59;av++){aw=(ae(aq,5)+((ap&ao)|(ap&an)|(ao&an))+am+ad[av]+2400959708)&4294967295;am=an;an=ao;ao=ae(ap,30);ap=aq;aq=aw}for(av=60;av<=79;av++){aw=(ae(aq,5)+(ap^ao^an)+am+ad[av]+3395469782)&4294967295;am=an;an=ao;ao=ae(ap,30);ap=aq;aq=aw}al=(al+aq)&4294967295;aj=(aj+ap)&4294967295;ai=(ai+ao)&4294967295;ag=(ag+an)&4294967295;af=(af+am)&4294967295}aw=at(al)+at(aj)+at(ai)+at(ag)+at(af);return aw.toLowerCase()}function T(ae,ac,ad){if(!ae){ae=""}if(!ac){ac=""}if(ae==="translate.googleusercontent.com"){if(ad===""){ad=ac
+}ac=O(ac,"u");ae=c(ac)}else{if(ae==="cc.bingj.com"||ae==="webcache.googleusercontent.com"||ae.slice(0,5)==="74.6."){ac=z.links[0].href;ae=c(ac)}}return[ae,ac,ad]}function D(ad){var ac=ad.length;if(ad.charAt(--ac)==="."){ad=ad.slice(0,ac)}if(ad.slice(0,2)==="*."){ad=ad.slice(1)}if(ad.indexOf("/")!==-1){ad=ad.substr(0,ad.indexOf("/"))}return ad}function Z(ad){ad=ad&&ad.text?ad.text:ad;if(!q(ad)){var ac=z.getElementsByTagName("title");if(ac&&B(ac[0])){ad=ac[0].text}}return ad}function H(ac){if(!ac){return[]}if(!B(ac.children)&&B(ac.childNodes)){return ac.children}if(B(ac.children)){return ac.children}return[]}function N(ad,ac){if(!ad||!ac){return false}if(ad.contains){return ad.contains(ac)}if(ad===ac){return true}if(ad.compareDocumentPosition){return !!(ad.compareDocumentPosition(ac)&16)}return false}function E(ae,af){if(ae&&ae.indexOf){return ae.indexOf(af)}if(!B(ae)||ae===null){return -1}if(!ae.length){return -1}var ac=ae.length;if(ac===0){return -1}var ad=0;while(ad<ac){if(ae[ad]===af){return ad
+}ad++}return -1}function J(ad,ac){ad=String(ad);return ad.indexOf(ac,ad.length-ac.length)!==-1}function t(ad,ac){ad=String(ad);return ad.indexOf(ac)!==-1}function e(ad,ac){ad=String(ad);return ad.substr(0,ad.length-ac)}function h(ae){if(!ae){return false}function ac(ag,ah){if(M.getComputedStyle){return z.defaultView.getComputedStyle(ag,null)[ah]}if(ag.currentStyle){return ag.currentStyle[ah]}}function af(ag){ag=ag.parentNode;while(ag){if(ag===z){return true}ag=ag.parentNode}return false}function ad(ai,ao,ag,al,aj,am,ak){var ah=ai.parentNode,an=1;if(!af(ai)){return false}if(9===ah.nodeType){return true}if("0"===ac(ai,"opacity")||"none"===ac(ai,"display")||"hidden"===ac(ai,"visibility")){return false}if(!B(ao)||!B(ag)||!B(al)||!B(aj)||!B(am)||!B(ak)){ao=ai.offsetTop;aj=ai.offsetLeft;al=ao+ai.offsetHeight;ag=aj+ai.offsetWidth;am=ai.offsetWidth;ak=ai.offsetHeight}if(ae===ai&&(0===ak||0===am)&&"hidden"===ac(ai,"overflow")){return false}if(ah){if(("hidden"===ac(ah,"overflow")||"scroll"===ac(ah,"overflow"))){if(aj+an>ah.offsetWidth+ah.scrollLeft||aj+am-an<ah.scrollLeft||ao+an>ah.offsetHeight+ah.scrollTop||ao+ak-an<ah.scrollTop){return false
+}}if(ai.offsetParent===ah){aj+=ah.offsetLeft;ao+=ah.offsetTop}return ad(ah,ao,ag,al,aj,am,ak)}return true}return ad(ae)}var W={htmlCollectionToArray:function(ae){var ac=[],ad;if(!ae||!ae.length){return ac}for(ad=0;ad<ae.length;ad++){ac.push(ae[ad])}return ac},find:function(ac){if(!document.querySelectorAll||!ac){return[]}var ad=document.querySelectorAll(ac);return this.htmlCollectionToArray(ad)},findMultiple:function(ae){if(!ae||!ae.length){return[]}var ad,af;var ac=[];for(ad=0;ad<ae.length;ad++){af=this.find(ae[ad]);ac=ac.concat(af)}ac=this.makeNodesUnique(ac);return ac},findNodesByTagName:function(ad,ac){if(!ad||!ac||!ad.getElementsByTagName){return[]}var ae=ad.getElementsByTagName(ac);return this.htmlCollectionToArray(ae)},makeNodesUnique:function(ac){var ah=[].concat(ac);ac.sort(function(aj,ai){if(aj===ai){return 0}var al=E(ah,aj);var ak=E(ah,ai);if(al===ak){return 0}return al>ak?-1:1});if(ac.length<=1){return ac}var ad=0;var af=0;var ag=[];var ae;ae=ac[ad++];while(ae){if(ae===ac[ad]){af=ag.push(ad)
+}ae=ac[ad++]||null}while(af--){ac.splice(ag[af],1)}return ac},getAttributeValueFromNode:function(ag,ae){if(!this.hasNodeAttribute(ag,ae)){return}if(ag&&ag.getAttribute){return ag.getAttribute(ae)}if(!ag||!ag.attributes){return}var af=(typeof ag.attributes[ae]);if("undefined"===af){return}if(ag.attributes[ae].value){return ag.attributes[ae].value}if(ag.attributes[ae].nodeValue){return ag.attributes[ae].nodeValue}var ad;var ac=ag.attributes;if(!ac){return}for(ad=0;ad<ac.length;ad++){if(ac[ad].nodeName===ae){return ac[ad].nodeValue}}return null},hasNodeAttributeWithValue:function(ad,ac){var ae=this.getAttributeValueFromNode(ad,ac);return !!ae},hasNodeAttribute:function(ae,ac){if(ae&&ae.hasAttribute){return ae.hasAttribute(ac)}if(ae&&ae.attributes){var ad=(typeof ae.attributes[ac]);return"undefined"!==ad}return false},hasNodeCssClass:function(ae,ac){if(ae&&ac&&ae.className){var ad=typeof ae.className==="string"?ae.className.split(" "):[];if(-1!==E(ad,ac)){return true}}return false},findNodesHavingAttribute:function(ag,ae,ac){if(!ac){ac=[]
+}if(!ag||!ae){return ac}var af=H(ag);if(!af||!af.length){return ac}var ad,ah;for(ad=0;ad<af.length;ad++){ah=af[ad];if(this.hasNodeAttribute(ah,ae)){ac.push(ah)}ac=this.findNodesHavingAttribute(ah,ae,ac)}return ac},findFirstNodeHavingAttribute:function(ae,ad){if(!ae||!ad){return}if(this.hasNodeAttribute(ae,ad)){return ae}var ac=this.findNodesHavingAttribute(ae,ad);if(ac&&ac.length){return ac[0]}},findFirstNodeHavingAttributeWithValue:function(af,ae){if(!af||!ae){return}if(this.hasNodeAttributeWithValue(af,ae)){return af}var ac=this.findNodesHavingAttribute(af,ae);if(!ac||!ac.length){return}var ad;for(ad=0;ad<ac.length;ad++){if(this.getAttributeValueFromNode(ac[ad],ae)){return ac[ad]}}},findNodesHavingCssClass:function(ag,af,ac){if(!ac){ac=[]}if(!ag||!af){return ac}if(ag.getElementsByClassName){var ah=ag.getElementsByClassName(af);return this.htmlCollectionToArray(ah)}var ae=H(ag);if(!ae||!ae.length){return[]}var ad,ai;for(ad=0;ad<ae.length;ad++){ai=ae[ad];if(this.hasNodeCssClass(ai,af)){ac.push(ai)
+}ac=this.findNodesHavingCssClass(ai,af,ac)}return ac},findFirstNodeHavingClass:function(ae,ad){if(!ae||!ad){return}if(this.hasNodeCssClass(ae,ad)){return ae}var ac=this.findNodesHavingCssClass(ae,ad);if(ac&&ac.length){return ac[0]}},isLinkElement:function(ad){if(!ad){return false}var ac=String(ad.nodeName).toLowerCase();var af=["a","area"];var ae=E(af,ac);return ae!==-1},setAnyAttribute:function(ad,ac,ae){if(!ad||!ac){return}if(ad.setAttribute){ad.setAttribute(ac,ae)}else{ad[ac]=ae}}};var p={CONTENT_ATTR:"data-track-content",CONTENT_CLASS:"piwikTrackContent",CONTENT_NAME_ATTR:"data-content-name",CONTENT_PIECE_ATTR:"data-content-piece",CONTENT_PIECE_CLASS:"piwikContentPiece",CONTENT_TARGET_ATTR:"data-content-target",CONTENT_TARGET_CLASS:"piwikContentTarget",CONTENT_IGNOREINTERACTION_ATTR:"data-content-ignoreinteraction",CONTENT_IGNOREINTERACTION_CLASS:"piwikContentIgnoreInteraction",location:undefined,findContentNodes:function(){var ad="."+this.CONTENT_CLASS;var ac="["+this.CONTENT_ATTR+"]";
+var ae=W.findMultiple([ad,ac]);return ae},findContentNodesWithinNode:function(af){if(!af){return[]}var ad=W.findNodesHavingCssClass(af,this.CONTENT_CLASS);var ac=W.findNodesHavingAttribute(af,this.CONTENT_ATTR);if(ac&&ac.length){var ae;for(ae=0;ae<ac.length;ae++){ad.push(ac[ae])}}if(W.hasNodeAttribute(af,this.CONTENT_ATTR)){ad.push(af)}else{if(W.hasNodeCssClass(af,this.CONTENT_CLASS)){ad.push(af)}}ad=W.makeNodesUnique(ad);return ad},findParentContentNode:function(ad){if(!ad){return}var ae=ad;var ac=0;while(ae&&ae!==z&&ae.parentNode){if(W.hasNodeAttribute(ae,this.CONTENT_ATTR)){return ae}if(W.hasNodeCssClass(ae,this.CONTENT_CLASS)){return ae}ae=ae.parentNode;if(ac>1000){break}ac++}},findPieceNode:function(ad){var ac;ac=W.findFirstNodeHavingAttribute(ad,this.CONTENT_PIECE_ATTR);if(!ac){ac=W.findFirstNodeHavingClass(ad,this.CONTENT_PIECE_CLASS)}if(ac){return ac}return ad},findTargetNodeNoDefault:function(ac){if(!ac){return}var ad=W.findFirstNodeHavingAttributeWithValue(ac,this.CONTENT_TARGET_ATTR);
+if(ad){return ad}ad=W.findFirstNodeHavingAttribute(ac,this.CONTENT_TARGET_ATTR);if(ad){return ad}ad=W.findFirstNodeHavingClass(ac,this.CONTENT_TARGET_CLASS);if(ad){return ad}},findTargetNode:function(ac){var ad=this.findTargetNodeNoDefault(ac);if(ad){return ad}return ac},findContentName:function(ad){if(!ad){return}var ag=W.findFirstNodeHavingAttributeWithValue(ad,this.CONTENT_NAME_ATTR);if(ag){return W.getAttributeValueFromNode(ag,this.CONTENT_NAME_ATTR)}var ac=this.findContentPiece(ad);if(ac){return this.removeDomainIfIsInLink(ac)}if(W.hasNodeAttributeWithValue(ad,"title")){return W.getAttributeValueFromNode(ad,"title")}var ae=this.findPieceNode(ad);if(W.hasNodeAttributeWithValue(ae,"title")){return W.getAttributeValueFromNode(ae,"title")}var af=this.findTargetNode(ad);if(W.hasNodeAttributeWithValue(af,"title")){return W.getAttributeValueFromNode(af,"title")}},findContentPiece:function(ad){if(!ad){return}var af=W.findFirstNodeHavingAttributeWithValue(ad,this.CONTENT_PIECE_ATTR);if(af){return W.getAttributeValueFromNode(af,this.CONTENT_PIECE_ATTR)
+}var ac=this.findPieceNode(ad);var ae=this.findMediaUrlInNode(ac);if(ae){return this.toAbsoluteUrl(ae)}},findContentTarget:function(ae){if(!ae){return}var af=this.findTargetNode(ae);if(W.hasNodeAttributeWithValue(af,this.CONTENT_TARGET_ATTR)){return W.getAttributeValueFromNode(af,this.CONTENT_TARGET_ATTR)}var ad;if(W.hasNodeAttributeWithValue(af,"href")){ad=W.getAttributeValueFromNode(af,"href");return this.toAbsoluteUrl(ad)}var ac=this.findPieceNode(ae);if(W.hasNodeAttributeWithValue(ac,"href")){ad=W.getAttributeValueFromNode(ac,"href");return this.toAbsoluteUrl(ad)}},isSameDomain:function(ac){if(!ac||!ac.indexOf){return false}if(0===ac.indexOf(this.getLocation().origin)){return true}var ad=ac.indexOf(this.getLocation().host);if(8>=ad&&0<=ad){return true}return false},removeDomainIfIsInLink:function(ae){var ad="^https?://[^/]+";var ac="^.*//[^/]+";if(ae&&ae.search&&-1!==ae.search(new RegExp(ad))&&this.isSameDomain(ae)){ae=ae.replace(new RegExp(ac),"");if(!ae){ae="/"}}return ae},findMediaUrlInNode:function(ag){if(!ag){return
+}var ae=["img","embed","video","audio"];var ac=ag.nodeName.toLowerCase();if(-1!==E(ae,ac)&&W.findFirstNodeHavingAttributeWithValue(ag,"src")){var af=W.findFirstNodeHavingAttributeWithValue(ag,"src");return W.getAttributeValueFromNode(af,"src")}if(ac==="object"&&W.hasNodeAttributeWithValue(ag,"data")){return W.getAttributeValueFromNode(ag,"data")}if(ac==="object"){var ah=W.findNodesByTagName(ag,"param");if(ah&&ah.length){var ad;for(ad=0;ad<ah.length;ad++){if("movie"===W.getAttributeValueFromNode(ah[ad],"name")&&W.hasNodeAttributeWithValue(ah[ad],"value")){return W.getAttributeValueFromNode(ah[ad],"value")}}}var ai=W.findNodesByTagName(ag,"embed");if(ai&&ai.length){return this.findMediaUrlInNode(ai[0])}}},trim:function(ac){if(ac&&String(ac)===ac){return ac.replace(/^\s+|\s+$/g,"")}return ac},isOrWasNodeInViewport:function(ah){if(!ah||!ah.getBoundingClientRect||ah.nodeType!==1){return true}var ag=ah.getBoundingClientRect();var af=z.documentElement||{};var ae=ag.top<0;if(ae&&ah.offsetTop){ae=(ah.offsetTop+ag.height)>0
+}var ad=af.clientWidth;if(M.innerWidth&&ad>M.innerWidth){ad=M.innerWidth}var ac=af.clientHeight;if(M.innerHeight&&ac>M.innerHeight){ac=M.innerHeight}return((ag.bottom>0||ae)&&ag.right>0&&ag.left<ad&&((ag.top<ac)||ae))},isNodeVisible:function(ad){var ac=h(ad);var ae=this.isOrWasNodeInViewport(ad);return ac&&ae},buildInteractionRequestParams:function(ac,ad,ae,af){var ag="";if(ac){ag+="c_i="+n(ac)}if(ad){if(ag){ag+="&"}ag+="c_n="+n(ad)}if(ae){if(ag){ag+="&"}ag+="c_p="+n(ae)}if(af){if(ag){ag+="&"}ag+="c_t="+n(af)}return ag},buildImpressionRequestParams:function(ac,ad,ae){var af="c_n="+n(ac)+"&c_p="+n(ad);if(ae){af+="&c_t="+n(ae)}return af},buildContentBlock:function(ae){if(!ae){return}var ac=this.findContentName(ae);var ad=this.findContentPiece(ae);var af=this.findContentTarget(ae);ac=this.trim(ac);ad=this.trim(ad);af=this.trim(af);return{name:ac||"Unknown",piece:ad||"Unknown",target:af||""}},collectContent:function(af){if(!af||!af.length){return[]}var ae=[];var ac,ad;for(ac=0;ac<af.length;
+ac++){ad=this.buildContentBlock(af[ac]);if(B(ad)){ae.push(ad)}}return ae},setLocation:function(ac){this.location=ac},getLocation:function(){var ac=this.location||M.location;if(!ac.origin){ac.origin=ac.protocol+"//"+ac.hostname+(ac.port?":"+ac.port:"")}return ac},toAbsoluteUrl:function(ad){if((!ad||String(ad)!==ad)&&ad!==""){return ad}if(""===ad){return this.getLocation().href}if(ad.search(/^\/\//)!==-1){return this.getLocation().protocol+ad}if(ad.search(/:\/\//)!==-1){return ad}if(0===ad.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+ad}if(0===ad.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+ad}if(0===ad.search("^[a-zA-Z]{2,11}:")){return ad}if(ad.search(/^\//)!==-1){return this.getLocation().origin+ad}var ac="(.*/)";var ae=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(ac))[0];return ae+ad},isUrlToCurrentDomain:function(ad){var ae=this.toAbsoluteUrl(ad);if(!ae){return false}var ac=this.getLocation().origin;
+if(ac===ae){return true}if(0===String(ae).indexOf(ac)){if(":"===String(ae).substr(ac.length,1)){return false}return true}return false},setHrefAttribute:function(ad,ac){if(!ad||!ac){return}W.setAnyAttribute(ad,"href",ac)},shouldIgnoreInteraction:function(ae){var ad=W.hasNodeAttribute(ae,this.CONTENT_IGNOREINTERACTION_ATTR);var ac=W.hasNodeCssClass(ae,this.CONTENT_IGNOREINTERACTION_CLASS);return ad||ac}};function G(ad,ag){if(ag){return ag}if(t(ad,"?")){var af=ad.indexOf("?");ad=ad.slice(0,af)}if(J(ad,"piwik.php")){ad=e(ad,"piwik.php".length)}else{if(J(ad,".php")){var ac=ad.lastIndexOf("/");var ae=1;ad=ad.slice(0,ac+ae)}}if(J(ad,"/js/")){ad=e(ad,"js/".length)}return ad}function F(ai){var ak="Piwik_Overlay";var ad=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var ae=ad.exec(z.referrer);if(ae){var ag=ae[1];if(ag!==String(ai)){return false}var ah=ae[2],ac=ae[3],af=ae[4];if(!af){af=""}else{if(af.indexOf("&segment=")===0){af=af.substr("&segment=".length)
+}}M.name=ak+"###"+ah+"###"+ac+"###"+af}var aj=M.name.split("###");return aj.length===4&&aj[0]===ak}function S(ad,aj,af){var ai=M.name.split("###"),ah=ai[1],ac=ai[2],ag=ai[3],ae=G(ad,aj);j(ae+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(ae,af,ah,ac,ag)})}function o(){if(B(M.frameElement)){return(M.frameElement&&String(M.frameElement.nodeName).toLowerCase()==="iframe")}try{return M.self!==M.top}catch(ac){return true}}function I(bL,bF){var bB=T(z.domain,M.location.href,C()),cj=D(bB[0]),bl=k(bB[1]),a0=k(bB[2]),ch=false,bP="GET",cv=bP,aq="application/x-www-form-urlencoded; charset=UTF-8",b1=aq,am=bL||"",bg="",cn="",bD=bF||"",a9="",bm="",aK,aW=z.title,cs=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ai=[cj],ba=[],bj=[],aN=[],bh=500,ca,aL,bp,bn,ac,bX=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],bf=["pk_kwd","piwik_kwd","utm_term"],aX="_pk_",cl,a2,aY=false,cf,aU,a6,cb=33955200000,bV=1800000,cr=15768000000,aI=true,bT=0,bo=false,ax=false,bI,bt={},bS={},aZ={},a5=200,co={},ct={},bH=[],bM=false,b4=false,ad=false,cu=false,av=false,aT=o(),cm=null,bJ,ay,bb,bE=aa,a1;
+function cy(cI,cF,cE,cH,cD,cG){if(aY){return}var cC;if(cE){cC=new Date();cC.setTime(cC.getTime()+cE)}z.cookie=cI+"="+n(cF)+(cE?";expires="+cC.toGMTString():"")+";path="+(cH||"/")+(cD?";domain="+cD:"")+(cG?";secure":"")}function al(cE){if(aY){return 0}var cC=new RegExp("(^|;)[ ]*"+cE+"=([^;]*)"),cD=cC.exec(z.cookie);return cD?L(cD[2]):0}function bz(cC){var cD;if(bn){cD=new RegExp("#.*");return cC.replace(cD,"")}return cC}function bs(cE,cC){var cF=m(cC),cD;if(cF){return cC}if(cC.slice(0,1)==="/"){return m(cE)+"://"+c(cE)+cC}cE=bz(cE);cD=cE.indexOf("?");if(cD>=0){cE=cE.slice(0,cD)}cD=cE.lastIndexOf("/");if(cD!==cE.length-1){cE=cE.slice(0,cD+1)}return cE+cC}function b8(cE,cC){var cD;cE=String(cE).toLowerCase();cC=String(cC).toLowerCase();if(cE===cC){return true}if(cC.slice(0,1)==="."){if(cE===cC.slice(1)){return true}cD=cE.length-cC.length;if((cD>0)&&(cE.slice(cD)===cC)){return true}}return false}function bR(cC){var cD=document.createElement("a");if(cC.indexOf("//")!==0&&cC.indexOf("http")!==0){cC="http://"+cC
+}cD.href=p.toAbsoluteUrl(cC);if(cD.pathname){return cD.pathname}return""}function aJ(cD,cC){var cE=(!cC||cC==="/");if(cE){return true}if(cD===cC){return true}if(!cD){return false}cC=String(cC).toLowerCase();cD=String(cD).toLowerCase();if(!J(cD,"/")){cD+="/"}if(!J(cC,"/")){cC+="/"}return cD.indexOf(cC)===0}function af(cG,cI){var cD,cC,cE,cF,cH;for(cD=0;cD<ai.length;cD++){cF=D(ai[cD]);cH=bR(ai[cD]);if(b8(cG,cF)&&aJ(cI,cH)){return true}}return false}function aC(cF){var cD,cC,cE;for(cD=0;cD<ai.length;cD++){cC=D(ai[cD].toLowerCase());if(cF===cC){return true}if(cC.slice(0,1)==="."){if(cF===cC.slice(1)){return true}cE=cF.length-cC.length;if((cE>0)&&(cF.slice(cE)===cC)){return true}}}return false}function bW(cC,cE){var cD=new Image(1,1);cD.onload=function(){y=0;if(typeof cE==="function"){cE()}};cD.src=am+(am.indexOf("?")<0?"?":"&")+cC}function cq(cD,cG,cC){if(!B(cC)||null===cC){cC=true}try{var cF=M.XMLHttpRequest?new M.XMLHttpRequest():M.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;
+cF.open("POST",am,true);cF.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cC){bW(cD,cG)}else{if(typeof cG==="function"){cG()}}};cF.setRequestHeader("Content-Type",b1);cF.send(cD)}catch(cE){if(cC){bW(cD,cG)}}}function bN(cD){var cC=new Date();var cE=cC.getTime()+cD;if(!l||cE>l){l=cE}}function bU(cC){if(bJ||!aL){return}bJ=setTimeout(function cD(){bJ=null;if(!aT){aT=(!z.hasFocus||z.hasFocus())}if(!aT){bU(aL);return}if(bp()){return}var cE=new Date(),cF=aL-(cE.getTime()-cm);cF=Math.min(aL,cF);bU(cF)},cC||aL)}function bi(){if(!bJ){return}clearTimeout(bJ);bJ=null}function aQ(){aT=true;if(bp()){return}bU()}function aj(){bi()}function cA(){if(av||!aL){return}av=true;ab(M,"focus",aQ);ab(M,"blur",aj);bU()}function b5(cG){var cD=new Date();var cC=cD.getTime();cm=cC;if(b4&&cC<b4){var cE=b4-cC;setTimeout(cG,cE);bN(cE+50);b4+=50;return}if(b4===false){var cF=800;b4=cC+cF}cG()}function be(cD,cC,cE){if(!cf&&cD){b5(function(){if(cv==="POST"){cq(cD,cE)}else{bW(cD,cE)
+}bN(cC)})}if(!av){cA()}else{bU()}}function bQ(cC){if(cf){return false}return(cC&&cC.length)}function cz(cE,cC){if(!bQ(cE)){return}var cD='{"requests":["?'+cE.join('","?')+'"]}';b5(function(){cq(cD,null,false);bN(cC)})}function aA(cC){return aX+cC+"."+bD+"."+a1}function bC(){if(aY){return"0"}if(!B(f.cookieEnabled)){var cC=aA("testcookie");cy(cC,"1");return al(cC)==="1"?"1":"0"}return f.cookieEnabled?"1":"0"}function aV(){a1=bE((cl||cj)+(a2||"/")).slice(0,4)}function bu(){var cD=aA("cvar"),cC=al(cD);if(cC.length){cC=JSON2.parse(cC);if(P(cC)){return cC}}return{}}function b6(){if(ax===false){ax=bu()}}function cg(){return bE((f.userAgent||"")+(f.platform||"")+JSON2.stringify(ct)+(new Date()).getTime()+Math.random()).slice(0,16)}function cd(){var cE=new Date(),cC=Math.round(cE.getTime()/1000),cD=aA("id"),cH=al(cD),cG,cF;if(cH){cG=cH.split(".");cG.unshift("0");if(bm.length){cG[1]=bm}return cG}if(bm.length){cF=bm}else{if("0"===bC()){cF=""}else{cF=cg()}}cG=["1",cF,cC,0,cC,"",""];return cG}function aE(){var cJ=cd(),cF=cJ[0],cG=cJ[1],cD=cJ[2],cC=cJ[3],cH=cJ[4],cE=cJ[5];
+if(!B(cJ[6])){cJ[6]=""}var cI=cJ[6];return{newVisitor:cF,uuid:cG,createTs:cD,visitCount:cC,currentVisitTs:cH,lastVisitTs:cE,lastEcommerceOrderTs:cI}}function ap(){var cF=new Date(),cD=cF.getTime(),cG=aE().createTs;var cC=parseInt(cG,10);var cE=(cC*1000)+cb-cD;return cE}function at(cC){if(!bD){return}var cE=new Date(),cD=Math.round(cE.getTime()/1000);if(!B(cC)){cC=aE()}var cF=cC.uuid+"."+cC.createTs+"."+cC.visitCount+"."+cD+"."+cC.lastVisitTs+"."+cC.lastEcommerceOrderTs;cy(aA("id"),cF,ap(),a2,cl)}function bk(){var cC=al(aA("ref"));if(cC.length){try{cC=JSON2.parse(cC);if(P(cC)){return cC}}catch(cD){}}return["","",0,""]}function bv(cE,cD,cC){cy(cE,"",-86400,cD,cC)}function a7(cD){var cC="testvalue";cy("test",cC,10000,null,cD);if(al("test")===cC){bv("test",null,cD);return true}return false}function an(){var cE=aY;aY=false;var cC=["id","ses","cvar","ref"];var cD,cF;for(cD=0;cD<cC.length;cD++){cF=aA(cC[cD]);if(0!==al(cF)){bv(cF,a2,cl)}}aY=cE}function bA(cC){bD=cC;at()}function cB(cG){if(!cG||!P(cG)){return
+}var cF=[];var cE;for(cE in cG){if(Object.prototype.hasOwnProperty.call(cG,cE)){cF.push(cE)}}var cH={};cF.sort();var cC=cF.length;var cD;for(cD=0;cD<cC;cD++){cH[cF[cD]]=cG[cF[cD]]}return cH}function bK(){cy(aA("ses"),"*",bV,a2,cl)}function bY(cE,cZ,c0,cF){var cY,cD=new Date(),cM=Math.round(cD.getTime()/1000),cJ,cX,cG=1024,c5,cN,cV=ax,cH=aA("ses"),cT=aA("ref"),cQ=aA("cvar"),cR=al(cH),cW=bk(),c2=aK||bl,cK,cC;if(aY){an()}if(cf){return""}var cS=aE();if(!B(cF)){cF=""}var cP=z.characterSet||z.charset;if(!cP||cP.toLowerCase()==="utf-8"){cP=null}cK=cW[0];cC=cW[1];cJ=cW[2];cX=cW[3];if(!cR){var c1=bV/1000;if(!cS.lastVisitTs||(cM-cS.lastVisitTs)>c1){cS.visitCount++;cS.lastVisitTs=cS.currentVisitTs}if(!a6||!cK.length){for(cY in bX){if(Object.prototype.hasOwnProperty.call(bX,cY)){cK=O(c2,bX[cY]);if(cK.length){break}}}for(cY in bf){if(Object.prototype.hasOwnProperty.call(bf,cY)){cC=O(c2,bf[cY]);if(cC.length){break}}}}c5=c(a0);cN=cX.length?c(cX):"";if(c5.length&&!aC(c5)&&(!a6||!cN.length||aC(cN))){cX=a0
+}if(cX.length||cK.length){cJ=cM;cW=[cK,cC,cJ,bz(cX.slice(0,cG))];cy(cT,JSON2.stringify(cW),cr,a2,cl)}}cE+="&idsite="+bD+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cD.getHours()+"&m="+cD.getMinutes()+"&s="+cD.getSeconds()+"&url="+n(bz(c2))+(a0.length?"&urlref="+n(bz(a0)):"")+((a9&&a9.length)?"&uid="+n(a9):"")+"&_id="+cS.uuid+"&_idts="+cS.createTs+"&_idvc="+cS.visitCount+"&_idn="+cS.newVisitor+(cK.length?"&_rcn="+n(cK):"")+(cC.length?"&_rck="+n(cC):"")+"&_refts="+cJ+"&_viewts="+cS.lastVisitTs+(String(cS.lastEcommerceOrderTs).length?"&_ects="+cS.lastEcommerceOrderTs:"")+(String(cX).length?"&_ref="+n(bz(cX.slice(0,cG))):"")+(cP?"&cs="+n(cP):"")+"&send_image=0";for(cY in ct){if(Object.prototype.hasOwnProperty.call(ct,cY)){cE+="&"+cY+"="+ct[cY]}}var c4=[];if(cZ){for(cY in cZ){if(Object.prototype.hasOwnProperty.call(cZ,cY)&&/^dimension\d+$/.test(cY)){var cI=cY.replace("dimension","");c4.push(parseInt(cI,10));c4.push(String(cI));cE+="&"+cY+"="+cZ[cY];delete cZ[cY]}}}if(cZ&&v(cZ)){cZ=null
+}for(cY in aZ){if(Object.prototype.hasOwnProperty.call(aZ,cY)){var cO=(-1===c4.indexOf(cY));if(cO){cE+="&dimension"+cY+"="+aZ[cY]}}}if(cZ){cE+="&data="+n(JSON2.stringify(cZ))}else{if(ac){cE+="&data="+n(JSON2.stringify(ac))}}function cL(c6,c7){var c8=JSON2.stringify(c6);if(c8.length>2){return"&"+c7+"="+n(c8)}return""}var c3=cB(bt);var cU=cB(bS);cE+=cL(c3,"cvar");cE+=cL(cU,"e_cvar");if(ax){cE+=cL(ax,"_cvar");for(cY in cV){if(Object.prototype.hasOwnProperty.call(cV,cY)){if(ax[cY][0]===""||ax[cY][1]===""){delete ax[cY]}}}if(bo){cy(cQ,JSON2.stringify(ax),bV,a2,cl)}}if(aI){if(bT){cE+="&gt_ms="+bT}else{if(g&&g.timing&&g.timing.requestStart&&g.timing.responseEnd){cE+="&gt_ms="+(g.timing.responseEnd-g.timing.requestStart)}}}cS.lastEcommerceOrderTs=B(cF)&&String(cF).length?cF:cS.lastEcommerceOrderTs;at(cS);bK();cE+=U(c0);if(cn.length){cE+="&"+cn}if(u(bI)){cE=bI(cE)}return cE}bp=function aM(){var cC=new Date();if(cm+aL<=cC.getTime()){var cD=bY("ping=1",null,"ping");be(cD,bh);return true}return false
+};function a3(cF,cE,cJ,cG,cC,cM){var cH="idgoal=0",cI,cD=new Date(),cK=[],cL;if(String(cF).length){cH+="&ec_id="+n(cF);cI=Math.round(cD.getTime()/1000)}cH+="&revenue="+cE;if(String(cJ).length){cH+="&ec_st="+cJ}if(String(cG).length){cH+="&ec_tx="+cG}if(String(cC).length){cH+="&ec_sh="+cC}if(String(cM).length){cH+="&ec_dt="+cM}if(co){for(cL in co){if(Object.prototype.hasOwnProperty.call(co,cL)){if(!B(co[cL][1])){co[cL][1]=""}if(!B(co[cL][2])){co[cL][2]=""}if(!B(co[cL][3])||String(co[cL][3]).length===0){co[cL][3]=0}if(!B(co[cL][4])||String(co[cL][4]).length===0){co[cL][4]=1}cK.push(co[cL])}}cH+="&ec_items="+n(JSON2.stringify(cK))}cH=bY(cH,ac,"ecommerce",cI);be(cH,bh)}function bw(cC,cG,cF,cE,cD,cH){if(String(cC).length&&B(cG)){a3(cC,cG,cF,cE,cD,cH)}}function a4(cC){if(B(cC)){a3("",cC,"","","","")}}function bx(cD,cE){var cC=bY("action_name="+n(Z(cD||aW)),cE,"log");be(cC,bh)}function aG(cE,cD){var cF,cC="(^| )(piwik[_-]"+cD;if(cE){for(cF=0;cF<cE.length;cF++){cC+="|"+cE[cF]}}cC+=")( |$)";return new RegExp(cC)
+}function aB(cC){return(am&&cC&&0===String(cC).indexOf(am))}function bZ(cG,cC,cH,cD){if(aB(cC)){return 0}var cF=aG(bj,"download"),cE=aG(aN,"link"),cI=new RegExp("\\.("+cs.join("|")+")([?&#]|$)","i");if(cE.test(cG)){return"link"}if(cD||cF.test(cG)||cI.test(cC)){return"download"}if(cH){return 0}return"link"}function ag(cD){var cC;cC=cD.parentNode;while(cC!==null&&B(cC)){if(W.isLinkElement(cD)){break}cD=cC;cC=cD.parentNode}return cD}function cw(cH){cH=ag(cH);if(!W.hasNodeAttribute(cH,"href")){return}if(!B(cH.href)){return}var cG=W.getAttributeValueFromNode(cH,"href");if(aB(cG)){return}var cD=cH.pathname||bR(cH.href);var cI=cH.hostname||c(cH.href);var cJ=cI.toLowerCase();var cE=cH.href.replace(cI,cJ);var cF=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!cF.test(cE)){var cC=bZ(cH.className,cE,af(cJ,cD),W.hasNodeAttribute(cH,"download"));if(cC){return{type:cC,href:cE}}}}function aw(cC,cD,cE,cF){var cG=p.buildInteractionRequestParams(cC,cD,cE,cF);if(!cG){return
+}return bY(cG,null,"contentInteraction")}function cc(cE,cF,cJ,cC,cD){if(!B(cE)){return}if(aB(cE)){return cE}var cH=p.toAbsoluteUrl(cE);var cG="redirecturl="+n(cH)+"&";cG+=aw(cF,cJ,cC,(cD||cE));var cI="&";if(am.indexOf("?")<0){cI="?"}return am+cI+cG}function aR(cC,cD){if(!cC||!cD){return false}var cE=p.findTargetNode(cC);if(p.shouldIgnoreInteraction(cE)){return false}cE=p.findTargetNodeNoDefault(cC);if(cE&&!N(cE,cD)){return false}return true}function b0(cE,cD,cG){if(!cE){return}var cC=p.findParentContentNode(cE);if(!cC){return}if(!aR(cC,cE)){return}var cF=p.buildContentBlock(cC);if(!cF){return}if(!cF.target&&cG){cF.target=cG}return p.buildInteractionRequestParams(cD,cF.name,cF.piece,cF.target)}function aD(cD){if(!bH||!bH.length){return false}var cC,cE;for(cC=0;cC<bH.length;cC++){cE=bH[cC];if(cE&&cE.name===cD.name&&cE.piece===cD.piece&&cE.target===cD.target){return true}}return false}function bd(cF){if(!cF){return false}var cI=p.findTargetNode(cF);if(!cI||p.shouldIgnoreInteraction(cI)){return false
+}var cJ=cw(cI);if(cu&&cJ&&cJ.type){return false}if(W.isLinkElement(cI)&&W.hasNodeAttributeWithValue(cI,"href")){var cC=String(W.getAttributeValueFromNode(cI,"href"));if(0===cC.indexOf("#")){return false}if(aB(cC)){return true}if(!p.isUrlToCurrentDomain(cC)){return false}var cG=p.buildContentBlock(cF);if(!cG){return}var cE=cG.name;var cK=cG.piece;var cH=cG.target;if(!W.hasNodeAttributeWithValue(cI,p.CONTENT_TARGET_ATTR)||cI.wasContentTargetAttrReplaced){cI.wasContentTargetAttrReplaced=true;cH=p.toAbsoluteUrl(cC);W.setAnyAttribute(cI,p.CONTENT_TARGET_ATTR,cH)}var cD=cc(cC,"click",cE,cK,cH);p.setHrefAttribute(cI,cD);return true}return false}function au(cD){if(!cD||!cD.length){return}var cC;for(cC=0;cC<cD.length;cC++){bd(cD[cC])}}function aF(cC){return function(cD){if(!cC){return}var cG=p.findParentContentNode(cC);var cH;if(cD){cH=cD.target||cD.srcElement}if(!cH){cH=cC}if(!aR(cG,cH)){return}bN(bh);if(W.isLinkElement(cC)&&W.hasNodeAttributeWithValue(cC,"href")&&W.hasNodeAttributeWithValue(cC,p.CONTENT_TARGET_ATTR)){var cE=W.getAttributeValueFromNode(cC,"href");
+if(!aB(cE)&&cC.wasContentTargetAttrReplaced){W.setAnyAttribute(cC,p.CONTENT_TARGET_ATTR,"")}}var cL=cw(cC);if(ad&&cL&&cL.type){return cL.type}if(bd(cG)){return"href"}var cI=p.buildContentBlock(cG);if(!cI){return}var cF=cI.name;var cM=cI.piece;var cK=cI.target;var cJ=aw("click",cF,cM,cK);be(cJ,bh);return cJ}}function by(cE){if(!cE||!cE.length){return}var cC,cD;for(cC=0;cC<cE.length;cC++){cD=p.findTargetNode(cE[cC]);if(cD&&!cD.contentInteractionTrackingSetupDone){cD.contentInteractionTrackingSetupDone=true;ab(cD,"click",aF(cD))}}}function a8(cE,cF){if(!cE||!cE.length){return[]}var cC,cD;for(cC=0;cC<cE.length;cC++){if(aD(cE[cC])){cE.splice(cC,1);cC--}else{bH.push(cE[cC])}}if(!cE||!cE.length){return[]}au(cF);by(cF);var cG=[];for(cC=0;cC<cE.length;cC++){cD=bY(p.buildImpressionRequestParams(cE[cC].name,cE[cC].piece,cE[cC].target),undefined,"contentImpressions");cG.push(cD)}return cG}function b3(cD){var cC=p.collectContent(cD);return a8(cC,cD)}function aP(cD){if(!cD||!cD.length){return[]}var cC;
+for(cC=0;cC<cD.length;cC++){if(!p.isNodeVisible(cD[cC])){cD.splice(cC,1);cC--}}if(!cD||!cD.length){return[]}return b3(cD)}function ao(cE,cC,cD){var cF=p.buildImpressionRequestParams(cE,cC,cD);return bY(cF,null,"contentImpression")}function cx(cF,cD){if(!cF){return}var cC=p.findParentContentNode(cF);var cE=p.buildContentBlock(cC);if(!cE){return}if(!cD){cD="Unknown"}return aw(cD,cE.name,cE.piece,cE.target)}function ce(cD,cF,cC,cE){return"e_c="+n(cD)+"&e_a="+n(cF)+(B(cC)?"&e_n="+n(cC):"")+(B(cE)?"&e_v="+n(cE):"")}function ah(cE,cG,cC,cF,cH){if(String(cE).length===0||String(cG).length===0){return false}var cD=bY(ce(cE,cG,cC,cF),cH,"event");be(cD,bh)}function bG(cC,cF,cD,cG){var cE=bY("search="+n(cC)+(cF?"&search_cat="+n(cF):"")+(B(cD)?"&search_count="+cD:""),cG,"sitesearch");be(cE,bh)}function ci(cC,cF,cE){var cD=bY("idgoal="+cC+(cF?"&revenue="+cF:""),cE,"goal");be(cD,bh)}function cp(cF,cC,cJ,cI,cE){var cH=cC+"="+n(bz(cF));var cD=b0(cE,"click",cF);if(cD){cH+="&"+cD}var cG=bY(cH,cJ,"link");be(cG,(cI?0:bh),cI)
+}function bq(cD,cC){if(cD!==""){return cD+cC.charAt(0).toUpperCase()+cC.slice(1)}return cC}function bO(cH){var cG,cC,cF=["","webkit","ms","moz"],cE;if(!aU){for(cC=0;cC<cF.length;cC++){cE=cF[cC];if(Object.prototype.hasOwnProperty.call(z,bq(cE,"hidden"))){if(z[bq(cE,"visibilityState")]==="prerender"){cG=true}break}}}if(cG){ab(z,cE+"visibilitychange",function cD(){z.removeEventListener(cE+"visibilitychange",cD,false);cH()});return}cH()}function ar(cC){if(z.readyState==="complete"){cC()}else{if(M.addEventListener){M.addEventListener("load",cC)}else{if(M.attachEvent){M.attachEvent("onLoad",cC)}}}}function aS(cD){var cC=false;if(z.attachEvent){cC=z.readyState==="complete"}else{cC=z.readyState!=="loading"}if(cC){cD()}else{if(z.addEventListener){z.addEventListener("DOMContentLoaded",cD)}else{if(z.attachEvent){z.attachEvent("onreadystatechange",cD)}}}}function b9(cC){var cD=cw(cC);if(cD&&cD.type){cD.href=k(cD.href);cp(cD.href,cD.type,undefined,null,cC)}}function b2(){return z.all&&!z.addEventListener
+}function ck(cC){var cE=cC.which;var cD=(typeof cC.button);if(!cE&&cD!=="undefined"){if(b2()){if(cC.button&1){cE=1}else{if(cC.button&2){cE=3}else{if(cC.button&4){cE=2}}}}else{if(cC.button===0||cC.button==="0"){cE=1}else{if(cC.button&1){cE=2}else{if(cC.button&2){cE=3}}}}}return cE}function br(cC){switch(ck(cC)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aH(cC){return cC.target||cC.srcElement}function ak(cC){return function(cF){cF=cF||M.event;var cE=br(cF);var cG=aH(cF);if(cF.type==="click"){var cD=false;if(cC&&cE==="middle"){cD=true}if(cG&&!cD){b9(cG)}}else{if(cF.type==="mousedown"){if(cE==="middle"&&cG){ay=cE;bb=cG}else{ay=bb=null}}else{if(cF.type==="mouseup"){if(cE===ay&&cG===bb){b9(cG)}ay=bb=null}else{if(cF.type==="contextmenu"){b9(cG)}}}}}}function ae(cD,cC){ab(cD,"click",ak(cC),false);if(cC){ab(cD,"mouseup",ak(cC),false);ab(cD,"mousedown",ak(cC),false);ab(cD,"contextmenu",ak(cC),false)}}function bc(cD){if(!ad){ad=true;var cE,cC=aG(ba,"ignore"),cF=z.links;
+if(cF){for(cE=0;cE<cF.length;cE++){if(!cC.test(cF[cE].className)){ae(cF[cE],cD)}}}}}function az(cE,cG,cH){if(bM){return true}bM=true;var cI=false;var cF,cD;function cC(){cI=true}ar(function(){function cJ(cL){setTimeout(function(){if(!bM){return}cI=false;cH.trackVisibleContentImpressions();cJ(cL)},cL)}function cK(cL){setTimeout(function(){if(!bM){return}if(cI){cI=false;cH.trackVisibleContentImpressions()}cK(cL)},cL)}if(cE){cF=["scroll","resize"];for(cD=0;cD<cF.length;cD++){if(z.addEventListener){z.addEventListener(cF[cD],cC)}else{M.attachEvent("on"+cF[cD],cC)}}cK(100)}if(cG&&cG>0){cG=parseInt(cG,10);cJ(cG)}})}function aO(cG,cI){var cH=bR(cG);var cF=bR(cI);if(!cH||cH==="/"||!cF||cF==="/"){return}var cE=D(cG);if(af(cE,"/")){return}if(J(cH,"/")){cH=e(cH,1)}var cJ=cH.split("/");var cD;for(cD=2;cD<cJ.length;cD++){var cC=cJ.slice(0,cD).join("/");if(af(cE,cC)){cH=cC;break}}if(!aJ(cF,cH)){return}return cH}function b7(){var cE,cG,cH={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"},cD=M.devicePixelRatio||1;
+if(!((new RegExp("MSIE")).test(f.userAgent))){if(f.mimeTypes&&f.mimeTypes.length){for(cE in cH){if(Object.prototype.hasOwnProperty.call(cH,cE)){cG=f.mimeTypes[cH[cE]];ct[cE]=(cG&&cG.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&B(f.javaEnabled)&&f.javaEnabled()){ct.java="1"}if(u(M.GearsFactory)){ct.gears="1"}ct.cookie=bC()}var cF=parseInt(Q.width,10)*cD;var cC=parseInt(Q.height,10)*cD;ct.res=parseInt(cF,10)+"x"+parseInt(cC,10)}b7();aV();at();return{getVisitorId:function(){return aE().uuid},getVisitorInfo:function(){return cd()},getAttributionInfo:function(){return bk()},getAttributionCampaignName:function(){return bk()[0]},getAttributionCampaignKeyword:function(){return bk()[1]},getAttributionReferrerTimestamp:function(){return bk()[2]},getAttributionReferrerUrl:function(){return bk()[3]},setTrackerUrl:function(cC){am=cC},getTrackerUrl:function(){return am},getSiteId:function(){return bD},setSiteId:function(cC){bA(cC)},setUserId:function(cC){if(!B(cC)||!cC.length){return
+}a9=cC;bm=bE(a9).substr(0,16)},getUserId:function(){return a9},setCustomData:function(cC,cD){if(P(cC)){ac=cC}else{if(!ac){ac={}}ac[cC]=cD}},getCustomData:function(){return ac},setCustomRequestProcessing:function(cC){bI=cC},appendToTrackingUrl:function(cC){cn=cC},getRequest:function(cC){return bY(cC)},addPlugin:function(cC,cD){a[cC]=cD},setCustomDimension:function(cC,cD){cC=parseInt(cC,10);if(cC>0){if(!B(cD)){cD=""}if(!q(cD)){cD=String(cD)}aZ[cC]=cD}},getCustomDimension:function(cC){cC=parseInt(cC,10);if(cC>0&&Object.prototype.hasOwnProperty.call(aZ,cC)){return aZ[cC]}},deleteCustomDimension:function(cC){cC=parseInt(cC,10);if(cC>0){delete aZ[cC]}},setCustomVariable:function(cD,cC,cG,cE){var cF;if(!B(cE)){cE="visit"}if(!B(cC)){return}if(!B(cG)){cG=""}if(cD>0){cC=!q(cC)?String(cC):cC;cG=!q(cG)?String(cG):cG;cF=[cC.slice(0,a5),cG.slice(0,a5)];if(cE==="visit"||cE===2){b6();ax[cD]=cF}else{if(cE==="page"||cE===3){bt[cD]=cF}else{if(cE==="event"){bS[cD]=cF}}}}},getCustomVariable:function(cD,cE){var cC;
+if(!B(cE)){cE="visit"}if(cE==="page"||cE===3){cC=bt[cD]}else{if(cE==="event"){cC=bS[cD]}else{if(cE==="visit"||cE===2){b6();cC=ax[cD]}}}if(!B(cC)||(cC&&cC[0]==="")){return false}return cC},deleteCustomVariable:function(cC,cD){if(this.getCustomVariable(cC,cD)){this.setCustomVariable(cC,"","",cD)}},storeCustomVariablesInCookie:function(){bo=true},setLinkTrackingTimer:function(cC){bh=cC},setDownloadExtensions:function(cC){if(q(cC)){cC=cC.split("|")}cs=cC},addDownloadExtensions:function(cD){var cC;if(q(cD)){cD=cD.split("|")}for(cC=0;cC<cD.length;cC++){cs.push(cD[cC])}},removeDownloadExtensions:function(cE){var cD,cC=[];if(q(cE)){cE=cE.split("|")}for(cD=0;cD<cs.length;cD++){if(E(cE,cs[cD])===-1){cC.push(cs[cD])}}cs=cC},setDomains:function(cC){ai=q(cC)?[cC]:cC;var cE=false,cD;for(cD in ai){if(Object.prototype.hasOwnProperty.call(ai,cD)&&b8(cj,D(String(ai[cD])))){cE=true;if(!a2){var cF=aO(ai[cD],bl);if(cF){this.setCookiePath(cF)}break}}}if(!cE){ai.push(cj)}},setIgnoreClasses:function(cC){ba=q(cC)?[cC]:cC
+},setRequestMethod:function(cC){cv=cC||bP},setRequestContentType:function(cC){b1=cC||aq},setReferrerUrl:function(cC){a0=cC},setCustomUrl:function(cC){aK=bs(bl,cC)},setDocumentTitle:function(cC){aW=cC},setAPIUrl:function(cC){bg=cC},setDownloadClasses:function(cC){bj=q(cC)?[cC]:cC},setLinkClasses:function(cC){aN=q(cC)?[cC]:cC},setCampaignNameKey:function(cC){bX=q(cC)?[cC]:cC},setCampaignKeywordKey:function(cC){bf=q(cC)?[cC]:cC},discardHashTag:function(cC){bn=cC},setCookieNamePrefix:function(cC){aX=cC;ax=bu()},setCookieDomain:function(cC){var cD=D(cC);if(a7(cD)){cl=cD;aV()}},setCookiePath:function(cC){a2=cC;aV()},setVisitorCookieTimeout:function(cC){cb=cC*1000},setSessionCookieTimeout:function(cC){bV=cC*1000},setReferralCookieTimeout:function(cC){cr=cC*1000},setConversionAttributionFirstReferrer:function(cC){a6=cC},disableCookies:function(){aY=true;ct.cookie="0";if(bD){an()}},deleteCookies:function(){an()},setDoNotTrack:function(cD){var cC=f.doNotTrack||f.msDoNotTrack;cf=cD&&(cC==="yes"||cC==="1");
+if(cf){this.disableCookies()}},addListener:function(cD,cC){ae(cD,cC)},enableLinkTracking:function(cC){cu=true;if(s){bc(cC)}else{K.push(function(){bc(cC)})}},enableJSErrorTracking:function(){if(ch){return}ch=true;var cC=M.onerror;M.onerror=function(cH,cF,cE,cG,cD){bO(function(){var cI="JavaScript Errors";var cJ=cF+":"+cE;if(cG){cJ+=":"+cG}ah(cI,cJ,cH)});if(cC){return cC(cH,cF,cE,cG,cD)}return false}},disablePerformanceTracking:function(){aI=false},setGenerationTimeMs:function(cC){bT=parseInt(cC,10)},enableHeartBeatTimer:function(cC){cC=Math.max(cC,1);aL=(cC||15)*1000;if(cm!==null){cA()}},killFrame:function(){if(M.location!==M.top.location){M.top.location=M.location}},redirectFile:function(cC){if(M.location.protocol==="file:"){M.location=cC}},setCountPreRendered:function(cC){aU=cC},trackGoal:function(cC,cE,cD){bO(function(){ci(cC,cE,cD)})},trackLink:function(cD,cC,cF,cE){bO(function(){cp(cD,cC,cF,cE)})},trackPageView:function(cC,cD){bH=[];if(F(bD)){bO(function(){S(am,bg,bD)})}else{bO(function(){bx(cC,cD)
+})}},trackAllContentImpressions:function(){if(F(bD)){return}bO(function(){aS(function(){var cC=p.findContentNodes();var cD=b3(cC);cz(cD,bh)})})},trackVisibleContentImpressions:function(cC,cD){if(F(bD)){return}if(!B(cC)){cC=true}if(!B(cD)){cD=750}az(cC,cD,this);bO(function(){ar(function(){var cE=p.findContentNodes();var cF=aP(cE);cz(cF,bh)})})},trackContentImpression:function(cE,cC,cD){if(F(bD)){return}if(!cE){return}cC=cC||"Unknown";bO(function(){var cF=ao(cE,cC,cD);be(cF,bh)})},trackContentImpressionsWithinNode:function(cC){if(F(bD)||!cC){return}bO(function(){if(bM){ar(function(){var cD=p.findContentNodesWithinNode(cC);var cE=aP(cD);cz(cE,bh)})}else{aS(function(){var cD=p.findContentNodesWithinNode(cC);var cE=b3(cD);cz(cE,bh)})}})},trackContentInteraction:function(cE,cF,cC,cD){if(F(bD)){return}if(!cE||!cF){return}cC=cC||"Unknown";bO(function(){var cG=aw(cE,cF,cC,cD);be(cG,bh)})},trackContentInteractionNode:function(cD,cC){if(F(bD)||!cD){return}bO(function(){var cE=cx(cD,cC);be(cE,bh)})
+},logAllContentBlocksOnPage:function(){var cD=p.findContentNodes();var cC=p.collectContent(cD);if(console!==undefined&&console&&console.log){console.log(cC)}},trackEvent:function(cD,cF,cC,cE,cG){bO(function(){ah(cD,cF,cC,cE,cG)})},trackSiteSearch:function(cC,cE,cD,cF){bO(function(){bG(cC,cE,cD,cF)})},setEcommerceView:function(cF,cC,cE,cD){if(!B(cE)||!cE.length){cE=""}else{if(cE instanceof Array){cE=JSON2.stringify(cE)}}bt[5]=["_pkc",cE];if(B(cD)&&String(cD).length){bt[2]=["_pkp",cD]}if((!B(cF)||!cF.length)&&(!B(cC)||!cC.length)){return}if(B(cF)&&cF.length){bt[3]=["_pks",cF]}if(!B(cC)||!cC.length){cC=""}bt[4]=["_pkn",cC]},addEcommerceItem:function(cG,cC,cE,cD,cF){if(cG.length){co[cG]=[cG,cC,cE,cD,cF]}},trackEcommerceOrder:function(cC,cG,cF,cE,cD,cH){bw(cC,cG,cF,cE,cD,cH)},trackEcommerceCartUpdate:function(cC){a4(cC)}}}function A(){return{push:X}}function b(ah,ag){var ai={};var ae,af;for(ae=0;ae<ag.length;ae++){var ac=ag[ae];ai[ac]=1;for(af=0;af<ah.length;af++){if(ah[af]&&ah[af][0]){var ad=ah[af][0];
+if(ac===ad){X(ah[af]);delete ah[af];if(ai[ad]>1){if(console!==undefined&&console&&console.error){console.error("The method "+ad+' is registered more than once in "paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: http://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}}ai[ad]++}}}}return ah}ab(M,"beforeunload",Y,false);r();Date.prototype.getTimeAlias=Date.prototype.getTime;R=new I();var w=["disableCookies","setTrackerUrl","setAPIUrl","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];_paq=b(_paq,w);for(y=0;y<_paq.length;y++){if(_paq[y]){X(_paq[y])}}_paq=new A();d={addPlugin:function(ac,ad){a[ac]=ad},getTracker:function(ac,ad){if(!B(ad)){ad=this.getAsyncTracker().getSiteId()}if(!B(ac)){ac=this.getAsyncTracker().getTrackerUrl()}return new I(ac,ad)},getAsyncTracker:function(){return R}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return d
+})}return d}())}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}};
 /*! @license-end */
 };
\ No newline at end of file
diff --git a/plugins/API/lang/da.json b/plugins/API/lang/da.json
index 701cfc28b67229c09c75cb927e2a87335a753942..8408570e49c2580aadad3f330a1e50c32865389a 100644
--- a/plugins/API/lang/da.json
+++ b/plugins/API/lang/da.json
@@ -5,8 +5,11 @@
         "LoadedAPIs": "%s APIs indlæst",
         "MoreInformation": "Mere information om Piwik API'er, findes på %1$sIntroduktion til Piwik API%2$s og %3$sPiwik API Reference%4$s.",
         "PluginDescription": "Alle data i Piwik er tilgængelig gennem enkle API'er. Denne udvidelse er en webservice indgang, som kaldes for at få Web Analytics-data i xml, JSON, php, csv etc.",
+        "ReportingApiReference": "Rapporterings API Reference",
         "TopLinkTooltip": "Få adgang til dine webanalyse data programmeringsmæssigt gennem en simpel API i JSON, XML, etc.",
         "UserAuthentication": "Brugergodkendelse",
-        "UsingTokenAuth": "Hvis du ønsker at %1$s hente data i et script, med crontab, m.m. %2$s skal du tilføje parameteren %3$s til API-kaldes netadresse, som kræver godkendelse."
+        "UsingTokenAuth": "Hvis du ønsker at %1$s hente data i et script, med crontab, m.m. %2$s skal du tilføje parameteren %3$s til API-kaldes netadresse, som kræver godkendelse.",
+        "Glossary": "Ordliste",
+        "LearnAboutCommonlyUsedTerms": "Lær om de hyppigst brugter termer for at få det bedste ud af Piwik Analytics: %1$s og %2$s"
     }
 }
\ No newline at end of file
diff --git a/plugins/API/lang/de.json b/plugins/API/lang/de.json
index 7ad2ec2d1c4145128d3dc521b87ceb3ba08810b3..e38aaf0b15035e9c92c8fb6e9dc50a79dfc92d64 100644
--- a/plugins/API/lang/de.json
+++ b/plugins/API/lang/de.json
@@ -1,6 +1,6 @@
 {
     "API": {
-        "GenerateVisits": "Sollten für heute keine Daten verfügbar sein, so können Sie mit dem %1$s Plugin Testdaten erzeugen. Aktivieren Sie das %2$s Plugin und klicken dann auf das 'Besuchergenerator' Menu in der Piwik-Administration.",
+        "GenerateVisits": "Sollten für heute keine Daten verfügbar sein, so können Sie mit dem %1$s Plugin Testdaten erzeugen. Aktivieren Sie das %2$s Plugin und klicken dann auf das 'Besuchergenerator'-Menu in der Piwik-Administration.",
         "KeepTokenSecret": "Der token_auth ist so geheim wie Ihr Login und Passwort, %1$s teilen Sie es niemandem mit%2$s!",
         "LoadedAPIs": "%s APIs erfolgreich geladen",
         "MoreInformation": "Für weitere Informationen über die Piwik-APIs lesen Sie bitte %1$s Einführung in die Piwik-API %2$s und die %3$s Piwik-API-Referenz %4$s.",
diff --git a/plugins/API/lang/ro.json b/plugins/API/lang/ro.json
index 673c34dd3dea513b1c1ea7e6f15689b92f316602..849734f62b5871601a88c01a9eb419e7856efd99 100644
--- a/plugins/API/lang/ro.json
+++ b/plugins/API/lang/ro.json
@@ -4,8 +4,12 @@
         "KeepTokenSecret": "Acest token_auth este secret cum sunt login-ul si parola, %1$s nu le fa publice%2$s!",
         "LoadedAPIs": "%s API-uri încarcate cu succes",
         "MoreInformation": "Pentru mai multe informatii despre API-urile Piwik, va rugam sa va uitati la %1$s Introducere la Piwik API %2$s si la %3$s Referinte Piwik API %4$s.",
+        "PluginDescription": "Toate informaţiile din Piwik sunt disponibile prin simple API-uri. Acest plugin este punctul de intrare al serviciului web prin care poţi prelua date Web Analytics în format xml, json, php, csv, etc.",
+        "ReportingApiReference": "Referinţe API de raportare",
         "TopLinkTooltip": "Acceseaza datele tale de Web Analytics in mod organizat prin intermediul unui simplu API in json, xml, etc.",
         "UserAuthentication": "Identificare utilizator",
-        "UsingTokenAuth": "Daca vrei sa %1$s preiei date printr-un script, crontab etc. %2$s este necesar sa adaugi parametrul %3$s la URL-urile API care cer autentificare."
+        "UsingTokenAuth": "Daca vrei sa %1$s preiei date printr-un script, crontab etc. %2$s este necesar sa adaugi parametrul %3$s la URL-urile API care cer autentificare.",
+        "Glossary": "Glosar",
+        "LearnAboutCommonlyUsedTerms": "Învaţă cei mai uzuali termeni de analiză Piwik: %1$s şi %2$s"
     }
 }
\ No newline at end of file
diff --git a/plugins/API/lang/sq.json b/plugins/API/lang/sq.json
index ce3df6871a4ea3affee9c91ef71a5d540aaa499a..2a364fc61711fd08f60fc3a9560144af44e3116a 100644
--- a/plugins/API/lang/sq.json
+++ b/plugins/API/lang/sq.json
@@ -6,6 +6,7 @@
         "MoreInformation": "Për më tepër të dhëna rreth API-ve të Piwik-ut, ju lutem, hidhini një sy %1$s Hyrje në API-t e Piwik-ut %2$s dhe %3$s Referencë API-sh Piwik-u %4$s.",
         "TopLinkTooltip": "Hyni programatikisht te të dhënat tuaja të Analizave Web përmes një API-je të thjeshtë json, xml, etj.",
         "UserAuthentication": "Mirëfilltësim përdoruesi",
-        "UsingTokenAuth": "Nëse doni të %1$s kërkoni të dhëna brenda një programthi, një crontab-i, etj. %2$s lypset të shtoni parametrin %3$s te URL-të për thirrje API që lypin mirëfilltësim."
+        "UsingTokenAuth": "Nëse doni të %1$s kërkoni të dhëna brenda një programthi, një crontab-i, etj. %2$s lypset të shtoni parametrin %3$s te URL-të për thirrje API që lypin mirëfilltësim.",
+        "Glossary": "Fjalorth"
     }
 }
\ No newline at end of file
diff --git a/plugins/API/lang/tr.json b/plugins/API/lang/tr.json
index cdc3253411ce8c019b679a548136b19d501ccc1d..8e9e616b91c4d1d4cfaf8bd4c5e8bcf06d128e8f 100644
--- a/plugins/API/lang/tr.json
+++ b/plugins/API/lang/tr.json
@@ -4,8 +4,12 @@
         "KeepTokenSecret": "token_auth kullanıcı adı ve şifreniz kadar gizlidir, %1$s kimseyle paylaşmayınız%2$s!",
         "LoadedAPIs": "%s API başarılı şekilde yüklendi",
         "MoreInformation": "Piwik APIsi hakkında daha fazla bilgi için lütfen %1$s Piwik API Kullanımı %2$s ve %3$s Piwik API Referansına %4$s bakınız.",
+        "PluginDescription": "Piwik'teki tüm veri basit API tarafından ulaşılabilir. Bu plugin xml,json,php,csv ve benzeri şekildeki Web Analatik verisini çağırmak için web servis giriş noktasıdır.",
+        "ReportingApiReference": "API Referanslarını Raporlamak",
         "TopLinkTooltip": "Json, xml veya diÄŸerleri ile Api kullanarak eriÅŸin.",
         "UserAuthentication": "Kullanıcı kimlik doğrulaması",
-        "UsingTokenAuth": "Bir script, cron vb içerisinden %1$s verisi çağırmak isterseniz, %2$s kimlik doğrulama gerektiren API bağlantılarına %3$s parametresini eklemelisiniz."
+        "UsingTokenAuth": "Bir script, cron vb içerisinden %1$s verisi çağırmak isterseniz, %2$s kimlik doğrulama gerektiren API bağlantılarına %3$s parametresini eklemelisiniz.",
+        "Glossary": "Sözlük",
+        "LearnAboutCommonlyUsedTerms": "Piwik analatiğin çoğu için şu sık kullanılan terimleri öğren :%1$s ve%2$s."
     }
 }
\ No newline at end of file
diff --git a/plugins/API/lang/zh-cn.json b/plugins/API/lang/zh-cn.json
index 69404354653dcfb1d86fa337935dae20fcb29ace..f76730d65cd93c9025e3b254e017d891cd4ae0ef 100644
--- a/plugins/API/lang/zh-cn.json
+++ b/plugins/API/lang/zh-cn.json
@@ -4,8 +4,12 @@
         "KeepTokenSecret": "授权号 token_auth 与您的帐号和密码一样重要,%1$s请不要公开%2$s!",
         "LoadedAPIs": "已成功载入 %s 个 APIs",
         "MoreInformation": "了解更多关于 Piwik APIs 的资讯,请访问 %1$sPiwik API 介绍%2$s 和 %3$s Piwik API 参考资料%4$s。",
+        "PluginDescription": "在Piwik所有数据,可通过简单的API。这个插件是Web服务的切入点,那你可以打电话得到XML,JSON,PHP,CSV,等你的Web Analytics数据",
+        "ReportingApiReference": "报告API参考",
         "TopLinkTooltip": "通过一个简单的 API,让您可以以 xml, json, 及其它格式取得网站统计数据。",
         "UserAuthentication": "身份验证",
-        "UsingTokenAuth": "如果您想在代码、定时任务中 %1$s 请求资料,%2$s 要在 API 调用需要认证的网址时增加参数 %3$s。"
+        "UsingTokenAuth": "如果您想在代码、定时任务中 %1$s 请求资料,%2$s 要在 API 调用需要认证的网址时增加参数 %3$s。",
+        "Glossary": "词汇表",
+        "LearnAboutCommonlyUsedTerms": "了解Piwik Analytics常用的术语:%1$s and %2$s。"
     }
 }
\ No newline at end of file
diff --git a/plugins/Actions/lang/sq.json b/plugins/Actions/lang/sq.json
index c02a62e64881814f1e59054e3023eaaa6c08f982..7ba920bc2a8122316d6c86fd93265fe189b6a928 100644
--- a/plugins/Actions/lang/sq.json
+++ b/plugins/Actions/lang/sq.json
@@ -2,6 +2,7 @@
     "Actions": {
         "AvgGenerationTimeTooltip": "Mesatare e bazuar në %1$s klikim(e) %2$s mes %3$s dhe %4$s",
         "ColumnClickedURL": "URL të klikuara",
+        "ColumnActionURL": "URL Veprimi",
         "ColumnClicks": "Klikime",
         "ColumnClicksDocumentation": "Sa herë është klikuar kjo lidhje.",
         "ColumnDownloadURL": "URL shkarkimesh",
@@ -41,9 +42,9 @@
         "PageUrls": "URL faqesh",
         "PluginDescription": "Raporte rreth parjes së faqeve dhe titujve të tyre. Ju lejon të matni motorin e brendshëm të kërkimeve të sajtit tuaj. Gjurmon vetvetiu klikimet drejt lidhjesh të jashtme dhe shkarkime kartelash.",
         "SiteSearchCategories1": "Ky raport paraqet kategoritë që vizitorët kanë përzgjedhur kur bënë një Kërkim te sajti juaj.",
-        "SiteSearchCategories2": "Për shembull, sajtet për e-tregti kanë zakonisht një përzgjedhës \"Kategorish\" që kështu vizitorët të mund t'i ngushtojnë kërkimet e tyre nga krejt produktet te një Kategori specifike.",
+        "SiteSearchCategories2": "Për shembull, sajtet për e-tregti kanë zakonisht një përzgjedhës \"Kategorish\", që kështu vizitorët të mund t’i ngushtojnë kërkimet e tyre nga krejt produktet te një Kategori specifike.",
         "SiteSearchFollowingPagesDoc": "Kur vizitorët kërkojnë te sajti juaj, ata shohin për një faqe, lëndë, produkt ose shërbim të veçantë. Ky raport paraqet faqet që qenë klikuar më shumë pas një kërkimi të brendshëm. Me fjalë të tjera, listën e faqeve më të kërkuara nga vizitorët tashmë brenda sajtit tuaj.",
-        "SiteSearchIntro": "Gjurmimi i kërkimeve që bëjnë vizitorët në sajtin tuaj është një rrugë shumë e efektshme për të mësuar më tepër rreth çka po kërkon publiku juaj, mund t'ju ndihmojë të gjeni ide për lëndë të re, produkte të reja e-tregtie që mund të jenë duke u kërkuar nga blerës potencialë, dhe përgjithësisht të përmirësoni për vizitorët punimin e sajtit tuaj.",
+        "SiteSearchIntro": "Gjurmimi i kërkimeve që bëjnë vizitorët në sajtin tuaj është një rrugë shumë e efektshme për të mësuar më tepër rreth çka po kërkon publiku juaj, mund t’ju ndihmojë të gjeni ide për lëndë të re, produkte të reja e-tregtie që mund të jenë duke u kërkuar nga blerës potencialë, dhe përgjithësisht të përmirësoni për vizitorët punimin e sajtit tuaj.",
         "SiteSearchKeyword": "Fjalëkyç (Kërkim te Sajti)",
         "SiteSearchKeywordsDocumentation": "Ky raport paraqet Fjalëkyçe Kërkimesh që vizitorët kanë bërë me Motorin tuaj të brendshëm të Kërkimeve.",
         "SiteSearchKeywordsNoResultDocumentation": "Ky raport paraqet Fjalëkyçe Kërkimesh që nuk patën ndonjë përfundim kërkimi: ndoshta algoritmi i motorit të kërkimit mund të përmirësohet, ose ndoshta vizitorët tuaj po kërkonin për lëndë që nuk gjendet (ende) në sajtin tuaj?",
diff --git a/plugins/Actions/lang/tr.json b/plugins/Actions/lang/tr.json
index 5e1060c57cbbc7b23d98fb217586e570abc66261..0c65af530a15f133d9935fb2c97dca73158e1b46 100644
--- a/plugins/Actions/lang/tr.json
+++ b/plugins/Actions/lang/tr.json
@@ -2,6 +2,7 @@
     "Actions": {
         "AvgGenerationTimeTooltip": "Ortalama %1$s hit, %2$s arasında %3$s \/ %4$s 'e dayalı",
         "ColumnClickedURL": "Tıklanan Sayfa Adresleri",
+        "ColumnActionURL": "Aksiyon Adresi",
         "ColumnClicks": "Tıklamalar",
         "ColumnClicksDocumentation": "Tıklama sayısı",
         "ColumnDownloadURL": "Ä°ndirme Sayfa Adresleri",
@@ -39,9 +40,11 @@
         "PagesReportDocumentation": "Bu rapor ziyaret edilen sayfa URL'leri hakkında bilgi içerir. %s Tablo hiyerarşik olarak düzenlenmiştir, URL'ler klasör yapısı ile görüntülenmektedir.",
         "PageTitlesReportDocumentation": "Bu rapor ziyaret edilen sayfaların başlıkları ile ilgili bilgi içerir. %1$s Sayfa başlığı, birçok tarayıcının pencere başlığında gösterdiği HTML %2$s imidir.",
         "PageUrls": "Sayfa Adresleri",
+        "PluginDescription": "Sayfa ziyaretleri ve sayfa başlıkları hakkında Raporlar. Kendi iç websitenin arama motorunu ölçmeye başla. Otomatik olarak harici linkleri ve dosya indirmeleri takip eder.",
         "SiteSearchCategories1": "Bu rapor, ziyaretçilerin sitenizde arama yaptıklarında seçtikleri kategorileri listelemektedir.",
         "SiteSearchCategories2": "Örnek olarak, E-Ticaret websitelerinde tipik bir \"Kategori\" seçimi vardır böylece ziyaretçiler aramalarını belirli bir kategori içindeki tüm ürünler ile kısıtlayabilirler.",
         "SiteSearchFollowingPagesDoc": "Ziyaretçileriniz web sitenizde arama yaptığında belirli bir sayfa, içerik, ürün ya da hizmete bakarlar. Bu rapor, web siteniz içinde yapılan bir aramadan sonra en çok tıklanan sayfalarınızı listeler. Diğer bir deyişle, web sitenizdeki mevcut ziyaretçilerinizin en çok aradığı sayfaları gösterir.",
+        "SiteSearchIntro": "Sitenizi ziyaret edenleri takip etmek, hedef kitlenizin nee baktığını anlamak için çok etkili bir yol, yeni içerik ile potansiyel müşterilerin arayabileceği yeni e-ticaret ürünlerini eklemde yardımcı, ve ziyaretçilerin genel kullanıcı deneyimini arttıran bir araçtır.",
         "SiteSearchKeyword": "Anahtar Kelime (Site Arama)",
         "SiteSearchKeywordsDocumentation": "Bu rapor, ziyaretçilerinizin Arama Motorunda aradığı Anahtar Kelimeleri listeler.",
         "SiteSearchKeywordsNoResultDocumentation": "Bu rapordaki arama terimi herhangi bir sonuç döndüremedi: arama motoru algoritması yükselme yada ziyaretçiler sitenizde olmayan bir içeriği aranma ihtimali olabilir mi ?",
@@ -58,6 +61,7 @@
         "WidgetPageUrlsFollowingSearch": "Site Aramasını Takip eden Sayfalar",
         "WidgetSearchCategories": "Arama Kategorileri",
         "WidgetSearchKeywords": "Arama Kelimeleri",
-        "WidgetSearchNoResultKeywords": "Sonuç dönmeyen Arama Kelimeleri"
+        "WidgetSearchNoResultKeywords": "Sonuç dönmeyen Arama Kelimeleri",
+        "ActionType": "Aksiyon Tipi"
     }
 }
\ No newline at end of file
diff --git a/plugins/Actions/lang/zh-cn.json b/plugins/Actions/lang/zh-cn.json
index 6f067e99b509bc8acb69eb4e44b0f7b73c55989e..74c06d6e4a434953e1c322ac9653c9c6ddb37805 100644
--- a/plugins/Actions/lang/zh-cn.json
+++ b/plugins/Actions/lang/zh-cn.json
@@ -2,6 +2,7 @@
     "Actions": {
         "AvgGenerationTimeTooltip": "平均值基于 %1$s 次访问 %2$s,介于 %3$s 和 %4$s 之间",
         "ColumnClickedURL": "点击的网址",
+        "ColumnActionURL": "操作网址",
         "ColumnClicks": "点击次数",
         "ColumnClicksDocumentation": "链接被点击的次数",
         "ColumnDownloadURL": "下载的网址",
@@ -60,6 +61,7 @@
         "WidgetPageUrlsFollowingSearch": "站内搜索的结果页面",
         "WidgetSearchCategories": "搜索类别",
         "WidgetSearchKeywords": "站内搜索关键词",
-        "WidgetSearchNoResultKeywords": "没有查到结果的关键词"
+        "WidgetSearchNoResultKeywords": "没有查到结果的关键词",
+        "ActionType": "操作类型"
     }
 }
\ No newline at end of file
diff --git a/plugins/Annotations/lang/tr.json b/plugins/Annotations/lang/tr.json
index bd7775adfcca8bc334b4c3ec212fa65222a1b6cb..dc3ba67ba7b34d0f7a0da5988a006e699faa656e 100644
--- a/plugins/Annotations/lang/tr.json
+++ b/plugins/Annotations/lang/tr.json
@@ -15,6 +15,7 @@
         "InlineQuickHelp": "Önemli olduğunu düşündüğünüz yada veri analizleriniz için özel anonslar oluşturabilirsiniz (yeni yazılar yada site yenilenmesi gibi)",
         "LoginToAnnotate": "Not eklemek için giriş yapmalısınız.",
         "NoAnnotations": "Bu tarih aralığı için not yok.",
+        "PluginDescription": "Websiteniz de yaptığınız değişiklikleri farklı günlerde belirtmek için not eklemeye izin verir, veriniz ile ilgili analizleri saklar ve bunları meslektaşlarınız ile birlikte paylaşmanıza izn verir. Neden o veriye baktığınızı hatırlamanızdan emin olmak için veriye dipnot koyar.",
         "ViewAndAddAnnotations": "%s için notları göster ve yeni not ekle...",
         "YouCannotModifyThisNote": "Bunu değiştiremezsiniz. Bunun için bu siteye yönetici erişiminiz olması gerekli."
     }
diff --git a/plugins/Contents/lang/de.json b/plugins/Contents/lang/de.json
index 61cb4074fa2f7b584342a153533829d3e502c367..4d58b2608468a076a45e9fd4ed45dcbf25557730 100644
--- a/plugins/Contents/lang/de.json
+++ b/plugins/Contents/lang/de.json
@@ -1,6 +1,6 @@
 {
     "Contents": {
-        "PluginDescription": "Content und Banner Tracking gibt Ihnen die Möglichkeit die Performance (Ansichten, Klicks, CTR) von einem beliebigen Stück Content (Banner-Werbung, Bild, beliebiges Element) auf Ihrer Seite zu messen.",
+        "PluginDescription": "Content- und Banner-Tracking gibt Ihnen die Möglichkeit, die Performance (Ansichten, Klicks, CTR) von einem beliebigen Stück Content (Banner-Werbung, Bild, beliebiges Element) auf Ihrer Seite zu messen.",
         "Impressions": "Impressionen",
         "Interactions": "Interaktionen",
         "Interaction": "Interaktion",
diff --git a/plugins/Contents/lang/tr.json b/plugins/Contents/lang/tr.json
index 0799894fd43af12a00fff0df7632d67ddec164db..6549aa9b32007cf1f1f9a79cc1b60d5651bde6a7 100644
--- a/plugins/Contents/lang/tr.json
+++ b/plugins/Contents/lang/tr.json
@@ -1,5 +1,6 @@
 {
     "Contents": {
+        "PluginDescription": "İçerik ve reklam izleme sayfandaki herhangi bir içeriğin (reklam, resim, herhangi bir öğenin) yerinin performansını (görünme, tıklamalar, CTR) izlemene yarar.",
         "Impressions": "Gösterimler",
         "Interactions": "EtkileÅŸimler",
         "Interaction": "EtkileÅŸim",
@@ -7,6 +8,9 @@
         "ContentName": "İçerik İsmi",
         "ContentPiece": "İçerik Parçası",
         "ContentTarget": "İçerik Hedefi",
-        "Contents": "İçerikler"
+        "Contents": "İçerikler",
+        "InteractionsMetricDocumentation": "İçeriğin kaç kere engellendiği (banner veya reklamdaki 'click' ler gibi)",
+        "ImpressionsMetricDocumentation": "Banner ve reklamlar gibi içeriklerin kaç kere gösterildiği",
+        "InteractionRateMetricDocumentation": "İçeriğin gösterimi ile etkileşim oranı"
     }
 }
\ No newline at end of file
diff --git a/plugins/Contents/lang/zh-cn.json b/plugins/Contents/lang/zh-cn.json
new file mode 100644
index 0000000000000000000000000000000000000000..dc1b8b1052bc309bc51b3da5a6039408c92584e6
--- /dev/null
+++ b/plugins/Contents/lang/zh-cn.json
@@ -0,0 +1,16 @@
+{
+    "Contents": {
+        "PluginDescription": "内容和横幅跟踪,您可以衡量您的网页上任何一部分内容(横幅广告,图像,任何项目)的性能(浏览次数,点击次数,点击率)。",
+        "Impressions": "印象",
+        "Interactions": "互动",
+        "Interaction": "互动",
+        "InteractionRate": "互动率",
+        "ContentName": "内容名称",
+        "ContentPiece": "内容块",
+        "ContentTarget": "内容目标",
+        "Contents": "内容",
+        "InteractionsMetricDocumentation": "内容块上的互动次数(例如,点击横幅或广告)",
+        "ImpressionsMetricDocumentation": "内容块的次数,例如显示在页面上的一个横幅或是广告。",
+        "InteractionRateMetricDocumentation": "内容展示和互动的比率。"
+    }
+}
\ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/de.json b/plugins/CoreAdminHome/lang/de.json
index 89bfcdb50c6d3ecbc18fb32aa349875df18c4974..ac9cac47d6c1de4451ebfdf86cff5cca3c0c019e 100644
--- a/plugins/CoreAdminHome/lang/de.json
+++ b/plugins/CoreAdminHome/lang/de.json
@@ -17,7 +17,7 @@
         "ImageTrackingIntro2": "Generieren Sie den Link unten und kopieren Sie den generierten HTML-Code in Ihre Seite. Sollten Sie dies als Fallback für das JavaScript Tracking verwenden, umschließen sie es mit einem %1$s Tag.",
         "ImageTrackingIntro3": "Eine vollständige Liste an Möglichkeiten, die Ihnen das Tracking mit einem Bild bietet, finden Sie in der %1$sTracking API Dokumentation%2$s",
         "ImageTrackingLink": "Link zum Tracking mit Hilfe eines Bildes",
-        "ImportingServerLogs": "Import von Server Log-Dateien",
+        "ImportingServerLogs": "Server Log-Dateien importieren",
         "ImportingServerLogsDesc": "Eine Alternative zum Tracken der Besucher im Browser (entweder mit JavaScript oder mit einem Bild-Link) ist der kontinuierliche Import von Server Logdateien. Erfahren Sie mehr über %1$sServer Logdatei Analyse%2$s",
         "InvalidPluginsWarning": "Folgende Plugins sind nicht kompatibel mit %1$s und konnten nicht geladen werden: %2$s",
         "InvalidPluginsYouCanUninstall": "Sie können diese Plugins auf der %1$sPlugins verwalten%2$s Seite aktualisieren oder deinstallieren.",
@@ -88,6 +88,7 @@
         "YouMayOptOut": "Sie können sich hier entscheiden, ob in Ihrem Browser ein eindeutiger Webanalyse-Cookie abgelegt werden darf, um dem Betreiber der Website die Erfassung und Analyse verschiedener statistischer Daten zu ermöglichen.",
         "YouMayOptOutBis": "Wenn Sie sich dagegen entscheiden möchten, klicken Sie den folgenden Link, um den Piwik-Deaktivierungs-Cookie in Ihrem Browser abzulegen.",
         "OptingYouOut": "Deaktivierung wird durchgeführt, bitte warten...",
-        "ProtocolNotDetectedCorrectly": "Sie betrachten Piwik momentan über eine sichere SSL-Verbindung (mittels HTTPS), aber Piwik konnte auf dem Server nur eine nicht sichere Verbindung feststellen."
+        "ProtocolNotDetectedCorrectly": "Sie betrachten Piwik momentan über eine sichere SSL-Verbindung (mittels HTTPS), aber Piwik konnte auf dem Server nur eine nicht sichere Verbindung feststellen.",
+        "ProtocolNotDetectedCorrectlySolution": "Um sicherzustellen, dass Piwik jegliche Anfragen und Inhalte via HTTPS ausliefert, ist es zwingend notwendig, die %1$s-Datei zu bearbeiten, die Proxy-Einstellungen zu überprüfen oder die Zeile %2$s unter dem Abschnitt %3$s hinzuzufügen. %4$sMehr erfahren%5$s"
     }
 }
\ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/sq.json b/plugins/CoreAdminHome/lang/sq.json
index 33bf6ac6511997200a0a5a25ea1368c7a4ac50f1..3db2572545bd0d4a9c995886c098859a07bf2f10 100644
--- a/plugins/CoreAdminHome/lang/sq.json
+++ b/plugins/CoreAdminHome/lang/sq.json
@@ -1,5 +1,6 @@
 {
     "CoreAdminHome": {
+        "AddNewTrustedHost": "Shtoni një strehë të re të besuar",
         "Administration": "Administrim",
         "BrandingSettings": "Rregullime marke",
         "ClickHereToOptIn": "Klikoni këtu për të kryer \"opt in\"",
@@ -7,13 +8,14 @@
         "CustomLogoFeedbackInfo": "Nëse e përshtatni logon e Piwik-ut, mund t’ju interesonte edhe fshehja lidhjes %1$s te menuja në krye. Për ta bërë këtë, mund të çaktivizoni shtojcën e Përshtypjeve te faqja e %2$sAdministrimit të Shtojcëve%3$s.",
         "CustomLogoHelpText": "Logon e Piwik-ut, që do të shfaqet në ndërfaqen e përdoruesit dhe raportet email.",
         "EmailServerSettings": "Rregullime shërbyesi email",
+        "ForBetaTestersOnly": "Vetëm për testues beta",
         "LogoUpload": "Përzgjidhni një Logo për ta ngarkuar",
         "MenuDiagnostic": "Diagnostikim",
         "MenuGeneralSettings": "Rregullime të përgjithshme",
         "MenuManage": "Administroni",
-        "OptOutComplete": "\"Opt-out\" u plotësua; vizitat tuaja në këtë \"site\" web nuk do të regjistrohen nga mjeti Analiza Web.",
-        "OptOutCompleteBis": "Mbani parasysh që nëse i hiqni \"cookie\"-t tuaja, fshini \"cookie\"-in për \"opt-out\", ose ndërroni kompjuter apo shfletues Web, do t'ju duhet të kryeni sërish procedurën për \"opt-out\".",
-        "OptOutExplanation": "Piwik-u është i përkushtuar ndaj mundësimit të vetësisë në Internet. Për t'u dhënë mundësinë e zgjedhjes së \"opt-out\" te Analizat Web Piwik, mund të shtoni kodin HTML vijues te një nga faqet e site-it tuaj web, për shembull te faqja e Rregullave të Vetësisë.",
+        "OptOutComplete": "\"Opt-out\" u plotësua; vizitat tuaja në këtë sajt s’do të regjistrohen nga mjeti Analiza Web.",
+        "OptOutCompleteBis": "Mbani parasysh që nëse i hiqni cookie-t tuaja, fshini cookie-in për \"opt-out\", ose ndërroni kompjuter apo shfletues Web, do t’ju duhet të kryeni sërish procedurën për \"opt-out\".",
+        "OptOutExplanation": "Piwik-u është i përkushtuar ndaj mundësimit të privatësisë në Internet. Për t’u dhënë mundësinë e zgjedhjes së \"opt-out\" te Analizat Web Piwik, mund të shtoni kodin HTML vijues te një nga faqet e sajtit tuaj, për shembull te faqja e Rregullave të Privatësisë.",
         "OptOutExplanationBis": "Ky kod do të shfaqë një Iframe që përmban një lidhje me të cilën vizitorët të mund të zgjedhin \"opt-out\" për Piwik-un, duke depozituar një \"opt-out cookie\" në shfletuesin e tyre. %1$s Klikoni këtu%2$s që të shihni lëndën që do të shfaqet nga iFrame-i.",
         "OptOutForYourVisitors": "\"Opt-out\" i Piwik-ut për vizitorët tuaj",
         "PiwikIsInstalledAt": "Piwik-u është instaluar te",
@@ -23,7 +25,7 @@
         "ValidPiwikHostname": "Strehëemër e Vlefshme Piwik",
         "YouAreOptedIn": "Tani jeni nën \"opt-in\"",
         "YouAreOptedOut": "Tani jeni nën \"opt-out\"",
-        "YouMayOptOut": "Mundet edhe të zgjidhni të mos ju përshoqërohet një numër unik identifikimi \"cookie\" analizash web për kompjuterin tuaj, për të shmangur mbledhjen dhe analizimin e të dhënave të mbledhura në këtë \"site\" web.",
+        "YouMayOptOut": "Mundet edhe të zgjidhni të mos ju përshoqërohet një numër unik identifikimi \"cookie\" analizash web për kompjuterin tuaj, për të shmangur mbledhjen dhe analizimin e të dhënave të mbledhura në këtë sajt.",
         "YouMayOptOutBis": "Për ta bërë këtë zgjedhje, ju lutem klikoni më poshtë që të merrni një \"cookie\" \"opt-out\"."
     }
 }
\ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/sv.json b/plugins/CoreAdminHome/lang/sv.json
index e00f68b9a4fb2d79a09301914681d2d0fdbe4397..6cb5fc81276ebc8f4e11f9ce103f78816b3a45c6 100644
--- a/plugins/CoreAdminHome/lang/sv.json
+++ b/plugins/CoreAdminHome/lang/sv.json
@@ -4,6 +4,7 @@
         "Administration": "Administration",
         "ArchivingSettings": "Inställningar för arkivering",
         "BrandingSettings": "Varumärkesinställningar",
+        "ReleaseChannel": "Lanseringskanal",
         "ClickHereToOptIn": "Klicka här för att gå med.",
         "ClickHereToOptOut": "Klicka här för att gå ur.",
         "CustomLogoFeedbackInfo": "Om du anpassar Piwik's logotyp, kanske du också är intresserad av att dölja %1$s länken i toppmenyn. För att göra detta kan du inaktivera pluginen Feedback på sidan %2$sHantera Plugins%3$s.",
@@ -48,6 +49,7 @@
         "JSTrackingIntro5": "Om du vill göra mer än att spåra antal sedda sidor, titta på %1$sPiwiks lista av dokumentation för Javascripts Spårning%2$s, där hittar du en lista med tillgängliga funktioner. Använd dessa funktioner för att spåra mål, skräddarsy variabler, e-handel, övergivna korgar med mera.",
         "LogoNotWriteableInstruction": "Om du vill använda din egen logotyp istället för Piwiks logotyp, se till så att det finns skrivrättigheter till denna katalog: %1$s. Piwik behöver skrivrättighet för dina logotyper som lagras i filerna %2$s.",
         "FileUploadDisabled": "Uppladdning av filer är inte aktiverat i din PHP-konfiguration. För att ladda upp din egen logo, sätt %s i php.ini och starta om din webbläsare.",
+        "LogoUploadFailed": "Den uppladdade filen kunde inte behandlats. Var snäll och kontrollera om filen är i giltigt format.",
         "LogoUpload": "Välj en logotyp att ladda upp",
         "FaviconUpload": "Välj en Favicon att ladda upp",
         "LogoUploadHelp": "Ladda upp en fil i %1$s format med en minsta höjd på %2$s pixlar.",
diff --git a/plugins/CoreAdminHome/lang/zh-cn.json b/plugins/CoreAdminHome/lang/zh-cn.json
index 4f776e7267b0ca8efb8447979753a451ca7c4eb0..e2c1b19591db4a10a580e7b9bb7d3e5209d46980 100644
--- a/plugins/CoreAdminHome/lang/zh-cn.json
+++ b/plugins/CoreAdminHome/lang/zh-cn.json
@@ -1,8 +1,10 @@
 {
     "CoreAdminHome": {
+        "AddNewTrustedHost": "添加一个新的受信任主机",
         "Administration": "管理",
         "ArchivingSettings": "归档设置",
         "BrandingSettings": "图标设置",
+        "ReleaseChannel": "释放通道",
         "ClickHereToOptIn": "点这里主动加入。",
         "ClickHereToOptOut": "点这里主动退出。",
         "CustomLogoFeedbackInfo": "如果您定制 Piwik 图标,可能想在顶部菜单隐藏 %1$s 链接,在 %2$s管理插件%3$s 页面禁用 Feedback 插件。",
@@ -22,8 +24,11 @@
         "JavaScriptTracking": "JavaScript 跟踪",
         "JSTracking_CampaignKwdParam": "广告关键词参数",
         "JSTracking_CampaignNameParam": "广告名称参数",
+        "JSTracking_CodeNoteBeforeClosingHead": "请保证此代码在您的每一个页面上。我们建议您马上粘贴这些代码在这些标签之前:%1$s。",
         "JSTracking_CustomCampaignQueryParam": "广告名称和关键词使用自定义搜索参数名",
         "JSTracking_CustomCampaignQueryParamDesc": "提示: %1$sPiwik 会自动检测 Google 分析参数。%2$s",
+        "JSTracking_DisableCookies": "禁用所有跟踪cookie",
+        "JSTracking_DisableCookiesDesc": "禁用所有第一次访问的Cookie。本网站现有的Piwik cookes将会在下次页面访问时全部删除。",
         "JSTracking_EnableDoNotTrack": "启用访客 DoNotTrack 检测",
         "JSTracking_EnableDoNotTrack_AlreadyEnabled": "提示: 服务器端的 DoNotTrack 支持已启用,这个选项无效。",
         "JSTracking_EnableDoNotTrackDesc": "如果访客不愿意被统计,将不会发送统计请求。",
@@ -42,24 +47,34 @@
         "JSTrackingIntro3": "多数网站,例如博客、内容管理网站等,您可以使用已有的插件。(见 %1$s用于集成 Piwik 的插件列表%2$s) 如果没有插件,您可以修改网站模板,把这段代码加入 \"footer\" 文件。",
         "JSTrackingIntro4": "如果您不想用 JavaScript 来跟踪访客,%1$s在下面生成图片跟踪链接%2$s。",
         "JSTrackingIntro5": "如果除了统计访问次数,请在 %1$sPiwik Javascript 跟踪文档%2$s 中查看更多的功能列表。通过这些功能,您可以跟踪目标、自定义变量、订单、丢弃的购物车等。",
+        "LogoNotWriteableInstruction": "要使用您的自定义logo替代默认Piwik logo,您需要此目录的权限:%1$s。Piwik需要%2$s的写入权限以便将您的logo存入。",
+        "FileUploadDisabled": "您的php配置关闭了PHP文件上传,如果你要上传你的自定义Logo,你需要设置 %s 在 php.ini文件,然后重启您的WEB服务器。",
+        "LogoUploadFailed": "上传的文件无法处理。请检查文件是否具有有效的格式。",
         "LogoUpload": "选择一个图标上传",
         "FaviconUpload": "选择上传图标",
         "LogoUploadHelp": "请上传 %1$s 格式的文件,最小高度 %2$s 点。",
         "MenuDiagnostic": "检测",
         "MenuGeneralSettings": "一般设置",
         "MenuManage": "管理",
+        "MenuDevelopment": "展开",
         "OptOutComplete": "主动退出 成功; 网站分析工具将不会统计您对这个网站的访问。",
         "OptOutCompleteBis": "如果您清空了cookies、删除了主动退出cookie、或者更换了电脑或者浏览器,您需要重新执行主动退出的操作。",
+        "OptOutDntFound": "您的访问没有被记录,因为您的浏览器设置了“请勿跟踪”。这是您的浏览器的设置,您可以关闭“请勿跟踪”设置,以便于正确记录访问数量。",
         "OptOutExplanation": "Piwik 致力于 Internet 隐私保护。为了给访客提供主动退出 Piwik 网页分析的选项, 您可以在一个网页上添加下面的HTML代码, 例如在隐私保护页面。",
         "OptOutExplanationBis": "本代码将显示一个包含链接的 Iframe,供访客在浏览器中设置主动退出的 cookie 来退出 Piwik 的统计。%1$s 点这里%2$s 查看将在 iFrame 里显示的内容。",
         "OptOutForYourVisitors": "访客主动退出 Piwik",
         "PiwikIsInstalledAt": "Piwik 安装在",
+        "PersonalPluginSettings": "个人插件设置",
         "PluginSettingChangeNotAllowed": "不允许更改插件"%1$s"中配置"%2$s"的值",
+        "PluginSettingReadNotAllowed": "不允许读取插件"%1$s"中配置"%2$s"的值",
+        "PluginSettings": "插件设置",
         "PluginSettingsIntro": "这里,你可以更改下列第三方插件的配置:",
         "PluginSettingsValueNotAllowed": "插件\"%1$s\"中的域\"%2$s\"的值是不被允许的",
         "PluginSettingsSaveFailed": "保存插件设置失败",
+        "SendPluginUpdateCommunication": "有新的插件更新时给我发送邮件",
         "SendPluginUpdateCommunicationHelp": "插件有新版本时将会给超级管理员发送邮件",
         "StableReleases": "如果Piwik对您的业务很重要,我们建议您使用最新的稳定版。如果使用最新测试版,发现了问题或有建议,请%1$s看这里%2$s。",
+        "LtsReleases": "LTS(长期支持)版本只接收安全性和bug修复。",
         "SystemPluginSettings": "系统插件设置",
         "TrackAGoal": "跟踪目标",
         "TrackingCode": "跟踪代码",
@@ -72,6 +87,9 @@
         "YouAreOptedIn": "现在是主动加入。",
         "YouAreOptedOut": "现在是主动退出。",
         "YouMayOptOut": "您可以选择不给您的电脑设定唯一的网站分析 cookie 标识号,以避免被这个网站搜集和分析访问数据。",
-        "YouMayOptOutBis": "点击下面链接可设置主动退出的 cookie。"
+        "YouMayOptOutBis": "点击下面链接可设置主动退出的 cookie。",
+        "OptingYouOut": "选择加入你,请稍候...",
+        "ProtocolNotDetectedCorrectly": "您正在浏览Piwik通过安全SSL连接 (使用HTTPS),但Piwik只能检测到服务器上的非安全连接。",
+        "ProtocolNotDetectedCorrectlySolution": "为了确保Piwik安全要求,可以通过HTTPS来访问您的内容,你可以编辑你的%1$s 文件,无论是配置代理服务器设置,或者可以添加如下代码%2$s在%3$s下。 %4$s详细了解%5$s"
     }
 }
\ No newline at end of file
diff --git a/plugins/CoreHome/javascripts/corehome.js b/plugins/CoreHome/javascripts/corehome.js
index 6863dd039383143432b7e9705b573dce7fec9440..b0ac486b102cadb97368db74d077740eccbda078 100755
--- a/plugins/CoreHome/javascripts/corehome.js
+++ b/plugins/CoreHome/javascripts/corehome.js
@@ -138,5 +138,4 @@ $( document ).ready(function() {
         $('a[name="main"]').attr('tabindex', -1).focus();
         $(window).scrollTo($('a[name="main"]'));
     });
-
-});
+});
\ No newline at end of file
diff --git a/plugins/CoreHome/javascripts/dataTable.js b/plugins/CoreHome/javascripts/dataTable.js
index 885603c0e77ebb90906835b474d953ce7f587183..4386a4bf7bb6b1b80e1a8c1d999af1409e640fe1 100644
--- a/plugins/CoreHome/javascripts/dataTable.js
+++ b/plugins/CoreHome/javascripts/dataTable.js
@@ -845,7 +845,7 @@ $.extend(DataTable.prototype, UIControl.prototype, {
                                     if (oldDate) {
                                         $('span', annotations).each(function () {
                                             if ($(this).attr('data-date') == oldDate) {
-                                                $(this).attr('title', viewAndAdd.replace("%s", oldDate));
+                                                $(this).attr('title', sprintf(viewAndAdd, oldDate));
                                                 return false;
                                             }
                                         });
@@ -853,10 +853,10 @@ $.extend(DataTable.prototype, UIControl.prototype, {
 
                                     // change the tooltip of the clicked evolution icon
                                     if (manager.is(':hidden')) {
-                                        spanSelf.attr('title', viewAndAdd.replace("%s", date));
+                                        spanSelf.attr('title', sprintf(viewAndAdd, date));
                                     }
                                     else {
-                                        spanSelf.attr('title', hideNotes.replace("%s", date));
+                                        spanSelf.attr('title', sprintf(hideNotes, date));
                                     }
                                 }
                             );
diff --git a/plugins/CoreHome/javascripts/popover.js b/plugins/CoreHome/javascripts/popover.js
index f6947698218f82e8df0a952cf2f266880d23ab02..28cad1f3f92e15132e7c8f319c441a0a0c3ac303 100644
--- a/plugins/CoreHome/javascripts/popover.js
+++ b/plugins/CoreHome/javascripts/popover.js
@@ -85,7 +85,7 @@ var Piwik_Popover = (function () {
             var loadingMessage = popoverSubject ? translations.General_LoadingPopoverFor :
                 translations.General_LoadingPopover;
 
-            loadingMessage = loadingMessage.replace(/%s/, popoverName);
+            loadingMessage = sprintf(loadingMessage, popoverName);
 
             var p1 = $(document.createElement('p')).addClass('Piwik_Popover_Loading_Name');
             loading.append(p1.text(loadingMessage));
diff --git a/plugins/CoreHome/javascripts/top_controls.js b/plugins/CoreHome/javascripts/top_controls.js
index 96d37ffb00783a4bb886f5ad1f975ff44a62bc69..0f98557da3f4977644da06347535aedac0eae3b7 100644
--- a/plugins/CoreHome/javascripts/top_controls.js
+++ b/plugins/CoreHome/javascripts/top_controls.js
@@ -98,6 +98,22 @@ function toggleCalendar(e){
     }
 }
 
+//Keyboard controls for Top Controls Calendar through tab and enter. 
+$( document ).ready(function() {
+    $('.periodSelector').keydown(function(e){
+        toggleCalendar(e);
+    })
+
+    blockPropegation();
+
+    $('.periodSelector .form-radio').keydown(function(e){
+        e.stopPropagation();
+        if(e.which==13){
+            selectPeriodRadioButton($(this));
+        }
+    })
+});
+
 function selectPeriodRadioButton(button){
     $('.periodSelector .form-radio').removeClass('checked');
     button.addClass('checked');
diff --git a/plugins/CoreHome/lang/sq.json b/plugins/CoreHome/lang/sq.json
index 05a0379a62cb3206207261561c7ce1e395108300..204ab6082706efa2f3739f256808e58fd04a8fdf 100644
--- a/plugins/CoreHome/lang/sq.json
+++ b/plugins/CoreHome/lang/sq.json
@@ -2,12 +2,16 @@
     "CoreHome": {
         "CategoryNoData": "Pa të dhëna për këtë kategori. Provoni të \"Përfshini tërë popullatën\".",
         "CheckForUpdates": "Kontrollo për përditësime",
+        "CheckPiwikOut": "Provojeni Piwik-un!",
+        "ClickToEditX": "Klikoni që të përpunoni %s",
         "DataForThisReportHasBeenPurged": "Të dhënat e këtij raporti janë më të vjetra se %s muaj dhe u pastruan.",
+        "Default": "parazgjedhje",
         "JavascriptDisabled": "Që të mund të përdorni Piwik-un në parjen standarde duhet të aktivizohet JavaScript-i.<br \/>Por ja që duket se ose JavaScript-i është i çaktivizuar, ose nuk mbulohet nga shfletuesi juaj.<br \/>Që të përdorni parjen standarde, aktivizoni JavaScript-in duke ndryshuar mundësitë përkatëse te shfletuesi juaj, mandej %1$sriprovoni%2$s.<br \/>",
-        "NoPrivilegesAskPiwikAdmin": "Jeni i futur si '%1$s' por duket se nuk keni leje të rregulluara për ju në Piwik. %2$s Kërkojini administratorit tuaj te Piwik (klikoni që t’i dërgoni email)%3$s që t’ju japë të drejta 'parjesh' te një site web.",
+        "NoPrivilegesAskPiwikAdmin": "Jeni i futur si '%1$s' por duket se s’keni leje të rregulluara për ju në Piwik. %2$s Kërkojini administratorit tuaj te Piwik (klikoni që t’i dërgoni email)%3$s që t’ju japë të drejta 'parjesh' te një sajt.",
         "PageOf": "%1$s nga %2$s",
         "ShowJSCode": "Shfaqe kodin JavaScript që duhet futur",
         "ThereIsNoDataForThisReport": "Nuk ka të dhëna për këtë raport.",
-        "WebAnalyticsReports": "Raporte Analizash Web"
+        "WebAnalyticsReports": "Raporte Analizash Web",
+        "Segments": "Segmente"
     }
 }
\ No newline at end of file
diff --git a/plugins/CoreHome/lang/tr.json b/plugins/CoreHome/lang/tr.json
index eddff9951ebaa22116711566514ab08efd1103bf..88dbbe2e7bc767e624cb4457f05f95ef556d0b31 100644
--- a/plugins/CoreHome/lang/tr.json
+++ b/plugins/CoreHome/lang/tr.json
@@ -21,6 +21,7 @@
         "InjectedHostWarningIntro": "Şu anda Piwik'e %1$s 'den giriş yapıyorsunuz ama Piwik şu adreste çalışması için ayarlandı: %2$s.",
         "MakeADifference": "Farklılık yarat: Piwik 2.0'ı finanse etmek için şimdi %1$s bağışla %2$s",
         "MakeOneTimeDonation": "Onun yerine bir defalık bağış yapın",
+        "Menu": "Menü",
         "OnlyForSuperUserAccess": "Bu widget sadece Super User seviyesinde olan kullanıcılara görüntülenir.",
         "PageOf": "%1$s nin %2$s",
         "PeriodRange": "Aralık",
@@ -29,12 +30,15 @@
         "SharePiwikShort": "Piwik! Ãœcretsiz web takibi ve analizi. Kendi verilerinizle.",
         "ShareThis": "paylaÅŸ",
         "ShowJSCode": "Eklenecek JavaScript kodu göster",
+        "SkipToContent": "İçeriği atla",
         "SubscribeAndBecomePiwikSupporter": "Piwik Destekçisi olmak için güvenli bir kredi kartı ödeme sayfasına (Paypal) geçin!",
         "SupportPiwik": "Piwike destek ol",
         "TableNoData": "Bu tablo için bir veri yok.",
         "ThereIsNoDataForThisReport": "Bu rapor için veri yok.",
         "ViewAllPiwikVideoTutorials": "Tüm Piwik Yardım Videolarına Bak",
         "WebAnalyticsReports": "Web Analiz Raporları",
-        "YouAreUsingTheLatestVersion": "Piwik'in son versiyonunu kullanıyorsunuz!"
+        "YouAreUsingTheLatestVersion": "Piwik'in son versiyonunu kullanıyorsunuz!",
+        "Segments": "Bölümler",
+        "ChangeCurrentWebsite": "Bir websitesi seç, mevcut seçilen site: %s"
     }
 }
\ No newline at end of file
diff --git a/plugins/CoreHome/lang/zh-cn.json b/plugins/CoreHome/lang/zh-cn.json
index de8270c5b652b1985864124294516c6da678c2a5..2d2a82c41492323db6599bb4f5543596f9aaf296 100644
--- a/plugins/CoreHome/lang/zh-cn.json
+++ b/plugins/CoreHome/lang/zh-cn.json
@@ -24,6 +24,7 @@
         "InjectedHostSuperUserWarning": "可能 Piwik 配置有误 (例如,Piwik 刚移到新的服务器)。您可以 %1$s点这里添加 %2$s 为 Piwik 主机名 (如果您信任)%3$s, 或者 %4$s点这里转到 %5$s 安全访问 Piwik %6$s。",
         "InjectedHostWarningIntro": "您现在是通过 %1$s 访问 Piwik,但 Piwik 设置的地址是: %2$s.",
         "JavascriptDisabled": "使用 Piwik 的标准视图时必须启用 JavaScript。<br \/>然而,看来您的浏览器已停用或不支持 JavaScript。<br \/>若要使用标准视图,请修改您的浏览器选项并启用 JavaScript, 然后%1$s重试一次%2$s。<br \/>",
+        "MainNavigation": "主导航",
         "MakeADifference": "现在就%1$s捐款%2$s给 Piwik 2.0 !",
         "MakeOneTimeDonation": "一次性捐款",
         "Menu": "菜单",
@@ -48,6 +49,11 @@
         "YouAreUsingTheLatestVersion": "您正在使用最新版的 Piwik!",
         "ClickRowToExpandOrContract": "点击这行可以扩展或压缩小工作台。",
         "UndoPivotBySubtable": "这个报表被 pivot 了 %s 撤销 Pivot",
-        "PivotBySubtable": "这个报表尚未 pivot %1$s 以 %2$s 的身份 pivot"
+        "PivotBySubtable": "这个报表尚未 pivot %1$s 以 %2$s 的身份 pivot",
+        "QuickAccessTitle": "搜索 %s,使用上下键在搜索结果中导航。快捷键:按“F”进行搜索。",
+        "MenuEntries": "菜单项",
+        "Segments": "段",
+        "AdblockIsMaybeUsed": "如果您使用的是广告拦截,请禁用此网站,以确保Piwik工作没有任何问题。",
+        "ChangeCurrentWebsite": "选择一个网站,当前选择的网站: %s"
     }
 }
\ No newline at end of file
diff --git a/plugins/CorePluginsAdmin/lang/sk.json b/plugins/CorePluginsAdmin/lang/sk.json
index 069cbec0935b83b1edf12c20dd68b039641634f0..fc6db1f6ca486b1484137660fec8cd7e67c647ee 100644
--- a/plugins/CorePluginsAdmin/lang/sk.json
+++ b/plugins/CorePluginsAdmin/lang/sk.json
@@ -38,6 +38,10 @@
         "LastCommitTime": "(posledné rozhodnutie %s)",
         "LastUpdated": "posledne aktualizované",
         "LicenseHomepage": "domovská stránka licencie",
+        "LikeThisPlugin": "Páči sa vám modul?",
+        "ConsiderDonating": "Zvážte príspevok",
+        "CommunityContributedPlugin": "Toto je modul vytvorený komunitou, ktorý ste získali zadarmo.",
+        "ConsiderDonatingCreatorOf": "Prosím zvážte príspevok pre tvorcu %s",
         "PluginsExtendPiwik": "Moduly rozširujú funkcionalitu projektu Piwik.",
         "OncePluginIsInstalledYouMayActivateHere": "Po nainštalovaní modulu ho tu môžete aktivovať, alebo deaktivovať.",
         "Marketplace": "trh",
diff --git a/plugins/CorePluginsAdmin/lang/sq.json b/plugins/CorePluginsAdmin/lang/sq.json
index 9b555b43dda5cbd556ad794e99d21e70f39128f8..4d2f10f0e7c26f98a1c8ccdebc2fc189d4ac3b69 100644
--- a/plugins/CorePluginsAdmin/lang/sq.json
+++ b/plugins/CorePluginsAdmin/lang/sq.json
@@ -1,9 +1,14 @@
 {
     "CorePluginsAdmin": {
+        "ActionActivatePlugin": "Aktivizoje shtojcën",
+        "ActionActivateTheme": "Aktivizojeni temën",
+        "ActionUninstall": "Çinstalojeni",
         "Activate": "Aktivizoje",
         "Activated": "E aktivizuar",
         "Active": "Vepruese",
+        "Activity": "Veprimtari",
         "AuthorHomepage": "Faqja Hyrëse e Autorit",
+        "Authors": "Autorë",
         "Deactivate": "Çaktivizoje",
         "Inactive": "Jovepruese",
         "LicenseHomepage": "Faqja Hyrëse e Lejes",
@@ -16,6 +21,6 @@
         "Status": "Gjendje",
         "Support": "Asistencë",
         "Version": "Version",
-        "Websites": "\"Site\"-e web"
+        "Websites": "Sajte"
     }
 }
\ No newline at end of file
diff --git a/plugins/CorePluginsAdmin/lang/sv.json b/plugins/CorePluginsAdmin/lang/sv.json
index 1f50caf404949cef20f6d0cb31de6f54c8506d85..4d1491d8ed81610dffaec00faac530bddd33ffa7 100644
--- a/plugins/CorePluginsAdmin/lang/sv.json
+++ b/plugins/CorePluginsAdmin/lang/sv.json
@@ -38,6 +38,9 @@
         "LastCommitTime": "(senaste överföringen %s)",
         "LastUpdated": "Senast uppdaterad",
         "LicenseHomepage": "Licens Hemsida",
+        "LikeThisPlugin": "Gilla följande plugin?",
+        "ConsiderDonating": "Överväg att donera",
+        "ConsiderDonatingCreatorOf": "Vänlig överväg att donera till upphovsman av %s",
         "PluginsExtendPiwik": "Plugins breddar och utökar funktionerna i Piwik.",
         "OncePluginIsInstalledYouMayActivateHere": "När en plugin är installerad kan du aktivera eller inaktivera den här.",
         "Marketplace": "Butik",
diff --git a/plugins/CorePluginsAdmin/lang/zh-cn.json b/plugins/CorePluginsAdmin/lang/zh-cn.json
index f2d2e1b7371f1243443d3af3b79914d270231b45..df8b537e4f1fd7aab4830cc8fb97c909b632adf0 100644
--- a/plugins/CorePluginsAdmin/lang/zh-cn.json
+++ b/plugins/CorePluginsAdmin/lang/zh-cn.json
@@ -8,26 +8,51 @@
         "Activated": "已启用",
         "Active": "已启用",
         "Activity": "活动",
+        "AllowedUploadFormats": "您可以通过该页面上传.zip格式的插件或主题。",
         "AuthorHomepage": "作者主页",
         "Authors": "作者",
         "BackToExtendPiwik": "返回商城",
+        "BeCarefulUsingPlugins": "不是由Piwik小组撰写的插件必须小心使用:我们没有审查他们。",
+        "BeCarefulUsingThemes": "不是由Piwik小组撰写的主题必须小心使用:我们没有审查他们。",
+        "ByXDevelopers": "开发者: %s",
+        "CannotInstall": "无法安装(帮助)",
         "Changelog": "修改日志",
+        "ChangeSettingsPossible": "你可以%1$s配置%2$s此插件。",
+        "CorePluginTooltip": "核心插件没有版本,因为它们由Piwik分配。",
         "Deactivate": "停用",
         "Developer": "程序员",
+        "DevelopersLearnHowToDevelopPlugins": "开发者:你可以学习如何扩展和定制 Piwik%1$s开发插件或主题%2$s。",
+        "DoMoreContactPiwikAdmins": "要安装新插件或者一个新的主题,请与您的Piwik管理员联系。",
+        "EmailToEnquireUpdatedVersion": "请发邮件%1$s和查询%2$s的更新版本。",
+        "FeaturedPlugin": "特色插件",
+        "ChangeLookByManageThemes": "你可以进入%1$s管理主题%2$s来改变Piwik的外观。",
+        "GetEarlyAccessForPaidPlugins": "注意:目前所有插件都是免费的,但未来我们可能会在市场里开放付费插件。(%1$s联系我们%2$s)",
         "History": "历史记录",
         "Inactive": "已停用",
+        "InfoPluginUpdateIsRecommended": "立即更新您的插件从最新改进中受益。",
+        "InfoThemeIsUsedByOtherUsersAsWell": "注意:有其它%1$s个Piwik注册用户也在使用这个主题%2$s。",
+        "InfoThemeUpdateIsRecommended": "更新你的主题,以享受最新版本。",
         "InstallingPlugin": "正在安装 %s",
         "InstallNewPlugins": "安装新插件",
         "InstallNewThemes": "安装新主题",
         "LastCommitTime": "(最后提交 %s)",
         "LastUpdated": "最后更新",
         "LicenseHomepage": "许可首页",
+        "LikeThisPlugin": "喜欢这个插件?",
+        "ConsiderDonating": "考虑捐赠",
+        "CommunityContributedPlugin": "这是一个社区贡献的插件,赞助商是免费的。",
+        "ConsiderDonatingCreatorOf": "请考虑捐赠给%s的作者",
         "PluginsExtendPiwik": "插件延伸并扩展了 Piwik 的功能。",
         "OncePluginIsInstalledYouMayActivateHere": "当一个插件安装了以后,您可以在这里启用或停用它。",
         "Marketplace": "商城",
         "MarketplaceSellPluginSubject": "商城 - 销售插件",
         "MenuPlatform": "平台",
+        "MissingRequirementsNotice": "请升级%1$s %2$s到最新的版本, %1$s %3$s 是必需的。",
+        "MissingRequirementsPleaseInstallNotice": "%3$s的前提是您要先安装 %1$s %2$s。",
+        "NewVersion": "新版本",
         "NoPluginsFound": "没有插件",
+        "NotAllowedToBrowseMarketplacePlugins": "您可以浏览,可以安装定制或扩展您的Piwik平台插件列表。如果你有需要请联系您的管理员。",
+        "NotAllowedToBrowseMarketplaceThemes": "就可以浏览可以安装定制Piwik平台的外观的主题列表。如果你有需要请联系您的管理员。",
         "NoThemesFound": "没有布景",
         "NoZipFileSelected": "请选择一个ZIP文件",
         "NumDownloadsLatestVersion": "最新版本: %s次下载",
@@ -39,7 +64,9 @@
         "PluginKeywords": "关键词",
         "PluginNotCompatibleWith": "插件 %1$s 与 %2$s 不兼容。",
         "PluginNotWorkingAlternative": "如果您使用这个插件,可以到商城查找更新的版本。如果没有用,可以卸载。",
+        "PluginRequirement": "%1$s需要%2$s。",
         "PluginsManagement": "插件管理",
+        "PluginUpdateAvailable": "您正在使用的版本号为 %1$s,现在有最新的版本%2$s。",
         "PluginVersionInfo": "%1$s 来自 %2$s",
         "PluginWebsite": "插件网站",
         "Screenshots": "截屏",
@@ -57,8 +84,13 @@
         "StepThemeSuccessfullyUpdated": "成功更新布景 %1$s %2$s。",
         "StepUnzippingPlugin": "正在解压插件",
         "StepUnzippingTheme": "正在解压布景",
+        "SuccessfullyActicated": "您已成功激活<strong>%s<\/strong>。",
         "Support": "支持",
         "TeaserExtendPiwik": "使用插件主题来扩展Piwik",
+        "TeaserExtendPiwikByPlugin": "安装一个新的插件来扩展Piwik。",
+        "TeaserExtendPiwikByTheme": "安装一个新的主题来感受一下",
+        "TeaserExtendPiwikByUpload": "上传一个ZIP文件来扩展Piwik。",
+        "InstallingNewPluginViaMarketplaceOrUpload": "你可以从市场里自动安装插件,或%1$s上传%2$s一个ZIP格式的插件。",
         "Theme": "主题",
         "Themes": "主题",
         "ThemesDescription": "主题可以改变Piwik外观,提供一个全新的视觉体验,让您享受分析报告。",
diff --git a/plugins/CorePluginsAdmin/templates/plugins.twig b/plugins/CorePluginsAdmin/templates/plugins.twig
index 61db76e62292c44d93ec381bcebfd69bd24cfcc3..10910bda5724f83f1c53213bf1710378f49a9712 100644
--- a/plugins/CorePluginsAdmin/templates/plugins.twig
+++ b/plugins/CorePluginsAdmin/templates/plugins.twig
@@ -24,11 +24,8 @@
         <br/>{{ 'CorePluginsAdmin_DoMoreContactPiwikAdmins'|translate }}
     {% endif %}
 
-
-    {% if isMarketplaceEnabled %}
         <br />
         {{ 'CorePluginsAdmin_ChangeLookByManageThemes'|translate('<a href="' ~ linkTo({'action': 'themes'}) ~'">', '</a>')|raw }}
-    {% endif %}
     </p>
 
     {{ plugins.pluginsFilter(false, isMarketplaceEnabled) }}
diff --git a/plugins/CoreUpdater/lang/sk.json b/plugins/CoreUpdater/lang/sk.json
index 92cd5fc6086d1713ecdd08614de95b33e958826c..49899599e95c08459dd8c02462469cdeaf0ac9c5 100644
--- a/plugins/CoreUpdater/lang/sk.json
+++ b/plugins/CoreUpdater/lang/sk.json
@@ -25,6 +25,11 @@
         "HighTrafficPiwikServerEnableMaintenance": "Ak natrafíte na zahltený Piwik server, odporúčame %1$s dočasne vypnúť sledovanie návštevníkov a prepnúť Piwik-užívateľské rozhranie do módu údržby %2$s.",
         "IncompatbilePluginsWillBeDisabledInfo": "Pozn.: niektoré pluginy nie sú kompatibilné s Piwik %s. Budú vypnuté ak aktualizujete:",
         "InstallingTheLatestVersion": "Inštalácia poslednej verzie",
+        "LatestBetaRelease": "Posledná beta verzia",
+        "LatestStableRelease": "Posledná stabilné vydanie",
+        "Latest2XStableRelease": "Posledná stabilná verzia 2.x",
+        "Latest2XBetaRelease": "Posledná beta verzia 2.x",
+        "LtsSupportVersion": "Verzia s dlhodobou podporou",
         "MajorUpdateWarning1": "Toto je veľká aktualizácia! Bude to trvať dlhšie ako zvyčajne.",
         "MajorUpdateWarning2": "Nasledujúca rada je obzvlášť dôležitá pre veľké inštalácie.",
         "NoteForLargePiwikInstances": "Dôležité poznámky pre veľké Piwik-inštalácie.",
diff --git a/plugins/CoreUpdater/lang/sq.json b/plugins/CoreUpdater/lang/sq.json
index 0d1495440fb0ca79a2cd5db8aecaf4bc02e6744d..7630feb265a810b08c6e950db464adcecea34ce5 100644
--- a/plugins/CoreUpdater/lang/sq.json
+++ b/plugins/CoreUpdater/lang/sq.json
@@ -1,8 +1,9 @@
 {
     "CoreUpdater": {
-        "ClickHereToViewSqlQueries": "Klikoni këtu që të shihni dhe të kopjoni listën e kërkesave SQL që ka për t'u ekzekutuar",
+        "ClickHereToViewSqlQueries": "Klikoni këtu që të shihni dhe të kopjoni listën e kërkesave SQL që ka për t’u ekzekutuar",
         "CriticalErrorDuringTheUpgradeProcess": "Gabim Kritik gjatë procesit të përditësimit:",
         "DatabaseUpgradeRequired": "Lypset Përmirësim i Bazës së të Dhënave",
+        "DisablingIncompatiblePlugins": "Po çaktivizohen shtojca të papërputhshme: %s",
         "DownloadingUpdateFromX": "Po shkarkohet përditësimi prej %s",
         "DownloadX": "Shkarko %s",
         "EmptyDatabaseError": "Baza e të dhënave %s është bosh. Kartelën tuaj të formësimit të Piwik-ut duhet ta përpunoni ose ta hiqni.",
@@ -17,7 +18,7 @@
         "ExceptionArchiveEmpty": "Arkivë bosh.",
         "ExceptionArchiveIncompatible": "Arkivë e papërputhshme: %s",
         "ExceptionArchiveIncomplete": "Arkiva nuk është e plotë: mungojnë disa kartela (p.sh. %s).",
-        "HelpMessageContent": "Hidhini një sy %1$s Piwik FAQ %2$s që shpjegojnë gabimet më të rëndomta gjatë përditësimesh. %3$s Pyesni përgjegjësin e sistemit tuaj - ai mund të jetë në gjendje të t'ju ndihmojë për gabimin, i cili ka shumë të ngjarë të ketë lidhje me rregullimet e shërbyesit tuaj ose ato të MySQL-së.",
+        "HelpMessageContent": "Hidhini një sy %1$s Piwik FAQ %2$s që shpjegojnë gabimet më të rëndomta gjatë përditësimesh. %3$s Pyesni përgjegjësin e sistemit tuaj - ai mund të jetë në gjendje të t’ju ndihmojë për gabimin, i cili ka shumë të ngjarë të ketë lidhje me rregullimet e shërbyesit tuaj ose ato të MySQL-së.",
         "HelpMessageIntroductionWhenError": "Sa më sipër, është thelbi i mesazhit të gabimit. Do të ndihmonte të shpjegohej shkaku, por nëse keni nevojë për ndihmë të mëtejshme, ju lutem:",
         "HelpMessageIntroductionWhenWarning": "Përditësimi u plotësua me sukses, sidoqoftë pati ca kleçka gjatë procesit. Ju lutem, lexoni përshkrimet më sipër për hollësi. Për më tepër ndihmë:",
         "InstallingTheLatestVersion": "Po instalohet versioni më i fundit",
@@ -26,14 +27,14 @@
         "PiwikHasBeenSuccessfullyUpgraded": "Piwik-u u përmirësua me sukses!",
         "PiwikUpdatedSuccessfully": "Piwik-u u përditësua me sukses!",
         "PiwikWillBeUpgradedFromVersionXToVersionY": "Baza e të dhënave për Piwik-un do të përmirësohet prej versionit %1$s te versioni i ri %2$s.",
-        "ReadyToGo": "Gati për t'ia filluar?",
+        "ReadyToGo": "Gati për t’ia filluar?",
         "TheFollowingPluginsWillBeUpgradedX": "Shtojcat vijuese do të përditësohen: %s.",
         "ThereIsNewVersionAvailableForUpdate": "Mund të kihet një version i ri, i përmirësuar, i Piwik-ut",
-        "TheUpgradeProcessMayFailExecuteCommand": "Nëse keni një bazë të dhënash Piwik të madhe, përditësimet mund të zgjasin shumë në shfletues. Në të tilla raste, mund t'i bëni përditësimet që nga rresht urdhrash: %s",
+        "TheUpgradeProcessMayFailExecuteCommand": "Nëse keni një bazë të dhënash Piwik të madhe, përditësimet mund të zgjasin shumë në shfletues. Në të tilla raste, mund t’i bëni përditësimet që nga rresht urdhrash: %s",
         "TheUpgradeProcessMayTakeAWhilePleaseBePatient": "Procesi i përditësimit të bazës së të dhënave mund të zgjasë ca, ndaj bëni durim.",
         "UnpackingTheUpdate": "Po shpaketohet përditësimi",
         "UpdateAutomatically": "Përmirësoje Vetvetiu",
-        "UpdateHasBeenCancelledExplanation": "Përditësimi Piwik Me Një Klik u anulua. Nëse nuk ndreqni dot gabimin me mesazhin e mësipërm, këshillohet ta përditësoni Piwik-un dorazi. %1$s Ju lutem, shihni %2$sdokumentimin e Përditësimeve%3$s për t'ia filluar!",
+        "UpdateHasBeenCancelledExplanation": "Përditësimi Piwik Me Një Klik u anulua. Nëse s’ndreqni dot gabimin me mesazhin e mësipërm, këshillohet ta përditësoni Piwik-un dorazi. %1$s Ju lutem, shihni %2$sdokumentimin e Përditësimeve%3$s për t’ia filluar!",
         "UpdateTitle": "Piwik › Përditësim",
         "UpdateSuccessTitle": "Piwik-u u përmirësua me sukses!",
         "UpgradeComplete": "Përmirësim i plotësuar!",
diff --git a/plugins/CoreUpdater/lang/sv.json b/plugins/CoreUpdater/lang/sv.json
index 466ff0182b64f657d0aba03f57a5c8633c5a94d3..4b2a7c5e4ed96e852951178027015b4288de968d 100644
--- a/plugins/CoreUpdater/lang/sv.json
+++ b/plugins/CoreUpdater/lang/sv.json
@@ -60,6 +60,8 @@
         "CloudHosting": "Molntjänst",
         "Updating": "Uppdateringar",
         "UpdateUsingHttpsFailed": "Nedladdning ac den senaste versionen av Piwik över HTTPS fungerade inte på grund av följande fel:",
+        "UpdateUsingHttpsFailedHelp": "Varför blev det fel? Nerladdning av den senaste versionen av Piwik (via säker HTTPS anslutning) kan misslyckas av flera anledningar, exempelvis på grund av nätverksproblem, långsam internethastighet eller fel systemkonfigurering. Notera att det även kan bero på att din server är måltavla för MITM-attack och att någon försöker ersätta uppdateringen med en skadlig version av Piwik.",
+        "UpdateUsingHttpsFailedHelpWhatToDo": "Vi rekommenderar att du laddar ner på nytt genom att använda en säker HTTPS-anslutning eftersom det förhindrar MITM-attacker.",
         "UsingHttps": "använd den säkra HTTPS-anslutningen (rekommenderas)",
         "UsingHttp": "använd den osäkra HTTP-anslutningen",
         "UpgradeComplete": "Uppgradering färdig!",
diff --git a/plugins/CoreUpdater/lang/zh-cn.json b/plugins/CoreUpdater/lang/zh-cn.json
index 4cb74ef1b8b7742c48e88e1d15919765ffa5ee04..dfc4f5b57f22045f1643eaf1a16b5e1cbc20c592 100644
--- a/plugins/CoreUpdater/lang/zh-cn.json
+++ b/plugins/CoreUpdater/lang/zh-cn.json
@@ -18,22 +18,33 @@
         "ExceptionArchiveEmpty": "空的文件。",
         "ExceptionArchiveIncompatible": "不兼容的文件: %s",
         "ExceptionArchiveIncomplete": "文件不完整: 缺少部分文件(例如 %s)。",
+        "FeedbackRequest": "随时在这里给Piwik团队分享你的想法和建议:",
         "HelpMessageContent": "请检查 %1$s Piwik FAQ %2$s ,在其中已试图解释最常见的升级过程中的错误。 %3$s 请询问您的系统管理员 - 他们可以协助您解决几乎所有有关您的服务器或 MySQL 设定的问题!",
         "HelpMessageIntroductionWhenError": "以上是核心的错误讯息。它应有助于解释原因,但如果您需要进一步的说明,请:",
         "HelpMessageIntroductionWhenWarning": "此次升级成功完成,但在过程中有发生一些问题,请仔细阅读上面的详细说明。如需更进一步的说明:",
+        "HighTrafficPiwikServerEnableMaintenance": "如果你管理一个高流量的Piwik服务器,我们建议您 %1$s暂时禁止访问者跟踪,并设置Piwik用户界面为维护模式%2$s。",
+        "IncompatbilePluginsWillBeDisabledInfo": "注意:有些插件不兼容Piwik%s。如果您升级,他们将被关闭:",
         "InstallingTheLatestVersion": "正在安装最新版本",
+        "LatestBetaRelease": "最新测试版",
+        "LatestStableRelease": "最新的稳定版本",
+        "Latest2XStableRelease": "最新的稳定 2.X",
+        "Latest2XBetaRelease": "最新的测试版 2.X",
+        "LtsSupportVersion": "长期支持版本",
         "MajorUpdateWarning1": "这是全面升级!会比平时多花些时间。",
         "MajorUpdateWarning2": "下面的建议对大型网站很重要。",
         "NoteForLargePiwikInstances": "大型 Piwik 网站重要注意事项",
         "NoteItIsExpectedThatQueriesFail": "注意: 如果您手动执行这些查询,预计当中会有一些错误。在此情況下,只需忽略错误,然后执行以下列表。",
         "NotificationClickToUpdatePlugins": "点击这里更新你的插件:",
         "NotificationClickToUpdateThemes": "点击这里现在就更新你的主题",
+        "NotificationSubjectAvailableCoreUpdate": "有一个全新的版本Piwik %s",
         "NotificationSubjectAvailablePluginUpdate": "Piwik插件有可用的更新",
         "PiwikHasBeenSuccessfullyUpgraded": "Piwik 升级成功!",
         "PiwikUpdatedSuccessfully": "Piwik 升级成功!",
         "PiwikWillBeUpgradedFromVersionXToVersionY": "Piwik 数据库将从版本 %1$s 升级到新版本 %2$s。",
         "ReadyToGo": "准备好了吗?",
         "TheFollowingPluginsWillBeUpgradedX": "以下插件将被升级: %s!",
+        "TheFollowingDimensionsWillBeUpgradedX": "将更新以下内容: %s。",
+        "ThereIsNewPluginVersionAvailableForUpdate": "您使用的一些插件已经在市场里有了更新:",
         "ThereIsNewVersionAvailableForUpdate": "已经有新的Piwik版本可以升级",
         "TheUpgradeProcessMayFailExecuteCommand": "如果您有一个大型的 Piwik 数据库,通过浏览器更新可能需要花费很长时间。在此情況下,您可以通过下面的命令行来更新: %s",
         "TheUpgradeProcessMayTakeAWhilePleaseBePatient": "升级过程可能需要一段时间,请耐心等待!",
@@ -42,6 +53,18 @@
         "UpdateHasBeenCancelledExplanation": "Piwik 一键升级已被取消。如果您无法修正以上的错误信息,建议您手动升级 Piwik。%1$s 请查看 %2$s升级文件%3$s 来开始吧!",
         "UpdateTitle": "升级",
         "UpdateSuccessTitle": "Piwik 升级成功!",
+        "UpdateErrorTitle": "更新错误",
+        "ThankYouUpdatePiwik": "感谢您使用Piwik并保持及时更新!",
+        "PostUpdateMessage": "Piwik将永远是免费下载和使用,但它需要你们继续支持增长和提高。",
+        "PostUpdateSupport": "如果你需要使用Piwik帮助,您可以从它的创造者那里获取支持:",
+        "EnterpriseSolutions": "企业解决方案",
+        "CloudHosting": "云主机",
+        "Updating": "更新中",
+        "UpdateUsingHttpsFailed": "下载最新版本的Piwik通过安全的HTTPS连接没有成功,因为以下错误:",
+        "UpdateUsingHttpsFailedHelp": "为什么会失败?下载最新版本的Piwik(超过安全的HTTPS连接)可能会失败,因为各种原因,例如,因为网络故障,网络速度慢或错误的系统配置。请注意,这也可能意味着你的服务器是MITM攻击的目标,有人正在尝试将Piwik的更新文件替换。",
+        "UpdateUsingHttpsFailedHelpWhatToDo": "建议重试使用安全的HTTPS连接下载,因为它能防止MITM攻击。",
+        "UsingHttps": "使用安全的HTTPS连接(推荐)",
+        "UsingHttp": "使用非安全HTTP连接",
         "UpgradeComplete": "升级完成!",
         "UpgradePiwik": "升级 Piwik",
         "VerifyingUnpackedFiles": "正在验证解压后的文件",
@@ -50,6 +73,7 @@
         "YouCanUpgradeAutomaticallyOrDownloadPackage": "您可以自动升级到版本%s,或者下载安装包手动安装:",
         "YouCouldManuallyExecuteSqlQueries": "如果您无法通过命令行来更新且 Piwik 升级失败(数据库超时、浏览器超时或任何问题),您可以手动执行 SQL 语句来更新 Piwik。",
         "YouMustDownloadPackageOrFixPermissions": "Piwik 无法覆盖您之前的安裝。您可以直接修改目录\/文件权限,或是下载压缩包然后手动安裝 %s 版本:",
-        "YourDatabaseIsOutOfDate": "您的 Piwik 数据库版本太旧了,必须先升级才能继续!"
+        "YourDatabaseIsOutOfDate": "您的 Piwik 数据库版本太旧了,必须先升级才能继续!",
+        "ViewVersionChangelog": "查看该版本的更新日志:"
     }
 }
\ No newline at end of file
diff --git a/plugins/CustomAlerts b/plugins/CustomAlerts
index 3f71ea0d6880f4a1cbdc531342760f72136e26d2..e3b349bb7d75269962b31695d99f1e8ec7e44b39 160000
--- a/plugins/CustomAlerts
+++ b/plugins/CustomAlerts
@@ -1 +1 @@
-Subproject commit 3f71ea0d6880f4a1cbdc531342760f72136e26d2
+Subproject commit e3b349bb7d75269962b31695d99f1e8ec7e44b39
diff --git a/plugins/CustomDimensions b/plugins/CustomDimensions
index a9c2872b3e268ab3cbd4f6af0ae4547e466bafed..aab8e5a7246135a1d6b3ca00e665aea4adf8035b 160000
--- a/plugins/CustomDimensions
+++ b/plugins/CustomDimensions
@@ -1 +1 @@
-Subproject commit a9c2872b3e268ab3cbd4f6af0ae4547e466bafed
+Subproject commit aab8e5a7246135a1d6b3ca00e665aea4adf8035b
diff --git a/plugins/CustomVariables/lang/de.json b/plugins/CustomVariables/lang/de.json
index 98f2bef3af4ca22c7b7e1dec639db505c5e5c925..7e152f034632c01041ad217f2b83b79037265865 100644
--- a/plugins/CustomVariables/lang/de.json
+++ b/plugins/CustomVariables/lang/de.json
@@ -17,6 +17,8 @@
         "CreatingCustomVariableTakesTime": "Neue benutzerdefinierte Variablen zu erstellen kann viel Zeit beanspruchen, abhängig von der Grösse Ihrer Datenbank. Deshalb ist dieser Vorgang nur über Kommandozeilen verfügbar.",
         "CurrentAvailableCustomVariables": "Aktuell können Sie bis zu %s benutzerdefinierte Variablen pro Seite einsetzen.",
         "ToCreateCustomVarExecute": "Um eine neue benutzerdefinierte Variable zu erstellen, führen Sie in Ihrer Piwik Installation folgende Befehle aus:",
-        "SlotsReportIsGeneratedOverTime": "Daten für diesen Bericht werden periodisch veröffentlicht. Es mag ein oder zwei Tage dauern, bis Daten sichtbar sind und einige Wochen bis der Bericht vollständig aussagekräftig ist."
+        "SlotsReportIsGeneratedOverTime": "Daten für diesen Bericht werden periodisch veröffentlicht. Es mag ein oder zwei Tage dauern, bis Daten sichtbar sind und einige Wochen bis der Bericht vollständig aussagekräftig ist.",
+        "MetricsAreOnlyAvailableForVisitScope": "Hinweis: Die Metriken %1$s sind nur für benutzerdefinierte Variablen mit Geltungsbereich %2$s verfügbar.",
+        "MetricsNotAvailableForPageScope": "Für benutzerdefinierte Variablen mit Geltungsbereich %1$s ist der Wert für diese Metriken %2$s."
     }
 }
\ No newline at end of file
diff --git a/plugins/CustomVariables/lang/sq.json b/plugins/CustomVariables/lang/sq.json
index fb18850ba0fb55b4a88c2818524e87fa9f16976f..ba2540b520252ef37c2139b771ba92611c2f1389 100644
--- a/plugins/CustomVariables/lang/sq.json
+++ b/plugins/CustomVariables/lang/sq.json
@@ -6,6 +6,8 @@
         "CustomVariablesReportDocumentation": "Ky raport përmban të dhëna rreth Ndryshoreve tuaja të Personalizuara. Klikoni mbi një emër ndryshoreje që të shihni shpërndarjen e vlerave. %1$s Për më tepër të dhëna rreth Ndryshoresh të Personalizuara në përgjithësi, lexoni %2$sdokumentimin e Ndryshoreve të Personalizuara te piwik.org%3$s",
         "PluginDescription": "Ndryshoret e Personalizueshme janë çifte (emër, vlerë) që mund t’ua vini në përshoqërim vizitorëve tuaj apo çfarëdo veprimi prej tyre, duke përdorur API-n për Javascript-in. Piwik-u mandej do të raportojë sa vizita, faqe, shndërrime ka për secilin prej këtyre emrave dhe vlerave të personalizuara. Ndryshoret e Personalizueshme në hollësi për çdo përdorues dhe veprim i gjeni te Regjistri i Vizitorëve.<br \/>E domosdoshme për përdorim të veçorisë <a href=\"http:\/\/piwik.org\/docs\/ecommerce-analytics\/\">Analiza E-tregti<\/a>!",
         "ScopePage": "faqe me qëllim",
-        "ScopeVisit": "vizitë me qëllim"
+        "ScopeVisit": "vizitë me qëllim",
+        "Index": "Tregues",
+        "Usages": "Përdorime"
     }
 }
\ No newline at end of file
diff --git a/plugins/CustomVariables/lang/sv.json b/plugins/CustomVariables/lang/sv.json
index 11f438e096d05577798d45fc3dd89b0577669ec0..d037379c7f286b323d3c387904c7d8eb5804d999 100644
--- a/plugins/CustomVariables/lang/sv.json
+++ b/plugins/CustomVariables/lang/sv.json
@@ -6,8 +6,11 @@
         "CustomVariablesReportDocumentation": "Denna rapport innehåller information om din anpassade variabler. Klicka på ett variabelnamn för att se fördelningen av värdena. %1$s För mer information om anpassade variabler i allmänhet, läs %2$sdokumentationen om anpassade variabler på piwik.org%3$s",
         "ScopePage": "omfattning sida",
         "ScopeVisit": "omfattning besök",
+        "ScopeX": "Omfattning %s",
         "Index": "Index",
         "Usages": "Användningar",
-        "Unused": "Oanvänd"
+        "Unused": "Oanvänd",
+        "CreateNewSlot": "Öka antalet tillgängliga anpassade variabelspår",
+        "CurrentAvailableCustomVariables": "För tillfället kan du använda upp till %s anpassade variabler per webbsida."
     }
 }
\ No newline at end of file
diff --git a/plugins/CustomVariables/lang/zh-cn.json b/plugins/CustomVariables/lang/zh-cn.json
index a98cc725a702bb6235fc43e058fe1271db23694c..ac4291ebd1bb43f4f9e8b14f12bdb5230dc949ab 100644
--- a/plugins/CustomVariables/lang/zh-cn.json
+++ b/plugins/CustomVariables/lang/zh-cn.json
@@ -4,7 +4,20 @@
         "ColumnCustomVariableValue": "自定义变量值",
         "CustomVariables": "自定义变量",
         "CustomVariablesReportDocumentation": "本报表包含您的自定义变量的资料,点击变量名查看数据。%1$s 关于自定义变量的详情,请阅读 %2$spiwik.org 上的自定义变量文档%3$s",
+        "PluginDescription": "您可以使用JavaScript API对游客或他们的任何行动分配对应的自定义变量是(名字,值)。这样Piwik将报告有多少人访问,页面转换为每个自定义名称和值。您可以在访问者日志里查看每个用户和行动的详细自定义变量。<br\/>需要使用<a href=\"http:\/\/piwik.org\/docs\/ecommerce-analytics\/\">电子商务分析<\/a>功能!",
         "ScopePage": "访问页面",
-        "ScopeVisit": "访问范围"
+        "ScopeVisit": "访问范围",
+        "ScopeX": "范围 %s",
+        "Index": "主页",
+        "Usages": "用途",
+        "Unused": "未使用",
+        "CreateNewSlot": "增加可用自定义变量的数量",
+        "UsageDetails": "本站建立开始共计有%1$s访问记录和%2$s 笔互动记录。",
+        "CreatingCustomVariableTakesTime": "创建新的自定义变量根据你的数据库的大小可能需要很长的时间。因此,这是唯一可能经由其需要在命令行上执行的命令来做到这一点。",
+        "CurrentAvailableCustomVariables": "目前你可以在每个站点里使用高达 %s条自定义变量。",
+        "ToCreateCustomVarExecute": "要创建新的自定义变量,您可以在您的Piwik安装中执行以下命令:",
+        "SlotsReportIsGeneratedOverTime": "本报告的数据将随着时间的推移被填充。这可能需要一两天看到任何数据,并在几个星期之前,该报告是完全准确的。",
+        "MetricsAreOnlyAvailableForVisitScope": "注意:自定义变量%1$s只能用于 %2$s范围。",
+        "MetricsNotAvailableForPageScope": "自定义变量%1$s的列值范围为%2$s"
     }
 }
\ No newline at end of file
diff --git a/plugins/DBStats/lang/sq.json b/plugins/DBStats/lang/sq.json
index ea9f6824b13285936a9e1e3ea1d84d49528e3d5f..83d23ab402bc11ca6e4ba64b3b69e6d2ff48d6ec 100644
--- a/plugins/DBStats/lang/sq.json
+++ b/plugins/DBStats/lang/sq.json
@@ -2,9 +2,16 @@
     "DBStats": {
         "DatabaseUsage": "Përdorim baze të dhënash",
         "DataSize": "Madhësi të dhënash",
+        "DBSize": "Madhësia e DB-së",
+        "EstimatedSize": "Madhësi e vlerësuar",
         "IndexSize": "Madhësi treguesi",
-        "LearnMore": "Për të mësuar më tepër rreth se si i përpunon të dhënat Piwik-u dhe se si ta bëni Piwik-un të punojë mirë me site-e web me trafik mesatar ose të madh, kontrolloni dokumentimin %s.",
+        "LearnMore": "Për të mësuar më tepër rreth se si i përpunon të dhënat Piwik-u dhe se si ta bëni Piwik-un të punojë mirë me sajte me trafik mesatar ose të madh, kontrolloni dokumentimin %s.",
         "MainDescription": "Piwik-u po i depoziton krejt të dhënat tuaja për analizë web te baza e të dhënave MySQL. Tani për tani, tabelat e Piwik-ut po përdorin %s.",
+        "MetricDataByYear": "Tabela Matjesh Sipas Vitesh",
+        "MetricTables": "Tabela Matjesh",
+        "OtherTables": "Tabela të Tjera",
+        "ReportDataByYear": "Tabela Raportesh Sipas Vitit",
+        "ReportTables": "Tabela Raportesh",
         "RowCount": "Numërim rreshtash",
         "Table": "Tabelë",
         "TotalSize": "Madhësi gjithsej"
diff --git a/plugins/DBStats/lang/tr.json b/plugins/DBStats/lang/tr.json
index 14cfbb29f254c0e5c2356a3f621dddae2676944a..0f90459844a770d6f2f618e37b90c08008b3233e 100644
--- a/plugins/DBStats/lang/tr.json
+++ b/plugins/DBStats/lang/tr.json
@@ -10,6 +10,7 @@
         "MetricDataByYear": "Yıla Göre Metrik Tablosu",
         "MetricTables": "Metrik Tabloları",
         "OtherTables": "DiÄŸer Tablolar",
+        "PluginDescription": "Detaylı MySQL veritabanı kullanım raporu sağlar. Super Kullanıcı için Teşhis bölümünün altından ulaşılabilir.",
         "ReportDataByYear": "Yıla Göre Rapor Tabloları",
         "ReportTables": "Rapor Tabloları",
         "RowCount": "Satır sayısı",
diff --git a/plugins/Dashboard/javascripts/dashboard.js b/plugins/Dashboard/javascripts/dashboard.js
index 6286f747917d0a6226650c127ee7d379ca25636b..196196ea5b03bbbf1cc132cc1db58661f9f9d501 100644
--- a/plugins/Dashboard/javascripts/dashboard.js
+++ b/plugins/Dashboard/javascripts/dashboard.js
@@ -79,7 +79,7 @@ function showChangeDashboardLayoutDialog() {
 function showEmptyDashboardNotification() {
     piwikHelper.modalConfirm(makeSelectorLastId('dashboardEmptyNotification'), {
         resetDashboard: function () { $('#dashboardWidgetsArea').dashboard('resetLayout'); },
-        addWidget: function () { $('.dashboardSettings').trigger('click'); }
+        addWidget: function () { $('.dashboardSettings > a').trigger('click'); }
     });
 }
 
diff --git a/plugins/Dashboard/javascripts/dashboardObject.js b/plugins/Dashboard/javascripts/dashboardObject.js
index 457fc67f7a860bfeec5ba1f51d447806cf35df3f..b1da76c0994de39b93286f6aa6065b2c46a8a559 100644
--- a/plugins/Dashboard/javascripts/dashboardObject.js
+++ b/plugins/Dashboard/javascripts/dashboardObject.js
@@ -502,7 +502,7 @@
 
         // widgetized
         var success = function (dashboards) {
-            var dashboardMenuList = $('#Dashboard').find('> ul');
+            var dashboardMenuList = $('#Dashboard_embeddedIndex_1').closest('ul');
             var dashboardMenuListItems = dashboardMenuList.find('>li');
 
             dashboardMenuListItems.filter(function () {
@@ -518,9 +518,9 @@
             ) {
                 var items = [];
                 for (var i = 0; i < dashboards.length; i++) {
-                    var $link = $('<a/>').attr('data-idDashboard', dashboards[i].iddashboard).text(dashboards[i].name).addClass('item title');
-                    var $li = $('<li/>').attr('id', 'Dashboard_embeddedIndex_' + dashboards[i].iddashboard)
-                        .addClass('dashboardMenuItem').append($link);
+                    var $link = $('<a/>').attr('data-iddashboard', dashboards[i].iddashboard).text(dashboards[i].name).addClass('item');
+                    var $li = $('<li/>').attr('id', 'Dashboard_embeddedIndex_' + dashboards[i].iddashboard).addClass('dashboardMenuItem').attr('role', 'menuitem').append($link);
+
                     items.push($li);
 
                     if (dashboards[i].iddashboard == dashboardId) {
@@ -531,16 +531,17 @@
                 dashboardMenuList.prepend(items);
             }
 
-            dashboardMenuList.find('a[data-idDashboard]').click(function (e) {
+            dashboardMenuList.find('a[data-iddashboard]').click(function (e) {
                 e.preventDefault();
 
-                var idDashboard = $(this).attr('data-idDashboard');
+                var idDashboard = $(this).attr('data-iddashboard');
 
                 $('#Dashboard ul li').removeClass('active');
 
                 methods.loadDashboard.apply(_self, [idDashboard]);
 
                 $(this).closest('li').addClass('active');
+
             });
         };
 
diff --git a/plugins/Dashboard/lang/sq.json b/plugins/Dashboard/lang/sq.json
index 39d39bb28bcbab493e52bdf98e7f3a12d2f90ca6..2c17ddc435312e765eaf50bb6003314a48f17d07 100644
--- a/plugins/Dashboard/lang/sq.json
+++ b/plugins/Dashboard/lang/sq.json
@@ -3,15 +3,24 @@
         "AddAWidget": "Shtoni një widget",
         "AddPreviewedWidget": "Klikojeni që të shtohet widget-i te pulti",
         "ChangeDashboardLayout": "Ndryshoni skemën e pultit",
+        "CopyDashboardToUser": "Kopjoje pultin te përdoruesi",
+        "CreateNewDashboard": "Krijoni pult të ri",
         "Dashboard": "Pulti",
+        "DashboardCopied": "Pulti i tanishëm u kopjua me sukses te përdoruesi i përzgjedhur.",
+        "DashboardName": "Emër pulti:",
+        "DashboardOf": "Pulti i %s",
         "DeleteWidgetConfirm": "Jeni i sigurt se doni të fshihet ky \"widget\" prej pulti?",
         "LoadingWidget": "Widget-i po ngarkohet, ju lutemi, pritni...",
+        "ManageDashboard": "Administroni pultin",
         "Maximise": "Maksimizoje",
         "Minimise": "Minimizoje",
+        "RemoveDefaultDashboardNotPossible": "Pulti parazgjedhje s’mund të hiqet",
+        "RenameDashboard": "Riemërtoni pultin",
         "ResetDashboard": "Riktheje pultin te parazgjedhjet",
         "ResetDashboardConfirm": "Doni vërtet ta riktheni skemën e pultit tuaj te përzgjedhja parazgjedhje për Widget-et?",
         "SelectDashboardLayout": "Ju lutemi, përzgjidhni skemën e re për pultin tuaj",
         "SelectWidget": "Përzgjidhni widget-in që doni të shtohet te pulti",
+        "SetAsDefaultWidgets": "Caktojeni si përzgjedhje widget-esh parazgjedhje",
         "WidgetNotFound": "Nuk u gjet \"widget\"",
         "WidgetPreview": "Paraparje widget-i"
     }
diff --git a/plugins/Dashboard/lang/sv.json b/plugins/Dashboard/lang/sv.json
index bf14760780ce7bafbfdc40bce1d246b6394e26b6..4f2b0f7772c375e26004ca76299ddd96fcc0c1e3 100644
--- a/plugins/Dashboard/lang/sv.json
+++ b/plugins/Dashboard/lang/sv.json
@@ -21,6 +21,7 @@
         "PluginDescription": "Ditt dashboard för webbanalys. Anpassa ditt dashboard genom att lägga till nya widgets, flytta runt dem och ändra kolumnindelning. Varje användare kan anpassa sin egen dashboard.",
         "RemoveDashboard": "Ta bort instrumentpanel",
         "RemoveDashboardConfirm": "Vill du verkligen radera instrumentpanelen \"%s\"?",
+        "RemoveDefaultDashboardNotPossible": "Standardinstrumentpanelen kan inte tas bort",
         "RenameDashboard": "Byt namn på instrumentpanelen",
         "ResetDashboard": "Återställ instrumentpanel",
         "ResetDashboardConfirm": "Vill du verkligen återställa instrumentpanelens layout för Widgets?",
diff --git a/plugins/Dashboard/lang/tr.json b/plugins/Dashboard/lang/tr.json
index 645b2c2f13ec25c2d4ad3ef0d333cbcd621a0008..b69bbc0900cf08cc90e4f145e22ed1de208c4d8c 100644
--- a/plugins/Dashboard/lang/tr.json
+++ b/plugins/Dashboard/lang/tr.json
@@ -7,6 +7,7 @@
         "CreateNewDashboard": "Yeni panel ekle",
         "Dashboard": "Pano",
         "DashboardCopied": "Panel başarılı şekilde seçilen kullanıcı için kopyalandı",
+        "DashboardEmptyNotification": "Kontrol Panelin hiçbir widget içermiyor. Widget ekleyerek veya kontrol panelini resetleyerek varsayılan widget seçimi ile başlayabilirsin.",
         "DashboardName": "Panel adı:",
         "DashboardOf": "Kontrol paneli %s",
         "DefaultDashboard": "Varsayılan panel - Varsayılan widget seçimleri ve sütunları kullanın",
@@ -17,6 +18,7 @@
         "Maximise": "Maksimize",
         "Minimise": "Küçült",
         "NotUndo": "Bu eylemi geri alamazsınız.",
+        "PluginDescription": "Web Analitik ve Gösterge Tablon. Yeni widget ekleyerek, onları sürükle bırak yaparak ve gösterge paneli sütun düzgisini değiştirerek gösterge panelini özelleştirebilirsin. Her kullanıcı kendi özelleşmiş gösterge panelini yönetebilir.",
         "RemoveDashboard": "Paneli kaldır",
         "RemoveDashboardConfirm": "\"%s\" panelini kaldırmak istediğinize emin misiniz?",
         "RemoveDefaultDashboardNotPossible": "Varsayılan pano silinemez",
@@ -25,6 +27,10 @@
         "ResetDashboardConfirm": "Kontrol paneli şablonunuzu varsayılan widget seçimlerine sıfırlamak istediğinizden emin misiniz?",
         "SelectDashboardLayout": "Lütfen yeni panel düzenini seçiniz.",
         "SelectWidget": "Panoya eklemek için bileşen seçiniz.",
+        "SetAsDefaultWidgets": "Varsayılan widget seçimi olarak ata",
+        "SetAsDefaultWidgetsConfirm": "Mevcut widget seçimini ve kontrol paneli düzenini varsayılan kontrol paneli teması olarak atamak istediğinizden emin misiniz?",
+        "SetAsDefaultWidgetsConfirmHelp": "Bu widgetlerin seçimi ve gösterge panelinin sütun dizgisi herhangi bir kullanıcı yeni gösterge paneli yarattığında veya \"%s\" özellii kullanıldığında kullanılabilir.",
+        "TopLinkTooltip": "%s için Web Analatik raporunu görüntüle.",
         "WidgetNotFound": "Bileşen bulunamadı",
         "WidgetPreview": "Bileşen görünümü"
     }
diff --git a/plugins/Dashboard/lang/vi.json b/plugins/Dashboard/lang/vi.json
index afa5cc2dbfe863ddf196236505b2856ef0b1c9cb..9f56c6aa38e0a64c9ec5cf2eb25e4e848c9a2a31 100644
--- a/plugins/Dashboard/lang/vi.json
+++ b/plugins/Dashboard/lang/vi.json
@@ -21,6 +21,7 @@
         "PluginDescription": "Bảng điều khiển của bạn. Có thể tùy biến bằng cách thêm widget, kéo thả hoặc thêm các trường dữ liệu. Mỗi người dùng có thể tùy biến bảng điều khiến cho riêng mình.",
         "RemoveDashboard": "Loại bỏ bảng điều khiển",
         "RemoveDashboardConfirm": "Bạn có chắc chắn muốn loại bỏ bảng điều khiển \"%s\"?",
+        "RemoveDefaultDashboardNotPossible": "Các bảng điều khiển mặc định không thể bị gỡ bỏ",
         "RenameDashboard": "Đổi tên bảng điều khiển",
         "ResetDashboard": "Bảng điều khiển mặc định",
         "ResetDashboardConfirm": "Bạn có chắc chắn muốn thiết lập lại bố trí bảng điều khiển của bạn cho thiết lập các Widget mặc định?",
diff --git a/plugins/Dashboard/lang/zh-cn.json b/plugins/Dashboard/lang/zh-cn.json
index 6d9ff142de03a13f90a74110e102deca4577a6d9..52952d5ec31b081828ce179c5d2dd59cea434c1f 100644
--- a/plugins/Dashboard/lang/zh-cn.json
+++ b/plugins/Dashboard/lang/zh-cn.json
@@ -21,6 +21,7 @@
         "PluginDescription": "您的 Web 分析面板。如果需要自定义,您可以添加新的小工具,拖动这些小工具,和更改面板的列数和布局。每个用户都可以独立定制属于他自己的面板。",
         "RemoveDashboard": "删除面板",
         "RemoveDashboardConfirm": "确认要删除面板\"%s\"吗?",
+        "RemoveDefaultDashboardNotPossible": "默认的仪表盘无法删除",
         "RenameDashboard": "重命名面板",
         "ResetDashboard": "重置面板",
         "ResetDashboardConfirm": "确认重置面板布局并且使用默认的小工具?",
diff --git a/plugins/Dashboard/templates/index.twig b/plugins/Dashboard/templates/index.twig
index ddaac2428cb2c5f3a13056665025cb06433043b6..17f3a5363dda1f461bcbdd122876453605299416 100644
--- a/plugins/Dashboard/templates/index.twig
+++ b/plugins/Dashboard/templates/index.twig
@@ -6,9 +6,9 @@
     <div id="Dashboard" class="piwikTopControl borderedControl piwikSelector">
         <ul>
             {% for dashboard in dashboards %}
-                <li class="dashboardMenuItem" id="Dashboard_embeddedIndex_{{ dashboard.iddashboard }}">
+                <li id="Dashboard_embeddedIndex_{{ dashboard.iddashboard }}">
                     <a href="javascript:$('#dashboardWidgetsArea').dashboard('loadDashboard', {{ dashboard.iddashboard }});"
-                       class="title">{{ dashboard.name|escape }}</a>
+                       class="item">{{ dashboard.name|escape }}</a>
                 </li>
             {% endfor %}
         </ul>
diff --git a/plugins/DevicePlugins/lang/sq.json b/plugins/DevicePlugins/lang/sq.json
index 7550b4b423d1aad6d52b59f232ff3779a96dcee7..61aa87f22cba7ec6230e84eb19da684446f35f28 100644
--- a/plugins/DevicePlugins/lang/sq.json
+++ b/plugins/DevicePlugins/lang/sq.json
@@ -1,5 +1,7 @@
 {
     "DevicePlugins": {
+        "BrowserWithNoPluginsEnabled": "%1$s pa shtojca të aktivizuara",
+        "BrowserWithPluginsEnabled": "%1$s me shtojca %2$s të aktivizuara",
         "WidgetPlugins": "Listë e Shtojcave",
         "WidgetPluginsDocumentation": "Ky raport tregon se cilat shtojca shfletuesi kanë të aktivizuara vizitorët tuaj. Ky informacion mund të jetë i vlefshëm për zgjedhjen e mënyrës më të përshtatshme për ofrimin e lëndës suaj."
     }
diff --git a/plugins/DevicesDetection/lang/sq.json b/plugins/DevicesDetection/lang/sq.json
index 28dd7fe67c653ff0f304b2283b5f06869ffce46b..df2cd7d373baebe9f25b1ae9125271ff1113740e 100644
--- a/plugins/DevicesDetection/lang/sq.json
+++ b/plugins/DevicesDetection/lang/sq.json
@@ -5,6 +5,9 @@
         "BrowserFamily": "Familje shfletuesi",
         "Browsers": "Shfletuesa",
         "BrowserVersion": "Version shfletuesi",
+        "BrowserVersions": "Versione shfletuesi",
+        "Camera": "Kamerë",
+        "Software": "Software",
         "ColumnBrowser": "Shfletues",
         "ColumnOperatingSystem": "Sistem operativ",
         "dataTableLabelTypes": "Lloj",
diff --git a/plugins/DevicesDetection/lang/tr.json b/plugins/DevicesDetection/lang/tr.json
index affb773e9020f806001b1dc0629bf55fb689b5c1..0328ee866bea8179ef7f148141325bf2f0b98cd2 100644
--- a/plugins/DevicesDetection/lang/tr.json
+++ b/plugins/DevicesDetection/lang/tr.json
@@ -1,6 +1,7 @@
 {
     "DevicesDetection": {
         "BrowserEngine": "Tarayıcı",
+        "BrowserEngines": "Tarayıcı Motorları",
         "BrowserFamily": "Tarayıcı ailesi",
         "Browsers": "Tarayıcılar",
         "BrowserVersion": "Tarayıcı sürümü",
@@ -22,16 +23,21 @@
         "DeviceModel": "Cihaz modeli",
         "DevicesDetection": "Ziyaretçi Cihazları",
         "DeviceType": "Cihaz tipi",
+        "FeaturePhone": "Özellikli Telefon",
         "OperatingSystemFamilies": "Ä°ÅŸletim Sistemi aileleri",
         "OperatingSystemFamily": "Ä°ÅŸletim Sistemi Ailesi",
         "OperatingSystems": "Ä°ÅŸletim sistemleri",
         "OperatingSystemVersions": "İşletim Sistemi versiyonları",
+        "PluginDescription": "Marka (Üretici), Model (cihaz versiyonu) , cihaz tipi (tv, konsol, akıllı telefon, masaüstü gibi) özellikleri içeren kulanıcı cihazları ile ilgili ek bilgi sunar.",
         "SmartDisplay": "Akıllı görüntüleme",
         "Smartphone": "Akıllı Telefon",
+        "PortableMediaPlayer": "Taşınabilir medya oynatıcısı",
         "Devices": "Cihazlar",
         "Tablet": "Tablet",
+        "Phablet": "Tablet",
         "TV": "Tv",
         "UserAgent": "User-Agent",
-        "WidgetBrowsers": "Ziyaretçi tarayıcılari"
+        "WidgetBrowsers": "Ziyaretçi tarayıcılari",
+        "WidgetBrowsersDocumentation": "Bu rapor ziyaretçilerinizin ne tür tarayıcılar kullandığı bilgisini içerir. Her tarayıcı versiyonu ayrı olarak listelenmiştir."
     }
 }
\ No newline at end of file
diff --git a/plugins/Diagnostics/ConfigReader.php b/plugins/Diagnostics/ConfigReader.php
index 22f95fc6eb5c75709b969be47c5c659c0a44a755..7d0c90938d78dcc2860d388180dbcff8cab766c2 100644
--- a/plugins/Diagnostics/ConfigReader.php
+++ b/plugins/Diagnostics/ConfigReader.php
@@ -116,7 +116,7 @@ class ConfigReader
     {
         $key = strtolower($key);
         $passwordFields = array(
-            'password', 'secret', 'apikey', 'privatekey', 'admin_pass'
+            'password', 'secret', 'apikey', 'privatekey', 'admin_pass', 'md5', 'sha1'
         );
         foreach ($passwordFields as $value) {
             if (strpos($key, $value) !== false) {
diff --git a/plugins/Diagnostics/lang/it.json b/plugins/Diagnostics/lang/it.json
index 72a21afc43b87db67ee51474707cfa327bdf7055..0b3feb55e113822bd373b06876d15b8634612ecd 100644
--- a/plugins/Diagnostics/lang/it.json
+++ b/plugins/Diagnostics/lang/it.json
@@ -1,6 +1,7 @@
 {
     "Diagnostics": {
         "ConfigFileTitle": "File di configurazione",
+        "ConfigFileIntroduction": "Qui puoi vedere la configurazione di Piwik. Se Piwik viene eseguito in un ambiente a carico bilanciato, la pagina può apparire diversa a seconda del server da cui essa viene caricata. Righe con uno sfondo diverso hanno valori di configurazione diversi specificati per esempio nel file %1$s.",
         "HideUnchanged": "Se vuoi vedere soltanto i valori cambiati, puoi %1$snascondere tutti quelli che non sono cambiati%2$s.",
         "Sections": "Sezioni"
     }
diff --git a/plugins/Diagnostics/lang/ro.json b/plugins/Diagnostics/lang/ro.json
new file mode 100644
index 0000000000000000000000000000000000000000..a33b1bc0cb3162bdcba2919e9f309fe2d1089d7f
--- /dev/null
+++ b/plugins/Diagnostics/lang/ro.json
@@ -0,0 +1,8 @@
+{
+    "Diagnostics": {
+        "ConfigFileTitle": "Fişier configurări",
+        "ConfigFileIntroduction": "Aici poţi vedea configurările Piwik. Dacă rulezi Piwik într-un mediu cu load-balancing pagina poate fi diferită în funcţie de serverul de pe care se încarcă. Liniile cu o culoare de fundal diferită valorile de configurare modificate specificate, de exemplu în fişierul %1$s",
+        "HideUnchanged": "Dacă vrei să vezi doar valorile modificate poţi ascunde %1$s toate valorile neschimbate %2$s.",
+        "Sections": "Secţiuni"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Diagnostics/lang/sq.json b/plugins/Diagnostics/lang/sq.json
new file mode 100644
index 0000000000000000000000000000000000000000..1e0cf25ff0dfb0c2e521adf293c37235fbbf594b
--- /dev/null
+++ b/plugins/Diagnostics/lang/sq.json
@@ -0,0 +1,6 @@
+{
+    "Diagnostics": {
+        "ConfigFileTitle": "Kartelë formësimesh",
+        "Sections": "Ndarje"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Ecommerce/lang/sq.json b/plugins/Ecommerce/lang/sq.json
new file mode 100644
index 0000000000000000000000000000000000000000..005f58ccb96d77c5bea09040dfb8cf8e101ec36f
--- /dev/null
+++ b/plugins/Ecommerce/lang/sq.json
@@ -0,0 +1,6 @@
+{
+    "Ecommerce": {
+        "Sales": "Shitje",
+        "SalesAdjective": "Shitje %s"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Ecommerce/lang/vi.json b/plugins/Ecommerce/lang/vi.json
new file mode 100644
index 0000000000000000000000000000000000000000..7d87dfe1fc3e47b7b1c20b24711e50487d33fbc4
--- /dev/null
+++ b/plugins/Ecommerce/lang/vi.json
@@ -0,0 +1,5 @@
+{
+    "Ecommerce": {
+        "PluginDescription": "Thương mại điện tử cho phép bạn theo dõi khi người dùng thêm sản phẩm vào giỏ, và khi họ chuyển đổi để bán hàng thương mại điện tử. Nó cũng theo dõi các sản phẩm và xem các loại sản phẩm và các đơn hàng bị bỏ."
+    }
+}
\ No newline at end of file
diff --git a/plugins/Events/lang/sq.json b/plugins/Events/lang/sq.json
new file mode 100644
index 0000000000000000000000000000000000000000..e97f2cb97d1e3a0b4dc1d3d35b33b83dfca2468a
--- /dev/null
+++ b/plugins/Events/lang/sq.json
@@ -0,0 +1,11 @@
+{
+    "Events": {
+        "Event": "Veprimtari",
+        "EventCategories": "Kategori Veprimtarish",
+        "EventCategory": "Kategori Veprimtarish",
+        "EventName": "Emër Veprimtarie",
+        "EventNames": "Emra Veprimtarish",
+        "Events": "Veprimtari",
+        "EventsWithValue": "Veprimtari me një vlerë"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Events/lang/tr.json b/plugins/Events/lang/tr.json
index 70671336b7a65673ef7bd5cb0ebeadf82e9bc689..e5656f448a3edd4fa88cac1d94bfe2abddaaea6e 100644
--- a/plugins/Events/lang/tr.json
+++ b/plugins/Events/lang/tr.json
@@ -1,5 +1,6 @@
 {
     "Events": {
+        "PluginDescription": "Olayları izle ve ziyaretçilerin aktivitesi üzerine raporlar al.",
         "AvgEventValue": "Ortalama etkinlik deÄŸeri: %s",
         "AvgValue": "Ortalama deÄŸer",
         "AvgValueDocumentation": "Bu etkinlik için ortalama tüm değerler",
@@ -14,6 +15,7 @@
         "EventsWithValue": "DeÄŸeri olan etkinlikler",
         "EventsWithValueDocumentation": "Etkinlik değeri ayarlanmış olan etkinlik sayısı",
         "EventValue": "Etkinlik DeÄŸeri",
+        "EventValueTooltip": "Toplam olay değeri %1$s ile %2$s arasında, en az %3$s ve en fazla %4$s dür",
         "MaxValue": "Maksimum deÄŸer",
         "MaxValueDocumentation": "Bu etkinlik için maksimum değer",
         "MinValue": "Minimum deÄŸer",
diff --git a/plugins/Events/lang/vi.json b/plugins/Events/lang/vi.json
index 6bf5ed2407535dd5e6658d6598c834ba49b57922..e06d11684eefe3a02490fe4432bd9bbef2c76eb0 100644
--- a/plugins/Events/lang/vi.json
+++ b/plugins/Events/lang/vi.json
@@ -1,5 +1,6 @@
 {
     "Events": {
+        "PluginDescription": "Theo dõi sự kiện và nhận các báo cáo về hoạt động truy cập của bạn.",
         "EventAction": "Hành động sự kiện",
         "EventCategory": "Danh mục sự kiện",
         "EventName": "Tên sự kiện",
diff --git a/plugins/Feedback/lang/sv.json b/plugins/Feedback/lang/sv.json
index 379daed27b416cb2e42fb6e77cc1efd8929ae30b..80fab4cfc4eac426f1821260e84035d9bdca07f9 100644
--- a/plugins/Feedback/lang/sv.json
+++ b/plugins/Feedback/lang/sv.json
@@ -5,6 +5,7 @@
         "IWantTo": "Jag vill:",
         "LearnWaysToParticipate": "Läs om alla sätt du kan %1$s delta%2$s",
         "ManuallySendEmailTo": "Vänligen skicka ditt meddelande manuellt till",
+        "PluginDescription": "Skicka din feedback till Piwik-teamet. Dela dina idéer och förslag för att göra Piwik till världens bästa analysplattform!",
         "PrivacyClaim": "Piwik respekterar din %1$sintegritet%2$s och ger dig full kontroll över din information.",
         "RateFeatureLeaveMessageDislike": "Vi är ledsna över att du inte gillar det! Berätta gärna för oss hur vi kan förbättra Piwik.",
         "RateFeatureLeaveMessageLike": "Vi är glada att du gillar det! Berätta för oss vad du gillar mest med Piwik eller om du har ett förslag på en funktion.",
@@ -16,10 +17,17 @@
         "TopLinkTooltip": "Tala om för oss vad du tycker, eller fråga efter professionell support.",
         "ViewAnswersToFAQ": "Se svar på %1$svanliga frågor%2$s",
         "ViewUserGuides": "Lär dig att konfigurera Piwik och hur man på ett effektivt sätt analyserar data med våra %1$sanvändarguider%2$s",
+        "CommunityHelp": "Community Hjälp",
         "ProfessionalHelp": "Professionell hjälp",
         "PiwikProOfferIntro": "VÃ¥rt erbjudande inkluderar",
+        "PiwikProReviewPiwikSetup": "En recension av din Piwik-installation",
+        "PiwikProOptimizationMaintenance": "Piwik optimering & underhållstjänster",
         "PiwikProPhoneEmailSupport": "Telefon och e-postsupport",
+        "PiwikProTraining": "Användar-, teknisk och utvecklarutbildning",
         "PiwikProPremiumFeatures": "Premium-funktioner",
-        "ContactUs": "Kontakta oss"
+        "PiwikProCustomDevelopment": "Anpassad utvecklingstjänster",
+        "PiwikProAnalystConsulting": "Konsulttjänster för analyser",
+        "ContactUs": "Kontakta oss",
+        "VisitTheForums": "Besök %1$s forumet%2$s och få hjälp av Piwik-användare"
     }
 }
\ No newline at end of file
diff --git a/plugins/Goals/lang/es.json b/plugins/Goals/lang/es.json
index 97d6b9b375c26673c242b5a1e5449ecffae6285c..d8c0dcb091dc8fd209eea46abb461f39553a3904 100644
--- a/plugins/Goals/lang/es.json
+++ b/plugins/Goals/lang/es.json
@@ -76,6 +76,8 @@
         "MatchesExpression": "coincide con la expresión %s",
         "NewGoalIntro": "El seguimiento de las conversiones del objetivo es una de las maneras más eficaces para medir y mejorar las metas de negocio.",
         "NewVisitorsConversionRateIs": "La tasa de visitantes nuevos es %s",
+        "NoGoalsNeedAccess": "Solo un Administrador o un usuario con permisos de Super Usuario puede gestionar Objetivos para un determinado sitio web. Por favor, consulte a su administrador de Piwik para establecer Objetivos para su sitio web. <br> ¡Hacer un seguimiento de los Objetivos es una gran manera de ayudar a entender y maximizar el rendimiento de su sitio web!",
+        "NeedAccess": "Solo un Administrador o un usuario con permisos de Super Usuario puede gestionar Objetivos para un determinado sitio web.",
         "Optional": "(opcional)",
         "OverallConversionRate": "%s tasa global de la conversión (visitas con un objetivo completado)",
         "OverallRevenue": "%s ingresos totales",
diff --git a/plugins/Goals/lang/sq.json b/plugins/Goals/lang/sq.json
index b3c92ded4351a5c21e4b1ed178f271035e19170d..1c5dfc173d7c94151440f0adbcb51da042dc58d3 100644
--- a/plugins/Goals/lang/sq.json
+++ b/plugins/Goals/lang/sq.json
@@ -42,7 +42,7 @@
         "Details": "Hollësi objektivi",
         "DefaultGoalConvertedOncePerVisit": "(parazgjedhje) Objektivi mund të shndërrohet një herë për vizitë",
         "DefaultRevenue": "E ardhura parazgjedhje e objektivit është",
-        "DefaultRevenueHelp": "Për shembull, një Formular Kontakti parashtruar nga një vizitor mund të vlejë mesatarisht 10 euro. Piwik-u do t'ju ndihmojë të kuptoni se si shtresëzohen segmentet e vizitorëve tuaj.",
+        "DefaultRevenueHelp": "Për shembull, një Formular Kontakti parashtruar nga një vizitor mund të vlejë mesatarisht 10 euro. Piwik-u do t’ju ndihmojë të kuptoni se si shtresëzohen segmentet e vizitorëve tuaj.",
         "DeleteGoalConfirm": "Jeni i sigurt se doni të fshihet Objektivi %s?",
         "DocumentationRevenueGeneratedByProductSales": "Shitje produkti. Pa taksa, dërgesë dhe zbritje çmimi",
         "Download": "Shkarkon një kartelë",
diff --git a/plugins/Goals/lang/sv.json b/plugins/Goals/lang/sv.json
index 63810c8f5a29a053f5fa0cb2790eadc41c648ae8..5ba02ca36ec56448f01c19919b770d136ebb9148 100644
--- a/plugins/Goals/lang/sv.json
+++ b/plugins/Goals/lang/sv.json
@@ -76,6 +76,8 @@
         "MatchesExpression": "matchar uttrycket %s",
         "NewGoalIntro": "Att använda mål för konvertering är ett av de mest effektiva sätten att mäta och förbättra din affärsverksamhet.",
         "NewVisitorsConversionRateIs": "Nya besökares omvandlingsgrad är %s",
+        "NoGoalsNeedAccess": "Bara en administratör eller användare med Superbehörighet kan hantera mål för angiven hemsida. Var snäll och kontakta din administratör hos Piwik för att sätta upp dina mål för din hemsida. <br>Att ha mål är ett utmärkt sätt att få hjälp att förstå hur du maximerar din webbsidas resultat!",
+        "NeedAccess": "Bara en administratör eller användare med Superbehörighet kan hantera mål för angiven hemsida.",
         "Optional": "(frivilligt)",
         "OverallConversionRate": "%s total omvandlingsgrad (besök med ett uppnått mål)",
         "OverallRevenue": "%s totala intäkter",
diff --git a/plugins/Goals/lang/zh-cn.json b/plugins/Goals/lang/zh-cn.json
index 71b887124db50c383224b9e022fb2d1122276857..96f93dfefaf9d70587afbe2d0345ee0587538495 100644
--- a/plugins/Goals/lang/zh-cn.json
+++ b/plugins/Goals/lang/zh-cn.json
@@ -10,6 +10,7 @@
         "BestKeywords": "您的最佳转化关键字为:",
         "BestReferrers": "您的最佳转化网站来源为:",
         "CaseSensitive": "大小写敏感",
+        "CategoryTextReferrers_Referrers": "来源",
         "ClickOutlink": "点击链接转向外部网站",
         "ColumnAverageOrderRevenueDocumentation": "评价订单价值 (AOV) 是所有订单的总金额除以订单数。",
         "ColumnAveragePriceDocumentation": "%s 的平均收入。",
diff --git a/plugins/ImageGraph/lang/sq.json b/plugins/ImageGraph/lang/sq.json
index d1da4a0930be3c031437fd0ecb5dc1c72a5d6561..9038f453efb60065d54d2553ae93163e5432a75e 100644
--- a/plugins/ImageGraph/lang/sq.json
+++ b/plugins/ImageGraph/lang/sq.json
@@ -1,5 +1,5 @@
 {
     "ImageGraph": {
-        "PluginDescription": "Prodhoni për çfarëdo raporti Piwik figura të mrekullueshme PNG statike Grafikësh."
+        "ColumnOrdinateMissing": "Në këtë raport s’u gjet shtylla '%1$s'. Provoni cilëndo nga %2$s"
     }
 }
\ No newline at end of file
diff --git a/plugins/Insights/lang/zh-cn.json b/plugins/Insights/lang/zh-cn.json
index a03ef51c8b69f0b4099328f0e90f0dfc43e1aba6..f19a0a92487630bd18b71493394ba0e2752cf2d6 100644
--- a/plugins/Insights/lang/zh-cn.json
+++ b/plugins/Insights/lang/zh-cn.json
@@ -1,11 +1,16 @@
 {
     "Insights": {
+        "DayComparedToPreviousDay": "前一天",
+        "DayComparedToPreviousWeek": "上一周的同一天",
+        "DayComparedToPreviousYear": "上一年的同一天",
         "Filter": "条件",
         "FilterOnlyDecreaser": "仅限减少的",
         "FilterOnlyDisappeared": "仅限消失的",
         "FilterOnlyIncreaser": "仅限增加的",
         "FilterOnlyMovers": "仅限移动的",
         "FilterOnlyNew": "仅限新的",
+        "MonthComparedToPreviousMonth": "上月",
+        "MonthComparedToPreviousYear": "上一年的同月",
         "WeekComparedToPreviousWeek": "上一周",
         "YearComparedToPreviousYear": "上一年"
     }
diff --git a/plugins/Installation/lang/cs.json b/plugins/Installation/lang/cs.json
index cdb5822ef51cacc9eb3e11f2f167ec68298e388f..c7e657835d920460611535e380872b1539243b41 100644
--- a/plugins/Installation/lang/cs.json
+++ b/plugins/Installation/lang/cs.json
@@ -43,6 +43,7 @@
         "PasswordRepeat": "Heslo (zopakujte)",
         "PercentDone": "%s %% hotovo",
         "PiwikProAdTitle": "Pokročilé analýzy a služby",
+        "PiwikProAdText": "Pořiďte si nadstandartní možnosti a odkryjte plnou sílu s %1$sPiwik PRO On-Premises%2$s, nebo si objednejte Piwik hostovaný bez starostí v %3$sPiwik PRO Cloud%4$s.",
         "PleaseFixTheFollowingErrors": "Prosím opravte následující chyby",
         "DefaultSettings": "Výchozí nastavení Piwiku",
         "DefaultSettingsHelp": "Piwik má výchozí nastavení. Můžete je změnit teď, nebo později z administračního rozhraní.",
diff --git a/plugins/Installation/lang/ko.json b/plugins/Installation/lang/ko.json
index bde1148c0217f3cb98ec4cacbed2fc8bdbeb4cd9..b94e1d0bc15928a894f395101058a65d212b399a 100644
--- a/plugins/Installation/lang/ko.json
+++ b/plugins/Installation/lang/ko.json
@@ -42,6 +42,8 @@
         "PasswordDoNotMatch": "비밀번호가 맞지 않습니다",
         "PasswordRepeat": "비밀번호 (반복 입력)",
         "PercentDone": "%s %% 완료",
+        "PiwikProAdTitle": "고급 분석 및 서비스",
+        "PiwikProAdText": "%1$sPiwik 프로 On-premise%2$s를 통해 최대의 프리미엄 기능을 사용하시거나, %3$sPiwik 프로 클라우드%4$s를 통해 당신만의 번거로움 없는 Piwik 호스트 서비스를 사용하실 수 있습니다.",
         "PleaseFixTheFollowingErrors": "다음 오류를 수정하세요",
         "DefaultSettings": "기본 Piwik 설정",
         "DefaultSettingsHelp": "Piwik 기본 설정에 따릅니다. 이를 지금 혹은 후에 관리자 화면에서 변경할 수 있습니다.",
diff --git a/plugins/Installation/lang/sq.json b/plugins/Installation/lang/sq.json
index 9d0815134f26c3475470aae62676f9d9d4e6758b..7e59ba766312fbd9034aaa8ab151a11a22a54b6c 100644
--- a/plugins/Installation/lang/sq.json
+++ b/plugins/Installation/lang/sq.json
@@ -1,11 +1,12 @@
 {
     "Installation": {
+        "CollaborativeProject": "Piwik-u është një projekt në bashkëpunim, i ngritur me dashuri nga njerëz anembanë botës.",
         "ConfigurationHelp": "Kartela juaj për formësimin e Piwik-ut duket se është e keqformësuar. Ose mund të hiqni config\/config.ini.php dhe rinisni instalimin, ose ndreqni rregullimet për lidhjen me bazën e të dhënave.",
         "ConfirmDeleteExistingTables": "Jeni i sigurt se doni të fshihen tabelat: %s prej bazës së të dhënave? KUJDES: NUK DO TË MUND TË RIKTHENI TË DHËNAT PREJ KËTYRE TABELAVE!",
         "Congratulations": "Urime",
         "CongratulationsHelp": "<p>Urime! Instalimi juaj i Piwik-ut u plotësua.<\/p><p>Sigurohuni që keni futur kodin JavaScript te faqet tuaja, dhe prisni për vizitorët e parë!<\/p>",
         "DatabaseCreation": "Krijim baze të dhënash",
-        "DatabaseErrorConnect": "Gabim gjatë provës për t'u lidhur me shërbyesin e bazës së të dhënave",
+        "DatabaseErrorConnect": "Gabim gjatë provës për t’u lidhur me shërbyesin e bazës së të dhënave",
         "DatabaseServerVersion": "Version shërbyesi baze të dhënash",
         "DatabaseSetup": "Rregullimi i Bazës së të Dhënave",
         "DatabaseSetupAdapter": "përshtatës",
@@ -19,15 +20,15 @@
         "InstallationStatus": "Gjendje instalimi",
         "LargePiwikInstances": "Ndihmë për raste Piwik-u me ngarkesë",
         "Legend": "Legjendë",
-        "NoConfigFound": "S'u gjet dot kartela e formësimit të Piwik-ut dhe po provoni të hyni te një faqe Piwik-u.<br \/><b>  » Mund ta <a href='index.php'>instaloni Piwik-un tani<\/a><\/b><br \/><small>Nëse e kishit instaluar Piwik-un më parë dhe keni disa tabela te baza juaj e të dhënave, mos u shqetësoni, mund të ripërdorni po ato tabela dhe të mbani të dhënat tuaja ekzistuese!<\/small>",
+        "NoConfigFound": "S’u gjet dot kartela e formësimit të Piwik-ut dhe po provoni të hyni te një faqe Piwik-u.<br \/><b>  » Mund ta <a href='index.php'>instaloni Piwik-un tani<\/a><\/b><br \/><small>Nëse e kishit instaluar Piwik-un më parë dhe keni disa tabela te baza juaj e të dhënave, mos u shqetësoni, mund të ripërdorni po ato tabela dhe të mbani të dhënat tuaja ekzistuese!<\/small>",
         "Optional": "Opsionale",
         "PasswordDoNotMatch": "fjalëkalimet nuk përputhen",
         "PercentDone": "Plotësuar %s %%",
         "PleaseFixTheFollowingErrors": "Ju lutem, ndreqni gabimet vijuese",
         "Requirements": "Të domosdoshme për Piwik-un",
-        "SetupWebsite": "Caktoni një \"site\" web",
-        "SetupWebsiteError": "Pati një gabim gjatë shtimit të një \"site\"-i web",
-        "SetupWebsiteSetupSuccess": "\"Site\"-i Web %s u shtua me sukses!",
+        "SetupWebsite": "Rregulloni një Sajt",
+        "SetupWebsiteError": "Pati një gabim gjatë shtimit të një sajti",
+        "SetupWebsiteSetupSuccess": "Sajti %s u shtua me sukses!",
         "SuperUser": "Super Përdorues",
         "SuperUserSetupSuccess": "Super Përdoruesi u krijua me sukses!",
         "SystemCheck": "Kontroll sistemi",
@@ -45,10 +46,10 @@
         "SystemCheckGzcompressHelp": "Lypset të aktivizoni zgjerimin zlib dhe funksionin gzcompress.",
         "SystemCheckGzuncompressHelp": "Lypset të aktivizoni zgjerimin zlib dhe funksionin gzuncompress.",
         "SystemCheckIconvHelp": "Lypset të formësoni dhe rindërtoni PHP-në me aktivizim të mbulimit të \"iconv\", --with-iconv.",
-        "SystemCheckMailHelp": "Mesazhet mbi Përshtypjet dhe Fjalëkalim të Humbur nuk kanë për t'u dërguar pa mail().",
+        "SystemCheckMailHelp": "Mesazhet mbi Përshtypjet dhe Fjalëkalim të Humbur nuk kanë për t’u dërguar pa mail().",
         "SystemCheckMbstring": "mbstring",
         "SystemCheckMemoryLimit": "Kufi kujtese",
-        "SystemCheckMemoryLimitHelp": "Në një \"site\" web me shumë trafik, procesi i arkivimit mund të dojë më tepër kujtesë se sa i është dhënë tani. Në u dashtë, ndryshojeni parametrin memory_limit te kartela juaj php.ini.",
+        "SystemCheckMemoryLimitHelp": "Në një sajt me shumë trafik, procesi i arkivimit mund të dojë më tepër kujtesë se sa i është dhënë tani. Në u dashtë, ndryshojeni parametrin memory_limit te kartela juaj php.ini.",
         "SystemCheckOpenURL": "Hap URL",
         "SystemCheckOpenURLHelp": "Pajtimet në buletine, njoftime përditësimesh, dhe përditësimet me një klikim e duan zgjerimin \"curl\", allow_url_fopen=On, ose fsockopen() të aktivizuar.",
         "SystemCheckOtherExtensions": "Zgjerime të tjera",
@@ -59,10 +60,10 @@
         "SystemCheckPhp": "Version PHP-je",
         "SystemCheckPhpPdoAndMysqli": "Më tepër të dhëna te: %1$sPHP PDO%2$s dhe %3$sMYSQLI%4$s.",
         "SystemCheckSplHelp": "Lypset të formësoni dhe krijoni PHP-në me Librarinë Standarde PHP të aktivizuar (si parazgjedhje).",
-        "SystemCheckTimeLimitHelp": "Në \"site\" web me shumë trafik, përmbushja e procesit të arkivimit mund të dojë më tepër kohë se sa i është dhënë tani. Në u dashtë, ndryshojeni parametrin max_execution_time te kartela juaj php.ini.",
+        "SystemCheckTimeLimitHelp": "Në sajt me shumë trafik, përmbushja e procesit të arkivimit mund të dojë më tepër kohë se sa i është dhënë tani. Në u dashtë, ndryshojeni parametrin max_execution_time te kartela juaj php.ini.",
         "SystemCheckTracker": "Gjendje gjurmuesi",
         "SystemCheckWarnDomHelp": "Do të duhej të aktivizonit zgjerimin \"dom\" (p.sh., instaloni paketën \"php-dom\" dhe\/ose \"php-xml\").",
-        "SystemCheckWarning": "Piwik-u do të punojë normalisht por mund t'i mungojnë disa veçori",
+        "SystemCheckWarning": "Piwik-u do të punojë normalisht por mund t’i mungojnë disa veçori",
         "SystemCheckWarnJsonHelp": "Do të duhej të aktivizonit zgjerimin \"json\" (p.sh., instaloni paketën \"php-json\") për punim më të mirë.",
         "SystemCheckWarnLibXmlHelp": "Do të duhej të aktivizonit zgjerimin \"libxml\" (p.sh., paketën \"install the php-libxml\" ) meqë është e domosdoshme nga zgjerime të tjera bazë të PHP-së.",
         "SystemCheckWarnSimpleXMLHelp": "Do të duhej të aktivizonit zgjerimin \"SimpleXML\" (p.sh., instaloni paketën \"php-simplexml\" dhe\/ose \"php-xml\").",
diff --git a/plugins/Installation/lang/tr.json b/plugins/Installation/lang/tr.json
index 2b51d7634d394b211ae240a5589afc6cf87defa5..83ff4a0dd53b2f8d6f3c2d50cf8efa30f97da23b 100644
--- a/plugins/Installation/lang/tr.json
+++ b/plugins/Installation/lang/tr.json
@@ -1,5 +1,7 @@
 {
     "Installation": {
+        "ConfigurationHelp": "Piwik konfigürasyon dosyası yanlış yapılandırılmış. config\/config.ini.php dosyasını silin ve kuruluma devam edin, yada veritabanı bağlantınızı doğru yapın.",
+        "ConfirmDeleteExistingTables": "%s veritabanından tabloları silmek istediğinizden emin misiniz? UYARI: TABLODAN VERILER YENIDEN ALINAMAZ!",
         "Congratulations": "Tebrikler",
         "CongratulationsHelp": "<p>Tebrikler! Piwik Başarıyla kuruldu.<\/p><p>JavaScript kodunu sayfalarınıza yerleştirdiğinizden emin olun ve ilk ziyaretçilerinizi beklemeye başlayın!<\/p>",
         "DatabaseCreation": "Veritabanı oluşturma",
@@ -13,6 +15,8 @@
         "Email": "E-posta",
         "Extension": "eklenti",
         "Filesystem": "Dosya sistemi",
+        "GoBackAndDefinePrefix": "Geri dönün ve Piwik Tabloları için tablo ön eki tanımlayınız.",
+        "HappyAnalysing": "Mutlu Analizler!",
         "Installation": "Yükleme",
         "InstallationStatus": "Yükleme durumu",
         "InvalidStateError": "Hata: Piwik zaten kurulmuş. %1$s Geri dön %2$s Piwik%3$s.",
@@ -35,6 +39,7 @@
         "SetupWebsiteSetupSuccess": "Web site %s başarıyla eklendi.",
         "SetupWebSiteURL": "Web site adresi",
         "SystemCheck": "Sistem kontrolü",
+        "SystemCheckAutoUpdateHelp": "Not: Piwik Tek Tıklamayla güncelleme için Piwik klasörüne ve içeriğine yazma izinleri gerektirir.",
         "SystemCheckDatabaseHelp": "Piwik mysqli eklentisi ya da PDO ve pdo_mysql eklentilerine ihtiyaç duyar.",
         "SystemCheckError": "Bir hata oluştu. Devam edebilmek için hatayı gidermelisiniz.",
         "SystemCheckExtensions": "Gerekli diÄŸer eklentiler",
diff --git a/plugins/Installation/lang/vi.json b/plugins/Installation/lang/vi.json
index 1d662380a6ef1c6c2a60d4090a8762fc20f63a7e..70797d7366d918a1cba59d76f470e2ee59fe77d5 100644
--- a/plugins/Installation/lang/vi.json
+++ b/plugins/Installation/lang/vi.json
@@ -1,5 +1,6 @@
 {
     "Installation": {
+        "CollaborativeProject": "Piwik là một dự án hợp tác, được xây dựng với sự yêu thích của mọi người từ khắp nơi trên thế giới.",
         "ConfigurationHelp": "Tập tin cấu hình Piwik của bạn dường như là sai. Bạn có thể loại bỏ config\/config.ini.php và tiếp tục cài đặt, hoặc sửa chữa các thiết lập kết nối cơ sở dữ liệu.",
         "ConfirmDeleteExistingTables": "Bạn có chắc chắn muốn xóa các table (bảng) sau khỏi database của bạn: %s? CHÚ Ý: DỮ LIỆU BỊ XÓA TỪ CÁC TABLE NÀY SẼ KHÔNG THỂ KHÔI PHỤC LẠI ĐƯỢC!",
         "Congratulations": "Xin chúc mừng",
diff --git a/plugins/Installation/lang/zh-cn.json b/plugins/Installation/lang/zh-cn.json
index bef29bf2aca3b1c0dbddacc09db2c65ad2d0434a..ab96b1f3c3faf4f11f630b2e5062ab366016c206 100644
--- a/plugins/Installation/lang/zh-cn.json
+++ b/plugins/Installation/lang/zh-cn.json
@@ -42,6 +42,8 @@
         "PasswordDoNotMatch": "密码不匹配",
         "PasswordRepeat": "密码(重复)",
         "PercentDone": "%s %% 已完成",
+        "PiwikProAdTitle": "高级分析与服务",
+        "PiwikProAdText": "添加高级功能和解锁全部功能需要 %1$s,Piwik PRO版本价格为 %2$s,您还可以选择Piwik 主机,只需要 %3$s ,Piwik PRO版云主机只需要 %4$s 。",
         "PleaseFixTheFollowingErrors": "请修复以下错误",
         "DefaultSettings": "默认 Piwik 设置",
         "DefaultSettingsHelp": "Piwik自带的默认设置。现在,您可以自定义它们或稍后在管理介面上做。",
diff --git a/plugins/LanguagesManager/Commands/CreatePull.php b/plugins/LanguagesManager/Commands/CreatePull.php
index e9c16ccf0c11330084f22249ce041d3b948f3991..af46dc7000dec1b259185fffd06001957ab566a2 100644
--- a/plugins/LanguagesManager/Commands/CreatePull.php
+++ b/plugins/LanguagesManager/Commands/CreatePull.php
@@ -150,6 +150,8 @@ class CreatePull extends TranslationBase
 
         $message = implode('', $messages);
 
+        $message .= '\n\nHelp us translate Piwik in your language!\nSignup at https://www.transifex.com/piwik/piwik/\nIf you have any questions, get in touch with us at translations@piwik.org';
+
         $languageCodesTouched = array_unique($languageCodesTouched, SORT_REGULAR);
 
         $title = sprintf(
diff --git a/plugins/Live/Visitor.php b/plugins/Live/Visitor.php
index 4d15d5d3f6ed057ef96ed9e6c01e206a5fcc5025..86ae4fcb66f0320e387e6078c5ddd67676409378 100644
--- a/plugins/Live/Visitor.php
+++ b/plugins/Live/Visitor.php
@@ -158,7 +158,8 @@ class Visitor implements VisitorInterface
         //       ==> also update API/API.php getSuggestedValuesForSegment(), the $segmentsNeedActionsInfo array
 
         // flatten visit custom variables
-        if (is_array($visitorDetailsArray['customVariables'])) {
+        if (!empty($visitorDetailsArray['customVariables']) 
+            && is_array($visitorDetailsArray['customVariables'])) {
             foreach ($visitorDetailsArray['customVariables'] as $thisCustomVar) {
                 $visitorDetailsArray = array_merge($visitorDetailsArray, $thisCustomVar);
             }
diff --git a/plugins/Live/javascripts/live.js b/plugins/Live/javascripts/live.js
index fd634ec61ce0b24cc8831ce0fd386881e6f9b85c..36b59326a836e80464b59422bee95481308fc657 100644
--- a/plugins/Live/javascripts/live.js
+++ b/plugins/Live/javascripts/live.js
@@ -245,7 +245,7 @@ $(function() {
                 var visitorsCountMessage = translations['one_visitor'];
             }
             else {
-                var visitorsCountMessage = translations['visitors'].replace('%s', visitors);
+                var visitorsCountMessage = sprintf(translations['visitors'], visitors);
             }
             $('.simple-realtime-visitor-counter', element)
               .attr('title', visitorsCountMessage)
@@ -255,15 +255,15 @@ $(function() {
             var metrics = $('.simple-realtime-metric', element);
 
             var visitsText = data['visits'] == 1
-              ? translations['one_visit'] : translations['visits'].replace('%s', data['visits']);
+              ? translations['one_visit'] : sprintf(translations['visits'], data['visits']);
             $(metrics[0]).text(visitsText);
 
             var actionsText = data['actions'] == 1
-              ? translations['one_action'] : translations['actions'].replace('%s', data['actions']);
+              ? translations['one_action'] : sprintf(translations['actions'], data['actions']);
             $(metrics[1]).text(actionsText);
 
             var lastMinutesText = lastMinutes == 1
-              ? translations['one_minute'] : translations['minutes'].replace('%s', lastMinutes);
+              ? translations['one_minute'] : sprintf(translations['minutes'], lastMinutes);
             $(metrics[2]).text(lastMinutesText);
 
             scheduleAnotherRequest();
diff --git a/plugins/Live/lang/de.json b/plugins/Live/lang/de.json
index 4796bbc01f2be2fa7bb51f37a15cb19fdaa339b6..644b6d1d477d5063ce92dca4a576dd9015a383cb 100644
--- a/plugins/Live/lang/de.json
+++ b/plugins/Live/lang/de.json
@@ -5,6 +5,7 @@
         "CalculatedOverNPageViews": "Berechnet mithilfe der letzten %1$s Seitenansichten dieses Besuchers.",
         "ClickToViewMoreAboutVisit": "Klicken Sie um nähere Informationen zu diesem Besuch zu sehen",
         "ConvertedNGoals": "%s Ziele konvertiert",
+        "EcommerceSummaryConversions": "%1$s Bestellungen%2$s für insgesamt %3$s%4$s, %5$s bestellte Produkte%6$s.",
         "FirstVisit": "Erster Besuch",
         "GoalType": "Typ",
         "HideMap": "Karte ausblenden",
@@ -34,6 +35,8 @@
         "VisitorsInRealTime": "Besucher in Echtzeit",
         "VisitorsLastVisit": "Der letzte Besuch dieses Besuchers war vor %s Tagen.",
         "VisitsFrom": "%1$s%2$s Besuche%3$s aus",
+        "VisitSummary": "Verbrachte insgesamt %1$s%2$s auf der Website%3$s, und besuchte %4$s Seiten%5$s in %6$s Besuchen%7$s.",
+        "VisitSummaryWithActionDetails": "Verbrachte insgesamt %1$s%2$s auf der Website%3$s und führte %4$s Aktionen%5$s (%6$s) in %7$s Besuchen%8$s aus.",
         "RowActionTooltipDefault": "Zeige Besucher-Log aufgeteilt durch diese Zeile",
         "RowActionTooltipWithDimension": "Zeige Besucher-Log segmentiert durch %s",
         "RowActionTooltipTitle": "Log segmentierter Besucher öffnen",
diff --git a/plugins/Live/lang/sq.json b/plugins/Live/lang/sq.json
index f1b14ea1d9e1d05eea381f7c7138031dc8ac4241..52b75c2ebd59d4c2839cdcafb1c0e9b0d01fc383 100644
--- a/plugins/Live/lang/sq.json
+++ b/plugins/Live/lang/sq.json
@@ -1,9 +1,13 @@
 {
     "Live": {
+        "ClickToViewMoreAboutVisit": "Klikoni që të shihni më tepër të dhëna rreth kësaj vizite",
+        "FirstVisit": "Vizita e parë",
         "GoalType": "Lloj",
+        "HideMap": "fshihe hartën",
         "KeywordRankedOnSearchResultForThisVisitor": "Për këtë vizitor, fjalëkyçi %1$s u radhit i %2$s te faqja e përfundimeve të kërkimit për %3$s",
         "LastHours": "%s orët e fundit",
         "LastMinutes": "%s minutat e fundit",
+        "LastVisit": "Vizita e fundit",
         "LinkVisitorLog": "Shihni regjistër të hollësishëm të përdoruesit",
         "PageRefreshed": "Sa herë rresht është parë \/ rifreskuar kjo faqew.",
         "Referrer_URL": "URL Referuesi",
diff --git a/plugins/Live/lang/sv.json b/plugins/Live/lang/sv.json
index 7e4b82f6d21ed4ffa290dc6ac87f8a6fd09bd4f0..cb5ade51e4a20c9954a6a5dbf31d92262ce081a2 100644
--- a/plugins/Live/lang/sv.json
+++ b/plugins/Live/lang/sv.json
@@ -5,6 +5,7 @@
         "CalculatedOverNPageViews": "Beräknat på denna besöakrens senaste %1$s sidvisningar.",
         "ClickToViewMoreAboutVisit": "Klicka för mer information om det här besöket",
         "ConvertedNGoals": "Konverteringar %s MÃ¥l",
+        "EcommerceSummaryConversions": "%1$s ordrar%2$s för totalt %3$s%4$s, handlade %5$s varor%6$s.",
         "FirstVisit": "Första besöket",
         "GoalType": "Sort",
         "HideMap": "Dölj mapp",
@@ -32,6 +33,10 @@
         "VisitorProfile": "Besöksprofil",
         "VisitorsInRealTime": "Besökare i realtid",
         "VisitorsLastVisit": "Denna besökares senaste besök var %s dagar sedan.",
-        "VisitsFrom": "%1$s%2$s besökta %3$s från"
+        "VisitsFrom": "%1$s%2$s besökta %3$s från",
+        "RowActionTooltipTitle": "Öppna segmenterade besöksloggar",
+        "SegmentedVisitorLogTitle": "Besökslogg visar var besökarna %1$s och \"%2$s\" är",
+        "OnClickPause": "%s är startad. Klicka för att pausa.",
+        "OnClickStart": "%s är stoppad. Klicka för att starta."
     }
 }
\ No newline at end of file
diff --git a/plugins/Live/lang/tr.json b/plugins/Live/lang/tr.json
index a1008f18de17250ad6fb4711f6fa491c9d4407c0..5d5acabd127ab45878cc61d8d5c06982b55a467d 100644
--- a/plugins/Live/lang/tr.json
+++ b/plugins/Live/lang/tr.json
@@ -16,9 +16,15 @@
         "PreviousVisitor": "Önceki ziyaretçi",
         "RealTimeVisitorCount": "Gerçek Zamanlı Ziyaretçi Sayacı",
         "Referrer_URL": "Yönlendirme Siteleri",
+        "ShowMap": "haritayı göster",
         "ViewVisitorProfile": "Ziyaretçi profiline bak",
         "VisitedPages": "Ziyaret edilmiÅŸ sayfalar",
         "VisitorLog": "Ziyaretçi kayıtları",
-        "VisitorsInRealTime": "Gerçek Zamanlı Ziyaretçiler"
+        "VisitorProfile": "Ziyaretçi Profili",
+        "VisitorsInRealTime": "Gerçek Zamanlı Ziyaretçiler",
+        "VisitorsLastVisit": "Bu ziyaretçi %s gün önce ziyaret etmiş",
+        "RowActionTooltipTitle": "Bölüm ziyaretçi loglarını aç",
+        "OnClickPause": "%s başladı. Durdurmak için basın.",
+        "OnClickStart": "%s durduruldu. Başlatmak için basın."
     }
 }
\ No newline at end of file
diff --git a/plugins/Live/templates/_actionsList.twig b/plugins/Live/templates/_actionsList.twig
index 82f651d7d30cc1775c52dbda2b8d5bed50d7c29c..d4ee6c203f0c2b1897fcbc393d61b33bfb915944 100644
--- a/plugins/Live/templates/_actionsList.twig
+++ b/plugins/Live/templates/_actionsList.twig
@@ -85,7 +85,7 @@
                 {% if action.type == 'search' %}
                     <img src='{{ action.icon }}' title='{{ 'Actions_SubmenuSitesearch'|translate }}' class="action-list-action-icon search">
                 {% endif %}
-                <span class="truncated-text-line">{{ action.siteSearchKeyword }}</span>
+                <span class="truncated-text-line">{{ action.siteSearchKeyword|rawSafeDecoded }}</span>
             {% endif %}
             {% if action.eventCategory|default(false) is not empty %}
                 <img src='{{ action.icon }}' title='{{ 'Events_Event'|translate }}' class="action-list-action-icon event">
diff --git a/plugins/Login/javascripts/login.js b/plugins/Login/javascripts/login.js
index 3ffb0e132e0461e57535e693d24268468b60e43f..b2c7d59162ad3f1a0dee8015e1b7ae957e692667 100755
--- a/plugins/Login/javascripts/login.js
+++ b/plugins/Login/javascripts/login.js
@@ -63,7 +63,7 @@
             var ajaxDone = function (response) {
                 $('.loadingPiwik').hide();
 
-                var isSuccess = response.indexOf('id="login_error"') === -1,
+                var isSuccess = response.indexOf('message_error') === -1,
                     fadeOutIds = '#message_container';
                 if (isSuccess) {
                     fadeOutIds += ',#reset_form,#reset_form_nav';
diff --git a/plugins/Login/lang/ca.json b/plugins/Login/lang/ca.json
index 6a70ee8a507182a95c9a6b4fd2a4cc74b453c531..8d87727ebc100a35987094c006f00898256f676d 100644
--- a/plugins/Login/lang/ca.json
+++ b/plugins/Login/lang/ca.json
@@ -11,7 +11,6 @@
         "LoginOrEmail": "Nom d'usuari o correu-e",
         "LoginPasswordNotCorrect": "L'usuari o la contrasenya no són correctes",
         "LostYourPassword": "Heu perdut la contrasenya?",
-        "MailPasswordChangeBody": "Hola %1$s,\n\nS'ha rebut una petició per restablir la contrasenya de %2$s. Per confirmar aquest canvi de contrasenya (per a que pogueu entrar amb les noves credencials), visiteu el següent enllaç:\n\n%3$s\n\nNota: aquest enllaç caduca en 24 hores.\n\nUs donem les gràcies per utiltizar el Piwik!",
         "MailTopicPasswordChange": "Confirmeu el canvi de contrasenya",
         "PasswordChanged": "S'ha canviat la vostra contrasenya",
         "PasswordRepeat": "Contrasenya (torneu-la a escriure)",
diff --git a/plugins/Login/lang/cs.json b/plugins/Login/lang/cs.json
index 46ba3eff8bc8f79fff35265fe1a9ce3505a8debd..2395841b94d0bd5860b224f831f1f57c8039d3db 100644
--- a/plugins/Login/lang/cs.json
+++ b/plugins/Login/lang/cs.json
@@ -12,7 +12,6 @@
         "LoginOrEmail": "Uživatelské jméno nebo E-mail",
         "LoginPasswordNotCorrect": "Chybná kombinace uživatelského jména a hesla.",
         "LostYourPassword": "Zapomněli jste vaše heslo?",
-        "MailPasswordChangeBody": "Ahoj %1$s,\n\nZ %2$s byl zaslán požadavek o změnu hesla. Pro potvrzení nových přihlašovacích údajů navštivte následující odkaz:\n\n%3$s\n\nPoznámka: Tento token je platný 24 hodin.\n\nA díky za používání Piwiku!",
         "MailTopicPasswordChange": "Potvrďte změnu hesla",
         "PasswordChanged": "Vaše heslo bylo změněno.",
         "PasswordRepeat": "Heslo (pro kontrolu)",
diff --git a/plugins/Login/lang/da.json b/plugins/Login/lang/da.json
index dd97a5e5771573653e46b5c8092db9e3a3a525d3..9be1068669041bd39ac93d73cbfe26f91f79cdf7 100644
--- a/plugins/Login/lang/da.json
+++ b/plugins/Login/lang/da.json
@@ -11,7 +11,6 @@
         "LoginOrEmail": "Brugernavn eller e-mail-adresse",
         "LoginPasswordNotCorrect": "Brugernavn og adgangskode er ikke korrekt",
         "LostYourPassword": "Glemt adgangskoden?",
-        "MailPasswordChangeBody": "Hej %1$s, En anmodning og nulstilling af adgangskode blev modtaget fra %2$s. For at bekræfte denne ændring af adgangskode, så du kan logge ind med dine nye legitimationsoplysninger, skal du åbne følgende link: %3$s Bemærk: Dette link udløber om 24 timer. Og tak fordi du bruger Piwik!",
         "MailTopicPasswordChange": "Bekræft ændring af adgangskode",
         "PasswordChanged": "Din adgangskode er blevet ændret.",
         "PasswordRepeat": "Adgangskode (gentag)",
diff --git a/plugins/Login/lang/de.json b/plugins/Login/lang/de.json
index 15618ddbdfcf37ba12b10f5c567ee92c7ce0b295..86bc551f233210ba34a2546bebb5f9d98349774d 100644
--- a/plugins/Login/lang/de.json
+++ b/plugins/Login/lang/de.json
@@ -1,6 +1,6 @@
 {
     "Login": {
-        "ConfirmationLinkSent": "Ein Bestätigungslink wurde an Ihren Posteingang verschickt. Überprüfen Sie Ihre E-Mails und besuchen diesen Link um die Passwortänderung zu bestätigen.",
+        "ConfirmationLinkSent": "Ein Bestätigungslink wurde an Ihre E-Mail-Adresse verschickt. Überprüfen Sie Ihren Posteingang und besuchen diesen Link um die Passwortänderung zu bestätigen.",
         "ContactAdmin": "Möglicher Grund: Der Server könnte die mail()-Funktion deaktiviert haben.<br\/>Bitte sprechen Sie mit Ihrem Piwik-Administrator.",
         "ExceptionInvalidSuperUserAccessAuthenticationMethod": "Ein Benutzer mit Systemverwaltunszugriff kann nicht mit der Methode »%s« legitimiert werden.",
         "ExceptionPasswordMD5HashExpected": "Der Parameter »password« wird als MD5-Hash des Passwortes erwartet.",
@@ -11,7 +11,6 @@
         "LoginOrEmail": "Benutzername oder E-Mail",
         "LoginPasswordNotCorrect": "Benutzername und Passwort sind nicht korrekt",
         "LostYourPassword": "Passwort vergessen?",
-        "MailPasswordChangeBody": "Hallo %1$s, \n\neine Passwortänderung von %2$s wurde eingeleitet. Um das neue Passwort zu bestätigen besuchen Sie folgenden Link: \n\n%3$s\n\nHinweis: Der Link ist nur 24 Stunden gültig. \n\nVielen Dank, dass Sie Piwik verwenden!",
         "MailTopicPasswordChange": "Passwortänderung bestätigen",
         "PasswordChanged": "Das Passwort wurde geändert.",
         "PasswordRepeat": "Passwort (wiederholen)",
diff --git a/plugins/Login/lang/el.json b/plugins/Login/lang/el.json
index c4caac5e6e8cdda7867a71969a94595562acbc16..61ef5c8f57b67f95877ca715669be62f5e640e96 100644
--- a/plugins/Login/lang/el.json
+++ b/plugins/Login/lang/el.json
@@ -12,7 +12,6 @@
         "LoginOrEmail": "Χρήστης ή Ηλεκτρονική διεύθυνση",
         "LoginPasswordNotCorrect": "Το όνομα χρήστη και ο κωδικός δεν είναι σωστά",
         "LostYourPassword": "Ξεχάσατε τον κωδικό σας;",
-        "MailPasswordChangeBody": "Γεια σας, %1$s,\n\t\nΈνα αίτημα επαναφοράς κωδικού ελήφθεί από το %2$s. Για να επιβεβαίωσετε αυτή την αλλαγή κωδικού ώστε να μπορείτε να συνδεθείτε με τα νέα σας διαπιστευτήρια, ακολουθήστε τον παρακάτω σύνδεσμο:\n\n%3$s\n\nΣημείωση: αυτό το πειστήριο θα λήξει σε 24 ώρες.\n\nΚαι σας ευχαριστούμε που χρησιμοποιείτε το Piwik!",
         "MailTopicPasswordChange": "Επιβεβαίωση Αλλαγής Κωδικού",
         "PasswordChanged": "Ο κωδικός σας έχει αλλάξει.",
         "PasswordRepeat": "Κωδικός (επανάληψη)",
diff --git a/plugins/Login/lang/en.json b/plugins/Login/lang/en.json
index 7597684359fbf867010e0a3aab079da378ab0f4c..185de64c25d98d24db1c844826c34fa363d0873c 100644
--- a/plugins/Login/lang/en.json
+++ b/plugins/Login/lang/en.json
@@ -12,7 +12,7 @@
         "LoginOrEmail": "Username or E-mail",
         "LoginPasswordNotCorrect": "Wrong Username and password combination.",
         "LostYourPassword": "Lost your password?",
-        "MailPasswordChangeBody": "Hi %1$s,\n\nA password reset request was received from %2$s. To confirm this password change so you can login with your new credentials, visit the following link:\n\n%3$s\n\nNote: this token will expire in 24 hours.\n\nAnd thank you for using Piwik!",
+        "MailPasswordChangeBody": "Hi %1$s,\n\nA password reset request was received from %2$s. To confirm this password change so you can login with your new credentials, visit the following link:\n\n%3$s\n\nAttention: Changing the password will also change your token_auth. You can look up your new token_auth on your settings page.\n\nIf you are using your API token in any external applications or for archiving, make sure to update the token as requests to the API will fail otherwise.\n\nNote: this token will expire in 24 hours.\n\nAnd thank you for using Piwik!",
         "MailTopicPasswordChange": "Confirm Password Change",
         "PasswordChanged": "Your password has been changed.",
         "PasswordRepeat": "Password (repeat)",
diff --git a/plugins/Login/lang/es.json b/plugins/Login/lang/es.json
index 113da72c497aade9a1d4a56d3424603da601f85f..ec597a1b5eebb2ae6aeeb8ace5484f39502f46bb 100644
--- a/plugins/Login/lang/es.json
+++ b/plugins/Login/lang/es.json
@@ -11,7 +11,6 @@
         "LoginOrEmail": "Usuario o correo electrónico",
         "LoginPasswordNotCorrect": "Usuario y contraseña incorrectos.",
         "LostYourPassword": "¿Olvidó la contraseña?",
-        "MailPasswordChangeBody": "Estimado %1$s:\n\nSe ha recibido una solicitud de modificación de contraseña desde %2$s. Para confirmar el cambio de contraseña y de esta manera permitir su inicio de sesión con nuevas credenciales, visite el siguiente enlace:\n\n%3$s\n\nNota: Este solicitud vencerá en 24 horas.\n\n¡Y gracias por usar Piwik!",
         "MailTopicPasswordChange": "Confirma el cambio de contraseña",
         "PasswordChanged": "Su contraseña ha sido modificada.",
         "PasswordRepeat": "Contraseña (repetir)",
diff --git a/plugins/Login/lang/fi.json b/plugins/Login/lang/fi.json
index c2a5ca27d577acb0b2ab130a0acc1786a4f151d0..23331808a510d4cd4d9fa6957aa3dae9850385a8 100644
--- a/plugins/Login/lang/fi.json
+++ b/plugins/Login/lang/fi.json
@@ -11,7 +11,6 @@
         "LoginOrEmail": "Käyttäjätunnus tai sähköposti",
         "LoginPasswordNotCorrect": "Käyttäjätunnus tai salasana väärin",
         "LostYourPassword": "Unohtuiko salasana?",
-        "MailPasswordChangeBody": "Hei %1$s,\n\nPyyntö salasanan resetoimiseen tuli %2$s:ltä. Jos haluat vaihtaa salasanan, avaa seuraava linkki:\n\n%3$s\n\nJos et tilannut uutta salasanaa, voit jätttää tämän sähköpostin huomiotta.\n\nHuom. tämä linkki vanhenee 24 tunnissa.\n\nKiitos Piwikin käyttämisestä!",
         "MailTopicPasswordChange": "Varmista salasanan vaihto",
         "PasswordChanged": "Salasana on vaihdettu.",
         "PasswordRepeat": "Salasana (uudelleen)",
diff --git a/plugins/Login/lang/fr.json b/plugins/Login/lang/fr.json
index be79d33a892631676621e40cb37c97bf01928736..8d08b149b6390759e4c6f4f3f2035ad6d0b5eb93 100644
--- a/plugins/Login/lang/fr.json
+++ b/plugins/Login/lang/fr.json
@@ -11,7 +11,6 @@
         "LoginOrEmail": "Nom d'utilisateur ou courriel",
         "LoginPasswordNotCorrect": "Mot de passe et nom d'utilisateur incorrects.",
         "LostYourPassword": "Mot de passe perdu ?",
-        "MailPasswordChangeBody": "Bonjour %1$s,\n\nUne demande de réinitialisation de mot de passe a été reçue depuis %2$s. Pour confirmer le changement de mot de passe afin de pouvoir vous authentifier avec vos nouveaux identifiants, cliquez sur le lien suivant :\n\n%3$s\n\nNote : ce jeton expirera dans 24 heures.\n\nMerci d'utiliser Piwik !",
         "MailTopicPasswordChange": "Confirmer le changement de mot de passe",
         "PasswordChanged": "Votre mot de passe a été modifié",
         "PasswordRepeat": "Mot de passe (répétez)",
diff --git a/plugins/Login/lang/hi.json b/plugins/Login/lang/hi.json
index 9d66a4a9bdbcac5a25c976f7dcdb86cc1c5e73f8..bed81a018fcee66635d88c2cc1613b5ffc3b779d 100644
--- a/plugins/Login/lang/hi.json
+++ b/plugins/Login/lang/hi.json
@@ -11,7 +11,6 @@
         "LoginOrEmail": "उपयोगकर्ता नाम या ई मेल",
         "LoginPasswordNotCorrect": "गलत उपयोगकर्ता नाम और पासवर्ड संयोजन.",
         "LostYourPassword": "अपना पासवर्ड खो गया?",
-        "MailPasswordChangeBody": "नमस्ते %1$s,\n\nएक पासवर्ड रीसेट अनुरोध %2$s से प्राप्त किया गया था. आप अपनी नई पहचान के साथ प्रवेश कर सकते हैं तो यह पासवर्ड परिवर्तन की पुष्टि करने के लिए नीचे दिए गए लिंक पर जाएँ:\n\n%3$s\n\nनोट: यह टोकन 24 घंटों में समाप्त हो जाएगा.\n\nऔर Piwik इस्तेमाल करने के लिए धन्यवाद!",
         "MailTopicPasswordChange": "पासवर्ड परिवर्तन की पुष्टि",
         "PasswordChanged": "आपका पासवर्ड बदल दिया गया है.",
         "PasswordRepeat": "पासवर्ड (दोहराने)",
diff --git a/plugins/Login/lang/hu.json b/plugins/Login/lang/hu.json
index 22ee716bd94123e177815f36dca881f98715626c..5e7063ef85729223d87c7db2013a7923a7f60f34 100644
--- a/plugins/Login/lang/hu.json
+++ b/plugins/Login/lang/hu.json
@@ -11,7 +11,6 @@
         "LoginOrEmail": "Felhasználói név vagy e-mail cím",
         "LoginPasswordNotCorrect": "Felhasználói név\/jelszó páros nem megfelelő",
         "LostYourPassword": "Elfelejtetted jelszavad?",
-        "MailPasswordChangeBody": "Üdv %1$s,\n\nJelsző visszaállítási kérelem érkezett innen: %2$s. A jelszóváltoztatás megerősítéséhez és a bejelentkezéshez kattintson a következő linkre:\n\n%3$s\n\nMegjegyzés: Ez a link elévül 24 órán belül.\nKöszönjük, hogy Piwik-et használ!",
         "MailTopicPasswordChange": "Jelszóváltoztatás megerősítése",
         "PasswordChanged": "Jelszómódosítás sikeres.",
         "PasswordRepeat": "Jelszó (ismét)",
diff --git a/plugins/Login/lang/id.json b/plugins/Login/lang/id.json
index 3d70d5c642e7f761ad8162b0e4d0885842d4c7e4..54bc376680a3971d646013b83276a6708653739d 100644
--- a/plugins/Login/lang/id.json
+++ b/plugins/Login/lang/id.json
@@ -10,7 +10,6 @@
         "LoginOrEmail": "Nama-id atau Surel",
         "LoginPasswordNotCorrect": "Nama-id dan Sandi tak sesuai",
         "LostYourPassword": "Lupa sandi?",
-        "MailPasswordChangeBody": "Hai %1$s,\n\nSebuah permintaan atur ulang sandi telah diterima dari %2$s. Untuk mengkonfirmasi pengubahan sandi, Anda dapat masuk-log dengan mandat baru Anda, kunjungi tautan berikut:\n\n%3$s\n\nCatatan: kepingan ini akan kedaluwarsa dalam 24 jam.\nDan terima kasih menggunakan Piwik!",
         "MailTopicPasswordChange": "Konfirmasi Pengubahan Sandi",
         "PasswordChanged": "Sandi Anda telah berubah.",
         "PasswordRepeat": "Sandi (ulangi)",
diff --git a/plugins/Login/lang/it.json b/plugins/Login/lang/it.json
index 7897d60adb26fb1f0698a95484103d9e026e68ae..3750a45a89705a085787ea3d1bff747c858932e6 100644
--- a/plugins/Login/lang/it.json
+++ b/plugins/Login/lang/it.json
@@ -12,7 +12,6 @@
         "LoginOrEmail": "Nome utente o E-mail",
         "LoginPasswordNotCorrect": "Combinazione Nome utente e Password non corretta",
         "LostYourPassword": "Hai perso la password?",
-        "MailPasswordChangeBody": "Ciao %1$s,\n\nUna richiesta di reimpostazione della password è stata ricevuta da %2$s. Per confermare la modifica della password in modo da poter accedere con le nuove credenziali, visitare il seguente link:\n\n%3$s\n\nNota: questo token scade tra 24 ore.\n\nE vi ringrazio per l'utilizzo di Piwik!",
         "MailTopicPasswordChange": "Conferma Cambio Password",
         "PasswordChanged": "La tua password è stata cambiata.",
         "PasswordRepeat": "Password (ripeti)",
diff --git a/plugins/Login/lang/ja.json b/plugins/Login/lang/ja.json
index 68e2dc17ba594c36ba62a2a1b504a449f79ea4eb..779840db0ef96e2cb772ad721149470e7dc43f38 100644
--- a/plugins/Login/lang/ja.json
+++ b/plugins/Login/lang/ja.json
@@ -11,7 +11,6 @@
         "LoginOrEmail": "ユーザー名またはメールアドレス",
         "LoginPasswordNotCorrect": "ユーザー名またはパスワードが正しくありません",
         "LostYourPassword": "パスワードをお忘れですか?",
-        "MailPasswordChangeBody": "こんにちは、%1$s 。%2$s からパスワードのリセットリクエストを受け取りました。このパスワード変更を確認するには、新しい認証情報でログインし、次のリンクを訪問してください。%3$s 注)このトークンの有効期限は 24 時間です。Piwik のご利用ありがとうございます !",
         "MailTopicPasswordChange": "パスワード変更の確認",
         "PasswordChanged": "パスワードが変更されました。",
         "PasswordRepeat": "パスワード(再入力)",
diff --git a/plugins/Login/lang/ko.json b/plugins/Login/lang/ko.json
index 5b0072aed2f0781b6d2971df1ed3e8cd29607c89..48da0a8387f2db7c4034da0b68dcf1bfa39f5d32 100644
--- a/plugins/Login/lang/ko.json
+++ b/plugins/Login/lang/ko.json
@@ -12,7 +12,6 @@
         "LoginOrEmail": "아이디 또는 이메일",
         "LoginPasswordNotCorrect": "사용자이름 또는 비밀번호가 맞지 않습니다",
         "LostYourPassword": "비밀번호를 잊으셨습니까?",
-        "MailPasswordChangeBody": "안녕하세요, %1$s 님,\n\n%2$s님으로부터 비밀번호 재설정 요청을 받았습니다. 새로운 자격 증명을 이용하여 로그인할 수 있도록 다음 링크를 클릭하고 비밀번호를 변경해주세요:\n\n%3$s\n\n참고: 이 토큰은 24시간 내에 만료됩니다.\n\n그리고 Piwik을 사용하여 주셔서 감사합니다!",
         "MailTopicPasswordChange": "비밀번호 변경 확인",
         "PasswordChanged": "비밀번호가 변경되었습니다.",
         "PasswordRepeat": "비빌번호 (재입력)",
diff --git a/plugins/Login/lang/nb.json b/plugins/Login/lang/nb.json
index 20e48735ecd97e886dd324db923368b230807daf..6e83c14cbff1018c41d9c3acc2a397dde3a79f96 100644
--- a/plugins/Login/lang/nb.json
+++ b/plugins/Login/lang/nb.json
@@ -12,7 +12,6 @@
         "LoginOrEmail": "Brukernavn eller e-post",
         "LoginPasswordNotCorrect": "Feil kombinasjon av brukernavn og passord.",
         "LostYourPassword": "Glemt passord?",
-        "MailPasswordChangeBody": "Hei %1$s,\n\nDet ble mottatt en forespørsel om å tilbakestille passordet fra %2$s. For å bekrefte denne passordendringen slik at du kan logge inn på nytt, klikk på denne lenken:\n\n%3$s\n\nMerk: denne nøkkelen er kun gyldig i 24 timer.\n\nOg takk for at du bruker Piwik!",
         "MailTopicPasswordChange": "Bekreft passordendring",
         "PasswordChanged": "Passordet er endret.",
         "PasswordRepeat": "Passord (gjenta)",
diff --git a/plugins/Login/lang/nl.json b/plugins/Login/lang/nl.json
index 45a46d52f42771588dcb2c3b703a91bbf6efee77..264f248a49585e4d56a1bddabeb0ef41bf315cce 100644
--- a/plugins/Login/lang/nl.json
+++ b/plugins/Login/lang/nl.json
@@ -11,7 +11,6 @@
         "LoginOrEmail": "Login of E-mail",
         "LoginPasswordNotCorrect": "Gebruikersnaam & Wachtwoord niet correct",
         "LostYourPassword": "Wachtwoord vergeten?",
-        "MailPasswordChangeBody": "Hallo %1$s,\n\nEen wachtwoord reset verzoek was ontvangen vanaf %2$s. Om deze wachtwoord wijziging te bevestigen zodat je kan inloggen met je nieuwe login gegevens, open de volgende link:\n\n%3$s\n\nOpmerking: Deze token vervalt na 24 uur.\n\nBedankt voor het gebruik van Piwik!",
         "MailTopicPasswordChange": "Bevestig wachtwoord wijziging",
         "PasswordChanged": "Je wachtwoord is veranderd.",
         "PasswordRepeat": "Wachtwoord (herhaal)",
diff --git a/plugins/Login/lang/pt-br.json b/plugins/Login/lang/pt-br.json
index 332306ddb0695febc1369db063cef590e2f80135..ef5dd5611f1940021ca531fe568ce9ddb8743577 100644
--- a/plugins/Login/lang/pt-br.json
+++ b/plugins/Login/lang/pt-br.json
@@ -12,7 +12,6 @@
         "LoginOrEmail": "Nome de Usuário ou E-mail",
         "LoginPasswordNotCorrect": "Combinação errada de Nome de Usuário e senha.",
         "LostYourPassword": "Esqueceu a sua senha?",
-        "MailPasswordChangeBody": "Oi %1$s, um pedido de redefinição de senha foi recebida de %2$s. Para confirmar esta alteração de senha para que você possa fazer o login com suas novas credenciais, visite o seguinte link: %3$s Nota: este token expirará em 24 horas. Obrigado por usar Piwik!",
         "MailTopicPasswordChange": "Confirme Alteração de Senha",
         "PasswordChanged": "Sua senha foi alterada.",
         "PasswordRepeat": "Senha (repetir)",
diff --git a/plugins/Login/lang/ro.json b/plugins/Login/lang/ro.json
index e60867324d91ae892cbd82677974df46732454a3..743855b8a1a516e0a99542f4d3f3d24f389a8b5f 100644
--- a/plugins/Login/lang/ro.json
+++ b/plugins/Login/lang/ro.json
@@ -11,7 +11,6 @@
         "LoginOrEmail": "Login sau E-mail",
         "LoginPasswordNotCorrect": "Numele sau parola sunt greÅŸite.",
         "LostYourPassword": "Ai pierdut parola?",
-        "MailPasswordChangeBody": "Buna %1$s,\n\nO solicitare de resetare a parolei a fost primita de la %2$s. Pentru a confirma această schimbare a parolei, si să va puteți conecta cu noile acreditări, accesați link-ul următor:\n\n%3$s\n\nNotă: acest simbol va expira în 24 de ore..\n\nVa mulțumim pentru utilizarea Piwik!",
         "MailTopicPasswordChange": "Confirmă schimbarea parolei",
         "PasswordChanged": "Parola ta a fost schimbată",
         "PasswordRepeat": "Parolă (repetă)",
diff --git a/plugins/Login/lang/ru.json b/plugins/Login/lang/ru.json
index b143491922a6d4b7028ec6ec0d8c6f905b2349d9..26b580344cd446f58f83f239a7d6d45f2a47e019 100644
--- a/plugins/Login/lang/ru.json
+++ b/plugins/Login/lang/ru.json
@@ -11,7 +11,6 @@
         "LoginOrEmail": "Имя пользователя или E-mail",
         "LoginPasswordNotCorrect": "Логин или пароль неверны",
         "LostYourPassword": "Потеряли пароль?",
-        "MailPasswordChangeBody": "Привет %1$s, был зафиксирован сброс пароля от %2$s. Чтобы подтвердить смену пароля, залогиньтесь под новыми авторизационными данными по этой ссылке: %3$s Подсказка: ссылка перестанет действовать через 24 часа. И спасибо вам за то, что пользуетесь Piwik!",
         "MailTopicPasswordChange": "Подтвердите смену пароля",
         "PasswordChanged": "Ваш пароль был изменен.",
         "PasswordRepeat": "Пароль еще раз",
diff --git a/plugins/Login/lang/sl.json b/plugins/Login/lang/sl.json
index 7c83e0c2b42270668e61038e9debbb49ba013ec5..94eb620fd716304e41a8a33f54dc487e1b1e170e 100644
--- a/plugins/Login/lang/sl.json
+++ b/plugins/Login/lang/sl.json
@@ -9,7 +9,6 @@
         "LoginOrEmail": "Uporabniško ime ali E-mail",
         "LoginPasswordNotCorrect": "Napačna kombinacija uporabniškega imena in gesla.",
         "LostYourPassword": "Ste pozabili geslo?",
-        "MailPasswordChangeBody": "Pozdravljen\/-a %1$s,\n\ns strani %2$s je bil prejet zahtevek za zamenjavo gesla. Za potrditev verodostojnosti te zahteve, prosimo sledite povezavi:\n\n%3$s\n\nOpozorilo: ta žeton bo potekel po 24-ih urah.\n\nHvala, ker uporabljate Piwik!",
         "MailTopicPasswordChange": "Potrdite spremembo gesla",
         "PasswordChanged": "Vaše geslo je bilo spremenjeno.",
         "PasswordRepeat": "Geslo (ponovno)",
diff --git a/plugins/Login/lang/sr.json b/plugins/Login/lang/sr.json
index 69ef62ef763b64e35d2c89c50eb8ae95930c1b06..219a6f58f8f2efd3b3edef7b50b6dbe5672cbeea 100644
--- a/plugins/Login/lang/sr.json
+++ b/plugins/Login/lang/sr.json
@@ -11,7 +11,6 @@
         "LoginOrEmail": "Korisničko ime ili elektronska adresa",
         "LoginPasswordNotCorrect": "Korisničko ime i lozinka nisu ispravni",
         "LostYourPassword": "Zaboravili ste lozinku?",
-        "MailPasswordChangeBody": "Pozdrav %1$s. Sa %2$s je poslat zahtev za resetovanje lozinke. Ukoliko želite da promenite lozinku kako biste mogli da se ponovo prijavite na sistem, otvorite sledeći link: %3$s Ovaj token je validan naredna 24 sata.",
         "MailTopicPasswordChange": "Potvrdite promenu lozinke",
         "PasswordChanged": "Vaša lozinka je promenjena.",
         "PasswordRepeat": "Lozinka (ponovo)",
diff --git a/plugins/Login/lang/sv.json b/plugins/Login/lang/sv.json
index 8590790862df31bb9fe25ecebb2affb376389830..6aea11e06c9a0c658717f7065f0db49eee0fdc60 100644
--- a/plugins/Login/lang/sv.json
+++ b/plugins/Login/lang/sv.json
@@ -11,7 +11,6 @@
         "LoginOrEmail": "Användarnamn eller e-postadress",
         "LoginPasswordNotCorrect": "Användarnamn & Lösenord är inte korrekta",
         "LostYourPassword": "Glömt ditt lösenord?",
-        "MailPasswordChangeBody": "Hej %1$s,\n\nEn begäran om att återställa ditt lösenord togs emot från %2$s. Besök följande länk för att bekräfta lösenordsbytet och göra det möjligt att logga in med dina nya uppgifter:\n\n%3$s\n\nNotera: den här förfrågan kommer att upphöra om 24 timmar.\n\nTack för att du använder Piwik!",
         "MailTopicPasswordChange": "Bekräfta byte av lösenord",
         "PasswordChanged": "Ditt lösenord har ändrats.",
         "PasswordRepeat": "Lösenord (bekräfta)",
diff --git a/plugins/Login/lang/tr.json b/plugins/Login/lang/tr.json
index 981d278bf013e0ae239ab6be80db56e4d7ed8d60..1ba717c60b2c77107dd8f10603420b0d7990affd 100644
--- a/plugins/Login/lang/tr.json
+++ b/plugins/Login/lang/tr.json
@@ -2,6 +2,9 @@
     "Login": {
         "ConfirmationLinkSent": "Onaylama bağlantısı gelen kutunuza gönderildi. Şifre değişikliğinı onaylamak için e-posta hesabınızı kontrol edin ve bağlantıyı ziyaret edin.",
         "ContactAdmin": "Olası nedeni: Sunucunuzda mail() fonksiyonunu devre dışı bırakmış olabilir. <br \/>Lütfen Piwik yöneticinizle iletişime geçiniz.",
+        "ExceptionInvalidSuperUserAccessAuthenticationMethod": "'%s' mekanizması kullanılarak bir süper kullanıcı girişi yetkilendirilemez.",
+        "ExceptionPasswordMD5HashExpected": "Bu ÅŸifre parametresi ÅŸifrenin MD5 ile hashlenmiÅŸ halini beklemektedir.",
+        "InvalidNonceOrHeadersOrReferrer": "Form güvenliği sağlanamadı. Lütfen formu tekrar yükleyin ve çerezlerin aktif olduğundan emin olun. Eğer bir proxy sunucusu kullanıyorsanız, %2$s proxy başlığını kabul etmek için Piwik'i %1$s olarak ayarlamalısınız. Bununla birlikte Referans başlaığınızın doğru gönderildiğini kontrol edin.",
         "InvalidOrExpiredToken": "Güvenlik kodu yanlış yada süresi dolmuş.",
         "InvalidUsernameEmail": "Geçersiz kullanıcı adı ve\/veya e-posta adresi",
         "LogIn": "Oturum aç",
diff --git a/plugins/Login/lang/vi.json b/plugins/Login/lang/vi.json
index f8274e299b580f24b312b91d32bab96f3c7f56af..924a7e60bc7ce8acad1832b6ea1e4ed4b4289648 100644
--- a/plugins/Login/lang/vi.json
+++ b/plugins/Login/lang/vi.json
@@ -10,7 +10,6 @@
         "LoginOrEmail": "Tên hoặc e-mail truy cập",
         "LoginPasswordNotCorrect": "Sai tên hoặc mật khẩu truy cập",
         "LostYourPassword": "Mật khẩu truy cập của bạn bị mất phải không?",
-        "MailPasswordChangeBody": "Xin chào %1$s, một yêu cầu đặt lại mật khẩu đã nhận được từ %2$s. Để xác nhận thay đổi mật khẩu này vậy thì bạn có thể đăng nhập với các thông tin chi tiết mới của bạn, hãy truy cập vào link sau đây: %3$s Lưu ý: token này sẽ hết hạn trong 24 giờ. Và cảm ơn bạn đã sử dụng Piwik!",
         "MailTopicPasswordChange": "Xác nhận thay đổi mật khẩu",
         "PasswordChanged": "Mật khẩu của bạn đã được thay đổi",
         "PasswordRepeat": "Mật khẩu (lặp lại)",
diff --git a/plugins/Login/lang/zh-cn.json b/plugins/Login/lang/zh-cn.json
index 1b128e914d387376544877bca50dab1d84e47d01..3a2dd8aa477bec27c0b6ec0bd3bbf65315cdf226 100644
--- a/plugins/Login/lang/zh-cn.json
+++ b/plugins/Login/lang/zh-cn.json
@@ -10,7 +10,6 @@
         "LoginOrEmail": "用户名或邮件地址",
         "LoginPasswordNotCorrect": "用户名或密码不正确!",
         "LostYourPassword": "忘记密码了?",
-        "MailPasswordChangeBody": "您好 %1$s,\n\n重置密码的请求来自 %2$s。要确认密码修改,请访问下面的链接:\n\n%3$s\n\n提示: 本链接24小时后失效。\n\n感谢您使用 Piwik!",
         "MailTopicPasswordChange": "密码修改确认",
         "PasswordChanged": "您的密码已修改。",
         "PasswordRepeat": "密码(重复)",
diff --git a/plugins/MobileAppMeasurable/lang/sq.json b/plugins/MobileAppMeasurable/lang/sq.json
new file mode 100644
index 0000000000000000000000000000000000000000..d1bc97551c4c680fdea901dc4ba724d8f838e2bc
--- /dev/null
+++ b/plugins/MobileAppMeasurable/lang/sq.json
@@ -0,0 +1,6 @@
+{
+    "MobileAppMeasurable": {
+        "MobileApp": "Aplikacion Celulari",
+        "MobileApps": "Aplikacione Celulari"
+    }
+}
\ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/sq.json b/plugins/MobileMessaging/lang/sq.json
new file mode 100644
index 0000000000000000000000000000000000000000..4cb815e3f1adcba60766fd60277a5bb2ff472d39
--- /dev/null
+++ b/plugins/MobileMessaging/lang/sq.json
@@ -0,0 +1,8 @@
+{
+    "MobileMessaging": {
+        "Exception_UnknownProvider": "Emër mundësuesi '%1$s' i panjohur. Provoni më mirë një nga vijuesit: %2$s.",
+        "PhoneNumbers": "Numra Telefonash",
+        "Settings_APIKey": "Kyç API-sh",
+        "Settings_CountryCode": "Kod Vendi"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Morpheus/javascripts/piwikHelper.js b/plugins/Morpheus/javascripts/piwikHelper.js
index 1e413fba146c82ee76563e6e14296037ca271621..ca88cee2d5c7318b9a17df23e173b301ec0c5063 100644
--- a/plugins/Morpheus/javascripts/piwikHelper.js
+++ b/plugins/Morpheus/javascripts/piwikHelper.js
@@ -7,28 +7,11 @@
 
 function _pk_translate(translationStringId, values) {
 
-    function sprintf (translation, values) {
-        var index = 0;
-        return (translation+'').replace(/(%(.\$)?s+)/g, function(match, number) {
-
-            var replaced = match;
-            if (match != '%s') {
-                index = parseInt(match.substr(1, 1)) - 1;
-            }
-
-            if (typeof values[index] != 'undefined') {
-                replaced = values[index];
-            }
-
-            index++;
-            return replaced;
-        });
-    }
-
     if( typeof(piwik_translations[translationStringId]) != 'undefined' ){
         var translation = piwik_translations[translationStringId];
         if (typeof values != 'undefined' && values && values.length) {
-            return sprintf(translation, values);
+            values.unshift(translation);
+            return sprintf.apply(null, values);
         }
 
         return translation;
diff --git a/plugins/Morpheus/stylesheets/main.less b/plugins/Morpheus/stylesheets/main.less
index 5d37b9ab2bad76327ef368e6ea8630a8904e2a44..94e08389f918e597553a2dd49b5d1aa79e2b94fe 100644
--- a/plugins/Morpheus/stylesheets/main.less
+++ b/plugins/Morpheus/stylesheets/main.less
@@ -197,9 +197,17 @@ table.entityTable tr td a:hover {
     }
     > ul > li {
       white-space: nowrap;
-      margin-right: 0px;
+      margin-right: 0;
       a {
-        padding-left: 0;
+        font-family: Verdana, sans-serif;
+        font-size: 11px;
+        line-height: 12px;
+        display: inline-block;
+        width: 100%;
+        padding: 11px 19px 10px 0;
+        white-space: nowrap;
+        cursor: pointer;
+        text-transform: uppercase;
       }
       &.active {
         a {
diff --git a/plugins/MultiSites/lang/sk.json b/plugins/MultiSites/lang/sk.json
index d17c44309e03e46d65c689d6a00f99b5c87d7842..2725f90156c693456b594be6629bffae0b024714 100644
--- a/plugins/MultiSites/lang/sk.json
+++ b/plugins/MultiSites/lang/sk.json
@@ -1,5 +1,6 @@
 {
     "MultiSites": {
-        "Evolution": "Vývoj"
+        "Evolution": "Vývoj",
+        "Pagination": "%1$s - %2$s of %3$s"
     }
 }
\ No newline at end of file
diff --git a/plugins/MultiSites/lang/zh-cn.json b/plugins/MultiSites/lang/zh-cn.json
index 5205453aaf21682c50a4cc197afffa39320f65fd..e522f42ef28da27ca375cf068ef4c0b14ea505f8 100644
--- a/plugins/MultiSites/lang/zh-cn.json
+++ b/plugins/MultiSites/lang/zh-cn.json
@@ -1,6 +1,7 @@
 {
     "MultiSites": {
         "Evolution": "趋势",
-        "TopLinkTooltip": "比较所有网站的分析数据"
+        "TopLinkTooltip": "比较所有网站的分析数据",
+        "Pagination": "%1$s - %2$s of %3$s"
     }
 }
\ No newline at end of file
diff --git a/plugins/Overlay/lang/sq.json b/plugins/Overlay/lang/sq.json
index 73a845802b0ff99060446a480b6c4708517af878..8e434a3547c98d8dbf12f2dce6908b8ee895bf9b 100644
--- a/plugins/Overlay/lang/sq.json
+++ b/plugins/Overlay/lang/sq.json
@@ -1,5 +1,11 @@
 {
     "Overlay": {
-        "Location": "Vend"
+        "Clicks": "%s klikime",
+        "Domain": "Përkatësi",
+        "Link": "Lidhje",
+        "Location": "Vend",
+        "NoData": "S’ka të dhëna për këtë faqe gjatë periudhës së përzgjedhur.",
+        "OneClick": "1 klikim",
+        "OpenFullScreen": "Kalo sa krejt ekrani (pa anështyllë)"
     }
 }
\ No newline at end of file
diff --git a/plugins/PiwikPro/Widgets.php b/plugins/PiwikPro/Widgets.php
new file mode 100644
index 0000000000000000000000000000000000000000..f8e007aa074f3a84fe0bc690adf1549c547b23ba
--- /dev/null
+++ b/plugins/PiwikPro/Widgets.php
@@ -0,0 +1,82 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\PiwikPro;
+
+use Piwik\Piwik;
+use Piwik\PiwikPro\Advertising;
+use Piwik\Plugins\ExampleRssWidget\RssRenderer;
+use Piwik\View;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+    protected $category = 'About Piwik';
+
+    /**
+     * @var Advertising
+     */
+    private $advertising;
+
+    /**
+     * @var Promo
+     */
+    private $promo;
+
+    public function __construct(Advertising $advertising, Promo $promo)
+    {
+        $this->advertising = $advertising;
+        $this->promo = $promo;
+    }
+
+    protected function init()
+    {
+        if ($this->advertising->arePiwikProAdsEnabled()) {
+            $this->addWidget('PiwikPro_WidgetBlogTitle', 'rssPiwikPro');
+            $this->addWidget('PiwikPro_WidgetPiwikProAd', 'promoPiwikPro');
+        }
+    }
+
+    public function rssPiwikPro()
+    {
+        try {
+            $rss = new RssRenderer('https://piwik.pro/feed/');
+            $rss->showDescription(true);
+
+            return $rss->get();
+
+        } catch (\Exception $e) {
+
+            return $this->error($e);
+        }
+    }
+
+    public function promoPiwikPro()
+    {
+        $view = new View('@PiwikPro/promoPiwikProWidget');
+
+        $promo = $this->promo->getContent();
+
+        $view->ctaLinkUrl = $this->advertising->getPromoUrlForOnPremises('PromoWidget', $promo['campaignContent']);
+        $view->ctaText = $promo['text'];
+        $view->ctaLinkTitle = $this->promo->getLinkTitle();
+
+        return $view->render();
+    }
+
+    /**
+     * @param \Exception $e
+     * @return string
+     */
+    private function error($e)
+    {
+        return '<div class="pk-emptyDataTable">'
+             . Piwik::translate('General_ErrorRequest', array('', ''))
+             . ' - ' . $e->getMessage() . '</div>';
+    }
+
+}
diff --git a/plugins/PrivacyManager/lang/sq.json b/plugins/PrivacyManager/lang/sq.json
index eb6f8e6a30afca3f0b9110fcc9e24e1130f8e9fb..b9985194d3c5902017cb9b98b09a3b10c3d32897 100644
--- a/plugins/PrivacyManager/lang/sq.json
+++ b/plugins/PrivacyManager/lang/sq.json
@@ -1,10 +1,12 @@
 {
     "PrivacyManager": {
         "AnonymizeIpDescription": "Përzgjidhni \"Po\" nëse doni që Piwik-u të mos gjurmojë adresa IP të përcaktuara qartë.",
-        "AnonymizeIpInlineHelp": "Anonimizoje bajtin e fundit të adresave IP të vizitorëve, në pajtim me ligjet\/udhëzimet vendore për vetësinë.",
+        "AnonymizeIpInlineHelp": "Anonimizoje bajtin(et) e fundit të adresave IP të vizitorëve, në pajtim me ligjet\/udhëzimet vendore mbi privatësinë.",
         "AnonymizeIpMaskLengtDescription": "Përzgjidhni sa bajte të maskohen te IP-ja e vizitorit.",
         "AnonymizeIpMaskLength": "%1$s bajt(e) - p.sh. %2$s",
         "ClickHereSettings": "Klikoni këtu që të shkoni te rregullimet mbi %s.",
+        "CurrentDBSize": "Madhësia e tanishme e bazës së të dhënave",
+        "DeleteDataInterval": "Fshiji të dhënat e vjetra çdo",
         "DeleteLogDescription2": "Kur aktivizoni fshirjen e vetvetishme të regjistrimeve, duhet të siguroheni që janë përpunuar krejt raportet e ditës së mëparshme, që të mos humbni të dhëna.",
         "DeleteLogInfo": "Regjistrimet nga tabelat vijuese do të fshihen: %s",
         "DeleteLogsOlderThan": "Fshi regjistrime më të vjetër se",
@@ -14,7 +16,7 @@
         "LeastDaysInput": "Ju lutem, jepni një numër ditësh më të madh se %s.",
         "MenuPrivacySettings": "Privatësi",
         "NextDelete": "Fshirja pasuese është planifikuar më",
-        "Teaser": "Në këtë faqe, mund ta përshtatni Piwik-un që privatësi në të të jetë në pajtim me legjislacionin në fuqi, duke: %1$s anonimizuar IP-të e vizitorëve%2$s, %3$s hequr automatikisht nga baza e të dhënave regjistrime të vjetër vizitorësh%4$s, dhe %5$s duke ofruar një mekanizëm Opt-out për site-in tuaj web%6$s.",
+        "Teaser": "Në këtë faqe, mund ta përshtatni Piwik-un që privatësia në të të jetë në pajtim me legjislacionin në fuqi, duke: %1$s anonimizuar IP-të e vizitorëve%2$s, %3$s hequr automatikisht nga baza e të dhënave regjistrime të vjetër vizitorësh%4$s, dhe %5$s duke ofruar një mekanizëm Opt-out për sajtin tuaj%6$s.",
         "TeaserHeadline": "Rregullime Privatësie",
         "UseAnonymizeIp": "Anonimizoni adresat IP të Vizitorëve",
         "UseDeleteLog": "Fshiji rregullisht te baza e të dhënave regjistrimet e vjetra të përdoruesve"
diff --git a/plugins/PrivacyManager/lang/sv.json b/plugins/PrivacyManager/lang/sv.json
index 5a8e1599f2491bfe5a43fef24a0110f4ca7d4377..a45b254e04c6f74b3d3fc78a2fa844a18905e405 100644
--- a/plugins/PrivacyManager/lang/sv.json
+++ b/plugins/PrivacyManager/lang/sv.json
@@ -51,6 +51,7 @@
         "PurgeNow": "Rensa databasen nu",
         "PurgeNowConfirm": "Du är på väg att permanent radera data från din databas. Är du säker på att du vill fortsätta?",
         "PurgingData": "Rensar data...",
+        "RecommendedForPrivacy": "Rekommenderas för sekretess",
         "ReportsDataSavedEstimate": "Databasstorlek",
         "SaveSettingsBeforePurge": "Du har ändrat inställningarna för radering av loggdata. Spara dem innan du startar en utrensning.",
         "SeeAlsoOurOfficialGuidePrivacy": "Se också vår allmänna guide: %1$sWeb Analytics Privacy%2$s",
diff --git a/plugins/Provider/lang/sq.json b/plugins/Provider/lang/sq.json
index f533c0ef17e417193c39bf45aed03fb4a7a31793..90e8dff6548fa9d6392019bdc2f01bb206c81128 100644
--- a/plugins/Provider/lang/sq.json
+++ b/plugins/Provider/lang/sq.json
@@ -1,7 +1,8 @@
 {
     "Provider": {
         "ColumnProvider": "Mundësues",
-        "ProviderReportDocumentation": "Ky raport ju tregon cilët Mundësuesa Shërbimi Internet kanë përdorur vizitorët tuaj për të hyrë te site-i web. Për më tepër hollësi mund të klikoni mbi emrin e një mundësuesi. %s Nëse Piwik nuk arrin ta përcaktojë mundësuesin për një vizitor, e tregon thjesht si IP.",
-        "WidgetProviders": "Mundësuesa"
+        "ProviderReportDocumentation": "Ky raport ju tregon cilët Mundësues Shërbimi Internet kanë përdorur vizitorët tuaj për të hyrë te sajti. Për më tepër hollësi mund të klikoni mbi emrin e një mundësuesi. %s Nëse Piwik s’arrin ta përcaktojë mundësuesin për një vizitor, e tregon thjesht si IP.",
+        "WidgetProviders": "Mundësuesa",
+        "ProviderReportFooter": "Mundësues i panjohur do të thotë që adresa IP s’u kërkua dot."
     }
 }
\ No newline at end of file
diff --git a/plugins/Provider/lang/tr.json b/plugins/Provider/lang/tr.json
index 4d9ea04e7d715e28e17b144563d835ab5a75cdaf..d81202f4cb509c4e96b37abad8776f1d76230f5a 100644
--- a/plugins/Provider/lang/tr.json
+++ b/plugins/Provider/lang/tr.json
@@ -1,6 +1,9 @@
 {
     "Provider": {
         "ColumnProvider": "Sağlayıcı",
-        "WidgetProviders": "Sağlayıcılar"
+        "PluginDescription": "Ziyaretçilerin İnternet Servis Sağlayıcılarını raporla",
+        "ProviderReportDocumentation": "Bu rapor ziyaretçilerinin internete ulaşmakta hangi internet servis sağlayıcısının kullandığını gösterir. Daha detaylı bilgi almak için sağlayıcı ismine tıklayabilrsin. Eğer Piwik ziyaretçi servis sağlayıcısını bulamazsa IP olarak listeler %s.",
+        "WidgetProviders": "Sağlayıcılar",
+        "ProviderReportFooter": "Bilinmeyen sağlayıcı demek IP adresi bulunamamış demektir"
     }
 }
\ No newline at end of file
diff --git a/plugins/QueuedTracking b/plugins/QueuedTracking
index 5277167591c602d88ae8f4b065a314e670e0814f..39b949806240c93beef5d0308988f608b6437886 160000
--- a/plugins/QueuedTracking
+++ b/plugins/QueuedTracking
@@ -1 +1 @@
-Subproject commit 5277167591c602d88ae8f4b065a314e670e0814f
+Subproject commit 39b949806240c93beef5d0308988f608b6437886
diff --git a/plugins/Referrers/lang/tr.json b/plugins/Referrers/lang/tr.json
index 522523b58be79bb48fb4b272794999c63123ba3e..5d5604cd5f070c375a7bba41a2eb6c928567bfef 100644
--- a/plugins/Referrers/lang/tr.json
+++ b/plugins/Referrers/lang/tr.json
@@ -10,6 +10,7 @@
         "DistinctCampaigns": "farklı kampanyalar",
         "Keywords": "Anahtar Kelimeler",
         "Referrers": "Yönlendirmeler",
+        "Socials": "Sosyal AÄŸlar",
         "SubmenuSearchEngines": "Arama Motorları ve Anahtar Kelimeler",
         "SubmenuWebsites": "Websiteleri ve Sosyal Platform",
         "TypeCampaigns": "%s kampanyalarından",
diff --git a/plugins/Resolution/lang/tr.json b/plugins/Resolution/lang/tr.json
index 91a8e73aa4359267ea64c96dec0710ec7e95b276..e24e8020cfd3b8923548cd076fc23064c185c579 100644
--- a/plugins/Resolution/lang/tr.json
+++ b/plugins/Resolution/lang/tr.json
@@ -3,6 +3,7 @@
         "ColumnConfiguration": "Konfigürasyon",
         "ColumnResolution": "Çözünürlük",
         "Configurations": "Konfigürasyonları",
+        "PluginDescription": "Ziyaretçinin ekran çözünürlüklerini raporla",
         "Resolutions": "Çözünürlükler",
         "WidgetGlobalVisitors": "Global ziyaretçi konfikasyonu",
         "WidgetResolutions": "Ekran çözünürlükleri"
diff --git a/plugins/SEO/lang/sq.json b/plugins/SEO/lang/sq.json
index 07e4496ccde18a18fcb2165e24e927836a8ea518..cf6e1cf5975bd9834c6ebc679b4399cb459d269f 100644
--- a/plugins/SEO/lang/sq.json
+++ b/plugins/SEO/lang/sq.json
@@ -1,6 +1,7 @@
 {
     "SEO": {
         "AlexaRank": "Renditje Alexa",
+        "Dmoz": "Zëra DMOZ",
         "DomainAge": "Moshë Përkatësie",
         "Rank": "Renditje",
         "SeoRankings": "Renditje SEO",
diff --git a/plugins/SEO/lang/sv.json b/plugins/SEO/lang/sv.json
index 15184f8251dbbcb0f8d94a3b0d46ec8d4f517119..c36569eb1ead44f4ba4fd82be21a6370966be8de 100644
--- a/plugins/SEO/lang/sv.json
+++ b/plugins/SEO/lang/sv.json
@@ -1,5 +1,6 @@
 {
     "SEO": {
+        "PluginDescription": "Detta plugin framställer och visar SEO-värden: Alexa webbranking , Google Pagerank , antalet indexerade sidor och länkar för den valda webbplatsen.",
         "AlexaRank": "Alexa Rank",
         "Bing_IndexedPages": "Bing indexerade sidor",
         "Dmoz": "DMOZ poster",
diff --git a/plugins/SEO/lang/tr.json b/plugins/SEO/lang/tr.json
index 5810865df909d029e8c3b1e0cc2de60a3a243305..57301d3a9240102ae517c3a564043e960ea90ec7 100644
--- a/plugins/SEO/lang/tr.json
+++ b/plugins/SEO/lang/tr.json
@@ -1,7 +1,7 @@
 {
     "SEO": {
         "AlexaRank": "Alexa Sırası",
-        "DomainAge": "Alan Ad Yaşı",
+        "DomainAge": "Alan Adı Yaşı",
         "Rank": "Sıralama",
         "SeoRankings": "SEO Sıralamaları",
         "SEORankingsFor": "'%s'için SEO Sıralama"
diff --git a/plugins/ScheduledReports/lang/sq.json b/plugins/ScheduledReports/lang/sq.json
index 2adc7d6ab301d4a2aed6da93a9fb2aafff31faae..ec8e9db5d43add1f3151374e38df83f905b7b0b4 100644
--- a/plugins/ScheduledReports/lang/sq.json
+++ b/plugins/ScheduledReports/lang/sq.json
@@ -26,7 +26,7 @@
         "SendReportTo": "Raportin dërgoje te",
         "SentToMe": "Dërgoma mua",
         "TableOfContent": "Listë raportesh",
-        "ThereIsNoReportToManage": "Nuk ka raport që mund të administrohet për site-in web %s",
+        "ThereIsNoReportToManage": "S’ka raport që mund të administrohet për sajtin %s",
         "TopOfReport": "Mbrapsht në krye",
         "UpdateReport": "Përditësoje Raportin",
         "WeeklyScheduleHelp": "Planifikim javor: raporti do të dërgohet të Hënën e parë të çdo jave."
diff --git a/plugins/ScheduledReports/lang/tr.json b/plugins/ScheduledReports/lang/tr.json
index fbe69ab8da0bd3e87851da76385e790d98198028..b7955341bd272153ea6e8543708a0cdf058c0e2a 100644
--- a/plugins/ScheduledReports/lang/tr.json
+++ b/plugins/ScheduledReports/lang/tr.json
@@ -25,6 +25,7 @@
         "PiwikReports": "Piwik Raporları",
         "PleaseFindAttachedFile": "Lütfen %2$s için %1$s de eklenen dosyayı bul",
         "SentFromX": "%s'den gönder",
+        "PleaseFindBelow": "%2$s için %1$s raporunuzu lütfen altta bulun",
         "PluginDescription": "Özelleşmiş rapor yarat ve onları günlük, aylık veya yıllık olarak bir veya daha fazla kişiye gönderilmek üzere zamanla. Birçok rapor formatı desteklenmektedir (html, pdf, csv, images)",
         "ReportFormat": "Rapor Formatı",
         "ReportHour": "Raporu %s'de gönder",
@@ -34,6 +35,7 @@
         "ReportType": "Raporu aracılığı ile gönder",
         "ReportUpdated": "Rapor güncellendi",
         "Segment_Deletion_Error": "Bu segment silinemez veya görünmez hale getirilemez çünkü %s raporu(lar) üretimi için kullanılmaktadır. Lütfen rapor(lar) dan bu segmenti çıkartıkdan sonra tekrar deneyin.",
+        "Segment_Help": "Bu email rapordaki datalar da uygulanmak üzere mevcut özel bölümünüzü kullanabiliriniz. Gösterge panelinizdeki %1$s(açmak için tıklayın)%2$s sonra şuna tıklayın \"%3$s\" ve sonra \"%4$s\" ile bölüm yaratabilir veya değiştirebilirsiniz.",
         "SegmentAppliedToReports": "Rapor sadece '%s' bölümü için hazırlanacaktır.",
         "SendReportNow": "Raporu şimdi gönder",
         "SendReportTo": "Raporu gönder",
diff --git a/plugins/SegmentEditor/lang/bg.json b/plugins/SegmentEditor/lang/bg.json
index 12a7871a3ee3e8ca894c646f22fda1b85d3e446d..faf7f322fa2057fc74cdce69a80510ebf149d92d 100644
--- a/plugins/SegmentEditor/lang/bg.json
+++ b/plugins/SegmentEditor/lang/bg.json
@@ -14,7 +14,6 @@
         "SaveAndApply": "Запази & Приложи",
         "SegmentDisplayedAllWebsites": "всички сайтове",
         "SegmentDisplayedThisWebsiteOnly": "само този уебсайт",
-        "SegmentIsDisplayedForWebsite": "и се показва за",
         "SegmentNotApplied": "Сегмент '%s' не е приложен",
         "ThisSegmentIsVisibleTo": "Този сегмент е видим за:",
         "VisibleToAllUsers": "всички потребители",
diff --git a/plugins/SegmentEditor/lang/cs.json b/plugins/SegmentEditor/lang/cs.json
index 20a1dccf7f4d292ccfaad6305b2191fb12529724..9751d2b84828b171e500f6219f103abdc4d5e97a 100644
--- a/plugins/SegmentEditor/lang/cs.json
+++ b/plugins/SegmentEditor/lang/cs.json
@@ -17,7 +17,7 @@
         "SaveAndApply": "Uložit a použít",
         "SegmentDisplayedAllWebsites": "všechny weby",
         "SegmentDisplayedThisWebsiteOnly": "pouze tento web",
-        "SegmentIsDisplayedForWebsite": "A zobrazený po",
+        "SegmentIsDisplayedForWebsite": "a zpracováno pro",
         "SegmentNotApplied": "Segment %s není aplikován",
         "SegmentNotAppliedMessage": "Požadujete data pro vlastní segment %s, ale konfigurace Piwiku aktuálně nedovoluje z důvodů výkonu zpracování hlášení v reálném čase.",
         "SelectSegmentOfVisits": "Vyberte segment návštěv:",
diff --git a/plugins/SegmentEditor/lang/da.json b/plugins/SegmentEditor/lang/da.json
index 6420bc5ebf9a8872a358ff9f46c252de422de0cd..19d26aacbb31113b19062d36308e57e8cd403070 100644
--- a/plugins/SegmentEditor/lang/da.json
+++ b/plugins/SegmentEditor/lang/da.json
@@ -15,7 +15,6 @@
         "SaveAndApply": "Gem og anvend",
         "SegmentDisplayedAllWebsites": "alle websteder",
         "SegmentDisplayedThisWebsiteOnly": "kun dette websted",
-        "SegmentIsDisplayedForWebsite": "og vises for",
         "SegmentNotApplied": "Segment '%s' anvendes ikke",
         "SegmentNotAppliedMessage": "Du beder om data til brugerdefineret segment '%s', Piwik konfigurationen forhindrer tidstro behandling af rapporter pga ydeevne grunde.",
         "ThisSegmentIsVisibleTo": "Segmentet er synligt for:",
diff --git a/plugins/SegmentEditor/lang/de.json b/plugins/SegmentEditor/lang/de.json
index ffd8bf232175a17a1f886aff1935dd46bddb1896..7e9a75ef964800896300a23d2aeb532f047289df 100644
--- a/plugins/SegmentEditor/lang/de.json
+++ b/plugins/SegmentEditor/lang/de.json
@@ -17,13 +17,15 @@
         "SaveAndApply": "Speichern & Ãœbernehmen",
         "SegmentDisplayedAllWebsites": "alle Websites",
         "SegmentDisplayedThisWebsiteOnly": "nur diese Website",
-        "SegmentIsDisplayedForWebsite": "und wird angezeigt für",
+        "SegmentIsDisplayedForWebsite": "und wird berechnet für",
         "SegmentNotApplied": "Segment '%s' nicht angewendet",
         "SegmentNotAppliedMessage": "Sie fragen Daten für das benutzerdefinierte Segment '%s' an, die Piwik-Konfiguration verhindert jedoch aktuell Echtzeit-Verarbeitung von Berichten aus Performance-Gründen.",
+        "SelectSegmentOfVisits": "Wählen Sie ein Segment an Besuchen aus:",
         "ThisSegmentIsVisibleTo": "Dieses Segment ist sichtbar für:",
         "VisibleToAllUsers": "alle Benutzer",
         "VisibleToMe": "mich",
         "YouMayChangeSetting": "Alternativ können Sie die Einstellung in der Konfigurationsdatei (%1$s) ändern, oder ändern Sie dieses Segment und wählen '%2$s'.",
+        "VisibleToSuperUser": "Für Sie sichtbar, da Sie Hauptadministrator-Berechtigung haben",
         "SharedWithYou": "Mit dir geteilt",
         "YouMustBeLoggedInToCreateSegments": "Sie müssen sich anmelden um eigene Besuchersegmente anzulegen oder zu bearbeiten.",
         "YouDontHaveAccessToCreateSegments": "Sie haben nicht die benötigten Berechtigungen um Segmente anzulegen und zu bearbeiten.",
diff --git a/plugins/SegmentEditor/lang/el.json b/plugins/SegmentEditor/lang/el.json
index d4ed54b97798ad704bad61651b8f724df0dd920d..96d5e2256b321d8c713eef60b9029f1eb14ccf82 100644
--- a/plugins/SegmentEditor/lang/el.json
+++ b/plugins/SegmentEditor/lang/el.json
@@ -17,7 +17,7 @@
         "SaveAndApply": "Αποθήκευση και εφαρμογή",
         "SegmentDisplayedAllWebsites": "όλους τους ιστοτόπους",
         "SegmentDisplayedThisWebsiteOnly": "μόνο αυτόν τον ιστοτόπο",
-        "SegmentIsDisplayedForWebsite": "και εμφανίζεται για",
+        "SegmentIsDisplayedForWebsite": "και υπέστη επεξεργασία για",
         "SegmentNotApplied": "Το τμήμα '%s' δεν εφαρμόζεται",
         "SegmentNotAppliedMessage": "Ζητάτε δεδομένα για το Προσαρμοσμένο Τμήμα '%s', ωστόσο η τρέχουσα παραμετροποίηση του Piwik εμποδίζει την σε πραγματικό χρόνο επεξεργασία των αναφορών για λόγους απόδοσης.",
         "SelectSegmentOfVisits": "Επιλέξτε ένα τμήμα επισκέψεων:",
diff --git a/plugins/SegmentEditor/lang/en.json b/plugins/SegmentEditor/lang/en.json
index e847e3ed4b66e1c6e4df3c70c7225220f1a786da..96e36c02b77eaba69a323aa66e805d212955124e 100644
--- a/plugins/SegmentEditor/lang/en.json
+++ b/plugins/SegmentEditor/lang/en.json
@@ -17,7 +17,7 @@
         "SaveAndApply": "Save & Apply",
         "SegmentDisplayedAllWebsites": "all websites",
         "SegmentDisplayedThisWebsiteOnly": "this website only",
-        "SegmentIsDisplayedForWebsite": "and displayed for",
+        "SegmentIsDisplayedForWebsite": "and processed for",
         "SegmentNotApplied": "Segment '%s' not applied",
         "SegmentNotAppliedMessage": "You are requesting data for the Custom Segment '%s', this Piwik configuration currently prevents real time processing of reports for performance reasons.",
         "SelectSegmentOfVisits": "Select a segment of visits:",
diff --git a/plugins/SegmentEditor/lang/es.json b/plugins/SegmentEditor/lang/es.json
index fc050c4710606e4d442418950796d18b16150e60..ff1e7fd3b93fbfa03cae9e3f31a38e84aaeba505 100644
--- a/plugins/SegmentEditor/lang/es.json
+++ b/plugins/SegmentEditor/lang/es.json
@@ -16,7 +16,6 @@
         "SaveAndApply": "Guardar & aplicar",
         "SegmentDisplayedAllWebsites": "todos los sitios de internet",
         "SegmentDisplayedThisWebsiteOnly": "este sitio de internet únicamente",
-        "SegmentIsDisplayedForWebsite": "y mostrado para",
         "SegmentNotApplied": "Segmento '%s' no aplicado",
         "SegmentNotAppliedMessage": "Está solicitando datos para el segmento personalizado '%s', esta configuración de Piwik actualmente impide el proceso en tiempo real de informes por razones de rendimiento.",
         "ThisSegmentIsVisibleTo": "Este segmento es visible para:",
diff --git a/plugins/SegmentEditor/lang/et.json b/plugins/SegmentEditor/lang/et.json
index da1876cfd72eb8788ebbfa5711b7715ee6b9669d..cbde4ae07c3b468ed759523dec9ac67cc0a17847 100644
--- a/plugins/SegmentEditor/lang/et.json
+++ b/plugins/SegmentEditor/lang/et.json
@@ -12,7 +12,6 @@
         "SaveAndApply": "Salvesta ja rakenda",
         "SegmentDisplayedAllWebsites": "kõik veebilehed",
         "SegmentDisplayedThisWebsiteOnly": "ainult see veebileht",
-        "SegmentIsDisplayedForWebsite": "ja kuvatakse veebilehele",
         "ThisSegmentIsVisibleTo": "Antud segment on nähtav:",
         "VisibleToAllUsers": "kõik kasutajad",
         "VisibleToMe": "mina"
diff --git a/plugins/SegmentEditor/lang/fa.json b/plugins/SegmentEditor/lang/fa.json
index b81b7bd0605cfbb184637554c1a285263ec42ff2..08c8a77a91d227079f93e65007e99ebf968f6e28 100644
--- a/plugins/SegmentEditor/lang/fa.json
+++ b/plugins/SegmentEditor/lang/fa.json
@@ -14,7 +14,6 @@
         "SaveAndApply": "ذخیره و درخواست",
         "SegmentDisplayedAllWebsites": "تمام وب سایت ها",
         "SegmentDisplayedThisWebsiteOnly": "این وب سایت فقط",
-        "SegmentIsDisplayedForWebsite": "و برای نمایش داده",
         "ThisSegmentIsVisibleTo": "این بخش قابل رؤیت است:",
         "VisibleToAllUsers": "تمام کاربران",
         "VisibleToMe": "من",
diff --git a/plugins/SegmentEditor/lang/fi.json b/plugins/SegmentEditor/lang/fi.json
index 2f0f64fa5fd4cc24fe7f9f4a78528a615b9542e1..de726172530ac8bdbfefaf75f3fb43feafbbe6d4 100644
--- a/plugins/SegmentEditor/lang/fi.json
+++ b/plugins/SegmentEditor/lang/fi.json
@@ -15,7 +15,6 @@
         "SaveAndApply": "Tallenna ja ota käyttöön",
         "SegmentDisplayedAllWebsites": "kaikki sivut",
         "SegmentDisplayedThisWebsiteOnly": "vain tällä verkkosivulla",
-        "SegmentIsDisplayedForWebsite": "näytetään vain",
         "SegmentNotApplied": "Segmenttiä '%s' ei sovelleta",
         "ThisSegmentIsVisibleTo": "Tämä segmentti näytetään seuraaville:",
         "VisibleToAllUsers": "kaikki käyttäjät",
diff --git a/plugins/SegmentEditor/lang/fr.json b/plugins/SegmentEditor/lang/fr.json
index 52ea2941dfd623f7ea173f4143b33124e8fb42d3..1fb4502c8b2553b5c89794c4f6bfa4343e15ffe6 100644
--- a/plugins/SegmentEditor/lang/fr.json
+++ b/plugins/SegmentEditor/lang/fr.json
@@ -17,7 +17,6 @@
         "SaveAndApply": "Sauvegarder & appliquer",
         "SegmentDisplayedAllWebsites": "tous les sites web",
         "SegmentDisplayedThisWebsiteOnly": "ce site web uniquement",
-        "SegmentIsDisplayedForWebsite": "et affiché pour",
         "SegmentNotApplied": "Segment \"%s\" non appliqué",
         "SegmentNotAppliedMessage": "Vous êtes en train de demander des données for le segment personnalisé '%s', la configuration actuelle de Piwik empêche la génération en temps réelle de rapport pour des raisons de performance.",
         "SelectSegmentOfVisits": "Sélectionnez un segment de visites :",
diff --git a/plugins/SegmentEditor/lang/hi.json b/plugins/SegmentEditor/lang/hi.json
index f293d5017d97a624b42c469a384a97375dc4f8d4..623fe67f8fbdbc9ff010e39781dcc537c35ea049 100644
--- a/plugins/SegmentEditor/lang/hi.json
+++ b/plugins/SegmentEditor/lang/hi.json
@@ -16,7 +16,6 @@
         "SaveAndApply": "सहेजें और लागू करें",
         "SegmentDisplayedAllWebsites": "सभी वेबसाइटों",
         "SegmentDisplayedThisWebsiteOnly": "यह वेबसाइट केवल",
-        "SegmentIsDisplayedForWebsite": "और के लिए प्रदर्शित",
         "SegmentNotApplied": "खंड '%s' को लागू नहीं",
         "ThisSegmentIsVisibleTo": "इस खंड के लिए दिख रहा है:",
         "VisibleToAllUsers": "सभी उपयोगकर्ताओं",
diff --git a/plugins/SegmentEditor/lang/id.json b/plugins/SegmentEditor/lang/id.json
index 13a73eedfb40c0467c525c022294145e96a0143d..efbc998855be2d0e029c02f48c7a3fd358b4ed19 100644
--- a/plugins/SegmentEditor/lang/id.json
+++ b/plugins/SegmentEditor/lang/id.json
@@ -14,7 +14,6 @@
         "SaveAndApply": "Simpan dan Terapkan",
         "SegmentDisplayedAllWebsites": "seluruh situs",
         "SegmentDisplayedThisWebsiteOnly": "hanya situs ini",
-        "SegmentIsDisplayedForWebsite": "dan ditampilkan untuk",
         "ThisSegmentIsVisibleTo": "Pecahan ini tampak untuk:",
         "VisibleToAllUsers": "seluruh pengunjung",
         "VisibleToMe": "saya",
diff --git a/plugins/SegmentEditor/lang/it.json b/plugins/SegmentEditor/lang/it.json
index ef05248b2d0b84bc7e37635c3c6ec27dbeef56f9..71e0b928bcc460b1d6027a9b6ce090f96de80011 100644
--- a/plugins/SegmentEditor/lang/it.json
+++ b/plugins/SegmentEditor/lang/it.json
@@ -17,7 +17,7 @@
         "SaveAndApply": "Salva & Applica",
         "SegmentDisplayedAllWebsites": "tutti i siti",
         "SegmentDisplayedThisWebsiteOnly": "solo questo sito",
-        "SegmentIsDisplayedForWebsite": "e mostrato per",
+        "SegmentIsDisplayedForWebsite": "ed elaborato per",
         "SegmentNotApplied": "Segmento '%s' non applicato",
         "SegmentNotAppliedMessage": "Stai richiedendo i dati per il Segmento Personalizzato '%s', questa configurazione di Piwik attualmente esclude l'elaborazione in tempo reale dei report per ragioni di velocità.",
         "SelectSegmentOfVisits": "Seleziona un segmento di visite:",
diff --git a/plugins/SegmentEditor/lang/ja.json b/plugins/SegmentEditor/lang/ja.json
index d612e9594c602e15c57c959cc1de7ad46b87cd1d..d1aeca9500cc193aa1a5ac633bba53a9ccfcc1d0 100644
--- a/plugins/SegmentEditor/lang/ja.json
+++ b/plugins/SegmentEditor/lang/ja.json
@@ -16,7 +16,6 @@
         "SaveAndApply": "適用",
         "SegmentDisplayedAllWebsites": "全ウェブサイト",
         "SegmentDisplayedThisWebsiteOnly": "このウェブサイトのみ",
-        "SegmentIsDisplayedForWebsite": "表示対象の選択:",
         "SegmentNotApplied": "セグメント '%s' が適用されませんでした",
         "SegmentNotAppliedMessage": "カスタムセグメント '%s' のデータをリクエストしました。この Piwik の構成は現在、パフォーマンス上の理由からレポートのリアルタイム処理をおこないません。",
         "ThisSegmentIsVisibleTo": "このセグメント設定の表示:",
diff --git a/plugins/SegmentEditor/lang/nb.json b/plugins/SegmentEditor/lang/nb.json
index 00e9c985ce1e01e4be891a4c7225101192cbbdae..e5d5806cd73d9ab47a7312baf743c1994a43e8e8 100644
--- a/plugins/SegmentEditor/lang/nb.json
+++ b/plugins/SegmentEditor/lang/nb.json
@@ -8,7 +8,6 @@
         "OperatorOR": "ELLER",
         "SegmentDisplayedAllWebsites": "alle nettsteder",
         "SegmentDisplayedThisWebsiteOnly": "kun dette nettstedet",
-        "SegmentIsDisplayedForWebsite": "og vises for",
         "ThisSegmentIsVisibleTo": "Dette segmentet er synlig for:",
         "VisibleToAllUsers": "alle brukere",
         "VisibleToMe": "meg"
diff --git a/plugins/SegmentEditor/lang/nl.json b/plugins/SegmentEditor/lang/nl.json
index 50f8c52718b554cb1e1cb58934d8cc4a053b0615..d8c1060c172e1db28d43ae55bedd7f8f29d4fffe 100644
--- a/plugins/SegmentEditor/lang/nl.json
+++ b/plugins/SegmentEditor/lang/nl.json
@@ -16,7 +16,6 @@
         "SaveAndApply": "Bewaar & Pas Toe",
         "SegmentDisplayedAllWebsites": "alle websites",
         "SegmentDisplayedThisWebsiteOnly": "alleen deze website",
-        "SegmentIsDisplayedForWebsite": "en getoond voor",
         "SegmentNotApplied": "Segment '%s' niet toegepast",
         "SegmentNotAppliedMessage": "Je probeert data op te vragen voor aangepast segment '%s', deze Piwik omgeving is op dit moment, vanwege performance redenen, ingericht om geen rapporten in realtime te verwerken.",
         "ThisSegmentIsVisibleTo": "Dit segment is zichtbaar voor:",
diff --git a/plugins/SegmentEditor/lang/pt-br.json b/plugins/SegmentEditor/lang/pt-br.json
index 96efec50fe2aed412bf93a893ebb66e385f90f79..faf11719507c80e2384826350838e0910b28a013 100644
--- a/plugins/SegmentEditor/lang/pt-br.json
+++ b/plugins/SegmentEditor/lang/pt-br.json
@@ -17,7 +17,7 @@
         "SaveAndApply": "Salvar e Aplicar",
         "SegmentDisplayedAllWebsites": "Todos os Sites",
         "SegmentDisplayedThisWebsiteOnly": "Somente neste website",
-        "SegmentIsDisplayedForWebsite": "e exibidos para",
+        "SegmentIsDisplayedForWebsite": "e processado ​​para",
         "SegmentNotApplied": "Segmento '%s' não aplicado",
         "SegmentNotAppliedMessage": "Você está solicitando dados para o Segmento Personalizado '%s', e esta configuração Piwik atualmente impede o processamento em tempo real de relatórios por motivos de desempenho.",
         "SelectSegmentOfVisits": "Selecione um segmento de visitas:",
diff --git a/plugins/SegmentEditor/lang/ro.json b/plugins/SegmentEditor/lang/ro.json
index af9fd478dbb6c589a9177565cb9966c01b23ae98..55d7c8c61c2230db881e5b94e5d333ce7660f560 100644
--- a/plugins/SegmentEditor/lang/ro.json
+++ b/plugins/SegmentEditor/lang/ro.json
@@ -15,7 +15,6 @@
         "SaveAndApply": "Salvează şi aplică",
         "SegmentDisplayedAllWebsites": "toate siturile web",
         "SegmentDisplayedThisWebsiteOnly": "numai acest site web",
-        "SegmentIsDisplayedForWebsite": "și afișate pentru",
         "SegmentNotApplied": "Segmentul '%s' nu se aplica",
         "SegmentNotAppliedMessage": "Vi se solicită date pentru segmentul personalizat '%s', această configurație Piwik împiedică în prezent prelucrarea în timp real a rapoartelor pentru motive de performanță.",
         "ThisSegmentIsVisibleTo": "Acest segment este vizibil către:",
diff --git a/plugins/SegmentEditor/lang/ru.json b/plugins/SegmentEditor/lang/ru.json
index eb0f9c3c05de3612546a9f20f52499c47ec9f15f..ad9e9286361497aa00d15d0d0f3bc487aa93658f 100644
--- a/plugins/SegmentEditor/lang/ru.json
+++ b/plugins/SegmentEditor/lang/ru.json
@@ -12,7 +12,6 @@
         "SaveAndApply": "Сохранить и применить",
         "SegmentDisplayedAllWebsites": "все сайты",
         "SegmentDisplayedThisWebsiteOnly": "только этот сайт",
-        "SegmentIsDisplayedForWebsite": "и отображается для",
         "SegmentNotAppliedMessage": "Вы запрашиваете данные для пользовательского сегмента '%s', эта конфигурация Piwik в данный момент препятствует обработке отчетов в реальном времени по соображениям производительности.",
         "ThisSegmentIsVisibleTo": "Этот сегмент видим для:",
         "VisibleToAllUsers": "все пользователи",
diff --git a/plugins/SegmentEditor/lang/sq.json b/plugins/SegmentEditor/lang/sq.json
new file mode 100644
index 0000000000000000000000000000000000000000..b8d7dbd9ceb6f2283a3284804cac62f43e9b549b
--- /dev/null
+++ b/plugins/SegmentEditor/lang/sq.json
@@ -0,0 +1,7 @@
+{
+    "SegmentEditor": {
+        "AddANDorORCondition": "Shtoni kusht %s",
+        "ChooseASegment": "Zgjidhni një segment",
+        "DefaultAllVisits": "Krejt vizitat"
+    }
+}
\ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/sr.json b/plugins/SegmentEditor/lang/sr.json
index 2be5a7457c17776778533e87a1106c2c95152e31..0fd868bdbfb852144602fa66d8842da3046534c3 100644
--- a/plugins/SegmentEditor/lang/sr.json
+++ b/plugins/SegmentEditor/lang/sr.json
@@ -16,7 +16,6 @@
         "SaveAndApply": "Sačuvaj i primeni",
         "SegmentDisplayedAllWebsites": "svi sajtovi",
         "SegmentDisplayedThisWebsiteOnly": "samo ovaj sajt",
-        "SegmentIsDisplayedForWebsite": "i prikazan za",
         "SegmentNotApplied": "Segment '%s' nije primenjen.",
         "SegmentNotAppliedMessage": "Zahtevali ste podatke za korisnički definisani segment '%s' a trenutne postavke Piwik-a sprečavaju procesiranje izveštaja u realnom vremenu zbog očuvanja nivoa performansi.",
         "ThisSegmentIsVisibleTo": "Ovaj segment je vidljiv:",
diff --git a/plugins/SegmentEditor/lang/sv.json b/plugins/SegmentEditor/lang/sv.json
index 9e81fa099593afe88ca67814a6c7d95ec9e807f2..955e9da3b42e829fd985013625aa9b88e50c8e45 100644
--- a/plugins/SegmentEditor/lang/sv.json
+++ b/plugins/SegmentEditor/lang/sv.json
@@ -15,7 +15,6 @@
         "SaveAndApply": "Spara & Använd",
         "SegmentDisplayedAllWebsites": "alla webbsidor",
         "SegmentDisplayedThisWebsiteOnly": "endast denna webbsida",
-        "SegmentIsDisplayedForWebsite": "och visas för",
         "SegmentNotApplied": "Segment '%s' tillämpas inte",
         "SegmentNotAppliedMessage": "Du begär data för det Anpassade Segmentet '%s', denna Piwik konfiguration förhindrar realtidsbearbetning av rapporter pga prestandaskäl.",
         "ThisSegmentIsVisibleTo": "Det här segmentet är synligt för:",
diff --git a/plugins/SegmentEditor/lang/tl.json b/plugins/SegmentEditor/lang/tl.json
index 7e3b4a8f79aab1b6e491b88c05771c51ec0bda85..7933c0fe3a7c65ba34e3991e8896c2d8d77d4a7d 100644
--- a/plugins/SegmentEditor/lang/tl.json
+++ b/plugins/SegmentEditor/lang/tl.json
@@ -14,7 +14,6 @@
         "OperatorOR": "OR",
         "SaveAndApply": "I-save at I-apply",
         "SegmentDisplayedThisWebsiteOnly": "ang website na ito lamang",
-        "SegmentIsDisplayedForWebsite": "at ipinapakita para sa",
         "SegmentNotApplied": "Hindi nai-apply ang Segment '%s'",
         "ThisSegmentIsVisibleTo": "Ang segment na ito ay makikita sa:",
         "VisibleToAllUsers": "lahat ng mga user",
diff --git a/plugins/SegmentEditor/lang/vi.json b/plugins/SegmentEditor/lang/vi.json
index 78a7a6dc809cfd2f56b5c1c0bb9203a275ba0010..d94eb8f35e74e65f3fa563d25674308b86d77254 100644
--- a/plugins/SegmentEditor/lang/vi.json
+++ b/plugins/SegmentEditor/lang/vi.json
@@ -14,7 +14,6 @@
         "SaveAndApply": "Lưu và áp dụng",
         "SegmentDisplayedAllWebsites": "Tất cả các website",
         "SegmentDisplayedThisWebsiteOnly": "Chỉ website này",
-        "SegmentIsDisplayedForWebsite": "và hiển thị cho",
         "ThisSegmentIsVisibleTo": "Phân đoạn này có thể nhìn thấy:",
         "VisibleToAllUsers": "Tất cả người dùng",
         "VisibleToMe": "Tôi",
diff --git a/plugins/SegmentEditor/lang/zh-cn.json b/plugins/SegmentEditor/lang/zh-cn.json
index ff6c9f1c3dbfb572a59374e29595d0b4e3f43237..44c7d182c4a46df4c189087d39d036365442e9d2 100644
--- a/plugins/SegmentEditor/lang/zh-cn.json
+++ b/plugins/SegmentEditor/lang/zh-cn.json
@@ -14,7 +14,6 @@
         "SaveAndApply": "保存并应用",
         "SegmentDisplayedAllWebsites": "所有网站",
         "SegmentDisplayedThisWebsiteOnly": "仅这个网站",
-        "SegmentIsDisplayedForWebsite": "显示",
         "ThisSegmentIsVisibleTo": "这个分段对其可见:",
         "VisibleToAllUsers": "所有用户",
         "VisibleToMe": "我",
diff --git a/plugins/SitesManager/lang/el.json b/plugins/SitesManager/lang/el.json
index bac074df01add771489471441db5ac9abb5e751b..e8636db0add8d93c223c98588e1dc8a01b0bb603 100644
--- a/plugins/SitesManager/lang/el.json
+++ b/plugins/SitesManager/lang/el.json
@@ -3,7 +3,7 @@
         "AddSite": "Προσθήκη ιστοσελίδας",
         "AddMeasurable": "Προσθήκη νέου μετρούμενου",
         "AdvancedTimezoneSupportNotFound": "Η προηγμένη υποστήριξη για ζώνες ώρας δεν βρέθηκε στην PHP σας (υποστηρίζεται από την έκδοση 5.2 ή νεότερη). Μπορείτε να επιλέξετε διαφορά ώρας χειροκίνητα.",
-        "AliasUrlHelp": "Προτείνεται, αλλά δεν απαιτείται, να ορίσετε τα διάφορα URLs που χρησιμοποιούν οι επισκέπτες σας στη συγκεκριμένη ιστοσελίδα.nΤα URLs με μάσκα για μια ιστοσελίδα δεν θα εμφανίζονται στο μενού Αναφορείς > Αναφορά ιστοσελίδων. Σημειώστε ότι δεν είναι απαραίτητο να ορίσετε τα URLs με και χωρίς «www» καθώς το Piwik τα θεωρεί και τα δύο ως δεδομένα.",
+        "AliasUrlHelp": "Προτείνεται, αλλά δεν απαιτείται, να ορίσετε τις διάφορες διευθύνσεις URL, μία ανά γραμμή, που χρησιμοποιούν οι επισκέπτες σας για τη συγκεκριμένη ιστοσελίδα. Οι ψευδώνυμες διευθύνσεις URL για μια ιστοσελίδα δεν θα εμφανίζονται στο μενού Αναφορείς > Αναφορά ιστοσελίδων. Σημειώστε ότι δεν είναι απαραίτητο να ορίσετε τις διευθύνσεις URL με και χωρίς 'www' καθώς το Piwik θεωρεί και τις δύο ως δεδομένες.",
         "ChangingYourTimezoneWillOnlyAffectDataForward": "Αλλάζοντας τη ζώνη ώρας σας θα επηρεάσει μόνο τα δεδομένα που θα ακολουθήσουν και δεν θα εφαρμοστεί αναδρομικά.",
         "ChooseCityInSameTimezoneAsYou": "Επιλέξτε μια πόλη στην ίδια ζώνη ώρας όπως εσείς.",
         "Currency": "Νόμισμα",
diff --git a/plugins/TasksTimetable b/plugins/TasksTimetable
index 813a8e3dc65c3c6cca088d7f3f358ebc71a0d4c8..53ab383e4d19963441b2e8c8211fac3ac9426cb6 160000
--- a/plugins/TasksTimetable
+++ b/plugins/TasksTimetable
@@ -1 +1 @@
-Subproject commit 813a8e3dc65c3c6cca088d7f3f358ebc71a0d4c8
+Subproject commit 53ab383e4d19963441b2e8c8211fac3ac9426cb6
diff --git a/plugins/Transitions/javascripts/transitions.js b/plugins/Transitions/javascripts/transitions.js
index 8461c89069c444d595baf48e85a67d651e5115ba..0da9580cf0dfe8a0791bed907e30c04672d58586 100644
--- a/plugins/Transitions/javascripts/transitions.js
+++ b/plugins/Transitions/javascripts/transitions.js
@@ -268,7 +268,7 @@ Piwik_Transitions.prototype.preparePopover = function () {
                 var share = NumberFormatter.formatPercent(Math.round(self.model.pageviews / totalNbPageviews * 1000) / 10);
 
                 var text = Piwik_Transitions_Translations.ShareOfAllPageviews;
-                text = text.replace(/%s/, NumberFormatter.formatNumber(self.model.pageviews)).replace(/%s/, share);
+                text = sprintf(text, NumberFormatter.formatNumber(self.model.pageviews), share);
                 text += '<br /><em>' + Piwik_Transitions_Translations.DateRange + ' ' + self.model.date + '</em>';
 
                 var title = '<h3>' + piwikHelper.addBreakpointsToUrl(self.actionName) + '</h3>';
@@ -419,7 +419,7 @@ Piwik_Transitions.prototype.renderCenterBox = function () {
 Piwik_Transitions.prototype.addTooltipShowingPercentageOfAllPageviews = function(element, metric) {
     var tip = Piwik_Transitions_Translations.XOfAllPageviews;
     var percentage = this.model.getPercentage(metric, true);
-    tip = tip.replace(/%s/, '<strong>' + percentage + '</strong>');
+    tip = sprintf(tip, '<strong>' + percentage + '</strong>');
 
     element.tooltip({
         track: true,
@@ -572,7 +572,7 @@ Piwik_Transitions.prototype.renderOpenGroup = function (groupName, side, onlyBg)
         }
 
         var tooltip = Piwik_Transitions_Translations.XOfY;
-        tooltip = '<strong>' + tooltip.replace(/%s/, data.referrals + '</strong>').replace(/%s/, nbTransitions);
+        tooltip = '<strong>' + sprintf(tooltip, data.referrals, nbTransitions) + '</strong>';
         tooltip = this.model.getShareInGroupTooltip(tooltip, groupName);
 
         var fullLabel = label;
@@ -1403,7 +1403,7 @@ Piwik_Transitions_Model.prototype.getGroupTitle = function (groupName) {
 
 Piwik_Transitions_Model.prototype.getShareInGroupTooltip = function (share, groupName) {
     var tip = this.shareInGroupTexts[groupName];
-    return tip.replace(/%s/, share);
+    return sprintf(tip, share);
 };
 
 Piwik_Transitions_Model.prototype.getDetailsForGroup = function (groupName) {
@@ -1500,10 +1500,10 @@ Piwik_Transitions_Ajax.prototype.callApi = function (method, params, callback) {
                     if (typeof params.actionName != 'undefined') {
                         var url = params.actionName;
                         url = piwikHelper.addBreakpointsToUrl(url);
-                        errorTitle = errorTitle.replace(/%s/, '<span>' + url + '</span>');
+                        errorTitle = sprintf(errorTitle, '<span>' + url + '</span>');
                     }
 
-                    errorMessage = errorMessage.replace(/%s/g, '<br />');
+                    errorMessage = sprintf(errorMessage, '<br />');
                     Piwik_Popover.showError(errorTitle, errorMessage, errorBack);
                 };
 
diff --git a/plugins/Transitions/lang/sq.json b/plugins/Transitions/lang/sq.json
new file mode 100644
index 0000000000000000000000000000000000000000..c634ea624a8643d1be987ba16864dbaec43fc91c
--- /dev/null
+++ b/plugins/Transitions/lang/sq.json
@@ -0,0 +1,14 @@
+{
+    "Transitions": {
+        "BouncesInline": "%s kthime",
+        "ErrorBack": "Kthehu te veprimi i mëparshëm",
+        "ExitsInline": "%s largime",
+        "FromCampaigns": "Prej Fushatash",
+        "FromPreviousPages": "Prej Faqesh të Brendshme",
+        "FromPreviousPagesInline": "%s prej faqesh të brendshme",
+        "FromPreviousSiteSearches": "Prej Kërkimesh të Brendshme",
+        "FromSearchEngines": "Prej Motorë Kërkimesh",
+        "FromWebsites": "Prej Sajtesh",
+        "IncomingTraffic": "Trafik ardhës"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Transitions/lang/tr.json b/plugins/Transitions/lang/tr.json
index c0cb35ba95e5e9b65646951e35dcb6896f382eb0..cd5fed6a05ba37539857169e0acffc421b36ef4a 100644
--- a/plugins/Transitions/lang/tr.json
+++ b/plugins/Transitions/lang/tr.json
@@ -1,5 +1,28 @@
 {
     "Transitions": {
-        "FromCampaigns": "Kampanyalarından Geçişler"
+        "BouncesInline": "%s sıçramalar",
+        "DirectEntries": "Direk GiriÅŸler",
+        "ErrorBack": "Bir önceki işleme dön",
+        "ExitsInline": "%s çıkışlar",
+        "FromCampaigns": "Kampanyalardan Geçişler",
+        "FromPreviousPages": "İç sayfalardan",
+        "FromPreviousPagesInline": "%s iç sayfalardan",
+        "FromPreviousSiteSearches": "İnternet Aramalarından",
+        "FromPreviousSiteSearchesInline": "%s internet aramalarından",
+        "FromSearchEngines": "Arama Motorlarından",
+        "FromWebsites": "Websitelerden",
+        "IncomingTraffic": "Gelen trafik",
+        "LoopsInline": "%s sayfa yüklemeleri",
+        "NoDataForAction": "%s için veri yok",
+        "NoDataForActionDetails": "%s süresi boyunca hiç sayfa görüntülenmemiş ve aksiyon alınmamıştır veya o hatalıdır.",
+        "OutgoingTraffic": "Giden trafik",
+        "PluginDescription": "Yeni iconu ile ulaşılan Aksiyon raporları sayfasında yeni geçişler raporunun içindeki her sayfaya ait URL'yi önceki ve takip eden aksiyonları için raporlar.",
+        "ShareOfAllPageviews": "Bu sayfa %1$s sayfa görünütülemesine sahiptir ( %2$s tüm sayfa görüntülemesi).",
+        "ToFollowingPages": "İç Sayfalara",
+        "ToFollowingPagesInline": "%s İç Sayfalara",
+        "ToFollowingSiteSearches": "İç Aramalar",
+        "ToFollowingSiteSearchesInline": "%s İç Aramalar",
+        "XOfAllPageviews": "Bu sayfadaki tüm görüntülenmelerin %s'i",
+        "XOutOfYVisits": "%1$s (%2$s'nin dışında)"
     }
 }
\ No newline at end of file
diff --git a/plugins/UserCountry/lang/da.json b/plugins/UserCountry/lang/da.json
index 0eeed967162e6dd9848fa696381026d2b5df9543..4f45a6045f9e22ed82e672acc4b711071ea4b9c6 100644
--- a/plugins/UserCountry/lang/da.json
+++ b/plugins/UserCountry/lang/da.json
@@ -16,6 +16,7 @@
         "country_a2": "Satellit udbyder",
         "country_cat": "Catalansk-talende samfund",
         "country_o1": "Andet land",
+        "country_ti": "Tibet",
         "CurrentLocationIntro": "I følge denne tjeneste er din aktuelle lokation",
         "DefaultLocationProviderDesc1": "Standardlokationstjenesten gætter en besøgendes land baseret på det sprog de bruger.",
         "DefaultLocationProviderDesc2": "Dette er ikke særlig nøjagtigt, så %1$svi anbefaler at du installerer og bruger %2$sGeoIP%3$s.%4$s",
diff --git a/plugins/UserCountry/lang/sq.json b/plugins/UserCountry/lang/sq.json
index 50793adabdbdb6da171a3daa247101b5543b595d..0ee12da1353a1cc6e113cbd43495954a74829844 100644
--- a/plugins/UserCountry/lang/sq.json
+++ b/plugins/UserCountry/lang/sq.json
@@ -1,5 +1,8 @@
 {
     "UserCountry": {
+        "AssumingNonApache": "S’gjendet dot funksioni find apache_get_modules function, po merret i mirëqenë si shërbyes non-Apache.",
+        "City": "Qytet",
+        "CityAndCountry": "%1$s, %2$s",
         "Continent": "Kontinent",
         "Country": "Vend",
         "country_a1": "Ndërmjetës Anonim",
diff --git a/plugins/UserCountry/lang/sv.json b/plugins/UserCountry/lang/sv.json
index 1f40178911592c48e39f6de62b71bafa472be99e..f4088012059ea3e12e51319f4887aa7d0adf05b8 100644
--- a/plugins/UserCountry/lang/sv.json
+++ b/plugins/UserCountry/lang/sv.json
@@ -80,6 +80,7 @@
         "PeclGeoIPNoDBDir": "PECL-modulen letar efter databaser i %1$s, men den här mappen finns inte. Var vänlig skapa den och lägg till GeoIP-databaser i den. Alternativt, ändra inställningen %2$s till den rätta mappen i din php.ini.",
         "PeclGeoLiteError": "Din GeoIP-databas i %1$s har namnet %2$s. Tyvärr kommer inte PECL-modulen att känna igen den med det här namnet. Var vänlig döp om den till %3$s.",
         "PiwikNotManagingGeoIPDBs": "För närvarande hanterar inte Piwik någon GeoIP-databas.",
+        "PluginDescription": "Geografiska rapporter för dina besökare: land, region, stad och geografiska koordinater (latitud\/longitud).",
         "Region": "Region",
         "SetupAutomaticUpdatesOfGeoIP": "Ställ in automatisk uppdatering av GeoIP-databaser",
         "SubmenuLocations": "Platser",
diff --git a/plugins/UserCountryMap/lang/de.json b/plugins/UserCountryMap/lang/de.json
index 68c3556d721ff952a400c81fd70306e3df642f89..f3d1b47141bbc78ef7fd649653fddf5fc08f7444 100644
--- a/plugins/UserCountryMap/lang/de.json
+++ b/plugins/UserCountryMap/lang/de.json
@@ -1,6 +1,6 @@
 {
     "UserCountryMap": {
-        "PluginDescription": "Dieses Plugin stellt die Widgets Besucherkarte sowie Besucherkarte in Echtzeit bereit. Hinweis: Das Plugin UserCountry muss aktiviert sein.",
+        "PluginDescription": "Dieses Plugin stellt die Widgets \"Besucherkarte\" sowie \"Besucherkarte in Echtzeit\" bereit. Hinweis: Hierfür muss das Plugin \"UserCountry\" aktiviert sein.",
         "AndNOthers": "und %s andere",
         "Cities": "Städte",
         "Countries": "Länder",
diff --git a/plugins/UserCountryMap/lang/sq.json b/plugins/UserCountryMap/lang/sq.json
index 143d07c783182a58edd363159f954b835e2d8d04..fdd2aaac07db0b0a1eba5a559f5b644bf0fb0ddb 100644
--- a/plugins/UserCountryMap/lang/sq.json
+++ b/plugins/UserCountryMap/lang/sq.json
@@ -1,5 +1,15 @@
 {
     "UserCountryMap": {
-        "map": "hartë"
+        "AndNOthers": "dhe %s të tjerë",
+        "Cities": "Qytete",
+        "Countries": "Vende",
+        "DaysAgo": "%s ditë më parë",
+        "HoursAgo": "%s orë më parë",
+        "map": "hartë",
+        "MinutesAgo": "%s minuta më parë",
+        "None": "Asnjë",
+        "NoVisit": "Pa vizita",
+        "RealTimeMap": "Hartë e Atypëratyshme",
+        "Regions": "Rajone"
     }
 }
\ No newline at end of file
diff --git a/plugins/UserCountryMap/lang/sv.json b/plugins/UserCountryMap/lang/sv.json
index 7ce29ed627eab54c125dc0101bdec2366e465522..53138f6578f9e7d4f9f25e721fe4b6a5c7450749 100644
--- a/plugins/UserCountryMap/lang/sv.json
+++ b/plugins/UserCountryMap/lang/sv.json
@@ -19,6 +19,7 @@
         "Unlocated": "<b>%s<\/b> %p av besöken från %c kunde inte geolokaliseras.",
         "VisitorMap": "Besökskarta",
         "WorldWide": "Hela världen",
+        "WithUnknownRegion": "%s med okänd region",
         "WithUnknownCity": "%s med okänd stad"
     }
 }
\ No newline at end of file
diff --git a/plugins/UserLanguage/lang/sq.json b/plugins/UserLanguage/lang/sq.json
index 74aa35ef51bff19f98123120122b9ea4c44a468d..4c352370020088e6fe432853ad450081e18b8d8a 100644
--- a/plugins/UserLanguage/lang/sq.json
+++ b/plugins/UserLanguage/lang/sq.json
@@ -1,5 +1,6 @@
 {
     "UserLanguage": {
+        "BrowserLanguage": "Gjuhë shfletuesi",
         "LanguageCode": "Kod Gjuhe"
     }
 }
\ No newline at end of file
diff --git a/plugins/UsersManager/Controller.php b/plugins/UsersManager/Controller.php
index 16ae4c04e73f3f9c8e20434367c9b47856b014a6..b0bb0a88f00bc486ce2c82972b46026cfa710f19 100644
--- a/plugins/UsersManager/Controller.php
+++ b/plugins/UsersManager/Controller.php
@@ -459,7 +459,7 @@ class Controller extends ControllerAdmin
             $sessionInitializer = new SessionInitializer();
             $auth = StaticContainer::get('Piwik\Auth');
             $auth->setLogin($userLogin);
-            $auth->setPassword($password);
+            $auth->setPassword($newPassword);
             $sessionInitializer->initSession($auth, $rememberMe = false);
         }
     }
diff --git a/plugins/UsersManager/javascripts/usersManager.js b/plugins/UsersManager/javascripts/usersManager.js
index a05e602c35d2705f2133f485f5ee8c7860c8b671..5624cb272af25301f15ca47aa1c09410a0fd7386 100644
--- a/plugins/UsersManager/javascripts/usersManager.js
+++ b/plugins/UsersManager/javascripts/usersManager.js
@@ -142,8 +142,7 @@ function bindUpdateSuperUserAccess() {
         message = 'UsersManager_ConfirmProhibitOtherUsersSuperUserAccess';
     }
 
-    message = _pk_translate(message);
-    message = message.replace('%s', login);
+    message = _pk_translate(message, [login]);
 
     $('#superUserAccessConfirm h2').text(message);
 
diff --git a/plugins/UsersManager/lang/de.json b/plugins/UsersManager/lang/de.json
index e1ce9fd356355a218b3190a2d6f111fd0d9a5bcf..fe2af9b777ac5151b8dbb55c62ebf921aae47abd 100644
--- a/plugins/UsersManager/lang/de.json
+++ b/plugins/UsersManager/lang/de.json
@@ -7,6 +7,7 @@
         "AnonymousUserHasViewAccess": "Hinweis: Der Benutzer %1$s hat %2$s Zugriff auf diese Website.",
         "AnonymousUserHasViewAccess2": "Ihre Analytiks-Berichte und Besucherinformationen sind öffentlich einsehbar.",
         "ApplyToAllWebsites": "Für alle Websites anwenden",
+        "ChangeAllConfirm": "Sind Sie sicher, dass Sie '%s' Zugriff auf alle Websites geben möchten?",
         "ChangePasswordConfirm": "Das Ändern des Kennworts ändert ebenso das token_auth des Benutzers. Wirklich fortfahren?",
         "ClickHereToDeleteTheCookie": "Klicken Sie hier, um das Cookie zu löschen und Ihre Besuche wieder zu zählen",
         "ClickHereToSetTheCookieOnDomain": "Klicken Sie hier, um ein Cookie zu setzen, damit Ihre Besuche auf Websites ignoriert werden, die Piwik auf %s trackt.",
@@ -35,6 +36,9 @@
         "ExceptionNoValueForUsernameOrEmail": "Bitte geben Sie einen Benutzernamen oder eine E-Mail-Adresse ein.",
         "ExcludeVisitsViaCookie": "Ihre Besuche von der Erfassung via Cookie ausschließen",
         "ForAnonymousUsersReportDateToLoadByDefault": "Bericht, der für Gast-Besucher (\"anonymous\") standardmäßig geladen wird",
+        "GiveViewAccess": "Lese-Rechte erteilen",
+        "GiveViewAccessTitle": "Einem bestehenden Benutzer die Berechtigung geben Berichte für %s zu sehen",
+        "GiveViewAccessInstructions": "Um einem bestehenden Benutzer Lese-Berechtigung für %s zu geben, geben Sie dessen Benutzername oder E-Mail-Adresse ein.",
         "IfYouWouldLikeToChangeThePasswordTypeANewOne": "Wenn Sie Ihr Passwort ändern möchten, geben Sie ein neues ein. Ansonsten lassen Sie dieses Feld frei.",
         "InjectedHostCannotChangePwd": "Ihr Besuch erfolgt aktuell durch einen unbekannten Hostnamen (%1$s). Es ist somit nicht möglich Ihr Kennwort zu ändert bis dieser Umstand behoben ist.",
         "LastSeen": "Zuletzt gesehen",
@@ -46,6 +50,7 @@
         "PersonalSettings": "Persönliche Einstellungen",
         "NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Hinweis: Sie können die Einstellungen in diesem Bereich nicht ändern, weil Sie keine Website eingerichtet haben, die vom anonymen Benutzer angezeigt werden kann.",
         "NoUsersExist": "Bisher keine Benutzer vorhanden.",
+        "PluginDescription": "Die Benutzerverwaltung erlaubt es Ihnen, neue Benutzer zu erstellen, bestehende zu ändern und die Rechte für die Ansicht, sowie die Administration zu definieren.",
         "PrivAdmin": "Administrator",
         "PrivNone": "Kein Zugriff",
         "PrivView": "Ansicht",
diff --git a/plugins/UsersManager/lang/sq.json b/plugins/UsersManager/lang/sq.json
index 78301c8d1c0e3a09ea2abfcc02feaa8e51ea9ebb..e943b4582682222c9d65a7916a1a870cfc316ae1 100644
--- a/plugins/UsersManager/lang/sq.json
+++ b/plugins/UsersManager/lang/sq.json
@@ -16,12 +16,12 @@
         "Email": "Email",
         "EmailYourAdministrator": "%1$sDërgojini përgjegjësit tuaj email rreth këtij problemi%2$s.",
         "ExceptionAccessValues": "Parametri duhet të ketë një nga vlerat vijuese: [ %s ]",
-        "ExceptionAdminAnonymous": "S'mund t'i jepni hyrje 'administratori' përdoruesit 'anonim'.",
-        "ExceptionDeleteDoesNotExist": "Përdoruesi '%s' s'ekziston, ndaj s'mund të bëhet fshirje.",
+        "ExceptionAdminAnonymous": "S’mund t’i jepni hyrje 'administratori' përdoruesit 'anonim'.",
+        "ExceptionDeleteDoesNotExist": "Përdoruesi '%s' s'ekziston, ndaj s’mund të bëhet fshirje.",
         "ExceptionDeleteOnlyUserWithSuperUserAccess": "Fshirja e përdoruesit '%s' s’është e mundur.",
-        "ExceptionEditAnonymous": "Përdoruesi anonim nuk mund të fshihet apo përpunohet të dhënat e tij. Përdoret nga Piwik-u për të përkufizuar një përdorues që nuk ka bërë ende hyrjen. Për shembull, mund t'i bëni statistikat tuaja publike duke lejuar hyrje për 'parje' për përdoruesin 'anonim'.",
+        "ExceptionEditAnonymous": "Përdoruesi anonim nuk mund të fshihet apo përpunohet të dhënat e tij. Përdoret nga Piwik-u për të përkufizuar një përdorues që s’ka bërë ende hyrjen. Për shembull, mund t’i bëni statistikat tuaja publike duke lejuar hyrje për 'parje' për përdoruesin 'anonim'.",
         "ExceptionEmailExists": "Ka tashmë një përdorues me email-in '%s'.",
-        "ExceptionInvalidEmail": "Email-i s'është në format të vlefshëm.",
+        "ExceptionInvalidEmail": "Email-i s’është në format të vlefshëm.",
         "ExceptionInvalidPassword": "Fjalëkalimi duhet të jetë nga %1$s deri në %2$s shenja i gjatë.",
         "ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth pret një fjalëkalim hash MD5 (varg 32 shenja të gjatë). Ju lutemi, zbatojeni funksionin md5() mbi fjalëkalimin përpara zbatimit të kësaj metode",
         "ExceptionRemoveSuperUserAccessOnlySuperUser": "Heqja e lejeve Superpërdoruesi për përdoruesin '%s' s’është e mundur.",
diff --git a/plugins/UsersManager/tests/Fixtures/ManyUsers.php b/plugins/UsersManager/tests/Fixtures/ManyUsers.php
index b92be230f5c6c6354fd2c0dab48abf95f776afe8..b9c6821f67a1ee918b574ec7ab8271f8989a0b6e 100644
--- a/plugins/UsersManager/tests/Fixtures/ManyUsers.php
+++ b/plugins/UsersManager/tests/Fixtures/ManyUsers.php
@@ -44,7 +44,7 @@ class ManyUsers extends Fixture
 
     private function setUpWebsite()
     {
-        foreach (range(1,7) as $idSite) {
+        for ($i=0; $i < 7; $i++) {
             Fixture::createWebsite('2010-01-01 00:00:00');
         }
     }
diff --git a/plugins/VisitTime/lang/sv.json b/plugins/VisitTime/lang/sv.json
index 6a6d7e4d807771929ff631c045e05510971afd1d..ed9f5df76207025b16db08096c6e4fe5e9310a55 100644
--- a/plugins/VisitTime/lang/sv.json
+++ b/plugins/VisitTime/lang/sv.json
@@ -5,6 +5,7 @@
         "DayOfWeek": "Veckodag",
         "LocalTime": "Besök efter lokal tid",
         "NHour": "%sh",
+        "PluginDescription": "Rapporterar lokaltid och servertid när besökarna visa din webbplats eller app.",
         "ServerTime": "Besök efter servertid",
         "SubmenuTimes": "Tider",
         "VisitsByDayOfWeek": "Besök efter veckodag",
diff --git a/plugins/VisitTime/lang/tr.json b/plugins/VisitTime/lang/tr.json
index b939617aa817055459c8a03d928117da0b742b0a..b65d81deb511dccdc71d0b57d28316423b91f7ef 100644
--- a/plugins/VisitTime/lang/tr.json
+++ b/plugins/VisitTime/lang/tr.json
@@ -5,8 +5,11 @@
         "DayOfWeek": "Haftanın günü",
         "LocalTime": "Yerel saat başına ziyaretler",
         "NHour": "%sh",
+        "PluginDescription": "Ziyaretçi siteyi veya uygulamayı görüntülediğinde yerel ve sunucu zamanını raporla.",
         "ServerTime": "yerel sunucu başına ziyaretler",
+        "SubmenuTimes": "Zamanlar",
         "VisitsByDayOfWeek": "Haftanın günlerine göre Ziyaretler",
+        "WidgetByDayOfWeekDocumentation": "Bu grafik sitenizin haftanın her günü için aldığı ziyaret sayılarını gösterir",
         "WidgetLocalTime": "Yerel saate göre Ziyaretler",
         "WidgetServerTime": "Sunucu saatine göre Ziyaretler"
     }
diff --git a/plugins/VisitorGenerator b/plugins/VisitorGenerator
index 4c18db6600e189a691d48693a1238f7806b9d705..9e27fa9f5d12c752c1db19b49256ef32fdcbcb54 160000
--- a/plugins/VisitorGenerator
+++ b/plugins/VisitorGenerator
@@ -1 +1 @@
-Subproject commit 4c18db6600e189a691d48693a1238f7806b9d705
+Subproject commit 9e27fa9f5d12c752c1db19b49256ef32fdcbcb54
diff --git a/plugins/VisitorInterest/lang/sv.json b/plugins/VisitorInterest/lang/sv.json
index 9671592f0ca7eee7ce8775fcf88c7e6eb9344688..71eb512f43c803eb31f51910e490191389619dd3 100644
--- a/plugins/VisitorInterest/lang/sv.json
+++ b/plugins/VisitorInterest/lang/sv.json
@@ -7,6 +7,7 @@
         "Engagement": "Engagemang",
         "NPages": "%s sidor",
         "OnePage": "1 sida",
+        "PluginDescription": "Rapporter för besöksbeteenden: antalet sidvisningar, tid på webbplatsen, dagar sedan senaste besök, och mycket mer.",
         "VisitNum": "Besöksnummer",
         "VisitsByDaysSinceLast": "Besök efter dagar sedan senaste besöket",
         "visitsByVisitCount": "Besök efter besöksnummer",
diff --git a/plugins/VisitsSummary/lang/sv.json b/plugins/VisitsSummary/lang/sv.json
index 725d3a9fbaaf501d3a5906d89383a6e669c747bc..e5cef028dc63071c91f2a14511fcd0ce0b6a5217 100644
--- a/plugins/VisitsSummary/lang/sv.json
+++ b/plugins/VisitsSummary/lang/sv.json
@@ -17,6 +17,7 @@
         "NbUniquePageviewsDescription": "%s unika sidvisningar",
         "NbUniqueVisitors": "%s unika besökare",
         "NbVisitsBounced": "%s besökare som studsat (lämnat efter en sidvisning)",
+        "PluginDescription": "Rapporter för allmän analytics-statistik: besök, unika besökare, antal slutförda mål, avvisningsfrekvens , etc.",
         "VisitsSummary": "Besökssummering",
         "VisitsSummaryDocumentation": "Detta är en översikt av besöksutvecklingen.",
         "WidgetLastVisits": "Besöksgraf",
diff --git a/plugins/WebsiteMeasurable/lang/sq.json b/plugins/WebsiteMeasurable/lang/sq.json
index 7d884b382b31ef2f7e510ca610fe5ac5827720f1..d117a6f710b97487c33aace82afff4a855610393 100644
--- a/plugins/WebsiteMeasurable/lang/sq.json
+++ b/plugins/WebsiteMeasurable/lang/sq.json
@@ -1,6 +1,7 @@
 {
     "WebsiteMeasurable": {
         "Website": "Sajt",
-        "Websites": "Sajte"
+        "Websites": "Sajte",
+        "WebsiteDescription": "Një sajt përbëhet prej faqesh web që zakonisht shërbehen prej një përkatësie të caktuar web."
     }
 }
\ No newline at end of file
diff --git a/plugins/WebsiteMeasurable/lang/tr.json b/plugins/WebsiteMeasurable/lang/tr.json
new file mode 100644
index 0000000000000000000000000000000000000000..f4da4a60323826f60b1a8d8bb47804e6845cf0cc
--- /dev/null
+++ b/plugins/WebsiteMeasurable/lang/tr.json
@@ -0,0 +1,6 @@
+{
+    "WebsiteMeasurable": {
+        "Website": "Websitesi",
+        "Websites": "Websiteleri"
+    }
+}
\ No newline at end of file
diff --git a/plugins/Widgetize/lang/tr.json b/plugins/Widgetize/lang/tr.json
index 3c15469b30d6d31c8c199b3dff58c2b2a1a19e96..10eaf052014513880a4c7fddc146d943c903e8a9 100644
--- a/plugins/Widgetize/lang/tr.json
+++ b/plugins/Widgetize/lang/tr.json
@@ -1,5 +1,7 @@
 {
     "Widgetize": {
-        "OpenInNewWindow": "Yeni pencerede aç"
+        "OpenInNewWindow": "Yeni pencerede aç",
+        "PluginDescription": "Basit Gömülü HTML tag'i ile Piwik raporunu websitende veya uygulamada göster.",
+        "TopLinkTooltip": "Piwik Raporunu Widgetlara dönüştür ve Uygulamandaki göstergene iframe olarak ekle"
     }
 }
\ No newline at end of file
diff --git a/tests/PHPUnit/Integration/PiwikTest.php b/tests/PHPUnit/Integration/PiwikTest.php
index aad756ee5e581acf0559a9bca09ff8adc79ec611..28cb798d75dc6fd5cf28cd617f2947a699a4d191 100644
--- a/tests/PHPUnit/Integration/PiwikTest.php
+++ b/tests/PHPUnit/Integration/PiwikTest.php
@@ -125,6 +125,7 @@ class PiwikTest extends IntegrationTestCase
             'aa',
             'aaa',
             'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
+            'äÄüÜöÖß',
             'shoot_puck@the-goal.com',
         );
         foreach ($valid as $key => $value) {
diff --git a/tests/PHPUnit/Integration/Settings/SystemSettingTest.php b/tests/PHPUnit/Integration/Settings/SystemSettingTest.php
index f3655ed9191d3cde237b4f35f41e3b775f304197..e740f61f704ff1a623afe480f3de46b858f8cbbe 100644
--- a/tests/PHPUnit/Integration/Settings/SystemSettingTest.php
+++ b/tests/PHPUnit/Integration/Settings/SystemSettingTest.php
@@ -175,6 +175,21 @@ class SystemSettingTest extends IntegrationTestCase
         $this->assertFalse($setting->isWritableByCurrentUser());
     }
 
+    public function test_setIsWritableByCurrentUser()
+    {
+        $this->setSuperUser();
+        $setting = $this->addSystemSetting('myusersetting', 'mytitle');
+        $setting->setPluginName('MyPluginName');
+
+        $this->assertTrue($setting->isWritableByCurrentUser());
+
+        $setting->setIsWritableByCurrentUser(false);
+        $this->assertFalse($setting->isWritableByCurrentUser());
+
+        $setting->setIsWritableByCurrentUser(true);
+        $this->assertTrue($setting->isWritableByCurrentUser());
+    }
+
     /**
      * @expectedException \Exception
      * @expectedExceptionMessage CoreAdminHome_PluginSettingChangeNotAllowed
diff --git a/tests/PHPUnit/Integration/WidgetsListTest.php b/tests/PHPUnit/Integration/WidgetsListTest.php
index 8af1095b98e97c9f9110a2bc794c5cf53d0887f7..3cafbe67a1295186900710087c703f3ab5b8e1cc 100644
--- a/tests/PHPUnit/Integration/WidgetsListTest.php
+++ b/tests/PHPUnit/Integration/WidgetsListTest.php
@@ -8,7 +8,6 @@
 
 namespace Piwik\Tests\Integration;
 
-use Piwik\Access;
 use Piwik\Widget\WidgetConfig;
 use Piwik\Plugins\Goals\API;
 use Piwik\Tests\Framework\Mock\FakeAccess;
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html
index 95c67bf1c7f17ea8d7010cdb06a3f09bb67d97ea..2709560a0067a59d082d94dcf877b3926f8349f2 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html
@@ -5121,4 +5121,4 @@
 
     There is no data for this report.
 </body>
-</html>
\ No newline at end of file
+</html>���������������������������������������������������������������������������������������������������������������������������������������������
\ No newline at end of file
diff --git a/tests/PHPUnit/Unit/DataTableTest.php b/tests/PHPUnit/Unit/DataTableTest.php
index c427adeae779a371ee430ad51e2a824ebf719372..fa7fe2266914a2e4269f213cc44a505073cacc51 100644
--- a/tests/PHPUnit/Unit/DataTableTest.php
+++ b/tests/PHPUnit/Unit/DataTableTest.php
@@ -898,6 +898,14 @@ class DataTableTest extends \PHPUnit_Framework_TestCase
         $this->assertNull($unserialized[0][3], "found the id sub table in the serialized, not expected");
     }
 
+    public function testMergeSubtablesKeepsMetadata()
+    {
+        $dataTable = $this->_getDataTable1ForTest();
+        $dataTable->setMetadata('additionalMetadata', 'test');
+        $dataTable = $dataTable->mergeSubtables();
+        $this->assertEquals('test', $dataTable->getMetadata('additionalMetadata'));
+    }
+
     private function createDataTable($rows)
     {
         $useless1 = new DataTable;
diff --git a/tests/UI/expected-ui-screenshots b/tests/UI/expected-ui-screenshots
index a3a5924c8530c2cbbf95071e153f26c3927e7e38..4513d00ca815838f3e749be13b62b568f4354036 160000
--- a/tests/UI/expected-ui-screenshots
+++ b/tests/UI/expected-ui-screenshots
@@ -1 +1 @@
-Subproject commit a3a5924c8530c2cbbf95071e153f26c3927e7e38
+Subproject commit 4513d00ca815838f3e749be13b62b568f4354036
diff --git a/tests/UI/specs/DashboardManager_spec.js b/tests/UI/specs/DashboardManager_spec.js
index 815fd6e2c98de686a3b48284d7ad9779accb7b4d..ae6e2eddc4580541a8f652cb37426f2af9d88ef2 100644
--- a/tests/UI/specs/DashboardManager_spec.js
+++ b/tests/UI/specs/DashboardManager_spec.js
@@ -51,4 +51,26 @@ describe("DashboardManager", function () {
             page.click('.widgetpreview-widgetlist>li:contains(Visits Over Time)');
         }, done);
     });
+
+    it("should create new dashboard with new default widget selection when create dashboard process completed", function (done) {
+        expect.screenshot("create_new").to.be.capture(function (page) {
+            page.click('.dashboard-manager .title');
+            page.click('li[data-action=createDashboard]');
+            page.sendKeys('#createDashboardName', 'newdash2');
+            page.click('.ui-dialog[aria-describedby=createDashboardConfirm] button>span:contains(Yes)');
+        }, done);
+    });
+
+    it("should remove dashboard when remove dashboard process completed", function (done) {
+        expect.screenshot("removed").to.be.capture(function (page) {
+            page.contains('ul.navbar ul li.sfActive:contains(newdash2)');
+            page.click('.dashboard-manager .title');
+            page.click('li[data-action=removeDashboard]');
+            page.click('.ui-dialog[aria-describedby=removeDashboardConfirm] button>span:contains(Yes)');
+            page.mouseMove('.dashboard-manager');
+            page.evaluate(function () {
+                $('.widgetTop').removeClass('widgetTopHover');
+            });
+        }, done);
+    });
 });
\ No newline at end of file
diff --git a/tests/UI/specs/Dashboard_spec.js b/tests/UI/specs/Dashboard_spec.js
index 94b85fcc176a22f439f30373a2e24100854476dc..2489f696371844fb0ad320a94b776fa8a767a010 100644
--- a/tests/UI/specs/Dashboard_spec.js
+++ b/tests/UI/specs/Dashboard_spec.js
@@ -215,6 +215,9 @@ describe("Dashboard", function () {
             page.click('li[data-action=createDashboard]');
             page.sendKeys('#createDashboardName:visible', 'newdash2');
             page.click('.ui-dialog[aria-describedby=createDashboardConfirm] button>span:contains(Yes)');
+            // toggle map widget to prevent failures
+            page.mouseMove('#widgetUserCountryMapvisitorMap .widgetTop', 3000);
+            page.click('#widgetUserCountryMapvisitorMap #minimise');
         }, done);
     });
 
diff --git a/tests/UI/specs/Login_spec.js b/tests/UI/specs/Login_spec.js
index ed4ad31ba3da49821ff54e73f1f67b12e95eca2e..dc0fbb558a9cabf02fb4250d8126b8f307423b85 100644
--- a/tests/UI/specs/Login_spec.js
+++ b/tests/UI/specs/Login_spec.js
@@ -60,6 +60,14 @@ describe("Login", function () {
         }, done);
     });
 
+    it("should show reset password form and error message on error", function (done) {
+        expect.screenshot("password_reset_error").to.be.capture(function (page) {
+            page.sendKeys("#reset_form_login", "superUserLogin");
+            page.sendKeys("#reset_form_password", "superUserPass2");
+            page.click("#reset_form_submit", 3000);
+        }, done);
+    });
+
     it("should send email when password reset form submitted", function (done) {
         expect.screenshot("password_reset").to.be.capture(function (page) {
             page.sendKeys("#reset_form_login", "superUserLogin");
diff --git a/tests/UI/specs/Transitions_spec.js b/tests/UI/specs/Transitions_spec.js
index dcbc87901aa416366d06eadb93dc826714531dac..b0972775c97d46824c8b0a3fb6cad7faa4045aa0 100644
--- a/tests/UI/specs/Transitions_spec.js
+++ b/tests/UI/specs/Transitions_spec.js
@@ -28,6 +28,7 @@ describe("Transitions", function () {
         expect.screenshot('transitions_popup_urls').to.be.captureSelector('.ui-dialog', function (page) {
             page.load("?" + urlBase + "#?" + generalParams + "&category=General_Actions&subcategory=General_Pages&"
                     + "popover=RowAction$3ATransitions$3Aurl$3Ahttp$3A$2F$2Fpiwik.net$2Fdocs$2Fmanage-websites$2F");
+            page.mouseMove('.Transitions_CurveTextRight');
         }, done);
     });
 });
\ No newline at end of file
diff --git a/tests/javascript/index.php b/tests/javascript/index.php
index 60d7f11558fa6acb3f0f1c6c2ed6b12e6a04043b..2e0e48723dc3ba4b83a6b515cec6fee02f3baccd 100644
--- a/tests/javascript/index.php
+++ b/tests/javascript/index.php
@@ -2190,7 +2190,7 @@ function PiwikTest() {
 
     // support for setCustomUrl( relativeURI )
     test("getProtocolScheme and resolveRelativeReference", function() {
-        expect(27);
+        expect(28);
 
         var tracker = Piwik.getTracker();
 
@@ -2200,6 +2200,7 @@ function PiwikTest() {
         ok( tracker.hook.test._getProtocolScheme('https://example.com') === 'https', 'https://' );
         ok( tracker.hook.test._getProtocolScheme('file://somefile.txt') === 'file', 'file://' );
         ok( tracker.hook.test._getProtocolScheme('mailto:somebody@example.com') === 'mailto', 'mailto:' );
+        ok( tracker.hook.test._getProtocolScheme('tel:0123456789') === 'tel', 'tel:' );
         ok( tracker.hook.test._getProtocolScheme('javascript:alert(document.cookie)') === 'javascript', 'javascript:' );
         ok( tracker.hook.test._getProtocolScheme('') === null, 'empty string' );
         ok( tracker.hook.test._getProtocolScheme(':') === null, 'unspecified scheme' );
@@ -2829,7 +2830,7 @@ function PiwikTest() {
     });
 
     test("Overlay URL Normalizer", function() {
-        expect(11);
+        expect(23);
 
         var test = function(testCases) {
             for (var i = 0; i < testCases.length; i++) {
@@ -2894,6 +2895,25 @@ function PiwikTest() {
                 'example3.com/'
             ]
         ]);
+
+
+        var tracker = Piwik.getTracker();
+
+        // test getPiwikUrlForOverlay
+        var getPiwikUrlForOverlay = tracker.hook.test._getPiwikUrlForOverlay;
+
+        equal( typeof getPiwikUrlForOverlay, 'function', 'getPiwikUrlForOverlay' );
+        equal( getPiwikUrlForOverlay('http://www.example.com/js/tracker.php?version=232323'), 'http://www.example.com/', 'with query and js folder' );
+        equal( getPiwikUrlForOverlay('http://www.example.com/tracker.php?version=232323'), 'http://www.example.com/', 'with query and no js folder' );
+        equal( getPiwikUrlForOverlay('http://www.example.com/js/tracker.php'), 'http://www.example.com/', 'no query, custom tracker and js folder' );
+        equal( getPiwikUrlForOverlay('http://www.example.com/tracker.php'), 'http://www.example.com/', 'no query, custom tracker and no js folder' );
+        equal( getPiwikUrlForOverlay('http://www.example.com/js/piwik.php'), 'http://www.example.com/', 'with piwik.php and no js folder' );
+        equal( getPiwikUrlForOverlay('http://www.example.com/piwik.php'), 'http://www.example.com/', 'with piwik.php and no js folder' );
+        equal( getPiwikUrlForOverlay('http://www.example.com/master/js/piwik.php'), 'http://www.example.com/master/', 'installed in custom folder and js folder' );
+        equal( getPiwikUrlForOverlay('http://www.example.com/master/piwik.php'), 'http://www.example.com/master/', 'installed in custom folder and no js folder' );
+        equal( getPiwikUrlForOverlay('/piwik.php'), '/', 'only piwik.php with leading slash' );
+        equal( getPiwikUrlForOverlay('piwik.php'), '', 'only piwik.php' );
+        equal( getPiwikUrlForOverlay('/piwik.php?version=1234'), '/', 'only piwik.php with leading slash with query' );
     });
 
 <?php
diff --git a/tests/javascript/piwiktest.js b/tests/javascript/piwiktest.js
index 67157c6d96a3d8573431c9863327af27f4dee42b..ff5525c47d3ad3c8830cbe06c346473c17bf3c7e 100644
--- a/tests/javascript/piwiktest.js
+++ b/tests/javascript/piwiktest.js
@@ -44,7 +44,8 @@ Piwik.addPlugin('testPlugin', {
 				'_purify : purify,' +
 				'_resolveRelativeReference : resolveRelativeReference,' +
 				'_addEventListener : addEventListener,' +
-				'_prefixPropertyName : prefixPropertyName' +
+				'_prefixPropertyName : prefixPropertyName,' +
+				'_getPiwikUrlForOverlay : getPiwikUrlForOverlay' +
 			'}'
 		);
 	},