PDF rausgenommen
This commit is contained in:
341
msd2/tracking/piwik/plugins/Insights/API.php
Normal file
341
msd2/tracking/piwik/plugins/Insights/API.php
Normal file
@ -0,0 +1,341 @@
|
||||
<?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\Insights;
|
||||
|
||||
use Piwik\API\Request as ApiRequest;
|
||||
use Piwik\DataTable;
|
||||
use Piwik\Piwik;
|
||||
|
||||
/**
|
||||
* API for plugin Insights
|
||||
*
|
||||
* @method static \Piwik\Plugins\Insights\API getInstance()
|
||||
*/
|
||||
class API extends \Piwik\Plugin\API
|
||||
{
|
||||
/**
|
||||
* Include only 'movers' which are existing in the current and past report.
|
||||
*/
|
||||
const FILTER_BY_MOVERS = 'movers';
|
||||
|
||||
/**
|
||||
* Include only 'new' rows which were not existing in the past report.
|
||||
*/
|
||||
const FILTER_BY_NEW = 'new';
|
||||
|
||||
/**
|
||||
* Include only 'disappeared' rows which were existing in the past report but no longer in the current report.
|
||||
*/
|
||||
const FILTER_BY_DISAPPEARED = 'disappeared';
|
||||
|
||||
/**
|
||||
* @var Model
|
||||
*/
|
||||
private $model;
|
||||
|
||||
public function __construct(Model $model)
|
||||
{
|
||||
$this->model = $model;
|
||||
}
|
||||
|
||||
private function getOverviewReports()
|
||||
{
|
||||
$reports = array();
|
||||
|
||||
/**
|
||||
* Triggered to gather all reports to be displayed in the "Insight" and "Movers And Shakers" overview reports.
|
||||
* Plugins that want to add new reports to the overview should subscribe to this event and add reports to the
|
||||
* incoming array. API parameters can be configured as an array optionally.
|
||||
*
|
||||
* **Example**
|
||||
*
|
||||
* public function addReportToInsightsOverview(&$reports)
|
||||
* {
|
||||
* $reports['Actions_getPageUrls'] = array();
|
||||
* $reports['Actions_getDownloads'] = array('flat' => 1, 'minGrowthPercent' => 60);
|
||||
* }
|
||||
*
|
||||
* @param array &$reports An array containing a report unique id as key and an array of API parameters as
|
||||
* values.
|
||||
*/
|
||||
Piwik::postEvent('Insights.addReportToOverview', array(&$reports));
|
||||
|
||||
return $reports;
|
||||
}
|
||||
|
||||
/**
|
||||
* Detects whether insights can be generated for this date/period combination or not.
|
||||
* @param string $date eg 'today', '2012-12-12'
|
||||
* @param string $period eg 'day' or 'week'
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function canGenerateInsights($date, $period)
|
||||
{
|
||||
Piwik::checkUserHasSomeViewAccess();
|
||||
|
||||
try {
|
||||
$lastDate = $this->model->getLastDate($date, $period, 1);
|
||||
} catch (\Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (empty($lastDate)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates insights for a set of reports. Plugins can add their own reports to be included in the insights
|
||||
* overview by listening to the {@hook Insights.addReportToOverview} event.
|
||||
*
|
||||
* @param int $idSite
|
||||
* @param string $period
|
||||
* @param string $date
|
||||
* @param bool|string $segment
|
||||
*
|
||||
* @return DataTable\Map A map containing a dataTable for each insight report. See {@link getInsights()} for more
|
||||
* information
|
||||
*/
|
||||
public function getInsightsOverview($idSite, $period, $date, $segment = false)
|
||||
{
|
||||
Piwik::checkUserHasViewAccess($idSite);
|
||||
|
||||
$defaultParams = array(
|
||||
'limitIncreaser' => 3,
|
||||
'limitDecreaser' => 3,
|
||||
'minImpactPercent' => 1,
|
||||
'minGrowthPercent' => 25,
|
||||
);
|
||||
|
||||
$map = $this->generateOverviewReport('getInsights', $idSite, $period, $date, $segment, $defaultParams);
|
||||
|
||||
return $map;
|
||||
}
|
||||
|
||||
/**
|
||||
* Detects the movers and shakers for a set of reports. Plugins can add their own reports to be included in this
|
||||
* overview by listening to the {@hook Insights.addReportToOverview} event.
|
||||
*
|
||||
* @param int $idSite
|
||||
* @param string $period
|
||||
* @param string $date
|
||||
* @param bool|string $segment
|
||||
*
|
||||
* @return DataTable\Map A map containing a dataTable for each movers and shakers report. See
|
||||
* {@link getMoversAndShakers()} for more information
|
||||
*/
|
||||
public function getMoversAndShakersOverview($idSite, $period, $date, $segment = false)
|
||||
{
|
||||
Piwik::checkUserHasViewAccess($idSite);
|
||||
|
||||
$defaultParams = array(
|
||||
'limitIncreaser' => 4,
|
||||
'limitDecreaser' => 4
|
||||
);
|
||||
|
||||
$map = $this->generateOverviewReport('getMoversAndShakers', $idSite, $period, $date, $segment, $defaultParams);
|
||||
|
||||
return $map;
|
||||
}
|
||||
|
||||
private function generateOverviewReport($method, $idSite, $period, $date, $segment, array $defaultParams)
|
||||
{
|
||||
$tableManager = DataTable\Manager::getInstance();
|
||||
|
||||
/** @var DataTable[] $tables */
|
||||
$tables = array();
|
||||
foreach ($this->getOverviewReports() as $reportId => $reportParams) {
|
||||
if (!empty($reportParams)) {
|
||||
foreach ($defaultParams as $key => $defaultParam) {
|
||||
if (!array_key_exists($key, $reportParams)) {
|
||||
$reportParams[$key] = $defaultParam;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$firstTableId = $tableManager->getMostRecentTableId();
|
||||
$table = $this->requestApiMethod($method, $idSite, $period, $date, $reportId, $segment, $reportParams);
|
||||
$reportTableIds[] = $table->getId();
|
||||
$tableManager->deleteTablesExceptIgnored($reportTableIds, $firstTableId);
|
||||
|
||||
$tables[] = $table;
|
||||
}
|
||||
|
||||
$map = new DataTable\Map();
|
||||
|
||||
foreach ($tables as $table) {
|
||||
$map->addTable($table, $table->getMetadata('reportName'));
|
||||
}
|
||||
|
||||
return $map;
|
||||
}
|
||||
|
||||
/**
|
||||
* Detects the movers and shakers of a given date / report combination. A mover and shakers has an higher impact
|
||||
* than other rows on average. For instance if a sites pageviews increase by 10% a page that increased by 40% at the
|
||||
* same time contributed significantly more to the success than the average of 10%.
|
||||
*
|
||||
* @param int $idSite
|
||||
* @param string $period
|
||||
* @param string $date
|
||||
* @param string $reportUniqueId eg 'Actions_getPageUrls'. An id like 'Goals_getVisitsUntilConversion_idGoal--4' works as well.
|
||||
* @param bool|string $segment
|
||||
* @param int $comparedToXPeriods
|
||||
* @param int $limitIncreaser Value '0' ignores all increasers
|
||||
* @param int $limitDecreaser Value '0' ignores all decreasers
|
||||
*
|
||||
* @return DataTable
|
||||
*
|
||||
* @throws \Exception In case a report having the given ID does not exist
|
||||
* @throws \Exception In case the report exists but does not return a dataTable
|
||||
*/
|
||||
public function getMoversAndShakers($idSite, $period, $date, $reportUniqueId, $segment = false,
|
||||
$comparedToXPeriods = 1, $limitIncreaser = 4, $limitDecreaser = 4)
|
||||
{
|
||||
Piwik::checkUserHasViewAccess(array($idSite));
|
||||
|
||||
$metric = 'nb_visits';
|
||||
$orderBy = InsightReport::ORDER_BY_ABSOLUTE;
|
||||
|
||||
$reportMetadata = $this->model->getReportByUniqueId($idSite, $reportUniqueId);
|
||||
|
||||
if (empty($reportMetadata)) {
|
||||
throw new \Exception('A report having the ID ' . $reportUniqueId . ' does not exist');
|
||||
}
|
||||
|
||||
$totalValue = $this->model->getTotalValue($idSite, $period, $date, $metric, $segment);
|
||||
$currentReport = $this->model->requestReport($idSite, $period, $date, $reportUniqueId, $metric, $segment);
|
||||
$this->checkReportIsValid($currentReport);
|
||||
|
||||
$lastDate = $this->model->getLastDate($date, $period, $comparedToXPeriods);
|
||||
$lastTotalValue = $this->model->getTotalValue($idSite, $period, $lastDate, $metric, $segment);
|
||||
$lastReport = $this->model->requestReport($idSite, $period, $lastDate, $reportUniqueId, $metric, $segment);
|
||||
$this->checkReportIsValid($lastReport);
|
||||
|
||||
$insight = new InsightReport();
|
||||
return $insight->generateMoverAndShaker($reportMetadata, $period, $date, $lastDate, $metric, $currentReport, $lastReport, $totalValue, $lastTotalValue, $orderBy, $limitIncreaser, $limitDecreaser);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates insights by comparing the report for a given date/period with a different date and calculating the
|
||||
* difference. The API can exclude rows which growth is not good enough or did not have enough impact.
|
||||
*
|
||||
* @param int $idSite
|
||||
* @param string $period
|
||||
* @param string $date
|
||||
* @param string $reportUniqueId eg 'Actions_getPageUrls'. An id like 'Goals_getVisitsUntilConversion_idGoal--4' works as well.
|
||||
* @param bool|string $segment
|
||||
* @param int $limitIncreaser Value '0' ignores all increasers
|
||||
* @param int $limitDecreaser Value '0' ignores all decreasers
|
||||
* @param string $filterBy By default all rows will be ignored. If given only 'movers', 'new' or 'disappeared' will be returned.
|
||||
* @param int $minImpactPercent The minimum impact in percent. Eg '2%' of 1000 visits means the change /
|
||||
* increase / decrease has to be at least 20 visits. Usually the '2%' are based on the total
|
||||
* amount of visits but for reports having way less visits the metric total is used. Eg A page
|
||||
* has 1000 visits but only 100 visits having keywords. In this case a minimum impact of '2%' evaluates to 2 and not 20.
|
||||
* @param int $minGrowthPercent The amount of percent a row has to increase or decrease at least compared to the previous period.
|
||||
* If value is '20' the growth has to be either at least '+20%' or '-20%' and lower.
|
||||
* @param int $comparedToXPeriods The report will be compared to X periods before.
|
||||
* @param string $orderBy Orders the rows by 'absolute', 'relative' or 'importance'.
|
||||
*
|
||||
* @return DataTable
|
||||
*
|
||||
* @throws \Exception In case a report having the given ID does not exist
|
||||
* @throws \Exception In case the report exists but does not return a dataTable
|
||||
*/
|
||||
public function getInsights(
|
||||
$idSite, $period, $date, $reportUniqueId, $segment = false, $limitIncreaser = 5, $limitDecreaser = 5,
|
||||
$filterBy = '', $minImpactPercent = 2, $minGrowthPercent = 20,
|
||||
$comparedToXPeriods = 1, $orderBy = 'absolute')
|
||||
{
|
||||
Piwik::checkUserHasViewAccess(array($idSite));
|
||||
|
||||
$metric = 'nb_visits';
|
||||
|
||||
$reportMetadata = $this->model->getReportByUniqueId($idSite, $reportUniqueId);
|
||||
|
||||
if (empty($reportMetadata)) {
|
||||
throw new \Exception('A report having the ID ' . $reportUniqueId . ' does not exist');
|
||||
}
|
||||
|
||||
$totalValue = $this->model->getTotalValue($idSite, $period, $date, $metric, $segment);
|
||||
$currentReport = $this->model->requestReport($idSite, $period, $date, $reportUniqueId, $metric, $segment);
|
||||
$this->checkReportIsValid($currentReport);
|
||||
|
||||
$lastDate = $this->model->getLastDate($date, $period, $comparedToXPeriods);
|
||||
$lastTotalValue = $this->model->getTotalValue($idSite, $period, $lastDate, $metric, $segment);
|
||||
$lastReport = $this->model->requestReport($idSite, $period, $lastDate, $reportUniqueId, $metric, $segment);
|
||||
$this->checkReportIsValid($lastReport);
|
||||
|
||||
$minGrowthPercentPositive = abs($minGrowthPercent);
|
||||
$minGrowthPercentNegative = -1 * $minGrowthPercentPositive;
|
||||
|
||||
$relevantTotal = $this->model->getRelevantTotalValue($currentReport, $metric, $totalValue);
|
||||
|
||||
$minMoversPercent = -1;
|
||||
$minNewPercent = -1;
|
||||
$minDisappearedPercent = -1;
|
||||
|
||||
switch ($filterBy) {
|
||||
case self::FILTER_BY_MOVERS:
|
||||
$minMoversPercent = $minImpactPercent;
|
||||
break;
|
||||
case self::FILTER_BY_NEW:
|
||||
$minNewPercent = $minImpactPercent;
|
||||
break;
|
||||
case self::FILTER_BY_DISAPPEARED:
|
||||
$minDisappearedPercent = $minImpactPercent;
|
||||
break;
|
||||
default:
|
||||
$minMoversPercent = $minImpactPercent;
|
||||
$minNewPercent = $minImpactPercent;
|
||||
$minDisappearedPercent = $minImpactPercent;
|
||||
}
|
||||
|
||||
$insight = new InsightReport();
|
||||
$table = $insight->generateInsight($reportMetadata, $period, $date, $lastDate, $metric, $currentReport, $lastReport, $relevantTotal, $minMoversPercent, $minNewPercent, $minDisappearedPercent, $minGrowthPercentPositive, $minGrowthPercentNegative, $orderBy, $limitIncreaser, $limitDecreaser);
|
||||
$insight->markMoversAndShakers($table, $currentReport, $lastReport, $totalValue, $lastTotalValue);
|
||||
|
||||
return $table;
|
||||
}
|
||||
|
||||
private function checkReportIsValid($report)
|
||||
{
|
||||
if (!($report instanceof DataTable)) {
|
||||
throw new \Exception('Insight can be only generated for reports returning a dataTable');
|
||||
}
|
||||
}
|
||||
|
||||
private function requestApiMethod($method, $idSite, $period, $date, $reportId, $segment, $additionalParams)
|
||||
{
|
||||
$params = array(
|
||||
'idSite' => $idSite,
|
||||
'date' => $date,
|
||||
'period' => $period,
|
||||
'format' => 'original',
|
||||
'reportUniqueId' => $reportId,
|
||||
'totals' => 0,
|
||||
);
|
||||
|
||||
if (!empty($segment)) {
|
||||
$params['segment'] = $segment;
|
||||
}
|
||||
|
||||
if (!empty($additionalParams)) {
|
||||
foreach ($additionalParams as $key => $value) {
|
||||
$params[$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return ApiRequest::processRequest('Insights.' . $method, $params, $default = []);
|
||||
}
|
||||
|
||||
}
|
86
msd2/tracking/piwik/plugins/Insights/Controller.php
Normal file
86
msd2/tracking/piwik/plugins/Insights/Controller.php
Normal file
@ -0,0 +1,86 @@
|
||||
<?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\Insights;
|
||||
|
||||
use Piwik\API\Request;
|
||||
use Piwik\Common;
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugins\Insights\Visualizations\Insight;
|
||||
use Piwik\View;
|
||||
|
||||
/**
|
||||
* Insights Controller
|
||||
*/
|
||||
class Controller extends \Piwik\Plugin\Controller
|
||||
{
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->checkSitePermission();
|
||||
Piwik::checkUserHasViewAccess($this->idSite);
|
||||
}
|
||||
|
||||
public function getInsightsOverview()
|
||||
{
|
||||
$view = $this->prepareWidgetView('insightsOverviewWidget.twig');
|
||||
$view->reports = $this->requestApiReport('getInsightsOverview');
|
||||
|
||||
return $view->render();
|
||||
}
|
||||
|
||||
public function getOverallMoversAndShakers()
|
||||
{
|
||||
$view = $this->prepareWidgetView('moversAndShakersOverviewWidget.twig');
|
||||
$view->reports = $this->requestApiReport('getMoversAndShakersOverview');
|
||||
|
||||
return $view->render();
|
||||
}
|
||||
|
||||
private function prepareWidgetView($template)
|
||||
{
|
||||
if (!$this->canGenerateInsights()) {
|
||||
|
||||
$view = new View('@Insights/cannotDisplayReport.twig');
|
||||
$this->setBasicVariablesView($view);
|
||||
return $view;
|
||||
}
|
||||
|
||||
$view = new View('@Insights/' . $template);
|
||||
$this->setBasicVariablesView($view);
|
||||
|
||||
$view->properties = array(
|
||||
'order_by' => InsightReport::ORDER_BY_ABSOLUTE
|
||||
);
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
private function requestApiReport($apiReport)
|
||||
{
|
||||
if (!$this->canGenerateInsights()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$period = Common::getRequestVar('period', null, 'string');
|
||||
$date = Common::getRequestVar('date', null, 'string');
|
||||
$segment = Request::getRawSegmentFromRequest();
|
||||
|
||||
return API::getInstance()->$apiReport($this->idSite, $period, $date, $segment);
|
||||
}
|
||||
|
||||
private function canGenerateInsights()
|
||||
{
|
||||
$period = Common::getRequestVar('period', null, 'string');
|
||||
$date = Common::getRequestVar('date', null, 'string');
|
||||
|
||||
return API::getInstance()->canGenerateInsights($date, $period);
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
<?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\Insights\DataTable\Filter;
|
||||
|
||||
use Piwik\DataTable;
|
||||
|
||||
/**
|
||||
* Removes all rows whose value is too low.
|
||||
*/
|
||||
class ExcludeLowValue extends DataTable\BaseFilter
|
||||
{
|
||||
private $minimumValue;
|
||||
private $columnToRead;
|
||||
private $columnToCheckToBeTrue;
|
||||
|
||||
/**
|
||||
* @param DataTable $table
|
||||
* @param string $columnToRead
|
||||
* @param int $minimumValue
|
||||
* @param string $columnToCheckToBeTrue if set, we will delete a row only if this column evaluates to true. If
|
||||
* column does not evaluate to true we will not delete the row even if
|
||||
* the value is lower than the minimumValue.
|
||||
*/
|
||||
public function __construct($table, $columnToRead, $minimumValue, $columnToCheckToBeTrue = '')
|
||||
{
|
||||
$this->columnToRead = $columnToRead;
|
||||
$this->minimumValue = $minimumValue;
|
||||
$this->columnToCheckToBeTrue = $columnToCheckToBeTrue;
|
||||
}
|
||||
|
||||
public function filter($table)
|
||||
{
|
||||
if (!$this->minimumValue) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($table->getRows() as $key => $row) {
|
||||
|
||||
if ($this->columnToCheckToBeTrue && !$row->getColumn($this->columnToCheckToBeTrue)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$value = $row->getColumn($this->columnToRead);
|
||||
|
||||
if ($this->minimumValue > abs($value)) {
|
||||
$table->deleteRow($key);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,119 @@
|
||||
<?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\Insights\DataTable\Filter;
|
||||
|
||||
use Piwik\DataTable;
|
||||
|
||||
class Insight extends DataTable\Filter\CalculateEvolutionFilter
|
||||
{
|
||||
private $considerMovers;
|
||||
private $considerNew;
|
||||
private $considerDisappeared;
|
||||
private $currentDataTable;
|
||||
|
||||
public function __construct($table, $currentDataTable, $pastDataTable, $columnToRead,
|
||||
$considerMovers, $considerNew, $considerDisappeared)
|
||||
{
|
||||
parent::__construct($table, $pastDataTable, 'growth', $columnToRead, $quotientPrecision = 1);
|
||||
|
||||
$this->currentDataTable = $currentDataTable;
|
||||
$this->considerMovers = $considerMovers;
|
||||
$this->considerNew = $considerNew;
|
||||
$this->considerDisappeared = $considerDisappeared;
|
||||
}
|
||||
|
||||
public function filter($table)
|
||||
{
|
||||
foreach ($this->currentDataTable->getRows() as $row) {
|
||||
$this->addRowIfNewOrMover($table, $row);
|
||||
}
|
||||
|
||||
if ($this->considerDisappeared) {
|
||||
foreach ($this->pastDataTable->getRows() as $row) {
|
||||
$this->addRowIfDisappeared($table, $row);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function addRowIfDisappeared(DataTable $table, DataTable\Row $row)
|
||||
{
|
||||
if ($this->getRowFromTable($this->currentDataTable, $row)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$newValue = 0;
|
||||
$oldValue = $row->getColumn($this->columnValueToRead);
|
||||
$difference = $newValue - $oldValue;
|
||||
|
||||
if ($oldValue == 0 && $newValue == 0) {
|
||||
$growthPercentage = '0%';
|
||||
} else {
|
||||
$growthPercentage = '-100%';
|
||||
}
|
||||
|
||||
$this->addRow($table, $row, $growthPercentage, $newValue, $oldValue, $difference, $isDisappeared = true);
|
||||
}
|
||||
|
||||
private function addRowIfNewOrMover(DataTable $table, DataTable\Row $row)
|
||||
{
|
||||
$pastRow = $this->getPastRowFromCurrent($row);
|
||||
|
||||
if (!$pastRow && !$this->considerNew) {
|
||||
return;
|
||||
} elseif ($pastRow && !$this->considerMovers) {
|
||||
return;
|
||||
}
|
||||
|
||||
$isNew = false;
|
||||
$isMover = false;
|
||||
$isDisappeared = false;
|
||||
|
||||
if (!$pastRow) {
|
||||
$isNew = true;
|
||||
$oldValue = 0;
|
||||
} else {
|
||||
$isMover = true;
|
||||
$oldValue = $pastRow->getColumn($this->columnValueToRead);
|
||||
}
|
||||
|
||||
$difference = $this->getDividend($row);
|
||||
if ($difference === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
$newValue = $row->getColumn($this->columnValueToRead);
|
||||
$divisor = $this->getDivisor($row);
|
||||
|
||||
$growthPercentage = $this->formatValue($difference, $divisor);
|
||||
|
||||
$this->addRow($table, $row, $growthPercentage, $newValue, $oldValue, $difference, $isDisappeared, $isNew, $isMover);
|
||||
}
|
||||
|
||||
private function getRowFromTable(DataTable $table, DataTable\Row $row)
|
||||
{
|
||||
return $table->getRowFromLabel($row->getColumn('label'));
|
||||
}
|
||||
|
||||
private function addRow(DataTable $table, DataTable\Row $row, $growthPercentage, $newValue, $oldValue, $difference, $disappeared = false, $isNew = false, $isMover = false)
|
||||
{
|
||||
$columns = $row->getColumns();
|
||||
$columns['growth_percent'] = $growthPercentage;
|
||||
$columns['growth_percent_numeric'] = str_replace('%', '', $growthPercentage);
|
||||
$columns['grown'] = '-' != substr($growthPercentage, 0 , 1);
|
||||
$columns['value_old'] = $oldValue;
|
||||
$columns['value_new'] = $newValue;
|
||||
$columns['difference'] = $difference;
|
||||
$columns['importance'] = abs($difference);
|
||||
$columns['isDisappeared'] = $disappeared;
|
||||
$columns['isNew'] = $isNew;
|
||||
$columns['isMover'] = $isMover;
|
||||
|
||||
$table->addRowFromArray(array(DataTable\Row::COLUMNS => $columns));
|
||||
}
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
<?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\Insights\DataTable\Filter;
|
||||
use Piwik\DataTable\BaseFilter;
|
||||
|
||||
/**
|
||||
* Limits the number of positive and negative values. A value is considered as positive if the value of $columnToRead
|
||||
* is 0 or higher. A value is considered as negative in all other cases (< 0).
|
||||
*/
|
||||
class Limit extends BaseFilter
|
||||
{
|
||||
private $limitPositive;
|
||||
private $limitNegative;
|
||||
private $columnToRead;
|
||||
|
||||
public function __construct($table, $columnToRead, $limitPositiveValues, $limitNegativeValues)
|
||||
{
|
||||
$this->columnToRead = $columnToRead;
|
||||
$this->limitPositive = (int) $limitPositiveValues;
|
||||
$this->limitNegative = (int) $limitNegativeValues;
|
||||
}
|
||||
|
||||
public function filter($table)
|
||||
{
|
||||
$countIncreaser = 0;
|
||||
$countDecreaser = 0;
|
||||
|
||||
foreach ($table->getRows() as $key => $row) {
|
||||
|
||||
if ($row->getColumn($this->columnToRead) >= 0) {
|
||||
|
||||
$countIncreaser++;
|
||||
|
||||
if ($countIncreaser > $this->limitPositive) {
|
||||
$table->deleteRow($key);
|
||||
}
|
||||
|
||||
} else {
|
||||
$countDecreaser++;
|
||||
|
||||
if ($countDecreaser > $this->limitNegative) {
|
||||
$table->deleteRow($key);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
<?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\Insights\DataTable\Filter;
|
||||
|
||||
use Piwik\DataTable;
|
||||
use Piwik\DataTable\BaseFilter;
|
||||
|
||||
/**
|
||||
* A row will be deleted if a positive value of $columnToRead is lower than the $minPositiveValue or if the negative
|
||||
* value of $columnToRead is higher than the $minNegativeValue.
|
||||
* That means a row will be deleted if the value is between $minNegativeValue and $minPositiveValue.
|
||||
*/
|
||||
class MinGrowth extends BaseFilter
|
||||
{
|
||||
private $minPositiveValue;
|
||||
private $minNegativeValue;
|
||||
private $columnToRead;
|
||||
|
||||
public function __construct($table, $columnToRead, $minPositiveValue, $minNegativeValue)
|
||||
{
|
||||
$this->columnToRead = $columnToRead;
|
||||
$this->minPositiveValue = $minPositiveValue;
|
||||
$this->minNegativeValue = $minNegativeValue;
|
||||
}
|
||||
|
||||
public function filter($table)
|
||||
{
|
||||
if (!$this->minPositiveValue && !$this->minNegativeValue) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($table->getRows() as $key => $row) {
|
||||
|
||||
$growthNumeric = $row->getColumn($this->columnToRead);
|
||||
|
||||
if ($growthNumeric >= $this->minPositiveValue && $growthNumeric >= 0) {
|
||||
continue;
|
||||
} elseif ($growthNumeric <= $this->minNegativeValue && $growthNumeric < 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$table->deleteRow($key);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,92 @@
|
||||
<?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\Insights\DataTable\Filter;
|
||||
|
||||
use Piwik\DataTable\BaseFilter;
|
||||
use Piwik\DataTable\Row;
|
||||
|
||||
/**
|
||||
* Goal is to list all positive values first (the higher the better) and then all negative values (the lower the better).
|
||||
*
|
||||
* 40%
|
||||
* 20%
|
||||
* 0%
|
||||
* -40%
|
||||
* -20%
|
||||
*/
|
||||
class OrderBy extends BaseFilter
|
||||
{
|
||||
private $columnsToCheck;
|
||||
|
||||
public function __construct($table, $columnToRead, $columnSecondOrder, $columnThirdOrder = '')
|
||||
{
|
||||
$this->columnsToCheck = array($columnToRead, $columnSecondOrder, $columnThirdOrder);
|
||||
}
|
||||
|
||||
public function filter($table)
|
||||
{
|
||||
if (!$table->getRowsCount()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$table->sort(array($this, 'sort'), $this->columnsToCheck[0]);
|
||||
}
|
||||
|
||||
public function sort(Row $a, Row $b)
|
||||
{
|
||||
foreach ($this->columnsToCheck as $column) {
|
||||
if ($column) {
|
||||
|
||||
$valA = $a->getColumn($column);
|
||||
$valB = $b->getColumn($column);
|
||||
$sort = $this->sortVal($valA, $valB);
|
||||
|
||||
if (isset($sort)) {
|
||||
return $sort;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
private function sortVal($valA, $valB)
|
||||
{
|
||||
if ((!isset($valA) || $valA === false) && (!isset($valB) || $valB === false)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!isset($valA) || $valA === false) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!isset($valB) || $valB === false) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ($valA === $valB) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($valA >= 0 && $valB < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ($valA < 0 && $valB < 0) {
|
||||
return $valA < $valB ? -1 : 1;
|
||||
}
|
||||
|
||||
if ($valA != $valB) {
|
||||
return $valA < $valB ? 1 : -1;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
288
msd2/tracking/piwik/plugins/Insights/InsightReport.php
Normal file
288
msd2/tracking/piwik/plugins/Insights/InsightReport.php
Normal file
@ -0,0 +1,288 @@
|
||||
<?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\Insights;
|
||||
|
||||
use Piwik\DataTable;
|
||||
use Piwik\Piwik;
|
||||
|
||||
/**
|
||||
* Insight report generator
|
||||
*/
|
||||
class InsightReport
|
||||
{
|
||||
const ORDER_BY_RELATIVE = 'relative';
|
||||
const ORDER_BY_ABSOLUTE = 'absolute';
|
||||
const ORDER_BY_IMPORTANCE = 'importance';
|
||||
|
||||
/**
|
||||
* @param array $reportMetadata
|
||||
* @param string $period
|
||||
* @param string $date
|
||||
* @param string $lastDate
|
||||
* @param string $metric
|
||||
* @param DataTable $currentReport
|
||||
* @param DataTable $lastReport
|
||||
* @param int $totalValue
|
||||
* @param int $lastTotalValue
|
||||
* @param string $orderBy
|
||||
* @param int $limitIncreaser
|
||||
* @param int $limitDecreaser
|
||||
* @return DataTable
|
||||
*/
|
||||
public function generateMoverAndShaker($reportMetadata, $period, $date, $lastDate, $metric, $currentReport, $lastReport, $totalValue, $lastTotalValue, $orderBy, $limitIncreaser, $limitDecreaser)
|
||||
{
|
||||
$totalEvolution = $this->getTotalEvolution($totalValue, $lastTotalValue);
|
||||
|
||||
$minMoversPercent = 1;
|
||||
|
||||
if ($totalEvolution >= 100) {
|
||||
// eg change from 50 to 150 = 200%
|
||||
$factor = (int) ceil($totalEvolution / 500);
|
||||
$minGrowthPercentPositive = $totalEvolution + ($factor * 40); // min +240%
|
||||
$minGrowthPercentNegative = -70; // min -70%
|
||||
$minDisappearedPercent = 8; // min 12
|
||||
$minNewPercent = min(($totalEvolution / 100) * 3, 10); // min 6% = min 10 of total visits up to max 10%
|
||||
|
||||
} elseif ($totalEvolution >= 0) {
|
||||
// eg change from 50 to 75 = 50%
|
||||
$minGrowthPercentPositive = $totalEvolution + 20; // min 70%
|
||||
$minGrowthPercentNegative = -1 * $minGrowthPercentPositive; // min -70%
|
||||
$minDisappearedPercent = 7;
|
||||
$minNewPercent = 5;
|
||||
} else {
|
||||
// eg change from 50 to 25 = -50%
|
||||
$minGrowthPercentNegative = $totalEvolution - 20; // min -70%
|
||||
$minGrowthPercentPositive = abs($minGrowthPercentNegative); // min 70%
|
||||
$minDisappearedPercent = 7;
|
||||
$minNewPercent = 5;
|
||||
}
|
||||
|
||||
if ($totalValue < 200 && $totalValue != 0) {
|
||||
// force at least a change of 2 visits
|
||||
$minMoversPercent = (int) ceil(2 / ($totalValue / 100));
|
||||
$minNewPercent = max($minNewPercent, $minMoversPercent);
|
||||
$minDisappearedPercent = max($minDisappearedPercent, $minMoversPercent);
|
||||
}
|
||||
|
||||
$dataTable = $this->generateInsight($reportMetadata, $period, $date, $lastDate, $metric, $currentReport, $lastReport, $totalValue, $minMoversPercent, $minNewPercent, $minDisappearedPercent, $minGrowthPercentPositive, $minGrowthPercentNegative, $orderBy, $limitIncreaser, $limitDecreaser);
|
||||
|
||||
$this->addMoversAndShakersMetadata($dataTable, $totalValue, $lastTotalValue);
|
||||
|
||||
return $dataTable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extends an already generated insight report by adding a column "isMoverAndShaker" whether a row is also a
|
||||
* "Mover and Shaker" or not.
|
||||
*
|
||||
* Avoids the need to fetch all reports again when we already have the currentReport/lastReport
|
||||
*/
|
||||
public function markMoversAndShakers(DataTable $insight, $currentReport, $lastReport, $totalValue, $lastTotalValue)
|
||||
{
|
||||
if (!$insight->getRowsCount()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$limitIncreaser = max($insight->getRowsCount(), 3);
|
||||
$limitDecreaser = max($insight->getRowsCount(), 3);
|
||||
|
||||
$lastDate = $insight->getMetadata('lastDate');
|
||||
$date = $insight->getMetadata('date');
|
||||
$period = $insight->getMetadata('period');
|
||||
$metric = $insight->getMetadata('metric');
|
||||
$orderBy = $insight->getMetadata('orderBy');
|
||||
$reportMetadata = $insight->getMetadata('report');
|
||||
|
||||
$shakers = $this->generateMoverAndShaker($reportMetadata, $period, $date, $lastDate, $metric, $currentReport, $lastReport, $totalValue, $lastTotalValue, $orderBy, $limitIncreaser, $limitDecreaser);
|
||||
|
||||
foreach ($insight->getRows() as $row) {
|
||||
$label = $row->getColumn('label');
|
||||
|
||||
if ($shakers->getRowFromLabel($label)) {
|
||||
$row->setColumn('isMoverAndShaker', true);
|
||||
} else {
|
||||
$row->setColumn('isMoverAndShaker', false);
|
||||
}
|
||||
}
|
||||
|
||||
$this->addMoversAndShakersMetadata($insight, $totalValue, $lastTotalValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $reportMetadata
|
||||
* @param string $period
|
||||
* @param string $date
|
||||
* @param string $lastDate
|
||||
* @param string $metric
|
||||
* @param DataTable $currentReport
|
||||
* @param DataTable $lastReport
|
||||
* @param int $totalValue
|
||||
* @param int $minMoversPercent Exclude rows who moved and the difference is not at least min percent
|
||||
* visits of totalVisits. -1 excludes movers.
|
||||
* @param int $minNewPercent Exclude rows who are new and the difference is not at least min percent
|
||||
* visits of totalVisits. -1 excludes all new.
|
||||
* @param int $minDisappearedPercent Exclude rows who are disappeared and the difference is not at least min
|
||||
* percent visits of totalVisits. -1 excludes all disappeared.
|
||||
* @param int $minGrowthPercentPositive The actual growth of a row must be at least percent compared to the
|
||||
* previous value (not total value)
|
||||
* @param int $minGrowthPercentNegative The actual growth of a row must be lower percent compared to the
|
||||
* previous value (not total value)
|
||||
* @param string $orderBy Order by absolute, relative, importance
|
||||
* @param int $limitIncreaser
|
||||
* @param int $limitDecreaser
|
||||
*
|
||||
* @return DataTable
|
||||
*/
|
||||
public function generateInsight($reportMetadata, $period, $date, $lastDate, $metric, $currentReport, $lastReport, $totalValue, $minMoversPercent, $minNewPercent, $minDisappearedPercent, $minGrowthPercentPositive, $minGrowthPercentNegative, $orderBy, $limitIncreaser, $limitDecreaser)
|
||||
{
|
||||
$minChangeMovers = $this->getMinVisits($totalValue, $minMoversPercent);
|
||||
$minIncreaseNew = $this->getMinVisits($totalValue, $minNewPercent);
|
||||
$minDecreaseDisappeared = $this->getMinVisits($totalValue, $minDisappearedPercent);
|
||||
|
||||
$dataTable = new DataTable();
|
||||
$dataTable->filter(
|
||||
'Piwik\Plugins\Insights\DataTable\Filter\Insight',
|
||||
array(
|
||||
$currentReport,
|
||||
$lastReport,
|
||||
$metric,
|
||||
$considerMovers = (-1 !== $minMoversPercent),
|
||||
$considerNew = (-1 !== $minNewPercent),
|
||||
$considerDisappeared = (-1 !== $minDisappearedPercent)
|
||||
)
|
||||
);
|
||||
|
||||
$dataTable->filter(
|
||||
'Piwik\Plugins\Insights\DataTable\Filter\MinGrowth',
|
||||
array(
|
||||
'growth_percent_numeric',
|
||||
$minGrowthPercentPositive,
|
||||
$minGrowthPercentNegative
|
||||
)
|
||||
);
|
||||
|
||||
if ($minIncreaseNew) {
|
||||
$dataTable->filter(
|
||||
'Piwik\Plugins\Insights\DataTable\Filter\ExcludeLowValue',
|
||||
array(
|
||||
'difference',
|
||||
$minIncreaseNew,
|
||||
'isNew'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if ($minChangeMovers) {
|
||||
$dataTable->filter(
|
||||
'Piwik\Plugins\Insights\DataTable\Filter\ExcludeLowValue',
|
||||
array(
|
||||
'difference',
|
||||
$minChangeMovers,
|
||||
'isMover'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
if ($minDecreaseDisappeared) {
|
||||
$dataTable->filter(
|
||||
'Piwik\Plugins\Insights\DataTable\Filter\ExcludeLowValue',
|
||||
array(
|
||||
'difference',
|
||||
$minDecreaseDisappeared,
|
||||
'isDisappeared'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
$dataTable->filter(
|
||||
'Piwik\Plugins\Insights\DataTable\Filter\OrderBy',
|
||||
array(
|
||||
$this->getOrderByColumn($orderBy),
|
||||
$orderBy === self::ORDER_BY_RELATIVE ? $this->getOrderByColumn(self::ORDER_BY_ABSOLUTE) : $this->getOrderByColumn(self::ORDER_BY_RELATIVE),
|
||||
$metric
|
||||
)
|
||||
);
|
||||
|
||||
$dataTable->filter(
|
||||
'Piwik\Plugins\Insights\DataTable\Filter\Limit',
|
||||
array(
|
||||
'growth_percent_numeric',
|
||||
$limitIncreaser,
|
||||
$limitDecreaser
|
||||
)
|
||||
);
|
||||
|
||||
$metricName = $metric;
|
||||
if (!empty($reportMetadata['metrics'][$metric])) {
|
||||
$metricName = $reportMetadata['metrics'][$metric];
|
||||
}
|
||||
|
||||
$dataTable->setMetadataValues(array(
|
||||
'reportName' => $reportMetadata['name'],
|
||||
'metricName' => $metricName,
|
||||
'date' => $date,
|
||||
'lastDate' => $lastDate,
|
||||
'period' => $period,
|
||||
'report' => $reportMetadata,
|
||||
'totalValue' => $totalValue,
|
||||
'orderBy' => $orderBy,
|
||||
'metric' => $metric,
|
||||
'minChangeMovers' => $minChangeMovers,
|
||||
'minIncreaseNew' => $minIncreaseNew,
|
||||
'minDecreaseDisappeared' => $minDecreaseDisappeared,
|
||||
'minGrowthPercentPositive' => $minGrowthPercentPositive,
|
||||
'minGrowthPercentNegative' => $minGrowthPercentNegative,
|
||||
'minMoversPercent' => $minMoversPercent,
|
||||
'minNewPercent' => $minNewPercent,
|
||||
'minDisappearedPercent' => $minDisappearedPercent
|
||||
));
|
||||
|
||||
return $dataTable;
|
||||
}
|
||||
|
||||
private function getOrderByColumn($orderBy)
|
||||
{
|
||||
if (self::ORDER_BY_RELATIVE == $orderBy) {
|
||||
$orderByColumn = 'growth_percent_numeric';
|
||||
} elseif (self::ORDER_BY_ABSOLUTE == $orderBy) {
|
||||
$orderByColumn = 'difference';
|
||||
} elseif (self::ORDER_BY_IMPORTANCE == $orderBy) {
|
||||
$orderByColumn = 'importance';
|
||||
} else {
|
||||
throw new \Exception('Unsupported orderBy');
|
||||
}
|
||||
|
||||
return $orderByColumn;
|
||||
}
|
||||
|
||||
private function getMinVisits($totalValue, $percent)
|
||||
{
|
||||
if ($percent <= 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
$minVisits = ceil(($totalValue / 100) * $percent);
|
||||
|
||||
return (int) $minVisits;
|
||||
}
|
||||
|
||||
private function addMoversAndShakersMetadata(DataTable $dataTable, $totalValue, $lastTotalValue)
|
||||
{
|
||||
$totalEvolution = $this->getTotalEvolution($totalValue, $lastTotalValue);
|
||||
|
||||
$dataTable->setMetadata('lastTotalValue', $lastTotalValue);
|
||||
$dataTable->setMetadata('evolutionTotal', $totalEvolution);
|
||||
$dataTable->setMetadata('evolutionDifference', $totalValue - $lastTotalValue);
|
||||
}
|
||||
|
||||
private function getTotalEvolution($totalValue, $lastTotalValue)
|
||||
{
|
||||
return Piwik::getPercentageSafe($totalValue - $lastTotalValue, $lastTotalValue, 1);
|
||||
}
|
||||
}
|
36
msd2/tracking/piwik/plugins/Insights/Insights.php
Normal file
36
msd2/tracking/piwik/plugins/Insights/Insights.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?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\Insights;
|
||||
|
||||
/**
|
||||
*/
|
||||
class Insights extends \Piwik\Plugin
|
||||
{
|
||||
/**
|
||||
* @see Piwik\Plugin::registerEvents
|
||||
*/
|
||||
public function registerEvents()
|
||||
{
|
||||
return array(
|
||||
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
|
||||
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles'
|
||||
);
|
||||
}
|
||||
|
||||
public function getStylesheetFiles(&$stylesheets)
|
||||
{
|
||||
$stylesheets[] = "plugins/Insights/stylesheets/insightVisualization.less";
|
||||
}
|
||||
|
||||
public function getJsFiles(&$jsFiles)
|
||||
{
|
||||
$jsFiles[] = "plugins/Insights/javascripts/insightsDataTable.js";
|
||||
}
|
||||
|
||||
}
|
126
msd2/tracking/piwik/plugins/Insights/Model.php
Normal file
126
msd2/tracking/piwik/plugins/Insights/Model.php
Normal file
@ -0,0 +1,126 @@
|
||||
<?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\Insights;
|
||||
|
||||
use Piwik\API\Request as ApiRequest;
|
||||
use Piwik\DataTable;
|
||||
use Piwik\Period\Range;
|
||||
use Piwik\Plugins\API\ProcessedReport;
|
||||
use Piwik\Plugins\VisitsSummary\API as VisitsSummaryAPI;
|
||||
|
||||
/**
|
||||
* API for plugin Insights
|
||||
*
|
||||
* @method static \Piwik\Plugins\Insights\API getInstance()
|
||||
*/
|
||||
class Model
|
||||
{
|
||||
/**
|
||||
* @var ProcessedReport
|
||||
*/
|
||||
private $processedReport;
|
||||
|
||||
public function __construct(ProcessedReport $processedReport)
|
||||
{
|
||||
$this->processedReport = $processedReport;
|
||||
}
|
||||
|
||||
public function requestReport($idSite, $period, $date, $reportUniqueId, $metric, $segment)
|
||||
{
|
||||
$report = $this->getReportByUniqueId($idSite, $reportUniqueId);
|
||||
|
||||
$params = array(
|
||||
'format' => 'original',
|
||||
'idSite' => $idSite,
|
||||
'period' => $period,
|
||||
'date' => $date,
|
||||
'filter_limit' => 1000,
|
||||
'showColumns' => $metric,
|
||||
'totals' => 1,
|
||||
);
|
||||
|
||||
if (!empty($segment)) {
|
||||
$params['segment'] = $segment;
|
||||
}
|
||||
|
||||
if (!empty($report['parameters']) && is_array($report['parameters'])) {
|
||||
$params = array_merge($params, $report['parameters']);
|
||||
}
|
||||
|
||||
$table = ApiRequest::processRequest($report['module'] . '.' . $report['action'], $params, $default = []);
|
||||
return $table;
|
||||
}
|
||||
|
||||
public function getLastDate($date, $period, $comparedToXPeriods)
|
||||
{
|
||||
$pastDate = Range::getDateXPeriodsAgo(abs($comparedToXPeriods), $date, $period);
|
||||
|
||||
if (empty($pastDate[0])) {
|
||||
throw new \Exception('Not possible to compare this date/period combination');
|
||||
}
|
||||
|
||||
return $pastDate[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns either the $totalValue (eg 5500 visits) or the total value of the report
|
||||
* (eg 2500 visits of 5500 total visits as for instance only 2500 visits came to the website using a search engine).
|
||||
*
|
||||
* If the metric total (2500) is much lower than $totalValue, the metric total will be returned, otherwise the
|
||||
* $totalValue
|
||||
*/
|
||||
public function getRelevantTotalValue(DataTable $currentReport, $metric, $totalValue)
|
||||
{
|
||||
$totalMetric = $this->getMetricTotalValue($currentReport, $metric);
|
||||
|
||||
if ($totalMetric > $totalValue) {
|
||||
return $totalMetric;
|
||||
}
|
||||
|
||||
if (($totalMetric * 2) < $totalValue) {
|
||||
return $totalMetric;
|
||||
}
|
||||
|
||||
return $totalValue;
|
||||
}
|
||||
|
||||
public function getTotalValue($idSite, $period, $date, $metric, $segment)
|
||||
{
|
||||
$visits = VisitsSummaryAPI::getInstance()->get($idSite, $period, $date, $segment);
|
||||
$firstRow = $visits->getFirstRow();
|
||||
|
||||
if (empty($firstRow)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
$totalValue = $firstRow->getColumn($metric);
|
||||
|
||||
return (int) $totalValue;
|
||||
}
|
||||
|
||||
public function getMetricTotalValue(DataTable $currentReport, $metric)
|
||||
{
|
||||
$totals = $currentReport->getMetadata('totals');
|
||||
|
||||
if (!empty($totals[$metric])) {
|
||||
$totalValue = (int) $totals[$metric];
|
||||
} else {
|
||||
$totalValue = 0;
|
||||
}
|
||||
|
||||
return $totalValue;
|
||||
}
|
||||
|
||||
public function getReportByUniqueId($idSite, $reportUniqueId)
|
||||
{
|
||||
$report = $this->processedReport->getReportMetadataByUniqueId($idSite, $reportUniqueId);
|
||||
|
||||
return $report;
|
||||
}
|
||||
}
|
131
msd2/tracking/piwik/plugins/Insights/Visualizations/Insight.php
Normal file
131
msd2/tracking/piwik/plugins/Insights/Visualizations/Insight.php
Normal file
@ -0,0 +1,131 @@
|
||||
<?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\Insights\Visualizations;
|
||||
|
||||
use Piwik\Common;
|
||||
use Piwik\Plugin\ViewDataTable;
|
||||
use Piwik\Plugin\Visualization;
|
||||
use Piwik\Plugins\Insights\API;
|
||||
|
||||
/**
|
||||
* InsightsVisualization Visualization.
|
||||
*
|
||||
* @property Insight\RequestConfig $requestConfig
|
||||
*/
|
||||
class Insight extends Visualization
|
||||
{
|
||||
const ID = 'insightsVisualization';
|
||||
const TEMPLATE_FILE = '@Insights/insightVisualization.twig';
|
||||
const FOOTER_ICON_TITLE = 'Insights';
|
||||
const FOOTER_ICON = 'icon-insights';
|
||||
|
||||
public function beforeLoadDataTable()
|
||||
{
|
||||
if (!self::canDisplayViewDataTable($this)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!$this->requestConfig->filter_limit) {
|
||||
$this->requestConfig->filter_limit = 10;
|
||||
}
|
||||
|
||||
$report = $this->requestConfig->apiMethodToRequestDataTable;
|
||||
$report = str_replace('.', '_', $report);
|
||||
|
||||
if (!empty($this->requestConfig->request_parameters_to_modify['reportUniqueId'])) {
|
||||
$report = $this->requestConfig->request_parameters_to_modify['reportUniqueId'];
|
||||
}
|
||||
|
||||
$this->requestConfig->apiMethodToRequestDataTable = 'Insights.getInsights';
|
||||
|
||||
$this->requestConfig->request_parameters_to_modify = array(
|
||||
'reportUniqueId' => $report,
|
||||
'minImpactPercent' => $this->requestConfig->min_impact_percent,
|
||||
'minGrowthPercent' => $this->requestConfig->min_growth_percent,
|
||||
'comparedToXPeriods' => $this->requestConfig->compared_to_x_periods_ago,
|
||||
'orderBy' => $this->requestConfig->order_by,
|
||||
'filterBy' => $this->requestConfig->filter_by,
|
||||
'pivotBy' => false,
|
||||
'pivotByColumn' => false,
|
||||
'limitIncreaser' => $this->getLimitIncrease(),
|
||||
'limitDecreaser' => $this->getLimitDecrease(),
|
||||
);
|
||||
}
|
||||
|
||||
private function getLimitIncrease()
|
||||
{
|
||||
$filterLimit = $this->requestConfig->filter_limit;
|
||||
$limitIncrease = 0;
|
||||
|
||||
if ($this->requestConfig->limit_increaser && !$this->requestConfig->limit_decreaser) {
|
||||
$limitIncrease = $filterLimit;
|
||||
} elseif ($this->requestConfig->limit_increaser && $this->requestConfig->limit_decreaser) {
|
||||
$limitIncrease = round($filterLimit / 2);
|
||||
}
|
||||
|
||||
return $limitIncrease;
|
||||
}
|
||||
|
||||
private function getLimitDecrease()
|
||||
{
|
||||
$filterLimit = $this->requestConfig->filter_limit;
|
||||
$limitDecrease = $filterLimit - $this->getLimitIncrease();
|
||||
|
||||
return abs($limitDecrease);
|
||||
}
|
||||
|
||||
public static function getDefaultRequestConfig()
|
||||
{
|
||||
return new Insight\RequestConfig();
|
||||
}
|
||||
|
||||
public function isThereDataToDisplay()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function beforeRender()
|
||||
{
|
||||
$this->config->datatable_js_type = 'InsightsDataTable';
|
||||
$this->config->show_limit_control = true;
|
||||
$this->config->show_pivot_by_subtable = false;
|
||||
$this->config->show_pagination_control = false;
|
||||
$this->config->show_offset_information = false;
|
||||
$this->config->show_search = false;
|
||||
$this->config->show_export_as_rss_feed = false;
|
||||
|
||||
if (!self::canDisplayViewDataTable($this)) {
|
||||
$this->assignTemplateVar('cannotDisplayReport', true);
|
||||
return;
|
||||
}
|
||||
|
||||
$period = Common::getRequestVar('period', null, 'string');
|
||||
$this->assignTemplateVar('period', $period);
|
||||
}
|
||||
|
||||
public static function canDisplayViewDataTable(ViewDataTable $view)
|
||||
{
|
||||
$period = Common::getRequestVar('period', null, 'string');
|
||||
$date = Common::getRequestVar('date', null, 'string');
|
||||
|
||||
$canGenerateInsights = API::getInstance()->canGenerateInsights($date, $period);
|
||||
|
||||
if (!$canGenerateInsights) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($view->requestConfig->apiMethodToRequestDataTable
|
||||
&& 0 === strpos($view->requestConfig->apiMethodToRequestDataTable, 'DBStats')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return parent::canDisplayViewDataTable($view);
|
||||
}
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
<?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\Insights\Visualizations\Insight;
|
||||
|
||||
use Piwik\Plugins\Insights\InsightReport;
|
||||
use Piwik\Plugins\Insights\Visualizations\Insight;
|
||||
use Piwik\ViewDataTable\RequestConfig as VisualizationRequestConfig;
|
||||
|
||||
class RequestConfig extends VisualizationRequestConfig
|
||||
{
|
||||
public $min_impact_percent = '0.1';
|
||||
public $min_growth_percent = 1;
|
||||
public $compared_to_x_periods_ago = 1;
|
||||
public $order_by = InsightReport::ORDER_BY_ABSOLUTE;
|
||||
public $filter_by = '';
|
||||
public $limit_increaser = '5';
|
||||
public $limit_decreaser = '5';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->disable_generic_filters = true;
|
||||
$this->pivotBy = false;
|
||||
$this->pivotByColumn = false;
|
||||
|
||||
$properties = array(
|
||||
'min_growth_percent',
|
||||
'order_by',
|
||||
'compared_to_x_periods_ago',
|
||||
'filter_by',
|
||||
'limit_increaser',
|
||||
'limit_decreaser',
|
||||
'filter_limit'
|
||||
);
|
||||
|
||||
$this->addPropertiesThatShouldBeAvailableClientSide($properties);
|
||||
$this->addPropertiesThatCanBeOverwrittenByQueryParams($properties);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
<?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\Insights\Widgets;
|
||||
|
||||
use Piwik\Widget\WidgetConfig;
|
||||
|
||||
class GetInsightsOverview extends \Piwik\Widget\Widget
|
||||
{
|
||||
public static function configure(WidgetConfig $config)
|
||||
{
|
||||
$config->setCategoryId('Insights_WidgetCategory');
|
||||
$config->setName('Insights_OverviewWidgetTitle');
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
<?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\Insights\Widgets;
|
||||
|
||||
use Piwik\Widget\WidgetConfig;
|
||||
|
||||
class GetOverallMoversAndShakers extends \Piwik\Widget\Widget
|
||||
{
|
||||
public static function configure(WidgetConfig $config)
|
||||
{
|
||||
$config->setCategoryId('Insights_WidgetCategory');
|
||||
$config->setName('Insights_MoversAndShakersWidgetTitle');
|
||||
}
|
||||
}
|
BIN
msd2/tracking/piwik/plugins/Insights/images/idea.png
Normal file
BIN
msd2/tracking/piwik/plugins/Insights/images/idea.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 364 B |
@ -0,0 +1,156 @@
|
||||
/*!
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*/
|
||||
|
||||
(function ($, require) {
|
||||
|
||||
var exports = require('piwik/UI'),
|
||||
DataTable = exports.DataTable,
|
||||
dataTablePrototype = DataTable.prototype;
|
||||
|
||||
var UIControl = exports.UIControl;
|
||||
|
||||
function getValueFromEvent(event)
|
||||
{
|
||||
return event.target.value ? event.target.value : $(event.target).attr('value');
|
||||
}
|
||||
|
||||
/**
|
||||
* UI control that handles extra functionality for Actions datatables.
|
||||
*
|
||||
* @constructor
|
||||
*/
|
||||
exports.InsightsDataTable = function (element) {
|
||||
this.parentAttributeParent = '';
|
||||
this.parentId = '';
|
||||
this.disabledRowDom = {}; // to handle double click on '+' row
|
||||
|
||||
if ($(element).attr('data-table-onlyinsightsinit')) {
|
||||
// overview-widget
|
||||
UIControl.call(this, element);
|
||||
this._init($(element));
|
||||
this.workingDivId = this._createDivId();
|
||||
$(element).attr('id', this.workingDivId);
|
||||
|
||||
} else {
|
||||
DataTable.call(this, element);
|
||||
}
|
||||
};
|
||||
|
||||
$.extend(exports.InsightsDataTable.prototype, dataTablePrototype, {
|
||||
|
||||
handleRowActions: function () {},
|
||||
|
||||
_init: function (domElem) {
|
||||
this.initShowIncreaseOrDecrease(domElem);
|
||||
this.initOrderBy(domElem);
|
||||
this.initComparedToXPeriodsAgo(domElem);
|
||||
this.initFilterBy(domElem);
|
||||
this.setFixWidthToMakeEllipsisWork(domElem);
|
||||
|
||||
$(domElem).find('select').material_select();
|
||||
},
|
||||
|
||||
setFixWidthToMakeEllipsisWork: function (domElem) {
|
||||
var width = domElem.width();
|
||||
if (width) {
|
||||
$('td.label', domElem).width(parseInt(width * 0.50, 10));
|
||||
}
|
||||
|
||||
var showScrollbarIfMoreThanThisPxOverlap = 32;
|
||||
this.overflowContentIfNeeded(domElem, showScrollbarIfMoreThanThisPxOverlap);
|
||||
|
||||
var self = this;
|
||||
|
||||
if (!this.windowResizeTableAttached) {
|
||||
this.windowResizeTableAttached = true;
|
||||
|
||||
// on resize of the window we re-calculate everything.
|
||||
var timeout = null;
|
||||
var resizeDataTable = function () {
|
||||
|
||||
if (timeout) {
|
||||
clearTimeout(timeout);
|
||||
}
|
||||
|
||||
timeout = setTimeout(function () {
|
||||
var isInDom = domElem && domElem[0] && document && document.body && document.body.contains(domElem[0]);
|
||||
if (isInDom) {
|
||||
// as domElem might have been removed by now we check whether domElem actually still is in dom
|
||||
// and do this expensive operation only if needed.
|
||||
$('td.label', domElem).width('');
|
||||
self.setFixWidthToMakeEllipsisWork(domElem);
|
||||
} else {
|
||||
$(window).off('resize', resizeDataTable);
|
||||
}
|
||||
|
||||
timeout = null;
|
||||
}, Math.floor((Math.random() * 80) + 220));
|
||||
// we randomize it just a little to not process all dataTables at similar time but to have a little
|
||||
// delay in between for smoother resizing. we want to do it between 300 and 400ms
|
||||
}
|
||||
|
||||
$(window).on('resize', resizeDataTable);
|
||||
}
|
||||
},
|
||||
|
||||
_changeParameter: function (params) {
|
||||
|
||||
var widgetParams = {};
|
||||
|
||||
for (var index in params) {
|
||||
if (params.hasOwnProperty(index)) {
|
||||
this.param[index] = params[index];
|
||||
widgetParams[index] = params[index];
|
||||
}
|
||||
}
|
||||
|
||||
this.notifyWidgetParametersChange(this.$element, widgetParams);
|
||||
},
|
||||
|
||||
_changeParameterAndReload: function (params) {
|
||||
this._changeParameter(params);
|
||||
this.reloadAjaxDataTable(true);
|
||||
},
|
||||
|
||||
initShowIncreaseOrDecrease: function (domElem) {
|
||||
var self = this;
|
||||
$('[name=showIncreaseOrDecrease]', domElem).bind('change', function (event) {
|
||||
var value = getValueFromEvent(event);
|
||||
|
||||
self._changeParameterAndReload({
|
||||
limit_increaser: (value == 'both' || value == 'increase') ? '5' : '0',
|
||||
limit_decreaser: (value == 'both' || value == 'decrease') ? '5' : '0'
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
initOrderBy: function (domElem) {
|
||||
var self = this;
|
||||
$('[name=orderBy]', domElem).bind('change', function (event) {
|
||||
self._changeParameterAndReload({order_by: getValueFromEvent(event)});
|
||||
});
|
||||
$('th[name=orderBy]', domElem).bind('click', function (event) {
|
||||
self._changeParameterAndReload({order_by: getValueFromEvent(event)});
|
||||
});
|
||||
},
|
||||
|
||||
initComparedToXPeriodsAgo: function (domElem) {
|
||||
var self = this;
|
||||
$('[name=comparedToXPeriodsAgo]', domElem).bind('change', function (event) {
|
||||
self._changeParameterAndReload({compared_to_x_periods_ago: getValueFromEvent(event)});
|
||||
});
|
||||
},
|
||||
|
||||
initFilterBy: function (domElem) {
|
||||
var self = this;
|
||||
$('[name=filterBy]', domElem).bind('change', function (event) {
|
||||
self._changeParameterAndReload({filter_by: getValueFromEvent(event)});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery, require);
|
15
msd2/tracking/piwik/plugins/Insights/lang/bg.json
Normal file
15
msd2/tracking/piwik/plugins/Insights/lang/bg.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"Insights": {
|
||||
"ControlComparedToDescription": "Ръст спрямо",
|
||||
"DayComparedToPreviousDay": "предишен ден",
|
||||
"DayComparedToPreviousWeek": "същия ден през предходната седмица",
|
||||
"DayComparedToPreviousYear": "същия ден през предходната година",
|
||||
"Filter": "Филтър",
|
||||
"FilterOnlyNew": "Само нови",
|
||||
"MonthComparedToPreviousMonth": "предишен месец",
|
||||
"MonthComparedToPreviousYear": "същия месец на предходната година",
|
||||
"TitleRowDisappearedDetails": "'%1$s' намалял с %2$s и изчезна в %3$s сравнено с %4$s.",
|
||||
"WeekComparedToPreviousWeek": "предишна седмица",
|
||||
"YearComparedToPreviousYear": "предишна година"
|
||||
}
|
||||
}
|
5
msd2/tracking/piwik/plugins/Insights/lang/ca.json
Normal file
5
msd2/tracking/piwik/plugins/Insights/lang/ca.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"Insights": {
|
||||
"MoversAndShakersWidgetTitle": "Els més actius"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/cs.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/cs.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Poskytuje vhledy o vašem provozu. Vhledy jsou dostupné buď jako widgety na nástěnce, nebo jako nová ikona v hlášeních, která zobrazuje nejdůležitější trendy v datech.",
|
||||
"ControlComparedToDescription": "Růst ve srovnání s",
|
||||
"ControlFilterByDescription": "Zobrazit všechny, pouze hybatele, pouze nové nebo ztracené",
|
||||
"DatePeriodCombinationNotSupported": "Pro tuto kombinaci období a data není možné vytvořit vhledy.",
|
||||
"DayComparedToPreviousDay": "Předchozí den",
|
||||
"DayComparedToPreviousWeek": "Stejný den v minulém týdnu",
|
||||
"DayComparedToPreviousYear": "Stejný den v předchozím roce",
|
||||
"Filter": "Filtr",
|
||||
"FilterIncreaserAndDecreaser": "Zvyšovač a snižovač",
|
||||
"FilterOnlyDecreaser": "Pouze snižovač",
|
||||
"FilterOnlyDisappeared": "Pouze ztracení",
|
||||
"FilterOnlyIncreaser": "Pouze zvyšovač",
|
||||
"FilterOnlyMovers": "Pouze hybatelé",
|
||||
"FilterOnlyNew": "Pouze noví",
|
||||
"IgnoredChanges": "Změny týkající se méně než %s návštěv byly ignorovány.",
|
||||
"MonthComparedToPreviousMonth": "předchozí měsíc",
|
||||
"MonthComparedToPreviousYear": "stejný měsíc v předchozím roce",
|
||||
"MoversAndShakersWidgetTitle": "Hybatelé a třesatelé",
|
||||
"NoResultMatchesCriteria": "Kritériím neodpovídají žádné řádky",
|
||||
"OverviewWidgetTitle": "Přehled vhledů",
|
||||
"TitleConsideredInsightsChanges": "Řádky zvýšené nebo snížené o aspoň %1$s návštěv (%2$s%% z %3$s celkových návštěv).",
|
||||
"TitleConsideredInsightsGrowth": "Následující řádky mají růst aspoň %1$s%% ve srovnání s %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Hybatelé byly zváženi pouze pokud vzrostly více než %1$s%% návštěv nebo se zmenšili o méně než %2$s%% návštěv, nové záznamy pokud se zvýšily o více než %3$s%% návštěv (%4$s) a ztracené řádky pouze pokud se zmenšili o méně než %5$s%% návštěv (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s se změnili z %2$s na %3$s ve srovnání s %4$s. Na základě toho je pro každý řádek očekáván vývoj %5$s%%.",
|
||||
"TitleRowChangeDetails": "'%1$s' se změnili z %2$s (%3$s) na %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' se snížili o %2$s a ztratili se v %3$s ve srovnání s %4$s.",
|
||||
"TitleRowMoverAndShaker": "Tento řádek měl větší dopad než průměr.",
|
||||
"TitleRowNewDetails": "'%1$s' se zvýšili o %2$s a jsou noví ve srovnání s %3$s.",
|
||||
"WeekComparedToPreviousWeek": "minulý týden",
|
||||
"WidgetCategory": "Vhledy",
|
||||
"YearComparedToPreviousYear": "předchozí rok"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/da.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/da.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Giver indsigt i din trafik. Indsigt findes som kontrolpanel widgets og som nyt ikon i rapporter for at lade dig se de vigtigste tendenser i dine data.",
|
||||
"ControlComparedToDescription": "Vækst i forhold til",
|
||||
"ControlFilterByDescription": "Vis alle, kun ændringer, kun nye eller kun forsvundne",
|
||||
"DatePeriodCombinationNotSupported": "Det er ikke muligt at generere rapporter til disse datoer og kombination af perioder.",
|
||||
"DayComparedToPreviousDay": "Foregående dag",
|
||||
"DayComparedToPreviousWeek": "Samme dag i sidste uge",
|
||||
"DayComparedToPreviousYear": "Samme dag sidste år",
|
||||
"Filter": "Filter",
|
||||
"FilterIncreaserAndDecreaser": "Forøg og mindsk",
|
||||
"FilterOnlyDecreaser": "Forminsk kun",
|
||||
"FilterOnlyDisappeared": "Kun forsvundne",
|
||||
"FilterOnlyIncreaser": "Kun øgede",
|
||||
"FilterOnlyMovers": "Kun flyttede",
|
||||
"FilterOnlyNew": "Kun nye",
|
||||
"IgnoredChanges": "Ændringer, der påvirker mindre end %s besøgende bliver ignoreret",
|
||||
"MonthComparedToPreviousMonth": "forrige måned",
|
||||
"MonthComparedToPreviousYear": "samme måned forrige år",
|
||||
"MoversAndShakersWidgetTitle": "Op- og Nedgang",
|
||||
"NoResultMatchesCriteria": "Ingen rækker svarer til kriteriet",
|
||||
"OverviewWidgetTitle": "Indsigtsoversigt",
|
||||
"TitleConsideredInsightsChanges": "Rækkerne steget eller faldet med mindst %1$s besøg (%2$s%% af %3$s samlede antal besøg).",
|
||||
"TitleConsideredInsightsGrowth": "Følgende rækker har en vækst på mindst %1$s%% i forhold til %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Betragtes kun ændringer, hvis de voksede med mere end %1$s%% besøg eller faldt med mindre end %2$s%% besøg, nye poster hvis de er steget med mere end %3$s%% besøg (%4$s), og er forsvundne rækker, hvis de faldt med mindre end %5$s%% besøg (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s ændret fra %2$s til %3$s i forhold til %4$s. Baseret på dette forventes en videreudvikling for hver række på %5$s%%.",
|
||||
"TitleRowChangeDetails": "'%1$s' ændres fra %2$s (%3$s) til %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' faldt med %2$s og er forsvand i %3$s i forhold til %4$s.",
|
||||
"TitleRowMoverAndShaker": "Denne række havde en større effekt end gennemsnittet.",
|
||||
"TitleRowNewDetails": "'%1$s' øget med %2$s og er ny i forhold til %3$s.",
|
||||
"WeekComparedToPreviousWeek": "forrige uge",
|
||||
"WidgetCategory": "Indsigt",
|
||||
"YearComparedToPreviousYear": "forrige år"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/de.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/de.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Stellt Einblicke in ihren Traffic zur Verfügung. Diese \"Einblicke\" sind verfügbar als Dashboard Widgets sowie über ein neues Icon in den Berichten, dass Ihnen die Möglichkeit gibt die wichtigsten Trends ihrer Daten zu sehen.",
|
||||
"ControlComparedToDescription": "Wachstum verglichen mit",
|
||||
"ControlFilterByDescription": "Zeige alle, nur Verschiebungen, nur neue oder nur Ausstiege",
|
||||
"DatePeriodCombinationNotSupported": "Es ist nicht möglich, Ansichten für diese Datums- und Zeitraumskombination zu generieren.",
|
||||
"DayComparedToPreviousDay": "vorheriger Tag",
|
||||
"DayComparedToPreviousWeek": "gleicher Tag in vorheriger Woche",
|
||||
"DayComparedToPreviousYear": "gleicher Tag im vorherigen Jahr",
|
||||
"Filter": "Filter",
|
||||
"FilterIncreaserAndDecreaser": "Steigerungen & Reduktionen",
|
||||
"FilterOnlyDecreaser": "Nur Reduktionen",
|
||||
"FilterOnlyDisappeared": "Nur Ausstiege",
|
||||
"FilterOnlyIncreaser": "Nur Steigerungen",
|
||||
"FilterOnlyMovers": "Nur Verschiebungen",
|
||||
"FilterOnlyNew": "Nur neue",
|
||||
"IgnoredChanges": "Änderungen, die weniger als %s Besuche betreffen, wurden ignoriert.",
|
||||
"MonthComparedToPreviousMonth": "vorheriger Monat",
|
||||
"MonthComparedToPreviousYear": "gleicher Monat im vorherigen Jahr",
|
||||
"MoversAndShakersWidgetTitle": "Verschiebungen und Streuungen",
|
||||
"NoResultMatchesCriteria": "Keine Zeilen entsprechen den Kriterien",
|
||||
"OverviewWidgetTitle": "Insights Übersicht",
|
||||
"TitleConsideredInsightsChanges": "Die Zeilen steigerten sich oder sanken um mindestens %1$s Besuche (%2$s%% von %3$s Total Besuchen).",
|
||||
"TitleConsideredInsightsGrowth": "Die folgenden Zeilen steigerten sich um mindestens %1$s%% verglichen mit %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Berücksichtigte Verschiebungen, nur wenn sie sich um mehr als %1$s%% Besuche steigerten oder sich auf weniger als %2$s%% Besuche reduzierten, neue Einträge nur bei Steigerungen um mehr als %3$s%% Besuche (%4$s), und verlorene Zeilen, wenn Sie sich auf weniger als %5$s%% Besuche (%6$s) reduzierten.",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s hat sich von %2$s auf %3$s geändert verglichen mit %4$s. Darauf basierend ist eine Entwicklung jeder Reihe über %5$s%% zu erwarten.",
|
||||
"TitleRowChangeDetails": "'%1$s' hat sich geändert von %2$s (%3$s) zu %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' ist um %2$s gesunken und verschwand in %3$s verglichen zu %4$s.",
|
||||
"TitleRowMoverAndShaker": "Diese Reihe hatte einen größeren Einfluss als der Durchschnitt.",
|
||||
"TitleRowNewDetails": "'%1$s' ist um %2$s gestiegen und ist neu im Vergleich zu %3$s.",
|
||||
"WeekComparedToPreviousWeek": "vorherige Woche",
|
||||
"WidgetCategory": "Insights",
|
||||
"YearComparedToPreviousYear": "vorheriges Jahr"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/el.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/el.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Παρέχει Προβλέψεις σχετικά με την κυκλοφορία σας. Οι Προβλέψεις διατίθενται ως γραφικά συστατικά στον πίνακα ελέγχου καθώς επίσης και ως νέο εικονίδιο στις αναφορές για να βλέπετε τις σημαντικότερες τάσεις στα δεδομένα σας.",
|
||||
"ControlComparedToDescription": "Ανάπτυξη σε σχέση με",
|
||||
"ControlFilterByDescription": "Εμφάνιση όλων, μόνο μετακινητών, μόνο νέων ή μόνο εξαφανισθέντων",
|
||||
"DatePeriodCombinationNotSupported": "Δεν είναι δυνατή η δημιουργία προβλέψεων για αυτό το συνδυασμό ημερομηνίας και περιόδου.",
|
||||
"DayComparedToPreviousDay": "προηγούμενη ημέρα",
|
||||
"DayComparedToPreviousWeek": "ίδια ημέρα την προηγούμενη εβδομάδα",
|
||||
"DayComparedToPreviousYear": "ίδια ημέρα το προηγούμενο έτος",
|
||||
"Filter": "Φίλτρο",
|
||||
"FilterIncreaserAndDecreaser": "Μειωτές και αυξανόμενοι",
|
||||
"FilterOnlyDecreaser": "Μόνο μειωτές",
|
||||
"FilterOnlyDisappeared": "Μόνο εξαφανισθέντες",
|
||||
"FilterOnlyIncreaser": "Μόνο αυξανόμενοι",
|
||||
"FilterOnlyMovers": "Μόνο μετακινητές",
|
||||
"FilterOnlyNew": "Μόνο νέα",
|
||||
"IgnoredChanges": "Αλλαγές που επηρεάζουν λιγότερες από %s επισκέψεις αγνοούνται.",
|
||||
"MonthComparedToPreviousMonth": "προηγούμενος μήνας",
|
||||
"MonthComparedToPreviousYear": "ίδιος μήνας το προηγούμενο έτος",
|
||||
"MoversAndShakersWidgetTitle": "Μετακινητές και Ανακινητές",
|
||||
"NoResultMatchesCriteria": "Δεν υπάρχουν γραμμές που να ταιριάζουν στα κριτήρια",
|
||||
"OverviewWidgetTitle": "Σύνοψη Προβλέψεων",
|
||||
"TitleConsideredInsightsChanges": "Οι γραμμές που αυξήθηκαν ή μειώθηκαν τουλάχιστον κατά %1$s επισκέψεις (%2$s%% από %3$s συνολικές επισκέψεις).",
|
||||
"TitleConsideredInsightsGrowth": "Οι παρακάτω γραμμές έχουν μια αύξηση τουλάχιστον %1$s%% σε σχέση με %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Να λαμβάνονται υπόψη οι μετακινητές μόνο αν αυξηθούν περισσότερο από %1$s%% επισκέψεις ή μειωθούν λιγότερο από %2$s%% επισκέψεις, νέες εγγραφές μόνο αν αυξηθούν περισσότερο από %3$s%% επισκέψεις (%4$s) και χαμένες γραμμές μόνο αν μειωθούν λιγότερο από %5$s%% επισκέψεις (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s άλλαξε από %2$s σε %3$s σε σχέση με %4$s. Βάσει αυτού αναμένεται μια ανάπτυξη %5$s%% για κάθε γραμμή.",
|
||||
"TitleRowChangeDetails": "'%1$s' άλλαξε από %2$s (%3$s) σε %4$s (%5$s) %6$s",
|
||||
"TitleRowDisappearedDetails": "'%1$s' μειώθηκε κατά %2$s και χάθηκε σε %3$s σε σχέση με %4$s.",
|
||||
"TitleRowMoverAndShaker": "Η γραμμή αυτή είχε υψηλότερη επιρροή από το μέσο όρο.",
|
||||
"TitleRowNewDetails": "'%1$s' αυξήθηκε κατά %2$s και είναι νέο σε σχέση με %3$s.",
|
||||
"WeekComparedToPreviousWeek": "προηγούμενη εβδομάδα",
|
||||
"WidgetCategory": "Προβλέψεις",
|
||||
"YearComparedToPreviousYear": "προηγούμενο έτος"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/en.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/en.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Provides Insights about your traffic. Insights are available as dashboard widgets as well as a new icon in reports to let you see most important trends in your data.",
|
||||
"ControlComparedToDescription": "Growth compared to the",
|
||||
"ControlFilterByDescription": "Show all, only movers, only new or only disappeared",
|
||||
"DatePeriodCombinationNotSupported": "It is not possible to generate insights for this date and period combination.",
|
||||
"DayComparedToPreviousDay": "previous day",
|
||||
"DayComparedToPreviousWeek": "same day in the previous week",
|
||||
"DayComparedToPreviousYear": "same day in the previous year",
|
||||
"Filter": "Filter",
|
||||
"FilterIncreaserAndDecreaser": "Increaser & decreaser",
|
||||
"FilterOnlyDecreaser": "Only decreaser",
|
||||
"FilterOnlyDisappeared": "Only disappeared",
|
||||
"FilterOnlyIncreaser": "Only increaser",
|
||||
"FilterOnlyMovers": "Only movers",
|
||||
"FilterOnlyNew": "Only new",
|
||||
"IgnoredChanges": "Changes affecting less than %s visits were ignored.",
|
||||
"MonthComparedToPreviousMonth": "previous month",
|
||||
"MonthComparedToPreviousYear": "same month in the previous year",
|
||||
"MoversAndShakersWidgetTitle": "Movers and Shakers",
|
||||
"NoResultMatchesCriteria": "No rows match the criteria",
|
||||
"OverviewWidgetTitle": "Insights Overview",
|
||||
"TitleConsideredInsightsChanges": "The rows increased or decreased by at least %1$s visits (%2$s%% of %3$s total visits).",
|
||||
"TitleConsideredInsightsGrowth": "The following rows have a growth of at least %1$s%% compared to %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Considered movers only if they grew by more than %1$s%% visits or shrank by less than %2$s%% visits, new entries only if they increased by more than %3$s%% visits (%4$s), and disappeared rows if they shrank by less than %5$s%% visits (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s changed from %2$s to %3$s compared to %4$s. Based on this an evolution of each row of %5$s%% is expected.",
|
||||
"TitleRowChangeDetails": "'%1$s' changed from %2$s (%3$s) to %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' decreased by %2$s and disappeared in %3$s compared to %4$s.",
|
||||
"TitleRowMoverAndShaker": "This row had an higher impact than the average.",
|
||||
"TitleRowNewDetails": "'%1$s' increased by %2$s and is new compared to %3$s.",
|
||||
"WeekComparedToPreviousWeek": "previous week",
|
||||
"WidgetCategory": "Insights",
|
||||
"YearComparedToPreviousYear": "previous year"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/es.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/es.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Proporciona información detallada acerca de su tráfico. Estos detalles están disponibles como módulos del panel de control y como un nuevo icono en los informes que le permite ver las tendencias más importantes en sus datos.",
|
||||
"ControlComparedToDescription": "Crecimiento comparado con",
|
||||
"ControlFilterByDescription": "Muestra todos, solo los más activos, nuevos o solo desaparecidos",
|
||||
"DatePeriodCombinationNotSupported": "No es posible generar estadística para esta combinación de fecha y periodo.",
|
||||
"DayComparedToPreviousDay": "dia anterior",
|
||||
"DayComparedToPreviousWeek": "el mismo día de la semana anterior",
|
||||
"DayComparedToPreviousYear": "el mismo día del año anterior",
|
||||
"Filter": "Filtro",
|
||||
"FilterIncreaserAndDecreaser": "Aumentando & disminuyendo",
|
||||
"FilterOnlyDecreaser": "Solo disminuyendo",
|
||||
"FilterOnlyDisappeared": "Solo desaparecidos",
|
||||
"FilterOnlyIncreaser": "Solo creciente",
|
||||
"FilterOnlyMovers": "Sólo los más activos",
|
||||
"FilterOnlyNew": "Solo nuevos",
|
||||
"IgnoredChanges": "Los cambios que afectan menos de %s visitas fueron ignorados.",
|
||||
"MonthComparedToPreviousMonth": "el mes anterior",
|
||||
"MonthComparedToPreviousYear": "el mismo mes del año anterior",
|
||||
"MoversAndShakersWidgetTitle": "Los más activos",
|
||||
"NoResultMatchesCriteria": "Ninguna fila cumple los criterios",
|
||||
"OverviewWidgetTitle": "Información general de percepciones",
|
||||
"TitleConsideredInsightsChanges": "Las filas que han aumentado o disminuido con al menos %1$s visitas (%2$s%% de %3$s visitas totales).",
|
||||
"TitleConsideredInsightsGrowth": "Las siguientes filas han crecido con al menos %1$s%% comparado con %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Son considerados pioneros solamente si han crecido con más de %1$s%% visitas o disminuido con menos de %2$s%% visitas, nuevos participantes solamente si han crecido con más de %3$s%% visitas (%4$s), y filas desaparecida solamente si han disminuido con menos de %5$s%% visitas (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s ha cambiado de %2$s a %3$s comparado con %4$s. En base a esto se espera un desarrollo de %5$s%% para cada fila.",
|
||||
"TitleRowChangeDetails": "'%1$s' ha cambiado de %2$s (%3$s) a %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' ha disminuido con %2$s y ha desaparecido en %3$s comparado con %4$s.",
|
||||
"TitleRowMoverAndShaker": "Esta fila ha tenido un mayor impacto que el promedio.",
|
||||
"TitleRowNewDetails": "'%1$s' ha aumentado con %2$s y es nueva comparado con %3$s.",
|
||||
"WeekComparedToPreviousWeek": "la semana anterior",
|
||||
"WidgetCategory": "Percepciones",
|
||||
"YearComparedToPreviousYear": "el año anterior"
|
||||
}
|
||||
}
|
10
msd2/tracking/piwik/plugins/Insights/lang/et.json
Normal file
10
msd2/tracking/piwik/plugins/Insights/lang/et.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"Insights": {
|
||||
"DayComparedToPreviousDay": "eelmine päev",
|
||||
"DayComparedToPreviousWeek": "sama päev eelmisel nädalal",
|
||||
"DayComparedToPreviousYear": "sama päev eelmisel aastal",
|
||||
"Filter": "Filter",
|
||||
"MonthComparedToPreviousMonth": "eelmine kuu",
|
||||
"WeekComparedToPreviousWeek": "eelmine nädal"
|
||||
}
|
||||
}
|
16
msd2/tracking/piwik/plugins/Insights/lang/fa.json
Normal file
16
msd2/tracking/piwik/plugins/Insights/lang/fa.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"Insights": {
|
||||
"ControlComparedToDescription": "رشد در مقایسه با",
|
||||
"DayComparedToPreviousDay": "روز گذشته",
|
||||
"DayComparedToPreviousWeek": "همان روز در هفته گذشته",
|
||||
"DayComparedToPreviousYear": "همان روز در سال گذشته",
|
||||
"Filter": "فیلتر",
|
||||
"FilterOnlyNew": "فقط جدید",
|
||||
"MonthComparedToPreviousMonth": "ماه گذشته",
|
||||
"MonthComparedToPreviousYear": "همان ماه در سال گذشته",
|
||||
"NoResultMatchesCriteria": "هیچ رکوردی مطابق معیار نیست",
|
||||
"TitleRowMoverAndShaker": "این رکورد تاثیری بیش از میانگین داشته است.",
|
||||
"WeekComparedToPreviousWeek": "هفته گذشته",
|
||||
"YearComparedToPreviousYear": "سال گذشته"
|
||||
}
|
||||
}
|
23
msd2/tracking/piwik/plugins/Insights/lang/fi.json
Normal file
23
msd2/tracking/piwik/plugins/Insights/lang/fi.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"Insights": {
|
||||
"ControlComparedToDescription": "Kasvu verrattuna",
|
||||
"ControlFilterByDescription": "Näytä kaikki, vain siirtyneet, vain uudet tai vain kadonneet",
|
||||
"DayComparedToPreviousDay": "edellinen päivä",
|
||||
"DayComparedToPreviousWeek": "sama päivä edelliseltä viikolta",
|
||||
"DayComparedToPreviousYear": "sama päivä edelliseltä vuodelta",
|
||||
"Filter": "Valikoi",
|
||||
"FilterIncreaserAndDecreaser": "Lisää ja vähennä",
|
||||
"FilterOnlyDecreaser": "Vain vähennys",
|
||||
"FilterOnlyDisappeared": "Vain kadonneet",
|
||||
"FilterOnlyIncreaser": "Vain lisäys",
|
||||
"FilterOnlyMovers": "Vain muuttuneet",
|
||||
"FilterOnlyNew": "Vain uudet",
|
||||
"IgnoredChanges": "Muutokset jotka vaikuttivat alle %s käynteihin jätettiin huomiotta.",
|
||||
"MonthComparedToPreviousMonth": "edellinen kuukausi",
|
||||
"MonthComparedToPreviousYear": "sama kuukausi edelliseltä vuodelta",
|
||||
"NoResultMatchesCriteria": "Yksikään rivi ei vastannut valintoja",
|
||||
"TitleRowMoverAndShaker": "Tällä rivillä on keskiarvoa suurempi vaikutus.",
|
||||
"WeekComparedToPreviousWeek": "edellinen viikko",
|
||||
"YearComparedToPreviousYear": "edellinen vuosi"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/fr.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/fr.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Fournit des Aperçus de votre trafic. Les aperçus sont disponibles comme gadgets pour le tableau de bord ainsi qu'en tant que nouvel icône dans les rapports pour vous permettre de voir les tendances les plus importantes au sein de vos données.",
|
||||
"ControlComparedToDescription": "Croissance comparée à",
|
||||
"ControlFilterByDescription": "Tout afficher, seulement les déplacés, seulement nouveaux ou seulement disparus",
|
||||
"DatePeriodCombinationNotSupported": "Il n'est pas possible de générer des indicateurs pour cette combinaison de date et de période.",
|
||||
"DayComparedToPreviousDay": "jour précédent",
|
||||
"DayComparedToPreviousWeek": "même jour de la semaine précédente",
|
||||
"DayComparedToPreviousYear": "même jour de l'année précédente",
|
||||
"Filter": "Filtrer",
|
||||
"FilterIncreaserAndDecreaser": "Augmentateur & réducteur",
|
||||
"FilterOnlyDecreaser": "Réducteur uniquement",
|
||||
"FilterOnlyDisappeared": "Disparus uniquement",
|
||||
"FilterOnlyIncreaser": "Augmentateur uniquement",
|
||||
"FilterOnlyMovers": "Déplaceurs uniquement",
|
||||
"FilterOnlyNew": "Nouveaux uniquement",
|
||||
"IgnoredChanges": "Les modifications affectant moins de %s ont été ignorées.",
|
||||
"MonthComparedToPreviousMonth": "mois précédent",
|
||||
"MonthComparedToPreviousYear": "même mois de l'année précédente",
|
||||
"MoversAndShakersWidgetTitle": "Déplaceurs et Shakers",
|
||||
"NoResultMatchesCriteria": "Aucune ligne ne correspond aux critères",
|
||||
"OverviewWidgetTitle": "Aperçu des idées",
|
||||
"TitleConsideredInsightsChanges": "Les enregistrements ont augmenté ou diminué d'au moins %1$s visites (%2$s%% de %3$s visites totales).",
|
||||
"TitleConsideredInsightsGrowth": "Les enregistrements suivants ont une croissance d'au moins %1$s%% comparé à %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Considérés comme étant en évolution uniquement s'ils ont augmenté de plus de %1$s%% visites ou diminué par moins de %2$s%% visites, nouveaux entrants uniquement si augmentées par plus de %3$s%% visites (%4$s), et sortants si diminués par moins de %5$s%% visites (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s a changé de %2$s à %3$s comparé à %4$s. Sur cette base une évolution de %5$s%% de chaque enregistrement est prévue.",
|
||||
"TitleRowChangeDetails": "'%1$s' a changé de %2$s (%3$s) à %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' a diminué de %2$s et disparu en %3$s comparé à %4$s.",
|
||||
"TitleRowMoverAndShaker": "Cet enregistrement a un impact supérieur à la moyenne.",
|
||||
"TitleRowNewDetails": "'%1$s' augmenté de %2$s et est nouveau comparé à %3$s.",
|
||||
"WeekComparedToPreviousWeek": "semaine précédente",
|
||||
"WidgetCategory": "Idées",
|
||||
"YearComparedToPreviousYear": "année précédente"
|
||||
}
|
||||
}
|
10
msd2/tracking/piwik/plugins/Insights/lang/gl.json
Normal file
10
msd2/tracking/piwik/plugins/Insights/lang/gl.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"Insights": {
|
||||
"DayComparedToPreviousDay": "día anterior",
|
||||
"DayComparedToPreviousWeek": "o mesmo día a semana anterior",
|
||||
"DayComparedToPreviousYear": "o mesmo día o ano anterior",
|
||||
"MonthComparedToPreviousMonth": "o mes anterior",
|
||||
"MonthComparedToPreviousYear": "o mesmo mes o ano anterior",
|
||||
"WeekComparedToPreviousWeek": "a semana anterior"
|
||||
}
|
||||
}
|
23
msd2/tracking/piwik/plugins/Insights/lang/hi.json
Normal file
23
msd2/tracking/piwik/plugins/Insights/lang/hi.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "अपने यातायात के बारे में अंतर्दृष्टि प्रदान करता है। इनसाइट्स डैशबोर्ड विजेट के साथ ही आप अपने डेटा में सबसे महत्वपूर्ण रुझान देखने जाने के लिए रिपोर्ट में एक नया प्रतीक के रूप में उपलब्ध हैं।",
|
||||
"ControlComparedToDescription": "की तुलना में वृद्धि",
|
||||
"ControlFilterByDescription": "केवल नए या केवल गायब हो गया है, सब केवल मूवर्स, दिखाएँ",
|
||||
"DatePeriodCombinationNotSupported": "यह इस तारीख और अवधि संयोजन के लिए अंतर्दृष्टि उत्पन्न करने के लिए संभव नहीं है।",
|
||||
"DayComparedToPreviousDay": "पिछले दिन",
|
||||
"DayComparedToPreviousWeek": "इससे पिछले सप्ताह में एक ही दिन",
|
||||
"DayComparedToPreviousYear": "पिछले साल इसी दिन",
|
||||
"Filter": "फ़िल्टर",
|
||||
"FilterIncreaserAndDecreaser": "Increaser और decreaser",
|
||||
"FilterOnlyDecreaser": "केवल decreaser",
|
||||
"FilterOnlyDisappeared": "केवल गायब हो गया",
|
||||
"FilterOnlyIncreaser": "केवल Increaser",
|
||||
"FilterOnlyMovers": "केवल मूवर्स",
|
||||
"FilterOnlyNew": "केवल नए",
|
||||
"IgnoredChanges": "%s की यात्राओं की तुलना में कम प्रभावित करने वाले परिवर्तनों पर ध्यान नहीं दिया गया।",
|
||||
"MonthComparedToPreviousMonth": "पिछले महीने",
|
||||
"MonthComparedToPreviousYear": "पिछले वर्ष के इसी माह",
|
||||
"MoversAndShakersWidgetTitle": "एक घटना भेजें",
|
||||
"NoResultMatchesCriteria": "कोई पंक्तियों मानदंड से मेल खाते हैं"
|
||||
}
|
||||
}
|
11
msd2/tracking/piwik/plugins/Insights/lang/id.json
Normal file
11
msd2/tracking/piwik/plugins/Insights/lang/id.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"Insights": {
|
||||
"ControlComparedToDescription": "Pertumbuhan dibandingkan ke",
|
||||
"DayComparedToPreviousDay": "hari sebelumnya",
|
||||
"Filter": "Saring",
|
||||
"FilterOnlyNew": "Hanya baru",
|
||||
"MonthComparedToPreviousMonth": "bulan sebelumnya",
|
||||
"WeekComparedToPreviousWeek": "minggu sebelumnya",
|
||||
"YearComparedToPreviousYear": "tahun sebelumnya"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/it.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/it.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Fornisce approfondimenti sul tuo traffico. Questi sono disponibili come widgets nella dashboard e anche come una nuova icona in report che ti fanno vedere le più importanti tendenze dei tuoi dati.",
|
||||
"ControlComparedToDescription": "Crescita comparata a",
|
||||
"ControlFilterByDescription": "Mostra tutto, solo protagoniste, solo nuove o solo scomparse",
|
||||
"DatePeriodCombinationNotSupported": "Non è possibile generare approfondimenti per questa combinazione di data e periodo.",
|
||||
"DayComparedToPreviousDay": "giorno precedente",
|
||||
"DayComparedToPreviousWeek": "lo stesso giorno della settimana precedente",
|
||||
"DayComparedToPreviousYear": "lo stesso giorno dell'anno precedente",
|
||||
"Filter": "Filtro",
|
||||
"FilterIncreaserAndDecreaser": "Crescono & Diminuiscono",
|
||||
"FilterOnlyDecreaser": "Solo diminuite",
|
||||
"FilterOnlyDisappeared": "Solo scomparse",
|
||||
"FilterOnlyIncreaser": "Solo aumentate",
|
||||
"FilterOnlyMovers": "Solo protagoniste",
|
||||
"FilterOnlyNew": "Solo nuove",
|
||||
"IgnoredChanges": "Le variazioni che interessano meno di %s visite sono state ignorate.",
|
||||
"MonthComparedToPreviousMonth": "mese precedente",
|
||||
"MonthComparedToPreviousYear": "stesso mese dell'anno precedente",
|
||||
"MoversAndShakersWidgetTitle": "Protagoniste di tendenza",
|
||||
"NoResultMatchesCriteria": "Nessuna riga corrisponde ai criteri",
|
||||
"OverviewWidgetTitle": "Panoramica Approfondimenti",
|
||||
"TitleConsideredInsightsChanges": "Righe aumentate o diminuite di almeno %1$s visite (%2$s%% di %3$s visite totali).",
|
||||
"TitleConsideredInsightsGrowth": "Le righe seguenti hanno una crescita di almeno %1$s%% comparata a %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Sono considerate protagoniste solo se sono cresciute di più di %1$s%% visite o si sono contratte di meno di %2$s%% visite, nuove entrate solo se sono aumentate di più di %3$s%% visite (%4$s), e righe scomparse se si sono contratte di meno di %5$s%% visite (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s cambiate da %2$s a %3$s comparate a %4$s. Basandoci su ciò ci si aspetta un'evoluzione per ciascuna riga di %5$s%%.",
|
||||
"TitleRowChangeDetails": "'%1$s' è cambiato da %2$s (%3$s) a %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' è diminuita di %2$s e scomparsa in %3$s comparata a %4$s.",
|
||||
"TitleRowMoverAndShaker": "Questa riga ha avuto un impatto più alto della media.",
|
||||
"TitleRowNewDetails": "'%1$s' è aumentata di %2$s ed è nuova comparata a %3$s.",
|
||||
"WeekComparedToPreviousWeek": "settimana precedente",
|
||||
"WidgetCategory": "Approfondimenti",
|
||||
"YearComparedToPreviousYear": "anno precedente"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/ja.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/ja.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "トラフィックについてのインサイトを提供しています。インサイトは、ダッシュボードウィジェットだけでなく、データの中で最も重要なトレンドを見るためのレポートで新しいアイコンとして使用できます。",
|
||||
"ControlComparedToDescription": "比較する実績値は",
|
||||
"ControlFilterByDescription": "すべて、変動のみ、新規のみ、削除のみを表示",
|
||||
"DatePeriodCombinationNotSupported": "この日付と期間の組み合わせに対するインサイトは作成できません。",
|
||||
"DayComparedToPreviousDay": "前日",
|
||||
"DayComparedToPreviousWeek": "先週の同日",
|
||||
"DayComparedToPreviousYear": "昨年の同日",
|
||||
"Filter": "フィルター",
|
||||
"FilterIncreaserAndDecreaser": "増加と減少した値",
|
||||
"FilterOnlyDecreaser": "減少した値のみ",
|
||||
"FilterOnlyDisappeared": "消失した値のみ",
|
||||
"FilterOnlyIncreaser": "増加した値のみ",
|
||||
"FilterOnlyMovers": "変化のあった値のみ",
|
||||
"FilterOnlyNew": "新しい値のみ",
|
||||
"IgnoredChanges": "訪問数 %s 未満の影響を及ぼす変更は無視されました。",
|
||||
"MonthComparedToPreviousMonth": "前の月",
|
||||
"MonthComparedToPreviousYear": "去年の同じ月",
|
||||
"MoversAndShakersWidgetTitle": "変動レポート",
|
||||
"NoResultMatchesCriteria": "基準に一致する列がありません。",
|
||||
"OverviewWidgetTitle": "インサイトの概要",
|
||||
"TitleConsideredInsightsChanges": "列が少なくとも %1$s 訪問 ( 合計訪問数 %3$s の %2$s%% ) 増加または減少しました。",
|
||||
"TitleConsideredInsightsGrowth": "次の列は %2$s に比べて少なくとも %1$s%% の成長があります。",
|
||||
"TitleConsideredMoversAndShakersChanges": "%1$s%% ビジット以上の増加または %2$s%% 未満の縮小の場合は変動、%3$s%% ( %4$s ) ビジット以上増加した場合のみ新規とみなし、 %5$s%% ( %6$s ) ビジット未満の縮小の場合、列を削除しました。",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%4$s に比べて、%1$s は、%2$s から %3$s に変化しました。これに基づき、%5$s%% の各列の展開が期待できます。",
|
||||
"TitleRowChangeDetails": "'%1$s' は、%2$s (%3$s) から %4$s (%5$s) %6$s に変化しました。",
|
||||
"TitleRowDisappearedDetails": "%2$s によって '%1$s' は減少し、%4$s に比べ、%3$s で消滅した",
|
||||
"TitleRowMoverAndShaker": "この列は、平均より高い影響を与えました。",
|
||||
"TitleRowNewDetails": "'%2$s によって '%1$s' が増加し、%3$s に比べて新しい",
|
||||
"WeekComparedToPreviousWeek": "前の週",
|
||||
"WidgetCategory": "インサイト",
|
||||
"YearComparedToPreviousYear": "前の年"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/nb.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/nb.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Gir innsikt om din trafikk. Innsikt er tilgjengelig som widgeter, i tillegg til et nytt ikon i rapporter, som lar deg se de viktigste trendene i dine data.",
|
||||
"ControlComparedToDescription": "Vekst sammenlignet med",
|
||||
"ControlFilterByDescription": "Vis alle, kun klatrere, kun nye eller kun forsvunne",
|
||||
"DatePeriodCombinationNotSupported": "Det er ikke mulig å generere innsikt for denne dato- og periodekombinasjonen.",
|
||||
"DayComparedToPreviousDay": "dagen før",
|
||||
"DayComparedToPreviousWeek": "samme dag i forrige uke",
|
||||
"DayComparedToPreviousYear": "samme dag året før",
|
||||
"Filter": "Filter",
|
||||
"FilterIncreaserAndDecreaser": "På vei opp & på vei ned",
|
||||
"FilterOnlyDecreaser": "Kun på vei ned",
|
||||
"FilterOnlyDisappeared": "Kun forsvunne",
|
||||
"FilterOnlyIncreaser": "Kun på vei opp",
|
||||
"FilterOnlyMovers": "Kun klatrere",
|
||||
"FilterOnlyNew": "Bare nye",
|
||||
"IgnoredChanges": "Endringer som påvirker mindre enn %s besøk ble ignorert.",
|
||||
"MonthComparedToPreviousMonth": "måneden før",
|
||||
"MonthComparedToPreviousYear": "samme måned året før",
|
||||
"MoversAndShakersWidgetTitle": "Klatrere og stupere",
|
||||
"NoResultMatchesCriteria": "Ingen rader passer til kriteriene",
|
||||
"OverviewWidgetTitle": "Innsiktsoversikt",
|
||||
"TitleConsideredInsightsChanges": "Radene økte eller minket med minst %1$s besøk (%2$s%% av totalt %3$s besøk).",
|
||||
"TitleConsideredInsightsGrowth": "Følgende rader har en vekst på minst %1$s%% sammenliknet med %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Regnes som klatrere kun hvis de økte med mer enn %1$s%% besøk eller minket med mer enn %2$s%% besøk, nye oppføringer kun hvis de har økt med mer enn %3$s%% besøk (%4$s), og forsvunne rader hvis de minket med mer enn %5$s%% besøk (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s gikk fra %2$s til %3$s sammenliknet med %4$s Basert på dette forventes en utvikling på %5$s%% for hver rad.",
|
||||
"TitleRowChangeDetails": "«%1$s» endret fra %2$s (%3$s) til %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "«%1$s» minket med %2$s og forsvant i %3$s sammenliknet med %4$s.",
|
||||
"TitleRowMoverAndShaker": "Denne raden hadde en større påvirkning enn gjennomsnittet.",
|
||||
"TitleRowNewDetails": "«%1$s» økte med %2$s og er ny sammenliknet med %3$s.",
|
||||
"WeekComparedToPreviousWeek": "uken før",
|
||||
"WidgetCategory": "Innsikt",
|
||||
"YearComparedToPreviousYear": "året før"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/nl.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/nl.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Biedt inzichten over je verkeer. Inzichten zijn beschikbaar als dashboard widgets en als een nieuw icoon in je rapporten om de belangrijkste trends weer te geven in je data.",
|
||||
"ControlComparedToDescription": "Groei vergeleken met de",
|
||||
"ControlFilterByDescription": "Toon alles, enkel verschuivingen, enkel nieuw of enkel verdwenen",
|
||||
"DatePeriodCombinationNotSupported": "Het is niet mogelijk om inzichten te genereren voor deze datum en periode combinatie.",
|
||||
"DayComparedToPreviousDay": "vorige dag",
|
||||
"DayComparedToPreviousWeek": "zelfde dag in de vorige week",
|
||||
"DayComparedToPreviousYear": "zelfde dag in het vorige jaar",
|
||||
"Filter": "Filter",
|
||||
"FilterIncreaserAndDecreaser": "Toename & afname",
|
||||
"FilterOnlyDecreaser": "Alleen afname",
|
||||
"FilterOnlyDisappeared": "Alleen verdwenen",
|
||||
"FilterOnlyIncreaser": "Alleen toename",
|
||||
"FilterOnlyMovers": "Alleen verschoven",
|
||||
"FilterOnlyNew": "Alleen nieuwe",
|
||||
"IgnoredChanges": "Wijzigingen die minder dan %s van de bezoeken beïnvloeden werden genegeerd.",
|
||||
"MonthComparedToPreviousMonth": "vorige maand",
|
||||
"MonthComparedToPreviousYear": "zelfde maand in het vorige jaar",
|
||||
"MoversAndShakersWidgetTitle": "Movers en Shakers",
|
||||
"NoResultMatchesCriteria": "Er komen geen rijen overeen met de criteria",
|
||||
"OverviewWidgetTitle": "Inzichten Overzicht",
|
||||
"TitleConsideredInsightsChanges": "De rijen wijzigden met tenminste %1$s bezoeken (%2$s%% van %3$s totaal aantal bezoeken).",
|
||||
"TitleConsideredInsightsGrowth": "De volgende rijen hadden een groei van tenminste %1$s%% vergeleken met %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Aanzien als verschoven alleen als ze groeiden met meer dan %1$s%% bezoeken of verminderden met %2$s%% bezoeken, nieuwe entries enkel indien ze groeiden met meer dan %3$s%% bezoeken (%4$s), en rijen werden verwijdert indien ze daalden met minder dan %5$s%% van de bezoeken (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s wijzigde van %2$s naar %3$s vergeleken met %4$s. Een evolutie van %5$s%% is verwacht, gebaseerd op deze gegevens.",
|
||||
"TitleRowChangeDetails": "'%1$s' is gewijzigd van %2$s (%3$s) naar %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' is gedaald met %2$s en verdwenen in %3$s vergeleken mer %4$s.",
|
||||
"TitleRowMoverAndShaker": "Deze rij heeft een grotere impact dan gemiddeld.",
|
||||
"TitleRowNewDetails": "'%1$s' is toegenomen met %2$s en is nieuw vergeleken met %3$s.",
|
||||
"WeekComparedToPreviousWeek": "vorige week",
|
||||
"WidgetCategory": "Inzichten",
|
||||
"YearComparedToPreviousYear": "vorig jaar"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/pl.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/pl.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Insights dostarcza informacji o ruchu na stronie. Informacje te dostępne są w postaci widżetów pulpitu jak też jako nowa ikona w raportach, tak abyś widział najważniejsze trendy w swoich danych.",
|
||||
"ControlComparedToDescription": "Wzrost w stosunku do",
|
||||
"ControlFilterByDescription": "Pokaż wszystkich, tylko przechodzących, tylko nowych lub tylko znikających",
|
||||
"DatePeriodCombinationNotSupported": "Nie udało się wygenerować Insights'a dla tej kombinacji daty i okresu.",
|
||||
"DayComparedToPreviousDay": "poprzedniego dnia",
|
||||
"DayComparedToPreviousWeek": "tego samego dnia w poprzednim tygodniu",
|
||||
"DayComparedToPreviousYear": "ten sam dzień w poprzednim roku",
|
||||
"Filter": "Filtr",
|
||||
"FilterIncreaserAndDecreaser": "Wzrosty i spadki",
|
||||
"FilterOnlyDecreaser": "Tylko spadki",
|
||||
"FilterOnlyDisappeared": "Tylko znikający",
|
||||
"FilterOnlyIncreaser": "Tylko wzrosty",
|
||||
"FilterOnlyMovers": "Tylko zmieniający",
|
||||
"FilterOnlyNew": "Tylko nowi",
|
||||
"IgnoredChanges": "Zmiany wpływające na mniej niż %s wizyt zostały pominięte.",
|
||||
"MonthComparedToPreviousMonth": "poprzedni miesiąc",
|
||||
"MonthComparedToPreviousYear": "ten sam miesiąc w poprzednim roku",
|
||||
"MoversAndShakersWidgetTitle": "Zmiany zachowań",
|
||||
"NoResultMatchesCriteria": "Żaden wiesz nie spełnia kryteriów",
|
||||
"OverviewWidgetTitle": "Przegląd Insights'ów",
|
||||
"TitleConsideredInsightsChanges": "Wiersze wzrosły lub zmalały o przynajmniej %1$s wizyt (%2$s%% z %3$s ogółu wizyt).",
|
||||
"TitleConsideredInsightsGrowth": "Następne wiersze odnotowują wzrost o przynajmniej %1$s%% w porównaniu do %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Zmiana zachowań odnotowywana jest w raporcie jeśli odwiedziny wzrosną przynajmniej o %1$s%% lub zmaleją o mniej niż %2$s%%, nowe wpisy pojawią się jeśli odwiedziny wzrosną o przynajmniej %3$s%% (%4$s), a rząd zniknie jeśli zmniejszą się o mniej niż %5$s%% odwiedzin (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s zmienił się z %2$s do %3$s w porównaniu do %4$s. Bazując na tym spodziewana jest zmiana każdego rzędu %5$s na poziomie %%.",
|
||||
"TitleRowChangeDetails": "'%1$s' zmieniło się z %2$s (%3$s) do %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' zmniejszyło się o %2$s i zniknęło w %3$s w porównaniu do %4$s.",
|
||||
"TitleRowMoverAndShaker": "Ten wiersz miał ponad przeciętny wpływ.",
|
||||
"TitleRowNewDetails": "\"%1$s\" wzrosło o %2$s i jest nowe w porównaniu z %3$s.",
|
||||
"WeekComparedToPreviousWeek": "poprzedni tydzień",
|
||||
"WidgetCategory": "Insights",
|
||||
"YearComparedToPreviousYear": "poprzedni rok"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/pt-br.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/pt-br.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Fornece Insights sobre o seu tráfego. Insights estão disponíveis como widgets do painel de controle e também como um novo ícone nos relatórios para que você possa ver as tendências mais importantes em seus dados.",
|
||||
"ControlComparedToDescription": "Aumento comparado com",
|
||||
"ControlFilterByDescription": "Mostrar todos, apenas movedores, apenas novos ou apenas desaparecidos",
|
||||
"DatePeriodCombinationNotSupported": "não é possível gerar insights para esta combinação de período e data",
|
||||
"DayComparedToPreviousDay": "dia anterior",
|
||||
"DayComparedToPreviousWeek": "mesmo dia na semana anterior",
|
||||
"DayComparedToPreviousYear": "mesmo dia no ano anterior",
|
||||
"Filter": "Filtro",
|
||||
"FilterIncreaserAndDecreaser": "Aumentador & diminuidor",
|
||||
"FilterOnlyDecreaser": "Apenas diminuidor",
|
||||
"FilterOnlyDisappeared": "Apenas desaparecido",
|
||||
"FilterOnlyIncreaser": "Apenas aumentador",
|
||||
"FilterOnlyMovers": "Apenas movedores",
|
||||
"FilterOnlyNew": "Apenas novos",
|
||||
"IgnoredChanges": "Modificações afetando mais de %s visitas foram ignoradas.",
|
||||
"MonthComparedToPreviousMonth": "mês anterior",
|
||||
"MonthComparedToPreviousYear": "mesmo mês no ano anterior",
|
||||
"MoversAndShakersWidgetTitle": "Movedores e Agitadores",
|
||||
"NoResultMatchesCriteria": "Nenhuma linha corresponde ao critério",
|
||||
"OverviewWidgetTitle": "Visão Geral Insights",
|
||||
"TitleConsideredInsightsChanges": "As linhas aumentaram ou diminuíram em pelo menos %1$s visitas (%2$s%% de %3$s total de visitas).",
|
||||
"TitleConsideredInsightsGrowth": "As seguintes linhas têm um crescimento de pelo menos %1$s%% comparado com %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Considerados móveis apenas se cresceram mais de %1$s%% visitas ou encolheu menos de %2$s%% visitas, novas entradas apenas se elas aumentaram mais de %3$s%% visitas (%4$s), e desaparecer linhas se encolheram menos de %5$s%% visitas (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s mudou de %2$s para %3$s comparado com %4$s. Baseado nisso, uma evolução de %5$s%% de cada linha é esperada.",
|
||||
"TitleRowChangeDetails": "%1$s' mudou de %2$s (%3$s) para %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' reduzido por %2$s e desaparecido em %3$s comparado a %4$s.",
|
||||
"TitleRowMoverAndShaker": "Esta linha teve um impacto maior do que a média.",
|
||||
"TitleRowNewDetails": "'%1$s' aumentou %2$s e é novo comparado a %3$s.",
|
||||
"WeekComparedToPreviousWeek": "semana anterior",
|
||||
"WidgetCategory": "Insights",
|
||||
"YearComparedToPreviousYear": "ano anterior"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/pt.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/pt.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Fornece perspetivas sobre o seu tráfego. As perspetivas estão disponíveis como widgets nos painéis bem como um novo ícone nos relatórios para que possa ver as tendências mais importantes nos seus dados.",
|
||||
"ControlComparedToDescription": "Crescimento comparado ao",
|
||||
"ControlFilterByDescription": "Mostrar tudo, apenas movidos, apenas novos ou apenas os que desapareceram",
|
||||
"DatePeriodCombinationNotSupported": "Não é possível gerar perspetivas para esta combinação de datas e de períodos.",
|
||||
"DayComparedToPreviousDay": "dia anterior",
|
||||
"DayComparedToPreviousWeek": "mesmo dia da semana anterior",
|
||||
"DayComparedToPreviousYear": "mesmo dia no ano anterior",
|
||||
"Filter": "Filtro",
|
||||
"FilterIncreaserAndDecreaser": "Crescente e decrescente",
|
||||
"FilterOnlyDecreaser": "Apenas decrescente",
|
||||
"FilterOnlyDisappeared": "Apenas desaparecidos",
|
||||
"FilterOnlyIncreaser": "Apenas crescente",
|
||||
"FilterOnlyMovers": "Apenas movidos",
|
||||
"FilterOnlyNew": "Apenas novos",
|
||||
"IgnoredChanges": "Alterações que afetem menos de %s visitas foram ignoradas.",
|
||||
"MonthComparedToPreviousMonth": "mês anterior",
|
||||
"MonthComparedToPreviousYear": "mesmo mês no ano anterior",
|
||||
"MoversAndShakersWidgetTitle": "Apenas movidos e agitados",
|
||||
"NoResultMatchesCriteria": "Sem linhas correspondentes aos critérios",
|
||||
"OverviewWidgetTitle": "Visão geral das perspetivas",
|
||||
"TitleConsideredInsightsChanges": "As linhas que cresceram ou decresceram por, pelo menos, %1$s visitas (%2$s%% de um total de %3$s visitas).",
|
||||
"TitleConsideredInsightsGrowth": "As linhas seguintes tiveram um crescimento de, pelo menos, %1$s%% comparativamente a %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Os movidos apenas foram considerados se cresceram mais do que %1$s%% visitas ou reduziram menos do que %2$s%% visitas, novas entradas apenas se cresceram mais do que %3$s%% visitas (%4$s), e as linhas desaparecidas se reduziram por menos do que %5$s%% visitas (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s mudaram de %2$s para %3$s comparativamente a %4$s. Com base nesta evolução para cada linha de %5$s%% é esperado.",
|
||||
"TitleRowChangeDetails": "'%1$s' mudou de %2$s (%3$s) para %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' decresceu por %2$s e desapareceu em %3$s comparativamente a %4$s.",
|
||||
"TitleRowMoverAndShaker": "Esta linha teve um impacto maior do que a média.",
|
||||
"TitleRowNewDetails": "'%1$s' cresceu por %2$s e é nova comparativamente a %3$s.",
|
||||
"WeekComparedToPreviousWeek": "semana anterior",
|
||||
"WidgetCategory": "Perspetivas",
|
||||
"YearComparedToPreviousYear": "ano anterior"
|
||||
}
|
||||
}
|
34
msd2/tracking/piwik/plugins/Insights/lang/ro.json
Normal file
34
msd2/tracking/piwik/plugins/Insights/lang/ro.json
Normal file
@ -0,0 +1,34 @@
|
||||
{
|
||||
"Insights": {
|
||||
"ControlComparedToDescription": "Crestere comparativ cu",
|
||||
"ControlFilterByDescription": "Aratale pe toate, doar Miscarile, numai pe cele noi sau dispărute",
|
||||
"DatePeriodCombinationNotSupported": "Nu este posibil să genereze perspective pentru această dată și combinație perioadă.",
|
||||
"DayComparedToPreviousDay": "ziua anterioara",
|
||||
"DayComparedToPreviousWeek": "aceeasi zi in saptamana anterioara",
|
||||
"DayComparedToPreviousYear": "aceeasi zi in anul anterior",
|
||||
"Filter": "Filtru",
|
||||
"FilterIncreaserAndDecreaser": "Creșterea & scăderea",
|
||||
"FilterOnlyDecreaser": "Doar descrestere",
|
||||
"FilterOnlyDisappeared": "Doar disparut",
|
||||
"FilterOnlyIncreaser": "Doar crestere",
|
||||
"FilterOnlyMovers": "Numai mutari",
|
||||
"FilterOnlyNew": "Doar nou",
|
||||
"IgnoredChanges": "Modificarile afecteaza mai putin decat %s vizitele care au fost ignorate.",
|
||||
"MonthComparedToPreviousMonth": "luna precedenta",
|
||||
"MonthComparedToPreviousYear": "aceeasi luna in anul anterior",
|
||||
"MoversAndShakersWidgetTitle": "Miscari si zguduituri",
|
||||
"NoResultMatchesCriteria": "Nici un rând nu corespunde criteriilor",
|
||||
"OverviewWidgetTitle": "Prezentare generală",
|
||||
"TitleConsideredInsightsChanges": "Liniile au crescut sau scăzut cu cel puțin %1$s vizite (%2$s%% din %3$s vizite totale).",
|
||||
"TitleConsideredInsightsGrowth": "Următoarele rânduri au o creștere de cel puțin %1$s%% comparativ cu %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Mutarile sunt luate în considerare numai în cazul în care acestea au crescut cu mai mult de%1$s%% vizite sau s-a redus cu mai puțin de%2$s%% vizite, intrări noi numai în cazul în care acestea au crescut cu mai mult de %3$s%% vizite (%4$s), și a dispărut rânduri, dacă acestea s-au redus cu mai puțin de %5$s%% vizite (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s-a schimbat de la %2$s la %3$s, comparativ cu %4$s. Bazat pe aceaste date o este de asteptat o evoluție a fiecărui rând de %5$s%% .",
|
||||
"TitleRowChangeDetails": "'%1$s' schimbat din %2$s (%3$s) la %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' a scăzut cu %2$s și a dispărut în %3$s, comparativ cu %4$s.",
|
||||
"TitleRowMoverAndShaker": "Acest rând a avut un impact mai mare decât media.",
|
||||
"TitleRowNewDetails": "'%1$s' a crescut cu %2$s și este nou față de %3$s.",
|
||||
"WeekComparedToPreviousWeek": "saptamana anterioara",
|
||||
"WidgetCategory": "înţelegere",
|
||||
"YearComparedToPreviousYear": "anul trecut"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/ru.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/ru.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Предоставляет Прогнозы вашего трафика. Прогнозы доступны как в виде виджетов панели управления, так и в виде новой иконки в отчетах, чтобы позволять вам видеть наиболее важные тенденции в ваших данных.",
|
||||
"ControlComparedToDescription": "Прирост по сравнению с",
|
||||
"ControlFilterByDescription": "Показать все, только движущиеся, только новые или только пропавшие",
|
||||
"DatePeriodCombinationNotSupported": "Для комбинации этой даты и периода невозможно сгенерировать прогнозы.",
|
||||
"DayComparedToPreviousDay": "предыдущий день",
|
||||
"DayComparedToPreviousWeek": "тот же день неделей ранее",
|
||||
"DayComparedToPreviousYear": "тот же день в предыдущем году",
|
||||
"Filter": "Фильтр",
|
||||
"FilterIncreaserAndDecreaser": "Возрастающие и спадающие",
|
||||
"FilterOnlyDecreaser": "Только спадающие",
|
||||
"FilterOnlyDisappeared": "Только пропавшие",
|
||||
"FilterOnlyIncreaser": "Только возрастающие",
|
||||
"FilterOnlyMovers": "Только движущиеся",
|
||||
"FilterOnlyNew": "Только новые",
|
||||
"IgnoredChanges": "Изменения, затрагивающие менее, чем %s визитов, были пропущены.",
|
||||
"MonthComparedToPreviousMonth": "предыдущий месяц",
|
||||
"MonthComparedToPreviousYear": "тот же месяц годом ранее",
|
||||
"MoversAndShakersWidgetTitle": "Движущиеся и дрожащие",
|
||||
"NoResultMatchesCriteria": "Нет строк, отвечающих критериям",
|
||||
"OverviewWidgetTitle": "Обзор Прогнозов",
|
||||
"TitleConsideredInsightsChanges": "Ряды, увеличившиеся или уменьшившиеся по крайней мере на %1$s визитов (%2$s%% из %3$s визитов всего).",
|
||||
"TitleConsideredInsightsGrowth": "Следующие строки имеют прирост по крайней мере %1$s%% по сравнению с %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Считаются движущимися, только если они увеличились на более чем %1$s%% визитов или сократились на менее чем %2$s%% визитов, новые записи, если они увеличились на более чем %3$s%% визитов (%4$s), и пропавшие ряды, если они сократились на менее чем %5$s%% визитов (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s изменился с %2$s до %3$s по сравнению %4$s. Основываясь на этом, ожидается развитие каждого ряда %5$s%%.",
|
||||
"TitleRowChangeDetails": "'%1$s' изменилось с %2$s (%3$s) до %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' уменьшилось на %2$s и пропало в %3$s по сравнению с %4$s.",
|
||||
"TitleRowMoverAndShaker": "Влияние этой строки больше среднего.",
|
||||
"TitleRowNewDetails": "'%1$s' увеличилось на %2$s и является новым по сравнению с %3$s.",
|
||||
"WeekComparedToPreviousWeek": "предыдущая неделя",
|
||||
"WidgetCategory": "Прогнозы",
|
||||
"YearComparedToPreviousYear": "прошлый год"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/sq.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/sq.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Furnizon Prirje të trafikut tuaj. Prirjet mund të kihen në formë widget-esh pulti, si edhe në formën e një ikone të re në raporte që t’ju lejojë të shihni tendencat më të rëndësishme në të dhënat tuaja.",
|
||||
"ControlComparedToDescription": "Rritja e krahasuar me",
|
||||
"ControlFilterByDescription": "Shfaqi krejt, vetëm protagonistët, vetëm të rinjtë ose vetëm të zhdukurit",
|
||||
"DatePeriodCombinationNotSupported": "S’është e mundur të prodhohen prirje për këtë ndërthurje date dhe periudhe.",
|
||||
"DayComparedToPreviousDay": "dita e mëparshme",
|
||||
"DayComparedToPreviousWeek": "e njëjta ditë javën e kaluar",
|
||||
"DayComparedToPreviousYear": "e njëjta ditë vitin e kaluar",
|
||||
"Filter": "Filtrojini",
|
||||
"FilterIncreaserAndDecreaser": "Shtues & pakësues",
|
||||
"FilterOnlyDecreaser": "Vetëm pakësues",
|
||||
"FilterOnlyDisappeared": "Vetëm të zhdukur",
|
||||
"FilterOnlyIncreaser": "Vetëm shtues",
|
||||
"FilterOnlyMovers": "Vetëm protagonistë",
|
||||
"FilterOnlyNew": "Vetëm të rinjtë",
|
||||
"IgnoredChanges": "U shpërfillën ndryshimet që u takojnë më pak se %s vizitave.",
|
||||
"MonthComparedToPreviousMonth": "muaji i mëparshëm",
|
||||
"MonthComparedToPreviousYear": "i njëjti muaj vitin e shkuar",
|
||||
"MoversAndShakersWidgetTitle": "Protagonistë",
|
||||
"NoResultMatchesCriteria": "S’ka rresht me përputhje për kriterin",
|
||||
"OverviewWidgetTitle": "Përmbledhje Prirjesh",
|
||||
"TitleConsideredInsightsChanges": "Rreshtat u shtuan ose pakësuan me të paktën %1$s vizita (%2$s%% nga %3$s vizita gjithsej).",
|
||||
"TitleConsideredInsightsGrowth": "Rreshtat vijues kanë një rritje prej të paktën %1$s%% krahasuar me %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Të konsideruar protagonistë vetëm nëse u rritën me më tepër se %1$s%% vizita ose u tkurrën me më pak se %2$s%% vizita, zëra të rinj vetëm nëse u shtuan me më shumë se %3$s%% vizita (%4$s), dhe rreshta të zhdukur, nëse u tkurrën në më pak se %5$s%% vizita (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s ndryshoi nga %2$s në %3$s krahasuar me %4$s. Bazuar në këtë, pritet një evolucion %5$s%% për çdo rresht.",
|
||||
"TitleRowChangeDetails": "'%1$s' ndryshoi nga %2$s (%3$s) to %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' u pakësua me %2$s dhe u zhduk në %3$s krahasuar me %4$s.",
|
||||
"TitleRowMoverAndShaker": "Ky rresht ka një ndikim më të madh se sa mesatarja.",
|
||||
"TitleRowNewDetails": "'%1$s' u rrit me %2$s dhe është i ri krahasuar me %3$s.",
|
||||
"WeekComparedToPreviousWeek": "java e mëparshme",
|
||||
"WidgetCategory": "Prirje",
|
||||
"YearComparedToPreviousYear": "viti i mëparshëm"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/sr.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/sr.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Omogućuje tzv. uvide u vaš saobraćaj. Uvidi su na raspolaganju u vidu vidžeta za konzolu i kao sličice u izveštajima i preko njih možete videti najbitnije trendove vaših podataka.",
|
||||
"ControlComparedToDescription": "Rast u poređenju sa",
|
||||
"ControlFilterByDescription": "Prikaži sve, samo movers, samo nove ili samo one koji su nestali",
|
||||
"DatePeriodCombinationNotSupported": "Nije moguće generisati uvid za datu kombinaciju datuma i perioda.",
|
||||
"DayComparedToPreviousDay": "prethodni dan",
|
||||
"DayComparedToPreviousWeek": "isti dan prethodne nedelje",
|
||||
"DayComparedToPreviousYear": "isti dan prethodne godine",
|
||||
"Filter": "Filter",
|
||||
"FilterIncreaserAndDecreaser": "Povećanje i smanjenje",
|
||||
"FilterOnlyDecreaser": "Samo oni koji su se smanjili",
|
||||
"FilterOnlyDisappeared": "Samo oni koji su nestali",
|
||||
"FilterOnlyIncreaser": "Samo povećanje",
|
||||
"FilterOnlyMovers": "Samo movers",
|
||||
"FilterOnlyNew": "Samo novo",
|
||||
"IgnoredChanges": "Promene koje utiču na manje od %s poseta se ignorišu.",
|
||||
"MonthComparedToPreviousMonth": "prethodni mesec",
|
||||
"MonthComparedToPreviousYear": "isti mesec prethodne godine",
|
||||
"MoversAndShakersWidgetTitle": "Movers i Shakers",
|
||||
"NoResultMatchesCriteria": "Nijedan red ne zadovoljava kriterijum",
|
||||
"OverviewWidgetTitle": "Pregled uvida",
|
||||
"TitleConsideredInsightsChanges": "Redovi koji su porasli ili se smanjili za barem %1$s poseta (%2$s%% od %3$s ukupno poseta).",
|
||||
"TitleConsideredInsightsGrowth": "Sledeći redovi imaju rast od bar %1$s%% u poređenju sa %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Considered movers samo ako porastu za više od %1$s%% poseta ili se smanje za manje od %2$s%% poseta, novi ulasci samo ako se povećaju za više od %3$s%% poseta (%4$s), i disappeared rows ako se smanje za manje od %5$s%% poseta (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s se promenio od %2$s do %3$s u poređenju sa %4$s. Na osnovu toga, očekuje se razvoj svakog reda od %5$s%%.",
|
||||
"TitleRowChangeDetails": "'%1$s' se promenio od %2$s (%3$s) do %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' je smanjen za %2$s i nestao je u %3$s u odnosu na %4$s.",
|
||||
"TitleRowMoverAndShaker": "Ovaj red ima veći uticaj u odnosu na prosek.",
|
||||
"TitleRowNewDetails": "'%1$s' povećan za %2$s i predstavlja novinu u odnosu na %3$s.",
|
||||
"WeekComparedToPreviousWeek": "prethodna nedelja",
|
||||
"WidgetCategory": "Uvidi",
|
||||
"YearComparedToPreviousYear": "prethodna godina"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/sv.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/sv.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Ger tillgång till i insikter om din trafik. Insikter finns tillgänglig som en instrumentpanel men även som en ny ikon i rapporter för att du ska få tillgång till de viktigaste trenderna i din data.",
|
||||
"ControlComparedToDescription": "Tillväxt jämfört med",
|
||||
"ControlFilterByDescription": "Visa alla, endast förändringar, endast nya eller endast försvunna",
|
||||
"DatePeriodCombinationNotSupported": "Det är inte möjligt att generera insikter för datum och tid tillsammans.",
|
||||
"DayComparedToPreviousDay": "föregående dag",
|
||||
"DayComparedToPreviousWeek": "samma dag förra veckan",
|
||||
"DayComparedToPreviousYear": "samma dag föregående år",
|
||||
"Filter": "Filter",
|
||||
"FilterIncreaserAndDecreaser": "Ökar & minskar",
|
||||
"FilterOnlyDecreaser": "Endast minskar",
|
||||
"FilterOnlyDisappeared": "Endast försvunna",
|
||||
"FilterOnlyIncreaser": "Endast ökar",
|
||||
"FilterOnlyMovers": "Endast drivkraft",
|
||||
"FilterOnlyNew": "Endast nya",
|
||||
"IgnoredChanges": "Förändringar som påverkar mindre än %s av besöken ignorerades.",
|
||||
"MonthComparedToPreviousMonth": "föregående månad",
|
||||
"MonthComparedToPreviousYear": "samma månad föregående år",
|
||||
"MoversAndShakersWidgetTitle": "Upp- och Nedgångar",
|
||||
"NoResultMatchesCriteria": "Inga rader matchar kriteriet",
|
||||
"OverviewWidgetTitle": "Insiktsöversikt",
|
||||
"TitleConsideredInsightsChanges": "Raderna ökade eller minskade med minst %1$s besök (%2$s%% av %3$s totala besöken).",
|
||||
"TitleConsideredInsightsGrowth": "Följande rader har en tillväxt på minst %1$s%% jämfört med %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Betraktas förändringar endast om du växte med mer än %1$s%% besök eller minskade med mindre än %2$s%% besök, nya poster endast om de har ökat med mer än %3$s%% besök (%4$s), och försvunna rader om de minskade med mindre än %5$s%% besök (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s förändrades från %2$s till %3$s jämfört med %4$s. Baserat på detta förväntas en utveckling för varje rad på %5$s%%.",
|
||||
"TitleRowChangeDetails": "'%1$s' förändrades från %2$s (%3$s) till %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' minskade med %2$s och försvann i %3$s jämfört med %4$s.",
|
||||
"TitleRowMoverAndShaker": "Denna rad hade en större påverkan än genomsnittet.",
|
||||
"TitleRowNewDetails": "'%1$s' ökade med %2$s och är ny jämfört med %3$s.",
|
||||
"WeekComparedToPreviousWeek": "Föregående vecka",
|
||||
"WidgetCategory": "Insikter",
|
||||
"YearComparedToPreviousYear": "föregående år"
|
||||
}
|
||||
}
|
10
msd2/tracking/piwik/plugins/Insights/lang/ta.json
Normal file
10
msd2/tracking/piwik/plugins/Insights/lang/ta.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"Insights": {
|
||||
"DayComparedToPreviousDay": "நேற்று",
|
||||
"DayComparedToPreviousWeek": "கடந்த வாரத்தில் இதே நாள்",
|
||||
"DayComparedToPreviousYear": "கடந்த ஆண்டில் இதே நாள்",
|
||||
"MonthComparedToPreviousMonth": "கடந்த மாதம்",
|
||||
"MonthComparedToPreviousYear": "கடந்த ஆண்டின் இதே மாதம்",
|
||||
"WeekComparedToPreviousWeek": "கடந்த வாரம்"
|
||||
}
|
||||
}
|
18
msd2/tracking/piwik/plugins/Insights/lang/tl.json
Normal file
18
msd2/tracking/piwik/plugins/Insights/lang/tl.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"Insights": {
|
||||
"DayComparedToPreviousDay": "nakaraang araw",
|
||||
"DayComparedToPreviousWeek": "Sa parehong araw sa nakaraang linggo",
|
||||
"DayComparedToPreviousYear": "Sa parehong araw sa nakaraang taon",
|
||||
"MonthComparedToPreviousMonth": "nakaraang buwan",
|
||||
"MonthComparedToPreviousYear": "Parehong buwan sa nakaraang taon",
|
||||
"TitleConsideredMoversAndShakersChanges": "Masasabing movers kung ito ay tumaas ng mahigit sa %1$s%% pagbisita o bumababa ng higit sa %2$s%% pagbisita ang mga bagong entry kung ang kanilang pagtaas ay mahigit sa %3$s%% pagbisita (%4$s) at kung mawawala ang rows ng mas mababa sa %5$s%% pagbisita (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s ay nagbago mula sa %2$s sa %3$s kumpara sa %4$s. Base sa isang paglaki ng bawat hilera ng%5$s%% ay inaasahan.",
|
||||
"TitleRowChangeDetails": "'%1$s' ay nagbago mula %2$s (%3$s) hanggang %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' ay binawasan ng %2$s at nawala sa %3$s kumpara sa %4$s.",
|
||||
"TitleRowMoverAndShaker": "Ang hanay na ito ay nagkaroon ng mas mataas na epekto kaysa karaniwan.",
|
||||
"TitleRowNewDetails": "%1$s ay tumaas ng %2$s at bago kumpara sa %3$s",
|
||||
"WeekComparedToPreviousWeek": "nakaraang linggo",
|
||||
"WidgetCategory": "Mga Pananaw",
|
||||
"YearComparedToPreviousYear": "nakaraang taon"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/tr.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/tr.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Trafiğiniz hakkında içgörüler sunar. Ayrıntılı bilgiler pano gereçleri olarak kullanılabileceği gibi raporlardaki yeni bir simge ile verilerinizdeki en önemli eğilimlerin görüntülenmesini sağlar.",
|
||||
"ControlComparedToDescription": "Şununla karşılaştırmalı büyüme",
|
||||
"ControlFilterByDescription": "Tümünü görüntüle, yalnız göçenler, yalnız yeniler ya da yalnız kaybolanlar",
|
||||
"DatePeriodCombinationNotSupported": "Bu tarih ve zaman aralığı kombinasyonu için içgörü oluşturulamıyor.",
|
||||
"DayComparedToPreviousDay": "önceki gün",
|
||||
"DayComparedToPreviousWeek": "önceki haftanın aynı günü",
|
||||
"DayComparedToPreviousYear": "önceki yılın aynı günü",
|
||||
"Filter": "Süzgeç",
|
||||
"FilterIncreaserAndDecreaser": "Arttıran ve Azaltanlar",
|
||||
"FilterOnlyDecreaser": "Yalnız Azaltanlar",
|
||||
"FilterOnlyDisappeared": "Yalnız Kaybolanlar",
|
||||
"FilterOnlyIncreaser": "Yalnız Arttıranlar",
|
||||
"FilterOnlyMovers": "Yalnız Göç Edenler",
|
||||
"FilterOnlyNew": "Yalnız Yeniler",
|
||||
"IgnoredChanges": "%s ziyaretten azını etkileyen değişiklikler yok sayıldı.",
|
||||
"MonthComparedToPreviousMonth": "önceki ay",
|
||||
"MonthComparedToPreviousYear": "önceki yılın aynı ayı",
|
||||
"MoversAndShakersWidgetTitle": "Göç Edenler ve Gidip Gelenler",
|
||||
"NoResultMatchesCriteria": "Ölçüte uyan bir satır bulunamadı",
|
||||
"OverviewWidgetTitle": "İçgörü Özeti",
|
||||
"TitleConsideredInsightsChanges": "En az %1$s ziyaret artan ya da azalan satırlar (%2$s %% \/ %3$s toplam ziyaret).",
|
||||
"TitleConsideredInsightsGrowth": "Şu satırlarda %2$s değerine göre en az %1$s%% büyüme var.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Göçen ziyaretleri, yalnız %1$s%% değerinden fazla artar ya da %2$s%% değerinden fazla azalırsa, yeni kayıt ziyaretleri, yalnız %3$s%% (%4$s) değerinden fazla artar ve kaybolanlar satırı yalnız %5$s%% (%6$s) değerinden fazla azalırsa hesaba katılır.",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s, %4$s değerine göre %2$s değerinden %3$s değerine değişti. Her satırın gelişime göre %5$s %% bekleniyor.",
|
||||
"TitleRowChangeDetails": "'%1$s', %2$s (%3$s) değerinden %4$s (%5$s) değerine değiştir %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s', %2$s kadar azaldı ve %3$s içinde %4$s değerine göre kayboldu.",
|
||||
"TitleRowMoverAndShaker": "Bu satırın ortalamadan daha fazla etkisi var.",
|
||||
"TitleRowNewDetails": "'%1$s', %2$s kadar arttı ve %3$s değerine göre yeni eklendi.",
|
||||
"WeekComparedToPreviousWeek": "önceki hafta",
|
||||
"WidgetCategory": "içgörüler",
|
||||
"YearComparedToPreviousYear": "önceki yıl"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/uk.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/uk.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "Надає Вам прогнози вашого трафіку. Прогнози доступні як у вигляді віджетів панелі управління, так і у вигляді нової іконки в звітах, щоб дозволяти вам бачити найбільш важливі тенденції в ваших даних.",
|
||||
"ControlComparedToDescription": "Приріст у порівнянні з",
|
||||
"ControlFilterByDescription": "Показати всі, тільки рухомі, тільки нові або тільки зниклі",
|
||||
"DatePeriodCombinationNotSupported": "Для комбінації цієї дати і періоду неможливо згенерувати прогнози.",
|
||||
"DayComparedToPreviousDay": "попередній день",
|
||||
"DayComparedToPreviousWeek": "того ж дня тижнем раніше",
|
||||
"DayComparedToPreviousYear": "того ж дня в попередньому році",
|
||||
"Filter": "Фільтр",
|
||||
"FilterIncreaserAndDecreaser": "Зростаючі і спадаючі",
|
||||
"FilterOnlyDecreaser": "Тільки спадаючі",
|
||||
"FilterOnlyDisappeared": "Тільки зниклі",
|
||||
"FilterOnlyIncreaser": "Тільки зростаючі",
|
||||
"FilterOnlyMovers": "Тільки рухомі",
|
||||
"FilterOnlyNew": "Тільки нові",
|
||||
"IgnoredChanges": "Зміни, що зачіпають менше, ніж %s візитів, були пропущені.",
|
||||
"MonthComparedToPreviousMonth": "попередній місяць",
|
||||
"MonthComparedToPreviousYear": "той же місяць роком раніше",
|
||||
"MoversAndShakersWidgetTitle": "Рухомі і тремтячі",
|
||||
"NoResultMatchesCriteria": "Немає рядків, що відповідають критеріям",
|
||||
"OverviewWidgetTitle": "Огляд Прогнозів",
|
||||
"TitleConsideredInsightsChanges": "Ряди, що збільшилися або зменшилися принаймні на %1$s візитів (%2$s%% з %3$s візитів загалом).",
|
||||
"TitleConsideredInsightsGrowth": "Наступні рядки мають приріст принаймні %1$s%% порівняно з %2$s.",
|
||||
"TitleConsideredMoversAndShakersChanges": "Вважаються рухомими, тільки якщо вони збільшилися на більш ніж %1$s%% візитів або скоротилися на менш ніж %2$s%% візитів, нові записи, якщо вони збільшилися на більш ніж %3$s%% візитів (%4$s), і зниклі ряди, якщо вони скоротилися на менш ніж %5$s%% візитів (%6$s).",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s змінився з %2$s до %3$s порівняно %4$s. Грунтуючись на цьому, очікується розвиток кожного ряду %5$s%%.",
|
||||
"TitleRowChangeDetails": "'%1$s' змінилося з %2$s (%3$s) до %4$s (%5$s) %6$s.",
|
||||
"TitleRowDisappearedDetails": "'%1$s' зменшилася на %2$s і пропало в %3$s порівняно з %4$s.",
|
||||
"TitleRowMoverAndShaker": "Вплив цього рядка більше середнього.",
|
||||
"TitleRowNewDetails": "'%1$s' збільшилось на %2$s і є новим у порівнянні з %3$s.",
|
||||
"WeekComparedToPreviousWeek": "попередній тиждень",
|
||||
"WidgetCategory": "Прогнози",
|
||||
"YearComparedToPreviousYear": "минулий рік"
|
||||
}
|
||||
}
|
5
msd2/tracking/piwik/plugins/Insights/lang/vi.json
Normal file
5
msd2/tracking/piwik/plugins/Insights/lang/vi.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"Insights": {
|
||||
"DayComparedToPreviousDay": "Ngày trước đó"
|
||||
}
|
||||
}
|
17
msd2/tracking/piwik/plugins/Insights/lang/zh-cn.json
Normal file
17
msd2/tracking/piwik/plugins/Insights/lang/zh-cn.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"Insights": {
|
||||
"DayComparedToPreviousDay": "前一天",
|
||||
"DayComparedToPreviousWeek": "上一周的同一天",
|
||||
"DayComparedToPreviousYear": "上一年的同一天",
|
||||
"Filter": "条件",
|
||||
"FilterOnlyDecreaser": "仅限减少的",
|
||||
"FilterOnlyDisappeared": "仅限消失的",
|
||||
"FilterOnlyIncreaser": "仅限增加的",
|
||||
"FilterOnlyMovers": "仅限移动的",
|
||||
"FilterOnlyNew": "仅限新的",
|
||||
"MonthComparedToPreviousMonth": "上月",
|
||||
"MonthComparedToPreviousYear": "上一年的同月",
|
||||
"WeekComparedToPreviousWeek": "上一周",
|
||||
"YearComparedToPreviousYear": "上一年"
|
||||
}
|
||||
}
|
35
msd2/tracking/piwik/plugins/Insights/lang/zh-tw.json
Normal file
35
msd2/tracking/piwik/plugins/Insights/lang/zh-tw.json
Normal file
@ -0,0 +1,35 @@
|
||||
{
|
||||
"Insights": {
|
||||
"PluginDescription": "提供你的流量洞察。洞察讓你查看你資料中最重要的趨勢,可以透過展示板小工具或是報表中的圖示按鈕存取。",
|
||||
"ControlComparedToDescription": "比較成長於",
|
||||
"ControlFilterByDescription": "顯示全部、只有已存在資料、只有新資料或只有消失資料",
|
||||
"DatePeriodCombinationNotSupported": "無法在這個期間範圍組合內建立洞察。",
|
||||
"DayComparedToPreviousDay": "前一天",
|
||||
"DayComparedToPreviousWeek": "上週的同一天",
|
||||
"DayComparedToPreviousYear": "去年的同一天",
|
||||
"Filter": "過濾",
|
||||
"FilterIncreaserAndDecreaser": "增加或減少",
|
||||
"FilterOnlyDecreaser": "只看減少",
|
||||
"FilterOnlyDisappeared": "僅限消失資料",
|
||||
"FilterOnlyIncreaser": "只看增加",
|
||||
"FilterOnlyMovers": "僅限已存在資料",
|
||||
"FilterOnlyNew": "僅限新資料",
|
||||
"IgnoredChanges": "已忽略變更影響少於 %s 的訪問數。",
|
||||
"MonthComparedToPreviousMonth": "前一月",
|
||||
"MonthComparedToPreviousYear": "去年的同一個月",
|
||||
"MoversAndShakersWidgetTitle": "已存在和有影響力資料",
|
||||
"NoResultMatchesCriteria": "沒有符合規範的資料",
|
||||
"OverviewWidgetTitle": "洞察總覽",
|
||||
"TitleConsideredInsightsChanges": "此列至少增加或減少 %1$s 次訪問數(總訪問數 %3$s 中的 %2$s%%)。",
|
||||
"TitleConsideredInsightsGrowth": "下面的資料比對 %2$s 至少成長了 %1$s%%。",
|
||||
"TitleConsideredMoversAndShakersChanges": "已存在資料的衡量標準為當它們訪問數成長超過 %1$s%% 或訪問數降低少於 %2$s%%;新資料標準為訪問數增加超過 %3$s%%(%4$s);消失資料標準為訪問數降低少於 %5$s%%(%6$s)。",
|
||||
"TitleConsideredMoversAndShakersGrowth": "%1$s 比對 %4$s 從 %2$s 變更為 %3$s。基於這個結果,每列 %5$s%% 資料的進展是在預期的範圍內。",
|
||||
"TitleRowChangeDetails": "「%1$s」的%6$s從%2$s(%3$s)變更為%4$s(%5$s)。",
|
||||
"TitleRowDisappearedDetails": "「%1$s」比對 %4$s 減少了 %2$s,並且從%3$s中消失。",
|
||||
"TitleRowMoverAndShaker": "此列的影響比平均值高。",
|
||||
"TitleRowNewDetails": "「%1$s」比對 %3$s 增加了 %2$s,並且是新數據。",
|
||||
"WeekComparedToPreviousWeek": "前一週",
|
||||
"WidgetCategory": "洞察",
|
||||
"YearComparedToPreviousYear": "前一年"
|
||||
}
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
.dataTableVizInsight {
|
||||
th.orderBy {
|
||||
cursor:pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.dataTableVizInsight .dataTableFeatures,
|
||||
.insightsDataTable {
|
||||
|
||||
.controls {
|
||||
padding: 20px 10px 0 0;
|
||||
margin-bottom: 10px;
|
||||
border-top: 1px solid @theme-color-border;
|
||||
}
|
||||
|
||||
th.orderBy {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
th.orderBy.active {
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
.title {
|
||||
word-break: break-all;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
width: inherit;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.grown {
|
||||
color:green;
|
||||
}
|
||||
|
||||
.notGrown {
|
||||
color:red;
|
||||
}
|
||||
|
||||
.isMoverAndShaker {
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
<div class="pk-emptyDataTable">
|
||||
{{ 'Insights_DatePeriodCombinationNotSupported'|translate }}
|
||||
</div>
|
@ -0,0 +1,55 @@
|
||||
<div class="controls">
|
||||
|
||||
{% if period != 'range' %}
|
||||
|
||||
{{ 'Insights_ControlComparedToDescription'|translate }}
|
||||
|
||||
{% if period == 'day' %}
|
||||
<div class="row">
|
||||
<div class="col s12 m6 l4 input-field">
|
||||
<select size="1" name="comparedToXPeriodsAgo">
|
||||
<option value="1" {% if properties.compared_to_x_periods_ago == 1 %}selected{% endif %}>{{ 'Insights_DayComparedToPreviousDay'|translate }}</option>
|
||||
<option value="7" {% if properties.compared_to_x_periods_ago == 7 %}selected{% endif %}>{{ 'Insights_DayComparedToPreviousWeek'|translate }}</option>
|
||||
<option value="365" {% if properties.compared_to_x_periods_ago == 365 %}selected{% endif %}>{{ 'Insights_DayComparedToPreviousYear'|translate }}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{% elseif period == 'month' %}
|
||||
<div class="row">
|
||||
<div class="col s12 m6 l4 input-field">
|
||||
<select size="1" name="comparedToXPeriodsAgo">
|
||||
<option value="1" {% if properties.compared_to_x_periods_ago == 1 %}selected{% endif %}>{{ 'Insights_MonthComparedToPreviousMonth'|translate }}</option>
|
||||
<option value="12" {% if properties.compared_to_x_periods_ago == 12 %}selected{% endif %}>{{ 'Insights_MonthComparedToPreviousYear'|translate }}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{% elseif period == 'week' %}
|
||||
{{ 'Insights_WeekComparedToPreviousWeek'|translate }}
|
||||
{% elseif period == 'year' %}
|
||||
{{ 'Insights_YearComparedToPreviousYear'|translate }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{{ 'Insights_Filter'|translate }}
|
||||
|
||||
<div class="row">
|
||||
<div class="col s12 m4 l4 input-field">
|
||||
<select size="1" name="filterBy" title="{{ 'Insights_ControlFilterByDescription'|translate|e('html_attr') }}">
|
||||
<option {% if not properties.filter_by %}selected{% endif %} value="all">{{ 'General_All'|translate }}</option>
|
||||
<option {% if properties.filter_by == 'movers' %}selected{% endif %} value="movers">{{ 'Insights_FilterOnlyMovers'|translate }}</option>
|
||||
<option {% if properties.filter_by == 'new' %}selected{% endif %} value="new">{{ 'Insights_FilterOnlyNew'|translate }}</option>
|
||||
<option {% if properties.filter_by == 'disappeared' %}selected{% endif %} value="disappeared">{{ 'Insights_FilterOnlyDisappeared'|translate }}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col s12 m6 l4 input-field">
|
||||
<select size="1" name="showIncreaseOrDecrease" title="Show increaser and/or decreaser">
|
||||
<option value="both" {% if properties.limit_increaser and properties.limit_decreaser %}selected{%endif%}>{{ 'Insights_FilterIncreaserAndDecreaser'|translate }}</option>
|
||||
<option value="increase" {% if properties.limit_increaser and not properties.limit_decreaser %}selected{%endif%}>{{ 'Insights_FilterOnlyIncreaser'|translate }}</option>
|
||||
<option value="decrease" {% if not properties.limit_increaser and properties.limit_decreaser %}selected{%endif%}>{{ 'Insights_FilterOnlyDecreaser'|translate }}</option>
|
||||
</select>
|
||||
</div><div class="col s12 m1 l4"> </div>
|
||||
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,34 @@
|
||||
{% if cannotDisplayReport is defined and cannotDisplayReport %}
|
||||
{% include "@Insights/cannotDisplayReport.twig" %}
|
||||
{% else %}
|
||||
{% set metadata = dataTable.getAllTableMetadata%}
|
||||
{% set consideredGrowth = 'Insights_TitleConsideredInsightsGrowth'|translate(metadata.minGrowthPercentPositive, metadata.lastDate|prettyDate(metadata.period)) %}
|
||||
{% set consideredChanges = '' %}
|
||||
|
||||
{% if metadata.minChangeMovers and metadata.minChangeMovers > 1 %}
|
||||
{% set consideredChanges = 'Insights_IgnoredChanges'|translate(metadata.minChangeMovers) %}
|
||||
{% endif %}
|
||||
|
||||
<div class="insightsDataTable" title="{{ consideredGrowth|e('html_attr') }} {{ consideredChanges|e('html_attr') }}">
|
||||
{% if dataTable.getRowsCount %}
|
||||
<table class="dataTable">
|
||||
|
||||
<thead>
|
||||
{% include "@Insights/table_header.twig" %}
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for row in dataTable.getRows %}
|
||||
{% include "@Insights/table_row.twig" %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<div class="pk-emptyDataTable">
|
||||
{{ 'Insights_NoResultMatchesCriteria'|translate }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% include "@Insights/insightControls.twig" %}
|
||||
</div>
|
||||
{% endif %}
|
@ -0,0 +1,14 @@
|
||||
{% if reports.getRowsCount %}
|
||||
{% set allMetadata = reports.getFirstRow.getAllTableMetadata %}
|
||||
{% set consideredGrowth = 'Insights_TitleConsideredInsightsGrowth'|translate(allMetadata.minGrowthPercentPositive, allMetadata.lastDate|prettyDate(allMetadata.period)) %}
|
||||
|
||||
{% else %}
|
||||
{% set allMetadata = {} %}
|
||||
{% set consideredGrowth = '' %}
|
||||
{% endif %}
|
||||
|
||||
{% set consideredChanges = '' %}
|
||||
|
||||
{% include "@Insights/overviewWidget.twig" %}
|
||||
|
||||
|
@ -0,0 +1,13 @@
|
||||
{% if reports.getRowsCount %}
|
||||
{% set allMetadata = reports.getFirstRow.getAllTableMetadata %}
|
||||
|
||||
{% set consideredGrowth = 'Insights_TitleConsideredMoversAndShakersGrowth'|translate(allMetadata.metricName, allMetadata.lastTotalValue, allMetadata.totalValue, allMetadata.lastDate|prettyDate(allMetadata.period), allMetadata.evolutionTotal) %}
|
||||
{% set consideredChanges = 'Insights_TitleConsideredMoversAndShakersChanges'|translate(allMetadata.minGrowthPercentPositive, allMetadata.minGrowthPercentNegative, allMetadata.minNewPercent, allMetadata.minIncreaseNew, allMetadata.minDisappearedPercent, allMetadata.minDecreaseDisappeared, allMetadata.totalValue) %}
|
||||
{% else %}
|
||||
{% set allMetadata = {} %}
|
||||
|
||||
{% set consideredGrowth = '' %}
|
||||
{% set consideredChanges = '' %}
|
||||
{% endif %}
|
||||
|
||||
{% include "@Insights/overviewWidget.twig" %}
|
@ -0,0 +1,38 @@
|
||||
<div class="insightsDataTable dataTable"
|
||||
data-table-type="InsightsDataTable"
|
||||
data-table-onlyinsightsinit="1">
|
||||
{% if reports.getColumns|length > 0 %}
|
||||
|
||||
<table class="dataTable"
|
||||
title="{{ consideredGrowth|e('html_attr') }} {{ consideredChanges|e('html_attr') }}">
|
||||
{% for dataTable in reports.getDataTables() if dataTable.getRowsCount > 0 %}
|
||||
{% set metadata = dataTable.getAllTableMetadata %}
|
||||
|
||||
<thead>
|
||||
{% include "@Insights/table_header.twig" %}
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for row in dataTable.getRows %}
|
||||
{% include "@Insights/table_row.twig" %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
<script type="text/javascript" defer="defer">
|
||||
$(document).ready(function () {
|
||||
require('piwik/UI/DataTable').initNewDataTables();
|
||||
});
|
||||
</script>
|
||||
|
||||
{% else %}
|
||||
|
||||
<div class="pk-emptyDataTable"
|
||||
title="{{ consideredGrowth|e('html_attr') }} {{ consideredChanges|e('html_attr') }}">
|
||||
{{ 'Insights_NoResultMatchesCriteria'|translate }}
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
</div>
|
@ -0,0 +1,13 @@
|
||||
<tr>
|
||||
<th class="label first">
|
||||
{{ metadata.reportName }}
|
||||
</th>
|
||||
<th class="label orderBy {% if 'absolute' == properties.order_by %}active{% endif %}"
|
||||
name="orderBy" value="absolute">
|
||||
{{ metadata.metricName }}
|
||||
</th>
|
||||
<th class="label last orderBy {% if 'relative' == properties.order_by %}active{% endif %}"
|
||||
name="orderBy" value="relative">
|
||||
{{ 'MultiSites_Evolution'|translate }}
|
||||
</th>
|
||||
</tr>
|
@ -0,0 +1,29 @@
|
||||
{% if row.getColumn('isDisappeared') %}
|
||||
{% set rowTitle = 'Insights_TitleRowDisappearedDetails'|translate(row.getColumn('label'), row.getColumn('value_old'), metadata.date|prettyDate(metadata.period), metadata.lastDate|prettyDate(metadata.period)) %}
|
||||
{% elseif row.getColumn('isNew') %}
|
||||
{% set rowTitle = 'Insights_TitleRowNewDetails'|translate(row.getColumn('label'), row.getColumn('value_new'), metadata.lastDate|prettyDate(metadata.period)) %}
|
||||
{% else %}
|
||||
{% set rowTitle = 'Insights_TitleRowChangeDetails'|translate(row.getColumn('label'), row.getColumn('value_old'), metadata.lastDate|prettyDate(metadata.period), row.getColumn('value_new'), metadata.date|prettyDate(metadata.period), metadata.metricName) %}
|
||||
{% endif %}
|
||||
|
||||
{% set rowTitleShaker = '' %}
|
||||
{% if row.getColumn('isMoverAndShaker') %}
|
||||
{% set rowTitleShaker = 'Insights_TitleRowMoverAndShaker'|translate %}
|
||||
{% endif %}
|
||||
|
||||
<tr title="{{ rowTitle|e('html_attr') }} {{ rowTitleShaker|e('html_attr') }}"
|
||||
class="{% if row.getColumn('isMoverAndShaker') %}isMoverAndShaker{% endif %}">
|
||||
<td class="label">
|
||||
<span class="title">
|
||||
{{ row.getColumn('label') }}
|
||||
</span>
|
||||
</td>
|
||||
|
||||
{% if row.getColumn('grown') %}
|
||||
<td class="column">+{{ row.getColumn('difference') }}</td>
|
||||
<td class="column grown">+{{ row.getColumn('growth_percent') }}</td>
|
||||
{% else %}
|
||||
<td class="column">{{ row.getColumn('difference') }}</td>
|
||||
<td class="column notGrown">{{ row.getColumn('growth_percent') }}</td>
|
||||
{% endif %}
|
||||
</tr>
|
Reference in New Issue
Block a user