Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Steur <thomas.steur@gmail.com>2016-03-08 03:57:48 +0300
committerThomas Steur <thomas.steur@gmail.com>2016-03-08 03:57:48 +0300
commit3b37fe84dd01822e48eb815a18b28ac474de96a2 (patch)
tree59bb6285a78041bdd6cd9faa676a7a61cef6164d
parent4a01a7024ce578d8232d6d56702d94892f1128fb (diff)
Merge master => 3.0
-rw-r--r--CHANGELOG.md6
-rw-r--r--CONTRIBUTING.md4
-rw-r--r--README.md1
-rw-r--r--composer.lock10
-rw-r--r--core/CronArchive.php34
-rw-r--r--core/DataTable.php1
-rw-r--r--core/Piwik.php2
-rw-r--r--core/Plugin/ConsoleCommand.php9
-rw-r--r--core/Settings/SystemSetting.php10
-rw-r--r--js/piwik.js65
-rw-r--r--lang/am.json2
-rw-r--r--lang/be.json2
-rw-r--r--lang/bg.json2
-rw-r--r--lang/cs.json2
-rw-r--r--lang/da.json2
-rw-r--r--lang/de.json2
-rw-r--r--lang/el.json2
-rw-r--r--lang/fa.json2
-rw-r--r--lang/fi.json2
-rw-r--r--lang/fr.json2
-rw-r--r--lang/he.json2
-rw-r--r--lang/hi.json2
-rw-r--r--lang/id.json2
-rw-r--r--lang/ko.json7
-rw-r--r--lang/pl.json2
-rw-r--r--lang/pt-br.json2
-rw-r--r--lang/ro.json2
-rw-r--r--lang/ru.json2
-rw-r--r--lang/sk.json11
-rw-r--r--lang/sl.json2
-rw-r--r--lang/sq.json168
-rw-r--r--lang/sv.json7
-rw-r--r--lang/th.json17
-rw-r--r--lang/tl.json2
-rw-r--r--lang/tr.json46
-rw-r--r--lang/uk.json2
-rw-r--r--lang/zh-cn.json62
-rw-r--r--lang/zh-tw.json2
-rw-r--r--piwik.js89
-rw-r--r--plugins/API/lang/da.json5
-rw-r--r--plugins/API/lang/de.json2
-rw-r--r--plugins/API/lang/ro.json6
-rw-r--r--plugins/API/lang/sq.json3
-rw-r--r--plugins/API/lang/tr.json6
-rw-r--r--plugins/API/lang/zh-cn.json6
-rw-r--r--plugins/Actions/lang/sq.json5
-rw-r--r--plugins/Actions/lang/tr.json6
-rw-r--r--plugins/Actions/lang/zh-cn.json4
-rw-r--r--plugins/Annotations/lang/tr.json1
-rw-r--r--plugins/Contents/lang/de.json2
-rw-r--r--plugins/Contents/lang/tr.json6
-rw-r--r--plugins/Contents/lang/zh-cn.json16
-rw-r--r--plugins/CoreAdminHome/lang/de.json5
-rw-r--r--plugins/CoreAdminHome/lang/sq.json10
-rw-r--r--plugins/CoreAdminHome/lang/sv.json2
-rw-r--r--plugins/CoreAdminHome/lang/zh-cn.json20
-rwxr-xr-xplugins/CoreHome/javascripts/corehome.js3
-rw-r--r--plugins/CoreHome/javascripts/dataTable.js6
-rw-r--r--plugins/CoreHome/javascripts/popover.js2
-rw-r--r--plugins/CoreHome/javascripts/top_controls.js16
-rw-r--r--plugins/CoreHome/lang/sq.json8
-rw-r--r--plugins/CoreHome/lang/tr.json6
-rw-r--r--plugins/CoreHome/lang/zh-cn.json8
-rw-r--r--plugins/CorePluginsAdmin/lang/sk.json4
-rw-r--r--plugins/CorePluginsAdmin/lang/sq.json7
-rw-r--r--plugins/CorePluginsAdmin/lang/sv.json3
-rw-r--r--plugins/CorePluginsAdmin/lang/zh-cn.json32
-rw-r--r--plugins/CorePluginsAdmin/templates/plugins.twig3
-rw-r--r--plugins/CoreUpdater/lang/sk.json5
-rw-r--r--plugins/CoreUpdater/lang/sq.json11
-rw-r--r--plugins/CoreUpdater/lang/sv.json2
-rw-r--r--plugins/CoreUpdater/lang/zh-cn.json26
m---------plugins/CustomAlerts0
m---------plugins/CustomDimensions0
-rw-r--r--plugins/CustomVariables/lang/de.json4
-rw-r--r--plugins/CustomVariables/lang/sq.json4
-rw-r--r--plugins/CustomVariables/lang/sv.json5
-rw-r--r--plugins/CustomVariables/lang/zh-cn.json15
-rw-r--r--plugins/DBStats/lang/sq.json9
-rw-r--r--plugins/DBStats/lang/tr.json1
-rw-r--r--plugins/Dashboard/javascripts/dashboard.js2
-rw-r--r--plugins/Dashboard/javascripts/dashboardObject.js13
-rw-r--r--plugins/Dashboard/lang/sq.json9
-rw-r--r--plugins/Dashboard/lang/sv.json1
-rw-r--r--plugins/Dashboard/lang/tr.json6
-rw-r--r--plugins/Dashboard/lang/vi.json1
-rw-r--r--plugins/Dashboard/lang/zh-cn.json1
-rw-r--r--plugins/Dashboard/templates/index.twig4
-rw-r--r--plugins/DevicePlugins/lang/sq.json2
-rw-r--r--plugins/DevicesDetection/lang/sq.json3
-rw-r--r--plugins/DevicesDetection/lang/tr.json8
-rw-r--r--plugins/Diagnostics/ConfigReader.php2
-rw-r--r--plugins/Diagnostics/lang/it.json1
-rw-r--r--plugins/Diagnostics/lang/ro.json8
-rw-r--r--plugins/Diagnostics/lang/sq.json6
-rw-r--r--plugins/Ecommerce/lang/sq.json6
-rw-r--r--plugins/Ecommerce/lang/vi.json5
-rw-r--r--plugins/Events/lang/sq.json11
-rw-r--r--plugins/Events/lang/tr.json2
-rw-r--r--plugins/Events/lang/vi.json1
-rw-r--r--plugins/Feedback/lang/sv.json10
-rw-r--r--plugins/Goals/lang/es.json2
-rw-r--r--plugins/Goals/lang/sq.json2
-rw-r--r--plugins/Goals/lang/sv.json2
-rw-r--r--plugins/Goals/lang/zh-cn.json1
-rw-r--r--plugins/ImageGraph/lang/sq.json2
-rw-r--r--plugins/Insights/lang/zh-cn.json5
-rw-r--r--plugins/Installation/lang/cs.json1
-rw-r--r--plugins/Installation/lang/ko.json2
-rw-r--r--plugins/Installation/lang/sq.json19
-rw-r--r--plugins/Installation/lang/tr.json5
-rw-r--r--plugins/Installation/lang/vi.json1
-rw-r--r--plugins/Installation/lang/zh-cn.json2
-rw-r--r--plugins/LanguagesManager/Commands/CreatePull.php2
-rw-r--r--plugins/Live/Visitor.php3
-rw-r--r--plugins/Live/javascripts/live.js8
-rw-r--r--plugins/Live/lang/de.json3
-rw-r--r--plugins/Live/lang/sq.json4
-rw-r--r--plugins/Live/lang/sv.json7
-rw-r--r--plugins/Live/lang/tr.json8
-rw-r--r--plugins/Live/templates/_actionsList.twig2
-rwxr-xr-xplugins/Login/javascripts/login.js2
-rw-r--r--plugins/Login/lang/ca.json1
-rw-r--r--plugins/Login/lang/cs.json1
-rw-r--r--plugins/Login/lang/da.json1
-rw-r--r--plugins/Login/lang/de.json3
-rw-r--r--plugins/Login/lang/el.json1
-rw-r--r--plugins/Login/lang/en.json2
-rw-r--r--plugins/Login/lang/es.json1
-rw-r--r--plugins/Login/lang/fi.json1
-rw-r--r--plugins/Login/lang/fr.json1
-rw-r--r--plugins/Login/lang/hi.json1
-rw-r--r--plugins/Login/lang/hu.json1
-rw-r--r--plugins/Login/lang/id.json1
-rw-r--r--plugins/Login/lang/it.json1
-rw-r--r--plugins/Login/lang/ja.json1
-rw-r--r--plugins/Login/lang/ko.json1
-rw-r--r--plugins/Login/lang/nb.json1
-rw-r--r--plugins/Login/lang/nl.json1
-rw-r--r--plugins/Login/lang/pt-br.json1
-rw-r--r--plugins/Login/lang/ro.json1
-rw-r--r--plugins/Login/lang/ru.json1
-rw-r--r--plugins/Login/lang/sl.json1
-rw-r--r--plugins/Login/lang/sr.json1
-rw-r--r--plugins/Login/lang/sv.json1
-rw-r--r--plugins/Login/lang/tr.json3
-rw-r--r--plugins/Login/lang/vi.json1
-rw-r--r--plugins/Login/lang/zh-cn.json1
-rw-r--r--plugins/MobileAppMeasurable/lang/sq.json6
-rw-r--r--plugins/MobileMessaging/lang/sq.json8
-rw-r--r--plugins/Morpheus/javascripts/piwikHelper.js21
-rw-r--r--plugins/Morpheus/stylesheets/main.less12
-rw-r--r--plugins/MultiSites/lang/sk.json3
-rw-r--r--plugins/MultiSites/lang/zh-cn.json3
-rw-r--r--plugins/Overlay/lang/sq.json8
-rw-r--r--plugins/PiwikPro/Widgets.php82
-rw-r--r--plugins/PrivacyManager/lang/sq.json6
-rw-r--r--plugins/PrivacyManager/lang/sv.json1
-rw-r--r--plugins/Provider/lang/sq.json5
-rw-r--r--plugins/Provider/lang/tr.json5
m---------plugins/QueuedTracking0
-rw-r--r--plugins/Referrers/lang/tr.json1
-rw-r--r--plugins/Resolution/lang/tr.json1
-rw-r--r--plugins/SEO/lang/sq.json1
-rw-r--r--plugins/SEO/lang/sv.json1
-rw-r--r--plugins/SEO/lang/tr.json2
-rw-r--r--plugins/ScheduledReports/lang/sq.json2
-rw-r--r--plugins/ScheduledReports/lang/tr.json2
-rw-r--r--plugins/SegmentEditor/lang/bg.json1
-rw-r--r--plugins/SegmentEditor/lang/cs.json2
-rw-r--r--plugins/SegmentEditor/lang/da.json1
-rw-r--r--plugins/SegmentEditor/lang/de.json4
-rw-r--r--plugins/SegmentEditor/lang/el.json2
-rw-r--r--plugins/SegmentEditor/lang/en.json2
-rw-r--r--plugins/SegmentEditor/lang/es.json1
-rw-r--r--plugins/SegmentEditor/lang/et.json1
-rw-r--r--plugins/SegmentEditor/lang/fa.json1
-rw-r--r--plugins/SegmentEditor/lang/fi.json1
-rw-r--r--plugins/SegmentEditor/lang/fr.json1
-rw-r--r--plugins/SegmentEditor/lang/hi.json1
-rw-r--r--plugins/SegmentEditor/lang/id.json1
-rw-r--r--plugins/SegmentEditor/lang/it.json2
-rw-r--r--plugins/SegmentEditor/lang/ja.json1
-rw-r--r--plugins/SegmentEditor/lang/nb.json1
-rw-r--r--plugins/SegmentEditor/lang/nl.json1
-rw-r--r--plugins/SegmentEditor/lang/pt-br.json2
-rw-r--r--plugins/SegmentEditor/lang/ro.json1
-rw-r--r--plugins/SegmentEditor/lang/ru.json1
-rw-r--r--plugins/SegmentEditor/lang/sq.json7
-rw-r--r--plugins/SegmentEditor/lang/sr.json1
-rw-r--r--plugins/SegmentEditor/lang/sv.json1
-rw-r--r--plugins/SegmentEditor/lang/tl.json1
-rw-r--r--plugins/SegmentEditor/lang/vi.json1
-rw-r--r--plugins/SegmentEditor/lang/zh-cn.json1
-rw-r--r--plugins/SitesManager/lang/el.json2
m---------plugins/TasksTimetable0
-rw-r--r--plugins/Transitions/javascripts/transitions.js12
-rw-r--r--plugins/Transitions/lang/sq.json14
-rw-r--r--plugins/Transitions/lang/tr.json25
-rw-r--r--plugins/UserCountry/lang/da.json1
-rw-r--r--plugins/UserCountry/lang/sq.json3
-rw-r--r--plugins/UserCountry/lang/sv.json1
-rw-r--r--plugins/UserCountryMap/lang/de.json2
-rw-r--r--plugins/UserCountryMap/lang/sq.json12
-rw-r--r--plugins/UserCountryMap/lang/sv.json1
-rw-r--r--plugins/UserLanguage/lang/sq.json1
-rw-r--r--plugins/UsersManager/Controller.php2
-rw-r--r--plugins/UsersManager/javascripts/usersManager.js3
-rw-r--r--plugins/UsersManager/lang/de.json5
-rw-r--r--plugins/UsersManager/lang/sq.json8
-rw-r--r--plugins/UsersManager/tests/Fixtures/ManyUsers.php2
-rw-r--r--plugins/VisitTime/lang/sv.json1
-rw-r--r--plugins/VisitTime/lang/tr.json3
m---------plugins/VisitorGenerator0
-rw-r--r--plugins/VisitorInterest/lang/sv.json1
-rw-r--r--plugins/VisitsSummary/lang/sv.json1
-rw-r--r--plugins/WebsiteMeasurable/lang/sq.json3
-rw-r--r--plugins/WebsiteMeasurable/lang/tr.json6
-rw-r--r--plugins/Widgetize/lang/tr.json4
-rw-r--r--tests/PHPUnit/Integration/PiwikTest.php1
-rw-r--r--tests/PHPUnit/Integration/Settings/SystemSettingTest.php15
-rw-r--r--tests/PHPUnit/Integration/WidgetsListTest.php1
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html2
-rw-r--r--tests/PHPUnit/Unit/DataTableTest.php8
m---------tests/UI/expected-ui-screenshots0
-rw-r--r--tests/UI/specs/DashboardManager_spec.js22
-rw-r--r--tests/UI/specs/Dashboard_spec.js3
-rw-r--r--tests/UI/specs/Login_spec.js8
-rw-r--r--tests/UI/specs/Transitions_spec.js1
-rw-r--r--tests/javascript/index.php24
-rw-r--r--tests/javascript/piwiktest.js3
231 files changed, 1097 insertions, 406 deletions
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 @@
[![Code Coverage](https://scrutinizer-ci.com/g/piwik/piwik/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/piwik/piwik/?branch=master)
[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/piwik/piwik.svg)](http://isitmaintained.com/project/piwik/piwik "Average time to resolve an issue")
[![Percentage of issues still open](http://isitmaintained.com/badge/open/piwik/piwik.svg)](http://isitmaintained.com/project/piwik/piwik "Percentage of issues still open")
+[![Dependency Status](https://gemnasium.com/piwik/piwik.svg)](https://gemnasium.com/piwik/piwik)
## Description
diff --git a/composer.lock b/composer.lock
index 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
@@ -67,6 +67,16 @@ class SystemSetting extends Setting
}
/**
+ * 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.
*
* @return bool
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+="&gt_ms="+bR}else{if(f&&f.timing&&f.timing.requestStart&&f.timing.responseEnd){cD+="&gt_ms="+(f.timing.responseEnd-f.timing.requestStart)}}}cR.lastEcommerceOrderTs=z(cE)&&String(cE).length?cE:cR.lastEcommerceOrderTs;ap(cR);bI();cD+=R(cZ);if(cl.length){cD+="&"+cl}if(s(bG)){cD=bG(cD)}return cD}bn=function aJ(){var cB=new Date();
-if(ck+aI<=cB.getTime()){var cC=bW("ping=1",null,"ping");bc(cC,bf);return true}return false};function a1(cE,cD,cI,cF,cB,cL){var cG="idgoal=0",cH,cC=new Date(),cJ=[],cK;if(String(cE).length){cG+="&ec_id="+m(cE);cH=Math.round(cC.getTime()/1000)}cG+="&revenue="+cD;if(String(cI).length){cG+="&ec_st="+cI}if(String(cF).length){cG+="&ec_tx="+cF}if(String(cB).length){cG+="&ec_sh="+cB}if(String(cL).length){cG+="&ec_dt="+cL}if(cm){for(cK in cm){if(Object.prototype.hasOwnProperty.call(cm,cK)){if(!z(cm[cK][1])){cm[cK][1]=""}if(!z(cm[cK][2])){cm[cK][2]=""}if(!z(cm[cK][3])||String(cm[cK][3]).length===0){cm[cK][3]=0}if(!z(cm[cK][4])||String(cm[cK][4]).length===0){cm[cK][4]=1}cJ.push(cm[cK])}}cG+="&ec_items="+m(JSON2.stringify(cJ))}cG=bW(cG,Z,"ecommerce",cH);bc(cG,bf)}function bu(cB,cF,cE,cD,cC,cG){if(String(cB).length&&z(cF)){a1(cB,cF,cE,cD,cC,cG)}}function a2(cB){if(z(cB)){a1("",cB,"","","","")}}function bv(cD,cE){var cB=new Date(),cC=bW("action_name="+m(W(cD||aU)),cE,"log");bc(cC,bf)}function aD(cD,cC){var cE,cB="(^| )(piwik[_-]"+cC;
-if(cD){for(cE=0;cE<cD.length;cE++){cB+="|"+cD[cE]}}cB+=")( |$)";return new RegExp(cB)}function ay(cB){return(aj&&cB&&0===String(cB).indexOf(aj))}function bX(cF,cB,cG,cC){if(ay(cB)){return 0}var cE=aD(bh,"download"),cD=aD(aK,"link"),cH=new RegExp("\\.("+cr.join("|")+")([?&#]|$)","i");if(cD.test(cF)){return"link"}if(cC||cE.test(cF)||cH.test(cB)){return"download"}if(cG){return 0}return"link"}function ad(cC){var cB;cB=cC.parentNode;while(cB!==null&&z(cB)){if(T.isLinkElement(cC)){break}cC=cB;cB=cC.parentNode}return cC}function cv(cG){cG=ad(cG);if(!T.hasNodeAttribute(cG,"href")){return}if(!z(cG.href)){return}var cF=T.getAttributeValueFromNode(cG,"href");if(ay(cF)){return}var cC=cG.pathname||bP(cG.href);var cH=cG.hostname||c(cG.href);var cI=cH.toLowerCase();var cD=cG.href.replace(cH,cI);var cE=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto):","i");if(!cE.test(cD)){var cB=bX(cG.className,cD,ac(cI,cC),T.hasNodeAttribute(cG,"download"));if(cB){return{type:cB,href:cD}
-}}}function at(cB,cC,cD,cE){var cF=o.buildInteractionRequestParams(cB,cC,cD,cE);if(!cF){return}return bW(cF,null,"contentInteraction")}function ca(cD,cE,cI,cB,cC){if(!z(cD)){return}if(ay(cD)){return cD}var cG=o.toAbsoluteUrl(cD);var cF="redirecturl="+m(cG)+"&";cF+=at(cE,cI,cB,(cC||cD));var cH="&";if(aj.indexOf("?")<0){cH="?"}return aj+cH+cF}function aO(cB,cC){if(!cB||!cC){return false}var cD=o.findTargetNode(cB);if(o.shouldIgnoreInteraction(cD)){return false}cD=o.findTargetNodeNoDefault(cB);if(cD&&!K(cD,cC)){return false}return true}function bY(cD,cC,cF){if(!cD){return}var cB=o.findParentContentNode(cD);if(!cB){return}if(!aO(cB,cD)){return}var cE=o.buildContentBlock(cB);if(!cE){return}if(!cE.target&&cF){cE.target=cF}return o.buildInteractionRequestParams(cC,cE.name,cE.piece,cE.target)}function aA(cC){if(!bF||!bF.length){return false}var cB,cD;for(cB=0;cB<bF.length;cB++){cD=bF[cB];if(cD&&cD.name===cC.name&&cD.piece===cC.piece&&cD.target===cC.target){return true}}return false}function bb(cE){if(!cE){return false
-}var cH=o.findTargetNode(cE);if(!cH||o.shouldIgnoreInteraction(cH)){return false}var cI=cv(cH);if(ct&&cI&&cI.type){return false}if(T.isLinkElement(cH)&&T.hasNodeAttributeWithValue(cH,"href")){var cB=String(T.getAttributeValueFromNode(cH,"href"));if(0===cB.indexOf("#")){return false}if(ay(cB)){return true}if(!o.isUrlToCurrentDomain(cB)){return false}var cF=o.buildContentBlock(cE);if(!cF){return}var cD=cF.name;var cJ=cF.piece;var cG=cF.target;if(!T.hasNodeAttributeWithValue(cH,o.CONTENT_TARGET_ATTR)||cH.wasContentTargetAttrReplaced){cH.wasContentTargetAttrReplaced=true;cG=o.toAbsoluteUrl(cB);T.setAnyAttribute(cH,o.CONTENT_TARGET_ATTR,cG)}var cC=ca(cB,"click",cD,cJ,cG);o.setHrefAttribute(cH,cC);return true}return false}function aq(cC){if(!cC||!cC.length){return}var cB;for(cB=0;cB<cC.length;cB++){bb(cC[cB])}}function aC(cB){return function(cC){if(!cB){return}var cF=o.findParentContentNode(cB);var cG;if(cC){cG=cC.target||cC.srcElement}if(!cG){cG=cB}if(!aO(cF,cG)){return}bL(bf);if(T.isLinkElement(cB)&&T.hasNodeAttributeWithValue(cB,"href")&&T.hasNodeAttributeWithValue(cB,o.CONTENT_TARGET_ATTR)){var cD=T.getAttributeValueFromNode(cB,"href");
-if(!ay(cD)&&cB.wasContentTargetAttrReplaced){T.setAnyAttribute(cB,o.CONTENT_TARGET_ATTR,"")}}var cK=cv(cB);if(aa&&cK&&cK.type){return cK.type}if(bb(cF)){return"href"}var cH=o.buildContentBlock(cF);if(!cH){return}var cE=cH.name;var cL=cH.piece;var cJ=cH.target;var cI=at("click",cE,cL,cJ);bc(cI,bf);return cI}}function bw(cD){if(!cD||!cD.length){return}var cB,cC;for(cB=0;cB<cD.length;cB++){cC=o.findTargetNode(cD[cB]);if(cC&&!cC.contentInteractionTrackingSetupDone){cC.contentInteractionTrackingSetupDone=true;Y(cC,"click",aC(cC))}}}function a6(cD,cE){if(!cD||!cD.length){return[]}var cB,cC;for(cB=0;cB<cD.length;cB++){if(aA(cD[cB])){cD.splice(cB,1);cB--}else{bF.push(cD[cB])}}if(!cD||!cD.length){return[]}aq(cE);bw(cE);var cF=[];for(cB=0;cB<cD.length;cB++){cC=bW(o.buildImpressionRequestParams(cD[cB].name,cD[cB].piece,cD[cB].target),undefined,"contentImpressions");cF.push(cC)}return cF}function b1(cC){var cB=o.collectContent(cC);return a6(cB,cC)}function aM(cC){if(!cC||!cC.length){return[]}var cB;
-for(cB=0;cB<cC.length;cB++){if(!o.isNodeVisible(cC[cB])){cC.splice(cB,1);cB--}}if(!cC||!cC.length){return[]}return b1(cC)}function al(cD,cB,cC){var cE=o.buildImpressionRequestParams(cD,cB,cC);return bW(cE,null,"contentImpression")}function cw(cE,cC){if(!cE){return}var cB=o.findParentContentNode(cE);var cD=o.buildContentBlock(cB);if(!cD){return}if(!cC){cC="Unknown"}return at(cC,cD.name,cD.piece,cD.target)}function cc(cC,cE,cB,cD){return"e_c="+m(cC)+"&e_a="+m(cE)+(z(cB)?"&e_n="+m(cB):"")+(z(cD)?"&e_v="+m(cD):"")}function ae(cD,cF,cB,cE,cG){if(String(cD).length===0||String(cF).length===0){return false}var cC=bW(cc(cD,cF,cB,cE),cG,"event");bc(cC,bf)}function bE(cB,cE,cC,cF){var cD=bW("search="+m(cB)+(cE?"&search_cat="+m(cE):"")+(z(cC)?"&search_count="+cC:""),cF,"sitesearch");bc(cD,bf)}function cg(cB,cE,cD){var cC=bW("idgoal="+cB+(cE?"&revenue="+cE:""),cD,"goal");bc(cC,bf)}function cn(cE,cB,cI,cH,cD){var cG=cB+"="+m(bx(cE));var cC=bY(cD,"click",cE);if(cC){cG+="&"+cC}var cF=bW(cG,cI,"link");bc(cF,(cH?0:bf),cH)
-}function bp(cC,cB){if(cC!==""){return cC+cB.charAt(0).toUpperCase()+cB.slice(1)}return cB}function bM(cG){var cF,cB,cE=["","webkit","ms","moz"],cD;if(!aS){for(cB=0;cB<cE.length;cB++){cD=cE[cB];if(Object.prototype.hasOwnProperty.call(x,bp(cD,"hidden"))){if(x[bp(cD,"visibilityState")]==="prerender"){cF=true}break}}}if(cF){Y(x,cD+"visibilitychange",function cC(){x.removeEventListener(cD+"visibilitychange",cC,false);cG()});return}cG()}function ao(cB){if(x.readyState==="complete"){cB()}else{if(J.addEventListener){J.addEventListener("load",cB)}else{if(J.attachEvent){J.attachEvent("onLoad",cB)}}}}function aP(cC){var cB=false;if(x.attachEvent){cB=x.readyState==="complete"}else{cB=x.readyState!=="loading"}if(cB){cC()}else{if(x.addEventListener){x.addEventListener("DOMContentLoaded",cC)}else{if(x.attachEvent){x.attachEvent("onreadystatechange",cC)}}}}function b7(cB){var cC=cv(cB);if(cC&&cC.type){cC.href=j(cC.href);cn(cC.href,cC.type,undefined,null,cB)}}function b0(){return x.all&&!x.addEventListener
-}function ci(cB){var cD=cB.which;var cC=(typeof cB.button);if(!cD&&cC!=="undefined"){if(b0()){if(cB.button&1){cD=1}else{if(cB.button&2){cD=3}else{if(cB.button&4){cD=2}}}}else{if(cB.button===0||cB.button==="0"){cD=1}else{if(cB.button&1){cD=2}else{if(cB.button&2){cD=3}}}}}return cD}function bo(cB){switch(ci(cB)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aE(cB){return cB.target||cB.srcElement}function ah(cB){return function(cE){cE=cE||J.event;var cD=bo(cE);var cF=aE(cE);if(cE.type==="click"){var cC=false;if(cB&&cD==="middle"){cC=true}if(cF&&!cC){b7(cF)}}else{if(cE.type==="mousedown"){if(cD==="middle"&&cF){av=cD;a9=cF}else{av=a9=null}}else{if(cE.type==="mouseup"){if(cD===av&&cF===a9){b7(cF)}av=a9=null}else{if(cE.type==="contextmenu"){b7(cF)}}}}}}function ab(cC,cB){Y(cC,"click",ah(cB),false);if(cB){Y(cC,"mouseup",ah(cB),false);Y(cC,"mousedown",ah(cB),false);Y(cC,"contextmenu",ah(cB),false)}}function ba(cC){if(!aa){aa=true;var cD,cB=aD(a8,"ignore"),cE=x.links;if(cE){for(cD=0;
-cD<cE.length;cD++){if(!cB.test(cE[cD].className)){ab(cE[cD],cC)}}}}}function aw(cD,cF,cG){if(bK){return true}bK=true;var cH=false;var cE,cC;function cB(){cH=true}ao(function(){function cI(cK){setTimeout(function(){if(!bK){return}cH=false;cG.trackVisibleContentImpressions();cI(cK)},cK)}function cJ(cK){setTimeout(function(){if(!bK){return}if(cH){cH=false;cG.trackVisibleContentImpressions()}cJ(cK)},cK)}if(cD){cE=["scroll","resize"];for(cC=0;cC<cE.length;cC++){if(x.addEventListener){x.addEventListener(cE[cC],cB)}else{J.attachEvent("on"+cE[cC],cB)}}cJ(100)}if(cF&&cF>0){cF=parseInt(cF,10);cI(cF)}})}function aL(cF,cH){var cG=bP(cF);var cE=bP(cH);if(!cG||cG==="/"||!cE||cE==="/"){return}var cD=B(cF);if(ac(cD,"/")){return}if(co(cG,"/")){cG=aQ(cG,1)}var cI=cG.split("/");var cC;for(cC=2;cC<cI.length;cC++){var cB=cI.slice(0,cC).join("/");if(ac(cD,cB)){cG=cB;break}}if(!aG(cE,cG)){return}return cG}function b5(){var cD,cF,cG={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"},cC=J.devicePixelRatio||1;
-if(!((new RegExp("MSIE")).test(e.userAgent))){if(e.mimeTypes&&e.mimeTypes.length){for(cD in cG){if(Object.prototype.hasOwnProperty.call(cG,cD)){cF=e.mimeTypes[cG[cD]];cs[cD]=(cF&&cF.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&z(e.javaEnabled)&&e.javaEnabled()){cs.java="1"}if(s(J.GearsFactory)){cs.gears="1"}cs.cookie=bA()}var cE=parseInt(N.width,10)*cC;var cB=parseInt(N.height,10)*cC;cs.res=parseInt(cE,10)+"x"+parseInt(cB,10)}b5();aT();ap();return{getVisitorId:function(){return aB().uuid},getVisitorInfo:function(){return cb()},getAttributionInfo:function(){return bi()},getAttributionCampaignName:function(){return bi()[0]},getAttributionCampaignKeyword:function(){return bi()[1]},getAttributionReferrerTimestamp:function(){return bi()[2]},getAttributionReferrerUrl:function(){return bi()[3]},setTrackerUrl:function(cB){aj=cB},getTrackerUrl:function(){return aj},getSiteId:function(){return bB},setSiteId:function(cB){by(cB)},setUserId:function(cB){if(!z(cB)||!cB.length){return
-}a7=cB;bk=bC(a7).substr(0,16)},getUserId:function(){return a7},setCustomData:function(cB,cC){if(M(cB)){Z=cB}else{if(!Z){Z={}}Z[cB]=cC}},getCustomData:function(){return Z},setCustomRequestProcessing:function(cB){bG=cB},appendToTrackingUrl:function(cB){cl=cB},getRequest:function(cB){return bW(cB)},addPlugin:function(cB,cC){a[cB]=cC},setCustomDimension:function(cB,cC){cB=parseInt(cB,10);if(cB>0){if(!z(cC)){cC=""}if(!p(cC)){cC=String(cC)}aX[cB]=cC}},getCustomDimension:function(cB){cB=parseInt(cB,10);if(cB>0&&Object.prototype.hasOwnProperty.call(aX,cB)){return aX[cB]}},deleteCustomDimension:function(cB){cB=parseInt(cB,10);if(cB>0){delete aX[cB]}},setCustomVariable:function(cC,cB,cF,cD){var cE;if(!z(cD)){cD="visit"}if(!z(cB)){return}if(!z(cF)){cF=""}if(cC>0){cB=!p(cB)?String(cB):cB;cF=!p(cF)?String(cF):cF;cE=[cB.slice(0,a3),cF.slice(0,a3)];if(cD==="visit"||cD===2){b4();au[cC]=cE}else{if(cD==="page"||cD===3){br[cC]=cE}else{if(cD==="event"){bQ[cC]=cE}}}}},getCustomVariable:function(cC,cD){var cB;
-if(!z(cD)){cD="visit"}if(cD==="page"||cD===3){cB=br[cC]}else{if(cD==="event"){cB=bQ[cC]}else{if(cD==="visit"||cD===2){b4();cB=au[cC]}}}if(!z(cB)||(cB&&cB[0]==="")){return false}return cB},deleteCustomVariable:function(cB,cC){if(this.getCustomVariable(cB,cC)){this.setCustomVariable(cB,"","",cC)}},storeCustomVariablesInCookie:function(){bm=true},setLinkTrackingTimer:function(cB){bf=cB},setDownloadExtensions:function(cB){if(p(cB)){cB=cB.split("|")}cr=cB},addDownloadExtensions:function(cC){var cB;if(p(cC)){cC=cC.split("|")}for(cB=0;cB<cC.length;cB++){cr.push(cC[cB])}},removeDownloadExtensions:function(cD){var cC,cB=[];if(p(cD)){cD=cD.split("|")}for(cC=0;cC<cr.length;cC++){if(C(cD,cr[cC])===-1){cB.push(cr[cC])}}cr=cB},setDomains:function(cB){af=p(cB)?[cB]:cB;var cD=false,cC;for(cC in af){if(Object.prototype.hasOwnProperty.call(af,cC)&&b6(ch,B(String(af[cC])))){cD=true;if(!a0){var cE=aL(af[cC],bj);if(cE){this.setCookiePath(cE)}break}}}if(!cD){af.push(ch)}},setIgnoreClasses:function(cB){a8=p(cB)?[cB]:cB
-},setRequestMethod:function(cB){cu=cB||bN},setRequestContentType:function(cB){bZ=cB||an},setReferrerUrl:function(cB){aY=cB},setCustomUrl:function(cB){aH=bq(bj,cB)},setDocumentTitle:function(cB){aU=cB},setAPIUrl:function(cB){be=cB},setDownloadClasses:function(cB){bh=p(cB)?[cB]:cB},setLinkClasses:function(cB){aK=p(cB)?[cB]:cB},setCampaignNameKey:function(cB){bV=p(cB)?[cB]:cB},setCampaignKeywordKey:function(cB){bd=p(cB)?[cB]:cB},discardHashTag:function(cB){bl=cB},setCookieNamePrefix:function(cB){aV=cB;au=bs()},setCookieDomain:function(cB){var cC=B(cB);if(a5(cC)){cj=cC;aT()}},setCookiePath:function(cB){a0=cB;aT()},setVisitorCookieTimeout:function(cB){b9=cB*1000},setSessionCookieTimeout:function(cB){bT=cB*1000},setReferralCookieTimeout:function(cB){cq=cB*1000},setConversionAttributionFirstReferrer:function(cB){a4=cB},disableCookies:function(){aW=true;cs.cookie="0";if(bB){ak()}},deleteCookies:function(){ak()},setDoNotTrack:function(cC){var cB=e.doNotTrack||e.msDoNotTrack;cd=cC&&(cB==="yes"||cB==="1");
-if(cd){this.disableCookies()}},addListener:function(cC,cB){ab(cC,cB)},enableLinkTracking:function(cB){ct=true;if(r){ba(cB)}else{H.push(function(){ba(cB)})}},enableJSErrorTracking:function(){if(cf){return}cf=true;var cB=J.onerror;J.onerror=function(cG,cE,cD,cF,cC){bM(function(){var cH="JavaScript Errors";var cI=cE+":"+cD;if(cF){cI+=":"+cF}ae(cH,cI,cG)});if(cB){return cB(cG,cE,cD,cF,cC)}return false}},disablePerformanceTracking:function(){aF=false},setGenerationTimeMs:function(cB){bR=parseInt(cB,10)},enableHeartBeatTimer:function(cB){cB=Math.max(cB,1);aI=(cB||15)*1000;if(ck!==null){cz()}},killFrame:function(){if(J.location!==J.top.location){J.top.location=J.location}},redirectFile:function(cB){if(J.location.protocol==="file:"){J.location=cB}},setCountPreRendered:function(cB){aS=cB},trackGoal:function(cB,cD,cC){bM(function(){cg(cB,cD,cC)})},trackLink:function(cC,cB,cE,cD){bM(function(){cn(cC,cB,cE,cD)})},trackPageView:function(cB,cC){bF=[];if(D(bB)){bM(function(){P(aj,be,bB)})}else{bM(function(){bv(cB,cC)
-})}},trackAllContentImpressions:function(){if(D(bB)){return}bM(function(){aP(function(){var cB=o.findContentNodes();var cC=b1(cB);cy(cC,bf)})})},trackVisibleContentImpressions:function(cB,cC){if(D(bB)){return}if(!z(cB)){cB=true}if(!z(cC)){cC=750}aw(cB,cC,this);bM(function(){ao(function(){var cD=o.findContentNodes();var cE=aM(cD);cy(cE,bf)})})},trackContentImpression:function(cD,cB,cC){if(D(bB)){return}if(!cD){return}cB=cB||"Unknown";bM(function(){var cE=al(cD,cB,cC);bc(cE,bf)})},trackContentImpressionsWithinNode:function(cB){if(D(bB)||!cB){return}bM(function(){if(bK){ao(function(){var cC=o.findContentNodesWithinNode(cB);var cD=aM(cC);cy(cD,bf)})}else{aP(function(){var cC=o.findContentNodesWithinNode(cB);var cD=b1(cC);cy(cD,bf)})}})},trackContentInteraction:function(cD,cE,cB,cC){if(D(bB)){return}if(!cD||!cE){return}cB=cB||"Unknown";bM(function(){var cF=at(cD,cE,cB,cC);bc(cF,bf)})},trackContentInteractionNode:function(cC,cB){if(D(bB)||!cC){return}bM(function(){var cD=cw(cC,cB);bc(cD,bf)})
-},logAllContentBlocksOnPage:function(){var cC=o.findContentNodes();var cB=o.collectContent(cC);if(console!==undefined&&console&&console.log){console.log(cB)}},trackEvent:function(cC,cE,cB,cD,cF){bM(function(){ae(cC,cE,cB,cD,cF)})},trackSiteSearch:function(cB,cD,cC,cE){bM(function(){bE(cB,cD,cC,cE)})},setEcommerceView:function(cE,cB,cD,cC){if(!z(cD)||!cD.length){cD=""}else{if(cD instanceof Array){cD=JSON2.stringify(cD)}}br[5]=["_pkc",cD];if(z(cC)&&String(cC).length){br[2]=["_pkp",cC]}if((!z(cE)||!cE.length)&&(!z(cB)||!cB.length)){return}if(z(cE)&&cE.length){br[3]=["_pks",cE]}if(!z(cB)||!cB.length){cB=""}br[4]=["_pkn",cB]},addEcommerceItem:function(cF,cB,cD,cC,cE){if(cF.length){cm[cF]=[cF,cB,cD,cC,cE]}},trackEcommerceOrder:function(cB,cF,cE,cD,cC,cG){bu(cB,cF,cE,cD,cC,cG)},trackEcommerceCartUpdate:function(cB){a2(cB)}}}function y(){return{push:U}}function b(ae,ad){var af={};var ab,ac;for(ab=0;ab<ad.length;ab++){var Z=ad[ab];af[Z]=1;for(ac=0;ac<ae.length;ac++){if(ae[ac]&&ae[ac][0]){var aa=ae[ac][0];
-if(Z===aa){U(ae[ac]);delete ae[ac];if(af[aa]>1){if(console!==undefined&&console&&console.error){console.error("The method "+aa+' is registered more than once in "paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: http://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}}af[aa]++}}}}return ae}Y(J,"beforeunload",V,false);q();Date.prototype.getTimeAlias=Date.prototype.getTime;O=new G();var u=["disableCookies","setTrackerUrl","setAPIUrl","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];_paq=b(_paq,u);for(w=0;w<_paq.length;w++){if(_paq[w]){U(_paq[w])}}_paq=new y();d={addPlugin:function(Z,aa){a[Z]=aa},getTracker:function(Z,aa){if(!z(aa)){aa=this.getAsyncTracker().getSiteId()}if(!z(Z)){Z=this.getAsyncTracker().getTrackerUrl()}return new G(Z,aa)},getAsyncTracker:function(){return O}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return d
-})}return d}())}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}};
+if(ad=="}"){break}if(ae){if(ad==","){ad=y();if(ad=="}"){H()}}else{H()}}if(ad==","||typeof ad!="string"||(F?ad.charAt(0):ad[0])!="@"||y()!=":"){H()}ac[ad.slice(1)]=W(y())}return ac}}H()}return ad};var P=function(ae,ad,af){var ac=w(ae,ad,af);if(ac===L){delete ae[ad]}else{ae[ad]=ac}};var w=function(af,ae,ag){var ad=af[ae],ac;if(typeof ad=="object"&&ad){if(u.call(ad)==E){for(ac=ad.length;ac--;){P(ad,ac,ag)}}else{m(ad,function(ah){P(ad,ah,ag)})}}return ag.call(af,ae,ad)};V.parse=function(ae,af){var ac,ad;G=0;X=""+ae;ac=W(y());if(y()!="$"){H()}G=X=null;return af&&u.call(af)==U?w((ad={},ad[""]=ac,ad),"",af):ac}}}V.runInContext=j;return V}if(h&&!c){j(i,h)}else{var f=i.JSON,k=i.JSON3,d=false;var g=j(i,(i.JSON3={noConflict:function(){if(!d){d=true;i.JSON=f;i.JSON3=k;f=k=null}return g}}));i.JSON={parse:g.parse,stringify:g.stringify}}if(c){define(function(){return g})}}).call(this);JSON2=a})()}if(typeof _paq!=="object"){_paq=[]}if(typeof window.Piwik!=="object"){window.Piwik=(function(){var l,a={},z=document,f=navigator,Q=screen,M=window,g=M.performance||M.mozPerformance||M.msPerformance||M.webkitPerformance,s=false,K=[],n=M.encodeURIComponent,L=M.decodeURIComponent,i=unescape,R,y,d;
+function k(ac){try{return L(ac)}catch(ad){return unescape(ac)}}function B(ad){var ac=typeof ad;return ac!=="undefined"}function u(ac){return typeof ac==="function"}function P(ac){return typeof ac==="object"}function q(ac){return typeof ac==="string"||ac instanceof String}function v(ad){if(!ad){return true}var ac;var ae=true;for(ac in ad){if(Object.prototype.hasOwnProperty.call(ad,ac)){ae=false}}return ae}function X(){var ac,ae,ad;for(ac=0;ac<arguments.length;ac+=1){ad=arguments[ac];ae=ad.shift();if(q(ae)){R[ae].apply(R,ad)}else{ae.apply(R,ad)}}}function ab(af,ae,ad,ac){if(af.addEventListener){af.addEventListener(ae,ad,ac);return true}if(af.attachEvent){return af.attachEvent("on"+ae,ad)}af["on"+ae]=ad}function U(ad,ag){var ac="",af,ae;for(af in a){if(Object.prototype.hasOwnProperty.call(a,af)){ae=a[af][ad];if(u(ae)){ac+=ae(ag)}}}return ac}function Y(){var ac;U("unload");if(l){do{ac=new Date()}while(ac.getTimeAlias()<l)}}function V(){var ac;if(!s){s=true;U("load");for(ac=0;ac<K.length;ac++){K[ac]()
+}}return true}function r(){var ad;if(z.addEventListener){ab(z,"DOMContentLoaded",function ac(){z.removeEventListener("DOMContentLoaded",ac,false);V()})}else{if(z.attachEvent){z.attachEvent("onreadystatechange",function ac(){if(z.readyState==="complete"){z.detachEvent("onreadystatechange",ac);V()}});if(z.documentElement.doScroll&&M===M.top){(function ac(){if(!s){try{z.documentElement.doScroll("left")}catch(ae){setTimeout(ac,0);return}V()}}())}}}if((new RegExp("WebKit")).test(f.userAgent)){ad=setInterval(function(){if(s||/loaded|complete/.test(z.readyState)){clearInterval(ad);V()}},10)}ab(M,"load",V,false)}function j(ae,ad){var ac=z.createElement("script");ac.type="text/javascript";ac.src=ae;if(ac.readyState){ac.onreadystatechange=function(){var af=this.readyState;if(af==="loaded"||af==="complete"){ac.onreadystatechange=null;ad()}}}else{ac.onload=ad}z.getElementsByTagName("head")[0].appendChild(ac)}function C(){var ac="";try{ac=M.top.document.referrer}catch(ae){if(M.parent){try{ac=M.parent.document.referrer
+}catch(ad){ac=""}}}if(ac===""){ac=z.referrer}return ac}function m(ac){var ae=new RegExp("^([a-z]+):"),ad=ae.exec(ac);return ad?ad[1]:null}function c(ac){var ae=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)"),ad=ae.exec(ac);return ad?ad[1]:ac}function O(ae,ad){var ac="[\\?&#]"+ad+"=([^&#]*)";var ag=new RegExp(ac);var af=ag.exec(ae);return af?L(af[1]):""}function x(ac){return unescape(n(ac))}function aa(ar){var ae=function(ay,ax){return(ay<<ax)|(ay>>>(32-ax))},at=function(aA){var ay="",az,ax;for(az=7;az>=0;az--){ax=(aA>>>(az*4))&15;ay+=ax.toString(16)}return ay},ah,av,au,ad=[],al=1732584193,aj=4023233417,ai=2562383102,ag=271733878,af=3285377520,aq,ap,ao,an,am,aw,ac,ak=[];ar=x(ar);ac=ar.length;for(av=0;av<ac-3;av+=4){au=ar.charCodeAt(av)<<24|ar.charCodeAt(av+1)<<16|ar.charCodeAt(av+2)<<8|ar.charCodeAt(av+3);ak.push(au)}switch(ac&3){case 0:av=2147483648;break;case 1:av=ar.charCodeAt(ac-1)<<24|8388608;break;case 2:av=ar.charCodeAt(ac-2)<<24|ar.charCodeAt(ac-1)<<16|32768;break;case 3:av=ar.charCodeAt(ac-3)<<24|ar.charCodeAt(ac-2)<<16|ar.charCodeAt(ac-1)<<8|128;
+break}ak.push(av);while((ak.length&15)!==14){ak.push(0)}ak.push(ac>>>29);ak.push((ac<<3)&4294967295);for(ah=0;ah<ak.length;ah+=16){for(av=0;av<16;av++){ad[av]=ak[ah+av]}for(av=16;av<=79;av++){ad[av]=ae(ad[av-3]^ad[av-8]^ad[av-14]^ad[av-16],1)}aq=al;ap=aj;ao=ai;an=ag;am=af;for(av=0;av<=19;av++){aw=(ae(aq,5)+((ap&ao)|(~ap&an))+am+ad[av]+1518500249)&4294967295;am=an;an=ao;ao=ae(ap,30);ap=aq;aq=aw}for(av=20;av<=39;av++){aw=(ae(aq,5)+(ap^ao^an)+am+ad[av]+1859775393)&4294967295;am=an;an=ao;ao=ae(ap,30);ap=aq;aq=aw}for(av=40;av<=59;av++){aw=(ae(aq,5)+((ap&ao)|(ap&an)|(ao&an))+am+ad[av]+2400959708)&4294967295;am=an;an=ao;ao=ae(ap,30);ap=aq;aq=aw}for(av=60;av<=79;av++){aw=(ae(aq,5)+(ap^ao^an)+am+ad[av]+3395469782)&4294967295;am=an;an=ao;ao=ae(ap,30);ap=aq;aq=aw}al=(al+aq)&4294967295;aj=(aj+ap)&4294967295;ai=(ai+ao)&4294967295;ag=(ag+an)&4294967295;af=(af+am)&4294967295}aw=at(al)+at(aj)+at(ai)+at(ag)+at(af);return aw.toLowerCase()}function T(ae,ac,ad){if(!ae){ae=""}if(!ac){ac=""}if(ae==="translate.googleusercontent.com"){if(ad===""){ad=ac
+}ac=O(ac,"u");ae=c(ac)}else{if(ae==="cc.bingj.com"||ae==="webcache.googleusercontent.com"||ae.slice(0,5)==="74.6."){ac=z.links[0].href;ae=c(ac)}}return[ae,ac,ad]}function D(ad){var ac=ad.length;if(ad.charAt(--ac)==="."){ad=ad.slice(0,ac)}if(ad.slice(0,2)==="*."){ad=ad.slice(1)}if(ad.indexOf("/")!==-1){ad=ad.substr(0,ad.indexOf("/"))}return ad}function Z(ad){ad=ad&&ad.text?ad.text:ad;if(!q(ad)){var ac=z.getElementsByTagName("title");if(ac&&B(ac[0])){ad=ac[0].text}}return ad}function H(ac){if(!ac){return[]}if(!B(ac.children)&&B(ac.childNodes)){return ac.children}if(B(ac.children)){return ac.children}return[]}function N(ad,ac){if(!ad||!ac){return false}if(ad.contains){return ad.contains(ac)}if(ad===ac){return true}if(ad.compareDocumentPosition){return !!(ad.compareDocumentPosition(ac)&16)}return false}function E(ae,af){if(ae&&ae.indexOf){return ae.indexOf(af)}if(!B(ae)||ae===null){return -1}if(!ae.length){return -1}var ac=ae.length;if(ac===0){return -1}var ad=0;while(ad<ac){if(ae[ad]===af){return ad
+}ad++}return -1}function J(ad,ac){ad=String(ad);return ad.indexOf(ac,ad.length-ac.length)!==-1}function t(ad,ac){ad=String(ad);return ad.indexOf(ac)!==-1}function e(ad,ac){ad=String(ad);return ad.substr(0,ad.length-ac)}function h(ae){if(!ae){return false}function ac(ag,ah){if(M.getComputedStyle){return z.defaultView.getComputedStyle(ag,null)[ah]}if(ag.currentStyle){return ag.currentStyle[ah]}}function af(ag){ag=ag.parentNode;while(ag){if(ag===z){return true}ag=ag.parentNode}return false}function ad(ai,ao,ag,al,aj,am,ak){var ah=ai.parentNode,an=1;if(!af(ai)){return false}if(9===ah.nodeType){return true}if("0"===ac(ai,"opacity")||"none"===ac(ai,"display")||"hidden"===ac(ai,"visibility")){return false}if(!B(ao)||!B(ag)||!B(al)||!B(aj)||!B(am)||!B(ak)){ao=ai.offsetTop;aj=ai.offsetLeft;al=ao+ai.offsetHeight;ag=aj+ai.offsetWidth;am=ai.offsetWidth;ak=ai.offsetHeight}if(ae===ai&&(0===ak||0===am)&&"hidden"===ac(ai,"overflow")){return false}if(ah){if(("hidden"===ac(ah,"overflow")||"scroll"===ac(ah,"overflow"))){if(aj+an>ah.offsetWidth+ah.scrollLeft||aj+am-an<ah.scrollLeft||ao+an>ah.offsetHeight+ah.scrollTop||ao+ak-an<ah.scrollTop){return false
+}}if(ai.offsetParent===ah){aj+=ah.offsetLeft;ao+=ah.offsetTop}return ad(ah,ao,ag,al,aj,am,ak)}return true}return ad(ae)}var W={htmlCollectionToArray:function(ae){var ac=[],ad;if(!ae||!ae.length){return ac}for(ad=0;ad<ae.length;ad++){ac.push(ae[ad])}return ac},find:function(ac){if(!document.querySelectorAll||!ac){return[]}var ad=document.querySelectorAll(ac);return this.htmlCollectionToArray(ad)},findMultiple:function(ae){if(!ae||!ae.length){return[]}var ad,af;var ac=[];for(ad=0;ad<ae.length;ad++){af=this.find(ae[ad]);ac=ac.concat(af)}ac=this.makeNodesUnique(ac);return ac},findNodesByTagName:function(ad,ac){if(!ad||!ac||!ad.getElementsByTagName){return[]}var ae=ad.getElementsByTagName(ac);return this.htmlCollectionToArray(ae)},makeNodesUnique:function(ac){var ah=[].concat(ac);ac.sort(function(aj,ai){if(aj===ai){return 0}var al=E(ah,aj);var ak=E(ah,ai);if(al===ak){return 0}return al>ak?-1:1});if(ac.length<=1){return ac}var ad=0;var af=0;var ag=[];var ae;ae=ac[ad++];while(ae){if(ae===ac[ad]){af=ag.push(ad)
+}ae=ac[ad++]||null}while(af--){ac.splice(ag[af],1)}return ac},getAttributeValueFromNode:function(ag,ae){if(!this.hasNodeAttribute(ag,ae)){return}if(ag&&ag.getAttribute){return ag.getAttribute(ae)}if(!ag||!ag.attributes){return}var af=(typeof ag.attributes[ae]);if("undefined"===af){return}if(ag.attributes[ae].value){return ag.attributes[ae].value}if(ag.attributes[ae].nodeValue){return ag.attributes[ae].nodeValue}var ad;var ac=ag.attributes;if(!ac){return}for(ad=0;ad<ac.length;ad++){if(ac[ad].nodeName===ae){return ac[ad].nodeValue}}return null},hasNodeAttributeWithValue:function(ad,ac){var ae=this.getAttributeValueFromNode(ad,ac);return !!ae},hasNodeAttribute:function(ae,ac){if(ae&&ae.hasAttribute){return ae.hasAttribute(ac)}if(ae&&ae.attributes){var ad=(typeof ae.attributes[ac]);return"undefined"!==ad}return false},hasNodeCssClass:function(ae,ac){if(ae&&ac&&ae.className){var ad=typeof ae.className==="string"?ae.className.split(" "):[];if(-1!==E(ad,ac)){return true}}return false},findNodesHavingAttribute:function(ag,ae,ac){if(!ac){ac=[]
+}if(!ag||!ae){return ac}var af=H(ag);if(!af||!af.length){return ac}var ad,ah;for(ad=0;ad<af.length;ad++){ah=af[ad];if(this.hasNodeAttribute(ah,ae)){ac.push(ah)}ac=this.findNodesHavingAttribute(ah,ae,ac)}return ac},findFirstNodeHavingAttribute:function(ae,ad){if(!ae||!ad){return}if(this.hasNodeAttribute(ae,ad)){return ae}var ac=this.findNodesHavingAttribute(ae,ad);if(ac&&ac.length){return ac[0]}},findFirstNodeHavingAttributeWithValue:function(af,ae){if(!af||!ae){return}if(this.hasNodeAttributeWithValue(af,ae)){return af}var ac=this.findNodesHavingAttribute(af,ae);if(!ac||!ac.length){return}var ad;for(ad=0;ad<ac.length;ad++){if(this.getAttributeValueFromNode(ac[ad],ae)){return ac[ad]}}},findNodesHavingCssClass:function(ag,af,ac){if(!ac){ac=[]}if(!ag||!af){return ac}if(ag.getElementsByClassName){var ah=ag.getElementsByClassName(af);return this.htmlCollectionToArray(ah)}var ae=H(ag);if(!ae||!ae.length){return[]}var ad,ai;for(ad=0;ad<ae.length;ad++){ai=ae[ad];if(this.hasNodeCssClass(ai,af)){ac.push(ai)
+}ac=this.findNodesHavingCssClass(ai,af,ac)}return ac},findFirstNodeHavingClass:function(ae,ad){if(!ae||!ad){return}if(this.hasNodeCssClass(ae,ad)){return ae}var ac=this.findNodesHavingCssClass(ae,ad);if(ac&&ac.length){return ac[0]}},isLinkElement:function(ad){if(!ad){return false}var ac=String(ad.nodeName).toLowerCase();var af=["a","area"];var ae=E(af,ac);return ae!==-1},setAnyAttribute:function(ad,ac,ae){if(!ad||!ac){return}if(ad.setAttribute){ad.setAttribute(ac,ae)}else{ad[ac]=ae}}};var p={CONTENT_ATTR:"data-track-content",CONTENT_CLASS:"piwikTrackContent",CONTENT_NAME_ATTR:"data-content-name",CONTENT_PIECE_ATTR:"data-content-piece",CONTENT_PIECE_CLASS:"piwikContentPiece",CONTENT_TARGET_ATTR:"data-content-target",CONTENT_TARGET_CLASS:"piwikContentTarget",CONTENT_IGNOREINTERACTION_ATTR:"data-content-ignoreinteraction",CONTENT_IGNOREINTERACTION_CLASS:"piwikContentIgnoreInteraction",location:undefined,findContentNodes:function(){var ad="."+this.CONTENT_CLASS;var ac="["+this.CONTENT_ATTR+"]";
+var ae=W.findMultiple([ad,ac]);return ae},findContentNodesWithinNode:function(af){if(!af){return[]}var ad=W.findNodesHavingCssClass(af,this.CONTENT_CLASS);var ac=W.findNodesHavingAttribute(af,this.CONTENT_ATTR);if(ac&&ac.length){var ae;for(ae=0;ae<ac.length;ae++){ad.push(ac[ae])}}if(W.hasNodeAttribute(af,this.CONTENT_ATTR)){ad.push(af)}else{if(W.hasNodeCssClass(af,this.CONTENT_CLASS)){ad.push(af)}}ad=W.makeNodesUnique(ad);return ad},findParentContentNode:function(ad){if(!ad){return}var ae=ad;var ac=0;while(ae&&ae!==z&&ae.parentNode){if(W.hasNodeAttribute(ae,this.CONTENT_ATTR)){return ae}if(W.hasNodeCssClass(ae,this.CONTENT_CLASS)){return ae}ae=ae.parentNode;if(ac>1000){break}ac++}},findPieceNode:function(ad){var ac;ac=W.findFirstNodeHavingAttribute(ad,this.CONTENT_PIECE_ATTR);if(!ac){ac=W.findFirstNodeHavingClass(ad,this.CONTENT_PIECE_CLASS)}if(ac){return ac}return ad},findTargetNodeNoDefault:function(ac){if(!ac){return}var ad=W.findFirstNodeHavingAttributeWithValue(ac,this.CONTENT_TARGET_ATTR);
+if(ad){return ad}ad=W.findFirstNodeHavingAttribute(ac,this.CONTENT_TARGET_ATTR);if(ad){return ad}ad=W.findFirstNodeHavingClass(ac,this.CONTENT_TARGET_CLASS);if(ad){return ad}},findTargetNode:function(ac){var ad=this.findTargetNodeNoDefault(ac);if(ad){return ad}return ac},findContentName:function(ad){if(!ad){return}var ag=W.findFirstNodeHavingAttributeWithValue(ad,this.CONTENT_NAME_ATTR);if(ag){return W.getAttributeValueFromNode(ag,this.CONTENT_NAME_ATTR)}var ac=this.findContentPiece(ad);if(ac){return this.removeDomainIfIsInLink(ac)}if(W.hasNodeAttributeWithValue(ad,"title")){return W.getAttributeValueFromNode(ad,"title")}var ae=this.findPieceNode(ad);if(W.hasNodeAttributeWithValue(ae,"title")){return W.getAttributeValueFromNode(ae,"title")}var af=this.findTargetNode(ad);if(W.hasNodeAttributeWithValue(af,"title")){return W.getAttributeValueFromNode(af,"title")}},findContentPiece:function(ad){if(!ad){return}var af=W.findFirstNodeHavingAttributeWithValue(ad,this.CONTENT_PIECE_ATTR);if(af){return W.getAttributeValueFromNode(af,this.CONTENT_PIECE_ATTR)
+}var ac=this.findPieceNode(ad);var ae=this.findMediaUrlInNode(ac);if(ae){return this.toAbsoluteUrl(ae)}},findContentTarget:function(ae){if(!ae){return}var af=this.findTargetNode(ae);if(W.hasNodeAttributeWithValue(af,this.CONTENT_TARGET_ATTR)){return W.getAttributeValueFromNode(af,this.CONTENT_TARGET_ATTR)}var ad;if(W.hasNodeAttributeWithValue(af,"href")){ad=W.getAttributeValueFromNode(af,"href");return this.toAbsoluteUrl(ad)}var ac=this.findPieceNode(ae);if(W.hasNodeAttributeWithValue(ac,"href")){ad=W.getAttributeValueFromNode(ac,"href");return this.toAbsoluteUrl(ad)}},isSameDomain:function(ac){if(!ac||!ac.indexOf){return false}if(0===ac.indexOf(this.getLocation().origin)){return true}var ad=ac.indexOf(this.getLocation().host);if(8>=ad&&0<=ad){return true}return false},removeDomainIfIsInLink:function(ae){var ad="^https?://[^/]+";var ac="^.*//[^/]+";if(ae&&ae.search&&-1!==ae.search(new RegExp(ad))&&this.isSameDomain(ae)){ae=ae.replace(new RegExp(ac),"");if(!ae){ae="/"}}return ae},findMediaUrlInNode:function(ag){if(!ag){return
+}var ae=["img","embed","video","audio"];var ac=ag.nodeName.toLowerCase();if(-1!==E(ae,ac)&&W.findFirstNodeHavingAttributeWithValue(ag,"src")){var af=W.findFirstNodeHavingAttributeWithValue(ag,"src");return W.getAttributeValueFromNode(af,"src")}if(ac==="object"&&W.hasNodeAttributeWithValue(ag,"data")){return W.getAttributeValueFromNode(ag,"data")}if(ac==="object"){var ah=W.findNodesByTagName(ag,"param");if(ah&&ah.length){var ad;for(ad=0;ad<ah.length;ad++){if("movie"===W.getAttributeValueFromNode(ah[ad],"name")&&W.hasNodeAttributeWithValue(ah[ad],"value")){return W.getAttributeValueFromNode(ah[ad],"value")}}}var ai=W.findNodesByTagName(ag,"embed");if(ai&&ai.length){return this.findMediaUrlInNode(ai[0])}}},trim:function(ac){if(ac&&String(ac)===ac){return ac.replace(/^\s+|\s+$/g,"")}return ac},isOrWasNodeInViewport:function(ah){if(!ah||!ah.getBoundingClientRect||ah.nodeType!==1){return true}var ag=ah.getBoundingClientRect();var af=z.documentElement||{};var ae=ag.top<0;if(ae&&ah.offsetTop){ae=(ah.offsetTop+ag.height)>0
+}var ad=af.clientWidth;if(M.innerWidth&&ad>M.innerWidth){ad=M.innerWidth}var ac=af.clientHeight;if(M.innerHeight&&ac>M.innerHeight){ac=M.innerHeight}return((ag.bottom>0||ae)&&ag.right>0&&ag.left<ad&&((ag.top<ac)||ae))},isNodeVisible:function(ad){var ac=h(ad);var ae=this.isOrWasNodeInViewport(ad);return ac&&ae},buildInteractionRequestParams:function(ac,ad,ae,af){var ag="";if(ac){ag+="c_i="+n(ac)}if(ad){if(ag){ag+="&"}ag+="c_n="+n(ad)}if(ae){if(ag){ag+="&"}ag+="c_p="+n(ae)}if(af){if(ag){ag+="&"}ag+="c_t="+n(af)}return ag},buildImpressionRequestParams:function(ac,ad,ae){var af="c_n="+n(ac)+"&c_p="+n(ad);if(ae){af+="&c_t="+n(ae)}return af},buildContentBlock:function(ae){if(!ae){return}var ac=this.findContentName(ae);var ad=this.findContentPiece(ae);var af=this.findContentTarget(ae);ac=this.trim(ac);ad=this.trim(ad);af=this.trim(af);return{name:ac||"Unknown",piece:ad||"Unknown",target:af||""}},collectContent:function(af){if(!af||!af.length){return[]}var ae=[];var ac,ad;for(ac=0;ac<af.length;
+ac++){ad=this.buildContentBlock(af[ac]);if(B(ad)){ae.push(ad)}}return ae},setLocation:function(ac){this.location=ac},getLocation:function(){var ac=this.location||M.location;if(!ac.origin){ac.origin=ac.protocol+"//"+ac.hostname+(ac.port?":"+ac.port:"")}return ac},toAbsoluteUrl:function(ad){if((!ad||String(ad)!==ad)&&ad!==""){return ad}if(""===ad){return this.getLocation().href}if(ad.search(/^\/\//)!==-1){return this.getLocation().protocol+ad}if(ad.search(/:\/\//)!==-1){return ad}if(0===ad.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+ad}if(0===ad.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+ad}if(0===ad.search("^[a-zA-Z]{2,11}:")){return ad}if(ad.search(/^\//)!==-1){return this.getLocation().origin+ad}var ac="(.*/)";var ae=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(ac))[0];return ae+ad},isUrlToCurrentDomain:function(ad){var ae=this.toAbsoluteUrl(ad);if(!ae){return false}var ac=this.getLocation().origin;
+if(ac===ae){return true}if(0===String(ae).indexOf(ac)){if(":"===String(ae).substr(ac.length,1)){return false}return true}return false},setHrefAttribute:function(ad,ac){if(!ad||!ac){return}W.setAnyAttribute(ad,"href",ac)},shouldIgnoreInteraction:function(ae){var ad=W.hasNodeAttribute(ae,this.CONTENT_IGNOREINTERACTION_ATTR);var ac=W.hasNodeCssClass(ae,this.CONTENT_IGNOREINTERACTION_CLASS);return ad||ac}};function G(ad,ag){if(ag){return ag}if(t(ad,"?")){var af=ad.indexOf("?");ad=ad.slice(0,af)}if(J(ad,"piwik.php")){ad=e(ad,"piwik.php".length)}else{if(J(ad,".php")){var ac=ad.lastIndexOf("/");var ae=1;ad=ad.slice(0,ac+ae)}}if(J(ad,"/js/")){ad=e(ad,"js/".length)}return ad}function F(ai){var ak="Piwik_Overlay";var ad=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var ae=ad.exec(z.referrer);if(ae){var ag=ae[1];if(ag!==String(ai)){return false}var ah=ae[2],ac=ae[3],af=ae[4];if(!af){af=""}else{if(af.indexOf("&segment=")===0){af=af.substr("&segment=".length)
+}}M.name=ak+"###"+ah+"###"+ac+"###"+af}var aj=M.name.split("###");return aj.length===4&&aj[0]===ak}function S(ad,aj,af){var ai=M.name.split("###"),ah=ai[1],ac=ai[2],ag=ai[3],ae=G(ad,aj);j(ae+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(ae,af,ah,ac,ag)})}function o(){if(B(M.frameElement)){return(M.frameElement&&String(M.frameElement.nodeName).toLowerCase()==="iframe")}try{return M.self!==M.top}catch(ac){return true}}function I(bL,bF){var bB=T(z.domain,M.location.href,C()),cj=D(bB[0]),bl=k(bB[1]),a0=k(bB[2]),ch=false,bP="GET",cv=bP,aq="application/x-www-form-urlencoded; charset=UTF-8",b1=aq,am=bL||"",bg="",cn="",bD=bF||"",a9="",bm="",aK,aW=z.title,cs=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ai=[cj],ba=[],bj=[],aN=[],bh=500,ca,aL,bp,bn,ac,bX=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],bf=["pk_kwd","piwik_kwd","utm_term"],aX="_pk_",cl,a2,aY=false,cf,aU,a6,cb=33955200000,bV=1800000,cr=15768000000,aI=true,bT=0,bo=false,ax=false,bI,bt={},bS={},aZ={},a5=200,co={},ct={},bH=[],bM=false,b4=false,ad=false,cu=false,av=false,aT=o(),cm=null,bJ,ay,bb,bE=aa,a1;
+function cy(cI,cF,cE,cH,cD,cG){if(aY){return}var cC;if(cE){cC=new Date();cC.setTime(cC.getTime()+cE)}z.cookie=cI+"="+n(cF)+(cE?";expires="+cC.toGMTString():"")+";path="+(cH||"/")+(cD?";domain="+cD:"")+(cG?";secure":"")}function al(cE){if(aY){return 0}var cC=new RegExp("(^|;)[ ]*"+cE+"=([^;]*)"),cD=cC.exec(z.cookie);return cD?L(cD[2]):0}function bz(cC){var cD;if(bn){cD=new RegExp("#.*");return cC.replace(cD,"")}return cC}function bs(cE,cC){var cF=m(cC),cD;if(cF){return cC}if(cC.slice(0,1)==="/"){return m(cE)+"://"+c(cE)+cC}cE=bz(cE);cD=cE.indexOf("?");if(cD>=0){cE=cE.slice(0,cD)}cD=cE.lastIndexOf("/");if(cD!==cE.length-1){cE=cE.slice(0,cD+1)}return cE+cC}function b8(cE,cC){var cD;cE=String(cE).toLowerCase();cC=String(cC).toLowerCase();if(cE===cC){return true}if(cC.slice(0,1)==="."){if(cE===cC.slice(1)){return true}cD=cE.length-cC.length;if((cD>0)&&(cE.slice(cD)===cC)){return true}}return false}function bR(cC){var cD=document.createElement("a");if(cC.indexOf("//")!==0&&cC.indexOf("http")!==0){cC="http://"+cC
+}cD.href=p.toAbsoluteUrl(cC);if(cD.pathname){return cD.pathname}return""}function aJ(cD,cC){var cE=(!cC||cC==="/");if(cE){return true}if(cD===cC){return true}if(!cD){return false}cC=String(cC).toLowerCase();cD=String(cD).toLowerCase();if(!J(cD,"/")){cD+="/"}if(!J(cC,"/")){cC+="/"}return cD.indexOf(cC)===0}function af(cG,cI){var cD,cC,cE,cF,cH;for(cD=0;cD<ai.length;cD++){cF=D(ai[cD]);cH=bR(ai[cD]);if(b8(cG,cF)&&aJ(cI,cH)){return true}}return false}function aC(cF){var cD,cC,cE;for(cD=0;cD<ai.length;cD++){cC=D(ai[cD].toLowerCase());if(cF===cC){return true}if(cC.slice(0,1)==="."){if(cF===cC.slice(1)){return true}cE=cF.length-cC.length;if((cE>0)&&(cF.slice(cE)===cC)){return true}}}return false}function bW(cC,cE){var cD=new Image(1,1);cD.onload=function(){y=0;if(typeof cE==="function"){cE()}};cD.src=am+(am.indexOf("?")<0?"?":"&")+cC}function cq(cD,cG,cC){if(!B(cC)||null===cC){cC=true}try{var cF=M.XMLHttpRequest?new M.XMLHttpRequest():M.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;
+cF.open("POST",am,true);cF.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cC){bW(cD,cG)}else{if(typeof cG==="function"){cG()}}};cF.setRequestHeader("Content-Type",b1);cF.send(cD)}catch(cE){if(cC){bW(cD,cG)}}}function bN(cD){var cC=new Date();var cE=cC.getTime()+cD;if(!l||cE>l){l=cE}}function bU(cC){if(bJ||!aL){return}bJ=setTimeout(function cD(){bJ=null;if(!aT){aT=(!z.hasFocus||z.hasFocus())}if(!aT){bU(aL);return}if(bp()){return}var cE=new Date(),cF=aL-(cE.getTime()-cm);cF=Math.min(aL,cF);bU(cF)},cC||aL)}function bi(){if(!bJ){return}clearTimeout(bJ);bJ=null}function aQ(){aT=true;if(bp()){return}bU()}function aj(){bi()}function cA(){if(av||!aL){return}av=true;ab(M,"focus",aQ);ab(M,"blur",aj);bU()}function b5(cG){var cD=new Date();var cC=cD.getTime();cm=cC;if(b4&&cC<b4){var cE=b4-cC;setTimeout(cG,cE);bN(cE+50);b4+=50;return}if(b4===false){var cF=800;b4=cC+cF}cG()}function be(cD,cC,cE){if(!cf&&cD){b5(function(){if(cv==="POST"){cq(cD,cE)}else{bW(cD,cE)
+}bN(cC)})}if(!av){cA()}else{bU()}}function bQ(cC){if(cf){return false}return(cC&&cC.length)}function cz(cE,cC){if(!bQ(cE)){return}var cD='{"requests":["?'+cE.join('","?')+'"]}';b5(function(){cq(cD,null,false);bN(cC)})}function aA(cC){return aX+cC+"."+bD+"."+a1}function bC(){if(aY){return"0"}if(!B(f.cookieEnabled)){var cC=aA("testcookie");cy(cC,"1");return al(cC)==="1"?"1":"0"}return f.cookieEnabled?"1":"0"}function aV(){a1=bE((cl||cj)+(a2||"/")).slice(0,4)}function bu(){var cD=aA("cvar"),cC=al(cD);if(cC.length){cC=JSON2.parse(cC);if(P(cC)){return cC}}return{}}function b6(){if(ax===false){ax=bu()}}function cg(){return bE((f.userAgent||"")+(f.platform||"")+JSON2.stringify(ct)+(new Date()).getTime()+Math.random()).slice(0,16)}function cd(){var cE=new Date(),cC=Math.round(cE.getTime()/1000),cD=aA("id"),cH=al(cD),cG,cF;if(cH){cG=cH.split(".");cG.unshift("0");if(bm.length){cG[1]=bm}return cG}if(bm.length){cF=bm}else{if("0"===bC()){cF=""}else{cF=cg()}}cG=["1",cF,cC,0,cC,"",""];return cG}function aE(){var cJ=cd(),cF=cJ[0],cG=cJ[1],cD=cJ[2],cC=cJ[3],cH=cJ[4],cE=cJ[5];
+if(!B(cJ[6])){cJ[6]=""}var cI=cJ[6];return{newVisitor:cF,uuid:cG,createTs:cD,visitCount:cC,currentVisitTs:cH,lastVisitTs:cE,lastEcommerceOrderTs:cI}}function ap(){var cF=new Date(),cD=cF.getTime(),cG=aE().createTs;var cC=parseInt(cG,10);var cE=(cC*1000)+cb-cD;return cE}function at(cC){if(!bD){return}var cE=new Date(),cD=Math.round(cE.getTime()/1000);if(!B(cC)){cC=aE()}var cF=cC.uuid+"."+cC.createTs+"."+cC.visitCount+"."+cD+"."+cC.lastVisitTs+"."+cC.lastEcommerceOrderTs;cy(aA("id"),cF,ap(),a2,cl)}function bk(){var cC=al(aA("ref"));if(cC.length){try{cC=JSON2.parse(cC);if(P(cC)){return cC}}catch(cD){}}return["","",0,""]}function bv(cE,cD,cC){cy(cE,"",-86400,cD,cC)}function a7(cD){var cC="testvalue";cy("test",cC,10000,null,cD);if(al("test")===cC){bv("test",null,cD);return true}return false}function an(){var cE=aY;aY=false;var cC=["id","ses","cvar","ref"];var cD,cF;for(cD=0;cD<cC.length;cD++){cF=aA(cC[cD]);if(0!==al(cF)){bv(cF,a2,cl)}}aY=cE}function bA(cC){bD=cC;at()}function cB(cG){if(!cG||!P(cG)){return
+}var cF=[];var cE;for(cE in cG){if(Object.prototype.hasOwnProperty.call(cG,cE)){cF.push(cE)}}var cH={};cF.sort();var cC=cF.length;var cD;for(cD=0;cD<cC;cD++){cH[cF[cD]]=cG[cF[cD]]}return cH}function bK(){cy(aA("ses"),"*",bV,a2,cl)}function bY(cE,cZ,c0,cF){var cY,cD=new Date(),cM=Math.round(cD.getTime()/1000),cJ,cX,cG=1024,c5,cN,cV=ax,cH=aA("ses"),cT=aA("ref"),cQ=aA("cvar"),cR=al(cH),cW=bk(),c2=aK||bl,cK,cC;if(aY){an()}if(cf){return""}var cS=aE();if(!B(cF)){cF=""}var cP=z.characterSet||z.charset;if(!cP||cP.toLowerCase()==="utf-8"){cP=null}cK=cW[0];cC=cW[1];cJ=cW[2];cX=cW[3];if(!cR){var c1=bV/1000;if(!cS.lastVisitTs||(cM-cS.lastVisitTs)>c1){cS.visitCount++;cS.lastVisitTs=cS.currentVisitTs}if(!a6||!cK.length){for(cY in bX){if(Object.prototype.hasOwnProperty.call(bX,cY)){cK=O(c2,bX[cY]);if(cK.length){break}}}for(cY in bf){if(Object.prototype.hasOwnProperty.call(bf,cY)){cC=O(c2,bf[cY]);if(cC.length){break}}}}c5=c(a0);cN=cX.length?c(cX):"";if(c5.length&&!aC(c5)&&(!a6||!cN.length||aC(cN))){cX=a0
+}if(cX.length||cK.length){cJ=cM;cW=[cK,cC,cJ,bz(cX.slice(0,cG))];cy(cT,JSON2.stringify(cW),cr,a2,cl)}}cE+="&idsite="+bD+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cD.getHours()+"&m="+cD.getMinutes()+"&s="+cD.getSeconds()+"&url="+n(bz(c2))+(a0.length?"&urlref="+n(bz(a0)):"")+((a9&&a9.length)?"&uid="+n(a9):"")+"&_id="+cS.uuid+"&_idts="+cS.createTs+"&_idvc="+cS.visitCount+"&_idn="+cS.newVisitor+(cK.length?"&_rcn="+n(cK):"")+(cC.length?"&_rck="+n(cC):"")+"&_refts="+cJ+"&_viewts="+cS.lastVisitTs+(String(cS.lastEcommerceOrderTs).length?"&_ects="+cS.lastEcommerceOrderTs:"")+(String(cX).length?"&_ref="+n(bz(cX.slice(0,cG))):"")+(cP?"&cs="+n(cP):"")+"&send_image=0";for(cY in ct){if(Object.prototype.hasOwnProperty.call(ct,cY)){cE+="&"+cY+"="+ct[cY]}}var c4=[];if(cZ){for(cY in cZ){if(Object.prototype.hasOwnProperty.call(cZ,cY)&&/^dimension\d+$/.test(cY)){var cI=cY.replace("dimension","");c4.push(parseInt(cI,10));c4.push(String(cI));cE+="&"+cY+"="+cZ[cY];delete cZ[cY]}}}if(cZ&&v(cZ)){cZ=null
+}for(cY in aZ){if(Object.prototype.hasOwnProperty.call(aZ,cY)){var cO=(-1===c4.indexOf(cY));if(cO){cE+="&dimension"+cY+"="+aZ[cY]}}}if(cZ){cE+="&data="+n(JSON2.stringify(cZ))}else{if(ac){cE+="&data="+n(JSON2.stringify(ac))}}function cL(c6,c7){var c8=JSON2.stringify(c6);if(c8.length>2){return"&"+c7+"="+n(c8)}return""}var c3=cB(bt);var cU=cB(bS);cE+=cL(c3,"cvar");cE+=cL(cU,"e_cvar");if(ax){cE+=cL(ax,"_cvar");for(cY in cV){if(Object.prototype.hasOwnProperty.call(cV,cY)){if(ax[cY][0]===""||ax[cY][1]===""){delete ax[cY]}}}if(bo){cy(cQ,JSON2.stringify(ax),bV,a2,cl)}}if(aI){if(bT){cE+="&gt_ms="+bT}else{if(g&&g.timing&&g.timing.requestStart&&g.timing.responseEnd){cE+="&gt_ms="+(g.timing.responseEnd-g.timing.requestStart)}}}cS.lastEcommerceOrderTs=B(cF)&&String(cF).length?cF:cS.lastEcommerceOrderTs;at(cS);bK();cE+=U(c0);if(cn.length){cE+="&"+cn}if(u(bI)){cE=bI(cE)}return cE}bp=function aM(){var cC=new Date();if(cm+aL<=cC.getTime()){var cD=bY("ping=1",null,"ping");be(cD,bh);return true}return false
+};function a3(cF,cE,cJ,cG,cC,cM){var cH="idgoal=0",cI,cD=new Date(),cK=[],cL;if(String(cF).length){cH+="&ec_id="+n(cF);cI=Math.round(cD.getTime()/1000)}cH+="&revenue="+cE;if(String(cJ).length){cH+="&ec_st="+cJ}if(String(cG).length){cH+="&ec_tx="+cG}if(String(cC).length){cH+="&ec_sh="+cC}if(String(cM).length){cH+="&ec_dt="+cM}if(co){for(cL in co){if(Object.prototype.hasOwnProperty.call(co,cL)){if(!B(co[cL][1])){co[cL][1]=""}if(!B(co[cL][2])){co[cL][2]=""}if(!B(co[cL][3])||String(co[cL][3]).length===0){co[cL][3]=0}if(!B(co[cL][4])||String(co[cL][4]).length===0){co[cL][4]=1}cK.push(co[cL])}}cH+="&ec_items="+n(JSON2.stringify(cK))}cH=bY(cH,ac,"ecommerce",cI);be(cH,bh)}function bw(cC,cG,cF,cE,cD,cH){if(String(cC).length&&B(cG)){a3(cC,cG,cF,cE,cD,cH)}}function a4(cC){if(B(cC)){a3("",cC,"","","","")}}function bx(cD,cE){var cC=bY("action_name="+n(Z(cD||aW)),cE,"log");be(cC,bh)}function aG(cE,cD){var cF,cC="(^| )(piwik[_-]"+cD;if(cE){for(cF=0;cF<cE.length;cF++){cC+="|"+cE[cF]}}cC+=")( |$)";return new RegExp(cC)
+}function aB(cC){return(am&&cC&&0===String(cC).indexOf(am))}function bZ(cG,cC,cH,cD){if(aB(cC)){return 0}var cF=aG(bj,"download"),cE=aG(aN,"link"),cI=new RegExp("\\.("+cs.join("|")+")([?&#]|$)","i");if(cE.test(cG)){return"link"}if(cD||cF.test(cG)||cI.test(cC)){return"download"}if(cH){return 0}return"link"}function ag(cD){var cC;cC=cD.parentNode;while(cC!==null&&B(cC)){if(W.isLinkElement(cD)){break}cD=cC;cC=cD.parentNode}return cD}function cw(cH){cH=ag(cH);if(!W.hasNodeAttribute(cH,"href")){return}if(!B(cH.href)){return}var cG=W.getAttributeValueFromNode(cH,"href");if(aB(cG)){return}var cD=cH.pathname||bR(cH.href);var cI=cH.hostname||c(cH.href);var cJ=cI.toLowerCase();var cE=cH.href.replace(cI,cJ);var cF=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto|tel):","i");if(!cF.test(cE)){var cC=bZ(cH.className,cE,af(cJ,cD),W.hasNodeAttribute(cH,"download"));if(cC){return{type:cC,href:cE}}}}function aw(cC,cD,cE,cF){var cG=p.buildInteractionRequestParams(cC,cD,cE,cF);if(!cG){return
+}return bY(cG,null,"contentInteraction")}function cc(cE,cF,cJ,cC,cD){if(!B(cE)){return}if(aB(cE)){return cE}var cH=p.toAbsoluteUrl(cE);var cG="redirecturl="+n(cH)+"&";cG+=aw(cF,cJ,cC,(cD||cE));var cI="&";if(am.indexOf("?")<0){cI="?"}return am+cI+cG}function aR(cC,cD){if(!cC||!cD){return false}var cE=p.findTargetNode(cC);if(p.shouldIgnoreInteraction(cE)){return false}cE=p.findTargetNodeNoDefault(cC);if(cE&&!N(cE,cD)){return false}return true}function b0(cE,cD,cG){if(!cE){return}var cC=p.findParentContentNode(cE);if(!cC){return}if(!aR(cC,cE)){return}var cF=p.buildContentBlock(cC);if(!cF){return}if(!cF.target&&cG){cF.target=cG}return p.buildInteractionRequestParams(cD,cF.name,cF.piece,cF.target)}function aD(cD){if(!bH||!bH.length){return false}var cC,cE;for(cC=0;cC<bH.length;cC++){cE=bH[cC];if(cE&&cE.name===cD.name&&cE.piece===cD.piece&&cE.target===cD.target){return true}}return false}function bd(cF){if(!cF){return false}var cI=p.findTargetNode(cF);if(!cI||p.shouldIgnoreInteraction(cI)){return false
+}var cJ=cw(cI);if(cu&&cJ&&cJ.type){return false}if(W.isLinkElement(cI)&&W.hasNodeAttributeWithValue(cI,"href")){var cC=String(W.getAttributeValueFromNode(cI,"href"));if(0===cC.indexOf("#")){return false}if(aB(cC)){return true}if(!p.isUrlToCurrentDomain(cC)){return false}var cG=p.buildContentBlock(cF);if(!cG){return}var cE=cG.name;var cK=cG.piece;var cH=cG.target;if(!W.hasNodeAttributeWithValue(cI,p.CONTENT_TARGET_ATTR)||cI.wasContentTargetAttrReplaced){cI.wasContentTargetAttrReplaced=true;cH=p.toAbsoluteUrl(cC);W.setAnyAttribute(cI,p.CONTENT_TARGET_ATTR,cH)}var cD=cc(cC,"click",cE,cK,cH);p.setHrefAttribute(cI,cD);return true}return false}function au(cD){if(!cD||!cD.length){return}var cC;for(cC=0;cC<cD.length;cC++){bd(cD[cC])}}function aF(cC){return function(cD){if(!cC){return}var cG=p.findParentContentNode(cC);var cH;if(cD){cH=cD.target||cD.srcElement}if(!cH){cH=cC}if(!aR(cG,cH)){return}bN(bh);if(W.isLinkElement(cC)&&W.hasNodeAttributeWithValue(cC,"href")&&W.hasNodeAttributeWithValue(cC,p.CONTENT_TARGET_ATTR)){var cE=W.getAttributeValueFromNode(cC,"href");
+if(!aB(cE)&&cC.wasContentTargetAttrReplaced){W.setAnyAttribute(cC,p.CONTENT_TARGET_ATTR,"")}}var cL=cw(cC);if(ad&&cL&&cL.type){return cL.type}if(bd(cG)){return"href"}var cI=p.buildContentBlock(cG);if(!cI){return}var cF=cI.name;var cM=cI.piece;var cK=cI.target;var cJ=aw("click",cF,cM,cK);be(cJ,bh);return cJ}}function by(cE){if(!cE||!cE.length){return}var cC,cD;for(cC=0;cC<cE.length;cC++){cD=p.findTargetNode(cE[cC]);if(cD&&!cD.contentInteractionTrackingSetupDone){cD.contentInteractionTrackingSetupDone=true;ab(cD,"click",aF(cD))}}}function a8(cE,cF){if(!cE||!cE.length){return[]}var cC,cD;for(cC=0;cC<cE.length;cC++){if(aD(cE[cC])){cE.splice(cC,1);cC--}else{bH.push(cE[cC])}}if(!cE||!cE.length){return[]}au(cF);by(cF);var cG=[];for(cC=0;cC<cE.length;cC++){cD=bY(p.buildImpressionRequestParams(cE[cC].name,cE[cC].piece,cE[cC].target),undefined,"contentImpressions");cG.push(cD)}return cG}function b3(cD){var cC=p.collectContent(cD);return a8(cC,cD)}function aP(cD){if(!cD||!cD.length){return[]}var cC;
+for(cC=0;cC<cD.length;cC++){if(!p.isNodeVisible(cD[cC])){cD.splice(cC,1);cC--}}if(!cD||!cD.length){return[]}return b3(cD)}function ao(cE,cC,cD){var cF=p.buildImpressionRequestParams(cE,cC,cD);return bY(cF,null,"contentImpression")}function cx(cF,cD){if(!cF){return}var cC=p.findParentContentNode(cF);var cE=p.buildContentBlock(cC);if(!cE){return}if(!cD){cD="Unknown"}return aw(cD,cE.name,cE.piece,cE.target)}function ce(cD,cF,cC,cE){return"e_c="+n(cD)+"&e_a="+n(cF)+(B(cC)?"&e_n="+n(cC):"")+(B(cE)?"&e_v="+n(cE):"")}function ah(cE,cG,cC,cF,cH){if(String(cE).length===0||String(cG).length===0){return false}var cD=bY(ce(cE,cG,cC,cF),cH,"event");be(cD,bh)}function bG(cC,cF,cD,cG){var cE=bY("search="+n(cC)+(cF?"&search_cat="+n(cF):"")+(B(cD)?"&search_count="+cD:""),cG,"sitesearch");be(cE,bh)}function ci(cC,cF,cE){var cD=bY("idgoal="+cC+(cF?"&revenue="+cF:""),cE,"goal");be(cD,bh)}function cp(cF,cC,cJ,cI,cE){var cH=cC+"="+n(bz(cF));var cD=b0(cE,"click",cF);if(cD){cH+="&"+cD}var cG=bY(cH,cJ,"link");be(cG,(cI?0:bh),cI)
+}function bq(cD,cC){if(cD!==""){return cD+cC.charAt(0).toUpperCase()+cC.slice(1)}return cC}function bO(cH){var cG,cC,cF=["","webkit","ms","moz"],cE;if(!aU){for(cC=0;cC<cF.length;cC++){cE=cF[cC];if(Object.prototype.hasOwnProperty.call(z,bq(cE,"hidden"))){if(z[bq(cE,"visibilityState")]==="prerender"){cG=true}break}}}if(cG){ab(z,cE+"visibilitychange",function cD(){z.removeEventListener(cE+"visibilitychange",cD,false);cH()});return}cH()}function ar(cC){if(z.readyState==="complete"){cC()}else{if(M.addEventListener){M.addEventListener("load",cC)}else{if(M.attachEvent){M.attachEvent("onLoad",cC)}}}}function aS(cD){var cC=false;if(z.attachEvent){cC=z.readyState==="complete"}else{cC=z.readyState!=="loading"}if(cC){cD()}else{if(z.addEventListener){z.addEventListener("DOMContentLoaded",cD)}else{if(z.attachEvent){z.attachEvent("onreadystatechange",cD)}}}}function b9(cC){var cD=cw(cC);if(cD&&cD.type){cD.href=k(cD.href);cp(cD.href,cD.type,undefined,null,cC)}}function b2(){return z.all&&!z.addEventListener
+}function ck(cC){var cE=cC.which;var cD=(typeof cC.button);if(!cE&&cD!=="undefined"){if(b2()){if(cC.button&1){cE=1}else{if(cC.button&2){cE=3}else{if(cC.button&4){cE=2}}}}else{if(cC.button===0||cC.button==="0"){cE=1}else{if(cC.button&1){cE=2}else{if(cC.button&2){cE=3}}}}}return cE}function br(cC){switch(ck(cC)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aH(cC){return cC.target||cC.srcElement}function ak(cC){return function(cF){cF=cF||M.event;var cE=br(cF);var cG=aH(cF);if(cF.type==="click"){var cD=false;if(cC&&cE==="middle"){cD=true}if(cG&&!cD){b9(cG)}}else{if(cF.type==="mousedown"){if(cE==="middle"&&cG){ay=cE;bb=cG}else{ay=bb=null}}else{if(cF.type==="mouseup"){if(cE===ay&&cG===bb){b9(cG)}ay=bb=null}else{if(cF.type==="contextmenu"){b9(cG)}}}}}}function ae(cD,cC){ab(cD,"click",ak(cC),false);if(cC){ab(cD,"mouseup",ak(cC),false);ab(cD,"mousedown",ak(cC),false);ab(cD,"contextmenu",ak(cC),false)}}function bc(cD){if(!ad){ad=true;var cE,cC=aG(ba,"ignore"),cF=z.links;
+if(cF){for(cE=0;cE<cF.length;cE++){if(!cC.test(cF[cE].className)){ae(cF[cE],cD)}}}}}function az(cE,cG,cH){if(bM){return true}bM=true;var cI=false;var cF,cD;function cC(){cI=true}ar(function(){function cJ(cL){setTimeout(function(){if(!bM){return}cI=false;cH.trackVisibleContentImpressions();cJ(cL)},cL)}function cK(cL){setTimeout(function(){if(!bM){return}if(cI){cI=false;cH.trackVisibleContentImpressions()}cK(cL)},cL)}if(cE){cF=["scroll","resize"];for(cD=0;cD<cF.length;cD++){if(z.addEventListener){z.addEventListener(cF[cD],cC)}else{M.attachEvent("on"+cF[cD],cC)}}cK(100)}if(cG&&cG>0){cG=parseInt(cG,10);cJ(cG)}})}function aO(cG,cI){var cH=bR(cG);var cF=bR(cI);if(!cH||cH==="/"||!cF||cF==="/"){return}var cE=D(cG);if(af(cE,"/")){return}if(J(cH,"/")){cH=e(cH,1)}var cJ=cH.split("/");var cD;for(cD=2;cD<cJ.length;cD++){var cC=cJ.slice(0,cD).join("/");if(af(cE,cC)){cH=cC;break}}if(!aJ(cF,cH)){return}return cH}function b7(){var cE,cG,cH={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"},cD=M.devicePixelRatio||1;
+if(!((new RegExp("MSIE")).test(f.userAgent))){if(f.mimeTypes&&f.mimeTypes.length){for(cE in cH){if(Object.prototype.hasOwnProperty.call(cH,cE)){cG=f.mimeTypes[cH[cE]];ct[cE]=(cG&&cG.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&B(f.javaEnabled)&&f.javaEnabled()){ct.java="1"}if(u(M.GearsFactory)){ct.gears="1"}ct.cookie=bC()}var cF=parseInt(Q.width,10)*cD;var cC=parseInt(Q.height,10)*cD;ct.res=parseInt(cF,10)+"x"+parseInt(cC,10)}b7();aV();at();return{getVisitorId:function(){return aE().uuid},getVisitorInfo:function(){return cd()},getAttributionInfo:function(){return bk()},getAttributionCampaignName:function(){return bk()[0]},getAttributionCampaignKeyword:function(){return bk()[1]},getAttributionReferrerTimestamp:function(){return bk()[2]},getAttributionReferrerUrl:function(){return bk()[3]},setTrackerUrl:function(cC){am=cC},getTrackerUrl:function(){return am},getSiteId:function(){return bD},setSiteId:function(cC){bA(cC)},setUserId:function(cC){if(!B(cC)||!cC.length){return
+}a9=cC;bm=bE(a9).substr(0,16)},getUserId:function(){return a9},setCustomData:function(cC,cD){if(P(cC)){ac=cC}else{if(!ac){ac={}}ac[cC]=cD}},getCustomData:function(){return ac},setCustomRequestProcessing:function(cC){bI=cC},appendToTrackingUrl:function(cC){cn=cC},getRequest:function(cC){return bY(cC)},addPlugin:function(cC,cD){a[cC]=cD},setCustomDimension:function(cC,cD){cC=parseInt(cC,10);if(cC>0){if(!B(cD)){cD=""}if(!q(cD)){cD=String(cD)}aZ[cC]=cD}},getCustomDimension:function(cC){cC=parseInt(cC,10);if(cC>0&&Object.prototype.hasOwnProperty.call(aZ,cC)){return aZ[cC]}},deleteCustomDimension:function(cC){cC=parseInt(cC,10);if(cC>0){delete aZ[cC]}},setCustomVariable:function(cD,cC,cG,cE){var cF;if(!B(cE)){cE="visit"}if(!B(cC)){return}if(!B(cG)){cG=""}if(cD>0){cC=!q(cC)?String(cC):cC;cG=!q(cG)?String(cG):cG;cF=[cC.slice(0,a5),cG.slice(0,a5)];if(cE==="visit"||cE===2){b6();ax[cD]=cF}else{if(cE==="page"||cE===3){bt[cD]=cF}else{if(cE==="event"){bS[cD]=cF}}}}},getCustomVariable:function(cD,cE){var cC;
+if(!B(cE)){cE="visit"}if(cE==="page"||cE===3){cC=bt[cD]}else{if(cE==="event"){cC=bS[cD]}else{if(cE==="visit"||cE===2){b6();cC=ax[cD]}}}if(!B(cC)||(cC&&cC[0]==="")){return false}return cC},deleteCustomVariable:function(cC,cD){if(this.getCustomVariable(cC,cD)){this.setCustomVariable(cC,"","",cD)}},storeCustomVariablesInCookie:function(){bo=true},setLinkTrackingTimer:function(cC){bh=cC},setDownloadExtensions:function(cC){if(q(cC)){cC=cC.split("|")}cs=cC},addDownloadExtensions:function(cD){var cC;if(q(cD)){cD=cD.split("|")}for(cC=0;cC<cD.length;cC++){cs.push(cD[cC])}},removeDownloadExtensions:function(cE){var cD,cC=[];if(q(cE)){cE=cE.split("|")}for(cD=0;cD<cs.length;cD++){if(E(cE,cs[cD])===-1){cC.push(cs[cD])}}cs=cC},setDomains:function(cC){ai=q(cC)?[cC]:cC;var cE=false,cD;for(cD in ai){if(Object.prototype.hasOwnProperty.call(ai,cD)&&b8(cj,D(String(ai[cD])))){cE=true;if(!a2){var cF=aO(ai[cD],bl);if(cF){this.setCookiePath(cF)}break}}}if(!cE){ai.push(cj)}},setIgnoreClasses:function(cC){ba=q(cC)?[cC]:cC
+},setRequestMethod:function(cC){cv=cC||bP},setRequestContentType:function(cC){b1=cC||aq},setReferrerUrl:function(cC){a0=cC},setCustomUrl:function(cC){aK=bs(bl,cC)},setDocumentTitle:function(cC){aW=cC},setAPIUrl:function(cC){bg=cC},setDownloadClasses:function(cC){bj=q(cC)?[cC]:cC},setLinkClasses:function(cC){aN=q(cC)?[cC]:cC},setCampaignNameKey:function(cC){bX=q(cC)?[cC]:cC},setCampaignKeywordKey:function(cC){bf=q(cC)?[cC]:cC},discardHashTag:function(cC){bn=cC},setCookieNamePrefix:function(cC){aX=cC;ax=bu()},setCookieDomain:function(cC){var cD=D(cC);if(a7(cD)){cl=cD;aV()}},setCookiePath:function(cC){a2=cC;aV()},setVisitorCookieTimeout:function(cC){cb=cC*1000},setSessionCookieTimeout:function(cC){bV=cC*1000},setReferralCookieTimeout:function(cC){cr=cC*1000},setConversionAttributionFirstReferrer:function(cC){a6=cC},disableCookies:function(){aY=true;ct.cookie="0";if(bD){an()}},deleteCookies:function(){an()},setDoNotTrack:function(cD){var cC=f.doNotTrack||f.msDoNotTrack;cf=cD&&(cC==="yes"||cC==="1");
+if(cf){this.disableCookies()}},addListener:function(cD,cC){ae(cD,cC)},enableLinkTracking:function(cC){cu=true;if(s){bc(cC)}else{K.push(function(){bc(cC)})}},enableJSErrorTracking:function(){if(ch){return}ch=true;var cC=M.onerror;M.onerror=function(cH,cF,cE,cG,cD){bO(function(){var cI="JavaScript Errors";var cJ=cF+":"+cE;if(cG){cJ+=":"+cG}ah(cI,cJ,cH)});if(cC){return cC(cH,cF,cE,cG,cD)}return false}},disablePerformanceTracking:function(){aI=false},setGenerationTimeMs:function(cC){bT=parseInt(cC,10)},enableHeartBeatTimer:function(cC){cC=Math.max(cC,1);aL=(cC||15)*1000;if(cm!==null){cA()}},killFrame:function(){if(M.location!==M.top.location){M.top.location=M.location}},redirectFile:function(cC){if(M.location.protocol==="file:"){M.location=cC}},setCountPreRendered:function(cC){aU=cC},trackGoal:function(cC,cE,cD){bO(function(){ci(cC,cE,cD)})},trackLink:function(cD,cC,cF,cE){bO(function(){cp(cD,cC,cF,cE)})},trackPageView:function(cC,cD){bH=[];if(F(bD)){bO(function(){S(am,bg,bD)})}else{bO(function(){bx(cC,cD)
+})}},trackAllContentImpressions:function(){if(F(bD)){return}bO(function(){aS(function(){var cC=p.findContentNodes();var cD=b3(cC);cz(cD,bh)})})},trackVisibleContentImpressions:function(cC,cD){if(F(bD)){return}if(!B(cC)){cC=true}if(!B(cD)){cD=750}az(cC,cD,this);bO(function(){ar(function(){var cE=p.findContentNodes();var cF=aP(cE);cz(cF,bh)})})},trackContentImpression:function(cE,cC,cD){if(F(bD)){return}if(!cE){return}cC=cC||"Unknown";bO(function(){var cF=ao(cE,cC,cD);be(cF,bh)})},trackContentImpressionsWithinNode:function(cC){if(F(bD)||!cC){return}bO(function(){if(bM){ar(function(){var cD=p.findContentNodesWithinNode(cC);var cE=aP(cD);cz(cE,bh)})}else{aS(function(){var cD=p.findContentNodesWithinNode(cC);var cE=b3(cD);cz(cE,bh)})}})},trackContentInteraction:function(cE,cF,cC,cD){if(F(bD)){return}if(!cE||!cF){return}cC=cC||"Unknown";bO(function(){var cG=aw(cE,cF,cC,cD);be(cG,bh)})},trackContentInteractionNode:function(cD,cC){if(F(bD)||!cD){return}bO(function(){var cE=cx(cD,cC);be(cE,bh)})
+},logAllContentBlocksOnPage:function(){var cD=p.findContentNodes();var cC=p.collectContent(cD);if(console!==undefined&&console&&console.log){console.log(cC)}},trackEvent:function(cD,cF,cC,cE,cG){bO(function(){ah(cD,cF,cC,cE,cG)})},trackSiteSearch:function(cC,cE,cD,cF){bO(function(){bG(cC,cE,cD,cF)})},setEcommerceView:function(cF,cC,cE,cD){if(!B(cE)||!cE.length){cE=""}else{if(cE instanceof Array){cE=JSON2.stringify(cE)}}bt[5]=["_pkc",cE];if(B(cD)&&String(cD).length){bt[2]=["_pkp",cD]}if((!B(cF)||!cF.length)&&(!B(cC)||!cC.length)){return}if(B(cF)&&cF.length){bt[3]=["_pks",cF]}if(!B(cC)||!cC.length){cC=""}bt[4]=["_pkn",cC]},addEcommerceItem:function(cG,cC,cE,cD,cF){if(cG.length){co[cG]=[cG,cC,cE,cD,cF]}},trackEcommerceOrder:function(cC,cG,cF,cE,cD,cH){bw(cC,cG,cF,cE,cD,cH)},trackEcommerceCartUpdate:function(cC){a4(cC)}}}function A(){return{push:X}}function b(ah,ag){var ai={};var ae,af;for(ae=0;ae<ag.length;ae++){var ac=ag[ae];ai[ac]=1;for(af=0;af<ah.length;af++){if(ah[af]&&ah[af][0]){var ad=ah[af][0];
+if(ac===ad){X(ah[af]);delete ah[af];if(ai[ad]>1){if(console!==undefined&&console&&console.error){console.error("The method "+ad+' is registered more than once in "paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: http://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}}ai[ad]++}}}}return ah}ab(M,"beforeunload",Y,false);r();Date.prototype.getTimeAlias=Date.prototype.getTime;R=new I();var w=["disableCookies","setTrackerUrl","setAPIUrl","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];_paq=b(_paq,w);for(y=0;y<_paq.length;y++){if(_paq[y]){X(_paq[y])}}_paq=new A();d={addPlugin:function(ac,ad){a[ac]=ad},getTracker:function(ac,ad){if(!B(ad)){ad=this.getAsyncTracker().getSiteId()}if(!B(ac)){ac=this.getAsyncTracker().getTrackerUrl()}return new I(ac,ad)},getAsyncTracker:function(){return R}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return d
+})}return d}())}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=window.Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=window.Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}};
/*! @license-end */
}; \ No newline at end of file
diff --git a/plugins/API/lang/da.json b/plugins/API/lang/da.json
index 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
-Subproject 3f71ea0d6880f4a1cbdc531342760f72136e26d
+Subproject e3b349bb7d75269962b31695d99f1e8ec7e44b3
diff --git a/plugins/CustomDimensions b/plugins/CustomDimensions
-Subproject a9c2872b3e268ab3cbd4f6af0ae4547e466bafe
+Subproject aab8e5a7246135a1d6b3ca00e665aea4adf8035
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
-Subproject 5277167591c602d88ae8f4b065a314e670e0814
+Subproject 39b949806240c93beef5d0308988f608b643788
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
-Subproject 813a8e3dc65c3c6cca088d7f3f358ebc71a0d4c
+Subproject 53ab383e4d19963441b2e8c8211fac3ac9426cb
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
-Subproject 4c18db6600e189a691d48693a1238f7806b9d70
+Subproject 9e27fa9f5d12c752c1db19b49256ef32fdcbcb5
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>
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
-Subproject a3a5924c8530c2cbbf95071e153f26c3927e7e3
+Subproject 4513d00ca815838f3e749be13b62b568f435403
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' +
'}'
);
},