Skip to content
Extraits de code Groupes Projets
Valider 9ea42bb9 rédigé par Matthieu Napoli's avatar Matthieu Napoli
Parcourir les fichiers

Merge branch 'di-config' into tmp-path

Conflicts:
	core/Session.php
parents 40e67157 7f7cc482
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Affichage de
avec 169 ajouts et 98 suppressions
......@@ -34,14 +34,6 @@
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"core",
"plugins",
"libs",
"misc",
"tmp",
"config",
"lang",
"tests"
]
}
<?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\Exception;
class AuthenticationFailedException extends Exception
{
}
\ No newline at end of file
......@@ -6,25 +6,25 @@
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
namespace Piwik\Exceptions;
namespace Piwik\Exception;
use Exception;
use Exception as PhpException;
/**
* An exception whose message has HTML content. When these exceptions are caught
* the message will not be sanitized before being displayed to the user.
*
* @api
*/
class HtmlMessageException extends Exception
abstract class Exception extends PhpException
{
/**
* Returns the exception message.
*
* @return string
*/
public function getHtmlMessage()
private $isHtmlMessage = false;
public function setIsHtmlMessage()
{
$this->isHtmlMessage = true;
}
public function isHtmlMessage()
{
return $this->getMessage();
return $this->isHtmlMessage;
}
}
\ No newline at end of file
<?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\Exception;
class MissingFilePermissionException extends Exception
{
}
\ No newline at end of file
<?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\Exception;
class NoPrivilegesException extends Exception
{
}
\ No newline at end of file
<?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\Exception;
class NoWebsiteFoundException extends Exception
{
}
\ No newline at end of file
......@@ -8,7 +8,7 @@
*/
namespace Piwik;
use Piwik\Exceptions\HtmlMessageException;
use Piwik\Exception\MissingFilePermissionException;
class Filechecks
{
......@@ -92,7 +92,7 @@ class Filechecks
}
}
$directoryMessage = "<p><b>Piwik couldn't write to some directories $optionalUserInfo</b>.</p>";
$directoryMessage = "<p><b>Piwik couldn't write to some directories $optionalUserInfo</b>.</p>";
$directoryMessage .= "<p>Try to Execute the following commands on your server, to allow Write access on these directories"
. ":</p>"
. "<blockquote>$directoryList</blockquote>"
......@@ -100,7 +100,10 @@ class Filechecks
. "<p>After applying the modifications, you can <a href='index.php'>refresh the page</a>.</p>"
. "<p>If you need more help, try <a href='?module=Proxy&action=redirect&url=http://piwik.org'>Piwik.org</a>.</p>";
throw new HtmlMessageException($directoryMessage);
$ex = new MissingFilePermissionException($directoryMessage);
$ex->setIsHtmlMessage();
throw $ex;
}
/**
......
......@@ -13,7 +13,7 @@ use Exception;
use Piwik\API\Request;
use Piwik\API\ResponseBuilder;
use Piwik\Container\StaticContainer;
use Piwik\Exceptions\HtmlMessageException;
use Piwik\Exception\AuthenticationFailedException;
use Piwik\Http\Router;
use Piwik\Plugin\Controller;
use Piwik\Plugin\Report;
......@@ -423,10 +423,15 @@ class FrontController extends Singleton
try {
$authAdapter = Registry::get('auth');
} catch (Exception $e) {
throw new HtmlMessageException("Authentication object cannot be found in the Registry. Maybe the Login plugin is not activated?
<br />You can activate the plugin by adding:<br />
<code>Plugins[] = Login</code><br />
under the <code>[Plugins]</code> section in your config/config.ini.php");
$message = "Authentication object cannot be found in the Registry. Maybe the Login plugin is not activated?
<br />You can activate the plugin by adding:<br />
<code>Plugins[] = Login</code><br />
under the <code>[Plugins]</code> section in your config/config.ini.php";
$ex = new AuthenticationFailedException($message);
$ex->setIsHtmlMessage();
throw $ex;
}
Access::getInstance()->reloadAccess($authAdapter);
......@@ -617,10 +622,10 @@ class FrontController extends Singleton
{
$debugTrace = $ex->getTraceAsString();
if (method_exists($ex, 'getHtmlMessage')) {
$message = $ex->getHtmlMessage();
} else {
$message = Common::sanitizeInputValue($ex->getMessage());
$message = $ex->getMessage();
if (!method_exists($ex, 'isHtmlMessage') || !$ex->isHtmlMessage()) {
$message = Common::sanitizeInputValue($message);
}
$logo = new CustomLogo();
......
......@@ -17,7 +17,8 @@ use Piwik\Config as PiwikConfig;
use Piwik\Config;
use Piwik\DataTable\Filter\CalculateEvolutionFilter;
use Piwik\Date;
use Piwik\Exceptions\HtmlMessageException;
use Piwik\Exception\NoPrivilegesException;
use Piwik\Exception\NoWebsiteFoundException;
use Piwik\FrontController;
use Piwik\Menu\MenuTop;
use Piwik\Menu\MenuUser;
......@@ -841,16 +842,22 @@ abstract class Controller
$message = "Error: no website was found in this Piwik installation.
<br />Check the table '$siteTableName' in your database, it should contain your Piwik websites.";
throw new HtmlMessageException($message);
$ex = new NoWebsiteFoundException($message);
$ex->setIsHtmlMessage();
throw $ex;
}
if (!Piwik::isUserIsAnonymous()) {
$currentLogin = Piwik::getCurrentUserLogin();
$emails = implode(',', Piwik::getAllSuperUserAccessEmailAddresses());
$errorMessage = sprintf(Piwik::translate('CoreHome_NoPrivilegesAskPiwikAdmin'), $currentLogin, "<br/><a href='mailto:" . $emails . "?subject=Access to Piwik for user $currentLogin'>", "</a>");
$errorMessage = sprintf(Piwik::translate('CoreHome_NoPrivilegesAskPiwikAdmin'), $currentLogin, "<br/><a href='mailto:" . $emails . "?subject=Access to Piwik for user $currentLogin'>", "</a>");
$errorMessage .= "<br /><br />&nbsp;&nbsp;&nbsp;<b><a href='index.php?module=" . Registry::get('auth')->getName() . "&amp;action=logout'>&rsaquo; " . Piwik::translate('General_Logout') . "</a></b><br />";
throw new HtmlMessageException($errorMessage);
$ex = new NoPrivilegesException($errorMessage);
$ex->setIsHtmlMessage();
throw $ex;
}
echo FrontController::getInstance()->dispatch(Piwik::getLoginPluginName(), false);
......
......@@ -10,7 +10,7 @@ namespace Piwik;
use Exception;
use Piwik\Container\StaticContainer;
use Piwik\Exceptions\HtmlMessageException;
use Piwik\Exception\MissingFilePermissionException;
use Piwik\Session\SaveHandler\DbTable;
use Zend_Session;
......@@ -124,8 +124,8 @@ class Session extends Zend_Session
we recommend that you <a href='http://piwik.org/faq/how-to-install/#faq_133' target='_blank'>enable database session storage</a>.";
}
$pathToSessions = StaticContainer::getContainer()->get('path.tmp') . '/sessions/';
$pathToSessions = Filechecks::getErrorMessageMissingPermissions($pathToSessions);
$pathToSessions = Filechecks::getErrorMessageMissingPermissions(Filesystem::getPathToPiwikRoot() . '/tmp/sessions/');
$pathToSessions = SettingsPiwik::rewriteTmpPathWithInstanceId($pathToSessions);
$message = sprintf("Error: %s %s %s\n<pre>Debug: the original error was \n%s</pre>",
Piwik::translate('General_ExceptionUnableToStartSession'),
$pathToSessions,
......@@ -144,7 +144,8 @@ class Session extends Zend_Session
*/
public static function getSessionsDirectory()
{
return StaticContainer::getContainer()->get('path.tmp') . '/sessions';
$path = PIWIK_USER_PATH . '/tmp/sessions';
return SettingsPiwik::rewriteTmpPathWithInstanceId($path);
}
public static function close()
......
......@@ -209,6 +209,7 @@
"LastDays": "Posledních %s dní (včetně dneška)",
"LastDaysShort": "Posledních %s dní",
"LayoutDirection": "ltr",
"LearnMore": "%1$sdozvědět se více%2$s",
"Live": "Živě",
"Loading": "Načítám...",
"LoadingData": "Načítám data...",
......@@ -355,6 +356,7 @@
"Seconds": "%s sekund",
"SeeAll": "Zobrazit vše",
"SeeTheOfficialDocumentationForMoreInformation": "Pro více informací navštivte %soficiální dokumentaci%s.",
"SeeThisFaq": "Podívejte se na %1$stento často kladený dotaz%2$s.",
"Segment": "Část",
"SelectYesIfYouWantToSendEmailsViaServer": "Zvolte \"Ano\" pokud chcete e-mail posílat pomocí uvedeného serveru místo lokální funkce PHP mail",
"Settings": "Nastavení",
......@@ -433,6 +435,7 @@
"WarningFileIntegrityNoMd5file": "Test integrity nemůže být dokončen z důvodů chybějící funkce md5_file().",
"WarningPasswordStored": "%sUpozornění:%s Toto heslo bude uloženo v konfiguračním souboru viditelné pro všechny s přístupem k němu.",
"WarningPhpVersionXIsTooOld": "PHP verze %s, kterou používáte již není podporována (EOL). Důrazně doporučujeme aktualizovat na novější verzi, protože stávající může obsahovat bezpečnostní a další problémy, které byly opraveny v novějších verzích PHP.",
"WarningPiwikWillStopSupportingPHPVersion": "Piwik tuto verzi PHP přestane podporovat za %s. Aktualizujte, dokud je čas!",
"Website": "Web stránky",
"Weekly": "Týdně",
"WeeklyReport": "Týdně",
......
......@@ -27,7 +27,7 @@
"Cancel": "Annuler",
"CannotUnzipFile": "Impossible de décompresser le ficher %1$s: %2$s",
"ChangePassword": "Modifier le mot de passe",
"ChangeTagCloudView": "Veuillez noter que vous pouvez visualiser le rapport sous une autre forme qu'un nuage de tags. Utilisez les contrôles à la fin du rapport pour ce faire.",
"ChangeTagCloudView": "Veuillez noter que vous pouvez visualiser le rapport sous une autre forme qu'un nuage de tags. Pour cela, utilisez les option en dessous du rapport.",
"ChooseDate": "Sélectionnez une date",
"ChooseLanguage": "Sélectionnez la langue",
"ChoosePeriod": "Sélectionnez la période",
......@@ -55,11 +55,11 @@
"ColumnEntrances": "Entrées",
"ColumnEntrancesDocumentation": "Nombre de visites qui ont démarré sur cette page.",
"ColumnExitRate": "Taux de sortie",
"ColumnExitRateDocumentation": "Pourcentage de visites qui ont quitté le site web après avoir visualisé cette page (affichages uniques divisés par sorties)",
"ColumnExitRateDocumentation": "Pourcentage de visites qui ont quitté le site web après avoir visualisé cette page (affichages uniques divisés par sorties).",
"ColumnExits": "Sorties",
"ColumnExitsDocumentation": "Nombre de visites qui se sont terminées sur cette page.",
"ColumnGenerationTime": "Délais de génération",
"ColumnKeyword": "Mot clef",
"ColumnKeyword": "Mot-clé",
"ColumnLabel": "Nom",
"ColumnMaxActions": "Nombre maximum d'actions en une visite",
"ColumnNbActions": "Actions",
......@@ -153,11 +153,11 @@
"ExceptionIncompatibleClientServerVersions": "La version de votre client %1$s est %2$s ce qui est incompatible avec le serveur de version %3$s.",
"ExceptionInvalidAggregateReportsFormat": "Le type de rapport suivant '%s' n'est pas valide. Essayer un des types suivants : %s.",
"ExceptionInvalidArchiveTimeToLive": "La durée de l'archivage doit être un nombre de secondes supérieur à zéro.",
"ExceptionInvalidDateFormat": "Le format de date doit être: %s ou n'importe quel mot clef supporté par la fonction %s (visitez %s pour plus d'informations)",
"ExceptionInvalidDateFormat": "Le format de date doit être : %s ou n'importe quel mot-clé supporté par la fonction %s (visitez %s pour plus d'informations)",
"ExceptionInvalidDateRange": "La date '%s' ne correspond pas au format suivant : %s.",
"ExceptionInvalidPeriod": "La période '%s' n'est pas supportée. Veuillez essayer parmi celles-ci à la place: %s.",
"ExceptionInvalidRendererFormat": "Le format de rendu '%s' n'est pas valide. Veuillez essayer un de ceux-ci à la place: %s.",
"ExceptionInvalidReportRendererFormat": "Format de rapport '%s' invalide. Essayez n'importe lequel des formats suivants à la place: %s.",
"ExceptionInvalidPeriod": "La période '%s' n'est pas supportée. Veuillez essayer parmi celles-ci à la place : %s.",
"ExceptionInvalidRendererFormat": "Le format de rendu '%s' n'est pas valide. Veuillez essayer un de ceux-ci à la place : %s.",
"ExceptionInvalidReportRendererFormat": "Format de rapport '%s' invalide. Essayez n'importe lequel des formats suivants à la place : %s.",
"ExceptionInvalidStaticGraphType": "Le type de graph suivant '%s' n'est pas valide. Essayer un des types suivants : %s.",
"ExceptionInvalidToken": "La clef partagée (token) n'est pas valide.",
"ExceptionLanguageFileNotFound": "Le fichier de langage '%s' n'a pas été trouvé.",
......@@ -203,7 +203,7 @@
"InvalidDateRange": "Plage de dates invalide, veuillez recommencer.",
"InvalidResponse": "Les données reçues sont invalides",
"IP": "IP",
"JsTrackingTag": "Code JavaScript de suivi",
"JsTrackingTag": "Code de suivi JavaScript",
"Language": "Langue",
"LastDays": "%s derniers jours (aujourd'hui inclus)",
"LastDaysShort": "Derniers %s jours",
......@@ -249,7 +249,7 @@
"MonthlyReport": "mensuel",
"MonthlyReports": "Rapports mensuels",
"More": "Plus",
"MoreDetails": "Plus de Détails",
"MoreDetails": "Plus de détails",
"MoreLowerCase": "plus",
"MultiSitesSummary": "Tous les sites web",
"Name": "Nom",
......@@ -302,7 +302,7 @@
"Outlink": "Lien sortant",
"Outlinks": "Liens sortant",
"OverlayRowActionTooltip": "Visualisez les données d'analyse directement sur votre site web (ouvre un nouvel onglet)",
"OverlayRowActionTooltipTitle": "Afficher la page par dessus",
"OverlayRowActionTooltipTitle": "Ouvrir l'analyse des pages web",
"Overview": "Récapitulatif",
"Pages": "Pages",
"ParameterMustIntegerBetween": "Le paramètre %s doit être un entier entre les valeurs %s et %s.",
......@@ -338,13 +338,13 @@
"ReportGeneratedFrom": "Ce rapport a été généré en utilisant des données de %s.",
"ReportRatioTooltip": "'%1$s' représente %2$s de %3$s %4$s avec %5$s.",
"Reports": "Rapports",
"ReportsContainingTodayWillBeProcessedAtMostEvery": "Rapports du jour (ou n'importe quelle autre plage de dates incluant aujourd'hui) seront calculés tout au plus chaque",
"ReportsContainingTodayWillBeProcessedAtMostEvery": "Les rapports du jour (ou n'importe quelle autre plage de dates incluant aujourd'hui) seront calculés tout au plus chaque",
"ReportsWillBeProcessedAtMostEveryHour": "Les rapports seront donc traités tout au plus chaque heure.",
"RequestTimedOut": "Une requête vers %s a expiré. Veuillez réessayer.",
"Required": "%s requis",
"ReturningVisitor": "Visiteur de retour",
"ReturningVisitorAllVisits": "Voir tous les visiteurs",
"RowEvolutionRowActionTooltip": "Visualisez l'évolution des métriques pour cette ligne ont changée en fonction du temps",
"RowEvolutionRowActionTooltip": "Visualisez l'évolution dans le temps des métriques de cette ligne",
"RowEvolutionRowActionTooltipTitle": "Ouvrir l'évolution de la ligne",
"Rows": "Rangées",
"RowsToDisplay": "Lignes à afficher",
......@@ -355,6 +355,7 @@
"Seconds": "%ss",
"SeeAll": "tout montrer",
"SeeTheOfficialDocumentationForMoreInformation": "Consultez la %s documentation officielle %s pour plus d'information.",
"SeeThisFaq": "Voir %1$scette faq%2$s.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Sélectionnez \"Oui\" si vous voulez ou devez envoyer un e-mail via un serveur nommé à la place de la fonction de courrier local.",
"Settings": "Paramètres",
......@@ -431,7 +432,7 @@
"WarningFileIntegrityNoManifest": "Le contrôle d'intégrité n'a pu être effectué car le fichier manifest.inc.php est manquant.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Si vous déployez Piwik depuis Git, ce message est normal.",
"WarningFileIntegrityNoMd5file": "Le contrôle d'intégrité n'a pu être effectué car la fonction md5_file() est manquante.",
"WarningPasswordStored": "%sAttention:%s Ce mot de passe sera stocké dans le fichier de configuration et sera visible pour n'importe qui y ayant accès.",
"WarningPasswordStored": "%sAttention :%s Ce mot de passe sera stocké dans le fichier de configuration et sera visible pour n'importe qui y ayant accès.",
"WarningPhpVersionXIsTooOld": "La version de PHP que vous utilisez (%s) est en fin de support. Nous vous incitons vivement à upgrader vers une version plus récente. Votre version actuelle vous expose à des failles de sécurité et des bugs qui ont été corrigés dans les versions les plus récentes de PHP.",
"WarningPiwikWillStopSupportingPHPVersion": "Piwik va arrêter le support de cette version de PHP en %s. Mettez à jour votre version de PHP avant qu'il ne soit trop tard !",
"Website": "Site",
......@@ -501,7 +502,7 @@
"NoWebsiteFound": "Aucun site trouvé",
"NoWebsitesShort": "Pas de site internet",
"PossibleSslError": "Erreur potentielle de certificat SSL",
"PossibleSslErrorExplanation": "Une erreur peut être causée par un certificat invalide ou auto-signé: \"%s\". La connexion peut fonctionner pour vous en ignorant la validation SSL mais cela est moins sécurisé. Vous pouvez modifier la validation SSL à n'importe quel moment depuis les paramètres.",
"PossibleSslErrorExplanation": "Une erreur peut être causée par un certificat invalide ou auto-signé : \"%s\". La connexion peut fonctionner pour vous en ignorant la validation SSL mais cela est moins sécurisé. Vous pouvez modifier la validation SSL à n'importe quel moment depuis les paramètres.",
"PullDownToRefresh": "Faites glisser vers le bas pour actualiser",
"RatingDontRemindMe": "Ne pas me rappeler",
"RatingNotNow": "Pas maintenant",
......
......@@ -491,6 +491,7 @@
"NoVisitorsShort": "Geen Bezoekers",
"NoWebsiteFound": "Geen website gevonden",
"NoWebsitesShort": "Geen Websites",
"PossibleSslError": "Mogelijke SSL certificaat fout",
"PullDownToRefresh": "Trek om te vernieuwen ...",
"RatingDontRemindMe": "Herrinner me er niet aan",
"RatingNotNow": "Niet nu",
......
{
"API": {
"GenerateVisits": "Si vous n'avez pas de données pour aujourd'hui vous pouvez en générer en utilisant le plugin %s. Vous pouvez activer le plugin %s, ensuite cliquez sur le menu 'Générateur de visites' dans la zone d'administration de Piwik.",
"KeepTokenSecret": "Cette clef partagée (tocken_auth) est aussi secrète que votre login et mot de passe, %s ne la partagez pas%s!",
"GenerateVisits": "Si vous n'avez pas de données pour aujourd'hui vous pouvez en générer en utilisant le plugin %s. Vous pouvez activer le plugin %s puis cliquer sur le menu 'Générateur de visites' dans la zone d'administration de Piwik.",
"KeepTokenSecret": "Cette clef partagée (tocken_auth) est aussi secrète que votre login et mot de passe, %s ne la partagez pas%s !",
"LoadedAPIs": "%s API chargées avec succès",
"MoreInformation": "Pour plus d'informations à propos de l'API de Piwik, merci de visiter %s l'introduction à Piwik %s et %s la référence de l'API Piwik %s.",
"PluginDescription": "Toutes les données de Piwik sont disponibles au travers de simples APIs. Ce plugin est le point d'entrée du web service, ainsi vous pouvez obtenir vos données Statistiques Web en xml, json, php, csv, etc.",
......
{
"Actions": {
"AvgGenerationTimeTooltip": "Μέσος όρος βάσει των %s επισκέψεων %s μεταξύ %s και %s",
"ColumnClickedURL": "URL επιλογής",
"ColumnClicks": "Κλικ",
"ColumnClicksDocumentation": "Οι φορές που πατήθηκε αυτός ο σύνδεσμος.",
......
......@@ -10,15 +10,15 @@
"ColumnExitPageTitle": "Titre de la page de sortie",
"ColumnExitPageURL": "URL de la page de sortie",
"ColumnNoResultKeyword": "Mots-clés sans résultats de recherche",
"ColumnPageName": "Nom de la page",
"ColumnPageName": "Titre de la page",
"ColumnPagesPerSearch": "Pages des résultats de la recherche",
"ColumnPagesPerSearchDocumentation": "Les visiteurs vont effectuer des recherches sur votre site web et parfois cliquer sur \"suivant\" pour afficher plus de résultats. Ceci est le nombre moyen de pages de résultats de recherche vues pour ce mot-clef.",
"ColumnPagesPerSearchDocumentation": "Les visiteurs vont effectuer des recherches sur votre site web et parfois cliquer sur \"suivant\" pour afficher plus de résultats. Ceci est le nombre moyen de pages de résultats vues pour ce mot-clé.",
"ColumnPageURL": "URL de la page",
"ColumnSearchCategory": "Catégorie de recherche",
"ColumnSearches": "Recherches",
"ColumnSearchesDocumentation": "Le nombre de visites pour lesquelles une recherche pour ce mot-clé a été effectuée avec le moteur de recherche de votre site web",
"ColumnSearchExits": "% Taux de rebond après recherche",
"ColumnSearchExitsDocumentation": "Le taux de visites après lesquelles les utilisateurs on quitté le site après avoir effectué une recherche pour ce mot clef avec le moteur de recherche de votre site.",
"ColumnSearchExitsDocumentation": "Le pourcentage de visites les utilisateurs on quitté le site après avoir effectué une recherche pour ce mot-clé avec le moteur de recherche de votre site.",
"ColumnSearchResultsCount": "Nombre de résultats de la recherche",
"ColumnSiteSearchKeywords": "Mot-clés uniques",
"ColumnUniqueClicks": "Clics uniques",
......@@ -44,9 +44,9 @@
"SiteSearchCategories2": "Par exemple, les sites d'e-commerce ont généralement une sélection de la catégorie afin que les visiteurs puissent affiner leurs recherches aux produits d'une catégories définie.",
"SiteSearchFollowingPagesDoc": "Quand les visiteurs recherchent sur votre site web, ils sont à la recherche d'une page, d'un produit, d'un contenu ou service en particulier. Ce rapport liste les pages qui ont été le plus cliquées après une recherche interne. En d'autres termes, la liste des pages les plus recherchées par des visiteurs déjà sur votre site.",
"SiteSearchIntro": "Effectuer un suivi des recherches que les visiteurs font sur votre site web est une manière très efficace d'en apprendre plus sur ce que votre audience recherche, cela peut aider à trouver des idées pour du nouveau contenu, un nouveau produit e-commerce dont des clients potentiels pourraient être à la recherche, et de manière générale pour améliorer l'expérience utilisateurs de votre site web.",
"SiteSearchKeyword": "Mot clef (recherche du site)",
"SiteSearchKeywordsDocumentation": "Ce rapport est une liste des mots clefs de recherche que les visiteurs ont entré dans votre moteur de recherche interne.",
"SiteSearchKeywordsNoResultDocumentation": "Ce rapport liste les mots clefs de recherche qui n'ont retourné aucun résultat de recherche: peut-être est-il possible d'améliorer l'algorithme, ou peut être que vos visiteurs cherchent du contenu qui n'est pas (encore) sur votre site web?",
"SiteSearchKeyword": "Mot-clé (recherche du site)",
"SiteSearchKeywordsDocumentation": "Ce rapport liste les mots-clés recherchés dans votre moteur de recherche interne.",
"SiteSearchKeywordsNoResultDocumentation": "Ce rapport liste les mots-clés de recherche qui n'ont retourné aucun résultat: peut-être est-il possible d'améliorer l'algorithme de recherche, ou peut-être que vos visiteurs cherchent du contenu qui n'est pas (encore) sur votre site web ?",
"SubmenuPagesEntry": "Pages d'entrée",
"SubmenuPagesExit": "Pages de sortie",
"SubmenuPageTitles": "Titres des pages",
......@@ -59,7 +59,7 @@
"WidgetPageTitlesFollowingSearch": "Titre des pages après une recherche",
"WidgetPageUrlsFollowingSearch": "Pages après une recherche",
"WidgetSearchCategories": "Catégories de recherche",
"WidgetSearchKeywords": "Mot clés de recherche sur le site",
"WidgetSearchNoResultKeywords": "Mots-clés sans résultat"
"WidgetSearchKeywords": "Mot-clés recherchés sur le site",
"WidgetSearchNoResultKeywords": "Mots-clés sans résultats"
}
}
\ No newline at end of file
{
"Annotations": {
"AddAnnotationsFor": "Ajouter une note pour %s...",
"AnnotationOnDate": "Note sur %1$s : %2$s",
"AddAnnotationsFor": "Ajouter une annotation pour %s...",
"AnnotationOnDate": "Annotation sur %1$s : %2$s",
"Annotations": "Annotations",
"ClickToDelete": "Cliquez ici pour supprimer une annotation",
"ClickToEdit": "Cliquez ici pour supprimer une annotation",
"ClickToEditOrAdd": "Cliquer pour éditer ou ajouter une nouvelle note.",
"ClickToEditOrAdd": "Cliquer pour éditer ou ajouter une nouvelle annotation.",
"ClickToStarOrUnstar": "Cliquez pour marquer ou enlever le marquage de cette annotation.",
"CreateNewAnnotation": "Cliquez-ici pour créer une annotation",
"EnterAnnotationText": "Description...",
"HideAnnotationsFor": "Masquer les notes pour %s...",
"IconDesc": "Voir les notes pour cette plage de temps",
"IconDescHideNotes": "Cacher les notes pour cet plage de temps",
"HideAnnotationsFor": "Masquer les annotations pour %s...",
"IconDesc": "Voir les annotations pour cette période",
"IconDescHideNotes": "Masquer les annotations pour cette période",
"InlineQuickHelp": "Vous pouvez créer des annotations pour marquer des évènements spéciaux (comme un nouveau billet de blog ou une refonte du site web), pour garder une trace de vos analyses de données ou de ce que vous jugez important.",
"LoginToAnnotate": "Identifiez vous pour créer une annotation",
"NoAnnotations": "Il n'y a aucune note pour cette période",
"PluginDescription": "Vous permet d'attacher des notes à différents jours pour indiquer les modifications effectuées à votre site, enregistre les analyses que vous faites en considérant vos données et les partages envoyés à vos collègues. En annotant vos données, vous vous assurerez de vous rappeler pourquoi vos données ressemblent à ce à quoi elles ressemblent.",
"NoAnnotations": "Il n'y a aucune annotation pour cette période",
"PluginDescription": "Vous permet d'annoter des dates pour marquer des changement sur votre site, noter des analyses que vous faites de vos données et partager vos notes avec vos collègues. En annotant vos données, vous pourrez vous rappeler pourquoi vos données sont ainsi.",
"ViewAndAddAnnotations": "Voir et ajouter une annotation pour %s ...",
"YouCannotModifyThisNote": "Vous ne pouvez pas modifier cette annotation parce que, ou vous ne l'avez pas créée ou vous n'avez pas les accès d'administrateur pour ce site."
"YouCannotModifyThisNote": "Vous ne pouvez pas modifier cette annotation parce que vous ne l'avez pas créée ou vous n'avez pas les accès d'administrateur pour ce site."
}
}
\ No newline at end of file
{
"Contents": {
"Contents": "Contenus"
}
}
\ No newline at end of file
......@@ -3,47 +3,47 @@
"Administration": "Administration",
"ArchivingSettings": "Paramètres d'archivage",
"BrandingSettings": "Paramètres de l'image de marque",
"CheckReleaseGetVersion": "Quand vous vérifiez la présence d'une nouvelle version de Piwik, obtenez toujours",
"CheckReleaseGetVersion": "Lors de la vérification des nouvelles versions de Piwik, télécharger la",
"ClickHereToOptIn": "Cliquez ici pour inclure votre ordinateur.",
"ClickHereToOptOut": "Cliquez ici pour exclure votre ordinateur.",
"CustomLogoFeedbackInfo": "Si vous personnalisez le logo Piwi, vous pouvez être aussi intéressé de cacher le lien %s du menu du haut. Pour ce faire, vous pouvez désactiver le plugin de Feedback dans la page de %sGestionnaire de Plugins%s",
"CustomLogoHelpText": "Vous pouvez personnaliser le logo Piwik qui sera affichée dans l'interface utilisateur et les rapports par courriel.",
"DevelopmentProcess": "Bien que notre %sprocessus de développement%s inclue des milliers de tests automatisés, les béta testeurs jouent un rôle clef dans la réalisation de la \"politique zéro bug\" de Piwik.",
"CustomLogoFeedbackInfo": "Si vous personnalisez le logo Piwi, vous pouvez être aussi vouloir cacher le lien %s du menu du haut. Pour ce faire, vous pouvez désactiver le plugin de Feedback dans la page de %sGestionnaire de Plugins%s.",
"CustomLogoHelpText": "Vous pouvez personnaliser le logo Piwik qui sera affiché dans l'interface utilisateur et les rapports par courriel.",
"DevelopmentProcess": "Bien que notre %sprocessus de développement%s inclue des milliers de tests automatisés, les béta testeurs jouent un rôle clef dans la réalisation de la \"politique zéro bugs\" de Piwik.",
"EmailServerSettings": "Paramètres du serveur mail",
"FaviconUpload": "Sélectionnez un favicon à télécharger",
"FileUploadDisabled": "Le téléversement de fichiers n'est pas activé dans votre configuration PHP. Pour téléverser un logo personnalisé veuillez définir %s dans php.ini et redémarrer votre serveur web.",
"ForBetaTestersOnly": "Pour les bêta testeurs uniquement",
"ImageTracking": "Suivi par Image",
"ImageTracking": "Suivi par image",
"ImageTrackingIntro1": "Quand un visiteur désactive JavaScript, ou quand JavaScript ne peut être utilisé, vous pouvez utiliser le lien de suivi par image pour suivre les visiteurs.",
"ImageTrackingIntro2": "Générez le lien ci-dessous et copiez-collez le HTML généré dans la page. Si vous utilisez cela comme méthode de secours au suivi JavaScript, vous pouvez l'insérer entre des tags %1$s.",
"ImageTrackingIntro2": "Générez le lien ci-dessous et copiez-collez le code HTML généré dans vos pages web. Si vous utilisez cela comme méthode de secours au suivi JavaScript, vous pouvez l'insérer entre des tags %1$s.",
"ImageTrackingIntro3": "Pour la liste complète des options que vous pouvez utiliser avec un lien de suivi par image, consultez la %1$sDocumentation de l'API de suivi%2$s.",
"ImageTrackingLink": "Lien de suivi par Image",
"ImportingServerLogs": "Importation des logs du server",
"ImportingServerLogsDesc": "Un alternative au suivi des visiteurs via leur navigateur (par JavaScript ou par Image) est d'importer de manière continue les logs du serveur. Apprenez-en plus à propos des %1$sstatistiques via les logs serveur%2$s.",
"InvalidPluginsWarning": "Les plugins suivants ne sont pas compatibles avec %1$s et ne peuvent pas être chargés: %2$s.",
"ImageTrackingLink": "Lien de suivi par image",
"ImportingServerLogs": "Importation des logs du serveur",
"ImportingServerLogsDesc": "Un alternative au suivi des visiteurs via leur navigateur (par JavaScript ou par image) est d'importer de manière continue les logs du serveur. Apprenez-en plus à propos des %1$sstatistiques via les logs serveur%2$s.",
"InvalidPluginsWarning": "Les plugins suivants ne sont pas compatibles avec %1$s et ne peuvent pas être chargés : %2$s.",
"InvalidPluginsYouCanUninstall": "Vous pouvez mettre à jour ou désinstaller ces plugins sur la page %1$sManagePlugins%2$s.",
"JavaScriptTracking": "Suivi par JavaScript",
"JSTracking_CampaignKwdParam": "Paramètre de la campagne de mot clef",
"JSTracking_CampaignKwdParam": "Paramètre de la campagne de mot-clé",
"JSTracking_CampaignNameParam": "Paramètre nom de la campagne",
"JSTracking_CodeNote": "Assurez-vous que ce code est sur toutes les pages de votre site web avant la balise %1$s.",
"JSTracking_CustomCampaignQueryParam": "Utilisez des paramètres de requête personnalisés pour le nom et le mot clef de la campagne",
"JSTracking_CustomCampaignQueryParamDesc": "Note: %1$sPiwik détectera automatiquement les paramètres de Google Analytics.%2$s",
"JSTracking_CustomCampaignQueryParam": "Utilisez des paramètres de requête personnalisés pour le nom et le mot-clé de la campagne",
"JSTracking_CustomCampaignQueryParamDesc": "Note : %1$sPiwik détectera automatiquement les paramètres de Google Analytics.%2$s",
"JSTracking_EnableDoNotTrack": "Activer la détection côté client de \"ne pas suivre\"",
"JSTracking_EnableDoNotTrack_AlreadyEnabled": "Note: Le support de la détection côté serveur de \"ne pas suivre\" est activé, cette option n'aura donc aucun effet.",
"JSTracking_EnableDoNotTrack_AlreadyEnabled": "Note : Le support de la détection côté serveur de \"ne pas suivre\" est activé, cette option n'aura donc aucun effet.",
"JSTracking_EnableDoNotTrackDesc": "Donc les requêtes de suivi ne seront pas envoyées si les visiteurs ne souhaitent pas être suivis.",
"JSTracking_GroupPageTitlesByDomain": "Préfixer le domaine du site au titre de la page lors du suivi",
"JSTracking_GroupPageTitlesByDomainDesc1": "Donc si quelqu'un visite la page \"à propos de\" sur le site \"blog\". %1$s ce sera enregistré en tant que \"blog \/ à propos de\". C'est la manière la plus facile d'avoir un aperçu de votre trafic par sous-domaine.",
"JSTracking_GroupPageTitlesByDomainDesc1": "Si un internaute visite la page \"À propos\" sur blog.%1$s, la visite sera enregistrée en tant que \"blog \/ À propos\". C'est la manière la plus facile d'avoir un aperçu du trafic par sous-domaine.",
"JSTracking_MergeAliases": "Dans le rapport des liens sortants, cacher les clics vers des alias d'adresses connues telles que",
"JSTracking_MergeAliasesDesc": "Ainsi un clic sur les adresses d'alias (ex %s) ne sera pas compté comme un lien sortant.",
"JSTracking_MergeSubdomains": "Suivre les visiteurs sur tous les sous-domaines de",
"JSTracking_MergeSubdomainsDesc": "Ainsi si un visiteur visite %1$s et %2$s, cela sera comptabilisé comme une visite unique.",
"JSTracking_PageCustomVars": "Suivre une variable personnalisée pour chaque affichage de page",
"JSTracking_PageCustomVarsDesc": "Par exemple, avec une variable nommée \"categorie\" et une valeur de \"livre blancs\".",
"JSTracking_PageCustomVarsDesc": "Par exemple, avec une variable nommée \"categorie\" et la valeur \"livre blancs\".",
"JSTracking_VisitorCustomVars": "Effectuer le suivi des variables personnalisées pour ce visiteur",
"JSTracking_VisitorCustomVarsDesc": "Par exemple, avec la variable nommée \"type\" et la valeur \"client\".",
"JSTracking_VisitorCustomVarsDesc": "Par exemple, avec une variable nommée \"type\" et la valeur \"client\".",
"JSTrackingIntro1": "Vous pouvez suivre les visiteurs de votre site web de manières variées. La manière recommandée est celle via JavaScript. Pour utiliser cette méthode assurez vous simplement que chaque page web du site a un certain code JavaScript que vous pouvez générer ici.",
"JSTrackingIntro2": "une fois que vous avez le code de suivi JavaScript pour votre site web, copiez-collez le sur toutes les pages dont vous voulez effectuer le suivi avec Piwik.",
"JSTrackingIntro3": "Dans la plupart des sites web, blogs, CMS, etc. Vous pouvez utiliser un module additionnel préconçu pour effectuer le travail technique à votre place. (Consultez la %1$s liste des modules utilisés pour intégrer Piwik%2$s.) Si aucun module n'existe vous pouvez modifier les modèles de pages de votre site web et ajouter ce code dans le fichier de pied de page.",
"JSTrackingIntro2": "Une fois que vous avez le code de suivi JavaScript pour votre site web, copiez-collez le sur toutes les pages dont vous voulez effectuer le suivi avec Piwik.",
"JSTrackingIntro3": "Dans la plupart des sites web, blogs, CMS, etc, vous pouvez utiliser un module additionnel préconçu pour effectuer le travail technique à votre place. (Consultez la %1$s liste des modules utilisés pour intégrer Piwik%2$s.) Si aucun module n'existe vous pouvez modifier les modèles de pages de votre site web et ajouter ce code dans le fichier de pied de page.",
"JSTrackingIntro4": "Si vous ne souhaitez pas utiliser JavaScript pour effectuer le suivi des visiteurs, %1$sgénérez un lien de suivi par image ci-dessous%2$s.",
"JSTrackingIntro5": "Si vous voulez faire plus qu'effectuer le suivi des visites de pages, veuillez consulter %1$sla documentation de suivi par JavaScript%2$s pour connaitre la liste des fonctions disponibles. En utilisant ces fonctions vous pouvez effectuer le suivi des objectifs, variables personnalisées, commandes de e-commerce, chariots\/paniers abandonnés et plus encore.",
"LatestBetaRelease": "Dernière version beta",
......@@ -56,9 +56,9 @@
"MenuGeneralSettings": "Paramètres généraux",
"MenuManage": "Gérer",
"OptOutComplete": "Cookie d'exclusion installé. Vos visites sur ce site web ne seront PAS enregistrées par notre outil d'analyse web.",
"OptOutCompleteBis": "Note - Si vous nettoyez vos cookies et supprimez le cookie d'exclusion, ou bien si vous changez d'ordinateur et\/ou de navigateur, il vous faudra de nouveau activer la procédure d'exclusion.",
"OptOutCompleteBis": "Note: si vous nettoyez vos cookies et supprimez le cookie d'exclusion, ou bien si vous changez d'ordinateur et\/ou de navigateur, il vous faudra de nouveau effectuer la procédure d'exclusion.",
"OptOutExplanation": "Piwik met un point d'honneur à respecter la vie privée sur Internet. Pour fournir à vos visiteurs le choix de ne pas apparaître dans les analyses de Piwik, vous pouvez ajouter le code HTML suivant sur une des pages de votre site web, par exemple dans la page \"Politique de confidentialité\".",
"OptOutExplanationBis": "Ce code va afficher un Iframe contenant un lien pour vos visiteurs pour ne pas être suivi dans Piwik en installant un cookie de neutralisation dans leur navigateur. %s Cliquez ici %s pour visualiser le contenu qui sera affiché par l'iFrame.",
"OptOutExplanationBis": "Ce code va afficher un iFrame contenant un lien permettant à vos visiteurs de ne pas être suivi par Piwik en installant un cookie de neutralisation dans leur navigateur. %s Cliquez ici %s pour visualiser le contenu qui sera affiché par l'iFrame.",
"OptOutForYourVisitors": "Exclusion de Piwik pour vos visiteurs",
"PiwikIsInstalledAt": "Piwik est installé à l'adresse",
"PluginDescription": "Zone d'administration de Piwik.",
......
......@@ -16,7 +16,7 @@
"ExcludeRowsWithLowPopulation": "Toutes les lignes sont affichées %s Exclure celles peu signifiantes",
"ExternalHelp": "Aide (nouvel onglet)",
"FlattenDataTable": "Le rapport est hiérarchique %s L'aplatir",
"HowMuchIsPiwikWorth": "Combien vaut Piwik pour vous?",
"HowMuchIsPiwikWorth": "Combien vaut Piwik pour vous ?",
"IncludeRowsWithLowPopulation": "Les lignes peu signifiantes sont cachées %s Afficher toutes les lignes",
"InjectedHostEmailBody": "Bonjour, j'ai essayé d'accéder à Piwik aujourd'hui et j'ai rencontré l'avertissement de nom d'hôte inconnu.",
"InjectedHostEmailSubject": "On a accédé à Piwik avec un nom d'hôte inconnu : %s",
......@@ -29,7 +29,7 @@
"MakeADifference": "Faites une différence : %1$sDonnez Maintenant%2$s pour financer Piwik 2.0!",
"MakeOneTimeDonation": "Faire un don unique à la place.",
"NoPrivilegesAskPiwikAdmin": "Vous êtes connecté en tant que '%s' mais il semble que nous n'ayez aucune permission définie dans Piwik. %s Demandez à votre administrateur (cliquez pour envoyer un e-mail)%s de vous donner l'accès 'Consultation' à un site web.",
"OnlyForSuperUserAccess": "Ce Gadget est uniquement affiché aux utilisateurs possédant un accès de type super utilisateur.",
"OnlyForSuperUserAccess": "Ce widget est uniquement affiché aux utilisateurs possédant un accès de type super utilisateur.",
"PageOf": "%1$s de %2$s",
"PeriodDay": "Jour",
"PeriodDays": "jours",
......@@ -43,7 +43,7 @@
"PluginDescription": "Structure des rapports statistiques web.",
"ReportGeneratedOn": "Rapport généré le %s",
"ReportGeneratedXAgo": "Rapport généré il y a %s",
"SharePiwikLong": "Salut! Je viens juste de trouver un bon logiciel libre: Piwik!\nPiwik va te permettre de suivre els visiteurs de ton site web gratuitement. Tu devrais vraiment aller voir!",
"SharePiwikLong": "Salut ! Je viens juste de trouver un bon logiciel libre : Piwik !\nPiwik va te permettre de suivre les visiteurs de ton site web gratuitement. Tu devrais vraiment aller voir !",
"SharePiwikShort": "Piwik! Analyse web gratuite et libre. Maîtrisez vos données.",
"ShareThis": "Partager ceci",
"ShortDateFormat": "%shortDay% %day% %shortMonth%",
......@@ -54,7 +54,7 @@
"SubscribeAndBecomePiwikSupporter": "Procéder à un paiement par carte de crédit sécurisé (Paypal) pour devenir un bienfaiteur de Piwik!",
"SupportPiwik": "Supporter Piwik!",
"TableNoData": "Aucune donnée pour cette table.",
"ThereIsNoDataForThisReport": "Il n'y a pas de donnée pour ce rapport.",
"ThereIsNoDataForThisReport": "Il n'y a pas de données pour ce rapport.",
"UnFlattenDataTable": "Le rapport est plat %s Le rendre hiérarchique",
"ViewAllPiwikVideoTutorials": "Visualiser tous les tutoriaux vidéo de Piwik",
"WebAnalyticsReports": "Rapports des statistiques web.",
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter