diff --git a/core/DataTable/Filter/CalculateEvolutionFilter.php b/core/DataTable/Filter/CalculateEvolutionFilter.php index 5af658bad6de2a4058019b51d8ff033684f8fad0..73274c537dc9e6ea3728b070cc90cfc3d0e76814 100755 --- a/core/DataTable/Filter/CalculateEvolutionFilter.php +++ b/core/DataTable/Filter/CalculateEvolutionFilter.php @@ -11,6 +11,7 @@ namespace Piwik\DataTable\Filter; use Piwik\Common; use Piwik\DataTable; use Piwik\DataTable\Row; +use Piwik\NumberFormatter; use Piwik\Site; /** @@ -157,10 +158,10 @@ class CalculateEvolutionFilter extends ColumnCallbackAddColumnPercentage { $number = self::getPercentageValue($currentValue - $pastValue, $pastValue, $quotientPrecision); if ($appendPercentSign) { - $number = self::appendPercentSign($number); + return NumberFormatter::getInstance()->formatPercent($number, $quotientPrecision); } - return $number; + return NumberFormatter::getInstance()->format($number, $quotientPrecision); } public static function appendPercentSign($number) diff --git a/core/Metrics/Formatter.php b/core/Metrics/Formatter.php index 69d32bc6286aceabd5d43812669167cbe519710d..8fbe5cbb89c7b0b37f06a232fd8f8858ee80484c 100644 --- a/core/Metrics/Formatter.php +++ b/core/Metrics/Formatter.php @@ -11,6 +11,7 @@ use Piwik\Common; use Piwik\Container\StaticContainer; use Piwik\DataTable; use Piwik\Intl\Data\Provider\CurrencyDataProvider; +use Piwik\NumberFormatter; use Piwik\Piwik; use Piwik\Plugin\Metric; use Piwik\Plugin\ProcessedMetric; @@ -98,7 +99,7 @@ class Formatter $seconds = $minusDaysAndHours - $minutes * 60; $precision = ($seconds > 0 && $seconds < 0.01 ? 3 : 2); - $seconds = round($seconds, $precision); + $seconds = NumberFormatter::getInstance()->formatNumber(round($seconds, $precision), $precision); if ($years > 0) { $return = sprintf(Piwik::translate('General_YearsDays'), $years, $days); diff --git a/core/Plugin/Controller.php b/core/Plugin/Controller.php index be874c622423ebfe6b67cbf9a9ff3b2ba9dccf0c..cf38fbd570084a15ca2ac52f3c5e07af1cffd6e2 100644 --- a/core/Plugin/Controller.php +++ b/core/Plugin/Controller.php @@ -24,6 +24,7 @@ use Piwik\Menu\MenuTop; use Piwik\Menu\MenuUser; use Piwik\NoAccessException; use Piwik\Notification\Manager as NotificationManager; +use Piwik\NumberFormatter; use Piwik\Period\Month; use Piwik\Period; use Piwik\Period\PeriodValidator; @@ -984,6 +985,9 @@ abstract class Controller $titleEvolutionPercent = '+' . $titleEvolutionPercent; } + $currentValue = NumberFormatter::getInstance()->format($currentValue); + $pastValue = NumberFormatter::getInstance()->format($pastValue); + $title = Piwik::translate('General_EvolutionSummaryGeneric', array( Piwik::translate('General_NVisits', $currentValue), $date, diff --git a/core/Twig.php b/core/Twig.php index 90b9643622712e1207fc7b606bc8871656287f17..6d5b91a24ce8224d91c89f5a1a6df33da63ae7c6 100755 --- a/core/Twig.php +++ b/core/Twig.php @@ -85,6 +85,7 @@ class Twig $this->addFilter_truncate(); $this->addFilter_notification(); $this->addFilter_percentage(); + $this->addFilter_percent(); $this->addFilter_prettyDate(); $this->addFilter_safeDecodeRaw(); $this->addFilter_number(); @@ -279,6 +280,14 @@ class Twig $this->twig->addFilter($percentage); } + protected function addFilter_percent() + { + $percentage = new Twig_SimpleFilter('percent', function ($string, $precision = 1) { + return NumberFormatter::getInstance()->formatPercent($string, $precision); + }); + $this->twig->addFilter($percentage); + } + protected function addFilter_number() { $formatter = new Twig_SimpleFilter('number', function ($string, $minFractionDigits = 0, $maxFractionDigits = 0) { diff --git a/plugins/Goals/templates/_listTopDimension.twig b/plugins/Goals/templates/_listTopDimension.twig index 8de4594f58aa9a104144e4f2a6001c634c5f3704..2d63e077b59ee6f83182a950c8b5ef82eaf1f0eb 100644 --- a/plugins/Goals/templates/_listTopDimension.twig +++ b/plugins/Goals/templates/_listTopDimension.twig @@ -1,8 +1,8 @@ {% for element in topDimension %} {% set goal_nb_conversion=element.nb_conversions %} {% set goal_conversion_rate=element.conversion_rate %} - <span class='goalTopElement' title='{{ 'Goals_Conversions'|translate("<b>"~goal_nb_conversion~"</b>")|raw }}, - {{ 'Goals_ConversionRate'|translate("<b>"~goal_conversion_rate~"</b>")|raw }}'> + <span class='goalTopElement' title='{{ 'Goals_Conversions'|translate("<b>"~goal_nb_conversion|number~"</b>")|raw }}, + {{ 'Goals_ConversionRate'|translate("<b>"~goal_conversion_rate|number~"</b>")|raw }}'> {{ element.name }} </span> diff --git a/plugins/Goals/templates/_titleAndEvolutionGraph.twig b/plugins/Goals/templates/_titleAndEvolutionGraph.twig index 0a2fdc1e31c9988676cf0a934abf0bf5b59e744f..59657778a6f0cccc011286c1e8bf454a99a1897f 100644 --- a/plugins/Goals/templates/_titleAndEvolutionGraph.twig +++ b/plugins/Goals/templates/_titleAndEvolutionGraph.twig @@ -13,14 +13,14 @@ <div id='leftcolumn' style="clear:both;{% if not isWidget and ecommerce is defined %}width:33%;'{% endif %}"> <div class="sparkline">{{ sparkline(urlSparklineConversions) }} {% if ecommerce is defined %} - <strong>{{ nb_conversions }}</strong> + <strong>{{ nb_conversions|number }}</strong> {{ 'General_EcommerceOrders'|translate }} <img src='plugins/Morpheus/images/ecommerceOrder.gif'> {% else %} - {{ 'Goals_Conversions'|translate("<strong>"~nb_conversions~"</strong>")|raw }} + {{ 'Goals_Conversions'|translate("<strong>"~nb_conversions|number~"</strong>")|raw }} {% endif %} {% if goalAllowMultipleConversionsPerVisit is defined and goalAllowMultipleConversionsPerVisit %} - ({{ 'General_NVisits'|translate("<strong>"~nb_visits_converted~"</strong>")|raw }}) + ({{ 'General_NVisits'|translate("<strong>"~nb_visits_converted|number~"</strong>")|raw }}) {% endif %} </div> {% if revenue != 0 or ecommerce is defined %} @@ -46,14 +46,14 @@ <div class="sparkline">{{ sparkline(urlSparklineConversionRate) }} {% if ecommerce is defined %} {% set ecommerceOrdersText %}{{ 'General_EcommerceOrders'|translate }}{% endset %} - {{ 'Goals_ConversionRate'|translate("<strong>"~conversion_rate~"</strong> "~ecommerceOrdersText)|raw }} + {{ 'Goals_ConversionRate'|translate("<strong>"~conversion_rate|percent~"</strong> "~ecommerceOrdersText)|raw }} {% else %} - {{ 'Goals_OverallConversionRate'|translate("<strong>"~conversion_rate~"</strong>")|raw }} + {{ 'Goals_OverallConversionRate'|translate("<strong>"~conversion_rate|percent~"</strong>")|raw }} {% endif %} </div> {% if ecommerce is defined %} <div class="sparkline">{{ sparkline(urlSparklinePurchasedProducts) }} - <strong>{{ items }}</strong> {{ 'General_PurchasedProducts'|translate }}</div> + <strong>{{ items|number }}</strong> {{ 'General_PurchasedProducts'|translate }}</div> {% endif %} </div> {% if ecommerce is defined %} @@ -65,7 +65,7 @@ <div class="sparkline"> {{ sparkline(cart_urlSparklineConversions) }} {% set ecommerceAbandonedCartsText %}{{ 'Goals_AbandonedCart'|translate }}{% endset %} - <strong>{{ cart_nb_conversions }}</strong> {{ 'General_VisitsWith'|translate(ecommerceAbandonedCartsText) }} + <strong>{{ cart_nb_conversions|number }}</strong> {{ 'General_VisitsWith'|translate(ecommerceAbandonedCartsText) }} </div> <div class="sparkline"> @@ -77,7 +77,7 @@ <div class="sparkline"> {{ sparkline(cart_urlSparklineConversionRate) }} - <strong>{{ cart_conversion_rate }}</strong> + <strong>{{ cart_conversion_rate|percent }}</strong> {{ 'General_VisitsWith'|translate(ecommerceAbandonedCartsText) }} </div> </div> diff --git a/plugins/Goals/templates/getOverviewView.twig b/plugins/Goals/templates/getOverviewView.twig index 909fd0171197f04d7f6c5764888f9a093ebd2fe7..ce828a8b54feb3e0b1439a7e5dfc1fdf9973cbcc 100644 --- a/plugins/Goals/templates/getOverviewView.twig +++ b/plugins/Goals/templates/getOverviewView.twig @@ -21,9 +21,9 @@ {% endif %} <div class="sparkline">{{ sparkline(goal.urlSparklineConversions) }} - {{ 'Goals_Conversions'|translate("<strong>"~nb_conversions~"</strong>")|raw }} + {{ 'Goals_Conversions'|translate("<strong>"~nb_conversions|number~"</strong>")|raw }} {% if goal.goalAllowMultipleConversionsPerVisit %} - ({{ 'General_NVisits'|translate("<strong>"~nb_visits_converted~"</strong>") | raw }}) + ({{ 'General_NVisits'|translate("<strong>"~nb_visits_converted|number~"</strong>") | raw }}) {% endif %} </div> @@ -33,7 +33,7 @@ {% endif %} <div class="sparkline">{{ sparkline(goal.urlSparklineConversionRate) }} - {{ 'Goals_ConversionRate'|translate("<strong>"~conversion_rate~"</strong>")|raw }} + {{ 'Goals_ConversionRate'|translate("<strong>"~conversion_rate|percent~"</strong>")|raw }} </div> {% if not isWidget %} diff --git a/plugins/Referrers/lang/bg.json b/plugins/Referrers/lang/bg.json index 937703c8e324a9505b1073f05ee906bcf8887c4d..886aaa52a30a15d062a687a21027f59e3e617001 100644 --- a/plugins/Referrers/lang/bg.json +++ b/plugins/Referrers/lang/bg.json @@ -45,6 +45,6 @@ "WidgetGetAll": "Ð’Ñички препоръчители", "WidgetSocials": "СпиÑък на Ñоциалните мрежи", "WidgetTopKeywordsForPages": "Ðай-използваните ключови думи", - "XPercentOfVisits": "%s%% от поÑещениÑ" + "XPercentOfVisits": "%s от поÑещениÑ" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/cs.json b/plugins/Referrers/lang/cs.json index f9640a6869c382d634b6b888492fb9cb5386a7a5..740d25a38bcfa3ea547dd2978887ebb97421235e 100644 --- a/plugins/Referrers/lang/cs.json +++ b/plugins/Referrers/lang/cs.json @@ -50,6 +50,6 @@ "WidgetGetAll": "VÅ¡echny referrery", "WidgetSocials": "Seznam sociálnÃch sÃtÃ", "WidgetTopKeywordsForPages": "NejÄastÄ›jÅ¡Ã klÃÄová slova pro URL stránky", - "XPercentOfVisits": "%s%% návÅ¡tÄ›v" + "XPercentOfVisits": "%s návÅ¡tÄ›v" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/da.json b/plugins/Referrers/lang/da.json index e48a828521c0324fe33708f3a1b1b9ba186e2308..3701ba19422d050005142298ee921f843922fee6 100644 --- a/plugins/Referrers/lang/da.json +++ b/plugins/Referrers/lang/da.json @@ -50,6 +50,6 @@ "WidgetGetAll": "Alle henvisninger", "WidgetSocials": "Liste af sociale netværk", "WidgetTopKeywordsForPages": "Top søgeord til side URL", - "XPercentOfVisits": "%s%% af besøg" + "XPercentOfVisits": "%s af besøg" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/de.json b/plugins/Referrers/lang/de.json index f1aebccedcbd4909f81a3934b5e295fa770839d5..ea22dcfc620920092b241ec7140cc627b509242c 100644 --- a/plugins/Referrers/lang/de.json +++ b/plugins/Referrers/lang/de.json @@ -50,6 +50,6 @@ "WidgetGetAll": "Alle Verweise", "WidgetSocials": "Liste Sozialer Netzwerke", "WidgetTopKeywordsForPages": "Top-Suchbegriffe für Seiten-URL", - "XPercentOfVisits": "%s%% aller Besuche" + "XPercentOfVisits": "%s aller Besuche" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/el.json b/plugins/Referrers/lang/el.json index d6533c4c68e6f8553bc5abeb205e2e1cb9ba338a..ec0a844319e8b91219f75904dc7163f72b02795d 100644 --- a/plugins/Referrers/lang/el.json +++ b/plugins/Referrers/lang/el.json @@ -50,6 +50,6 @@ "WidgetGetAll": "Όλες οι ΠαÏαπομπÎÏ‚", "WidgetSocials": "Λίστα κοινωνικών δικτÏων", "WidgetTopKeywordsForPages": "ΔημοφιλÎστεÏες ΛÎξεις-Κλειδιά για τη ΔιεÏθυνση URL της σελίδας", - "XPercentOfVisits": "%s%% των επισκÎψεων" + "XPercentOfVisits": "%s των επισκÎψεων" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/en.json b/plugins/Referrers/lang/en.json index 1d3355299686a0e1e2e495854c4948df74e7cb28..14f106b9d0449145529bec1af8583663e437e152 100644 --- a/plugins/Referrers/lang/en.json +++ b/plugins/Referrers/lang/en.json @@ -50,6 +50,6 @@ "WidgetGetAll": "All Referrers", "WidgetSocials": "List of social networks", "WidgetTopKeywordsForPages": "Top Keywords for Page URL", - "XPercentOfVisits": "%s%% of visits" + "XPercentOfVisits": "%s of visits" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/es.json b/plugins/Referrers/lang/es.json index 32c8cb3a7bca73f066d78eb1ebdfd8add65d5bc2..9d38b45cc830a6c5cbd6f7f46b0db68f8fbadda0 100644 --- a/plugins/Referrers/lang/es.json +++ b/plugins/Referrers/lang/es.json @@ -50,6 +50,6 @@ "WidgetGetAll": "Todas las referencias", "WidgetSocials": "Lista de redes sociales", "WidgetTopKeywordsForPages": "Principales palabras clave para el URL de página", - "XPercentOfVisits": "%s%% de visitas" + "XPercentOfVisits": "%s de visitas" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/et.json b/plugins/Referrers/lang/et.json index f2d0d0dc8a2232ac0cb972023d6c22eea81ba1a4..a91f3185bc1fa343b1c4625938934a6274c3b410 100644 --- a/plugins/Referrers/lang/et.json +++ b/plugins/Referrers/lang/et.json @@ -29,6 +29,6 @@ "WidgetGetAll": "Kõik viitajad", "WidgetSocials": "Nimekiri sotsiaalvõrgustikest", "WidgetTopKeywordsForPages": "Lehe URL peamised võtmesõnad", - "XPercentOfVisits": "%s%% külastustest" + "XPercentOfVisits": "%s külastustest" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/fi.json b/plugins/Referrers/lang/fi.json index 8131fe33a816b0f072b7a1e87f6cc7c9ceaf4156..7e2ac0ed16a96ea54bd400fd867960d03f8e0569 100644 --- a/plugins/Referrers/lang/fi.json +++ b/plugins/Referrers/lang/fi.json @@ -48,6 +48,6 @@ "WidgetGetAll": "Kaikki viittaukset", "WidgetSocials": "Sosiaalisten verkostojen lista", "WidgetTopKeywordsForPages": "Käytetyimmät avainsanat sivun URL:lle", - "XPercentOfVisits": "%s%% kävijöistä" + "XPercentOfVisits": "%s kävijöistä" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/fr.json b/plugins/Referrers/lang/fr.json index ff7aa07f750a284cd23b8b5a238a4341111e965e..864f8b31a36b8709a09b3ea9bf71d977126e3d7f 100644 --- a/plugins/Referrers/lang/fr.json +++ b/plugins/Referrers/lang/fr.json @@ -50,6 +50,6 @@ "WidgetGetAll": "Tous les référents", "WidgetSocials": "Liste des réseaux sociaux", "WidgetTopKeywordsForPages": "Meilleurs mots-clés pour l'URL", - "XPercentOfVisits": "%s%% des visites" + "XPercentOfVisits": "%s des visites" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/it.json b/plugins/Referrers/lang/it.json index 94396a0dcd91bd1a5b794be18fafbec99a5671a8..5343975d95ab959551011aede0667d5e617e14af 100644 --- a/plugins/Referrers/lang/it.json +++ b/plugins/Referrers/lang/it.json @@ -50,6 +50,6 @@ "WidgetGetAll": "Tutti i Referenti", "WidgetSocials": "Elenco di social network", "WidgetTopKeywordsForPages": "Top Keyword per URL Pagina", - "XPercentOfVisits": "%s%% di visite" + "XPercentOfVisits": "%s di visite" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/ja.json b/plugins/Referrers/lang/ja.json index db6978a8f1ac5b2065ef19c4531a37bd590e5dec..f5b1e178a432b7ae0e73b86397239a555db1ca51 100644 --- a/plugins/Referrers/lang/ja.json +++ b/plugins/Referrers/lang/ja.json @@ -50,6 +50,6 @@ "WidgetGetAll": "å…¨å‚照元", "WidgetSocials": "ソーシャルãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã®ãƒªã‚¹ãƒˆ", "WidgetTopKeywordsForPages": "ページ URL ã®ãƒˆãƒƒãƒ—ã‚ーワード", - "XPercentOfVisits": "訪å•ã® %s%%" + "XPercentOfVisits": "訪å•ã® %s" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/nb.json b/plugins/Referrers/lang/nb.json index ee64f7ba5ab6ba6c8ea18e6b77f946e6cfb10018..c521750718359dc7f1d1e0f9e40a5ce1bce8e328 100644 --- a/plugins/Referrers/lang/nb.json +++ b/plugins/Referrers/lang/nb.json @@ -32,6 +32,6 @@ "WidgetExternalWebsites": "Liste over eksterne nettsteder", "WidgetGetAll": "Alle henvisere", "WidgetSocials": "Liste over sosiale nettverk", - "XPercentOfVisits": "%s%% av besøk" + "XPercentOfVisits": "%s av besøk" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/nl.json b/plugins/Referrers/lang/nl.json index 90630685820d8ed5f5a1f6de650f6a2d1fd26f7a..648c1f51a13f433dadf8f9e7dc588e5f648d56a8 100644 --- a/plugins/Referrers/lang/nl.json +++ b/plugins/Referrers/lang/nl.json @@ -47,6 +47,6 @@ "WidgetGetAll": "Alle Referers", "WidgetSocials": "Lijst van sociale netwerken", "WidgetTopKeywordsForPages": "Top sleutelwoorden voor pagina URL", - "XPercentOfVisits": "%s%% van de bezoeken" + "XPercentOfVisits": "%s van de bezoeken" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/pt-br.json b/plugins/Referrers/lang/pt-br.json index 64174e7f01248ee4b6d09212d927639531baafca..7204ca60696bd9dfd4b2e42d0182f18fc33d4cf8 100644 --- a/plugins/Referrers/lang/pt-br.json +++ b/plugins/Referrers/lang/pt-br.json @@ -50,6 +50,6 @@ "WidgetGetAll": "Todos os Referenciadores", "WidgetSocials": "Lista de redes sociais", "WidgetTopKeywordsForPages": "Principais Palavras-chave para a URL da página", - "XPercentOfVisits": "%s%% de visitas" + "XPercentOfVisits": "%s de visitas" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/ro.json b/plugins/Referrers/lang/ro.json index bd6b9f538f46c4f39cf1a4279d08b003b13ce19b..ea2c7aec8260cd33a566e3bf70f3b88aa2fe3342 100644 --- a/plugins/Referrers/lang/ro.json +++ b/plugins/Referrers/lang/ro.json @@ -48,6 +48,6 @@ "WidgetGetAll": "Toti Referalii", "WidgetSocials": "Listă de reÅ£ele sociale", "WidgetTopKeywordsForPages": "Cuvinte cheie de top pentru URL-ul paginii", - "XPercentOfVisits": "%s%% de vizite" + "XPercentOfVisits": "%s de vizite" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/ru.json b/plugins/Referrers/lang/ru.json index 50dd18267de0a6258aac8afa490ce9fe1538ffe4..1a93015fc251db68d8baf90dafcbf3c16c894399 100644 --- a/plugins/Referrers/lang/ru.json +++ b/plugins/Referrers/lang/ru.json @@ -48,6 +48,6 @@ "WidgetGetAll": "Ð’Ñе иÑточники трафика", "WidgetSocials": "СпиÑок Ñоциальных Ñетей", "WidgetTopKeywordsForPages": "Топ ключевых Ñлов Ð´Ð»Ñ Ñтраницы URL", - "XPercentOfVisits": "%s%% поÑещений" + "XPercentOfVisits": "%s поÑещений" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/sr.json b/plugins/Referrers/lang/sr.json index 20949babe97c2aa195c945c5220081e3c41ecdd0..1766549e627eef10928f65663b11177177ca8bee 100644 --- a/plugins/Referrers/lang/sr.json +++ b/plugins/Referrers/lang/sr.json @@ -50,6 +50,6 @@ "WidgetGetAll": "Sve reference", "WidgetSocials": "Spisak druÅ¡tvenih mreža", "WidgetTopKeywordsForPages": "Najbolje kljuÄne reÄi za URL", - "XPercentOfVisits": "%s%% poseta" + "XPercentOfVisits": "%s poseta" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/sv.json b/plugins/Referrers/lang/sv.json index 3deca310064be949ae67c21d7fa5645168410873..99319376dd613a56d7bf860412aff378e66b2534 100644 --- a/plugins/Referrers/lang/sv.json +++ b/plugins/Referrers/lang/sv.json @@ -50,6 +50,6 @@ "WidgetGetAll": "Alla hänvisningar", "WidgetSocials": "Lista över sociala nätverk", "WidgetTopKeywordsForPages": "Toppnyckelord för sid-URL", - "XPercentOfVisits": "%s%% av besökare" + "XPercentOfVisits": "%s av besökare" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/tl.json b/plugins/Referrers/lang/tl.json index bd973da30aed571c6ab50d3afe8a5bc6126cb58b..cd2b2f5adc009ec3e0d649fe4178d15cf31b219d 100644 --- a/plugins/Referrers/lang/tl.json +++ b/plugins/Referrers/lang/tl.json @@ -48,6 +48,6 @@ "WidgetGetAll": "Lahat ng mga Referrer", "WidgetSocials": "Listahan ng mga social network", "WidgetTopKeywordsForPages": "Nangungunang mga keyword para sa URL ng Pahina", - "XPercentOfVisits": "%s%% ng mga pagbisita" + "XPercentOfVisits": "%s ng mga pagbisita" } } \ No newline at end of file diff --git a/plugins/Referrers/lang/zh-cn.json b/plugins/Referrers/lang/zh-cn.json index 7fdef3a5f02784f40e92a7188efc1f9cd84d3d2a..983f89210b0c4381b3bd26d11dd23ddefac240ef 100644 --- a/plugins/Referrers/lang/zh-cn.json +++ b/plugins/Referrers/lang/zh-cn.json @@ -50,6 +50,6 @@ "WidgetGetAll": "所有æ¥æº", "WidgetSocials": "社交网络", "WidgetTopKeywordsForPages": "主è¦å…³é”®è¯", - "XPercentOfVisits": "%s%% 个访问" + "XPercentOfVisits": "%s 个访问" } } \ No newline at end of file diff --git a/plugins/Referrers/templates/index.twig b/plugins/Referrers/templates/index.twig index c6294312105be99482223cfaea7568ba2bb51e40..74851c3b37bdd4833687556e9981a057fae409c8 100644 --- a/plugins/Referrers/templates/index.twig +++ b/plugins/Referrers/templates/index.twig @@ -7,18 +7,18 @@ <div class="row"> <div class="col-md-6"> <div class="sparkline" style="padding-left: 12px;">{{ sparkline(urlSparklineDirectEntry) }} - {{ 'Referrers_TypeDirectEntries'|translate("<strong>"~visitorsFromDirectEntry~"</strong>")|raw }} + {{ 'Referrers_TypeDirectEntries'|translate("<strong>"~visitorsFromDirectEntry|number~"</strong>")|raw }} {% if visitorsFromDirectEntryPercent|default is not empty %}, - {{ 'Referrers_XPercentOfVisits'|translate("<strong>"~visitorsFromDirectEntryPercent~"</strong>")|raw }} + {{ 'Referrers_XPercentOfVisits'|translate("<strong>"~visitorsFromDirectEntryPercent|percent~"</strong>")|raw }} {% endif %} {% if visitorsFromDirectEntryEvolution|default is not empty %} {{ visitorsFromDirectEntryEvolution|raw }} {% endif %} </div> <div class="sparkline" style="padding-left: 12px;">{{ sparkline(urlSparklineSearchEngines) }} - {{ 'Referrers_TypeSearchEngines'|translate("<strong>"~visitorsFromSearchEngines~"</strong>")|raw }} + {{ 'Referrers_TypeSearchEngines'|translate("<strong>"~visitorsFromSearchEngines|number~"</strong>")|raw }} {% if visitorsFromSearchEnginesPercent|default is not empty %}, - {{ 'Referrers_XPercentOfVisits'|translate("<strong>"~visitorsFromSearchEnginesPercent~"</strong>")|raw }} + {{ 'Referrers_XPercentOfVisits'|translate("<strong>"~visitorsFromSearchEnginesPercent|percent~"</strong>")|raw }} {% endif %} {% if visitorsFromSearchEnginesEvolution|default is not empty %} {{ visitorsFromSearchEnginesEvolution|raw }} @@ -27,18 +27,18 @@ </div> <div class="col-md-6"> <div class="sparkline">{{ sparkline(urlSparklineWebsites) }} - {{ 'Referrers_TypeWebsites'|translate("<strong>"~visitorsFromWebsites~"</strong>")|raw }} + {{ 'Referrers_TypeWebsites'|translate("<strong>"~visitorsFromWebsites|number~"</strong>")|raw }} {% if visitorsFromWebsitesPercent|default is not empty %}, - {{ 'Referrers_XPercentOfVisits'|translate("<strong>"~visitorsFromWebsitesPercent~"</strong>")|raw }} + {{ 'Referrers_XPercentOfVisits'|translate("<strong>"~visitorsFromWebsitesPercent|percent~"</strong>")|raw }} {% endif %} {% if visitorsFromWebsitesEvolution|default is not empty %} {{ visitorsFromWebsitesEvolution|raw }} {% endif %} </div> <div class="sparkline">{{ sparkline(urlSparklineCampaigns) }} - {{ 'Referrers_TypeCampaigns'|translate("<strong>"~visitorsFromCampaigns~"</strong>")|raw }} + {{ 'Referrers_TypeCampaigns'|translate("<strong>"~visitorsFromCampaigns|number~"</strong>")|raw }} {% if visitorsFromCampaignsPercent|default is not empty %}, - {{ 'Referrers_XPercentOfVisits'|translate("<strong>"~visitorsFromCampaignsPercent~"</strong>")|raw }} + {{ 'Referrers_XPercentOfVisits'|translate("<strong>"~visitorsFromCampaignsPercent|percent~"</strong>")|raw }} {% endif %} {% if visitorsFromCampaignsEvolution|default is not empty %} {{ visitorsFromCampaignsEvolution|raw }} @@ -50,13 +50,13 @@ <div id="distinctReferrersByType" class="row"> <div class="col-md-6"> <div class="sparkline" style="padding-left: 12px;">{{ sparkline(urlSparklineDistinctSearchEngines) }} - <strong>{{ numberDistinctSearchEngines }}</strong> {{ 'Referrers_DistinctSearchEngines'|translate }} + <strong>{{ numberDistinctSearchEngines|number }}</strong> {{ 'Referrers_DistinctSearchEngines'|translate }} {% if numberDistinctSearchEnginesEvolution|default is not empty %} {{ numberDistinctSearchEnginesEvolution|raw }} {% endif %} </div> <div class="sparkline" style="padding-left: 12px;">{{ sparkline(urlSparklineDistinctKeywords) }} - <strong>{{ numberDistinctKeywords }}</strong> {{ 'Referrers_DistinctKeywords'|translate }} + <strong>{{ numberDistinctKeywords|number }}</strong> {{ 'Referrers_DistinctKeywords'|translate }} {% if numberDistinctKeywordsEvolution|default is not empty %} {{ numberDistinctKeywordsEvolution|raw }} {% endif %} @@ -64,14 +64,14 @@ </div> <div class="col-md-6"> <div class="sparkline">{{ sparkline(urlSparklineDistinctWebsites) }} - <strong>{{ numberDistinctWebsites }}</strong> {{ 'Referrers_DistinctWebsites'|translate }} - {{ 'Referrers_UsingNDistinctUrls'|translate("<strong>"~numberDistinctWebsitesUrls~"</strong>")|raw }} + <strong>{{ numberDistinctWebsites|number }}</strong> {{ 'Referrers_DistinctWebsites'|translate }} + {{ 'Referrers_UsingNDistinctUrls'|translate("<strong>"~numberDistinctWebsitesUrls|number~"</strong>")|raw }} {% if numberDistinctWebsitesEvolution|default is not empty %} {{ numberDistinctWebsitesEvolution|raw }} {% endif %} </div> <div class="sparkline">{{ sparkline(urlSparklineDistinctCampaigns) }} - <strong>{{ numberDistinctCampaigns }}</strong> {{ 'Referrers_DistinctCampaigns'|translate }} + <strong>{{ numberDistinctCampaigns|number }}</strong> {{ 'Referrers_DistinctCampaigns'|translate }} {% if numberDistinctCampaignsEvolution|default is not empty %} {{ numberDistinctCampaignsEvolution|raw }} {% endif %} diff --git a/plugins/UserCountry/templates/index.twig b/plugins/UserCountry/templates/index.twig index fe1a6735dd5eb81833a8cf9c247c1830a4556cdb..01708f5bce455071ba1a0aa8a9c2ee6ddb3693a6 100644 --- a/plugins/UserCountry/templates/index.twig +++ b/plugins/UserCountry/templates/index.twig @@ -8,7 +8,7 @@ <div class="sparkline"> {{ sparkline(urlSparklineCountries) }} - {{ 'UserCountry_DistinctCountries'|translate("<strong>"~numberDistinctCountries~"</strong>")|raw }} + {{ 'UserCountry_DistinctCountries'|translate("<strong>"~numberDistinctCountries|number~"</strong>")|raw }} </div> <div style="clear:left"></div> diff --git a/plugins/VisitFrequency/templates/_sparklines.twig b/plugins/VisitFrequency/templates/_sparklines.twig index c6c123c5e2db075d491740e9ff9884529a8fafec..9c59efb811fb0f6672db612a9360c424d045270f 100644 --- a/plugins/VisitFrequency/templates/_sparklines.twig +++ b/plugins/VisitFrequency/templates/_sparklines.twig @@ -6,15 +6,15 @@ <div class="sparkline"> {{ sparkline(urlSparklineNbVisitsReturning) }} - {{ 'VisitFrequency_ReturnVisits'|translate("<strong>"~nbVisitsReturning~"</strong>")|raw }} + {{ 'VisitFrequency_ReturnVisits'|translate("<strong>"~nbVisitsReturning|number~"</strong>")|raw }} </div> <div class="sparkline"> {{ sparkline(urlSparklineNbActionsReturning) }} - {{ 'VisitFrequency_ReturnActions'|translate("<strong>"~nbActionsReturning~"</strong>")|raw }} + {{ 'VisitFrequency_ReturnActions'|translate("<strong>"~nbActionsReturning|number~"</strong>")|raw }} </div> <div class="sparkline"> {{ sparkline(urlSparklineActionsPerVisitReturning) }} - {{ 'VisitFrequency_ReturnAvgActions'|translate("<strong>"~nbActionsPerVisitReturning~"</strong>")|raw }} + {{ 'VisitFrequency_ReturnAvgActions'|translate("<strong>"~nbActionsPerVisitReturning|number(1)~"</strong>")|raw }} </div> {% if not isWidget %} @@ -29,7 +29,7 @@ </div> <div class="sparkline"> {{ sparkline(urlSparklineBounceRateReturning) }} - {{ 'VisitFrequency_ReturnBounceRate'|translate("<strong>"~bounceRateReturning~"</strong>")|raw }} + {{ 'VisitFrequency_ReturnBounceRate'|translate("<strong>"~bounceRateReturning|percent~"</strong>")|raw }} </div> {% include "_sparklineFooter.twig" %} diff --git a/plugins/VisitsSummary/templates/_sparklines.twig b/plugins/VisitsSummary/templates/_sparklines.twig index 94682a928c3e1f2a6caa20b91fff42a09d2d711a..b00ba537a1a1199c57bdca299a3b57e3e166b3fc 100644 --- a/plugins/VisitsSummary/templates/_sparklines.twig +++ b/plugins/VisitsSummary/templates/_sparklines.twig @@ -5,14 +5,14 @@ <div class="sparkline"> {{ sparkline(urlSparklineNbVisits)|raw }} - {{ 'General_NVisits'|translate("<strong>"~nbVisits~"</strong>")|raw }}{% if displayUniqueVisitors %}, - {{ 'VisitsSummary_NbUniqueVisitors'|translate("<strong>"~nbUniqVisitors~"</strong>")|raw }}{% endif %} + {{ 'General_NVisits'|translate("<strong>"~nbVisits|number~"</strong>")|raw }}{% if displayUniqueVisitors %}, + {{ 'VisitsSummary_NbUniqueVisitors'|translate("<strong>"~nbUniqVisitors|number~"</strong>")|raw }}{% endif %} </div> {% if nbUsers > 0 %} {# Most of users will not have used `setUserId` so this would be confusingly zero #} <div class="sparkline"> {{ sparkline(urlSparklineNbUsers)|raw }} - {{ 'General_NUsers'|translate("<strong>"~nbUsers~"</strong>")|raw }} + {{ 'General_NUsers'|translate("<strong>"~nbUsers|number~"</strong>")|raw }} </div> {% endif %} <div class="sparkline"> @@ -22,11 +22,11 @@ </div> <div class="sparkline"> {{ sparkline(urlSparklineBounceRate)|raw }} - {{ 'VisitsSummary_NbVisitsBounced'|translate("<strong>"~bounceRate~"</strong>")|raw }} + {{ 'VisitsSummary_NbVisitsBounced'|translate("<strong>"~bounceRate|percent~"</strong>")|raw }} </div> <div class="sparkline"> {{ sparkline(urlSparklineActionsPerVisit)|raw }} - {{ 'VisitsSummary_NbActionsPerVisit'|translate("<strong>"~nbActionsPerVisit~"</strong>")|raw }} + {{ 'VisitsSummary_NbActionsPerVisit'|translate("<strong>"~nbActionsPerVisit|number(1)~"</strong>")|raw }} </div> {% if showActionsPluginReports|default(false) %} <div class="sparkline"> @@ -45,36 +45,36 @@ {% if showOnlyActions %} <div class="sparkline"> {{ sparkline(urlSparklineNbActions)|raw }} - {{ 'VisitsSummary_NbActionsDescription'|translate("<strong>"~nbActions~"</strong>")|raw }} + {{ 'VisitsSummary_NbActionsDescription'|translate("<strong>"~nbActions|number~"</strong>")|raw }} </div> {% else %} <div class="sparkline"> {{ sparkline(urlSparklineNbPageviews)|raw }} - {{ 'VisitsSummary_NbPageviewsDescription'|translate("<strong>"~nbPageviews~"</strong>")|trim|raw }}, - {{ 'VisitsSummary_NbUniquePageviewsDescription'|translate("<strong>"~nbUniquePageviews~"</strong>")|raw }} + {{ 'VisitsSummary_NbPageviewsDescription'|translate("<strong>"~nbPageviews|number~"</strong>")|trim|raw }}, + {{ 'VisitsSummary_NbUniquePageviewsDescription'|translate("<strong>"~nbUniquePageviews|number~"</strong>")|raw }} </div> {% if displaySiteSearch %} <div class="sparkline"> {{ sparkline(urlSparklineNbSearches)|raw }} - {{ 'VisitsSummary_NbSearchesDescription'|translate("<strong>"~nbSearches~"</strong>")|trim|raw }}, - {{ 'VisitsSummary_NbKeywordsDescription'|translate("<strong>"~nbKeywords~"</strong>")|raw }} + {{ 'VisitsSummary_NbSearchesDescription'|translate("<strong>"~nbSearches|number~"</strong>")|trim|raw }}, + {{ 'VisitsSummary_NbKeywordsDescription'|translate("<strong>"~nbKeywords|number~"</strong>")|raw }} </div> {% endif %} <div class="sparkline"> {{ sparkline(urlSparklineNbDownloads)|raw }} - {{ 'VisitsSummary_NbDownloadsDescription'|translate("<strong>"~nbDownloads~"</strong>")|trim|raw }}, - {{ 'VisitsSummary_NbUniqueDownloadsDescription'|translate("<strong>"~nbUniqueDownloads~"</strong>")|raw }} + {{ 'VisitsSummary_NbDownloadsDescription'|translate("<strong>"~nbDownloads|number~"</strong>")|trim|raw }}, + {{ 'VisitsSummary_NbUniqueDownloadsDescription'|translate("<strong>"~nbUniqueDownloads|number~"</strong>")|raw }} </div> <div class="sparkline"> {{ sparkline(urlSparklineNbOutlinks)|raw }} - {{ 'VisitsSummary_NbOutlinksDescription'|translate("<strong>"~nbOutlinks~"</strong>")|trim|raw }}, - {{ 'VisitsSummary_NbUniqueOutlinksDescription'|translate("<strong>"~nbUniqueOutlinks~"</strong>")|raw }} + {{ 'VisitsSummary_NbOutlinksDescription'|translate("<strong>"~nbOutlinks|number~"</strong>")|trim|raw }}, + {{ 'VisitsSummary_NbUniqueOutlinksDescription'|translate("<strong>"~nbUniqueOutlinks|number~"</strong>")|raw }} </div> {% endif %} {% endif %} <div class="sparkline"> {{ sparkline(urlSparklineMaxActions)|raw }} - {{ 'VisitsSummary_MaxNbActions'|translate("<strong>"~maxActions~"</strong>")|raw }} + {{ 'VisitsSummary_MaxNbActions'|translate("<strong>"~maxActions|number~"</strong>")|raw }} </div> {{ postEvent('Template.VisitsSummaryOverviewSparklines') }}