From 3b37fe84dd01822e48eb815a18b28ac474de96a2 Mon Sep 17 00:00:00 2001 From: Thomas Steur <thomas.steur@gmail.com> Date: Tue, 8 Mar 2016 00:57:48 +0000 Subject: [PATCH] Merge master => 3.0 --- CHANGELOG.md | 6 + CONTRIBUTING.md | 4 + README.md | 1 + composer.lock | 10 +- core/CronArchive.php | 34 +++- core/DataTable.php | 1 + core/Piwik.php | 2 +- core/Plugin/ConsoleCommand.php | 9 +- core/Settings/SystemSetting.php | 10 ++ js/piwik.js | 65 ++++--- lang/am.json | 2 +- lang/be.json | 2 +- lang/bg.json | 2 +- lang/cs.json | 2 +- lang/da.json | 2 +- lang/de.json | 2 + lang/el.json | 2 +- lang/fa.json | 2 +- lang/fi.json | 2 +- lang/fr.json | 2 +- lang/he.json | 2 +- lang/hi.json | 2 +- lang/id.json | 2 +- lang/ko.json | 7 +- lang/pl.json | 2 +- lang/pt-br.json | 2 +- lang/ro.json | 2 +- lang/ru.json | 2 +- lang/sk.json | 11 ++ lang/sl.json | 2 +- lang/sq.json | 168 ++++++------------ lang/sv.json | 7 +- lang/th.json | 17 ++ lang/tl.json | 2 +- lang/tr.json | 46 ++++- lang/uk.json | 2 +- lang/zh-cn.json | 62 ++++++- lang/zh-tw.json | 2 +- piwik.js | 89 +++++----- plugins/API/lang/da.json | 5 +- plugins/API/lang/de.json | 2 +- plugins/API/lang/ro.json | 6 +- plugins/API/lang/sq.json | 3 +- plugins/API/lang/tr.json | 6 +- plugins/API/lang/zh-cn.json | 6 +- plugins/Actions/lang/sq.json | 5 +- plugins/Actions/lang/tr.json | 6 +- plugins/Actions/lang/zh-cn.json | 4 +- plugins/Annotations/lang/tr.json | 1 + plugins/Contents/lang/de.json | 2 +- plugins/Contents/lang/tr.json | 6 +- plugins/Contents/lang/zh-cn.json | 16 ++ plugins/CoreAdminHome/lang/de.json | 5 +- plugins/CoreAdminHome/lang/sq.json | 10 +- plugins/CoreAdminHome/lang/sv.json | 2 + plugins/CoreAdminHome/lang/zh-cn.json | 20 ++- plugins/CoreHome/javascripts/corehome.js | 3 +- plugins/CoreHome/javascripts/dataTable.js | 6 +- plugins/CoreHome/javascripts/popover.js | 2 +- plugins/CoreHome/javascripts/top_controls.js | 16 ++ plugins/CoreHome/lang/sq.json | 8 +- plugins/CoreHome/lang/tr.json | 6 +- plugins/CoreHome/lang/zh-cn.json | 8 +- plugins/CorePluginsAdmin/lang/sk.json | 4 + plugins/CorePluginsAdmin/lang/sq.json | 7 +- plugins/CorePluginsAdmin/lang/sv.json | 3 + plugins/CorePluginsAdmin/lang/zh-cn.json | 32 ++++ .../CorePluginsAdmin/templates/plugins.twig | 3 - plugins/CoreUpdater/lang/sk.json | 5 + plugins/CoreUpdater/lang/sq.json | 11 +- plugins/CoreUpdater/lang/sv.json | 2 + plugins/CoreUpdater/lang/zh-cn.json | 26 ++- plugins/CustomAlerts | 2 +- plugins/CustomDimensions | 2 +- plugins/CustomVariables/lang/de.json | 4 +- plugins/CustomVariables/lang/sq.json | 4 +- plugins/CustomVariables/lang/sv.json | 5 +- plugins/CustomVariables/lang/zh-cn.json | 15 +- plugins/DBStats/lang/sq.json | 9 +- plugins/DBStats/lang/tr.json | 1 + plugins/Dashboard/javascripts/dashboard.js | 2 +- .../Dashboard/javascripts/dashboardObject.js | 13 +- plugins/Dashboard/lang/sq.json | 9 + plugins/Dashboard/lang/sv.json | 1 + plugins/Dashboard/lang/tr.json | 6 + plugins/Dashboard/lang/vi.json | 1 + plugins/Dashboard/lang/zh-cn.json | 1 + plugins/Dashboard/templates/index.twig | 4 +- plugins/DevicePlugins/lang/sq.json | 2 + plugins/DevicesDetection/lang/sq.json | 3 + plugins/DevicesDetection/lang/tr.json | 8 +- plugins/Diagnostics/ConfigReader.php | 2 +- plugins/Diagnostics/lang/it.json | 1 + plugins/Diagnostics/lang/ro.json | 8 + plugins/Diagnostics/lang/sq.json | 6 + plugins/Ecommerce/lang/sq.json | 6 + plugins/Ecommerce/lang/vi.json | 5 + plugins/Events/lang/sq.json | 11 ++ plugins/Events/lang/tr.json | 2 + plugins/Events/lang/vi.json | 1 + plugins/Feedback/lang/sv.json | 10 +- plugins/Goals/lang/es.json | 2 + plugins/Goals/lang/sq.json | 2 +- plugins/Goals/lang/sv.json | 2 + plugins/Goals/lang/zh-cn.json | 1 + plugins/ImageGraph/lang/sq.json | 2 +- plugins/Insights/lang/zh-cn.json | 5 + plugins/Installation/lang/cs.json | 1 + plugins/Installation/lang/ko.json | 2 + plugins/Installation/lang/sq.json | 19 +- plugins/Installation/lang/tr.json | 5 + plugins/Installation/lang/vi.json | 1 + plugins/Installation/lang/zh-cn.json | 2 + .../LanguagesManager/Commands/CreatePull.php | 2 + plugins/Live/Visitor.php | 3 +- plugins/Live/javascripts/live.js | 8 +- plugins/Live/lang/de.json | 3 + plugins/Live/lang/sq.json | 4 + plugins/Live/lang/sv.json | 7 +- plugins/Live/lang/tr.json | 8 +- plugins/Live/templates/_actionsList.twig | 2 +- plugins/Login/javascripts/login.js | 2 +- plugins/Login/lang/ca.json | 1 - plugins/Login/lang/cs.json | 1 - plugins/Login/lang/da.json | 1 - plugins/Login/lang/de.json | 3 +- plugins/Login/lang/el.json | 1 - plugins/Login/lang/en.json | 2 +- plugins/Login/lang/es.json | 1 - plugins/Login/lang/fi.json | 1 - plugins/Login/lang/fr.json | 1 - plugins/Login/lang/hi.json | 1 - plugins/Login/lang/hu.json | 1 - plugins/Login/lang/id.json | 1 - plugins/Login/lang/it.json | 1 - plugins/Login/lang/ja.json | 1 - plugins/Login/lang/ko.json | 1 - plugins/Login/lang/nb.json | 1 - plugins/Login/lang/nl.json | 1 - plugins/Login/lang/pt-br.json | 1 - plugins/Login/lang/ro.json | 1 - plugins/Login/lang/ru.json | 1 - plugins/Login/lang/sl.json | 1 - plugins/Login/lang/sr.json | 1 - plugins/Login/lang/sv.json | 1 - plugins/Login/lang/tr.json | 3 + plugins/Login/lang/vi.json | 1 - plugins/Login/lang/zh-cn.json | 1 - plugins/MobileAppMeasurable/lang/sq.json | 6 + plugins/MobileMessaging/lang/sq.json | 8 + plugins/Morpheus/javascripts/piwikHelper.js | 21 +-- plugins/Morpheus/stylesheets/main.less | 12 +- plugins/MultiSites/lang/sk.json | 3 +- plugins/MultiSites/lang/zh-cn.json | 3 +- plugins/Overlay/lang/sq.json | 8 +- plugins/PiwikPro/Widgets.php | 82 +++++++++ plugins/PrivacyManager/lang/sq.json | 6 +- plugins/PrivacyManager/lang/sv.json | 1 + plugins/Provider/lang/sq.json | 5 +- plugins/Provider/lang/tr.json | 5 +- plugins/QueuedTracking | 2 +- plugins/Referrers/lang/tr.json | 1 + plugins/Resolution/lang/tr.json | 1 + plugins/SEO/lang/sq.json | 1 + plugins/SEO/lang/sv.json | 1 + plugins/SEO/lang/tr.json | 2 +- plugins/ScheduledReports/lang/sq.json | 2 +- plugins/ScheduledReports/lang/tr.json | 2 + plugins/SegmentEditor/lang/bg.json | 1 - plugins/SegmentEditor/lang/cs.json | 2 +- plugins/SegmentEditor/lang/da.json | 1 - plugins/SegmentEditor/lang/de.json | 4 +- plugins/SegmentEditor/lang/el.json | 2 +- plugins/SegmentEditor/lang/en.json | 2 +- plugins/SegmentEditor/lang/es.json | 1 - plugins/SegmentEditor/lang/et.json | 1 - plugins/SegmentEditor/lang/fa.json | 1 - plugins/SegmentEditor/lang/fi.json | 1 - plugins/SegmentEditor/lang/fr.json | 1 - plugins/SegmentEditor/lang/hi.json | 1 - plugins/SegmentEditor/lang/id.json | 1 - plugins/SegmentEditor/lang/it.json | 2 +- plugins/SegmentEditor/lang/ja.json | 1 - plugins/SegmentEditor/lang/nb.json | 1 - plugins/SegmentEditor/lang/nl.json | 1 - plugins/SegmentEditor/lang/pt-br.json | 2 +- plugins/SegmentEditor/lang/ro.json | 1 - plugins/SegmentEditor/lang/ru.json | 1 - plugins/SegmentEditor/lang/sq.json | 7 + plugins/SegmentEditor/lang/sr.json | 1 - plugins/SegmentEditor/lang/sv.json | 1 - plugins/SegmentEditor/lang/tl.json | 1 - plugins/SegmentEditor/lang/vi.json | 1 - plugins/SegmentEditor/lang/zh-cn.json | 1 - plugins/SitesManager/lang/el.json | 2 +- plugins/TasksTimetable | 2 +- .../Transitions/javascripts/transitions.js | 12 +- plugins/Transitions/lang/sq.json | 14 ++ plugins/Transitions/lang/tr.json | 25 ++- plugins/UserCountry/lang/da.json | 1 + plugins/UserCountry/lang/sq.json | 3 + plugins/UserCountry/lang/sv.json | 1 + plugins/UserCountryMap/lang/de.json | 2 +- plugins/UserCountryMap/lang/sq.json | 12 +- plugins/UserCountryMap/lang/sv.json | 1 + plugins/UserLanguage/lang/sq.json | 1 + plugins/UsersManager/Controller.php | 2 +- .../UsersManager/javascripts/usersManager.js | 3 +- plugins/UsersManager/lang/de.json | 5 + plugins/UsersManager/lang/sq.json | 8 +- .../UsersManager/tests/Fixtures/ManyUsers.php | 2 +- plugins/VisitTime/lang/sv.json | 1 + plugins/VisitTime/lang/tr.json | 3 + plugins/VisitorGenerator | 2 +- plugins/VisitorInterest/lang/sv.json | 1 + plugins/VisitsSummary/lang/sv.json | 1 + plugins/WebsiteMeasurable/lang/sq.json | 3 +- plugins/WebsiteMeasurable/lang/tr.json | 6 + plugins/Widgetize/lang/tr.json | 4 +- tests/PHPUnit/Integration/PiwikTest.php | 1 + .../Settings/SystemSettingTest.php | 15 ++ tests/PHPUnit/Integration/WidgetsListTest.php | 1 - ...Reports.generateReport_month.original.html | 2 +- tests/PHPUnit/Unit/DataTableTest.php | 8 + tests/UI/expected-ui-screenshots | 2 +- tests/UI/specs/DashboardManager_spec.js | 22 +++ tests/UI/specs/Dashboard_spec.js | 3 + tests/UI/specs/Login_spec.js | 8 + tests/UI/specs/Transitions_spec.js | 1 + tests/javascript/index.php | 24 ++- tests/javascript/piwiktest.js | 3 +- 231 files changed, 1103 insertions(+), 412 deletions(-) create mode 100644 plugins/Contents/lang/zh-cn.json create mode 100644 plugins/Diagnostics/lang/ro.json create mode 100644 plugins/Diagnostics/lang/sq.json create mode 100644 plugins/Ecommerce/lang/sq.json create mode 100644 plugins/Ecommerce/lang/vi.json create mode 100644 plugins/Events/lang/sq.json create mode 100644 plugins/MobileAppMeasurable/lang/sq.json create mode 100644 plugins/MobileMessaging/lang/sq.json create mode 100644 plugins/PiwikPro/Widgets.php create mode 100644 plugins/SegmentEditor/lang/sq.json create mode 100644 plugins/Transitions/lang/sq.json create mode 100644 plugins/WebsiteMeasurable/lang/tr.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e71eb7815..df034f4ea8 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 f24e51b41b..2130bf7275 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 0b01769e0e..aec6448c3d 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ [](https://scrutinizer-ci.com/g/piwik/piwik/?branch=master) [](http://isitmaintained.com/project/piwik/piwik "Average time to resolve an issue") [](http://isitmaintained.com/project/piwik/piwik "Percentage of issues still open") +[](https://gemnasium.com/piwik/piwik) ## Description diff --git a/composer.lock b/composer.lock index 32d5519835..e880b46091 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 28ddf49ce9..d96a0a4ae8 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 326f25fc6f..1cfe92491d 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 89b1d6ce87..71817cb196 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 29e2fc65f6..91d18c5c77 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 fb0a4d7a2d..68e780a3e8 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 64998cd0cd..cd00196bd2 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 3635057355..2ec6809da9 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 6d20136fc0..774c575780 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 902bbfb91d..843f5ca515 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 2cfd9c7ea5..274cd5ed67 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 e5c5b2e313..d390d5016d 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 94f585b079..4fcf0eb9bb 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 23662599ba..fcceae2a81 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 f3761b143e..248c7712e4 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 eec6f7eba1..715c3afc41 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 ca448a4706..7331784560 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 c73ae356ac..ad2e793d56 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 fedbd7a13d..f186ddc230 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 2e052353fc..32d01c7113 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 0e3adbe853..615e8bf383 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 743a5fc862..b908e83f8e 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 9d55d2908d..caa49ba874 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 ee042e57e6..b180bbe00e 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 cd59aba81b..79d4aed2c4 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 8377e7666b..23e3e458ab 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 d1a09bcbbc..70c1860508 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 28df9c980c..6e516c0bf0 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 ae4c5588c3..9628ac2bf3 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 bdc397f1ec..6905941b68 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 006b1889f0..a3d618b97a 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 14a9bdb103..dd9d03abcb 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 d2bca479d4..923a203cc7 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 42e11ac184..7968d6fd0a 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 eed9e644b0..ddb87cff70 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 08107280f4..550e6053ab 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+=">_ms="+bR}else{if(f&&f.timing&&f.timing.requestStart&&f.timing.responseEnd){cD+=">_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+=">_ms="+bT}else{if(g&&g.timing&&g.timing.requestStart&&g.timing.responseEnd){cE+=">_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 701cfc28b6..8408570e49 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 7ad2ec2d1c..e38aaf0b15 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 673c34dd3d..849734f62b 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 ce3df6871a..2a364fc617 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 cdc3253411..8e9e616b91 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 6940435465..f76730d65c 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 c02a62e648..7ba920bc2a 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 5e1060c57c..0c65af530a 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 6f067e99b5..74c06d6e4a 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 bd7775adfc..dc3ba67ba7 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 61cb4074fa..4d58b26084 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 0799894fd4..6549aa9b32 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 0000000000..dc1b8b1052 --- /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 89bfcdb50c..ac9cac47d6 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 33bf6ac651..3db2572545 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 e00f68b9a4..6cb5fc8127 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 4f776e7267..e2c1b19591 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 6863dd0393..b0ac486b10 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 885603c0e7..4386a4bf7b 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 f694769821..28cad1f3f9 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 96d37ffb00..0f98557da3 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 05a0379a62..204ab60827 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 eddff9951e..88dbbe2e7b 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 de8270c5b6..2d2a82c414 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 069cbec093..fc6db1f6ca 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 9b555b43dd..4d2f10f0e7 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 1f50caf404..4d1491d8ed 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 f2d2e1b737..df8b537e4f 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 61db76e622..10910bda57 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 92cd5fc608..49899599e9 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 0d1495440f..7630feb265 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 466ff0182b..4b2a7c5e4e 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 4cb74ef1b8..dfc4f5b57f 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 3f71ea0d68..e3b349bb7d 160000 --- a/plugins/CustomAlerts +++ b/plugins/CustomAlerts @@ -1 +1 @@ -Subproject commit 3f71ea0d6880f4a1cbdc531342760f72136e26d2 +Subproject commit e3b349bb7d75269962b31695d99f1e8ec7e44b39 diff --git a/plugins/CustomDimensions b/plugins/CustomDimensions index a9c2872b3e..aab8e5a724 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 98f2bef3af..7e152f0346 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 fb18850ba0..ba2540b520 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 11f438e096..d037379c7f 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 a98cc725a7..ac4291ebd1 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 ea9f6824b1..83d23ab402 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 14cfbb29f2..0f90459844 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 6286f74791..196196ea5b 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 457fc67f7a..b1da76c099 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 39d39bb28b..2c17ddc435 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 bf14760780..4f2b0f7772 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 645b2c2f13..b69bbc0900 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 afa5cc2dbf..9f56c6aa38 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 6d9ff142de..52952d5ec3 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 ddaac2428c..17f3a5363d 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 7550b4b423..61aa87f22c 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 28dd7fe67c..df2cd7d373 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 affb773e90..0328ee866b 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 22f95fc6eb..7d0c90938d 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 72a21afc43..0b3feb55e1 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 0000000000..a33b1bc0cb --- /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 0000000000..1e0cf25ff0 --- /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 0000000000..005f58ccb9 --- /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 0000000000..7d87dfe1fc --- /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 0000000000..e97f2cb97d --- /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 70671336b7..e5656f448a 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 6bf5ed2407..e06d11684e 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 379daed27b..80fab4cfc4 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 97d6b9b375..d8c0dcb091 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 b3c92ded43..1c5dfc173d 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 63810c8f5a..5ba02ca36e 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 71b887124d..96f93dfefa 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 d1da4a0930..9038f453ef 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 a03ef51c8b..f19a0a9248 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 cdb5822ef5..c7e657835d 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 bde1148c02..b94e1d0bc1 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 9d0815134f..7e59ba7663 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 2b51d7634d..83ff4a0dd5 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 1d662380a6..70797d7366 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 bef29bf2ac..ab96b1f3c3 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 e9c16ccf0c..af46dc7000 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 4d15d5d3f6..86ae4fcb66 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 fd634ec61c..36b59326a8 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 4796bbc01f..644b6d1d47 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 f1b14ea1d9..52b75c2ebd 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 7e4b82f6d2..cb5ade51e4 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 a1008f18de..5d5acabd12 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 82f651d7d3..d4ee6c203f 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 3ffb0e132e..b2c7d59162 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 6a70ee8a50..8d87727ebc 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 46ba3eff8b..2395841b94 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 dd97a5e577..9be1068669 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 15618ddbdf..86bc551f23 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 c4caac5e6e..61ef5c8f57 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 7597684359..185de64c25 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 113da72c49..ec597a1b5e 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 c2a5ca27d5..23331808a5 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 be79d33a89..8d08b149b6 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 9d66a4a9bd..bed81a018f 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 22ee716bd9..5e7063ef85 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 3d70d5c642..54bc376680 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 7897d60adb..3750a45a89 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 68e2dc17ba..779840db0e 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 5b0072aed2..48da0a8387 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 20e48735ec..6e83c14cbf 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 45a46d52f4..264f248a49 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 332306ddb0..ef5dd5611f 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 e60867324d..743855b8a1 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 b143491922..26b580344c 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 7c83e0c2b4..94eb620fd7 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 69ef62ef76..219a6f58f8 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 8590790862..6aea11e06c 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 981d278bf0..1ba717c60b 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 f8274e299b..924a7e60bc 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 1b128e914d..3a2dd8aa47 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 0000000000..d1bc97551c --- /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 0000000000..4cb815e3f1 --- /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 1e413fba14..ca88cee2d5 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 5d37b9ab2b..94e08389f9 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 d17c44309e..2725f90156 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 5205453aaf..e522f42ef2 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 73a845802b..8e434a3547 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 0000000000..f8e007aa07 --- /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 eb6f8e6a30..b9985194d3 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 5a8e1599f2..a45b254e04 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 f533c0ef17..90e8dff654 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 4d9ea04e7d..d81202f4cb 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 5277167591..39b9498062 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 522523b58b..5d5604cd5f 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 91a8e73aa4..e24e8020cf 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 07e4496ccd..cf6e1cf597 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 15184f8251..c36569eb1e 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 5810865df9..57301d3a92 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 2adc7d6ab3..ec8e9db5d4 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 fbe69ab8da..b7955341bd 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 12a7871a3e..faf7f322fa 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 20a1dccf7f..9751d2b848 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 6420bc5ebf..19d26aacbb 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 ffd8bf2321..7e9a75ef96 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 d4ed54b977..96d5e2256b 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 e847e3ed4b..96e36c02b7 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 fc050c4710..ff1e7fd3b9 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 da1876cfd7..cbde4ae07c 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 b81b7bd060..08c8a77a91 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 2f0f64fa5f..de72617253 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 52ea2941df..1fb4502c8b 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 f293d5017d..623fe67f8f 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 13a73eedfb..efbc998855 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 ef05248b2d..71e0b928bc 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 d612e9594c..d1aeca9500 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 00e9c985ce..e5d5806cd7 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 50f8c52718..d8c1060c17 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 96efec50fe..faf1171950 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 af9fd478db..55d7c8c61c 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 eb0f9c3c05..ad9e928636 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 0000000000..b8d7dbd9ce --- /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 2be5a7457c..0fd868bdbf 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 9e81fa0995..955e9da3b4 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 7e3b4a8f79..7933c0fe3a 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 78a7a6dc80..d94eb8f35e 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 ff6c9f1c3d..44c7d182c4 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 bac074df01..e8636db0ad 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 813a8e3dc6..53ab383e4d 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 8461c89069..0da9580cf0 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 0000000000..c634ea624a --- /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 c0cb35ba95..cd5fed6a05 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 0eeed96716..4f45a6045f 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 50793adabd..0ee12da135 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 1f40178911..f408801205 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 68c3556d72..f3d1b47141 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 143d07c783..fdd2aaac07 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 7ce29ed627..53138f6578 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 74aa35ef51..4c35237002 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 16ae4c04e7..b0bb0a88f0 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 a05e602c35..5624cb272a 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 e1ce9fd356..fe2af9b777 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 78301c8d1c..e943b45826 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 b92be230f5..b9c6821f67 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 6a6d7e4d80..ed9f5df762 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 b939617aa8..b65d81deb5 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 4c18db6600..9e27fa9f5d 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 9671592f0c..71eb512f43 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 725d3a9fba..e5cef028dc 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 7d884b382b..d117a6f710 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 0000000000..f4da4a6032 --- /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 3c15469b30..10eaf05201 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 aad756ee5e..28cb798d75 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 f3655ed919..e740f61f70 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 8af1095b98..3cafbe67a1 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 95c67bf1c7..2709560a00 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 c427adeae7..fa7fe22669 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 a3a5924c85..4513d00ca8 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 815fd6e2c9..ae6e2eddc4 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 94b85fcc17..2489f69637 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 ed4ad31ba3..dc0fbb558a 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 dcbc87901a..b0972775c9 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 60d7f11558..2e0e48723d 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 67157c6d96..ff5525c47d 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' + '}' ); }, -- GitLab