update Piwik to version 2.16 (fixes #91)

This commit is contained in:
oliver 2016-04-10 18:55:57 +02:00
commit d885a4baa9
5833 changed files with 418860 additions and 226988 deletions

View file

@ -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;
}
}

View file

@ -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()
);
}
}

View 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');
}
}

View file

@ -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__);
}
}

View file

@ -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'));
}
}

View 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;
}
}

View 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']);
}
}

View file

@ -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

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "አቅራቢ",
"WidgetProviders": "አቅራቢዎች"
}
}

View file

@ -0,0 +1,9 @@
{
"Provider": {
"ColumnProvider": "مزود الخدمة",
"PluginDescription": "يوضح مزود خدمة الإنترنت للزوار.",
"ProviderReportDocumentation": "يُظهر هذا التقرير ما مزود خدمة الإنترنت الذي استخدمه زوارك للوصول إلى الموقع. يمكنك الضغط على اسم المزوّد لمزيد من التفاصيل. %s إذا لم يتمكن Piwik من تحديد مزود الزائر فسيظهر في القائمة باسم IP.",
"WidgetProviders": "مزودو الخدمة",
"ProviderReportFooter": "مزود غير معروف تعني أنه لم يتم العثور على عنوان IP للمزود."
}
}

View file

@ -0,0 +1,7 @@
{
"Provider": {
"ColumnProvider": "Правайдар",
"ProviderReportDocumentation": "Гэтая справаздача паказвае, якія інтэрнэт-правайдэры наведвальнікаў выкарыстоўваюцца для доступу да вэб-сайту. Вы можаце націснуць на імя правайдэра для больш падрабязнай інфармацыі. %s Калі Piwik не можа вызначыць, правайдэра наведвальніка, ён паказваецца ў якасці IP-адраса.",
"WidgetProviders": "Правайдары"
}
}

View file

@ -0,0 +1,7 @@
{
"Provider": {
"ColumnProvider": "Интернет доставчик",
"ProviderReportDocumentation": "Отчетът показва кои доставчици на интернет услуги използват вашите потребители за достъп до уеб сайта. Можете да щракнете върху името на доставчика за повече детайли. %s Ако Piwik не може да определи доставчика на потребителя, той е показан само като IP.",
"WidgetProviders": "Доставчици"
}
}

View 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"
}
}

View 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."
}
}

View 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."
}
}

View 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."
}
}

View file

@ -0,0 +1,9 @@
{
"Provider": {
"ColumnProvider": "Πάροχος",
"PluginDescription": "Αναφέρει τον πάροχο διαδικτύου των επισκεπτών σας.",
"ProviderReportDocumentation": "Αυτή η αναφορά εμφανίζει ποιος Παροχέας Υπηρεσιών Διαδικτύου (ISP) χρησιμοποιείτε από τους επισκέπτες σας για να επισκεφθούν τις ιστοσελίδες σας. Μπορείτε να πατήσετε σε ένα όνομα Παροχέα για περισσότερες λεπτομέρειες. %s Αν το Piwik δεν μπορεί να ανιχνεύσει το παροχέα του επισκέπτη, χαρακτηρίζεται ως IP.",
"WidgetProviders": "Πάροχοι",
"ProviderReportFooter": "Άγνωστος πάροχος σημαίνει ότι δεν ήταν δυνατή η εύρεση της διεύθυνσης IP."
}
}

View 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."
}
}

View 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."
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "Teenusepakkuja",
"WidgetProviders": "Teenusepakkujad"
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "Hornitzailea",
"WidgetProviders": "Hornitzaileak"
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "ارائه دهنده خدمات",
"WidgetProviders": "ارائه دهندگان"
}
}

View file

@ -0,0 +1,7 @@
{
"Provider": {
"ColumnProvider": "Palveluntarjoajat",
"ProviderReportDocumentation": "Tämä raportti näyttää, mitä internetin toimittajia kävijäsi käyttivät sivuillasi. Saat lisätietoja klikkaamalla toimittajan nimeä. %s Jos Piwik ei tunnista toimittajan nimeä, kävijästä näytetään IP.",
"WidgetProviders": "Palveluntarjoajat"
}
}

View file

@ -0,0 +1,9 @@
{
"Provider": {
"ColumnProvider": "FAI",
"PluginDescription": "Rapporte le Fournisseur d'Accès Internet des visiteurs.",
"ProviderReportDocumentation": "Ce rapport affiche quel Fournisseur d'Accès à Internet vos visiteurs ont utilisé pour accéder à votre site web. Vous pouvez cliquer sur le nom d'un FAI pour plus de détails. %s Si Piwik ne peut déterminer le FAI d'un visiteur, il est listé en tant qu'IP.",
"WidgetProviders": "Fournisseurs d'accès à Internet",
"ProviderReportFooter": "Fournisseur d'accès inconnu signifie que l'adresse IP ne peut pas être déterminée"
}
}

View file

@ -0,0 +1,5 @@
{
"Provider": {
"WidgetProviders": "Provedores"
}
}

View file

@ -0,0 +1,9 @@
{
"Provider": {
"ColumnProvider": "प्रदाता",
"PluginDescription": "आगंतुकों की इंटरनेट सेवा प्रदाता रिपोर्ट।",
"ProviderReportDocumentation": "इस रिपोर्ट से पता चलता है आपके आगंतुकों को वेबसाइट का उपयोग करने के लिए जो इंटरनेट सेवा प्रदाता इस्तेमाल किया है. आप अधिक जानकारी के लिए एक प्रदाता के नाम पर क्लिक कर सकते हैं. %sPiwik एक आगंतुक प्रदाता निर्धारित नहीं कर सकते हैं, यह आईपी के रूप में सूचीबद्ध किया जाता है.",
"WidgetProviders": "प्रदाता",
"ProviderReportFooter": "अज्ञात प्रदाता IP पते को देखा नहीं जा सकता है इसका मतलब है।"
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "Internetszolgáltató",
"WidgetProviders": "Internetszolgáltatók"
}
}

View file

@ -0,0 +1,7 @@
{
"Provider": {
"ColumnProvider": "Penyedia",
"ProviderReportDocumentation": "Laporan ini menampilkan Penyedia Layanan Internet yang digunakan oleh pengunjung Anda untuk mengunjungi situs. Anda dapat mengeklik nama penyedia untuk melihat rinciannya. %s Bila Piwik tak dapat menentukan penyedia pengunjung, ini akan ditampikan sebagai IP.",
"WidgetProviders": "Penyedia"
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "Veitandi",
"WidgetProviders": "Veitendur"
}
}

View file

@ -0,0 +1,9 @@
{
"Provider": {
"ColumnProvider": "Provider",
"PluginDescription": "Restituisce gli Internet Service Provider dei visitatori.",
"ProviderReportDocumentation": "Questo report mostra quali Internet Service Provider i tuoi visitatori hanno utilizzato per accedere al sito web. È possibile fare clic su un nome per maggiori dettagli. %s Se Piwik non può determinare il provider di un visitatore, questo viene elencato come IP.",
"WidgetProviders": "Providers",
"ProviderReportFooter": "Provider sconosciuto significa che non è possibile trovare l'indirizzo IP"
}
}

View file

@ -0,0 +1,9 @@
{
"Provider": {
"ColumnProvider": "プロバイダ",
"PluginDescription": "ビジターのインターネットサービスプロバイダを報告します",
"ProviderReportDocumentation": "このリポートは、ウェブサイトにアクセスするビジターが使っているインターネットサービスプロバイダを示しています。詳細については、プロバイダ名をクリックしてください。 %s Piwik がビジターのプロバイダを判別できない場合は、IPとして表示されます。",
"WidgetProviders": "プロバイダ",
"ProviderReportFooter": "未知のプロバイダーとは IP アドレスが検索できなかったことを意味します。"
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "პროვაიდერი",
"WidgetProviders": "პროვაიდერები"
}
}

View file

@ -0,0 +1,9 @@
{
"Provider": {
"ColumnProvider": "공급자",
"PluginDescription": "방문자의 인터넷 서비스 공급자 확인",
"ProviderReportDocumentation": "이 보고서는 웹사이트를 방문하는 방문자가 사용하고있는 인터넷 서비스 공급자를 보여줍니다. 자세한 내용은 공급자 이름을 클릭하세요. %s Piwik가 방문자의 공급자를 확인할 수없는 경우는 IP로 표시됩니다.",
"WidgetProviders": "공급자",
"ProviderReportFooter": "알 수 없는 공급자는 해당 IP 주소가 검색되지 않았음을 의미합니다."
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "IP tiekėjas",
"WidgetProviders": "IP tiekėjai"
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "Pakalpojumu sniedzējs",
"WidgetProviders": "Pakalpojumu sniedzēji"
}
}

View file

@ -0,0 +1,9 @@
{
"Provider": {
"ColumnProvider": "Internett-leverandør",
"PluginDescription": "Rapporterer internett-leverandøren (ISP-en) til besøkere.",
"ProviderReportDocumentation": "Denne rapporten viser hvilken internett-leverandør (ISP) dine besøkere bruker for å besøke nettstedet. Du kan klikke på et ISP-navn for flere detaljer. %s Hvis Piwik ikke kan finne en besøkers ISP, listes den som IP.",
"WidgetProviders": "Internett-leverandører",
"ProviderReportFooter": "Ukjent internett-leverandør betyr at IP-adressen ikke kunne slås opp."
}
}

View file

@ -0,0 +1,9 @@
{
"Provider": {
"ColumnProvider": "Provider",
"PluginDescription": "Rapporteert de Internet Service Provider van de bezoekers.",
"ProviderReportDocumentation": "Dit rapport toont de Internet Service Providers die uw bezoekers gebruiken om de website te bezoeken. Klik op een provider naam voor meer informatie. %s Als Piwik de naam van de provider niet kan achterhalen, dan wordt deze vermeld als IP.",
"WidgetProviders": "Providers",
"ProviderReportFooter": "Onbekende provider betekent dat het IP adres niet kon worden opgezocht."
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "Dostawca",
"WidgetProviders": "Dostawcy"
}
}

View file

@ -0,0 +1,9 @@
{
"Provider": {
"ColumnProvider": "Provedor",
"PluginDescription": "Informa o Provedor de Serviços de Internet dos visitantes.",
"ProviderReportDocumentation": "Este relatório mostra como o Internet Service Providers de seus visitantes -e usado para acessar o site. Você pode clicar no nome de um provedor para obter mais detalhes. %s Se o Piwik não puder determinar o fornecedor de um visitante, ele será listado como IP.",
"WidgetProviders": "Provedores",
"ProviderReportFooter": "Provedor desconhecido significa que o endereço de IP não pôde ser visto."
}
}

View file

@ -0,0 +1,7 @@
{
"Provider": {
"ColumnProvider": "Fornecedor",
"ProviderReportDocumentation": "Este relatório mostra quais os ISPs que os seus visitantes usaram para aceder ao website. Você pode clicar num nome do ISP para obter mais detalhes. %s Se o Piwik não pode determinar o ISP do visitante, é listado como IP.",
"WidgetProviders": "Fornecedores"
}
}

View file

@ -0,0 +1,7 @@
{
"Provider": {
"ColumnProvider": "Operator",
"ProviderReportDocumentation": "Acest raport arată care furnizorii de servicii de Internet vizitatorii dvs. au folosit pentru a accesa site-ul. Puteți face clic pe un nume de furnizor pentru mai multe detalii. %s Daca Piwik nu poate determina furnizor un vizitator, acesta este listat ca IP.",
"WidgetProviders": "Provideri"
}
}

View file

@ -0,0 +1,8 @@
{
"Provider": {
"ColumnProvider": "Провайдер",
"PluginDescription": "Сообщает о поставщике интернет услуг (ISP) у посетителей.",
"ProviderReportDocumentation": "Этот отчет показывает, какие интернет-провайдеры у посетителей вашего сайта. Вы можете кликнуть на имя провайдера, чтобы посмотреть детали. %s Если Piwik не может определить провайдера, отображается просто IP.",
"WidgetProviders": "Провайдеры"
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "Poskytovateľ",
"WidgetProviders": "Poskytovatelia"
}
}

View file

@ -0,0 +1,9 @@
{
"Provider": {
"ColumnProvider": "Ponudnik",
"PluginDescription": "Poročilo o obiskovalčevem ponudniku dostopa do internetnih storitev.",
"ProviderReportDocumentation": "To poročilo prikazuje ponudnike dostopa do internetnih storitve prek katerih so obiskovalci dostopali do vaše spletne strani. Za podrobnosti lahko kliknete na ime posameznega ponudnika. %s Če Piwik ne more določiti obiskovalčevega ponudnika, je le-ta naveden kot IP naslov.",
"WidgetProviders": "Ponudniki",
"ProviderReportFooter": "Neznan ponudnik pomeni, da IP številke ni bilo mogoče povezati s ponudnikom."
}
}

View file

@ -0,0 +1,7 @@
{
"Provider": {
"ColumnProvider": "Mundësues",
"ProviderReportDocumentation": "Ky raport ju tregon cilët Mundësuesa Shërbimi Internet kanë përdorur vizitorët tuaj për të hyrë te site-i web. Për më tepër hollësi mund të klikoni mbi emrin e një mundësuesi. %s Nëse Piwik nuk arrin ta përcaktojë mundësuesin për një vizitor, e tregon thjesht si IP.",
"WidgetProviders": "Mundësuesa"
}
}

View file

@ -0,0 +1,9 @@
{
"Provider": {
"ColumnProvider": "Provajder",
"PluginDescription": "Prikazuje Internet provajdere posetilaca.",
"ProviderReportDocumentation": "Ovaj izveštaj prikazuje koje Internet provajdere koriste vaši posetioci kako bi pristupili sajtu. Možete kliknuti na naziv provajdera kako biste videli više detalja. %s Ako Piwik ne može da odredi koji provajder je u pitanju, onda prikazuje IP.",
"WidgetProviders": "Provajderi",
"ProviderReportFooter": "Nepoznat provajder znači da nije moguće razrešiti IP adresu."
}
}

View file

@ -0,0 +1,8 @@
{
"Provider": {
"ColumnProvider": "Internetleverantör",
"PluginDescription": "Rapporterar besökarnas Internetleverantör.",
"ProviderReportDocumentation": "Denna rapport visar vilka Internetleverantörer dina besökare använde för att få åtkomst till webbplatsen. Du kan klicka på en leverantörs namn för mer information. %s Om Piwik inte kan avgöra en besökares leverantör, så listas den som IP.",
"WidgetProviders": "Internetleverantör"
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "வழங்குநர்",
"WidgetProviders": "வழங்குவோர்"
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "ผู้ให้บริการ",
"WidgetProviders": "ผู้ให้บริการ"
}
}

View file

@ -0,0 +1,8 @@
{
"Provider": {
"ColumnProvider": "Tagapagtustos",
"ProviderReportDocumentation": "Ang ulat na itoy ang nagpapakita kung anong Internet Server Providers ang gamit ng iyung bisita upang ma-access ang website. Maari mong e-click ang pangalan ng provider para sa karagdagang detalye. %s kung ang Piwik ay hindi matukoy ang provider ng bisita. ito ay nakalista bilang IP.",
"WidgetProviders": "Mga Tagapagtustos",
"ProviderReportFooter": "Ang hindi kilalang provider ay hindi makikita ang IP address."
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "Sağlayıcı",
"WidgetProviders": "Sağlayıcılar"
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "Провайдер",
"WidgetProviders": "Провайдери"
}
}

View file

@ -0,0 +1,7 @@
{
"Provider": {
"ColumnProvider": "Nhà cung cấp",
"ProviderReportDocumentation": "Báo cáo này cho thấy Nhà cung cấp dịch vụ Internet mà khách truy cập sử dụng để truy cập website. Bạn có thể ckick trên tên nhà cung cấp để biết thêm chi tiết. %s Nếu Piwik không thể xác định được nhà cung cấp của khách truy cập, nó liệt kê danh sách IP.",
"WidgetProviders": "Các nhà cung cấp"
}
}

View file

@ -0,0 +1,7 @@
{
"Provider": {
"ColumnProvider": "网络服务商",
"ProviderReportDocumentation": "本报表显示访客的网络服务商。点击服务商名字查看详细资料。%s 如果 Piwik 无法判断访客的网络服务商就列出IP地址。",
"WidgetProviders": "网络服务商"
}
}

View file

@ -0,0 +1,6 @@
{
"Provider": {
"ColumnProvider": "供應商",
"WidgetProviders": "網際網路服務供應商"
}
}