update Piwik to version 2.16 (fixes #91)
This commit is contained in:
parent
9abe039dc8
commit
47263617c5
55 changed files with 418860 additions and 226988 deletions
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
|
|
@ -29,12 +29,10 @@ class API extends \Piwik\Plugin\API
|
|||
Piwik::checkUserHasViewAccess($idSite);
|
||||
$archive = Archive::build($idSite, $period, $date, $segment);
|
||||
$dataTable = $archive->getDataTable(Archiver::PROVIDER_RECORD_NAME);
|
||||
$dataTable->filter('Sort', array(Metrics::INDEX_NB_VISITS));
|
||||
$dataTable->queueFilter('ColumnCallbackAddMetadata', array('label', 'url', __NAMESPACE__ . '\getHostnameUrl'));
|
||||
$dataTable->queueFilter('ColumnCallbackReplace', array('label', __NAMESPACE__ . '\getPrettyProviderName'));
|
||||
$dataTable->filter('ColumnCallbackAddMetadata', array('label', 'url', __NAMESPACE__ . '\getHostnameUrl'));
|
||||
$dataTable->filter('GroupBy', array('label', __NAMESPACE__ . '\getPrettyProviderName'));
|
||||
$dataTable->queueFilter('ReplaceColumnNames');
|
||||
$dataTable->queueFilter('ReplaceSummaryRowLabel');
|
||||
return $dataTable;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
|
|
@ -24,6 +24,16 @@ class Archiver extends \Piwik\Plugin\Archiver
|
|||
|
||||
public function aggregateMultipleReports()
|
||||
{
|
||||
$this->getProcessor()->aggregateDataTableRecords(array(self::PROVIDER_RECORD_NAME), $this->maximumRows);
|
||||
$columnsAggregationOperation = null;
|
||||
|
||||
$this->getProcessor()->aggregateDataTableRecords(
|
||||
array(self::PROVIDER_RECORD_NAME),
|
||||
$this->maximumRows,
|
||||
$maximumRowsInSubDataTable = null,
|
||||
$columnToSortByBeforeTruncation = null,
|
||||
$columnsAggregationOperation,
|
||||
$columnsToRenameAfterAggregation = null,
|
||||
$countRowsRecursive = array()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
107
www/analytics/plugins/Provider/Columns/Provider.php
Normal file
107
www/analytics/plugins/Provider/Columns/Provider.php
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
<?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\Provider\Columns;
|
||||
|
||||
use Piwik\Common;
|
||||
use Piwik\Network\IP;
|
||||
use Piwik\Network\IPUtils;
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugin\Dimension\VisitDimension;
|
||||
use Piwik\Plugin\Segment;
|
||||
use Piwik\Tracker\Action;
|
||||
use Piwik\Tracker\Request;
|
||||
use Piwik\Tracker\Visitor;
|
||||
use Piwik\Plugins\PrivacyManager\Config as PrivacyManagerConfig;
|
||||
use Piwik\Plugins\Provider\Provider as ProviderPlugin;
|
||||
|
||||
class Provider extends VisitDimension
|
||||
{
|
||||
protected $columnName = 'location_provider';
|
||||
|
||||
protected function configureSegments()
|
||||
{
|
||||
$segment = new Segment();
|
||||
$segment->setSegment('provider');
|
||||
$segment->setCategory('Visit Location');
|
||||
$segment->setName('Provider_ColumnProvider');
|
||||
$segment->setAcceptedValues('comcast.net, proxad.net, etc.');
|
||||
$this->addSegment($segment);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param Visitor $visitor
|
||||
* @param Action|null $action
|
||||
* @return mixed
|
||||
*/
|
||||
public function onNewVisit(Request $request, Visitor $visitor, $action)
|
||||
{
|
||||
// Adding &dp=1 will disable the provider plugin, this is an "unofficial" parameter used to speed up log importer
|
||||
$disableProvider = $request->getParam('dp');
|
||||
|
||||
if (!empty($disableProvider)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// if provider info has already been set, abort
|
||||
$locationValue = $visitor->getVisitorColumn('location_provider');
|
||||
if (!empty($locationValue)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$ip = $visitor->getVisitorColumn('location_ip');
|
||||
|
||||
$privacyConfig = new PrivacyManagerConfig();
|
||||
if (!$privacyConfig->useAnonymizedIpForVisitEnrichment) {
|
||||
$ip = $request->getIp();
|
||||
}
|
||||
|
||||
$ip = IPUtils::binaryToStringIP($ip);
|
||||
|
||||
// In case the IP was anonymized, we should not continue since the DNS reverse lookup will fail and this will slow down tracking
|
||||
if (substr($ip, -2, 2) == '.0') {
|
||||
Common::printDebug("IP Was anonymized so we skip the Provider DNS reverse lookup...");
|
||||
return false;
|
||||
}
|
||||
|
||||
$hostname = $this->getHost($ip);
|
||||
$hostnameExtension = ProviderPlugin::getCleanHostname($hostname);
|
||||
|
||||
// add the provider value in the table log_visit
|
||||
$locationProvider = substr($hostnameExtension, 0, 100);
|
||||
|
||||
return $locationProvider;
|
||||
}
|
||||
|
||||
public function getRequiredVisitFields()
|
||||
{
|
||||
return array('location_ip');
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the hostname given the IP address string
|
||||
*
|
||||
* @param string $ipStr IP Address
|
||||
* @return string hostname (or human-readable IP address)
|
||||
*/
|
||||
private function getHost($ipStr)
|
||||
{
|
||||
$ip = IP::fromStringIP($ipStr);
|
||||
|
||||
$host = $ip->getHostname();
|
||||
$host = ($host === null ? $ipStr : $host);
|
||||
|
||||
return trim(strtolower($host));
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return Piwik::translate('Provider_ColumnProvider');
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
|
|
@ -8,20 +8,10 @@
|
|||
*/
|
||||
namespace Piwik\Plugins\Provider;
|
||||
|
||||
use Piwik\ViewDataTable\Factory;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class Controller extends \Piwik\Plugin\Controller
|
||||
{
|
||||
/**
|
||||
* Provider
|
||||
* @return string|void
|
||||
*/
|
||||
public function getProvider()
|
||||
{
|
||||
return $this->renderReport(__FUNCTION__);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
|
|
@ -11,67 +11,26 @@ namespace Piwik\Plugins\Provider;
|
|||
use Exception;
|
||||
use Piwik\ArchiveProcessor;
|
||||
use Piwik\Common;
|
||||
use Piwik\Config;
|
||||
|
||||
use Piwik\Db;
|
||||
use Piwik\FrontController;
|
||||
use Piwik\IP;
|
||||
use Piwik\Menu\MenuMain;
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugin\ViewDataTable;
|
||||
use Piwik\Plugins\PrivacyManager\Config as PrivacyManagerConfig;
|
||||
use Piwik\WidgetsList;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class Provider extends \Piwik\Plugin
|
||||
{
|
||||
/**
|
||||
* @see Piwik\Plugin::getListHooksRegistered
|
||||
* @see Piwik\Plugin::registerEvents
|
||||
*/
|
||||
public function getListHooksRegistered()
|
||||
public function registerEvents()
|
||||
{
|
||||
$hooks = array(
|
||||
'Tracker.newVisitorInformation' => 'enrichVisitWithProviderInfo',
|
||||
'WidgetsList.addWidgets' => 'addWidget',
|
||||
'Menu.Reporting.addItems' => 'addMenu',
|
||||
'API.getReportMetadata' => 'getReportMetadata',
|
||||
'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
|
||||
'ViewDataTable.configure' => 'configureViewDataTable',
|
||||
);
|
||||
return $hooks;
|
||||
}
|
||||
|
||||
public function getReportMetadata(&$reports)
|
||||
{
|
||||
$reports[] = array(
|
||||
'category' => Piwik::translate('General_Visitors'),
|
||||
'name' => Piwik::translate('Provider_ColumnProvider'),
|
||||
'module' => 'Provider',
|
||||
'action' => 'getProvider',
|
||||
'dimension' => Piwik::translate('Provider_ColumnProvider'),
|
||||
'documentation' => Piwik::translate('Provider_ProviderReportDocumentation', '<br />'),
|
||||
'order' => 50
|
||||
);
|
||||
}
|
||||
|
||||
public function getSegmentsMetadata(&$segments)
|
||||
{
|
||||
$segments[] = array(
|
||||
'type' => 'dimension',
|
||||
'category' => 'Visit Location',
|
||||
'name' => Piwik::translate('Provider_ColumnProvider'),
|
||||
'segment' => 'provider',
|
||||
'acceptedValues' => 'comcast.net, proxad.net, etc.',
|
||||
'sqlSegment' => 'log_visit.location_provider'
|
||||
return array(
|
||||
'Live.getAllVisitorDetails' => 'extendVisitorDetails'
|
||||
);
|
||||
}
|
||||
|
||||
public function install()
|
||||
{
|
||||
// add column hostname / hostname ext in the visit table
|
||||
$query = "ALTER IGNORE TABLE `" . Common::prefixTable('log_visit') . "` ADD `location_provider` VARCHAR( 100 ) NULL";
|
||||
$query = "ALTER TABLE `" . Common::prefixTable('log_visit') . "` ADD `location_provider` VARCHAR( 100 ) NULL";
|
||||
|
||||
// if the column already exist do not throw error. Could be installed twice...
|
||||
try {
|
||||
|
|
@ -83,6 +42,15 @@ class Provider extends \Piwik\Plugin
|
|||
}
|
||||
}
|
||||
|
||||
public function extendVisitorDetails(&$visitor, $details)
|
||||
{
|
||||
$instance = new Visitor($details);
|
||||
|
||||
$visitor['provider'] = $instance->getProvider();
|
||||
$visitor['providerName'] = $instance->getProviderName();
|
||||
$visitor['providerUrl'] = $instance->getProviderUrl();
|
||||
}
|
||||
|
||||
public function uninstall()
|
||||
{
|
||||
// add column hostname / hostname ext in the visit table
|
||||
|
|
@ -90,56 +58,15 @@ class Provider extends \Piwik\Plugin
|
|||
Db::exec($query);
|
||||
}
|
||||
|
||||
public function addWidget()
|
||||
{
|
||||
WidgetsList::add('General_Visitors', 'Provider_WidgetProviders', 'Provider', 'getProvider');
|
||||
}
|
||||
|
||||
public function addMenu()
|
||||
{
|
||||
MenuMain::getInstance()->rename('General_Visitors', 'UserCountry_SubmenuLocations',
|
||||
'General_Visitors', 'Provider_SubmenuLocationsProvider');
|
||||
}
|
||||
|
||||
public function postLoad()
|
||||
{
|
||||
Piwik::addAction('Template.footerUserCountry', array('Piwik\Plugins\Provider\Provider', 'footerUserCountry'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs the provider in the log_visit table
|
||||
*/
|
||||
public function enrichVisitWithProviderInfo(&$visitorInfo, \Piwik\Tracker\Request $request)
|
||||
public static function footerUserCountry(&$out)
|
||||
{
|
||||
// if provider info has already been set, abort
|
||||
if (!empty($visitorInfo['location_provider'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$privacyConfig = new PrivacyManagerConfig();
|
||||
$ip = IP::N2P($privacyConfig->useAnonymizedIpForVisitEnrichment ? $visitorInfo['location_ip'] : $request->getIp());
|
||||
|
||||
// In case the IP was anonymized, we should not continue since the DNS reverse lookup will fail and this will slow down tracking
|
||||
if (substr($ip, -2, 2) == '.0') {
|
||||
Common::printDebug("IP Was anonymized so we skip the Provider DNS reverse lookup...");
|
||||
return;
|
||||
}
|
||||
|
||||
$hostname = $this->getHost($ip);
|
||||
$hostnameExtension = $this->getCleanHostname($hostname);
|
||||
|
||||
// add the provider value in the table log_visit
|
||||
$visitorInfo['location_provider'] = $hostnameExtension;
|
||||
$visitorInfo['location_provider'] = substr($visitorInfo['location_provider'], 0, 100);
|
||||
|
||||
// improve the country using the provider extension if valid
|
||||
$hostnameDomain = substr($hostnameExtension, 1 + strrpos($hostnameExtension, '.'));
|
||||
if ($hostnameDomain == 'uk') {
|
||||
$hostnameDomain = 'gb';
|
||||
}
|
||||
if (array_key_exists($hostnameDomain, Common::getCountriesList())) {
|
||||
$visitorInfo['location_country'] = $hostnameDomain;
|
||||
}
|
||||
$out .= '<h2 piwik-enriched-headline>' . Piwik::translate('Provider_WidgetProviders') . '</h2>';
|
||||
$out .= FrontController::getInstance()->fetchDispatch('Provider', 'getProvider');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -150,7 +77,7 @@ class Provider extends \Piwik\Plugin
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
private function getCleanHostname($hostname)
|
||||
public static function getCleanHostname($hostname)
|
||||
{
|
||||
$extToExclude = array(
|
||||
'com', 'net', 'org', 'co'
|
||||
|
|
@ -166,19 +93,19 @@ class Provider extends \Piwik\Plugin
|
|||
|
||||
/**
|
||||
* Triggered when prettifying a hostname string.
|
||||
*
|
||||
* This event can be used to customize the way a hostname is displayed in the
|
||||
*
|
||||
* This event can be used to customize the way a hostname is displayed in the
|
||||
* Providers report.
|
||||
*
|
||||
* **Example**
|
||||
*
|
||||
*
|
||||
* public function getCleanHostname(&$cleanHostname, $hostname)
|
||||
* {
|
||||
* if ('fvae.VARG.ceaga.site.co.jp' == $hostname) {
|
||||
* $cleanHostname = 'site.co.jp';
|
||||
* }
|
||||
* }
|
||||
*
|
||||
*
|
||||
* @param string &$cleanHostname The hostname string to display. Set by the event
|
||||
* handler.
|
||||
* @param string $hostname The full hostname.
|
||||
|
|
@ -200,37 +127,4 @@ class Provider extends \Piwik\Plugin
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the hostname given the IP address string
|
||||
*
|
||||
* @param string $ip IP Address
|
||||
* @return string hostname (or human-readable IP address)
|
||||
*/
|
||||
private function getHost($ip)
|
||||
{
|
||||
return trim(strtolower(@IP::getHostByAddr($ip)));
|
||||
}
|
||||
|
||||
static public function footerUserCountry(&$out)
|
||||
{
|
||||
$out = '<div>
|
||||
<h2>' . Piwik::translate('Provider_WidgetProviders') . '</h2>';
|
||||
$out .= FrontController::getInstance()->fetchDispatch('Provider', 'getProvider');
|
||||
$out .= '</div>';
|
||||
}
|
||||
|
||||
public function configureViewDataTable(ViewDataTable $view)
|
||||
{
|
||||
switch ($view->requestConfig->apiMethodToRequestDataTable) {
|
||||
case 'Provider.getProvider':
|
||||
$this->configureViewForGetProvider($view);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private function configureViewForGetProvider(ViewDataTable $view)
|
||||
{
|
||||
$view->requestConfig->filter_limit = 5;
|
||||
$view->config->addTranslation('label', Piwik::translate('Provider_ColumnProvider'));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
43
www/analytics/plugins/Provider/Reports/GetProvider.php
Normal file
43
www/analytics/plugins/Provider/Reports/GetProvider.php
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
<?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\Provider\Reports;
|
||||
|
||||
use Piwik\Common;
|
||||
use Piwik\Piwik;
|
||||
use Piwik\Plugin\Report;
|
||||
use Piwik\Plugin\ViewDataTable;
|
||||
use Piwik\Plugins\Provider\Columns\Provider;
|
||||
|
||||
class GetProvider extends Report
|
||||
{
|
||||
protected function init()
|
||||
{
|
||||
$this->category = 'General_Visitors';
|
||||
$this->dimension = new Provider();
|
||||
$this->name = Piwik::translate('Provider_ColumnProvider');
|
||||
$this->documentation = Piwik::translate('Provider_ProviderReportDocumentation', '<br />');
|
||||
$this->order = 50;
|
||||
$this->widgetTitle = 'Provider_WidgetProviders';
|
||||
}
|
||||
|
||||
public function configureView(ViewDataTable $view)
|
||||
{
|
||||
$view->requestConfig->filter_limit = 5;
|
||||
$view->config->addTranslation('label', $this->dimension->getName());
|
||||
|
||||
$message = Piwik::translate("General_Note") . ': ' . Piwik::translate('Provider_ProviderReportFooter', '');
|
||||
if (! Common::getRequestVar('disableLink', 0, 'int')) {
|
||||
$message .= ' ' . Piwik::translate(
|
||||
'General_SeeThisFaq',
|
||||
array('<a href="http://piwik.org/faq/general/faq_52/" rel="noreferrer" target="_blank">', '</a>')
|
||||
);
|
||||
}
|
||||
$view->config->show_footer_message = $message;
|
||||
}
|
||||
}
|
||||
41
www/analytics/plugins/Provider/Visitor.php
Normal file
41
www/analytics/plugins/Provider/Visitor.php
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
<?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\Provider;
|
||||
|
||||
use Piwik\Piwik;
|
||||
|
||||
require_once PIWIK_INCLUDE_PATH . '/plugins/Provider/functions.php';
|
||||
|
||||
class Visitor
|
||||
{
|
||||
private $details = array();
|
||||
|
||||
public function __construct($details)
|
||||
{
|
||||
$this->details = $details;
|
||||
}
|
||||
|
||||
public function getProvider()
|
||||
{
|
||||
if (isset($this->details['location_provider'])) {
|
||||
return $this->details['location_provider'];
|
||||
}
|
||||
return Piwik::translate('General_Unknown');
|
||||
}
|
||||
|
||||
public function getProviderName()
|
||||
{
|
||||
return getPrettyProviderName($this->getProvider());
|
||||
}
|
||||
|
||||
public function getProviderUrl()
|
||||
{
|
||||
return getHostnameUrl(@$this->details['location_provider']);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
/**
|
||||
* Piwik - Open source web analytics
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
|
|
@ -20,12 +20,9 @@ use Piwik\Piwik;
|
|||
*/
|
||||
function getHostnameName($in)
|
||||
{
|
||||
if (empty($in)) {
|
||||
if (empty($in) || strtolower($in) === 'ip') {
|
||||
return Piwik::translate('General_Unknown');
|
||||
}
|
||||
if (strtolower($in) === 'ip') {
|
||||
return "IP";
|
||||
}
|
||||
if (($positionDot = strpos($in, '.')) !== false) {
|
||||
return ucfirst(substr($in, 0, $positionDot));
|
||||
}
|
||||
|
|
@ -40,14 +37,8 @@ function getHostnameName($in)
|
|||
*/
|
||||
function getHostnameUrl($in)
|
||||
{
|
||||
if ($in == DataTable::LABEL_SUMMARY_ROW) {
|
||||
return false;
|
||||
}
|
||||
if (empty($in)
|
||||
|| strtolower($in) === 'ip'
|
||||
) {
|
||||
// link to "what does 'IP' mean?"
|
||||
return "http://piwik.org/faq/general/#faq_52";
|
||||
if ($in == DataTable::LABEL_SUMMARY_ROW || empty($in) || strtolower($in) === 'ip') {
|
||||
return null;
|
||||
}
|
||||
|
||||
// if the name looks like it can be used in a URL, use it in one, otherwise link to startpage
|
||||
|
|
|
|||
6
www/analytics/plugins/Provider/lang/am.json
Normal file
6
www/analytics/plugins/Provider/lang/am.json
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"Provider": {
|
||||
"ColumnProvider": "አቅራቢ",
|
||||
"WidgetProviders": "አቅራቢዎች"
|
||||
}
|
||||
}
|
||||
9
www/analytics/plugins/Provider/lang/ar.json
Normal file
9
www/analytics/plugins/Provider/lang/ar.json
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"Provider": {
|
||||
"ColumnProvider": "مزود الخدمة",
|
||||
"PluginDescription": "يوضح مزود خدمة الإنترنت للزوار.",
|
||||
"ProviderReportDocumentation": "يُظهر هذا التقرير ما مزود خدمة الإنترنت الذي استخدمه زوارك للوصول إلى الموقع. يمكنك الضغط على اسم المزوّد لمزيد من التفاصيل. %s إذا لم يتمكن Piwik من تحديد مزود الزائر فسيظهر في القائمة باسم IP.",
|
||||
"WidgetProviders": "مزودو الخدمة",
|
||||
"ProviderReportFooter": "مزود غير معروف تعني أنه لم يتم العثور على عنوان IP للمزود."
|
||||
}
|
||||
}
|
||||
7
www/analytics/plugins/Provider/lang/be.json
Normal file
7
www/analytics/plugins/Provider/lang/be.json
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"Provider": {
|
||||
"ColumnProvider": "Правайдар",
|
||||
"ProviderReportDocumentation": "Гэтая справаздача паказвае, якія інтэрнэт-правайдэры наведвальнікаў выкарыстоўваюцца для доступу да вэб-сайту. Вы можаце націснуць на імя правайдэра для больш падрабязнай інфармацыі. %s Калі Piwik не можа вызначыць, правайдэра наведвальніка, ён паказваецца ў якасці IP-адраса.",
|
||||
"WidgetProviders": "Правайдары"
|
||||
}
|
||||
}
|
||||
7
www/analytics/plugins/Provider/lang/bg.json
Normal file
7
www/analytics/plugins/Provider/lang/bg.json
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"Provider": {
|
||||
"ColumnProvider": "Интернет доставчик",
|
||||
"ProviderReportDocumentation": "Отчетът показва кои доставчици на интернет услуги използват вашите потребители за достъп до уеб сайта. Можете да щракнете върху името на доставчика за повече детайли. %s Ако Piwik не може да определи доставчика на потребителя, той е показан само като IP.",
|
||||
"WidgetProviders": "Доставчици"
|
||||
}
|
||||
}
|
||||
7
www/analytics/plugins/Provider/lang/ca.json
Normal file
7
www/analytics/plugins/Provider/lang/ca.json
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"Provider": {
|
||||
"ColumnProvider": "Proveïdor",
|
||||
"ProviderReportDocumentation": "Aquest informe mostra quin Proveïdor d'Internet han utiltizat els vostres visitants per accedir al lloc. Podeu click al nom del proveïdor per més detalls. %s Si el Piwik no pot determinar el proveïdor del visitant, es mostra la seva adreça IP.",
|
||||
"WidgetProviders": "Proveïdors"
|
||||
}
|
||||
}
|
||||
9
www/analytics/plugins/Provider/lang/cs.json
Normal file
9
www/analytics/plugins/Provider/lang/cs.json
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"Provider": {
|
||||
"ColumnProvider": "Poskytovatel",
|
||||
"PluginDescription": "Hlásí poskytovatele internetového připojení návštěvníků.",
|
||||
"ProviderReportDocumentation": "Toto hlášení poskytuje informace o tom, jakého poskytovatele internetového připojení vaši návštěvníci při přístupu na stránky použili. Pokud kliknete na jméno poskytovatele, zobrazí se podrobnosti. %s Pokud Piwik nebyl schopen poskytovatele zjistit, je zobrazen jako IP.",
|
||||
"WidgetProviders": "Poskytovatelé",
|
||||
"ProviderReportFooter": "Neznámý poskytovatel znamená, že IP adresu nebylo možné vyhledat."
|
||||
}
|
||||
}
|
||||
9
www/analytics/plugins/Provider/lang/da.json
Normal file
9
www/analytics/plugins/Provider/lang/da.json
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"Provider": {
|
||||
"ColumnProvider": "Udbyder",
|
||||
"PluginDescription": "Rapporterer den besøgendes internetudbyder.",
|
||||
"ProviderReportDocumentation": "Rapporten viser hvilken Internet udbyder de besøgende bruger. Klik på en udbyders navn for flere oplysninger. %s Hvis Piwik ikke kan bestemme besøgendes udbyder, er den opført som IP.",
|
||||
"WidgetProviders": "Udbydere",
|
||||
"ProviderReportFooter": "Ukendt udbyder betyder at IP-adressen kunne ikke slås op."
|
||||
}
|
||||
}
|
||||
9
www/analytics/plugins/Provider/lang/de.json
Normal file
9
www/analytics/plugins/Provider/lang/de.json
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"Provider": {
|
||||
"ColumnProvider": "Provider",
|
||||
"PluginDescription": "Liefert den Internet Service Provider der Besucher.",
|
||||
"ProviderReportDocumentation": "Dieser Bericht zeigt Ihnen, welche Internetanbieter die Besucher Ihrer Website nutzen. Sie können auf den Namen eines Anbieters klicken, um mehr Informationen dazu zu erhalten. %s Wenn Piwik den Internetanbieter eines Besuchers nicht feststellen kann, wird er unter IP gelistet.",
|
||||
"WidgetProviders": "Provider",
|
||||
"ProviderReportFooter": "Unbekannter Provider bedeutet die IP-Adresse konnte nicht aufgelöst werden."
|
||||
}
|
||||
}
|
||||
9
www/analytics/plugins/Provider/lang/el.json
Normal file
9
www/analytics/plugins/Provider/lang/el.json
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"Provider": {
|
||||
"ColumnProvider": "Πάροχος",
|
||||
"PluginDescription": "Αναφέρει τον πάροχο διαδικτύου των επισκεπτών σας.",
|
||||
"ProviderReportDocumentation": "Αυτή η αναφορά εμφανίζει ποιος Παροχέας Υπηρεσιών Διαδικτύου (ISP) χρησιμοποιείτε από τους επισκέπτες σας για να επισκεφθούν τις ιστοσελίδες σας. Μπορείτε να πατήσετε σε ένα όνομα Παροχέα για περισσότερες λεπτομέρειες. %s Αν το Piwik δεν μπορεί να ανιχνεύσει το παροχέα του επισκέπτη, χαρακτηρίζεται ως IP.",
|
||||
"WidgetProviders": "Πάροχοι",
|
||||
"ProviderReportFooter": "Άγνωστος πάροχος σημαίνει ότι δεν ήταν δυνατή η εύρεση της διεύθυνσης IP."
|
||||
}
|
||||
}
|
||||
9
www/analytics/plugins/Provider/lang/en.json
Normal file
9
www/analytics/plugins/Provider/lang/en.json
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"Provider": {
|
||||
"ColumnProvider": "Provider",
|
||||
"PluginDescription": "Reports the Internet Service Provider of the visitors.",
|
||||
"ProviderReportDocumentation": "This report shows which Internet Service Providers your visitors used to access the website. You can click on a provider name for more details. %s If Piwik can't determine a visitor's provider, it is listed as IP.",
|
||||
"WidgetProviders": "Providers",
|
||||
"ProviderReportFooter": "Unknown provider means the IP address could not be looked up."
|
||||
}
|
||||
}
|
||||
9
www/analytics/plugins/Provider/lang/es.json
Normal file
9
www/analytics/plugins/Provider/lang/es.json
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"Provider": {
|
||||
"ColumnProvider": "Proveedor",
|
||||
"PluginDescription": "Informa el proveedor del servicio de internet de sus visitantes.",
|
||||
"ProviderReportDocumentation": "Este informe muestra que Proveedores de Servicios de Internet (ISPs) usan sus visitantes para acceder al sitio de internet. Puede hacer clic en el nombre de un proveedor para más detalles. %s Si Piwik no puede determinar el proveedor de un visitante, será puesto como la IP.",
|
||||
"WidgetProviders": "Proveedores",
|
||||
"ProviderReportFooter": "Proveedor desconocido significa que la dirección IP no puede ser identificada."
|
||||
}
|
||||
}
|
||||
6
www/analytics/plugins/Provider/lang/et.json
Normal file
6
www/analytics/plugins/Provider/lang/et.json
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"Provider": {
|
||||
"ColumnProvider": "Teenusepakkuja",
|
||||
"WidgetProviders": "Teenusepakkujad"
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue