Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Steur <thomas.steur@gmail.com>2016-02-14 23:10:26 +0300
committerThomas Steur <thomas.steur@gmail.com>2016-02-14 23:10:26 +0300
commit2bae9d90f860f3ccc5598420eb978cafd598451e (patch)
treeb742afddcfc882de15b9c075522cee4eae680db6
parent41b579a9d94a05f7c0cb2e42bf7c03c2d374ed95 (diff)
merge master => 3.0
-rw-r--r--CHANGELOG.md21
-rw-r--r--composer.json2
-rw-r--r--composer.lock45
-rw-r--r--config/global.ini.php6
-rw-r--r--core/ArchiveProcessor.php10
-rw-r--r--core/CliMulti.php15
-rw-r--r--core/Common.php4
-rw-r--r--core/Config.php3
-rw-r--r--core/CronArchive.php33
-rw-r--r--core/DataAccess/ArchiveWriter.php2
-rw-r--r--core/DataFiles/cacert.pem487
-rw-r--r--core/Date.php8
-rw-r--r--core/Db/BatchInsert.php44
-rw-r--r--core/Http.php43
-rw-r--r--core/Mail.php28
-rw-r--r--core/Notification/Manager.php59
-rw-r--r--core/PiwikPro/Advertising.php141
-rw-r--r--core/Plugin/Controller.php1
-rw-r--r--core/Plugin/ControllerAdmin.php33
-rw-r--r--core/Plugin/Manager.php11
-rw-r--r--core/Settings/SystemSetting.php35
-rw-r--r--core/SettingsPiwik.php5
-rw-r--r--core/Tracker/Request.php4
-rwxr-xr-xcore/Twig.php71
-rw-r--r--core/Updates/2.1.1-b11.php2
-rw-r--r--core/Updates/2.16.0-rc2.php28
-rw-r--r--core/Url.php16
-rw-r--r--core/View.php7
-rw-r--r--core/testMinimumPhpVersion.php2
-rw-r--r--js/README.md7
-rw-r--r--js/piwik.js34
-rw-r--r--lang/ar.json31
-rw-r--r--lang/be.json34
-rw-r--r--lang/bg.json44
-rw-r--r--lang/bn.json4
-rw-r--r--lang/bs.json36
-rw-r--r--lang/ca.json42
-rw-r--r--lang/cs.json88
-rw-r--r--lang/da.json49
-rw-r--r--lang/de.json58
-rw-r--r--lang/el.json60
-rw-r--r--lang/en.json60
-rw-r--r--lang/es.json52
-rw-r--r--lang/et.json8
-rw-r--r--lang/eu.json5
-rw-r--r--lang/fa.json26
-rw-r--r--lang/fi.json48
-rw-r--r--lang/fr.json58
-rw-r--r--lang/gl.json3
-rw-r--r--lang/he.json26
-rw-r--r--lang/hi.json46
-rw-r--r--lang/hr.json32
-rw-r--r--lang/hu.json32
-rw-r--r--lang/id.json48
-rw-r--r--lang/it.json60
-rw-r--r--lang/ja.json52
-rw-r--r--lang/ko.json48
-rw-r--r--lang/lt.json51
-rw-r--r--lang/lv.json18
-rw-r--r--lang/nb.json65
-rw-r--r--lang/nl.json56
-rw-r--r--lang/nn.json41
-rw-r--r--lang/pl.json67
-rw-r--r--lang/pt-br.json60
-rw-r--r--lang/pt.json38
-rw-r--r--lang/ro.json44
-rw-r--r--lang/ru.json56
-rw-r--r--lang/sk.json55
-rw-r--r--lang/sl.json50
-rw-r--r--lang/sq.json56
-rw-r--r--lang/sr.json56
-rw-r--r--lang/sv.json103
-rw-r--r--lang/ta.json22
-rw-r--r--lang/te.json4
-rw-r--r--lang/th.json38
-rw-r--r--lang/tl.json38
-rw-r--r--lang/tr.json29
-rw-r--r--lang/uk.json26
-rw-r--r--lang/vi.json46
-rw-r--r--lang/zh-cn.json42
-rw-r--r--lang/zh-tw.json27
-rw-r--r--libs/README.md1
-rw-r--r--libs/Zend/Session.php13
-rw-r--r--libs/Zend/Validate/Hostname.php118
-rw-r--r--libs/bower_components/angular/angular.js4
-rwxr-xr-xlibs/pChart/class/pData.class.php1576
-rwxr-xr-xlibs/pChart/class/pImage.class.php962
-rwxr-xr-xlibs/pChart/class/pPie.class.php2998
m---------misc/log-analytics0
-rw-r--r--misc/phpstorm-codestyles/Piwik_codestyle.xml34
-rw-r--r--misc/phpstorm-codestyles/README.md21
-rw-r--r--piwik.js88
-rw-r--r--plugins/API/API.php16
-rw-r--r--plugins/API/Renderer/Original.php4
-rw-r--r--plugins/API/SegmentMetadata.php2
-rw-r--r--plugins/API/lang/ar.json8
-rw-r--r--plugins/API/lang/be.json8
-rw-r--r--plugins/API/lang/bg.json8
-rw-r--r--plugins/API/lang/bs.json4
-rw-r--r--plugins/API/lang/ca.json8
-rw-r--r--plugins/API/lang/cs.json10
-rw-r--r--plugins/API/lang/da.json8
-rw-r--r--plugins/API/lang/de.json10
-rw-r--r--plugins/API/lang/el.json10
-rw-r--r--plugins/API/lang/en.json10
-rw-r--r--plugins/API/lang/es.json8
-rw-r--r--plugins/API/lang/et.json2
-rw-r--r--plugins/API/lang/fa.json2
-rw-r--r--plugins/API/lang/fi.json8
-rw-r--r--plugins/API/lang/fr.json10
-rw-r--r--plugins/API/lang/he.json8
-rw-r--r--plugins/API/lang/hi.json8
-rw-r--r--plugins/API/lang/hr.json2
-rw-r--r--plugins/API/lang/hu.json8
-rw-r--r--plugins/API/lang/id.json8
-rw-r--r--plugins/API/lang/it.json10
-rw-r--r--plugins/API/lang/ja.json10
-rw-r--r--plugins/API/lang/ko.json10
-rw-r--r--plugins/API/lang/lt.json8
-rw-r--r--plugins/API/lang/nb.json10
-rw-r--r--plugins/API/lang/nl.json8
-rw-r--r--plugins/API/lang/pl.json10
-rw-r--r--plugins/API/lang/pt-br.json10
-rw-r--r--plugins/API/lang/pt.json8
-rw-r--r--plugins/API/lang/ro.json8
-rw-r--r--plugins/API/lang/ru.json8
-rw-r--r--plugins/API/lang/sl.json8
-rw-r--r--plugins/API/lang/sq.json8
-rw-r--r--plugins/API/lang/sr.json8
-rw-r--r--plugins/API/lang/sv.json10
-rw-r--r--plugins/API/lang/ta.json2
-rw-r--r--plugins/API/lang/th.json8
-rw-r--r--plugins/API/lang/tl.json8
-rw-r--r--plugins/API/lang/tr.json8
-rw-r--r--plugins/API/lang/uk.json8
-rw-r--r--plugins/API/lang/vi.json8
-rw-r--r--plugins/API/lang/zh-cn.json8
-rw-r--r--plugins/API/lang/zh-tw.json8
-rw-r--r--plugins/API/tests/Integration/APITest.php2
-rw-r--r--plugins/Actions/Columns/ActionType.php2
-rw-r--r--plugins/Actions/Columns/Metrics/AverageTimeOnPage.php6
-rw-r--r--plugins/Actions/javascripts/actionsDataTable.js7
-rw-r--r--plugins/Actions/javascripts/rowactions.js70
-rw-r--r--plugins/Actions/lang/ar.json4
-rw-r--r--plugins/Actions/lang/be.json2
-rw-r--r--plugins/Actions/lang/bg.json4
-rw-r--r--plugins/Actions/lang/bs.json4
-rw-r--r--plugins/Actions/lang/ca.json4
-rw-r--r--plugins/Actions/lang/cs.json4
-rw-r--r--plugins/Actions/lang/da.json4
-rw-r--r--plugins/Actions/lang/de.json7
-rw-r--r--plugins/Actions/lang/el.json4
-rw-r--r--plugins/Actions/lang/en.json4
-rw-r--r--plugins/Actions/lang/es.json4
-rw-r--r--plugins/Actions/lang/et.json2
-rw-r--r--plugins/Actions/lang/fa.json4
-rw-r--r--plugins/Actions/lang/fi.json4
-rw-r--r--plugins/Actions/lang/fr.json3
-rw-r--r--plugins/Actions/lang/he.json4
-rw-r--r--plugins/Actions/lang/hi.json2
-rw-r--r--plugins/Actions/lang/hu.json2
-rw-r--r--plugins/Actions/lang/id.json4
-rw-r--r--plugins/Actions/lang/it.json4
-rw-r--r--plugins/Actions/lang/ja.json4
-rw-r--r--plugins/Actions/lang/ko.json2
-rw-r--r--plugins/Actions/lang/lt.json3
-rw-r--r--plugins/Actions/lang/nb.json4
-rw-r--r--plugins/Actions/lang/nl.json4
-rw-r--r--plugins/Actions/lang/nn.json2
-rw-r--r--plugins/Actions/lang/pl.json12
-rw-r--r--plugins/Actions/lang/pt-br.json4
-rw-r--r--plugins/Actions/lang/pt.json4
-rw-r--r--plugins/Actions/lang/ro.json4
-rw-r--r--plugins/Actions/lang/ru.json4
-rw-r--r--plugins/Actions/lang/sl.json2
-rw-r--r--plugins/Actions/lang/sq.json4
-rw-r--r--plugins/Actions/lang/sr.json4
-rw-r--r--plugins/Actions/lang/sv.json16
-rw-r--r--plugins/Actions/lang/ta.json3
-rw-r--r--plugins/Actions/lang/th.json4
-rw-r--r--plugins/Actions/lang/tl.json3
-rw-r--r--plugins/Actions/lang/tr.json4
-rw-r--r--plugins/Actions/lang/vi.json4
-rw-r--r--plugins/Actions/lang/zh-cn.json4
m---------plugins/AnonymousPiwikUsageMeasurement0
-rw-r--r--plugins/Contents/lang/en.json18
-rw-r--r--plugins/Contents/lang/pl.json2
-rw-r--r--plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml8
-rw-r--r--plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml8
-rw-r--r--plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml8
-rw-r--r--plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml8
-rw-r--r--plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml8
-rw-r--r--plugins/CoreAdminHome/CustomLogo.php10
-rw-r--r--plugins/CoreAdminHome/javascripts/generalSettings.js5
-rw-r--r--plugins/CoreAdminHome/lang/ar.json4
-rw-r--r--plugins/CoreAdminHome/lang/be.json4
-rw-r--r--plugins/CoreAdminHome/lang/bg.json13
-rw-r--r--plugins/CoreAdminHome/lang/ca.json4
-rw-r--r--plugins/CoreAdminHome/lang/cs.json33
-rw-r--r--plugins/CoreAdminHome/lang/da.json17
-rw-r--r--plugins/CoreAdminHome/lang/de.json21
-rw-r--r--plugins/CoreAdminHome/lang/el.json21
-rw-r--r--plugins/CoreAdminHome/lang/en.json21
-rw-r--r--plugins/CoreAdminHome/lang/es.json17
-rw-r--r--plugins/CoreAdminHome/lang/fa.json7
-rw-r--r--plugins/CoreAdminHome/lang/fi.json17
-rw-r--r--plugins/CoreAdminHome/lang/fr.json20
-rw-r--r--plugins/CoreAdminHome/lang/hi.json9
-rw-r--r--plugins/CoreAdminHome/lang/hu.json19
-rw-r--r--plugins/CoreAdminHome/lang/id.json11
-rw-r--r--plugins/CoreAdminHome/lang/it.json21
-rw-r--r--plugins/CoreAdminHome/lang/ja.json17
-rw-r--r--plugins/CoreAdminHome/lang/ko.json12
-rw-r--r--plugins/CoreAdminHome/lang/lt.json2
-rw-r--r--plugins/CoreAdminHome/lang/nb.json23
-rw-r--r--plugins/CoreAdminHome/lang/nl.json17
-rw-r--r--plugins/CoreAdminHome/lang/nn.json2
-rw-r--r--plugins/CoreAdminHome/lang/pl.json17
-rw-r--r--plugins/CoreAdminHome/lang/pt-br.json21
-rw-r--r--plugins/CoreAdminHome/lang/pt.json11
-rw-r--r--plugins/CoreAdminHome/lang/ro.json17
-rw-r--r--plugins/CoreAdminHome/lang/ru.json17
-rw-r--r--plugins/CoreAdminHome/lang/sl.json4
-rw-r--r--plugins/CoreAdminHome/lang/sq.json4
-rw-r--r--plugins/CoreAdminHome/lang/sr.json17
-rw-r--r--plugins/CoreAdminHome/lang/sv.json23
-rw-r--r--plugins/CoreAdminHome/lang/ta.json1
-rw-r--r--plugins/CoreAdminHome/lang/th.json2
-rw-r--r--plugins/CoreAdminHome/lang/tl.json17
-rw-r--r--plugins/CoreAdminHome/lang/tr.json12
-rw-r--r--plugins/CoreAdminHome/lang/uk.json2
-rw-r--r--plugins/CoreAdminHome/lang/vi.json15
-rw-r--r--plugins/CoreAdminHome/lang/zh-cn.json15
-rw-r--r--plugins/CoreAdminHome/templates/generalSettings.twig3
-rw-r--r--plugins/CoreConsole/Commands/CoreArchiver.php2
-rw-r--r--plugins/CoreConsole/Commands/GeneratePlugin.php4
-rw-r--r--plugins/CoreConsole/Commands/GenerateWidget.php2
-rw-r--r--plugins/CoreHome/Columns/VisitLastActionTime.php4
-rw-r--r--plugins/CoreHome/CoreHome.php2
-rw-r--r--plugins/CoreHome/Menu.php2
-rw-r--r--plugins/CoreHome/Widgets/GetDonateForm.php2
-rw-r--r--plugins/CoreHome/Widgets/GetPromoVideo.php2
-rw-r--r--plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js2
-rw-r--r--plugins/CoreHome/angularjs/enrichedheadline/enrichedheadline.directive.html4
-rw-r--r--plugins/CoreHome/angularjs/quick-access/quick-access.controller.js8
-rw-r--r--plugins/CoreHome/angularjs/quick-access/quick-access.directive.html10
-rw-r--r--plugins/CoreHome/angularjs/quick-access/quick-access.directive.js2
-rw-r--r--plugins/CoreHome/angularjs/reporting-menu/reportingmenu.directive.html6
-rw-r--r--plugins/CoreHome/angularjs/siteselector/siteselector.directive.html10
-rw-r--r--plugins/CoreHome/angularjs/siteselector/siteselector.directive.less2
-rwxr-xr-xplugins/CoreHome/javascripts/corehome.js11
-rw-r--r--plugins/CoreHome/javascripts/dataTable.js16
-rw-r--r--plugins/CoreHome/javascripts/top_controls.js47
-rw-r--r--plugins/CoreHome/lang/ar.json12
-rw-r--r--plugins/CoreHome/lang/be.json2
-rw-r--r--plugins/CoreHome/lang/bg.json2
-rw-r--r--plugins/CoreHome/lang/ca.json2
-rw-r--r--plugins/CoreHome/lang/cs.json13
-rw-r--r--plugins/CoreHome/lang/da.json4
-rw-r--r--plugins/CoreHome/lang/de.json7
-rw-r--r--plugins/CoreHome/lang/el.json7
-rw-r--r--plugins/CoreHome/lang/en.json7
-rw-r--r--plugins/CoreHome/lang/es.json4
-rw-r--r--plugins/CoreHome/lang/fa.json2
-rw-r--r--plugins/CoreHome/lang/fi.json4
-rw-r--r--plugins/CoreHome/lang/fr.json6
-rw-r--r--plugins/CoreHome/lang/hi.json2
-rw-r--r--plugins/CoreHome/lang/hu.json2
-rw-r--r--plugins/CoreHome/lang/id.json2
-rw-r--r--plugins/CoreHome/lang/it.json7
-rw-r--r--plugins/CoreHome/lang/ja.json5
-rw-r--r--plugins/CoreHome/lang/ko.json5
-rw-r--r--plugins/CoreHome/lang/lt.json2
-rw-r--r--plugins/CoreHome/lang/lv.json2
-rw-r--r--plugins/CoreHome/lang/nb.json7
-rw-r--r--plugins/CoreHome/lang/nl.json4
-rw-r--r--plugins/CoreHome/lang/nn.json2
-rw-r--r--plugins/CoreHome/lang/pl.json2
-rw-r--r--plugins/CoreHome/lang/pt-br.json7
-rw-r--r--plugins/CoreHome/lang/ro.json2
-rw-r--r--plugins/CoreHome/lang/ru.json2
-rw-r--r--plugins/CoreHome/lang/sk.json4
-rw-r--r--plugins/CoreHome/lang/sl.json2
-rw-r--r--plugins/CoreHome/lang/sq.json2
-rw-r--r--plugins/CoreHome/lang/sr.json4
-rw-r--r--plugins/CoreHome/lang/sv.json5
-rw-r--r--plugins/CoreHome/lang/ta.json2
-rw-r--r--plugins/CoreHome/lang/tl.json4
-rw-r--r--plugins/CoreHome/lang/vi.json2
-rw-r--r--plugins/CoreHome/lang/zh-cn.json4
-rw-r--r--plugins/CoreHome/stylesheets/dataTable/_dataTable.less4
-rw-r--r--plugins/CoreHome/stylesheets/dataTable/_limitSelection.less2
-rw-r--r--plugins/CoreHome/stylesheets/dataTable/_tableConfiguration.less2
-rw-r--r--plugins/CoreHome/stylesheets/layout.less4
-rw-r--r--plugins/CoreHome/templates/_dataTableHead.twig4
-rw-r--r--plugins/CoreHome/templates/_logo.twig4
-rw-r--r--plugins/CoreHome/templates/_menu.twig8
-rw-r--r--plugins/CoreHome/templates/_periodSelect.twig8
-rw-r--r--plugins/CoreHome/templates/_topBar.twig2
-rw-r--r--plugins/CoreHome/templates/_topScreen.twig2
-rw-r--r--plugins/CoreHome/templates/getDefaultIndexView.twig2
-rw-r--r--plugins/CorePluginsAdmin/lang/ar.json2
-rw-r--r--plugins/CorePluginsAdmin/lang/bg.json6
-rw-r--r--plugins/CorePluginsAdmin/lang/cs.json14
-rw-r--r--plugins/CorePluginsAdmin/lang/da.json12
-rw-r--r--plugins/CorePluginsAdmin/lang/de.json12
-rw-r--r--plugins/CorePluginsAdmin/lang/el.json12
-rw-r--r--plugins/CorePluginsAdmin/lang/en.json12
-rw-r--r--plugins/CorePluginsAdmin/lang/es.json12
-rw-r--r--plugins/CorePluginsAdmin/lang/fa.json2
-rw-r--r--plugins/CorePluginsAdmin/lang/fi.json6
-rw-r--r--plugins/CorePluginsAdmin/lang/fr.json12
-rw-r--r--plugins/CorePluginsAdmin/lang/it.json12
-rw-r--r--plugins/CorePluginsAdmin/lang/ja.json12
-rw-r--r--plugins/CorePluginsAdmin/lang/ko.json2
-rw-r--r--plugins/CorePluginsAdmin/lang/lt.json14
-rw-r--r--plugins/CorePluginsAdmin/lang/nb.json38
-rw-r--r--plugins/CorePluginsAdmin/lang/nl.json12
-rw-r--r--plugins/CorePluginsAdmin/lang/pl.json6
-rw-r--r--plugins/CorePluginsAdmin/lang/pt-br.json12
-rw-r--r--plugins/CorePluginsAdmin/lang/ro.json6
-rw-r--r--plugins/CorePluginsAdmin/lang/ru.json10
-rw-r--r--plugins/CorePluginsAdmin/lang/sk.json12
-rw-r--r--plugins/CorePluginsAdmin/lang/sr.json12
-rw-r--r--plugins/CorePluginsAdmin/lang/sv.json15
-rw-r--r--plugins/CorePluginsAdmin/lang/tl.json6
-rw-r--r--plugins/CorePluginsAdmin/lang/tr.json2
-rw-r--r--plugins/CorePluginsAdmin/lang/vi.json2
-rw-r--r--plugins/CoreUpdater/ReleaseChannel.php2
-rw-r--r--plugins/CoreUpdater/Test/Integration/ReleaseChannelTest.php4
-rw-r--r--plugins/CoreUpdater/lang/cs.json2
-rw-r--r--plugins/CoreUpdater/lang/da.json2
-rw-r--r--plugins/CoreUpdater/lang/de.json2
-rw-r--r--plugins/CoreUpdater/lang/el.json2
-rw-r--r--plugins/CoreUpdater/lang/en.json2
-rw-r--r--plugins/CoreUpdater/lang/es.json2
-rw-r--r--plugins/CoreUpdater/lang/et.json2
-rw-r--r--plugins/CoreUpdater/lang/fi.json2
-rw-r--r--plugins/CoreUpdater/lang/fr.json2
-rw-r--r--plugins/CoreUpdater/lang/it.json2
-rw-r--r--plugins/CoreUpdater/lang/ja.json2
-rw-r--r--plugins/CoreUpdater/lang/lt.json6
-rw-r--r--plugins/CoreUpdater/lang/nb.json2
-rw-r--r--plugins/CoreUpdater/lang/nl.json2
-rw-r--r--plugins/CoreUpdater/lang/pl.json2
-rw-r--r--plugins/CoreUpdater/lang/pt-br.json2
-rw-r--r--plugins/CoreUpdater/lang/ro.json2
-rw-r--r--plugins/CoreUpdater/lang/sk.json2
-rw-r--r--plugins/CoreUpdater/lang/sr.json2
-rw-r--r--plugins/CoreUpdater/lang/sv.json9
-rw-r--r--plugins/CoreUpdater/lang/tl.json2
-rw-r--r--plugins/CoreUpdater/lang/zh-tw.json2
-rw-r--r--plugins/CoreVisualizations/Visualizations/Cloud.php2
-rw-r--r--plugins/CoreVisualizations/templates/_dataTableViz_tagCloud.twig4
m---------plugins/CustomAlerts0
m---------plugins/CustomDimensions0
-rw-r--r--plugins/CustomVariables/Archiver.php13
-rw-r--r--plugins/CustomVariables/Commands/SetNumberOfCustomVariables.php2
-rw-r--r--plugins/CustomVariables/Reports/GetCustomVariables.php37
-rw-r--r--plugins/CustomVariables/lang/be.json2
-rw-r--r--plugins/CustomVariables/lang/bg.json2
-rw-r--r--plugins/CustomVariables/lang/ca.json2
-rw-r--r--plugins/CustomVariables/lang/cs.json8
-rw-r--r--plugins/CustomVariables/lang/da.json2
-rw-r--r--plugins/CustomVariables/lang/de.json4
-rw-r--r--plugins/CustomVariables/lang/el.json8
-rw-r--r--plugins/CustomVariables/lang/en.json8
-rw-r--r--plugins/CustomVariables/lang/es.json2
-rw-r--r--plugins/CustomVariables/lang/fi.json2
-rw-r--r--plugins/CustomVariables/lang/fr.json7
-rw-r--r--plugins/CustomVariables/lang/hi.json2
-rw-r--r--plugins/CustomVariables/lang/id.json2
-rw-r--r--plugins/CustomVariables/lang/it.json4
-rw-r--r--plugins/CustomVariables/lang/ko.json2
-rw-r--r--plugins/CustomVariables/lang/nb.json3
-rw-r--r--plugins/CustomVariables/lang/nl.json2
-rw-r--r--plugins/CustomVariables/lang/pl.json2
-rw-r--r--plugins/CustomVariables/lang/pt-br.json8
-rw-r--r--plugins/CustomVariables/lang/pt.json2
-rw-r--r--plugins/CustomVariables/lang/ro.json2
-rw-r--r--plugins/CustomVariables/lang/ru.json2
-rw-r--r--plugins/CustomVariables/lang/sq.json2
-rw-r--r--plugins/CustomVariables/lang/sr.json2
-rw-r--r--plugins/CustomVariables/lang/sv.json7
-rw-r--r--plugins/CustomVariables/lang/tl.json2
-rw-r--r--plugins/CustomVariables/lang/vi.json2
-rw-r--r--plugins/CustomVariables/lang/zh-cn.json2
-rw-r--r--plugins/DBStats/lang/cs.json2
-rw-r--r--plugins/Dashboard/Dashboard.php14
-rw-r--r--plugins/Dashboard/lang/ar.json1
-rw-r--r--plugins/Dashboard/stylesheets/dashboard.less14
-rw-r--r--plugins/Dashboard/stylesheets/widget.less17
-rw-r--r--plugins/Dashboard/templates/_dashboardSettings.twig2
-rw-r--r--plugins/DevicePlugins/lang/ar.json1
-rw-r--r--plugins/DevicePlugins/lang/be.json1
-rw-r--r--plugins/DevicePlugins/lang/bg.json1
-rw-r--r--plugins/DevicePlugins/lang/ca.json1
-rw-r--r--plugins/DevicePlugins/lang/cs.json2
-rw-r--r--plugins/DevicePlugins/lang/da.json1
-rw-r--r--plugins/DevicePlugins/lang/de.json2
-rw-r--r--plugins/DevicePlugins/lang/el.json2
-rw-r--r--plugins/DevicePlugins/lang/es.json1
-rw-r--r--plugins/DevicePlugins/lang/et.json1
-rw-r--r--plugins/DevicePlugins/lang/fa.json1
-rw-r--r--plugins/DevicePlugins/lang/fi.json1
-rw-r--r--plugins/DevicePlugins/lang/fr.json1
-rw-r--r--plugins/DevicePlugins/lang/hi.json1
-rw-r--r--plugins/DevicePlugins/lang/hu.json1
-rw-r--r--plugins/DevicePlugins/lang/id.json1
-rw-r--r--plugins/DevicePlugins/lang/it.json2
-rw-r--r--plugins/DevicePlugins/lang/ja.json1
-rw-r--r--plugins/DevicePlugins/lang/ko.json1
-rw-r--r--plugins/DevicePlugins/lang/lt.json1
-rw-r--r--plugins/DevicePlugins/lang/lv.json1
-rw-r--r--plugins/DevicePlugins/lang/nb.json2
-rw-r--r--plugins/DevicePlugins/lang/nl.json1
-rw-r--r--plugins/DevicePlugins/lang/nn.json1
-rw-r--r--plugins/DevicePlugins/lang/pl.json1
-rw-r--r--plugins/DevicePlugins/lang/pt-br.json2
-rw-r--r--plugins/DevicePlugins/lang/pt.json1
-rw-r--r--plugins/DevicePlugins/lang/ro.json1
-rw-r--r--plugins/DevicePlugins/lang/ru.json1
-rw-r--r--plugins/DevicePlugins/lang/sk.json1
-rw-r--r--plugins/DevicePlugins/lang/sq.json1
-rw-r--r--plugins/DevicePlugins/lang/sr.json1
-rw-r--r--plugins/DevicePlugins/lang/sv.json1
-rw-r--r--plugins/DevicePlugins/lang/th.json1
-rw-r--r--plugins/DevicePlugins/lang/tl.json1
-rw-r--r--plugins/DevicePlugins/lang/tr.json1
-rw-r--r--plugins/DevicePlugins/lang/uk.json1
-rw-r--r--plugins/DevicePlugins/lang/vi.json1
-rw-r--r--plugins/DevicePlugins/lang/zh-cn.json1
-rw-r--r--plugins/DevicePlugins/lang/zh-tw.json1
-rw-r--r--plugins/DevicesDetection/API.php1
-rw-r--r--plugins/DevicesDetection/Columns/DeviceBrand.php24
-rw-r--r--plugins/DevicesDetection/functions.php2
-rw-r--r--plugins/DevicesDetection/lang/lt.json1
-rw-r--r--plugins/Diagnostics/ConfigReader.php193
-rw-r--r--plugins/Diagnostics/Controller.php66
-rw-r--r--plugins/Diagnostics/Diagnostic/LoadDataInfileCheck.php3
-rw-r--r--plugins/Diagnostics/Diagnostic/RecommendedExtensionsCheck.php5
-rw-r--r--plugins/Diagnostics/Diagnostics.php15
-rw-r--r--plugins/Diagnostics/Menu.php28
-rw-r--r--plugins/Diagnostics/Test/Integration/ConfigReaderTest.php261
-rw-r--r--plugins/Diagnostics/lang/ar.json7
-rw-r--r--plugins/Diagnostics/lang/cs.json8
-rw-r--r--plugins/Diagnostics/lang/de.json8
-rw-r--r--plugins/Diagnostics/lang/el.json8
-rw-r--r--plugins/Diagnostics/lang/en.json8
-rw-r--r--plugins/Diagnostics/lang/fr.json6
-rw-r--r--plugins/Diagnostics/lang/it.json7
-rw-r--r--plugins/Diagnostics/lang/pt-br.json8
-rw-r--r--plugins/Diagnostics/lang/sv.json5
-rw-r--r--plugins/Diagnostics/plugin.json2
-rw-r--r--plugins/Diagnostics/stylesheets/configfile.less22
-rw-r--r--plugins/Diagnostics/templates/configfile.twig55
-rw-r--r--plugins/Events/lang/cs.json2
-rw-r--r--plugins/Events/lang/da.json2
-rw-r--r--plugins/Events/lang/de.json2
-rw-r--r--plugins/Events/lang/el.json2
-rw-r--r--plugins/Events/lang/en.json2
-rw-r--r--plugins/Events/lang/es.json2
-rw-r--r--plugins/Events/lang/fr.json2
-rw-r--r--plugins/Events/lang/it.json2
-rw-r--r--plugins/Events/lang/ja.json2
-rw-r--r--plugins/Events/lang/nb.json19
-rw-r--r--plugins/Events/lang/nl.json2
-rw-r--r--plugins/Events/lang/pt-br.json2
-rw-r--r--plugins/Events/lang/ro.json2
-rw-r--r--plugins/Events/lang/ru.json1
-rw-r--r--plugins/Events/lang/sk.json2
-rw-r--r--plugins/Events/lang/sr.json2
-rw-r--r--plugins/Events/lang/sv.json2
-rw-r--r--plugins/Events/lang/tl.json2
-rw-r--r--plugins/ExamplePlugin/Widgets/MyExampleWidget.php2
-rw-r--r--plugins/ExamplePlugin/plugin.json5
-rw-r--r--plugins/ExampleRssWidget/Widgets/RssChangelog.php2
-rw-r--r--plugins/ExampleRssWidget/Widgets/RssPiwik.php2
-rw-r--r--plugins/ExampleTheme/plugin.json12
-rw-r--r--plugins/ExampleTheme/stylesheets/theme.less1
-rw-r--r--plugins/Feedback/lang/ar.json5
-rw-r--r--plugins/Feedback/lang/be.json5
-rw-r--r--plugins/Feedback/lang/bg.json5
-rw-r--r--plugins/Feedback/lang/ca.json5
-rw-r--r--plugins/Feedback/lang/cs.json10
-rw-r--r--plugins/Feedback/lang/da.json7
-rw-r--r--plugins/Feedback/lang/de.json6
-rw-r--r--plugins/Feedback/lang/el.json6
-rw-r--r--plugins/Feedback/lang/en.json6
-rw-r--r--plugins/Feedback/lang/es.json6
-rw-r--r--plugins/Feedback/lang/fa.json5
-rw-r--r--plugins/Feedback/lang/fi.json5
-rw-r--r--plugins/Feedback/lang/fr.json7
-rw-r--r--plugins/Feedback/lang/hi.json5
-rw-r--r--plugins/Feedback/lang/hu.json5
-rw-r--r--plugins/Feedback/lang/id.json5
-rw-r--r--plugins/Feedback/lang/it.json6
-rw-r--r--plugins/Feedback/lang/ja.json6
-rw-r--r--plugins/Feedback/lang/ko.json7
-rw-r--r--plugins/Feedback/lang/lt.json5
-rw-r--r--plugins/Feedback/lang/lv.json2
-rw-r--r--plugins/Feedback/lang/nb.json5
-rw-r--r--plugins/Feedback/lang/nl.json7
-rw-r--r--plugins/Feedback/lang/nn.json5
-rw-r--r--plugins/Feedback/lang/pl.json5
-rw-r--r--plugins/Feedback/lang/pt-br.json6
-rw-r--r--plugins/Feedback/lang/pt.json5
-rw-r--r--plugins/Feedback/lang/ro.json6
-rw-r--r--plugins/Feedback/lang/ru.json7
-rw-r--r--plugins/Feedback/lang/sl.json5
-rw-r--r--plugins/Feedback/lang/sq.json7
-rw-r--r--plugins/Feedback/lang/sr.json7
-rw-r--r--plugins/Feedback/lang/sv.json10
-rw-r--r--plugins/Feedback/lang/ta.json2
-rw-r--r--plugins/Feedback/lang/th.json5
-rw-r--r--plugins/Feedback/lang/tl.json6
-rw-r--r--plugins/Feedback/lang/tr.json5
-rw-r--r--plugins/Feedback/lang/uk.json5
-rw-r--r--plugins/Feedback/lang/vi.json5
-rw-r--r--plugins/Feedback/lang/zh-cn.json5
-rw-r--r--plugins/Feedback/lang/zh-tw.json5
-rw-r--r--plugins/Goals/Controller.php1
-rw-r--r--plugins/Goals/Pages.php3
-rw-r--r--plugins/Goals/lang/ar.json6
-rw-r--r--plugins/Goals/lang/be.json8
-rw-r--r--plugins/Goals/lang/bg.json10
-rw-r--r--plugins/Goals/lang/ca.json10
-rw-r--r--plugins/Goals/lang/cs.json20
-rw-r--r--plugins/Goals/lang/da.json16
-rw-r--r--plugins/Goals/lang/de.json16
-rw-r--r--plugins/Goals/lang/el.json16
-rw-r--r--plugins/Goals/lang/en.json18
-rw-r--r--plugins/Goals/lang/es.json16
-rw-r--r--plugins/Goals/lang/et.json4
-rw-r--r--plugins/Goals/lang/eu.json2
-rw-r--r--plugins/Goals/lang/fa.json4
-rw-r--r--plugins/Goals/lang/fi.json10
-rw-r--r--plugins/Goals/lang/fr.json16
-rw-r--r--plugins/Goals/lang/hi.json10
-rw-r--r--plugins/Goals/lang/hu.json6
-rw-r--r--plugins/Goals/lang/id.json10
-rw-r--r--plugins/Goals/lang/it.json16
-rw-r--r--plugins/Goals/lang/ja.json16
-rw-r--r--plugins/Goals/lang/ko.json16
-rw-r--r--plugins/Goals/lang/lt.json4
-rw-r--r--plugins/Goals/lang/nb.json9
-rw-r--r--plugins/Goals/lang/nl.json16
-rw-r--r--plugins/Goals/lang/nn.json2
-rw-r--r--plugins/Goals/lang/pl.json6
-rw-r--r--plugins/Goals/lang/pt-br.json16
-rw-r--r--plugins/Goals/lang/pt.json10
-rw-r--r--plugins/Goals/lang/ro.json10
-rw-r--r--plugins/Goals/lang/ru.json20
-rw-r--r--plugins/Goals/lang/sk.json2
-rw-r--r--plugins/Goals/lang/sq.json16
-rw-r--r--plugins/Goals/lang/sr.json16
-rw-r--r--plugins/Goals/lang/sv.json16
-rw-r--r--plugins/Goals/lang/th.json6
-rw-r--r--plugins/Goals/lang/tr.json4
-rw-r--r--plugins/Goals/lang/uk.json6
-rw-r--r--plugins/Goals/lang/vi.json10
-rw-r--r--plugins/Goals/lang/zh-cn.json12
-rw-r--r--plugins/Goals/lang/zh-tw.json6
-rw-r--r--plugins/Goals/templates/conversionOverview.twig6
-rw-r--r--plugins/ImageGraph/lang/bg.json2
-rw-r--r--plugins/ImageGraph/lang/ca.json2
-rw-r--r--plugins/ImageGraph/lang/cs.json2
-rw-r--r--plugins/ImageGraph/lang/da.json2
-rw-r--r--plugins/ImageGraph/lang/de.json2
-rw-r--r--plugins/ImageGraph/lang/el.json2
-rw-r--r--plugins/ImageGraph/lang/en.json2
-rw-r--r--plugins/ImageGraph/lang/es.json2
-rw-r--r--plugins/ImageGraph/lang/fa.json2
-rw-r--r--plugins/ImageGraph/lang/fi.json2
-rw-r--r--plugins/ImageGraph/lang/fr.json2
-rw-r--r--plugins/ImageGraph/lang/hi.json2
-rw-r--r--plugins/ImageGraph/lang/id.json2
-rw-r--r--plugins/ImageGraph/lang/it.json2
-rw-r--r--plugins/ImageGraph/lang/ja.json2
-rw-r--r--plugins/ImageGraph/lang/nb.json2
-rw-r--r--plugins/ImageGraph/lang/nl.json2
-rw-r--r--plugins/ImageGraph/lang/pt-br.json2
-rw-r--r--plugins/ImageGraph/lang/ro.json2
-rw-r--r--plugins/ImageGraph/lang/ru.json2
-rw-r--r--plugins/ImageGraph/lang/sr.json2
-rw-r--r--plugins/ImageGraph/lang/sv.json3
-rw-r--r--plugins/ImageGraph/lang/vi.json2
-rw-r--r--plugins/ImageGraph/lang/zh-cn.json2
-rw-r--r--plugins/Installation/FormSuperUser.php20
-rw-r--r--plugins/Installation/lang/ar.json8
-rw-r--r--plugins/Installation/lang/cs.json15
-rw-r--r--plugins/Installation/lang/da.json2
-rw-r--r--plugins/Installation/lang/de.json2
-rw-r--r--plugins/Installation/lang/el.json6
-rw-r--r--plugins/Installation/lang/en.json10
-rw-r--r--plugins/Installation/lang/es.json2
-rw-r--r--plugins/Installation/lang/fr.json2
-rw-r--r--plugins/Installation/lang/it.json4
-rw-r--r--plugins/Installation/lang/ja.json2
-rw-r--r--plugins/Installation/lang/ko.json2
-rw-r--r--plugins/Installation/lang/lt.json1
-rw-r--r--plugins/Installation/lang/nb.json4
-rw-r--r--plugins/Installation/lang/nl.json2
-rw-r--r--plugins/Installation/lang/pl.json13
-rw-r--r--plugins/Installation/lang/pt-br.json4
-rw-r--r--plugins/Installation/lang/ru.json2
-rw-r--r--plugins/Installation/lang/sr.json2
-rw-r--r--plugins/Installation/lang/sv.json3
-rw-r--r--plugins/Installation/lang/zh-cn.json2
-rw-r--r--plugins/Installation/templates/finished.twig10
-rwxr-xr-xplugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php23
-rw-r--r--plugins/Live/API.php20
-rw-r--r--plugins/Live/Live.php1
-rw-r--r--plugins/Live/Model.php20
-rw-r--r--plugins/Live/Visitor.php14
-rw-r--r--plugins/Live/VisitorProfile.php52
-rw-r--r--plugins/Live/javascripts/SegmentedVisitorLog.js142
-rw-r--r--plugins/Live/javascripts/rowaction.js110
-rw-r--r--plugins/Live/lang/be.json2
-rw-r--r--plugins/Live/lang/bg.json8
-rw-r--r--plugins/Live/lang/ca.json2
-rw-r--r--plugins/Live/lang/cs.json13
-rw-r--r--plugins/Live/lang/da.json9
-rw-r--r--plugins/Live/lang/de.json10
-rw-r--r--plugins/Live/lang/el.json13
-rw-r--r--plugins/Live/lang/en.json13
-rw-r--r--plugins/Live/lang/es.json9
-rw-r--r--plugins/Live/lang/et.json5
-rw-r--r--plugins/Live/lang/fa.json2
-rw-r--r--plugins/Live/lang/fi.json9
-rw-r--r--plugins/Live/lang/fr.json9
-rw-r--r--plugins/Live/lang/hi.json7
-rw-r--r--plugins/Live/lang/hu.json2
-rw-r--r--plugins/Live/lang/id.json4
-rw-r--r--plugins/Live/lang/it.json13
-rw-r--r--plugins/Live/lang/ja.json9
-rw-r--r--plugins/Live/lang/ko.json3
-rw-r--r--plugins/Live/lang/lv.json2
-rw-r--r--plugins/Live/lang/nb.json2
-rw-r--r--plugins/Live/lang/nl.json9
-rw-r--r--plugins/Live/lang/nn.json2
-rw-r--r--plugins/Live/lang/pl.json3
-rw-r--r--plugins/Live/lang/pt-br.json13
-rw-r--r--plugins/Live/lang/pt.json2
-rw-r--r--plugins/Live/lang/ro.json9
-rw-r--r--plugins/Live/lang/ru.json7
-rw-r--r--plugins/Live/lang/sk.json2
-rw-r--r--plugins/Live/lang/sq.json2
-rw-r--r--plugins/Live/lang/sr.json9
-rw-r--r--plugins/Live/lang/sv.json10
-rw-r--r--plugins/Live/lang/th.json2
-rw-r--r--plugins/Live/lang/tl.json5
-rw-r--r--plugins/Live/lang/vi.json9
-rw-r--r--plugins/Live/lang/zh-cn.json9
-rw-r--r--plugins/Live/stylesheets/live.less14
-rw-r--r--plugins/Live/templates/_dataTableViz_visitorLog.twig2
-rw-r--r--plugins/Live/templates/getLastVisitsStart.twig1
-rw-r--r--plugins/Live/templates/getVisitorProfilePopup.twig30
-rw-r--r--plugins/Live/tests/Integration/ModelTest.php43
-rw-r--r--plugins/Live/tests/System/expected/test___Live.getVisitorProfile.xml4
-rw-r--r--plugins/Live/tests/System/expected/test_higherLimit__Live.getVisitorProfile.xml4
m---------plugins/LogViewer0
-rw-r--r--plugins/Login/Auth.php22
-rw-r--r--plugins/Login/Controller.php5
-rw-r--r--plugins/Login/PasswordResetter.php14
-rw-r--r--plugins/Login/lang/ar.json2
-rw-r--r--plugins/Login/lang/be.json2
-rw-r--r--plugins/Login/lang/bg.json2
-rw-r--r--plugins/Login/lang/ca.json2
-rw-r--r--plugins/Login/lang/cs.json11
-rw-r--r--plugins/Login/lang/da.json2
-rw-r--r--plugins/Login/lang/de.json6
-rw-r--r--plugins/Login/lang/el.json3
-rw-r--r--plugins/Login/lang/en.json4
-rw-r--r--plugins/Login/lang/es.json2
-rw-r--r--plugins/Login/lang/fi.json2
-rw-r--r--plugins/Login/lang/fr.json2
-rw-r--r--plugins/Login/lang/hi.json2
-rw-r--r--plugins/Login/lang/hu.json2
-rw-r--r--plugins/Login/lang/id.json2
-rw-r--r--plugins/Login/lang/it.json3
-rw-r--r--plugins/Login/lang/ja.json2
-rw-r--r--plugins/Login/lang/ko.json3
-rw-r--r--plugins/Login/lang/lt.json1
-rw-r--r--plugins/Login/lang/lv.json2
-rw-r--r--plugins/Login/lang/nb.json3
-rw-r--r--plugins/Login/lang/nl.json2
-rw-r--r--plugins/Login/lang/pl.json2
-rw-r--r--plugins/Login/lang/pt-br.json3
-rw-r--r--plugins/Login/lang/pt.json2
-rw-r--r--plugins/Login/lang/ro.json2
-rw-r--r--plugins/Login/lang/ru.json2
-rw-r--r--plugins/Login/lang/sq.json2
-rw-r--r--plugins/Login/lang/sr.json2
-rw-r--r--plugins/Login/lang/sv.json2
-rw-r--r--plugins/Login/lang/th.json2
-rw-r--r--plugins/Login/lang/tl.json2
-rw-r--r--plugins/Login/lang/vi.json2
-rw-r--r--plugins/Login/lang/zh-cn.json2
-rw-r--r--plugins/Login/stylesheets/login.less1
-rw-r--r--plugins/MobileAppMeasurable/lang/en.json10
-rw-r--r--plugins/MobileAppMeasurable/lang/lt.json5
-rw-r--r--plugins/MobileMessaging/lang/bg.json6
-rw-r--r--plugins/MobileMessaging/lang/cs.json12
-rw-r--r--plugins/MobileMessaging/lang/da.json6
-rw-r--r--plugins/MobileMessaging/lang/de.json6
-rw-r--r--plugins/MobileMessaging/lang/el.json6
-rw-r--r--plugins/MobileMessaging/lang/en.json6
-rw-r--r--plugins/MobileMessaging/lang/es.json6
-rw-r--r--plugins/MobileMessaging/lang/fa.json4
-rw-r--r--plugins/MobileMessaging/lang/fi.json6
-rw-r--r--plugins/MobileMessaging/lang/fr.json6
-rw-r--r--plugins/MobileMessaging/lang/hi.json6
-rw-r--r--plugins/MobileMessaging/lang/id.json6
-rw-r--r--plugins/MobileMessaging/lang/it.json6
-rw-r--r--plugins/MobileMessaging/lang/ja.json6
-rw-r--r--plugins/MobileMessaging/lang/ko.json6
-rw-r--r--plugins/MobileMessaging/lang/lt.json11
-rw-r--r--plugins/MobileMessaging/lang/nb.json2
-rw-r--r--plugins/MobileMessaging/lang/nl.json6
-rw-r--r--plugins/MobileMessaging/lang/pt-br.json6
-rw-r--r--plugins/MobileMessaging/lang/ro.json6
-rw-r--r--plugins/MobileMessaging/lang/ru.json6
-rw-r--r--plugins/MobileMessaging/lang/sr.json6
-rw-r--r--plugins/MobileMessaging/lang/sv.json6
-rw-r--r--plugins/MobileMessaging/lang/tl.json6
-rw-r--r--plugins/MobileMessaging/lang/vi.json6
-rw-r--r--plugins/MobileMessaging/lang/zh-cn.json6
-rw-r--r--plugins/Monolog/tests/System/TrackerLoggingTest.php3
-rw-r--r--plugins/Morpheus/stylesheets/general/_default.less6
-rw-r--r--plugins/Morpheus/stylesheets/general/_jqueryUI.less19
-rw-r--r--plugins/Morpheus/stylesheets/main.less11
-rw-r--r--plugins/Morpheus/stylesheets/theme-advanced.less3
-rw-r--r--plugins/Morpheus/stylesheets/theme.less1
-rw-r--r--plugins/Morpheus/stylesheets/uibase/_loading.less5
-rw-r--r--plugins/Morpheus/templates/admin.twig2
-rw-r--r--plugins/Morpheus/templates/ajaxMacros.twig28
-rw-r--r--plugins/Morpheus/templates/dashboard.twig4
-rw-r--r--plugins/Morpheus/templates/user.twig2
-rw-r--r--plugins/MultiSites/MultiSites.php4
-rw-r--r--plugins/MultiSites/angularjs/dashboard/dashboard.controller.js1
-rw-r--r--plugins/MultiSites/angularjs/dashboard/dashboard.directive.html9
-rw-r--r--plugins/MultiSites/angularjs/dashboard/dashboard.directive.less3
-rw-r--r--plugins/MultiSites/lang/bg.json2
-rw-r--r--plugins/MultiSites/lang/ca.json2
-rw-r--r--plugins/MultiSites/lang/cs.json4
-rw-r--r--plugins/MultiSites/lang/da.json2
-rw-r--r--plugins/MultiSites/lang/de.json2
-rw-r--r--plugins/MultiSites/lang/el.json2
-rw-r--r--plugins/MultiSites/lang/en.json2
-rw-r--r--plugins/MultiSites/lang/es.json2
-rw-r--r--plugins/MultiSites/lang/fi.json2
-rw-r--r--plugins/MultiSites/lang/fr.json2
-rw-r--r--plugins/MultiSites/lang/hi.json2
-rw-r--r--plugins/MultiSites/lang/it.json2
-rw-r--r--plugins/MultiSites/lang/ja.json2
-rw-r--r--plugins/MultiSites/lang/ko.json2
-rw-r--r--plugins/MultiSites/lang/lt.json4
-rw-r--r--plugins/MultiSites/lang/nb.json2
-rw-r--r--plugins/MultiSites/lang/nl.json2
-rw-r--r--plugins/MultiSites/lang/pl.json2
-rw-r--r--plugins/MultiSites/lang/pt-br.json2
-rw-r--r--plugins/MultiSites/lang/pt.json2
-rw-r--r--plugins/MultiSites/lang/ro.json2
-rw-r--r--plugins/MultiSites/lang/ru.json2
-rw-r--r--plugins/MultiSites/lang/sl.json2
-rw-r--r--plugins/MultiSites/lang/sq.json2
-rw-r--r--plugins/MultiSites/lang/sr.json2
-rw-r--r--plugins/MultiSites/lang/sv.json2
-rw-r--r--plugins/MultiSites/lang/tl.json2
-rw-r--r--plugins/MultiSites/lang/vi.json2
-rw-r--r--plugins/Overlay/client/followingpages.js7
-rw-r--r--plugins/Overlay/javascripts/Piwik_Overlay.js10
-rw-r--r--plugins/Overlay/lang/bg.json2
-rw-r--r--plugins/Overlay/lang/ca.json4
-rw-r--r--plugins/Overlay/lang/cs.json4
-rw-r--r--plugins/Overlay/lang/da.json4
-rw-r--r--plugins/Overlay/lang/de.json4
-rw-r--r--plugins/Overlay/lang/el.json4
-rw-r--r--plugins/Overlay/lang/en.json4
-rw-r--r--plugins/Overlay/lang/es.json4
-rw-r--r--plugins/Overlay/lang/fa.json2
-rw-r--r--plugins/Overlay/lang/fi.json4
-rw-r--r--plugins/Overlay/lang/fr.json4
-rw-r--r--plugins/Overlay/lang/hi.json4
-rw-r--r--plugins/Overlay/lang/id.json4
-rw-r--r--plugins/Overlay/lang/it.json4
-rw-r--r--plugins/Overlay/lang/ja.json4
-rw-r--r--plugins/Overlay/lang/ko.json4
-rw-r--r--plugins/Overlay/lang/lt.json1
-rw-r--r--plugins/Overlay/lang/nl.json4
-rw-r--r--plugins/Overlay/lang/pt-br.json4
-rw-r--r--plugins/Overlay/lang/ro.json4
-rw-r--r--plugins/Overlay/lang/ru.json2
-rw-r--r--plugins/Overlay/lang/sr.json4
-rw-r--r--plugins/Overlay/lang/sv.json4
-rw-r--r--plugins/Overlay/lang/tl.json4
-rw-r--r--plugins/Overlay/lang/vi.json4
-rw-r--r--plugins/Overlay/lang/zh-cn.json4
-rw-r--r--plugins/PiwikPro/PiwikPro.php27
-rw-r--r--plugins/PiwikPro/Promo.php65
-rw-r--r--plugins/PiwikPro/Widgets/PromoPiwikPro.php55
-rw-r--r--plugins/PiwikPro/Widgets/RssPiwikPro.php49
-rw-r--r--plugins/PiwikPro/config/test.php13
-rw-r--r--plugins/PiwikPro/images/promo.pngbin0 -> 2349 bytes
-rw-r--r--plugins/PiwikPro/lang/en.json6
-rw-r--r--plugins/PiwikPro/plugin.json5
-rw-r--r--plugins/PiwikPro/stylesheets/widget.less29
-rw-r--r--plugins/PiwikPro/templates/promoPiwikProWidget.twig12
-rw-r--r--plugins/PiwikPro/tests/Framework/Mock/Promo.php22
-rw-r--r--plugins/PrivacyManager/lang/be.json2
-rw-r--r--plugins/PrivacyManager/lang/bg.json8
-rw-r--r--plugins/PrivacyManager/lang/ca.json8
-rw-r--r--plugins/PrivacyManager/lang/cs.json14
-rw-r--r--plugins/PrivacyManager/lang/da.json12
-rw-r--r--plugins/PrivacyManager/lang/de.json12
-rw-r--r--plugins/PrivacyManager/lang/el.json12
-rw-r--r--plugins/PrivacyManager/lang/en.json12
-rw-r--r--plugins/PrivacyManager/lang/es.json12
-rw-r--r--plugins/PrivacyManager/lang/fa.json6
-rw-r--r--plugins/PrivacyManager/lang/fi.json10
-rw-r--r--plugins/PrivacyManager/lang/fr.json12
-rw-r--r--plugins/PrivacyManager/lang/hi.json8
-rw-r--r--plugins/PrivacyManager/lang/id.json8
-rw-r--r--plugins/PrivacyManager/lang/it.json12
-rw-r--r--plugins/PrivacyManager/lang/ja.json11
-rw-r--r--plugins/PrivacyManager/lang/ko.json12
-rw-r--r--plugins/PrivacyManager/lang/nb.json2
-rw-r--r--plugins/PrivacyManager/lang/nl.json10
-rw-r--r--plugins/PrivacyManager/lang/pl.json8
-rw-r--r--plugins/PrivacyManager/lang/pt-br.json12
-rw-r--r--plugins/PrivacyManager/lang/pt.json2
-rw-r--r--plugins/PrivacyManager/lang/ro.json10
-rw-r--r--plugins/PrivacyManager/lang/ru.json12
-rw-r--r--plugins/PrivacyManager/lang/sk.json2
-rw-r--r--plugins/PrivacyManager/lang/sq.json4
-rw-r--r--plugins/PrivacyManager/lang/sr.json12
-rw-r--r--plugins/PrivacyManager/lang/sv.json14
-rw-r--r--plugins/PrivacyManager/lang/th.json2
-rw-r--r--plugins/PrivacyManager/lang/tl.json9
-rw-r--r--plugins/PrivacyManager/lang/vi.json6
-rw-r--r--plugins/PrivacyManager/lang/zh-cn.json8
-rw-r--r--plugins/Provider/lang/sv.json1
m---------plugins/QueuedTracking0
-rw-r--r--plugins/Referrers/API.php25
-rw-r--r--plugins/Referrers/lang/be.json8
-rw-r--r--plugins/Referrers/lang/bg.json8
-rw-r--r--plugins/Referrers/lang/ca.json8
-rw-r--r--plugins/Referrers/lang/cs.json20
-rw-r--r--plugins/Referrers/lang/da.json8
-rw-r--r--plugins/Referrers/lang/de.json8
-rw-r--r--plugins/Referrers/lang/el.json8
-rw-r--r--plugins/Referrers/lang/en.json8
-rw-r--r--plugins/Referrers/lang/es.json8
-rw-r--r--plugins/Referrers/lang/fa.json2
-rw-r--r--plugins/Referrers/lang/fi.json8
-rw-r--r--plugins/Referrers/lang/fr.json8
-rw-r--r--plugins/Referrers/lang/hi.json8
-rw-r--r--plugins/Referrers/lang/id.json8
-rw-r--r--plugins/Referrers/lang/it.json8
-rw-r--r--plugins/Referrers/lang/ja.json8
-rw-r--r--plugins/Referrers/lang/ko.json8
-rw-r--r--plugins/Referrers/lang/lt.json3
-rw-r--r--plugins/Referrers/lang/nl.json8
-rw-r--r--plugins/Referrers/lang/pt-br.json8
-rw-r--r--plugins/Referrers/lang/pt.json8
-rw-r--r--plugins/Referrers/lang/ro.json8
-rw-r--r--plugins/Referrers/lang/ru.json8
-rw-r--r--plugins/Referrers/lang/sq.json8
-rw-r--r--plugins/Referrers/lang/sr.json8
-rw-r--r--plugins/Referrers/lang/sv.json8
-rw-r--r--plugins/Referrers/lang/tl.json8
-rw-r--r--plugins/Referrers/lang/vi.json8
-rw-r--r--plugins/Referrers/lang/zh-cn.json8
-rw-r--r--plugins/Referrers/tests/System/expected/test_Referrers_getReferrerType__API.getProcessedReport_day.xml62
-rw-r--r--plugins/ScheduledReports/API.php2
-rw-r--r--plugins/ScheduledReports/lang/ar.json2
-rw-r--r--plugins/ScheduledReports/lang/be.json4
-rw-r--r--plugins/ScheduledReports/lang/bg.json4
-rw-r--r--plugins/ScheduledReports/lang/ca.json4
-rw-r--r--plugins/ScheduledReports/lang/cs.json20
-rw-r--r--plugins/ScheduledReports/lang/da.json6
-rw-r--r--plugins/ScheduledReports/lang/de.json6
-rw-r--r--plugins/ScheduledReports/lang/el.json6
-rw-r--r--plugins/ScheduledReports/lang/en.json6
-rw-r--r--plugins/ScheduledReports/lang/es.json6
-rw-r--r--plugins/ScheduledReports/lang/et.json4
-rw-r--r--plugins/ScheduledReports/lang/fa.json4
-rw-r--r--plugins/ScheduledReports/lang/fi.json6
-rw-r--r--plugins/ScheduledReports/lang/fr.json6
-rw-r--r--plugins/ScheduledReports/lang/hi.json6
-rw-r--r--plugins/ScheduledReports/lang/id.json6
-rw-r--r--plugins/ScheduledReports/lang/it.json6
-rw-r--r--plugins/ScheduledReports/lang/ja.json6
-rw-r--r--plugins/ScheduledReports/lang/ko.json6
-rw-r--r--plugins/ScheduledReports/lang/lt.json2
-rw-r--r--plugins/ScheduledReports/lang/lv.json2
-rw-r--r--plugins/ScheduledReports/lang/nb.json6
-rw-r--r--plugins/ScheduledReports/lang/nl.json4
-rw-r--r--plugins/ScheduledReports/lang/pl.json2
-rw-r--r--plugins/ScheduledReports/lang/pt-br.json6
-rw-r--r--plugins/ScheduledReports/lang/pt.json4
-rw-r--r--plugins/ScheduledReports/lang/ro.json6
-rw-r--r--plugins/ScheduledReports/lang/ru.json6
-rw-r--r--plugins/ScheduledReports/lang/sl.json2
-rw-r--r--plugins/ScheduledReports/lang/sq.json4
-rw-r--r--plugins/ScheduledReports/lang/sr.json6
-rw-r--r--plugins/ScheduledReports/lang/sv.json7
-rw-r--r--plugins/ScheduledReports/lang/th.json2
-rw-r--r--plugins/ScheduledReports/lang/tl.json6
-rw-r--r--plugins/ScheduledReports/lang/tr.json36
-rw-r--r--plugins/ScheduledReports/lang/vi.json6
-rw-r--r--plugins/ScheduledReports/lang/zh-cn.json6
m---------plugins/SecurityInfo0
-rw-r--r--plugins/SegmentEditor/API.php43
-rw-r--r--plugins/SegmentEditor/Model.php21
-rw-r--r--plugins/SegmentEditor/SegmentEditor.php2
-rw-r--r--plugins/SegmentEditor/images/edit_segment.pngbin1138 -> 2999 bytes
-rw-r--r--plugins/SegmentEditor/javascripts/Segmentation.js255
-rw-r--r--plugins/SegmentEditor/lang/bg.json1
-rw-r--r--plugins/SegmentEditor/lang/cs.json10
-rw-r--r--plugins/SegmentEditor/lang/da.json3
-rw-r--r--plugins/SegmentEditor/lang/de.json10
-rw-r--r--plugins/SegmentEditor/lang/el.json6
-rw-r--r--plugins/SegmentEditor/lang/en.json6
-rw-r--r--plugins/SegmentEditor/lang/es.json3
-rw-r--r--plugins/SegmentEditor/lang/et.json1
-rw-r--r--plugins/SegmentEditor/lang/fa.json1
-rw-r--r--plugins/SegmentEditor/lang/fi.json3
-rw-r--r--plugins/SegmentEditor/lang/fr.json6
-rw-r--r--plugins/SegmentEditor/lang/hi.json1
-rw-r--r--plugins/SegmentEditor/lang/id.json1
-rw-r--r--plugins/SegmentEditor/lang/it.json6
-rw-r--r--plugins/SegmentEditor/lang/ja.json3
-rw-r--r--plugins/SegmentEditor/lang/lt.json5
-rw-r--r--plugins/SegmentEditor/lang/nb.json1
-rw-r--r--plugins/SegmentEditor/lang/nl.json3
-rw-r--r--plugins/SegmentEditor/lang/pt-br.json6
-rw-r--r--plugins/SegmentEditor/lang/ro.json3
-rw-r--r--plugins/SegmentEditor/lang/ru.json1
-rw-r--r--plugins/SegmentEditor/lang/sr.json3
-rw-r--r--plugins/SegmentEditor/lang/sv.json8
-rw-r--r--plugins/SegmentEditor/lang/tl.json3
-rw-r--r--plugins/SegmentEditor/lang/vi.json1
-rw-r--r--plugins/SegmentEditor/lang/zh-cn.json1
-rw-r--r--plugins/SegmentEditor/stylesheets/segmentation.less32
-rw-r--r--plugins/SegmentEditor/templates/_segmentSelector.twig6
-rw-r--r--plugins/SegmentEditor/tests/Integration/ApiTest.php221
-rw-r--r--plugins/SitesManager/SitesManager.php1
-rw-r--r--plugins/SitesManager/angularjs/sites-manager/sites-manager.controller.js2
-rw-r--r--plugins/SitesManager/lang/ar.json4
-rw-r--r--plugins/SitesManager/lang/be.json6
-rw-r--r--plugins/SitesManager/lang/bg.json8
-rw-r--r--plugins/SitesManager/lang/ca.json8
-rw-r--r--plugins/SitesManager/lang/cs.json27
-rw-r--r--plugins/SitesManager/lang/da.json10
-rw-r--r--plugins/SitesManager/lang/de.json15
-rw-r--r--plugins/SitesManager/lang/el.json19
-rw-r--r--plugins/SitesManager/lang/en.json13
-rw-r--r--plugins/SitesManager/lang/es.json11
-rw-r--r--plugins/SitesManager/lang/et.json2
-rw-r--r--plugins/SitesManager/lang/fa.json4
-rw-r--r--plugins/SitesManager/lang/fi.json10
-rw-r--r--plugins/SitesManager/lang/fr.json14
-rw-r--r--plugins/SitesManager/lang/hi.json8
-rw-r--r--plugins/SitesManager/lang/hu.json4
-rw-r--r--plugins/SitesManager/lang/id.json8
-rw-r--r--plugins/SitesManager/lang/it.json15
-rw-r--r--plugins/SitesManager/lang/ja.json11
-rw-r--r--plugins/SitesManager/lang/ko.json14
-rw-r--r--plugins/SitesManager/lang/lt.json4
-rw-r--r--plugins/SitesManager/lang/lv.json4
-rw-r--r--plugins/SitesManager/lang/nb.json15
-rw-r--r--plugins/SitesManager/lang/nl.json6
-rw-r--r--plugins/SitesManager/lang/pl.json4
-rw-r--r--plugins/SitesManager/lang/pt-br.json15
-rw-r--r--plugins/SitesManager/lang/pt.json6
-rw-r--r--plugins/SitesManager/lang/ro.json10
-rw-r--r--plugins/SitesManager/lang/ru.json10
-rw-r--r--plugins/SitesManager/lang/sq.json8
-rw-r--r--plugins/SitesManager/lang/sr.json11
-rw-r--r--plugins/SitesManager/lang/sv.json12
-rw-r--r--plugins/SitesManager/lang/th.json4
-rw-r--r--plugins/SitesManager/lang/tl.json10
-rw-r--r--plugins/SitesManager/lang/uk.json4
-rw-r--r--plugins/SitesManager/lang/vi.json8
-rw-r--r--plugins/SitesManager/lang/zh-cn.json8
-rw-r--r--plugins/SitesManager/lang/zh-tw.json4
-rw-r--r--plugins/SitesManager/templates/help/timezone-help.html2
-rw-r--r--plugins/SitesManager/templates/sites-list/site-fields.html1
m---------plugins/TasksTimetable0
-rw-r--r--plugins/Transitions/lang/bg.json4
-rw-r--r--plugins/Transitions/lang/ca.json4
-rw-r--r--plugins/Transitions/lang/cs.json4
-rw-r--r--plugins/Transitions/lang/da.json4
-rw-r--r--plugins/Transitions/lang/de.json4
-rw-r--r--plugins/Transitions/lang/el.json4
-rw-r--r--plugins/Transitions/lang/en.json4
-rw-r--r--plugins/Transitions/lang/es.json4
-rw-r--r--plugins/Transitions/lang/et.json4
-rw-r--r--plugins/Transitions/lang/fa.json4
-rw-r--r--plugins/Transitions/lang/fi.json4
-rw-r--r--plugins/Transitions/lang/fr.json4
-rw-r--r--plugins/Transitions/lang/hi.json4
-rw-r--r--plugins/Transitions/lang/id.json4
-rw-r--r--plugins/Transitions/lang/it.json4
-rw-r--r--plugins/Transitions/lang/ja.json4
-rw-r--r--plugins/Transitions/lang/ko.json4
-rw-r--r--plugins/Transitions/lang/lt.json5
-rw-r--r--plugins/Transitions/lang/nb.json4
-rw-r--r--plugins/Transitions/lang/nl.json4
-rw-r--r--plugins/Transitions/lang/pl.json2
-rw-r--r--plugins/Transitions/lang/pt-br.json4
-rw-r--r--plugins/Transitions/lang/ro.json4
-rw-r--r--plugins/Transitions/lang/ru.json4
-rw-r--r--plugins/Transitions/lang/sl.json4
-rw-r--r--plugins/Transitions/lang/sr.json4
-rw-r--r--plugins/Transitions/lang/sv.json4
-rw-r--r--plugins/Transitions/lang/tl.json4
-rw-r--r--plugins/Transitions/lang/vi.json4
-rw-r--r--plugins/Transitions/lang/zh-cn.json4
-rw-r--r--plugins/UserCountry/lang/cs.json2
-rw-r--r--plugins/UserCountry/lang/en.json2
-rw-r--r--plugins/UserCountry/lang/lt.json3
-rw-r--r--plugins/UserCountryMap/Controller.php9
-rw-r--r--plugins/UserCountryMap/lang/el.json2
-rw-r--r--plugins/UserCountryMap/lang/sv.json4
-rw-r--r--plugins/UserLanguage/lang/lt.json1
-rw-r--r--plugins/UsersManager/API.php11
-rw-r--r--plugins/UsersManager/UsersManager.php14
-rw-r--r--plugins/UsersManager/javascripts/usersManager.js2
-rw-r--r--plugins/UsersManager/lang/am.json4
-rw-r--r--plugins/UsersManager/lang/ar.json8
-rw-r--r--plugins/UsersManager/lang/be.json8
-rw-r--r--plugins/UsersManager/lang/bg.json8
-rw-r--r--plugins/UsersManager/lang/ca.json8
-rw-r--r--plugins/UsersManager/lang/cs.json46
-rw-r--r--plugins/UsersManager/lang/da.json10
-rw-r--r--plugins/UsersManager/lang/de.json13
-rw-r--r--plugins/UsersManager/lang/el.json22
-rw-r--r--plugins/UsersManager/lang/en.json16
-rw-r--r--plugins/UsersManager/lang/es.json10
-rw-r--r--plugins/UsersManager/lang/et.json5
-rw-r--r--plugins/UsersManager/lang/eu.json4
-rw-r--r--plugins/UsersManager/lang/fa.json4
-rw-r--r--plugins/UsersManager/lang/fi.json9
-rw-r--r--plugins/UsersManager/lang/fr.json18
-rw-r--r--plugins/UsersManager/lang/gl.json2
-rw-r--r--plugins/UsersManager/lang/hr.json1
-rw-r--r--plugins/UsersManager/lang/hu.json8
-rw-r--r--plugins/UsersManager/lang/id.json8
-rw-r--r--plugins/UsersManager/lang/it.json20
-rw-r--r--plugins/UsersManager/lang/ja.json10
-rw-r--r--plugins/UsersManager/lang/ko.json31
-rw-r--r--plugins/UsersManager/lang/lt.json21
-rw-r--r--plugins/UsersManager/lang/lv.json6
-rw-r--r--plugins/UsersManager/lang/nb.json11
-rw-r--r--plugins/UsersManager/lang/nl.json9
-rw-r--r--plugins/UsersManager/lang/nn.json7
-rw-r--r--plugins/UsersManager/lang/pl.json8
-rw-r--r--plugins/UsersManager/lang/pt-br.json22
-rw-r--r--plugins/UsersManager/lang/pt.json8
-rw-r--r--plugins/UsersManager/lang/ro.json9
-rw-r--r--plugins/UsersManager/lang/ru.json10
-rw-r--r--plugins/UsersManager/lang/sk.json4
-rw-r--r--plugins/UsersManager/lang/sl.json1
-rw-r--r--plugins/UsersManager/lang/sq.json10
-rw-r--r--plugins/UsersManager/lang/sr.json10
-rw-r--r--plugins/UsersManager/lang/sv.json18
-rw-r--r--plugins/UsersManager/lang/te.json1
-rw-r--r--plugins/UsersManager/lang/th.json8
-rw-r--r--plugins/UsersManager/lang/tl.json8
-rw-r--r--plugins/UsersManager/lang/tr.json5
-rw-r--r--plugins/UsersManager/lang/uk.json8
-rw-r--r--plugins/UsersManager/lang/vi.json8
-rw-r--r--plugins/UsersManager/lang/zh-cn.json8
-rw-r--r--plugins/UsersManager/lang/zh-tw.json10
-rw-r--r--plugins/VisitTime/lang/be.json4
-rw-r--r--plugins/VisitTime/lang/bg.json4
-rw-r--r--plugins/VisitTime/lang/ca.json4
-rw-r--r--plugins/VisitTime/lang/cs.json6
-rw-r--r--plugins/VisitTime/lang/da.json4
-rw-r--r--plugins/VisitTime/lang/de.json4
-rw-r--r--plugins/VisitTime/lang/el.json4
-rw-r--r--plugins/VisitTime/lang/en.json4
-rw-r--r--plugins/VisitTime/lang/es.json4
-rw-r--r--plugins/VisitTime/lang/fi.json4
-rw-r--r--plugins/VisitTime/lang/fr.json4
-rw-r--r--plugins/VisitTime/lang/id.json4
-rw-r--r--plugins/VisitTime/lang/it.json4
-rw-r--r--plugins/VisitTime/lang/ja.json4
-rw-r--r--plugins/VisitTime/lang/ko.json4
-rw-r--r--plugins/VisitTime/lang/nb.json4
-rw-r--r--plugins/VisitTime/lang/nl.json4
-rw-r--r--plugins/VisitTime/lang/pl.json4
-rw-r--r--plugins/VisitTime/lang/pt-br.json4
-rw-r--r--plugins/VisitTime/lang/pt.json4
-rw-r--r--plugins/VisitTime/lang/ro.json4
-rw-r--r--plugins/VisitTime/lang/ru.json4
-rw-r--r--plugins/VisitTime/lang/sk.json4
-rw-r--r--plugins/VisitTime/lang/sq.json4
-rw-r--r--plugins/VisitTime/lang/sr.json4
-rw-r--r--plugins/VisitTime/lang/sv.json4
-rw-r--r--plugins/VisitTime/lang/tl.json4
-rw-r--r--plugins/VisitTime/lang/vi.json4
-rw-r--r--plugins/VisitTime/lang/zh-cn.json4
m---------plugins/VisitorGenerator0
-rw-r--r--plugins/VisitorInterest/lang/nb.json19
-rw-r--r--plugins/VisitsSummary/lang/th.json3
-rw-r--r--plugins/WebsiteMeasurable/lang/cs.json6
-rw-r--r--plugins/WebsiteMeasurable/lang/en.json10
-rw-r--r--plugins/WebsiteMeasurable/lang/lt.json5
-rw-r--r--plugins/Widgetize/tests/System/WidgetTest.php102
-rw-r--r--tests/PHPUnit/Fixtures/InvalidVisits.php6
-rw-r--r--tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php13
-rw-r--r--tests/PHPUnit/Fixtures/OmniFixture.php60
-rw-r--r--tests/PHPUnit/Fixtures/SomeVisitsCustomVariablesCampaignsNotHeuristics.php3
-rw-r--r--tests/PHPUnit/Fixtures/SomeVisitsManyPageviewsWithTransitions.php1
-rw-r--r--tests/PHPUnit/Fixtures/SqlDump.php6
-rw-r--r--tests/PHPUnit/Fixtures/UITestFixture.php14
-rw-r--r--tests/PHPUnit/Framework/Fixture.php9
-rw-r--r--tests/PHPUnit/Framework/Mock/FakeConfig.php28
-rw-r--r--tests/PHPUnit/Framework/Mock/PiwikPro/Advertising.php20
-rw-r--r--tests/PHPUnit/Framework/Mock/Plugin/Manager.php23
-rw-r--r--tests/PHPUnit/Integration/ArchiveProcessingTest.php14
-rw-r--r--tests/PHPUnit/Integration/CronArchiveTest.php1
-rw-r--r--tests/PHPUnit/Integration/DataAccess/ArchiveInvalidatorTest.php57
-rw-r--r--tests/PHPUnit/Integration/Http/Post.php29
-rw-r--r--tests/PHPUnit/Integration/HttpTest.php52
-rw-r--r--tests/PHPUnit/Integration/MailTest.php32
-rw-r--r--tests/PHPUnit/Integration/PiwikPro/AdvertisingTest.php149
-rw-r--r--tests/PHPUnit/Integration/ReleaseCheckListTest.php74
-rw-r--r--tests/PHPUnit/Integration/Settings/SystemSettingTest.php76
-rw-r--r--tests/PHPUnit/Integration/Tracker/PingRequestTest.php21
-rw-r--r--tests/PHPUnit/Integration/WidgetsListTest.php3
-rwxr-xr-xtests/PHPUnit/System/TwoVisitsWithCustomVariablesSegmentMatchNONETest.php5
-rw-r--r--tests/PHPUnit/System/expected/test_ArchiveCronTest_noOptions__VisitsSummary.get_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ArchiveCronTest_noOptions__VisitsSummary.get_week.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchivedWithUrlEncoding_noOptions__VisitsSummary.get_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchivedWithUrlEncoding_noOptions__VisitsSummary.get_week.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchived_noOptions__VisitsSummary.get_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchived_noOptions__VisitsSummary.get_week.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserCode__API.getSuggestedValuesForSegment.xml5
-rw-r--r--tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserCode__VisitsSummary.get_range.xml16
-rw-r--r--tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserEngine__VisitsSummary.get_range.xml18
-rw-r--r--tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserVersion__API.getSuggestedValuesForSegment.xml7
-rw-r--r--tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserVersion__VisitsSummary.get_range.xml16
-rw-r--r--tests/PHPUnit/System/expected/test_AutoSuggestAPITest_deviceBrand__API.getSuggestedValuesForSegment.xml9
-rw-r--r--tests/PHPUnit/System/expected/test_AutoSuggestAPITest_deviceBrand__VisitsSummary.get_range.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_AutoSuggestAPITest_deviceType__API.getSuggestedValuesForSegment.xml3
-rw-r--r--tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemCode__API.getSuggestedValuesForSegment.xml3
-rw-r--r--tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemCode__VisitsSummary.get_range.xml16
-rw-r--r--tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemVersion__API.getSuggestedValuesForSegment.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemVersion__VisitsSummary.get_range.xml16
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_month.xml42
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_range.xml58
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_month.xml42
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_range.xml58
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_month.xml10
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_range.xml10
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_day.xml16
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_month.xml42
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_range.xml58
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_month.xml6
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_range.xml6
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getCustomVariables_month.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getUsagesOfSlots.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml18
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserEngines_month.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserFamilies_month.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserVersions_month.xml15
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowsers_month.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getModel_month.xml13
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsFamilies_month.xml14
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsVersions_month.xml15
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getType_month.xml28
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Goals.getDaysToConversion_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Goals.getMetrics_month.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Goals.getVisitsUntilConversion_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml16
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml127
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getOne_month.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Referrers.getReferrerType_month.xml22
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getConfiguration_month.xml13
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getResolution_month.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCity_month.xml30
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getContinent_month.xml20
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCountry_month.xml50
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getRegion_month.xml27
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguageCode_month.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguage_month.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getByDayOfWeek_month.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerLocalTime_month.xml12
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerServerTime_month.xml20
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_range.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_range.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_range.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_range.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getActions_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getBounceCount_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUniqueVisitors_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUsers_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisitsConverted_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisits_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.get_month.xml14
-rw-r--r--tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml14
-rw-r--r--tests/PHPUnit/System/expected/test_LabelFilter_keywords_html__Referrers.getSearchEngines_day.xml1
-rw-r--r--tests/PHPUnit/System/expected/test_LabelFilter_titles__Actions.getPageTitles_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_NonUnicode__Actions.getPageTitles_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__DevicesDetection.getBrand_day.xml1
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Referrers.getReferrerType_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__DevicesDetection.getBrand_day.xml1
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Referrers.getReferrerType_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_RowEvolution_LabelReservedCharactersHierarchical__API.getRowEvolution_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_RowEvolution_flatFilters__Referrers.getSearchEngines_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_RowEvolution_multipleDates_lastNoData__API.getRowEvolution_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitlesFollowingSiteSearch_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitlesFollowingSiteSearch_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitles_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitles_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrlsFollowingSiteSearch_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrlsFollowingSiteSearch_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrls_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrls_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getSiteSearchKeywords_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getSiteSearchKeywords_month.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitlesFollowingSiteSearch_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitlesFollowingSiteSearch_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitles_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitles_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrlsFollowingSiteSearch_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrlsFollowingSiteSearch_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrls_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrls_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getSiteSearchKeywords_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getSiteSearchKeywords_month.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml10
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_day.xml10
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_week.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_year.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_day.xml10
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_month.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_week.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_year.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_csv__ScheduledReports.generateReport_month.original.csv2
-rw-r--r--tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html2
-rw-r--r--tests/PHPUnit/System/expected/test_UrlNormalization_pagesSegmentedRef__Actions.getPageUrls_day.xml6
-rw-r--r--tests/PHPUnit/System/expected/test_UrlNormalization_pagesSegmented__Actions.getPageUrls_day.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_UrlNormalization_titles__Actions.getPageTitles_day.xml2
-rw-r--r--tests/PHPUnit/System/expected/test_UrlNormalization_urls__Actions.getPageUrls_day.xml6
-rw-r--r--tests/PHPUnit/System/expected/test_UserId_VisitorId__Live.getLastVisitsDetails_month.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_VisitsInPast_InvalidateOldReportsWebsite2_OldReportsShouldAppear__Actions.getPageUrls_month.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_VisitsInPast_InvalidateOldReportsWebsite2_OldReportsShouldNotAppear__Actions.getPageUrls_month.xml4
-rw-r--r--tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml23
-rwxr-xr-xtests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml4
-rwxr-xr-xtests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_csv__ScheduledReports.generateReport_week.original.csv4
-rw-r--r--tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html4
-rw-r--r--tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange__Referrers.getUrlsForSocial_range.xml3
-rw-r--r--tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_noIdSubtable__Referrers.getUrlsForSocial_range.xml13
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getVisitorProfile.xml8
-rw-r--r--tests/PHPUnit/System/expected/test_reportLimiting__Referrers.getReferrerType_day.xml3
-rw-r--r--tests/PHPUnit/System/expected/test_reportLimiting_flattened__Referrers.getReferrerType_day.xml1
-rw-r--r--tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Referrers.getReferrerType_day.xml3
-rw-r--r--tests/PHPUnit/Unit/Period/DayTest.php1
-rw-r--r--tests/PHPUnit/Unit/UrlTest.php46
-rw-r--r--tests/PHPUnit/config.ini.travis.php33
m---------tests/UI/expected-ui-screenshots0
-rw-r--r--tests/UI/specs/ActionsDataTable_spec.js18
-rw-r--r--tests/UI/specs/Dashboard_spec.js4
-rw-r--r--tests/UI/specs/Installation_spec.js13
-rw-r--r--tests/UI/specs/PivotByDimension_spec.js2
-rw-r--r--tests/UI/specs/UIIntegration_spec.js9
-rw-r--r--tests/UI/specs/ViewDataTable_spec.js5
-rw-r--r--tests/lib/screenshot-testing/support/app.js2
-rw-r--r--tests/resources/Config/global.ini.php4
-rw-r--r--tests/resources/OmniFixture-dump.sql.gzbin672041 -> 81125 bytes
-rw-r--r--tests/resources/access-logs/fake_logs.log6
-rw-r--r--tests/resources/access-logs/fake_logs_nginx_json.log3
-rw-r--r--tests/resources/screenshot-override/override.css2
-rw-r--r--tests/resources/screenshot-override/override.js2
m---------tests/travis0
1294 files changed, 11786 insertions, 7736 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d4ee119df7..0e71eb7815 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -39,13 +39,24 @@ This is a changelog for Piwik platform developers. All changes for our HTTP API'
* Support for IE8 was dropped. This affects only the Piwik UI, not the Piwik.js Tracker.
* Required PHP version was changed from 5.3 to 5.5
-## Piwik 2.15.1
+## Piwik 2.16.0
### New features
* New segment `actionType` lets you segment all actions of a given type, eg. `actionType==events` or `actionType==downloads`. Action types values are: `pageviews`, `contents`, `sitesearches`, `events`, `outlinks`, `downloads`
+ * New segment `actionUrl` lets you segment any action that matches a given URL, whether they are Pageviews, Site searches, Contents, Downloads or Events.
+ * New segment `deviceBrand` lets you restrict your users to those using a particular device brand such as Apple, Samsung, LG, Google, Nokia, Sony, Lenovo, Alcatel, etc. View the [complete list of device brands.](http://developer.piwik.org/api-reference/segmentation)
+ * New segment operators `=^` "Starts with" and `=$` "Ends with" complement the existing segment operators: Contains, Does not contain, Equals, Not equals, Greater than or equal to, Less than or equal to.
* The JavaScript Tracker method `PiwikTracker.setDomains()` can now handle paths. This means when setting eg `_paq.push(['setDomains, '*.piwik.org/website1'])` all link that goes to the same domain `piwik.org` but to any other path than `website1/*` will be treated as outlink.
+ * In Administration > Websites, for each website, there is a checkbox "Only track visits and actions when the action URL starts with one of the above URLs". In Piwik 2.14.0, any action URL starting with one of the Alias URLs or starting with a subdomain of the Alias URL would be tracked. As of Piwik 2.15.0, when this checkbox is enabled, it may track less data: action URLs on an Alias URL subdomain will not be tracked anymore (you must specify each sub-domain as Alias URL).
+ * It is now possible to pass an option `php-cli-options` to the `core:archive` command. The given cli options will be forwarded to the actual PHP command. This allows to for example specifiy a different memory limit for the archiving process like this: `./console core:archive --php-cli-options="-d memory_limit=8G"`
+ * New less variable `@theme-color-menu-contrast-textSelected` that lets you specify the color of a selected menu item.
+ * in Administration > Diagnostics, there is a new page `Config file` which lets Super User view all config values from `global.ini.php` in the UI, and whether they were overriden in your `config/config.ini.php`
-### Internal change
+### New commands
+ * New command `config:set` lets you set INI config options from the command line. This command can be used for convenience or for automation.
+
+### Internal changes
+ * `UsersManager.*` API calls: when an API request specifies a `token_auth` of a user with `admin` permission, the returned dataset will not include all usernames as previously, API will now only return usernames for users with `view` or `admin` permission to website(s) viewable by this `token_auth`.
* When generating a new plugin skeleton via `generate:plugin` command, plugin name must now contain only letters and numbers.
* JavaScript Tracker tests no longer require `SQLite`. The existing MySQL configuration for tests is used now. In order to run the tests make sure Piwik is installed and `[database_tests]` is configured in `config/config.ini.php`.
* The definitions for search engine and social network detection have been moved from bundled data files to a separate package (see [https://github.com/piwik/searchengine-and-social-list](https://github.com/piwik/searchengine-and-social-list)).
@@ -57,12 +68,6 @@ This is a changelog for Piwik platform developers. All changes for our HTTP API'
### Deprecations
* The method `DB::tableExists` was un-used and has been removed.
-
-### New commands
- * New command `config:set` lets you set INI config options from the command line. This command can be used for convenience or for automation.
-
-### Breaking changes
- * In Administration > Websites, for each website, there is a checkbox "Only track visits and actions when the action URL starts with one of the above URLs". In Piwik 2.14.0, any action URL starting with one of the Alias URLs or starting with a subdomain of the Alias URL would be tracked. As of Piwik 2.15.0, when this checkbox is enabled, it may track less data: action URLs on an Alias URL subdomain will not be tracked anymore (you must specify each sub-domain as Alias URL).
## Piwik 2.15.0
diff --git a/composer.json b/composer.json
index fe3ca31419..b7ebee8d64 100644
--- a/composer.json
+++ b/composer.json
@@ -46,7 +46,7 @@
"piwik/decompress": "~1.0",
"piwik/network": "~0.1.0",
"piwik/cache": "~0.2.5",
- "piwik/ini": "^1.0.3",
+ "piwik/ini": "^1.0.6",
"php-di/php-di": "^5.0.0",
"psr/log": "~1.0",
"monolog/monolog": "~1.11",
diff --git a/composer.lock b/composer.lock
index 263c85b4ab..32d5519835 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,8 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "09112ef01f28686b387148c407503c7c",
- "content-hash": "ff9b83524f413ac80daad8eb47099042",
+ "hash": "de61be52972a0fe8fe751306c271f4b8",
+ "content-hash": "68130b067cdceef8346b47d858b763a3",
"packages": [
{
"name": "container-interop/container-interop",
@@ -300,7 +300,6 @@
"phpdoc",
"reflection"
],
- "abandoned": "php-di/phpdoc-reader",
"time": "2014-08-21 08:20:45"
},
{
@@ -824,16 +823,16 @@
},
{
"name": "piwik/device-detector",
- "version": "3.4.5",
+ "version": "3.5.1",
"source": {
"type": "git",
"url": "https://github.com/piwik/device-detector.git",
- "reference": "367970e87a1b6a8feb30d339621af357dc8ab898"
+ "reference": "29830f9bd67c8300e37828db0688161dd6f5f7a5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/piwik/device-detector/zipball/367970e87a1b6a8feb30d339621af357dc8ab898",
- "reference": "367970e87a1b6a8feb30d339621af357dc8ab898",
+ "url": "https://api.github.com/repos/piwik/device-detector/zipball/29830f9bd67c8300e37828db0688161dd6f5f7a5",
+ "reference": "29830f9bd67c8300e37828db0688161dd6f5f7a5",
"shasum": ""
},
"require": {
@@ -871,20 +870,20 @@
"parser",
"useragent"
],
- "time": "2015-12-17 22:27:21"
+ "time": "2016-01-21 22:26:37"
},
{
"name": "piwik/ini",
- "version": "1.0.4",
+ "version": "1.0.6",
"source": {
"type": "git",
"url": "https://github.com/piwik/component-ini.git",
- "reference": "9269255fd187e5bda2e5778041c8d143eb615b0a"
+ "reference": "bd2711ba4d5e20e4ca09b6829dc2831576b59dc3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/piwik/component-ini/zipball/9269255fd187e5bda2e5778041c8d143eb615b0a",
- "reference": "9269255fd187e5bda2e5778041c8d143eb615b0a",
+ "url": "https://api.github.com/repos/piwik/component-ini/zipball/bd2711ba4d5e20e4ca09b6829dc2831576b59dc3",
+ "reference": "bd2711ba4d5e20e4ca09b6829dc2831576b59dc3",
"shasum": ""
},
"require": {
@@ -904,7 +903,7 @@
"license": [
"LGPL-3.0"
],
- "time": "2015-04-21 04:59:09"
+ "time": "2016-01-14 21:13:33"
},
{
"name": "piwik/network",
@@ -980,16 +979,16 @@
},
{
"name": "piwik/referrer-spam-blacklist",
- "version": "1.0.6",
+ "version": "1.0.7",
"source": {
"type": "git",
"url": "https://github.com/piwik/referrer-spam-blacklist.git",
- "reference": "5414a855511c7bc761347a3091276c30ba30311d"
+ "reference": "85db74cfc7249cb34ff59eba22edeb6704fd69b8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/piwik/referrer-spam-blacklist/zipball/5414a855511c7bc761347a3091276c30ba30311d",
- "reference": "5414a855511c7bc761347a3091276c30ba30311d",
+ "url": "https://api.github.com/repos/piwik/referrer-spam-blacklist/zipball/85db74cfc7249cb34ff59eba22edeb6704fd69b8",
+ "reference": "85db74cfc7249cb34ff59eba22edeb6704fd69b8",
"shasum": ""
},
"type": "library",
@@ -998,20 +997,20 @@
"Public Domain"
],
"description": "Community-contributed list of referrer spammers",
- "time": "2015-10-07 10:17:59"
+ "time": "2016-01-05 17:31:58"
},
{
"name": "piwik/searchengine-and-social-list",
- "version": "1.0",
+ "version": "1.1",
"source": {
"type": "git",
"url": "https://github.com/piwik/searchengine-and-social-list.git",
- "reference": "e2b97a1cd9ed2dde735de49f8ef9afc26b3df80b"
+ "reference": "5b6763e77dadf24e579f03a7a0e79f1827b5db8a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/piwik/searchengine-and-social-list/zipball/e2b97a1cd9ed2dde735de49f8ef9afc26b3df80b",
- "reference": "e2b97a1cd9ed2dde735de49f8ef9afc26b3df80b",
+ "url": "https://api.github.com/repos/piwik/searchengine-and-social-list/zipball/5b6763e77dadf24e579f03a7a0e79f1827b5db8a",
+ "reference": "5b6763e77dadf24e579f03a7a0e79f1827b5db8a",
"shasum": ""
},
"type": "library",
@@ -1020,7 +1019,7 @@
"Public Domain"
],
"description": "Search engine and social network definitions used by Piwik",
- "time": "2015-11-06 21:32:51"
+ "time": "2015-11-16 22:24:23"
},
{
"name": "psr/log",
diff --git a/config/global.ini.php b/config/global.ini.php
index 00de6ff173..fd9ef2d649 100644
--- a/config/global.ini.php
+++ b/config/global.ini.php
@@ -36,6 +36,7 @@ port = 3306
adapter = PDO\MYSQL
type = InnoDB
schema = Mysql
+charset = utf8
[tests]
; needed in order to run tests.
@@ -561,6 +562,10 @@ pivot_by_filter_enable_fetch_by_segment = 0
; on a per-request basis;
pivot_by_filter_default_column_limit = 10
+; If set to 0 it will disable Piwik Pro advertisements in some places. For example in the installation screen, the
+; Piwik Pro Ad widget will be removed etc.
+piwik_pro_ads_enabled = 1
+
[Tracker]
; Piwik uses "Privacy by default" model. When one of your users visit multiple of your websites tracked in this Piwik,
@@ -790,6 +795,7 @@ Plugins[] = Resolution
Plugins[] = DevicePlugins
Plugins[] = Heartbeat
Plugins[] = Intl
+Plugins[] = PiwikPro
[PluginsInstalled]
PluginsInstalled[] = Diagnostics
diff --git a/core/ArchiveProcessor.php b/core/ArchiveProcessor.php
index 0485cc3532..f24b4993b6 100644
--- a/core/ArchiveProcessor.php
+++ b/core/ArchiveProcessor.php
@@ -442,6 +442,16 @@ class ArchiveProcessor
$metrics[] = $uniqueVisitorsMetric;
$uniques = $this->computeNbUniques($metrics);
+
+ // see edge case as described in https://github.com/piwik/piwik/issues/9357 where uniq_visitors might be higher
+ // than visits because we archive / process it after nb_visits. Between archiving nb_visits and nb_uniq_visitors
+ // there could have been a new visit leading to a higher nb_unique_visitors than nb_visits which is not possible
+ // by definition. In this case we simply use the visits metric instead of unique visitors metric.
+ $visits = $row->getColumn('nb_visits');
+ if ($visits !== false && $uniques[$uniqueVisitorsMetric] !== false) {
+ $uniques[$uniqueVisitorsMetric] = min($uniques[$uniqueVisitorsMetric], $visits);
+ }
+
$row->setColumn('nb_uniq_visitors', $uniques[$uniqueVisitorsMetric]);
$row->setColumn('nb_users', $uniques[Metrics::INDEX_NB_USERS]);
}
diff --git a/core/CliMulti.php b/core/CliMulti.php
index 4921236f11..ef360f0214 100644
--- a/core/CliMulti.php
+++ b/core/CliMulti.php
@@ -56,6 +56,8 @@ class CliMulti
*/
private $urlToPiwik = null;
+ private $phpCliOptions = '';
+
public function __construct()
{
$this->supportsAsync = $this->supportsAsync();
@@ -90,6 +92,15 @@ class CliMulti
}
/**
+ * Forwards the given configuration options to the PHP cli command.
+ * @param string $phpCliOptions eg "-d memory_limit=8G -c=path/to/php.ini"
+ */
+ public function setPhpCliConfigurationOptions($phpCliOptions)
+ {
+ $this->phpCliOptions = (string) $phpCliOptions;
+ }
+
+ /**
* Ok, this sounds weird. Why should we care about ssl certificates when we are in CLI mode? It is needed for
* our simple fallback mode for Windows where we initiate HTTP requests instead of CLI.
* @param $acceptInvalidSSLCertificate
@@ -142,8 +153,8 @@ class CliMulti
$bin = $this->findPhpBinary();
$superuserCommand = $this->runAsSuperUser ? "--superuser" : "";
- return sprintf('%s %s/console climulti:request -q --piwik-domain=%s %s %s > %s 2>&1 &',
- $bin, PIWIK_INCLUDE_PATH, escapeshellarg($hostname), $superuserCommand, escapeshellarg($query), $outputFile);
+ return sprintf('%s %s %s/console climulti:request -q --piwik-domain=%s %s %s > %s 2>&1 &',
+ $bin, $this->phpCliOptions, PIWIK_INCLUDE_PATH, escapeshellarg($hostname), $superuserCommand, escapeshellarg($query), $outputFile);
}
private function getResponse()
diff --git a/core/Common.php b/core/Common.php
index f1d0c3f64b..03e05214c7 100644
--- a/core/Common.php
+++ b/core/Common.php
@@ -557,10 +557,6 @@ class Common
$chars = $alphabet;
$str = '';
- list($usec, $sec) = explode(" ", microtime());
- $seed = ((float)$sec + (float)$usec) * 100000;
- mt_srand((int) $seed);
-
for ($i = 0; $i < $length; $i++) {
$rand_key = mt_rand(0, strlen($chars) - 1);
$str .= substr($chars, $rand_key, 1);
diff --git a/core/Config.php b/core/Config.php
index a1bbabc349..adc3ba948d 100644
--- a/core/Config.php
+++ b/core/Config.php
@@ -157,7 +157,8 @@ class Config
'action_url_category_delimiter' => $general['action_url_category_delimiter'],
'autocomplete_min_sites' => $general['autocomplete_min_sites'],
'datatable_export_range_as_day' => $general['datatable_export_range_as_day'],
- 'datatable_row_limits' => $this->getDatatableRowLimits()
+ 'datatable_row_limits' => $this->getDatatableRowLimits(),
+ 'are_ads_enabled' => $general['piwik_pro_ads_enabled']
);
}
diff --git a/core/CronArchive.php b/core/CronArchive.php
index c929f88809..28ddf49ce9 100644
--- a/core/CronArchive.php
+++ b/core/CronArchive.php
@@ -129,6 +129,12 @@ class CronArchive
public $shouldStartProfiler = false;
/**
+ * Given options will be forwarded to the PHP command if the archiver is executed via CLI.
+ * @var string
+ */
+ public $phpCliConfigurationOptions = '';
+
+ /**
* If HTTP requests are used to initiate archiving, this controls whether invalid SSL certificates should
* be accepted or not by each request.
*
@@ -896,9 +902,7 @@ class CronArchive
$this->requests += count($urls);
$cliMulti = $this->makeCliMulti();
- $cliMulti->setAcceptInvalidSSLCertificate($this->acceptInvalidSSLCertificate);
$cliMulti->setConcurrentProcessesLimit($this->getConcurrentRequestsPerWebsite());
- $cliMulti->runAsSuperUser();
$response = $cliMulti->request($urls);
foreach ($urls as $index => $url) {
@@ -969,18 +973,8 @@ class CronArchive
{
$url = $this->makeRequestUrl($url);
- if ($this->shouldStartProfiler) {
- $url .= "&xhprof=2";
- }
-
- if ($this->testmode) {
- $url .= "&testmode=1";
- }
-
try {
$cliMulti = $this->makeCliMulti();
- $cliMulti->setAcceptInvalidSSLCertificate($this->acceptInvalidSSLCertificate);
- $cliMulti->runAsSuperUser();
$responses = $cliMulti->request(array($url));
$response = !empty($responses) ? array_shift($responses) : null;
@@ -1603,7 +1597,17 @@ class CronArchive
*/
private function makeRequestUrl($url)
{
- return $url . self::APPEND_TO_API_REQUEST;
+ $url = $url . self::APPEND_TO_API_REQUEST;
+
+ if ($this->shouldStartProfiler) {
+ $url .= "&xhprof=2";
+ }
+
+ if ($this->testmode) {
+ $url .= "&testmode=1";
+ }
+
+ return $url;
}
/**
@@ -1712,6 +1716,9 @@ class CronArchive
{
$cliMulti = StaticContainer::get('Piwik\CliMulti');
$cliMulti->setUrlToPiwik($this->urlToPiwik);
+ $cliMulti->setPhpCliConfigurationOptions($this->phpCliConfigurationOptions);
+ $cliMulti->setAcceptInvalidSSLCertificate($this->acceptInvalidSSLCertificate);
+ $cliMulti->runAsSuperUser();
return $cliMulti;
}
diff --git a/core/DataAccess/ArchiveWriter.php b/core/DataAccess/ArchiveWriter.php
index 2ef614990f..3473a33c39 100644
--- a/core/DataAccess/ArchiveWriter.php
+++ b/core/DataAccess/ArchiveWriter.php
@@ -212,7 +212,7 @@ class ArchiveWriter
$tableName = $this->getTableNameToInsert($valueSeen);
$fields = $this->getInsertFields();
- BatchInsert::tableInsertBatch($tableName, $fields, $values);
+ BatchInsert::tableInsertBatch($tableName, $fields, $values, $throwException = false, $charset = 'latin1');
return true;
}
diff --git a/core/DataFiles/cacert.pem b/core/DataFiles/cacert.pem
index b7cd57cb79..27078e454d 100644
--- a/core/DataFiles/cacert.pem
+++ b/core/DataFiles/cacert.pem
@@ -1,7 +1,7 @@
##
## Bundle of CA Root Certificates
##
-## Certificate data from Mozilla as of: Wed Feb 25 04:12:04 2015
+## Certificate data from Mozilla as of: Wed Oct 28 04:12:04 2015
##
## This is a bundle of X.509 certificates of public Certificate Authorities
## (CA). These were automatically extracted from Mozilla's root certificates
@@ -14,9 +14,38 @@
## Just configure this file as the SSLCACertificateFile.
##
## Conversion done with mk-ca-bundle.pl version 1.25.
-## SHA1: f9bc9fa76145720d94124527f82a7185d921975e
+## SHA1: 6d7d2f0a4fae587e7431be191a081ac1257d300a
##
+Let’s Encrypt Authority X1
+==========================
+-----BEGIN CERTIFICATE-----
+MIIEqDCCA5CgAwIBAgIRAJgT9HUT5XULQ+dDHpceRL0wDQYJKoZIhvcNAQELBQAw
+PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
+Ew5EU1QgUm9vdCBDQSBYMzAeFw0xNTEwMTkyMjMzMzZaFw0yMDEwMTkyMjMzMzZa
+MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
+ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMTCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAJzTDPBa5S5Ht3JdN4OzaGMw6tc1Jhkl4b2+NfFwki+3uEtB
+BaupnjUIWOyxKsRohwuj43Xk5vOnYnG6eYFgH9eRmp/z0HhncchpDpWRz/7mmelg
+PEjMfspNdxIknUcbWuu57B43ABycrHunBerOSuu9QeU2mLnL/W08lmjfIypCkAyG
+dGfIf6WauFJhFBM/ZemCh8vb+g5W9oaJ84U/l4avsNwa72sNlRZ9xCugZbKZBDZ1
+gGusSvMbkEl4L6KWTyogJSkExnTA0DHNjzE4lRa6qDO4Q/GxH8Mwf6J5MRM9LTb4
+4/zyM2q5OTHFr8SNDR1kFjOq+oQpttQLwNh9w5MCAwEAAaOCAZIwggGOMBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMH8GCCsGAQUFBwEBBHMwcTAy
+BggrBgEFBQcwAYYmaHR0cDovL2lzcmcudHJ1c3RpZC5vY3NwLmlkZW50cnVzdC5j
+b20wOwYIKwYBBQUHMAKGL2h0dHA6Ly9hcHBzLmlkZW50cnVzdC5jb20vcm9vdHMv
+ZHN0cm9vdGNheDMucDdjMB8GA1UdIwQYMBaAFMSnsaR7LHH62+FLkHX/xBVghYkQ
+MFQGA1UdIARNMEswCAYGZ4EMAQIBMD8GCysGAQQBgt8TAQEBMDAwLgYIKwYBBQUH
+AgEWImh0dHA6Ly9jcHMucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcwPAYDVR0fBDUw
+MzAxoC+gLYYraHR0cDovL2NybC5pZGVudHJ1c3QuY29tL0RTVFJPT1RDQVgzQ1JM
+LmNybDATBgNVHR4EDDAKoQgwBoIELm1pbDAdBgNVHQ4EFgQUqEpqYwR93brm0Tm3
+pkVl7/Oo7KEwDQYJKoZIhvcNAQELBQADggEBANHIIkus7+MJiZZQsY14cCoBG1hd
+v0J20/FyWo5ppnfjL78S2k4s2GLRJ7iD9ZDKErndvbNFGcsW+9kKK/TnY21hp4Dd
+ITv8S9ZYQ7oaoqs7HwhEMY9sibED4aXw09xrJZTC9zK1uIfW6t5dHQjuOWv+HHoW
+ZnupyxpsEUlEaFb+/SCI4KCSBdAsYxAcsHYI5xxEI4LutHp6s3OT2FuO90WfdsIk
+6q78OMSdn875bNjdBYAqxUp2/LEIHfDBkLoQz0hFJmwAbYahqKaLn73PAAm1X2kj
+f1w8DdnkabOLGeOVcj9LQ+s67vBykx4anTjURkbqZslUEUsn2k5xeua2zUk=
+-----END CERTIFICATE-----
Equifax Secure CA
=================
@@ -174,23 +203,6 @@ Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
-----END CERTIFICATE-----
-Equifax Secure Global eBusiness CA
-==================================
------BEGIN CERTIFICATE-----
-MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT
-RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp
-bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx
-HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds
-b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV
-PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN
-qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn
-hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j
-BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs
-MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN
-I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY
-NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
------END CERTIFICATE-----
-
AddTrust Low-Value Services Root
================================
-----BEGIN CERTIFICATE-----
@@ -1159,29 +1171,6 @@ vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3
oKfN5XozNmr6mis=
-----END CERTIFICATE-----
-TURKTRUST Certificate Services Provider Root 1
-==============================================
------BEGIN CERTIFICATE-----
-MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2VMOcUktUUlVTVCBF
-bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEP
-MA0GA1UEBwwGQU5LQVJBMVYwVAYDVQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0
-acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1MTMx
-MDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RSVVNUIEVsZWt0cm9uaWsg
-U2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZB
-TktBUkExVjBUBgNVBAoMTShjKSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBC
-aWxpxZ9pbSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9InTojAPBxhEqPZW8qZSwu5GX
-yGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8i
-Si9BB35JYbOG7E6mQW6EvAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ
-8y1UiBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm5Rh8i27fbMx4
-W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51b0dewQIDAQABoxAwDjAMBgNVHRME
-BTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46
-sWrv7/hg0Uw2ZkUd82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
-q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oSN7wBGjSFvW5P55Fy
-B0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8KsF8kOipKMDTkcatKIdAaLX/7KfS0zgY
-nNN9aV3wxqUeJBujR/xpB2jn5Jq07Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
------END CERTIFICATE-----
-
TURKTRUST Certificate Services Provider Root 2
==============================================
-----BEGIN CERTIFICATE-----
@@ -1606,83 +1595,6 @@ PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY
WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
-----END CERTIFICATE-----
-TC TrustCenter Class 2 CA II
-============================
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIOLmoAAQACH9dSISwRXDswDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
-IENsYXNzIDIgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDIgQ0EgSUkwHhcNMDYw
-MTEyMTQzODQzWhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
-c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTElMCMGA1UE
-AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAKuAh5uO8MN8h9foJIIRszzdQ2Lu+MNF2ujhoF/RKrLqk2jftMjWQ+nEdVl//OEd+DFw
-IxuInie5e/060smp6RQvkL4DUsFJzfb95AhmC1eKokKguNV/aVyQMrKXDcpK3EY+AlWJU+MaWss2
-xgdW94zPEfRMuzBwBJWl9jmM/XOBCH2JXjIeIqkiRUuwZi4wzJ9l/fzLganx4Duvo4bRierERXlQ
-Xa7pIXSSTYtZgo+U4+lK8edJsBTj9WLL1XK9H7nSn6DNqPoByNkN39r8R52zyFTfSUrxIan+GE7u
-SNQZu+995OKdy1u2bv/jzVrndIIFuoAlOMvkaZ6vQaoahPUCAwEAAaOCATQwggEwMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTjq1RMgKHbVkO3kUrL84J6E1wIqzCB
-7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
-Y19jbGFzc18yX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
-cnVzdENlbnRlciUyMENsYXNzJTIwMiUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
-SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
-TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEAjNfffu4bgBCzg/XbEeprS6iSGNn3Bzn1LL4G
-dXpoUxUc6krtXvwjshOg0wn/9vYua0Fxec3ibf2uWWuFHbhOIprtZjluS5TmVfwLG4t3wVMTZonZ
-KNaL80VKY7f9ewthXbhtvsPcW3nS7Yblok2+XnR8au0WOB9/WIFaGusyiC2y8zl3gK9etmF1Kdsj
-TYjKUCjLhdLTEKJZbtOTVAB6okaVhgWcqRmY5TFyDADiZ9lA4CQze28suVyrZZ0srHbqNZn1l7kP
-JOzHdiEoZa5X6AeIdUpWoNIFOqTmjZKILPPy4cHGYdtBxceb9w4aUUXCYWvcZCcXjFq32nQozZfk
-vQ==
------END CERTIFICATE-----
-
-TC TrustCenter Class 3 CA II
-============================
------BEGIN CERTIFICATE-----
-MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNVBAsTGVRDIFRydXN0Q2VudGVy
-IENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYw
-MTEyMTQ0MTU3WhcNMjUxMjMxMjI1OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1
-c3RDZW50ZXIgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UE
-AxMcVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJWHt4bNwcwIi9v8Qbxq63W
-yKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+QVl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo
-6SI7dYnWRBpl8huXJh0obazovVkdKyT21oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZ
-uV3bOx4a+9P/FRQI2AlqukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk
-2ZyqBwi1Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1UdEwEB
-/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NXXAek0CSnwPIA1DCB
-7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRydXN0Y2VudGVyLmRlL2NybC92Mi90
-Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBU
-cnVzdENlbnRlciUyMENsYXNzJTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21i
-SCxPVT1yb290Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
-TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlNirTzwppVMXzE
-O2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8TtXqluJucsG7Kv5sbviRmEb8
-yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9
-IJqDnxrcOfHFcqMRA/07QlIp2+gB95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal
-092Y+tTmBvTwtiBjS+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc
-5A==
------END CERTIFICATE-----
-
-TC TrustCenter Universal CA I
-=============================
------BEGIN CERTIFICATE-----
-MIID3TCCAsWgAwIBAgIOHaIAAQAC7LdggHiNtgYwDQYJKoZIhvcNAQEFBQAweTELMAkGA1UEBhMC
-REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy
-IFVuaXZlcnNhbCBDQTEmMCQGA1UEAxMdVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIEkwHhcN
-MDYwMzIyMTU1NDI4WhcNMjUxMjMxMjI1OTU5WjB5MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMg
-VHJ1c3RDZW50ZXIgR21iSDEkMCIGA1UECxMbVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBMSYw
-JAYDVQQDEx1UQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0EgSTCCASIwDQYJKoZIhvcNAQEBBQAD
-ggEPADCCAQoCggEBAKR3I5ZEr5D0MacQ9CaHnPM42Q9e3s9B6DGtxnSRJJZ4Hgmgm5qVSkr1YnwC
-qMqs+1oEdjneX/H5s7/zA1hV0qq34wQi0fiU2iIIAI3TfCZdzHd55yx4Oagmcw6iXSVphU9VDprv
-xrlE4Vc93x9UIuVvZaozhDrzznq+VZeujRIPFDPiUHDDSYcTvFHe15gSWu86gzOSBnWLknwSaHtw
-ag+1m7Z3W0hZneTvWq3zwZ7U10VOylY0Ibw+F1tvdwxIAUMpsN0/lm7mlaoMwCC2/T42J5zjXM9O
-gdwZu5GQfezmlwQek8wiSdeXhrYTCjxDI3d+8NzmzSQfO4ObNDqDNOMCAwEAAaNjMGEwHwYDVR0j
-BBgwFoAUkqR1LKSevoFE63n8isWVpesQdXMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
-AYYwHQYDVR0OBBYEFJKkdSyknr6BROt5/IrFlaXrEHVzMA0GCSqGSIb3DQEBBQUAA4IBAQAo0uCG
-1eb4e/CX3CJrO5UUVg8RMKWaTzqwOuAGy2X17caXJ/4l8lfmXpWMPmRgFVp/Lw0BxbFg/UU1z/Cy
-vwbZ71q+s2IhtNerNXxTPqYn8aEt2hojnczd7Dwtnic0XQ/CNnm8yUpiLe1r2X1BQ3y2qsrtYbE3
-ghUJGooWMNjsydZHcnhLEEYUjl8Or+zHL6sQ17bxbuyGssLoDZJz3KL0Dzq/YSMQiZxIQG5wALPT
-ujdEWBF6AmqI8Dc08BnprNRlc/ZpjGSUOnmFKbAWKwyCPwacx/0QK54PLLae4xW/2TYcuiUaUj0a
-7CIMHOCkoj3w6DnPgcB77V0fb8XQC9eY
------END CERTIFICATE-----
-
Deutsche Telekom Root CA 2
==========================
-----BEGIN CERTIFICATE-----
@@ -1705,28 +1617,6 @@ dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
Cm26OWMohpLzGITY+9HPBVZkVw==
-----END CERTIFICATE-----
-ComSign Secured CA
-==================
------BEGIN CERTIFICATE-----
-MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAwPDEbMBkGA1UE
-AxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQGEwJJTDAeFw0w
-NDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwxGzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBD
-QTEQMA4GA1UEChMHQ29tU2lnbjELMAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQDGtWhfHZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs
-49ohgHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sWv+bznkqH
-7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ueMv5WJDmyVIRD9YTC2LxB
-kMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d1
-9guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUw
-AwEB/zBEBgNVHR8EPTA7MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29t
-U2lnblNlY3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58ADsA
-j8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkqhkiG9w0BAQUFAAOC
-AQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7piL1DRYHjZiM/EoZNGeQFsOY3wo3a
-BijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtCdsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtp
-FhpFfTMDZflScZAmlaxMDPWLkz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP
-51qJThRv4zdLhfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
-OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
------END CERTIFICATE-----
-
Cybertrust Global Root
======================
-----BEGIN CERTIFICATE-----
@@ -1828,26 +1718,6 @@ fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w
wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho
-----END CERTIFICATE-----
-Buypass Class 3 CA 1
-====================
------BEGIN CERTIFICATE-----
-MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU
-QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1
-MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh
-c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI
-hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx
-ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0
-n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia
-AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c
-1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC
-MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P
-AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7
-pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA
-EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5
-htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj
-el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915
------END CERTIFICATE-----
-
EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
==========================================================================
-----BEGIN CERTIFICATE-----
@@ -2277,28 +2147,6 @@ yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi
LXpUq3DDfSJlgnCW
-----END CERTIFICATE-----
-E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi
-===================================================
------BEGIN CERTIFICATE-----
-MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG
-EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz
-ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3
-MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0
-cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u
-aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY
-8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y
-jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI
-JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk
-9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD
-AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG
-SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d
-F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq
-D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4
-Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
-fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
------END CERTIFICATE-----
-
GlobalSign Root CA - R3
=======================
-----BEGIN CERTIFICATE-----
@@ -3858,3 +3706,276 @@ BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx
uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7
yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3
-----END CERTIFICATE-----
+
+Staat der Nederlanden Root CA - G3
+==================================
+-----BEGIN CERTIFICATE-----
+MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE
+CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC
+TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l
+ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y
+olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t
+x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy
+EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K
+Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur
+mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5
+1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp
+07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo
+FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE
+41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB
+AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu
+yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD
+U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq
+KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1
+v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA
+8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b
+8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r
+mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq
+1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI
+JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV
+tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk=
+-----END CERTIFICATE-----
+
+Staat der Nederlanden EV Root CA
+================================
+-----BEGIN CERTIFICATE-----
+MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE
+CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g
+RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M
+MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl
+cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk
+SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW
+O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r
+0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8
+Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV
+XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr
+08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV
+0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd
+74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx
+fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa
+ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI
+eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu
+c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq
+5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN
+b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN
+f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi
+5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4
+WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK
+DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy
+eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg==
+-----END CERTIFICATE-----
+
+IdenTrust Commercial Root CA 1
+==============================
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG
+EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS
+b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES
+MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB
+IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld
+hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/
+mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi
+1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C
+XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl
+3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy
+NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV
+WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg
+xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix
+uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
+AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI
+hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
+6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg
+ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt
+ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV
+YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX
+feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro
+kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe
+2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz
+Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R
+cGzM7vRX+Bi6hG6H
+-----END CERTIFICATE-----
+
+IdenTrust Public Sector Root CA 1
+=================================
+-----BEGIN CERTIFICATE-----
+MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG
+EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv
+ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV
+UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS
+b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy
+P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6
+Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI
+rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf
+qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS
+mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn
+ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh
+LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v
+iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL
+4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B
+Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw
+DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
+t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A
+mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt
+GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt
+m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx
+NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4
+Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI
+ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC
+ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ
+3Wl9af0AVqW3rLatt8o+Ae+c
+-----END CERTIFICATE-----
+
+Entrust Root Certification Authority - G2
+=========================================
+-----BEGIN CERTIFICATE-----
+MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV
+BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy
+bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug
+b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw
+HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT
+DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx
+OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP
+/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz
+HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU
+s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y
+TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx
+AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6
+0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z
+iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
+Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi
+nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+
+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO
+e4pIb4tF9g==
+-----END CERTIFICATE-----
+
+Entrust Root Certification Authority - EC1
+==========================================
+-----BEGIN CERTIFICATE-----
+MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx
+FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn
+YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl
+ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw
+FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs
+LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg
+dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
+IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy
+AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef
+9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
+FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h
+vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8
+kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
+-----END CERTIFICATE-----
+
+CFCA EV ROOT
+============
+-----BEGIN CERTIFICATE-----
+MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE
+CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB
+IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw
+MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD
+DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV
+BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD
+7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN
+uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW
+ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7
+xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f
+py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K
+gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol
+hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ
+tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf
+BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
+/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
+ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q
+ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua
+4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG
+E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX
+BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn
+aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy
+PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX
+kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C
+ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
+-----END CERTIFICATE-----
+
+TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5
+=========================================================
+-----BEGIN CERTIFICATE-----
+MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN
+BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp
+bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg
+RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw
+ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w
+SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE
+n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp
+ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537
+jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m
+ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP
+9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV
+4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH
+HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
+hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo
+BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq
+URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl
+lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8
+B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU=
+-----END CERTIFICATE-----
+
+TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6
+=========================================================
+-----BEGIN CERTIFICATE-----
+MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G
+A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls
+acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF
+bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5
+MDQxMFoXDTIzMTIxNjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBL
+BgNVBAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSf
+aSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2VydGlm
+aWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCdsGjW6L0UlqMACprx9MfMkU1xeHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a
+2uqsxgbPJQ1BgfbBOCK9+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EED
+wnS3/faAz1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0pu5Fb
+HH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6plVxiSvgNZ1GpryHV
++DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMBAAGjQjBAMB0GA1UdDgQWBBTdVRcT
+9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
+9w0BAQsFAAOCAQEAb1gNl0OqFlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3R
+fdCaqaXKGDsCQC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy
+o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKIDgI6tflEATseW
+hvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm9ocJV612ph1jmv3XZch4gyt1
+O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsGtAuYSyher4hYyw==
+-----END CERTIFICATE-----
+
+Certinomis - Root CA
+====================
+-----BEGIN CERTIFICATE-----
+MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK
+Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg
+LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx
+EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD
+ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos
+P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo
+d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap
+z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00
+8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x
+RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE
+6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t
+FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV
+PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH
+i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj
+YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I
+6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
+AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV
+WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw
+Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX
+lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ
+y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9
+Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng
+DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi
+I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM
+cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr
+hkIGuUE=
+-----END CERTIFICATE-----
diff --git a/core/Date.php b/core/Date.php
index be009fe54b..be099e792a 100644
--- a/core/Date.php
+++ b/core/Date.php
@@ -718,11 +718,11 @@ class Date
case "EE":
case "E":
return $translator->translate('Intl_Day_Short_' . $dayOfWeek);
- case "CCCC":
+ case "cccc":
return $translator->translate('Intl_Day_Long_StandAlone_' . $dayOfWeek);
- case "CCC":
- case "CC":
- case "C":
+ case "ccc":
+ case "cc":
+ case "c":
return $translator->translate('Intl_Day_Short_StandAlone_' . $dayOfWeek);
case "D":
return 1 + (int)$this->toString('z'); // 1 - 366
diff --git a/core/Db/BatchInsert.php b/core/Db/BatchInsert.php
index 8d54c163b2..84093dca9d 100644
--- a/core/Db/BatchInsert.php
+++ b/core/Db/BatchInsert.php
@@ -51,17 +51,20 @@ class BatchInsert
* @param array $values array of data to be inserted
* @param bool $throwException Whether to throw an exception that was caught while trying
* LOAD DATA INFILE, or not.
+ * @param string $charset The charset to use, defaults to utf8
* @throws Exception
* @return bool True if the bulk LOAD was used, false if we fallback to plain INSERTs
*/
- public static function tableInsertBatch($tableName, $fields, $values, $throwException = false)
+ public static function tableInsertBatch($tableName, $fields, $values, $throwException = false, $charset = 'utf8')
{
- $filePath = StaticContainer::get('path.tmp') . '/assets/' . $tableName . '-' . Common::generateUniqId() . '.csv';
-
$loadDataInfileEnabled = Config::getInstance()->General['enable_load_data_infile'];
if ($loadDataInfileEnabled
&& Db::get()->hasBulkLoader()) {
+
+ $path = self::getBestPathForLoadData();
+ $filePath = $path . $tableName . '-' . Common::generateUniqId() . '.csv';
+
try {
$fileSpec = array(
'delim' => "\t",
@@ -72,13 +75,9 @@ class BatchInsert
},
'eol' => "\r\n",
'null' => 'NULL',
+ 'charset' => $charset
);
- // hack for charset mismatch
- if (!DbHelper::isDatabaseConnectionUTF8() && !isset(Config::getInstance()->database['charset'])) {
- $fileSpec['charset'] = 'latin1';
- }
-
self::createCSVFile($filePath, $fileSpec, $values);
if (!is_readable($filePath)) {
@@ -95,17 +94,36 @@ class BatchInsert
throw $e;
}
}
- }
- // if all else fails, fallback to a series of INSERTs
- if(file_exists($filePath)){
- @unlink($filePath);
+ // if all else fails, fallback to a series of INSERTs
+ if (file_exists($filePath)) {
+ @unlink($filePath);
+ }
}
-
+
self::tableInsertBatchIterate($tableName, $fields, $values);
+
return false;
}
+ private static function getBestPathForLoadData()
+ {
+ try {
+ $path = Db::fetchOne('SELECT @@secure_file_priv'); // was introduced in 5.0.38
+ } catch (Exception $e) {
+ // we do not rethrow exception as an error is expected if MySQL is < 5.0.38
+ // in this case tableInsertBatch might still work
+ }
+
+ if (empty($path) || !@is_dir($path) || !@is_writable($path)) {
+ $path = StaticContainer::get('path.tmp') . '/assets/';
+ } elseif (!Common::stringEndsWith($path, '/')) {
+ $path .= '/';
+ }
+
+ return $path;
+ }
+
/**
* Batch insert into table from CSV (or other delimited) file.
*
diff --git a/core/Http.php b/core/Http.php
index b5533262e4..7e7602c20e 100644
--- a/core/Http.php
+++ b/core/Http.php
@@ -125,6 +125,7 @@ class Http
* @param string $httpMethod The HTTP method to use. Defaults to `'GET'`.
* @param string $httpUsername HTTP Auth username
* @param string $httpPassword HTTP Auth password
+ * @param array|string $requestBody If $httpMethod is 'POST' this may accept an array of variables or a string that needs to be posted
*
* @throws Exception
* @return bool true (or string/array) on success; false on HTTP response error code (1xx or 4xx)
@@ -143,7 +144,8 @@ class Http
$getExtendedInfo = false,
$httpMethod = 'GET',
$httpUsername = null,
- $httpPassword = null
+ $httpPassword = null,
+ $requestBody = null
) {
if ($followDepth > 5) {
throw new Exception('Too many redirects (' . $followDepth . ')');
@@ -152,6 +154,10 @@ class Http
$contentLength = 0;
$fileLength = 0;
+ if (!empty($requestBody) && is_array($requestBody)) {
+ $requestBody = http_build_query($requestBody);
+ }
+
// Piwik services behave like a proxy, so we should act like one.
$xff = 'X-Forwarded-For: '
. (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] . ',' : '')
@@ -251,10 +257,17 @@ class Http
. $xff . "\r\n"
. $via . "\r\n"
. $rangeHeader
- . "Connection: close\r\n"
- . "\r\n";
+ . "Connection: close\r\n";
fwrite($fsock, $requestHeader);
+ if (strtolower($httpMethod) === 'post' && !empty($requestBody)) {
+ fwrite($fsock, self::buildHeadersForPost($requestBody));
+ fwrite($fsock, "\r\n");
+ fwrite($fsock, $requestBody);
+ } else {
+ fwrite($fsock, "\r\n");
+ }
+
$streamMetaData = array('timed_out' => false);
@stream_set_blocking($fsock, true);
@@ -421,6 +434,14 @@ class Http
}
}
+ if (strtolower($httpMethod) === 'post' && !empty($requestBody)) {
+ $postHeader = self::buildHeadersForPost($requestBody);
+ $postHeader .= "\r\n";
+ $stream_options['http']['method'] = 'POST';
+ $stream_options['http']['header'] .= $postHeader;
+ $stream_options['http']['content'] = $requestBody;
+ }
+
$ctx = stream_context_create($stream_options);
}
@@ -499,6 +520,11 @@ class Http
@curl_setopt($ch, CURLOPT_NOBODY, true);
}
+ if (strtolower($httpMethod) === 'post' && !empty($requestBody)) {
+ curl_setopt($ch, CURLOPT_POST, 1);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);
+ }
+
if (!empty($httpUsername) && !empty($httpPassword)) {
$curl_options += array(
CURLOPT_USERPWD => $httpUsername . ':' . $httpPassword,
@@ -596,6 +622,14 @@ class Http
}
}
+ private static function buildHeadersForPost($requestBody)
+ {
+ $postHeader = "Content-Type: application/x-www-form-urlencoded\r\n";
+ $postHeader .= "Content-Length: " . strlen($requestBody) . "\r\n";
+
+ return $postHeader;
+ }
+
/**
* Downloads the next chunk of a specific file. The next chunk's byte range
* is determined by the existing file's size and the expected file size, which
@@ -839,9 +873,8 @@ class Http
private static function getProxyConfiguration($url)
{
$hostname = UrlHelper::getHostFromUrl($url);
- $localHostnames = Url::getLocalHostnames();
- if(in_array($hostname, $localHostnames)) {
+ if (Url::isLocalHost($hostname)) {
return array(null, null, null, null);
}
diff --git a/core/Mail.php b/core/Mail.php
index 22843b5a76..c6c8623cfd 100644
--- a/core/Mail.php
+++ b/core/Mail.php
@@ -127,6 +127,18 @@ class Mail extends Zend_Mail
}
}
+ public function createAttachment($body, $mimeType = null, $disposition = null, $encoding = null, $filename = null)
+ {
+ $filename = $this->sanitiseString($filename);
+ return parent::createAttachment($body, $mimeType, $disposition, $encoding, $filename);
+ }
+
+ public function setSubject($subject)
+ {
+ $subject = $this->sanitiseString($subject);
+ return parent::setSubject($subject);
+ }
+
/**
* @param string $email
* @return string
@@ -152,6 +164,20 @@ class Mail extends Zend_Mail
*/
protected function isHostDefinedAndNotLocal($url)
{
- return isset($url['host']) && !in_array($url['host'], Url::getLocalHostnames(), true);
+ return isset($url['host']) && !Url::isLocalHost($url['host']);
+ }
+
+ /**
+ * Replaces characters known to appear incorrectly in some email clients
+ *
+ * @param $string
+ * @return mixed
+ */
+ function sanitiseString($string)
+ {
+ $search = array('–', '’');
+ $replace = array('-', '\'');
+ $string = str_replace($search, $replace, $string);
+ return $string;
}
}
diff --git a/core/Notification/Manager.php b/core/Notification/Manager.php
index e7eafec49e..bdf1f130dd 100644
--- a/core/Notification/Manager.php
+++ b/core/Notification/Manager.php
@@ -24,6 +24,11 @@ class Manager
private static $session = null;
/**
+ * @var Notification[]
+ */
+ private static $notifications = array();
+
+ /**
* Posts a notification that will be shown in Piwik's status bar. If a notification with the same ID
* has been posted and has not been closed/removed, it will be replaced with `$notification`.
*
@@ -105,12 +110,21 @@ class Manager
private static function addNotification($id, Notification $notification)
{
- if (!self::isEnabled()) {
- return;
- }
+ self::saveNotificationAcrossUiRequestsIfNeeded($id, $notification);
- $session = static::getSession();
- $session->notifications[$id] = $notification;
+ // we store all kinda notifications here so in case the session is not enabled or disabled later there is still
+ // a chance it gets delivered to the UI during the same request.
+ self::$notifications[$id] = $notification;
+ }
+
+ private static function saveNotificationAcrossUiRequestsIfNeeded($id, Notification $notification)
+ {
+ $isPersistent = $notification->type === Notification::TYPE_PERSISTENT;
+
+ if ($isPersistent && self::isSessionEnabled()) {
+ $session = static::getSession();
+ $session->notifications[$id] = $notification;
+ }
}
private static function removeOldestNotificationsIfThereAreTooMany()
@@ -126,28 +140,43 @@ class Manager
private static function getAllNotifications()
{
- if (!self::isEnabled()) {
+ if (!self::isSessionEnabled()) {
return array();
}
- $session = static::getSession();
+ $notifications = self::$notifications;
+
+ foreach ($notifications as $id => $notification) {
+ // we copy them over to the session if possible and persist it in case the session was not yet
+ // writable / enabled at the time the notification was added.
+ self::saveNotificationAcrossUiRequestsIfNeeded($id, $notification);
+ }
- return $session->notifications;
+ if (self::isSessionEnabled()) {
+ $session = static::getSession();
+ foreach ($session->notifications as $id => $notification) {
+ $notifications[$id] = $notification;
+ }
+ }
+
+ return $notifications;
}
private static function removeNotification($id)
{
- if (!self::isEnabled()) {
- return;
+ if (array_key_exists($id, self::$notifications)) {
+ unset(self::$notifications[$id]);
}
- $session = static::getSession();
- if (array_key_exists($id, $session->notifications)) {
- unset($session->notifications[$id]);
+ if (self::isSessionEnabled()) {
+ $session = static::getSession();
+ if (array_key_exists($id, $session->notifications)) {
+ unset($session->notifications[$id]);
+ }
}
}
- private static function isEnabled()
+ private static function isSessionEnabled()
{
return Session::isWritable() && Session::isReadable();
}
@@ -161,7 +190,7 @@ class Manager
static::$session = new SessionNamespace('notification');
}
- if (empty(static::$session->notifications) && self::isEnabled()) {
+ if (empty(static::$session->notifications) && self::isSessionEnabled()) {
static::$session->notifications = array();
}
diff --git a/core/PiwikPro/Advertising.php b/core/PiwikPro/Advertising.php
new file mode 100644
index 0000000000..deea4fa9f3
--- /dev/null
+++ b/core/PiwikPro/Advertising.php
@@ -0,0 +1,141 @@
+<?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\PiwikPro;
+
+use Piwik\Plugin;
+use Piwik\Config;
+
+/**
+ * Piwik PRO Advertising related methods. Lets you for example check whether advertising is enabled, generate
+ * links for differnt landing pages etc.
+ *
+ * @api
+ * @since 2.16.0
+ */
+class Advertising
+{
+ const CAMPAIGN_NAME_UPGRADE_TO_PRO = 'Upgrade_to_Pro';
+ const CAMPAIGN_NAME_UPGRADE_TO_CLOUD = 'Upgrade_to_Cloud';
+
+ /**
+ * @var Plugin\Manager
+ */
+ private $pluginManager;
+
+ /**
+ * @var Config
+ */
+ private $config;
+
+ public function __construct(Plugin\Manager $pluginManager, Config $config)
+ {
+ $this->pluginManager = $pluginManager;
+ $this->config = $config;
+ }
+
+ /**
+ * Returns true if it is ok to show some Piwik PRO advertising in the Piwik UI.
+ * @return bool
+ */
+ public function arePiwikProAdsEnabled()
+ {
+ if ($this->pluginManager->isPluginActivated('EnterpriseAdmin')
+ || $this->pluginManager->isPluginActivated('LoginAdmin')
+ || $this->pluginManager->isPluginActivated('CloudAdmin')
+ || $this->pluginManager->isPluginActivated('WhiteLabel')) {
+ return false;
+ }
+
+ $showAds = $this->config->General['piwik_pro_ads_enabled'];
+
+ return !empty($showAds);
+ }
+
+ /**
+ * Get URL for promoting the Piwik Cloud.
+ *
+ * @param string $campaignMedium
+ * @param string $campaignContent
+ * @return string
+ */
+ public function getPromoUrlForCloud($campaignMedium, $campaignContent = '')
+ {
+ $url = 'https://piwik.pro/cloud/?';
+
+ $campaign = $this->getCampaignParametersForPromoUrl(
+ $name = self::CAMPAIGN_NAME_UPGRADE_TO_CLOUD,
+ $campaignMedium,
+ $campaignContent
+ );
+
+ return $url . $campaign;
+ }
+
+ /**
+ * Get URL for promoting Piwik On Premises.
+ * @param string $campaignMedium
+ * @param string $campaignContent
+ * @return string
+ */
+ public function getPromoUrlForOnPremises($campaignMedium, $campaignContent = '')
+ {
+ $url = 'https://piwik.pro/c/upgrade/?';
+
+ $campaign = $this->getCampaignParametersForPromoUrl(
+ $name = self::CAMPAIGN_NAME_UPGRADE_TO_PRO,
+ $campaignMedium,
+ $campaignContent
+ );
+
+ return $url . $campaign;
+ }
+
+ /**
+ * Appends campaign parameters to the given URL for promoting any Piwik PRO service.
+ * @param string $url
+ * @param string $campaignName
+ * @param string $campaignMedium
+ * @param string $campaignContent
+ * @return string
+ */
+ public function addPromoCampaignParametersToUrl($url, $campaignName, $campaignMedium, $campaignContent = '')
+ {
+ if (empty($url)) {
+ return '';
+ }
+
+ if (strpos($url, '?') === false) {
+ $url .= '?';
+ } else {
+ $url .= '&';
+ }
+
+ $url .= $this->getCampaignParametersForPromoUrl($campaignName, $campaignMedium, $campaignContent);
+
+ return $url;
+ }
+
+ /**
+ * Generates campaign URL parameters that can be used with any promotion link for Piwik PRO.
+ *
+ * @param string $campaignName
+ * @param string $campaignMedium
+ * @param string $campaignContent Optional
+ * @return string URL parameters without a leading ? or &
+ */
+ private function getCampaignParametersForPromoUrl($campaignName, $campaignMedium, $campaignContent = '')
+ {
+ $campaignName = sprintf('pk_campaign=%s&pk_medium=%s&pk_source=Piwik_App', $campaignName, $campaignMedium);
+
+ if (!empty($campaignContent)) {
+ $campaignName .= '&pk_content=' . $campaignContent;
+ }
+
+ return $campaignName;
+ }
+}
diff --git a/core/Plugin/Controller.php b/core/Plugin/Controller.php
index e4c9380e2d..636303e929 100644
--- a/core/Plugin/Controller.php
+++ b/core/Plugin/Controller.php
@@ -630,6 +630,7 @@ abstract class Controller
$view->date = $this->strDate;
$view->prettyDate = self::getCalendarPrettyDate($period);
+ $view->prettyDateLong = $period->getLocalizedLongString();
$view->rawDate = $rawDate;
$view->startDate = $dateStart;
$view->endDate = $dateEnd;
diff --git a/core/Plugin/ControllerAdmin.php b/core/Plugin/ControllerAdmin.php
index 7c8a1be211..a0658c4142 100644
--- a/core/Plugin/ControllerAdmin.php
+++ b/core/Plugin/ControllerAdmin.php
@@ -21,6 +21,7 @@ use Piwik\Tracker\TrackerConfig;
use Piwik\Url;
use Piwik\Version;
use Piwik\View;
+use Piwik\ProxyHttp;
/**
* Base class of plugin controllers that provide administrative functionality.
@@ -86,6 +87,36 @@ abstract class ControllerAdmin extends Controller
self::setBasicVariablesAdminView($view);
}
+ private static function notifyIfURLIsNotSecure()
+ {
+ $isURLSecure = ProxyHttp::isHttps();
+ if ($isURLSecure) {
+ return;
+ }
+
+ if (!Piwik::hasUserSuperUserAccess()) {
+ return;
+ }
+
+ if(Url::isLocalHost(Url::getCurrentHost())) {
+ return;
+ }
+
+
+ $message = Piwik::translate('General_CurrentlyUsingUnsecureHttp');
+
+ $message .= " ";
+
+ $message .= Piwik::translate('General_ReadThisToLearnMore',
+ array('<a rel="noreferrer" target="_blank" href="https://piwik.org/faq/how-to/faq_91/">', '</a>')
+ );
+
+ $notification = new Notification($message);
+ $notification->context = Notification::CONTEXT_WARNING;
+ $notification->raw = true;
+ Notification\Manager::notify('ControllerAdmin_HttpIsUsed', $notification);
+ }
+
/**
* @ignore
*/
@@ -104,6 +135,7 @@ abstract class ControllerAdmin extends Controller
}
}
+
private static function notifyIfEAcceleratorIsUsed()
{
$isEacceleratorUsed = ini_get('eaccelerator.enable');
@@ -184,6 +216,7 @@ abstract class ControllerAdmin extends Controller
{
self::notifyWhenTrackingStatisticsDisabled();
self::notifyIfEAcceleratorIsUsed();
+ self::notifyIfURLIsNotSecure();
$view->topMenu = MenuTop::getInstance()->getMenu();
$view->userMenu = MenuUser::getInstance()->getMenu();
diff --git a/core/Plugin/Manager.php b/core/Plugin/Manager.php
index 63a3e0aaaf..2b552f48e0 100644
--- a/core/Plugin/Manager.php
+++ b/core/Plugin/Manager.php
@@ -18,9 +18,11 @@ use Piwik\Container\StaticContainer;
use Piwik\EventDispatcher;
use Piwik\Filesystem;
use Piwik\Log;
+use Piwik\Notification;
use Piwik\Piwik;
use Piwik\Plugin;
use Piwik\PluginDeactivatedException;
+use Piwik\Session;
use Piwik\Theme;
use Piwik\Tracker;
use Piwik\Translation\Translator;
@@ -828,6 +830,15 @@ class Manager
if ($newPlugin->hasMissingDependencies()) {
$this->deactivatePlugin($pluginName);
+
+ // add this state we do not know yet whether current user has super user access. We do not even know
+ // if someone is actually logged in.
+ $message = sprintf('We disabled the plugin %s as it has missing dependencies.', $pluginName);
+ $message .= ' Please contact your Piwik administrator.';
+
+ $notification = new Notification($message);
+ $notification->context = Notification::CONTEXT_ERROR;
+ Notification\Manager::notify('PluginManager_PluginDeactivated', $notification);
continue;
}
diff --git a/core/Settings/SystemSetting.php b/core/Settings/SystemSetting.php
index 94f7416c19..fb0a4d7a2d 100644
--- a/core/Settings/SystemSetting.php
+++ b/core/Settings/SystemSetting.php
@@ -9,6 +9,7 @@
namespace Piwik\Settings;
+use Piwik\Config;
use Piwik\Piwik;
/**
@@ -58,6 +59,10 @@ class SystemSetting extends Setting
*/
public function isWritableByCurrentUser()
{
+ if ($this->hasConfigValue()) {
+ return false;
+ }
+
return $this->writableByCurrentUser;
}
@@ -80,4 +85,34 @@ class SystemSetting extends Setting
{
return 30;
}
+
+ public function getValue()
+ {
+ $defaultValue = parent::getValue(); // we access value first to make sure permissions are checked
+
+ $configValue = $this->getValueFromConfig();
+
+ if (isset($configValue)) {
+ $defaultValue = $configValue;
+ settype($defaultValue, $this->type);
+ }
+
+ return $defaultValue;
+ }
+
+ private function hasConfigValue()
+ {
+ $value = $this->getValueFromConfig();
+ return isset($value);
+ }
+
+ private function getValueFromConfig()
+ {
+ $config = Config::getInstance()->{$this->pluginName};
+
+ if (!empty($config) && array_key_exists($this->name, $config)) {
+ return $config[$this->name];
+ }
+ }
+
}
diff --git a/core/SettingsPiwik.php b/core/SettingsPiwik.php
index 7a50263e39..b0df27b2b6 100644
--- a/core/SettingsPiwik.php
+++ b/core/SettingsPiwik.php
@@ -186,7 +186,10 @@ class SettingsPiwik
// if URL changes, always update the cache
|| $currentUrl != $url
) {
- if (strlen($currentUrl) >= strlen('http://a/')) {
+ $host = Url::getHostFromUrl($url);
+
+ if (strlen($currentUrl) >= strlen('http://a/')
+ && !Url::isLocalHost($host)) {
self::overwritePiwikUrl($currentUrl);
}
$url = $currentUrl;
diff --git a/core/Tracker/Request.php b/core/Tracker/Request.php
index e714ecded7..b6f3163046 100644
--- a/core/Tracker/Request.php
+++ b/core/Tracker/Request.php
@@ -407,6 +407,10 @@ class Request
{
$this->params[$name] = $value;
unset($this->paramsCache[$name]);
+
+ if ($name === 'cdt') {
+ $this->cdtCache = null;
+ }
}
private function hasParam($name)
diff --git a/core/Twig.php b/core/Twig.php
index 06706d7b44..c3b6ba7414 100755
--- a/core/Twig.php
+++ b/core/Twig.php
@@ -87,6 +87,9 @@ class Twig
$this->addFilter_percentage();
$this->addFilter_percent();
$this->addFilter_percentEvolution();
+ $this->addFilter_piwikProAdLink();
+ $this->addFilter_piwikProOnPremisesAdLink();
+ $this->addFilter_piwikProCloudAdLink();
$this->addFilter_prettyDate();
$this->addFilter_safeDecodeRaw();
$this->addFilter_number();
@@ -104,6 +107,8 @@ class Twig
$this->twig->addTokenParser(new RenderTokenParser());
$this->addTest_false();
+ $this->addTest_true();
+ $this->addTest_emptyString();
}
private function addTest_false()
@@ -117,6 +122,28 @@ class Twig
$this->twig->addTest($test);
}
+ private function addTest_true()
+ {
+ $test = new Twig_SimpleTest(
+ 'true',
+ function ($value) {
+ return true === $value;
+ }
+ );
+ $this->twig->addTest($test);
+ }
+
+ private function addTest_emptyString()
+ {
+ $test = new Twig_SimpleTest(
+ 'emptyString',
+ function ($value) {
+ return '' === $value;
+ }
+ );
+ $this->twig->addTest($test);
+ }
+
protected function addFunction_getJavascriptTranslations()
{
$getJavascriptTranslations = new Twig_SimpleFunction(
@@ -258,6 +285,7 @@ class Twig
{
$rawSafeDecoded = new Twig_SimpleFilter('rawSafeDecoded', function ($string) {
$string = str_replace('+', '%2B', $string);
+ $string = str_replace('&nbsp;', html_entity_decode('&nbsp;'), $string);
return SafeDecodeLabel::decodeLabelSafe($string);
@@ -297,6 +325,49 @@ class Twig
$this->twig->addFilter($percentage);
}
+ protected function addFilter_piwikProAdLink()
+ {
+ $ads = $this->getPiwikProAdvertising();
+ $piwikProAd = new Twig_SimpleFilter('piwikProCampaignParameters', function ($url, $campaignName, $campaignMedium, $campaignContent = '') use ($ads) {
+ $url = $ads->addPromoCampaignParametersToUrl($url, $campaignName, $campaignMedium, $campaignContent);
+ return $url;
+ });
+ $this->twig->addFilter($piwikProAd);
+ }
+
+ protected function addFilter_piwikProOnPremisesAdLink()
+ {
+ $twigEnv = $this->getTwigEnvironment();
+ $ads = $this->getPiwikProAdvertising();
+ $piwikProAd = new Twig_SimpleFilter('piwikProOnPremisesPromoUrl', function ($medium, $content = '') use ($twigEnv, $ads) {
+
+ $url = $ads->getPromoUrlForOnPremises($medium, $content);
+
+ return twig_escape_filter($twigEnv, $url, 'html_attr');
+
+ }, array('is_safe' => array('html_attr')));
+ $this->twig->addFilter($piwikProAd);
+ }
+
+ protected function addFilter_piwikProCloudAdLink()
+ {
+ $twigEnv = $this->getTwigEnvironment();
+ $ads = $this->getPiwikProAdvertising();
+ $piwikProAd = new Twig_SimpleFilter('piwikProCloudPromoUrl', function ($medium, $content = '') use ($twigEnv, $ads) {
+
+ $url = $ads->getPromoUrlForCloud($medium, $content);
+
+ return twig_escape_filter($twigEnv, $url, 'html_attr');
+
+ }, array('is_safe' => array('html_attr')));
+ $this->twig->addFilter($piwikProAd);
+ }
+
+ private function getPiwikProAdvertising()
+ {
+ return StaticContainer::get('Piwik\PiwikPro\Advertising');
+ }
+
protected function addFilter_number()
{
$formatter = new Twig_SimpleFilter('number', function ($string, $minFractionDigits = 0, $maxFractionDigits = 0) {
diff --git a/core/Updates/2.1.1-b11.php b/core/Updates/2.1.1-b11.php
index 0d1ef47f3d..543ae284e8 100644
--- a/core/Updates/2.1.1-b11.php
+++ b/core/Updates/2.1.1-b11.php
@@ -94,7 +94,7 @@ class Updates_2_1_1_b11 extends Updates
foreach ($missingIdArchives as $missingIdArchive) {
$params[] = array_values($missingIdArchive);
}
- BatchInsert::tableInsertBatch($table, array_keys(reset($missingIdArchives)), $params, $throwException = false);
+ BatchInsert::tableInsertBatch($table, array_keys(reset($missingIdArchives)), $params, $throwException = false, $charset = 'latin1');
} catch (\Exception $ex) {
Updater::handleQueryError($ex, "<batch insert>", false, __FILE__);
}
diff --git a/core/Updates/2.16.0-rc2.php b/core/Updates/2.16.0-rc2.php
new file mode 100644
index 0000000000..2bddb6b5cb
--- /dev/null
+++ b/core/Updates/2.16.0-rc2.php
@@ -0,0 +1,28 @@
+<?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\Updates;
+
+use Piwik\Updater;
+use Piwik\Updates;
+
+class Updates_2_16_0_rc2 extends Updates
+{
+ public function doUpdate(Updater $updater)
+ {
+ $pluginManager = \Piwik\Plugin\Manager::getInstance();
+ $pluginName = 'PiwikPro';
+
+ try {
+ if (!$pluginManager->isPluginActivated($pluginName)) {
+ $pluginManager->activatePlugin($pluginName);
+ }
+ } catch (\Exception $e) {
+ }
+ }
+} \ No newline at end of file
diff --git a/core/Url.php b/core/Url.php
index a86978286a..2a301a9b46 100644
--- a/core/Url.php
+++ b/core/Url.php
@@ -551,6 +551,21 @@ class Url
&& in_array($parsedUrl['scheme'], array('http', 'https'));
}
+ /**
+ * Checks whether the given host is a local host like `127.0.0.1` or `localhost`.
+ *
+ * @param string $host
+ * @return bool
+ */
+ public static function isLocalHost($host)
+ {
+ if (empty($host)) {
+ return false;
+ }
+
+ return in_array($host, Url::getLocalHostnames(), true);
+ }
+
public static function getTrustedHostsFromConfig()
{
$hosts = self::getHostsFromConfig('General', 'trusted_hosts');
@@ -677,7 +692,6 @@ class Url
return array('localhost', '127.0.0.1', '::1', '[::1]');
}
-
/**
* @return bool
*/
diff --git a/core/View.php b/core/View.php
index bc8ccf075a..b57a7f553b 100644
--- a/core/View.php
+++ b/core/View.php
@@ -10,6 +10,7 @@ namespace Piwik;
use Exception;
use Piwik\AssetManager\UIAssetCacheBuster;
+use Piwik\Container\StaticContainer;
use Piwik\Plugins\UsersManager\API as APIUsersManager;
use Piwik\View\ViewInterface;
use Twig_Environment;
@@ -85,6 +86,7 @@ if (!defined('PIWIK_USER_PATH')) {
* which is outputted in the template, eg, `{{ postEvent('MyPlugin.event') }}`
* - **isPluginLoaded**: Returns true if the supplied plugin is loaded, false if otherwise.
* `{% if isPluginLoaded('Goals') %}...{% endif %}`
+ * - **arePiwikProAdsEnabled**: Returns true if it is ok to show some Piwik PRO advertising in the UI (from Piwik 2.16.0)
*
* ### Examples
*
@@ -226,7 +228,10 @@ class View implements ViewInterface
$this->latest_version_available = UpdateCheck::isNewestVersionAvailable();
$this->disableLink = Common::getRequestVar('disableLink', 0, 'int');
$this->isWidget = Common::getRequestVar('widget', 0, 'int');
-
+
+ $piwikProAds = StaticContainer::get('Piwik\PiwikPro\Advertising');
+ $this->arePiwikProAdsEnabled = $piwikProAds->arePiwikProAdsEnabled();
+
if (Development::isEnabled()) {
$cacheBuster = rand(0, 10000);
} else {
diff --git a/core/testMinimumPhpVersion.php b/core/testMinimumPhpVersion.php
index 31649f3117..19388d7bb1 100644
--- a/core/testMinimumPhpVersion.php
+++ b/core/testMinimumPhpVersion.php
@@ -144,7 +144,7 @@ if (!function_exists('Piwik_GetErrorMessagePage')) {
<li><a rel="noreferrer" target="_blank" href="http://piwik.org/faq/">Piwik Frequently Asked Questions</a></li>
<li><a rel="noreferrer" target="_blank" href="http://piwik.org/docs/">Piwik Documentation</a></li>
<li><a rel="noreferrer" target="_blank" href="http://forum.piwik.org/">Piwik Forums</a></li>
- <li><a rel="noreferrer" target="_blank" href="http://demo.piwik.org">Piwik Online Demo</a></li>
+ <li><a rel="noreferrer" target="_blank" href="https://piwik.pro/contact/?pk_campaign=App_AnErrorOccured&pk_source=Piwik_App&pk_medium=ProfessionalServicesLink#contact-form">Professional help (Piwik PRO)</a></li>
</ul>';
}
if ($optionalLinkBack) {
diff --git a/js/README.md b/js/README.md
index d24f8d8c9d..1d409cebff 100644
--- a/js/README.md
+++ b/js/README.md
@@ -22,6 +22,13 @@ The js/ folder contains:
attempt to block tracking, you can change your tracking code to use "js/"
instead of "piwik.js" and "piwik.php", respectively.
+ Note that in order for [Page Overlay](https://piwik.org/docs/page-overlay/) to work, the Piwik tracker method `setAPIUrl()` needs to be called with its parameter pointing to the root directory of Piwik. E.g.:
+
+ ```js
+ _paq.push(['setAPIUrl', u]);
+
+ ```
+
## Deployment
* piwik.js is minified using YUICompressor 2.4.2.
diff --git a/js/piwik.js b/js/piwik.js
index 773b38bf8d..64998cd0cd 100644
--- a/js/piwik.js
+++ b/js/piwik.js
@@ -957,7 +957,7 @@ if (typeof JSON2 !== 'object' && typeof window.JSON === 'object' && window.JSON.
/*global unescape */
/*global ActiveXObject */
/*members encodeURIComponent, decodeURIComponent, getElementsByTagName,
- shift, unshift, piwikAsyncInit,
+ shift, unshift, piwikAsyncInit, frameElement, self, hasFocus,
createElement, appendChild, characterSet, charset, all,
addEventListener, attachEvent, removeEventListener, detachEvent, disableCookies,
cookie, domain, readyState, documentElement, doScroll, title, text,
@@ -2727,6 +2727,18 @@ if (typeof Piwik !== 'object') {
);
}
+ function isInsideAnIframe () {
+ if (isDefined(windowAlias.frameElement)) {
+ return (windowAlias.frameElement && String(windowAlias.frameElement.nodeName).toLowerCase() === 'iframe');
+ }
+
+ try {
+ return windowAlias.self !== windowAlias.top;
+ } catch (e) {
+ return true;
+ }
+ }
+
/************************************************************
* End Page Overlay
************************************************************/
@@ -2913,6 +2925,11 @@ if (typeof Piwik !== 'object') {
// Guard against installing the activity tracker more than once per Tracker instance
heartBeatSetUp = false,
+ // bool used to detect whether this browser window had focus at least once. So far we cannot really
+ // detect this 100% correct for an iframe so whenever Piwik is loaded inside an iframe we presume
+ // the window had focus at least once.
+ hadWindowFocusAtLeastOnce = isInsideAnIframe(),
+
// Timestamp of last tracker request sent to Piwik
lastTrackerRequestTime = null,
@@ -3228,6 +3245,19 @@ if (typeof Piwik !== 'object') {
heartBeatTimeout = setTimeout(function heartBeat() {
heartBeatTimeout = null;
+
+ if (!hadWindowFocusAtLeastOnce) {
+ // if browser does not support .hasFocus (eg IE5), we assume that the window has focus.
+ hadWindowFocusAtLeastOnce = (!documentAlias.hasFocus || documentAlias.hasFocus());
+ }
+
+ if (!hadWindowFocusAtLeastOnce) {
+ // only send a ping if the tab actually had focus at least once. For example do not send a ping
+ // if window was opened via "right click => open in new window" and never had focus see #9504
+ heartBeatUp(configHeartBeatDelay);
+ return;
+ }
+
if (heartBeatPingIfActivityAlias()) {
return;
}
@@ -3253,6 +3283,8 @@ if (typeof Piwik !== 'object') {
}
function heartBeatOnFocus() {
+ hadWindowFocusAtLeastOnce = true;
+
// since it's possible for a user to come back to a tab after several hours or more, we try to send
// a ping if the page is active. (after the ping is sent, the heart beat timeout will be set)
if (heartBeatPingIfActivityAlias()) {
diff --git a/lang/ar.json b/lang/ar.json
index 3797ca84f3..0ba900d175 100644
--- a/lang/ar.json
+++ b/lang/ar.json
@@ -11,7 +11,7 @@
"And": "و",
"API": "واجهة تحكم التطبيقات",
"ArchivingInlineHelp": "للمواقع المتوسطة وعالية الزيارات، من المفضل تعطيل إطلاق الأرشفة من المتصفح. بدلاً من ذلك، فنحن نفضل ضبط Cron job لمعالجة Piwik كل ساعة.",
- "ArchivingTriggerDescription": "مفضل في حالة مواقع Piwik الكبيرة أن تقوم %sبضبط وظيفة %s لمعالجة التقارير آلياً.",
+ "ArchivingTriggerDescription": "مفضل في حالة مواقع Piwik الكبيرة أن تقوم %1$sبضبط وظيفة %2$s لمعالجة التقارير آلياً.",
"AuthenticationMethodSmtp": "أسلوب المصادقة لمزود SMTP",
"AverageOrderValue": "متوسط ​​قيمة الطلب",
"AveragePrice": "متوسط السعر",
@@ -21,10 +21,8 @@
"Cancel": "إلغاء",
"CannotUnzipFile": "لايمكن فك ضغط الملف %1$s: %2$s",
"ChangePassword": "تغيير كلمة المرور",
- "ChooseDate": "اختر التاريخ",
"ChooseLanguage": "اختر اللغة",
"ChoosePeriod": "اختر المدة",
- "ChooseWebsite": "اختر الموقع",
"ClickHere": "إضغط هنا لمزيد من المعلومات.",
"Close": "إغلاق",
"ColumnActionsPerVisit": "السلوكيات لكل زيارة",
@@ -51,7 +49,7 @@
"ColumnValuePerVisit": "القيمة لكل زيارة",
"ColumnVisitDuration": "مدة الزيارة (بالثواني)",
"ColumnVisitsWithConversions": "زيارات بفائدة",
- "ConfigFileIsNotWritable": "ملف إعدادات Piwik %s غير قابل للكتابة، بعض التغييرات التي قمت بها قد لا تكون محفوظة. %s الرجاء تغيير صلاحيات ملف الإعدادات بحيث تكون قابلة للكتابة.",
+ "ConfigFileIsNotWritable": "ملف إعدادات Piwik %1$s غير قابل للكتابة، بعض التغييرات التي قمت بها قد لا تكون محفوظة. %2$s الرجاء تغيير صلاحيات ملف الإعدادات بحيث تكون قابلة للكتابة.",
"ContinueToPiwik": "المتابعة إلى Piwik",
"CurrentMonth": "الشهر الحالي",
"CurrentWeek": "الأسبوع الحالي",
@@ -89,21 +87,21 @@
"ExceptionFilesizeMismatch": "خطأ في حجم الملف: %1$s (الحجم المتوقع: %2$s، الحجم الفعلي: %3$s).",
"ExceptionIncompatibleClientServerVersions": "%1$s إصدار عميلك %2$s والذي هو غير متوافق مع إصدار الخادم %3$s.",
"ExceptionInvalidArchiveTimeToLive": "زمن الأرشفة لليوم يجب أن يكون رقماً أكبر من الصفر حيث يمثل الثواني.",
- "ExceptionInvalidDateFormat": "يجب أن تكون صيغة التاريخ: %s أو أي كلمة استدلالية مدعومة بواسطة الدالة %s (انظر %s لمزيد من المعلومات).",
- "ExceptionInvalidDateRange": "التاريخ \"%s\" ليس بفترة صالحة في التقويم. يجب أن تكون على الصيغة التالية: %s.",
- "ExceptionInvalidPeriod": "الفترة \"%s\" غير مدعومة. حاول أياً من التالي بدلاً منها: %s.",
- "ExceptionInvalidRendererFormat": "الصيغة \"%s\" غير صحيحة. حاول أياً من التالي بدلاً منها: %s.",
- "ExceptionInvalidReportRendererFormat": "تهيئة التقرير '%s' غير صالحة. الرجاء تجربة أياً مما يلي كبديل: %s.",
+ "ExceptionInvalidDateFormat": "يجب أن تكون صيغة التاريخ: %1$s أو أي كلمة استدلالية مدعومة بواسطة الدالة %2$s (انظر %3$s لمزيد من المعلومات).",
+ "ExceptionInvalidDateRange": "التاريخ \"%1$s\" ليس بفترة صالحة في التقويم. يجب أن تكون على الصيغة التالية: %2$s.",
+ "ExceptionInvalidPeriod": "الفترة \"%1$s\" غير مدعومة. حاول أياً من التالي بدلاً منها: %2$s.",
+ "ExceptionInvalidRendererFormat": "الصيغة \"%1$s\" غير صحيحة. حاول أياً من التالي بدلاً منها: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "تهيئة التقرير '%1$s' غير صالحة. الرجاء تجربة أياً مما يلي كبديل: %2$s.",
"ExceptionInvalidToken": "المفتاح غير صالح.",
"ExceptionLanguageFileNotFound": "ملف اللغة \"%s\" غير موجود.",
- "ExceptionMethodNotFound": "النظام \"%s\" غير موجود أو غير متوافر في الموديول \"%s\".",
+ "ExceptionMethodNotFound": "النظام \"%1$s\" غير موجود أو غير متوافر في الموديول \"%2$s\".",
"ExceptionMissingFile": "ملف مفقود: %s",
"ExceptionNonceMismatch": "لم يمكن تعريف مفتاح الأمان في هذا النموذج.",
"ExceptionPrivilege": "لا يمكنك الوصول لهذا المورد، فهو يتطلب صلاحيات وصول %s.",
"ExceptionPrivilegeAccessWebsite": "لا يمكنك مشاهدة هذا المورد، فهو يتطلب صلاحيات وصول %s لموقع id=%d.",
"ExceptionPrivilegeAtLeastOneWebsite": "لا يمكنك الوصول لهذا المورد، فهو يتطلب صلاحيات وصول %s على الأقل لموقع واحد.",
"ExceptionUndeletableFile": "لم يمكن حذف %s",
- "ExceptionUnreadableFileDisabledMethod": "لم يمكن قراءة ملف الإعدادات (%s). قد يكون المستضيف قد عطل %s.",
+ "ExceptionUnreadableFileDisabledMethod": "لم يمكن قراءة ملف الإعدادات (%1$s). قد يكون المستضيف قد عطل %2$s.",
"Export": "تصدير",
"ExportAsImage": "تصدير كصورة",
"ExportThisReport": "تصدير البيانات في هيئة ملفات أخرى",
@@ -128,7 +126,7 @@
"Locale": "ar_EG.UTF-8",
"Logout": "تسحيل خروج",
"MainMetrics": "أهم مقاييس",
- "MediumToHighTrafficItIsRecommendedTo": "للمواقع متوسطة وعالية الزيارات، نفضل معالجة تقارير اليوم الحالي على الأكثر كل نصف ساعة (%s ثانية) أو كل ساعة (%s ثانية).",
+ "MediumToHighTrafficItIsRecommendedTo": "للمواقع متوسطة وعالية الزيارات، نفضل معالجة تقارير اليوم الحالي على الأكثر كل نصف ساعة (%1$s ثانية) أو كل ساعة (%2$s ثانية).",
"Metadata": "الفوقية",
"MetricsToPlot": "مقاييس لمؤامرة",
"MetricToPlot": "متري لرسم",
@@ -166,7 +164,7 @@
"OperationLessThan": "أقل من",
"OperationNotEquals": "لا يساوي",
"OptionalSmtpPort": "اختياري. الافتراضي 25 لاتصالات TLS SMTP غير المشفرة، و465 لاتصالات SSL SMTP المشفرة.",
- "OrCancel": "أو %s إلغاء %s",
+ "OrCancel": "أو %1$s إلغاء %2$s",
"Others": "أخرى",
"Outlinks": "الروابط الصادرة",
"Overview": "نظرة عامة",
@@ -198,7 +196,7 @@
"Save": "حفظ",
"SaveImageOnYourComputer": "لحفظ الصورة على جهازك، انقر بز الفأرة الأيمن واختر \"حفظ الصورة باسم\"...",
"Search": "بحث",
- "SeeTheOfficialDocumentationForMoreInformation": "انظر %sمستندات المساعدة الرسمية%s لمزيد من المعلومات.",
+ "SeeTheOfficialDocumentationForMoreInformation": "انظر %1$sمستندات المساعدة الرسمية%2$s لمزيد من المعلومات.",
"SelectYesIfYouWantToSendEmailsViaServer": "اختر \"نعم\" إذا كنت ترغب في أو يتوجب عليك إرسال البريد الإلكتروني من خلال مزود معين بدلاً من دالة البريد الإلكتروني المحلية.",
"Settings": "الإعدادات",
"SmallTrafficYouCanLeaveDefault": "للمواقع قليلة الزيارات، يمكنك ترك القيمة الافتراضية %s ثانية، ومراجعة التقارير في الوقت الحقيقي.",
@@ -233,7 +231,7 @@
"Warning": "تنبيه",
"WarningFileIntegrityNoManifest": "لم يمكن إجراء فحص سلامة الملفات بسبب فقد ملف manifest.inc.php.",
"WarningFileIntegrityNoMd5file": "لم يمكن إتمام فحص سلامة الملفات بسبب فقد دالة md5_file().",
- "WarningPasswordStored": "%sتنبيه:%s سيتم حفظ كلمة المرور هذه في ملف الإعدادات وظاهرة لأياً كان ممن يمكنه الوصول إليه.",
+ "WarningPasswordStored": "%1$sتنبيه:%2$s سيتم حفظ كلمة المرور هذه في ملف الإعدادات وظاهرة لأياً كان ممن يمكنه الوصول إليه.",
"Website": "الموقع",
"Weekly": "أسبوعي",
"Widgets": "الإضافات",
@@ -258,6 +256,7 @@
"EnableGraphsLabel": "إعرض الرسوم",
"EvolutionGraph": "رسم التاريخ",
"HowtoDeleteAnAccount": "إضغط باستمرار لحذف حسابٍ ما",
+ "HowtoDeleteAnAccountOniOS": "مرّر من اليمين لليسار لتحذف حساباً",
"HowtoLoginAnonymous": "أترك اسم المسخدم وكلمة المرور فارغين للدخول المجهول",
"HttpTimeout": "مهلة HTTP",
"LastUpdated": "آخر تحديث: %s",
@@ -271,7 +270,7 @@
"AvailableMetrics": "المقاييس المتوفرة",
"CompareRows": "قارن السجلات",
"ComparingRecords": "مقارنة %s صفوف",
- "MetricBetweenText": "من %s إلى %s",
+ "MetricBetweenText": "من %1$s إلى %2$s",
"MetricChangeText": "%s التغير خلال المدة",
"PickARow": "إختر صفاً للمقارنة"
}
diff --git a/lang/be.json b/lang/be.json
index e63340cbdb..6d20136fc0 100644
--- a/lang/be.json
+++ b/lang/be.json
@@ -8,7 +8,7 @@
"AllWebsitesDashboard": "Галоўная панэль ўсіх вэб-сайтаў",
"API": "API-функцыі",
"ArchivingInlineHelp": "Для сайтаў з сярэднім і высокім трафікам, рэкамендуецца адключыць функцыю архівавання Piwik для запуску з браўзэра.",
- "ArchivingTriggerDescription": "Рэкамендуецца для Piwik на сайтах з высокім трафікам, патрэбна %sўсталяваць заданне для крону%s для аўтаматычнай апрацоўкі справаздач.",
+ "ArchivingTriggerDescription": "Рэкамендуецца для Piwik на сайтах з высокім трафікам, патрэбна %1$sўсталяваць заданне для крону%2$s для аўтаматычнай апрацоўкі справаздач.",
"AuthenticationMethodSmtp": "Метад праверкі сапраўднасці для SMTP",
"AverageOrderValue": "Сярэдні кошт замоў",
"AveragePrice": "Сярэднш кошт",
@@ -17,10 +17,8 @@
"BrokenDownReportDocumentation": "Яна разбіта на некалькі справаздач, якія адлюстроўваюцца ў спарклайны ў ніжняй частцы старонкі. Вы можаце павялічыць графікі, націснуўшы на справаздачу, якую вы хацелі б бачыць.",
"ChangePassword": "Змяніць пароль",
"ChangeTagCloudView": "Калі ласка, звярніце ўвагу на то, што вы можаце прагледзець справаздачу не толькі як воблака тэгаў. Каб зрабіць гэта, выкарыстоўвайце элементы кіравання ў ніжняй частцы справаздачы.",
- "ChooseDate": "Выберыце дату",
"ChooseLanguage": "Абярыце мову",
"ChoosePeriod": "Абярыце перыяд",
- "ChooseWebsite": "Абярыце вэб-сайт",
"ClickHere": "Націсніце тут для атрымання дадатковай інфармацыі.",
"Close": "Зачыніць",
"ColumnActionsPerVisit": "Дзеянні за наведванне",
@@ -64,7 +62,7 @@
"ColumnValuePerVisit": "Прыбытак за кожнае наведванне",
"ColumnVisitDuration": "Працягласць наведвання (у секундах)",
"ColumnVisitsWithConversions": "Наведванні з канверсіяй",
- "ConfigFileIsNotWritable": "Файл канфігурацыі Piwik %s недаступны для запісу, некаторыя з Вашых змяненняў могуць быць не захованы. %s Калі ласка, змяніце дазвол канфігурацыйнага файла, каб зрабіць яго даступным для запісу.",
+ "ConfigFileIsNotWritable": "Файл канфігурацыі Piwik %1$s недаступны для запісу, некаторыя з Вашых змяненняў могуць быць не захованы. %2$s Калі ласка, змяніце дазвол канфігурацыйнага файла, каб зрабіць яго даступным для запісу.",
"ContinueToPiwik": "Перайсці да Piwik",
"CurrentMonth": "Бягучы месяц",
"CurrentWeek": "Бягучы тыдзень",
@@ -75,7 +73,7 @@
"Date": "Дата",
"DateRange": "Дыяпазон дат:",
"DateRangeFrom": "Ад",
- "DateRangeFromTo": "Ад %s Да %s",
+ "DateRangeFromTo": "Ад %1$s Да %2$s",
"DateRangeTo": "Да",
"DaysHours": "%1$s дзён %2$s гадзін",
"DaysSinceFirstVisit": "Лік дзён з даты першага наведвання",
@@ -105,16 +103,16 @@
"ExceptionFileIntegrity": "Праверка цэласнасці не ўдалася: %s",
"ExceptionFilesizeMismatch": "Неадпаведнасць памеру файла: %1$s (чаканы памер: %2$s, атрыманы памер: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Ваш кліент %1$s версіі %2$s несумяшчальнs з версіяй сервера %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Сукупны фармат справаздач '%s' несапраўдныя. Паспрабуйце любы з наступных замест: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Сукупны фармат справаздач '%1$s' несапраўдныя. Паспрабуйце любы з наступных замест: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Сённяшни архіўны час павинен быць колькасцю секунд больш за нуль",
- "ExceptionInvalidDateFormat": "Фармат даты павінен быць: %s, або на любое ключавое слова, падтрымліваемае функцыяй %s (глядзі %s для больш падрабязнай інфармацыі)",
- "ExceptionInvalidDateRange": "Дата - '%s' - няправільны дыяпазон дат. Ён павінен мець наступны фармат: %s.",
- "ExceptionInvalidPeriod": "Перыяд '%s' не падтрымліваецца. Паспрабуйце любы з наступных замест перыяда: %s",
- "ExceptionInvalidRendererFormat": "Фармат рэндара '%s' не падтрымліваецца. Паспрабуйце любы з наступных замест рэндара: %s",
- "ExceptionInvalidReportRendererFormat": "Фармат справаздачы '%s' не падтрымліваецца. Паспрабуйце любы з наступных замест справаздачы: %s",
+ "ExceptionInvalidDateFormat": "Фармат даты павінен быць: %1$s, або на любое ключавое слова, падтрымліваемае функцыяй %2$s (глядзі %3$s для больш падрабязнай інфармацыі)",
+ "ExceptionInvalidDateRange": "Дата - '%1$s' - няправільны дыяпазон дат. Ён павінен мець наступны фармат: %2$s.",
+ "ExceptionInvalidPeriod": "Перыяд '%1$s' не падтрымліваецца. Паспрабуйце любы з наступных замест перыяда: %2$s",
+ "ExceptionInvalidRendererFormat": "Фармат рэндара '%1$s' не падтрымліваецца. Паспрабуйце любы з наступных замест рэндара: %2$s",
+ "ExceptionInvalidReportRendererFormat": "Фармат справаздачы '%1$s' не падтрымліваецца. Паспрабуйце любы з наступных замест справаздачы: %2$s",
"ExceptionInvalidToken": "Маркер з'яўляецца няправільным.",
"ExceptionLanguageFileNotFound": "Моўны файл '%s' не знойдзены.",
- "ExceptionMethodNotFound": "Метад '%s' не існуе ці не даступны ў модулі '%s'.",
+ "ExceptionMethodNotFound": "Метад '%1$s' не існуе ці не даступны ў модулі '%2$s'.",
"ExceptionMissingFile": "Адсутнічае файл: %s",
"ExceptionNonceMismatch": "Не атрымалася праверыць токэн бяспекі ў гэтай форме.",
"ExceptionPrivilege": "Вы не можаце атрымаць доступ да гэтага рэсурсу, таму што ён патрабуе %s доступ.",
@@ -122,7 +120,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Вы не можаце атрымаць доступ да гэтага рэсурсу, таму што ён патрабуе %s доступ, па меншай меры аднаго вэб-сайта.",
"ExceptionUnableToStartSession": "Немагчыма запусціць сесію.",
"ExceptionUndeletableFile": "Немагчыма выдаліць %s",
- "ExceptionUnreadableFileDisabledMethod": "Файл канфігурацыі {%s} не можа быць прачытаны. Магчыма ваш хост адключыў %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Файл канфігурацыі {%1$s} не можа быць прачытаны. Магчыма ваш хост адключыў %2$s.",
"Export": "Экспартаваць",
"ExportAsImage": "Экспартаваць у малюнак",
"ExportThisReport": "Экспартаваць гэты набор дадзеных у іншыя фарматы",
@@ -149,7 +147,7 @@
"Locale": "be_BY.UTF-8",
"Logout": "Выйсці",
"MainMetrics": "Галоўная метрыкі",
- "MediumToHighTrafficItIsRecommendedTo": "Для вэб-сайтаў з сярэднім і высокім трафікам, мы рэкамендуем апрацоўваць справаздачы на сённяшні дзень не больш чым праз кожныя паўгадзіны (%s секунд) або кожную гадзіну (%s секунд).",
+ "MediumToHighTrafficItIsRecommendedTo": "Для вэб-сайтаў з сярэднім і высокім трафікам, мы рэкамендуем апрацоўваць справаздачы на сённяшні дзень не больш чым праз кожныя паўгадзіны (%1$s секунд) або кожную гадзіну (%2$s секунд).",
"Metadata": "Метададзеныя",
"MetricsToPlot": "Метрыкі для пабудовы",
"MetricToPlot": "Метрычная пабудаваць",
@@ -178,13 +176,13 @@
"OnlyUsedIfUserPwdIsSet": "Выкарыстоўваецца толькі калі імя карыстальніка \/ пароль ўстаноўлены. Калі вы не ўпэўненыя, які метад выкарыстаць, папытаеце вашага правайдэра.",
"OpenSourceWebAnalytics": "Вэб аналітыка з адчыненым кодам",
"OptionalSmtpPort": "Неабавязкова. Па змаўчанні - 25 - для незашыфраваных злучэнняў і TLS SMTP. 465 - для зашыфраваных і SSL SMTP.",
- "OrCancel": "або %s Адмена %s",
+ "OrCancel": "або %1$s Адмена %2$s",
"Others": "Іншыя",
"Outlink": "Аутлінк",
"Outlinks": "Знешнія спасылкі",
"Overview": "Агляд",
"Pages": "Старонкі",
- "ParameterMustIntegerBetween": "Параметр %s павінна быць цэлае лік у дыяпазоне ад %s і %s",
+ "ParameterMustIntegerBetween": "Параметр %1$s павінна быць цэлае лік у дыяпазоне ад %2$s і %3$s",
"Password": "Пароль",
"Period": "Перыяд",
"Piechart": "Кругавая дыяграма",
@@ -212,7 +210,7 @@
"Save": "Захаваць",
"SaveImageOnYourComputer": "Каб захаваць малюнак на ваш кампутар, націсніце правай кнопкай мышы на малюнак і абярыце \"Захаваць малюнак як…\"",
"Search": "Пошук",
- "SeeTheOfficialDocumentationForMoreInformation": "Глядзіце %sафіцыйную дакументацыю%s для атрымання падрабязнай інфармацыі.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Глядзіце %1$sафіцыйную дакументацыю%2$s для атрымання падрабязнай інфармацыі.",
"SelectYesIfYouWantToSendEmailsViaServer": "Адзначце \"Так\" калі патрэбна адправіць электронную пошту праз імянны сервер, замест выкарысання лакальнай паштовай функціі",
"Settings": "Наладкі",
"Shipping": "Дастаўка",
@@ -253,7 +251,7 @@
"Warning": "Увага",
"WarningFileIntegrityNoManifest": "Праверка цэласнасці файлаў не можа быць выканана з-за адсутнасці файла manifest.inc.php.",
"WarningFileIntegrityNoMd5file": "Праверка цэласнасці файлаў не можа быць завершана з-за адсутнасці md5_file () функцыі.",
- "WarningPasswordStored": "%sWarning:%s Гэты пароль будзе захаваны ў файле канфігурацыі, ен будзе бачным ўсім, хто мае да яго доступ.",
+ "WarningPasswordStored": "%1$sWarning:%2$s Гэты пароль будзе захаваны ў файле канфігурацыі, ен будзе бачным ўсім, хто мае да яго доступ.",
"Website": "Сайт",
"Weekly": "Штотыдзень",
"Widgets": "Віджэты",
diff --git a/lang/bg.json b/lang/bg.json
index b1e7601900..902bbfb91d 100644
--- a/lang/bg.json
+++ b/lang/bg.json
@@ -12,7 +12,7 @@
"And": "и",
"API": "API",
"ArchivingInlineHelp": "За сайтовете със среден или висок трафик, препоръчваме да изключите Piwik архивиране след гледане от браузър. Съветваме ви в този случай да използвате cron job за Вашите доклади на всеки час.",
- "ArchivingTriggerDescription": "За по-големи Piwik инсталации, се препоръчва %scron job%s за автоматични доклади.",
+ "ArchivingTriggerDescription": "За по-големи Piwik инсталации, се препоръчва %1$scron job%2$s за автоматични доклади.",
"AuthenticationMethodSmtp": "Удостоверен метод за SMTP",
"AverageOrderValue": "Средна стойност на поръчка",
"AveragePrice": "Средна цена",
@@ -24,10 +24,8 @@
"CannotUnzipFile": "Не може да се разархивира файл %1$s: %2$s",
"ChangePassword": "Смяна на парола",
"ChangeTagCloudView": "Моля, имайте предвид, че можете да видите доклада и по други начини, освен като облак от етикети. За целта, използвайте знаците в долната част на доклада.",
- "ChooseDate": "Изберете дата",
"ChooseLanguage": "Избери език",
"ChoosePeriod": "Избери период",
- "ChooseWebsite": "Избери уеб сайт",
"ClickHere": "Кликнете тук за повече информация.",
"ClickToChangePeriod": "Натисни отново за да смениш периода.",
"Close": "Затваряне",
@@ -80,7 +78,7 @@
"ColumnViewedAfterSearchDocumentation": "Броят пъти, в който тази страница е била посетена, след като посетител е извършил търсене във вашия сайт и е щракнал върху връзка от списъка с резултати.",
"ColumnVisitDuration": "Продължителност на посещение (в секунди)",
"ColumnVisitsWithConversions": "Посещения с Конверсия",
- "ConfigFileIsNotWritable": "Конфигурационният файл %s на Piwik не е достъпен и Вашите настройки няма да бъдат запазени. %s Моля променете правата на файла, така, че да може да се пише в него.",
+ "ConfigFileIsNotWritable": "Конфигурационният файл %1$s на Piwik не е достъпен и Вашите настройки няма да бъдат запазени. %2$s Моля променете правата на файла, така, че да може да се пише в него.",
"Continue": "Продължи",
"ContinueToPiwik": "Продължете към Piwik",
"CurrentMonth": "Този месец",
@@ -96,7 +94,7 @@
"Date": "Дата",
"DateRange": "Период от време:",
"DateRangeFrom": "От",
- "DateRangeFromTo": "От %s до %s",
+ "DateRangeFromTo": "От %1$s до %2$s",
"DateRangeTo": "До",
"DaysHours": "%1$s дни %2$s часа",
"DaysSinceFirstVisit": "Дни след първото посещение",
@@ -137,17 +135,17 @@
"ExceptionFileIntegrity": "Цялостната проверка неуспешна: %s",
"ExceptionFilesizeMismatch": "Размерът на файла не съответства: %1$s (очаквана дължина: %2$s, намерен: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Вашата %1$s клиентска версия е %2$s ,която е несъвместима с версията на сървъра %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Формат на обобщените доклади '%s' не е валиден. Опитайте някое от следните вместо това: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Формат на обобщените доклади '%1$s' не е валиден. Опитайте някое от следните вместо това: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Днес времето за живот на архива трябва да бъде число в секунди по-голямо от нула",
- "ExceptionInvalidDateFormat": "Формата на датата трябва да е: %s или ключова дума, поддържана от %s функция (виж %s за повече информация)",
- "ExceptionInvalidDateRange": "Датата '%s' не е правилен период от време. Тя трябва да има следния формат: %s.",
- "ExceptionInvalidPeriod": "Периодът '%s' не се поддържа. Опитайте някоя от следните вместо това: %s",
- "ExceptionInvalidRendererFormat": "Renderer формат '%s' не е валиден. Опитайте някоя от следните вместо това: %s.",
- "ExceptionInvalidReportRendererFormat": "Формат на доклада '%s' не е валиден. Опитайте вместо това някое от следните: %s.",
- "ExceptionInvalidStaticGraphType": "Графика от типа '%s' не е валидна. Опитайте вместо това някое от следните: %s.",
+ "ExceptionInvalidDateFormat": "Формата на датата трябва да е: %1$s или ключова дума, поддържана от %2$s функция (виж %3$s за повече информация)",
+ "ExceptionInvalidDateRange": "Датата '%1$s' не е правилен период от време. Тя трябва да има следния формат: %2$s.",
+ "ExceptionInvalidPeriod": "Периодът '%1$s' не се поддържа. Опитайте някоя от следните вместо това: %2$s",
+ "ExceptionInvalidRendererFormat": "Renderer формат '%1$s' не е валиден. Опитайте някоя от следните вместо това: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Формат на доклада '%1$s' не е валиден. Опитайте вместо това някое от следните: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Графика от типа '%1$s' не е валидна. Опитайте вместо това някое от следните: %2$s.",
"ExceptionInvalidToken": "Знакът не е валиден.",
"ExceptionLanguageFileNotFound": "Езиковия файл '%s' не бе намерен.",
- "ExceptionMethodNotFound": "Методът '%s' не съществува или не е наличен в модулът '%s'.",
+ "ExceptionMethodNotFound": "Методът '%1$s' не съществува или не е наличен в модулът '%2$s'.",
"ExceptionMissingFile": "Липсващ файл: %s",
"ExceptionNonceMismatch": "Не може да се провери кода за сигурност на тази форма.",
"ExceptionPrivilege": "Нямате достъп до този ресурс, тъй като изисква %s достъп.",
@@ -155,7 +153,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Нямате достъп до този ресурс, тъй като изисква %s достъп в продължение на поне една Интернет страница.",
"ExceptionUnableToStartSession": "Невъзможно е да се стартира сесия.",
"ExceptionUndeletableFile": "Не мога да изтрия %s",
- "ExceptionUnreadableFileDisabledMethod": "Конфигурационния файл {%s} не може да бъде прочетен. Вашият хостинг може да е забранил %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Конфигурационния файл {%1$s} не може да бъде прочетен. Вашият хостинг може да е забранил %2$s.",
"ExceptionReportNotFound": "Заявения отчет не съществува.",
"ExceptionWidgetNotFound": "Заявената от вас джаджа не съществува.",
"ExpandDataTableFooter": "Промяна на визуализацията или конфигуриране на доклада",
@@ -202,7 +200,7 @@
"Logout": "Изход",
"MainMetrics": "Главни метрики",
"Matches": "Съвпадения",
- "MediumToHighTrafficItIsRecommendedTo": "За среден до висок трафик на сайтове, ние препоръчваме да обработвате докладите за днес на всеки половин час (%s секунди) или всеки час (%s секунди).",
+ "MediumToHighTrafficItIsRecommendedTo": "За среден до висок трафик на сайтове, ние препоръчваме да обработвате докладите за днес на всеки половин час (%1$s секунди) или всеки час (%2$s секунди).",
"Metadata": "Мета данни",
"Metric": "Метрика",
"Metrics": "Метрики",
@@ -256,16 +254,16 @@
"OperationNotEquals": "Еквивалентно на",
"OptionalSmtpPort": "Не е задължително. По подразбиране е 25 за некриптиран и TLS SMTP, и 465 за SSL SMTP.",
"Options": "Настройки",
- "OrCancel": "или %s Затвори %s",
+ "OrCancel": "или %1$s Затвори %2$s",
"Others": "Други",
"Outlink": "Външна връзка",
"Outlinks": "Изходящи",
"OverlayRowActionTooltip": "Вижте анализите директно от сайта си (отваря нов подпрозорец)",
"Overview": "Общ преглед",
"Pages": "Страници",
- "Pagination": "%s - %s като %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Параметърът %s трябва да има цифрова стойност от %s до %s.",
+ "Pagination": "%1$s - %2$s като %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Параметърът %1$s трябва да има цифрова стойност от %2$s до %3$s.",
"Password": "Парола",
"Period": "Период",
"Piechart": "Диаграма",
@@ -315,7 +313,7 @@
"Clear": "Изчисти",
"SearchNoResults": "Няма резултати",
"SeeAll": "вижте всички",
- "SeeTheOfficialDocumentationForMoreInformation": "Прегледайте %sofficial documentation%s за повече информация",
+ "SeeTheOfficialDocumentationForMoreInformation": "Прегледайте %1$sofficial documentation%2$s за повече информация",
"SeeThisFaq": "Вижте %1$sтези често задавани въпроси%2$s.",
"Segment": "Сегмент",
"SelectYesIfYouWantToSendEmailsViaServer": "Изберете \"Да\", ако желаете, или изпратете електронна поща чрез именуван сървър, вместо да ползвате локално mail функцията.",
@@ -370,7 +368,7 @@
"WarningFileIntegrityNoManifest": "Цялостната проверка на файла не може да бъде изпълнена поради липсата на manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "В случай, че Piwik се внедрява посредством Git, е нормално това съобщение да се появява.",
"WarningFileIntegrityNoMd5file": "Цялостната проверка не може да бъде осъществена поради липсата на md5_file() функцията.",
- "WarningPasswordStored": "%sВнимание:%s Тази парола ще се съхранява в конфигурационния файл видими за всички, които я ползват.",
+ "WarningPasswordStored": "%1$sВнимание:%2$s Тази парола ще се съхранява в конфигурационния файл видими за всички, които я ползват.",
"Website": "Уебсайт",
"Weekly": "Ежеседмично",
"WeeklyReport": "седмично",
@@ -438,7 +436,7 @@
"RatingDontRemindMe": "Не ми напомняй",
"RatingNotNow": "Не сега",
"RatingNow": "ОК, ще го оценя сега",
- "RatingPleaseRateUs": "Piwik Mobile е свободен софтуер, ето защо ние наистина ще сме Ви благодарни, ако отделите една минута, за да оцените приложението в %s. Ако имате предложения за нови функции или желаете да съобщите за проблем, моля свържете се с нас %s",
+ "RatingPleaseRateUs": "Piwik Mobile е свободен софтуер, ето защо ние наистина ще сме Ви благодарни, ако отделите една минута, за да оцените приложението в %1$s. Ако имате предложения за нови функции или желаете да съобщите за проблем, моля свържете се с нас %2$s",
"ReleaseToRefresh": "Освободете за да се обнови...",
"Reloading": "Презареждане…",
"RequestTimedOutShort": "Мрежова грешка за изтекла сесия",
@@ -461,7 +459,7 @@
"AvailableMetrics": "Налични метрики",
"CompareRows": "Сравняване на записи",
"ComparingRecords": "Сравнявайки %s редове",
- "MetricBetweenText": "между %s и %s",
+ "MetricBetweenText": "между %1$s и %2$s",
"MetricChangeText": "%s промени през периода",
"MetricMinMax": "%1$s варират между %2$s и %3$s за периода",
"MetricsFor": "Метрики за %s",
diff --git a/lang/bn.json b/lang/bn.json
index e70de75911..26171b9eda 100644
--- a/lang/bn.json
+++ b/lang/bn.json
@@ -7,7 +7,7 @@
"Daily": "দৈনিক",
"Date": "তারিখ",
"DateRangeFrom": "থেকে",
- "DateRangeFromTo": "থেকে %s পর্যন্ত %s",
+ "DateRangeFromTo": "থেকে %1$s পর্যন্ত %2$s",
"DateRangeTo": "পর্যন্ত",
"Delete": "মুছে ফেলুন",
"Description": "বিবরণ",
@@ -38,7 +38,7 @@
"NewVisitor": "নতুন পরিদর্শনকারী",
"No": "না",
"Ok": "ঠিক আছে",
- "OrCancel": "অথবা %s পরিবর্তন করুন %s",
+ "OrCancel": "অথবা %1$s পরিবর্তন করুন %2$s",
"Plugin": "প্লাগইন",
"Plugins": "প্লাগইনসমূহ",
"Price": "মূল্য",
diff --git a/lang/bs.json b/lang/bs.json
index e8bd4dec24..595cc30d3c 100644
--- a/lang/bs.json
+++ b/lang/bs.json
@@ -10,7 +10,7 @@
"And": "i",
"API": "API",
"ArchivingInlineHelp": "Za web stranice koje imaju veću posjećenost preporučeno je isključiti Piwik arhiviranje pokretača iz browsera. Umjesto toga, preporučujemo cron job koji se procesira svaki sat.",
- "ArchivingTriggerDescription": "Preporučeno za veće Piwik instalacije, moraš %s postaviti cron job%s da procesiras reporte automatski.",
+ "ArchivingTriggerDescription": "Preporučeno za veće Piwik instalacije, moraš %1$s postaviti cron job%2$s da procesiras reporte automatski.",
"AuthenticationMethodSmtp": "Metoda provjere za SMTP",
"AverageOrderValue": "Prosječna vrijednost narudžbe",
"AveragePrice": "Prosječna cijena",
@@ -20,10 +20,8 @@
"BrokenDownReportDocumentation": "Razlomljeno je u različite reporte koji su prikazani na dnu stranice. Možete povećati grafikone klikanjem na reporte koje biste voljeli vidjeti.",
"Cancel": "Otkaži",
"ChangeTagCloudView": "Molimo zapamtite, možete vidjeti reporte na druge načine pored oblaka sa etiketama. Koristite kontrole na dnu reporta da to uradite.",
- "ChooseDate": "Izaberi datum",
"ChooseLanguage": "Izaberite jezik",
"ChoosePeriod": "Izaberite period",
- "ChooseWebsite": "Izaberite web sajt",
"ClickHere": "Klikni ovdje za više informacija",
"Close": "Zatvori",
"ColumnActionsPerVisit": "Akcije po posjeti",
@@ -65,7 +63,7 @@
"ColumnValuePerVisit": "Zarada po posjeti",
"ColumnVisitDuration": "Trajanje posjete (u sekundama)",
"ColumnVisitsWithConversions": "Posjete sa konverzijom",
- "ConfigFileIsNotWritable": "Piwik konfiguracijski fajl %s nije otvoren za pisanje i neke promjene se neće sačuvati. %s molimo promijenite postavke (permissions) kako bi config file bio dostupan za pisanje.",
+ "ConfigFileIsNotWritable": "Piwik konfiguracijski fajl %1$s nije otvoren za pisanje i neke promjene se neće sačuvati. %2$s molimo promijenite postavke (permissions) kako bi config file bio dostupan za pisanje.",
"CurrentMonth": "Trenutni mjesec",
"CurrentWeek": "Trenutna sedmica",
"CurrentYear": "Trenutna godina",
@@ -78,7 +76,7 @@
"Date": "Datum",
"DateRange": "Raspon datuma:",
"DateRangeFrom": "Iz",
- "DateRangeFromTo": "Iz %s u %s",
+ "DateRangeFromTo": "Iz %1$s u %2$s",
"DateRangeTo": "U",
"DaysHours": "%1$s dani %2$s sati",
"DaysSinceFirstVisit": "Dani nakon prve posjete",
@@ -109,17 +107,17 @@
"ExceptionFileIntegrity": "Integracijska provjera je zaustavljena: %s",
"ExceptionFilesizeMismatch": "Veličina fajla nevažeća: %1$s (očekivana veličina: %2$s, pronađeno: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Vaša %1$s klijent verzija je %2$s i nije kompatibilna sa verzijom servija %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Skupljeni reporti u formatu '%s' nisu važeći. Probajte jedan od ovih umjesto toga: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Skupljeni reporti u formatu '%1$s' nisu važeći. Probajte jedan od ovih umjesto toga: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Današnje vrijeme arhiviranja mora biti u sekundama više od nule.",
- "ExceptionInvalidDateFormat": "Format datuma mora biti: %s ili bilo koja ključna riječa podržana od %s funkcije (vidi %s za više informacija)",
- "ExceptionInvalidDateRange": "Datum '%s' nije važeći raspon datuma. Probajte jedan od ovih umjesto toga: %s.",
- "ExceptionInvalidPeriod": "Period '%s' nije podržan. Probajte jedan od ovih umjesto toga: %s.",
- "ExceptionInvalidRendererFormat": "Format prikazivača (renderer) '%s' nije važeći. Molimo probajte ponovo sa: %s.",
- "ExceptionInvalidReportRendererFormat": "Format reporta '%s' nije važeći. Probajte jedan od ovih: %s.",
- "ExceptionInvalidStaticGraphType": "Statički grafikon tipa '%s' nije važeći. Probajte jedan od ovih umjesto toga: %s.",
+ "ExceptionInvalidDateFormat": "Format datuma mora biti: %1$s ili bilo koja ključna riječa podržana od %2$s funkcije (vidi %3$s za više informacija)",
+ "ExceptionInvalidDateRange": "Datum '%1$s' nije važeći raspon datuma. Probajte jedan od ovih umjesto toga: %2$s.",
+ "ExceptionInvalidPeriod": "Period '%1$s' nije podržan. Probajte jedan od ovih umjesto toga: %2$s.",
+ "ExceptionInvalidRendererFormat": "Format prikazivača (renderer) '%1$s' nije važeći. Molimo probajte ponovo sa: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Format reporta '%1$s' nije važeći. Probajte jedan od ovih: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Statički grafikon tipa '%1$s' nije važeći. Probajte jedan od ovih umjesto toga: %2$s.",
"ExceptionInvalidToken": "Token (žeton) nije važeći.",
"ExceptionLanguageFileNotFound": "Fajl jezika '%s' nije pronađen.",
- "ExceptionMethodNotFound": "Metoda '%s' ne postoji ili nije dostupna modulu '%s'.",
+ "ExceptionMethodNotFound": "Metoda '%1$s' ne postoji ili nije dostupna modulu '%2$s'.",
"ExceptionMissingFile": "Nedostajući fajl: %s",
"ExceptionNonceMismatch": "Nemogućnost provjere sigurnosti uzete sa ove forme.",
"ExceptionPrivilege": "Ne možeš dostupiti ovim resursima jer zahtijeva %s pristup.",
@@ -127,7 +125,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Ne možeš pristupiti ovim resursima pošto zahtijeva %s pristup za barem jednu web stranicu.",
"ExceptionUnableToStartSession": "Nije moguće pokrenuti sesiju.",
"ExceptionUndeletableFile": "Nije moguće izbrisati %s",
- "ExceptionUnreadableFileDisabledMethod": "Konfigracijski fajl {%s} nije moguće čitati. Vaš host mora onesposobiti %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Konfigracijski fajl {%1$s} nije moguće čitati. Vaš host mora onesposobiti %2$s.",
"Export": "Exportiraj",
"ExportAsImage": "Exportiraj kao sliku",
"ExportThisReport": "Exportiraj skup podataka u drugim formatima",
@@ -159,7 +157,7 @@
"Locale": "bs_BA.UTF-8",
"Logout": "Izloguj se",
"MainMetrics": "Glavne metrike",
- "MediumToHighTrafficItIsRecommendedTo": "Za stranice sa većom posjećenosti preporučujemo da se reporti procesiraju najviše svakih pola sata (%s sekundi) ili svakog sata (%s sekundi)",
+ "MediumToHighTrafficItIsRecommendedTo": "Za stranice sa većom posjećenosti preporučujemo da se reporti procesiraju najviše svakih pola sata (%1$s sekundi) ili svakog sata (%2$s sekundi)",
"Metadata": "Metadata",
"Metric": "Metrika",
"Metrics": "Metrike",
@@ -206,13 +204,13 @@
"OperationNotEquals": "nije jednako",
"OptionalSmtpPort": "Optimalno default je 25 za nekriptovano i TLS SMTP i 465 za SSL SMTP.",
"Options": "Opcije",
- "OrCancel": "ili %s otkaži %s",
+ "OrCancel": "ili %1$s otkaži %2$s",
"Others": "Drugo",
"Outlink": "Izlazeći link",
"Outlinks": "Izlazni linkovi",
"Overview": "Pregled",
"Pages": "Stranice",
- "ParameterMustIntegerBetween": "Parameter %s mora biti cijela vrijednost broja između %s i %s",
+ "ParameterMustIntegerBetween": "Parameter %1$s mora biti cijela vrijednost broja između %2$s i %3$s",
"Password": "Lozinka",
"Period": "Period",
"Piechart": "Pita grafikon",
@@ -250,7 +248,7 @@
"SaveImageOnYourComputer": "Da sačuvaš sliku na računar, klikni desni klik na sliku i klikni \"Save Image As...\"",
"Search": "Traži",
"SeeAll": "pogledaj sve",
- "SeeTheOfficialDocumentationForMoreInformation": "Vidi the %sofficial documentation%s za više informacija.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Vidi the %1$sofficial documentation%2$s za više informacija.",
"SelectYesIfYouWantToSendEmailsViaServer": "Izaberite \"Da\" ako želite da pošaljete e-mail preko servera umjesto lokalne mail funkcije.",
"Settings": "Postavke",
"Shipping": "Utovar",
@@ -294,7 +292,7 @@
"Warning": "Upozorenje",
"WarningFileIntegrityNoManifest": "Provjera integracije fajlova nije mogla biti pokrenuta zbog nedostatka manifest.inc.php.",
"WarningFileIntegrityNoMd5file": "Provjera fajla nije mogla biti pokrenuta zbog nedostatka md5_file() function.",
- "WarningPasswordStored": "%sUpozorenje:%s Ovaj password će biti sačuvan u config fajl koji će biti vidljiv svima koji mogu pristupiti tom fajlu.",
+ "WarningPasswordStored": "%1$sUpozorenje:%2$s Ovaj password će biti sačuvan u config fajl koji će biti vidljiv svima koji mogu pristupiti tom fajlu.",
"Website": "Web stranica",
"Weekly": "Sedmično",
"WeeklyReport": "sedmično",
diff --git a/lang/ca.json b/lang/ca.json
index 64befe642b..2ea32e3f67 100644
--- a/lang/ca.json
+++ b/lang/ca.json
@@ -10,7 +10,7 @@
"AllWebsitesDashboard": "Tauler de tots els llocs web",
"API": "API",
"ArchivingInlineHelp": "Per llocs amb transit entre mig i alt, es recomana desactivar l'arxivat del Piwik des del navegador. En canvi, recomanem que configureu una tasca de cron per processar els informes de Piwik cada hora.",
- "ArchivingTriggerDescription": "Recomanat per instal·lacions grans de Piwik, es pot %sconfigurar una %stasca programada per processar les entrades automàticament.",
+ "ArchivingTriggerDescription": "Recomanat per instal·lacions grans de Piwik, es pot %1$sconfigurar una %2$stasca programada per processar les entrades automàticament.",
"AuthenticationMethodSmtp": "Mètode d'autenticació SMTP",
"AverageOrderValue": "Valor mig de les comandes",
"AveragePrice": "Preu mig",
@@ -22,10 +22,8 @@
"CannotUnzipFile": "No es pot descomprimir el fitxer %1$s: %2$s",
"ChangePassword": "Canvia la contrasenya",
"ChangeTagCloudView": "Si us plau, tingueu en compte que podeu veure l'informe en altres formes que en nuvol d'etiquetes. Feu servir els controls al peu de l'informe per fer-ho.",
- "ChooseDate": "Triar data",
"ChooseLanguage": "Tria idioma",
"ChoosePeriod": "Triar període",
- "ChooseWebsite": "Triar lloc web",
"ClickHere": "Fes clic aquí per més informació.",
"ClickToChangePeriod": "Torneu a clickar per canviar el període",
"Close": "Tanca",
@@ -75,7 +73,7 @@
"ColumnViewedAfterSearchDocumentation": "El nombre de vegades que aquesta pàgina s'ha visitat desprès de que el visitant faigi una cerca al vostre lloc web i haigi clicat en aquesta pàgina als resultats.",
"ColumnVisitDuration": "Durada de la visita (en segons)",
"ColumnVisitsWithConversions": "Visites amb conversions",
- "ConfigFileIsNotWritable": "El fitxer de configuració del Piwiki %s no es pot modificar, alguns dels canvis que has fet no es guardaran. Si us plau %s canvia els permisos del fitxer de configuració per tal que es pugui modificar.",
+ "ConfigFileIsNotWritable": "El fitxer de configuració del Piwiki %1$s no es pot modificar, alguns dels canvis que has fet no es guardaran. Si us plau %2$s canvia els permisos del fitxer de configuració per tal que es pugui modificar.",
"Continue": "Continuar",
"ContinueToPiwik": "Vés cap al Piwik",
"CurrentMonth": "Mes actual",
@@ -91,7 +89,7 @@
"Date": "Data",
"DateRange": "Rang de dates:",
"DateRangeFrom": "De",
- "DateRangeFromTo": "De %s fins a %s",
+ "DateRangeFromTo": "De %1$s fins a %2$s",
"DateRangeTo": "Fins",
"DaysHours": "%1$s dies %2$s hores",
"DaysSinceFirstVisit": "Dies des de la primera visita",
@@ -129,17 +127,17 @@
"ExceptionFileIntegrity": "Ha fallat la verificació de integritat: %s",
"ExceptionFilesizeMismatch": "Mida de fitxer incohoerent: %1$s (mida esperada: %2$s, real: %3$s)",
"ExceptionIncompatibleClientServerVersions": "El vostre client %1$s té la versió %2$s que és incompatbile amb la versió de servidor %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "El format de informes agregats '%s' no és vàlid. Proveu-ne algun dels següents en el seu lloc: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "El format de informes agregats '%1$s' no és vàlid. Proveu-ne algun dels següents en el seu lloc: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "El temps límit per fer l'arxivat avui ha de ser més gran que zero.",
- "ExceptionInvalidDateFormat": "El format de data ha de ser: %s o una altra paraula clau suportada per la funció %s (vegeu %s per més informació)",
- "ExceptionInvalidDateRange": "La data '%s' no és un rang correcte de data. Hauria de tenir el format següent: %s.",
- "ExceptionInvalidPeriod": "El període '%s' no està suportat. Proveu-ne algun dels següents en el seu lloc: %s.",
- "ExceptionInvalidRendererFormat": "El format generador '%s' no és vàlid. Proveu-ne un dels següents en el seu lloc: %s.",
- "ExceptionInvalidReportRendererFormat": "El format de l'informe '%s' no és vàlid. Proveu-ne un dels següent en el seu lloc: %s.",
- "ExceptionInvalidStaticGraphType": "El gràfic estàtic tipus '%s' no és vàlid. Proveu-ne un dels següents en el seu lloc: %s.",
+ "ExceptionInvalidDateFormat": "El format de data ha de ser: %1$s o una altra paraula clau suportada per la funció %2$s (vegeu %3$s per més informació)",
+ "ExceptionInvalidDateRange": "La data '%1$s' no és un rang correcte de data. Hauria de tenir el format següent: %2$s.",
+ "ExceptionInvalidPeriod": "El període '%1$s' no està suportat. Proveu-ne algun dels següents en el seu lloc: %2$s.",
+ "ExceptionInvalidRendererFormat": "El format generador '%1$s' no és vàlid. Proveu-ne un dels següents en el seu lloc: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "El format de l'informe '%1$s' no és vàlid. Proveu-ne un dels següent en el seu lloc: %2$s.",
+ "ExceptionInvalidStaticGraphType": "El gràfic estàtic tipus '%1$s' no és vàlid. Proveu-ne un dels següents en el seu lloc: %2$s.",
"ExceptionInvalidToken": "El token no és vàlid.",
"ExceptionLanguageFileNotFound": "El fitxer d'idioma '%s' no s'ha trobat.",
- "ExceptionMethodNotFound": "El mètode '%s' no existeix o no està disponible en el mòdul '%s'.",
+ "ExceptionMethodNotFound": "El mètode '%1$s' no existeix o no està disponible en el mòdul '%2$s'.",
"ExceptionMissingFile": "Falta fitxer: %s",
"ExceptionNonceMismatch": "No s'ha pogut verificar el token del formulari.",
"ExceptionPrivilege": "No podeu accedir a aquest recurs perquè requereix un accés de %s",
@@ -147,7 +145,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "No podeu accedir a aquest recurs perquè requereix un accés %s .per al menys un lloc web",
"ExceptionUnableToStartSession": "No s'ha pogut començar la sessió.",
"ExceptionUndeletableFile": "No s'ha pogut esborrar %s",
- "ExceptionUnreadableFileDisabledMethod": "El fitxer de configuració {%s} no s'ha pogut llegir. El vostre host pot tenir deshabilitat %s.",
+ "ExceptionUnreadableFileDisabledMethod": "El fitxer de configuració {%1$s} no s'ha pogut llegir. El vostre host pot tenir deshabilitat %2$s.",
"Export": "Exporta",
"ExportAsImage": "Exportar com a imatge",
"ExportThisReport": "Guardar aquestes dades en altres formats",
@@ -185,7 +183,7 @@
"Locale": "ca_ES.UTF-8",
"Logout": "Surt",
"MainMetrics": "Mètriques principals",
- "MediumToHighTrafficItIsRecommendedTo": "Per llocs de mig i alt transit, recomanem processar informes per avui com a molt cada mitja hora (%s segons) o cada hora (%s segons)",
+ "MediumToHighTrafficItIsRecommendedTo": "Per llocs de mig i alt transit, recomanem processar informes per avui com a molt cada mitja hora (%1$s segons) o cada hora (%2$s segons)",
"Metadata": "Metadata",
"Metric": "Mètrica",
"Metrics": "Mètriques",
@@ -233,7 +231,7 @@
"OperationEquals": "Es igual",
"OptionalSmtpPort": "Opcional. Per defecte té el valor 25 per no xifrat i TLS SMTP, i 465 per SSL SMTP.",
"Options": "Opcions",
- "OrCancel": "o %s cancel·la %s",
+ "OrCancel": "o %1$s cancel·la %2$s",
"Others": "Altres",
"Outlink": "Enllaç extern",
"Outlinks": "Enllaços externs",
@@ -241,9 +239,9 @@
"OverlayRowActionTooltipTitle": "Obre una pàgina superposada",
"Overview": "Resum",
"Pages": "Pàgines",
- "Pagination": "%s - %s de %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "El paràmetre %s ha de ser un enter entre %s i %s",
+ "Pagination": "%1$s - %2$s de %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "El paràmetre %1$s ha de ser un enter entre %2$s i %3$s",
"Password": "Contrasenya",
"Period": "Període",
"Piechart": "Gràfic de sectors",
@@ -284,7 +282,7 @@
"SaveImageOnYourComputer": "Per guardar la imatge al vostre ordinador, feu click amb el botó dret sobre la imatge i trieu \"Guardar la imatge com..\"",
"Search": "Cerca",
"SearchNoResults": "Sense resultats",
- "SeeTheOfficialDocumentationForMoreInformation": "Vegeu la %sinformació oficial%s per més informació.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Vegeu la %1$sinformació oficial%2$s per més informació.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Trieu \"si\" si voleu o heu d'enviar el correu a través de un servidor enlloc de a través de la funció mail local.",
"Settings": "Tauler de control",
@@ -332,7 +330,7 @@
"Warning": "Avís",
"WarningFileIntegrityNoManifest": "La verificació de la integritat dels fitxers no s'ha pogut fer perquè falta el manifest.inc.php.",
"WarningFileIntegrityNoMd5file": "La verificació de la integritat dels fitxers no s'ha pogut completar perquè falta la funció md5_file();",
- "WarningPasswordStored": "%sAlerta:%s Aquesta contrasenya es guardarà en un fitxer de configuració visible on tothom pot accedir.",
+ "WarningPasswordStored": "%1$sAlerta:%2$s Aquesta contrasenya es guardarà en un fitxer de configuració visible on tothom pot accedir.",
"Website": "Lloc web",
"Weekly": "Setmanalment",
"WeeklyReport": "setmanal",
@@ -410,7 +408,7 @@
"CompareRows": "Compareu registres",
"ComparingRecords": "Comparant %s files",
"Documentation": "Feu click a les mètriques per mostrarle al gràfic d'evolució. Utiltizeu la tecla shift per mostrar múltiples mètriques d'una vegada.",
- "MetricBetweenText": "entre %s i %s",
+ "MetricBetweenText": "entre %1$s i %2$s",
"MetricChangeText": "%s en el període",
"MetricsFor": "Mètriques per %s",
"MultiRowEvolutionTitle": "Evolució de múltiples files",
diff --git a/lang/cs.json b/lang/cs.json
index 1050a3f259..2cfd9c7ea5 100644
--- a/lang/cs.json
+++ b/lang/cs.json
@@ -1,8 +1,8 @@
{
"General": {
- "12HourClock": "12-hodinový formát",
- "24HourClock": "24-hodinový formát",
- "AbandonedCarts": "Neobjednané košíky",
+ "12HourClock": "12hodinový formát",
+ "24HourClock": "24hodinový formát",
+ "AbandonedCarts": "Opuštěné košíky",
"AboutPiwikX": "O Piwiku %s",
"Action": "Akce",
"Actions": "Akce",
@@ -14,8 +14,8 @@
"And": "a",
"API": "API",
"Apply": "Použít",
- "ArchivingInlineHelp": "Pro web stránky se střední nebo vysokou návštěvností je doporučeno zakázat archivování Piwiku z webového prohlížeče. Místo toho doporučujeme vytvoření úlohy pro cron",
- "ArchivingTriggerDescription": "Doporučeno pro větší instalace Piwiku, potřebujete %snastavit cron úlohu%s na automatické spracování hlášení.",
+ "ArchivingInlineHelp": "Pro weby se střední až vysokou návštěvností je doporučeno zakázat spouštění archivování Piwiku z prohlížeče. Místo toho doporučujeme vytvořit cron úlohu pro zpracování hlášení Piwiku každou hodinu.",
+ "ArchivingTriggerDescription": "Doporučeno pro větší instalace Piwiku, potřebujete %1$snastavit cron úlohu%2$s na automatické spracování hlášení.",
"AuthenticationMethodSmtp": "Autentizační metoda SMTP",
"AverageOrderValue": "Průměrná hodnota objednávky",
"AveragePrice": "Průměrná cena",
@@ -27,10 +27,9 @@
"CannotUnzipFile": "Nelze rozbalit soubor %1$s: %2$s",
"ChangePassword": "Změnit heslo",
"ChangeTagCloudView": "Všimněte si, že můžete zobrazit hlášení jinak, než jako tag cloud. Pro změnu zobrazení použijte ovládací prvky pod ním.",
- "ChooseDate": "Zvolte datum",
+ "ChooseDate": "Vybrat datum, aktuálně vybrané datum je: %s",
"ChooseLanguage": "Zvolte jazyk",
"ChoosePeriod": "Zvolte období",
- "ChooseWebsite": "Zvolte web",
"ClickHere": "Klikněte zde pro více informací",
"ClickToChangePeriod": "Klikni znovu pro změnu období.",
"Close": "Zavřít",
@@ -40,13 +39,13 @@
"ColumnAverageGenerationTime": "Průměrný čas generování",
"ColumnAverageGenerationTimeDocumentation": "Průměrný čas, za který byla stránka vygenerována. Toto měření zahrnuje čas, který potřeboval server k vygenerování stránky plus čas, který potřeboval klient k jejímu stažení. Kratší průměrný čas znamená rychlejší stránku.",
"ColumnAverageTimeOnPage": "Průměrný čas na stránce",
- "ColumnAverageTimeOnPageDocumentation": "Průměrný celkový čas strávený na stránce (pouze konkrétní stránky, ne celý web).",
+ "ColumnAverageTimeOnPageDocumentation": "Průměrný celkový čas strávený na této stránce (pouze na této stránce, ne na celém webu).",
"ColumnAvgTimeOnSite": "Průměrně času na stránkách",
"ColumnAvgTimeOnSiteDocumentation": "Průměrná doba jedné návštěvy",
"ColumnBounceRate": "Odchozí frekvence",
"ColumnBounceRateDocumentation": "Procento návštěv, které měly jedno zobrazení. To znamená návštěvníci, kteří po zobrazení stránky okamžitě odešli.",
"ColumnBounces": "Ihned odchozí",
- "ColumnBouncesDocumentation": "Počet návštěv, které začaly a skončily na této stránce. To znamená, že návštěvník opustil web po zobrazení pouze této stránky.",
+ "ColumnBouncesDocumentation": "Počet návštěv, které začaly a skončily na této stránce. To znamená, že po zobrazení této stránky návštěvník web opustil.",
"ColumnConversionRate": "Frekvence konverzí",
"ColumnConversionRateDocumentation": "Procento návštěv, které provedly konverzi Cíle.",
"ColumnDestinationPage": "Cílová stránka",
@@ -84,9 +83,11 @@
"ColumnViewedAfterSearchDocumentation": "Počet návštěv této stránky poté, co návštěvník provedl vyhledávání a kliknul na tuto stránku.",
"ColumnVisitDuration": "Doba návštěvy (v sekundách)",
"ColumnVisitsWithConversions": "Návštěvy s přechodem",
- "ConfigFileIsNotWritable": "Konfigurační soubor Piwiku %s není zapisovatelný, některé změny nebudou uloženy. %s Prosím upravte oprávnění ke konfiguračnímu souboru",
+ "ConfigFileIsNotWritable": "Konfigurační soubor Piwiku %1$s není zapisovatelný, některé změny nebudou uloženy. %2$s Prosím upravte oprávnění ke konfiguračnímu souboru",
"Continue": "Pokračovat",
"ContinueToPiwik": "Pokračujte do Piwiku",
+ "CurrentlyUsingUnsecureHttp": "Aktuálně používáte Piwik přes nezabezpečené HTTP připojení, což sebou nese svá rizika. Pro zvýšení bezpečnosti doporučujeme nastavit Piwik tak, aby používal SSL (HTTPS).",
+ "CreatedByUser": "vytvořil %s",
"CurrentMonth": "Tento měsíc",
"CurrentWeek": "Tento týden",
"CurrentYear": "Tento rok",
@@ -100,7 +101,7 @@
"Date": "Datum",
"DateRange": "Rozsah:",
"DateRangeFrom": "Od",
- "DateRangeFromTo": "Od %s do %s",
+ "DateRangeFromTo": "Od %1$s do %2$s",
"DateRangeInPeriodList": "Rozsah datumů",
"DateRangeTo": "Do",
"DaysHours": "%1$s dní %2$s hodin",
@@ -133,30 +134,30 @@
"Edit": "Upravit",
"EncryptedSmtpTransport": "Zadejte šifrování transportní vrstvy vyžadované vaším SMTP serverem.",
"Error": "Chyba",
- "ErrorRequest": "Ajaj! Při požadavku došlo k chybě. Na serveru mohlo dojít k dočasnému problému, nebo jste požádali o hlášení s příliš mnoha daty. Prosím, zkuste to znovu. Pokud se bude problém opakovat, %skontaktujte svého administrátora Piwiku%s.",
+ "ErrorRequest": "Ajaj! Při požadavku došlo k chybě. Na serveru mohlo dojít k dočasnému problému, nebo jste požádali o hlášení s příliš mnoha daty. Prosím, zkuste to znovu. Pokud se bude problém opakovat, %1$skontaktujte svého administrátora Piwiku%2$s.",
"EvolutionOverPeriod": "Vývoj za periodu",
"EvolutionSummaryGeneric": "%1$s v %2$s srovnáno s %3$s v %4$s. Vývoj: %5$s",
- "ExceptionContactSupportGeneric": "Pokud problém přetrvá, %skontaktujte pro pomoc svého Piwik administrátora%s.",
- "ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Uživatel musí být super uživatel nebo uživatel %s.",
+ "ExceptionContactSupportGeneric": "Pokud problém přetrvá, %1$skontaktujte pro pomoc svého Piwik administrátora%2$s.",
+ "ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Uživatel musí být super-uživatel nebo uživatel %s.",
"ExceptionConfigurationFileNotFound": "Konfigurační soubor {%s} nebyl nalezen",
- "ExceptionConfigurationFileNotFound2": "Pokud soubor existuje, ověřte, že %s může číst uživatel '%s'.",
+ "ExceptionConfigurationFileNotFound2": "Pokud soubor existuje, ověřte, že %1$s může číst uživatel '%2$s'.",
"ExceptionDatabaseVersion": "Vaše %1$s verze je %2$s ale Piwik vyžaduje minimálně %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Kód Piwiku je z verze %1$s, ale bylo zjištěno, že databáze byla již aktualizována na verzi %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Vaši administrátoři možná pracují na aktualizaci. Zkuste to prosím za pár minut.",
"ExceptionFileIntegrity": "Test integrity selhal: %s",
"ExceptionFilesizeMismatch": "Nesouhlasí velikost souboru: %1$s (očekávaná délka: %2$s, nalezeno: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Vaše %1$s verze klienta je %2$s tato je ale nekompatibilní se serverem %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Agregovaný formát hlášení %s není platný. Zkuste místo toho nějaký z %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Agregovaný formát hlášení %1$s není platný. Zkuste místo toho nějaký z %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Dnešní doba života archivu musí být číslo větší než nula",
- "ExceptionInvalidDateFormat": "Formát data musí být: %s nebo klíčové slovo podporované funkcí %s (více informací viz %s)",
- "ExceptionInvalidDateRange": "Datum '%s' není v platném rozmezí. Může mít následující formát: %s.",
- "ExceptionInvalidPeriod": "Perioda '%s' není podporovaná. Vyzkoušejte nějakou z následujících místo: %s.",
- "ExceptionInvalidRendererFormat": "Formát rendereru '%s' není platný. Vyzkoušejte nějaký jiný místo: %s.",
- "ExceptionInvalidReportRendererFormat": "Formát hlášení %s není platný. Zkuste místo toho jakýkoliv z %s.",
- "ExceptionInvalidStaticGraphType": "Typ statického grafu %s není platný. Zkuste místo toho některý z %s.",
+ "ExceptionInvalidDateFormat": "Formát data musí být: %1$s nebo klíčové slovo podporované funkcí %2$s (více informací viz %3$s)",
+ "ExceptionInvalidDateRange": "Datum '%1$s' není v platném rozmezí. Může mít následující formát: %2$s.",
+ "ExceptionInvalidPeriod": "Perioda '%1$s' není podporovaná. Vyzkoušejte nějakou z následujících místo: %2$s.",
+ "ExceptionInvalidRendererFormat": "Formát rendereru '%1$s' není platný. Vyzkoušejte nějaký jiný místo: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Formát hlášení %1$s není platný. Zkuste místo toho jakýkoliv z %2$s.",
+ "ExceptionInvalidStaticGraphType": "Typ statického grafu %1$s není platný. Zkuste místo toho některý z %2$s.",
"ExceptionInvalidToken": "Token je neplatný",
"ExceptionLanguageFileNotFound": "Jazykový soubor '%s' nenalezen",
- "ExceptionMethodNotFound": "Metoda '%s' neexistuje nebo není dostupná v modulu '%s'.",
+ "ExceptionMethodNotFound": "Metoda '%1$s' neexistuje nebo není dostupná v modulu '%2$s'.",
"ExceptionMissingFile": "Chybějící soubor: %s",
"ExceptionNonceMismatch": "Nebylo možné ověřit bezpečnostní token tohoto formuláře.",
"ExceptionPrivilege": "Nemůžete přistupovat k tomuto zdroji, protože vyžaduje oprávnění %s.",
@@ -164,7 +165,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Nemůžete přistupovat k tomuto zdroji, protože vyžaduje oprávnění %s alespoň pro jeden web",
"ExceptionUnableToStartSession": "Nepodařilo se zahájit sezení.",
"ExceptionUndeletableFile": "Nelze vymazat soubor %s",
- "ExceptionUnreadableFileDisabledMethod": "Konfigurační soubor {%s} je nečitelný. Host může být zakázán %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Konfigurační soubor {%1$s} je nečitelný. Host může být zakázán %2$s.",
"ExceptionReportNotFound": "Požadované hlášení neexistuje.",
"ExceptionWidgetNotFound": "Požadovaný widget neexistuje.",
"ExceptionReportNotEnabled": "Požadované hlášení není povoleno. To obvykle znamená, že zásuvný modul, který ho poskytuje je zakázán, nebo že nemáte dostatečná oprávnění.",
@@ -212,7 +213,7 @@
"Logout": "Odhlásit",
"MainMetrics": "Hlavní měření",
"Matches": "Shody",
- "MediumToHighTrafficItIsRecommendedTo": "Pro weby se středním nebo velkým provozem doporučujeme zpracovat dnešní hlášení každou půlhodinu (%s vteřin), nebo každou hodinu (%s vteřin)",
+ "MediumToHighTrafficItIsRecommendedTo": "Pro weby se středním nebo velkým provozem doporučujeme zpracovat dnešní hlášení každou půlhodinu (%1$s vteřin), nebo každou hodinu (%2$s vteřin)",
"Metadata": "Meta data",
"Metric": "Měření",
"Metrics": "Měření",
@@ -230,6 +231,7 @@
"Name": "Jméno",
"NbActions": "Počet akcí",
"NbSearches": "Počet interních vyhledávání",
+ "NeedMoreHelp": "Potřebujete více pomoci?",
"Never": "Nikdy",
"NewReportsWillBeProcessedByCron": "Pokud není archivování spouštěno webovým prohlížečem, budou nová hlášení zpracovávána cronem.",
"NewUpdatePiwikX": "Nová aktualizace: Piwik %s",
@@ -269,7 +271,7 @@
"OptionalSmtpPort": "Volitelné. Pro nešifrovaná a TLS SMTP spojení je výchozí 25, pro SSL SMTP spojení je výchozí 465.",
"Options": "Nastavení",
"Or": "nebo",
- "OrCancel": "nebo %s Zrušit %s",
+ "OrCancel": "nebo %1$s Zrušit %2$s",
"Others": "Ostatní",
"Outlink": "Odchozí odkaz",
"Outlinks": "Externí odkazy",
@@ -277,9 +279,9 @@
"OverlayRowActionTooltipTitle": "Otevřít vrstvu stránky",
"Overview": "Přehled",
"Pages": "Stránky",
- "Pagination": "%s - %s z %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Proměnná %s musí být číselná hodnota mezi %s a %s.",
+ "Pagination": "%1$s - %2$s z %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Proměnná %1$s musí být číselná hodnota mezi %2$s a %3$s.",
"Password": "Heslo",
"Period": "Období",
"Piechart": "Koláčový graf",
@@ -331,10 +333,10 @@
"Clear": "Vyčistit",
"SearchNoResults": "Žádné výsledky",
"SeeAll": "Zobrazit vše",
- "SeeTheOfficialDocumentationForMoreInformation": "Pro více informací navštivte %soficiální dokumentaci%s.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Pro více informací navštivte %1$soficiální dokumentaci%2$s.",
"SeeThisFaq": "Podívejte se na %1$stento často kladený dotaz%2$s.",
"Segment": "Část",
- "SelectYesIfYouWantToSendEmailsViaServer": "Zvolte \"Ano\" pokud chcete email posílat pomocí uvedeného serveru místo lokální funkce PHP mail",
+ "SelectYesIfYouWantToSendEmailsViaServer": "Zvolte \"Ano\" pokud chcete e-mail posílat pomocí uvedeného serveru místo lokální funkce PHP mail",
"Settings": "Nastavení",
"Shipping": "Doprava",
"Show": "zobrazit",
@@ -358,7 +360,7 @@
"Total": "Celkem",
"TotalRatioTooltip": "Toto je %1$s ze všech %2$s %3$s.",
"TotalRevenue": "Celková hodnota",
- "TotalVisitsPageviewsActionsRevenue": "(Celkem: %s návštěv, %s zobrazení, %s akcí, %s příjem)",
+ "TotalVisitsPageviewsActionsRevenue": "(Celkem: %1$s návštěv, %2$s zobrazení, %3$s akcí, %4$s příjem)",
"TrackingScopeAction": "Akce",
"TrackingScopePage": "Stránka",
"TrackingScopeVisit": "Návštěva",
@@ -371,7 +373,7 @@
"UsePlusMinusIconsDocumentation": "Použijte ikonu plus a mínus vlevo od navigace.",
"UserId": "ID uživatele",
"Username": "Uživatelské jméno",
- "UseSMTPServerForEmail": "Pro email použít SMTP server",
+ "UseSMTPServerForEmail": "Pro e-mail použít SMTP server",
"Value": "Hodnota",
"VBarGraph": "Svislý sloupcový graf",
"View": "Zobrazit",
@@ -395,9 +397,9 @@
"WarningFileIntegrityNoManifest": "Test integrity nemůže být proveden z důvodů chybějícího souboru manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Pokud nasazujete Piwik z Gitu, pak je tato zpráva normální.",
"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.",
- "WarningDebugOnDemandEnabled": "Režim sledování %s povolen. Z bezpečnostních důvodů je doporučováno ponechat toto nastavení pouze po krátkou dobu. Pokud ho chcete zakázat, nastavte %s v %s na %s.",
- "Website": "Web stránky",
+ "WarningPasswordStored": "%1$sUpozornění:%2$s Toto heslo bude uloženo v konfiguračním souboru viditelné pro všechny s přístupem k němu.",
+ "WarningDebugOnDemandEnabled": "Režim sledování %1$s povolen. Z bezpečnostních důvodů je doporučováno ponechat toto nastavení pouze po krátkou dobu. Pokud ho chcete zakázat, nastavte %2$s v %3$s na %4$s.",
+ "Website": "Web",
"Weekly": "Týdně",
"WeeklyReport": "Týdně",
"WeeklyReports": "Tydenní hlášení",
@@ -445,12 +447,12 @@
"LastUpdated": "Poslední aktualizace: %s",
"LoadingReport": "Načítání %s",
"LoginCredentials": "Pověření",
- "LoginToPiwikToChangeSettings": "Přihlašte se k vašemu Piwik serveru, pokud chcete měnit a vytvářet webové stránky a uživatele nebo měnit obecná nastavení jako hlášení, které se načte jako výchozí.",
+ "LoginToPiwikToChangeSettings": "Přihlaste se k vašemu Piwik serveru, pokud chcete přidávat a měnit weby, uživatele nebo měnit obecná nastavení, jako \"Hlášení, které se načte jako výchozí\".",
"LoginUseHttps": "Použít HTTPS",
"MultiChartLabel": "Zobrazit multi grafy",
"NavigationBack": "Zpět",
"NetworkError": "Chyba sítě",
- "NetworkErrorWithStatusCode": "Došlo k chybě \"%s\". Požadavek vrátil stavový kód \"%s\". URL byla \"%s\". Prosím zkontrolujte vámi zadanou URL a pro více informací o této chybě a jejím možném řešení chybové logy zadaného serveru.",
+ "NetworkErrorWithStatusCode": "Došlo k chybě \"%1$s\". Požadavek vrátil stavový kód \"%2$s\". URL byla \"%3$s\". Prosím zkontrolujte vámi zadanou URL a pro více informací o této chybě a jejím možném řešení chybové logy zadaného serveru.",
"NetworkErrorWithStatusCodeShort": "Chyba sítě %s",
"NetworkNotReachable": "Síť je nedosažitelná",
"NoAccountIsSelected": "Musíte vybrat účet. Pokud není žádný nastaven, přidejte ho.",
@@ -460,7 +462,7 @@
"NoVisitorFound": "Žádný návštěvník nebyl nalezen",
"NoVisitorsShort": "Žádní návštěvníci",
"NoWebsiteFound": "Žádný web nenalezen",
- "NoWebsitesShort": "Žádné webové stránky",
+ "NoWebsitesShort": "Žádné weby",
"PullDownToRefresh": "Stáhněte pro obnovu...",
"PossibleSslError": "Možná chyba SSL certifikátu",
"PossibleSslErrorExplanation": "Došlo k chybě, která může být způsobena neplatným, nebo sám sebou podepsaným SSL certifikátem: \"%s\". Přihlášení fungovat může, ale nebude to tak bezpečné.",
@@ -468,18 +470,18 @@
"RatingDontRemindMe": "Neupozorňovat mě",
"RatingNotNow": "Nyní ne",
"RatingNow": "Dobrá, teď to ohodnotím",
- "RatingPleaseRateUs": "Piwik mobile je volně šiřitelný software. Proto bychom ocenili, kdybyste si našli minutu k jeho ohodnocení v %s. Pokud máte návrh na nějakou novou vlastnost nebo chcete nahlásit chybu, kontaktujte %s",
+ "RatingPleaseRateUs": "Piwik mobile je volně šiřitelný software. Proto bychom ocenili, kdybyste si našli minutu k jeho ohodnocení v %1$s. Pokud máte návrh na nějakou novou vlastnost nebo chcete nahlásit chybu, kontaktujte %2$s",
"ReleaseToRefresh": "Uvolněte pro obnovení...",
"Reloading": "Znovu nahrávám...",
"RequestTimedOutShort": "Chyba časového limitu sítě",
"RestrictedCompatibility": "Omezená kompatibilita",
"RestrictedCompatibilityExplanation": "Verze Piwiku %s není plně podporována Piwik mobile 2. Můžete se setkat s nějakými chybami. Doporučujeme aktualizovat Piwik na nejnovější verzi nebo se vrátit k Piwik mobile 1.",
"SaveSuccessError": "Prosím zkontrolujte si vaše nastavení",
- "SearchWebsite": "Prohledat webové stránky",
+ "SearchWebsite": "Hledat weby",
"ShowAll": "Zobrazit vše",
"ShowLess": "Zobrazit méně",
"StaticGraph": "Přehledový graf",
- "TopVisitedWebsites": "Nejvíce navštěvované webové stránky",
+ "TopVisitedWebsites": "Nejvíce navštěvované weby",
"TryIt": "Vyzkoušejte to!",
"UseSearchBarHint": "Zde je zobrazeno pouze prvních %s webových stránek. K přístupu k dalším použijte vyhledávací panel.",
"VerifyAccount": "Ověřování účtu",
@@ -493,7 +495,7 @@
"CompareRows": "Porovnat řádky",
"ComparingRecords": "Porovnávání %s řádků",
"Documentation": "Klikněte na měření, pokud je chcete zobrazit ve velkém grafu vývoje. Použijte shift + kliknutí pro zobrazení více měření najednou.",
- "MetricBetweenText": "mezi %s a %s",
+ "MetricBetweenText": "mezi %1$s a %2$s",
"MetricChangeText": "%s za interval",
"MetricMinMax": "Během tohoto období %1$s se pohyboval(a) mezi %2$s a %3$s",
"MetricsFor": "Měření pro %s",
diff --git a/lang/da.json b/lang/da.json
index 050ae1a0c7..e5c5b2e313 100644
--- a/lang/da.json
+++ b/lang/da.json
@@ -11,7 +11,7 @@
"And": "og",
"API": "API",
"ArchivingInlineHelp": "For hjemmesider med medium til høj trafik anbefales det at deaktivere Piwik-arkivering udløst fra browseren. I stedet anbefales det at køre et cron job hver time til at behandle Piwik rapporter.",
- "ArchivingTriggerDescription": "Til større Piwik installationer anbefales det, at %soprette et cron job%s til at behandle rapporterne automatisk.",
+ "ArchivingTriggerDescription": "Til større Piwik installationer anbefales det, at %1$soprette et cron job%2$s til at behandle rapporterne automatisk.",
"AuthenticationMethodSmtp": "Godkenselsesmetode til SMTP",
"AverageOrderValue": "Gennemsnitlig ordreværdi",
"AveragePrice": "Gennemsnitlige pris",
@@ -23,10 +23,8 @@
"CannotUnzipFile": "Kan ikke udpakke filen %1$s: %2$s",
"ChangePassword": "Skift adgangskode",
"ChangeTagCloudView": "Bemærk, at du kan få vist rapporten på andre måder end som en emnesky. Brug kontrolelementerne nederst i rapporten for at gøre det.",
- "ChooseDate": "Vælg dato",
"ChooseLanguage": "Vælg sprog",
"ChoosePeriod": "Vælg periode",
- "ChooseWebsite": "Vælg hjemmeside",
"ClickHere": "Klik her for yderligere oplysninger.",
"ClickToChangePeriod": "Klik igen for at ændre perioden.",
"Close": "Luk",
@@ -79,7 +77,7 @@
"ColumnViewedAfterSearchDocumentation": "Antallet af gange denne side er blevet besøgt efter en besøgende lavede en søgning på hjemmesiden, og klikkede på denne side i søgeresultaterne.",
"ColumnVisitDuration": "Besøgsvarighed (i sekunder)",
"ColumnVisitsWithConversions": "Besøg med konverteringer",
- "ConfigFileIsNotWritable": "Piwik konfigurationsfilen %s er skrivebeskyttet, nogle af ændringerne vil ikke blive gemt. %s Skift tilladelser til konfigurationsfilen for at gøre den skrivebar.",
+ "ConfigFileIsNotWritable": "Piwik konfigurationsfilen %1$s er skrivebeskyttet, nogle af ændringerne vil ikke blive gemt. %2$s Skift tilladelser til konfigurationsfilen for at gøre den skrivebar.",
"Continue": "Fortsæt",
"ContinueToPiwik": "Fortsæt til Piwik",
"CurrentMonth": "Denne måned",
@@ -95,7 +93,7 @@
"Date": "Dato",
"DateRange": "Datointerval:",
"DateRangeFrom": "Fra",
- "DateRangeFromTo": "Fra %s til %s",
+ "DateRangeFromTo": "Fra %1$s til %2$s",
"DateRangeTo": "Til",
"DaysHours": "%1$s dage %2$s timer",
"DaysSinceFirstVisit": "Dage siden første besøg",
@@ -127,9 +125,10 @@
"Edit": "Rediger",
"EncryptedSmtpTransport": "Indtast tranportlag krypteringen, som kræves af SMTP serveren.",
"Error": "Fejl",
- "ErrorRequest": "Ups… der var et problem i løbet af anmodningen. Måske serveren havde et midlertidigt problem, eller måske du har anmodet om en rapport med for mange data. Prøv igen. Hvis fejlen opstår gentagne gange %skontakt din Piwik administrator%s for at få hjælp.",
+ "ErrorRequest": "Ups… der var et problem i løbet af anmodningen. Måske serveren havde et midlertidigt problem, eller måske du har anmodet om en rapport med for mange data. Prøv igen. Hvis fejlen opstår gentagne gange %1$skontakt din Piwik administrator%2$s for at få hjælp.",
"EvolutionOverPeriod": "Udvikling i perioden",
"EvolutionSummaryGeneric": "%1$s i %2$s sammenlignet med %3$s i %4$s. Udvikling: %5$s",
+ "ExceptionContactSupportGeneric": "Hvis du stadig har dette problem, %1$skontakt Piwik administrator%2$s for at få hjælp.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Brugeren skal være enten en superbruger eller brugeren '%s' selv.",
"ExceptionConfigurationFileNotFound": "Konfigurationsfilen (%s) blev ikke fundet.",
"ExceptionDatabaseVersion": "%1$s version er %2$s, men Piwik behøver mindst version %3$s.",
@@ -138,17 +137,17 @@
"ExceptionFileIntegrity": "Integritetstjek mislykkedes: %s",
"ExceptionFilesizeMismatch": "Fil størrelse passer ikke: %1$s (forventet længde: %2$s, fundet: %3$s)",
"ExceptionIncompatibleClientServerVersions": "%1$s klient version er %2$s, som er uforenelig med server version %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Sammenfattende rapportformat '%s' ikke gyldigt. Prøv en af følgende i stedet: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Sammenfattende rapportformat '%1$s' ikke gyldigt. Prøv en af følgende i stedet: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Levetiden på \"I dag arkiv\" skal være et antal sekunder større end nul",
- "ExceptionInvalidDateFormat": "Datoformat skal være: %s eller et nøgleord, der understøttes af %s funktionen (se %s for mere information)",
- "ExceptionInvalidDateRange": "Datoen '%s' er ikke et korrekt datointerval. Det skal have følgende format: %s.",
- "ExceptionInvalidPeriod": "Perioden '%s' er ikke understøttet. Prøv en af følgende i stedet: %s",
- "ExceptionInvalidRendererFormat": "Rendering format '%s' ikke gyldigt. Prøv et af følgende i stedet: %s.",
- "ExceptionInvalidReportRendererFormat": "Rapport format '%s' er ikke gyldigt. Prøv i stedet et af følgende: %s.",
- "ExceptionInvalidStaticGraphType": "Statisk diagramtype '%s' ikke gyldigt. Prøv en af følgende i stedet: %s.",
+ "ExceptionInvalidDateFormat": "Datoformat skal være: %1$s eller et nøgleord, der understøttes af %2$s funktionen (se %3$s for mere information)",
+ "ExceptionInvalidDateRange": "Datoen '%1$s' er ikke et korrekt datointerval. Det skal have følgende format: %2$s.",
+ "ExceptionInvalidPeriod": "Perioden '%1$s' er ikke understøttet. Prøv en af følgende i stedet: %2$s",
+ "ExceptionInvalidRendererFormat": "Rendering format '%1$s' ikke gyldigt. Prøv et af følgende i stedet: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Rapport format '%1$s' er ikke gyldigt. Prøv i stedet et af følgende: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Statisk diagramtype '%1$s' ikke gyldigt. Prøv en af følgende i stedet: %2$s.",
"ExceptionInvalidToken": "Token er ikke gyldig.",
"ExceptionLanguageFileNotFound": "Sprogfil '%s' blev ikke fundet.",
- "ExceptionMethodNotFound": "Metoden '%s' eksisterer ikke eller er ikke tilgængelig i modulet '%s'.",
+ "ExceptionMethodNotFound": "Metoden '%1$s' eksisterer ikke eller er ikke tilgængelig i modulet '%2$s'.",
"ExceptionMissingFile": "Mangler fil: %s",
"ExceptionNonceMismatch": "Kan ikke kontrollere sikkerheden på formularen.",
"ExceptionPrivilege": "Du kan ikke få adgang til denne ressource, det kræver en %s adgang.",
@@ -156,7 +155,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Du kan ikke få adgang til denne ressource, da det kræver en %s adgang til mindst én hjemmeside.",
"ExceptionUnableToStartSession": "Kan ikke starte sessionen.",
"ExceptionUndeletableFile": "Kunne ikke slette %s",
- "ExceptionUnreadableFileDisabledMethod": "Konfigurationsfilen (%s) kunne ikke læses. Udbyderen kan have deaktiveret %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Konfigurationsfilen (%1$s) kunne ikke læses. Udbyderen kan have deaktiveret %2$s.",
"ExceptionReportNotFound": "Den ønskede rapport findes ikke.",
"ExceptionWidgetNotFound": "Den anmodede widget findes ikke.",
"ExceptionReportNotEnabled": "Den ønskede rapport er ikke aktiveret. Dette betyder normalt enten at udvidelsen, der definerer rapporten er deaktiveret eller at du har ikke tilladelse nok til at få adgang til rapporten.",
@@ -204,7 +203,7 @@
"Logout": "Log af",
"MainMetrics": "Hovedmålinger",
"Matches": "Matcher",
- "MediumToHighTrafficItIsRecommendedTo": "For hjemmesider med medium til høj trafik anbefales det kun at behandle rapporter for i dag højst hver halve time (%s sekunder) eller hver time (%s sekunder).",
+ "MediumToHighTrafficItIsRecommendedTo": "For hjemmesider med medium til høj trafik anbefales det kun at behandle rapporter for i dag højst hver halve time (%1$s sekunder) eller hver time (%2$s sekunder).",
"Metadata": "Metadata",
"Metric": "Måling",
"Metrics": "Målinger",
@@ -257,7 +256,7 @@
"OperationNotEquals": "Ikke lig med",
"OptionalSmtpPort": "Valgfri: Standard 25 for ukrypteret og TLS SMTP og 465 for SSL SMTP.",
"Options": "Indstillinger",
- "OrCancel": "eller %s Fortryd %s",
+ "OrCancel": "eller %1$s Fortryd %2$s",
"Others": "Andre",
"Outlink": "Udgående links",
"Outlinks": "Udgående links",
@@ -265,9 +264,9 @@
"OverlayRowActionTooltipTitle": "Åbn sideoverlejring",
"Overview": "Oversigt",
"Pages": "Sider",
- "Pagination": "%s - %s af %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Parameter %s skal være et tal mellem %s og %s.",
+ "Pagination": "%1$s - %2$s af %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Parameter %1$s skal være et tal mellem %2$s og %3$s.",
"Password": "Adgangskode",
"Period": "Periode",
"Piechart": "Cirkeldiagram",
@@ -314,7 +313,7 @@
"Clear": "Ryd",
"SearchNoResults": "Ingen resultater",
"SeeAll": "se samtlige",
- "SeeTheOfficialDocumentationForMoreInformation": "Se den %sofficielle dokumentation%s for mere information.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Se den %1$sofficielle dokumentation%2$s for mere information.",
"SeeThisFaq": "Se %1$sdenne faq%2$s.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Vælg \"Ja\", hvis du ønsker eller er nødt til at sende e-mail via en bestemt server i stedet for den lokale mail-funktionen",
@@ -371,7 +370,7 @@
"WarningFileIntegrityNoManifest": "Fil integritetstjek kunne ikke udføres på grund af manglende manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Hvis du implementerer Piwik fra Git, er meddelelsen normal.",
"WarningFileIntegrityNoMd5file": "Fil integritetstjek kunne ikke gennemføres pga. manglende md5_file () funktion.",
- "WarningPasswordStored": "%sAdvarsel:%s Adgangskoden bliver gemt i konfigurationsfilen synlig for alle, der har adgang til den.",
+ "WarningPasswordStored": "%1$sAdvarsel:%2$s Adgangskoden bliver gemt i konfigurationsfilen synlig for alle, der har adgang til den.",
"Website": "Hjemmeside",
"Weekly": "Ugentligt",
"WeeklyReport": "ugentlig",
@@ -424,7 +423,7 @@
"MultiChartLabel": "Vis minidiagrammer",
"NavigationBack": "Tilbage",
"NetworkError": "Netværksfejl",
- "NetworkErrorWithStatusCode": "Der opstod en fejl \"%s\". Anmodningen returnerede status \"%s\". URL-adresse var \"%s\". Kontroller den indtastede URL og fejllogfiler på serveren for at få yderligere oplysninger om fejlen, og hvordan den kan løses.",
+ "NetworkErrorWithStatusCode": "Der opstod en fejl \"%1$s\". Anmodningen returnerede status \"%2$s\". URL-adresse var \"%3$s\". Kontroller den indtastede URL og fejllogfiler på serveren for at få yderligere oplysninger om fejlen, og hvordan den kan løses.",
"NetworkErrorWithStatusCodeShort": "Netværksfejl %s",
"NetworkNotReachable": "Netværk ikke tilgængeligt",
"NoAccountIsSelected": "Du er nødt til at vælge en konto. Tilføj en ny konto, hvis du ikke har konfigureret en.",
@@ -442,7 +441,7 @@
"RatingDontRemindMe": "Påmind mig ikke",
"RatingNotNow": "Senere",
"RatingNow": "OK, jeg vil bedømme nu",
- "RatingPleaseRateUs": "Piwik Mobile app er gratis software. Vi vil sætte stor pris på, at du bruger 1 minut på at bedømme app'en i %s. Hvis du har forslag til nye features eller fejlrapporter, så kontakt %s",
+ "RatingPleaseRateUs": "Piwik Mobile app er gratis software. Vi vil sætte stor pris på, at du bruger 1 minut på at bedømme app'en i %1$s. Hvis du har forslag til nye features eller fejlrapporter, så kontakt %2$s",
"ReleaseToRefresh": "Slip for at opdatere...",
"Reloading": "Genindlæser...",
"RequestTimedOutShort": "Netværk timeout-fejl",
@@ -467,7 +466,7 @@
"CompareRows": "Sammenlign rækker",
"ComparingRecords": "Sammenligner %s rækker",
"Documentation": "Klik på målinger for at få vist udviklingen på en stor graf. Brug shift-klik for at vise flere målinger samtidigt.",
- "MetricBetweenText": "mellem %s og %s",
+ "MetricBetweenText": "mellem %1$s og %2$s",
"MetricChangeText": "%s over perioden",
"MetricMinMax": "%1$s varierede mellem %2$s og %3$s over perioden",
"MetricsFor": "Målinger for %s",
diff --git a/lang/de.json b/lang/de.json
index 0f975ee065..94f585b079 100644
--- a/lang/de.json
+++ b/lang/de.json
@@ -15,7 +15,7 @@
"API": "API",
"Apply": "Anwenden",
"ArchivingInlineHelp": "Für Websites mit mittlerem bis hohem Verkehrsaufkommen wird empfohlen, die durch den Browser ausgelöste Archivierung zu deaktivieren. Stattdessen wird empfohlen, dass Sie einen Cronjob aufsetzen, der die Berichte einmal pro Stunde abarbeitet.",
- "ArchivingTriggerDescription": "Für größere Piwik-Installationen sollten Sie %seinen Cronjob erstellen%s, der die Berichte automatisch abarbeitet.",
+ "ArchivingTriggerDescription": "Für größere Piwik-Installationen sollten Sie %1$seinen Cronjob erstellen%2$s, der die Berichte automatisch abarbeitet.",
"AuthenticationMethodSmtp": "Authentifizierungsmethode für SMTP",
"AverageOrderValue": "Durchschnittlicher Bestellwert",
"AveragePrice": "Durchschnittlicher Preis",
@@ -27,10 +27,9 @@
"CannotUnzipFile": "Die Datei %1$s kann nicht entpackt werden: %2$s",
"ChangePassword": "Passwort ändern",
"ChangeTagCloudView": "Bitte beachten Sie, dass Sie den Bericht nicht nur als Tag-Cloud anzeigen können. Verwenden Sie die Steuerelemente in der Fußleiste, um die Ansicht zu wechseln.",
- "ChooseDate": "Wähle Datum",
+ "ChooseDate": "Wählen Sie ein datum, aktuell gewähltes Datum ist: %s",
"ChooseLanguage": "Sprache wählen",
"ChoosePeriod": "Zeitraum wählen",
- "ChooseWebsite": "Website wählen",
"ClickHere": "Klicken Sie hier für mehr Informationen.",
"ClickToChangePeriod": "Klicken Sie erneut, um den Zeitraum zu ändern.",
"Close": "Schließen",
@@ -84,9 +83,10 @@
"ColumnViewedAfterSearchDocumentation": "Die Anzahl, wie häufig diese Seite besucht wurde, nachdem zuvor die interne Suche benutzt wurde.",
"ColumnVisitDuration": "Dauer des Besuchs (in Sekunden)",
"ColumnVisitsWithConversions": "Besuche mit Konversionen",
- "ConfigFileIsNotWritable": "Die Piwik-Konfigurationsdatei %s ist nicht schreibbar, Ihre Änderungen werden nicht gespeichert. %s Bitte ändern Sie die Zugriffsrechte der Konfigurationsdatei, um diese schreibbar zu machen.",
+ "ConfigFileIsNotWritable": "Die Piwik-Konfigurationsdatei %1$s ist nicht schreibbar, Ihre Änderungen werden nicht gespeichert. %2$s Bitte ändern Sie die Zugriffsrechte der Konfigurationsdatei, um diese schreibbar zu machen.",
"Continue": "Weiter",
"ContinueToPiwik": "Weiter zu Piwik",
+ "CreatedByUser": "Erstellt von %s",
"CurrentMonth": "Aktueller Monat",
"CurrentWeek": "Aktuelle Woche",
"CurrentYear": "Aktuelles Jahr",
@@ -100,7 +100,7 @@
"Date": "Datum",
"DateRange": "Zeitspanne:",
"DateRangeFrom": "Von",
- "DateRangeFromTo": "Von %s bis %s",
+ "DateRangeFromTo": "Von %1$s bis %2$s",
"DateRangeInPeriodList": "Zeitspanne",
"DateRangeTo": "Bis",
"DaysHours": "%1$s Tage %2$s Stunden",
@@ -133,30 +133,30 @@
"Edit": "Ändern",
"EncryptedSmtpTransport": "Geben Sie hier die von Ihrem SMTP-Server benötigte Verschlüsselung ein.",
"Error": "Fehler",
- "ErrorRequest": "Oops… während der Anfrage ist ein Problem aufgetreten. Möglicherweise war der Server temporär überlastet, oder eventuell haben Sie einen Bericht mit zu vielen Daten angefordert. Bitte noch einmal versuchen. Wenn dieser Fehler wiederholt auftritt %skontaktieren Sie bitte Ihren Piwik Administrator%s, um Unterstützung zu erhalten.",
+ "ErrorRequest": "Oops… während der Anfrage ist ein Problem aufgetreten. Möglicherweise war der Server temporär überlastet, oder eventuell haben Sie einen Bericht mit zu vielen Daten angefordert. Bitte noch einmal versuchen. Wenn dieser Fehler wiederholt auftritt %1$skontaktieren Sie bitte Ihren Piwik Administrator%2$s, um Unterstützung zu erhalten.",
"EvolutionOverPeriod": "Entwicklung über den Zeitraum",
"EvolutionSummaryGeneric": "%1$s in %2$s verglichen mit %3$s in %4$s. Entwicklung: %5$s",
- "ExceptionContactSupportGeneric": "Falls dieses Problem weiterhin besteht, %skontaktieren Sie bitte Ihren Piwik Administrator%s für Unterstützung.",
+ "ExceptionContactSupportGeneric": "Falls dieses Problem weiterhin besteht, %1$skontaktieren Sie bitte Ihren Piwik Administrator%2$s für Unterstützung.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Der Benutzer muss entweder ein Hauptadministrator sein oder der Benutzer '%s'.",
"ExceptionConfigurationFileNotFound": "Die Konfigurationsdatei {%s} wurde nicht gefunden.",
- "ExceptionConfigurationFileNotFound2": "Insofern die Datei existiert überprüfen Sie bitte dass %s für den Benutzer '%s' lesbar ist.",
+ "ExceptionConfigurationFileNotFound2": "Insofern die Datei existiert überprüfen Sie bitte dass %1$s für den Benutzer '%2$s' lesbar ist.",
"ExceptionDatabaseVersion": "Ihre %1$s-Version ist %2$s, aber Piwik benötigt mindestens %3$s",
"ExceptionDatabaseVersionNewerThanCodebase": "Ihre Piwik Codebase läuft auf der alten Version %1$s und wir haben erkannt, dass Ihre Piwik Datenbank bereits auf die neuere Version %2$s aktualisiert wurde.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Möglicherweise sind die Piwik Administratoren gerade daran, den Aktualisierungsprozess abzuschliessen. Bitte versuchen Sie es in ein paar Minuten noch einmal.",
"ExceptionFileIntegrity": "Integritätsprüfung fehlgeschlagen: %s",
"ExceptionFilesizeMismatch": "Unterschiedliche Dateigröße: %1$s (erwartete Größe: %2$s, gefunden: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Ihre %1$s-Client Version ist %2$s, die aber mit der Server-Version %3$s inkompatibel ist.",
- "ExceptionInvalidAggregateReportsFormat": "Aggregiertes Berichtsformat '%s' ungültig. Versuchen Sie eines der folgenden: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Aggregiertes Berichtsformat '%1$s' ungültig. Versuchen Sie eines der folgenden: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Die Archivierungszeit von Live-Berichten muss eine Zahl in Sekunden (größer als Null) sein.",
- "ExceptionInvalidDateFormat": "Das Datumsformat muss %s oder eine andere, von der Funktion %s unterstützte Zeichenkette sein. (Besuchen Sie %s für nähere Informationen)",
- "ExceptionInvalidDateRange": "Das Datum '%s' ist keine korrekte Zeitspanne. Es sollte das folgende Format haben: %s",
- "ExceptionInvalidPeriod": "Der Zeitraum '%s' wird nicht unterstützt. Versuchen Sie es stattdessen mit einem der folgenden: %s",
- "ExceptionInvalidRendererFormat": "Das Renderer-Format '%s' ist ungültig. Versuchen Sie stattdessen eines der folgenden Formate: %s.",
- "ExceptionInvalidReportRendererFormat": "Berichtsformat '%s' ist ungültig. Versuchen Sie stattdessen eines der folgenden: %s.",
- "ExceptionInvalidStaticGraphType": "Typ des statischen Graphs '%s' ist ungültig. Versuchen Sie stattdessen einen der folgenden Typen: %s",
+ "ExceptionInvalidDateFormat": "Das Datumsformat muss %1$s oder eine andere, von der Funktion %2$s unterstützte Zeichenkette sein. (Besuchen Sie %3$s für nähere Informationen)",
+ "ExceptionInvalidDateRange": "Das Datum '%1$s' ist keine korrekte Zeitspanne. Es sollte das folgende Format haben: %2$s",
+ "ExceptionInvalidPeriod": "Der Zeitraum '%1$s' wird nicht unterstützt. Versuchen Sie es stattdessen mit einem der folgenden: %2$s",
+ "ExceptionInvalidRendererFormat": "Das Renderer-Format '%1$s' ist ungültig. Versuchen Sie stattdessen eines der folgenden Formate: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Berichtsformat '%1$s' ist ungültig. Versuchen Sie stattdessen eines der folgenden: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Typ des statischen Graphs '%1$s' ist ungültig. Versuchen Sie stattdessen einen der folgenden Typen: %2$s",
"ExceptionInvalidToken": "Das Token ist ungültig.",
"ExceptionLanguageFileNotFound": "Sprachdatei '%s' wurde nicht gefunden.",
- "ExceptionMethodNotFound": "Die Methode '%s' existiert nicht oder ist im Modul '%s' nicht verfügbar.",
+ "ExceptionMethodNotFound": "Die Methode '%1$s' existiert nicht oder ist im Modul '%2$s' nicht verfügbar.",
"ExceptionMissingFile": "Fehlende Datei: %s",
"ExceptionNonceMismatch": "Das Sicherheitstoken des Formulars konnte nicht verifiziert werden.",
"ExceptionPrivilege": "Sie können auf die Ressource nicht zugreifen, da Sie dafür mindestens %s Rechte benötigen.",
@@ -164,7 +164,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Sie können auf diese Ressource nicht zugreifen, da eine %s Berechtigung für mindestens eine Website benötigt wird.",
"ExceptionUnableToStartSession": "Starten einer Session nicht möglich.",
"ExceptionUndeletableFile": "Löschen von %s nicht möglich",
- "ExceptionUnreadableFileDisabledMethod": "Die Konfigurationsdatei {%s} konnte nicht gelesen werden. Ihr Host hat möglicherweise %s deaktiviert.",
+ "ExceptionUnreadableFileDisabledMethod": "Die Konfigurationsdatei {%1$s} konnte nicht gelesen werden. Ihr Host hat möglicherweise %2$s deaktiviert.",
"ExceptionReportNotFound": "Der gesuchte Bericht existiert nicht.",
"ExceptionWidgetNotFound": "Das gesuchte Widget existiert nicht.",
"ExceptionReportNotEnabled": "Der gesuchte Bericht ist nicht aktiviert. Das bedeutet normalerweise entweder, dass das Plugin, welches den Bericht definiert, deaktiviert ist oder Sie haben nicht die benötigten Berechtigungen, um diesen Bericht einzusehen.",
@@ -212,7 +212,7 @@
"Logout": "Abmelden",
"MainMetrics": "Kernmetriken",
"Matches": "Treffer",
- "MediumToHighTrafficItIsRecommendedTo": "Für Websites mit mittlerem bis hohem Verkehrsaufkommen empfehlen wir, Berichte für den heutigen Tag maximal jede halbe Stunde (%s Sekunden) oder jede Stunde (%s Sekunden) abzuarbeiten.",
+ "MediumToHighTrafficItIsRecommendedTo": "Für Websites mit mittlerem bis hohem Verkehrsaufkommen empfehlen wir, Berichte für den heutigen Tag maximal jede halbe Stunde (%1$s Sekunden) oder jede Stunde (%2$s Sekunden) abzuarbeiten.",
"Metadata": "Metadaten",
"Metric": "Metrik",
"Metrics": "Metriken",
@@ -269,7 +269,7 @@
"OptionalSmtpPort": "Optional. Standard ist 25 für unverschlüsseltes SMTP sowie SMTP mit TLS, und 465 für SMTP mit SSL.",
"Options": "Optionen",
"Or": "oder",
- "OrCancel": "oder %s abbrechen %s",
+ "OrCancel": "oder %1$s abbrechen %2$s",
"Others": "Andere",
"Outlink": "Ausgehender Verweis",
"Outlinks": "Ausgehende Verweise",
@@ -277,9 +277,9 @@
"OverlayRowActionTooltipTitle": "Seiten Overlay öffnen",
"Overview": "Übersicht",
"Pages": "Seiten",
- "Pagination": "%s - %s von %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Parameter %s muss ein ganzzahliger Wert zwischen %s und %s sein.",
+ "Pagination": "%1$s - %2$s von %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Parameter %1$s muss ein ganzzahliger Wert zwischen %2$s und %3$s sein.",
"Password": "Passwort",
"Period": "Zeitraum",
"Piechart": "Kreisdiagramm",
@@ -331,7 +331,7 @@
"Clear": "Zurücksetzen",
"SearchNoResults": "Keine Ergebnisse",
"SeeAll": "alle ansehen",
- "SeeTheOfficialDocumentationForMoreInformation": "Weitere Informationen finden Sie in der %soffiziellen Dokumentation%s.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Weitere Informationen finden Sie in der %1$soffiziellen Dokumentation%2$s.",
"SeeThisFaq": "Siehe %1$sdiese FAQ%2$s.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Wählen Sie \"Ja\", wenn Sie E-Mails über einen Server verschicken möchten, anstatt die lokale mail()-Funktion zu benutzen.",
@@ -358,7 +358,7 @@
"Total": "Gesamt",
"TotalRatioTooltip": "Das entspricht %1$s von %2$s %3$s.",
"TotalRevenue": "Gesamteinnahmen",
- "TotalVisitsPageviewsActionsRevenue": "(Gesamt: %s Besuche, %s Seitenansichten, %s Aktionen, %s Einnahmen)",
+ "TotalVisitsPageviewsActionsRevenue": "(Gesamt: %1$s Besuche, %2$s Seitenansichten, %3$s Aktionen, %4$s Einnahmen)",
"TrackingScopeAction": "Aktion",
"TrackingScopePage": "Seite",
"TrackingScopeVisit": "Besuch",
@@ -395,8 +395,8 @@
"WarningFileIntegrityNoManifest": "Aufgrund der fehlenden Datei manifest.inc.php konnte die Integritätsprüfung nicht durchgeführt werden.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Wenn Sie Piwik von Git deployen ist diese Nachricht normal.",
"WarningFileIntegrityNoMd5file": "Durch die fehlende md5_file() Funktion konnte die Integritätsprüfung nicht durchgeführt werden.",
- "WarningPasswordStored": "%sWarnung:%s Dieses Passwort wird in der Konfigurationsdatei gespeichert und ist so für jeden sichtbar, der auf diese Datei Zugriff hat.",
- "WarningDebugOnDemandEnabled": "Der Tracker befindet sich im %s Modus. Aus Sicherheitsgründen sollte dieser nur für einen kurzen Zeitraum aktiv sein. Um Ihn zu deaktivieren setzen Sie %s auf %s in %s",
+ "WarningPasswordStored": "%1$sWarnung:%2$s Dieses Passwort wird in der Konfigurationsdatei gespeichert und ist so für jeden sichtbar, der auf diese Datei Zugriff hat.",
+ "WarningDebugOnDemandEnabled": "Der Tracker befindet sich im %1$s Modus. Aus Sicherheitsgründen sollte dieser nur für einen kurzen Zeitraum aktiv sein. Um Ihn zu deaktivieren setzen Sie %2$s auf %3$s in %4$s",
"Website": "Website",
"Weekly": "Wöchentlich",
"WeeklyReport": "wöchentlich",
@@ -450,7 +450,7 @@
"MultiChartLabel": "Multisite Graphen anzeigen",
"NavigationBack": "Zurück",
"NetworkError": "Netzwerkfehler",
- "NetworkErrorWithStatusCode": "Folgender Fehler trat auf \"%s\". Die Anfrage gab den Status \"%s\" zurück. URL war \"%s\". Bitte die eingegebene URL überprüfen und die Fehlerlog Dateien auf dem Server überprüfen, um mehr Informationen zu diesem Fehler und wie er zu beheben ist, zu erfahren.",
+ "NetworkErrorWithStatusCode": "Folgender Fehler trat auf \"%1$s\". Die Anfrage gab den Status \"%2$s\" zurück. URL war \"%3$s\". Bitte die eingegebene URL überprüfen und die Fehlerlog Dateien auf dem Server überprüfen, um mehr Informationen zu diesem Fehler und wie er zu beheben ist, zu erfahren.",
"NetworkErrorWithStatusCodeShort": "Netzwerkfehler %s",
"NetworkNotReachable": "Netzwerk ist nicht erreichbar",
"NoAccountIsSelected": "Kein Zugang ausgewählt. Fügen Sie einen neuen Account hinzu, wenn Sie keinen konfiguriert haben.",
@@ -468,7 +468,7 @@
"RatingDontRemindMe": "Bitte nicht daran erinnern",
"RatingNotNow": "Nicht jetzt",
"RatingNow": "OK, ich bewerte es jetzt",
- "RatingPleaseRateUs": "Piwik Mobile App ist Freie Software, wir würden es sehr zu schätzen wissen, wenn Sie 1 Minute Ihrer wertvollen Zeit opfern würden, um diese App im %s zu bewerten. Falls Sie Vorschläge für neue Features haben oder Fehler melden möchten, bitte kontaktieren Sie %s",
+ "RatingPleaseRateUs": "Piwik Mobile App ist Freie Software, wir würden es sehr zu schätzen wissen, wenn Sie 1 Minute Ihrer wertvollen Zeit opfern würden, um diese App im %1$s zu bewerten. Falls Sie Vorschläge für neue Features haben oder Fehler melden möchten, bitte kontaktieren Sie %2$s",
"ReleaseToRefresh": "Zum Aktualisieren loslassen...",
"Reloading": "Wird neu geladen...",
"RequestTimedOutShort": "Netzwerk Zeitüberschreitung",
@@ -493,7 +493,7 @@
"CompareRows": "Vergleiche Einträge",
"ComparingRecords": "Vergleiche %s Zeilen",
"Documentation": "Klicken Sie auf die Metriken, um sie im großen Entwicklungs-Graphen zu sehen. Verwenden Sie Shift-Klick, um mehrere Metriken gleichzeitig zu sehen.",
- "MetricBetweenText": "zwischen %s und %s",
+ "MetricBetweenText": "zwischen %1$s und %2$s",
"MetricChangeText": "%s in diesem Zeitraum",
"MetricMinMax": "%1$s bewegte sich während dem Zeitraum zwischen %2$s und %3$s",
"MetricsFor": "Metriken für %s",
diff --git a/lang/el.json b/lang/el.json
index c8a479aaef..23662599ba 100644
--- a/lang/el.json
+++ b/lang/el.json
@@ -15,7 +15,7 @@
"API": "API",
"Apply": "Εφαρμογή",
"ArchivingInlineHelp": "Για μεσαίας ή μεγάλης επισκεψιμότητας ιστοσελίδες, προτείνεται να απενεργοποιήσετε την αρχειοθέτηση από τον φυλλομετρητή. Αντί για αυτό, σας προτείνουμε να εγκαταστήσετε μια εργασία cron για να δημιουργείτε αναφορές Piwik κάθε ώρα.",
- "ArchivingTriggerDescription": "Συνιστάται για μεγάλες εγκαταστάσεις του Piwik. Χρειάζεται να %sεγκαταστήσετε μια εργασία cron%s για να δημιουργείτε τις αναφορές αυτόματα.",
+ "ArchivingTriggerDescription": "Προτείνεται για μεγάλες εγκαταστάσεις του Piwik, πρέπει να %1$sορίσετε μια εργασία cron%2$s για να γίνεται αυτόματη επεξεργασία των αναφορών.",
"AuthenticationMethodSmtp": "Μέθοδος πιστοποίησης SMTP",
"AverageOrderValue": "Μέση τιμή παραγγελίας",
"AveragePrice": "Μέση τιμή",
@@ -27,10 +27,9 @@
"CannotUnzipFile": "Αδύνατη η αποσυμπίεση αρχείου %1$s: %2$s",
"ChangePassword": "Αλλαγή κωδικού",
"ChangeTagCloudView": "Σημειώστε ότι μπορείτε να δείτε την αναφορά με άλλους τρόπους εκτός από σύννεφο ετικετών. Χρησιμοποιήστε τα κουμπί στο κάτω μέρος της αναφοράς για αυτό.",
- "ChooseDate": "Επιλογή ημερομηνίας",
+ "ChooseDate": "Επιλέξτε ημερομηνία, αυτή τη στιγμή επιλεγμένη είναι η: %s",
"ChooseLanguage": "Επιλογή γλώσσας",
"ChoosePeriod": "Επιλογή περιόδου",
- "ChooseWebsite": "Επιλογή ιστοσελίδας",
"ClickHere": "Πατήστε εδώ για περισσότερες πληροφορίες.",
"ClickToChangePeriod": "Πατήστε πάλι για αλλαγή της περιόδου.",
"Close": "Κλείσιμο",
@@ -84,9 +83,11 @@
"ColumnViewedAfterSearchDocumentation": "Ο αριθμός των επισκέψεων σε αυτή τη σελίδα, έπειτα από αναζήτηση ενός επισκέπτη στην ιστοσελίδα σας και αφού στη συνέχεια έκανε κλικ σε αυτή τη σελίδα από τα αποτελέσματα αναζήτησης.",
"ColumnVisitDuration": "Διάρκεια επίσκεψης (σε δευτερόλεπτα)",
"ColumnVisitsWithConversions": "Επισκέψεις με Μετατροπές",
- "ConfigFileIsNotWritable": "Το αρχείο ρυθμίσεων %s του Piwik δεν είναι εγγράψιμο. Οι αλλαγές σας δεν θα αποθηκευτούν. %s Αλλάξτε τα δικαιώματα στο αρχείο ρυθμίσεων για να το κάνετε εγγράψιμο.",
+ "ConfigFileIsNotWritable": "Το αρχείο ρυθμίσεων %1$s του Piwik δεν είναι εγγράψιμο, ορισμένες από τις αλλαγές σας δεν θα αποθηκευτούν. %2$s Αλλάξτε τα δικαιώματα στο αρχείο ρυθμίσεων για να το κάνετε εγγράψιμο.",
"Continue": "Συνέχεια",
"ContinueToPiwik": "Συνέχεια στο Piwik",
+ "CurrentlyUsingUnsecureHttp": "Αυτή τη στιγμή χρησιμοποιείτε το Piwik πάνω από μη ασφαλή σύνδεση HTTP, γεγονός που εμπεριέχει ρίσκο. Συνιστούμε να παραμετροποιήσετε το Piwik για χρήση SSL (HTTPS) για βελτιωμένη ασφάλεια.",
+ "CreatedByUser": "δημιουργήθηκε από %s",
"CurrentMonth": "Τρέχων Μήνας",
"CurrentWeek": "Τρέχουσα Εβδομάδα",
"CurrentYear": "Τρέχον Έτος",
@@ -100,7 +101,7 @@
"Date": "Ημερομηνία",
"DateRange": "Χρονική περίοδος",
"DateRangeFrom": "Από",
- "DateRangeFromTo": "Από %s έως %s",
+ "DateRangeFromTo": "Από %1$s σε %2$s",
"DateRangeInPeriodList": "εύρος ημερομηνίας",
"DateRangeTo": "Προς",
"DaysHours": "%1$s μέρες %2$s ώρες",
@@ -133,30 +134,30 @@
"Edit": "Επεξεργασία",
"EncryptedSmtpTransport": "Εισάγετε το κρυπτογραφημένο επίπεδο μεταφοράς που απαιτείται από τον διακομιστή SMTP σας.",
"Error": "Σφάλμα",
- "ErrorRequest": "Ουπς... υπήρξε πρόβλημα κατά την επεξεργασία της αίτησης. Μπορεί ο διακομιστής να είχε ένα προσωρινό πρόβλημα ή μπορεί να ζητήσατε μια αναφορά με πάρα πολλά δεδομένα. Παρακαλούμε δοκιμάστε ξανά. Αν το σφάλμα επαναλαμβάνεται διαρκώς, παρακαλούμε %sεπικοινωνήστε με τον διαχειριστή του Piwik σας%s για βοήθεια.",
+ "ErrorRequest": "Ουπς... υπήρξε ένα πρόβλημα κατά την αίτηση. Είναι πιθανόν ο διακομιστής να αντιμετώπισε ένα προσωρινό πρόβλημα ή να κάνατε μια αίτηση με πάρα πολλά δεδομένα. Παρακαλώ ξαναδοκιμάστε. Αν το σφάλμα επαναληφθεί ξανά %1$sεπικοινωνήστε με τον διαχειριστή σας του Piwik%2$s για βοήθεια.",
"EvolutionOverPeriod": "Εξέλιξη εντός της περιόδου",
"EvolutionSummaryGeneric": "%1$s στο %2$s σε σύγκριση με το %3$s στο %4$s. Εξέλιξη: %5$s",
- "ExceptionContactSupportGeneric": "Αν συνεχίζετε να αντιμετωπίζετε αυτό το πρόβλημα, %sεπικοινωνήστε με τον διαχειριστή του Piwik σας%s για βοήθεια.",
+ "ExceptionContactSupportGeneric": "Αν συνεχίζετε να αντιμετωπίζετε πρόβλημα, %1$sεπικοινωνήστε με τον διαχειριστή σας του Piwik%2$s για βοήθεια.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Ο χρήστης πρέπει να είναι είτε Υπερ-Χρήστης είτε ο ίδιος ο χρήστης '%s'.",
"ExceptionConfigurationFileNotFound": "Δεν βρέθηκε το αρχείο ρυθμίσεων {%s} ή δεν ήταν δυνατή η ανάγνωσή του.",
- "ExceptionConfigurationFileNotFound2": "Αν το αρχείο υπάρχει, ελέγξτε ότι το %s είναι αναγνώσιμο από το χρήστη '%s'.",
+ "ExceptionConfigurationFileNotFound2": "Αν το αρχείο υπάρχει, ελέγξτε αν είναι %1$s αναγνώσιμο από τον χρήστη '%2$s'.",
"ExceptionDatabaseVersion": "Η έκδοσή %1$s είναι %2$s αλλά το Piwik απαιτεί τουλάχιστον %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Ο κώδικας του Piwik εκτελεί την παλιότερη έκδοση %1$s και εντοπίστηκε ότι η βάση δεδομένων του Piwik έχει ήδη αναβαθμιστεί στην νεότερη έκδοση %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Είναι πιθανόν οι διαχειριστές του Piwik να τελειώνουν τη διαδικασία αναβάθμισης. Παρακαλούμε δοκιμάστε πάλι αργότερα σε λίγα λεπτά.",
"ExceptionFileIntegrity": "Ο έλεγχος ακεραιότητας απέτυχε: %s",
"ExceptionFilesizeMismatch": "Αταίριαστο μέγεθος αρχείου: %1$s (αναμενόμενο: %2$s, βρέθηκε: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Η έκδοση πελάτη σας %1$s είναι %2$s η οποία είναι ασύμβατη με την έκδοση διακομιστή %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Η μορφή των συνολικών αναφορών «%s» δεν είναι έγκυρη. Δοκιμάστε κάποια από τις επόμενες: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Η μορφή του αθροίσματος αναφορών '%1$s' δεν είναι έγκυρη. Δοκιμάστε μια από τις παρακάτω: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Ο ημερήσιος χρόνος αρχειοθέτησης πρέπει να είναι ένας θετικός αριθμός δευτερολέπτων.",
- "ExceptionInvalidDateFormat": "Η ημερομηνία πρέπει να έχει μορφή: %s ή οποιαδήποτε λέξη κλειδί υποστηρίζεται από τη συνάρτηση %s (δείτε την %s για περισσότερες πληροφορίες)",
- "ExceptionInvalidDateRange": "Η ημερομηνία «%s» δεν είναι ορθό εύρος ημερομηνιών. Πρέπει να έχει την ακόλουθη μορφή: %s.",
- "ExceptionInvalidPeriod": "Η περίοδος «%s» δεν υποστηρίζεται. Δοκιμάστε κάποια από τις ακόλουθες: %s.",
- "ExceptionInvalidRendererFormat": "Η μορφή του Αναφορέα «%s» δεν είναι έγκυρη. Δοκιμάστε κάποιο από τις ακόλουθες: %s.",
- "ExceptionInvalidReportRendererFormat": "Η μορφή αναφοράς «%s» δεν είναι έγκυρη. Δοκιμάστε κάποια από τις επόμενες: %s.",
- "ExceptionInvalidStaticGraphType": "Ο στατικός τύπος διαγράμματος «%s» δεν είναι έγκυρος. Δοκιμάστε κάποιον από τους επόμενους: %s.",
+ "ExceptionInvalidDateFormat": "Η μορφή ημερομηνίας πρέπει να είναι: %1$s ή οποιαδήποτε λέξη κλειδί υποστηρίζεται από την συνάρτηση %2$s (δείτε το %3$s για περισσότερες πληροφορίες)",
+ "ExceptionInvalidDateRange": "Η ημερομηνία '%1$s' δεν είναι σωστή μορφή εύρους ημερομηνίας. Θα πρέπει να έχει την ακόλουθη μορφή: %2$s.",
+ "ExceptionInvalidPeriod": "Η περίοδος '%1$s' δεν υποστηρίζεται. Δοκιμάστε μία από τις παρακάτω: %2$s",
+ "ExceptionInvalidRendererFormat": "Η μορφή απόδοσης '%1$s' δεν είναι έγκυρη. Δοκιμάστε μία από τις παρακάτω: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Η μορφή αναφοράς '%1$s' δεν είναι έγκυρη. Δοκιμάστε μία από τις παρακάτω: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Ο τύπος στατικού γραφήματος '%1$s' δεν είναι έγκυρος. Δοκιμάστε έναν από τις παρακάτω: %2$s.",
"ExceptionInvalidToken": "Το τεκμήριο δεν είναι έγκυρο.",
"ExceptionLanguageFileNotFound": "Το αρχείο γλώσσας «%s» δεν βρέθηκε.",
- "ExceptionMethodNotFound": "Η μέθοδος «%s» δεν υπάρχει ή δεν είναι διαθέσιμη στο πρότυπο «%s».",
+ "ExceptionMethodNotFound": "Η μέθοδος '%1$s' δεν υπάρχει ή δεν είναι διαθέσιμη στη μονάδα '%2$s'.",
"ExceptionMissingFile": "Απολεσθέν αρχείο: %s",
"ExceptionNonceMismatch": "Αδύνατη η πιστοποίηση τεκμηρίου ασφάλειας σε αυτή τη φόρμα.",
"ExceptionPrivilege": "Δεν έχετε πρόσβαση σε αυτή την προέλευση καθώς απαιτεί πρόσβαση %s.",
@@ -164,7 +165,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Δεν έχετε πρόσβαση σε αυτή τη προέλευση καθώς απαιτεί πρόσβαση %s για τουλάχιστον μια ιστοσελίδα.",
"ExceptionUnableToStartSession": "Αδύνατη η έναρξη της συνεδρίας.",
"ExceptionUndeletableFile": "Αδύνατη η διαγραφή του %s",
- "ExceptionUnreadableFileDisabledMethod": "Δεν είναι δυνατή η ανάγνωση του αρχείου ρυθμίσεων {%s} δεν μπορεί να αναγνωστεί. Ο διακομιστής σας μπορεί να απενεργοποίησε το %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Δεν ήταν δυνατή η ανάγνωση του αρχείου {%1$s}. Ο διακομιστής σας μπορεί να έχει απενεργοποιημένο το %2$s.",
"ExceptionReportNotFound": "Δεν υπάρχει η ζητούμενη αναφορά.",
"ExceptionWidgetNotFound": "Το ζητούμενο γραφικό συστατικό δεν υπάρχει.",
"ExceptionReportNotEnabled": "Η ζητούμενη αναφορά δεν είναι ενεργή. Αυτό συνήθως σημαίνει ότι είτε το πρόσθετο που ορίζει την αναφορά είναι ανενεργό είτε δεν έχετε την απαιτούμενη πρόσβαση για να την δείτε.",
@@ -212,7 +213,7 @@
"Logout": "Αποσύνδεση",
"MainMetrics": "Βασικές μετρήσεις",
"Matches": "Ταιριάζει",
- "MediumToHighTrafficItIsRecommendedTo": "Για μεσαίας ή μεγάλης επισκεψιμότητας ιστοσελίδες, προτείνεται η δημιουργία των αναφορών για σήμερα να γίνεται το πολύ κάθε μισή ώρα (%s δευτερόλεπτα) ή κάθε ώρα (%s δευτερόλεπτα).",
+ "MediumToHighTrafficItIsRecommendedTo": "Για ιστοτόπους μέσης με υψηλής επισκεψιμότητας, προτείνουμε να γίνεται επεξεργασία των αναφορών για την τρέχουσα μέρα το πολύ κάθε μισή ώρα (%1$s δευτερόλεπτα) ή κάθε ώρα (%2$s δευτερόλεπτα).",
"Metadata": "Μεταδεδομένα",
"Metric": "Μέτρηση",
"Metrics": "Μετρήσεις",
@@ -230,6 +231,7 @@
"Name": "Ονομασία",
"NbActions": "Αριθμός Δραστηριοτήτων",
"NbSearches": "Αριθμός Εσωτερικών Αναζητήσεων",
+ "NeedMoreHelp": "Χρειάζεστε βοήθεια;",
"Never": "Ποτέ",
"NewReportsWillBeProcessedByCron": "Αν η αρχειοθέτηση δεν ενεργοποιείται από τον φυλλομετρητή, οι νέες αναφορές θα προωθούνται από το crontab.",
"NewUpdatePiwikX": "Νέα Ενημέρωση: Piwik %s",
@@ -269,7 +271,7 @@
"OptionalSmtpPort": "Προαιρετικό: Η 25 είναι η προεπιλεγμένη θύρα για μη κρυπτογραφημένο και TLS SMTP. Η 465 για SSL SMTP.",
"Options": "Επιλογές",
"Or": "ή",
- "OrCancel": "ή %s Άκυρο %s",
+ "OrCancel": "ή %1$s Άκυρο %2$s",
"Others": "Άλλα",
"Outlink": "Εξωτερικός σύνδεσμος",
"Outlinks": "Εξωτερικοί σύνδεσμοι",
@@ -277,9 +279,9 @@
"OverlayRowActionTooltipTitle": "Άνοιγμα Υπερκάλυψης Σελίδας",
"Overview": "Συνολική εικόνα",
"Pages": "Σελίδες",
- "Pagination": "%s - %s από %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Η παράμετρος %s πρέπει να είναι ακέραιος μεταξύ %s και %s.",
+ "Pagination": "%1$s - %2$s από %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Η παράμετρος %1$s πρέπει να είναι ακέραιος αριθμός μεταξύ %2$s και %3$s.",
"Password": "Κωδικός",
"Period": "Περίοδος",
"Piechart": "Διάγραμμα πίτας",
@@ -331,7 +333,7 @@
"Clear": "Καθαρισμός",
"SearchNoResults": "Δεν υπάρχουν αποτελέσματα.",
"SeeAll": "δείτε τα όλα",
- "SeeTheOfficialDocumentationForMoreInformation": "Δείτε την %sεπίσημη τεκμηρίωση%s για περισσότερες πληροφορίες.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Δείτε την %1$sεπίσημη τεκμηρίωση%2$s για περισσότερες πληροφορίες.",
"SeeThisFaq": "Δείτε %1$sτις συχνές ερωτήσεις-απαντήσεις%2$s.",
"Segment": "Τμήμα",
"SelectYesIfYouWantToSendEmailsViaServer": "Επιλέξτε «Ναι», αν θέλετε να αποστείλετε την ηλεκτρονική επιστολή μέσω ενός ονοματισμένου διακομιστή αντί της τοπικής συνάρτησης αλληλογραφίας",
@@ -358,7 +360,7 @@
"Total": "Σύνολο",
"TotalRatioTooltip": "Αυτό είναι το %1$s από όλες τις %2$s %3$s.",
"TotalRevenue": "Συνολική Πρόσοδος",
- "TotalVisitsPageviewsActionsRevenue": "(Σύνολα: %s επισκέψεις, %s προβολές σελίδων, %s ενέργειες, %s κέρδος)",
+ "TotalVisitsPageviewsActionsRevenue": "(Συνολικά: %1$s επισκέψεις, %2$s αναγνώσεις σελίδων, %3$s ενέργειες, %4$s κέρδος)",
"TrackingScopeAction": "Ενέργεια",
"TrackingScopePage": "Σελίδα",
"TrackingScopeVisit": "Επίσκεψη",
@@ -395,8 +397,8 @@
"WarningFileIntegrityNoManifest": "Ο έλεγχος ακεραιότητας αρχείου δεν μπορεί να πραγματοποιηθεί επειδή λείπει το αρχείο manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Αν παίρνετε το Piwik από το Git, το μήνυμα αυτό είναι φυσιολογικό.",
"WarningFileIntegrityNoMd5file": "Ο έλεγχος ακεραιότητας αρχείου δεν μπορεί να ολοκληρωθεί γιατί είναι ανενεργή η συνάρτηση md5_file().",
- "WarningPasswordStored": "%sΠροειδοποίηση:%s Αυτός ο κωδικός πρόσβασης θα αποθηκευτεί στο αρχείο ρυθμίσεων και θα είναι ορατός από οποιονδήποτε έχει πρόσβαση σε αυτό.",
- "WarningDebugOnDemandEnabled": "Η κατάσταση Παρακολούθησης %s είναι ενεργή. Για λόγους ασφαλείας, θα πρέπει να ενεργοποιείται μόνο για συγκεκριμένο χρονικό διάστημα. Για να την απενεργοποιήσετε, ορίστε το %s σε %s στο %s",
+ "WarningPasswordStored": "%1$sΠροσοχή:%2$s Αυτό το συνθηματικό θα αποθηκευτεί στο αρχείο ρυθμίσεων και θα είναι ορατό από οποιονδήποτε έχει πρόσβαση σε αυτό.",
+ "WarningDebugOnDemandEnabled": "Η κατάσταση Παρακολούθησης %1$s είναι ενεργοποιημένη. Για λόγους ασφάλειας, θα πρέπει να είναι ενεργοποιημένη μόνο για σύντομο χρονικό διάστημα. Για να την απενεργοποιήσετε θέσετε το %2$s σε %3$s στο %4$s",
"Website": "Ιστοσελίδα",
"Weekly": "Εβδομαδιαίως",
"WeeklyReport": "εβδομαδιαία",
@@ -450,7 +452,7 @@
"MultiChartLabel": "Προβολή μικροδιαγραμμάτων",
"NavigationBack": "Πίσω",
"NetworkError": "Σφάλμα δικτύου",
- "NetworkErrorWithStatusCode": "Συνέβη ένα σφάλμα \"%s\". Το αίτημα επέστρεψε την κατάσταση \"%s\". Η διεύθυνση URL ήταν \"%s\". Παρακαλούμε ελέγξτε τη διεύθυνση URL σας και τα αρχεία καταγραφής των σφαλμάτων σε αυτόν τον εξυπηρετητή για περισσότερες πληροφορίες σχετικά με το σφάλμα και πώς να το λύσετε.",
+ "NetworkErrorWithStatusCode": "Υπήρξε ένα σφάλμα \"%1$s\". Η αίτηση επέστρεψε την κατάσταση \"%2$s\". Η διεύθυνση URL ήταν \"%3$s\". Παρακαλώ ελέγξτε το URL που εισαγάγατε και το ημερολόγιο σφαλμάτων στον διακομιστή για περισσότερες πληροφορίες σχετικά με το σφάλμα και πως να το διορθώσετε.",
"NetworkErrorWithStatusCodeShort": "Σφάλμα δικτύου %s",
"NetworkNotReachable": "Το δίκτυο δεν είναι προσβάσιμο",
"NoAccountIsSelected": "Πρέπει να επιλέξετε ένα λογαριασμό. Προσθέστε ένα νέο λογαριασμό αν δεν έχετε ήδη ρυθμίσει κάποιον.",
@@ -468,7 +470,7 @@
"RatingDontRemindMe": "Χωρίς υπενθύμιση",
"RatingNotNow": "Όχι τώρα",
"RatingNow": "Εντάξει, θα το βαθμολογήσω τώρα",
- "RatingPleaseRateUs": "Η εφαρμογή του Piwik για κινητά είναι Ελεύθερο Λογισμικό. Θα το εκτιμούσαμε αν είχατε 1 λεπτό για να αξιολογήσετε την εφαρμογή στο %s. Αν έχετε προτάσεις για νέα χαρακτηριστικά ή αναφορές για σφάλματα, επικοινωνήστε στο %s",
+ "RatingPleaseRateUs": "Το Piwik Mobile App είναι Ελεύθερο Λογισμικό, θα το εκτιμούσαμε ιδιαίτερα αν δίνατε 1 λεπτό για να βαθμολογήσετε την εφαρμογή στο %1$s. Αν έχετε τυχόν προτάσεις ή θέλετε να αναφέρετε σφάλματα, ελάτε σε επικοινωνία με %2$s",
"ReleaseToRefresh": "Απελευθερώστε το για ανανέωση...",
"Reloading": "Επαναφόρτωση...",
"RequestTimedOutShort": "Σφάλμα Λήξης Χρόνου Δικτύου",
@@ -493,7 +495,7 @@
"CompareRows": "Σύγκριση εγγραφών",
"ComparingRecords": "Σύγκριση %s εγγραφών",
"Documentation": "Πατήστε στις μετρήσεις για να τις προβάλετε στο μεγάλο διάγραμμα. Πατήστε Shift+κλικ για προβολή πολλαπλών μετρήσεων ταυτόχρονα.",
- "MetricBetweenText": "μεταξύ %s και %s",
+ "MetricBetweenText": "από %1$s σε %2$s",
"MetricChangeText": "%s μετά την περίοδο",
"MetricMinMax": "Το %1$s σε εύρος μεταξύ του %2$s και %3$s μέσα σε περίοδο",
"MetricsFor": "Μετρήσεις για %s",
diff --git a/lang/en.json b/lang/en.json
index 6581f7fc47..810c4bc81b 100644
--- a/lang/en.json
+++ b/lang/en.json
@@ -15,7 +15,7 @@
"API": "API",
"Apply": "Apply",
"ArchivingInlineHelp": "For medium to high traffic websites, it is recommended to disable Piwik archiving to trigger from the browser. Instead, we recommend that you setup a cron job to process Piwik reports every hour.",
- "ArchivingTriggerDescription": "Recommended for larger Piwik installs, you need to %ssetup a cron job%s to process the reports automatically.",
+ "ArchivingTriggerDescription": "Recommended for larger Piwik installs, you need to %1$ssetup a cron job%2$s to process the reports automatically.",
"AuthenticationMethodSmtp": "Authentication method for SMTP",
"AverageOrderValue": "Average Order Value",
"AveragePrice": "Average Price",
@@ -27,10 +27,9 @@
"CannotUnzipFile": "Cannot unzip file %1$s: %2$s",
"ChangePassword": "Change password",
"ChangeTagCloudView": "Please note, that you can view the report in other ways than as a tag cloud. Use the controls at the bottom of the report to do so.",
- "ChooseDate": "Choose date",
+ "ChooseDate": "Choose date, currently selected date is: %s",
"ChooseLanguage": "Choose language",
"ChoosePeriod": "Choose period",
- "ChooseWebsite": "Choose website",
"ClickHere": "Click here for more information.",
"ClickToChangePeriod": "Click again to change the period.",
"Close": "Close",
@@ -84,9 +83,11 @@
"ColumnViewedAfterSearchDocumentation": "The number of times this Page was visited after a visitor did a search on your website, and clicked on this page in the search results.",
"ColumnVisitDuration": "Visit Duration (in seconds)",
"ColumnVisitsWithConversions": "Visits with Conversions",
- "ConfigFileIsNotWritable": "The Piwik configuration file %s is not writable, some of your changes might not be saved. %s Please change permissions of the config file to make it writable.",
+ "ConfigFileIsNotWritable": "The Piwik configuration file %1$s is not writable, some of your changes might not be saved. %2$s Please change permissions of the config file to make it writable.",
"Continue": "Continue",
"ContinueToPiwik": "Continue to Piwik",
+ "CurrentlyUsingUnsecureHttp": "You are currently using Piwik over unsecure HTTP, which can be risky. We recommend you set up Piwik to use SSL (HTTPS) for improved security.",
+ "CreatedByUser": "created by %s",
"CurrentMonth": "Current Month",
"CurrentWeek": "Current Week",
"CurrentYear": "Current Year",
@@ -100,7 +101,7 @@
"Date": "Date",
"DateRange": "Date range:",
"DateRangeFrom": "From",
- "DateRangeFromTo": "From %s to %s",
+ "DateRangeFromTo": "From %1$s to %2$s",
"DateRangeInPeriodList": "date range",
"DateRangeTo": "To",
"DaysHours": "%1$s days %2$s hours",
@@ -133,30 +134,30 @@
"Edit": "Edit",
"EncryptedSmtpTransport": "Enter the transport layer encryption required by your SMTP server.",
"Error": "Error",
- "ErrorRequest": "Oops\u2026 there was a problem during the request. Maybe the server had a temporary issue, or maybe you requested a report with too much data. Please try again. If this error occurs repeatedly please %scontact your Piwik administrator%s for assistance.",
+ "ErrorRequest": "Oops… there was a problem during the request. Maybe the server had a temporary issue, or maybe you requested a report with too much data. Please try again. If this error occurs repeatedly please %1$scontact your Piwik administrator%2$s for assistance.",
"EvolutionOverPeriod": "Evolution over the period",
"EvolutionSummaryGeneric": "%1$s in %2$s compared to %3$s in %4$s. Evolution: %5$s",
- "ExceptionContactSupportGeneric": "If you still have this issue please %scontact your Piwik administrator%s for assistance. ",
+ "ExceptionContactSupportGeneric": "If you still have this issue please %1$scontact your Piwik administrator%2$s for assistance. ",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "The user has to be either a Super User or the user '%s' itself.",
"ExceptionConfigurationFileNotFound": "The configuration file {%s} has not been found or could not be read.",
- "ExceptionConfigurationFileNotFound2": "If the file exists, please check that %s is readable by the user '%s'.",
+ "ExceptionConfigurationFileNotFound2": "If the file exists, please check that %1$s is readable by the user '%2$s'.",
"ExceptionDatabaseVersion": "Your %1$s version is %2$s but Piwik requires at least %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Your Piwik codebase is running the old version %1$s and we have detected that your Piwik Database has already been upgraded to the newer version %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Maybe your Piwik administrators are currently finishing the upgrade process. Please try again in a few minutes.",
"ExceptionFileIntegrity": "Integrity check failed: %s",
"ExceptionFilesizeMismatch": "File size mismatch: %1$s (expected length: %2$s, found: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Your %1$s client version is %2$s which is incompatible with server version %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Aggregate reports format '%s' not valid. Try any of the following instead: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Aggregate reports format '%1$s' not valid. Try any of the following instead: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Today archive time to live must be a number of seconds greater than zero",
- "ExceptionInvalidDateFormat": "Date format must be: %s or any keyword supported by the %s function (see %s for more information)",
- "ExceptionInvalidDateRange": "The date '%s' is not a correct date range. It should have the following format: %s.",
- "ExceptionInvalidPeriod": "The period '%s' is not supported. Try any of the following instead: %s",
- "ExceptionInvalidRendererFormat": "Renderer format '%s' not valid. Try any of the following instead: %s.",
- "ExceptionInvalidReportRendererFormat": "Report format '%s' not valid. Try any of the following instead: %s.",
- "ExceptionInvalidStaticGraphType": "Static graph type '%s' not valid. Try any of the following instead: %s.",
+ "ExceptionInvalidDateFormat": "Date format must be: %1$s or any keyword supported by the %2$s function (see %3$s for more information)",
+ "ExceptionInvalidDateRange": "The date '%1$s' is not a correct date range. It should have the following format: %2$s.",
+ "ExceptionInvalidPeriod": "The period '%1$s' is not supported. Try any of the following instead: %2$s",
+ "ExceptionInvalidRendererFormat": "Renderer format '%1$s' not valid. Try any of the following instead: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Report format '%1$s' not valid. Try any of the following instead: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Static graph type '%1$s' not valid. Try any of the following instead: %2$s.",
"ExceptionInvalidToken": "Token is not valid.",
"ExceptionLanguageFileNotFound": "Language file '%s' not found.",
- "ExceptionMethodNotFound": "The method '%s' does not exist or is not available in the module '%s'.",
+ "ExceptionMethodNotFound": "The method '%1$s' does not exist or is not available in the module '%2$s'.",
"ExceptionMissingFile": "Missing file: %s",
"ExceptionNonceMismatch": "Could not verify the security token on this form.",
"ExceptionPrivilege": "You can't access this resource as it requires a %s access.",
@@ -164,7 +165,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "You can't access this resource as it requires an %s access for at least one website.",
"ExceptionUnableToStartSession": "Unable to start session.",
"ExceptionUndeletableFile": "Unable to delete %s",
- "ExceptionUnreadableFileDisabledMethod": "The configuration file {%s} could not be read. Your host may have disabled %s.",
+ "ExceptionUnreadableFileDisabledMethod": "The configuration file {%1$s} could not be read. Your host may have disabled %2$s.",
"ExceptionReportNotFound": "The requested report does not exist.",
"ExceptionWidgetNotFound": "The requested widget does not exist.",
"ExceptionReportNotEnabled": "The requested report is not enabled. This means usually either the plugin that defines the report is deactivated or you do not have enough permission to access this report.",
@@ -213,7 +214,7 @@
"Logout": "Sign out",
"MainMetrics": "Main metrics",
"Matches": "Matches",
- "MediumToHighTrafficItIsRecommendedTo": "For medium to high traffic websites, we recommend to process reports for today at most every half hour (%s seconds) or every hour (%s seconds).",
+ "MediumToHighTrafficItIsRecommendedTo": "For medium to high traffic websites, we recommend to process reports for today at most every half hour (%1$s seconds) or every hour (%2$s seconds).",
"Metadata": "Metadata",
"Metric": "Metric",
"Metrics": "Metrics",
@@ -231,6 +232,7 @@
"Name": "Name",
"NbActions": "Number of Actions",
"NbSearches": "Number of Internal Searches",
+ "NeedMoreHelp": "Need more help?",
"Never": "Never",
"NewReportsWillBeProcessedByCron": "When Piwik archiving is not triggered by the browser, new reports will be processed by the crontab.",
"NewUpdatePiwikX": "New Update: Piwik %s",
@@ -270,7 +272,7 @@
"OptionalSmtpPort": "Optional. Defaults to 25 for unencrypted and TLS SMTP, and 465 for SSL SMTP.",
"Options": "Options",
"Or": "or",
- "OrCancel": "or %s Cancel %s",
+ "OrCancel": "or %1$s Cancel %2$s",
"Others": "Others",
"Outlink": "Outlink",
"Outlinks": "Outlinks",
@@ -278,9 +280,9 @@
"OverlayRowActionTooltipTitle": "Open Page Overlay",
"Overview": "Overview",
"Pages": "Pages",
- "Pagination": "%s - %s of %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Parameter %s must be an integer value between %s and %s.",
+ "Pagination": "%1$s - %2$s of %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Parameter %1$s must be an integer value between %2$s and %3$s.",
"Password": "Password",
"Period": "Period",
"Piechart": "Piechart",
@@ -332,7 +334,7 @@
"Clear": "Clear",
"SearchNoResults": "No results",
"SeeAll": "see all",
- "SeeTheOfficialDocumentationForMoreInformation": "See the %sofficial documentation%s for more information.",
+ "SeeTheOfficialDocumentationForMoreInformation": "See the %1$sofficial documentation%2$s for more information.",
"SeeThisFaq": "See %1$sthis faq%2$s.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Select \"Yes\" if you want or have to send e-mail via a named server instead of the local mail function",
@@ -359,7 +361,7 @@
"Total": "Total",
"TotalRatioTooltip": "This is %1$s of all %2$s %3$s.",
"TotalRevenue": "Total Revenue",
- "TotalVisitsPageviewsActionsRevenue": "(Total: %s visits, %s pageviews, %s actions, %s revenue)",
+ "TotalVisitsPageviewsActionsRevenue": "(Total: %1$s visits, %2$s pageviews, %3$s actions, %4$s revenue)",
"TrackingScopeAction": "Action",
"TrackingScopePage": "Page",
"TrackingScopeVisit": "Visit",
@@ -396,8 +398,8 @@
"WarningFileIntegrityNoManifest": "File integrity check could not be performed due to missing manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "If you are deploying Piwik from Git, this message is normal.",
"WarningFileIntegrityNoMd5file": "File integrity check could not be completed due to missing md5_file() function.",
- "WarningPasswordStored": "%sWarning:%s This password will be stored in the config file visible to everybody who can access it.",
- "WarningDebugOnDemandEnabled": "Tracker %s mode is enabled. For security reasons this should be enabled only for a short time frame. To disable it set %s to %s in %s",
+ "WarningPasswordStored": "%1$sWarning:%2$s This password will be stored in the config file visible to everybody who can access it.",
+ "WarningDebugOnDemandEnabled": "Tracker %1$s mode is enabled. For security reasons this should be enabled only for a short time frame. To disable it set %2$s to %3$s in %4$s",
"Website": "Website",
"Weekly": "Weekly",
"WeeklyReport": "weekly",
@@ -451,7 +453,7 @@
"MultiChartLabel": "Display sparklines",
"NavigationBack": "Back",
"NetworkError": "Network Error",
- "NetworkErrorWithStatusCode": "There was an error \"%s\". The request returned the status \"%s\". URL was \"%s\". Please check your entered URL and the error logs on this server for more information about the error and how to resolve it.",
+ "NetworkErrorWithStatusCode": "There was an error \"%1$s\". The request returned the status \"%2$s\". URL was \"%3$s\". Please check your entered URL and the error logs on this server for more information about the error and how to resolve it.",
"NetworkErrorWithStatusCodeShort": "Network Error %s",
"NetworkNotReachable": "Network not reachable",
"NoAccountIsSelected": "You have to select an account. Add a new account if you haven't configured one.",
@@ -469,7 +471,7 @@
"RatingDontRemindMe": "Don't remind me",
"RatingNotNow": "Not now",
"RatingNow": "OK, I'll rate it now",
- "RatingPleaseRateUs": "Piwik Mobile App is a Free Software, we would really appreciate if you took 1 minute to rate the app in the %s. If you have suggestions of new features or bug reports, please contact %s",
+ "RatingPleaseRateUs": "Piwik Mobile App is a Free Software, we would really appreciate if you took 1 minute to rate the app in the %1$s. If you have suggestions of new features or bug reports, please contact %2$s",
"ReleaseToRefresh": "Release to refresh...",
"Reloading": "Reloading...",
"RequestTimedOutShort": "Network Timeout Error",
@@ -494,7 +496,7 @@
"CompareRows": "Compare records",
"ComparingRecords": "Comparing %s rows",
"Documentation": "Click the metrics to display them in the large evolution graph. Use shift-click to display multiple metrics at once.",
- "MetricBetweenText": "from %s to %s",
+ "MetricBetweenText": "from %1$s to %2$s",
"MetricChangeText": "%s change over the period",
"MetricMinMax": "%1$s ranged between %2$s and %3$s over the period",
"MetricsFor": "Metrics for %s",
diff --git a/lang/es.json b/lang/es.json
index 5c2a97a67d..787397776f 100644
--- a/lang/es.json
+++ b/lang/es.json
@@ -12,7 +12,7 @@
"And": "y",
"API": "API",
"ArchivingInlineHelp": "Para sitios de internet de medio o alto tráfico, se recomienda deshabilitar el archivado de Piwik al ingresar con el navegador. En su lugar, le recomendamos que configure una tarea cron para procesar los informes de Piwik cada hora.",
- "ArchivingTriggerDescription": "Recomendado para grandes instalaciones de Piwik, necesita %sconfigurar una tarea de cron %s para procesar los reportes automáticamente.",
+ "ArchivingTriggerDescription": "Recomendado para grandes instalaciones de Piwik, necesita %1$sconfigurar una tarea de cron %2$s para procesar los reportes automáticamente.",
"AuthenticationMethodSmtp": "Método de autenticación SMTP",
"AverageOrderValue": "Valor promedio por pedido",
"AveragePrice": "Precio promedio",
@@ -24,10 +24,8 @@
"CannotUnzipFile": "No se puede descomprimir el archivo %1$s: %2$s",
"ChangePassword": "Cambiar contraseña",
"ChangeTagCloudView": "Por favor tenga en cuenta que puede ver el reporte de otros modos que no sean una nube de etiquetas. Use los controles al final del informe para hacerlo.",
- "ChooseDate": "Elija una fecha",
"ChooseLanguage": "Elegir idioma",
"ChoosePeriod": "Elegir periodo",
- "ChooseWebsite": "Elegir sitio de internet",
"ClickHere": "Haga clic aquí para más información.",
"ClickToChangePeriod": "Clic nuevamente para modificar el período.",
"Close": "Cerrar",
@@ -81,7 +79,7 @@
"ColumnViewedAfterSearchDocumentation": "El número de veces que esta página fue visitada después que un visitante hizo una búsqueda en su sitio, he hizo clic en esta página en los resultados de la búsqueda.",
"ColumnVisitDuration": "Duración de la visita (en segundos)",
"ColumnVisitsWithConversions": "Visitas con conversiones",
- "ConfigFileIsNotWritable": "El archivo de configuración de Piwik %s no tiene permisos de escritura, algunos de los cambios no se guardarán. %s Por favor, cambie los permisos del archivo de configuración para que sea modificable.",
+ "ConfigFileIsNotWritable": "El archivo de configuración de Piwik %1$s no tiene permisos de escritura, algunos de los cambios no se guardarán. %2$s Por favor, cambie los permisos del archivo de configuración para que sea modificable.",
"Continue": "Continuar",
"ContinueToPiwik": "Ir a Piwik",
"CurrentMonth": "Mes actual",
@@ -97,7 +95,7 @@
"Date": "Fecha",
"DateRange": "Rango de fecha:",
"DateRangeFrom": "Desde",
- "DateRangeFromTo": "Desde %s a %s",
+ "DateRangeFromTo": "Desde %1$s a %2$s",
"DateRangeTo": "A",
"DaysHours": "%1$s días %2$s horas",
"DaysSinceFirstVisit": "Días desde la primera visita",
@@ -129,30 +127,30 @@
"Edit": "Editar",
"EncryptedSmtpTransport": "Ingrese el tipo de encriptación de su servidor SMTP.",
"Error": "Error",
- "ErrorRequest": "Oops... hubo un problema durante la petición. Tal vez el servidor tuvo un problema temporal, o tal vez pidió un informe con demasiada información. Por favor vuelva a intentarlo. Si el error ocurre repetidamente, %scontáctese con su administrador Piwik%s para ayudarlo.",
+ "ErrorRequest": "Oops... hubo un problema durante la petición. Tal vez el servidor tuvo un problema temporal, o tal vez pidió un informe con demasiada información. Por favor vuelva a intentarlo. Si el error ocurre repetidamente, %1$scontáctese con su administrador Piwik%2$s para ayudarlo.",
"EvolutionOverPeriod": "Evolución en el periodo",
"EvolutionSummaryGeneric": "%1$s en %2$s comparado con %3$s en %4$s. Evolución: %5$s",
- "ExceptionContactSupportGeneric": "Si todavía tienes este problema, por favor %scontáctese con su administrador Piwik%s en busca de ayuda.",
+ "ExceptionContactSupportGeneric": "Si todavía tienes este problema, por favor %1$scontáctese con su administrador Piwik%2$s en busca de ayuda.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Este usuario debe ser Super User o el mismo usuario '%s'.",
"ExceptionConfigurationFileNotFound": "El archivo de configuración {%s} no fue encontrado o no puedo ser leído.",
- "ExceptionConfigurationFileNotFound2": "Si el archivo existe, por favor compruebe que %s es legible por el usuario '%s'.",
+ "ExceptionConfigurationFileNotFound2": "Si el archivo existe, por favor compruebe que %1$s es legible por el usuario '%2$s'.",
"ExceptionDatabaseVersion": "Su versión %1$s es %2$s pero Piwik requiere al menos %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Su código base Piwik está ejecutando una versión añeja %1$s y hemos detectado que su base de datos Piwik ya se ha actualizado a la versión más reciente %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Tal vez sus administradores Piwik están actualmente finalizando el proceso de actualización. Por favor vuelva a intentarlo en unos minutos.",
"ExceptionFileIntegrity": "Falló la verificación de integridad: %s",
"ExceptionFilesizeMismatch": "Tamaño de archivo incorrecto: %1$s (se esperaba %2$s, se encontró: %3$s)",
"ExceptionIncompatibleClientServerVersions": "La versión de su cliente %1$s %2$s es incompatible con la versión del servidor %3$s",
- "ExceptionInvalidAggregateReportsFormat": "El formato de informes global '%s' no es válido. En su lugar, pruebe alguno de los siguientes: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "El formato de informes global '%1$s' no es válido. En su lugar, pruebe alguno de los siguientes: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "El archivo de hoy debe tener un tiempo de vida en segundos mayor a cero",
- "ExceptionInvalidDateFormat": "El formato de fecha debe ser: %s o cualquier palabra clave soportada por la función %s (vea %s para más información)",
- "ExceptionInvalidDateRange": "La fecha '%s' no es rango de fecha correcto Puede tener el siguiente formato: %s.",
- "ExceptionInvalidPeriod": "El período '%s' no es válido. Pruebe alguno de los siguientes en su lugar: %s.",
- "ExceptionInvalidRendererFormat": "Formato de renderizado '%s' no válido. Pruebe alguno de los siguientes en su lugar: %s.",
- "ExceptionInvalidReportRendererFormat": "El formato de informe '%s' no es válido. Pruebe cualquiera de los siguientes en su lugar: %s.",
- "ExceptionInvalidStaticGraphType": "El tipo de gráfico estático '%s' no es válido. Pruebe alguno de los siguientes en su lugar: %s.",
+ "ExceptionInvalidDateFormat": "El formato de fecha debe ser: %1$s o cualquier palabra clave soportada por la función %2$s (vea %3$s para más información)",
+ "ExceptionInvalidDateRange": "La fecha '%1$s' no es rango de fecha correcto Puede tener el siguiente formato: %2$s.",
+ "ExceptionInvalidPeriod": "El período '%1$s' no es válido. Pruebe alguno de los siguientes en su lugar: %2$s.",
+ "ExceptionInvalidRendererFormat": "Formato de renderizado '%1$s' no válido. Pruebe alguno de los siguientes en su lugar: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "El formato de informe '%1$s' no es válido. Pruebe cualquiera de los siguientes en su lugar: %2$s.",
+ "ExceptionInvalidStaticGraphType": "El tipo de gráfico estático '%1$s' no es válido. Pruebe alguno de los siguientes en su lugar: %2$s.",
"ExceptionInvalidToken": "Token no es válido.",
"ExceptionLanguageFileNotFound": "Archivo de idioma '%s' no encontrado.",
- "ExceptionMethodNotFound": "El método '%s' no existe o no está disponible en el módulo '%s'.",
+ "ExceptionMethodNotFound": "El método '%1$s' no existe o no está disponible en el módulo '%2$s'.",
"ExceptionMissingFile": "Archivo faltante:%s",
"ExceptionNonceMismatch": "No se puede verificar la llave de seguridad en este formulario.",
"ExceptionPrivilege": "No puede acceder a este recurso pues requiere un acceso %s .",
@@ -160,7 +158,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "No se puede acceder a este recurso, ya que requiere un %s de acceso a por lo menos un sitio de internet.",
"ExceptionUnableToStartSession": "No se pudo iniciar sesión.",
"ExceptionUndeletableFile": "No se puede borrar %s",
- "ExceptionUnreadableFileDisabledMethod": "El archivo de configuración {%s} no se pudo leer. Su host puede estar deshabilitado %s.",
+ "ExceptionUnreadableFileDisabledMethod": "El archivo de configuración {%1$s} no se pudo leer. Su host puede estar deshabilitado %2$s.",
"ExceptionReportNotFound": "El informe solicitado no existe.",
"ExceptionWidgetNotFound": "El reproductor solicitado no existe.",
"ExceptionReportNotEnabled": "El informe solicitado no está disponible. Esto significa usualmente que el complemento que confecciona el informe está desactivado o no posee los suficientes permisos para acceder a este informe.",
@@ -208,7 +206,7 @@
"Logout": "Desconectarse",
"MainMetrics": "Métricas principales",
"Matches": "Coincidencias",
- "MediumToHighTrafficItIsRecommendedTo": "Para sitios de internet de medio o alto tráfico, recomendamos procesar los informes de hoy cada media hora (%s segundos) o cada hora (%s segundos).",
+ "MediumToHighTrafficItIsRecommendedTo": "Para sitios de internet de medio o alto tráfico, recomendamos procesar los informes de hoy cada media hora (%1$s segundos) o cada hora (%2$s segundos).",
"Metadata": "Metadatos",
"Metric": "Métrica",
"Metrics": "Métricas",
@@ -262,7 +260,7 @@
"OperationNotEquals": "No Iguales",
"OptionalSmtpPort": "Opcional. Por defecto 25 para SMTP sin encriptación y TLS, y 465 para SSL SMTP",
"Options": "Opciones",
- "OrCancel": "o %s Cancelar %s",
+ "OrCancel": "o %1$s Cancelar %2$s",
"Others": "Otros",
"Outlink": "Enlace externo",
"Outlinks": "Enlaces de salida",
@@ -270,9 +268,9 @@
"OverlayRowActionTooltipTitle": "Superposición página abierta",
"Overview": "General",
"Pages": "Páginas",
- "Pagination": "%s - %s de %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "El parámetro %s debe ser un número entero entre %s y %s.",
+ "Pagination": "%1$s - %2$s de %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "El parámetro %1$s debe ser un número entero entre %2$s y %3$s.",
"Password": "Contraseña",
"Period": "Periodo",
"Piechart": "Gráfica circular",
@@ -324,7 +322,7 @@
"Clear": "Quitar",
"SearchNoResults": "Sin resultados",
"SeeAll": "mostrar todo",
- "SeeTheOfficialDocumentationForMoreInformation": "Vea la %sdocumentación oficial%s para mayor información.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Vea la %1$sdocumentación oficial%2$s para mayor información.",
"SeeThisFaq": "Vea %1$sestas preguntas frecuentes%2$s.",
"Segment": "Segmento",
"SelectYesIfYouWantToSendEmailsViaServer": "Seleccione \"Si\" si desea o tiene que enviar un correo electrónico a través de un servidor remoto en vez de la función correo local",
@@ -381,7 +379,7 @@
"WarningFileIntegrityNoManifest": "La verificación de integridad de archivos no se pudo realizar debido a que falta manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Si está desplegando Piwik con Git, este mensaje es normal.",
"WarningFileIntegrityNoMd5file": "La verificación de integridad no pudo ser completada debido a que falta la función md5_file().",
- "WarningPasswordStored": "%sWarning:%s Esta contraseña se almacenará en el archivo de configuración visible a todo el que pueda acceder a él.",
+ "WarningPasswordStored": "%1$sWarning:%2$s Esta contraseña se almacenará en el archivo de configuración visible a todo el que pueda acceder a él.",
"Website": "Sitio de internet",
"Weekly": "Semanal",
"WeeklyReport": "semanal",
@@ -434,7 +432,7 @@
"MultiChartLabel": "Mostrar minigráficos",
"NavigationBack": "Atrás",
"NetworkError": "Error en la red",
- "NetworkErrorWithStatusCode": "Hubo un error \"%s\". El pedido retornó el estado \"%s\". La URL fue \"%s\". Por favor, revise la URL ingresada y el dato de registro de error en este servidor para una mayor información acerca del error y cómo resolverlo.",
+ "NetworkErrorWithStatusCode": "Hubo un error \"%1$s\". El pedido retornó el estado \"%2$s\". La URL fue \"%3$s\". Por favor, revise la URL ingresada y el dato de registro de error en este servidor para una mayor información acerca del error y cómo resolverlo.",
"NetworkErrorWithStatusCodeShort": "Error de red %s",
"NetworkNotReachable": "Red inaccesible",
"NoAccountIsSelected": "Tiene que seleccionar una cuenta. Agrega una nueva cuenta si no ha configurado una.",
@@ -452,7 +450,7 @@
"RatingDontRemindMe": "No recordarme",
"RatingNotNow": "Ahora no",
"RatingNow": "Está bien, lo evaluaré ahora",
- "RatingPleaseRateUs": "Piwik Mobile App es software libre, realmente apreciaríamos que se tomara 1 minuto para evaluar la aplicación en el %s. Si posee sugerencias de nuevas características o informes de error, por favor póngase en contacto con %s",
+ "RatingPleaseRateUs": "Piwik Mobile App es software libre, realmente apreciaríamos que se tomara 1 minuto para evaluar la aplicación en el %1$s. Si posee sugerencias de nuevas características o informes de error, por favor póngase en contacto con %2$s",
"ReleaseToRefresh": "Suelte para actualizar...",
"Reloading": "Recargando...",
"RequestTimedOutShort": "Error de tiempo de espera de red",
@@ -477,7 +475,7 @@
"CompareRows": "Comparar registros",
"ComparingRecords": "Comparando %s filas",
"Documentation": "Cliquee en las métricas para visualizarlas en un gráfico su evolución en el tiempo. Utilice shit-clic para visualizar múltiples métricas de una vez.",
- "MetricBetweenText": "entre %s y %s",
+ "MetricBetweenText": "entre %1$s y %2$s",
"MetricChangeText": "%s cambio sobre el período",
"MetricMinMax": "%1$s variaba entre %2$s y %3$s en el período",
"MetricsFor": "Métricas para %s",
diff --git a/lang/et.json b/lang/et.json
index 676be0c9ed..c610b75d91 100644
--- a/lang/et.json
+++ b/lang/et.json
@@ -19,10 +19,8 @@
"Cancel": "Katkesta",
"CannotUnzipFile": "Ei saa lahtipakkida faili %1$s: %2$s",
"ChangePassword": "Vaheta salasõna",
- "ChooseDate": "Vali kuupäev",
"ChooseLanguage": "Vali keel",
"ChoosePeriod": "Vali periood",
- "ChooseWebsite": "Vali veebileht",
"ClickHere": "Vajuta siia lisainfo saamiseks.",
"ClickToChangePeriod": "Vajuta siia perioodi muutmiseks.",
"Close": "Sulge",
@@ -73,7 +71,7 @@
"Date": "Kuupäev",
"DateRange": "Kuupäeva vahemik:",
"DateRangeFrom": "Alates",
- "DateRangeFromTo": "Alates %s kuni %s",
+ "DateRangeFromTo": "Alates %1$s kuni %2$s",
"DateRangeTo": "Kuni",
"DaysHours": "%1$s päeva %2$s tundi",
"DaysSinceFirstVisit": "Päevi esmasest külastusest",
@@ -190,7 +188,7 @@
"OperationNotEquals": "Ei võrdu",
"OptionalSmtpPort": "Valikuline. Vaikimisi 25 kaitsmata ja TLS ning 465 krüpteeritud SSL SMTP jaoks.",
"Options": "Valikud",
- "OrCancel": "või %s Katkesta %s",
+ "OrCancel": "või %1$s Katkesta %2$s",
"Others": "Teised",
"Outlink": "Väljuv link",
"Outlinks": "Väljuvad lingid",
@@ -346,7 +344,7 @@
"AvailableMetrics": "Saadaolevad mõõdikud",
"CompareRows": "Võrdle tulemusi",
"ComparingRecords": "Võrdlen %s rida",
- "MetricBetweenText": "alates %s kuni %s",
+ "MetricBetweenText": "alates %1$s kuni %2$s",
"MetricChangeText": "%s muutus perioodi jooksul",
"MetricMinMax": "%1$s varieerus perioodil %2$s ja %3$s vahel",
"MetricsFor": "%s mõõdikud",
diff --git a/lang/eu.json b/lang/eu.json
index 9991094d53..486c1c191f 100644
--- a/lang/eu.json
+++ b/lang/eu.json
@@ -10,7 +10,6 @@
"ChangePassword": "Aldatu pasahitza",
"ChooseLanguage": "Aukeratu hizkuntza",
"ChoosePeriod": "Aukeratu aldia",
- "ChooseWebsite": "Aukeratu webgunea",
"Close": "Itxi",
"ColumnActionsPerVisit": "Ekintzak bisitako",
"ColumnAverageTimeOnPage": "B.b.ko denbora orrialdean",
@@ -63,7 +62,7 @@
"ExceptionFileIntegrity": "Osotasun egiaztapenak huts egin du: %s",
"ExceptionFilesizeMismatch": "Fitxategien tamainak ez datoz bat: %1$s (esperotako luzera: %2$s, aurkitua: %3$s)",
"ExceptionInvalidToken": "Tokena baliogabea da.",
- "ExceptionMethodNotFound": "'%s' metodoa ez dago edo ez dago eskura '%s' moduluan.",
+ "ExceptionMethodNotFound": "'%1$s' metodoa ez dago edo ez dago eskura '%2$s' moduluan.",
"ExceptionMissingFile": "Fitxategia falta da: %s",
"ExceptionNonceMismatch": "Ezin da segurtasun-tokena egiaztatu inprimaki honetan.",
"ExceptionUndeletableFile": "Ezin da %s ezabatu",
@@ -99,7 +98,7 @@
"OnlyEnterIfRequired": "Idatzi erabiltzaile-izena soilik zure SMTP zerbitzariak behar badu",
"OnlyEnterIfRequiredPassword": "Idatzi pasahitza soilik zure SMTP zerbitzariak behar badu",
"OpenSourceWebAnalytics": "Kode irekiko web analitikak",
- "OrCancel": "edo %s utzi %s",
+ "OrCancel": "edo %1$s utzi %2$s",
"Others": "Besteak",
"Outlinks": "Kanpo-loturak",
"Overview": "Orokorra",
diff --git a/lang/fa.json b/lang/fa.json
index 771c513326..f3761b143e 100644
--- a/lang/fa.json
+++ b/lang/fa.json
@@ -13,7 +13,7 @@
"API": "API",
"Apply": "بکارگیری",
"ArchivingInlineHelp": "توصیه می‌شود برای وبسایت‌های با ترافیک متوسط یا بالا گزینه آرشیو پیویک از مرورگر غیر فعال شود. بجای آن توصیه می‌کنیم تا یک cron job برای پردازش گزارش‌ها هر یک ساعت راه‌اندازی شود.",
- "ArchivingTriggerDescription": "شما به %sراه‌اندازی یک cron job%s برای پردازش خودکار گزارش‌ها نیاز دارید.",
+ "ArchivingTriggerDescription": "شما به %1$sراه‌اندازی یک cron job%2$s برای پردازش خودکار گزارش‌ها نیاز دارید.",
"AuthenticationMethodSmtp": "روش تایید هویت برای SMTP",
"AverageOrderValue": "ارزش ترتیبی متوسط",
"AveragePrice": "قیمت متوسط",
@@ -25,10 +25,8 @@
"CannotUnzipFile": "فایل %1$s: %2$s نمی تواند از حالت فشرده خارج شود",
"ChangePassword": "تغییر کلمه عبور",
"ChangeTagCloudView": "لطفا توجه داشته باشید که شما می توانید این گزارش را در راه های دیگر به عنوان یک ابر برچسب مشاهده است. استفاده از کنترل در پایین گزارش به انجام این کار است.",
- "ChooseDate": "انتخاب تاریخ",
"ChooseLanguage": "انتخاب زبان",
"ChoosePeriod": "انتخاب دوره",
- "ChooseWebsite": "انتخاب وب سایت",
"ClickHere": "برای اطلاعات بیشتر اینجا کلیک کنید",
"ClickToChangePeriod": "برای تغییر بازه دوباره کلیک کنید.",
"Close": "بستن",
@@ -95,7 +93,7 @@
"Date": "تاریخ",
"DateRange": "بازه زمانی:",
"DateRangeFrom": "از",
- "DateRangeFromTo": "از %s تا %s",
+ "DateRangeFromTo": "از %1$s تا %2$s",
"DateRangeTo": "به",
"DaysHours": "%1$s روز %2$s ساعت",
"DaysSinceFirstVisit": "روز بعد از اولین بازدید",
@@ -131,12 +129,12 @@
"ExceptionFileIntegrity": "بررسی درستی شکست خورد: %s",
"ExceptionFilesizeMismatch": "اندازه فایل اشتباه است: %1$s (اندازه مورد انتظار:%2$s , اندازه کنونی:%3$s)",
"ExceptionInvalidArchiveTimeToLive": "امروز هم آرشیو زندگی باید تعداد ثانیه بزرگتر از صفر",
- "ExceptionInvalidDateFormat": "قالب تاریخ باید اینگونه باشد: %s یا هر واژه کلیدی دیگری که توسط تابع %s پشتیبانی می شود(برای اطلاعات بیشتر %s را ببینید)",
- "ExceptionInvalidPeriod": "بازه ی '%s' پشتیبانی نمی شود. یکی از این ها را استفاده کنید: %s.",
- "ExceptionInvalidReportRendererFormat": "قالب گزارش '%s' معتبر نمی باشد. یکی از این ها را استفاده کنید: %s.",
+ "ExceptionInvalidDateFormat": "قالب تاریخ باید اینگونه باشد: %1$s یا هر واژه کلیدی دیگری که توسط تابع %2$s پشتیبانی می شود(برای اطلاعات بیشتر %3$s را ببینید)",
+ "ExceptionInvalidPeriod": "بازه ی '%1$s' پشتیبانی نمی شود. یکی از این ها را استفاده کنید: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "قالب گزارش '%1$s' معتبر نمی باشد. یکی از این ها را استفاده کنید: %2$s.",
"ExceptionInvalidToken": "رمز معتبر نیست.",
"ExceptionLanguageFileNotFound": "فایل زبان '%s' یافت نشد",
- "ExceptionMethodNotFound": "متد'%s' وجود ندارد یا در این ماژول '%s'موجود نیست.",
+ "ExceptionMethodNotFound": "متد'%1$s' وجود ندارد یا در این ماژول '%2$s'موجود نیست.",
"ExceptionMissingFile": "فایل مفقود: %s",
"ExceptionNonceMismatch": "آیا این نشانه رمز امنیتی در این فرم معتبر نیست.",
"ExceptionPrivilege": "شما نمی توانید به این منبع دسترسی داشته باشید زیرا این به دسترسی %s نیاز دارد.",
@@ -186,7 +184,7 @@
"Logout": "خروج",
"MainMetrics": "معیار های اصلی",
"Matches": "مسابقه ها",
- "MediumToHighTrafficItIsRecommendedTo": "برای وبسایت های با ترافیک متوسط یا بالا , ما توصیه می کنیم که گزارش های هرروز را حداکثر هر نیم ساعت (%s ثانیه) یا هر ساعت (%s ثانیه) پردازش کنید.",
+ "MediumToHighTrafficItIsRecommendedTo": "برای وبسایت های با ترافیک متوسط یا بالا , ما توصیه می کنیم که گزارش های هرروز را حداکثر هر نیم ساعت (%1$s ثانیه) یا هر ساعت (%2$s ثانیه) پردازش کنید.",
"Metadata": "متا داده",
"Metric": "معیار",
"Metrics": "معیار ها",
@@ -237,7 +235,7 @@
"OperationNotEquals": "برابر نیست",
"OptionalSmtpPort": "اختیاری است. به طور پیش فرض تا 25 برای تکه تکه کردن و TLS SMTP، و SMTP SSL 465.",
"Options": "اختیارات",
- "OrCancel": "یا %s لغو %s",
+ "OrCancel": "یا %1$s لغو %2$s",
"Others": "دیگران",
"Outlink": "لینک خروجی",
"Outlinks": "لینک های خروجی",
@@ -245,7 +243,7 @@
"OverlayRowActionTooltipTitle": "گشودن نمای صفحه",
"Overview": "بازبینی",
"Pages": "صفحه ها",
- "ParameterMustIntegerBetween": "پارامتر %s باید یک عدد صحیح بین %s و %s باشد.",
+ "ParameterMustIntegerBetween": "پارامتر %1$s باید یک عدد صحیح بین %2$s و %3$s باشد.",
"Password": "رمزعبور",
"Period": "دوره",
"Piechart": "نمودار دایره ای",
@@ -288,7 +286,7 @@
"Search": "جستجو",
"SearchNoResults": "هیچ نتیجه ای",
"SeeAll": "دیدن همه",
- "SeeTheOfficialDocumentationForMoreInformation": "برای اطلاعات بیشتر %sمستندات رسمی%s را ببینید.",
+ "SeeTheOfficialDocumentationForMoreInformation": "برای اطلاعات بیشتر %1$sمستندات رسمی%2$s را ببینید.",
"Segment": "سگمنت",
"SelectYesIfYouWantToSendEmailsViaServer": "انتخاب \"بله\" اگر شما می خواهید و یا مجبور به ارسال ایمیل از طریق یک سرور به جای تابع ایمیل محلی به نام",
"Settings": "تنظيمات",
@@ -341,7 +339,7 @@
"WarningFileIntegrityNoManifest": "چک کردن فایل یکپارچگی می تواند انجام نمی شود به دلیل از دست رفته manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "اگر شما در حال توسعه پیویک به کمک Git هستید ، این پیغام عادی است.",
"WarningFileIntegrityNoMd5file": "کنترل یکپارچگی فایل نمی تواند به دلیل md5_file گم شده تابع () تکمیل شده است.",
- "WarningPasswordStored": "%sهشدار: %s این رمزعبور در فایل تنظیمات ذخیره خواهد شد که قابل مشاهده برای هرکسی است که به آن دسترسی دارد.",
+ "WarningPasswordStored": "%1$sهشدار: %2$s این رمزعبور در فایل تنظیمات ذخیره خواهد شد که قابل مشاهده برای هرکسی است که به آن دسترسی دارد.",
"Website": "وب سایت",
"Weekly": "هفتگی",
"WeeklyReport": "هفتگی",
@@ -430,7 +428,7 @@
"CompareRows": "مقایسه سوابق",
"ComparingRecords": "مقایسه %s ردیف",
"Documentation": "با کلیک روی معیارها در نمودار تکامل بزرگ نشان داده می شوند. برای نشان دادن معیارهای چندگانه به صورت یکجا از SHIFT-کلیک استفاده کنید.",
- "MetricBetweenText": "بین %s و %s",
+ "MetricBetweenText": "بین %1$s و %2$s",
"MetricChangeText": "%s تغییر در طول دوره",
"MetricMinMax": "%1$s در بازه مابین %2$s و %3$s در طول دوره",
"MetricsFor": "معیارها برای %s",
diff --git a/lang/fi.json b/lang/fi.json
index 702aced309..eec6f7eba1 100644
--- a/lang/fi.json
+++ b/lang/fi.json
@@ -11,7 +11,7 @@
"And": "ja",
"API": "API",
"ArchivingInlineHelp": "Keskikokoisilla ja vilkkailla sivulla on suositeltavaa kieltää arkistointi selaimesta. Parempi vaihtoehto on käyttää cron-työtä arkistointiin joka tunti.",
- "ArchivingTriggerDescription": "Suositeltavaa suuremmissa Piwik-asennuksissa. Sinun täytyy %sasentaa cron-työ%s, jotta raportit käsitellään oikein.",
+ "ArchivingTriggerDescription": "Suositeltavaa suuremmissa Piwik-asennuksissa. Sinun täytyy %1$sasentaa cron-työ%2$s, jotta raportit käsitellään oikein.",
"AuthenticationMethodSmtp": "SMTP:n autentikointimenetelmä",
"AverageOrderValue": "Oston keskimääräinen arvo",
"AveragePrice": "Keskihinta",
@@ -23,10 +23,8 @@
"CannotUnzipFile": "Ei voi purkaa tiedostoa %1$s: %2$s",
"ChangePassword": "Vaihda salasana",
"ChangeTagCloudView": "Voit katsoa raporttia myös muissa muodoissa. Käytä nappuloita raportin alareunassa.",
- "ChooseDate": "Valitse päiväys",
"ChooseLanguage": "Valitse kieli",
"ChoosePeriod": "Valitse aikaväli",
- "ChooseWebsite": "Valitse verkkosivu",
"ClickHere": "Klikkaa tästä lisätietoja.",
"ClickToChangePeriod": "Vaihda aikaväliä klikkaamalla uudelleen",
"Close": "Sulje",
@@ -80,7 +78,7 @@
"ColumnViewedAfterSearchDocumentation": "Kävijöiden lukumäärä tällä sivulla, kun kävijä on tehnyt haun verkkosivullasi ja klikannut tätä sivua hakutuloksissa.",
"ColumnVisitDuration": "Käynnin kesto (sekunteja)",
"ColumnVisitsWithConversions": "Käyntejä, joissa keskusteluja",
- "ConfigFileIsNotWritable": "Piwikin asetustiedostoon %s ei voi kirjoittaa. Kaikkia muutoksia ei voi tallentaa. %s Muuta tiedoston oikeuksia niin, että kirjoittaminen on sallittua.",
+ "ConfigFileIsNotWritable": "Piwikin asetustiedostoon %1$s ei voi kirjoittaa. Kaikkia muutoksia ei voi tallentaa. %2$s Muuta tiedoston oikeuksia niin, että kirjoittaminen on sallittua.",
"Continue": "Jatka",
"ContinueToPiwik": "Jatka Piwikiin",
"CurrentMonth": "Tämä kuukausi",
@@ -96,7 +94,6 @@
"Date": "Päiväys",
"DateRange": "Aikaväli:",
"DateRangeFrom": "Alkaen",
- "DateRangeFromTo": "%s - %s",
"DateRangeTo": "Mihin",
"DaysHours": "%1$s päivää %2$s tuntia",
"DaysSinceFirstVisit": "Päiviä ensimmäisestä käynnistä",
@@ -128,10 +125,10 @@
"Edit": "Muokkaa",
"EncryptedSmtpTransport": "Valitse SMTP-palvelimen vaatima salaus.",
"Error": "Virhe",
- "ErrorRequest": "Hups, ongelma pyyntöäsi käsitellessä. Palvelimella on voinut olla tilapäinen ongelma tai ehkä pyytämäsi raportti sisälsi liikaa tietoa. Ole hyvä ja yritä uudelleen. Jos ongelma jatkuu, ole hyvä ja %sota yhteyttä Piwik ylläpitäjääsi%s avun saamiseksi.",
+ "ErrorRequest": "Hups, ongelma pyyntöäsi käsitellessä. Palvelimella on voinut olla tilapäinen ongelma tai ehkä pyytämäsi raportti sisälsi liikaa tietoa. Ole hyvä ja yritä uudelleen. Jos ongelma jatkuu, ole hyvä ja %1$sota yhteyttä Piwik ylläpitäjääsi%2$s avun saamiseksi.",
"EvolutionOverPeriod": "Muutos aikajaksolla",
"EvolutionSummaryGeneric": "%1$s %2$s:ssa verrattuna %3$s %4$s:ssa. Evoluutio: %5$s",
- "ExceptionContactSupportGeneric": "Jos ongelma jatkuu, ole hyvä ja %sota yhteyttä Piwik ylläpitääsi%s avun saamiseksi.",
+ "ExceptionContactSupportGeneric": "Jos ongelma jatkuu, ole hyvä ja %1$sota yhteyttä Piwik ylläpitääsi%2$s avun saamiseksi.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Käyttäjän täytyy olla joko Superkäyttäjä tai '%s' käyttäjä.",
"ExceptionConfigurationFileNotFound": "Asetustiedostoa {%s} ei ole.",
"ExceptionDatabaseVersion": "Ohjelman %1$s versio on %2$s mutta Piwik tarvitsee vähintään %3$s",
@@ -140,17 +137,17 @@
"ExceptionFileIntegrity": "Eheystarkistus epäonnistui: %s",
"ExceptionFilesizeMismatch": "Tiedoston koko ei täsmää: %1$s (koon pitäisi olla %2$s, oli %3$s).",
"ExceptionIncompatibleClientServerVersions": "Ohjelman %1$s asiakasohjelman versio on %2$s, joka on epäyhteensopiva palvelimen version %3$s kanssa.",
- "ExceptionInvalidAggregateReportsFormat": "Koontaraportin formaatti '%s' ei kelpaa. Kokeile jotain seuraavista: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Koontaraportin formaatti '%1$s' ei kelpaa. Kokeile jotain seuraavista: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Arkistoinnin aika täytyy ilmoittaa sekunteina ja olla suurempaa kuin nolla",
- "ExceptionInvalidDateFormat": "Aikamuodon täytyy olla %s tai mikä tahansa avainsana jota %s tukee (katso %s saadaksesi lisätietoja)",
- "ExceptionInvalidDateRange": "Päiväys '%s' ei ole hyväksyttävä. Oikea muoto on '%s'.",
- "ExceptionInvalidPeriod": "Aikaväliä '%s' ei tueta. Kokeile jotain seuraavista: %s",
- "ExceptionInvalidRendererFormat": "Muoto '%s' ei ole hyväksyttävä. Kokeile jotain seuraavista: %s.",
- "ExceptionInvalidReportRendererFormat": "Raportin formaatti '%s' on virheellinen. Yritä jotain seuraavista: %s.",
- "ExceptionInvalidStaticGraphType": "Staattisen graafin tyyppi '%s' ei kelpaa. Kokeile jotain seuraavista: %s.",
+ "ExceptionInvalidDateFormat": "Aikamuodon täytyy olla %1$s tai mikä tahansa avainsana jota %2$s tukee (katso %3$s saadaksesi lisätietoja)",
+ "ExceptionInvalidDateRange": "Päiväys '%1$s' ei ole hyväksyttävä. Oikea muoto on '%2$s'.",
+ "ExceptionInvalidPeriod": "Aikaväliä '%1$s' ei tueta. Kokeile jotain seuraavista: %2$s",
+ "ExceptionInvalidRendererFormat": "Muoto '%1$s' ei ole hyväksyttävä. Kokeile jotain seuraavista: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Raportin formaatti '%1$s' on virheellinen. Yritä jotain seuraavista: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Staattisen graafin tyyppi '%1$s' ei kelpaa. Kokeile jotain seuraavista: %2$s.",
"ExceptionInvalidToken": "Avainta ei voi hyväksyä.",
"ExceptionLanguageFileNotFound": "Kieltä %s ei löydy",
- "ExceptionMethodNotFound": "Metodia '%s' ei ole olemassa tai ei ole saatavilla moduulissa '%s'.",
+ "ExceptionMethodNotFound": "Metodia '%1$s' ei ole olemassa tai ei ole saatavilla moduulissa '%2$s'.",
"ExceptionMissingFile": "Puuttuva tiedosto: %s",
"ExceptionNonceMismatch": "Turvallisuustarkisteen varmistaminen epäonnistui.",
"ExceptionPrivilege": "Et voi käyttää resurssia, sillä tarvitset pääsyn %s.",
@@ -158,7 +155,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Et voi käyttää resurssia, koska siihen vaaditaan %s pääsy vähintään yhdelle sivulle.",
"ExceptionUnableToStartSession": "Session käynnistäminen ei onnistu.",
"ExceptionUndeletableFile": "Tiedostoa %s ei voi poistaa",
- "ExceptionUnreadableFileDisabledMethod": "Asetustiedostoa {%s} ei voi lukea. %s saattaa olla poistettuna käytöstä.",
+ "ExceptionUnreadableFileDisabledMethod": "Asetustiedostoa {%1$s} ei voi lukea. %2$s saattaa olla poistettuna käytöstä.",
"ExceptionReportNotFound": "Pyydettyä raporttia ei ole olemassa.",
"ExceptionWidgetNotFound": "Pyydettyä vimpainta ei ole olemassa.",
"ExceptionReportNotEnabled": "Pyydettyä raporttia ei ole otettu käyttöön. Tämä tarkoittaa yleensä joko, että raportin tarjoava laajennus on poistettu käytöstä tai sinulla ei ole tarpeeksi käyttöoikeuksia tähän raporttiin.",
@@ -206,7 +203,7 @@
"Logout": "Kirjaudu ulos",
"MainMetrics": "Tärkeimmät arvot",
"Matches": "Osumat",
- "MediumToHighTrafficItIsRecommendedTo": "Keskisuurille ja vilkkaille verkkosivuille on suositeltavaa käsitellä raportit enintään kerran puolessa tunnissa (%s sekuntia) tai tunnissa (%s sekuntia).",
+ "MediumToHighTrafficItIsRecommendedTo": "Keskisuurille ja vilkkaille verkkosivuille on suositeltavaa käsitellä raportit enintään kerran puolessa tunnissa (%1$s sekuntia) tai tunnissa (%2$s sekuntia).",
"Metadata": "Metatiedot",
"Metric": "Metriikka",
"Metrics": "Metriikat",
@@ -259,7 +256,7 @@
"OperationNotEquals": "Ei täsmää",
"OptionalSmtpPort": "Valinnainen. Oletus 25 salaamattomalle ja TLS:lle ja 465 SSL:lle.",
"Options": "Asetukset",
- "OrCancel": "tai %s peruuta %s",
+ "OrCancel": "tai %1$s peruuta %2$s",
"Others": "Muut",
"Outlink": "Lähtevä linkki",
"Outlinks": "Lähtevät linkit",
@@ -267,9 +264,9 @@
"OverlayRowActionTooltipTitle": "Avaa sivuleijuke",
"Overview": "Yleiskatsaus",
"Pages": "Sivut",
- "Pagination": "%s - %s %s:sta.",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Parametrin %s täytyy olla kokonaisluku väliltä %s ja %s.",
+ "Pagination": "%1$s - %2$s %3$s:sta.",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Parametrin %1$s täytyy olla kokonaisluku väliltä %2$s ja %3$s.",
"Password": "Salasana",
"Period": "Aikaväli",
"Piechart": "Ympyräkaavio",
@@ -315,7 +312,7 @@
"Clear": "Tyhjennä",
"SearchNoResults": "Ei tuloksia",
"SeeAll": "näytä kaikki",
- "SeeTheOfficialDocumentationForMoreInformation": "Löydät %svirallisesta dokumentaatiosta%s lisätietoa.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Löydät %1$svirallisesta dokumentaatiosta%2$s lisätietoa.",
"SeeThisFaq": "Katso %1$stämä vastaus%2$s.",
"Segment": "Osa",
"SelectYesIfYouWantToSendEmailsViaServer": "Valitse \"Kyllä\" jos haluat sähköpostit tietyn palvelimen kautta",
@@ -372,7 +369,7 @@
"WarningFileIntegrityNoManifest": "Tiedostojen eheystarkistusta ei voida suorittaa, tiedosto manifest.inc.php puuttuu",
"WarningFileIntegrityNoManifestDeployingFromGit": "Jos olet ottanut Piwikin käyttöön Git-järjestelmän kautta, tämä viesti on normaali.",
"WarningFileIntegrityNoMd5file": "Tiedostojen eheystarkistusta ei voi suorittaa, funktio md5_file() puuttuu.",
- "WarningPasswordStored": "%sVaroitus:%s tämä salasana tallennetaan salaamattomana asetustiedostoon. Kaikki joilla on pääsy tiedostoon näkevät salasanan.",
+ "WarningPasswordStored": "%1$sVaroitus:%2$s tämä salasana tallennetaan salaamattomana asetustiedostoon. Kaikki joilla on pääsy tiedostoon näkevät salasanan.",
"Website": "Verkkosivu",
"Weekly": "Viikoittain",
"WeeklyReport": "viikottainen",
@@ -425,7 +422,7 @@
"MultiChartLabel": "Näytä pikkukuvat",
"NavigationBack": "Takaisin",
"NetworkError": "Verkkovirhe",
- "NetworkErrorWithStatusCode": "Tapahtui virhe \"%s\". Pyyntö palautti statuksen \"%s\". URL oli \"%s\". Tarkista osoite ja virhelogit palvelimella.",
+ "NetworkErrorWithStatusCode": "Tapahtui virhe \"%1$s\". Pyyntö palautti statuksen \"%2$s\". URL oli \"%3$s\". Tarkista osoite ja virhelogit palvelimella.",
"NetworkErrorWithStatusCodeShort": "Verkkovirhe: %s",
"NetworkNotReachable": "Verkkoon ei saada yhteyttä",
"NoAccountIsSelected": "Sinun täytyy valita tili. Lisää uusi tili, jos et ole vielä määritellyt tiliä.",
@@ -443,7 +440,7 @@
"RatingDontRemindMe": "Älä muistuta uudelleen",
"RatingNotNow": "Ei nyt",
"RatingNow": "Arvostelen nyt",
- "RatingPleaseRateUs": "Piwikin mobiilisovellus on vapaa ohjelma. Arvostaisimme todella, jos voisit käyttää hetken ohjelman arvosteluun %s:ssä. Jos sinulla on parannusehdotuksia tai virheraportteja, ota yhteyttä %s",
+ "RatingPleaseRateUs": "Piwikin mobiilisovellus on vapaa ohjelma. Arvostaisimme todella, jos voisit käyttää hetken ohjelman arvosteluun %1$s:ssä. Jos sinulla on parannusehdotuksia tai virheraportteja, ota yhteyttä %2$s",
"ReleaseToRefresh": "Vapauta päivittääksesi...",
"Reloading": "Päivitetään...",
"RequestTimedOutShort": "Verkon aikakatkaisuvirhe",
@@ -468,7 +465,6 @@
"CompareRows": "Vertaile tietoja",
"ComparingRecords": "Vertaillaan %s riviä",
"Documentation": "Klikkaa metriikkaa jonka haluat nähdä isossa seurantakuvaajassa. Shift+hiiren klikkaus merkkaa useita metriikoita yhdellä kertaa.",
- "MetricBetweenText": "%s-%s",
"MetricChangeText": "%s ajanjaksolla",
"MetricMinMax": "%1$s vaihteli %2$s ja %3$s välillä ajanjakson aikana",
"MetricsFor": "Metriikka %s",
diff --git a/lang/fr.json b/lang/fr.json
index d4139d5e5f..ca448a4706 100644
--- a/lang/fr.json
+++ b/lang/fr.json
@@ -15,7 +15,7 @@
"API": "API",
"Apply": "Appliquer",
"ArchivingInlineHelp": "Pour les sites à trafic moyen et fort, il est recommandé de désactiver l'archivage de Piwik depuis le navigateur. Nous vous recommandons de mettre en place une tâche planifiée (cron job) qui génère les rapports toutes les heures.",
- "ArchivingTriggerDescription": "Recommandé pour les installations importantes de Piwik, vous devriez %s mettre en place une tâche planifiée (cron) %s pour générer les rapports automatiquement.",
+ "ArchivingTriggerDescription": "Recommandé pour les installations importantes de Piwik, vous devriez %1$s mettre en place une tâche planifiée (cron) %2$s pour générer les rapports automatiquement.",
"AuthenticationMethodSmtp": "Méthode d'authentification pour le serveur SMTP",
"AverageOrderValue": "Valeur Moyenne d'une Commande",
"AveragePrice": "Prix Moyen",
@@ -27,10 +27,9 @@
"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. Pour cela, utilisez les option en dessous du rapport.",
- "ChooseDate": "Sélectionnez une date",
+ "ChooseDate": "Choisissez une date, date actuellement sélectionnée : %s",
"ChooseLanguage": "Sélectionnez la langue",
"ChoosePeriod": "Sélectionnez la période",
- "ChooseWebsite": "Sélectionnez le site web",
"ClickHere": "Cliquez ici pour plus d'informations.",
"ClickToChangePeriod": "Cliquez à nouveau pour modifier la période.",
"Close": "Fermer",
@@ -84,9 +83,10 @@
"ColumnViewedAfterSearchDocumentation": "Le nombre de fois où cette page a été visitée après qu'un visiteur ayant fait une recherche sur votre site, et cliqué sur cette page dans les résultats de recherche.",
"ColumnVisitDuration": "Durée de la visite (en secondes)",
"ColumnVisitsWithConversions": "Visites avec Conversions",
- "ConfigFileIsNotWritable": "Le fichier de configuration de Piwik %s n'a pas la permission d'écriture, vos modifications ne seront pas sauvegardées. %s Merci de modifier les permissions du fichier de configuration de manière à le rendre accessible en écriture.",
+ "ConfigFileIsNotWritable": "Le fichier de configuration de Piwik %1$s n'a pas la permission d'écriture, vos modifications ne seront pas sauvegardées. %2$s Merci de modifier les permissions du fichier de configuration de manière à le rendre accessible en écriture.",
"Continue": "Continuer",
"ContinueToPiwik": "Continuer vers Piwik",
+ "CreatedByUser": "créé par %s",
"CurrentMonth": "Mois courant",
"CurrentWeek": "Semaine courante",
"CurrentYear": "Année courante",
@@ -100,7 +100,7 @@
"Date": "Date",
"DateRange": "Période :",
"DateRangeFrom": "Du",
- "DateRangeFromTo": "De %s à %s",
+ "DateRangeFromTo": "De %1$s à %2$s",
"DateRangeInPeriodList": "période",
"DateRangeTo": "Au",
"DaysHours": "%1$s jours %2$s heures",
@@ -133,30 +133,30 @@
"Edit": "Éditer",
"EncryptedSmtpTransport": "Entrez la couche de chiffrement requise par votre serveur SMTP.",
"Error": "Erreur",
- "ErrorRequest": "Oups... Il y a eu un problème pendant le traitement de la requête. Peut être que le serveur a eu un soucis temporaire, ou peut être que vous avez demandé un rapport avec trop de données. Veuillez réssayer. Si cette erreur se répète veuillez %scontacter votre administrateur Piwik%s pour obtenir de l'aide.",
+ "ErrorRequest": "Oups... Il y a eu un problème pendant le traitement de la requête. Peut être que le serveur a eu un soucis temporaire, ou peut être que vous avez demandé un rapport avec trop de données. Veuillez réssayer. Si cette erreur se répète veuillez %1$scontacter votre administrateur Piwik%2$s pour obtenir de l'aide.",
"EvolutionOverPeriod": "Évolution sur la période",
"EvolutionSummaryGeneric": "%1$s en %2$s comparé à %3$s en %4$s. Evolution: %5$s",
- "ExceptionContactSupportGeneric": "Si vous avez toujours ce problème veuillez %scontacter votre administrateur Piwik%s pour obtenir de l'aide.",
+ "ExceptionContactSupportGeneric": "Si vous avez toujours ce problème veuillez %1$scontacter votre administrateur Piwik%2$s pour obtenir de l'aide.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "L'utilisateur doit être un Super Utilisateur ou l'utilisateur \"%s\" lui-même.",
"ExceptionConfigurationFileNotFound": "Le fichier de configuration {%s} n'a pas été trouvé",
- "ExceptionConfigurationFileNotFound2": "Si le fichier existe, veuillez vérifier que %s est lisible pour l'utilisateur '%s'.",
+ "ExceptionConfigurationFileNotFound2": "Si le fichier existe, veuillez vérifier que %1$s est lisible pour l'utilisateur '%2$s'.",
"ExceptionDatabaseVersion": "Votre version de %1$s est %2$s mais Piwik a besoin au minimum de la version %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Votre installation de Piwik fonctionne sur l'ancienne version %1$s et nous avons détecté que votre base de données a été mise à jour vers la version plus récente %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Peut-être que vos administrateurs Piwik sont en train de terminer le processus de mise à jour en ce moment. Veuillez réessayer dans quelques minutes.",
"ExceptionFileIntegrity": "Échec du contrôle d'intégrité : %s",
"ExceptionFilesizeMismatch": "Différence de taille de fichier : %1$s (longueur attendue: %2$s, rencontrée : %3$s)",
"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.",
+ "ExceptionInvalidAggregateReportsFormat": "Le type de rapport suivant '%1$s' n'est pas valide. Essayer un des types suivants : %2$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-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.",
- "ExceptionInvalidStaticGraphType": "Le type de graph suivant '%s' n'est pas valide. Essayer un des types suivants : %s.",
+ "ExceptionInvalidDateFormat": "Le format de date doit être : %1$s ou n'importe quel mot-clé supporté par la fonction %2$s (visitez %3$s pour plus d'informations)",
+ "ExceptionInvalidDateRange": "La date '%1$s' ne correspond pas au format suivant : %2$s.",
+ "ExceptionInvalidPeriod": "La période '%1$s' n'est pas supportée. Veuillez essayer parmi celles-ci à la place : %2$s.",
+ "ExceptionInvalidRendererFormat": "Le format de rendu '%1$s' n'est pas valide. Veuillez essayer un de ceux-ci à la place : %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Format de rapport '%1$s' invalide. Essayez n'importe lequel des formats suivants à la place : %2$s.",
+ "ExceptionInvalidStaticGraphType": "Le type de graph suivant '%1$s' n'est pas valide. Essayer un des types suivants : %2$s.",
"ExceptionInvalidToken": "La clef partagée (token) n'est pas valide.",
"ExceptionLanguageFileNotFound": "Le fichier de langage '%s' n'a pas été trouvé.",
- "ExceptionMethodNotFound": "La méthode '%s' n'existe pas ou n'est pas disponible dans le module '%s'",
+ "ExceptionMethodNotFound": "La méthode '%1$s' n'existe pas ou n'est pas disponible dans le module '%2$s'",
"ExceptionMissingFile": "Fichier manquant : %s",
"ExceptionNonceMismatch": "Impossible de vérifier le code (token) de sécurité pour ce formulaire.",
"ExceptionPrivilege": "Vous ne pouvez accéder à cette ressource, ceci requiert un accès de type %s.",
@@ -164,7 +164,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Vous ne pouvez accéder à cette ressource, ceci requiert au moins un accès de type %s à un site web.",
"ExceptionUnableToStartSession": "Impossible de démarrer une session.",
"ExceptionUndeletableFile": "Impossible de supprimer %s",
- "ExceptionUnreadableFileDisabledMethod": "Le fichier de configuration {%s} n'a pas pu être lu. votre hébergeur a probablement désactivé %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Le fichier de configuration {%1$s} n'a pas pu être lu. votre hébergeur a probablement désactivé %2$s.",
"ExceptionReportNotFound": "Le rapport demandé n'existe pas.",
"ExceptionWidgetNotFound": "Le gadget demandé n'existe pas.",
"ExceptionReportNotEnabled": "Le rapport demandé n'est pas activé. Ceci signifie d'habitude ou que le composant additionnel qui définit le rapport est désactivé ou bien que vous n'avez pas assez de permissions pour accéder à ce rapport.",
@@ -212,7 +212,7 @@
"Logout": "Déconnexion",
"MainMetrics": "Métriques principales",
"Matches": "Correspondances",
- "MediumToHighTrafficItIsRecommendedTo": "Pour les sites à moyen et fort trafic, nous recommandons d'effectuer les rapports du jours au plus toutes les demies heures (%s secondes) ou toutes les heures (%secondes).",
+ "MediumToHighTrafficItIsRecommendedTo": "Pour les sites à moyen et fort trafic, nous recommandons d'effectuer les rapports du jours au plus toutes les demies heures (%1$s secondes) ou toutes les heures (%2$secondes).",
"Metadata": "Méta-données",
"Metric": "Métrique",
"Metrics": "Métriques",
@@ -269,7 +269,7 @@
"OptionalSmtpPort": "Optionnel. Par défaut à 25 pour non chiffré et TLS SMTP, et 465 pour du SMTP SSL.",
"Options": "Options",
"Or": "ou",
- "OrCancel": "ou %s Annuler %s",
+ "OrCancel": "ou %1$s Annuler %2$s",
"Others": "Autres",
"Outlink": "Lien sortant",
"Outlinks": "Liens sortant",
@@ -277,9 +277,9 @@
"OverlayRowActionTooltipTitle": "Ouvrir l'analyse des pages web",
"Overview": "Récapitulatif",
"Pages": "Pages",
- "Pagination": "%s - %s de %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Le paramètre %s doit être un entier compris entre %s et %s.",
+ "Pagination": "%1$s - %2$s de %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Le paramètre %1$s doit être un entier compris entre %2$s et %3$s.",
"Password": "Mot de passe",
"Period": "Période",
"Piechart": "Camembert",
@@ -331,7 +331,7 @@
"Clear": "Réinitialiser",
"SearchNoResults": "Aucun résultat",
"SeeAll": "tout montrer",
- "SeeTheOfficialDocumentationForMoreInformation": "Consultez la %s documentation officielle %s pour plus d'information.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Consultez la %1$s documentation officielle %2$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.",
@@ -358,7 +358,7 @@
"Total": "Total",
"TotalRatioTooltip": "C'est %1$s de %2$s %3$s.",
"TotalRevenue": "Total des recettes",
- "TotalVisitsPageviewsActionsRevenue": "(Total : %s visites, %s pages vues, %s actions, %s revenu)",
+ "TotalVisitsPageviewsActionsRevenue": "(Total : %1$s visites, %2$s pages vues, %3$s actions, %4$s revenu)",
"TrackingScopeAction": "Action",
"TrackingScopePage": "Page",
"TrackingScopeVisit": "Visite",
@@ -395,8 +395,8 @@
"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.",
- "WarningDebugOnDemandEnabled": "Le mode %s du suivit est activé. Pour des raisons de sécurité ceci ne devrait être activité que pour une courte période de temps. Pour le désactivé définir %s à %s dans %s",
+ "WarningPasswordStored": "%1$sAttention :%2$s Ce mot de passe sera stocké dans le fichier de configuration et sera visible pour n'importe qui y ayant accès.",
+ "WarningDebugOnDemandEnabled": "Le mode %1$s du suivit est activé. Pour des raisons de sécurité ceci ne devrait être activité que pour une courte période de temps. Pour le désactivé définir %2$s à %3$s dans %4$s",
"Website": "Site",
"Weekly": "Hebdomadaire",
"WeeklyReport": "hebdomadaire",
@@ -450,7 +450,7 @@
"MultiChartLabel": "Afficher les sparklines",
"NavigationBack": "Retour",
"NetworkError": "Erreur réseau",
- "NetworkErrorWithStatusCode": "Erreur rencontrée \"%s\". La requête a retourné le statut \"%s. L'URL était \"%s\". Veuillez vérifier que vous avez entré l'URL correctement et consulter les logs du serveur pour plus d'informations à propos de l'erreur et sur comment la résoudre.",
+ "NetworkErrorWithStatusCode": "Erreur rencontrée \"%1$s\". La requête a retourné le statut \"%2$s. L'URL était \"%3$s\". Veuillez vérifier que vous avez entré l'URL correctement et consulter les logs du serveur pour plus d'informations à propos de l'erreur et sur comment la résoudre.",
"NetworkErrorWithStatusCodeShort": "Erreur réseau %s",
"NetworkNotReachable": "Réseau inaccessible",
"NoAccountIsSelected": "Vous devez sélectionner un compte. Ajoutez un nouveau compte si aucun n'a été configuré.",
@@ -468,7 +468,7 @@
"RatingDontRemindMe": "Ne pas me rappeler",
"RatingNotNow": "Pas maintenant",
"RatingNow": "OK, je vais le noter maintenant",
- "RatingPleaseRateUs": "L'application Piwik Mobile est un logiciel gratuit, nous vous serions très reconnaissant si vous preniez 1 minute pour noter l'application sur le %s. Si vous avez des suggestions de nouvelles fonctionnalités ou si vous souhaitez signaler un bug, veuillez contacter %s",
+ "RatingPleaseRateUs": "L'application Piwik Mobile est un logiciel gratuit, nous vous serions très reconnaissant si vous preniez 1 minute pour noter l'application sur le %1$s. Si vous avez des suggestions de nouvelles fonctionnalités ou si vous souhaitez signaler un bug, veuillez contacter %2$s",
"ReleaseToRefresh": "Relâchez pour actualiser...",
"Reloading": "Recharchement...",
"RequestTimedOutShort": "Erreur réseau, délai dépassé (timeout)",
@@ -493,7 +493,7 @@
"CompareRows": "Comparer les enregistrements",
"ComparingRecords": "Comparaison de %s lignes",
"Documentation": "Cliquez sur les métriques pour les afficher dans un graphique d'évolution large. Utilisez shift-clic pour afficher plusieurs métriques en même temps.",
- "MetricBetweenText": "entre %s et %s",
+ "MetricBetweenText": "entre %1$s et %2$s",
"MetricChangeText": "%s au cours de la période",
"MetricMinMax": "%1$s est compris entre %2$s et %3$s sur la période",
"MetricsFor": "Métriques pour %s",
diff --git a/lang/gl.json b/lang/gl.json
index 770ebfaf5d..dd466a7201 100644
--- a/lang/gl.json
+++ b/lang/gl.json
@@ -14,7 +14,6 @@
"BackToPiwik": "Voltar a Piwik",
"Cancel": "Cancelar",
"ChangePassword": "Cambiar o contrasinal",
- "ChooseDate": "Escolla Data",
"ClickHere": "Prema aquí para máis información.",
"Close": "Pechar",
"ColumnActionsPerVisit": "Accións por Visita",
@@ -93,7 +92,7 @@
"NVisits": "%s visitas",
"Ok": "Ok",
"OpenSourceWebAnalytics": "Analise Web de Open Source",
- "OrCancel": "ou %s Cancelar %s",
+ "OrCancel": "ou %1$s Cancelar %2$s",
"Others": "Outros",
"Outlinks": "Ligazóns externos",
"Overview": "Xeral",
diff --git a/lang/he.json b/lang/he.json
index e0ac43e7c3..c73ae356ac 100644
--- a/lang/he.json
+++ b/lang/he.json
@@ -10,7 +10,7 @@
"And": "ו",
"API": "API",
"ArchivingInlineHelp": "עבור אתרים בעלי תעבורה בינוניתעד גבוהה, מומלץ לבטל את ארכיון Piwik בעת צפייה דרך הדפדפן בדוחות. במקום זאת, מומלץ להגדיר עבודה כרונית (cron job) שתעבד דוחות Piwik בכל שעה.",
- "ArchivingTriggerDescription": "מומלץ להתקנות גדולות יותר של Piwik, צריך %sלהגדיר עבודה כרונית%s שתעבד את הדוחות אוטומטית.",
+ "ArchivingTriggerDescription": "מומלץ להתקנות גדולות יותר של Piwik, צריך %1$sלהגדיר עבודה כרונית%2$s שתעבד את הדוחות אוטומטית.",
"AuthenticationMethodSmtp": "שיטת אימות עבור SMTP",
"AverageOrderValue": "ערך הזמנה ממוצע",
"AveragePrice": "מחיר ממוצע",
@@ -20,10 +20,8 @@
"Cancel": "ביטול",
"CannotUnzipFile": "לא יכול לחלץ את הקובץ %1$s: %2$s",
"ChangePassword": "שינוי סיסמה",
- "ChooseDate": "בחירת תאריך",
"ChooseLanguage": "בחירת שפה",
"ChoosePeriod": "בחירת תקופה",
- "ChooseWebsite": "בחירת אתר",
"Close": "לסגור",
"ColumnActionsPerVisit": "פעולות בכל ביקור",
"ColumnAverageTimeOnPage": "זמן ממוצע בעמוד",
@@ -84,20 +82,20 @@
"ExceptionFilesizeMismatch": "אין התאמה במשקל הקובץ: %1$s (מצופה: %2$s, נמצא: %3$s)",
"ExceptionIncompatibleClientServerVersions": "גרסת צד הלקוח של %1$s היא %2$s בעוד גרסת צד השרת היא %3$s.",
"ExceptionInvalidArchiveTimeToLive": "זמן החיים של ארכיון היום חייב להיות מספר שניות הגדול מ-0.",
- "ExceptionInvalidDateFormat": "תבנית התאריך מוכרחה להיות: %s או כל מילת מפתח שנתמכת על ידי פונקצית ה %s (ראו %s בשביל מידע נוסף)",
- "ExceptionInvalidDateRange": "התאריך '%s' אינו טווח תאריכים נכון. הוא צריך להיכתב בתבנית הבאה: %s.",
- "ExceptionInvalidPeriod": "התקופה '%s' לא נתמכת. יש לנסות את אחת מהבאות במקום: %s",
- "ExceptionInvalidRendererFormat": "הפורמט '%s' אינו תקין. יש לנסות אחד מהבאים במקום: %s.",
+ "ExceptionInvalidDateFormat": "תבנית התאריך מוכרחה להיות: %1$s או כל מילת מפתח שנתמכת על ידי פונקצית ה %2$s (ראו %3$s בשביל מידע נוסף)",
+ "ExceptionInvalidDateRange": "התאריך '%1$s' אינו טווח תאריכים נכון. הוא צריך להיכתב בתבנית הבאה: %2$s.",
+ "ExceptionInvalidPeriod": "התקופה '%1$s' לא נתמכת. יש לנסות את אחת מהבאות במקום: %2$s",
+ "ExceptionInvalidRendererFormat": "הפורמט '%1$s' אינו תקין. יש לנסות אחד מהבאים במקום: %2$s.",
"ExceptionInvalidToken": "הכרטיס לא תקף.",
"ExceptionLanguageFileNotFound": "קובץ השפה '%s' לא נמצא.",
- "ExceptionMethodNotFound": "המתודה '%s' לא קיימת או לא נמצאה במודל '%s'.",
+ "ExceptionMethodNotFound": "המתודה '%1$s' לא קיימת או לא נמצאה במודל '%2$s'.",
"ExceptionMissingFile": "קובץ חסר: %s",
"ExceptionNonceMismatch": "לא ניתן לאמת את כרטיס האבטחה בטופס זה.",
"ExceptionPrivilege": "לא ניתן לגשת למשאב זה מכיוון שהוא דורש גישת %s.",
"ExceptionPrivilegeAccessWebsite": "לא ניתן לגשת למשאב זה מכיוון שהוא דורש גישת %s עבור האתר שמספרו הסידורי הוא %d.",
"ExceptionPrivilegeAtLeastOneWebsite": "לא ניתן לגשת למשאב זה מכיוון שהוא דורש גישת %s עבור אתר אחד לפחות.",
"ExceptionUndeletableFile": "לא ניתן למחוק את %s",
- "ExceptionUnreadableFileDisabledMethod": "קובץ ההגדרות {%s} לא ניתן לקריאה. המארח אולי חסם את %s.",
+ "ExceptionUnreadableFileDisabledMethod": "קובץ ההגדרות {%1$s} לא ניתן לקריאה. המארח אולי חסם את %2$s.",
"Export": "ייצוא",
"ExportAsImage": "לייצא כתמונה",
"ExportThisReport": "לייצא מידע בפורמטים אחרים",
@@ -122,7 +120,7 @@
"LoadingData": "טוען מידע...",
"Locale": "he_IL.UTF-8",
"Logout": "להתנתק",
- "MediumToHighTrafficItIsRecommendedTo": "לאתרים בעלי תעבודה בינונית עד גבוהה, אנו ממליצים לעבד דוחות להיום לכל היותר בכל חצי שעה (%s שניות) או בכל שעה (%s שניות)",
+ "MediumToHighTrafficItIsRecommendedTo": "לאתרים בעלי תעבודה בינונית עד גבוהה, אנו ממליצים לעבד דוחות להיום לכל היותר בכל חצי שעה (%1$s שניות) או בכל שעה (%2$s שניות)",
"MinutesSeconds": "%1$s דקות ו-%2$s שניות",
"Monthly": "חודשי",
"MultiSitesSummary": "כל האתרים",
@@ -145,7 +143,7 @@
"OnlyUsedIfUserPwdIsSet": "משומש רק אם שם המשתמש\/סיסמה מוגדרים, יש לברר עם הספק במקרה של חוסר וודאות באיזה שיטה לבחור.",
"OpenSourceWebAnalytics": "ניתוח פעילות אתרים בקוד פתוח",
"OptionalSmtpPort": "אופציונלי. ברירת המחדל היא 25 עבור לא מוצפן ו-TLS SMTP, 465 עבור SSL SMTP.",
- "OrCancel": "או %s ביטול %s",
+ "OrCancel": "או %1$s ביטול %2$s",
"Others": "אחרים",
"Outlinks": "קישורים יוצאים",
"Overview": "מבט כללי",
@@ -174,7 +172,7 @@
"Search": "חיפוש",
"SearchNoResults": "אין תוצאות",
"SeeAll": "להציג הכל",
- "SeeTheOfficialDocumentationForMoreInformation": "ראו %sתיעוד רשמי%s למידע נוסף.",
+ "SeeTheOfficialDocumentationForMoreInformation": "ראו %1$sתיעוד רשמי%2$s למידע נוסף.",
"SelectYesIfYouWantToSendEmailsViaServer": "יש לבחור \"כן\" אם רוצים או חייבים לשלוח דוא\"ל דרך שרת ולא דרך פונקצית הדוא\"ל המקומית",
"Settings": "הגדרות",
"Show": "להציג",
@@ -204,7 +202,7 @@
"Warning": "אזהרה",
"WarningFileIntegrityNoManifest": "לא ניתן לבצע בדיקת תקינות קבצים מכיוון שהקובץ manifest.inc.php חסר.",
"WarningFileIntegrityNoMd5file": "לא ניתן לבצע בדיקת תקינות קבצים מכיוון שהפונקציה md5_file() חסרה.",
- "WarningPasswordStored": "%sאזהרה:%s הסיסמה תאוכסן בקובץ ההגדרות וחושפת לכל כיצד להתחבר.",
+ "WarningPasswordStored": "%1$sאזהרה:%2$s הסיסמה תאוכסן בקובץ ההגדרות וחושפת לכל כיצד להתחבר.",
"Website": "אתר",
"Weekly": "שבועי",
"WeeklyReport": "שבועי",
@@ -246,7 +244,7 @@
"CompareRows": "השווה תוצאות",
"ComparingRecords": "משווה %s שורות",
"Documentation": "לחץ על המדדים כדי להציגם בגרף התקדמות. השתמש בלחיצה על המדדים עם המקש shift כדי להציג מספר מדדים ביחד.",
- "MetricBetweenText": "מ-%s עד %s",
+ "MetricBetweenText": "מ-%1$s עד %2$s",
"MetricChangeText": "%s שינוי במשך התקופה",
"MetricMinMax": "%1$s בטווח בין %2$s ו-%3$s במשך התקופה",
"MetricsFor": "מדדים עבור %s",
diff --git a/lang/hi.json b/lang/hi.json
index cf2bc68763..fedbd7a13d 100644
--- a/lang/hi.json
+++ b/lang/hi.json
@@ -12,7 +12,7 @@
"And": "और",
"API": "एपीआई",
"ArchivingInlineHelp": "मध्यम से उच्च यातायात वेबसाइटों के लिए,यह Piwik ब्राउज़र से सक्रिय करने के लिए पुरालेखण को निष्क्रिय करने की सिफारिश की है.इसके बजाय, हम आपको Piwik रिपोर्टों के हर घंटे की प्रक्रिया के लिए एक क्रॉन जॉब सेटअप करने की सलाह देते हैं.",
- "ArchivingTriggerDescription": "बड़ा Piwik स्थापित के लिए सिफारिश है, आपको स्वतः रिपोर्टों को संसाधित करने के लिए %s एक क्रॉन जॉब सेटअप %s की जरूरत है.",
+ "ArchivingTriggerDescription": "बड़ा Piwik स्थापित के लिए सिफारिश है, आपको स्वतः रिपोर्टों को संसाधित करने के लिए %1$s एक क्रॉन जॉब सेटअप %2$s की जरूरत है.",
"AuthenticationMethodSmtp": "एसएमटीपी के लिए प्रमाणीकरण विधि",
"AverageOrderValue": "औसत आदेश मूल्य",
"AveragePrice": "औसत मूल्य",
@@ -24,10 +24,8 @@
"CannotUnzipFile": "फ़ाइल नहीं खोल सकते %1$s: %2$s",
"ChangePassword": "पासवर्ड बदलें",
"ChangeTagCloudView": "कृपया ध्यान दें, आप एक टैग बादल के रूप की तुलना में अन्य तरीकों से रिपोर्ट देख सकते हैं.ऐसा करने के लिए रिपोर्ट के तल पर नियंत्त्णों का प्रयोग करें.",
- "ChooseDate": "तारीख चुनें",
"ChooseLanguage": "भाषा चुनें",
"ChoosePeriod": "अवधि चुनें",
- "ChooseWebsite": "वेबसाइट चुनें",
"ClickHere": "अधिक जानकारी के लिए यहां क्लिक करें.",
"ClickToChangePeriod": "अवधि बदलने के लिए फिर से क्लिक करें.",
"Close": "बंद करें",
@@ -80,7 +78,7 @@
"ColumnViewedAfterSearchDocumentation": "एक आगंतुक आपकी वेबसाइट पर एक खोज किया था, और खोज परिणामों में इस पृष्ठ पर क्लिक करने के बाद कई बार इस पृष्ठ का दौरा किया था.",
"ColumnVisitDuration": "भेंट अवधि(सेकंड में)",
"ColumnVisitsWithConversions": "रूपांतरण के साथ दौरा",
- "ConfigFileIsNotWritable": "Piwik विन्यास फाइल %sलिखने योग्य नहीं है, अपने परिवर्तनों से कुछ नहीं बचाया जा सकता है. यह लिखने योग्य बनाने के लिए %sविन्यास फाइल की अनुमति में बदलाव करें.",
+ "ConfigFileIsNotWritable": "Piwik विन्यास फाइल %1$sलिखने योग्य नहीं है, अपने परिवर्तनों से कुछ नहीं बचाया जा सकता है. यह लिखने योग्य बनाने के लिए %2$sविन्यास फाइल की अनुमति में बदलाव करें.",
"Continue": "जारी",
"ContinueToPiwik": "Piwik पर जारी",
"CurrentMonth": "वर्तमान महीना",
@@ -96,7 +94,7 @@
"Date": "तारीख",
"DateRange": "तिथि सीमा:",
"DateRangeFrom": "से",
- "DateRangeFromTo": "%s से %s में",
+ "DateRangeFromTo": "%1$s से %2$s में",
"DateRangeTo": "से",
"DaysHours": "%1$s दिन %2$s घंटे",
"DaysSinceFirstVisit": "पहली यात्रा के बाद से दिन",
@@ -135,17 +133,17 @@
"ExceptionFileIntegrity": "अखंडता की जाँच विफल: %s",
"ExceptionFilesizeMismatch": "फ़ाइल का आकार बेमेल है:%1$s (अपेक्षित लंबाई:%2$s,पाया :%3$s)",
"ExceptionIncompatibleClientServerVersions": "अपने %1$sग्राहक के संस्करण%2$s जो है सर्वर संस्करण%3$s के साथ असंगत है",
- "ExceptionInvalidAggregateReportsFormat": "सकल रिपोर्टों स्वरूप '%s' मान्य नहीं है. इसके बजाय निम्नलिखित में से किसी का प्रयास करें:%s.",
+ "ExceptionInvalidAggregateReportsFormat": "सकल रिपोर्टों स्वरूप '%1$s' मान्य नहीं है. इसके बजाय निम्नलिखित में से किसी का प्रयास करें:%2$s.",
"ExceptionInvalidArchiveTimeToLive": "आज संग्रह जीने के लिए शून्य से अधिक सेकंड की संख्या होनी चाहिए",
- "ExceptionInvalidDateFormat": "तिथि प्रारूप में होना चाहिए:%s या (अधिक जानकारी के लिए %s देखें) प्रकार्य %sद्वारा किसी भी शब्द का समर्थन किया",
- "ExceptionInvalidDateRange": "तारीख की एक सही तिथि '%s' सीमा नहीं है. यह निम्न स्वरूप होना चाहिए: %s",
- "ExceptionInvalidPeriod": "अवधि '%s' समर्थित नहीं है. इसके बजाय निम्न में से किसी का प्रयास करें: %s",
- "ExceptionInvalidRendererFormat": "प्रतिपादक स्वरूप '%s' मान्य नहीं. इसके बजाय निम्न में से किसी का प्रयास करें: %s",
- "ExceptionInvalidReportRendererFormat": "रिपोर्ट प्रारूप '%s' मान्य नहीं. इसके बजाय निम्न में से किसी का प्रयास करें: %s",
- "ExceptionInvalidStaticGraphType": "स्थैतिक रेखाचित्र के प्रकार '%s' मान्य नहीं. इसके बजाय निम्न में से किसी का प्रयास करें: %s.",
+ "ExceptionInvalidDateFormat": "तिथि प्रारूप में होना चाहिए:%1$s या (अधिक जानकारी के लिए %2$s देखें) प्रकार्य %3$sद्वारा किसी भी शब्द का समर्थन किया",
+ "ExceptionInvalidDateRange": "तारीख की एक सही तिथि '%1$s' सीमा नहीं है. यह निम्न स्वरूप होना चाहिए: %2$s",
+ "ExceptionInvalidPeriod": "अवधि '%1$s' समर्थित नहीं है. इसके बजाय निम्न में से किसी का प्रयास करें: %2$s",
+ "ExceptionInvalidRendererFormat": "प्रतिपादक स्वरूप '%1$s' मान्य नहीं. इसके बजाय निम्न में से किसी का प्रयास करें: %2$s",
+ "ExceptionInvalidReportRendererFormat": "रिपोर्ट प्रारूप '%1$s' मान्य नहीं. इसके बजाय निम्न में से किसी का प्रयास करें: %2$s",
+ "ExceptionInvalidStaticGraphType": "स्थैतिक रेखाचित्र के प्रकार '%1$s' मान्य नहीं. इसके बजाय निम्न में से किसी का प्रयास करें: %2$s.",
"ExceptionInvalidToken": "टोकन मान्य नहीं है.",
"ExceptionLanguageFileNotFound": "भाषा फाइल '%s' नहीं मिली.",
- "ExceptionMethodNotFound": "विधि '%s' मौजूद नहीं या भाग में उपलब्ध नहीं '%s' है.",
+ "ExceptionMethodNotFound": "विधि '%1$s' मौजूद नहीं या भाग में उपलब्ध नहीं '%2$s' है.",
"ExceptionMissingFile": "लापता फ़ाइल: %s",
"ExceptionNonceMismatch": "इस प्रपत्र पर सुरक्षा टोकन को सत्यापित नहीं किया जा सका.",
"ExceptionPrivilege": "इसे एक %s पहुँच की आवश्यकता के रूप में आप इस संसाधन तक पहुँच नहीं सकते हैं.",
@@ -153,7 +151,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "इसे कम से कम एक वेबसाइट के लिए किसी पहुँच की आवश्यकता के रूप %s में आप इस संसाधन तक पहुँच नहीं सकते हैं.",
"ExceptionUnableToStartSession": "सत्र प्रारंभ करने में अक्षम.",
"ExceptionUndeletableFile": "%s हटाने में असमर्थ",
- "ExceptionUnreadableFileDisabledMethod": "विन्यास फाइल {%s} नहीं पढ़ी जा सकी. आपका मेजबान %s निष्क्रिय हो सकता है",
+ "ExceptionUnreadableFileDisabledMethod": "विन्यास फाइल {%1$s} नहीं पढ़ी जा सकी. आपका मेजबान %2$s निष्क्रिय हो सकता है",
"ExceptionReportNotFound": "का अनुरोध रिपोर्ट मौजूद नहीं है।",
"ExceptionWidgetNotFound": "का अनुरोध विजेट मौजूद नहीं है।",
"ExpandDataTableFooter": "दृश्य बदलें या रिपोर्ट कॉन्फ़िगर",
@@ -198,7 +196,7 @@
"Logout": "बाहर करें",
"MainMetrics": "मुख्य मैट्रिक्स",
"Matches": "मेल खाता है",
- "MediumToHighTrafficItIsRecommendedTo": "मध्यम उच्च यातायात वेबसाइटों के लिए, हम ज्यादा से ज्यादा हर आधे घंटे (%s सेकंड) या हर घंटे (%s सेकंड) में आज के लिए रिपोर्ट को संसाधित करने की सलाह देते हैं.",
+ "MediumToHighTrafficItIsRecommendedTo": "मध्यम उच्च यातायात वेबसाइटों के लिए, हम ज्यादा से ज्यादा हर आधे घंटे (%1$s सेकंड) या हर घंटे (%2$s सेकंड) में आज के लिए रिपोर्ट को संसाधित करने की सलाह देते हैं.",
"Metadata": "मेटाडाटा",
"Metric": "मैट्रिक",
"Metrics": "मेट्रिक्स",
@@ -252,7 +250,7 @@
"OperationNotEquals": "बराबर नहीं है",
"OptionalSmtpPort": "वैकल्पिक. डिफ़ॉल्ट के लिए 25 से अनएन्क्रिप्टेड और टीएलएस एसएमटीपी, और एसएसएल एसएमटीपी के लिए 465.",
"Options": "विकल्प",
- "OrCancel": "या %s %s रद्द",
+ "OrCancel": "या %1$s %2$s रद्द",
"Others": "अन्य लोग",
"Outlink": "आउटलिंक",
"Outlinks": "आउटलिंक",
@@ -260,9 +258,9 @@
"OverlayRowActionTooltipTitle": "ओपन पृष्ठ ओवरले",
"Overview": "अवलोकन",
"Pages": "पृष्ठों",
- "Pagination": "%s - %s के लिए %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "पैरामीटर %s और %s के बीच में एक पूर्णांक मान %s होना चाहिए.",
+ "Pagination": "%1$s - %2$s के लिए %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "पैरामीटर %1$s और %2$s के बीच में एक पूर्णांक मान %3$s होना चाहिए.",
"Password": "पासवर्ड",
"Period": "अवधि",
"Piechart": "पाइ चार्ट",
@@ -311,7 +309,7 @@
"Clear": "स्पष्ट",
"SearchNoResults": "कोई परिणाम नहीं",
"SeeAll": "सभी देखना",
- "SeeTheOfficialDocumentationForMoreInformation": "अधिक जानकारी के लिए %sआधिकारिक दस्तावेज %s देखें.",
+ "SeeTheOfficialDocumentationForMoreInformation": "अधिक जानकारी के लिए %1$sआधिकारिक दस्तावेज %2$s देखें.",
"SeeThisFaq": "%1$s पूछे जाने वाले प्रश्न %2$s. को देखें।",
"Segment": "खंड",
"SelectYesIfYouWantToSendEmailsViaServer": "आप चाहते हैं या स्थानीय मेल प्रकार्य का नाम के बदले सर्वर के माध्यम से ई - मेल भेजने के लिए है, तो \"हाँ\" का चयन करें",
@@ -366,7 +364,7 @@
"WarningFileIntegrityNoManifest": "फ़ाइल अखंडता की जांच manifest.inc.php गुम की वजह से नहीं किया जा सकता है.",
"WarningFileIntegrityNoManifestDeployingFromGit": "आप Git से Piwik की तैनाती कर रहे हैं, तो यह संदेश सामान्य है।",
"WarningFileIntegrityNoMd5file": "फ़ाइल अखंडता की जांच लापता md5_file () फ़ंक्शन के कारण पूरा नहीं हो सका.",
- "WarningPasswordStored": "%sचेतावनी:%s यह पासवर्ड config फाइल में संग्रहीत किया जाएगा यह उपयोग कर सकते हैं जो हर किसी को दिखाई दे.",
+ "WarningPasswordStored": "%1$sचेतावनी:%2$s यह पासवर्ड config फाइल में संग्रहीत किया जाएगा यह उपयोग कर सकते हैं जो हर किसी को दिखाई दे.",
"Website": "वेबसाइट",
"Weekly": "साप्ताहिक",
"WeeklyReport": "साप्ताहिक",
@@ -418,7 +416,7 @@
"MultiChartLabel": "स्पार्कलाइन प्रदर्शित",
"NavigationBack": "वापस जाएँ",
"NetworkError": "नेटवर्क त्रुटि",
- "NetworkErrorWithStatusCode": "कोई त्रुटि \"%s\" थी. अनुरोध स्थिति लौट \"%s\" आए. यूआरएल \"%s\" था. अधिक त्रुटि के बारे में जानकारी और कैसे इसे हल करने के लिए इस सर्वर पर आपके द्वारा दर्ज URL और त्रुटि लॉग की जाँच करें.",
+ "NetworkErrorWithStatusCode": "कोई त्रुटि \"%1$s\" थी. अनुरोध स्थिति लौट \"%2$s\" आए. यूआरएल \"%3$s\" था. अधिक त्रुटि के बारे में जानकारी और कैसे इसे हल करने के लिए इस सर्वर पर आपके द्वारा दर्ज URL और त्रुटि लॉग की जाँच करें.",
"NetworkErrorWithStatusCodeShort": "नेटवर्क त्रुटि %s",
"NetworkNotReachable": "पहुंच के बाहर नेटवर्क",
"NoAccountIsSelected": "आपको  एक खाते का चयन करना है. यदि अपने विन्यस्त नहीं किया है, तो एक नया खाता जोड़ें.",
@@ -435,7 +433,7 @@
"RatingDontRemindMe": "मुझे याद मत दिलाओ",
"RatingNotNow": "अभी नहीं",
"RatingNow": "ठीक है, मैं अब यह दर दूँगा",
- "RatingPleaseRateUs": "आप में अनुप्रयोग दर करने के लिए 1 मिनट ले लिया %sतो हम सच में जानना चाहेंगे Piwik मोबाइल एक फ्री सॉफ्टवेयर है.आपको नई सुविधाओं या बग रिपोर्ट का सुझाव हैं तो कृपया %sसंपर्क करें",
+ "RatingPleaseRateUs": "आप में अनुप्रयोग दर करने के लिए 1 मिनट ले लिया %1$sतो हम सच में जानना चाहेंगे Piwik मोबाइल एक फ्री सॉफ्टवेयर है.आपको नई सुविधाओं या बग रिपोर्ट का सुझाव हैं तो कृपया %2$sसंपर्क करें",
"ReleaseToRefresh": "रीफ़्रेश करने के लिए छोड़ दें ...",
"Reloading": "पुन: लोड ...",
"RequestTimedOutShort": "संजाल टाइमआउट त्रुटि",
@@ -458,7 +456,7 @@
"CompareRows": "रिकॉर्ड की तुलना करें",
"ComparingRecords": "पंक्तियों की %s तुलना करना",
"Documentation": "विशाल विकास ग्राफ में उन्हें प्रदर्शित करने के लिए मेट्रिक्स क्लिक करें. प्रयोग एक ही बार में एकाधिक मैट्रिक्स प्रदर्शित करने के लिए शिफ्ट क्लिक करें.",
- "MetricBetweenText": "%s और %s के बीच",
+ "MetricBetweenText": "%1$s और %2$s के बीच",
"MetricChangeText": "अवधि %s से अधिक है",
"MetricsFor": "%s के लिए मेट्रिक्स",
"MultiRowEvolutionTitle": "एकाधिक पंक्तियों का विकास",
diff --git a/lang/hr.json b/lang/hr.json
index 77d30680a4..c959ac59c5 100644
--- a/lang/hr.json
+++ b/lang/hr.json
@@ -10,7 +10,7 @@
"And": "i",
"API": "API",
"ArchivingInlineHelp": "Preporučljivo je isključiti pokretanje arhiviranja pri posjeti za stranice sa srednjom i visokom posjećenošću.Umjesto toga savjetujemo da postavite cron job koji će obraditi Piwik izvještaje svakih sat vremena.",
- "ArchivingTriggerDescription": "Za veće Piwik instalacije preporučamo %spostavljanje cron joba %s za automatsku obradu izvještaja.",
+ "ArchivingTriggerDescription": "Za veće Piwik instalacije preporučamo %1$spostavljanje cron joba %2$s za automatsku obradu izvještaja.",
"AuthenticationMethodSmtp": "Način SMTP autorizacije",
"AverageOrderValue": "Prosječna vrijednost narudžbe",
"AveragePrice": "Prosječna cijena",
@@ -21,10 +21,8 @@
"Cancel": "Odustani",
"ChangePassword": "Promjeni lozinku.",
"ChangeTagCloudView": "Napominjemo da izvještaje možete vidjeti i na druge načine osim u obliku oblaka za oznakama. Za promjenu prikaza koristite kontrole na dnu izvještaja.",
- "ChooseDate": "Odaberi datum",
"ChooseLanguage": "Odaberite jezik",
"ChoosePeriod": "Odaberite vremenski raspon",
- "ChooseWebsite": "Odaberite internet stranicu",
"ClickHere": "Klikni za više informacija",
"Close": "Zatvori",
"ClickToSearch": "Klikni za pretragu",
@@ -69,7 +67,7 @@
"ColumnValuePerVisit": "Prihod po posjeti",
"ColumnVisitDuration": "Trajanje posjete (u sekundama)",
"ColumnVisitsWithConversions": "Posjete sa konverzijama",
- "ConfigFileIsNotWritable": "Nije moguće upisati promjene u Piwik konfiguracijsku datoteku %s. %s Izmjenite dozvole na datoteci kako bi se moglo u nju upisivati.",
+ "ConfigFileIsNotWritable": "Nije moguće upisati promjene u Piwik konfiguracijsku datoteku %1$s. %2$s Izmjenite dozvole na datoteci kako bi se moglo u nju upisivati.",
"Continue": "Nastavi",
"ContinueToPiwik": "Nastavi na Piwik",
"CurrentMonth": "Tekući mjesec",
@@ -83,7 +81,7 @@
"Date": "Datum",
"DateRange": "Vremenski raspon:",
"DateRangeFrom": "Od",
- "DateRangeFromTo": "Od %s do %s",
+ "DateRangeFromTo": "Od %1$s do %2$s",
"DateRangeTo": "Do",
"DaysHours": "%1$s dan(a) %2$s sat(a)",
"DaysSinceFirstVisit": "Dana od prve posjete",
@@ -118,14 +116,14 @@
"ExceptionFilesizeMismatch": "Veličina datoteke ne odgovara:%1$s (očekivana veličina: %2$s, pronađena: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Vaša %1$s klijent verzija je %2$s koja nije uskladiva sa server verzijom %3$s.",
"ExceptionInvalidArchiveTimeToLive": "Vrijednost mora biti broj sekundi veći od nule.",
- "ExceptionInvalidDateFormat": "Format datuma mora biti %s ili bilo koji izraz koji prepoznaje %s funkcija (vidi %s za više informacija)",
- "ExceptionInvalidDateRange": "Datum '%s' nema ispravan raspon. Mora imati sljedeći oblik: %s.",
- "ExceptionInvalidPeriod": "Razdoblje '%s' nije podržano. Pokušaj sa nekim od sljedećih: %s",
- "ExceptionInvalidRendererFormat": "Format prikaza '%s' nije valjan. Pokušaj sa nekim od sljedećih: %s.",
- "ExceptionInvalidReportRendererFormat": "Format izvještaja '%s' nije valjan. Pokušaj sa nekim od sljedećih: %s.",
+ "ExceptionInvalidDateFormat": "Format datuma mora biti %1$s ili bilo koji izraz koji prepoznaje %2$s funkcija (vidi %3$s za više informacija)",
+ "ExceptionInvalidDateRange": "Datum '%1$s' nema ispravan raspon. Mora imati sljedeći oblik: %2$s.",
+ "ExceptionInvalidPeriod": "Razdoblje '%1$s' nije podržano. Pokušaj sa nekim od sljedećih: %2$s",
+ "ExceptionInvalidRendererFormat": "Format prikaza '%1$s' nije valjan. Pokušaj sa nekim od sljedećih: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Format izvještaja '%1$s' nije valjan. Pokušaj sa nekim od sljedećih: %2$s.",
"ExceptionInvalidToken": "Oznaka nije valjana.",
"ExceptionLanguageFileNotFound": "Jezična datoteka '%s' nije pronađena.",
- "ExceptionMethodNotFound": "Metoda '%s' ne postoji ili nije dostupna u modulu '%s'.",
+ "ExceptionMethodNotFound": "Metoda '%1$s' ne postoji ili nije dostupna u modulu '%2$s'.",
"ExceptionMissingFile": "Nedostaje datoteka: %s",
"ExceptionNonceMismatch": "Nije moguće provjeriti sigurnosnu oznaku obrasca.",
"ExceptionPrivilege": "Nije moguće pristupiti ovoj funkciji jer zahjeva %s nivo pristupa.",
@@ -133,7 +131,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Nije moguće pristupiti ovoj funkciji jer zahjeva %s nivo pristupa za barem jednu web stranicu.",
"ExceptionUnableToStartSession": "Nije moguće pokrenuti vezu.",
"ExceptionUndeletableFile": "Nije moguće obrisati %s",
- "ExceptionUnreadableFileDisabledMethod": "Nije moguće pročitati konfiguracijsku datoteku {%s}. Moguće je da je vaš poslužitelj isključio %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Nije moguće pročitati konfiguracijsku datoteku {%1$s}. Moguće je da je vaš poslužitelj isključio %2$s.",
"ExceptionReportNotFound": "Zatraženi izvještaj ne postoji",
"Export": "Izvezi",
"ExportAsImage": "Izvezi kao sliku",
@@ -164,7 +162,7 @@
"LoadingData": "Učitavam podatke...",
"Locale": "hr_HR.UTF-8",
"Logout": "Odjavi se",
- "MediumToHighTrafficItIsRecommendedTo": "Za stranice sa srednjim i velikim prometom preporučamo da izvještaje za tekući dan najviše svakih pola sata (%s sekundi) ili svakih sat vremena (%s sekundi).",
+ "MediumToHighTrafficItIsRecommendedTo": "Za stranice sa srednjim i velikim prometom preporučamo da izvještaje za tekući dan najviše svakih pola sata (%1$s sekundi) ili svakih sat vremena (%2$s sekundi).",
"Metadata": "META data",
"MinutesSeconds": "%1$s min %2$ss",
"Monthly": "Mjesečno",
@@ -208,7 +206,7 @@
"OperationNotEquals": "Nije jednako",
"OptionalSmtpPort": "Opcionalno. Pretpostavljena vrijednost je 25 za neenkriptiranu i TLS vezu ili 465 za SSL vezu.",
"Options": "Opcije",
- "OrCancel": "ili %s odustani %s",
+ "OrCancel": "ili %1$s odustani %2$s",
"Others": "Ostali",
"Outlink": "Odlazni link",
"Outlinks": "Odlazni linkovi",
@@ -241,7 +239,7 @@
"Save": "Spremi",
"SaveImageOnYourComputer": "Za spremanje slike na vaše računalo koristite desni klik na sliku i odaberite opciju za spremanje slike.",
"Search": "Pretraga",
- "SeeTheOfficialDocumentationForMoreInformation": "Za više informacija pogledajte %sslužbenu dokumentaciju%s.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Za više informacija pogledajte %1$sslužbenu dokumentaciju%2$s.",
"SelectYesIfYouWantToSendEmailsViaServer": "Odaberite \"Da\" ako želite slati mail preko poslužitelja umjesto pomoću lokalne funckije",
"Settings": "Postavke",
"Shipping": "Poštarina",
@@ -281,7 +279,7 @@
"Warning": "Upozorenje",
"WarningFileIntegrityNoManifest": "Nije moguće napraviti provjeru integriteta datoteke jer nedostaje manifest.inc.php.",
"WarningFileIntegrityNoMd5file": "Nije moguće napraviti provjeru integriteta datoteke jer funkcija md5_file() nije dostupna.",
- "WarningPasswordStored": "%sPozor:%s Ova će lozinka biti pohranjena u konfiguracijsku datoteka i biti će vidljiva svima koji imaju pristup toj datoteci.",
+ "WarningPasswordStored": "%1$sPozor:%2$s Ova će lozinka biti pohranjena u konfiguracijsku datoteka i biti će vidljiva svima koji imaju pristup toj datoteci.",
"Website": "Web stranica",
"Weekly": "Tjedno",
"Widgets": "Widgeti",
@@ -335,7 +333,7 @@
"TryIt": "Probaj!"
},
"RowEvolution": {
- "MetricBetweenText": "od %s do %s",
+ "MetricBetweenText": "od %1$s do %2$s",
"PickARow": "Odaberi redak za usporedbu"
}
} \ No newline at end of file
diff --git a/lang/hu.json b/lang/hu.json
index 19265c78ec..6169badfef 100644
--- a/lang/hu.json
+++ b/lang/hu.json
@@ -13,7 +13,7 @@
"API": "API",
"Apply": "Alkalmaz",
"ArchivingInlineHelp": "Közepes és nagy forgalmú weboldalak esetén ajánlott letiltani a böngészővel való megnyitás által előidézett archiválást. Ehelyett ajánlott egy cron job beállítása, mely óránként feldolgozza a Piwik jelentéseket.",
- "ArchivingTriggerDescription": "Nagyobb, Piwik-et használó weboldalak esetén ajánlott. A jelentések automatikus feldolgozásához %segy cron job belállítása%s is szükséges.",
+ "ArchivingTriggerDescription": "Nagyobb, Piwik-et használó weboldalak esetén ajánlott. A jelentések automatikus feldolgozásához %1$segy cron job belállítása%2$s is szükséges.",
"AuthenticationMethodSmtp": "SMTP autentikációs módszer",
"AverageOrderValue": "Átlagos rendelési érték",
"AveragePrice": "Átlagár",
@@ -24,10 +24,8 @@
"Cancel": "Mégse",
"ChangePassword": "Jelszó megváltoztatása",
"ChangeTagCloudView": "Figyelmedbe ajánljuk, hogy a jelentés a címkefelhőn kívül más formátumokban is megtekinthető a jelentés alján található gombok segítségével.",
- "ChooseDate": "Válassz dátumot",
"ChooseLanguage": "Válassz nyelvet",
"ChoosePeriod": "Válassz időtartamot",
- "ChooseWebsite": "Válassz weboldalt",
"ClickHere": "Kattints ide további információért.",
"Close": "Bezárás",
"ClickToSearch": "Kattintson a kereséshez",
@@ -73,7 +71,7 @@
"ColumnValuePerVisit": "Látogatásonkénti érték",
"ColumnVisitDuration": "Látogatás időtartama (másodpercekben)",
"ColumnVisitsWithConversions": "Látogatások konverzióval",
- "ConfigFileIsNotWritable": "A Piwik konfigurációs fájl %s nem írható, így egyes változtatásokat nem lehet elmenteni. %s Kérjük, engedélyezze a konfigurációs fájlra az írási jogot.",
+ "ConfigFileIsNotWritable": "A Piwik konfigurációs fájl %1$s nem írható, így egyes változtatásokat nem lehet elmenteni. %2$s Kérjük, engedélyezze a konfigurációs fájlra az írási jogot.",
"ContinueToPiwik": "Tovább a Piwik-hez",
"CurrentMonth": "Aktuális hónap",
"CurrentWeek": "Aktuális hét",
@@ -83,7 +81,7 @@
"Date": "Dátum",
"DateRange": "Időintervallum:",
"DateRangeFrom": "Ettől",
- "DateRangeFromTo": "%s-tól %s-ig",
+ "DateRangeFromTo": "%1$s-tól %2$s-ig",
"DateRangeTo": "Eddig",
"DaysHours": "%1$s nap %2$s óra",
"DaysSinceFirstVisit": "Első látogatás óta eltelt napok",
@@ -114,14 +112,14 @@
"ExceptionFilesizeMismatch": "Fájlméret nem egyezik %1$s (várt hossz: %2$s, ehelyett a talált: %3$s)",
"ExceptionIncompatibleClientServerVersions": "A %1$s kliens verzió: %2$s, mely inkompatibilis a következő szerver verzióval: %3$s.",
"ExceptionInvalidArchiveTimeToLive": "A mai archívum élettartamának nullánál nagyobbnak kell lennie másodpercekben mérve.",
- "ExceptionInvalidDateFormat": "A dátumformátumnak a következőnek kell lennie: %s vagy bármely, a %s funkció által támogatott kulcsszó (további információ: %s)",
- "ExceptionInvalidDateRange": "A '%s' időintervallum nem megfelelő. Kérjük, próbáld meg helyette a következőket: %s.",
- "ExceptionInvalidPeriod": "A '%s' időtartam nem támogatott. Kérjük, próbáld meg helyette a következőket: %s.",
- "ExceptionInvalidRendererFormat": "A '%s' megjelenítési formátum érvénytelen. Kérjük, próbáld meg helyette a következőket: %s.",
- "ExceptionInvalidReportRendererFormat": "A '%s' jelentés formátum érvénytelen. Próbálkozz egy másikkal a következőek közül: %s.",
+ "ExceptionInvalidDateFormat": "A dátumformátumnak a következőnek kell lennie: %1$s vagy bármely, a %2$s funkció által támogatott kulcsszó (további információ: %3$s)",
+ "ExceptionInvalidDateRange": "A '%1$s' időintervallum nem megfelelő. Kérjük, próbáld meg helyette a következőket: %2$s.",
+ "ExceptionInvalidPeriod": "A '%1$s' időtartam nem támogatott. Kérjük, próbáld meg helyette a következőket: %2$s.",
+ "ExceptionInvalidRendererFormat": "A '%1$s' megjelenítési formátum érvénytelen. Kérjük, próbáld meg helyette a következőket: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "A '%1$s' jelentés formátum érvénytelen. Próbálkozz egy másikkal a következőek közül: %2$s.",
"ExceptionInvalidToken": "Érvénytelen kód.",
"ExceptionLanguageFileNotFound": "A '%s' nyelvi fájl nem található",
- "ExceptionMethodNotFound": "A '%s' eljárás nem létezik, vagy nem áll rendelkezésre a '%s' modulban.",
+ "ExceptionMethodNotFound": "A '%1$s' eljárás nem létezik, vagy nem áll rendelkezésre a '%2$s' modulban.",
"ExceptionMissingFile": "Hiányzó fájl: %s",
"ExceptionNonceMismatch": "Nem lehetett ellenőrizni a biztonsági kódot ezen az űrlapon.",
"ExceptionPrivilege": "Ez a lehetőség nem elérhető, mivel %s szintű hozzáférés kellene hozzá.",
@@ -129,7 +127,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Ez a lehetőség nem elérhető, mivel %s szintű hozzáférés kellene hozzá legalább egy weboldal esetén.",
"ExceptionUnableToStartSession": "Nem lehet elindítani a munkamenetet.",
"ExceptionUndeletableFile": "Ezt nem lehet letörölni: %s",
- "ExceptionUnreadableFileDisabledMethod": "A konfigurációs fájl {%s} nem olvasható. Lehet, hogy a szerveren nem engedélyezett a következő: %s.",
+ "ExceptionUnreadableFileDisabledMethod": "A konfigurációs fájl {%1$s} nem olvasható. Lehet, hogy a szerveren nem engedélyezett a következő: %2$s.",
"Export": "Export",
"ExportAsImage": "Exportálás képként",
"ExportThisReport": "Adatok exportálása más formátumokba",
@@ -154,7 +152,7 @@
"LoadingData": "Adatok betöltése folyamatban…",
"Locale": "hu_HU.UTF-8",
"Logout": "Kilépés",
- "MediumToHighTrafficItIsRecommendedTo": "Közepes vagy nagy forgalmú weboldalak esetén javasoljuk, hogy a jelentések legfeljebb félóránként (%s másodpercenként) vagy óránként (%s másodpercenként) kerüljenek feldolgozásra.",
+ "MediumToHighTrafficItIsRecommendedTo": "Közepes vagy nagy forgalmú weboldalak esetén javasoljuk, hogy a jelentések legfeljebb félóránként (%1$s másodpercenként) vagy óránként (%2$s másodpercenként) kerüljenek feldolgozásra.",
"MinutesSeconds": "%1$s perc %2$s mp.",
"Monthly": "Havi",
"MultiSitesSummary": "Összes weboldal",
@@ -178,7 +176,7 @@
"OnlyUsedIfUserPwdIsSet": "Csak abban az esetben használva, ha a felhasználói név és jelszó megadásra került. Kérdezd meg a rendszeradminisztrátorod, ha nem vagy biztos, melyik megoldást használd.",
"OpenSourceWebAnalytics": "Nyílt forráskódú webanalitika",
"OptionalSmtpPort": "Opcionális. Alapértelmezettként 25-ös port a nem titkosított és a TLS SMTP esetén és 465-ös port a SSL SMTP esetén.",
- "OrCancel": "vagy %s megszakít %s",
+ "OrCancel": "vagy %1$s megszakít %2$s",
"Others": "Mások",
"Outlink": "Kimenő link",
"Outlinks": "Kimenő linkek",
@@ -211,7 +209,7 @@
"Save": "Mentés",
"SaveImageOnYourComputer": "A kép lementéséhez kattints jobbklikkel a képre és választ a \"Kép mentése más néven…\" opciót.",
"Search": "Keresés",
- "SeeTheOfficialDocumentationForMoreInformation": "A további részletekkel kapcsolatban lásd a %shivatalos dokumentációt%s.",
+ "SeeTheOfficialDocumentationForMoreInformation": "A további részletekkel kapcsolatban lásd a %1$shivatalos dokumentációt%2$s.",
"SelectYesIfYouWantToSendEmailsViaServer": "Válaszd az \"Igen\"-t, ha az e-mailek elküldését egy megadott szerverrel, és nem pedig a local mail funkcióval szeretnéd megoldani.",
"Settings": "Beállítások",
"Shipping": "Szállítás",
@@ -258,7 +256,7 @@
"Warning": "Figyelmeztetés",
"WarningFileIntegrityNoManifest": "A fájlintegritás-ellenőrzés nem hajtható végre, mivel hiányzik a manifest.inc.php fájl.",
"WarningFileIntegrityNoMd5file": "A fájlintegritás-ellenőrzés nem hajtható végre, mivel az md5_file() funkció nem elérhető.",
- "WarningPasswordStored": "%sFigyelmeztetés:%s Ez a jelszó eltárolásra kerül a konfigurációs fájlban, így bárki láthatja, aki hozzáfér a fájlhoz.",
+ "WarningPasswordStored": "%1$sFigyelmeztetés:%2$s Ez a jelszó eltárolásra kerül a konfigurációs fájlban, így bárki láthatja, aki hozzáfér a fájlhoz.",
"Website": "Weboldal",
"Weekly": "Heti",
"WeeklyReport": "heti",
@@ -317,7 +315,7 @@
"CompareRows": "Adatok összehasonlítása",
"ComparingRecords": "%s sorok összehasonlítása",
"Documentation": "Válassza ki a megjelenítendő metrikákat, amelyeket szeretne megtekinteni nagy evolúciós grafikonon. A shift billentyű nyomvatartásával több metrika egyidejűleg megjelenthető.",
- "MetricBetweenText": "%s-től %s-ig",
+ "MetricBetweenText": "%1$s-től %2$s-ig",
"PickAnotherRow": "Válasszon egy mások sort az összehasonlításhoz",
"PickARow": "Válasszon egy sort az összehasonlításhoz"
}
diff --git a/lang/id.json b/lang/id.json
index 6245ae969f..2e052353fc 100644
--- a/lang/id.json
+++ b/lang/id.json
@@ -15,7 +15,7 @@
"API": "API",
"Apply": "Terapkan",
"ArchivingInlineHelp": "Untuk kunjungan situs menengah hingga tinggi, disarankan untuk mematikan pengarsipan Piwik ketika laporan ditampilkan. Kami lebih menyarankan untuk mengatur tugas Cron untuk mengolah laporan pada tiap jam.",
- "ArchivingTriggerDescription": "Disarankan untuk instalasi Piwik besar untuk %smengatur tugas Cron%s untuk mengolah laporan otomatis.",
+ "ArchivingTriggerDescription": "Disarankan untuk instalasi Piwik besar untuk %1$smengatur tugas Cron%2$s untuk mengolah laporan otomatis.",
"AuthenticationMethodSmtp": "Metode otentikasi untuk SMTP",
"AverageOrderValue": "Rerata Nilai Permintaan",
"AveragePrice": "Harga Rerata",
@@ -27,10 +27,8 @@
"CannotUnzipFile": "Tidak dapat membongkar berkas %1$s: %2$s",
"ChangePassword": "Ganti Sandi",
"ChangeTagCloudView": "Perlu diketahui, bahwa Anda dapat melihat laporan dalam cara lain selain sebagai etiket awan. Gunakan kendali di bagian bawah laporan untuk melakukannya.",
- "ChooseDate": "Pilih tanggal",
"ChooseLanguage": "Pilih bahasa",
"ChoosePeriod": "Pilih periode",
- "ChooseWebsite": "Pilih situs",
"ClickHere": "Klik di sini untuk informasi lebih lanjut.",
"ClickToChangePeriod": "Klik kembali untuk mengubah periode.",
"Close": "Tutup",
@@ -84,7 +82,7 @@
"ColumnViewedAfterSearchDocumentation": "Jumlah kali Halaman ini dikunjungi setelah pengnjung melakukan pencarian dalam Situs Anda, dan mengekik Halaman ini di hasil pencarian.",
"ColumnVisitDuration": "Lama Kunjungan (dalam detik)",
"ColumnVisitsWithConversions": "Kunjungan dengan Tayangan",
- "ConfigFileIsNotWritable": "Berkas konfigurasi Piwik %s tak dapat ditulisi, beberapa perubahan Anda kemungkinan tidak tersimpan. %s Silakan mengubah perizinan berkas konfigurasi agar dapat ditulisi.",
+ "ConfigFileIsNotWritable": "Berkas konfigurasi Piwik %1$s tak dapat ditulisi, beberapa perubahan Anda kemungkinan tidak tersimpan. %2$s Silakan mengubah perizinan berkas konfigurasi agar dapat ditulisi.",
"Continue": "Lanjut",
"ContinueToPiwik": "Lanjut ke Piwik",
"CurrentMonth": "Bulan Ini",
@@ -100,7 +98,7 @@
"Date": "Tanggal",
"DateRange": "Rentang tanggal:",
"DateRangeFrom": "Dari",
- "DateRangeFromTo": "Dari %s ke %s",
+ "DateRangeFromTo": "Dari %1$s ke %2$s",
"DateRangeInPeriodList": "rentang tanggal",
"DateRangeTo": "Kepada",
"DaysHours": "%1$s hari %2$s jam",
@@ -133,28 +131,28 @@
"Edit": "Sunting",
"EncryptedSmtpTransport": "Masukkan penyandian lapisan transpor yang dibutuhkan peladen SMTP.",
"Error": "Galat",
- "ErrorRequest": "Ups.. terdapat kesalahan selama melakukan permintaan. Mungkin peladen mendapat masalah sementara, atau mungkin Anda melakukan permintaan dengan data yang terlalu besar. Silakan coba kembali. Bila galat ini terjadi berulang, silakan %shubungi pengelola Piwik Anda%s untuk bantuan.",
+ "ErrorRequest": "Ups.. terdapat kesalahan selama melakukan permintaan. Mungkin peladen mendapat masalah sementara, atau mungkin Anda melakukan permintaan dengan data yang terlalu besar. Silakan coba kembali. Bila galat ini terjadi berulang, silakan %1$shubungi pengelola Piwik Anda%2$s untuk bantuan.",
"EvolutionOverPeriod": "Perkembangan selama periode",
"EvolutionSummaryGeneric": "%1$s di %2$s dibandingkan dengan %3$s di %4$s. Perubahan: %5$s",
- "ExceptionContactSupportGeneric": "Bila Anda tetap mengalami kendala, silakan %shubungi pengelola Piwik Anda%s untuk bantuan.",
+ "ExceptionContactSupportGeneric": "Bila Anda tetap mengalami kendala, silakan %1$shubungi pengelola Piwik Anda%2$s untuk bantuan.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Pengguna harus menjadi Pengguna Super atau pengguna '%s' itu sendiri.",
"ExceptionConfigurationFileNotFound": "Berkas konfigurasi {%s} tak ditemukan.",
- "ExceptionConfigurationFileNotFound2": "Bila berkas tersebut ada, harap memeriksa bahwa berkas %s dapat dibaca oleh pengguna '%s'.",
+ "ExceptionConfigurationFileNotFound2": "Bila berkas tersebut ada, harap memeriksa bahwa berkas %1$s dapat dibaca oleh pengguna '%2$s'.",
"ExceptionDatabaseVersion": "Versi %1$s Anda adalah %2$s, tetapi Piwik membtuhkan setidaknya versi %3$s.",
"ExceptionFileIntegrity": "Pemerikasaa intergritas gagal: %s",
"ExceptionFilesizeMismatch": "Ukuran berkas tak sesuai: %1$s (diharapkan panjang: %2$s, ditemukan: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Versi klien %1$s Anda adalah %2$s yang tidak sesuai dengan server versi %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Laporan keseluruhan bentuk '%s' tak sahih. Coba salah satu berikut ini sebagai pengganti: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Laporan keseluruhan bentuk '%1$s' tak sahih. Coba salah satu berikut ini sebagai pengganti: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Pengarsipan hari ini agar aktif, nilai detik harus harus lebih besar dari nol",
- "ExceptionInvalidDateFormat": "Pola tanggal harus: %s atau kata kunci lain yang didukung oleh fungsi %s (lihat %s untuk informasi selengkapnya)",
- "ExceptionInvalidDateRange": "Tanggal '%s' bukan rentang tanggal yang benar. Tanggal harus memiliki format sebagai berikut: %s.",
- "ExceptionInvalidPeriod": "Periode '%s' tidak didukung. Coba salah satu berikut ini sebagai pengganti: %s",
- "ExceptionInvalidRendererFormat": "Penyaji format '%s' tak sahih. Coba salah satu berikut ini sebagai pengganti: %s.",
- "ExceptionInvalidReportRendererFormat": "Laporan format '%s' tak sahih. Coba salah satu berikut ini sebagai pengganti: %s.",
- "ExceptionInvalidStaticGraphType": "Grafik statis jenis '%s' tak sahih. Coba salah satu berikut ini sebagai pengganti: %s.",
+ "ExceptionInvalidDateFormat": "Pola tanggal harus: %1$s atau kata kunci lain yang didukung oleh fungsi %2$s (lihat %3$s untuk informasi selengkapnya)",
+ "ExceptionInvalidDateRange": "Tanggal '%1$s' bukan rentang tanggal yang benar. Tanggal harus memiliki format sebagai berikut: %2$s.",
+ "ExceptionInvalidPeriod": "Periode '%1$s' tidak didukung. Coba salah satu berikut ini sebagai pengganti: %2$s",
+ "ExceptionInvalidRendererFormat": "Penyaji format '%1$s' tak sahih. Coba salah satu berikut ini sebagai pengganti: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Laporan format '%1$s' tak sahih. Coba salah satu berikut ini sebagai pengganti: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Grafik statis jenis '%1$s' tak sahih. Coba salah satu berikut ini sebagai pengganti: %2$s.",
"ExceptionInvalidToken": "Kepingan tak sahih.",
"ExceptionLanguageFileNotFound": "Berkas bahasa '%s' tak ditemukan.",
- "ExceptionMethodNotFound": "Metode '%s' tidak ada atau tak tersedia di modul '%s'.",
+ "ExceptionMethodNotFound": "Metode '%1$s' tidak ada atau tak tersedia di modul '%2$s'.",
"ExceptionMissingFile": "Berkas hilang: %s",
"ExceptionNonceMismatch": "Tidak dapat memeriksa kepingan dari borang ini.",
"ExceptionPrivilege": "Anda tak dapat mengakses sumber daya ini karena membutuhkan akses %s.",
@@ -162,7 +160,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Anda tak dapat mengakses sumber daya ini karena membutuhkan setidaknya akses %s untuk satu situs.",
"ExceptionUnableToStartSession": "Tak dapat memulai sesi.",
"ExceptionUndeletableFile": "Tak dapat meghapus %s",
- "ExceptionUnreadableFileDisabledMethod": "Berkas konfigurasi {%s} tak dapat dibaca. Inang Anda kemungkungkinan mematikan %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Berkas konfigurasi {%1$s} tak dapat dibaca. Inang Anda kemungkungkinan mematikan %2$s.",
"Export": "Ekspor",
"ExportAsImage": "Ekspor sebagai Gambar",
"ExportThisReport": "Ekspor dataset ini ke format lain",
@@ -199,7 +197,7 @@
"Logout": "Keluar-log",
"MainMetrics": "Metrik utama",
"Matches": "Cocok",
- "MediumToHighTrafficItIsRecommendedTo": "Untuk kunjungan menengah hingga tinggi, kami menyarankan untuk mengolah laporan untuk hari ini setiap setengah jam (%s detik) atau satu jam (%s detik).",
+ "MediumToHighTrafficItIsRecommendedTo": "Untuk kunjungan menengah hingga tinggi, kami menyarankan untuk mengolah laporan untuk hari ini setiap setengah jam (%1$s detik) atau satu jam (%2$s detik).",
"Metadata": "Metadata",
"Metric": "Metrik",
"Metrics": "Metrik",
@@ -249,7 +247,7 @@
"OperationNotEquals": "Tidak sama dengan",
"OptionalSmtpPort": "Pilihan. Asali 25 untuk sambungan tak tersandi dan SMTP TLS, serta 465 untuk SMTP SSL.",
"Options": "Opsi",
- "OrCancel": "atau %s Batal %s",
+ "OrCancel": "atau %1$s Batal %2$s",
"Others": "Lainnya",
"Outlink": "Tautan keluar",
"Outlinks": "Tautan Luar",
@@ -257,7 +255,7 @@
"OverlayRowActionTooltipTitle": "Buka Penghampar Halaman",
"Overview": "Iktisar",
"Pages": "Halaman",
- "ParameterMustIntegerBetween": "Parameter %s harus bilangan bulat antara %s dan %s.",
+ "ParameterMustIntegerBetween": "Parameter %1$s harus bilangan bulat antara %2$s dan %3$s.",
"Password": "Sandi",
"Period": "Periode",
"Piechart": "Bagan Lingkaran",
@@ -299,7 +297,7 @@
"SaveImageOnYourComputer": "Untuk menyimpan gambar ke komputer Anda, klik kanan di gambar dan pilih \"Simpan Gambar dengan Nama...\"",
"Search": "Cari",
"SearchNoResults": "Tidak ada hasil",
- "SeeTheOfficialDocumentationForMoreInformation": "Lihat %sdokumentasi resmi%s untuk informasi selengkapnya.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Lihat %1$sdokumentasi resmi%2$s untuk informasi selengkapnya.",
"SelectYesIfYouWantToSendEmailsViaServer": "Pilih \"Ya\" bila Anda ingin mengirim surel melalui peladen surel daripada menggunakan fungsi mail() lokal",
"Settings": "Pengaturan",
"Shipping": "Pengiriman",
@@ -347,7 +345,7 @@
"Warning": "Peringatan",
"WarningFileIntegrityNoManifest": "Pemeriksaan integritas berkas tak dapat dilakukan sebab berkas manifest.inc.php tak ditemukan.",
"WarningFileIntegrityNoMd5file": "Pemeriksaan integritas berkas tak dapat diselesaikan sebab fungsi md5_file() tak ditemukan.",
- "WarningPasswordStored": "%sPeringatan:%s Sandi akan disimpan dalam berkas konfigurasi yang tampak kepada semua yang dapat mengakses ini.",
+ "WarningPasswordStored": "%1$sPeringatan:%2$s Sandi akan disimpan dalam berkas konfigurasi yang tampak kepada semua yang dapat mengakses ini.",
"Website": "Situs",
"Weekly": "Mingguan",
"WeeklyReport": "mingguan",
@@ -400,7 +398,7 @@
"MultiChartLabel": "Tampilkan bagan garis",
"NavigationBack": "Kembali",
"NetworkError": "Galat Jaringan",
- "NetworkErrorWithStatusCode": "Terdapat galat \"%s\". Permintaan memberikan status \"%s\", dengan URL \"%s\". Harap periksa URL yang Anda masukkan dan catatan galat dalam peladen ini untuk informasi tentang galat dan bagaimana menyelesaikannya.",
+ "NetworkErrorWithStatusCode": "Terdapat galat \"%1$s\". Permintaan memberikan status \"%2$s\", dengan URL \"%3$s\". Harap periksa URL yang Anda masukkan dan catatan galat dalam peladen ini untuk informasi tentang galat dan bagaimana menyelesaikannya.",
"NetworkErrorWithStatusCodeShort": "Galat Jaringan %s",
"NetworkNotReachable": "Jaringan tak terjangkau",
"NoAccountIsSelected": "Anda harus memilih sebuah akun. Tambah akun baru bila Anda belum mengaturnya.",
@@ -418,7 +416,7 @@
"RatingDontRemindMe": "Jangan ingatkan lagi",
"RatingNotNow": "Jangan sekarang",
"RatingNow": "Baik, aku akan menilai sekarang",
- "RatingPleaseRateUs": "App Bergerak Piwik merupakan Perangkat Lunak Gratis, kami sangat menghargai bila Anda meluangkan waktu sebentar untuk menilai aplikasi ini di %s. Bila Anda memiliki permintaan fitur baru atau laporan kutu, harap menghubungi %s",
+ "RatingPleaseRateUs": "App Bergerak Piwik merupakan Perangkat Lunak Gratis, kami sangat menghargai bila Anda meluangkan waktu sebentar untuk menilai aplikasi ini di %1$s. Bila Anda memiliki permintaan fitur baru atau laporan kutu, harap menghubungi %2$s",
"ReleaseToRefresh": "Lepaskan untuk menyegarkan...",
"Reloading": "Memuat ulang...",
"RequestTimedOutShort": "Galat Waktu Tunggu Jaringan",
@@ -443,7 +441,7 @@
"CompareRows": "Bandingkan catatan",
"ComparingRecords": "Membandingkan %s baris",
"Documentation": "Klik metrik untuk menampilkan grafik perubahan besar. Gunakan shift-klik untuk menampikan banyak grafik sekaligus.",
- "MetricBetweenText": "antara %s dan %s",
+ "MetricBetweenText": "antara %1$s dan %2$s",
"MetricChangeText": "%s selama masa",
"MetricMinMax": "%1$s terentang antara %2$s dan %3$s melebihi masa",
"MetricsFor": "Metrik untuk %s",
diff --git a/lang/it.json b/lang/it.json
index a7c540aead..adbd85d363 100644
--- a/lang/it.json
+++ b/lang/it.json
@@ -15,7 +15,7 @@
"API": "API",
"Apply": "Applica",
"ArchivingInlineHelp": "Per i siti da medi a grandi, è raccomandabile disabilitare l'attivazione di Piwik dal browser. Raccomandiamo piuttosto di configurare un cron job per elaborare i report di Piwik ogni ora.",
- "ArchivingTriggerDescription": "Raccomandato per installazioni di Piwik grandi, devi %sconfigurare un cron job%s per elaborare i report automaticamente.",
+ "ArchivingTriggerDescription": "Raccomandato per installazioni di Piwik grandi, devi %1$sconfigurare un cron job%2$s per elaborare i report automaticamente.",
"AuthenticationMethodSmtp": "Metodo di autenticazione per SMTP",
"AverageOrderValue": "Valore medio ordine",
"AveragePrice": "Prezzo medio",
@@ -27,10 +27,9 @@
"CannotUnzipFile": "Impossibile scompattare il file %1$s: %2$s",
"ChangePassword": "Cambio password",
"ChangeTagCloudView": "Nota che puoi vedere il report in altri modi diversi dalla tag cloud. Usa i controlli in fondo al report per fare ciò.",
- "ChooseDate": "Scegli data",
+ "ChooseDate": "Scegli una data, attualmente è selezionata: %s",
"ChooseLanguage": "Scegli la lingua",
"ChoosePeriod": "Scegli il periodo",
- "ChooseWebsite": "Scegli il sito",
"ClickHere": "Clicca qui per maggiori informazioni",
"ClickToChangePeriod": "Clicca di nuovo per cambiare il periodo.",
"Close": "Chiudi",
@@ -84,9 +83,11 @@
"ColumnViewedAfterSearchDocumentation": "Numero di volte in cui questa Pagina è stata visitata dopo che un visitatore ha fatto una ricerca nel vostro sito e ha cliccato su questa pagina nei risultati della ricerca.",
"ColumnVisitDuration": "Durata delle visite (in secondi)",
"ColumnVisitsWithConversions": "Visite con Conversioni",
- "ConfigFileIsNotWritable": "Il file di configurazione di Piwik %s non è scrivibile, alcune delle tue impostazioni potrebbero non essere state salvate. %s Cambia i permessi del file di configurazione per farlo diventare modificabile.",
+ "ConfigFileIsNotWritable": "Il file di configurazione di Piwik %1$s non è scrivibile, alcune delle tue impostazioni potrebbero non essere state salvate. %2$s Cambia i permessi del file di configurazione per farlo diventare modificabile.",
"Continue": "Continua",
"ContinueToPiwik": "Vai a Piwik",
+ "CurrentlyUsingUnsecureHttp": "Al momento stai usando Piwik tramite il non sicuro HTTP, il che può essere rischioso. Ti raccomandiamo di configurare Piwik affinché utilizzi SSL (HTTPS) per una maggiore sicurezza.",
+ "CreatedByUser": "creato da %s",
"CurrentMonth": "Mese corrente",
"CurrentWeek": "Settimana corrente",
"CurrentYear": "Anno corrente",
@@ -100,7 +101,7 @@
"Date": "Data",
"DateRange": "Arco temporale:",
"DateRangeFrom": "Da",
- "DateRangeFromTo": "Da %s a %s",
+ "DateRangeFromTo": "Da %1$s a %2$s",
"DateRangeInPeriodList": "intervallo date",
"DateRangeTo": "A",
"DaysHours": "%1$s giorni %2$s ore",
@@ -133,30 +134,30 @@
"Edit": "Modifica",
"EncryptedSmtpTransport": "Inserisci la crittografia a livello di trasporto richiesta dal server SMTP.",
"Error": "Errore",
- "ErrorRequest": "Ooops... c'è stato un problema durante la richiesta. Forse il server ha avuto un problema temporaneo o forse hai richiesto un report con troppi dati. Si prega di provare nuovamente. Se questo errore si verifica ripetutamente, %scontatta il tuo amministratore di Piwik%s per assistenza.",
+ "ErrorRequest": "Ooops... c'è stato un problema durante la richiesta. Forse il server ha avuto un problema temporaneo o forse hai richiesto un report con troppi dati. Si prega di provare nuovamente. Se questo errore si verifica ripetutamente, %1$scontatta il tuo amministratore di Piwik%2$s per assistenza.",
"EvolutionOverPeriod": "Evoluzione nel periodo",
"EvolutionSummaryGeneric": "%1$s in %2$s confrontato con %3$s in %4$s. Evoluzione: %5$s",
- "ExceptionContactSupportGeneric": "Se hai ancora questo problema %scontatta il tuo amministratore di Piwik%s per assistenza.",
+ "ExceptionContactSupportGeneric": "Se hai ancora questo problema %1$scontatta il tuo amministratore di Piwik%2$s per assistenza.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "L'utente deve essere un Super User o l'utente '%s' stesso.",
"ExceptionConfigurationFileNotFound": "Il file di configurazione {%s} non è stato trovato.",
- "ExceptionConfigurationFileNotFound2": "Se il file esiste, controlla che %s sia leggibile dall'utente '%s'.",
+ "ExceptionConfigurationFileNotFound2": "Se il file esiste, controlla che %1$s sia leggibile dall'utente '%2$s'.",
"ExceptionDatabaseVersion": "La tua %1$s versione è %2$s ma Piwik richiede almeno la %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Il tuo codice di Piwik è quello della vecchia versione %1$s mentre abbiamo rilevato che il database di Piwik è già stato aggiornato alla nuova versione %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Può darsi che i tuoi amministratori di Piwik al momento stiano terminando il processo di aggiornamento. Prova ancora tra qualche minuto.",
"ExceptionFileIntegrity": "Test di integrità fallito: %s",
"ExceptionFilesizeMismatch": "Discordanza di dimensione file: %1$s (dimensione attesa: %2$s, trovata: %3$s)",
"ExceptionIncompatibleClientServerVersions": "La tua %1$s versione del client è %2$s la quale non è compatibile con la versione del server %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Formato di report aggregati '%s' non valido. Provate, invece, uno dei seguenti: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Formato di report aggregati '%1$s' non valido. Prova, invece, uno dei seguenti: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Il tempo di archiviazione di oggi deve essere un numero di secondi maggiore di zero",
- "ExceptionInvalidDateFormat": "Il formato della data deve essere: %s o qualsiasi parola chiave supportata dalla funzione %s (vedi %s per maggiori informazioni)",
- "ExceptionInvalidDateRange": "La data '%s' non è corretta. Dovrebbe avere questo formato: %s.",
- "ExceptionInvalidPeriod": "Il periodo '%s' non è supportato. Prova, invece, uno di questi: %s",
- "ExceptionInvalidRendererFormat": "Il formato di visualizzazione '%s' non è valido. Prova, invece, uno dei formati seguenti: %s.",
- "ExceptionInvalidReportRendererFormat": "Il formato report '%s' non è valido. Prova, invece, uno dei seguenti: %s.",
- "ExceptionInvalidStaticGraphType": "Tipo di grafico statico '%s' non è valido. Prova, invece, una dei seguenti: %s.",
+ "ExceptionInvalidDateFormat": "Il formato della data deve essere: %1$s o qualsiasi parola chiave supportata dalla funzione %2$s (vedi %3$s per maggiori informazioni)",
+ "ExceptionInvalidDateRange": "La data '%1$s' non è corretta. Dovrebbe avere questo formato: %2$s.",
+ "ExceptionInvalidPeriod": "Il periodo '%1$s' non è supportato. Prova, invece, uno di questi: %2$s",
+ "ExceptionInvalidRendererFormat": "Il formato di visualizzazione '%1$s' non è valido. Prova, invece, uno dei formati seguenti: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Il formato di report '%1$s' non è valido. Prova al suo posto uno di questi: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Il tipo di grafico statico '%1$s' non è valido. Prova al suo posto uno di questi: %2$s.",
"ExceptionInvalidToken": "Il token non è valido.",
"ExceptionLanguageFileNotFound": "File di lingua '%s' non trovato.",
- "ExceptionMethodNotFound": "Il metodo '%s' non esiste o non è disponibile nel modulo '%s'.",
+ "ExceptionMethodNotFound": "Il metodo '%1$s' non esiste o non è disponibile nel modulo '%2$s'.",
"ExceptionMissingFile": "Manca il file: %s",
"ExceptionNonceMismatch": "Non è possibile verificare il token di sicurezza di questo form.",
"ExceptionPrivilege": "Non puoi accedere a questa risorsa con un accesso %s.",
@@ -164,7 +165,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Non puoi accedere alla risorsa richiesta perché essa richiede un accesso %s per almeno un sito web.",
"ExceptionUnableToStartSession": "Impossibile avviare la sessione.",
"ExceptionUndeletableFile": "Impossibile cancellare %s",
- "ExceptionUnreadableFileDisabledMethod": "Il file di configurazione {%s} non può essere letto. Il tuo host può aver disabilitato %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Il file di configurazione {%1$s} non può essere letto. Il tuo host può avere disabilitato %2$s.",
"ExceptionReportNotFound": "Il report richiesto non esiste.",
"ExceptionWidgetNotFound": "Il widget richiesto non esiste.",
"ExceptionReportNotEnabled": "Il report richiesto non è abilitato. Questo in genere significa che il plugin che definisce il report è disattivato o che tu non hai i permessi sufficienti per accedere a questo report.",
@@ -212,7 +213,7 @@
"Logout": "Esci",
"MainMetrics": "Metriche principali",
"Matches": "Corrispondenze",
- "MediumToHighTrafficItIsRecommendedTo": "Per siti da medio ad alto traffico, raccomandiamo di far elaborare i report di oggi al massimo ogni mezz'ora (%s secondi) o ogni ora (%s secondi).",
+ "MediumToHighTrafficItIsRecommendedTo": "Per siti web con un traffico medio o alto, raccomandiamo di elaborare i report per oggi almeno ogni mezz'ora (%1$s secondi) oppure ogni ora (%2$s secondi).",
"Metadata": "Metadati",
"Metric": "Metrica",
"Metrics": "Metriche",
@@ -230,6 +231,7 @@
"Name": "Nome",
"NbActions": "Numero di azioni",
"NbSearches": "Numero di Ricerche Interne",
+ "NeedMoreHelp": "Hai bisogno di altro aiuto?",
"Never": "Mai",
"NewReportsWillBeProcessedByCron": "Quando l'archiviazione di Piwik non è attivata dal browser, i nuovi report verranno elaborati con un crontab",
"NewUpdatePiwikX": "Nuovo Aggiornamento: Piwik %s",
@@ -269,7 +271,7 @@
"OptionalSmtpPort": "Opzionale. Default a 25 per non cifrato e TLS SMTP, e 465 per SSL SMTP.",
"Options": "Opzioni",
"Or": "o",
- "OrCancel": "oppure %s Annulla %s",
+ "OrCancel": "o %1$s Cancella %2$s",
"Others": "Altri",
"Outlink": "Outlink (link esterno)",
"Outlinks": "Outlinks (link esterni)",
@@ -277,9 +279,9 @@
"OverlayRowActionTooltipTitle": "Copertura Open Page",
"Overview": "Riepilogo",
"Pages": "Pagine",
- "Pagination": "%s - %s di %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Il parametro %s deve essere un valore intero compreso tra %s e %s",
+ "Pagination": "%1$s - %2$s di %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Il parametro %1$s deve essere un valore intero compreso tra %2$s e %3$s.",
"Password": "Password",
"Period": "Periodo",
"Piechart": "Diagramma a torta",
@@ -331,7 +333,7 @@
"Clear": "Pulisci",
"SearchNoResults": "Nessun risultato",
"SeeAll": "vedi tutto",
- "SeeTheOfficialDocumentationForMoreInformation": "Vedi la %sdocumentazione ufficiale%s per maggiori informazioni",
+ "SeeTheOfficialDocumentationForMoreInformation": "Vedi la %1$sdocumentazione ufficiale%2$s per ulteriori informazioni.",
"SeeThisFaq": "Vedi %1$squesta faq%2$s.",
"Segment": "Segmento",
"SelectYesIfYouWantToSendEmailsViaServer": "Seleziona \"Si\" se vuoi mandare le email attraverso un altro server, diverso dalla funzione email locale.",
@@ -358,7 +360,7 @@
"Total": "Totale",
"TotalRatioTooltip": "Questo è %1$s di tuttti i %2$s %3$s.",
"TotalRevenue": "Totale guadagni",
- "TotalVisitsPageviewsActionsRevenue": "(Totale: %s visite, %s pagine, %s azioni, %s ricavi)",
+ "TotalVisitsPageviewsActionsRevenue": "(Totale: %1$s visite, %2$s pagine viste, %3$s azioni, %4$s entrate)",
"TrackingScopeAction": "Azione",
"TrackingScopePage": "Pagina",
"TrackingScopeVisit": "Visita",
@@ -395,8 +397,8 @@
"WarningFileIntegrityNoManifest": "Il controllo dell'integrità dei file non può essere eseguito per la mancanza del file manifest.inc.php",
"WarningFileIntegrityNoManifestDeployingFromGit": "Se stai sviluppando Piwik da Git, questo messaggio è normale.",
"WarningFileIntegrityNoMd5file": "Il controllo d'integrità dei file non ha potuto essere completato per la mancanza della funzione md5_file().",
- "WarningPasswordStored": "%sAttenzione:%s Questa password verrà salvata nel file di configurazione, e sarà visibile a chiunque ne ha accesso.",
- "WarningDebugOnDemandEnabled": "La modalità tracker %s è abilitata. Per ragioni di sicurezza, questa dovrebbe essere abilitata solo per un breve lasso di tempo. Per disabilitarla, imposta %s a %s in %s.",
+ "WarningPasswordStored": "%1$sAttenzione:%2$s Questa password verrà salvata nel file di configurazione visibile da tutti che possono accedervi.",
+ "WarningDebugOnDemandEnabled": "Modalità di tracciamento %1$s abilitata. Per ragioni di sicurezza, potrà essere abilitata solo per un breve lasso di tempo. Per disabilitarla imposta %2$s a %3$s in %4$s",
"Website": "Sito:",
"Weekly": "Settimanale",
"WeeklyReport": "settimanale",
@@ -450,7 +452,7 @@
"MultiChartLabel": "Mostra sparklines",
"NavigationBack": "Indietro",
"NetworkError": "Errore di Rete",
- "NetworkErrorWithStatusCode": "C'è stato un errore \"%s\". La richiesta ha restituito lo status \"%s\". L'URL era \"%s\". Si prega di controllare l'URL immessa e il log degli errori su questo server per ulteriori informazioni sull'errore e su come risolverlo.",
+ "NetworkErrorWithStatusCode": "C'è stato un errore \"%1$s\". La richiesta ha restituito lo status \"%2$s\". L'URL era \"%3$s\". Si prega di controllare l'URL digitata e i log di errore su questo server per maggiori informazioni sull'errore e su come risolverlo.",
"NetworkErrorWithStatusCodeShort": "Errore di Rete %s",
"NetworkNotReachable": "Rete non raggiungibile",
"NoAccountIsSelected": "Devi scegliere un account. Aggiungi un nuovo account se non ne hai configurato uno.",
@@ -468,7 +470,7 @@
"RatingDontRemindMe": "Non ricordarmelo",
"RatingNotNow": "Non ora",
"RatingNow": "OK, do un voto ora",
- "RatingPleaseRateUs": "L'App Piwik Mobile è un software libero, ti saremmo davvero grati se potessi prenderti 1 minuto per valutare l'app in %s. Se hai suggerimenti su nuove funzionalità o segnalazioni di bug, ti preghiamo di contattare %s",
+ "RatingPleaseRateUs": "Piwik Mobile App è un software gratuito, apprezzeremmo molto se tu dedicassi 1 minuto per valutare l'app in %1$s. Se hai suggerimenti per nuove funzioni o segnalazioni di bug, si prega di contattare %2$s.",
"ReleaseToRefresh": "Rilascia per aggiornare...",
"Reloading": "Ricaricando...",
"RequestTimedOutShort": "Errore di Timeout Rete",
@@ -493,7 +495,7 @@
"CompareRows": "Confronta record",
"ComparingRecords": "Comparazione di %s righe",
"Documentation": "Clicca sulle metriche per visualizzarle in un grafico evoluzione di grandi dimensioni. Usa Shift-click per visualizzare più parametri contemporaneamente.",
- "MetricBetweenText": "da %s e %s",
+ "MetricBetweenText": "da %1$s a %2$s",
"MetricChangeText": "%s cambiamenti nel periodo",
"MetricMinMax": "%1$s tra %2$s e %3$s nel periodo",
"MetricsFor": "Metriche per %s",
diff --git a/lang/ja.json b/lang/ja.json
index 57afecc7e4..a76d0acd92 100644
--- a/lang/ja.json
+++ b/lang/ja.json
@@ -15,7 +15,7 @@
"API": "API",
"Apply": "適用",
"ArchivingInlineHelp": "比較的トラフィックの高いウェブサイトでは、ブラウザでの表示をトリガーとする Piwik アーカイブ処理を無効にすることをお勧めします。 代わりに、1時間ごとに Piwik リポートを処理する cron ジョブをセットアップすることをお勧めします。",
- "ArchivingTriggerDescription": "比較的トラフィックの高いウェブサイトに推奨します。 自動リポート処理には %scron ジョブのセットアップ%sが必要となります。",
+ "ArchivingTriggerDescription": "比較的トラフィックの高いウェブサイトに推奨します。 自動リポート処理には %1$scron ジョブのセットアップ%2$sが必要となります。",
"AuthenticationMethodSmtp": "SMTP の認証方法",
"AverageOrderValue": "平均注文額",
"AveragePrice": "平均価格",
@@ -27,10 +27,8 @@
"CannotUnzipFile": "解凍することができません %1$s: %2$s",
"ChangePassword": "パスワードの変更",
"ChangeTagCloudView": "タグクラウドとしてではなく、別の方法でリポートを見られますので、ご注意ください。これを行うにはリポートの下部にあるコントロールを使用します。",
- "ChooseDate": "日付を選択",
"ChooseLanguage": "言語を選択",
"ChoosePeriod": "期間を選択",
- "ChooseWebsite": "ウェブサイトを選択",
"ClickHere": "詳細はこちらをクリック",
"ClickToChangePeriod": "期間を変更するには、もう一度クリックしてください",
"Close": "閉じる",
@@ -84,7 +82,7 @@
"ColumnViewedAfterSearchDocumentation": "ビジターがあなたのウェブサイト上で検索した後に、このページを訪れた回数と、検索結果でこのページがクリックされた回数",
"ColumnVisitDuration": "滞在時間(秒単位)",
"ColumnVisitsWithConversions": "コンバージョン付きビジット",
- "ConfigFileIsNotWritable": "Piwik 設定ファイル %s が書き込み可能ではないため、いくつかの変更が保存されない可能性があります。%s設定ファイルのパーミッションを書き込み可能に変更してください。",
+ "ConfigFileIsNotWritable": "Piwik 設定ファイル %1$s が書き込み可能ではないため、いくつかの変更が保存されない可能性があります。%2$s設定ファイルのパーミッションを書き込み可能に変更してください。",
"Continue": "続ける",
"ContinueToPiwik": "Piwik を続ける",
"CurrentMonth": "今月",
@@ -100,7 +98,7 @@
"Date": "日付",
"DateRange": "期間:",
"DateRangeFrom": "From",
- "DateRangeFromTo": "%s から %s まで",
+ "DateRangeFromTo": "%1$s から %2$s まで",
"DateRangeInPeriodList": "期間",
"DateRangeTo": "To",
"DaysHours": "%1$s 日 %2$s 時間",
@@ -133,30 +131,28 @@
"Edit": "編集",
"EncryptedSmtpTransport": "SMTP サーバーで必要となる、トランスポートレイヤーの暗号を入力します。",
"Error": "エラー",
- "ErrorRequest": "おっと ! ...リクエスト中に問題がありました。おそらくサーバに一時的な問題が発生しているか、データ量が多過ぎるレポートをリクエストした可能性があります。もう一度お試しください。このエラーが繰り返し表示される場合は、%scontact your Piwik dministrator%s",
"EvolutionOverPeriod": "一定期間の推移",
"EvolutionSummaryGeneric": "%4$s の %3$s と比較した %1$s の %2$s 。展開: %5$s",
- "ExceptionContactSupportGeneric": "いまだにこの問題が発生する場合は、%s Piwik 管理者に連絡してください。 %s",
+ "ExceptionContactSupportGeneric": "いまだにこの問題が発生する場合は、%1$s Piwik 管理者に連絡してください。 %2$s",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "ユーザーは、スーパーユーザーもしくはユーザー '%s' それ自身のいずれかである必要があります。",
"ExceptionConfigurationFileNotFound": "設定ファイル {%s} が見つかりませんでした",
- "ExceptionConfigurationFileNotFound2": "ファイルが存在する場合は、%s が '%s' のユーザーによって読み取り可能な事を確認してください。",
+ "ExceptionConfigurationFileNotFound2": "ファイルが存在する場合は、%1$s が '%2$s' のユーザーによって読み取り可能な事を確認してください。",
"ExceptionDatabaseVersion": "%1$s のバージョンが %2$s ですが、Piwik には少なくとも %3$s が必要となります。",
"ExceptionDatabaseVersionNewerThanCodebase": "Piwik コードベースが古いバージョン %1$s を実行し、Piwik データベースが既に新しいバージョン %2$s にアップグレードされたことを検出しました。",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "おそらく Piwik 管理者は現在、アップグレードプロセスを終了しています。数分後にもう一度お試しください。",
"ExceptionFileIntegrity": "整合性チェックの失敗: %s",
"ExceptionFilesizeMismatch": "ファイルサイズの不整合: %1$s (想定サイズ: %2$s、実サイズ: %3$s)",
"ExceptionIncompatibleClientServerVersions": "%1$s クライアントのバージョンが %2$s であり、サーバーバージョン %3$s と互換性がありません。",
- "ExceptionInvalidAggregateReportsFormat": "集計リポートの書式 '%s' は有効ではありません。 次のいずれかを試してください: %s",
+ "ExceptionInvalidAggregateReportsFormat": "集計リポートの書式 '%1$s' は有効ではありません。 次のいずれかを試してください: %2$s",
"ExceptionInvalidArchiveTimeToLive": "今日のアーカイブの有効期限は 0 より大きい秒数である必要があります",
- "ExceptionInvalidDateFormat": "有効な日付の書式: %s または %s 関数でサポートされる任意のキーワード(詳細は %s を参照)",
- "ExceptionInvalidDateRange": "日付 '%s' は正しい日付の範囲ではありません。 日付は次の書式である必要があります: %s",
- "ExceptionInvalidPeriod": "期間 '%s' はサポートされていません。 代わりに次のいずれかを試してください: %s",
- "ExceptionInvalidRendererFormat": "出力書式 '%s' は有効ではありません。 次のいずれかを試してください: %s",
- "ExceptionInvalidReportRendererFormat": "リポートの書式 '%s' は有効ではありません。 次のいずれかを試してください: %s",
- "ExceptionInvalidStaticGraphType": "静的なグラフの種類 '%s' は有効ではありません。 次のいずれかを試してください: %s",
+ "ExceptionInvalidDateFormat": "有効な日付の書式: %1$s または %2$s 関数でサポートされる任意のキーワード(詳細は %3$s を参照)",
+ "ExceptionInvalidDateRange": "日付 '%1$s' は正しい日付の範囲ではありません。 日付は次の書式である必要があります: %2$s",
+ "ExceptionInvalidPeriod": "期間 '%1$s' はサポートされていません。 代わりに次のいずれかを試してください: %2$s",
+ "ExceptionInvalidRendererFormat": "出力書式 '%1$s' は有効ではありません。 次のいずれかを試してください: %2$s",
+ "ExceptionInvalidReportRendererFormat": "リポートの書式 '%1$s' は有効ではありません。 次のいずれかを試してください: %2$s",
"ExceptionInvalidToken": "トークンが有効ではありません。",
"ExceptionLanguageFileNotFound": "言語ファイル '%s' が見つかりませんでした",
- "ExceptionMethodNotFound": "メソッド '%s' は、存在しないか、モジュール '%s' で利用可能ではありません。",
+ "ExceptionMethodNotFound": "メソッド '%1$s' は、存在しないか、モジュール '%2$s' で利用可能ではありません。",
"ExceptionMissingFile": "不足ファイル: %s",
"ExceptionNonceMismatch": "このフォームのセキュリティトークンを検証することができませんでした。",
"ExceptionPrivilege": "このリソースには %s アクセス権が必要なため、アクセスすることはできません。",
@@ -164,7 +160,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "このリソースには少なくとも1つのウェブサイト用の %s アクセス権が必要なため、アクセスすることはできません。",
"ExceptionUnableToStartSession": "セッションを開始できません",
"ExceptionUndeletableFile": "%s が削除できませんでした",
- "ExceptionUnreadableFileDisabledMethod": "設定ファイル {%s} を読み込むことができませんでした。 サーバーで %s が無効化されている可能性があります。",
+ "ExceptionUnreadableFileDisabledMethod": "設定ファイル {%1$s} を読み込むことができませんでした。 サーバーで %2$s が無効化されている可能性があります。",
"ExceptionReportNotFound": "リクエストされたレポートは存在しません。",
"ExceptionWidgetNotFound": "リクエストされたウィジェットは存在しません。",
"ExceptionReportNotEnabled": "リクエストされたレポートは、利用できません。レポートの定義が無効になっているか、このレポートにアクセスする十分な権限を持っていない可能性があります。",
@@ -212,7 +208,7 @@
"Logout": "ログアウト",
"MainMetrics": "メインメトリクス",
"Matches": "一致",
- "MediumToHighTrafficItIsRecommendedTo": "比較的トラフィックの高いウェブサイトでは、今日のリポートの処理間隔を 30分(%s 秒) または 1時間(%s 秒) に設定することをお勧めします。",
+ "MediumToHighTrafficItIsRecommendedTo": "比較的トラフィックの高いウェブサイトでは、今日のリポートの処理間隔を 30分(%1$s 秒) または 1時間(%2$s 秒) に設定することをお勧めします。",
"Metadata": "メタデータ",
"Metric": "メトリック",
"Metrics": "メトリクス",
@@ -267,7 +263,7 @@
"OptionalSmtpPort": "オプションです。 非暗号化と TLS SMTP では 25 が、SSL SMTP では 465 がデフォルトになります。",
"Options": "オプション",
"Or": "または",
- "OrCancel": "または %s キャンセル %s",
+ "OrCancel": "または %1$s キャンセル %2$s",
"Others": "その他",
"Outlink": "外部リンク",
"Outlinks": "外部リンク数",
@@ -275,9 +271,9 @@
"OverlayRowActionTooltipTitle": "ページオーバーレイを開く",
"Overview": "概観",
"Pages": "ページ",
- "Pagination": "%s の %s - %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "%s パラメータは %s から %s までの整数値で指定してください",
+ "Pagination": "%1$s の %2$s - %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "%1$s パラメータは %2$s から %3$s までの整数値で指定してください",
"Password": "パスワード",
"Period": "期間",
"Piechart": "円グラフ",
@@ -328,7 +324,7 @@
"Clear": "クリア",
"SearchNoResults": "何もありません",
"SeeAll": "すべてを見る",
- "SeeTheOfficialDocumentationForMoreInformation": "詳細については、%s公式ドキュメント%sを参照してください。",
+ "SeeTheOfficialDocumentationForMoreInformation": "詳細については、%1$s公式ドキュメント%2$sを参照してください。",
"SeeThisFaq": "%1$s この faq %2$s を参照してください。",
"Segment": "セグメント",
"SelectYesIfYouWantToSendEmailsViaServer": "ローカルの mail() 関数の代わりにメールサーバー経由でメールを送信したい場合は、\"はい\" を選択します",
@@ -355,7 +351,7 @@
"Total": "合計",
"TotalRatioTooltip": "これは、全ての %2$s %3$s の %1$sです。",
"TotalRevenue": "総収益",
- "TotalVisitsPageviewsActionsRevenue": "( 合計 : ビジット数 %s 、ページビュー %s 、アクション %s 、利益 %s )",
+ "TotalVisitsPageviewsActionsRevenue": "( 合計 : ビジット数 %1$s 、ページビュー %2$s 、アクション %3$s 、利益 %4$s )",
"TrackingScopeAction": "アクション",
"TrackingScopePage": "ページ",
"TrackingScopeVisit": "ビジット",
@@ -391,7 +387,7 @@
"WarningFileIntegrityNoManifest": "manifest.inc.php が不足しているため、ファイルの整合性チェックを実行することができませんでした。",
"WarningFileIntegrityNoManifestDeployingFromGit": "Git から Piwik を開発している場合、このメッセージは正常です。",
"WarningFileIntegrityNoMd5file": "md5_file() 関数が存在しないため、ファイルの整合性チェックを完了することができませんでした。",
- "WarningPasswordStored": "%s警告:%s このパスワードは設定ファイルに保存されます。 この設定ファイルにアクセス可能な人であれば、パスワードを見られる可能性があることに注意してください。",
+ "WarningPasswordStored": "%1$s警告:%2$s このパスワードは設定ファイルに保存されます。 この設定ファイルにアクセス可能な人であれば、パスワードを見られる可能性があることに注意してください。",
"Website": "ウェブサイト",
"Weekly": "毎週",
"WeeklyReport": "毎週",
@@ -445,7 +441,7 @@
"MultiChartLabel": "スパークラインの表示",
"NavigationBack": "戻る",
"NetworkError": "ネットワークエラー",
- "NetworkErrorWithStatusCode": "エラー \"%s\" があります。リクエストはステータス \"%s\" を返しました。URL は \"%s\" でした。このエラーの詳細と、解決方法については、入力した URL とこのサーバーのエラーログを確認してください。",
+ "NetworkErrorWithStatusCode": "エラー \"%1$s\" があります。リクエストはステータス \"%2$s\" を返しました。URL は \"%3$s\" でした。このエラーの詳細と、解決方法については、入力した URL とこのサーバーのエラーログを確認してください。",
"NetworkErrorWithStatusCodeShort": "ネットワークエラー %s",
"NetworkNotReachable": "ネットワークに到達できませんでした",
"NoAccountIsSelected": "アカウントを選ぶ必要があります。まだ設定が完了していない場合、新しいアカウントを追加してください。",
@@ -463,7 +459,7 @@
"RatingDontRemindMe": "リマインドしないでください。",
"RatingNotNow": "今ではありません。",
"RatingNow": "OK です。いま、評価します。",
- "RatingPleaseRateUs": "Piwik モバイルアプリは、フリーソフトです。1 分お時間をいただけませんか?もしよろしければ、%s でアプリを評価して頂けたら嬉しいです。新機能やバグレポートの提案をお持ちでしたら、ぜひ %s にご連絡ください。",
+ "RatingPleaseRateUs": "Piwik モバイルアプリは、フリーソフトです。1 分お時間をいただけませんか?もしよろしければ、%1$s でアプリを評価して頂けたら嬉しいです。新機能やバグレポートの提案をお持ちでしたら、ぜひ %2$s にご連絡ください。",
"ReleaseToRefresh": "リリース更新",
"Reloading": "リロード中",
"RequestTimedOutShort": "ネットワークタイムアウトエラー",
@@ -488,7 +484,7 @@
"CompareRows": "レコードを比較",
"ComparingRecords": "%s 列の比較",
"Documentation": "大展開グラフにこれらを表示するには、メトリクスをクリックしてください。複数メトリクスを一度に表示するには、shift- クリックを使用してください。",
- "MetricBetweenText": "%s から %s へ",
+ "MetricBetweenText": "%1$s から %2$s へ",
"MetricChangeText": "対象期間にわたる %s 変化",
"MetricMinMax": "対象期間にわたる %2$s と %3$s の間に並べられた %1$s",
"MetricsFor": "%s のメトリクス",
diff --git a/lang/ko.json b/lang/ko.json
index c8c9b8aea8..0e3adbe853 100644
--- a/lang/ko.json
+++ b/lang/ko.json
@@ -15,7 +15,7 @@
"API": "API",
"Apply": "적용",
"ArchivingInlineHelp": "비교적 트래픽이 높은 웹사이트는 브라우저 트리거를 Piwik에 보관하는 것을 비활성화하는 것이 좋습니다. 대신, 1 시간마다 Piwik 보고서를 처리하는 cron 작업을 설정하는 것이 좋습니다.",
- "ArchivingTriggerDescription": "비교적 트래픽이 높은 웹사이트에 권장합니다. 자동 보고서 처리는 %scron 작업 설정%s이 필요합니다.",
+ "ArchivingTriggerDescription": "비교적 트래픽이 높은 웹사이트에 권장합니다. 자동 보고서 처리는 %1$scron 작업 설정%2$s이 필요합니다.",
"AuthenticationMethodSmtp": "SMTP 인증 방법",
"AverageOrderValue": "평균 주문액",
"AveragePrice": "평균 가격",
@@ -27,10 +27,8 @@
"CannotUnzipFile": "%1$s 파일의 압축을 풀 수 없습니다: %2$s",
"ChangePassword": "비밀번호 변경",
"ChangeTagCloudView": "태그 클라우드가 아닌 다른 방법으로 보고서를 볼 수 있습니다. 보고서의 아래쪽에있는 컨트롤을 사용하세요.",
- "ChooseDate": "날짜 선택",
"ChooseLanguage": "언어 선택",
"ChoosePeriod": "기간 선택",
- "ChooseWebsite": "웹사이트 선택",
"ClickHere": "자세한 내용은 이곳을 클릭하세요.",
"ClickToChangePeriod": "기간을 변경하려면 다시 클릭하세요.",
"Close": "닫기",
@@ -82,7 +80,7 @@
"ColumnViewedAfterSearchDocumentation": "이미 진입한 방문자가 웹사이트내에서 검색한 결과로부터 이 페이지를 클릭한 횟수입니다.",
"ColumnVisitDuration": "머문 시간 (초)",
"ColumnVisitsWithConversions": "전환을 통한 방문 수",
- "ConfigFileIsNotWritable": "Piwik 설정 파일 %s를 쓸수 없기 때문에 일부 변경이 저장되지 않을 수 있습니다. %s 설정 파일의 권한을 쓸 수 있게 변경하세요.",
+ "ConfigFileIsNotWritable": "Piwik 설정 파일 %1$s를 쓸수 없기 때문에 일부 변경이 저장되지 않을 수 있습니다. %2$s 설정 파일의 권한을 쓸 수 있게 변경하세요.",
"Continue": "계속",
"ContinueToPiwik": "Piwik 계속 하기",
"CurrentMonth": "이번달",
@@ -98,7 +96,7 @@
"Date": "날짜",
"DateRange": "기간:",
"DateRangeFrom": "From",
- "DateRangeFromTo": "%s에서 %s까지",
+ "DateRangeFromTo": "%1$s에서 %2$s까지",
"DateRangeInPeriodList": "기간",
"DateRangeTo": "To",
"DaysHours": "%1$s일 %2$s 시간",
@@ -133,23 +131,23 @@
"Error": "에러",
"EvolutionOverPeriod": "기간동안 진행 과정",
"EvolutionSummaryGeneric": "%2$s의 %1$s와 %4$s의 %3$s 비교. 변화 추이: %5$s",
- "ExceptionContactSupportGeneric": "만약 해당 문제가 계속 발생한다면 %sPiwik 관리자에게 연락하여 도움%s을 구하세요.",
+ "ExceptionContactSupportGeneric": "만약 해당 문제가 계속 발생한다면 %1$sPiwik 관리자에게 연락하여 도움%2$s을 구하세요.",
"ExceptionConfigurationFileNotFound": "설정파일 {%s}을 찾을 수 없습니다.",
"ExceptionDatabaseVersion": "현재 %1$s 버전 %2$s 이지만 Piwik에는 적어도 %3$s가 필요합니다.",
"ExceptionFileIntegrity": "무결성 검사 실패: %s",
"ExceptionFilesizeMismatch": "파일 크기 불일치: %1$s (예상 크기: %2$s, 실제 크기: %3$s)",
"ExceptionIncompatibleClientServerVersions": "%1$s 클라이언트 버전 %2$s이며, 서버 버전 %3$s와 호환성이 없습니다.",
- "ExceptionInvalidAggregateReportsFormat": "집계 보고서 형식 '%s'는 사용할 수 없습니다. 다음 중 하나를 시도하세요: %s",
+ "ExceptionInvalidAggregateReportsFormat": "집계 보고서 형식 '%1$s'는 사용할 수 없습니다. 다음 중 하나를 시도하세요: %2$s",
"ExceptionInvalidArchiveTimeToLive": "오늘의 아카이브 시간은 기간은 0보다 더 큰 초이어야합니다",
- "ExceptionInvalidDateFormat": "유효한 날짜 형식: %s 또는 %s 함수에서 지원되는 모든 키워드 (자세한 내용은 %s 참조)",
- "ExceptionInvalidDateRange": "날짜 '%s'은 올바른 날짜 범위가 아닙니다. 날짜는 다음과 같은 형식이어야합니다: %s",
- "ExceptionInvalidPeriod": "기간 '%s'는 지원되지 않습니다. 대신 다음 중 하나를 시도하세요: %s",
- "ExceptionInvalidRendererFormat": "출력 형식 '%s'는 사용할 수 없습니다. 다음 중 하나를 시도하세요: %s",
- "ExceptionInvalidReportRendererFormat": "보고서 형식 '%s'는 사용할 수 없습니다. 다음 중 하나를 시도하세요: %s",
- "ExceptionInvalidStaticGraphType": "정적 차트 종류 '%s'는 사용할 수 없습니다. 다음 중 하나를 시도하세요: %s",
+ "ExceptionInvalidDateFormat": "유효한 날짜 형식: %1$s 또는 %2$s 함수에서 지원되는 모든 키워드 (자세한 내용은 %3$s 참조)",
+ "ExceptionInvalidDateRange": "날짜 '%1$s'은 올바른 날짜 범위가 아닙니다. 날짜는 다음과 같은 형식이어야합니다: %2$s",
+ "ExceptionInvalidPeriod": "기간 '%1$s'는 지원되지 않습니다. 대신 다음 중 하나를 시도하세요: %2$s",
+ "ExceptionInvalidRendererFormat": "출력 형식 '%1$s'는 사용할 수 없습니다. 다음 중 하나를 시도하세요: %2$s",
+ "ExceptionInvalidReportRendererFormat": "보고서 형식 '%1$s'는 사용할 수 없습니다. 다음 중 하나를 시도하세요: %2$s",
+ "ExceptionInvalidStaticGraphType": "정적 차트 종류 '%1$s'는 사용할 수 없습니다. 다음 중 하나를 시도하세요: %2$s",
"ExceptionInvalidToken": "토큰이 유효하지 않습니다.",
"ExceptionLanguageFileNotFound": "'%s' 언어 파일을 찾을 수 없습니다",
- "ExceptionMethodNotFound": "메서드 '%s'는 존재하지 않거나 모듈 '%s'에서 사용할 수 없습니다.",
+ "ExceptionMethodNotFound": "메서드 '%1$s'는 존재하지 않거나 모듈 '%2$s'에서 사용할 수 없습니다.",
"ExceptionMissingFile": "누락된 파일: %s",
"ExceptionNonceMismatch": "이 양식의 보안 토큰을 검증 할 수 없습니다.",
"ExceptionPrivilege": "이 리소스는 %s 권한이 필요하기 때문에 접근할 수 없습니다.",
@@ -157,7 +155,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "이 리소스는 하나의 웹사이트에 대한 %s 권한이 필요하기 때문에 접근할 수 없습니다.",
"ExceptionUnableToStartSession": "세션을 시작할 수 없습니다.",
"ExceptionUndeletableFile": "%s를 제거할 수 없습니다",
- "ExceptionUnreadableFileDisabledMethod": "설정 파일 {%s}를 로드할 수 없습니다. 서버 %s가 비활성화되었을 수 있습니다.",
+ "ExceptionUnreadableFileDisabledMethod": "설정 파일 {%1$s}를 로드할 수 없습니다. 서버 %2$s가 비활성화되었을 수 있습니다.",
"ExceptionReportNotFound": "요청된 보고서가 존재하지 않습니다.",
"ExceptionWidgetNotFound": "요청된 위젯이 존재하지 않습니다.",
"Export": "내보내기",
@@ -197,7 +195,7 @@
"Locale": "ko_KR.UTF-8",
"Logout": "로그아웃",
"MainMetrics": "주요 지표",
- "MediumToHighTrafficItIsRecommendedTo": "비교적 트래픽이 높은 웹사이트는 오늘의 보고서 처리 간격을 30분 (%s초) 또는 1시간 (%s초)로 설정하는 것이 좋습니다.",
+ "MediumToHighTrafficItIsRecommendedTo": "비교적 트래픽이 높은 웹사이트는 오늘의 보고서 처리 간격을 30분 (%1$s초) 또는 1시간 (%2$s초)로 설정하는 것이 좋습니다.",
"Metadata": "메타데이터",
"Metric": "통계",
"Metrics": "통계",
@@ -242,7 +240,7 @@
"OperationDoesNotContain": "포함하지 않기",
"OptionalSmtpPort": "옵션입니다. 비 암호화 및 TLS SMTP는 25가 SSL SMTP는 465이 기본입니다.",
"Options": "설정",
- "OrCancel": "또는 %s 취소 %s",
+ "OrCancel": "또는 %1$s 취소 %2$s",
"Others": "기타",
"Outlink": "외부링크",
"Outlinks": "외부 링크 수",
@@ -250,9 +248,9 @@
"OverlayRowActionTooltipTitle": "페이지 중첩 열기",
"Overview": "개요",
"Pages": "페이지",
- "Pagination": "%s - %s 의 %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "%s 매개변수는 %s에서 %s까지의 정수로 값을 지정하세요.",
+ "Pagination": "%1$s - %2$s 의 %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "%1$s 매개변수는 %2$s에서 %3$s까지의 정수로 값을 지정하세요.",
"Password": "비밀번호",
"Period": "기간",
"Piechart": "파이차트",
@@ -299,7 +297,7 @@
"SaveImageOnYourComputer": "이미지를 저장하려면 이미지를 오른쪽으로 클릭하여 \"다른 이름으로 그림 저장...\"을 선택합니다",
"Search": "검색",
"SeeAll": "다 보기",
- "SeeTheOfficialDocumentationForMoreInformation": "자세한 내용은 %s 공식 문서 %s를 참조하세요.",
+ "SeeTheOfficialDocumentationForMoreInformation": "자세한 내용은 %1$s 공식 문서 %2$s를 참조하세요.",
"SelectYesIfYouWantToSendEmailsViaServer": "로컬 mail() 함수 대신 메일서버를 통해 이메일을 보낼 경우, \"예\"를 선택합니다",
"Settings": "설정",
"Shipping": "배송",
@@ -355,7 +353,7 @@
"WarningFileIntegrityNoManifest": "manifest.inc.php가 없기 때문에, 파일의 무결성 검사를 수행할 수 없습니다.",
"WarningFileIntegrityNoManifestDeployingFromGit": "만약 Git으로부터 Piwik를 사용하고 있다면, 이 메세지는 정상입니다.",
"WarningFileIntegrityNoMd5file": "md5_file() 함수가 존재하지 않기 때문에, 파일 무결성 검사를 완료할 수 없습니다.",
- "WarningPasswordStored": "%s 경고: %s 암호는 설정 파일에 저장됩니다. 이 설정 파일에 액세스 할 수있는 사람이라면, 패스워드를 볼 수 있을 가능성이 있다는 점에 유의하세요.",
+ "WarningPasswordStored": "%1$s 경고: %2$s 암호는 설정 파일에 저장됩니다. 이 설정 파일에 액세스 할 수있는 사람이라면, 패스워드를 볼 수 있을 가능성이 있다는 점에 유의하세요.",
"Website": "웹사이트",
"Weekly": "주간",
"WeeklyReport": "매주",
@@ -405,7 +403,7 @@
"MultiChartLabel": "스파크라인 표시",
"NavigationBack": "뒤로",
"NetworkError": "네트워크 에러",
- "NetworkErrorWithStatusCode": "\"%s\" 오류가 발생했습니다. 요청에서 \"%s\" 상태가 반환되었습니다. URL은 \"%s\" 입니다. 입력한 URL을 확인해 보고 서버의 오류 로그에서 더 자세한 내용을 분석하여 이 문제를 해결하세요.",
+ "NetworkErrorWithStatusCode": "\"%1$s\" 오류가 발생했습니다. 요청에서 \"%2$s\" 상태가 반환되었습니다. URL은 \"%3$s\" 입니다. 입력한 URL을 확인해 보고 서버의 오류 로그에서 더 자세한 내용을 분석하여 이 문제를 해결하세요.",
"NetworkErrorWithStatusCodeShort": "네트워크 에러 %s",
"NetworkNotReachable": "네트워크에 연결할 수 없음",
"NoAccountIsSelected": "하나의 계정을 선택하셔야 합니다. 만약 환경설정을 하지 않았다면 새로운 계정을 추가하세요.",
@@ -422,7 +420,7 @@
"RatingDontRemindMe": "더이상 보이지 않음",
"RatingNotNow": "지금 안함",
"RatingNow": "좋아요, 지금 평가하겠습니다",
- "RatingPleaseRateUs": "Piwik 모바일 앱은 무료 소프트웨어입니다. 여러분의 소중한 1분으로 %s에서 우리의 애플리케이션을 평가해 주신다면 정말 감사하겠습니다. 새로운 기능 제안이나 버그를 발견하셨다면, %s로 연락 부탁드려요",
+ "RatingPleaseRateUs": "Piwik 모바일 앱은 무료 소프트웨어입니다. 여러분의 소중한 1분으로 %1$s에서 우리의 애플리케이션을 평가해 주신다면 정말 감사하겠습니다. 새로운 기능 제안이나 버그를 발견하셨다면, %2$s로 연락 부탁드려요",
"ReleaseToRefresh": "놓아서 새로고침...",
"Reloading": "새로 고침 중...",
"RequestTimedOutShort": "네트워크 타임 아웃 오류",
@@ -445,7 +443,7 @@
"CompareRows": "기록 비교",
"ComparingRecords": "%s 행 비교",
"Documentation": "큰 진화 그래프에서 표시할 통계를 클릭합니다. 쉬프트-클릭을 사용하여 한번에 여러개의 측정 항목을 표시합니다.",
- "MetricBetweenText": "%s와 %s 사이",
+ "MetricBetweenText": "%1$s와 %2$s 사이",
"MetricChangeText": "%s 기간 동안",
"MetricsFor": "%s에 대한 통계",
"MultiRowEvolutionTitle": "여러 행의 변화 추이",
diff --git a/lang/lt.json b/lang/lt.json
index b19694b2c3..68701aa696 100644
--- a/lang/lt.json
+++ b/lang/lt.json
@@ -8,8 +8,9 @@
"AllWebsitesDashboard": "Visų svetainių skydelis",
"And": "ir",
"API": "API sąsaja",
+ "Apply": "Taikyti",
"ArchivingInlineHelp": "Vidutinio ir didelio srauto svetainėms rekomenduojama išjungti Piwik archyvavimo trigerį. Vietoj to, rekomenduojame nustatyti cron job Piwik ataskaitų generavimui kas valandą.",
- "ArchivingTriggerDescription": "Rekomenduojama didesniems Piwik diegimams. Jums reikia %snustatyti cron job%s automatiniam ataskaitų generavimui.",
+ "ArchivingTriggerDescription": "Rekomenduojama didesniems Piwik diegimams. Jums reikia %1$snustatyti cron job%2$s automatiniam ataskaitų generavimui.",
"AuthenticationMethodSmtp": "SMTP autentifikacijos metodas",
"AverageOrderValue": "Vidutinė užsakymo vertė",
"AveragePrice": "Vidutinė kaina",
@@ -17,10 +18,8 @@
"BackToPiwik": "Atgal į Piwik",
"Cancel": "Atsisakyti",
"ChangePassword": "Pakeisti slaptažodį",
- "ChooseDate": "Pasirinkti datą",
"ChooseLanguage": "Pasirinkti kalbą",
"ChoosePeriod": "Pasirinkti periodą",
- "ChooseWebsite": "Pasirinkti svetainę",
"ClickHere": "Daugiau informacijos",
"Close": "Užverti",
"ColumnActionsPerVisit": "Veiksmų per apsilankymą",
@@ -41,6 +40,7 @@
"ColumnNbUsers": "Naudotojai",
"ColumnNbVisits": "Apsilankymai",
"ColumnPageviews": "Puslapio peržiūros",
+ "ColumnPageviewsDocumentation": "Šio puslapio aplankymų skaičius.",
"ColumnPercentageVisits": "% apsilankymų",
"ColumnRevenue": "Pajamos",
"ColumnSumVisitLength": "Bendras visų lankytojų praleistas laikas (sekundėmis)",
@@ -48,18 +48,19 @@
"ColumnValuePerVisit": "Apsilankymo vertė",
"ColumnVisitDuration": "Apsilankymo trukmė (sek.)",
"ColumnVisitsWithConversions": "Apsilankymai su konversija",
- "ConfigFileIsNotWritable": "Piwik konfigūracijos failas %s negali būti keičiamas, todėl dalis Jūsų nustatymų gali būti neišsaugoti. %s Prašome pakeisti šio failo teises, kad galėtumėte įrašyti pakeitimus.",
+ "ConfigFileIsNotWritable": "Piwik konfigūracijos failas %1$s negali būti keičiamas, todėl dalis Jūsų nustatymų gali būti neišsaugoti. %2$s Prašome pakeisti šio failo teises, kad galėtumėte įrašyti pakeitimus.",
"Continue": "Tęsti",
"ContinueToPiwik": "Grįžti į Piwik",
"CurrentMonth": "Šis mėnuo",
"CurrentWeek": "Ši savaitė",
"CurrentYear": "Šie metai",
"Daily": "Kasdien",
+ "DailyReports": "Kasdienės ataskaitos",
"DashboardForASpecificWebsite": "Skydelis konkrečiai svetainei",
"Date": "Data",
"DateRange": "Laikotarpis:",
"DateRangeFrom": "Nuo",
- "DateRangeFromTo": "Nuo %s iki %s",
+ "DateRangeFromTo": "Nuo %1$s iki %2$s",
"DateRangeTo": "Iki",
"DaysHours": "%1$s dienos %2$s valandos",
"DaysSinceFirstVisit": "Dienos nuo pirmo apsilankymo",
@@ -91,13 +92,13 @@
"ExceptionFilesizeMismatch": "Nesutampa failo dydis: %1$s (turi būti: %2$s, rasta: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Jūsų %1$s kliento versija yra %2$s, kuri yra nesuderinama su serverio %3$s versija.",
"ExceptionInvalidArchiveTimeToLive": "Šiandienos archyvo saugojimo laikas turi būti nurodytas sekundėmis ir reikšme didesne už nulį",
- "ExceptionInvalidDateFormat": "Datos formatas turi būti: %s ar bet kuris raktažodis palaikomas %s funkcijos (žiūrėkite %s išsamesnei informacijai gauti)",
- "ExceptionInvalidDateRange": "Data '%s' yra iš klaidingo diapazono. Ji turi būti šio formato: %s.",
- "ExceptionInvalidPeriod": "Periodas '%s' nepalaikomas. Vietoj jo pabandykite šiuos: %s.",
- "ExceptionInvalidRendererFormat": "Verčiamas formatas '%s' negaliojantis . Vietoj jo pabandykite šiuos: %s.",
+ "ExceptionInvalidDateFormat": "Datos formatas turi būti: %1$s ar bet kuris raktažodis palaikomas %2$s funkcijos (žiūrėkite %3$s išsamesnei informacijai gauti)",
+ "ExceptionInvalidDateRange": "Data '%1$s' yra iš klaidingo diapazono. Ji turi būti šio formato: %2$s.",
+ "ExceptionInvalidPeriod": "Periodas '%1$s' nepalaikomas. Vietoj jo pabandykite šiuos: %2$s.",
+ "ExceptionInvalidRendererFormat": "Verčiamas formatas '%1$s' negaliojantis . Vietoj jo pabandykite šiuos: %2$s.",
"ExceptionInvalidToken": "Pažymėjimas negaliojantis.",
"ExceptionLanguageFileNotFound": "'%s' kalbos failas nerastas.",
- "ExceptionMethodNotFound": "'%s' metodas neegzistuoja arba neprieinamas '%s' modulyje.",
+ "ExceptionMethodNotFound": "'%1$s' metodas neegzistuoja arba neprieinamas '%2$s' modulyje.",
"ExceptionMissingFile": "Trūksta failo: %s",
"ExceptionNonceMismatch": "Negalima patikrinti šios formos saugos rakto.",
"ExceptionPrivilege": "Negalite pasiekti šių resursų, nes tam reikia %s teisių.",
@@ -105,7 +106,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Negalite pasiekti šių resursų, nes tam reikia %s teisių mažiausiai vienai svetainei.",
"ExceptionUnableToStartSession": "Nepavyko pradėti sesijos",
"ExceptionUndeletableFile": "Nepavyko ištrinti %s",
- "ExceptionUnreadableFileDisabledMethod": "{%s} konfigūracijos failas nenuskaitytas. Jūsų stotis gali būti išjungusi %s.",
+ "ExceptionUnreadableFileDisabledMethod": "{%1$s} konfigūracijos failas nenuskaitytas. Jūsų stotis gali būti išjungusi %2$s.",
"ExceptionWidgetNotFound": "Užklausto valdiklio nėra.",
"Export": "Eksportuoti",
"ExportAsImage": "Eksportuoti kaip paveikslėlį",
@@ -122,6 +123,7 @@
"GraphHelp": "Daugiau informacijos apie grafikų atvaizdavimą",
"HelloUser": "Sveiki, %s!",
"Help": "Pagalba",
+ "HelpTranslatePiwik": "Galbūt, jūs norėtumėte %1$spadėti mums patobulinti Piwik vertimus%2$s?",
"Hide": "slėpti",
"HoursMinutes": "%1$s valandos %2$s min.",
"Id": "ID",
@@ -136,9 +138,10 @@
"LoadingPopover": "Įkeliama %s...",
"Locale": "lt_LT.UTF-8",
"Logout": "Atsijungti",
- "MediumToHighTrafficItIsRecommendedTo": "Vidutinio ir didelio srauto svetainėms rekomenduojame generuoti kasdienines ataskaitas kas pusę valandos (%s sekundės) arba kas valandą (%s sekundės).",
+ "MediumToHighTrafficItIsRecommendedTo": "Vidutinio ir didelio srauto svetainėms rekomenduojame generuoti kasdienines ataskaitas kas pusę valandos (%1$s sekundės) arba kas valandą (%2$s sekundės).",
"MinutesSeconds": "%1$s min. %2$ssek.",
"Monthly": "Kas mėnesį",
+ "More": "Daugiau",
"MultiSitesSummary": "Visos svetainės",
"Name": "Pavadinimas",
"NbActions": "Veiksmų kiekis",
@@ -156,17 +159,22 @@
"NumberOfVisits": "Apsilankymų kiekis",
"NVisits": "%s apsilankymai",
"Ok": "Gerai",
+ "OneAction": "1 veiksmas",
+ "OneVisit": "1 apsilankymas",
"OnlyEnterIfRequired": "Įveskite naudotojo vardą tik jei Jūsų SMTP serveris to reikalauja",
"OnlyEnterIfRequiredPassword": "Įveskite slaptažodį tik jei Jūsų SMTP serveris to reikalauja",
"OnlyUsedIfUserPwdIsSet": "Tik kai nurodomas naudotojo vardas\/slaptažodis. Klauskite savo paslaugų teikėjo, jei nesate tikri, kurį metodą naudoti.",
"OpenSourceWebAnalytics": "Atvirojo kodo žiniatinklio analizės sprendimas",
+ "OperationAtLeast": "Bent",
+ "OperationAtMost": "Daugiausiai",
"Options": "Parinktys",
- "OrCancel": "arba %s atšaukti %s",
+ "OrCancel": "arba %1$s atšaukti %2$s",
"Others": "Kita",
"Outlinks": "Išorinės nuorodos",
"Overview": "Bendras vaizdas",
"Pages": "Puslapiai",
- "PaginationWithoutTotal": "%s - %s",
+ "Pagination": "%1$s - %2$s iš %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
"Password": "Slaptažodis",
"Period": "Periodas",
"Piechart": "Skritulinė diagrama",
@@ -195,10 +203,13 @@
"Save": "Išsaugoti",
"SaveImageOnYourComputer": "Norėdami išsaugoti paveikslėlį savo kompiuteryje, spustelėkite dešiniuoju pelytės klavišu ant paveikslėlio ir pasirinkite \"Išsaugoti paveikslėlį kaip...\"",
"Search": "Ieškoti",
- "SeeTheOfficialDocumentationForMoreInformation": "%sOficialioje dokumentacijoje%s rasite daugiau informacijos.",
+ "Clear": "Išvalyti",
+ "SearchNoResults": "Rezultatų nėra",
+ "SeeTheOfficialDocumentationForMoreInformation": "%1$sOficialioje dokumentacijoje%2$s rasite daugiau informacijos.",
"SelectYesIfYouWantToSendEmailsViaServer": "Pažymėkite \"Taip\", jei norite, kad laiškai būtų siunčiami per vardinį serverį vietoj vietinės siuntimo funkcijos.",
"Settings": "Nuostatos",
"Shipping": "Pristatymas",
+ "Show": "rodyti",
"SmallTrafficYouCanLeaveDefault": "Mažo srauto svetainėms galite palikti numatytąsias %s sekundes ir gauti ataskaitas realiuoju laiku.",
"SmtpEncryption": "SMTP šifravimas",
"SmtpPassword": "SMTP slaptažodis",
@@ -207,10 +218,12 @@
"SmtpUsername": "SMTP naudotojo vardas",
"Source": "Šaltinis",
"Subtotal": "Tarpinė suma",
+ "Summary": "Suvestinė",
"Table": "Lentelė",
"TagCloud": "Žymių debesis",
"Tax": "Mokesčiai",
"TimeAgo": "prieš %s",
+ "TimeFormat": "Laiko formatas",
"Total": "Iš viso",
"TotalRevenue": "Pajamų iš viso",
"TranslatorName": "Donatas Stonys (Blue Whale SEO)",
@@ -234,19 +247,23 @@
"Warning": "Įspėjimas",
"WarningFileIntegrityNoManifest": "Failo vientisumo patikra negali būti atlikta dėl nesamo manifest.inc.php failo.",
"WarningFileIntegrityNoMd5file": "Failo vientisumo patikra negali būti atlikta dėl nesamos md5_file() funkcijos.",
- "WarningPasswordStored": "%sĮspėjimas:%s Šis slaptažodis bus išsaugotas konfigūracijos faile, kuris bus matomas kiekvienam turinčiam priėjimą prie šio failo.",
+ "WarningPasswordStored": "%1$sĮspėjimas:%2$s Šis slaptažodis bus išsaugotas konfigūracijos faile, kuris bus matomas kiekvienam turinčiam priėjimą prie šio failo.",
"Website": "Svetainė",
"Weekly": "Kas savaitę",
+ "WeeklyReports": "Savaitinės ataskaitos",
"Widgets": "Valdikliai",
"Widget": "Valdiklis",
+ "YearlyReports": "Metinės ataskaitos",
"YearsDays": "%1$s metai %2$s dienos",
"Yes": "Taip",
"YouAreCurrentlyUsing": "Šiuo metu jūs naudojate Piwik %s.",
+ "YouAreViewingDemoShortMessage": "Jūs matote Piwik demonstraciją",
"YouMustBeLoggedIn": "Pirmiausia turite prisijungti.",
"YourChangesHaveBeenSaved": "Jūsų atlikti pakeitimai išsaugoti."
},
"Mobile": {
"Account": "Paskyra",
+ "Accounts": "Paskyros",
"AddAccount": "Pridėti paskyrą",
"AddPiwikDemo": "Pridėti Piwik Demo",
"AnonymousAccess": "Anoniminė prieiga",
@@ -256,10 +273,12 @@
"NetworkError": "Tinklo Klaida",
"NetworkErrorWithStatusCodeShort": "Tinklo Klaida %s",
"NetworkNotReachable": "Tinklas nepasiekiamas",
+ "NoWebsiteFound": "Svetainių nerasta",
"RatingNotNow": "Ne dabar",
"Reloading": "Įkeliama iš naujo...",
"SaveSuccessError": "Piwik URL arba naudotojo vardo ir slaptažodžio kombinacija yra neteisinga.",
"ShowLess": "Rodyti mažiau",
+ "VerifyLoginData": "Įsitikinkite, kad jūsų naudotojo vardo ir slaptažodžio derinys yra teisingas.",
"YouAreOffline": "Atleiskite, šiuo metu jūs esate atsijungę nuo tinklo"
}
} \ No newline at end of file
diff --git a/lang/lv.json b/lang/lv.json
index 5465b7d5dc..5126662ce4 100644
--- a/lang/lv.json
+++ b/lang/lv.json
@@ -8,17 +8,15 @@
"AllWebsitesDashboard": "Visu vietņu panelis",
"API": "API",
"ArchivingInlineHelp": "Vidēja un augsta apmeklējuma vietnēm rekomendējam atslēgt pārlūka izsauktu Piwik arhivēšanu. Tā vietā iesakam lietot cron darbu, kas arhivē Piwik katru stundu.",
- "ArchivingTriggerDescription": "Apjomīgām Piwik instalācijām iesakam %siestatīt cron darbu%s, kas apstrādās atskaites automātiski.",
+ "ArchivingTriggerDescription": "Apjomīgām Piwik instalācijām iesakam %1$siestatīt cron darbu%2$s, kas apstrādās atskaites automātiski.",
"AuthenticationMethodSmtp": "SMTP autentifikācijas metode",
"AverageOrderValue": "Vidējā pasūtījuma vērtība",
"AveragePrice": "Vidējā cena",
"AverageQuantity": "Vidējais apjoms",
"BackToPiwik": "Atpakaļ uz Piwik",
"ChangePassword": "Mainīt paroli",
- "ChooseDate": "Izvēlies datumu",
"ChooseLanguage": "Izvēlieties valodu",
"ChoosePeriod": "Izvēlieties periodu",
- "ChooseWebsite": "Izvēlieties lapu",
"ClickHere": "Lai saņemtu papildus informāciju, klikšķiniet šeit.",
"Close": "Aizvērt",
"ColumnActionsPerVisit": "Darbības vienā apmeklējumā",
@@ -62,7 +60,7 @@
"ColumnValuePerVisit": "Ienākumi uz vienu apmeklējumu",
"ColumnVisitDuration": "Apmeklējuma ilgums (sekundēs)",
"ColumnVisitsWithConversions": "Apmeklējumi ar reklāmguvumiem",
- "ConfigFileIsNotWritable": "Piwik iestatījumu datne %s nav rakstāma, dažas no izmaiņām iespējams netiks saglabātas. %s Lūdzu izmainiet iestatījumu datnes atļaujas, lai tajā varētu ierakstīt.",
+ "ConfigFileIsNotWritable": "Piwik iestatījumu datne %1$s nav rakstāma, dažas no izmaiņām iespējams netiks saglabātas. %2$s Lūdzu izmainiet iestatījumu datnes atļaujas, lai tajā varētu ierakstīt.",
"ContinueToPiwik": "Turpināt uz Piwik",
"CurrentMonth": "Pašreizējais mēnesis",
"CurrentWeek": "Pašreizējā nedēļa",
@@ -73,7 +71,7 @@
"Date": "Datums",
"DateRange": "Datumu diapazons:",
"DateRangeFrom": "No",
- "DateRangeFromTo": "No %s līdz %s",
+ "DateRangeFromTo": "No %1$s līdz %2$s",
"DateRangeTo": "Līdz",
"DaysSinceFirstVisit": "Dienas kopš pirmā apmeklējuma",
"DaysSinceLastEcommerceOrder": "Dienas kopš pēdējā e-komercijas pasūtījuma",
@@ -106,7 +104,7 @@
"ExceptionPrivilege": "Lai apskatītu šo sadaļu, Jums ir nepieciešama %s pieeja.",
"ExceptionUnableToStartSession": "Nav iespējams sākt sesiju.",
"ExceptionUndeletableFile": "Nevar izdzēst %s",
- "ExceptionUnreadableFileDisabledMethod": "Iestatījumu datni {%s} nav iespējams nolasīt. Jūsu resursdatorā iespējams ir izslēgts %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Iestatījumu datni {%1$s} nav iespējams nolasīt. Jūsu resursdatorā iespējams ir izslēgts %2$s.",
"Export": "Eksports",
"ExportAsImage": "Eksportēt kā bildi",
"ExportThisReport": "Eksportēt šo datu kopu citos formātos",
@@ -133,7 +131,7 @@
"Locale": "lv_LV.UTF-8",
"Logout": "Iziet",
"MainMetrics": "Galvenie mērījumi",
- "MediumToHighTrafficItIsRecommendedTo": "Vidēja un augsta apmklējuma vietnēm iesakam apstrādāt atskaites ne biežāk kā katru pusstundu (%s sekundes) vai katru stundu (%s sekundes).",
+ "MediumToHighTrafficItIsRecommendedTo": "Vidēja un augsta apmklējuma vietnēm iesakam apstrādāt atskaites ne biežāk kā katru pusstundu (%1$s sekundes) vai katru stundu (%2$s sekundes).",
"Metadata": "Metadati",
"MetricsToPlot": "Mērījumi plānošanai",
"MetricToPlot": "Mērījums plānošanai",
@@ -161,13 +159,13 @@
"OnlyEnterIfRequiredPassword": "Ievadiet paroli tikai tad, ja Jūsu SMTP serveris to pieprasa.",
"OpenSourceWebAnalytics": "Atvērtā koda tīkla analīze",
"OptionalSmtpPort": "Izvēles. Pēc noklusējuma 25 nekriptētētam un TLS SMTP, bet 465 izmantojot SSL SMTP.",
- "OrCancel": "vai %s atcelt %s",
+ "OrCancel": "vai %1$s atcelt %2$s",
"Others": "Citi",
"Outlink": "Ārēja saite",
"Outlinks": "Ārējās saites",
"Overview": "Pārskats",
"Pages": "lapas",
- "ParameterMustIntegerBetween": "Parametra %s vērtībai ir jābūt skaitlim no %s līdz %s.",
+ "ParameterMustIntegerBetween": "Parametra %1$s vērtībai ir jābūt skaitlim no %2$s līdz %3$s.",
"Password": "Parole",
"Period": "Periods",
"Piechart": "Sektoru diagramma",
@@ -197,7 +195,7 @@
"Save": "Saglabāt",
"SaveImageOnYourComputer": "Lai saglabātu bildi datora, uz bildes spiediet labo peles pogu un izvēlieties \"Save Image As...\"",
"Search": "Meklēt",
- "SeeTheOfficialDocumentationForMoreInformation": "Lai iegūtu vairāk informāciju, apskatiet %soficiālo dokumentāciju%s.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Lai iegūtu vairāk informāciju, apskatiet %1$soficiālo dokumentāciju%2$s.",
"SelectYesIfYouWantToSendEmailsViaServer": "Ja vēlies vai ir nepieciešans sūtīt e-pastus caur serveri neizmantojot lokālo \"mail\" metodi, izvēlies \"Jā\"",
"Settings": "Iestatījumi",
"Shipping": "Piegāde",
diff --git a/lang/nb.json b/lang/nb.json
index 1508538983..c20d68cb56 100644
--- a/lang/nb.json
+++ b/lang/nb.json
@@ -15,7 +15,7 @@
"API": "API",
"Apply": "Bruk",
"ArchivingInlineHelp": "For nettsteder med medium til høy trafikk, er det anbefalt å arkivering av rapporter når de vises i nettleseren. I stedet anbefaler vi at du setter opp en cron-jobb som prosesserer Piwik-rapporter hver time.",
- "ArchivingTriggerDescription": "For større Piwik-installasjoner anbefales det at du setter opp en %scron-jobb%s for å behandle rapporter automatisk.",
+ "ArchivingTriggerDescription": "For større Piwik-installasjoner anbefales det at du setter opp en %1$scron-jobb%2$s for å behandle rapporter automatisk.",
"AuthenticationMethodSmtp": "Autentiseringsmetode for SMTP",
"AverageOrderValue": "Gjennomsnittlig ordrepris",
"AveragePrice": "Gjennomsnittlig pris",
@@ -27,10 +27,9 @@
"CannotUnzipFile": "Kan ikke pakke opp filen %1$s: %2$s",
"ChangePassword": "Endre passord",
"ChangeTagCloudView": "Legg merke til at du kan se på rapporten på andre måter enn som en stikkordsky. Bruk kontrollene på bunnen av rapporten for å gjøre det.",
- "ChooseDate": "Velg dato",
+ "ChooseDate": "Velg dato, valgt dato er: %s",
"ChooseLanguage": "Velg språk",
"ChoosePeriod": "Velg periode",
- "ChooseWebsite": "Velg nettsted",
"ClickHere": "Klikk her for mer informasjon.",
"ClickToChangePeriod": "Klikk igjen for å endre periode.",
"Close": "Lukk",
@@ -84,12 +83,14 @@
"ColumnViewedAfterSearchDocumentation": "Antallet ganger denne siden var besøkt etter at en besøker gjorde et søk på nettstedet ditt og klikket på denne siden i søkeresultatene.",
"ColumnVisitDuration": "Besøksvarighet (i sekunder)",
"ColumnVisitsWithConversions": "Besøk med konvertering",
- "ConfigFileIsNotWritable": "Konfigurasjonsfilen for Piwik %s er ikke skrivbar. Noen av endringene dine blir kanskje ikke lagret. %s Endre rettighetene for filen slik at den er skrivbar.",
+ "ConfigFileIsNotWritable": "Konfigurasjonsfilen for Piwik %1$s er ikke skrivbar. Noen av endringene dine blir kanskje ikke lagret. %2$s Endre rettighetene for filen slik at den er skrivbar.",
"Continue": "Fortsett",
"ContinueToPiwik": "Fortsett til Piwik",
- "CurrentMonth": "Gjeldende måned",
- "CurrentWeek": "Gjeldende uke",
- "CurrentYear": "Gjeldende år",
+ "CurrentlyUsingUnsecureHttp": "Du bruker nå Piwik over usikker HTTP, som kan være risikabelt. Vi anbefaler at du setter opp Piwik til å bruke SSL (HTTPS) for økt sikkerhet.",
+ "CreatedByUser": "laget av %s",
+ "CurrentMonth": "Denne måneden",
+ "CurrentWeek": "Denne uken",
+ "CurrentYear": "Dette året",
"Daily": "Daglig",
"DailyReport": "daglig",
"DailyReports": "Daglige rapporter",
@@ -100,7 +101,7 @@
"Date": "Dato",
"DateRange": "Datointervall:",
"DateRangeFrom": "Fra",
- "DateRangeFromTo": "Fra %s til %s",
+ "DateRangeFromTo": "Fra %1$s til %2$s",
"DateRangeInPeriodList": "datointervall",
"DateRangeTo": "Til",
"DaysHours": "%1$s dager %2$s timer",
@@ -133,30 +134,30 @@
"Edit": "Rediger",
"EncryptedSmtpTransport": "Fyll inn transportlagkrypteringen som kreves av din SMTP-tjener.",
"Error": "Feil",
- "ErrorRequest": "Oi... Det oppstod et problem under forespørselen. Kanskje tjeneren hadde en midlertidig feil eller kanskje du ba om en rapport med for mye data. Prøv igjen. Hvis feilen oppstår gjentatte ganger, %skontakt din Piwik-administrator%s for assistanse.",
+ "ErrorRequest": "Oi... Det oppstod et problem under forespørselen. Kanskje tjeneren hadde en midlertidig feil eller kanskje du ba om en rapport med for mye data. Prøv igjen. Hvis feilen oppstår gjentatte ganger, %1$skontakt din Piwik-administrator%2$s for assistanse.",
"EvolutionOverPeriod": "Utvikling i perioden",
"EvolutionSummaryGeneric": "%1$s i %2$s sammenlignet med %3$s i %4$s. Utvikling: %5$s",
- "ExceptionContactSupportGeneric": "Hvis du fortsatt har dette problemet, %skontakt din Piwik-administrator%s for assistanse.",
+ "ExceptionContactSupportGeneric": "Hvis du fortsatt har dette problemet, %1$skontakt din Piwik-administrator%2$s for assistanse.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Bruker må enten være en superbruker eller brukeren «%s» selv.",
"ExceptionConfigurationFileNotFound": "Klarte ikke finne eller lese konfigurasjonsfilen {%s}.",
- "ExceptionConfigurationFileNotFound2": "Hvis filen eksisterer, vennligst sjekk at %s er lesbar for brukeren «%s».",
+ "ExceptionConfigurationFileNotFound2": "Hvis filen eksisterer, vennligst sjekk at %1$s er lesbar for brukeren «%2$s».",
"ExceptionDatabaseVersion": "Din %1$s versjon er %2$s, men Piwik krever minst %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Din Piwik-kodebase kjører den gamle versjonen %1$s, og vi har oppdaget at din Piwik-database allerede har blitt oppgradert til den nyere versjonen %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Kanskje dine Piwik-administratorer holder på med å fullføre oppgraderingsprosessen. Prøv igjen om noen få minutter.",
"ExceptionFileIntegrity": "Integritetssjekk feilet: %s",
"ExceptionFilesizeMismatch": "Filstørrelse stemmer ikke: %1$s (forventet lengde: %2$s, fant: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Din %1$s klientversjon er %2$s som ikke passer med tjenerversjonen %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Format «%s» for aggregerte rapporter er ikke gyldig. Prøv en av følgende istedenfor: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Format «%1$s» for aggregerte rapporter er ikke gyldig. Prøv en av følgende istedenfor: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Arkiveringsintervallet for i dag må være et antall sekunder som er større enn null",
- "ExceptionInvalidDateFormat": "Datoformatet må være %s eller et nøkkelord støttet av %s-funksjonen (se %s for mer informasjon).",
- "ExceptionInvalidDateRange": "Datoen «%s» er ikke et gyldig datointervall. Riktig format er: %s",
- "ExceptionInvalidPeriod": "Perioden «%s» er ikke støttet. Prøv en av følgende istedenfor: %s",
- "ExceptionInvalidRendererFormat": "Format «%s» for rendering er ikke gyldig. Prøv en av følgende istedenfor: %s.",
- "ExceptionInvalidReportRendererFormat": "Rapportformat «%s» er ikke gyldig. Prøv en av følgende istedenfor: %s.",
- "ExceptionInvalidStaticGraphType": "Statisk graftype «%s» er ikke gyldig. Prøv en av følgende istedenfor: %s.",
+ "ExceptionInvalidDateFormat": "Datoformatet må være %1$s eller et nøkkelord støttet av %2$s-funksjonen (se %3$s for mer informasjon).",
+ "ExceptionInvalidDateRange": "Datoen «%1$s» er ikke et gyldig datointervall. Riktig format er: %2$s",
+ "ExceptionInvalidPeriod": "Perioden «%1$s» er ikke støttet. Prøv en av følgende istedenfor: %2$s",
+ "ExceptionInvalidRendererFormat": "Format «%1$s» for rendering er ikke gyldig. Prøv en av følgende istedenfor: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Rapportformat «%1$s» er ikke gyldig. Prøv en av følgende istedenfor: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Statisk graftype «%1$s» er ikke gyldig. Prøv en av følgende istedenfor: %2$s.",
"ExceptionInvalidToken": "Autentiseringsnøkkel er ikke gyldig.",
"ExceptionLanguageFileNotFound": "Fant ikke språkfilen «%s».",
- "ExceptionMethodNotFound": "Metoden «%s» eksisterer ikke eller er ikke tilgjengelig i modulen «%s».",
+ "ExceptionMethodNotFound": "Metoden «%1$s» eksisterer ikke eller er ikke tilgjengelig i modulen «%2$s».",
"ExceptionMissingFile": "Mangler fil: %s",
"ExceptionNonceMismatch": "Klarte ikke å verifisere autentiseringsnøkkelen i dette skjemaet.",
"ExceptionPrivilege": "Du har ikke tilgang til denne ressursen siden den krever «%s»-tilgang.",
@@ -164,7 +165,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Du har ikke tilgang til denne ressursen siden den krever «%s»-tilgang for minst ett av nettstedene.",
"ExceptionUnableToStartSession": "Klarte ikke å starte økt.",
"ExceptionUndeletableFile": "Klarte ikke å slette %s",
- "ExceptionUnreadableFileDisabledMethod": "Klarte ikke å lese konfigurasjonsfilen {%s}. Verten din kan ha deaktivert %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Klarte ikke å lese konfigurasjonsfilen {%1$s}. Verten din kan ha deaktivert %2$s.",
"ExceptionReportNotFound": "Den etterspurte rapporten finnes ikke.",
"ExceptionWidgetNotFound": "Den etterspurte widgeten finnes ikke.",
"ExceptionReportNotEnabled": "Den etterspurte rapporten er ikke aktivert. Dette betyr vanligvis at enten er utvidelsen som definerer rapporten deaktivert, eller så har du ikke nok rettigheter til å vise rapporten.",
@@ -212,7 +213,7 @@
"Logout": "Logg ut",
"MainMetrics": "Hovedmåltall",
"Matches": "Treff",
- "MediumToHighTrafficItIsRecommendedTo": "For nettsteder med medium til høy trafikk, er det anbefalt å ikke prosessere dagens rapporter oftere enn hver halvtime (%s sekunder) eller hver time (%s sekunder).",
+ "MediumToHighTrafficItIsRecommendedTo": "For nettsteder med medium til høy trafikk, er det anbefalt å ikke prosessere dagens rapporter oftere enn hver halvtime (%1$s sekunder) eller hver time (%2$s sekunder).",
"Metadata": "Metadata",
"Metric": "Måltall",
"Metrics": "Måltall",
@@ -269,7 +270,7 @@
"OptionalSmtpPort": "Valgfritt. Standard er 25 for ukryptert og TLS SMTP, og 465 for SSL SMTP.",
"Options": "Alternativer",
"Or": "eller",
- "OrCancel": "eller %s avbryt %s",
+ "OrCancel": "eller %1$s avbryt %2$s",
"Others": "Andre",
"Outlink": "Utlenke",
"Outlinks": "Utlenker",
@@ -277,9 +278,9 @@
"OverlayRowActionTooltipTitle": "Åpne sideoverlegg",
"Overview": "Oversikt",
"Pages": "Sider",
- "Pagination": "%s – %s av %s",
- "PaginationWithoutTotal": "%s – %s",
- "ParameterMustIntegerBetween": "Parameteret %s må være et heltall mellom %s og %s.",
+ "Pagination": "%1$s – %2$s av %3$s",
+ "PaginationWithoutTotal": "%1$s – %2$s",
+ "ParameterMustIntegerBetween": "Parameteret %1$s må være et heltall mellom %2$s og %3$s.",
"Password": "Passord",
"Period": "Periode",
"Piechart": "Kakediagram",
@@ -331,7 +332,7 @@
"Clear": "Tøm",
"SearchNoResults": "Ingen resultater",
"SeeAll": "se alle",
- "SeeTheOfficialDocumentationForMoreInformation": "Se %sden offisielle dokumentasjonen%s for mer informasjon.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Se %1$sden offisielle dokumentasjonen%2$s for mer informasjon.",
"SeeThisFaq": "Se %1$sdenne FAQ-en%2$s.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Velg «Ja» hvis du vil sende e-post med en navngitt tjener istedenfor den lokale mail-funksjonen",
@@ -358,7 +359,7 @@
"Total": "Totalt",
"TotalRatioTooltip": "Dette er %1$s av alle %2$s %3$s.",
"TotalRevenue": "Totale inntekter",
- "TotalVisitsPageviewsActionsRevenue": "(Totalt: %s besøk, %s sidevisninger, %s handlinger, %s inntekter)",
+ "TotalVisitsPageviewsActionsRevenue": "(Totalt: %1$s besøk, %2$s sidevisninger, %3$s handlinger, %4$s inntekter)",
"TrackingScopeAction": "Handling",
"TrackingScopePage": "Side",
"TrackingScopeVisit": "Besøk",
@@ -395,8 +396,8 @@
"WarningFileIntegrityNoManifest": "Klarte ikke å utføre integritetskontroll av filer fordi manifest.inc.php mangler.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Hvis du installerer Piwik fra Git, er denne meldingen normal.",
"WarningFileIntegrityNoMd5file": "Klarte ikke utføre integritetskontroll av filer fordi funksjonen md5_file mangler.",
- "WarningPasswordStored": "%sAdvarsel:%s Dette passordet lagres i klartekst i konfigurasjonsfilen slik at alle med tilgang kan lese det.",
- "WarningDebugOnDemandEnabled": "Sporingsmodus %s er aktivert. På grunn av sikkerheten bør dette kun være aktivert i en kort periode. For å deaktivere, sett %s til %s i %s",
+ "WarningPasswordStored": "%1$sAdvarsel:%2$s Dette passordet lagres i klartekst i konfigurasjonsfilen slik at alle med tilgang kan lese det.",
+ "WarningDebugOnDemandEnabled": "Sporingsmodus %1$s er aktivert. På grunn av sikkerheten bør dette kun være aktivert i en kort periode. For å deaktivere, sett %2$s til %3$s i %4$s",
"Website": "Nettsted",
"Weekly": "Ukentlig",
"WeeklyReport": "ukentlig",
@@ -450,7 +451,7 @@
"MultiChartLabel": "Vis minigrafer",
"NavigationBack": "Tilbake",
"NetworkError": "Nettverksfeil",
- "NetworkErrorWithStatusCode": "Det oppstod en «%s»-feil. Forespørselen returnerte statusen «%s». URL-en var «%s». Sjekk URL-en du skrev inn og feilloggene på denne tjeneren for mer informasjon om feilen og hvordan du kan løse problemet.",
+ "NetworkErrorWithStatusCode": "Det oppstod en «%1$s»-feil. Forespørselen returnerte statusen «%2$s». URL-en var «%3$s». Sjekk URL-en du skrev inn og feilloggene på denne tjeneren for mer informasjon om feilen og hvordan du kan løse problemet.",
"NetworkErrorWithStatusCodeShort": "Nettverksfeil %s",
"NetworkNotReachable": "Nettverk kan ikke nås",
"NoAccountIsSelected": "Du må velge en konto. Legg til en ny konto hvis du ikke har satt opp en konto enda.",
@@ -468,7 +469,7 @@
"RatingDontRemindMe": "Ikke minn meg på dette",
"RatingNotNow": "Ikke nå",
"RatingNow": "OK, jeg vil vurdere den nå",
- "RatingPleaseRateUs": "Appen Piwik Mobil er fri programvare. Vi ville virkelig sette pris på om du brukte 1 minutt på å vurdere denne appen i %s. Hvis du har forslag til nye funksjoner eller feilrapporter, kontakt %s",
+ "RatingPleaseRateUs": "Appen Piwik Mobil er fri programvare. Vi ville virkelig sette pris på om du brukte 1 minutt på å vurdere denne appen i %1$s. Hvis du har forslag til nye funksjoner eller feilrapporter, kontakt %2$s",
"ReleaseToRefresh": "Slipp for å oppdatere...",
"Reloading": "Laster inn på nytt ...",
"RequestTimedOutShort": "Nettverksfeil – tidsavbrudd",
@@ -493,7 +494,7 @@
"CompareRows": "Sammenlign oppføringer",
"ComparingRecords": "Sammenligner %s rader",
"Documentation": "Klikk måltallet for å vise det i den store utviklingsgrafen. Bruk SHIFT-klikk for å vise flere måltall på en gang.",
- "MetricBetweenText": "fra %s til %s",
+ "MetricBetweenText": "fra %1$s til %2$s",
"MetricChangeText": "%s endring i perioden",
"MetricMinMax": "%1$s rangert mellom %2$s og %3$s i perioden",
"MetricsFor": "Måltall for %s",
diff --git a/lang/nl.json b/lang/nl.json
index c8b0818e18..7d94a685fb 100644
--- a/lang/nl.json
+++ b/lang/nl.json
@@ -12,7 +12,7 @@
"And": "en",
"API": "API",
"ArchivingInlineHelp": "Voor middelgrote tot grote websites, is het aan te raden Piwik archivering voor de browser uit te schakelen. Als alternatief raden we aan om een cronjob te maken om piwik om het uur rapporten te laten genereren.",
- "ArchivingTriggerDescription": "Aangeraden voor grote Piwik installaties, gebruik een %scronjob%s om automatisch rapporten te genereren.",
+ "ArchivingTriggerDescription": "Aangeraden voor grote Piwik installaties, gebruik een %1$scronjob%2$s om automatisch rapporten te genereren.",
"AuthenticationMethodSmtp": "Authenticatie methode voor SMTP",
"AverageOrderValue": "Gemiddelde Orderwaarde",
"AveragePrice": "Gemiddelde Prijs",
@@ -24,10 +24,8 @@
"CannotUnzipFile": "Kan bestand %1$s niet uitpakken: %2$s",
"ChangePassword": "Wijzig wachtwoord",
"ChangeTagCloudView": "Je kunt het rapport ook op andere manieren dan een tag-cloud bekijken door de icoontjes onderaan het rapport te gebruiken.",
- "ChooseDate": "Kies datum",
"ChooseLanguage": "Kies taal",
"ChoosePeriod": "Kies periode",
- "ChooseWebsite": "Kies website",
"ClickHere": "Klik hier voor meer informatie.",
"ClickToChangePeriod": "Klik nog een keer om de periode te veranderen.",
"Close": "Sluiten",
@@ -81,7 +79,7 @@
"ColumnViewedAfterSearchDocumentation": "Het aantal keer deze pagina was bezocht nadat een bezoeker een zoekopdracht deed op je website, en in de zoekresultaten op deze pagina klikte.",
"ColumnVisitDuration": "Duur van bezoek (in seconden)",
"ColumnVisitsWithConversions": "Bezoekers met conversies",
- "ConfigFileIsNotWritable": "Het piwik configuratiebestand %s is niet beschrijfbaar. Niet alle wijzigingen zullen worden bewaard. %s Wijzig de permissies van het configuratie bestand om het beschrijfbaar te maken.",
+ "ConfigFileIsNotWritable": "Het piwik configuratiebestand %1$s is niet beschrijfbaar. Niet alle wijzigingen zullen worden bewaard. %2$s Wijzig de permissies van het configuratie bestand om het beschrijfbaar te maken.",
"Continue": "Ga verder",
"ContinueToPiwik": "Ga verder naar Piwik",
"CurrentMonth": "Huidige maand",
@@ -97,7 +95,7 @@
"Date": "Datum",
"DateRange": "Datumbereik:",
"DateRangeFrom": "Van",
- "DateRangeFromTo": "Van %s tot %s",
+ "DateRangeFromTo": "Van %1$s tot %2$s",
"DateRangeTo": "Tot",
"DaysHours": "%1$s dagen %2$s uren",
"DaysSinceFirstVisit": "Aantal dagen sinds eerste bezoek",
@@ -129,30 +127,30 @@
"Edit": "Aanpassen",
"EncryptedSmtpTransport": "Geef de transport beveiligingslaag op die vereist is voor uw SMTP server.",
"Error": "Fout",
- "ErrorRequest": "Oeps... er ontstond een probleem tijdens het verzoek. Misschien had de server een tijdelijk probleem, of vroeg je een rapport op met teveel data. Probeer het opnieuw. Als het probleem zich voor blijft doen, neem dan %scontact op met de Piwik beheerder%s.",
+ "ErrorRequest": "Oeps... er ontstond een probleem tijdens het verzoek. Misschien had de server een tijdelijk probleem, of vroeg je een rapport op met teveel data. Probeer het opnieuw. Als het probleem zich voor blijft doen, neem dan %1$scontact op met de Piwik beheerder%2$s.",
"EvolutionOverPeriod": "Trend",
"EvolutionSummaryGeneric": "%1$s in %2$s vergeleken met %3$s in %4$s. Evolutie: %5$s",
- "ExceptionContactSupportGeneric": "Als het probleem zich nog steeds voordoet, neem dan %scontact op met je Piwik beheerder%s.",
+ "ExceptionContactSupportGeneric": "Als het probleem zich nog steeds voordoet, neem dan %1$scontact op met je Piwik beheerder%2$s.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "De gebruiker dient een Super User of de gebruiker '%s' zelf te zijn.",
"ExceptionConfigurationFileNotFound": "Het configuratiebestand {%s} is niet gevonden of kon niet worden gelezen.",
- "ExceptionConfigurationFileNotFound2": "Indien het bestand bestaat, wees er dan zeker van %s kan gelezen worden door de gebruiker '%s'.",
+ "ExceptionConfigurationFileNotFound2": "Indien het bestand bestaat, wees er dan zeker van %1$s kan gelezen worden door de gebruiker '%2$s'.",
"ExceptionDatabaseVersion": "Uw %1$s versie is %2$s maar Piwik vereist ten minste %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "De Piwik bestanden zijn van de verouderde versie %1$s en we zien dat de Piwik Database al een upgrade heeft gehad naar de nieuwere versie %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Het kan zijn dat de Piwik beheerder op dit moment de upgrade aan het uitvoeren is. Probeer het over een paar minuten nog eens.",
"ExceptionFileIntegrity": "Integriteitstest mislukt: %s",
"ExceptionFilesizeMismatch": "Bestandsgrootte klopt niet: %1$s (verwachte grootte: %2$s, gevonden: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Uw %1$s cliënt versie is %2$s maar is niet compatibel met server versie %3$s",
- "ExceptionInvalidAggregateReportsFormat": "Samengesteld rapporten formaat '%s' niet geldig. Probeer in plaats daarvan een van de volgende: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Samengesteld rapporten formaat '%1$s' niet geldig. Probeer in plaats daarvan een van de volgende: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Archiveer tijdstip van vandaag moet een aantal seconden zijn groter dan nul.",
- "ExceptionInvalidDateFormat": "Datum formaat moet zijn: %s of elk sleutelwoord ondersteund door de %s functie (zie %s voor meer info)",
- "ExceptionInvalidDateRange": "De datum '%s' is geen correct datum bereik. Het moet het volgende formaat hebben: %s.",
- "ExceptionInvalidPeriod": "De periode '%s' is niet geschikt. Probeer anders één van de volgende: %s",
- "ExceptionInvalidRendererFormat": "Renderformaat '%s' niet geldig. Probeer anders één van de volgende: %s",
- "ExceptionInvalidReportRendererFormat": "Rapport formaat %s is niet geldig. Probeer: %s",
- "ExceptionInvalidStaticGraphType": "Statische grafiek type '%s' niet geldig. Probeer in plaats daarvan een van de volgende: %s.",
+ "ExceptionInvalidDateFormat": "Datum formaat moet zijn: %1$s of elk sleutelwoord ondersteund door de %2$s functie (zie %3$s voor meer info)",
+ "ExceptionInvalidDateRange": "De datum '%1$s' is geen correct datum bereik. Het moet het volgende formaat hebben: %2$s.",
+ "ExceptionInvalidPeriod": "De periode '%1$s' is niet geschikt. Probeer anders één van de volgende: %2$s",
+ "ExceptionInvalidRendererFormat": "Renderformaat '%1$s' niet geldig. Probeer anders één van de volgende: %2$s",
+ "ExceptionInvalidReportRendererFormat": "Rapport formaat %1$s is niet geldig. Probeer: %2$s",
+ "ExceptionInvalidStaticGraphType": "Statische grafiek type '%1$s' niet geldig. Probeer in plaats daarvan een van de volgende: %2$s.",
"ExceptionInvalidToken": "Token is niet geldig.",
"ExceptionLanguageFileNotFound": "Taal bestand '%s' is niet gevonden.",
- "ExceptionMethodNotFound": "De methode '%s' bestaat niet of is niet beschikbaar in de module '%s'.",
+ "ExceptionMethodNotFound": "De methode '%1$s' bestaat niet of is niet beschikbaar in de module '%2$s'.",
"ExceptionMissingFile": "Bestand niet gevonden: %s",
"ExceptionNonceMismatch": "Kan het security token in dit formulier niet verifiëren.",
"ExceptionPrivilege": "Je hebt geen toegang tot deze bron, omdat %s toegang is vereist.",
@@ -160,7 +158,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Je hebt geen toegang tot deze bron, omdat %s toegang is vereist voor tenminste één website.",
"ExceptionUnableToStartSession": "Kan sessie niet starten.",
"ExceptionUndeletableFile": "Kan %s niet verwijderen.",
- "ExceptionUnreadableFileDisabledMethod": "Het configuratiebestand {%s} kon niet gelezen worden. Uw host kan %s uitgeschakeld hebben.",
+ "ExceptionUnreadableFileDisabledMethod": "Het configuratiebestand {%1$s} kon niet gelezen worden. Uw host kan %2$s uitgeschakeld hebben.",
"ExceptionReportNotFound": "Het aangevraagde rapport bestaat niet.",
"ExceptionWidgetNotFound": "De opgevraagde widget bestaat niet.",
"ExceptionReportNotEnabled": "Het opgevraagde rapport is niet geactiveerd. Dit betekend in de meeste gevallen dat de plugin die dit rapport bevat gedeactiveerd is, of dat je niet voldoende rechten hebt voor de toegang tot het rapport.",
@@ -208,7 +206,7 @@
"Logout": "Afmelden",
"MainMetrics": "Algemene gegevens",
"Matches": "Overeenkomsten",
- "MediumToHighTrafficItIsRecommendedTo": "Voor middelgrote tot grote websites, raden we u aan rapporten te genereren voor vandaag, met een maximale frequentie van eens per half uur (%s seconden) of elk uur (%s seconden).",
+ "MediumToHighTrafficItIsRecommendedTo": "Voor middelgrote tot grote websites, raden we u aan rapporten te genereren voor vandaag, met een maximale frequentie van eens per half uur (%1$s seconden) of elk uur (%2$s seconden).",
"Metadata": "Metadata",
"Metric": "Metric",
"Metrics": "Metrics",
@@ -262,7 +260,7 @@
"OperationNotEquals": "Niet gelijk aan",
"OptionalSmtpPort": "Optioneel. Standaard 25 voor onbeveiligd and TLS SMTP, en 465 voor SSL SMTP",
"Options": "Opties",
- "OrCancel": "of %s Annuleer %s",
+ "OrCancel": "of %1$s Annuleer %2$s",
"Others": "Andere",
"Outlink": "Uitgaande Link",
"Outlinks": "Uitgaande Links",
@@ -270,9 +268,9 @@
"OverlayRowActionTooltipTitle": "Open Page Overlay",
"Overview": "Overzicht",
"Pages": "Pagina's",
- "Pagination": "%s - %s van %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Parameter %s moet een geheel getal tussen %s en %s zijn.",
+ "Pagination": "%1$s - %2$s van %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Parameter %1$s moet een geheel getal tussen %2$s en %3$s zijn.",
"Password": "Wachtwoord",
"Period": "Periode",
"Piechart": "Taartdiagram",
@@ -324,7 +322,7 @@
"Clear": "Duidelijk",
"SearchNoResults": "Geen resultaten",
"SeeAll": "Bekijk alles",
- "SeeTheOfficialDocumentationForMoreInformation": "Zie de %sofficiële documentatie%s voor meer info.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Zie de %1$sofficiële documentatie%2$s voor meer info.",
"SeeThisFaq": "Bekijk %1$sdeze veelgestelde vraag%2$s.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Selecteer \"Ja\" als u wilt dat mail verzonden wordt via een opgegeven server in plaats van de lokale mail functie.",
@@ -350,7 +348,7 @@
"Total": "Totaal",
"TotalRatioTooltip": "Dit is %1$s van alle %2$s %3$s.",
"TotalRevenue": "Totale Inkomsten",
- "TotalVisitsPageviewsActionsRevenue": "(Totaal: %s bezoekers, %s paginaweergaves,%s acties, %s inkomsten)",
+ "TotalVisitsPageviewsActionsRevenue": "(Totaal: %1$s bezoekers, %2$s paginaweergaves,%3$s acties, %4$s inkomsten)",
"TransitionsRowActionTooltip": "Bekijk wat bezoekers voor en na het bekijken van deze pagina deden",
"TransitionsRowActionTooltipTitle": "Open transities",
"TranslatorName": "Martijn van Laar, Hannes Bossuyt, Sigge Stegeman, Taco Vader, Benkheil Abdelouali, Ko de Pree, Richard Mastop",
@@ -382,8 +380,8 @@
"WarningFileIntegrityNoManifest": "Bestand integriteits controle kon niet worden uitgevoerd vanwege ontbrekend manifest.inc.php",
"WarningFileIntegrityNoManifestDeployingFromGit": "Als je Piwik vanuit Git deployed, dan is deze melding normaal.",
"WarningFileIntegrityNoMd5file": "Bestand integriteit controle kon niet worden voltooid vanwege ontbrekende md5_file() functie.",
- "WarningPasswordStored": "%sWaarschuwing:%s Dit wachtwoord zal worden bewaard in het configuratie bestand, zichtbaar voor iedereen die toegang heeft.",
- "WarningDebugOnDemandEnabled": "Tracker %s modus staat aan. Om beveilingsredenen zou dit maar voor een korte duur aan mogen staan. Om het uit te zetten, zet %s op %s in %s",
+ "WarningPasswordStored": "%1$sWaarschuwing:%2$s Dit wachtwoord zal worden bewaard in het configuratie bestand, zichtbaar voor iedereen die toegang heeft.",
+ "WarningDebugOnDemandEnabled": "Tracker %1$s modus staat aan. Om beveilingsredenen zou dit maar voor een korte duur aan mogen staan. Om het uit te zetten, zet %2$s op %3$s in %4$s",
"Website": "Website",
"Weekly": "Wekelijks",
"WeeklyReport": "wekelijks",
@@ -436,7 +434,7 @@
"MultiChartLabel": "Toon grafieklijnen",
"NavigationBack": "Terug",
"NetworkError": "Netwerk Fout",
- "NetworkErrorWithStatusCode": "Er was een probleem \"%s\". Het verzoek retourneerde de status \"%s\". URL was \"%s\". Controleer je ingevoerde URL en de error logs op deze server voor meer informatie over deze fout en hoe je ze kunt oplossen.",
+ "NetworkErrorWithStatusCode": "Er was een probleem \"%1$s\". Het verzoek retourneerde de status \"%2$s\". URL was \"%3$s\". Controleer je ingevoerde URL en de error logs op deze server voor meer informatie over deze fout en hoe je ze kunt oplossen.",
"NetworkErrorWithStatusCodeShort": "Netwerk fout %s",
"NetworkNotReachable": "Netwerk niet bereikbaar",
"NoAccountIsSelected": "Je moet een account selecteren. Voeg een nieuwe account toe indien je nog geen hebt geconfigureerd.",
@@ -454,7 +452,7 @@
"RatingDontRemindMe": "Herinner me er niet aan",
"RatingNotNow": "Niet nu",
"RatingNow": "Ok, ik wil het nu beoordelen",
- "RatingPleaseRateUs": "Piwik Mobile is gratis software. We zouden het erg op prijs stellen als je 1 minuut tijd neemt om de app te beoordelen op %s. Als u suggesties voor nieuwe functies heeft of foutmeldingen, neem dan a.u.b. contact op met %s",
+ "RatingPleaseRateUs": "Piwik Mobile is gratis software. We zouden het erg op prijs stellen als je 1 minuut tijd neemt om de app te beoordelen op %1$s. Als u suggesties voor nieuwe functies heeft of foutmeldingen, neem dan a.u.b. contact op met %2$s",
"ReleaseToRefresh": "Laat los om te vernieuwen ...",
"Reloading": "Herladen ...",
"RequestTimedOutShort": "Netwerk Timeout fout",
@@ -479,7 +477,7 @@
"CompareRows": "Vergelijk records",
"ComparingRecords": "Bezig met %s rijen te vergelijken",
"Documentation": "Klik op de gegevens om ze in een uitgebreidere trendgrafiek te bekijken. Gebruik shift-click om in één grafiek meerdere gegevens te tonen.",
- "MetricBetweenText": "tussen %s en %s",
+ "MetricBetweenText": "tussen %1$s en %2$s",
"MetricChangeText": "%s over de periode",
"MetricMinMax": "%1$s zat tussen %2$s en %3$s tijdens de periode",
"MetricsFor": "Gegevens voor %s",
diff --git a/lang/nn.json b/lang/nn.json
index d70e7a5498..6a3a9570b2 100644
--- a/lang/nn.json
+++ b/lang/nn.json
@@ -8,7 +8,7 @@
"AllWebsitesDashboard": "Styringspanel for alle nettstadene",
"API": "API",
"ArchivingInlineHelp": "For nettstader med middels til høg trafikk, er det tilrådd å slå av arkivering via nettlesaren. Me oppmodar deg heller til å setja opp ein cron-jobb for å handsama rapportane til Piwik kvar time.",
- "ArchivingTriggerDescription": "For større installasjonar av Piwik er det tilrådd at du %ssett opp ein cron-jobb%s for å handsama rapportane automatisk.",
+ "ArchivingTriggerDescription": "For større installasjonar av Piwik er det tilrådd at du %1$ssett opp ein cron-jobb%2$s for å handsama rapportane automatisk.",
"AuthenticationMethodSmtp": "Godkjenningsmetode for SMTP",
"AverageOrderValue": "Gjennomsnittleg verdi på ordre",
"AveragePrice": "Snittpris",
@@ -17,10 +17,8 @@
"Cancel": "Avbryt",
"ChangePassword": "Bytt passord",
"ChangeTagCloudView": "Du kan sjå rapporten på andre vis enn ein emnesky. Bruk kontrollane på botn av rapporten for å gjera dette.",
- "ChooseDate": "Vel dato",
"ChooseLanguage": "Vel språk",
"ChoosePeriod": "Vel periode",
- "ChooseWebsite": "Vel nettside",
"ClickHere": "Klikk her for meir informasjon.",
"Close": "Lukk",
"ColumnActionsPerVisit": "Handlingar per vitjing",
@@ -61,7 +59,7 @@
"ColumnUniquePageviewsDocumentation": "Talet på vitjingar som inkluderte denne sida. Viss ei side visast fleire gong per vitjing, reknast det berre som ein gong.",
"ColumnValuePerVisit": "Inntekt per vitjing",
"ColumnVisitDuration": "Vitjarlengd (i sekund)",
- "ConfigFileIsNotWritable": "Konfigurasjonsfila til Piwik, %s, er ikkje skrivbar. Somme av endringane dine vil kanskje ikkje koma med. %s Endre tilgangsløyver for fila for å gjera den skrivbar.",
+ "ConfigFileIsNotWritable": "Konfigurasjonsfila til Piwik, %1$s, er ikkje skrivbar. Somme av endringane dine vil kanskje ikkje koma med. %2$s Endre tilgangsløyver for fila for å gjera den skrivbar.",
"ContinueToPiwik": "Hald fram til Piwik",
"CurrentMonth": "Denne månaden",
"CurrentWeek": "Denne veka",
@@ -75,7 +73,7 @@
"Date": "Dato",
"DateRange": "Periode:",
"DateRangeFrom": "Frå",
- "DateRangeFromTo": "Frå %s til %s",
+ "DateRangeFromTo": "Frå %1$s til %2$s",
"DateRangeTo": "Til",
"DaysHours": "%1$s dagar %2$s timar",
"DaysSinceFirstVisit": "Dagar sidan fyrste vitjing",
@@ -105,15 +103,17 @@
"ExceptionFileIntegrity": "Integritetssjekk feila: %s",
"ExceptionFilesizeMismatch": "Filstorleiken samsvarer ikkje: %1$s (forventa lengde: %2$s, fann: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Din %1$s klientversjon er %2$s, som ikkje er støtta med tenarversjon %3$s",
+ "ExceptionInvalidAggregateReportsFormat": "Algemene rapporten formaat '%1$s' niet geldig. Probeer in plaats daarvan een van de volgende: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Levetida for dagens arkiv må vera lengre enn null sekund",
- "ExceptionInvalidDateFormat": "Datoformatet må vera: %s eller eit anna nøkkelord som er støtta av %s funksjonen (sjå %s for meir informasjon)",
- "ExceptionInvalidDateRange": "Datoen '%s' er ikkje ein korrekt periode. Formatet lyt vera det følgjande: %s.",
- "ExceptionInvalidPeriod": "Perioden '%s' er ikkje støtta. Prøv følgjande i staden: %s",
- "ExceptionInvalidReportRendererFormat": "Rapportformat '%s' er ikkje gyldig. Prøv følgjande i staden: %s.",
- "ExceptionInvalidStaticGraphType": "Graftype '%s' er ikkje gyldig. Prøv følgjande i staden: %s.",
+ "ExceptionInvalidDateFormat": "Datoformatet må vera: %1$s eller eit anna nøkkelord som er støtta av %2$s funksjonen (sjå %3$s for meir informasjon)",
+ "ExceptionInvalidDateRange": "Datoen '%1$s' er ikkje ein korrekt periode. Formatet lyt vera det følgjande: %2$s.",
+ "ExceptionInvalidPeriod": "Perioden '%1$s' er ikkje støtta. Prøv følgjande i staden: %2$s",
+ "ExceptionInvalidRendererFormat": "Renderformaat '%1$s' niet geldig. Probeer anders één van de volgende: %2$s",
+ "ExceptionInvalidReportRendererFormat": "Rapportformat '%1$s' er ikkje gyldig. Prøv følgjande i staden: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Graftype '%1$s' er ikkje gyldig. Prøv følgjande i staden: %2$s.",
"ExceptionInvalidToken": "Teiknet er ikkje gyldig.",
"ExceptionLanguageFileNotFound": "Fann ikkje språkfila '%s'.",
- "ExceptionMethodNotFound": "Metoden '%s' finst ikkje, eller er utilgjengeleg i modulen '%s'.",
+ "ExceptionMethodNotFound": "Metoden '%1$s' finst ikkje, eller er utilgjengeleg i modulen '%2$s'.",
"ExceptionMissingFile": "Manglar fil: %s",
"ExceptionNonceMismatch": "Kunne ikkje stadfesta tryggleiksteiknet for dette skjemaet.",
"ExceptionPrivilege": "Du kan ikkje nå denne ressursen, av di den krev '%s' tilgang.",
@@ -121,7 +121,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Du kan ikkje nå denne ressursen, av di den krev '%s' tilgang for minst ein nettstad.",
"ExceptionUnableToStartSession": "Kunne ikkje starta økt.",
"ExceptionUndeletableFile": "Kunne ikkje sletta %s",
- "ExceptionUnreadableFileDisabledMethod": "Kunne ikkje lesa konfigurasjonsfila {%s}. Verten din har kanskje skrudd av %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Kunne ikkje lesa konfigurasjonsfila {%1$s}. Verten din har kanskje skrudd av %2$s.",
"Export": "Eksporter",
"ExportAsImage": "Eksporter som bilete",
"ExportThisReport": "Eksporter dette datasettet til andre format",
@@ -150,7 +150,7 @@
"Locale": "nn_NO.UTF-8",
"Logout": "Logg ut",
"MainMetrics": "Hovudverdiar",
- "MediumToHighTrafficItIsRecommendedTo": "For nettstader med middels til høg trafikk, tilrår me å handsama rapportar for idag maksimalt kvar halve (%s sekundar) eller heile time (%s sekundar).",
+ "MediumToHighTrafficItIsRecommendedTo": "For nettstader med middels til høg trafikk, tilrår me å handsama rapportar for idag maksimalt kvar halve (%1$s sekundar) eller heile time (%2$s sekundar).",
"Metadata": "Metadata",
"Metric": "Verdi",
"Metrics": "Verdiar",
@@ -183,13 +183,13 @@
"OnlyUsedIfUserPwdIsSet": "Berre brukt viss brukarnamn\/passord er sett, spør tilbydaren din viss du er usikker på kva metode du lyt bruka.",
"OpenSourceWebAnalytics": "Open nettstatistikk",
"OptionalSmtpPort": "Valfri. Standarden er 25 for ukrypter og TLS SMTP, og 465 for SSL SMTP.",
- "OrCancel": "eller %s Avbryt %s",
+ "OrCancel": "eller %1$s Avbryt %2$s",
"Others": "Andre",
"Outlink": "Utpeikar",
"Outlinks": "Utpeikarar",
"Overview": "Oversikt",
"Pages": "Sider",
- "ParameterMustIntegerBetween": "Parameteren %s må vera eit heiltal mellom %s og %s.",
+ "ParameterMustIntegerBetween": "Parameteren %1$s må vera eit heiltal mellom %2$s og %3$s.",
"Password": "Passord",
"Period": "Periode",
"Piechart": "Kakestykke",
@@ -221,7 +221,7 @@
"Save": "Lagre",
"SaveImageOnYourComputer": "For å lagra biletet på maskina di, høgreklikk på biletet og vel \"Lagre biletet som...\"",
"Search": "Søk",
- "SeeTheOfficialDocumentationForMoreInformation": "Sjå den %soffisielle dokumentasjonen%s for meir informasjon.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Sjå den %1$soffisielle dokumentasjonen%2$s for meir informasjon.",
"SelectYesIfYouWantToSendEmailsViaServer": "Vel \"Ja\" viss du vil senda e-post via ein eigen tenar i staden for den lokale epostfunksjonen",
"Settings": "Innstillingar",
"Shipping": "Frakt",
@@ -259,7 +259,7 @@
"Warning": "Åtvaring",
"WarningFileIntegrityNoManifest": "Sjekking av filintegritet kunne ikkje bli utført av di manifest.inc.php manglar.",
"WarningFileIntegrityNoMd5file": "Sjekking av filintegritet kunne ikkje bli utført av di md5_file()-funksjonen manglar.",
- "WarningPasswordStored": "%sÅtvaring:%s Dette passordet vil lagrast i konfigurasjonsfila og er synleg for alle som har tilgang til den.",
+ "WarningPasswordStored": "%1$sÅtvaring:%2$s Dette passordet vil lagrast i konfigurasjonsfila og er synleg for alle som har tilgang til den.",
"Website": "Nettstad",
"Weekly": "Kvar veke",
"WeeklyReports": "Vekesrapportar",
@@ -270,5 +270,12 @@
"YouAreCurrentlyUsing": "Du bruker no Piwik %s.",
"YouMustBeLoggedIn": "Du må vera innlogga for å bruka denne funksjonen.",
"YourChangesHaveBeenSaved": "Endringane dine er lagra."
+ },
+ "Mobile": {
+ "NetworkErrorWithStatusCode": "Er was een probleem \"%1$s\". Het verzoek retourneerde de status \"%2$s\". URL was \"%3$s\". Controleer je ingevoerde URL en de error logs op deze server voor meer informatie over deze fout en hoe je ze kunt oplossen.",
+ "RatingPleaseRateUs": "Piwik Mobile is vrije software. We zouden het erg op prijs stellen als u 1 minuut tijd nam om de app te waarderen op %1$s. Als u suggesties voor nieuwe functies heeft of foutmeldingen, neem dan a.u.b. contact op met %2$s"
+ },
+ "RowEvolution": {
+ "MetricBetweenText": "tussen %1$s en %2$s"
}
} \ No newline at end of file
diff --git a/lang/pl.json b/lang/pl.json
index c68085a88f..743a5fc862 100644
--- a/lang/pl.json
+++ b/lang/pl.json
@@ -1,5 +1,7 @@
{
"General": {
+ "12HourClock": "zegar 12-godzinny",
+ "24HourClock": "zegar 24-godzinny",
"AbandonedCarts": "Porzucone transakcje",
"AboutPiwikX": "O Piwik %s",
"Action": "Aktywność",
@@ -12,7 +14,7 @@
"And": "i",
"API": "API",
"ArchivingInlineHelp": "Dla serwisów o średnim i wysokim natężeniu ruchu, zalecane jest wyłączenie archiwizacji danych Piwik podczas przeglądania raportów w przeglądarce. Zamiast tego zaleca się skonfigurowanie żądania cron, by przetwarzanie raportów Piwik następowało co godzinę.",
- "ArchivingTriggerDescription": "Zalecany dla większych instalacji Piwik, musisz %sskonfigurować crona%s do przetwarzania raportów automatycznie.",
+ "ArchivingTriggerDescription": "Zalecany dla większych instalacji Piwik, musisz %1$sskonfigurować crona%2$s do przetwarzania raportów automatycznie.",
"AuthenticationMethodSmtp": "Metoda uwierzytelnienie dla SMTP",
"AverageOrderValue": "Średnia wartość zamówienia",
"AveragePrice": "Średnia cena",
@@ -23,10 +25,8 @@
"Cancel": "Anuluj",
"CannotUnzipFile": "Nie można rozpakować pliku %1$s: %2$s",
"ChangePassword": "Zmień hasło",
- "ChooseDate": "Zakres dat",
"ChooseLanguage": "Wybierz język",
"ChoosePeriod": "Wybierz okres",
- "ChooseWebsite": "Wybierz stronę",
"ClickHere": "Kliknij tutaj, aby uzyskać więcej informacji.",
"ClickToChangePeriod": "Kilknij jeszcze raz i zmień okres.",
"Close": "Zamknij",
@@ -77,7 +77,7 @@
"ColumnViewedAfterSearch": "Kliknięć w wyniki wyszukiwania",
"ColumnVisitDuration": "Czas pobytu (w sekundach)",
"ColumnVisitsWithConversions": "Wizyty z przeniesieniami",
- "ConfigFileIsNotWritable": "Plik konfiguracyjny Piwik %s nie ma ustawionych praw do zapisu, zmiany poczynione nie mogły więc zostać zapisane. %s Zmień przez chmod uprawnienia do zapisu pliku konfiguracyjnego.",
+ "ConfigFileIsNotWritable": "Plik konfiguracyjny Piwik %1$s nie ma ustawionych praw do zapisu, zmiany poczynione nie mogły więc zostać zapisane. %2$s Zmień przez chmod uprawnienia do zapisu pliku konfiguracyjnego.",
"Continue": "Kontunuuj",
"ContinueToPiwik": "Idź do Piwik",
"CurrentMonth": "bieżący miesiąc",
@@ -92,7 +92,8 @@
"Date": "Data",
"DateRange": "Zakres dat:",
"DateRangeFrom": "od",
- "DateRangeFromTo": "Od %s do %s",
+ "DateRangeFromTo": "Od %1$s do %2$s",
+ "DateRangeInPeriodList": "zakres dat",
"DateRangeTo": "do",
"DaysHours": "%1$s dni %2$s godzin",
"DaysSinceFirstVisit": "dni od pierwszej wizyty",
@@ -127,17 +128,17 @@
"ExceptionFileIntegrity": "Weryfikacja integralności pliku zakończona niepowodzeniem: %s",
"ExceptionFilesizeMismatch": "Zła wielkość pliku: %1$s (spodziewana wielkość: %2$s, znaleziono: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Twoja %1$s wersja klienta jest %2$s co oznacza, że jest niezgodna z tą wersją serwera %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Zagregowany format raportu '%s' jest niepoprawny. Zamiast niego spróbuj: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Zagregowany format raportu '%1$s' jest niepoprawny. Zamiast niego spróbuj: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Obecny czas życia archiwum musi być określony numerem sekund większym niż zero",
- "ExceptionInvalidDateFormat": "Format daty powinien być następujący: %s lub obsługiwany przez następujące słowa kluczowe przez %s funkcję (poznaj %s by uzyskać więcej informacji)",
- "ExceptionInvalidDateRange": "Data '%s' nie jest w prawidłowym zakresie. Powinna posiadać następujący format: %s.",
- "ExceptionInvalidPeriod": "Dany okres '%s' nie jest obsługiwany. Wypróbuj inny z listy poniżej: %s",
- "ExceptionInvalidRendererFormat": "Zastosowany format '%s' jest nieprawidłowy. Wybierz jeden z dostępnych zamiast: %s.",
- "ExceptionInvalidReportRendererFormat": "Zastosowany format '%s' jest nieprawidłowy. Sprawdź jeden z dostępnych zamiast: %s.",
- "ExceptionInvalidStaticGraphType": "Statyczny typ wykresu '%s' jest nie ważny. Spróbuj jedną z następujących czynności zamiast: %s.",
+ "ExceptionInvalidDateFormat": "Format daty powinien być następujący: %1$s lub obsługiwany przez następujące słowa kluczowe przez %2$s funkcję (poznaj %3$s by uzyskać więcej informacji)",
+ "ExceptionInvalidDateRange": "Data '%1$s' nie jest w prawidłowym zakresie. Powinna posiadać następujący format: %2$s.",
+ "ExceptionInvalidPeriod": "Dany okres '%1$s' nie jest obsługiwany. Wypróbuj inny z listy poniżej: %2$s",
+ "ExceptionInvalidRendererFormat": "Zastosowany format '%1$s' jest nieprawidłowy. Wybierz jeden z dostępnych zamiast: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Zastosowany format '%1$s' jest nieprawidłowy. Sprawdź jeden z dostępnych zamiast: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Statyczny typ wykresu '%1$s' jest nie ważny. Spróbuj jedną z następujących czynności zamiast: %2$s.",
"ExceptionInvalidToken": "Token nie jest poprawny.",
"ExceptionLanguageFileNotFound": "Plik obsługi języka '%s' nie został odnaleziony.",
- "ExceptionMethodNotFound": "Metoda '%s' nie istnieje lub nie jest osiągalna w module '%s'.",
+ "ExceptionMethodNotFound": "Metoda '%1$s' nie istnieje lub nie jest osiągalna w module '%2$s'.",
"ExceptionMissingFile": "Brak pliku: %s",
"ExceptionNonceMismatch": "Nie można pozytywnie zweryfikować tokenu zabezpieczającego w tym formularzu.",
"ExceptionPrivilege": "Nie posiadasz dostępu do tych zasobów, ponieważ one wymagają poziomu uprawnień określonych jako %s.",
@@ -145,7 +146,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Nie posiadasz dostępu do tych zasobów, ponieważ one wymagają uprawnień jako %s w dostępie do przynajmniej jednej strony internetowej.",
"ExceptionUnableToStartSession": "Nie można uruchomić sesji.",
"ExceptionUndeletableFile": "Nie można skasować %s",
- "ExceptionUnreadableFileDisabledMethod": "Plik konfiguracyjny {%s} nie ma praw do odczytu. Twój hosting mógł zablokować %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Plik konfiguracyjny {%1$s} nie ma praw do odczytu. Twój hosting mógł zablokować %2$s.",
"ExceptionReportNotFound": "Raport nie istnieje.",
"ExceptionWidgetNotFound": "Żądany gadżet nie istnieje.",
"ExceptionReportNotEnabled": "Żądany raport nie jest włączony. Zazwyczaj oznacza to, że wtyczka, która określa raport jest nieaktywowana albo nie masz wystarczających uprawnień do dostępu do raportu.",
@@ -161,6 +162,7 @@
"Forums": "Forum",
"FromReferrer": "z",
"GeneralInformation": "Ogólne informacje",
+ "General": "Ogólne",
"GetStarted": "Zacznij",
"GiveUsYourFeedback": "Zdaj relację!",
"Goal": "Cel",
@@ -191,7 +193,7 @@
"Logout": "Wylogowanie",
"MainMetrics": "Główne wskaźniki",
"Matches": "Pasuje",
- "MediumToHighTrafficItIsRecommendedTo": "Dla serwisów o średnim natężeniu ruchu, zaleca się przetwarzanie raportowania dziennego najwyżej do pół godziny (%s sekund) lub co godzinę (%s sekund).",
+ "MediumToHighTrafficItIsRecommendedTo": "Dla serwisów o średnim natężeniu ruchu, zaleca się przetwarzanie raportowania dziennego najwyżej do pół godziny (%1$s sekund) lub co godzinę (%2$s sekund).",
"Metadata": "Metadata",
"Metric": "Metryka",
"Metrics": "Metryki",
@@ -219,6 +221,7 @@
"NotDefined": "%s nie zdefiniowany",
"Note": "Uwagi",
"NotInstalled": "Niezainstalowany",
+ "NotRecommended": "niezalecane",
"NotValid": "%s nie jest poprawny",
"NumberOfVisits": "Ilość odwiedzin",
"NUsers": "%s użytkowników",
@@ -240,9 +243,12 @@
"OperationIsNot": "Nie jest",
"OperationLessThan": "mniej niż",
"OperationNotEquals": "Nie równa się",
+ "OperationStartsWith": "Zaczyna się od",
+ "OperationEndsWith": "Kończy się na",
"OptionalSmtpPort": "Opcjonalnie. Domyślnie jest to port 25 dla TLS SMTP niezaszyfrowanego, i 465 dla SSL SMTP.",
"Options": "Opcje",
- "OrCancel": "lub wykonaj %s krok wstecz %s",
+ "Or": "albo",
+ "OrCancel": "lub wykonaj %1$s krok wstecz %2$s",
"Others": "Pozostałe",
"Outlink": "Linki zewnętrzne",
"Outlinks": "Linki zewnętrzne",
@@ -250,9 +256,9 @@
"OverlayRowActionTooltipTitle": "Nakładka Otwarta Strona",
"Overview": "Przegląd",
"Pages": "Strony",
- "Pagination": "%s - %s z %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Parametr %s musi być liczbą całkowitą między %s a %s.",
+ "Pagination": "%1$s - %2$s z %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Parametr %1$s musi być liczbą całkowitą między %2$s a %3$s.",
"Password": "Hasło",
"Period": "Okres",
"Piechart": "Wykres kołowy",
@@ -273,6 +279,7 @@
"Quantity": "Ilość",
"RangeReports": "Niestandardowe zakresy dat",
"ReadThisToLearnMore": "%1$sPrzeczytaj to żeby wiedzieć więcej.%2$s",
+ "Recommended": "Zalecane",
"Refresh": "Odśwież",
"RefreshPage": "Odśwież stronę",
"RelatedReport": "Powiązany raport",
@@ -295,7 +302,7 @@
"Clear": "Wyczyść",
"SearchNoResults": "Brak wyników",
"SeeAll": "Zobacz wszystko",
- "SeeTheOfficialDocumentationForMoreInformation": "Zobacz w %soficjalnej dokumentacjin%s, aby uzyskać więcej informacji.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Zobacz w %1$soficjalnej dokumentacjin%2$s, aby uzyskać więcej informacji.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Wybierz \"Tak\", jeśli chcesz lub musisz wysyłać e-mail za pośrednictwem serwera nazw, zamiast lokalnej obsługi przez zintegrowaną funkcję poczty",
"Settings": "Konfiguracja",
@@ -315,10 +322,14 @@
"TagCloud": "Chmura Tagów",
"Tax": "Podatek",
"TimeAgo": "%s temu",
+ "TimeFormat": "Format czasu",
"TimeOnPage": "Czas na stronie",
"Total": "Ogólnie",
"TotalRatioTooltip": "To jest %1$s wszystkich %2$s %3$s.",
"TotalRevenue": "Przychody ogółem",
+ "TrackingScopeAction": "Akcja",
+ "TrackingScopePage": "Strona",
+ "TrackingScopeVisit": "Wizyta",
"TransitionsRowActionTooltipTitle": "Otwarte przejścia",
"TranslatorName": "<a href=\"http:\/\/eliteria.pl\">Remigiusz Waszkiewicz<\/a>, Marcin Kowol, Maciej Zawadziński, Artur Warchoł,AETERNUS, Tomasz Kornicki",
"UniquePurchases": "Unikalnych zakupów",
@@ -342,18 +353,22 @@
"Visitors": "Oglądający",
"VisitsWith": "Odwiedzin z %s",
"VisitorSettings": "Konfiguracje użytkownika",
+ "VisitType": "Typ wizyty",
"VisitTypeExample": "Przykładowo, aby wybrać wszystkich odwiedzających, którzy powrócili na serwis, włączając tych, którzy zakupili coś podczas poprzednich wizyt, zapytanie API będzie zawierać %s",
"Warning": "Ostrzeżenie",
+ "WarningPhpVersionXIsTooOld": "Wersja PHP %s której używasz osiągnęła swój Koniec Życia (EOL). Rekomandujemy aktualizację do aktualnej wersji, ponieważ używanie obecnej może narazić Cię na luki w zabezpieczeniach i błędy które zostały naprawione w nowszych wersjach PHP.",
+ "WarningPiwikWillStopSupportingPHPVersion": "Piwik przestanie wspierać PHP %1$s w następnej głownej wersji. Zaktualizuj PHP do przynajmniej PHP %2$s, zanim będzie za późno!",
"WarningFileIntegrityNoManifest": "Weryfikacja integralności plików nie mogła zostać przeprowadzona z powodu braku pliku manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "W przypadku wdrażania Piwik z Git, komunikat ten jest prawidłowy.",
"WarningFileIntegrityNoMd5file": "Weryfikacja integralności plików nie mogła zostać zakończona z powodu braku funkcji md5_file().",
- "WarningPasswordStored": "%sOstrzeżenie:%s To hasło zostanie zapisane w pliku konfiguracyjnym widocznym dla każdego, kto może mieć do niego dostęp.",
+ "WarningPasswordStored": "%1$sOstrzeżenie:%2$s To hasło zostanie zapisane w pliku konfiguracyjnym widocznym dla każdego, kto może mieć do niego dostęp.",
"Website": "Strona WWW",
"Weekly": "Tygodniowo",
"WeeklyReport": "tygodniowo",
"WeeklyReports": "Raporty tygodniowe",
"WellDone": "Dobra robota!",
"Widgets": "Interfejs widżetów",
+ "Widget": "Widget",
"XComparedToY": "%1$s w stosunku do %2$s",
"XFromY": "%1$s z %2$s",
"YearlyReport": "rocznie",
@@ -361,6 +376,7 @@
"YearsDays": "%1$s lat %2$s dni",
"Yes": "Tak",
"YouAreCurrentlyUsing": "Aktualnie używasz Piwik %s.",
+ "YouAreViewingDemoShortMessage": "Oglądasz demo aplikacji Piwik",
"YouMustBeLoggedIn": "Musisz się zalogować, by uzyskać dostęp do funkcji zasobów.",
"YourChangesHaveBeenSaved": "Twoje modyfikacje zostały zapisane pomyślnie."
},
@@ -379,7 +395,7 @@
"ChooseSegment": "Wybierz segment",
"ConfirmRemoveAccount": "Czy chcesz usunąć to konto?",
"DefaultReportDate": "Data raportu",
- "EmailUs": "Wyślij nam wiadomośc email",
+ "EmailUs": "Wyślij nam wiadomość email",
"EnableGraphsLabel": "Wyświetlanie wykresów",
"EvolutionGraph": "Graf Historyczny",
"HelpUsToImprovePiwikMobile": "Czy chcesz włączyć anonimowe śledzenie wykorzystania w Piwik Mobile?",
@@ -394,7 +410,7 @@
"NavigationBack": "Powrót",
"NetworkError": "Błąd sieci",
"NetworkErrorWithStatusCodeShort": "Błąd sieci %s",
- "NetworkNotReachable": "Sieć nie osiągalna",
+ "NetworkNotReachable": "Sieć nieosiągalna",
"NoAccountIsSelected": "Musisz wybrać konto. Dodaj nowe konto jeśli go nie skonfigurowałeś.",
"NoDataShort": "Brak danych",
"NoPiwikAccount": "Brak konta Piwik?",
@@ -408,8 +424,9 @@
"IgnoreSslError": "Ignoruj błąd SSL",
"RatingDontRemindMe": "Nie przypominaj mi",
"RatingNotNow": "Nie teraz",
+ "RatingNow": "OK, ocenię to teraz",
"ReleaseToRefresh": "Puść aby odświeżyć...",
- "Reloading": "Przeładowanie...",
+ "Reloading": "Przeładowywanie...",
"RestrictedCompatibility": "Ograniczona kompatybilność",
"SaveSuccessError": "Prosimy sprawdzić ustawienia konfiguracyjne",
"SearchWebsite": "Przeszukuj witryny",
@@ -424,7 +441,7 @@
"AvailableMetrics": "Dostępne wskaźniki",
"CompareRows": "Porównaj rekordy",
"ComparingRecords": "Porównywanych wierszy %s",
- "MetricBetweenText": "od %s do %s",
+ "MetricBetweenText": "od %1$s do %2$s",
"MetricsFor": "Metryka dla %s",
"MultiRowEvolutionTitle": "Postęp dla wielu rekordów",
"PickAnotherRow": "Wybierz inny wiersz do porównania",
diff --git a/lang/pt-br.json b/lang/pt-br.json
index 2bed8292e5..9d55d2908d 100644
--- a/lang/pt-br.json
+++ b/lang/pt-br.json
@@ -15,7 +15,7 @@
"API": "API",
"Apply": "Aplicar",
"ArchivingInlineHelp": "Para sites com tráfego de médio a alto, é recomendado desabilitar a trigger que salva do navegador. Em vez disso, nós recomendamos que instale um cron job para processar os relatorios Piwik a cada hora.",
- "ArchivingTriggerDescription": "Recomendado para instalações maiores do Piwik, precisa de %s configurar um cron job%s para processar os relatórios automaticamente.",
+ "ArchivingTriggerDescription": "Recomendado para instalações maiores do Piwik, você precisa %1$sconfigurar um trabalho cron%2$s para processar os relatórios automaticamente.",
"AuthenticationMethodSmtp": "Método de autenticação para SMTP",
"AverageOrderValue": "Média de Pedidos",
"AveragePrice": "Média de Preço",
@@ -27,10 +27,9 @@
"CannotUnzipFile": "Não pode descompactar o arquivo %1$s: %2$s",
"ChangePassword": "Modificar senha",
"ChangeTagCloudView": "Por favor, note que você pode ver o relatório de outras maneiras além de uma nuvem de tags. Utilize os controles na parte inferior do relatório para modificá-lo.",
- "ChooseDate": "Escolha a Data",
+ "ChooseDate": "Escolha a data, a data atualmente selecionada é: %s",
"ChooseLanguage": "Escolha o idioma.",
"ChoosePeriod": "Escolha o período.",
- "ChooseWebsite": "Escolha o site",
"ClickHere": "Clique aqui para mais informações.",
"ClickToChangePeriod": "Clique novamente para alterar o período.",
"Close": "Fechar",
@@ -84,9 +83,11 @@
"ColumnViewedAfterSearchDocumentation": "O número de vezes que esta página foi visitada depois que um visitante fez uma pesquisa em seu site, e clicou nesta página nos resultados de pesquisa.",
"ColumnVisitDuration": "Duração da Visita em segundos",
"ColumnVisitsWithConversions": "Visitas com conversões",
- "ConfigFileIsNotWritable": "O arquivo %s de configuração Piwik não é editável, suas mudanças não serão salvas. %s por favor mude as permissões da configuração do arquivo para fazê-lo editável.",
+ "ConfigFileIsNotWritable": "O arquivo %1$s de configuração Piwik não é editável, algumas de suas alterações podem não ser salvas. %2$s Por favor, altere as permissões do arquivo de configuração para torná-lo editável.",
"Continue": "Continuar",
"ContinueToPiwik": "Continua no Piwik",
+ "CurrentlyUsingUnsecureHttp": "Atualmente você está usando Piwik com HTTP não segura, o que pode ser arriscado. Nós recomendamos que você configure Piwik com SSL (HTTPS) para melhorar a segurança.",
+ "CreatedByUser": "criado por %s",
"CurrentMonth": "Mês atual",
"CurrentWeek": "Semana atual",
"CurrentYear": "Ano atual",
@@ -100,7 +101,7 @@
"Date": "Data",
"DateRange": "Entre as datas:",
"DateRangeFrom": "De",
- "DateRangeFromTo": "De %s para %s",
+ "DateRangeFromTo": "De %1$s para %2$s",
"DateRangeInPeriodList": "período",
"DateRangeTo": "Para",
"DaysHours": "%1$s dias %2$s horas",
@@ -133,30 +134,30 @@
"Edit": "Editar",
"EncryptedSmtpTransport": "Digite a criptografia de camada de transporte exigida pelo servidor SMTP.",
"Error": "Erro",
- "ErrorRequest": "Oops ... houve um problema durante a solicitação. Talvez o servidor teve um problema temporário, ou você solicitou um relatório com muitos dados. Por favor, tente novamente. Se este erro ocorrer repetidamente, por favor entre em %scontato com seus administradores do Piwik%s para obter assistência.",
+ "ErrorRequest": "Oops... houve um problema durante a solicitação. Talvez o servidor tenha tido um problema temporário ou talvez você tenha solicitado um relatório com dados demais. Por favor, tente novamente. Se esse erro ocorrer repetidamente, por favor %1$scontate o seu administrador do Piwik%2$s para assistência.",
"EvolutionOverPeriod": "Evolução no Período",
"EvolutionSummaryGeneric": "%1$s em %2$s em relação ao %3$s em %4$s. Evolução: %5$s",
- "ExceptionContactSupportGeneric": "Se você continuar experimentando esse erro, entre em %scontato com seu administrador%s Piwik para suporte.",
+ "ExceptionContactSupportGeneric": "Se você ainda tiver esse problema, por favor %1$scontate o seu administrador Piwik%2$s para assistência.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "O usuário precisa ter permissão de Super Usuário ou ser o próprio: '%s'.",
"ExceptionConfigurationFileNotFound": "O ficheiro de configuração {%s} não foi encontrado.",
- "ExceptionConfigurationFileNotFound2": "Se o arquivo existe, por favor verifique se %s é legível pelo usuário '%s'.",
+ "ExceptionConfigurationFileNotFound2": "Se o arquivo existir, por favor verifique se %1$s é legível pelo usuário '%2$s'.",
"ExceptionDatabaseVersion": "Sua %1$s versão é %2$s mas o Piwik requer no mínimo %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Sua base de código Piwik está executando a versão antiga %1$s e foi detectado que seu banco de dados Piwik já foi atualizado para a nova versão %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Talvez seus administradores do Piwik estejam atualmente terminando o processo de atualização. Por favor, tente novamente em alguns minutos.",
"ExceptionFileIntegrity": "Check de inegridade falhou: %s.",
"ExceptionFilesizeMismatch": "Tamanho do arquivo incompatível: %1$s (esperado: %2$s, encontrado: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Sua %1$s client version é %2$s que é incompatível com a versão do servidor %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Formato de relatórios agregados '%s' não é válido. Tente um dos seguintes: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "O formato de relatórios agregados '%1$s' não é válido. Tente um dos seguintes: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "O tempo de arquivamento para hoje tem de ser um número de segundos maior do que zero.",
- "ExceptionInvalidDateFormat": "O formato da data tem de ser: %s ou alguma das palavras-chave suportadas pela função %s (ver %s para mais informações)",
- "ExceptionInvalidDateRange": "A data %s não está numa gama de datas correcta. Deverá ter o seguinte formato: %s.",
- "ExceptionInvalidPeriod": "O periodo '%s' não é suportado. Tente algum dos seguintes como alternativa: %s",
- "ExceptionInvalidRendererFormat": "Formato de renderização '%s' não válido. Tente algum dos seguintes como alternativa: %s",
- "ExceptionInvalidReportRendererFormat": "Formato do relatório '%s' não é válido. Tente um dos seguintes:%s.",
- "ExceptionInvalidStaticGraphType": "Tipo de gráfico estático '%s' não é válido. Tente um dos seguintes: %s.",
+ "ExceptionInvalidDateFormat": "O formato da data deve ser: %1$s ou alguma das palavras chave suportadas pela função %2$s (veja %3$s para mais informações)",
+ "ExceptionInvalidDateRange": "A data '%1$s' não é um intervalo de data correta. Deve ter o seguinte formato: %2$s.",
+ "ExceptionInvalidPeriod": "O período '%1$s' não é suportado. Tente algum dos seguintes: %2$s",
+ "ExceptionInvalidRendererFormat": "O formato de renderização '%1$s' não válido. Tente algum dos seguintes: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "O formato de relatório '%1$s' não é válido. Tente algum dos seguintes: %2$s.",
+ "ExceptionInvalidStaticGraphType": "O tipo de gráfico estático '%1$s' não é válido. Tente um dos seguintes: %2$s.",
"ExceptionInvalidToken": "O token não é válido.",
"ExceptionLanguageFileNotFound": "Ficheiro de idioma %s não encontrado.",
- "ExceptionMethodNotFound": "O método '%s' não existe ou não está disponível no módulo '%s'.",
+ "ExceptionMethodNotFound": "O método '%1$s' não existe ou não está disponível no módulo '%2$s'.",
"ExceptionMissingFile": "Arquivo faltando: %s.",
"ExceptionNonceMismatch": "Não conseguiria verificar a segurança tomada nesse modelo.",
"ExceptionPrivilege": "Não pode aceder a este recurso uma vez que ele requer um acesso %s.",
@@ -164,7 +165,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Não pode aceder a este recurso uma vez que ele requer um acesso %s para pelo menos um site.",
"ExceptionUnableToStartSession": "Não foi possível iniciar a sessão.",
"ExceptionUndeletableFile": "Impossível de apagar %s",
- "ExceptionUnreadableFileDisabledMethod": "O ficheiro de configuração {%s} não pôde ser lido. O seu alojamento pode ter destivado %s.",
+ "ExceptionUnreadableFileDisabledMethod": "O arquivo de configuração {%1$s} não pôde ser lido. O seu host pode ter destivado %2$s.",
"ExceptionReportNotFound": "O relatório solicitado não existe.",
"ExceptionWidgetNotFound": "O widget solicitado não existe.",
"ExceptionReportNotEnabled": "O relatório solicitado não está habilitado. Geralmente isto significa que o plugin que define o relatório está desativado ou você não tem permissão suficiente para acessar o mesmo.",
@@ -212,7 +213,7 @@
"Logout": "Sair",
"MainMetrics": "Métricas principais",
"Matches": "Equivalências",
- "MediumToHighTrafficItIsRecommendedTo": "Para sites com tráfego de médio a alto, nós recomendamos processar relatórios diariamente no máximo a cada meia hora(%s segundos)ou toda hora (%s segundos).",
+ "MediumToHighTrafficItIsRecommendedTo": "Para sites com tráfego de médio a alto, nós recomendamos processar relatórios diários no máximo a cada meia hora (%1$s segundos) ou a cada hora (%2$s segundos).",
"Metadata": "Metadados",
"Metric": "Métrica",
"Metrics": "Métricas",
@@ -230,6 +231,7 @@
"Name": "Nome",
"NbActions": "Número de Ações",
"NbSearches": "Número de Pesquisas internas",
+ "NeedMoreHelp": "Precisa de mais ajuda?",
"Never": "Nunca",
"NewReportsWillBeProcessedByCron": "Quando o arquivamento do Piwik não for iniciado pelo navegador, novos relatórios irão ser processados pelo crontab.",
"NewUpdatePiwikX": "Nova atualização: Piwik %s",
@@ -269,7 +271,7 @@
"OptionalSmtpPort": "Opcional. O padrão é 25 para não criptografadas e TLS SMTP, e 465 para SMTP SSL.",
"Options": "Opções",
"Or": "ou",
- "OrCancel": "ou %s Cancele %s",
+ "OrCancel": "or %1$s Cancelar %2$s",
"Others": "Outros",
"Outlink": "Saída",
"Outlinks": "Links externos",
@@ -277,9 +279,9 @@
"OverlayRowActionTooltipTitle": "Sobreposição de Página aberta",
"Overview": "Visão Geral",
"Pages": "Páginas",
- "Pagination": "%s - %s de %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "O parâmetro %s deve ser um valor inteiro entre %s e %s.",
+ "Pagination": "%1$s - %2$s de %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "O parâmetro %1$s deve ser um valor inteiro entre %2$s e %3$s.",
"Password": "Senha",
"Period": "Período",
"Piechart": "Gráfico circular",
@@ -331,7 +333,7 @@
"Clear": "Limpar",
"SearchNoResults": "sem resultados",
"SeeAll": "Ver todos",
- "SeeTheOfficialDocumentationForMoreInformation": "Veja a %s documentação oficial%s para mais informações.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Veja a %1$sdocumentação oficial%2$s para mais informações.",
"SeeThisFaq": "Veja %1$sEste faq%2$s.",
"Segment": "Segmento",
"SelectYesIfYouWantToSendEmailsViaServer": "Selecione \"Sim\" se pretende ou precisa de enviar email através de um nome de servidor em vez de usar a função de email local.",
@@ -358,7 +360,7 @@
"Total": "Total",
"TotalRatioTooltip": "Este é %1$s de todos os %2$s %3$s.",
"TotalRevenue": "Total de Revendas",
- "TotalVisitsPageviewsActionsRevenue": "(Total: %s visitas , %s exibições de página, %s actions, %s receita)",
+ "TotalVisitsPageviewsActionsRevenue": "(Total: %1$s visitas, %2$s visualizações, %3$s ações, %4$s receita)",
"TrackingScopeAction": "Ação",
"TrackingScopePage": "Página",
"TrackingScopeVisit": "Visita",
@@ -395,8 +397,8 @@
"WarningFileIntegrityNoManifest": "O check de integridade do arquivo não pode ser feita enquanto estiver faltando manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Se você estiver implantando Piwik a partir do repositório Git, esta mensagem é normal.",
"WarningFileIntegrityNoMd5file": "O check de integridade do arquivo não pode ser completado enquanto estiver faltando a função md5_file().",
- "WarningPasswordStored": "%sAviso:%s Esta senha será armazenada no arquivo de configuração, visível para todos que puderem acessá-lo.",
- "WarningDebugOnDemandEnabled": "O modo Tracker %s está ativado. Por razões de segurança, este deve ser ativado apenas por um curto espaço de tempo. Para desativá-lo configure %s para %s em %s",
+ "WarningPasswordStored": "%1$sWarning:%2$s Esta senha será armazenada no arquivo de configuração visível para todos que possam acessá-lo.",
+ "WarningDebugOnDemandEnabled": "O modo Tracker %1$s está ativado. Por razões de segurança, este deve ser ativado apenas por um curto período de tempo. Para desativá-lo configure %2$s para %3$s em %4$s",
"Website": "Website",
"Weekly": "Semanalmente",
"WeeklyReport": "semanal",
@@ -450,7 +452,7 @@
"MultiChartLabel": "Mostrar sparklines",
"NavigationBack": "Voltar",
"NetworkError": "Erro de Rede",
- "NetworkErrorWithStatusCode": "Houve um erro \"%s\". O pedido devolveu o status de \"%s\". URL era \"%s\". Por favor, verifique a sua URL digitada e os logs de erro no servidor para obter mais informações sobre o erro e como resolvê-lo.",
+ "NetworkErrorWithStatusCode": "Houve um erro \"%1$s\". O pedido retornou o status como \"%2$s\". URL foi \"%3$s\". Por favor, verifique a URL inserida e os logs de erro no servidor para obter mais informações sobre o erro e como resolvê-lo.",
"NetworkErrorWithStatusCodeShort": "Erro de Conexão %s",
"NetworkNotReachable": "Rede não encontrada",
"NoAccountIsSelected": "Você tem que selecionar uma conta, ou Adicionar uma nova conta se você não tiver uma configurada.",
@@ -468,7 +470,7 @@
"RatingDontRemindMe": "Não me lembrar",
"RatingNotNow": "Não agora",
"RatingNow": "OK, vou avaliá-lo agora",
- "RatingPleaseRateUs": "Piwik Mobile App é um Software Livre, nós realmente apreciamos se você tirar um minuto para avaliar a aplicação do %s. Se você tiver sugestões de novas funcionalidades ou relatórios de bugs, por favor, entre em contato %s '",
+ "RatingPleaseRateUs": "O Piwik Mobile App é um software livre, nós realmente apreciaremos se você tomar um minuto para avaliar o aplicativo na %1$s. Se você tiver sugestões de recursos ou relatórios de novos erros, entre em contato %2$s",
"ReleaseToRefresh": "Solte para recarregar...",
"Reloading": "Recarregar...",
"RequestTimedOutShort": "Tempo limite de Rede atingido!",
@@ -493,7 +495,7 @@
"CompareRows": "Comparar registros",
"ComparingRecords": "Comparando %s registros",
"Documentation": "Clique nas métricas para exibi-las no gráfico de grande evolução. Use Shift + clique para exibir multiplas métricas de uma só vez.",
- "MetricBetweenText": "entre %s e %s",
+ "MetricBetweenText": "de %1$s para %2$s",
"MetricChangeText": "%s altera ao longo do período",
"MetricMinMax": "%1$s intervalado entre %2$s e %3$s está fora do período",
"MetricsFor": "Metricas para %s",
diff --git a/lang/pt.json b/lang/pt.json
index 81f95be161..7232021e7c 100644
--- a/lang/pt.json
+++ b/lang/pt.json
@@ -11,7 +11,7 @@
"And": "e",
"API": "API",
"ArchivingInlineHelp": "Para websites de tráfego médio ou elevado, é recomendado desactivar o arquivar de Piwik de ser accionado quando os relatórios são vistos no navegador. Em vez disso, recomendamos que configure uma tarefa cron para processar os relatórios de Piwik cada hora.",
- "ArchivingTriggerDescription": "Recomendado para instalações Piwik maiores, tem que %sconfigurar uma tarefa cron%s para processar os relatórios automaticamente.",
+ "ArchivingTriggerDescription": "Recomendado para instalações Piwik maiores, tem que %1$sconfigurar uma tarefa cron%2$s para processar os relatórios automaticamente.",
"AuthenticationMethodSmtp": "Método de autenticação SMTP",
"AverageOrderValue": "Valor médio dos pedidos",
"AveragePrice": "Preço Médio",
@@ -22,10 +22,8 @@
"CannotUnzipFile": "Não é possivel extrair o ficheiro unzip %1$s: %2$s",
"ChangePassword": "Alterar palavra-passe",
"ChangeTagCloudView": "Por favor note que pode visualizar relatórios de outras formas além das tag clouds. Use os menus no fundo do relatório para o fazer.",
- "ChooseDate": "Escolha data",
"ChooseLanguage": "Escolha o idioma",
"ChoosePeriod": "Escolha o período",
- "ChooseWebsite": "Escolha o website",
"ClickHere": "Clique aqui para mais informação.",
"Close": "Fechar",
"ColumnActionsPerVisit": "Acções por Visita",
@@ -70,7 +68,7 @@
"ColumnValuePerVisit": "Valor por Visita",
"ColumnVisitDuration": "Duração da visita (em segundos)",
"ColumnVisitsWithConversions": "Visitas com Conversões",
- "ConfigFileIsNotWritable": "O ficheiro de configuração de Piwik %s não é modificável, as suas alteração não serão guardadas. %s Por favor altere as permissões do ficheiro de configuração para ser modificável.",
+ "ConfigFileIsNotWritable": "O ficheiro de configuração de Piwik %1$s não é modificável, as suas alteração não serão guardadas. %2$s Por favor altere as permissões do ficheiro de configuração para ser modificável.",
"ContinueToPiwik": "Voltar a Piwik",
"CurrentMonth": "Mês Actual",
"CurrentWeek": "Semana Actual",
@@ -83,7 +81,7 @@
"Date": "Data",
"DateRange": "Intervalo de data:",
"DateRangeFrom": "De",
- "DateRangeFromTo": "De %s até %s",
+ "DateRangeFromTo": "De %1$s até %2$s",
"DateRangeTo": "Até",
"DaysHours": "%1$s dias %2$s horas",
"DaysSinceFirstVisit": "Dias desde a primeira visita",
@@ -115,16 +113,16 @@
"ExceptionFileIntegrity": "Verificação de integridade falhou: %s",
"ExceptionFilesizeMismatch": "Tamanho do ficheiro não corresponde: %1$s (tamanho esperado: %2$s, encontrado: %3$s)",
"ExceptionIncompatibleClientServerVersions": "A sua versão cliente de %1$s é %2$s que é incompatível com a versão servidor %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "O formato agregado do relatório '%s' não é válido. Em alternativa tente alguns dos seguintes: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "O formato agregado do relatório '%1$s' não é válido. Em alternativa tente alguns dos seguintes: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "O tempo de vida do arquivo tem que ser um número de segundos maior que zero.",
- "ExceptionInvalidDateFormat": "O formato da data tem que ser: %s ou qualquer palavra-chave suportada pela função %s (veja %s para mais informação)",
- "ExceptionInvalidDateRange": "A data '%s' não é um intervalo de data correcto. Deve ter o seguinte formato: %s.",
- "ExceptionInvalidPeriod": "O período '%s' não é suportado. Tente um dos seguintes: %s",
- "ExceptionInvalidRendererFormat": "Formato de renderização '%s' não é válido. Tente um dos seguintes: %s.",
- "ExceptionInvalidReportRendererFormat": "O formato do relatório '%s' não é válido. Em alternativa tente alguns dos seguintes: %s.",
+ "ExceptionInvalidDateFormat": "O formato da data tem que ser: %1$s ou qualquer palavra-chave suportada pela função %2$s (veja %3$s para mais informação)",
+ "ExceptionInvalidDateRange": "A data '%1$s' não é um intervalo de data correcto. Deve ter o seguinte formato: %2$s.",
+ "ExceptionInvalidPeriod": "O período '%1$s' não é suportado. Tente um dos seguintes: %2$s",
+ "ExceptionInvalidRendererFormat": "Formato de renderização '%1$s' não é válido. Tente um dos seguintes: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "O formato do relatório '%1$s' não é válido. Em alternativa tente alguns dos seguintes: %2$s.",
"ExceptionInvalidToken": "O símbolo não é válido.",
"ExceptionLanguageFileNotFound": "O ficheiro de idioma '%s' não foi encontrado.",
- "ExceptionMethodNotFound": "O método '%s' não existe ou não está disponível no módulo '%s'.",
+ "ExceptionMethodNotFound": "O método '%1$s' não existe ou não está disponível no módulo '%2$s'.",
"ExceptionMissingFile": "Falta o ficheiro: %s",
"ExceptionNonceMismatch": "Não foi possível verificar o símbolo de segurança deste formulário.",
"ExceptionPrivilege": "Não pode aceder a este recurso porque necessita de acesso %s.",
@@ -132,7 +130,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Não pode aceder a este recurso porque necessita de acesso %s pelo menos para um website.",
"ExceptionUnableToStartSession": "Não foi possível começar a sessão.",
"ExceptionUndeletableFile": "Não é possível eliminar %s",
- "ExceptionUnreadableFileDisabledMethod": "Não foi possível ler o ficheiro de configuração {%s}. O seu host pode ter desactivado %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Não foi possível ler o ficheiro de configuração {%1$s}. O seu host pode ter desactivado %2$s.",
"Export": "Exportar",
"ExportAsImage": "Exportar como Imagem",
"ExportThisReport": "Exportar estes dados noutros formatos",
@@ -161,7 +159,7 @@
"Locale": "pt_PT.UTF-8",
"Logout": "Sair",
"MainMetrics": "Dados Principais",
- "MediumToHighTrafficItIsRecommendedTo": "Para websites com tráfego médio ou elevado, recomendamos que processe os relatórios de hoje no máximo cada meia hora (%s segundos) ou de hora em hora (%s segundos).",
+ "MediumToHighTrafficItIsRecommendedTo": "Para websites com tráfego médio ou elevado, recomendamos que processe os relatórios de hoje no máximo cada meia hora (%1$s segundos) ou de hora em hora (%2$s segundos).",
"Metadata": "Meta-dados",
"Metric": "Métrica",
"Metrics": "Métricas",
@@ -194,14 +192,14 @@
"OnlyUsedIfUserPwdIsSet": "Apenas utilizado se um utilizador\/palavra-passe estiver definido, pergunte ao seu fornecedor se não tiver a certeza que método deve usar.",
"OpenSourceWebAnalytics": "Análise Web de código livre",
"OptionalSmtpPort": "Opcional. Por omissão é 25 para ligações não encriptadas e TLS SMTP, e 465 para SSL SMTP.",
- "OrCancel": "ou %s Cancelar %s",
+ "OrCancel": "ou %1$s Cancelar %2$s",
"Others": "Outros",
"Outlink": "Link de saída",
"Outlinks": "Links de saída",
"Overview": "Visão Geral",
"Pages": "Páginas",
- "Pagination": "%s - %s de %s",
- "ParameterMustIntegerBetween": "O parâmetro %s tem que ser um valor inteiro entre %s e %s.",
+ "Pagination": "%1$s - %2$s de %3$s",
+ "ParameterMustIntegerBetween": "O parâmetro %1$s tem que ser um valor inteiro entre %2$s e %3$s.",
"Password": "Palavra-passe",
"Period": "Período",
"Piechart": "Gráfico Circular",
@@ -232,7 +230,7 @@
"Search": "Pesquisar",
"Clear": "Limpar",
"SearchNoResults": "sem resultados",
- "SeeTheOfficialDocumentationForMoreInformation": "Veja a %sdocumentação oficial%s para mais informação",
+ "SeeTheOfficialDocumentationForMoreInformation": "Veja a %1$sdocumentação oficial%2$s para mais informação",
"SelectYesIfYouWantToSendEmailsViaServer": "Seleccione \"Sim\" se quer ou tem de enviar e-mail através de um servidor nomeado em vez da função de mail local.",
"Settings": "Definições",
"Shipping": "Expedição",
@@ -279,7 +277,7 @@
"Warning": "Aviso",
"WarningFileIntegrityNoManifest": "A verificação da integridade dos ficheiros não pode ser executada devido a faltar manifest.inc.php.",
"WarningFileIntegrityNoMd5file": "A verificação da integridade dos ficheiros não pode ser completada devido faltar a função md5_file().",
- "WarningPasswordStored": "%sAviso:%s Esta palavra-passe será guardada no ficheiro de configuração, visível para qualquer pessoa que o possa aceder.",
+ "WarningPasswordStored": "%1$sAviso:%2$s Esta palavra-passe será guardada no ficheiro de configuração, visível para qualquer pessoa que o possa aceder.",
"Website": "Website",
"Weekly": "Semanalmente",
"WeeklyReport": "semanal",
@@ -318,7 +316,7 @@
"RowEvolution": {
"AvailableMetrics": "Métricas disponíveis",
"CompareRows": "Comparar registos",
- "MetricBetweenText": "de %s a %s",
+ "MetricBetweenText": "de %1$s a %2$s",
"MetricsFor": "Métricas para %s",
"PickAnotherRow": "Escolha outra linha para comparar",
"PickARow": "Escolher um registo para comparação"
diff --git a/lang/ro.json b/lang/ro.json
index 3e84cf952a..ee042e57e6 100644
--- a/lang/ro.json
+++ b/lang/ro.json
@@ -11,7 +11,7 @@
"And": "şi",
"API": "API",
"ArchivingInlineHelp": "Pentru site-uri cu trafic mediu sau mare, este recomandata dezactivarea arhivari Piwik din browser. Recomandat sa faceti setup la un cron job pentru a procesa rapoarte Piwik in fiecare ora",
- "ArchivingTriggerDescription": "Recomandat pentru instalari mari, trebuie sa %ssetup un cron job%s pentru procesarea automata a rapoartelor",
+ "ArchivingTriggerDescription": "Recomandat pentru instalari mari, trebuie sa %1$ssetup un cron job%2$s pentru procesarea automata a rapoartelor",
"AuthenticationMethodSmtp": "Metoda autentificare pentru SMTP",
"AverageOrderValue": "Valoare medie a comenzii",
"AveragePrice": "Pret mediu",
@@ -23,10 +23,8 @@
"CannotUnzipFile": "Nu se poate dezarhiva fisierul %1$s: %2$s",
"ChangePassword": "Schimbă parola",
"ChangeTagCloudView": "Va rugam notati, puteti vizualiza rapoartele in alte feluri, pe langa tag cloud. Folositi controalele din josul raportului pentru a face asta",
- "ChooseDate": "Alege data",
"ChooseLanguage": "Alege limba",
"ChoosePeriod": "Alegeti interval",
- "ChooseWebsite": "Alegeti website",
"ClickHere": "Click aici pentru mai multe informatii",
"ClickToChangePeriod": "Click iarasi pentru a schimba perioada.",
"Close": "Inchide",
@@ -78,7 +76,7 @@
"ColumnViewedAfterSearchDocumentation": "De câte ori această pagină a fost vizitat după ce un vizitator a făcut o căutare pe website-ul tau, și a făcut clic pe această pagină în rezultatele de căutare.",
"ColumnVisitDuration": "Durata vizita (in secunde)",
"ColumnVisitsWithConversions": "Vizite cu conversii",
- "ConfigFileIsNotWritable": "Fişierul de configurare %s Piwik nu se poate scrie, e posibil ca o parte din modificările tale să nu se fi salvat. %s Schimbă permisiile fişierului de configurare pentru a-l putea modifica.",
+ "ConfigFileIsNotWritable": "Fişierul de configurare %1$s Piwik nu se poate scrie, e posibil ca o parte din modificările tale să nu se fi salvat. %2$s Schimbă permisiile fişierului de configurare pentru a-l putea modifica.",
"Continue": "Continuă",
"ContinueToPiwik": "Continuă către Piwik",
"CurrentMonth": "Luna curenta",
@@ -94,7 +92,7 @@
"Date": "Data",
"DateRange": "Interval:",
"DateRangeFrom": "De la",
- "DateRangeFromTo": "De la %s la %s",
+ "DateRangeFromTo": "De la %1$s la %2$s",
"DateRangeTo": "la",
"DaysHours": "%1$s zile %2$s ore",
"DaysSinceFirstVisit": "Zile de la prima vizita",
@@ -134,17 +132,17 @@
"ExceptionFileIntegrity": "A esuat verificare integritatii: %s",
"ExceptionFilesizeMismatch": "Nepotrivire la marime fisierului: %1$s (marime asteptata: %2$s, gasita: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Versiunea clientului dvs. %1$s este %2$s, care este incompatibila cu versiunea de pe server, %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Formatul rapoartelor agregate '%s' este invalid. Incercati-l pe oricare dintre acestea: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Formatul rapoartelor agregate '%1$s' este invalid. Incercati-l pe oricare dintre acestea: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Timpul de arhivare trebuie sa fie un numar de secunde mai mare de 0",
- "ExceptionInvalidDateFormat": "Formatul datei trebuie sa fie: %s sau alt cuvant cheie suportat de functia %s (vedeti %s pentru mai multe informatii)",
- "ExceptionInvalidDateRange": "Data '%s' nu este un interval corect. Ar trebui sa aiba urmatorul format: %s.",
- "ExceptionInvalidPeriod": "Perioada '%s' nu este suportata. Incercati-o pe oricare dintre acestea: %s.",
- "ExceptionInvalidRendererFormat": "Formatul '%s' este invalid. Incercati-l pe oricare dintre acestea: %s.",
- "ExceptionInvalidReportRendererFormat": "Formatul raportului '%s' este invalid. Incercati-l pe oricare dintre acestea: %s.",
- "ExceptionInvalidStaticGraphType": "Tipul graficului static '%s' nu este valid. Încearcă unul din următoarele: %s.",
+ "ExceptionInvalidDateFormat": "Formatul datei trebuie sa fie: %1$s sau alt cuvant cheie suportat de functia %2$s (vedeti %3$s pentru mai multe informatii)",
+ "ExceptionInvalidDateRange": "Data '%1$s' nu este un interval corect. Ar trebui sa aiba urmatorul format: %2$s.",
+ "ExceptionInvalidPeriod": "Perioada '%1$s' nu este suportata. Incercati-o pe oricare dintre acestea: %2$s.",
+ "ExceptionInvalidRendererFormat": "Formatul '%1$s' este invalid. Incercati-l pe oricare dintre acestea: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Formatul raportului '%1$s' este invalid. Incercati-l pe oricare dintre acestea: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Tipul graficului static '%1$s' nu este valid. Încearcă unul din următoarele: %2$s.",
"ExceptionInvalidToken": "Token invalid",
"ExceptionLanguageFileNotFound": "Fişierul de limba '%s' nu a fost găsit.",
- "ExceptionMethodNotFound": "Metoda '%s' nu exista sau nu e valabila in modulul '%s'.",
+ "ExceptionMethodNotFound": "Metoda '%1$s' nu exista sau nu e valabila in modulul '%2$s'.",
"ExceptionMissingFile": "Fisier lipsa: %s",
"ExceptionNonceMismatch": "Nu a putut fi verificat token-ul de securitate in acest formular",
"ExceptionPrivilege": "Nu puteti accesa resursa pentru ca necesita acces la %s",
@@ -152,7 +150,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Nu puteti accesa resursa pentru ca necesita acces %s pentru cel putin un site",
"ExceptionUnableToStartSession": "Sesiunea nu a putut fi pornita",
"ExceptionUndeletableFile": "Nu s-a putut sterge %s",
- "ExceptionUnreadableFileDisabledMethod": "Fisierul de configurare {%s} nu a putut fi citit. Hosting-ul dvs. ar fi putut dezactiva %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Fisierul de configurare {%1$s} nu a putut fi citit. Hosting-ul dvs. ar fi putut dezactiva %2$s.",
"ExpandDataTableFooter": "Schimba vizualizarea sau configura raportul",
"Export": "Exporta",
"ExportAsImage": "Exporta ca imagine",
@@ -195,7 +193,7 @@
"Logout": "Ieşire",
"MainMetrics": "Metrici principali",
"Matches": "Meciuri",
- "MediumToHighTrafficItIsRecommendedTo": "Pentru site-uri cu trafic mediu sau mare, este recomandata procesarea rapoartelor la fiecare jumate de ora (%s secunde) sau ora (%s secunde)",
+ "MediumToHighTrafficItIsRecommendedTo": "Pentru site-uri cu trafic mediu sau mare, este recomandata procesarea rapoartelor la fiecare jumate de ora (%1$s secunde) sau ora (%2$s secunde)",
"Metadata": "Metadata",
"Metric": "Metric",
"Metrics": "Metrice",
@@ -247,7 +245,7 @@
"OperationNotEquals": "diferite",
"OptionalSmtpPort": "Optional. Prestabilit la 25 pentru neecriptat si TLS SMTP, si 465 pentru SSL SMTP.",
"Options": "Opţiuni",
- "OrCancel": "sau %s Anuleaza %s",
+ "OrCancel": "sau %1$s Anuleaza %2$s",
"Others": "Altele",
"Outlink": "Link extern",
"Outlinks": "Outlink-uri",
@@ -255,8 +253,8 @@
"OverlayRowActionTooltipTitle": "Deschide Page Overlay",
"Overview": "Rezumat",
"Pages": "Pagini",
- "Pagination": "%s - %s of %s",
- "ParameterMustIntegerBetween": "Parametrul %s trebuie sa fie o valoare intreaga intre %s si %s.",
+ "Pagination": "%1$s - %2$s of %3$s",
+ "ParameterMustIntegerBetween": "Parametrul %1$s trebuie sa fie o valoare intreaga intre %2$s si %3$s.",
"Password": "Parola",
"Period": "Perioada",
"Piechart": "Diagrama",
@@ -302,7 +300,7 @@
"Search": "Cauta",
"SearchNoResults": "Nici un rezultat",
"SeeAll": "vezi tot",
- "SeeTheOfficialDocumentationForMoreInformation": "Vedeti %sdocumentatie oficiala%s pentru mai multe informatii.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Vedeti %1$sdocumentatie oficiala%2$s pentru mai multe informatii.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Selectati \"Da\" daca vreti sa trimiteti email via serverul mentionat in locul functiei local mail",
"Settings": "Setări",
@@ -356,7 +354,7 @@
"WarningFileIntegrityNoManifest": "Verificare integritatii fisierelor nu a putut fi efectuata din cauza lipsei manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Dacă implementați Piwik din Git, acest mesaj este normal.",
"WarningFileIntegrityNoMd5file": "Verificare integritatii fisierelor nu a putut fi efectuata din cauza lipsei functiei md5_file()",
- "WarningPasswordStored": "%sAtentie:%s Parola va fi stocata in fisierul config vizibil oricui il poate accesa.",
+ "WarningPasswordStored": "%1$sAtentie:%2$s Parola va fi stocata in fisierul config vizibil oricui il poate accesa.",
"Website": "Website",
"Weekly": "Saptamanal",
"WeeklyReport": "săptămânal",
@@ -407,7 +405,7 @@
"MultiChartLabel": "Afișare Sparklines",
"NavigationBack": "Înapoi",
"NetworkError": "Eroare de reţea",
- "NetworkErrorWithStatusCode": "Nu a fost o eroare \"%s\". Cererea de revenitre la statusul \"%s\". URL-ul a fost \"%s\". Vă rugăm să verificați URL-ul dvs. si erorile de logare de pe acest server pentru mai multe informații despre eroare și cum să-l rezolve .",
+ "NetworkErrorWithStatusCode": "Nu a fost o eroare \"%1$s\". Cererea de revenitre la statusul \"%2$s\". URL-ul a fost \"%3$s\". Vă rugăm să verificați URL-ul dvs. si erorile de logare de pe acest server pentru mai multe informații despre eroare și cum să-l rezolve .",
"NetworkErrorWithStatusCodeShort": "Eroarea de reţea %s",
"NetworkNotReachable": "Reteaua nu este accesibila",
"NoAccountIsSelected": "Trebuie să selectați un cont. Adăugați un cont nou dacă nu ați configurat-o.",
@@ -422,7 +420,7 @@
"RatingDontRemindMe": "Nu-mi aminti",
"RatingNotNow": "Nu acum",
"RatingNow": "OK, il voi evalua acum",
- "RatingPleaseRateUs": "Piwik Mobile App este un software gratuit, ne-ar face placere dacă ați aloca 1 minut pentru a evalua aplicația în %s. Dacă aveți sugestii pentru noile caracteristici sau rapoarte de bug-uri, vă rugăm să contactați %s",
+ "RatingPleaseRateUs": "Piwik Mobile App este un software gratuit, ne-ar face placere dacă ați aloca 1 minut pentru a evalua aplicația în %1$s. Dacă aveți sugestii pentru noile caracteristici sau rapoarte de bug-uri, vă rugăm să contactați %2$s",
"ReleaseToRefresh": "Lansare pentru reimprospatare...",
"Reloading": "Reincarcare...",
"RequestTimedOutShort": "Eroare de rețea timp expirat",
@@ -446,7 +444,7 @@
"CompareRows": "Compara inregistrari",
"ComparingRecords": "Comparând %s rânduri",
"Documentation": "Faceți clic pe metrici pentru a le afișa în Graficul de mare evoluție. Utilizați Shift-clic pentru a afișa mai multe valori dintr-o dată.",
- "MetricBetweenText": "între %s şi %s",
+ "MetricBetweenText": "între %1$s şi %2$s",
"MetricChangeText": "%s schimba în perioada",
"MetricMinMax": "%1$s variat între %2$s și %3$s în perioada",
"MetricsFor": "Metrici pentru %s",
diff --git a/lang/ru.json b/lang/ru.json
index 18ba18e860..cd59aba81b 100644
--- a/lang/ru.json
+++ b/lang/ru.json
@@ -13,7 +13,7 @@
"API": "API-функции",
"Apply": "Применить",
"ArchivingInlineHelp": "Для сайтов со средней или высокой нагрузкой рекомендуется отменить архивирование данных при входе в веб-аналитику через браузер. Вместо этого лучше назначить cron-задачу, чтобы Piwik автоматически формировал отчеты каждый час.",
- "ArchivingTriggerDescription": "Для сайтов с высокой нагрузкой настоятельно рекомендуется %sназначить cron-задачу%s, которая будет формировать отчеты автоматически.",
+ "ArchivingTriggerDescription": "Для сайтов с высокой нагрузкой настоятельно рекомендуется %1$sназначить cron-задачу%2$s, которая будет формировать отчеты автоматически.",
"AuthenticationMethodSmtp": "Метод аутентификации SMTP",
"AverageOrderValue": "Средняя стоимость заказа",
"AveragePrice": "Средняя цена",
@@ -25,10 +25,8 @@
"CannotUnzipFile": "Не могу распаковать файл %1$s: %2$s",
"ChangePassword": "Изменить пароль",
"ChangeTagCloudView": "Учтите, что Вы можете просматривать отчет не только через облако тегов. Используйте элементы управления внизу отчета для переключения вариантов просмотра.",
- "ChooseDate": "Выбор даты",
"ChooseLanguage": "Выбрать язык",
"ChoosePeriod": "Выбрать период",
- "ChooseWebsite": "Выбрать сайт",
"ClickHere": "Нажмите здесь, чтобы узнать больше",
"ClickToChangePeriod": "Нажмите еще раз, чтобы изменить период.",
"Close": "Закрыть",
@@ -82,7 +80,7 @@
"ColumnViewedAfterSearchDocumentation": "Число раз, когда посетители посещали эту страницу после того, как они пользовались поиском на вашем сайте и кликнули по найденной странице.",
"ColumnVisitDuration": "Продолжительность посещения (сек)",
"ColumnVisitsWithConversions": "Повторные посещения",
- "ConfigFileIsNotWritable": "Файл конфигурации Piwik %s закрыт для записи, ваши изменения не будут сохранены. %s Пожалуйста, измените разрешения конфигурационного файла и разрешите запись в него.",
+ "ConfigFileIsNotWritable": "Файл конфигурации Piwik %1$s закрыт для записи, ваши изменения не будут сохранены. %2$s Пожалуйста, измените разрешения конфигурационного файла и разрешите запись в него.",
"Continue": "Продолжить",
"ContinueToPiwik": "Перейти к Piwik",
"CurrentMonth": "Текущий месяц",
@@ -98,7 +96,7 @@
"Date": "Дата",
"DateRange": "Временной период:",
"DateRangeFrom": "От",
- "DateRangeFromTo": "С %s по %s",
+ "DateRangeFromTo": "С %1$s по %2$s",
"DateRangeInPeriodList": "диапазон дат:",
"DateRangeTo": "До",
"DaysHours": "%1$s дн. %2$s час",
@@ -131,30 +129,30 @@
"Edit": "Редактировать",
"EncryptedSmtpTransport": "Выберите тип шифрования транспортном уровне, требуемое вашим SMTP сервером.",
"Error": "Ошибка",
- "ErrorRequest": "Ой... возникла проблема во время выполнения запроса. Возможно причиной тому временная проблема на сервере, или Вами был запрошен отчет, содержащий большой объем данных. Пожалуйста, повторите попытку. Если ошибка повторяется, пожалуйста %sсвяжитесь с администратором Piwik%s.",
+ "ErrorRequest": "Ой... возникла проблема во время выполнения запроса. Возможно причиной тому временная проблема на сервере, или Вами был запрошен отчет, содержащий большой объем данных. Пожалуйста, повторите попытку. Если ошибка повторяется, пожалуйста %1$sсвяжитесь с администратором Piwik%2$s.",
"EvolutionOverPeriod": "Эволюция за период",
"EvolutionSummaryGeneric": "%1$s в %2$s по сравнению с %3$s в %4$s. Изменения: %5$s",
- "ExceptionContactSupportGeneric": "Если вы продолжаете получать эту ошибку, пожалуйста, %sобратитесь к администратору Piwik%s за помощью.",
+ "ExceptionContactSupportGeneric": "Если вы продолжаете получать эту ошибку, пожалуйста, %1$sобратитесь к администратору Piwik%2$s за помощью.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Пользователь должен быть либо суперпользователем, либо пользователем '%s'.",
"ExceptionConfigurationFileNotFound": "Конфигурационный файл {%s} не может быть найден.",
- "ExceptionConfigurationFileNotFound2": "Если файл существует, пожалуйста, проверьте, что %s доступен для чтения пользователем \"%s\".",
+ "ExceptionConfigurationFileNotFound2": "Если файл существует, пожалуйста, проверьте, что %1$s доступен для чтения пользователем \"%2$s\".",
"ExceptionDatabaseVersion": "Версия вашего %1$s - %2$s, но Piwik требует хотя бы %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Исполняемые файлы Piwik устаревшей версии %1$s, а база данных Piwik уже обновлена до новой версии %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Возможно Ваш Piwik-администратор только что закончил процесс обновления. Попробуйте повторить позже.",
"ExceptionFileIntegrity": "Проверка целостности не удалась: %s",
"ExceptionFilesizeMismatch": "Размер файла не совпадает: %1$s (ожидался: %2$s, обнаружен: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Версия %1$s вашего клиента - %2$s, она не совместима с сервером версии %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Определение формата отчетов '%s' неверно. Попробуйте что-нибудь следующее, вместо: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Определение формата отчетов '%1$s' неверно. Попробуйте что-нибудь следующее, вместо: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Время архивирования (в секундах) должно быть больше нуля",
- "ExceptionInvalidDateFormat": "Формат даты должен быть: %s или любое другое ключевое слово, поддерживаемое функцией %s (см. %s, чтобы узнать больше)",
- "ExceptionInvalidDateRange": "Дата '%s' не входит в корректный промежуток. Она должна быть следующего формата: %s.",
- "ExceptionInvalidPeriod": "Период '%s' не поддерживается. Попробуйте вместо него другой из доступных: %s",
- "ExceptionInvalidRendererFormat": "Формат рендерера '%s' неверен. Попробуйте вместо него другой из доступных: %s.",
- "ExceptionInvalidReportRendererFormat": "Формат отчета '%s' не верен. Попробуйте вместо него другой из доступных: '%s'.",
- "ExceptionInvalidStaticGraphType": "Тип статичного графика '%s' неверен. Попробуйте что-нибудь следующее, вместо: %s.",
+ "ExceptionInvalidDateFormat": "Формат даты должен быть: %1$s или любое другое ключевое слово, поддерживаемое функцией %2$s (см. %3$s, чтобы узнать больше)",
+ "ExceptionInvalidDateRange": "Дата '%1$s' не входит в корректный промежуток. Она должна быть следующего формата: %2$s.",
+ "ExceptionInvalidPeriod": "Период '%1$s' не поддерживается. Попробуйте вместо него другой из доступных: %2$s",
+ "ExceptionInvalidRendererFormat": "Формат рендерера '%1$s' неверен. Попробуйте вместо него другой из доступных: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Формат отчета '%1$s' не верен. Попробуйте вместо него другой из доступных: '%2$s'.",
+ "ExceptionInvalidStaticGraphType": "Тип статичного графика '%1$s' неверен. Попробуйте что-нибудь следующее, вместо: %2$s.",
"ExceptionInvalidToken": "Токен неверен.",
"ExceptionLanguageFileNotFound": "Файл языка '%s' не найден.",
- "ExceptionMethodNotFound": "Метод '%s' не существует или недоступен в модуле '%s'.",
+ "ExceptionMethodNotFound": "Метод '%1$s' не существует или недоступен в модуле '%2$s'.",
"ExceptionMissingFile": "Отсутствует файл: %s",
"ExceptionNonceMismatch": "Не могу проверить элемент безопасности для этой формы.",
"ExceptionPrivilege": "Вы не можете иметь доступ к этому ресурсу, поскольку он требует прав %s.",
@@ -162,7 +160,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Вы не можете получить доступ к этому ресурсу, поскольку необходимы права %s хотя бы для одного сайта.",
"ExceptionUnableToStartSession": "Не удалось запустить сессию.",
"ExceptionUndeletableFile": "Невозможно удалить %s",
- "ExceptionUnreadableFileDisabledMethod": "Конфигурационный файл {%s} не может быть прочтен. Возможно, на вашем хосте отключен %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Конфигурационный файл {%1$s} не может быть прочтен. Возможно, на вашем хосте отключен %2$s.",
"ExceptionReportNotFound": "Запрашиваемый отчет не существует.",
"ExceptionWidgetNotFound": "Запрашиваемый виджет не существует.",
"ExceptionReportNotEnabled": "Запрошенный отчёт не включен. Это означает, как правило, что либо выключен плагин, который определяет этот отчет, либо нет прав доступа к этому отчёту.",
@@ -209,7 +207,7 @@
"Logout": "Выйти",
"MainMetrics": "Основные показатели",
"Matches": "Совпадений",
- "MediumToHighTrafficItIsRecommendedTo": "Для сайтов со средней или высокой нагрузкой мы рекомендуем формировать отчеты за сегодняшний день каждые полчаса (%s сек) или каждый час (%s сек).",
+ "MediumToHighTrafficItIsRecommendedTo": "Для сайтов со средней или высокой нагрузкой мы рекомендуем формировать отчеты за сегодняшний день каждые полчаса (%1$s сек) или каждый час (%2$s сек).",
"Metadata": "Метаданные",
"Metric": "Показатель",
"Metrics": "Показатели",
@@ -263,7 +261,7 @@
"OperationNotEquals": "Не равно",
"OptionalSmtpPort": "Необязательно. По умолчанию используется 25 для незашифрованного и TLS SMTP соединения, и 465 для SSL SMTP.",
"Options": "Настройки",
- "OrCancel": "или %s отмените %s",
+ "OrCancel": "или %1$s отмените %2$s",
"Others": "Другие",
"Outlink": "Исходящая ссылка",
"Outlinks": "Исходящие ссылки",
@@ -271,9 +269,9 @@
"OverlayRowActionTooltipTitle": "Открыть страницу с наложением",
"Overview": "Обзор",
"Pages": "Страницы",
- "Pagination": "%s - %s из %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Параметр %s должен быть целым числом между %s и %s.",
+ "Pagination": "%1$s - %2$s из %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Параметр %1$s должен быть целым числом между %2$s и %3$s.",
"Password": "Пароль",
"Period": "Период",
"Piechart": "Круговая диаграмма",
@@ -323,7 +321,7 @@
"Clear": "Очистить",
"SearchNoResults": "Без результатов",
"SeeAll": "просмотреть всё",
- "SeeTheOfficialDocumentationForMoreInformation": "Смотрите %sофициальную документацию%s чтобы узнать больше.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Смотрите %1$sофициальную документацию%2$s чтобы узнать больше.",
"SeeThisFaq": "Посмотрите %1$sэти частые вопросы%2$s.",
"Segment": "Сегмент",
"SelectYesIfYouWantToSendEmailsViaServer": "Выберите \"Да\", если вы хотите отсылать e-mail письма через определенный сервер, вместо использования локальной mail функции.",
@@ -350,10 +348,10 @@
"Total": "Всего",
"TotalRatioTooltip": "Это %1$s из всех %2$s %3$s.",
"TotalRevenue": "Общая прибыль",
- "TotalVisitsPageviewsActionsRevenue": "(Всего: %s визиты, %s просмотры страниц, %s действия, %s выручка)",
+ "TotalVisitsPageviewsActionsRevenue": "(Всего: %1$s визиты, %2$s просмотры страниц, %3$s действия, %4$s выручка)",
"TransitionsRowActionTooltip": "Посмотрите, что посетители делали до и после просмотра этой страницы",
"TransitionsRowActionTooltipTitle": "Открыть переходы",
- "TranslatorName": "Ademaro, <a href=\"http:\/\/jokerintertactive.ru\/\">Joker Interactive<\/a>, <a href=\"http:\/\/codax.ru\/\">Важенин Илья (компания Codax)<\/a>, Nelde Maxim, Andrey, Vadim Nekhai",
+ "TranslatorName": "Ademaro, <a href=\"http:\/\/jokerintertactive.ru\/\">Joker Interactive<\/a>, <a href=\"http:\/\/codax.ru\/\">Важенин Илья (компания Codax)<\/a>, Nelde Maxim, Andrey, Vadim Nekhai, <a href=\"https:\/\/uptimepal.net\">UptimePal<\/a>",
"UniquePurchases": "Уникальные покупки",
"Unknown": "Неизвестно",
"Upload": "Закачать",
@@ -384,7 +382,7 @@
"WarningFileIntegrityNoManifest": "Проверка целостности не может быть проведена из-за отсутствия manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Если вы делаете деплой Piwik из Git, это сообщение является нормальным.",
"WarningFileIntegrityNoMd5file": "Проверка целостности не может быть проведена из-за отсутствия функции md5_file().",
- "WarningPasswordStored": "%sВнимание:%s Этот пароль будет сохранен в конфигурационном файле на сервере в незашифрованном виде, и будет виден любому, кто имеет доступ к файловой системе сервера.",
+ "WarningPasswordStored": "%1$sВнимание:%2$s Этот пароль будет сохранен в конфигурационном файле на сервере в незашифрованном виде, и будет виден любому, кто имеет доступ к файловой системе сервера.",
"Website": "Сайт",
"Weekly": "Еженедельно",
"WeeklyReport": "еженедельно",
@@ -438,7 +436,7 @@
"MultiChartLabel": "Отображать тонкие графики (нити)",
"NavigationBack": "Назад",
"NetworkError": "Ошибка сети",
- "NetworkErrorWithStatusCode": "Произошла ошибка \"%s\". Запрос вернул статус: \"%s\". URL был: \"%s\". Пожалуйста, проверьте введенный URL и лог ошибок на сервере для более детальной информации по ошибке и способам её решения.",
+ "NetworkErrorWithStatusCode": "Произошла ошибка \"%1$s\". Запрос вернул статус: \"%2$s\". URL был: \"%3$s\". Пожалуйста, проверьте введенный URL и лог ошибок на сервере для более детальной информации по ошибке и способам её решения.",
"NetworkErrorWithStatusCodeShort": "Ошибка сети %s",
"NetworkNotReachable": "Сеть недоступна",
"NoAccountIsSelected": "Вы должны выбрать учетную запись. Добавьте новую учетную запись, если вы этого еще не сделали.",
@@ -456,7 +454,7 @@
"RatingDontRemindMe": "Не напоминать мне",
"RatingNotNow": "Не сейчас",
"RatingNow": "OK, сейчас оценю",
- "RatingPleaseRateUs": "Мобильное приложение Piwik бесплатно, мы будем очень благодарны вам, если вы найдете минутку, чтобы оценить приложение в %s. Если у вас есть предложения по новым функциям или вы нашли баг, пожалуйста свяжитесь с %s",
+ "RatingPleaseRateUs": "Мобильное приложение Piwik бесплатно, мы будем очень благодарны вам, если вы найдете минутку, чтобы оценить приложение в %1$s. Если у вас есть предложения по новым функциям или вы нашли баг, пожалуйста свяжитесь с %2$s",
"ReleaseToRefresh": "Отпустите, чтобы обновить...",
"Reloading": "Обновление...",
"RequestTimedOutShort": "Ошибка времени ожидания в сети",
@@ -481,7 +479,7 @@
"CompareRows": "Сравнить записи",
"ComparingRecords": "Сравнение %s строк",
"Documentation": "Нажмите на показатели, чтобы отобразить их динамику на большом графике. Используйте shift+клик для отображения нескольких показателей одновременно.",
- "MetricBetweenText": "Между %s и %s",
+ "MetricBetweenText": "Между %1$s и %2$s",
"MetricChangeText": "%s за период",
"MetricMinMax": "%1$s выставленый между %2$s и %3$s больше периода",
"MetricsFor": "Показатели для %s",
diff --git a/lang/sk.json b/lang/sk.json
index 6593349188..8377e7666b 100644
--- a/lang/sk.json
+++ b/lang/sk.json
@@ -15,7 +15,7 @@
"API": "API",
"Apply": "Použiť",
"ArchivingInlineHelp": "Pre stredné až vysoké návštevnosti webových stránok, sa odporúča vypnúť v Piwiku archiváciu spúšťanú prezeraním z prehliadača. Namiesto toho odporúčame nastaviť cron úlohu na spracovanie Piwik reportov každú hodinu.",
- "ArchivingTriggerDescription": "Odporúča sa pre väčšie inštalácie Piwiku, musíte %s nastaviť cron %s aby spracovával reporty automaticky.",
+ "ArchivingTriggerDescription": "Odporúča sa pre väčšie inštalácie Piwiku, musíte %1$s nastaviť cron %2$s aby spracovával reporty automaticky.",
"AuthenticationMethodSmtp": "Metóda overovania pre SMTP",
"AverageOrderValue": "Prierná hodnota nákupu",
"AveragePrice": "Priemerná cena",
@@ -27,10 +27,8 @@
"CannotUnzipFile": "Nie je možné rozbaliť súbor %1$s: %2$s",
"ChangePassword": "Zmena hesla",
"ChangeTagCloudView": "Všimnite si, že reporty môžete vidieť aj iným spôsobom ako oblak značiek. Použite ovládanie na spodku grafu pre prepínanie zobrazenia.",
- "ChooseDate": "Vybrať dátum",
"ChooseLanguage": "Vyberte jazyk",
"ChoosePeriod": "Vyberte si obdobie",
- "ChooseWebsite": "Vyberte si web",
"ClickHere": "Klinite pre viac informácií.",
"ClickToChangePeriod": "Kliknite znovu pre zmenu obdobia",
"Close": "Zatvoriť",
@@ -84,7 +82,7 @@
"ColumnViewedAfterSearchDocumentation": "Počet krát koľko bola táto stránka navštívená po tom, ako návštevník spravil vyhľadávanie na Vašom webe a klikol na túto stránku vo výsledkoch vyhľadávania.",
"ColumnVisitDuration": "Dĺžka návštevy (v sekundách)",
"ColumnVisitsWithConversions": "Návštevy s konverziou",
- "ConfigFileIsNotWritable": "Konfiguračný súbor %s Piwiku , some of your changes might not be saved. %s Please change permissions of the config file to make it writable.",
+ "ConfigFileIsNotWritable": "Konfiguračný súbor %1$s Piwiku , some of your changes might not be saved. %2$s Please change permissions of the config file to make it writable.",
"Continue": "Pokračovať",
"ContinueToPiwik": "Pokračovať do projektu Piwik",
"CurrentMonth": "Aktuálny mesiac",
@@ -100,7 +98,7 @@
"Date": "Dátum",
"DateRange": "Časové obdobie:",
"DateRangeFrom": "Od",
- "DateRangeFromTo": "Od %s do %s",
+ "DateRangeFromTo": "Od %1$s do %2$s",
"DateRangeInPeriodList": "dátumový rozsah",
"DateRangeTo": "Do",
"DaysHours": "%1$s dní %2$s hodín",
@@ -133,30 +131,30 @@
"Edit": "Upraviť",
"EncryptedSmtpTransport": "Zadajte šifrovanie prenosnej vrstvy požadovanej vašim SMTP serverom.",
"Error": "Chyba",
- "ErrorRequest": "Oops..počas požiadavky sa vyskytol problém. Možno je server dočasne nedostupný alebo možno ste požadovali report, ktorý obsahuje príliš veľa údajov. Ak sa táto chyba vyskytuje opakovane, prosím %s kontaktujte Vášho Piwik administrátora %s.",
+ "ErrorRequest": "Oops..počas požiadavky sa vyskytol problém. Možno je server dočasne nedostupný alebo možno ste požadovali report, ktorý obsahuje príliš veľa údajov. Ak sa táto chyba vyskytuje opakovane, prosím %1$s kontaktujte Vášho Piwik administrátora %2$s.",
"EvolutionOverPeriod": "Vývoj za obdobie",
"EvolutionSummaryGeneric": "%1$s v %2$s porovnané s %3$s v %4$s. Vývoj: %5$s",
- "ExceptionContactSupportGeneric": "Ak sa stále vyskytuje táto záležitosť, prosím %s kontaktujte Vášho Piwik administrátora %s.",
+ "ExceptionContactSupportGeneric": "Ak sa stále vyskytuje táto záležitosť, prosím %1$s kontaktujte Vášho Piwik administrátora %2$s.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Užívateľ musí byť buďto Superužívateľ alebo samotný užívateľ '%s'.",
"ExceptionConfigurationFileNotFound": "Konfiguračný súbor{%s} nebol nájdený.",
- "ExceptionConfigurationFileNotFound2": "Ak súbor existuje, prosím skontrolujte či %s je užívateľom '%s' čitateľné.",
+ "ExceptionConfigurationFileNotFound2": "Ak súbor existuje, prosím skontrolujte či %1$s je užívateľom '%2$s' čitateľné.",
"ExceptionDatabaseVersion": "Vaša verzia %1$s je %2$s,ale Piwik potrebuje aspoň verziu %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Vaša Piwik kódovacia základňa beží pod starou verziou %1$s a my sme zistili, že Vaša Piwik databáza bola práve aktualizovaná na novšiu verziu %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Možno Vaši Piwik administrátori práve dokončujú proces aktualizácie. Prosím skúste znova o niekoľko minút.",
"ExceptionFileIntegrity": "Kontrola integrity sa nepodarila: %s",
"ExceptionFilesizeMismatch": "Nesedí veľkosť súboru: %1$s (očakávaná veľkosť: %2$s, nájdená veľkosť: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Vaša verzia klienta %1$s je %2$s je nekompatibilná s verziou servera %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Formát agregovaných reportov '%s' je neplatný. Skúste namiesto toho použiť jeden z týchto: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Formát agregovaných reportov '%1$s' je neplatný. Skúste namiesto toho použiť jeden z týchto: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Dnešný čas archivovania",
- "ExceptionInvalidDateFormat": "Formát dátumu musí byť: %s alebo kľúčového slova ktoré podporuje funkciu %s (pozri %s pre viac informácií)",
- "ExceptionInvalidDateRange": "Dátum '%s' nie je platný časový rozsah. Použite nasledovný formát: %s.",
- "ExceptionInvalidPeriod": "Rozsah '%s' nie je podporovaný. Skúste namiesto toho použiť jeden z týchto: %s.",
- "ExceptionInvalidRendererFormat": "Formát vykresľovania '%s' je neplatný. Skúste namiesto toho použiť jeden z týchto: %s.",
- "ExceptionInvalidReportRendererFormat": "Formát správ '%s' je neplatný. Skúste namiesto toho použiť jeden z týchto: %s.",
- "ExceptionInvalidStaticGraphType": "Typ statického grafu '%s' neplatný. Skúste namiesto neho niektorý z nasledujúcich: %s.",
+ "ExceptionInvalidDateFormat": "Formát dátumu musí byť: %1$s alebo kľúčového slova ktoré podporuje funkciu %2$s (pozri %3$s pre viac informácií)",
+ "ExceptionInvalidDateRange": "Dátum '%1$s' nie je platný časový rozsah. Použite nasledovný formát: %2$s.",
+ "ExceptionInvalidPeriod": "Rozsah '%1$s' nie je podporovaný. Skúste namiesto toho použiť jeden z týchto: %2$s.",
+ "ExceptionInvalidRendererFormat": "Formát vykresľovania '%1$s' je neplatný. Skúste namiesto toho použiť jeden z týchto: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Formát správ '%1$s' je neplatný. Skúste namiesto toho použiť jeden z týchto: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Typ statického grafu '%1$s' neplatný. Skúste namiesto neho niektorý z nasledujúcich: %2$s.",
"ExceptionInvalidToken": "Bezpečnostný reťazec (token) nie je platný.",
"ExceptionLanguageFileNotFound": "Jazykový súbor '%s' nebol nájdený.",
- "ExceptionMethodNotFound": "Metóda '%s' neexistuje alebo nie je dostupná v module '%s'.",
+ "ExceptionMethodNotFound": "Metóda '%1$s' neexistuje alebo nie je dostupná v module '%2$s'.",
"ExceptionMissingFile": "Chýba súbor: %s",
"ExceptionNonceMismatch": "Nepodarilo sa overiť bezpečnostný reťazec formulára.",
"ExceptionPrivilege": "Nemôžete pristupovať k tomuto zdroju, keďže vyžaduje úroveň prístupu \"%s\".",
@@ -164,7 +162,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Nemôžete pristupovať k tomuto zdroju, keďže vyžaduje úroveň prístupu \"%s\" aspoň pre jedno webové sídlo.",
"ExceptionUnableToStartSession": "Nepodarilo sa začať session.",
"ExceptionUndeletableFile": "Nemožno zmazať %s",
- "ExceptionUnreadableFileDisabledMethod": "Konfiguračný súbor {%s} sa nedá čítať. Váš hostiteľ môže byť poskodený %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Konfiguračný súbor {%1$s} sa nedá čítať. Váš hostiteľ môže byť poskodený %2$s.",
"ExceptionReportNotFound": "Požadovaný report neexistuje.",
"ExceptionWidgetNotFound": "Požadovaná miniaplikácia neexistuje",
"ExceptionReportNotEnabled": "Požadovaný report nie je povolený. Toto obyčajne znamená, že buďto plugin, ktorý definuje report je deaktivovaný, alebo nemáte dostatočné povolenie pre prístup k tomuto reportu.",
@@ -212,7 +210,7 @@
"Logout": "Odhlásiť",
"MainMetrics": "Hlavné metriky",
"Matches": "Zhoduje sa",
- "MediumToHighTrafficItIsRecommendedTo": "Pre webové sídla, ktoré majú stredne veľkú až veľkú návštevnosť, odporúčame nastaviť spracovanie reportov pre daný deň maximálne na každú každú pol hodinu (%s sekúnd), alebo každú hodinu (%s sekúnd).",
+ "MediumToHighTrafficItIsRecommendedTo": "Pre webové sídla, ktoré majú stredne veľkú až veľkú návštevnosť, odporúčame nastaviť spracovanie reportov pre daný deň maximálne na každú každú pol hodinu (%1$s sekúnd), alebo každú hodinu (%2$s sekúnd).",
"Metadata": "Meta údaje",
"Metric": "Metrika",
"Metrics": "Metriky",
@@ -266,7 +264,7 @@
"OperationNotEquals": "Nerovná sa",
"OptionalSmtpPort": "Nepovinné. Východiskové nastavenie je port 25 pre nešifrované spojenie a TLS STMP, či port 465 pre SSL STMP.",
"Options": "Možnosti",
- "OrCancel": "alebo %s Zatvoriť %s",
+ "OrCancel": "alebo %1$s Zatvoriť %2$s",
"Others": "Ostatné",
"Outlink": "Odchádzajúci preklik",
"Outlinks": "Konkajšie odkazy",
@@ -274,9 +272,8 @@
"OverlayRowActionTooltipTitle": "Otvoriť prekrytie stránky",
"Overview": "Prehľad",
"Pages": "Stránky",
- "Pagination": "%s - %s z %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Parameter %s musí byť číselná hodnota medzi %s a %s.",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Parameter %1$s musí byť číselná hodnota medzi %2$s a %3$s.",
"Password": "Heslo",
"Period": "Obdobie",
"Piechart": "Koláčový graf",
@@ -328,7 +325,7 @@
"Clear": "Vyčisti",
"SearchNoResults": "Žiadne výsledky",
"SeeAll": "zobraziť všetky",
- "SeeTheOfficialDocumentationForMoreInformation": "Pre viac informácií pozri %sofficiálne dokumentácie%s.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Pre viac informácií pozri %1$sofficiálne dokumentácie%2$s.",
"SeeThisFaq": "Pozrite %1$s často kladné otázky %2$s",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Vyberte \"Áno\", ak chcete alebo musíte odoslať e-mail cez názov servera namiesto lokálnej mail funkcie",
@@ -355,7 +352,7 @@
"Total": "Celkom",
"TotalRatioTooltip": "Toto je %1$s z celkového %2$s %3$s.",
"TotalRevenue": "Celkový príjem",
- "TotalVisitsPageviewsActionsRevenue": "(Celkom: %s návštev, %s zobrazení, %s akcií, tržby: %s)",
+ "TotalVisitsPageviewsActionsRevenue": "(Celkom: %1$s návštev, %2$s zobrazení, %3$s akcií, tržby: %4$s)",
"TransitionsRowActionTooltip": "Pozrite si čo robili návštevníci pred a po prezretí si tejto stránky.",
"TransitionsRowActionTooltipTitle": "Otvorené zmeny",
"TranslatorName": "Miroslav Habara, Zdenko Podobný, Juraj \"Lup0\" Viktorín, Ivanka",
@@ -389,8 +386,8 @@
"WarningFileIntegrityNoManifest": "Súbor kontrola integrity nemohla byť vykonaná z dôvodu chýbajúcich manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Ak nasadzujete Piwik z Git-u, tak toto je normálna správa.",
"WarningFileIntegrityNoMd5file": "Súbor kontrola integrity nemožno dokončiť z dôvodu chýbajúcich md5_file () funkcie.",
- "WarningPasswordStored": "%sVarovanie:%s Toto heslo bude uložené v konfiguračnom súbore viditeľné pre všetkých, ako prístup.",
- "WarningDebugOnDemandEnabled": "Je povolený režim sledovača (tracker) %s. Z bezpečnostných dôvodov by mal byť povolený len veľmi krátky čas. Na jeho ukončenie nastavte %s na %s v %s",
+ "WarningPasswordStored": "%1$sVarovanie:%2$s Toto heslo bude uložené v konfiguračnom súbore viditeľné pre všetkých, ako prístup.",
+ "WarningDebugOnDemandEnabled": "Je povolený režim sledovača (tracker) %1$s. Z bezpečnostných dôvodov by mal byť povolený len veľmi krátky čas. Na jeho ukončenie nastavte %2$s na %3$s v %4$s",
"Website": "Web",
"Weekly": "Týždenne",
"WeeklyReport": "týždenne",
@@ -444,7 +441,7 @@
"MultiChartLabel": "Zobraziť multi grafy",
"NavigationBack": "Späť",
"NetworkError": "Chyba siete",
- "NetworkErrorWithStatusCode": "Vyskytla sa chyba \"%s\". Požiadavka navrátila stav \"%s\". URL bol \"%s\". Pre viac informácií o tejto chybe a ako ju odstrániť, prosím skontrolujte zadanú URL a chybový protokol na tomto serveri.",
+ "NetworkErrorWithStatusCode": "Vyskytla sa chyba \"%1$s\". Požiadavka navrátila stav \"%2$s\". URL bol \"%3$s\". Pre viac informácií o tejto chybe a ako ju odstrániť, prosím skontrolujte zadanú URL a chybový protokol na tomto serveri.",
"NetworkErrorWithStatusCodeShort": "Chyba siete %s",
"NetworkNotReachable": "Sieť nie je dostupná",
"NoAccountIsSelected": "Musíte vybrať účet. Pridať nový účet ak nemáte žiaden vytvorený.",
@@ -462,7 +459,7 @@
"RatingDontRemindMe": "Nepripomínať",
"RatingNotNow": "Teraz nie",
"RatingNow": "V poriadku, ohodnotím teraz",
- "RatingPleaseRateUs": "Piwik Mobile App je voľný softvér. Veľmi by sme ocenili, ak by ste venovali 1 minútu ohodnoteniu tejto aplikácie na %s. Ak máte návrhy ohľadom nových funkcií alebo chybových hlásení, prosím kontaktujte %s",
+ "RatingPleaseRateUs": "Piwik Mobile App je voľný softvér. Veľmi by sme ocenili, ak by ste venovali 1 minútu ohodnoteniu tejto aplikácie na %1$s. Ak máte návrhy ohľadom nových funkcií alebo chybových hlásení, prosím kontaktujte %2$s",
"ReleaseToRefresh": "Pre obnovenie uvoľni...",
"Reloading": "Znovu načítavanie",
"RequestTimedOutShort": "Chyba Network Timeout",
@@ -487,7 +484,7 @@
"CompareRows": "Porovnať záznamy",
"ComparingRecords": "Porovnávanie %s riadkov",
"Documentation": "Kliknite na metrics -metriky- a zobrazia sa vo veľkom vývojovom grafe. Použite shift-klik na zobrazenie viacnásobných metrických naraz.",
- "MetricBetweenText": "od %s do %s",
+ "MetricBetweenText": "od %1$s do %2$s",
"MetricChangeText": "%s za interval",
"MetricMinMax": "Behom tohoto obdobia %1$s sa pohyboval(a) medzi %2$s a %3$s",
"MetricsFor": "Metrika pre %s",
diff --git a/lang/sl.json b/lang/sl.json
index 52d6a42ee0..d1a09bcbbc 100644
--- a/lang/sl.json
+++ b/lang/sl.json
@@ -15,7 +15,7 @@
"API": "API",
"Apply": "Uveljavi",
"ArchivingInlineHelp": "Za srednje velike in velike spletne strani izklopite arhiviranje preko spletnega brskalnika. Namesto tega vam priporočamo, da nastavite \"cron job\" tako, da bodo poročila ustvarjena vsako uro.",
- "ArchivingTriggerDescription": "Priporočamo za večje namestitve. %sNastavite \"cron job\"%s za avtomatsko procesiranje.",
+ "ArchivingTriggerDescription": "Priporočamo za večje namestitve. %1$sNastavite \"cron job\"%2$s za avtomatsko procesiranje.",
"AuthenticationMethodSmtp": "Metoda potrditve verodostojnosti za SMTP",
"AverageOrderValue": "Povprečna vrednost naročila",
"AveragePrice": "Povprečna Cena",
@@ -26,10 +26,8 @@
"CannotUnzipFile": "Ne morem odzipati datoteke %1$s: %2$s",
"ChangePassword": "Spremeni geslo",
"ChangeTagCloudView": "Zavedajte se, da si lahko ogledate proočila na drugačne načine kot oblak oznak. Za spremembo uporabite izbire na dnu poročila.",
- "ChooseDate": "Izberite datum",
"ChooseLanguage": "Izberite jezik",
"ChoosePeriod": "Izberite obdobje",
- "ChooseWebsite": "Izberite spletno stran",
"ClickHere": "Za več informacij, kliknite tu.",
"ClickToChangePeriod": "Kliknite ponovno za spremembo obdobja.",
"Close": "Zapri",
@@ -83,7 +81,7 @@
"ColumnViewedAfterSearchDocumentation": "Število obiskov te strani po tem, ko je obiskovalec izvedel iskanje na vašem spletnem mestu in kliknil na to stran v rezultatih iskanja.",
"ColumnVisitDuration": "Trajanje Obiska (v sekundah)",
"ColumnVisitsWithConversions": "Obiski s Spreobrnitvami",
- "ConfigFileIsNotWritable": "Piwik-ova konfiguracijska datoteka %s ni zapisljiva, zato nekaterih vaših sprememb ni bilo mogoče shraniti. %s Prosimo, da spremenite dovoljenja konfiguracijske datoteke tako, da bo zapisljiva.",
+ "ConfigFileIsNotWritable": "Piwik-ova konfiguracijska datoteka %1$s ni zapisljiva, zato nekaterih vaših sprememb ni bilo mogoče shraniti. %2$s Prosimo, da spremenite dovoljenja konfiguracijske datoteke tako, da bo zapisljiva.",
"Continue": "Nadaljuj",
"ContinueToPiwik": "Nadaljuj na Piwik",
"CurrentMonth": "Trenutni mesec",
@@ -99,7 +97,7 @@
"Date": "Datum",
"DateRange": "Datumski razpon:",
"DateRangeFrom": "Od",
- "DateRangeFromTo": "Od %s do %s",
+ "DateRangeFromTo": "Od %1$s do %2$s",
"DateRangeTo": "Za",
"DaysHours": "%1$s dni %2$s ur",
"DaysSinceFirstVisit": "Dni od prvega obiska",
@@ -131,8 +129,8 @@
"Edit": "Uredi",
"EncryptedSmtpTransport": "Vnesite nivo enkripcije, ki jo uporablja vaš SMTP strežnik.",
"Error": "Napaka",
- "ErrorRequest": "Prišlo je do težave pri izvedbi zahtevka. Morda gre za začasno težavo na strežniku ali pa ste zahtevali poročilo s preveliko količino podatkov. Prosimo, poskusite ponovno. Če se bo napaka ponavljala, se prosimo %sobrnite po pomoč%s na vašega Piwik skrbnika.",
- "ExceptionContactSupportGeneric": "Če težava vztraja, se prosimo %sobrnite po pomoč%s na vašega Piwik skrbnika.",
+ "ErrorRequest": "Prišlo je do težave pri izvedbi zahtevka. Morda gre za začasno težavo na strežniku ali pa ste zahtevali poročilo s preveliko količino podatkov. Prosimo, poskusite ponovno. Če se bo napaka ponavljala, se prosimo %1$sobrnite po pomoč%2$s na vašega Piwik skrbnika.",
+ "ExceptionContactSupportGeneric": "Če težava vztraja, se prosimo %1$sobrnite po pomoč%2$s na vašega Piwik skrbnika.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Uporabnik mora biti Super User ali uporabnik '%s'.",
"ExceptionConfigurationFileNotFound": "Konfiguracijska datoteka {%s} ni bila najdena.",
"ExceptionDatabaseVersion": "Vaša %1$s različica je %2$s, vendar Piwik potrebuje vsaj %3$s.",
@@ -141,17 +139,17 @@
"ExceptionFileIntegrity": "Preverjanje integritete ni bilo uspešno: %s",
"ExceptionFilesizeMismatch": "Velikost datoteke se ne ujema: %1$s (pričakovana dolžina: %2$s, najdeno: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Vaša %1$s različica odjemalca je %2$s, ki je nezdružljiva s strežniško različico %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Oblika skupnega poročila '%s' ni pravilna. Namesto tega poskusite kaj od tega: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Oblika skupnega poročila '%1$s' ni pravilna. Namesto tega poskusite kaj od tega: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "\"Today archive time to live\" mora biti število sekund več kot nič.",
- "ExceptionInvalidDateFormat": "Oblika datuma mora biti: %s ali katerakoli ključna beseda, podprta v funkciji %s (oglejte si %s za več informacij)",
- "ExceptionInvalidDateRange": "'%s' ni pravilen datumski razpon. Moral bi imeti naslednjo obliko: %s.",
- "ExceptionInvalidPeriod": "Obdobje '%s' ni podprto. Namesto tega poskusite kaj od tega: %s.",
- "ExceptionInvalidRendererFormat": "Oblika prikaza '%s' ni pravilna. Namesto tega poskusite kaj od tega: %s.",
- "ExceptionInvalidReportRendererFormat": "Oblika poročila '%s' ni pravilna. Namesto tega poskusite kaj od tega: %s.",
- "ExceptionInvalidStaticGraphType": "Tip statičnega grafa '%s' ni pravilen. Namesto tega poskusite kaj od tega: %s.",
+ "ExceptionInvalidDateFormat": "Oblika datuma mora biti: %1$s ali katerakoli ključna beseda, podprta v funkciji %2$s (oglejte si %3$s za več informacij)",
+ "ExceptionInvalidDateRange": "'%1$s' ni pravilen datumski razpon. Moral bi imeti naslednjo obliko: %2$s.",
+ "ExceptionInvalidPeriod": "Obdobje '%1$s' ni podprto. Namesto tega poskusite kaj od tega: %2$s.",
+ "ExceptionInvalidRendererFormat": "Oblika prikaza '%1$s' ni pravilna. Namesto tega poskusite kaj od tega: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Oblika poročila '%1$s' ni pravilna. Namesto tega poskusite kaj od tega: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Tip statičnega grafa '%1$s' ni pravilen. Namesto tega poskusite kaj od tega: %2$s.",
"ExceptionInvalidToken": "Žeton ni veljaven.",
"ExceptionLanguageFileNotFound": "Jezikovne datoteke \"%s\" ni bilo mogoče najti.",
- "ExceptionMethodNotFound": "Metoda '%s' ne obstaja ali ni na voljo v modulu '%s'.",
+ "ExceptionMethodNotFound": "Metoda '%1$s' ne obstaja ali ni na voljo v modulu '%2$s'.",
"ExceptionMissingFile": "Manjkajoča datoteka: %s",
"ExceptionNonceMismatch": "Ne morem preveriti varnostnega žetona na tem obrazcu.",
"ExceptionPrivilege": "Ne morete dostopati do tega vira, saj je za to potreben %s dostop.",
@@ -159,7 +157,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Ne morete dostopati do tega vira, ker potrebujete %s dostop za vsaj eno spletno stran.",
"ExceptionUnableToStartSession": "Ne morem začeti seje.",
"ExceptionUndeletableFile": "%s ni možno izbrisati.",
- "ExceptionUnreadableFileDisabledMethod": "Konfiguracijske datoteke {%s} ni bilo mogoče prebrati. Možno je, da je vaš gostitelj onemogočil %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Konfiguracijske datoteke {%1$s} ni bilo mogoče prebrati. Možno je, da je vaš gostitelj onemogočil %2$s.",
"ExceptionReportNotFound": "Zahtevano poročilo ne obstaja.",
"ExceptionReportNotEnabled": "Zahtevano poročilo ni omogočeno. To ponavadi pomeni, da vtičnik, ki definira poročilo, ni aktiviran ali, da nimate dovoljenj za dostop do tega poročila.",
"ExpandDataTableFooter": "Spremeni izgled ali uredi nastavitve poročila",
@@ -206,7 +204,7 @@
"Logout": "Izpis",
"MainMetrics": "Glavna meterika",
"Matches": "Zadetki",
- "MediumToHighTrafficItIsRecommendedTo": "Za srednje velike in velike spletne strani vam priporočamo, da procesirate poročila največ na pol ure (%s sekund) ali na eno uro (%s sekund).",
+ "MediumToHighTrafficItIsRecommendedTo": "Za srednje velike in velike spletne strani vam priporočamo, da procesirate poročila največ na pol ure (%1$s sekund) ali na eno uro (%2$s sekund).",
"Metadata": "Metadata",
"Metric": "Metrika",
"Metrics": "Metrike",
@@ -260,7 +258,7 @@
"OperationNotEquals": "Ni enako",
"OptionalSmtpPort": "Neobvezno. Privzeto je 25 za nekriptiran prometi in za TLS SMTP. 465 za SSL SMTP.",
"Options": "Možnosti",
- "OrCancel": "ali %s Prekliči %s",
+ "OrCancel": "ali %1$s Prekliči %2$s",
"Others": "Ostali",
"Outlink": "Izhodna povezaba",
"Outlinks": "Izhodne povezave",
@@ -268,9 +266,9 @@
"OverlayRowActionTooltipTitle": "Odpri prekrivanje strani",
"Overview": "Pregled",
"Pages": "Strani",
- "Pagination": "%s - %s od %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Parameter %s mora biti celo število med %s in %s.",
+ "Pagination": "%1$s - %2$s od %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Parameter %1$s mora biti celo število med %2$s in %3$s.",
"Password": "Geslo",
"Period": "Obdobje",
"Piechart": "Kolačni diagram",
@@ -319,7 +317,7 @@
"Clear": "Izprazni",
"SearchNoResults": "Ni rezultatov",
"SeeAll": "poglej vse",
- "SeeTheOfficialDocumentationForMoreInformation": "Za več informacij, si oglejte %suradno dokumentacijo%s.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Za več informacij, si oglejte %1$suradno dokumentacijo%2$s.",
"SeeThisFaq": "Poglej %1$sta FAQ%2$s.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Izberite \"da\" če želite pošiljanje emaila preko strežnika, namesto preko lokalne mail funkcije",
@@ -376,7 +374,7 @@
"WarningFileIntegrityNoManifest": "Pregleda integritete datotek ni bilo mogoče izvesti, saj manjka manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Če nameščate Piwik iz Git repozitorija, je to sporočilo normalno.",
"WarningFileIntegrityNoMd5file": "Ne morem preveriti integritete datoteke, ker manjka funkcija md5_file().",
- "WarningPasswordStored": "%sPozor:%s To geslo bo shranjeno v config datoteki. Tako bo vidna vsem, ki imajo dostop do te datoteke.",
+ "WarningPasswordStored": "%1$sPozor:%2$s To geslo bo shranjeno v config datoteki. Tako bo vidna vsem, ki imajo dostop do te datoteke.",
"Website": "Spletna stran",
"Weekly": "Tedensko",
"WeeklyReport": "tedensko",
@@ -425,7 +423,7 @@
"LoginUseHttps": "Uporabi https",
"NavigationBack": "Nazaj",
"NetworkError": "Napaka omrežja",
- "NetworkErrorWithStatusCode": "Prišlo je do napake \"%s\". Zahtevek je vrnil status \"%s\". URL je bil \"%s\". Prosimo, preverite vnešeni URL in error loge na strežniku za več informacij o napaki in namig kako jo rešiti.",
+ "NetworkErrorWithStatusCode": "Prišlo je do napake \"%1$s\". Zahtevek je vrnil status \"%2$s\". URL je bil \"%3$s\". Prosimo, preverite vnešeni URL in error loge na strežniku za več informacij o napaki in namig kako jo rešiti.",
"NetworkErrorWithStatusCodeShort": "Napaka omrežja %s",
"NetworkNotReachable": "Omrežje ni dosegljivo",
"NoAccountIsSelected": "Najprej morate izbrati račun. Dodajte nov račun, če ga še niste nastavili.",
@@ -443,7 +441,7 @@
"RatingDontRemindMe": "Ne spomni me",
"RatingNotNow": "Ne zdaj",
"RatingNow": "OK, podal bom oceno",
- "RatingPleaseRateUs": "Piwik Mobile App je brezplačna programska oprema. Zelo bi vam bili hvaležni, če bi si vzeli 1 minuto časa in ocenili aplikacijo v %s. Če imate kakšne predloge za nove funkcionalnosti ali bi radi prijavili napako, prosimo kontaktirajte %s",
+ "RatingPleaseRateUs": "Piwik Mobile App je brezplačna programska oprema. Zelo bi vam bili hvaležni, če bi si vzeli 1 minuto časa in ocenili aplikacijo v %1$s. Če imate kakšne predloge za nove funkcionalnosti ali bi radi prijavili napako, prosimo kontaktirajte %2$s",
"ReleaseToRefresh": "Izpustite za osvežitev...",
"Reloading": "Nalagam...",
"RequestTimedOutShort": "Napaka - network timeout",
@@ -467,7 +465,7 @@
"CompareRows": "Primerjaj zapise",
"ComparingRecords": "Primerjaj %s vrstic",
"Documentation": "Kliknite metrike, da jih prikažete na velikem razvojnem grafu. Uporabite tipko Shift za prikaz večih metrik na enkrat.",
- "MetricBetweenText": "od %s do %s",
+ "MetricBetweenText": "od %1$s do %2$s",
"MetricChangeText": "%s sprememb v časovnem obdobju",
"MetricsFor": "Metrike za %s",
"PickAnotherRow": "Izberi še eno vrstico za primerjavo",
diff --git a/lang/sq.json b/lang/sq.json
index acf1e9822e..28df9c980c 100644
--- a/lang/sq.json
+++ b/lang/sq.json
@@ -13,7 +13,7 @@
"API": "API",
"Apply": "Zbatoje",
"ArchivingInlineHelp": "Për sajte me trafik mesatar ose të shumtë këshillohet të çaktivizohet vënia në punë e arkivimit nga Piwik-u prej shfletuesit. Në vend të kësaj këshillojmë të rregulloni një akt cron që të përpunoni raporte Piwik-u çdo orë.",
- "ArchivingTriggerDescription": "E këshilluar për instalime më të ngarkuara të Piwik-ut, lypset të %s rregulloni një akt cron-i%s që të përpunohen raportet automatikisht.",
+ "ArchivingTriggerDescription": "E këshilluar për instalime më të ngarkuara të Piwik-ut, lypset të %1$s rregulloni një akt cron-i%2$s që të përpunohen raportet automatikisht.",
"AuthenticationMethodSmtp": "Metodë mirëfilltësimi për SMTP",
"AverageOrderValue": "Vlerë Mesatare Porosie",
"AveragePrice": "Çmim Mesatar",
@@ -25,10 +25,8 @@
"CannotUnzipFile": "S’mund të hapë kartelën zip %1$s: %2$s",
"ChangePassword": "Ndryshoni fjalëkalimin",
"ChangeTagCloudView": "Ju lutemi, mbani parasysh që raportin mund ta shihni në mënyra të tjera nga re etiketash. Për ta bërë këtë, përdorni kontrollet në fund të raportit.",
- "ChooseDate": "Zgjidhni datë",
"ChooseLanguage": "Zgjidhni gjuhën",
"ChoosePeriod": "Zgjidhni periudhën",
- "ChooseWebsite": "Zgjidhni sajtin",
"ClickHere": "Për më tepër të dhëna, klikoni këtu.",
"ClickToChangePeriod": "Klikoni sërish që të ndryshoni periudhën.",
"Close": "Mbylle",
@@ -82,7 +80,7 @@
"ColumnViewedAfterSearchDocumentation": "Numri i herëve që kjo Faqe qe vizituar nga një vizitor, pasi kreu një kërkim mbi sajtin tuaj, dhe klikoi mbi këtë faqe te përfundimet e kërkimit.",
"ColumnVisitDuration": "Kohëzgjatje Vizite (në sekonda)",
"ColumnVisitsWithConversions": "Vizita me Shndërrime",
- "ConfigFileIsNotWritable": "Kartela për formësimin e Piwik-ut %s nuk është e shkruajtshme, disa nga ndryshimet tuaja mund të mos ruhen dot. %s Ju lutemi, ndryshoni lejet mbi kartelën e formësimit për ta bërë të shkruajtshme.",
+ "ConfigFileIsNotWritable": "Kartela për formësimin e Piwik-ut %1$s nuk është e shkruajtshme, disa nga ndryshimet tuaja mund të mos ruhen dot. %2$s Ju lutemi, ndryshoni lejet mbi kartelën e formësimit për ta bërë të shkruajtshme.",
"Continue": "Vazhdo",
"ContinueToPiwik": "Vazhdoni te Piwik-u",
"CurrentMonth": "Muaji i Tanishëm",
@@ -98,7 +96,7 @@
"Date": "Datë",
"DateRange": "Interval datash:",
"DateRangeFrom": "Prej",
- "DateRangeFromTo": "Nga %s në %s",
+ "DateRangeFromTo": "Nga %1$s në %2$s",
"DateRangeTo": "Për",
"DaysHours": "%1$s ditë %2$s orë",
"DaysSinceFirstVisit": "Ditë që nga vizita e parë",
@@ -130,30 +128,30 @@
"Edit": "Përpunojeni",
"EncryptedSmtpTransport": "Jepni kodimin e shtresës së mbartjes siç e kërkon shërbyesi juaj SMTP.",
"Error": "Gabim",
- "ErrorRequest": "Hmm… pati një problem gjatë kërkesës. Ndoshta shërbyesi pati një problem të përkohshëm, ose ndoshta kërkuat një raport me shumë të dhëna. Ju lutemi, riprovoni. Nëse jy gabim përsëritet vazhdimisht, ju lutemi, %slidhuni me përgjegjësin tuaj për Piwik-un%s për asistancë.",
+ "ErrorRequest": "Hmm… pati një problem gjatë kërkesës. Ndoshta shërbyesi pati një problem të përkohshëm, ose ndoshta kërkuat një raport me shumë të dhëna. Ju lutemi, riprovoni. Nëse jy gabim përsëritet vazhdimisht, ju lutemi, %1$slidhuni me përgjegjësin tuaj për Piwik-un%2$s për asistancë.",
"EvolutionOverPeriod": "Zhvillime përgjatë periudhës",
"EvolutionSummaryGeneric": "%1$s in %2$s compared to %3$s in %4$s. Evolution: %5$s",
- "ExceptionContactSupportGeneric": "Nëse e keni ende këtë problem, ju lutemi, %slidhuni me përgjegjësin e Piwik-ut tuaj%s për asistencë.",
+ "ExceptionContactSupportGeneric": "Nëse e keni ende këtë problem, ju lutemi, %1$slidhuni me përgjegjësin e Piwik-ut tuaj%2$s për asistencë.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Përdoruesi duhet të jetë ose një Superpërdorues, ose vetë përdoruesi '%s'.",
"ExceptionConfigurationFileNotFound": "Nuk u gjet kartela {%s} e formësimit.",
- "ExceptionConfigurationFileNotFound2": "Nëse kartela ekziston, ju lutemi, kontrolloni nëse përdoruesi '%s' mundet ta lexojë %s.",
+ "ExceptionConfigurationFileNotFound2": "Nëse kartela ekziston, ju lutemi, kontrolloni nëse përdoruesi '%1$s' mundet ta lexojë %2$s.",
"ExceptionDatabaseVersion": "Versioni juaj për %1$s është %2$s por Piwik-u lyp të paktën %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Kodi i Piwik-ut tuaj po xhiron versionin e vjetër %1$s dhe kemi gjetur se Baza juaj e të Dhënave Piwik është përmirësuar tashmë me versionin e ri %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Ndoshta përgjegjësit e Piwik-ut janë duke përfunduar procesin e përmirësimit të tij. Ju lutemi, riprovoni pas pak minutash.",
"ExceptionFileIntegrity": "Kontrolli i pacënueshmërisë dështoi: %s",
"ExceptionFilesizeMismatch": "Mospërputhje madhësie kartelash: %1$s (pritej gjatësi: %2$s, u gjet: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Versioni i klientit tuaj për %1$s është %2$s çka është e papërputhshme me versionin e shërbyesit %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Formati '%s' për raporte të grumbulluar nuk është i vlefshëm. Provoni më mirë ndonjë nga vijuesit: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Formati '%1$s' për raporte të grumbulluar nuk është i vlefshëm. Provoni më mirë ndonjë nga vijuesit: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Jetëgjatësia e arkivës për sot duhet të jetë një numër sekondash më i madh se zero",
- "ExceptionInvalidDateFormat": "Formati i datës duhet të jetë: %s ose çfarëdo fjalëkyçi që funksioni %s e mbulon (për më tepër të dhëna, shihni %s)",
- "ExceptionInvalidDateRange": "Data '%s' nuk është interval i saktë datash. Ky do të duhej të kishte formatin vijues: %s.",
- "ExceptionInvalidPeriod": "Nuk mbulohet periudha '%s'. Provoni më mirë ndonjë nga vijuesit: %s",
- "ExceptionInvalidRendererFormat": "Formati '%s' për vizatuesin nuk është i vlefshëm. Provoni më mirë ndonjë nga vijuesit: %s.",
- "ExceptionInvalidReportRendererFormat": "Formati '%s' për raportuesin nuk është i vlefshëm. Provoni më mirë ndonjë nga vijuesit: %s.",
- "ExceptionInvalidStaticGraphType": "Lloji '%s' për grafik statik nuk është i vlefshëm. Provoni më mirë ndonjë nga vijuesit: %s.",
+ "ExceptionInvalidDateFormat": "Formati i datës duhet të jetë: %1$s ose çfarëdo fjalëkyçi që funksioni %2$s e mbulon (për më tepër të dhëna, shihni %3$s)",
+ "ExceptionInvalidDateRange": "Data '%1$s' nuk është interval i saktë datash. Ky do të duhej të kishte formatin vijues: %2$s.",
+ "ExceptionInvalidPeriod": "Nuk mbulohet periudha '%1$s'. Provoni më mirë ndonjë nga vijuesit: %2$s",
+ "ExceptionInvalidRendererFormat": "Formati '%1$s' për vizatuesin nuk është i vlefshëm. Provoni më mirë ndonjë nga vijuesit: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Formati '%1$s' për raportuesin nuk është i vlefshëm. Provoni më mirë ndonjë nga vijuesit: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Lloji '%1$s' për grafik statik nuk është i vlefshëm. Provoni më mirë ndonjë nga vijuesit: %2$s.",
"ExceptionInvalidToken": "Token-i nuk është i vlefshëm.",
"ExceptionLanguageFileNotFound": "S’u gjet kartela e gjuhës '%s'.",
- "ExceptionMethodNotFound": "Metoda '%s' nuk ekziston ose nuk është e mundshme në modulin '%s'.",
+ "ExceptionMethodNotFound": "Metoda '%1$s' nuk ekziston ose nuk është e mundshme në modulin '%2$s'.",
"ExceptionMissingFile": "Kartelë që mungon: %s",
"ExceptionNonceMismatch": "Nuk u verifikua dot token-i i sigurisë në këtë formular.",
"ExceptionPrivilege": "Nuk mund të hyni në këtë burim, ngaqë lyp të drejta %s.",
@@ -161,7 +159,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Nuk mund të hyni në këtë burim, ngaqë lyp të drejta %s për të paktën një nga site-et web.",
"ExceptionUnableToStartSession": "I pazoti të nisë sesion.",
"ExceptionUndeletableFile": "I pazoti të fshijë %s",
- "ExceptionUnreadableFileDisabledMethod": "Nuk u lexua dot kartela {%s} e formësimit. Streha juaj mund të ketë çaktivizuar %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Nuk u lexua dot kartela {%1$s} e formësimit. Streha juaj mund të ketë çaktivizuar %2$s.",
"ExceptionReportNotFound": "Raporti i kërkuar s’ekziston.",
"ExceptionWidgetNotFound": "Widget-i i kërkuar s’ekziston.",
"ExceptionReportNotEnabled": "Raporti i kërkuar nuk është i aktivizuar. Kjo zakonisht nënkupton se ose shtojca që mbulon raportin është e çaktivizuar, ose se nuk keni leje të mjaftueshme ta hapni këtë raport.",
@@ -207,7 +205,7 @@
"Logout": "Dilni",
"MainMetrics": "Llogaritjet kryesore",
"Matches": "Përputhje",
- "MediumToHighTrafficItIsRecommendedTo": "Për sajte me trafik të shumtë, këshillojmë t’i përpunoni raportet për ditën e sotme e shumta çdo gjysmë ore (%s sekonda) ose çdo një orë (%s sekonda).",
+ "MediumToHighTrafficItIsRecommendedTo": "Për sajte me trafik të shumtë, këshillojmë t’i përpunoni raportet për ditën e sotme e shumta çdo gjysmë ore (%1$s sekonda) ose çdo një orë (%2$s sekonda).",
"Metadata": "Tejtëdhëna",
"Metric": "Matje",
"Metrics": "Matje",
@@ -261,7 +259,7 @@
"OperationNotEquals": "Jo Baraz Me",
"OptionalSmtpPort": "Opsionale. Parazgjedhjet janë 25 për të pakoduarat dhe TLS SMTP, dhe 465 për SSL SMTP.",
"Options": "Mundësi",
- "OrCancel": "ose %s Anulojeni %s",
+ "OrCancel": "ose %1$s Anulojeni %2$s",
"Others": "Tjetër",
"Outlink": "Lidhje për gjetiu",
"Outlinks": "Lidhje për Jashtë",
@@ -269,9 +267,9 @@
"OverlayRowActionTooltipTitle": "Hapni Përmbledhje Faqeje",
"Overview": "Përmbledhje",
"Pages": "Faqe",
- "Pagination": "%s - %s of %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Parametri %s duhet të jetë një numër i plotë nga %s në %s.",
+ "Pagination": "%1$s - %2$s of %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Parametri %1$s duhet të jetë një numër i plotë nga %2$s në %3$s.",
"Password": "Fjalëkalim",
"Period": "Periudhë",
"Piechart": "Qarkore",
@@ -323,7 +321,7 @@
"Clear": "Pastroje",
"SearchNoResults": "Pa përfundime",
"SeeAll": "shihni krejt",
- "SeeTheOfficialDocumentationForMoreInformation": "Për më tepër të dhëna, shihni %sdokumentimin zyrtar%s.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Për më tepër të dhëna, shihni %1$sdokumentimin zyrtar%2$s.",
"SeeThisFaq": "Shihni %1$skëtë ndarje FAQ%2$s.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Përzgjidhni \"Po\" nëse doni të dërgoni, ose keni për të dërguar, email përmes një shërbyesi të emërtuar, në vend se përmes të një funksioni vendor poste",
@@ -349,7 +347,7 @@
"Total": "Gjithsej",
"TotalRatioTooltip": "Kjo është %1$s nga krejt %2$s %3$s.",
"TotalRevenue": "Të ardhura Gjithsej",
- "TotalVisitsPageviewsActionsRevenue": "(Gjithsej: %s vizita, %s shikime faqesh, %s veprime, %s të ardhura)",
+ "TotalVisitsPageviewsActionsRevenue": "(Gjithsej: %1$s vizita, %2$s shikime faqesh, %3$s veprime, %4$s të ardhura)",
"TransitionsRowActionTooltip": "Shihni se ç’bënë vizitorët para dhe pas parjes së kësaj faqeje",
"TransitionsRowActionTooltipTitle": "Ndërkalime të Hapura",
"TranslatorName": "Besnik Bleta",
@@ -382,8 +380,8 @@
"WarningFileIntegrityNoManifest": "Kontrolli i pacenueshmërisë së kartelës s’u krye dot, për shkak të mungesës së manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Nëse po krijoni një instalim të Piwik-ut prej Git-i, ky mesazh është normal.",
"WarningFileIntegrityNoMd5file": "Kontrolli i pacenueshmërisë së kartelës s’u plotësua dot, për shkak të mungesës së funksionit md5_file().",
- "WarningPasswordStored": "%sKujdes:%s Ky fjalëkalim do të depozitohet te kartela e formësimit që është e dukshme për këdo që mund të mbërrijë deri te ajo.",
- "WarningDebugOnDemandEnabled": "Mënyra gjurmues %s është e aktivizuar. Për arsye sigurie, kjo do të duhej të aktivizohej vetëm për një kohë të shkurtër. Që ta çaktivizoni, caktojeni %s si %s te %s",
+ "WarningPasswordStored": "%1$sKujdes:%2$s Ky fjalëkalim do të depozitohet te kartela e formësimit që është e dukshme për këdo që mund të mbërrijë deri te ajo.",
+ "WarningDebugOnDemandEnabled": "Mënyra gjurmues %1$s është e aktivizuar. Për arsye sigurie, kjo do të duhej të aktivizohej vetëm për një kohë të shkurtër. Që ta çaktivizoni, caktojeni %2$s si %3$s te %4$s",
"Website": "Sajt",
"Weekly": "Përjavë",
"WeeklyReport": "përjavë",
@@ -437,7 +435,7 @@
"MultiChartLabel": "Shfaq vija grafiku",
"NavigationBack": "Mbrapsht",
"NetworkError": "Gabim Rrjeti",
- "NetworkErrorWithStatusCode": "Pati një gabim \"%s\". Kërkesa pati si përgjigje gjendjen \"%s\". URL-ja qe \"%s\". Për më tepër të dhëna mbi gabimin dhe se si të zgjidhet, ju lutemi, kontrolloni që e dhatë URL-në dhe regjistrat e gabimeve te ky shërbyes .",
+ "NetworkErrorWithStatusCode": "Pati një gabim \"%1$s\". Kërkesa pati si përgjigje gjendjen \"%2$s\". URL-ja qe \"%3$s\". Për më tepër të dhëna mbi gabimin dhe se si të zgjidhet, ju lutemi, kontrolloni që e dhatë URL-në dhe regjistrat e gabimeve te ky shërbyes .",
"NetworkErrorWithStatusCodeShort": "Gabim Rrjeti %s",
"NetworkNotReachable": "Rrjet i pakapshëm",
"NoAccountIsSelected": "Duhet të përzgjidhni një llogari. Shtoni një llogari të re, nëse s’keni ndonjë të formësuar.",
@@ -455,7 +453,7 @@
"RatingDontRemindMe": "Mos ma kujto më",
"RatingNotNow": "Jo tani",
"RatingNow": "OK, do ta vlerësoj tani",
- "RatingPleaseRateUs": "Aplikacioni për Celular Piwik është Software i Lirë, do t’jua dinim vërtet për nder nëse do të harxhonit një 1 minutë për të dhënë një vlerësim mbi të te %s. Nëse keni këshilla për veçori të reja apo njoftime të metash, ju lutemi, lidhuni me %s",
+ "RatingPleaseRateUs": "Aplikacioni për Celular Piwik është Software i Lirë, do t’jua dinim vërtet për nder nëse do të harxhonit një 1 minutë për të dhënë një vlerësim mbi të te %1$s. Nëse keni këshilla për veçori të reja apo njoftime të metash, ju lutemi, lidhuni me %2$s",
"ReleaseToRefresh": "Lëshojeni që të rifreskohet...",
"Reloading": "Po ringarkohet...",
"RequestTimedOutShort": "Gabim Mbarimi Kohe Rrjeti",
@@ -479,7 +477,7 @@
"CompareRows": "Krahasoni regjistrime",
"ComparingRecords": "Po krahasohen %s rreshta",
"Documentation": "Klikoni mbi matjet që të shfaqen në një grafik të madh rrjedhe kohore. Përdorni shkurtoren Shift-klikim që të shfaqen shumë matje njëherësh.",
- "MetricBetweenText": "nga %s në %s",
+ "MetricBetweenText": "nga %1$s në %2$s",
"MetricChangeText": "%s ndryshim gjatë periudhës",
"MetricMinMax": "%1$s doli diku mes %2$s dhe %3$s gjatë periudhës",
"MetricsFor": "Matje për %s",
diff --git a/lang/sr.json b/lang/sr.json
index acea21bac6..578d418821 100644
--- a/lang/sr.json
+++ b/lang/sr.json
@@ -12,7 +12,7 @@
"And": "i",
"API": "API",
"ArchivingInlineHelp": "Za srednje i velike sajtove preporuka je da isključite ovu opciju i da podesite cron koji će procesirati Piwik izveštaje svaki sat",
- "ArchivingTriggerDescription": "Preporučljivo za velike Piwik instalacije; potrebno je da %spodesite cron%s da procesira izveštaje automatski",
+ "ArchivingTriggerDescription": "Preporučljivo za velike Piwik instalacije; potrebno je da %1$spodesite cron%2$s da procesira izveštaje automatski",
"AuthenticationMethodSmtp": "Način autentikacije za SMTP",
"AverageOrderValue": "Prosečna vrednost porudžbine",
"AveragePrice": "Prosečna cena",
@@ -24,10 +24,8 @@
"CannotUnzipFile": "Ne mogu da raspakujem arhivu %1$s: %2$s",
"ChangePassword": "Promeni lozinku",
"ChangeTagCloudView": "Imajte na umu da izveštaj možete da vidite i u drugačijem obliku. Da biste to učinili, upotrebite kontrole na dnu izveštaja.",
- "ChooseDate": "Izaberite datum",
"ChooseLanguage": "Izaberite jezik",
"ChoosePeriod": "Izaberite period",
- "ChooseWebsite": "Izaberite sajt",
"ClickHere": "Kliknite ovde za više informacija.",
"ClickToChangePeriod": "Kliknite ponovo kako biste izmenili period.",
"Close": "Zatvoriti",
@@ -81,7 +79,7 @@
"ColumnViewedAfterSearchDocumentation": "Broj pregleda stranice nakon što je korisnik uradio pretragu sajta i kliknuo na nju kao na rezultat pretrage.",
"ColumnVisitDuration": "Dužina posete (u sekundama)",
"ColumnVisitsWithConversions": "Posete sa konverzijom",
- "ConfigFileIsNotWritable": "U Piwik datoteku sa podešavanjima %s nije moguće pisati tako da neke od vaših izmena nije moguće sačuvati. %s Molimo vas da promenite dozvole nad ovom datotekom kako bi se u nju moglo pisati.",
+ "ConfigFileIsNotWritable": "U Piwik datoteku sa podešavanjima %1$s nije moguće pisati tako da neke od vaših izmena nije moguće sačuvati. %2$s Molimo vas da promenite dozvole nad ovom datotekom kako bi se u nju moglo pisati.",
"Continue": "Nastavak",
"ContinueToPiwik": "Nastavite rad sa Piwik-om.",
"CurrentMonth": "Tekući mesec",
@@ -97,7 +95,7 @@
"Date": "Datum",
"DateRange": "Vremenski period:",
"DateRangeFrom": "Od",
- "DateRangeFromTo": "Od %s do %s",
+ "DateRangeFromTo": "Od %1$s do %2$s",
"DateRangeTo": "Do",
"DaysHours": "%1$s dani %2$s sati",
"DaysSinceFirstVisit": "Dana od prve posete",
@@ -129,30 +127,30 @@
"Edit": "Izmeni",
"EncryptedSmtpTransport": "Upišite tip enkripcije koji zahteva vaš SMTP server.",
"Error": "Greška",
- "ErrorRequest": "Ups, došlo je do problema prilikom obrade zahteva. Možda server trenutno ima nekih problema ili ste zahtevali izveštaj sa previše podataka. Molimo vas da pokušate ponovo. Ako se ovaj problem često pojavljuje, %skontaktirajte Piwik administratora%s radi pomoći.",
+ "ErrorRequest": "Ups, došlo je do problema prilikom obrade zahteva. Možda server trenutno ima nekih problema ili ste zahtevali izveštaj sa previše podataka. Molimo vas da pokušate ponovo. Ako se ovaj problem često pojavljuje, %1$skontaktirajte Piwik administratora%2$s radi pomoći.",
"EvolutionOverPeriod": "Trend za period",
"EvolutionSummaryGeneric": "%1$s u %2$s u odnosu na %3$s u %4$s. Razvoj: %5$s",
- "ExceptionContactSupportGeneric": "Ukoliko se ovo još uvek dešava, molimo vas %sda kontaktirate vašeg Piwik administratora%s za pomoć.",
+ "ExceptionContactSupportGeneric": "Ukoliko se ovo još uvek dešava, molimo vas %1$sda kontaktirate vašeg Piwik administratora%2$s za pomoć.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Korisnik treba da bude ili superkorisnik ili sam korisnik '%s'.",
"ExceptionConfigurationFileNotFound": "Datoteka sa podešavanjima {%s} nije nađena.",
- "ExceptionConfigurationFileNotFound2": "Ukoliko datoteka postoji, molimo vas da proverite da je %s dostupna za čitanje korisniku '%s'.",
+ "ExceptionConfigurationFileNotFound2": "Ukoliko datoteka postoji, molimo vas da proverite da je %1$s dostupna za čitanje korisniku '%2$s'.",
"ExceptionDatabaseVersion": "Vaša %1$s verzija je %2$s ali Piwik zahteva barem %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Vaša Piwik aplikacija radi pod starom verzijom %1$s a otkrili smo da je Piwik baza već nadograđena na verziju %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Možda vaš Piwik administrator baš sad završava proces nadogradnje. Molimo vas da pokušate ponovo za par minuta.",
"ExceptionFileIntegrity": "Provera integriteta nije uspela: %s",
"ExceptionFilesizeMismatch": "Veličina datoteke se ne poklapa: %1$s (očekivana veličina: %2$s, zatečena: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Vaša %1$s klijentska verzija je %2$s što je nekompatibilno sa serverskom verzijom %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Format '%s' nije validan. Pokušajte neki od ovih: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Format '%1$s' nije validan. Pokušajte neki od ovih: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Vreme mora biti predstavljeno brojem sekundi koje je veće od nule.",
- "ExceptionInvalidDateFormat": "Oblik datima mora da bude: %s ili bilo koja ključna reč podržana od strane funkcije %s (pogledajte %s za više informacija)",
- "ExceptionInvalidDateRange": "Datum '%s' nije validan vremenski raspon. Trebalo bi da ima sledeći oblik: %s",
- "ExceptionInvalidPeriod": "Period '%s' nije podržan. Pokušajte neki od ovih: %s.",
- "ExceptionInvalidRendererFormat": "Format '%s' nije validan. Pokušajte neki od ovih: %s.",
- "ExceptionInvalidReportRendererFormat": "Format '%s' nije validan. Pokušajte neki od ovih: %s.",
- "ExceptionInvalidStaticGraphType": "Tip grafikona '%s' nije validan. Pokušajte neki od ovih: %s.",
+ "ExceptionInvalidDateFormat": "Oblik datima mora da bude: %1$s ili bilo koja ključna reč podržana od strane funkcije %2$s (pogledajte %3$s za više informacija)",
+ "ExceptionInvalidDateRange": "Datum '%1$s' nije validan vremenski raspon. Trebalo bi da ima sledeći oblik: %2$s",
+ "ExceptionInvalidPeriod": "Period '%1$s' nije podržan. Pokušajte neki od ovih: %2$s.",
+ "ExceptionInvalidRendererFormat": "Format '%1$s' nije validan. Pokušajte neki od ovih: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Format '%1$s' nije validan. Pokušajte neki od ovih: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Tip grafikona '%1$s' nije validan. Pokušajte neki od ovih: %2$s.",
"ExceptionInvalidToken": "Token nije validan.",
"ExceptionLanguageFileNotFound": "Datoteka sa jezikom '%s' nije nađena.",
- "ExceptionMethodNotFound": "Metod '%s' ne postoji ili nije na raspolaganju u modulu '%s'.",
+ "ExceptionMethodNotFound": "Metod '%1$s' ne postoji ili nije na raspolaganju u modulu '%2$s'.",
"ExceptionMissingFile": "Nedostajuća datoteka: %s",
"ExceptionNonceMismatch": "Nije moguće proveriti sigurnosni token na ovoj formi.",
"ExceptionPrivilege": "Ne možete pristupiti resursu pošto to zahteva %s.",
@@ -160,7 +158,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Ne možete pristupiti resursu pošto to zahteva %s za barem jedan sajt.",
"ExceptionUnableToStartSession": "Nije moguće pokrenuti sesiju",
"ExceptionUndeletableFile": "Nije moguće obrisati %s",
- "ExceptionUnreadableFileDisabledMethod": "Datoteka sa podešavanjima {%s} ne može biti pročitana. Vaš server možda ima onemogućen %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Datoteka sa podešavanjima {%1$s} ne može biti pročitana. Vaš server možda ima onemogućen %2$s.",
"ExceptionReportNotFound": "Zahtevani izveštaj ne postoji.",
"ExceptionWidgetNotFound": "Zahtevani vidžet ne postoji.",
"ExceptionReportNotEnabled": "Zahtevani izveštaj nije omogućen. To obično znači da je ili dodatak koji definiše izveštaj deaktiviran ili nemate dovoljan nivo pristupa kako biste pristupili izveštaju.",
@@ -208,7 +206,7 @@
"Logout": "Odjava",
"MainMetrics": "Glavne metrike",
"Matches": "Pogodaka",
- "MediumToHighTrafficItIsRecommendedTo": "Za sajtove sa osrednjim ili velikim saobraćajem preporučujemo da današnje izveštaje procerirate na svakih barem pola sata (%s sekundi) ili svaki sat (%s sekundi)",
+ "MediumToHighTrafficItIsRecommendedTo": "Za sajtove sa osrednjim ili velikim saobraćajem preporučujemo da današnje izveštaje procerirate na svakih barem pola sata (%1$s sekundi) ili svaki sat (%2$s sekundi)",
"Metadata": "Meta podaci",
"Metric": "Metrika",
"Metrics": "Metrike",
@@ -262,7 +260,7 @@
"OperationNotEquals": "Različito od",
"OptionalSmtpPort": "Opciono. Podrazumevana vrednost za neenkriptovani i TLS SMTP server je 25, z 465 za SSL SMTP server.",
"Options": "Opcije",
- "OrCancel": "ili %s prekid %s",
+ "OrCancel": "ili %1$s prekid %2$s",
"Others": "Ostalo",
"Outlink": "Izlazni link",
"Outlinks": "Izlazni linkovi",
@@ -270,9 +268,9 @@
"OverlayRowActionTooltipTitle": "Otvorite prikaz",
"Overview": "Pregled",
"Pages": "Stranice",
- "Pagination": "%s - %s od %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Parametar %s mora biti celobrojna vrednost između %s i %s",
+ "Pagination": "%1$s - %2$s od %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Parametar %1$s mora biti celobrojna vrednost između %2$s i %3$s",
"Password": "Lozinka",
"Period": "Period",
"Piechart": "Grafikon",
@@ -324,7 +322,7 @@
"Clear": "Obrisati",
"SearchNoResults": "Nema rezultata",
"SeeAll": "prikaži sve",
- "SeeTheOfficialDocumentationForMoreInformation": "Pogledajte %szvaničnu dokumentaciju%s za više informacija",
+ "SeeTheOfficialDocumentationForMoreInformation": "Pogledajte %1$szvaničnu dokumentaciju%2$s za više informacija",
"SeeThisFaq": "Pogledajte %1$suputstvo%2$s.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Izaberite \"Da\" ukoliko želite da šaljete elektronska pisma preko posebnog servera umesto putem lokalne mail funkcije.",
@@ -350,7 +348,7 @@
"Total": "Ukupno",
"TotalRatioTooltip": "Ovo je %1$s od %2$s %3$s.",
"TotalRevenue": "Ukupan prihod",
- "TotalVisitsPageviewsActionsRevenue": "(Ukupno poseta %s, prikaza %s, akcija %s, zarada %s)",
+ "TotalVisitsPageviewsActionsRevenue": "(Ukupno poseta %1$s, prikaza %2$s, akcija %3$s, zarada %4$s)",
"TransitionsRowActionTooltip": "Pogledajte šta su posetioci radili pre i posle posete ovoj stranici",
"TransitionsRowActionTooltipTitle": "Otvori tranzicije",
"TranslatorName": "Petar Benke, Branislav Maksin, Nikola Stojković",
@@ -382,8 +380,8 @@
"WarningFileIntegrityNoManifest": "Proveru integriteta datoteka nije moguće sprovesti zato što nedostaje datoteka manifest.inc.php.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Ukoliko podižete Piwik iz Git-a, ova poruka je sasvim prirodna.",
"WarningFileIntegrityNoMd5file": "Proveru integriteta datoteka nije moguće okončati zato što nedostaje funkcija md5_file().",
- "WarningPasswordStored": "%sUpozorenje:%s Ova lozinka će biti upisana u datoteku sa podešavanjima i biće vidljiva svakome ko ima pristup.",
- "WarningDebugOnDemandEnabled": "Uključen je %s mod za praćenje. Iz bezbednosnih razloga ovo bi trebalo da bude uključeno samo u kratkom vremenskom periodu. Ukoliko želite da ga isključite, postavite %s na %s u %s",
+ "WarningPasswordStored": "%1$sUpozorenje:%2$s Ova lozinka će biti upisana u datoteku sa podešavanjima i biće vidljiva svakome ko ima pristup.",
+ "WarningDebugOnDemandEnabled": "Uključen je %1$s mod za praćenje. Iz bezbednosnih razloga ovo bi trebalo da bude uključeno samo u kratkom vremenskom periodu. Ukoliko želite da ga isključite, postavite %2$s na %3$s u %4$s",
"Website": "Sajt",
"Weekly": "Nedeljno",
"WeeklyReport": "nedeljno",
@@ -436,7 +434,7 @@
"MultiChartLabel": "Prikaži male krive",
"NavigationBack": "Nazad",
"NetworkError": "Mrežna greška",
- "NetworkErrorWithStatusCode": "Došlo je do greške sa \"%s\". Status: \"%s\". URL: \"%s\". Molimo vas da proverite URL i serverske logove za više informacija o ovoj grešci i kako je ispraviti.",
+ "NetworkErrorWithStatusCode": "Došlo je do greške sa \"%1$s\". Status: \"%2$s\". URL: \"%3$s\". Molimo vas da proverite URL i serverske logove za više informacija o ovoj grešci i kako je ispraviti.",
"NetworkErrorWithStatusCodeShort": "Mrežna greška %s",
"NetworkNotReachable": "Mreža nije dostupna",
"NoAccountIsSelected": "Morate da izaberete nalog. Dodajte novi nalog ako to do sad niste učinili.",
@@ -454,7 +452,7 @@
"RatingDontRemindMe": "Nemoj da me podsećaš",
"RatingNotNow": "Ne sad",
"RatingNow": "U redu, oceniću ga sad",
- "RatingPleaseRateUs": "Mobilni Piwik je besplatna aplikacija. Zaista bismo cenili ako biste odvojili jedan minut i ocenili aplikaciju na %s. Ako imate predloge ili želite da prijavite problem, molimo vas da kontaktirate %s",
+ "RatingPleaseRateUs": "Mobilni Piwik je besplatna aplikacija. Zaista bismo cenili ako biste odvojili jedan minut i ocenili aplikaciju na %1$s. Ako imate predloge ili želite da prijavite problem, molimo vas da kontaktirate %2$s",
"ReleaseToRefresh": "Otpusti za osveženje...",
"Reloading": "Osvežavanje...",
"RequestTimedOutShort": "Istek vremena na mreži",
@@ -479,7 +477,7 @@
"CompareRows": "Uporedi zapise",
"ComparingRecords": "Poređenje %s redova",
"Documentation": "Kliknite na metrike kako biste ih prikazali u većem grafikonu. Držite Shift dok klikćete kako biste prikazali više metrika odjednom.",
- "MetricBetweenText": "Između %s i %s",
+ "MetricBetweenText": "Između %1$s i %2$s",
"MetricChangeText": "%s za period",
"MetricMinMax": "%1$s se prostire između %2$s i %3$s za dati period",
"MetricsFor": "Metrike za %s",
diff --git a/lang/sv.json b/lang/sv.json
index 25326597ab..ae4c5588c3 100644
--- a/lang/sv.json
+++ b/lang/sv.json
@@ -1,5 +1,7 @@
{
"General": {
+ "12HourClock": "12-timmars klocka",
+ "24HourClock": "24-timmars klocka",
"AbandonedCarts": "Övergivna varukorgar",
"AboutPiwikX": "Om Piwik %s",
"Action": "Handling",
@@ -11,8 +13,9 @@
"AllWebsitesDashboard": "Alla webbplatsers instrumentpanel",
"And": "och",
"API": "API",
+ "Apply": "Verkställ",
"ArchivingInlineHelp": "För webbplatser med medelhög till hög trafik rekommenderas det att du stänger av Piwik's funktion för arkivering att aktiveras från denna webbläsare.",
- "ArchivingTriggerDescription": "För större Piwik-installationer rekommenderas det att du %ssätta upp ett cron job%s för att behandla rapporterna automatiskt.",
+ "ArchivingTriggerDescription": "För större Piwik-installationer rekommenderas det att du %1$ssätta upp ett cron job%2$s för att behandla rapporterna automatiskt.",
"AuthenticationMethodSmtp": "Autentiseringsmetod för SMTP",
"AverageOrderValue": "Genomsnittligt ordervärde",
"AveragePrice": "Genomsnittligt pris",
@@ -24,14 +27,12 @@
"CannotUnzipFile": "Kan ej packa upp filen %1$s: %2$s",
"ChangePassword": "Byt lösenord",
"ChangeTagCloudView": "Observera att du kan visa rapporten på andra sätt än som ett taggmoln. Använd kontrollerna längst ned i rapporten för att göra det.",
- "ChooseDate": "Välj datum",
"ChooseLanguage": "Välj språk",
"ChoosePeriod": "Välj period",
- "ChooseWebsite": "Välj webbplats",
"ClickHere": "Klicka här för mer information.",
"ClickToChangePeriod": "Klicka igen för att byta period.",
"Close": "Stäng",
- "ClickToSearch": "Klicka för att säka",
+ "ClickToSearch": "Klicka för att söka",
"ColumnActionsPerVisit": "Händelser per besök",
"ColumnActionsPerVisitDocumentation": "Det genomsnittliga antalet händelser (sidvisningar, webbplatssökningar, nedladdningar eller utlänkar) som utfördes under besöken.",
"ColumnAverageGenerationTime": "Genomsnittlig tid för generering",
@@ -81,7 +82,7 @@
"ColumnViewedAfterSearchDocumentation": "Antalet besök som sidan fått genom att besökare sökt på webbplatsen och sidan fått klick i sökresultatet.",
"ColumnVisitDuration": "Besökstid (i sekunder)",
"ColumnVisitsWithConversions": "Besök med omvandlingar",
- "ConfigFileIsNotWritable": "Piwik's konfigurationsfil %s är inte skrivbar, de ändringar som du har gjort kommer kanske inte att sparas. %s Var vänlig och ändra rättigheterna på konfigurationsfilen för att göra den skrivbar.",
+ "ConfigFileIsNotWritable": "Piwik's konfigurationsfil %1$s är inte skrivbar, de ändringar som du har gjort kommer kanske inte att sparas. %2$s Var vänlig och ändra rättigheterna på konfigurationsfilen för att göra den skrivbar.",
"Continue": "Fortsätt",
"ContinueToPiwik": "Fortsätt till Piwik",
"CurrentMonth": "Denna månad",
@@ -97,7 +98,7 @@
"Date": "Datum",
"DateRange": "Intervall:",
"DateRangeFrom": "Från",
- "DateRangeFromTo": "Från %s till %s",
+ "DateRangeFromTo": "Från %1$s till %2$s",
"DateRangeTo": "Till",
"DaysHours": "%1$s dagar %2$s timmar",
"DaysSinceFirstVisit": "Dagar sedan första besöket",
@@ -121,7 +122,7 @@
"DownloadFail_FileExistsContinue": "Försökte att fortsätta nedladdning av %s, men en komplett nedladdad fil finns redan!",
"DownloadFail_HttpRequestFail": "Filen kunde inte hämtas! Det kan vara något fel med webbplasten du laddar ner filen från. Du kan försöka igen senare, eller hämta filen manuellt.",
"DownloadFullVersion": "%1$sLadda ner%2$s den fulla versionen! Kolla in %3$s",
- "DownloadPleaseRemoveExisting": "Var vänlig att radera den befintliga filen m du vill att den ska ersättas.",
+ "DownloadPleaseRemoveExisting": "Var vänlig att radera den befintliga filen om du vill att den ska ersättas.",
"Downloads": "Nedladdningar",
"EcommerceOrders": "E-handelsordrar",
"EcommerceVisitStatusDesc": "Besökets E-handelsstatus i slutet av besöket",
@@ -129,30 +130,30 @@
"Edit": "Redigera",
"EncryptedSmtpTransport": "Ange kryptering för transportlagret som krävs för din SMTP-server.",
"Error": "Fel",
- "ErrorRequest": "Hoppsan! Ett fel inträffade. Detta kan ha orsakats av ett temporärt serverfel, eller också innehöll rapporten du försökte skapa för mycket data. Vänligen försök igen. Återupprepas felet så %skontakta din Piwik-administratör%s för hjälp.",
+ "ErrorRequest": "Hoppsan! Ett fel inträffade. Detta kan ha orsakats av ett temporärt serverfel, eller också innehöll rapporten du försökte skapa för mycket data. Vänligen försök igen. Återupprepas felet så %1$skontakta din Piwik-administratör%2$s för hjälp.",
"EvolutionOverPeriod": "Utveckling under perioden",
"EvolutionSummaryGeneric": "%1$s i %2$s jämfört med %3$s i %4$s. Utveckling: %5$s",
- "ExceptionContactSupportGeneric": "Om detta fel består, %skontakta din Piwikadministratör%s för hjälp.",
+ "ExceptionContactSupportGeneric": "Om detta fel består, %1$skontakta din Piwikadministratör%2$s för hjälp.",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Den här användaren måste vara antingen Superanvändaren eller '%s' användaren.",
"ExceptionConfigurationFileNotFound": "Konfigurationsfilen {%s} hittades inte.",
- "ExceptionConfigurationFileNotFound2": "Om filen existerar, vänligen kolla att %s är läsbar av användaren '%s'.",
+ "ExceptionConfigurationFileNotFound2": "Om filen existerar, vänligen kolla att %1$s är läsbar av användaren '%2$s'.",
"ExceptionDatabaseVersion": "Din %1$s version är %2$s men Piwik kräver åtminstone %3$s.",
"ExceptionDatabaseVersionNewerThanCodebase": "Din Piwikinstallation använder den gamla versionen %1$s och vi har upptäckt att din Piwikdatabas redan har uppdaterats till den nyare versionen %2$s.",
"ExceptionDatabaseVersionNewerThanCodebaseWait": "Det är möjligt att din Piwikadministratör håller på att uppdatera systemet. Försök igen om några minuter.",
"ExceptionFileIntegrity": "Integritetskontrollen misslyckades: %s",
"ExceptionFilesizeMismatch": "Filstorleken matchar inte: %1$s (förväntad storlek: %2$s, aktuell: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Din %1$s klientversion är %2$s, vilket är inkompatibel med serverns version %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Samlingsrapportens format, '%s', är ogiltigt. Prova något av följande: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Samlingsrapportens format, '%1$s', är ogiltigt. Prova något av följande: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Arkiveringstidens giltighetstid för idag måste anges i sekunder och vara större än noll.",
- "ExceptionInvalidDateFormat": "Datumformatet måste vara: %s eller något nyckelord som stöds av %s funktionen (se %s för mer information)",
- "ExceptionInvalidDateRange": "Datumet '%s' är inte ett korrekt datumintervall. Det borde ha följande format: %s.",
- "ExceptionInvalidPeriod": "Perioden '%s' stöds inte. Prova med något av följande istället: %s",
- "ExceptionInvalidRendererFormat": "Renderingsformatet '%s' är inte giltigt. Prova med något av följande istället: %s.",
- "ExceptionInvalidReportRendererFormat": "Rapportens format '%s' är ogiltigt. Använd något av följande istället: %s.",
- "ExceptionInvalidStaticGraphType": "Den statiska graftypen '%s' är ogiltig. Prova någon av följande: %s.",
+ "ExceptionInvalidDateFormat": "Datumformatet måste vara: %1$s eller något nyckelord som stöds av %2$s funktionen (se %3$s för mer information)",
+ "ExceptionInvalidDateRange": "Datumet '%1$s' är inte ett korrekt datumintervall. Det borde ha följande format: %2$s.",
+ "ExceptionInvalidPeriod": "Perioden '%1$s' stöds inte. Prova med något av följande istället: %2$s",
+ "ExceptionInvalidRendererFormat": "Renderingsformatet '%1$s' är inte giltigt. Prova med något av följande istället: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "Rapportens format '%1$s' är ogiltigt. Använd något av följande istället: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Den statiska graftypen '%1$s' är ogiltig. Prova någon av följande: %2$s.",
"ExceptionInvalidToken": "Säkerhetsbeviset är inte giltigt.",
"ExceptionLanguageFileNotFound": "Språkfilen '%s' hittades inte.",
- "ExceptionMethodNotFound": "Metoden '%s' finns inte eller är inte tillgänglig i denna modulen '%s'.",
+ "ExceptionMethodNotFound": "Metoden '%1$s' finns inte eller är inte tillgänglig i denna modulen '%2$s'.",
"ExceptionMissingFile": "Fil saknas: %s",
"ExceptionNonceMismatch": "Kunde inte verifiera säkerhetsbeviset på detta formulär.",
"ExceptionPrivilege": "Du kan inte komma åt denna resurs eftersom det kräver %s tillträde.",
@@ -160,7 +161,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Du kan inte komma åt denna resurs eftersom det åtminstone kräver %s tillträde till en webbplats.",
"ExceptionUnableToStartSession": "Kan inte starta sessionen.",
"ExceptionUndeletableFile": "Det går inte att ta bort %s",
- "ExceptionUnreadableFileDisabledMethod": "Konfigurationsfilen {%s} kunde inte läsas. Din värd har kanske inaktiverat %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Konfigurationsfilen {%1$s} kunde inte läsas. Din värd har kanske inaktiverat %2$s.",
"ExceptionReportNotFound": "Den begärda rapporten finns inte.",
"ExceptionWidgetNotFound": "Den begärda widgeten finns inte.",
"ExceptionReportNotEnabled": "Den begärda rapporten är inte aktiverad. Det brukar bero på att den plugin som skapar rapporten har avaktiverats eller att du saknar behörighet att se denna rapport.",
@@ -208,7 +209,7 @@
"Logout": "Logga ut",
"MainMetrics": "Huvudvariabler",
"Matches": "Matchningar",
- "MediumToHighTrafficItIsRecommendedTo": "För webbplatser med medelhög till hög trafik rekommenderas det att du behandlar rapporterna för idag som mest varje halvtimma (%s sekunder) eller varje timma (%s sekunder).",
+ "MediumToHighTrafficItIsRecommendedTo": "För webbplatser med medelhög till hög trafik rekommenderas det att du behandlar rapporterna för idag som mest varje halvtimma (%1$s sekunder) eller varje timma (%2$s sekunder).",
"Metadata": "Metadata",
"Metric": "Variabel",
"Metrics": "Variabler",
@@ -237,7 +238,7 @@
"NoDataForTagCloud": "Ingen data för detta taggmoln.",
"NotDefined": "%s är inte definierat",
"Note": "Notering",
- "NotInstalled": "Inte Installerad",
+ "NotInstalled": "Inte installerad",
"NotRecommended": "ej rekommenderat",
"NotValid": "%s är ogiltig",
"NumberOfVisits": "Antalet besök",
@@ -260,19 +261,22 @@
"OperationIsNot": "Är inte",
"OperationLessThan": "Mindre än",
"OperationNotEquals": "Inte lika med",
+ "OperationStartsWith": "Börjar med",
+ "OperationEndsWith": "Slutar med",
"OptionalSmtpPort": "Frivilligt. Standardvärdet är port 25 för okrypterat och TLS SMTP och port 465 för SSL SMTP.",
"Options": "Alternativ",
- "OrCancel": "eller %s Avbryt %s",
+ "Or": "eller",
+ "OrCancel": "eller %1$s Avbryt %2$s",
"Others": "Andra",
"Outlink": "Utlänk",
"Outlinks": "Utlänkar",
"OverlayRowActionTooltip": "Se analysdata direkt på din webbplats (öppnas i ny flik)",
- "OverlayRowActionTooltipTitle": "Öppna Sidöverlägg",
+ "OverlayRowActionTooltipTitle": "Öppna sidöverlägg",
"Overview": "Översikt",
"Pages": "Sidor",
- "Pagination": "%s - %s av %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Parametern %s måste vara ett heltal mellan %s och %s.",
+ "Pagination": "%1$s - %2$s av %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Parametern %1$s måste vara ett heltal mellan %2$s och %3$s.",
"Password": "Lösenord",
"Period": "Period",
"Piechart": "Cirkeldiagram",
@@ -324,7 +328,7 @@
"Clear": "Rensa",
"SearchNoResults": "Inget resultat",
"SeeAll": "Se hela",
- "SeeTheOfficialDocumentationForMoreInformation": "Se den %sofficiella dokumentationen%s för mer information.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Se den %1$sofficiella dokumentationen%2$s för mer information.",
"SeeThisFaq": "Se %1$sdenna FAQ%2$s.",
"Segment": "Segment",
"SelectYesIfYouWantToSendEmailsViaServer": "Välj \"Ja\" om du vill eller måste skicka e-post via en namngiven server istället för den lokala e-postfunktionen.",
@@ -333,11 +337,11 @@
"Show": "visa",
"SingleWebsitesDashboard": "Instrumentpanel för enkel sida",
"SmallTrafficYouCanLeaveDefault": "För webbplatser med låg trafik så kan du lämna detta som standard (%s sekunder) och komma åt alla rapporter i realtid.",
- "SmtpEncryption": "SMTP kryptering",
- "SmtpPassword": "SMTP lösenord",
- "SmtpPort": "SMTP port",
- "SmtpServerAddress": "SMTP serveradress",
- "SmtpUsername": "SMTP användarnamn",
+ "SmtpEncryption": "SMTP-kryptering",
+ "SmtpPassword": "SMTP-lösenord",
+ "SmtpPort": "SMTP-port",
+ "SmtpServerAddress": "SMTP-serveradress",
+ "SmtpUsername": "SMTP-användarnamn",
"Source": "Källa",
"StatisticsAreNotRecorded": "Piwik Besöks Spårning är för närvarande inte tillgänglig. Möjliggör spårning igen genom att ställa in Total Statistik - 1 i din config\/config.ini.php file.",
"Subtotal": "Delsumma",
@@ -346,11 +350,15 @@
"TagCloud": "Taggmoln",
"Tax": "Moms",
"TimeAgo": "%s sedan",
+ "TimeFormat": "Tidsformat",
"TimeOnPage": "Tid på sidan",
"Total": "Totalt",
"TotalRatioTooltip": "Det här är %1$s av alla %2$s %3$s.",
"TotalRevenue": "Totala intäkter",
- "TotalVisitsPageviewsActionsRevenue": "(Totalt: %s besök, %s sidvisningar, %s händelser, %s intäkter)",
+ "TotalVisitsPageviewsActionsRevenue": "(Totalt: %1$s besök, %2$s sidvisningar, %3$s händelser, %4$s intäkter)",
+ "TrackingScopeAction": "Åtgärd",
+ "TrackingScopePage": "Sida",
+ "TrackingScopeVisit": "Besök",
"TransitionsRowActionTooltip": "Se vad besökarna gjorde före och efter att ha tittat på den här sidan",
"TransitionsRowActionTooltipTitle": "Öppna övergångar",
"TranslatorName": "<a href=\"http:\/\/xn--skmotoroptimering-zzb.se\/\">Sökmotoroptimering.se<\/a>, <a href=\"http:\/\/www.kampanjjakt.se\/\">Kampanjjakt.se<\/a>, <a href=\"http:\/\/www.lagun.se\/\">Fredrik Astrom<\/a>, <a href=\"http:\/\/www.dumsnal.se\/\">Tony<\/a>",
@@ -360,7 +368,7 @@
"UsePlusMinusIconsDocumentation": "Använd plus- och minusikonerna till höger för att navigera.",
"UserId": "Användar-ID",
"Username": "Användarnamn",
- "UseSMTPServerForEmail": "Använd SMTP server för e-post",
+ "UseSMTPServerForEmail": "Använd SMTP-server för e-post",
"Value": "Värde",
"VBarGraph": "Stapeldiagram",
"View": "Visa",
@@ -371,19 +379,21 @@
"VisitConvertedNGoals": "Besök omvandlade %s mål",
"VisitDuration": "Genomsnittlig besökstid (i sekunder)",
"Visitor": "Besökare",
- "VisitorID": "Besöks-id",
+ "VisitorID": "Besöks-ID",
"VisitorIP": "Besökarens IP",
"Visitors": "Besökare",
"VisitsWith": "Besök med %s",
"VisitorSettings": "Besökarinställningar",
+ "VisitType": "Besökstyp",
"VisitTypeExample": "Till exempel, för att markera alla besökare som har återvänt till webbplatsen, inklusive de som har köpt något i sina tidigare besök, så skulle API-begäran innehålla %s",
"Warning": "Varning",
"WarningPhpVersionXIsTooOld": "Den version av PHP du använder, %s, har nått End of Life (EOL). Du bör uppgradera till en aktuell version eftersom den nuvarande versionen kan innehålla säkerhetsluckor och buggar som har fixats i en senare version av PHP.",
+ "WarningPiwikWillStopSupportingPHPVersion": "Piwik kommer sluta stödja PHP %1$s i nästa major-version. Uppdatera PHP på din server till åtminstone PHP %2$s innan det är för sent.",
"WarningFileIntegrityNoManifest": "Filintegriteten kunde inte kontrolleras eftersom att filen manifest.inc.php saknades.",
"WarningFileIntegrityNoManifestDeployingFromGit": "Om du utvecklar Piwik från Git, är det här meddelandet normalt.",
"WarningFileIntegrityNoMd5file": "Filintegriteten kunde inte slutföras eftersom att funktionen md5_file() saknas.",
- "WarningPasswordStored": "%sVarning:%s Detta lösenord kommer att sparas i konfigurationsfilen och kommer vara synligt för alla som har tillgång till den.",
- "WarningDebugOnDemandEnabled": "Spårningsläge %s är aktiverat. Av säkerhetsskäl bör detta endast vara aktiverat under en kortare period. För att avaktivera det, ställ in %s till %s i %s",
+ "WarningPasswordStored": "%1$sVarning:%2$s Detta lösenord kommer att sparas i konfigurationsfilen och kommer vara synligt för alla som har tillgång till den.",
+ "WarningDebugOnDemandEnabled": "Spårningsläge %1$s är aktiverat. Av säkerhetsskäl bör detta endast vara aktiverat under en kortare period. För att avaktivera det, ställ in %2$s till %3$s i %4$s",
"Website": "Webbplats",
"Weekly": "Veckovis",
"WeeklyReport": "veckovis",
@@ -398,6 +408,7 @@
"YearsDays": "%1$s år %2$s dagar",
"Yes": "Ja",
"YouAreCurrentlyUsing": "Du använder för närvarande Piwik %s.",
+ "YouAreViewingDemoShortMessage": "Du visar demonstrationen av Piwik",
"YouMustBeLoggedIn": "Du måste vara inloggad för att komma åt denna funktion.",
"YourChangesHaveBeenSaved": "Dina ändringar har sparats."
},
@@ -413,12 +424,12 @@
"AnonymousTracking": "Anonym spårning",
"AskForAnonymousTrackingPermission": "När funktionen är aktiverad, kommer Piwik Mobile skicka anonyma användningsdata till piwik.org. Avsikten är att använda dessa data för att hjälpa Piwiks mobila utvecklare att bättre förstå hur appen används. Information som skickas är: menyer och inställningar som klickats på, OS namn och version, eventuella fel som visas i Piwik Mobile. Vi kommer inte att spåra några av dina analysdata. Dessa anonyma uppgifter kommer aldrig att offentliggöras. Du kan inaktivera \/ aktivera anonym spårning under Inställningar när som helst.",
"ChooseHttpTimeout": "Välj HTTP-timeout värde",
- "ChooseMetric": "Välj Variabel",
+ "ChooseMetric": "Välj variabel",
"ChooseReport": "Välj en rapport",
"ChooseSegment": "Välj segment",
"ConfirmRemoveAccount": "Vill du ta bort kontot?",
"DefaultReportDate": "Rapportdatum",
- "EmailUs": "Eposta oss",
+ "EmailUs": "E-posta oss",
"EnableGraphsLabel": "Visa grafer",
"EvolutionGraph": "Historisk graf",
"HelpUsToImprovePiwikMobile": "Vill du aktivera anonym spårning i Piwik Mobile?",
@@ -426,7 +437,7 @@
"HowtoDeleteAnAccountOniOS": "Dra från vänster till höger för att radera ett konto",
"HowtoLoginAnonymous": "Lämna användarnamn och lösenord tomt för anonym inloggning",
"HttpIsNotSecureWarning": "Ditt Piwik tillståndsbevis (token_auth) skickas i klartext om du använder 'HTTP'. Av denna anledning rekommenderar vi HTTPS för säker transport av data över Internet. Vill du fortsätta?",
- "HttpTimeout": "HTTP Timeout",
+ "HttpTimeout": "HTTP timeout",
"IncompatiblePiwikVersion": "Den version av Piwik du använder är inkompatibel med Piwik Mobil 2. Uppdatera din Piwik installation, eller installera Piwik Mobil 1 och försök igen.",
"LastUpdated": "Senast uppdaterad: %s",
"LoadingReport": "Laddar %s",
@@ -436,11 +447,11 @@
"MultiChartLabel": "Visa miniatyrdiagram",
"NavigationBack": "Tillbaka",
"NetworkError": "Nätverksfel",
- "NetworkErrorWithStatusCode": "Ett fel påträffades \"%s\". Begäran svarade med statusen \"%s\". URL'en var \"%s\". Vänligen kontrollera den URL du angivit och felloggar på den här servern för att få mer information om felet och se hur det går att lösa.",
- "NetworkErrorWithStatusCodeShort": "Nätvärksfel %s",
+ "NetworkErrorWithStatusCode": "Ett fel påträffades \"%1$s\". Begäran svarade med statusen \"%2$s\". URL'en var \"%3$s\". Vänligen kontrollera den URL du angivit och felloggar på den här servern för att få mer information om felet och se hur det går att lösa.",
+ "NetworkErrorWithStatusCodeShort": "Nätverksfel %s",
"NetworkNotReachable": "Nätverket är inte tillgängligt",
"NoAccountIsSelected": "Du måste välja ett konto. Skapa ett nytt konto om du ännu inte gjort det.",
- "NoDataShort": "Inga Data",
+ "NoDataShort": "Inga data",
"NoPiwikAccount": "Inget Piwik-konto?",
"NoReportsShort": "Inga rapporter",
"NoVisitorFound": "Inga besökare hittades",
@@ -454,10 +465,10 @@
"RatingDontRemindMe": "Påminn mig inte",
"RatingNotNow": "Inte nu",
"RatingNow": "OK, jag betygsätter den nu",
- "RatingPleaseRateUs": "Piwik Mobile är en gratis programvara, vi skulle uppskatta om du tog en minut till att betygsätta appen i %s. Om du har förslag på nya funktioner eller vill rapportera buggar, vänligen kontakta %s",
+ "RatingPleaseRateUs": "Piwik Mobile är en gratis programvara, vi skulle uppskatta om du tog en minut till att betygsätta appen i %1$s. Om du har förslag på nya funktioner eller vill rapportera buggar, vänligen kontakta %2$s",
"ReleaseToRefresh": "Släpp för att uppdatera...",
"Reloading": "Laddar om...",
- "RequestTimedOutShort": "Nätvärks Timeout fel",
+ "RequestTimedOutShort": "Nätverkstimeout-fel",
"RestrictedCompatibility": "Begränsad tillgänglighet",
"RestrictedCompatibilityExplanation": "Den versionen av Piwik %s du har använder har inte fullt stöd av Piwik Mobil 2. Du kanske kommer stöta på några buggar. Vi rekommenderar att du antingen uppdaterar Piwik till den senaste versionen eller använder Piwik Mobil 1.",
"SaveSuccessError": "Vänligen verifiera inställningar",
@@ -479,7 +490,7 @@
"CompareRows": "Jämför uppgifter",
"ComparingRecords": "Jämför %s rader",
"Documentation": "Klicka på variablerna för att visa dom i deb stora utvecklingsgrafen. Använd shift-klick för att visa flera variabler samtidigt.",
- "MetricBetweenText": "mellan %s och %s",
+ "MetricBetweenText": "mellan %1$s och %2$s",
"MetricChangeText": "%s över perioden",
"MetricMinMax": "%1$s varierade mellan %2$s och %3$s över perioden",
"MetricsFor": "Statistik för %s",
diff --git a/lang/ta.json b/lang/ta.json
index fb05513c2c..c30c630e76 100644
--- a/lang/ta.json
+++ b/lang/ta.json
@@ -10,6 +10,7 @@
"AllWebsitesDashboard": "அனைத்து இணையதள கட்டுப்பாட்டு அறை",
"And": "மற்றும்",
"API": "ஏபிஐ",
+ "ArchivingTriggerDescription": "Recomanat per instal·lacions grans de Piwik, es pot %1$sconfigurar una %2$stasca programada per processar les entrades automàticament.",
"AuthenticationMethodSmtp": "SMTP க்கான உறுதிப்படுத்தும் முறை",
"AverageOrderValue": "சராசரி ஒழுங்கு மதிப்பு",
"AveragePrice": "சராசரி விலை",
@@ -18,9 +19,7 @@
"Broken": "உடைவு",
"Cancel": "ரத்து",
"ChangePassword": "கடவுச்சொல்லை மாற்ற",
- "ChooseDate": "திகதியை தெரிவுசெய்ய",
"ChoosePeriod": "காலப்பகுதியை தெரிவு செய்ய",
- "ChooseWebsite": "இணையதளத்தை தெரிவு செய்ய",
"ClickHere": "மேலதிக தகவல்களுக்கு இங்கே சொடுக்குக",
"Close": "மூட",
"ColumnActionsPerVisit": "வருகைக்கேட்ற்ற நடவடிக்கைகள்",
@@ -49,6 +48,7 @@
"ColumnUniqueExits": "தனித்துவமான வெளியேறல்கள்",
"ColumnValuePerVisit": "ஒரு வருகைக்கான வருமானம்",
"ColumnVisitDuration": "வருகை காலப்பகுதி (செக்கன்களில்)",
+ "ConfigFileIsNotWritable": "El fitxer de configuració del Piwiki %1$s no es pot modificar, alguns dels canvis que has fet no es guardaran. Si us plau %2$s canvia els permisos del fitxer de configuració per tal que es pugui modificar.",
"Continue": "தொடர",
"ContinueToPiwik": "பிவிக்-க்கு தொடர்க",
"CurrentMonth": "இந்த மாதம்",
@@ -60,7 +60,7 @@
"Date": "திகதி",
"DateRange": "திகதி வீச்சு",
"DateRangeFrom": "இருந்து",
- "DateRangeFromTo": "%s இருந்து %s வரை",
+ "DateRangeFromTo": "%1$s இருந்து %2$s வரை",
"DateRangeTo": "க்கு",
"DaysHours": "%1$s நாட்கள் %2$s மணித்தியாலங்கள்",
"Default": "பொதுஅமைப்பு",
@@ -79,6 +79,15 @@
"EcommerceOrders": "மின் வணிக கட்டளைகள்",
"Edit": "மாற்ற",
"Error": "பிழை",
+ "ExceptionInvalidAggregateReportsFormat": "El format de informes agregats '%1$s' no és vàlid. Proveu-ne algun dels següents en el seu lloc: %2$s.",
+ "ExceptionInvalidDateFormat": "El format de data ha de ser: %1$s o una altra paraula clau suportada per la funció %2$s (vegeu %3$s per més informació)",
+ "ExceptionInvalidDateRange": "La data '%1$s' no és un rang correcte de data. Hauria de tenir el format següent: %2$s.",
+ "ExceptionInvalidPeriod": "El període '%1$s' no està suportat. Proveu-ne algun dels següents en el seu lloc: %2$s.",
+ "ExceptionInvalidRendererFormat": "El format generador '%1$s' no és vàlid. Proveu-ne un dels següents en el seu lloc: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "El format de l'informe '%1$s' no és vàlid. Proveu-ne un dels següent en el seu lloc: %2$s.",
+ "ExceptionInvalidStaticGraphType": "El gràfic estàtic tipus '%1$s' no és vàlid. Proveu-ne un dels següents en el seu lloc: %2$s.",
+ "ExceptionMethodNotFound": "El mètode '%1$s' no existeix o no està disponible en el mòdul '%2$s'.",
+ "ExceptionUnreadableFileDisabledMethod": "El fitxer de configuració {%1$s} no s'ha pogut llegir. El vostre host pot tenir deshabilitat %2$s.",
"Export": "ஏற்றுமதி",
"Faq": "கேள்விகள்",
"First": "முதல்",
@@ -102,6 +111,7 @@
"Logout": "வெளியேற",
"MainMetrics": "முக்கிய அளவீடுகள்",
"Matches": "பொருத்தங்கள்",
+ "MediumToHighTrafficItIsRecommendedTo": "Per llocs de mig i alt transit, recomanem processar informes per avui com a molt cada mitja hora (%1$s segons) o cada hora (%2$s segons)",
"Mobile": "கைபேசி",
"Monthly": "மாதாந்த",
"MonthlyReport": "மாதாந்த",
@@ -127,10 +137,12 @@
"OperationLessThan": "இதை விட குறைவாக",
"OperationNotEquals": "சமனில்லை",
"Options": "தெரிவுகள்",
+ "OrCancel": "o %1$s cancel·la %2$s",
"Others": "மற்றவை",
"Outlinks": "வெளி இணைப்புகள்",
"Overview": "மேற்பார்வை",
"Pages": "பக்கங்கள்",
+ "ParameterMustIntegerBetween": "El paràmetre %1$s ha de ser un enter entre %2$s i %3$s",
"Password": "கடவுச்சொல்",
"Period": "காலப்பகுதி",
"Piechart": "பை வரைபு",
@@ -156,6 +168,7 @@
"Clear": "சுத்தப்படுத்து",
"SearchNoResults": "எந்த முடிவுகளும் இல்லை",
"SeeAll": "எல்லாவற்றையும் காண",
+ "SeeTheOfficialDocumentationForMoreInformation": "Vegeu la %1$sinformació oficial%2$s per més informació.",
"Settings": "அமைப்புகள்",
"Shipping": "அனுப்புதல்",
"Show": "காண்பி",
@@ -192,6 +205,7 @@
"Visitors": "வருகையாளர்கள்",
"VisitsWith": "%s உடன் வருகைகள்",
"Warning": "எச்சரிக்கை",
+ "WarningPasswordStored": "%1$sAlerta:%2$s Aquesta contrasenya es guardarà en un fitxer de configuració visible on tothom pot accedir.",
"Website": "இணையப்பக்கம்",
"Weekly": "வாராந்தம்",
"WeeklyReport": "வாராந்த",
@@ -244,6 +258,6 @@
"RowEvolution": {
"CompareRows": "பதிவுகளுடன் ஒப்பிட",
"ComparingRecords": "%s வரிகளுடன் ஒப்பிடுகிறது",
- "MetricBetweenText": "%s இருந்து %s வரை"
+ "MetricBetweenText": "%1$s இருந்து %2$s வரை"
}
} \ No newline at end of file
diff --git a/lang/te.json b/lang/te.json
index a18c1d9a3e..af5b471156 100644
--- a/lang/te.json
+++ b/lang/te.json
@@ -10,10 +10,8 @@
"AverageQuantity": "సగటు పరిమాణం",
"BackToPiwik": "తిరిగి పివిక్‌కి",
"Cancel": "రద్దుచేయి",
- "ChooseDate": "తేదీని ఎంచుకోండి",
"ChooseLanguage": "భాషని ఎంచుకోండి",
"ChoosePeriod": "కాలవ్యవధిని ఎంచుకోండి",
- "ChooseWebsite": "వెబ్ సైటుని ఎంచుకోండి",
"Close": "మూసివేయి",
"ColumnActionsPerVisit": "సందర్శనకి చర్యలు",
"ColumnConversionRate": "మార్పిడి రేటు",
@@ -77,7 +75,7 @@
"NVisits": "%s సందర్శనలు",
"Ok": "సరే",
"OneVisit": "1 సందర్శన",
- "OrCancel": "లేదా %s రద్దుచేయి %s",
+ "OrCancel": "లేదా %1$s రద్దుచేయి %2$s",
"Others": "ఇతరాలు",
"Outlinks": "బయటిలంకెలు",
"Overview": "అవలోకనం",
diff --git a/lang/th.json b/lang/th.json
index 35a3138457..bdc397f1ec 100644
--- a/lang/th.json
+++ b/lang/th.json
@@ -9,7 +9,7 @@
"AllWebsitesDashboard": "แผงควบคุมเว็บไซต์ทั้งหมด",
"API": "API",
"ArchivingInlineHelp": "เหมาะสำหรับเว็บไซต์ที่มีการจราจรสูง เราแนะนำให้ปิดการใช้งาน Piwik ในการเรียกเก็บจากเบราว์เซอร์ แต่เราขอแนะนำให้คุณติดตั้ง Cron job ในการประมวลผลเพื่อรายงาน Piwik ทุกชั่วโมง",
- "ArchivingTriggerDescription": "แนะนำสำหรับการติดตั้ง Piwik ขนาดใหญ่ที่คุณจะต้อง %s ติดตั้ง Cron job%s เพื่อดำเนินการรายงานโดยอัตโนมัติ",
+ "ArchivingTriggerDescription": "แนะนำสำหรับการติดตั้ง Piwik ขนาดใหญ่ที่คุณจะต้อง %1$s ติดตั้ง Cron job%2$s เพื่อดำเนินการรายงานโดยอัตโนมัติ",
"AuthenticationMethodSmtp": "วิธีการตรวจสอบข้อมูลของ SMTP",
"AverageOrderValue": "มูลค่าการสั่งซื้อเฉลี่ย",
"AveragePrice": "ราคาเฉลี่ย",
@@ -19,10 +19,8 @@
"Cancel": "ยกเลิก",
"ChangePassword": "เปลี่ยนรหัสผ่าน",
"ChangeTagCloudView": "โปรดทราบว่าคุณสามารถดูรายงานในรูปแบบอื่น ๆ กว่าเป็นแท็ก Cloud ใช้การควบคุมที่ด้านล่างของรายงานที่จะทำเช่นนั้น",
- "ChooseDate": "เลือกวันที่",
"ChooseLanguage": "เลือกภาษา",
"ChoosePeriod": "เลือกช่วงเวลา",
- "ChooseWebsite": "เลือกเว็บไซต์",
"ClickHere": "คลิกที่นี่สำหรับข้อมูลเพิ่มเติม",
"Close": "ปิด",
"ColumnActionsPerVisit": "การดำเนินการต่อผู้ชม",
@@ -67,7 +65,7 @@
"ColumnValuePerVisit": "ค่าต่อผู้ชม",
"ColumnVisitDuration": "ระยะเวลาเข้าเยี่ยมชม (เป็นวินาที)",
"ColumnVisitsWithConversions": "ผู้เข้าชมกับการเปลงข้อมูล",
- "ConfigFileIsNotWritable": "การตั้งค่าไฟล์ Piwik %s ไม่สามารถเขียนบางส่วนของการเปลี่ยนแปลงได้ ซึ่งอาจจะไม่ถูกบันทึก %s กรุณาเปลี่ยนสิทธิ์ของไฟล์การตั้งค่าเพื่อให้สามารถเขียนได้",
+ "ConfigFileIsNotWritable": "การตั้งค่าไฟล์ Piwik %1$s ไม่สามารถเขียนบางส่วนของการเปลี่ยนแปลงได้ ซึ่งอาจจะไม่ถูกบันทึก %2$s กรุณาเปลี่ยนสิทธิ์ของไฟล์การตั้งค่าเพื่อให้สามารถเขียนได้",
"Continue": "ต่อไป",
"ContinueToPiwik": "ต่อไปยัง Piwik",
"CurrentMonth": "เดือนนี้",
@@ -80,7 +78,7 @@
"Date": "วันที่",
"DateRange": "ช่วงวันที่:",
"DateRangeFrom": "จาก",
- "DateRangeFromTo": "จาก %s ไปยัง %s",
+ "DateRangeFromTo": "จาก %1$s ไปยัง %2$s",
"DateRangeTo": "ถึง",
"DaysHours": "%1$s วัน %2$s ชั่วโมง",
"DaysSinceFirstVisit": "นับตั้งแต่ครั้งแรก",
@@ -112,17 +110,17 @@
"ExceptionFileIntegrity": "พบข้อผิดพลาดในการตรวจสอบความสมบูรณ์: %s",
"ExceptionFilesizeMismatch": "ขนาดของไฟล์ไม่ตรงกัน: %1$s (ขนาดไฟล์ที่คาดไว้: %2$s, พบ: %3$s)",
"ExceptionIncompatibleClientServerVersions": "คุณ %1$s เวอร์ชั่นของไคลเอ็นต์ %2$s ซึ่งไม่เข้ากันกับเวอร์ชั่นของเซิร์ฟเวอร์ %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "รูปแบบการรวมรายงาน '%s' ไม่ถูกต้อง กรุณาลองรายการดังต่อไปนี้แทน: %s",
+ "ExceptionInvalidAggregateReportsFormat": "รูปแบบการรวมรายงาน '%1$s' ไม่ถูกต้อง กรุณาลองรายการดังต่อไปนี้แทน: %2$s",
"ExceptionInvalidArchiveTimeToLive": "วันนี้เวลาเก็บอยู่จะต้องเป็นจำนวนวินาทีที่มากกว่าศูนย์",
- "ExceptionInvalidDateFormat": "รูปแบบเวลาจะเป็น: %s หรือคีย์บอร์ดใดที่รองรับฟังก์ชั่น %s (ดู %s สำหรับข้อมูลเพิ่มเติม)",
- "ExceptionInvalidDateRange": "วันที่ '%s' ไม่ใช่ช่วงวันที่ถูกต้อง ควรมีรูปแบบดังนี้: %s",
- "ExceptionInvalidPeriod": "ช่วงเวลา '%s' ไม่สนับสนุน ลองดังต่อไปนี้แทน: %s",
- "ExceptionInvalidRendererFormat": "รูปแบบ Renderer '%s' ไม่ถูกต้อง ลองใช้ดังต่อไปนี้แทน: %s",
- "ExceptionInvalidReportRendererFormat": "รูปแบบรายงาน '%s' ไม่ถูกต้อง ลองพยายามใหม่อีกครั้งสำหรับสิ่งต่อไปนี้แทน: %s",
- "ExceptionInvalidStaticGraphType": "ประเภทของกราฟสถิติ '%s' ไม่ถูกต้อง กรุณาลองรายการดังต่อไปนี้แทน: %s",
+ "ExceptionInvalidDateFormat": "รูปแบบเวลาจะเป็น: %1$s หรือคีย์บอร์ดใดที่รองรับฟังก์ชั่น %2$s (ดู %3$s สำหรับข้อมูลเพิ่มเติม)",
+ "ExceptionInvalidDateRange": "วันที่ '%1$s' ไม่ใช่ช่วงวันที่ถูกต้อง ควรมีรูปแบบดังนี้: %2$s",
+ "ExceptionInvalidPeriod": "ช่วงเวลา '%1$s' ไม่สนับสนุน ลองดังต่อไปนี้แทน: %2$s",
+ "ExceptionInvalidRendererFormat": "รูปแบบ Renderer '%1$s' ไม่ถูกต้อง ลองใช้ดังต่อไปนี้แทน: %2$s",
+ "ExceptionInvalidReportRendererFormat": "รูปแบบรายงาน '%1$s' ไม่ถูกต้อง ลองพยายามใหม่อีกครั้งสำหรับสิ่งต่อไปนี้แทน: %2$s",
+ "ExceptionInvalidStaticGraphType": "ประเภทของกราฟสถิติ '%1$s' ไม่ถูกต้อง กรุณาลองรายการดังต่อไปนี้แทน: %2$s",
"ExceptionInvalidToken": "Token นี้ไม่สมบูรณ์",
"ExceptionLanguageFileNotFound": "ไม่พบไฟล์ภาษา '%s'",
- "ExceptionMethodNotFound": "ขั้นตอน '%s' ไม่มีอยู่หรือไม่สามารถใช้ได้ในโมดูล '%s' นี้ได้",
+ "ExceptionMethodNotFound": "ขั้นตอน '%1$s' ไม่มีอยู่หรือไม่สามารถใช้ได้ในโมดูล '%2$s' นี้ได้",
"ExceptionMissingFile": "ไฟล์สูญหาย: %s",
"ExceptionNonceMismatch": "ไม่สามารถตรวจสอบความปลอดภัยของ token ในฟอร์มนี้ได้",
"ExceptionPrivilege": "คุณไม่สามารถเข้าถึงทรัพยากรนี้ จำเป็นต้องใช้ %s สำหรับการเข้าใช้งาน",
@@ -130,7 +128,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "คุณไม่สามารถเข้าถึงทรัพยากรนี้ จำเป็นต้องใช้ %s เข้าใช้งานได้ อย่างน้อยหนึ่งเว็บไซต์",
"ExceptionUnableToStartSession": "ไม่สามารถเริ่มต้นเซสชัน",
"ExceptionUndeletableFile": "ไม่สามารถทำการลบ %s",
- "ExceptionUnreadableFileDisabledMethod": "ไฟล์การตั้งค่า {%s} ไม่สามารถอ่านได้ โฮสต์ของคุณอาจมีปิดการทำงาน %s",
+ "ExceptionUnreadableFileDisabledMethod": "ไฟล์การตั้งค่า {%1$s} ไม่สามารถอ่านได้ โฮสต์ของคุณอาจมีปิดการทำงาน %2$s",
"Export": "ส่งออก",
"ExportAsImage": "ส่งออกเป็นรูปภาพ",
"ExportThisReport": "ส่งออกรายงานในรูปแบบอื่น",
@@ -162,7 +160,7 @@
"Locale": "th_TH.UTF-8",
"Logout": "ออกจากระบบ",
"MainMetrics": "ตัวชี้วัดหลัก",
- "MediumToHighTrafficItIsRecommendedTo": "สำหรับขนาดกลางไปยังเว็บไซต์การจราจรที่สูง เราขอแนะนำในการประมวลผลรายงานสำหรับวันนี้ โดยส่วนใหญ่จะเป็นทุกครึ่งชั่วโมง (%s วินาที) หรือทุกชั่วโมง (%s วินาที)",
+ "MediumToHighTrafficItIsRecommendedTo": "สำหรับขนาดกลางไปยังเว็บไซต์การจราจรที่สูง เราขอแนะนำในการประมวลผลรายงานสำหรับวันนี้ โดยส่วนใหญ่จะเป็นทุกครึ่งชั่วโมง (%1$s วินาที) หรือทุกชั่วโมง (%2$s วินาที)",
"Metadata": "เมตาดาต้า",
"Metric": "ตัวชี้วัด",
"Metrics": "ตัวชี้วัด",
@@ -197,13 +195,13 @@
"OnlyUsedIfUserPwdIsSet": "ถ้าใช้เฉพาะรูปแบบชื่อผู้ใช้\/รหัสผ่านถูกตั้งค่า ควรจะขอให้ผู้ให้บริการของคุณหากในกรณีที่คุณไม่แน่ใจว่าวิธีที่จะใช้นี้",
"OpenSourceWebAnalytics": "สคริปต์วิเคราะห์เว็บไซต์ด้วยซอร์ฟแวร์เสรี",
"OptionalSmtpPort": "ตัวเลือกเสริม ค่าเริ่มต้นถึง 25 สำหรับการเข้ารหัสและ TLS SMTP, และ 465 สำหรับ SSL SMTP",
- "OrCancel": "หรือ %s ยกเลิก %s",
+ "OrCancel": "หรือ %1$s ยกเลิก %2$s",
"Others": "อื่นๆ",
"Outlink": "Outlink",
"Outlinks": "ลิงค์ออก",
"Overview": "ภาพรวม",
"Pages": "หน้า",
- "ParameterMustIntegerBetween": "พารามิเตอร์ %s จะต้องเป็นค่าจำนวนเต็มระหว่าง %s และ %s",
+ "ParameterMustIntegerBetween": "พารามิเตอร์ %1$s จะต้องเป็นค่าจำนวนเต็มระหว่าง %2$s และ %3$s",
"Password": "รหัสผ่าน",
"Period": "ช่วงเวลา",
"Piechart": "กราฟวงกลม",
@@ -238,7 +236,7 @@
"Save": "บันทึก",
"SaveImageOnYourComputer": "เพื่อบันทึกรูปภาพลงบนคอมพิวเตอร์ของคุณ, คลิกขวาที่รูปภาพแล้วเลือก \"บันทึกภาพเป็น...\"",
"Search": "ค้นหา",
- "SeeTheOfficialDocumentationForMoreInformation": "สำหรับข้อมูลเพิ่มเติม ให้ดู %s เอกสารอย่างเป็นทางการ %s",
+ "SeeTheOfficialDocumentationForMoreInformation": "สำหรับข้อมูลเพิ่มเติม ให้ดู %1$s เอกสารอย่างเป็นทางการ %2$s",
"SelectYesIfYouWantToSendEmailsViaServer": "เมื่อเลือก \"ใช่\" ถ้าหากคุณต้องการหรือมีการส่งอีเมล์ผ่านเนมเซิร์ฟเวอร์ ของฟังก์ชั่นการส่งเมล์ภายใน",
"Settings": "ตั้งค่า",
"Shipping": "การจัดส่งสินค้า",
@@ -281,7 +279,7 @@
"Warning": "คำเตือน",
"WarningFileIntegrityNoManifest": "ไม่สามารถทำการตรวจสอบความสมบูรณ์ของแฟ้มเนื่องจากการขาดหายไปของไฟล์ manifest.inc.php",
"WarningFileIntegrityNoMd5file": "ตรวจสอบความสมบูรณ์ของแฟ้มอาจไม่เสร็จสมบูรณ์ เนื่องจากการขาดหายไปของฟังก์ชั่น md5_file()",
- "WarningPasswordStored": "%sคำเตือน:%s รหัสผ่านนี้จะถูกเก็บไว้ในไฟล์ config ให้ทุกคนมองเห็นอย่างไรก็ตามคุณสามารถเข้าถึงได้ดังกล่าวนี้",
+ "WarningPasswordStored": "%1$sคำเตือน:%2$s รหัสผ่านนี้จะถูกเก็บไว้ในไฟล์ config ให้ทุกคนมองเห็นอย่างไรก็ตามคุณสามารถเข้าถึงได้ดังกล่าวนี้",
"Website": "เว็บไซต์",
"Weekly": "แต่ละสัปดาห์",
"WeeklyReports": "รายงาน รายอาทิตย์",
@@ -323,7 +321,7 @@
},
"RowEvolution": {
"CompareRows": "เปรียบเทียบเรคคอร์ด",
- "MetricBetweenText": "ระหว่าง %s และ %s",
+ "MetricBetweenText": "ระหว่าง %1$s และ %2$s",
"PickAnotherRow": "เลือกแถวอื่นๆที่ต้องการเปรียบเทียบ",
"PickARow": "เลือกแถวที่ต้องการเปรียบเทียบ"
}
diff --git a/lang/tl.json b/lang/tl.json
index cf93d00048..006b1889f0 100644
--- a/lang/tl.json
+++ b/lang/tl.json
@@ -11,7 +11,7 @@
"And": "at",
"API": "API",
"ArchivingInlineHelp": "Para sa katam-tamang dami ng traffic websites inirerekomenda na huwag paganahin ang Piwik-archive upang ma-trigger mula sa browser. Sa halip aming nirerekomenda na mag setup ng cron job upang i-proseso ang mga ulat kada oras.",
- "ArchivingTriggerDescription": "Inirerekomenda para sa mas malakihang pag-install ng Piwik kailangan mong %ssetup ang cron job%s upang awtomatikong iproseso ang mga ulat.",
+ "ArchivingTriggerDescription": "Inirerekomenda para sa mas malakihang pag-install ng Piwik kailangan mong %1$ssetup ang cron job%2$s upang awtomatikong iproseso ang mga ulat.",
"AuthenticationMethodSmtp": "Authentication method para sa SMTP",
"AverageOrderValue": "Average na Halaga ng Order",
"AveragePrice": "Pamantayang presyo",
@@ -23,10 +23,8 @@
"CannotUnzipFile": "Hindi ma-unzip ang file %1$s: %2$s",
"ChangePassword": "Baguhin ang password",
"ChangeTagCloudView": "Pakitandaan na maari mong tignan ang mga ulat sa ibat-ibang paraan bilang tag cloud. Upang magamit ito mangyaring gamitin ang mga kontrol na nasa ibaba ng ulat.",
- "ChooseDate": "Pumili ng petsa",
"ChooseLanguage": "pumili ng wika",
"ChoosePeriod": "Pumili ng panahon",
- "ChooseWebsite": "Pumili ng website",
"ClickHere": "Mag-click dito para sa karagdagang impormasyon.",
"ClickToChangePeriod": "I-click muli upang baguhin ang tagal ng period.",
"Close": "I-sara",
@@ -78,7 +76,7 @@
"ColumnViewedAfterSearchDocumentation": "Ang bilang ng numer na bumisita sa pahinang ito matapos maghanap sa iyong website at nag-click sa pahinang ito sa mga lumabas na resulta",
"ColumnVisitDuration": "Tagal ng pagbisita(sa segudon)",
"ColumnVisitsWithConversions": "Mga pagbisitang may mga Conversion",
- "ConfigFileIsNotWritable": "Ang Piwik configuration file %s ay hindi writable Ang iba sa iyong mga binago ay maaring hindi ma saved. %s Mangyaring baguhin ang permiso sa config upang maging writable ito.",
+ "ConfigFileIsNotWritable": "Ang Piwik configuration file %1$s ay hindi writable Ang iba sa iyong mga binago ay maaring hindi ma saved. %2$s Mangyaring baguhin ang permiso sa config upang maging writable ito.",
"Continue": "Ipagpatuloy",
"ContinueToPiwik": "Magpatuloy sa Piwik",
"CurrentMonth": "Kasalukuyang buwan",
@@ -125,26 +123,29 @@
"Edit": "I-edit",
"EncryptedSmtpTransport": "Ipasok ang kinakailangan na transport layer encryption na kinakailangan ng iyong SMTP server.",
"Error": "Mali",
- "ErrorRequest": "Oops? nagkaroon ng problema habang isinasagawa ang iyong request. Marahil may isang pansamantalang isyu sa server o marahil na iyong nirerequest ang ulat ng mga kasamang maraming data. Mangyaring subukan ito mul. Kung ang error na ito ay patuloy pa rin ng paulit-ulit mangyarin %s kontakin ang iyong Piwik admnistrator %s para sa mga tulong.",
+ "ErrorRequest": "Oops? nagkaroon ng problema habang isinasagawa ang iyong request. Marahil may isang pansamantalang isyu sa server o marahil na iyong nirerequest ang ulat ng mga kasamang maraming data. Mangyaring subukan ito mul. Kung ang error na ito ay patuloy pa rin ng paulit-ulit mangyarin %1$s kontakin ang iyong Piwik admnistrator %2$s para sa mga tulong.",
"EvolutionOverPeriod": "Ebolusyon sa paglipas ng panahon",
"ExceptionCheckUserHasSuperUserAccessOrIsTheUser": "Ang user ay kailangang maging alinman sa Super User o user '%s' mismo.",
"ExceptionFileIntegrity": "Nabigo ang integrity check: %s",
"ExceptionIncompatibleClientServerVersions": "Ang iyong %1$s bersyon ng client ay %2$s kung saan ay hindi tugma sa bersyon ng server %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Ang pinagsama-samang mga hindi wastong format '%s'. Subukan ang alinman sa mga sumusunod sa halip: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Ang pinagsama-samang mga hindi wastong format '%1$s'. Subukan ang alinman sa mga sumusunod sa halip: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Ngayon ang oras ng archive upang mabuhay ay dapat bilang ng segundo na higit pa sa zero",
- "ExceptionInvalidDateFormat": "Ang format ng petsa ay dapat na: %s o anumang keyword na suportado ng function na %s (tingnan ang %s para sa karagdagang impormasyon).",
- "ExceptionInvalidDateRange": "Ang petsa '%s' ay wala sa wastong hanay ng petsa. Dapat itong magkaroon ng mga sumusunod na format: %s.",
- "ExceptionInvalidPeriod": "Ang period ng '%s' ay hindi suportado. Sa halip ay subukan ang alinman sa mga sumusunod: %s",
- "ExceptionInvalidReportRendererFormat": "%s' ay hindi wastong format ng ulat. Sa halip ay subukan ang alinman sa mga sumusunod: %s.",
+ "ExceptionInvalidDateFormat": "Ang format ng petsa ay dapat na: %1$s o anumang keyword na suportado ng function na %2$s (tingnan ang %3$s para sa karagdagang impormasyon).",
+ "ExceptionInvalidDateRange": "Ang petsa '%1$s' ay wala sa wastong hanay ng petsa. Dapat itong magkaroon ng mga sumusunod na format: %2$s.",
+ "ExceptionInvalidPeriod": "Ang period ng '%1$s' ay hindi suportado. Sa halip ay subukan ang alinman sa mga sumusunod: %2$s",
+ "ExceptionInvalidRendererFormat": "'%1$s' ay hindi wastong format ng renderer. Sa halip ay subukan ang alinman sa mga sumusunod: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "'%1$s' ay hindi wastong format ng ulat. Sa halip ay subukan ang alinman sa mga sumusunod: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Ang uri ng Static graph '%1$s' ay hindi wasto. Sa halip ay subukan ang alinman sa mga sumusunod: %2$s.",
"ExceptionInvalidToken": "Token ay hindi wasto.",
"ExceptionLanguageFileNotFound": "Hindi nahanap ang file Wika na '%s'.",
+ "ExceptionMethodNotFound": "Ang module ng '%1$s' ay hindi nag-eexist o hindi available sa module '%2$s'.",
"ExceptionMissingFile": "Nawawalang file: %s",
"ExceptionNonceMismatch": "Hindi ma-verify ang security token sa form na ito.",
"ExceptionPrivilege": "Hindi mo maaaring i-access ang resource na ito dahil nangangailangan ito ng access ng %s.",
"ExceptionPrivilegeAtLeastOneWebsite": "Hindi mo maaaring i-access ang resources na ito dahil ito ay nangangailangan ng %s access na hindi bababa sa isa.",
"ExceptionUnableToStartSession": "Hindi masimulan ang session.",
"ExceptionUndeletableFile": "Hindi matanggal ang %s",
- "ExceptionUnreadableFileDisabledMethod": "Ang configuration file {%s} ay hindi mabasa. Maaring hindi pinagana ng iyong host ang %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Ang configuration file {%1$s} ay hindi mabasa. Maaring hindi pinagana ng iyong host ang %2$s.",
"ExceptionReportNotFound": "Wala pang ganitong ulat na iyong ni-rerequest.",
"ExceptionWidgetNotFound": "Wala pang ganitong widget na iyong ni-rerequest.",
"ExceptionReportNotEnabled": "Ang hinihiling na ulat ay hindi gumagana. Ibig sabihin nito na marahil ang plugin na nag sasagawa ng report ay hindi gumagana o kaya ikaw ay walang permiso upang ma-access ang report na ito.",
@@ -190,6 +191,7 @@
"Logout": "Mag-sign out",
"MainMetrics": "Pangunahing sukatan",
"Matches": "Matches",
+ "MediumToHighTrafficItIsRecommendedTo": "Para sa may katam-taman hanggang mataas na website traffic aming nirerekomenda na e-proseso ang ulat para sa ngayon araw o kada kalahating oras (%1$s segundo) o bawat oras (%2$s segundo)",
"Metadata": "Metadata",
"Metric": "Metrik",
"Metrics": "Mga Sukatan",
@@ -238,7 +240,7 @@
"OperationNotEquals": "hindi katumbas",
"OptionalSmtpPort": "Opsyonal. Ang mga default sa 25 ay para sa hindi na-encrypt at TLS SMTP at 465 para sa SSL SMTP.",
"Options": "Mga Pagpipilian",
- "OrCancel": "o %s Kanselahin ang %s",
+ "OrCancel": "o %1$s Kanselahin ang %2$s",
"Others": "Iba",
"Outlink": "Outlink",
"Outlinks": "Mga Outlink",
@@ -246,8 +248,8 @@
"OverlayRowActionTooltipTitle": "Buksan ang Overlay ng Pahina",
"Overview": "Overview",
"Pages": "pahina",
- "Pagination": "%s - %s ng %s",
- "ParameterMustIntegerBetween": "Ang parameter %s ay dapat na isang integer value sa pagitan ng %s at %s.",
+ "Pagination": "%1$s - %2$s ng %3$s",
+ "ParameterMustIntegerBetween": "Ang parameter %1$s ay dapat na isang integer value sa pagitan ng %2$s at %3$s.",
"Password": "Password",
"Period": "Panahon",
"Piechart": "Piechart",
@@ -292,7 +294,7 @@
"Clear": "Klaro",
"SearchNoResults": "Walang mga resulta",
"SeeAll": "tingnan lahat",
- "SeeTheOfficialDocumentationForMoreInformation": "Tingan ang %s opisyal na dokumentasyon %s para sa karagdagang impormasyon.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Tingan ang %1$s opisyal na dokumentasyon %2$s para sa karagdagang impormasyon.",
"SeeThisFaq": "Tingnan ang %1$s this faq %2$s.",
"Segment": "Bahagi",
"SelectYesIfYouWantToSendEmailsViaServer": "Piliin ang \"Oo\" kung gusto mo o magpadala ng e-mail sa pamamagitan ng isang server sa halip na ang mga lokal na mail function.",
@@ -339,7 +341,7 @@
"MultiChartLabel": "Ipakita ang sparklines",
"NavigationBack": "Balik",
"NetworkError": "Error sa Network",
- "NetworkErrorWithStatusCode": "Nagkaroon ng error \"%s\". Ang iyong request ay bumalik na may kasamang status \"%s\". URL ay \"%s\". Mangyaring suriin ang ipinasok na URL at ang mga nakalagay na error sa server na ito upang makakita pa ng higit pang impormasyon tungkol sa error at paanu ito malulutas.",
+ "NetworkErrorWithStatusCode": "Nagkaroon ng error \"%1$s\". Ang iyong request ay bumalik na may kasamang status \"%2$s\". URL ay \"%3$s\". Mangyaring suriin ang ipinasok na URL at ang mga nakalagay na error sa server na ito upang makakita pa ng higit pang impormasyon tungkol sa error at paanu ito malulutas.",
"NetworkErrorWithStatusCodeShort": "Network Error sa %s",
"NetworkNotReachable": "Hindi maabot ang network",
"NoAccountIsSelected": "Kailangan mong pumili ng isang account. Magdagdag ng isang bagong account kung hindi ka pa nakaka pag configure ng kahit na isa.",
@@ -357,7 +359,7 @@
"RatingDontRemindMe": "Huwag ipaalala sa akin",
"RatingNotNow": "Hindi ngayon",
"RatingNow": "OK I-rarate ko na ito ngayon",
- "RatingPleaseRateUs": "Ang Piwik Mobile App ay Libreng Software kami ay lubos na nagagalak sa pag-gugul ng 1 minuto upang e-rate ang na to sa %s. Kung meroon kayong suhesyon sa mga bagong features o di kaya may mga nakitang bug mangyaring makipag-ugnayan sa %s",
+ "RatingPleaseRateUs": "Ang Piwik Mobile App ay Libreng Software kami ay lubos na nagagalak sa pag-gugul ng 1 minuto upang e-rate ang na to sa %1$s. Kung meroon kayong suhesyon sa mga bagong features o di kaya may mga nakitang bug mangyaring makipag-ugnayan sa %2$s",
"ReleaseToRefresh": "I-release upang i-refresh ...",
"Reloading": "Muling pag-load ...",
"RequestTimedOutShort": "Network Timeout Error",
@@ -382,7 +384,7 @@
"CompareRows": "Ihambing ang mga talaan",
"ComparingRecords": "Paghahambing ng %s mga row",
"Documentation": "I-click ang sukatan upang ipakita ang mga ito sa malaking graph. Gamitin ang shift-click upang ipakita ang maramihang mga sukatan nang sabay-sabay.",
- "MetricBetweenText": "mula %s sa %s",
+ "MetricBetweenText": "mula %1$s sa %2$s",
"MetricChangeText": "pagbabago ng %s sa paglipas ng panahon",
"MetricMinMax": "%1$s ay nasa pagitan ng %2$s at %3$s sa paglipas ng panahon",
"MetricsFor": "Mga sukatan para sa %s",
diff --git a/lang/tr.json b/lang/tr.json
index 93fdace4ae..14a9bdb103 100644
--- a/lang/tr.json
+++ b/lang/tr.json
@@ -20,10 +20,8 @@
"Cancel": "İptal",
"CannotUnzipFile": "Zip'den çıkarılamıyor %1$s: %2$s",
"ChangePassword": "Şifre değiştir",
- "ChooseDate": "Tarih Seçimi",
"ChooseLanguage": "Dil seçin",
"ChoosePeriod": "Zaman aralığı seçin",
- "ChooseWebsite": "Web sayfası seçin",
"ClickHere": "Daha fazla bilgi için buraya tıklayın.",
"ClickToChangePeriod": "Aralığı değiştirmek için tekrar tıklayın.",
"Close": "Kapat",
@@ -34,7 +32,7 @@
"ColumnAvgTimeOnSiteDocumentation": "Bir ziyaretin ortalama süresi.",
"ColumnBounceRate": "Hemen çıkma oranı",
"ColumnBounces": "Sıçramalar",
- "ColumnConversionRate": "DÖnüşüm Oranı",
+ "ColumnConversionRate": "Dönüşüm Oranı",
"ColumnDestinationPage": "Hedef Sayfa",
"ColumnEntrances": "Girişler",
"ColumnEntrancesDocumentation": "Bu sayfadan başlayan ziyaret sayısı",
@@ -77,7 +75,7 @@
"Date": "Tarih",
"DateRange": "Tarih aralığı:",
"DateRangeFrom": "Buradan",
- "DateRangeFromTo": "%s tarihinden %s tarihine",
+ "DateRangeFromTo": "%1$s tarihinden %2$s tarihine",
"DateRangeTo": "Buraya",
"DaysHours": "%1$s gün %2$s saat",
"DaysSinceFirstVisit": "İlk ziyaretten bu yana geçen gün",
@@ -107,7 +105,7 @@
"ExceptionFileIntegrity": "Bütünlük kontrolü başarısız: %s",
"ExceptionFilesizeMismatch": "Dosya boyutu uyumsuz: %1$s (beklenen uzunluk: %2$s, bulundu: %3$s)",
"ExceptionIncompatibleClientServerVersions": "%1$s istemci versiyonunuz %2$s. Ancak bu versiyon %3$s sunucu versiyonu ile uyumlu değildir.",
- "ExceptionInvalidDateRange": "'%s' Tarih aralığı geçerli değildir. Aşağidaki format gibi olmalıdır: %s.",
+ "ExceptionInvalidDateRange": "'%1$s' Tarih aralığı geçerli değildir. Aşağidaki format gibi olmalıdır: %2$s.",
"ExceptionInvalidToken": "Güvenlik jetonu geçerli değil.",
"ExceptionLanguageFileNotFound": "'%s' dil dosyası bulunamadı.",
"ExceptionMissingFile": "Kayıp dosya: %s",
@@ -116,7 +114,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Bu kaynak en az bir web sitesi için %s erişimi gerektirdiğinden erişiminize izin verilmemektedir.",
"ExceptionUnableToStartSession": "Oturum başlatılamadı.",
"ExceptionUndeletableFile": "%s silinemedi",
- "ExceptionUnreadableFileDisabledMethod": "Yapılandırma dosyası {%s} okunamadı. Sitenizi barındıran servis %s özelliğini devre dışı bırakmış olabilir.",
+ "ExceptionUnreadableFileDisabledMethod": "Yapılandırma dosyası {%1$s} okunamadı. Sitenizi barındıran servis %2$s özelliğini devre dışı bırakmış olabilir.",
"Export": "Dışa aktar",
"ExportAsImage": "Resim olarak dışa aktar",
"ExportThisReport": "Bu veri setini diğer formatlarda ihraç et",
@@ -156,7 +154,7 @@
"Logout": "Oturumu Kapat",
"MainMetrics": "Ana ölçümler",
"Matches": "Eşleşmeler",
- "MediumToHighTrafficItIsRecommendedTo": "Orta ve büyük ölçekli sitelerin raporlarını bugün için yarım saatte bir (%s saniye) veya saatte bir (%s saniye) işlemelerini öneririz.",
+ "MediumToHighTrafficItIsRecommendedTo": "Orta ve büyük ölçekli sitelerin raporlarını bugün için yarım saatte bir (%1$s saniye) veya saatte bir (%2$s saniye) işlemelerini öneririz.",
"Metadata": "Meta verisi",
"Metric": "Metrik",
"Metrics": "Metrikler",
@@ -183,6 +181,7 @@
"NotDefined": "%s tanımlı değil",
"Note": "Not",
"NotInstalled": "Yüklenmedi",
+ "NotRecommended": "tavsiye edilmez",
"NotValid": "%s geçerli değil",
"NumberOfVisits": "Ziyaret sayısı",
"NVisits": "%s ziyaret",
@@ -200,14 +199,15 @@
"OperationNotEquals": "Eşit Değil",
"OptionalSmtpPort": "İsteğe bağlıdır. Şifresiz 25 için TLS SMTP ve güvenli bağlantı için SSL SMTP 465",
"Options": "Seçenekler",
- "OrCancel": "veya %s İptal %s",
+ "Or": "yada",
+ "OrCancel": "veya %1$s İptal %2$s",
"Others": "Diğerleri",
"Outlink": "Dış link",
"Outlinks": "Dış Bağlantılar",
"OverlayRowActionTooltip": "İstatistik verilerini direkt site üzerinde gör (yeni sekmede açılır)",
"Overview": "Genel Bakış",
"Pages": "Sayfalar",
- "ParameterMustIntegerBetween": "%s değeri %s ve %s arasında sayısal bir değer olmalıdır.",
+ "ParameterMustIntegerBetween": "%1$s değeri %2$s ve %3$s arasında sayısal bir değer olmalıdır.",
"Password": "Şifre",
"Period": "Zaman aralığı",
"Piechart": "Pasta grafik",
@@ -225,6 +225,7 @@
"ProductRevenue": "Ürün Kazancı",
"PurchasedProducts": "Satın Alınan Ürünler",
"Quantity": "Miktar",
+ "Recommended": "Önerilen",
"Refresh": "Yenile",
"RefreshPage": "Sayfayı yenile",
"RelatedReport": "İlgili rapor",
@@ -263,9 +264,11 @@
"TimeOnPage": "Sayfadaki süre",
"Total": "Toplam",
"TotalRevenue": "Toplam Kazanç",
- "TotalVisitsPageviewsActionsRevenue": "(Toplam: %s ziyaretçiler, %s sayfa görüntülemeler, %s aksiyonlar, %s geliri)",
+ "TotalVisitsPageviewsActionsRevenue": "(Toplam: %1$s ziyaretçiler, %2$s sayfa görüntülemeler, %3$s aksiyonlar, %4$s geliri)",
+ "TrackingScopePage": "Sayfa",
+ "TrackingScopeVisit": "Ziyaret",
"TransitionsRowActionTooltipTitle": "Açık Geçişler",
- "TranslatorName": "Fabian Becker, Emre Yazici, Emre Saraçoğlu, <a href=\"http:\/\/www.ugureskici.com\">Uğur Eskici<\/a>",
+ "TranslatorName": "Fabian Becker, Emre Yazici, Emre Saraçoğlu, <a href=\"http:\/\/www.ugureskici.com\">Uğur Eskici<\/a>, <a href=\"http:\/\/www.umutarcn.com\">Umut ARICAN<\/a>",
"UniquePurchases": "Tekil Satın Alımlar",
"Unknown": "Bilinmeyen",
"Upload": "Yükle",
@@ -316,6 +319,7 @@
"DefaultReportDate": "Rapor tarihi",
"HowtoDeleteAnAccount": "Bir hesabı silmek için uzun basın.",
"HowtoDeleteAnAccountOniOS": "Bir hesabı silmek için sağdan sola kaydırın.",
+ "HowtoLoginAnonymous": "Anonim giriş yapmak için kullanıcı adı ve şifre kısmını boş bırakın",
"HttpTimeout": "HTTP Zamanaşımı",
"LastUpdated": "Son Güncelleme: %s",
"LoadingReport": "Yükleniyor %s",
@@ -337,6 +341,7 @@
"RequestTimedOutShort": "Ağ Zamanaşımı Hatası",
"ShowAll": "Tümünü göster",
"TryIt": "Dene!",
+ "VerifyAccount": "Hesap Doğrulama",
"YouAreOffline": "Üzgünüm, şu anda çevrimdışısınız"
},
"RowEvolution": {
@@ -344,7 +349,7 @@
"CompareDocumentation": "Aşağıdaki bağlantıyı tıklayın ve birden çok kaydı karşılaştırmak için aynı tablodan başka bir satır için bu pencereyi açın<br \/>Bu pencereyi açmadan satırı karşılaştırma için işaretlemek istiyorsanız Üst Karakter tuşuna basarak tıklayın.",
"CompareRows": "Kayıtları karşılaştır",
"ComparingRecords": "%s satır karşılaştırılıyor",
- "MetricBetweenText": "%s - %s arası",
+ "MetricBetweenText": "%1$s - %2$s arası",
"MetricsFor": "%s için ölçümler"
}
} \ No newline at end of file
diff --git a/lang/uk.json b/lang/uk.json
index 519aad1ad4..d2bca479d4 100644
--- a/lang/uk.json
+++ b/lang/uk.json
@@ -6,14 +6,12 @@
"AllWebsitesDashboard": "Панель керування всіх сайтів",
"API": "API",
"ArchivingInlineHelp": "Для веб-сайтів з середнім та високим трафіком рекомендується вимкнути можливість запуску Piwik при перегляді браузером. В такому випадку рекомендується налаштувати планувальних завдань (cron job) та генерувати звіти що години.",
- "ArchivingTriggerDescription": "Для великих інсталяцій Piwik рекомендується %sналаштувати планувальних завдань (cron job)%s щоб обробляти звіти автоматизовано.",
+ "ArchivingTriggerDescription": "Для великих інсталяцій Piwik рекомендується %1$sналаштувати планувальних завдань (cron job)%2$s щоб обробляти звіти автоматизовано.",
"AuthenticationMethodSmtp": "Метод аутентифікації на SMTP сервері",
"BackToPiwik": "Повернутися до Piwik",
"ChangePassword": "Змінити пароль",
- "ChooseDate": "Виберіть дату",
"ChooseLanguage": "Виберіть мову",
"ChoosePeriod": "Виберіть період",
- "ChooseWebsite": "Виберіть веб-сайт",
"Close": "Закрити",
"ColumnActionsPerVisit": "Дій на кожне відвідування",
"ColumnAverageTimeOnPage": "Середній час на стор.",
@@ -38,7 +36,7 @@
"ColumnUniquePageviews": "Унікальних переглядів сторінок",
"ColumnValuePerVisit": "Цінність на відвідування",
"ColumnVisitsWithConversions": "Відвідування з конвертаціями",
- "ConfigFileIsNotWritable": "Файл конфігурації Piwik %s захищений від запису, деякі зміни можуть бути не збережені. %s Змініть права доступу до файла конфігурації щоб дозволити запис.",
+ "ConfigFileIsNotWritable": "Файл конфігурації Piwik %1$s захищений від запису, деякі зміни можуть бути не збережені. %2$s Змініть права доступу до файла конфігурації щоб дозволити запис.",
"ContinueToPiwik": "Перейти далі до Piwik",
"CurrentMonth": "Поточний місяць",
"CurrentWeek": "Поточний тиждень",
@@ -70,20 +68,20 @@
"ExceptionFilesizeMismatch": "Розмір файлу відрізняється: %1$s (очікувана довжина: %2$s, знайдено: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Ваша версія клієнта %1$s є %2$s що несумісно з версією сервера %3$s.",
"ExceptionInvalidArchiveTimeToLive": "Час публікації сьогоднішнього архіву має бути числом більшим від нуля.",
- "ExceptionInvalidDateFormat": "Формат дати: %s або текст що підтримується функцією %s (див. %s для детальнішої інформації)",
- "ExceptionInvalidDateRange": "Значення '%s' задає неправильний діапізон дат. Повинен використовуватися наступний формат: %s.",
- "ExceptionInvalidPeriod": "Період '%s' не підтримується. Спробуйте натомість один з таких варіантів: %s.",
- "ExceptionInvalidRendererFormat": "Формат відображувача '%s' неправильний. Спробуйте натомість один з таких варіантів: %s.",
+ "ExceptionInvalidDateFormat": "Формат дати: %1$s або текст що підтримується функцією %2$s (див. %3$s для детальнішої інформації)",
+ "ExceptionInvalidDateRange": "Значення '%1$s' задає неправильний діапізон дат. Повинен використовуватися наступний формат: %2$s.",
+ "ExceptionInvalidPeriod": "Період '%1$s' не підтримується. Спробуйте натомість один з таких варіантів: %2$s.",
+ "ExceptionInvalidRendererFormat": "Формат відображувача '%1$s' неправильний. Спробуйте натомість один з таких варіантів: %2$s.",
"ExceptionInvalidToken": "Маркер невірний.",
"ExceptionLanguageFileNotFound": "Файл мови '%s' не знайдено.",
- "ExceptionMethodNotFound": "Метод '%s' не існує або не доступний у модулі '%s'.",
+ "ExceptionMethodNotFound": "Метод '%1$s' не існує або не доступний у модулі '%2$s'.",
"ExceptionMissingFile": "Відсутній файл: %s",
"ExceptionNonceMismatch": "Не вдалося перевірити маркер безпеки для цієї форми.",
"ExceptionPrivilege": "Неможливо отримати доступ до даного ресурсу так як треба мати доступ на %s.",
"ExceptionPrivilegeAccessWebsite": "Неможливо отримати доступ до даного ресурсу так як треба мати доступ на %s для сайту з ідентифікатором %d",
"ExceptionPrivilegeAtLeastOneWebsite": "Неможливо отримати доступ до даного ресурсу так як треба мати доступ на %s як мінімум до одного сайту.",
"ExceptionUndeletableFile": "Не вдалося видалити %s",
- "ExceptionUnreadableFileDisabledMethod": "Неможливо прочитати файл конфігурації {%s}. Ваш хостинг можливо закрив доступ %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Неможливо прочитати файл конфігурації {%1$s}. Ваш хостинг можливо закрив доступ %2$s.",
"Export": "Експорт",
"ExportAsImage": "Експортувати як зображення",
"ExportThisReport": "Експортувати цей набір даних в інші формати",
@@ -103,7 +101,7 @@
"LoadingData": "Завантаження даних...",
"Locale": "uk_UA.UTF-8",
"Logout": "Вийти",
- "MediumToHighTrafficItIsRecommendedTo": "Для веб-сайтів з середнім та високим трафіком рекомендується обробляти звіти за поточний день не частіше ніж кожні пів години (%s секунд) або що години (%s секунд).",
+ "MediumToHighTrafficItIsRecommendedTo": "Для веб-сайтів з середнім та високим трафіком рекомендується обробляти звіти за поточний день не частіше ніж кожні пів години (%1$s секунд) або що години (%2$s секунд).",
"MinutesSeconds": "%1$s хв. %2$s сек.",
"Monthly": "по місяцях",
"MultiSitesSummary": "Всі сайти",
@@ -122,7 +120,7 @@
"OnlyUsedIfUserPwdIsSet": "Використовується тільки якщо задано логін\/пароль, запитайте адміністратора хостингу якщо не впевнені який метод вибрати.",
"OpenSourceWebAnalytics": "Open Source Веб-аналітика",
"OptionalSmtpPort": "Не обовязково. Типово 25 для нешифрованої і TLS SMTP та 465 для SSL SMTP.",
- "OrCancel": "або %s Скасувати %s",
+ "OrCancel": "або %1$s Скасувати %2$s",
"Others": "Інші",
"Outlinks": "Зовнішні посилання",
"Overview": "Огляд",
@@ -145,7 +143,7 @@
"Save": "Зберегти",
"SaveImageOnYourComputer": "Для того щоб зберегти зображення компютері, клацнути правою кнопкою на зображенні та вибрати \"Зберегти зображення як...\"",
"Search": "Пошук",
- "SeeTheOfficialDocumentationForMoreInformation": "Перегляньте %sофіційну документацію%s щоб отримати більше інформації.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Перегляньте %1$sофіційну документацію%2$s щоб отримати більше інформації.",
"SelectYesIfYouWantToSendEmailsViaServer": "Виберіть \"Так\" якщо ви хочете надсилати е-майли через SMTP а не локальною поштовою функцією.",
"Settings": "Налаштування",
"SmallTrafficYouCanLeaveDefault": "Для веб-сайтів з малим навантаження по трафіку, можна залишити типові %s секунд, та матидоступ до звітів в реальному часі.",
@@ -169,7 +167,7 @@
"Warning": "Застереження",
"WarningFileIntegrityNoManifest": "Перевірка цілісності файлу не може бути виконана через відсутність manifest.inc.php",
"WarningFileIntegrityNoMd5file": "Перевірка цілісності файлу не може бути виконана через відсутність функції md5_file().",
- "WarningPasswordStored": "%sЗастереження:%s Цей пароль буде зберігатися в файлі конфігурації та буде видимий для кожного хто має доступ до файлової системи.",
+ "WarningPasswordStored": "%1$sЗастереження:%2$s Цей пароль буде зберігатися в файлі конфігурації та буде видимий для кожного хто має доступ до файлової системи.",
"Website": "Веб-сайт",
"Weekly": "по тижнях",
"Widgets": "Віджет",
diff --git a/lang/vi.json b/lang/vi.json
index 351db49c3c..87f3b07014 100644
--- a/lang/vi.json
+++ b/lang/vi.json
@@ -12,7 +12,7 @@
"And": "và",
"API": "API",
"ArchivingInlineHelp": "Đối với những trang web có mức độ truy cập trung bình và cao, chúng tôi khuyến cáo bạn bỏ chế độ cập nhật lên Piwik dựa vào trigger phía trình duyệt. Thay vào đó, bạn nên thiết lập lịch cho Piwik tự xử lý báo cáo sau mỗi giờ đồng hồ (để tránh quá tải server).",
- "ArchivingTriggerDescription": "Đề nghị cho cài đặt Piwik lớn hơn, bạn cần phải %s thiết lập một cron %s để xử lý các báo cáo tự động.",
+ "ArchivingTriggerDescription": "Đề nghị cho cài đặt Piwik lớn hơn, bạn cần phải %1$s thiết lập một cron %2$s để xử lý các báo cáo tự động.",
"AuthenticationMethodSmtp": "Phương thức xác thực SMTP",
"AverageOrderValue": "Tính trung bình giá trị đơn hàng",
"AveragePrice": "Giá trung bình",
@@ -24,10 +24,8 @@
"CannotUnzipFile": "Không thể giải nén file %1$s: %2$s",
"ChangePassword": "Thay đổi mật khẩu",
"ChangeTagCloudView": "Xin lưu ý, bạn có thể xem báo cáo theo những cách khác như là một Tag Cloud. Sử dụng các điều khiển ở dưới cùng của báo cáo để làm như vậy.",
- "ChooseDate": "Chọn ngày",
"ChooseLanguage": "Chọn ngôn ngữ",
"ChoosePeriod": "Chọn khoảng thời gian",
- "ChooseWebsite": "Chọn website",
"ClickHere": "Click vào đây để tìm hiểu thêm",
"ClickToChangePeriod": "Click lần nữa để thay đổi khoảng thời gian",
"Close": "Đóng",
@@ -80,7 +78,7 @@
"ColumnViewedAfterSearchDocumentation": "Số lần trang này được truy cập sau khi một người dùng thực hiện tìm kiếm trên trang web của bạn và nhấn vào trang web này trong kết quả tìm kiếm.",
"ColumnVisitDuration": "Thời gian truy cập(tính bằng giây)",
"ColumnVisitsWithConversions": "Các lượt truy cập có sự chuyển đổi",
- "ConfigFileIsNotWritable": "Tập tin cấu hình Piwik %s không ghi, một số thay đổi của bạn có thể không được lưu. %s Hãy cho phép thay đổi các tập tin cấu hình để làm cho nó có thể ghi",
+ "ConfigFileIsNotWritable": "Tập tin cấu hình Piwik %1$s không ghi, một số thay đổi của bạn có thể không được lưu. %2$s Hãy cho phép thay đổi các tập tin cấu hình để làm cho nó có thể ghi",
"Continue": "Tiếp tục",
"ContinueToPiwik": "Tiếp tục Piwik",
"CurrentMonth": "Tháng này",
@@ -96,7 +94,7 @@
"Date": "Ngày",
"DateRange": "Thời gian:",
"DateRangeFrom": "Từ",
- "DateRangeFromTo": "Từ %s đến %s",
+ "DateRangeFromTo": "Từ %1$s đến %2$s",
"DateRangeTo": "Đến",
"DaysHours": "%1$s ngày %2$s giờ",
"DaysSinceFirstVisit": "Số ngày từ lần ghé thăm đầu tiên",
@@ -135,17 +133,17 @@
"ExceptionFileIntegrity": "Kiểm tra tính toàn vẹn không thành công: %s",
"ExceptionFilesizeMismatch": "Kích thước tập tin không phù hợp: %1$s (​​chiều dài dự kiến: %2$s, được tìm thấy: %3$s)",
"ExceptionIncompatibleClientServerVersions": "Phiên bản client %1$s của bạn đang là %2$s nó không tương thích với phiên bản máy chủ %3$s.",
- "ExceptionInvalidAggregateReportsFormat": "Định dạng báo cáo tổng hợp '%s' không hợp lệ. Hãy thử các cách sau để thay thế: %s.",
+ "ExceptionInvalidAggregateReportsFormat": "Định dạng báo cáo tổng hợp '%1$s' không hợp lệ. Hãy thử các cách sau để thay thế: %2$s.",
"ExceptionInvalidArchiveTimeToLive": "Hiện nay thời gian lưu trữ để tồn tại phải có số giây lớn hơn 0",
- "ExceptionInvalidDateFormat": "Định dạng ngày phải: %s hoặc các từ khoá được hỗ trợ bởi hàm %s (xem %s để biết thêm thông tin)",
- "ExceptionInvalidDateRange": "Ngày '%s' không phải khoảng thời gian chuẩn. Nó phải có định dạng như sau: %s.",
- "ExceptionInvalidPeriod": "Giai đoạn '%s' không được hỗ trợ. Hãy thử các cách sau đây để thay thế: %s",
- "ExceptionInvalidRendererFormat": "Định dạng Renderer '%s' không hợp lệ. Hãy thử các cách sau để thay thế: %s.",
- "ExceptionInvalidReportRendererFormat": "định dạng báo cáo '%s' không hợp lệ. Hãy thử các cách sau để thay thế: %s.",
- "ExceptionInvalidStaticGraphType": "Kiểu đồ thị tĩnh '%s' không hợp lệ. Hãy thử các cách sau để thay thế: %s.",
+ "ExceptionInvalidDateFormat": "Định dạng ngày phải: %1$s hoặc các từ khoá được hỗ trợ bởi hàm %2$s (xem %3$s để biết thêm thông tin)",
+ "ExceptionInvalidDateRange": "Ngày '%1$s' không phải khoảng thời gian chuẩn. Nó phải có định dạng như sau: %2$s.",
+ "ExceptionInvalidPeriod": "Giai đoạn '%1$s' không được hỗ trợ. Hãy thử các cách sau đây để thay thế: %2$s",
+ "ExceptionInvalidRendererFormat": "Định dạng Renderer '%1$s' không hợp lệ. Hãy thử các cách sau để thay thế: %2$s.",
+ "ExceptionInvalidReportRendererFormat": "định dạng báo cáo '%1$s' không hợp lệ. Hãy thử các cách sau để thay thế: %2$s.",
+ "ExceptionInvalidStaticGraphType": "Kiểu đồ thị tĩnh '%1$s' không hợp lệ. Hãy thử các cách sau để thay thế: %2$s.",
"ExceptionInvalidToken": "Mã thông báo không hợp lệ.",
"ExceptionLanguageFileNotFound": "Không tìm thấy file ngôn ngữ '%s'.",
- "ExceptionMethodNotFound": "Phương pháp '%s' không tồn tại hoặc không có hiệu lực trong mô-đun '%s'.",
+ "ExceptionMethodNotFound": "Phương pháp '%1$s' không tồn tại hoặc không có hiệu lực trong mô-đun '%2$s'.",
"ExceptionMissingFile": "Tập tin lỗi: %s",
"ExceptionNonceMismatch": "Không thể xác minh mã bảo mật của mẫu(form) này.",
"ExceptionPrivilege": "Bạn không thể truy cập tài nguyên này vì nó đòi hỏi quyền truy cập %s.",
@@ -153,7 +151,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "Bạn không thể truy cập tài nguyên này vì nó đòi hỏi một truy cập %s ít nhất trên một trang web.",
"ExceptionUnableToStartSession": "Không thể bắt đầu phiên.",
"ExceptionUndeletableFile": "Không thể xóa %s",
- "ExceptionUnreadableFileDisabledMethod": "Tập tin cấu hình {%s} không có thể đọc. Máy chủ của bạn có thể đã bị vô hiệu hóa %s.",
+ "ExceptionUnreadableFileDisabledMethod": "Tập tin cấu hình {%1$s} không có thể đọc. Máy chủ của bạn có thể đã bị vô hiệu hóa %2$s.",
"Export": "Xuất",
"ExportAsImage": "Xuất ra dạng ảnh(Image)",
"ExportThisReport": "Xuất dữ liệu này với các định dạng khác",
@@ -194,7 +192,7 @@
"Logout": "Đăng xuất",
"MainMetrics": "Các số liệu chính",
"Matches": "Mối liên kết (Matches)",
- "MediumToHighTrafficItIsRecommendedTo": "Đối với các trang web có mức độ truy cập trung bình và cao, chúng tôi khuyến nghị xử lý các báo cáo hiện nay mỗi ngày nửa giờ đồng hồ (%s giây) hoặc mỗi giờ (%s giây).",
+ "MediumToHighTrafficItIsRecommendedTo": "Đối với các trang web có mức độ truy cập trung bình và cao, chúng tôi khuyến nghị xử lý các báo cáo hiện nay mỗi ngày nửa giờ đồng hồ (%1$s giây) hoặc mỗi giờ (%2$s giây).",
"Metadata": "Siêu dữ liệu",
"Metric": "Số liệu",
"Metrics": "Các số liệu",
@@ -248,7 +246,7 @@
"OperationNotEquals": "Không bằng",
"OptionalSmtpPort": "Tùy chọn. Mặc định 25 là không mã hóa và TLS SMTP, và 465 cho SSL SMTP.",
"Options": "Tùy chọn",
- "OrCancel": "hoặc %s Hủy %s",
+ "OrCancel": "hoặc %1$s Hủy %2$s",
"Others": "Khác",
"Outlink": "Outlink",
"Outlinks": "Liên kết đưa ra",
@@ -256,9 +254,9 @@
"OverlayRowActionTooltipTitle": "Mở trang bị che",
"Overview": "Tổng quan",
"Pages": "Số trang",
- "Pagination": "%s - %s trên %s",
- "PaginationWithoutTotal": "%s - %s",
- "ParameterMustIntegerBetween": "Tham số %s phải là một số nguyên giữa %s và %s.",
+ "Pagination": "%1$s - %2$s trên %3$s",
+ "PaginationWithoutTotal": "%1$s - %2$s",
+ "ParameterMustIntegerBetween": "Tham số %1$s phải là một số nguyên giữa %2$s và %3$s.",
"Password": "mật khẩu",
"Period": "Giai đoạn",
"Piechart": "Biểu đồ hình tròn",
@@ -302,7 +300,7 @@
"Search": "Tìm kiếm",
"SearchNoResults": "Không có kết quả",
"SeeAll": "Xem tất cả",
- "SeeTheOfficialDocumentationForMoreInformation": "Xem %s tài liệu chính thức %s để biết thêm thông tin.",
+ "SeeTheOfficialDocumentationForMoreInformation": "Xem %1$s tài liệu chính thức %2$s để biết thêm thông tin.",
"SelectYesIfYouWantToSendEmailsViaServer": "Chọn \"Yes\" nếu bạn muốn hay phải gửi e-mail thông qua một máy chủ có tên thay vì chức năng thư cục bộ",
"Settings": "Thiết lập",
"Shipping": "Vận chuyển",
@@ -352,7 +350,7 @@
"Warning": "Cảnh báo",
"WarningFileIntegrityNoManifest": "Tập tin kiểm tra tính toàn vẹn không thể thực hiện do thiếu manifest.inc.php.",
"WarningFileIntegrityNoMd5file": "Tập tin kiểm tra tính toàn vẹn không thể hoàn thành do thiếu md5_file() function.",
- "WarningPasswordStored": "%s Cảnh báo: %s Mật khẩu này sẽ lưu trữ trong tập tin cấu hình có thể thấy để tất cả mọi người có thể truy cập nó.",
+ "WarningPasswordStored": "%1$s Cảnh báo: %2$s Mật khẩu này sẽ lưu trữ trong tập tin cấu hình có thể thấy để tất cả mọi người có thể truy cập nó.",
"Website": "Website",
"Weekly": "Hàng tuần",
"WeeklyReport": "Hàng tuần",
@@ -404,7 +402,7 @@
"MultiChartLabel": "Hiển thị sparklines",
"NavigationBack": "Quay lại",
"NetworkError": "Lỗi mạng",
- "NetworkErrorWithStatusCode": "Có một lỗi \"%s\". Yêu cầu quay lại tình trạng \"%s\". URL là \"%s\". Vui lòng kiểm tra URL đã nhập của bạn và các bản ghi lỗi trên máy chủ này để biết thêm thông tin về lỗi và cách để giải quyết nó.",
+ "NetworkErrorWithStatusCode": "Có một lỗi \"%1$s\". Yêu cầu quay lại tình trạng \"%2$s\". URL là \"%3$s\". Vui lòng kiểm tra URL đã nhập của bạn và các bản ghi lỗi trên máy chủ này để biết thêm thông tin về lỗi và cách để giải quyết nó.",
"NetworkErrorWithStatusCodeShort": "Lỗi mạng %s",
"NetworkNotReachable": "Mạng không thể truy cập",
"NoAccountIsSelected": "Bạn phải chọn một tài khoản. Thêm một tài khoản mới nếu bạn chưa cấu hình được nó.",
@@ -420,7 +418,7 @@
"RatingDontRemindMe": "Đừng nhắc tôi",
"RatingNotNow": "Không phải bây giờ",
"RatingNow": "Được, bây giờ tôi sẽ đánh giá",
- "RatingPleaseRateUs": "Piwik Mobile App là một phần mềm miễn phí, chúng tôi rất cảm ơn nếu bạn dành một phút để đánh giá app ở %s. Nếu bạn có bất kỳ gợi ý gì về các chức năng mới hay các báo cáo lỗi, làm ơn liên hệ %s",
+ "RatingPleaseRateUs": "Piwik Mobile App là một phần mềm miễn phí, chúng tôi rất cảm ơn nếu bạn dành một phút để đánh giá app ở %1$s. Nếu bạn có bất kỳ gợi ý gì về các chức năng mới hay các báo cáo lỗi, làm ơn liên hệ %2$s",
"ReleaseToRefresh": "Giải phóng để làm mới ...",
"Reloading": "Tải lại ...",
"RequestTimedOutShort": "Thời gian trễ mạng bị lỗi",
@@ -444,7 +442,7 @@
"CompareRows": "So sánh số liệu",
"ComparingRecords": "So sánh %s hàng",
"Documentation": "Click vào các số liệu để hiển thị chúng trong đồ thị tiến hóa rộng. Sử dụng shift-click để hiển thị nhiều số liệu cùng một lúc.",
- "MetricBetweenText": "từ %s và %s",
+ "MetricBetweenText": "từ %1$s và %2$s",
"MetricChangeText": "%s trong giai đoạn này",
"MetricMinMax": "%1$s trong khoảng %2$s và %3$s",
"MetricsFor": "Các số liệu cho %s",
diff --git a/lang/zh-cn.json b/lang/zh-cn.json
index 74f5cb6570..42e11ac184 100644
--- a/lang/zh-cn.json
+++ b/lang/zh-cn.json
@@ -12,7 +12,7 @@
"And": "和",
"API": "API",
"ArchivingInlineHelp": "对于中高流量的网站,建议禁用Piwik浏览器触发处理。最好是设置定时任务(Cron job),每小时处理一次Piwik报表。",
- "ArchivingTriggerDescription": "适合大型的Piwik安装,需要%s设置定时任务(Cron job) %s来自动处理报表。",
+ "ArchivingTriggerDescription": "适合大型的Piwik安装,需要%1$s设置定时任务(Cron job) %2$s来自动处理报表。",
"AuthenticationMethodSmtp": "SMTP 验证方法",
"AverageOrderValue": "平均订单额",
"AveragePrice": "平均价格",
@@ -24,10 +24,8 @@
"CannotUnzipFile": "不能解压缩文件%1$s: %2$s",
"ChangePassword": "修改密码",
"ChangeTagCloudView": "提示: 您可以通过报表下方的控制按钮,用不同于标签云的其它格式显示报表。",
- "ChooseDate": "选择日期",
"ChooseLanguage": "选择语言",
"ChoosePeriod": "选择时间段",
- "ChooseWebsite": "选择网站",
"ClickHere": "点击查看更多信息",
"ClickToChangePeriod": "点击更改时间段",
"Close": "关闭",
@@ -79,7 +77,7 @@
"ColumnViewedAfterSearchDocumentation": "访客在站内搜索后,在搜索结果中点击这个页面的次数。",
"ColumnVisitDuration": "停留时间 (秒)",
"ColumnVisitsWithConversions": "访问转化",
- "ConfigFileIsNotWritable": "Piwik 配置文件 %s 无法写入,无法保存部分修改。%s 请修改配置文件的权限为可写。",
+ "ConfigFileIsNotWritable": "Piwik 配置文件 %1$s 无法写入,无法保存部分修改。%2$s 请修改配置文件的权限为可写。",
"Continue": "继续",
"ContinueToPiwik": "继续 Piwik",
"CurrentMonth": "本月",
@@ -95,7 +93,7 @@
"Date": "日期",
"DateRange": "报表时间:",
"DateRangeFrom": "从",
- "DateRangeFromTo": "从 %s 至 %s",
+ "DateRangeFromTo": "从 %1$s 至 %2$s",
"DateRangeTo": "至",
"DaysHours": "%1$s 天 %2$s 小时",
"DaysSinceFirstVisit": "第一次访问至今的天数",
@@ -134,17 +132,17 @@
"ExceptionFileIntegrity": "完整性检查失败: %s",
"ExceptionFilesizeMismatch": "文件大小不符: %1$s (预计长度: %2$s, 找到: %3$s)",
"ExceptionIncompatibleClientServerVersions": "您的 %1$s 客户端版本为 %2$s,与服务器版本 %3$s 不兼容。",
- "ExceptionInvalidAggregateReportsFormat": "汇总报表格式 '%s' 不正确,请用下面的代替: %s。",
+ "ExceptionInvalidAggregateReportsFormat": "汇总报表格式 '%1$s' 不正确,请用下面的代替: %2$s。",
"ExceptionInvalidArchiveTimeToLive": "今日处理时间必须是一个大于 0 的秒数",
- "ExceptionInvalidDateFormat": "日期格式必须为: %s 或任何被 %s 函数支持的关键字 (详情查看%s)",
- "ExceptionInvalidDateRange": "时间段 '%s' 不正确,格式应为: %s。",
- "ExceptionInvalidPeriod": "目前不支持 '%s' ,尝试下面的选择: %s",
- "ExceptionInvalidRendererFormat": "'%s' 是不合法的。尝试以下任一来取代: %s 。",
- "ExceptionInvalidReportRendererFormat": "报表格式 %s 无效,尝试以下内容 %s",
- "ExceptionInvalidStaticGraphType": "统计图形格式 '%s' 不正确,请用下面的代替: %s。",
+ "ExceptionInvalidDateFormat": "日期格式必须为: %1$s 或任何被 %2$s 函数支持的关键字 (详情查看%3$s)",
+ "ExceptionInvalidDateRange": "时间段 '%1$s' 不正确,格式应为: %2$s。",
+ "ExceptionInvalidPeriod": "目前不支持 '%1$s' ,尝试下面的选择: %2$s",
+ "ExceptionInvalidRendererFormat": "'%1$s' 是不合法的。尝试以下任一来取代: %2$s 。",
+ "ExceptionInvalidReportRendererFormat": "报表格式 %1$s 无效,尝试以下内容 %2$s",
+ "ExceptionInvalidStaticGraphType": "统计图形格式 '%1$s' 不正确,请用下面的代替: %2$s。",
"ExceptionInvalidToken": "符号不正确。",
"ExceptionLanguageFileNotFound": "没有语言文件 '%s'。",
- "ExceptionMethodNotFound": "'%s' 不存在或不适用于模块 '%s' 里。",
+ "ExceptionMethodNotFound": "'%1$s' 不存在或不适用于模块 '%2$s' 里。",
"ExceptionMissingFile": "缺少文件: %s",
"ExceptionNonceMismatch": "无法验证此表单的安全性。",
"ExceptionPrivilege": "您无法存取这个资源,必须要一个 %s 权限。",
@@ -152,7 +150,7 @@
"ExceptionPrivilegeAtLeastOneWebsite": "您无法存取这个资源,必须至少要一个网站的 %s 权限。",
"ExceptionUnableToStartSession": "无法启动会话",
"ExceptionUndeletableFile": "无法刪除 %s",
- "ExceptionUnreadableFileDisabledMethod": "配置文件 {%s} 无法读取。您的主机空间可能禁用 %s。",
+ "ExceptionUnreadableFileDisabledMethod": "配置文件 {%1$s} 无法读取。您的主机空间可能禁用 %2$s。",
"Export": "导出",
"ExportAsImage": "导出为图片",
"ExportThisReport": "导出为其它格式",
@@ -194,7 +192,7 @@
"Logout": "退出",
"MainMetrics": "主要指标",
"Matches": "匹配",
- "MediumToHighTrafficItIsRecommendedTo": "对于中高流量的网站,我们建议最多每隔半小时(%s秒)或一小时(%s秒)处理一次报表。",
+ "MediumToHighTrafficItIsRecommendedTo": "对于中高流量的网站,我们建议最多每隔半小时(%1$s秒)或一小时(%2$s秒)处理一次报表。",
"Metadata": "Metadata",
"Metric": "指标",
"Metrics": "指标",
@@ -246,7 +244,7 @@
"OperationNotEquals": "不等于",
"OptionalSmtpPort": "可选项,默认是未加密和TLS SMTP使用端口 25,SSL 加密使用端口 465",
"Options": "选项",
- "OrCancel": "或 %s 取消 %s",
+ "OrCancel": "或 %1$s 取消 %2$s",
"Others": "其它",
"Outlink": "离站链接",
"Outlinks": "离站链接数量",
@@ -254,7 +252,7 @@
"OverlayRowActionTooltipTitle": "显示页面叠加",
"Overview": "来源总表",
"Pages": "页面",
- "ParameterMustIntegerBetween": "参数 %s 必须为介于 %s 和 %s 之间的整数",
+ "ParameterMustIntegerBetween": "参数 %1$s 必须为介于 %2$s 和 %3$s 之间的整数",
"Password": "密码",
"Period": "统计时间",
"Piechart": "圆饼图",
@@ -297,7 +295,7 @@
"Search": "搜索",
"SearchNoResults": "没有结果",
"SeeAll": "查看全部",
- "SeeTheOfficialDocumentationForMoreInformation": "查看%s官方文件%s取得更多资讯",
+ "SeeTheOfficialDocumentationForMoreInformation": "查看%1$s官方文件%2$s取得更多资讯",
"SelectYesIfYouWantToSendEmailsViaServer": "如果您想通过邮件服务器来发送电子邮件,而不是 mail 函数的话请选择 \"是\"",
"Settings": "管理设置",
"Shipping": "运费",
@@ -348,7 +346,7 @@
"Warning": "警告",
"WarningFileIntegrityNoManifest": "缺少 manifest.inc.php,所以文件完整性检查无法完成。",
"WarningFileIntegrityNoMd5file": "缺少 md5_file() 函数,所以文件完整性检查无法完成。",
- "WarningPasswordStored": "%s警告:%s 此密码将被保存在配置文件中,且每个能读取它的人都看得到。",
+ "WarningPasswordStored": "%1$s警告:%2$s 此密码将被保存在配置文件中,且每个能读取它的人都看得到。",
"Website": "网站",
"Weekly": "每周",
"WeeklyReport": "每周",
@@ -400,7 +398,7 @@
"MultiChartLabel": "显示图形",
"NavigationBack": "后退",
"NetworkError": "网络错误",
- "NetworkErrorWithStatusCode": "出现错误 \"%s\",请求返回状态 \"%s\",网址为 \"%s\"。请检查输入的网址和服务器上的错误日志,了解错误详情及如何解决问题。",
+ "NetworkErrorWithStatusCode": "出现错误 \"%1$s\",请求返回状态 \"%2$s\",网址为 \"%3$s\"。请检查输入的网址和服务器上的错误日志,了解错误详情及如何解决问题。",
"NetworkErrorWithStatusCodeShort": "网络错误%s",
"NetworkNotReachable": "网络无法访问",
"NoAccountIsSelected": "您要选择一个帐号。如果您还没有设置,请增加一个帐号。",
@@ -416,7 +414,7 @@
"RatingDontRemindMe": "不要记住我",
"RatingNotNow": "不是现在",
"RatingNow": "好的,我会马上给它好评",
- "RatingPleaseRateUs": "Piwik 移动应用是免费软件,感谢您能花一分钟到 %s 评价这个应用。如有新功能建议或者bug报告,请联系 %s",
+ "RatingPleaseRateUs": "Piwik 移动应用是免费软件,感谢您能花一分钟到 %1$s 评价这个应用。如有新功能建议或者bug报告,请联系 %2$s",
"ReleaseToRefresh": "放开以更新...",
"Reloading": "重新加载中...",
"RequestTimedOutShort": "网络超时错误",
@@ -440,7 +438,7 @@
"CompareRows": "比较记录",
"ComparingRecords": "正在比较 %s 行",
"Documentation": "点击指标显示趋势图,按住 Shift 键点击可同时显示多个指标。",
- "MetricBetweenText": "在%s和%s之间",
+ "MetricBetweenText": "在%1$s和%2$s之间",
"MetricChangeText": "%s",
"MetricsFor": "%s 的指标",
"MultiRowEvolutionTitle": "多个记录的趋势图",
diff --git a/lang/zh-tw.json b/lang/zh-tw.json
index 431b52109a..eed9e644b0 100644
--- a/lang/zh-tw.json
+++ b/lang/zh-tw.json
@@ -10,14 +10,13 @@
"And": "和",
"API": "API",
"ArchivingInlineHelp": "對於中或高流量的網站,建議停用 Piwik 彙整觸發瀏覽器。反之,我們建議你設定一個工作排程(Cron job),每小時處理 Piwik 報告。",
- "ArchivingTriggerDescription": "推薦大型的 Piwik 安裝,你需要%s設定一個工作排程(Cron job)%s來自動處理報告。",
+ "ArchivingTriggerDescription": "推薦大型的 Piwik 安裝,你需要%1$s設定一個工作排程(Cron job)%2$s來自動處理報告。",
"AuthenticationMethodSmtp": "SMTP 驗證方法",
"BackToPiwik": "返回 Piwik",
"Cancel": "取消",
"ChangePassword": "變更密碼",
"ChooseLanguage": "選擇語系",
"ChoosePeriod": "選擇期間",
- "ChooseWebsite": "選擇網站",
"Close": "關閉",
"ColumnActionsPerVisit": "各個造訪的活動量",
"ColumnAverageTimeOnPage": "平均網站停留時間",
@@ -47,7 +46,7 @@
"ColumnUniquePageviews": "獨立非重返訪客瀏覽數",
"ColumnValuePerVisit": "每次造訪價值",
"ColumnVisitsWithConversions": "造訪轉換",
- "ConfigFileIsNotWritable": "Piwik 設定檔 %s 無法寫入,你的變更將無法儲存。%s 請變更設定檔權限讓它可被寫入。",
+ "ConfigFileIsNotWritable": "Piwik 設定檔 %1$s 無法寫入,你的變更將無法儲存。%2$s 請變更設定檔權限讓它可被寫入。",
"ContinueToPiwik": "繼續 Piwik",
"CurrentMonth": "本月",
"CurrentWeek": "本週",
@@ -78,20 +77,20 @@
"ExceptionFilesizeMismatch": "檔案大小不符: %1$s (預計長度: %2$s, 找到: %3$s)",
"ExceptionIncompatibleClientServerVersions": "你的 %1$s 客戶端版本為 %2$s,與伺服器版本 %3$s 不相容。",
"ExceptionInvalidArchiveTimeToLive": "今日彙整時間必須是一個大於 0 秒的數字",
- "ExceptionInvalidDateFormat": "日期格式必須為: %s 或任何被 %s 函式支援的關鍵字(查看 %s 取得更多資訊)",
- "ExceptionInvalidDateRange": "'%s' 不是一個正確的日期範圍。它應該擁有以下格式: %s。",
- "ExceptionInvalidPeriod": "目前不支援 '%s' 。嘗試以下任一來取代: %s",
- "ExceptionInvalidRendererFormat": "'%s' 是不合法的。嘗試以下任一來取代: %s 。",
+ "ExceptionInvalidDateFormat": "日期格式必須為: %1$s 或任何被 %2$s 函式支援的關鍵字(查看 %3$s 取得更多資訊)",
+ "ExceptionInvalidDateRange": "'%1$s' 不是一個正確的日期範圍。它應該擁有以下格式: %2$s。",
+ "ExceptionInvalidPeriod": "目前不支援 '%1$s' 。嘗試以下任一來取代: %2$s",
+ "ExceptionInvalidRendererFormat": "'%1$s' 是不合法的。嘗試以下任一來取代: %2$s 。",
"ExceptionInvalidToken": "符號不合法。",
"ExceptionLanguageFileNotFound": "語系檔案 '%s' 找不到。",
- "ExceptionMethodNotFound": "'%s' 不存在或不適用於模組 '%s' 裡。",
+ "ExceptionMethodNotFound": "'%1$s' 不存在或不適用於模組 '%2$s' 裡。",
"ExceptionMissingFile": "遺失檔案: %s",
"ExceptionNonceMismatch": "無法驗證此表單的安全性。",
"ExceptionPrivilege": "你無法存取這個資源,必須要一個 %s 權限。",
"ExceptionPrivilegeAccessWebsite": "你無法存取這個資源,必須擁有網站 ID = %d 的 %s 權限。",
"ExceptionPrivilegeAtLeastOneWebsite": "你無法存取這個資源,必須至少要一個網站的 %s 權限。",
"ExceptionUndeletableFile": "無法刪除 %s",
- "ExceptionUnreadableFileDisabledMethod": "設定檔 {%s} 無法讀取。你的主機空間可能停用 %s。",
+ "ExceptionUnreadableFileDisabledMethod": "設定檔 {%1$s} 無法讀取。你的主機空間可能停用 %2$s。",
"Export": "匯出",
"ExportAsImage": "匯出為圖片",
"ExportThisReport": "將此資料集匯出為其他格式",
@@ -117,7 +116,7 @@
"LoadingData": "載入資料中...",
"Locale": "zh_TW.UTF-8",
"Logout": "登出",
- "MediumToHighTrafficItIsRecommendedTo": "對於中或高流量的網站,我們建議最多每隔半小時(%s 秒)或每小時(%s 秒)處理報告。",
+ "MediumToHighTrafficItIsRecommendedTo": "對於中或高流量的網站,我們建議最多每隔半小時(%1$s 秒)或每小時(%2$s 秒)處理報告。",
"Metric": "指標",
"Metrics": "指標",
"MetricsToPlot": "圖形指標",
@@ -143,7 +142,7 @@
"OnlyEnterIfRequiredPassword": "只在你的 SMTP 伺服器需要密碼時才需要輸入",
"OnlyUsedIfUserPwdIsSet": "只在使用者名稱 \/ 密碼設定後才會生效,如果你不確定要使用何種方法,請詢問你的提供商。",
"OpenSourceWebAnalytics": "開放原始碼的網站流量分析軟體",
- "OrCancel": "或 %s 取消 %s",
+ "OrCancel": "或 %1$s 取消 %2$s",
"Others": "其他",
"Outlinks": "離開連結",
"Overview": "總覽",
@@ -168,7 +167,7 @@
"Save": "儲存",
"SaveImageOnYourComputer": "將圖片儲存至您的電腦,在圖片上點選滑鼠右鍵然後選擇 \"將圖片儲存為...\"",
"Search": "搜尋",
- "SeeTheOfficialDocumentationForMoreInformation": "查看%s官方文件%s取得更多資訊",
+ "SeeTheOfficialDocumentationForMoreInformation": "查看%1$s官方文件%2$s取得更多資訊",
"SelectYesIfYouWantToSendEmailsViaServer": "如果你想透過一個 named server 來寄送電子郵件,而不是 mail 函式的話請選擇 \"Yes\"",
"Settings": "設定",
"SmallTrafficYouCanLeaveDefault": "對於低流量的網站,你可以使用預設的 %s 秒,然後即時存取所有報告。",
@@ -192,7 +191,7 @@
"Warning": "警告",
"WarningFileIntegrityNoManifest": "缺少 manifest.inc.php 所以檔案完整性檢查無法執行。",
"WarningFileIntegrityNoMd5file": "缺少 md5_file() 函式所以檔案完整性檢查無法玩成。",
- "WarningPasswordStored": "%s警告:%s 此密碼將被儲存在設定檔中,且每個能存取它的人都看得到。",
+ "WarningPasswordStored": "%1$s警告:%2$s 此密碼將被儲存在設定檔中,且每個能存取它的人都看得到。",
"Website": "網站",
"Weekly": "每週",
"Widgets": "組件",
@@ -226,7 +225,7 @@
"AvailableMetrics": "可用指標",
"CompareRows": "比較紀錄",
"ComparingRecords": "正在比較 %s 行",
- "MetricBetweenText": "從 %s 到 %s",
+ "MetricBetweenText": "從 %1$s 到 %2$s",
"MetricChangeText": "在這段時間改變了 %s",
"PickAnotherRow": "選擇其他行來進行比較"
}
diff --git a/libs/README.md b/libs/README.md
index f5a061a1dc..083684c962 100644
--- a/libs/README.md
+++ b/libs/README.md
@@ -30,3 +30,4 @@ third-party libraries:
- ZF-10871 - undefined variables when socket support disabled
- fix #6980 ("Array to string conversion") in `Zend/Session/Exception.php`
- fix Zend/Validate using deprecated iconv_set_encoding()
+ - Make sure sessions work when storing notifications
diff --git a/libs/Zend/Session.php b/libs/Zend/Session.php
index b5177c18fd..8b55a17b6d 100644
--- a/libs/Zend/Session.php
+++ b/libs/Zend/Session.php
@@ -491,6 +491,10 @@ class Zend_Session extends Zend_Session_Abstract
self::regenerateId();
}
+ if (isset($_SESSION['data']) && is_string($_SESSION['data'])) {
+ $_SESSION = unserialize(base64_decode($_SESSION['data']));
+ }
+
// run validators if they exist
if (isset($_SESSION['__ZF']['VALID'])) {
self::_processValidators();
@@ -688,8 +692,17 @@ class Zend_Session extends Zend_Session_Abstract
parent::$_writable = false;
}
+ if (isset($_SESSION)) {
+ $sessionBkp = $_SESSION;
+ $_SESSION = array('data' => base64_encode(serialize($_SESSION)));
+ }
+
session_write_close();
self::$_writeClosed = true;
+
+ if (isset($sessionBkp)) {
+ $_SESSION = $sessionBkp;
+ }
}
diff --git a/libs/Zend/Validate/Hostname.php b/libs/Zend/Validate/Hostname.php
index e485a5d546..cd5db5abcb 100644
--- a/libs/Zend/Validate/Hostname.php
+++ b/libs/Zend/Validate/Hostname.php
@@ -115,25 +115,103 @@ class Zend_Validate_Hostname extends Zend_Validate_Abstract
* @var array
*/
protected $_validTlds = array(
- 'ac', 'ad', 'ae', 'aero', 'af', 'ag', 'ai', 'al', 'am', 'an', 'ao', 'aq', 'ar', 'arpa',
- 'as', 'asia', 'at', 'au', 'aw', 'ax', 'az', 'ba', 'bb', 'bd', 'be', 'bf', 'bg', 'bh', 'bi',
- 'biz', 'bj', 'bm', 'bn', 'bo', 'br', 'bs', 'bt', 'bv', 'bw', 'by', 'bz', 'ca', 'cat', 'cc',
- 'cd', 'cf', 'cg', 'ch', 'ci', 'ck', 'cl', 'cm', 'cn', 'co', 'com', 'coop', 'cr', 'cu',
- 'cv', 'cx', 'cy', 'cz', 'de', 'dj', 'dk', 'dm', 'do', 'dz', 'ec', 'edu', 'ee', 'eg', 'er',
- 'es', 'et', 'eu', 'fi', 'fj', 'fk', 'fm', 'fo', 'fr', 'ga', 'gb', 'gd', 'ge', 'gf', 'gg',
- 'gh', 'gi', 'gl', 'gm', 'gn', 'gov', 'gp', 'gq', 'gr', 'gs', 'gt', 'gu', 'gw', 'gy', 'hk',
- 'hm', 'hn', 'hr', 'ht', 'hu', 'id', 'ie', 'il', 'im', 'in', 'info', 'int', 'io', 'iq',
- 'ir', 'is', 'it', 'je', 'jm', 'jo', 'jobs', 'jp', 'ke', 'kg', 'kh', 'ki', 'km', 'kn', 'kp',
- 'kr', 'kw', 'ky', 'kz', 'la', 'lb', 'lc', 'li', 'lk', 'lr', 'ls', 'lt', 'lu', 'lv', 'ly',
- 'ma', 'mc', 'md', 'me', 'mg', 'mh', 'mil', 'mk', 'ml', 'mm', 'mn', 'mo', 'mobi', 'mp',
- 'mq', 'mr', 'ms', 'mt', 'mu', 'museum', 'mv', 'mw', 'mx', 'my', 'mz', 'na', 'name', 'nc',
- 'ne', 'net', 'nf', 'ng', 'ni', 'nl', 'no', 'np', 'nr', 'nu', 'nz', 'om', 'org', 'pa', 'pe',
- 'pf', 'pg', 'ph', 'pk', 'pl', 'pm', 'pn', 'pr', 'pro', 'ps', 'pt', 'pw', 'py', 'qa', 're',
- 'ro', 'rs', 'ru', 'rw', 'sa', 'sb', 'sc', 'sd', 'se', 'sg', 'sh', 'si', 'sj', 'sk', 'sl',
- 'sm', 'sn', 'so', 'sr', 'st', 'su', 'sv', 'sy', 'sz', 'tc', 'td', 'tel', 'tf', 'tg', 'th',
- 'tj', 'tk', 'tl', 'tm', 'tn', 'to', 'tp', 'tr', 'travel', 'tt', 'tv', 'tw', 'tz', 'ua',
- 'ug', 'uk', 'um', 'us', 'uy', 'uz', 'va', 'vc', 've', 'vg', 'vi', 'vn', 'vu', 'wf', 'ws',
- 'ye', 'yt', 'yu', 'za', 'zm', 'zw'
+ 'aaa', 'aarp', 'abb', 'abbott', 'abogado', 'ac', 'academy', 'accenture', 'accountant', 'accountants',
+ 'aco', 'active', 'actor', 'ad', 'ads', 'adult', 'ae', 'aeg', 'aero', 'af', 'afl', 'ag', 'agency', 'ai',
+ 'aig', 'airforce', 'airtel', 'al', 'allfinanz', 'alsace', 'am', 'amica', 'amsterdam', 'analytics',
+ 'android', 'ao', 'apartments', 'app', 'apple', 'aq', 'aquarelle', 'ar', 'aramco', 'archi', 'army', 'arpa',
+ 'arte', 'as', 'asia', 'associates', 'at', 'attorney', 'au', 'auction', 'audi', 'audio', 'author', 'auto',
+ 'autos', 'aw', 'ax', 'axa', 'az', 'azure', 'ba', 'baidu', 'band', 'bank', 'bar', 'barcelona', 'barclaycard',
+ 'barclays', 'bargains', 'bauhaus', 'bayern', 'bb', 'bbc', 'bbva', 'bcn', 'bd', 'be', 'beats', 'beer',
+ 'bentley', 'berlin', 'best', 'bet', 'bf', 'bg', 'bh', 'bharti', 'bi', 'bible', 'bid', 'bike', 'bing',
+ 'bingo', 'bio', 'biz', 'bj', 'black', 'blackfriday', 'bloomberg', 'blue', 'bm', 'bms', 'bmw', 'bn', 'bnl',
+ 'bnpparibas', 'bo', 'boats', 'boehringer', 'bom', 'bond', 'boo', 'book', 'boots', 'bosch', 'bostik', 'bot',
+ 'boutique', 'br', 'bradesco', 'bridgestone', 'broadway', 'broker', 'brother', 'brussels', 'bs', 'bt',
+ 'budapest', 'bugatti', 'build', 'builders', 'business', 'buy', 'buzz', 'bv', 'bw', 'by', 'bz', 'bzh', 'ca',
+ 'cab', 'cafe', 'cal', 'call', 'camera', 'camp', 'cancerresearch', 'canon', 'capetown', 'capital', 'car',
+ 'caravan', 'cards', 'care', 'career', 'careers', 'cars', 'cartier', 'casa', 'cash', 'casino', 'cat',
+ 'catering', 'cba', 'cbn', 'cc', 'cd', 'ceb', 'center', 'ceo', 'cern', 'cf', 'cfa', 'cfd', 'cg', 'ch',
+ 'chanel', 'channel', 'chat', 'cheap', 'chloe', 'christmas', 'chrome', 'church', 'ci', 'cipriani',
+ 'circle', 'cisco', 'citic', 'city', 'cityeats', 'ck', 'cl', 'claims', 'cleaning', 'click', 'clinic',
+ 'clinique', 'clothing', 'cloud', 'club', 'clubmed', 'cm', 'cn', 'co', 'coach', 'codes', 'coffee',
+ 'college', 'cologne', 'com', 'commbank', 'community', 'company', 'computer', 'comsec', 'condos',
+ 'construction', 'consulting', 'contact', 'contractors', 'cooking', 'cool', 'coop', 'corsica', 'country',
+ 'coupons', 'courses', 'cr', 'credit', 'creditcard', 'creditunion', 'cricket', 'crown', 'crs', 'cruises',
+ 'csc', 'cu', 'cuisinella', 'cv', 'cw', 'cx', 'cy', 'cymru', 'cyou', 'cz', 'dabur', 'dad', 'dance', 'date',
+ 'dating', 'datsun', 'day', 'dclk', 'de', 'dealer', 'deals', 'degree', 'delivery', 'dell', 'delta', 'democrat',
+ 'dental', 'dentist', 'desi', 'design', 'dev', 'diamonds', 'diet', 'digital', 'direct', 'directory',
+ 'discount', 'dj', 'dk', 'dm', 'dnp', 'do', 'docs', 'dog', 'doha', 'domains', 'doosan', 'download', 'drive',
+ 'dubai', 'durban', 'dvag', 'dz', 'earth', 'eat', 'ec', 'edu', 'education', 'ee', 'eg', 'email', 'emerck',
+ 'energy', 'engineer', 'engineering', 'enterprises', 'epson', 'equipment', 'er', 'erni', 'es', 'esq',
+ 'estate', 'et', 'eu', 'eurovision', 'eus', 'events', 'everbank', 'exchange', 'expert', 'exposed', 'express',
+ 'fage', 'fail', 'fairwinds', 'faith', 'family', 'fan', 'fans', 'farm', 'fashion', 'fast', 'feedback',
+ 'ferrero', 'fi', 'film', 'final', 'finance', 'financial', 'firestone', 'firmdale', 'fish', 'fishing',
+ 'fit', 'fitness', 'fj', 'fk', 'flights', 'florist', 'flowers', 'flsmidth', 'fly', 'fm', 'fo', 'foo',
+ 'football', 'ford', 'forex', 'forsale', 'forum', 'foundation', 'fox', 'fr', 'frl', 'frogans', 'fund',
+ 'furniture', 'futbol', 'fyi', 'ga', 'gal', 'gallery', 'game', 'garden', 'gb', 'gbiz', 'gd', 'gdn', 'ge',
+ 'gea', 'gent', 'genting', 'gf', 'gg', 'ggee', 'gh', 'gi', 'gift', 'gifts', 'gives', 'giving', 'gl', 'glass',
+ 'gle', 'global', 'globo', 'gm', 'gmail', 'gmo', 'gmx', 'gn', 'gold', 'goldpoint', 'golf', 'goo', 'goog',
+ 'google', 'gop', 'got', 'gov', 'gp', 'gq', 'gr', 'grainger', 'graphics', 'gratis', 'green', 'gripe', 'group',
+ 'gs', 'gt', 'gu', 'gucci', 'guge', 'guide', 'guitars', 'guru', 'gw', 'gy', 'hamburg', 'hangout', 'haus',
+ 'healthcare', 'help', 'here', 'hermes', 'hiphop', 'hitachi', 'hiv', 'hk', 'hm', 'hn', 'hockey', 'holdings',
+ 'holiday', 'homedepot', 'homes', 'honda', 'horse', 'host', 'hosting', 'hoteles', 'hotmail', 'house', 'how',
+ 'hr', 'hsbc', 'ht', 'hu', 'hyundai', 'ibm', 'icbc', 'ice', 'icu', 'id', 'ie', 'ifm', 'iinet', 'il', 'im',
+ 'immo', 'immobilien', 'in', 'industries', 'infiniti', 'info', 'ing', 'ink', 'institute', 'insurance', 'insure',
+ 'int', 'international', 'investments', 'io', 'ipiranga', 'iq', 'ir', 'irish', 'is', 'ist', 'istanbul', 'it',
+ 'itau', 'iwc', 'jaguar', 'java', 'jcb', 'je', 'jetzt', 'jewelry', 'jlc', 'jll', 'jm', 'jmp', 'jo', 'jobs',
+ 'joburg', 'jot', 'joy', 'jp', 'jprs', 'juegos', 'kaufen', 'kddi', 'ke', 'kfh', 'kg', 'kh', 'ki', 'kia', 'kim',
+ 'kinder', 'kitchen', 'kiwi', 'km', 'kn', 'koeln', 'komatsu', 'kp', 'kpn', 'kr', 'krd', 'kred', 'kw', 'ky',
+ 'kyoto', 'kz', 'la', 'lacaixa', 'lamborghini', 'lamer', 'lancaster', 'land', 'landrover', 'lasalle', 'lat',
+ 'latrobe', 'law', 'lawyer', 'lb', 'lc', 'lds', 'lease', 'leclerc', 'legal', 'lexus', 'lgbt', 'li', 'liaison',
+ 'lidl', 'life', 'lifestyle', 'lighting', 'like', 'limited', 'limo', 'lincoln', 'linde', 'link', 'live',
+ 'living', 'lixil', 'lk', 'loan', 'loans', 'lol', 'london', 'lotte', 'lotto', 'love', 'lr', 'ls', 'lt', 'ltd',
+ 'ltda', 'lu', 'lupin', 'luxe', 'luxury', 'lv', 'ly', 'ma', 'madrid', 'maif', 'maison', 'man', 'management',
+ 'mango', 'market', 'marketing', 'markets', 'marriott', 'mba', 'mc', 'md', 'me', 'med', 'media', 'meet',
+ 'melbourne', 'meme', 'memorial', 'men', 'menu', 'meo', 'mg', 'mh', 'miami', 'microsoft', 'mil', 'mini', 'mk',
+ 'ml', 'mm', 'mma', 'mn', 'mo', 'mobi', 'mobily', 'moda', 'moe', 'moi', 'mom', 'monash', 'money', 'montblanc',
+ 'mormon', 'mortgage', 'moscow', 'motorcycles', 'mov', 'movie', 'movistar', 'mp', 'mq', 'mr', 'ms', 'mt',
+ 'mtn', 'mtpc', 'mtr', 'mu', 'museum', 'mutuelle', 'mv', 'mw', 'mx', 'my', 'mz', 'na', 'nadex', 'nagoya',
+ 'name', 'navy', 'nc', 'ne', 'nec', 'net', 'netbank', 'network', 'neustar', 'new', 'news', 'nexus', 'nf',
+ 'ng', 'ngo', 'nhk', 'ni', 'nico', 'ninja', 'nissan', 'nl', 'no', 'nokia', 'norton', 'nowruz', 'np', 'nr',
+ 'nra', 'nrw', 'ntt', 'nu', 'nyc', 'nz', 'obi', 'office', 'okinawa', 'om', 'omega', 'one', 'ong', 'onl',
+ 'online', 'ooo', 'oracle', 'orange', 'org', 'organic', 'origins', 'osaka', 'otsuka', 'ovh', 'pa', 'page',
+ 'panerai', 'paris', 'pars', 'partners', 'parts', 'party', 'pe', 'pet', 'pf', 'pg', 'ph', 'pharmacy',
+ 'philips', 'photo', 'photography', 'photos', 'physio', 'piaget', 'pics', 'pictet', 'pictures', 'pid', 'pin',
+ 'ping', 'pink', 'pizza', 'pk', 'pl', 'place', 'play', 'playstation', 'plumbing', 'plus', 'pm', 'pn', 'pohl',
+ 'poker', 'porn', 'post', 'pr', 'praxi', 'press', 'pro', 'prod', 'productions', 'prof', 'promo', 'properties',
+ 'property', 'protection', 'ps', 'pt', 'pub', 'pw', 'py', 'qa', 'qpon', 'quebec', 'racing', 're', 'read',
+ 'realtor', 'realty', 'recipes', 'red', 'redstone', 'redumbrella', 'rehab', 'reise', 'reisen', 'reit', 'ren',
+ 'rent', 'rentals', 'repair', 'report', 'republican', 'rest', 'restaurant', 'review', 'reviews', 'rexroth',
+ 'rich', 'ricoh', 'rio', 'rip', 'ro', 'rocher', 'rocks', 'rodeo', 'room', 'rs', 'rsvp', 'ru', 'ruhr', 'run',
+ 'rw', 'rwe', 'ryukyu', 'sa', 'saarland', 'safe', 'safety', 'sakura', 'sale', 'salon', 'samsung', 'sandvik',
+ 'sandvikcoromant', 'sanofi', 'sap', 'sapo', 'sarl', 'sas', 'saxo', 'sb', 'sbs', 'sc', 'sca', 'scb',
+ 'schaeffler', 'schmidt', 'scholarships', 'school', 'schule', 'schwarz', 'science', 'scor', 'scot', 'sd',
+ 'se', 'seat', 'security', 'seek', 'sener', 'services', 'seven', 'sew', 'sex', 'sexy', 'sfr', 'sg', 'sh',
+ 'sharp', 'shell', 'shia', 'shiksha', 'shoes', 'show', 'shriram', 'si', 'singles', 'site', 'sj', 'sk', 'ski',
+ 'sky', 'skype', 'sl', 'sm', 'smile', 'sn', 'sncf', 'so', 'soccer', 'social', 'software', 'sohu', 'solar',
+ 'solutions', 'sony', 'soy', 'space', 'spiegel', 'spreadbetting', 'sr', 'srl', 'st', 'stada', 'star', 'starhub',
+ 'statefarm', 'statoil', 'stc', 'stcgroup', 'stockholm', 'storage', 'studio', 'study', 'style', 'su', 'sucks',
+ 'supplies', 'supply', 'support', 'surf', 'surgery', 'suzuki', 'sv', 'swatch', 'swiss', 'sx', 'sy', 'sydney',
+ 'symantec', 'systems', 'sz', 'tab', 'taipei', 'tatamotors', 'tatar', 'tattoo', 'tax', 'taxi', 'tc', 'tci',
+ 'td', 'team', 'tech', 'technology', 'tel', 'telefonica', 'temasek', 'tennis', 'tf', 'tg', 'th', 'thd',
+ 'theater', 'theatre', 'tickets', 'tienda', 'tips', 'tires', 'tirol', 'tj', 'tk', 'tl', 'tm', 'tn', 'to',
+ 'today', 'tokyo', 'tools', 'top', 'toray', 'toshiba', 'tours', 'town', 'toyota', 'toys', 'tr', 'trade',
+ 'trading', 'training', 'travel', 'travelers', 'travelersinsurance', 'trust', 'trv', 'tt', 'tui', 'tushu',
+ 'tv', 'tw', 'tz', 'ua', 'ubs', 'ug', 'uk', 'university', 'uno', 'uol', 'us', 'uy', 'uz', 'va', 'vacations',
+ 'vana', 'vc', 've', 'vegas', 'ventures', 'verisign', 'versicherung', 'vet', 'vg', 'vi', 'viajes', 'video',
+ 'villas', 'vin', 'vip', 'virgin', 'vision', 'vista', 'vistaprint', 'viva', 'vlaanderen', 'vn', 'vodka', 'vote',
+ 'voting', 'voto', 'voyage', 'vu', 'wales', 'walter', 'wang', 'wanggou', 'watch', 'watches', 'webcam', 'weber',
+ 'website', 'wed', 'wedding', 'weir', 'wf', 'whoswho', 'wien', 'wiki', 'williamhill', 'win', 'windows', 'wine',
+ 'wme', 'work', 'works', 'world', 'ws', 'wtc', 'wtf', 'xbox', 'xerox', 'xin', 'कॉम', '佛山', '慈善', '集团',
+ '在线', '한국', '点看', 'คอม', 'ভারত', '八卦', 'موقع', '公益', '公司', '移动', '我爱你', 'москва', 'қаз', 'онлайн',
+ 'сайт', 'срб', 'бел', 'קום', '时尚', '淡马锡', 'орг', 'नेट', '삼성', 'சிங்கப்பூர்', '商标', '商店', '商城', 'дети',
+ 'мкд', 'ポイント', '新闻', '工行', 'كوم', '中文网', '中信', '中国', '中國', '娱乐', '谷歌', 'భారత్', 'ලංකා', 'ભારત',
+ 'भारत', '网店', 'संगठन', '餐厅', '网络', 'ком', 'укр', '香港', '诺基亚', '飞利浦', '台湾', '台灣', '手表', '手机',
+ 'мон', 'الجزائر', 'عمان', 'ارامكو', 'ایران', 'امارات', 'بازار', 'الاردن', 'موبايلي', 'بھارت', 'المغرب',
+ 'السعودية', 'سودان', 'همراه', 'عراق', 'مليسيا', '닷컴', '政府', 'شبكة', 'بيتك', 'გე', '机构', '组织机构',
+ '健康', 'ไทย', 'سورية', 'рус', 'рф', '珠宝', 'تونس', '大拿', 'みんな', 'グーグル', 'ελ', '世界', 'ਭਾਰਤ', '网址',
+ '닷넷', 'コム', '游戏', 'vermögensberater', 'vermögensberatung', '企业', '信息', 'مصر', 'قطر', '广东', 'இலங்கை',
+ 'இந்தியா', 'հայ', '新加坡', 'فلسطين', '政务', 'xperia', 'xxx', 'xyz', 'yachts', 'yamaxun', 'yandex', 'ye',
+ 'yodobashi', 'yoga', 'yokohama', 'youtube', 'yt', 'za', 'zara', 'zero', 'zip', 'zm', 'zone', 'zuerich', 'zw'
);
/**
@@ -557,7 +635,7 @@ class Zend_Validate_Hostname extends Zend_Validate_Abstract
do {
// First check TLD
$matches = array();
- if (preg_match('/([^.]{2,10})$/i', end($domainParts), $matches) ||
+ if (preg_match('/([^.]{2,63})$/i', end($domainParts), $matches) ||
(end($domainParts) == 'ایران') || (end($domainParts) == '中国') ||
(end($domainParts) == '公司') || (end($domainParts) == '网络')) {
diff --git a/libs/bower_components/angular/angular.js b/libs/bower_components/angular/angular.js
index f7442c0b03..7082434896 100644
--- a/libs/bower_components/angular/angular.js
+++ b/libs/bower_components/angular/angular.js
@@ -16429,7 +16429,7 @@ function adjustMatchers(matchers) {
*
* - your app is hosted at url `http://myapp.example.com/`
* - but some of your templates are hosted on other domains you control such as
- * `http://srv01.assets.example.com/`,  `http://srv02.assets.example.com/`, etc.
+ * `http://srv01.assets.example.com/`, `http://srv02.assets.example.com/`, etc.
* - and you have an open redirect at `http://myapp.example.com/clickThru?...`.
*
* Here is what a secure configuration for this scenario might look like:
@@ -28361,4 +28361,4 @@ var minlengthDirective = function() {
})(window, document);
-!window.angular.$$csp() && window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'); \ No newline at end of file
+!window.angular.$$csp() && window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>');
diff --git a/libs/pChart/class/pData.class.php b/libs/pChart/class/pData.class.php
index 49d16a33bd..d29e0d499c 100755
--- a/libs/pChart/class/pData.class.php
+++ b/libs/pChart/class/pData.class.php
@@ -1,789 +1,789 @@
-<?php
- /*
- pDraw - class to manipulate data arrays
-
- Version : 2.1.4
- Made by : Jean-Damien POGOLOTTI
- Last Update : 19/01/2014
-
- This file can be distributed under the license you can find at :
-
- http://www.pchart.net/license
-
- You can find the whole class documentation on the pChart web site.
- */
-
- /* Axis configuration */
- define("AXIS_FORMAT_DEFAULT" , 680001);
- define("AXIS_FORMAT_TIME" , 680002);
- define("AXIS_FORMAT_DATE" , 680003);
- define("AXIS_FORMAT_METRIC" , 680004);
- define("AXIS_FORMAT_CURRENCY" , 680005);
- define("AXIS_FORMAT_TRAFFIC" , 680006);
- define("AXIS_FORMAT_CUSTOM" , 680007);
-
- /* Axis position */
- define("AXIS_POSITION_LEFT" , 681001);
- define("AXIS_POSITION_RIGHT" , 681002);
- define("AXIS_POSITION_TOP" , 681001);
- define("AXIS_POSITION_BOTTOM" , 681002);
-
- /* Families of data points */
- define("SERIE_SHAPE_FILLEDCIRCLE" , 681011);
- define("SERIE_SHAPE_FILLEDTRIANGLE" , 681012);
- define("SERIE_SHAPE_FILLEDSQUARE" , 681013);
- define("SERIE_SHAPE_FILLEDDIAMOND" , 681017);
- define("SERIE_SHAPE_CIRCLE" , 681014);
- define("SERIE_SHAPE_TRIANGLE" , 681015);
- define("SERIE_SHAPE_SQUARE" , 681016);
- define("SERIE_SHAPE_DIAMOND" , 681018);
-
- /* Axis position */
- define("AXIS_X" , 682001);
- define("AXIS_Y" , 682002);
-
- /* Define value limits */
- define("ABSOLUTE_MIN" , -10000000000000);
- define("ABSOLUTE_MAX" , 10000000000000);
-
- /* Replacement to the PHP NULL keyword */
- define("VOID" , 0.123456789);
-
- /* Euro symbol for GD fonts */
- define("EURO_SYMBOL" , utf8_encode("&#8364;"));
-
- /* pData class definition */
- class pData
- {
- var $Data;
-
- var $Palette = array("0"=>array("R"=>188,"G"=>224,"B"=>46,"Alpha"=>100),
- "1"=>array("R"=>224,"G"=>100,"B"=>46,"Alpha"=>100),
- "2"=>array("R"=>224,"G"=>214,"B"=>46,"Alpha"=>100),
- "3"=>array("R"=>46,"G"=>151,"B"=>224,"Alpha"=>100),
- "4"=>array("R"=>176,"G"=>46,"B"=>224,"Alpha"=>100),
- "5"=>array("R"=>224,"G"=>46,"B"=>117,"Alpha"=>100),
- "6"=>array("R"=>92,"G"=>224,"B"=>46,"Alpha"=>100),
- "7"=>array("R"=>224,"G"=>176,"B"=>46,"Alpha"=>100));
-
- /* Class creator */
- function pData()
- {
- $this->Data = "";
- $this->Data["XAxisDisplay"] = AXIS_FORMAT_DEFAULT;
- $this->Data["XAxisFormat"] = NULL;
- $this->Data["XAxisName"] = NULL;
- $this->Data["XAxisUnit"] = NULL;
- $this->Data["Abscissa"] = NULL;
- $this->Data["AbsicssaPosition"] = AXIS_POSITION_BOTTOM;
-
- $this->Data["Axis"][0]["Display"] = AXIS_FORMAT_DEFAULT;
- $this->Data["Axis"][0]["Position"] = AXIS_POSITION_LEFT;
- $this->Data["Axis"][0]["Identity"] = AXIS_Y;
- }
-
- /* Add a single point or an array to the given serie */
- function addPoints($Values,$SerieName="Serie1")
- {
- if (!isset($this->Data["Series"][$SerieName]))
- $this->initialise($SerieName);
-
- if ( is_array($Values) )
- {
- foreach($Values as $Key => $Value)
- { $this->Data["Series"][$SerieName]["Data"][] = $Value; }
- }
- else
- $this->Data["Series"][$SerieName]["Data"][] = $Values;
-
- if ( $Values != VOID )
- {
- $StrippedData = $this->stripVOID($this->Data["Series"][$SerieName]["Data"]);
- if ( empty($StrippedData) ) { $this->Data["Series"][$SerieName]["Max"] = 0; $this->Data["Series"][$SerieName]["Min"] =0; return(0); }
- $this->Data["Series"][$SerieName]["Max"] = max($StrippedData);
- $this->Data["Series"][$SerieName]["Min"] = min($StrippedData);
- }
- }
-
- /* Strip VOID values */
- function stripVOID($Values)
- { if (!is_array($Values)) { return(array()); } $Result = array(); foreach($Values as $Key => $Value) { if ( $Value != VOID ) { $Result[] = $Value; } } return($Result); }
-
- /* Return the number of values contained in a given serie */
- function getSerieCount($Serie)
- { if (isset($this->Data["Series"][$Serie]["Data"])) { return(sizeof($this->Data["Series"][$Serie]["Data"])); } else { return(0); } }
-
- /* Remove a serie from the pData object */
- function removeSerie($Series)
- {
- if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
- foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie])) { unset($this->Data["Series"][$Serie]); } }
- }
-
- /* Return a value from given serie & index */
- function getValueAt($Serie,$Index=0)
- { if (isset($this->Data["Series"][$Serie]["Data"][$Index])) { return($this->Data["Series"][$Serie]["Data"][$Index]); } else { return(NULL); } }
-
- /* Return the values array */
- function getValues($Serie)
- { if (isset($this->Data["Series"][$Serie]["Data"])) { return($this->Data["Series"][$Serie]["Data"]); } else { return(NULL); } }
-
- /* Reverse the values in the given serie */
- function reverseSerie($Series)
- {
- if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
- foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]["Data"])) { $this->Data["Series"][$Serie]["Data"] = array_reverse($this->Data["Series"][$Serie]["Data"]); } }
- }
-
- /* Return the sum of the serie values */
- function getSum($Serie)
- { if (isset($this->Data["Series"][$Serie])) { return(array_sum($this->Data["Series"][$Serie]["Data"])); } else { return(NULL); } }
-
- /* Return the max value of a given serie */
- function getMax($Serie)
- { if (isset($this->Data["Series"][$Serie]["Max"])) { return($this->Data["Series"][$Serie]["Max"]); } else { return(NULL); } }
-
- /* Return the min value of a given serie */
- function getMin($Serie)
- { if (isset($this->Data["Series"][$Serie]["Min"])) { return($this->Data["Series"][$Serie]["Min"]); } else { return(NULL); } }
-
- /* Set the description of a given serie */
- function setSerieShape($Series,$Shape=SERIE_SHAPE_FILLEDCIRCLE)
- {
- if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
- foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Shape"] = $Shape; } }
- }
-
- /* Set the description of a given serie */
- function setSerieDescription($Series,$Description="My serie")
- {
- if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
- foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Description"] = $Description; } }
- }
-
- /* Set a serie as "drawable" while calling a rendering function */
- function setSerieDrawable($Series,$Drawable=TRUE)
- {
- if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
- foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["isDrawable"] = $Drawable; } }
- }
-
- /* Set the icon associated to a given serie */
- function setSeriePicture($Series,$Picture=NULL)
- {
- if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
- foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Picture"] = $Picture; } }
- }
-
- /* Set the name of the X Axis */
- function setXAxisName($Name)
- { $this->Data["XAxisName"] = $Name; }
-
- /* Set the display mode of the X Axis */
- function setXAxisDisplay($Mode,$Format=NULL)
- { $this->Data["XAxisDisplay"] = $Mode; $this->Data["XAxisFormat"] = $Format; }
-
- /* Set the unit that will be displayed on the X axis */
- function setXAxisUnit($Unit)
- { $this->Data["XAxisUnit"] = $Unit; }
-
- /* Set the serie that will be used as abscissa */
- function setAbscissa($Serie)
- { if (isset($this->Data["Series"][$Serie])) { $this->Data["Abscissa"] = $Serie; } }
-
- function setAbsicssaPosition($Position = AXIS_POSITION_BOTTOM)
- { $this->Data["AbsicssaPosition"] = $Position; }
-
- /* Set the name of the abscissa axis */
- function setAbscissaName($Name)
- { $this->Data["AbscissaName"] = $Name; }
-
- /* Create a scatter group specifyin X and Y data series */
- function setScatterSerie($SerieX,$SerieY,$ID=0)
- { if (isset($this->Data["Series"][$SerieX]) && isset($this->Data["Series"][$SerieY]) ) { $this->initScatterSerie($ID); $this->Data["ScatterSeries"][$ID]["X"] = $SerieX; $this->Data["ScatterSeries"][$ID]["Y"] = $SerieY; } }
-
- /* Set the shape of a given sctatter serie */
- function setScatterSerieShape($ID,$Shape=SERIE_SHAPE_FILLEDCIRCLE)
- { if (isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Shape"] = $Shape; } }
-
- /* Set the description of a given scatter serie */
- function setScatterSerieDescription($ID,$Description="My serie")
- { if (isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Description"] = $Description; } }
-
- /* Set the icon associated to a given scatter serie */
- function setScatterSeriePicture($ID,$Picture=NULL)
- { if (isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Picture"] = $Picture; } }
-
- /* Set a scatter serie as "drawable" while calling a rendering function */
- function setScatterSerieDrawable($ID ,$Drawable=TRUE)
- { if (isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["isDrawable"] = $Drawable; } }
-
- /* Define if a scatter serie should be draw with ticks */
- function setScatterSerieTicks($ID,$Width=0)
- { if ( isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Ticks"] = $Width; } }
-
- /* Define if a scatter serie should be draw with a special weight */
- function setScatterSerieWeight($ID,$Weight=0)
- { if ( isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Weight"] = $Weight; } }
-
- /* Associate a color to a scatter serie */
- function setScatterSerieColor($ID,$Format)
- {
- $R = isset($Format["R"]) ? $Format["R"] : 0;
- $G = isset($Format["G"]) ? $Format["G"] : 0;
- $B = isset($Format["B"]) ? $Format["B"] : 0;
- $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
-
- if ( isset($this->Data["ScatterSeries"][$ID]) )
- {
- $this->Data["ScatterSeries"][$ID]["Color"]["R"] = $R;
- $this->Data["ScatterSeries"][$ID]["Color"]["G"] = $G;
- $this->Data["ScatterSeries"][$ID]["Color"]["B"] = $B;
- $this->Data["ScatterSeries"][$ID]["Color"]["Alpha"] = $Alpha;
- }
- }
-
- /* Compute the series limits for an individual and global point of view */
- function limits()
- {
- $GlobalMin = ABSOLUTE_MAX;
- $GlobalMax = ABSOLUTE_MIN;
-
- foreach($this->Data["Series"] as $Key => $Value)
- {
- if ( $this->Data["Abscissa"] != $Key && $this->Data["Series"][$Key]["isDrawable"] == TRUE)
- {
- if ( $GlobalMin > $this->Data["Series"][$Key]["Min"] ) { $GlobalMin = $this->Data["Series"][$Key]["Min"]; }
- if ( $GlobalMax < $this->Data["Series"][$Key]["Max"] ) { $GlobalMax = $this->Data["Series"][$Key]["Max"]; }
- }
- }
- $this->Data["Min"] = $GlobalMin;
- $this->Data["Max"] = $GlobalMax;
-
- return(array($GlobalMin,$GlobalMax));
- }
-
- /* Mark all series as drawable */
- function drawAll()
- { foreach($this->Data["Series"] as $Key => $Value) { if ( $this->Data["Abscissa"] != $Key ) { $this->Data["Series"][$Key]["isDrawable"]=TRUE; } } }
-
- /* Return the average value of the given serie */
- function getSerieAverage($Serie)
- {
- if ( isset($this->Data["Series"][$Serie]) )
- {
- $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
- return(array_sum($SerieData)/sizeof($SerieData));
- }
- else
- return(NULL);
- }
-
- /* Return the geometric mean of the given serie */
- function getGeometricMean($Serie)
- {
- if ( isset($this->Data["Series"][$Serie]) )
- {
- $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
- $Seriesum = 1; foreach($SerieData as $Key => $Value) { $Seriesum = $Seriesum * $Value; }
- return(pow($Seriesum,1/sizeof($SerieData)));
- }
- else
- return(NULL);
- }
-
- /* Return the harmonic mean of the given serie */
- function getHarmonicMean($Serie)
- {
- if ( isset($this->Data["Series"][$Serie]) )
- {
- $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
- $Seriesum = 0; foreach($SerieData as $Key => $Value) { $Seriesum = $Seriesum + 1/$Value; }
- return(sizeof($SerieData)/$Seriesum);
- }
- else
- return(NULL);
- }
-
- /* Return the standard deviation of the given serie */
- function getStandardDeviation($Serie)
- {
- if ( isset($this->Data["Series"][$Serie]) )
- {
- $Average = $this->getSerieAverage($Serie);
- $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
-
- $DeviationSum = 0;
- foreach($SerieData as $Key => $Value)
- $DeviationSum = $DeviationSum + ($Value-$Average)*($Value-$Average);
-
- $Deviation = sqrt($DeviationSum/count($SerieData));
-
- return($Deviation);
- }
- else
- return(NULL);
- }
-
- /* Return the Coefficient of variation of the given serie */
- function getCoefficientOfVariation($Serie)
- {
- if ( isset($this->Data["Series"][$Serie]) )
- {
- $Average = $this->getSerieAverage($Serie);
- $StandardDeviation = $this->getStandardDeviation($Serie);
-
- if ( $StandardDeviation != 0 )
- return($StandardDeviation/$Average);
- else
- return(NULL);
- }
- else
- return(NULL);
- }
-
- /* Return the median value of the given serie */
- function getSerieMedian($Serie)
- {
- if ( isset($this->Data["Series"][$Serie]) )
- {
- $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
- sort($SerieData);
- $SerieCenter = floor(sizeof($SerieData)/2);
-
- if ( isset($SerieData[$SerieCenter]) )
- return($SerieData[$SerieCenter]);
- else
- return(NULL);
- }
- else
- return(NULL);
- }
-
- /* Return the x th percentil of the given serie */
- function getSeriePercentile($Serie="Serie1",$Percentil=95)
- {
- if (!isset($this->Data["Series"][$Serie]["Data"])) { return(NULL); }
-
- $Values = count($this->Data["Series"][$Serie]["Data"])-1;
- if ( $Values < 0 ) { $Values = 0; }
-
- $PercentilID = floor(($Values/100)*$Percentil+.5);
- $SortedValues = $this->Data["Series"][$Serie]["Data"];
- sort($SortedValues);
-
- if ( is_numeric($SortedValues[$PercentilID]) )
- return($SortedValues[$PercentilID]);
- else
- return(NULL);
- }
-
- /* Add random values to a given serie */
- function addRandomValues($SerieName="Serie1",$Options="")
- {
- $Values = isset($Options["Values"]) ? $Options["Values"] : 20;
- $Min = isset($Options["Min"]) ? $Options["Min"] : 0;
- $Max = isset($Options["Max"]) ? $Options["Max"] : 100;
- $withFloat = isset($Options["withFloat"]) ? $Options["withFloat"] : FALSE;
-
- for ($i=0;$i<=$Values;$i++)
- {
- if ( $withFloat ) { $Value = rand($Min*100,$Max*100)/100; } else { $Value = rand($Min,$Max); }
- $this->addPoints($Value,$SerieName);
- }
- }
-
- /* Test if we have valid data */
- function containsData()
- {
- if (!isset($this->Data["Series"])) { return(FALSE); }
-
- $Result = FALSE;
- foreach($this->Data["Series"] as $Key => $Value)
- { if ( $this->Data["Abscissa"] != $Key && $this->Data["Series"][$Key]["isDrawable"]==TRUE) { $Result=TRUE; } }
- return($Result);
- }
-
- /* Set the display mode of an Axis */
- function setAxisDisplay($AxisID,$Mode=AXIS_FORMAT_DEFAULT,$Format=NULL)
- {
- if ( isset($this->Data["Axis"][$AxisID] ) )
- {
- $this->Data["Axis"][$AxisID]["Display"] = $Mode;
- if ( $Format != NULL ) { $this->Data["Axis"][$AxisID]["Format"] = $Format; }
- }
- }
-
- /* Set the position of an Axis */
- function setAxisPosition($AxisID,$Position=AXIS_POSITION_LEFT)
- { if ( isset($this->Data["Axis"][$AxisID] ) ) { $this->Data["Axis"][$AxisID]["Position"] = $Position; } }
-
- /* Associate an unit to an axis */
- function setAxisUnit($AxisID,$Unit)
- { if ( isset($this->Data["Axis"][$AxisID] ) ) { $this->Data["Axis"][$AxisID]["Unit"] = $Unit; } }
-
- /* Associate a name to an axis */
- function setAxisName($AxisID,$Name)
- { if ( isset($this->Data["Axis"][$AxisID] ) ) { $this->Data["Axis"][$AxisID]["Name"] = $Name; } }
-
- /* Associate a color to an axis */
- function setAxisColor($AxisID,$Format)
- {
- $R = isset($Format["R"]) ? $Format["R"] : 0;
- $G = isset($Format["G"]) ? $Format["G"] : 0;
- $B = isset($Format["B"]) ? $Format["B"] : 0;
- $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
-
- if ( isset($this->Data["Axis"][$AxisID] ) )
- {
- $this->Data["Axis"][$AxisID]["Color"]["R"] = $R;
- $this->Data["Axis"][$AxisID]["Color"]["G"] = $G;
- $this->Data["Axis"][$AxisID]["Color"]["B"] = $B;
- $this->Data["Axis"][$AxisID]["Color"]["Alpha"] = $Alpha;
- }
- }
-
-
- /* Design an axis as X or Y member */
- function setAxisXY($AxisID,$Identity=AXIS_Y)
- { if ( isset($this->Data["Axis"][$AxisID] ) ) { $this->Data["Axis"][$AxisID]["Identity"] = $Identity; } }
-
- /* Associate one data serie with one axis */
- function setSerieOnAxis($Series,$AxisID)
- {
- if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
- foreach($Series as $Key => $Serie)
- {
- $PreviousAxis = $this->Data["Series"][$Serie]["Axis"];
-
- /* Create missing axis */
- if ( !isset($this->Data["Axis"][$AxisID] ) )
- { $this->Data["Axis"][$AxisID]["Position"] = AXIS_POSITION_LEFT; $this->Data["Axis"][$AxisID]["Identity"] = AXIS_Y;}
-
- $this->Data["Series"][$Serie]["Axis"] = $AxisID;
-
- /* Cleanup unused axis */
- $Found = FALSE;
- foreach($this->Data["Series"] as $SerieName => $Values) { if ( $Values["Axis"] == $PreviousAxis ) { $Found = TRUE; } }
- if (!$Found) { unset($this->Data["Axis"][$PreviousAxis]); }
- }
- }
-
- /* Define if a serie should be draw with ticks */
- function setSerieTicks($Series,$Width=0)
- {
- if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
- foreach($Series as $Key => $Serie) { if ( isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Ticks"] = $Width; } }
- }
-
- /* Define if a serie should be draw with a special weight */
- function setSerieWeight($Series,$Weight=0)
- {
- if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
- foreach($Series as $Key => $Serie) { if ( isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Weight"] = $Weight; } }
- }
-
- /* Returns the palette of the given serie */
- function getSeriePalette($Serie)
- {
- if ( !isset($this->Data["Series"][$Serie]) ) { return(NULL); }
-
- $Result = "";
- $Result["R"] = $this->Data["Series"][$Serie]["Color"]["R"];
- $Result["G"] = $this->Data["Series"][$Serie]["Color"]["G"];
- $Result["B"] = $this->Data["Series"][$Serie]["Color"]["B"];
- $Result["Alpha"] = $this->Data["Series"][$Serie]["Color"]["Alpha"];
-
- return($Result);
- }
-
- /* Set the color of one serie */
- function setPalette($Series,$Format=NULL)
- {
- if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
-
- foreach($Series as $Key => $Serie)
- {
- $R = isset($Format["R"]) ? $Format["R"] : 0;
- $G = isset($Format["G"]) ? $Format["G"] : 0;
- $B = isset($Format["B"]) ? $Format["B"] : 0;
- $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
-
- if ( isset($this->Data["Series"][$Serie]) )
- {
- $OldR = $this->Data["Series"][$Serie]["Color"]["R"]; $OldG = $this->Data["Series"][$Serie]["Color"]["G"]; $OldB = $this->Data["Series"][$Serie]["Color"]["B"];
- $this->Data["Series"][$Serie]["Color"]["R"] = $R;
- $this->Data["Series"][$Serie]["Color"]["G"] = $G;
- $this->Data["Series"][$Serie]["Color"]["B"] = $B;
- $this->Data["Series"][$Serie]["Color"]["Alpha"] = $Alpha;
-
- /* Do reverse processing on the internal palette array */
- foreach ($this->Palette as $Key => $Value)
- { if ($Value["R"] == $OldR && $Value["G"] == $OldG && $Value["B"] == $OldB) { $this->Palette[$Key]["R"] = $R; $this->Palette[$Key]["G"] = $G; $this->Palette[$Key]["B"] = $B; $this->Palette[$Key]["Alpha"] = $Alpha;} }
- }
- }
- }
-
- /* Load a palette file */
- function loadPalette($FileName,$Overwrite=FALSE)
- {
- if ( !file_exists($FileName) ) { return(-1); }
- if ( $Overwrite ) { $this->Palette = ""; }
-
- $fileHandle = @fopen($FileName, "r");
- if (!$fileHandle) { return(-1); }
- while (!feof($fileHandle))
- {
- $buffer = fgets($fileHandle, 4096);
- if ( preg_match("/,/",$buffer) )
- {
- list($R,$G,$B,$Alpha) = preg_split("/,/",$buffer);
- if ( $this->Palette == "" ) { $ID = 0; } else { $ID = count($this->Palette); }
- $this->Palette[$ID] = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha);
- }
- }
- fclose($fileHandle);
-
- /* Apply changes to current series */
- $ID = 0;
- if ( isset($this->Data["Series"]))
- {
- foreach($this->Data["Series"] as $Key => $Value)
- {
- if ( !isset($this->Palette[$ID]) )
- $this->Data["Series"][$Key]["Color"] = array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>0);
- else
- $this->Data["Series"][$Key]["Color"] = $this->Palette[$ID];
- $ID++;
- }
- }
- }
-
- /* Initialise a given scatter serie */
- function initScatterSerie($ID)
- {
- if ( isset($this->Data["ScatterSeries"][$ID]) ) { return(0); }
-
- $this->Data["ScatterSeries"][$ID]["Description"] = "Scatter ".$ID;
- $this->Data["ScatterSeries"][$ID]["isDrawable"] = TRUE;
- $this->Data["ScatterSeries"][$ID]["Picture"] = NULL;
- $this->Data["ScatterSeries"][$ID]["Ticks"] = 0;
- $this->Data["ScatterSeries"][$ID]["Weight"] = 0;
-
- if ( isset($this->Palette[$ID]) )
- $this->Data["ScatterSeries"][$ID]["Color"] = $this->Palette[$ID];
- else
- {
- $this->Data["ScatterSeries"][$ID]["Color"]["R"] = rand(0,255);
- $this->Data["ScatterSeries"][$ID]["Color"]["G"] = rand(0,255);
- $this->Data["ScatterSeries"][$ID]["Color"]["B"] = rand(0,255);
- $this->Data["ScatterSeries"][$ID]["Color"]["Alpha"] = 100;
- }
- }
-
- /* Initialise a given serie */
- function initialise($Serie)
- {
- if ( isset($this->Data["Series"]) ) { $ID = count($this->Data["Series"]); } else { $ID = 0; }
-
- $this->Data["Series"][$Serie]["Description"] = $Serie;
- $this->Data["Series"][$Serie]["isDrawable"] = TRUE;
- $this->Data["Series"][$Serie]["Picture"] = NULL;
- $this->Data["Series"][$Serie]["Max"] = NULL;
- $this->Data["Series"][$Serie]["Min"] = NULL;
- $this->Data["Series"][$Serie]["Axis"] = 0;
- $this->Data["Series"][$Serie]["Ticks"] = 0;
- $this->Data["Series"][$Serie]["Weight"] = 0;
- $this->Data["Series"][$Serie]["Shape"] = SERIE_SHAPE_FILLEDCIRCLE;
-
- if ( isset($this->Palette[$ID]) )
- $this->Data["Series"][$Serie]["Color"] = $this->Palette[$ID];
- else
- {
- $this->Data["Series"][$Serie]["Color"]["R"] = rand(0,255);
- $this->Data["Series"][$Serie]["Color"]["G"] = rand(0,255);
- $this->Data["Series"][$Serie]["Color"]["B"] = rand(0,255);
- $this->Data["Series"][$Serie]["Color"]["Alpha"] = 100;
- }
- }
-
- function normalize($NormalizationFactor=100,$UnitChange=NULL,$Round=1)
- {
- $Abscissa = $this->Data["Abscissa"];
-
- $SelectedSeries = "";
- $MaxVal = 0;
- foreach($this->Data["Axis"] as $AxisID => $Axis)
- {
- if ( $UnitChange != NULL ) { $this->Data["Axis"][$AxisID]["Unit"] = $UnitChange; }
-
- foreach($this->Data["Series"] as $SerieName => $Serie)
- {
- if ($Serie["Axis"] == $AxisID && $Serie["isDrawable"] == TRUE && $SerieName != $Abscissa)
- {
- $SelectedSeries[$SerieName] = $SerieName;
-
- if ( count($Serie["Data"] ) > $MaxVal ) { $MaxVal = count($Serie["Data"]); }
- }
- }
- }
-
- for($i=0;$i<=$MaxVal-1;$i++)
- {
- $Factor = 0;
- foreach ($SelectedSeries as $Key => $SerieName )
- {
- $Value = $this->Data["Series"][$SerieName]["Data"][$i];
- if ( $Value != VOID )
- $Factor = $Factor + abs($Value);
- }
-
- if ( $Factor != 0 )
- {
- $Factor = $NormalizationFactor / $Factor;
-
- foreach ($SelectedSeries as $Key => $SerieName )
- {
- $Value = $this->Data["Series"][$SerieName]["Data"][$i];
-
- if ( $Value != VOID && $Factor != $NormalizationFactor )
- $this->Data["Series"][$SerieName]["Data"][$i] = round(abs($Value)*$Factor,$Round);
- elseif ( $Value == VOID || $Value == 0 )
- $this->Data["Series"][$SerieName]["Data"][$i] = VOID;
- elseif ( $Factor == $NormalizationFactor )
- $this->Data["Series"][$SerieName]["Data"][$i] = $NormalizationFactor;
- }
- }
- }
-
- foreach ($SelectedSeries as $Key => $SerieName )
- {
- $this->Data["Series"][$SerieName]["Max"] = max($this->stripVOID($this->Data["Series"][$SerieName]["Data"]));
- $this->Data["Series"][$SerieName]["Min"] = min($this->stripVOID($this->Data["Series"][$SerieName]["Data"]));
- }
- }
-
- /* Load data from a CSV (or similar) data source */
- function importFromCSV($FileName,$Options="")
- {
- $Delimiter = isset($Options["Delimiter"]) ? $Options["Delimiter"] : ",";
- $GotHeader = isset($Options["GotHeader"]) ? $Options["GotHeader"] : FALSE;
- $SkipColumns = isset($Options["SkipColumns"]) ? $Options["SkipColumns"] : array(-1);
- $DefaultSerieName = isset($Options["DefaultSerieName"]) ? $Options["DefaultSerieName"] : "Serie";
-
- $Handle = @fopen($FileName,"r");
- if ($Handle)
- {
- $HeaderParsed = FALSE; $SerieNames = "";
- while (!feof($Handle))
- {
- $Buffer = fgets($Handle, 4096);
- $Buffer = str_replace(chr(10),"",$Buffer);
- $Buffer = str_replace(chr(13),"",$Buffer);
- $Values = preg_split("/".$Delimiter."/",$Buffer);
-
- if ( $Buffer != "" )
- {
- if ( $GotHeader && !$HeaderParsed )
- {
- foreach($Values as $Key => $Name) { if ( !in_array($Key,$SkipColumns) ) { $SerieNames[$Key] = $Name; } }
- $HeaderParsed = TRUE;
- }
- else
- {
- if ($SerieNames == "" ) { foreach($Values as $Key => $Name) { if ( !in_array($Key,$SkipColumns) ) { $SerieNames[$Key] = $DefaultSerieName.$Key; } } }
- foreach($Values as $Key => $Value) { if ( !in_array($Key,$SkipColumns) ) { $this->addPoints($Value,$SerieNames[$Key]); } }
- }
- }
- }
- fclose($Handle);
- }
- }
-
- /* Create a dataset based on a formula */
- /* COMMENTED BY PIWIK to avoid eval()
- function createFunctionSerie($SerieName,$Formula="",$Options="")
- {
- $MinX = isset($Options["MinX"]) ? $Options["MinX"] : -10;
- $MaxX = isset($Options["MaxX"]) ? $Options["MaxX"] : 10;
- $XStep = isset($Options["XStep"]) ? $Options["XStep"] : 1;
- $AutoDescription = isset($Options["AutoDescription"]) ? $Options["AutoDescription"] : FALSE;
- $RecordAbscissa = isset($Options["RecordAbscissa"]) ? $Options["RecordAbscissa"] : FALSE;
- $AbscissaSerie = isset($Options["AbscissaSerie"]) ? $Options["AbscissaSerie"] : "Abscissa";
-
- if ( $Formula == "" ) { return(0); }
-
- $Result = ""; $Abscissa = "";
- for($i=$MinX; $i<=$MaxX; $i=$i+$XStep)
- {
- $Expression = "\$return = '!'.(".str_replace("z",$i,$Formula).");";
- if ( @eval($Expression) === FALSE ) { $return = VOID; }
- if ( $return == "!" ) { $return = VOID; } else { $return = $this->right($return,strlen($return)-1); }
- if ( $return == "NAN" ) { $return = VOID; }
- if ( $return == "INF" ) { $return = VOID; }
- if ( $return == "-INF" ) { $return = VOID; }
-
- $Abscissa[] = $i;
- $Result[] = $return;
- }
-
- $this->addPoints($Result,$SerieName);
- if ( $AutoDescription ) { $this->setSerieDescription($SerieName,$Formula); }
- if ( $RecordAbscissa ) { $this->addPoints($Abscissa,$AbscissaSerie); }
- }*/
-
- function negateValues($Series)
- {
- if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
- foreach($Series as $Key => $SerieName)
- {
- if (isset($this->Data["Series"][$SerieName]))
- {
- $Data = "";
- foreach($this->Data["Series"][$SerieName]["Data"] as $Key => $Value)
- { if ( $Value == VOID ) { $Data[] = VOID; } else { $Data[] = -$Value; } }
- $this->Data["Series"][$SerieName]["Data"] = $Data;
-
- $this->Data["Series"][$SerieName]["Max"] = max($this->stripVOID($this->Data["Series"][$SerieName]["Data"]));
- $this->Data["Series"][$SerieName]["Min"] = min($this->stripVOID($this->Data["Series"][$SerieName]["Data"]));
- }
- }
- }
-
- /* Return the data & configuration of the series */
- function getData()
- { return($this->Data); }
-
- /* Save a palette element */
- function savePalette($ID,$Color)
- { $this->Palette[$ID] = $Color; }
-
- /* Return the palette of the series */
- function getPalette()
- { return($this->Palette); }
-
- /* Called by the scaling algorithm to save the config */
- function saveAxisConfig($Axis) { $this->Data["Axis"]=$Axis; }
-
- /* Save the Y Margin if set */
- function saveYMargin($Value) { $this->Data["YMargin"]=$Value; }
-
- /* Save extended configuration to the pData object */
- function saveExtendedData($Tag,$Values) { $this->Data["Extended"][$Tag]=$Values; }
-
- /* Called by the scaling algorithm to save the orientation of the scale */
- function saveOrientation($Orientation) { $this->Data["Orientation"]=$Orientation; }
-
- /* Convert a string to a single elements array */
- function convertToArray($Value)
- { $Values = ""; $Values[] = $Value; return($Values); }
-
- /* Class string wrapper */
- function __toString()
- { return("pData object."); }
-
- function left($value,$NbChar) { return substr($value,0,$NbChar); }
- function right($value,$NbChar) { return substr($value,strlen($value)-$NbChar,$NbChar); }
- function mid($value,$Depart,$NbChar) { return substr($value,$Depart-1,$NbChar); }
- }
+<?php
+ /*
+ pDraw - class to manipulate data arrays
+
+ Version : 2.1.4
+ Made by : Jean-Damien POGOLOTTI
+ Last Update : 19/01/2014
+
+ This file can be distributed under the license you can find at :
+
+ http://www.pchart.net/license
+
+ You can find the whole class documentation on the pChart web site.
+ */
+
+ /* Axis configuration */
+ define("AXIS_FORMAT_DEFAULT" , 680001);
+ define("AXIS_FORMAT_TIME" , 680002);
+ define("AXIS_FORMAT_DATE" , 680003);
+ define("AXIS_FORMAT_METRIC" , 680004);
+ define("AXIS_FORMAT_CURRENCY" , 680005);
+ define("AXIS_FORMAT_TRAFFIC" , 680006);
+ define("AXIS_FORMAT_CUSTOM" , 680007);
+
+ /* Axis position */
+ define("AXIS_POSITION_LEFT" , 681001);
+ define("AXIS_POSITION_RIGHT" , 681002);
+ define("AXIS_POSITION_TOP" , 681001);
+ define("AXIS_POSITION_BOTTOM" , 681002);
+
+ /* Families of data points */
+ define("SERIE_SHAPE_FILLEDCIRCLE" , 681011);
+ define("SERIE_SHAPE_FILLEDTRIANGLE" , 681012);
+ define("SERIE_SHAPE_FILLEDSQUARE" , 681013);
+ define("SERIE_SHAPE_FILLEDDIAMOND" , 681017);
+ define("SERIE_SHAPE_CIRCLE" , 681014);
+ define("SERIE_SHAPE_TRIANGLE" , 681015);
+ define("SERIE_SHAPE_SQUARE" , 681016);
+ define("SERIE_SHAPE_DIAMOND" , 681018);
+
+ /* Axis position */
+ define("AXIS_X" , 682001);
+ define("AXIS_Y" , 682002);
+
+ /* Define value limits */
+ define("ABSOLUTE_MIN" , -10000000000000);
+ define("ABSOLUTE_MAX" , 10000000000000);
+
+ /* Replacement to the PHP NULL keyword */
+ define("VOID" , 0.123456789);
+
+ /* Euro symbol for GD fonts */
+ define("EURO_SYMBOL" , utf8_encode("&#8364;"));
+
+ /* pData class definition */
+ class pData
+ {
+ var $Data;
+
+ var $Palette = array("0"=>array("R"=>188,"G"=>224,"B"=>46,"Alpha"=>100),
+ "1"=>array("R"=>224,"G"=>100,"B"=>46,"Alpha"=>100),
+ "2"=>array("R"=>224,"G"=>214,"B"=>46,"Alpha"=>100),
+ "3"=>array("R"=>46,"G"=>151,"B"=>224,"Alpha"=>100),
+ "4"=>array("R"=>176,"G"=>46,"B"=>224,"Alpha"=>100),
+ "5"=>array("R"=>224,"G"=>46,"B"=>117,"Alpha"=>100),
+ "6"=>array("R"=>92,"G"=>224,"B"=>46,"Alpha"=>100),
+ "7"=>array("R"=>224,"G"=>176,"B"=>46,"Alpha"=>100));
+
+ /* Class creator */
+ function __construct()
+ {
+ $this->Data = "";
+ $this->Data["XAxisDisplay"] = AXIS_FORMAT_DEFAULT;
+ $this->Data["XAxisFormat"] = NULL;
+ $this->Data["XAxisName"] = NULL;
+ $this->Data["XAxisUnit"] = NULL;
+ $this->Data["Abscissa"] = NULL;
+ $this->Data["AbsicssaPosition"] = AXIS_POSITION_BOTTOM;
+
+ $this->Data["Axis"][0]["Display"] = AXIS_FORMAT_DEFAULT;
+ $this->Data["Axis"][0]["Position"] = AXIS_POSITION_LEFT;
+ $this->Data["Axis"][0]["Identity"] = AXIS_Y;
+ }
+
+ /* Add a single point or an array to the given serie */
+ function addPoints($Values,$SerieName="Serie1")
+ {
+ if (!isset($this->Data["Series"][$SerieName]))
+ $this->initialise($SerieName);
+
+ if ( is_array($Values) )
+ {
+ foreach($Values as $Key => $Value)
+ { $this->Data["Series"][$SerieName]["Data"][] = $Value; }
+ }
+ else
+ $this->Data["Series"][$SerieName]["Data"][] = $Values;
+
+ if ( $Values != VOID )
+ {
+ $StrippedData = $this->stripVOID($this->Data["Series"][$SerieName]["Data"]);
+ if ( empty($StrippedData) ) { $this->Data["Series"][$SerieName]["Max"] = 0; $this->Data["Series"][$SerieName]["Min"] =0; return(0); }
+ $this->Data["Series"][$SerieName]["Max"] = max($StrippedData);
+ $this->Data["Series"][$SerieName]["Min"] = min($StrippedData);
+ }
+ }
+
+ /* Strip VOID values */
+ function stripVOID($Values)
+ { if (!is_array($Values)) { return(array()); } $Result = array(); foreach($Values as $Key => $Value) { if ( $Value != VOID ) { $Result[] = $Value; } } return($Result); }
+
+ /* Return the number of values contained in a given serie */
+ function getSerieCount($Serie)
+ { if (isset($this->Data["Series"][$Serie]["Data"])) { return(sizeof($this->Data["Series"][$Serie]["Data"])); } else { return(0); } }
+
+ /* Remove a serie from the pData object */
+ function removeSerie($Series)
+ {
+ if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+ foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie])) { unset($this->Data["Series"][$Serie]); } }
+ }
+
+ /* Return a value from given serie & index */
+ function getValueAt($Serie,$Index=0)
+ { if (isset($this->Data["Series"][$Serie]["Data"][$Index])) { return($this->Data["Series"][$Serie]["Data"][$Index]); } else { return(NULL); } }
+
+ /* Return the values array */
+ function getValues($Serie)
+ { if (isset($this->Data["Series"][$Serie]["Data"])) { return($this->Data["Series"][$Serie]["Data"]); } else { return(NULL); } }
+
+ /* Reverse the values in the given serie */
+ function reverseSerie($Series)
+ {
+ if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+ foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]["Data"])) { $this->Data["Series"][$Serie]["Data"] = array_reverse($this->Data["Series"][$Serie]["Data"]); } }
+ }
+
+ /* Return the sum of the serie values */
+ function getSum($Serie)
+ { if (isset($this->Data["Series"][$Serie])) { return(array_sum($this->Data["Series"][$Serie]["Data"])); } else { return(NULL); } }
+
+ /* Return the max value of a given serie */
+ function getMax($Serie)
+ { if (isset($this->Data["Series"][$Serie]["Max"])) { return($this->Data["Series"][$Serie]["Max"]); } else { return(NULL); } }
+
+ /* Return the min value of a given serie */
+ function getMin($Serie)
+ { if (isset($this->Data["Series"][$Serie]["Min"])) { return($this->Data["Series"][$Serie]["Min"]); } else { return(NULL); } }
+
+ /* Set the description of a given serie */
+ function setSerieShape($Series,$Shape=SERIE_SHAPE_FILLEDCIRCLE)
+ {
+ if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+ foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Shape"] = $Shape; } }
+ }
+
+ /* Set the description of a given serie */
+ function setSerieDescription($Series,$Description="My serie")
+ {
+ if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+ foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Description"] = $Description; } }
+ }
+
+ /* Set a serie as "drawable" while calling a rendering function */
+ function setSerieDrawable($Series,$Drawable=TRUE)
+ {
+ if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+ foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["isDrawable"] = $Drawable; } }
+ }
+
+ /* Set the icon associated to a given serie */
+ function setSeriePicture($Series,$Picture=NULL)
+ {
+ if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+ foreach($Series as $Key => $Serie) { if (isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Picture"] = $Picture; } }
+ }
+
+ /* Set the name of the X Axis */
+ function setXAxisName($Name)
+ { $this->Data["XAxisName"] = $Name; }
+
+ /* Set the display mode of the X Axis */
+ function setXAxisDisplay($Mode,$Format=NULL)
+ { $this->Data["XAxisDisplay"] = $Mode; $this->Data["XAxisFormat"] = $Format; }
+
+ /* Set the unit that will be displayed on the X axis */
+ function setXAxisUnit($Unit)
+ { $this->Data["XAxisUnit"] = $Unit; }
+
+ /* Set the serie that will be used as abscissa */
+ function setAbscissa($Serie)
+ { if (isset($this->Data["Series"][$Serie])) { $this->Data["Abscissa"] = $Serie; } }
+
+ function setAbsicssaPosition($Position = AXIS_POSITION_BOTTOM)
+ { $this->Data["AbsicssaPosition"] = $Position; }
+
+ /* Set the name of the abscissa axis */
+ function setAbscissaName($Name)
+ { $this->Data["AbscissaName"] = $Name; }
+
+ /* Create a scatter group specifyin X and Y data series */
+ function setScatterSerie($SerieX,$SerieY,$ID=0)
+ { if (isset($this->Data["Series"][$SerieX]) && isset($this->Data["Series"][$SerieY]) ) { $this->initScatterSerie($ID); $this->Data["ScatterSeries"][$ID]["X"] = $SerieX; $this->Data["ScatterSeries"][$ID]["Y"] = $SerieY; } }
+
+ /* Set the shape of a given sctatter serie */
+ function setScatterSerieShape($ID,$Shape=SERIE_SHAPE_FILLEDCIRCLE)
+ { if (isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Shape"] = $Shape; } }
+
+ /* Set the description of a given scatter serie */
+ function setScatterSerieDescription($ID,$Description="My serie")
+ { if (isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Description"] = $Description; } }
+
+ /* Set the icon associated to a given scatter serie */
+ function setScatterSeriePicture($ID,$Picture=NULL)
+ { if (isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Picture"] = $Picture; } }
+
+ /* Set a scatter serie as "drawable" while calling a rendering function */
+ function setScatterSerieDrawable($ID ,$Drawable=TRUE)
+ { if (isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["isDrawable"] = $Drawable; } }
+
+ /* Define if a scatter serie should be draw with ticks */
+ function setScatterSerieTicks($ID,$Width=0)
+ { if ( isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Ticks"] = $Width; } }
+
+ /* Define if a scatter serie should be draw with a special weight */
+ function setScatterSerieWeight($ID,$Weight=0)
+ { if ( isset($this->Data["ScatterSeries"][$ID]) ) { $this->Data["ScatterSeries"][$ID]["Weight"] = $Weight; } }
+
+ /* Associate a color to a scatter serie */
+ function setScatterSerieColor($ID,$Format)
+ {
+ $R = isset($Format["R"]) ? $Format["R"] : 0;
+ $G = isset($Format["G"]) ? $Format["G"] : 0;
+ $B = isset($Format["B"]) ? $Format["B"] : 0;
+ $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+
+ if ( isset($this->Data["ScatterSeries"][$ID]) )
+ {
+ $this->Data["ScatterSeries"][$ID]["Color"]["R"] = $R;
+ $this->Data["ScatterSeries"][$ID]["Color"]["G"] = $G;
+ $this->Data["ScatterSeries"][$ID]["Color"]["B"] = $B;
+ $this->Data["ScatterSeries"][$ID]["Color"]["Alpha"] = $Alpha;
+ }
+ }
+
+ /* Compute the series limits for an individual and global point of view */
+ function limits()
+ {
+ $GlobalMin = ABSOLUTE_MAX;
+ $GlobalMax = ABSOLUTE_MIN;
+
+ foreach($this->Data["Series"] as $Key => $Value)
+ {
+ if ( $this->Data["Abscissa"] != $Key && $this->Data["Series"][$Key]["isDrawable"] == TRUE)
+ {
+ if ( $GlobalMin > $this->Data["Series"][$Key]["Min"] ) { $GlobalMin = $this->Data["Series"][$Key]["Min"]; }
+ if ( $GlobalMax < $this->Data["Series"][$Key]["Max"] ) { $GlobalMax = $this->Data["Series"][$Key]["Max"]; }
+ }
+ }
+ $this->Data["Min"] = $GlobalMin;
+ $this->Data["Max"] = $GlobalMax;
+
+ return(array($GlobalMin,$GlobalMax));
+ }
+
+ /* Mark all series as drawable */
+ function drawAll()
+ { foreach($this->Data["Series"] as $Key => $Value) { if ( $this->Data["Abscissa"] != $Key ) { $this->Data["Series"][$Key]["isDrawable"]=TRUE; } } }
+
+ /* Return the average value of the given serie */
+ function getSerieAverage($Serie)
+ {
+ if ( isset($this->Data["Series"][$Serie]) )
+ {
+ $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
+ return(array_sum($SerieData)/sizeof($SerieData));
+ }
+ else
+ return(NULL);
+ }
+
+ /* Return the geometric mean of the given serie */
+ function getGeometricMean($Serie)
+ {
+ if ( isset($this->Data["Series"][$Serie]) )
+ {
+ $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
+ $Seriesum = 1; foreach($SerieData as $Key => $Value) { $Seriesum = $Seriesum * $Value; }
+ return(pow($Seriesum,1/sizeof($SerieData)));
+ }
+ else
+ return(NULL);
+ }
+
+ /* Return the harmonic mean of the given serie */
+ function getHarmonicMean($Serie)
+ {
+ if ( isset($this->Data["Series"][$Serie]) )
+ {
+ $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
+ $Seriesum = 0; foreach($SerieData as $Key => $Value) { $Seriesum = $Seriesum + 1/$Value; }
+ return(sizeof($SerieData)/$Seriesum);
+ }
+ else
+ return(NULL);
+ }
+
+ /* Return the standard deviation of the given serie */
+ function getStandardDeviation($Serie)
+ {
+ if ( isset($this->Data["Series"][$Serie]) )
+ {
+ $Average = $this->getSerieAverage($Serie);
+ $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
+
+ $DeviationSum = 0;
+ foreach($SerieData as $Key => $Value)
+ $DeviationSum = $DeviationSum + ($Value-$Average)*($Value-$Average);
+
+ $Deviation = sqrt($DeviationSum/count($SerieData));
+
+ return($Deviation);
+ }
+ else
+ return(NULL);
+ }
+
+ /* Return the Coefficient of variation of the given serie */
+ function getCoefficientOfVariation($Serie)
+ {
+ if ( isset($this->Data["Series"][$Serie]) )
+ {
+ $Average = $this->getSerieAverage($Serie);
+ $StandardDeviation = $this->getStandardDeviation($Serie);
+
+ if ( $StandardDeviation != 0 )
+ return($StandardDeviation/$Average);
+ else
+ return(NULL);
+ }
+ else
+ return(NULL);
+ }
+
+ /* Return the median value of the given serie */
+ function getSerieMedian($Serie)
+ {
+ if ( isset($this->Data["Series"][$Serie]) )
+ {
+ $SerieData = $this->stripVOID($this->Data["Series"][$Serie]["Data"]);
+ sort($SerieData);
+ $SerieCenter = floor(sizeof($SerieData)/2);
+
+ if ( isset($SerieData[$SerieCenter]) )
+ return($SerieData[$SerieCenter]);
+ else
+ return(NULL);
+ }
+ else
+ return(NULL);
+ }
+
+ /* Return the x th percentil of the given serie */
+ function getSeriePercentile($Serie="Serie1",$Percentil=95)
+ {
+ if (!isset($this->Data["Series"][$Serie]["Data"])) { return(NULL); }
+
+ $Values = count($this->Data["Series"][$Serie]["Data"])-1;
+ if ( $Values < 0 ) { $Values = 0; }
+
+ $PercentilID = floor(($Values/100)*$Percentil+.5);
+ $SortedValues = $this->Data["Series"][$Serie]["Data"];
+ sort($SortedValues);
+
+ if ( is_numeric($SortedValues[$PercentilID]) )
+ return($SortedValues[$PercentilID]);
+ else
+ return(NULL);
+ }
+
+ /* Add random values to a given serie */
+ function addRandomValues($SerieName="Serie1",$Options="")
+ {
+ $Values = isset($Options["Values"]) ? $Options["Values"] : 20;
+ $Min = isset($Options["Min"]) ? $Options["Min"] : 0;
+ $Max = isset($Options["Max"]) ? $Options["Max"] : 100;
+ $withFloat = isset($Options["withFloat"]) ? $Options["withFloat"] : FALSE;
+
+ for ($i=0;$i<=$Values;$i++)
+ {
+ if ( $withFloat ) { $Value = rand($Min*100,$Max*100)/100; } else { $Value = rand($Min,$Max); }
+ $this->addPoints($Value,$SerieName);
+ }
+ }
+
+ /* Test if we have valid data */
+ function containsData()
+ {
+ if (!isset($this->Data["Series"])) { return(FALSE); }
+
+ $Result = FALSE;
+ foreach($this->Data["Series"] as $Key => $Value)
+ { if ( $this->Data["Abscissa"] != $Key && $this->Data["Series"][$Key]["isDrawable"]==TRUE) { $Result=TRUE; } }
+ return($Result);
+ }
+
+ /* Set the display mode of an Axis */
+ function setAxisDisplay($AxisID,$Mode=AXIS_FORMAT_DEFAULT,$Format=NULL)
+ {
+ if ( isset($this->Data["Axis"][$AxisID] ) )
+ {
+ $this->Data["Axis"][$AxisID]["Display"] = $Mode;
+ if ( $Format != NULL ) { $this->Data["Axis"][$AxisID]["Format"] = $Format; }
+ }
+ }
+
+ /* Set the position of an Axis */
+ function setAxisPosition($AxisID,$Position=AXIS_POSITION_LEFT)
+ { if ( isset($this->Data["Axis"][$AxisID] ) ) { $this->Data["Axis"][$AxisID]["Position"] = $Position; } }
+
+ /* Associate an unit to an axis */
+ function setAxisUnit($AxisID,$Unit)
+ { if ( isset($this->Data["Axis"][$AxisID] ) ) { $this->Data["Axis"][$AxisID]["Unit"] = $Unit; } }
+
+ /* Associate a name to an axis */
+ function setAxisName($AxisID,$Name)
+ { if ( isset($this->Data["Axis"][$AxisID] ) ) { $this->Data["Axis"][$AxisID]["Name"] = $Name; } }
+
+ /* Associate a color to an axis */
+ function setAxisColor($AxisID,$Format)
+ {
+ $R = isset($Format["R"]) ? $Format["R"] : 0;
+ $G = isset($Format["G"]) ? $Format["G"] : 0;
+ $B = isset($Format["B"]) ? $Format["B"] : 0;
+ $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+
+ if ( isset($this->Data["Axis"][$AxisID] ) )
+ {
+ $this->Data["Axis"][$AxisID]["Color"]["R"] = $R;
+ $this->Data["Axis"][$AxisID]["Color"]["G"] = $G;
+ $this->Data["Axis"][$AxisID]["Color"]["B"] = $B;
+ $this->Data["Axis"][$AxisID]["Color"]["Alpha"] = $Alpha;
+ }
+ }
+
+
+ /* Design an axis as X or Y member */
+ function setAxisXY($AxisID,$Identity=AXIS_Y)
+ { if ( isset($this->Data["Axis"][$AxisID] ) ) { $this->Data["Axis"][$AxisID]["Identity"] = $Identity; } }
+
+ /* Associate one data serie with one axis */
+ function setSerieOnAxis($Series,$AxisID)
+ {
+ if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+ foreach($Series as $Key => $Serie)
+ {
+ $PreviousAxis = $this->Data["Series"][$Serie]["Axis"];
+
+ /* Create missing axis */
+ if ( !isset($this->Data["Axis"][$AxisID] ) )
+ { $this->Data["Axis"][$AxisID]["Position"] = AXIS_POSITION_LEFT; $this->Data["Axis"][$AxisID]["Identity"] = AXIS_Y;}
+
+ $this->Data["Series"][$Serie]["Axis"] = $AxisID;
+
+ /* Cleanup unused axis */
+ $Found = FALSE;
+ foreach($this->Data["Series"] as $SerieName => $Values) { if ( $Values["Axis"] == $PreviousAxis ) { $Found = TRUE; } }
+ if (!$Found) { unset($this->Data["Axis"][$PreviousAxis]); }
+ }
+ }
+
+ /* Define if a serie should be draw with ticks */
+ function setSerieTicks($Series,$Width=0)
+ {
+ if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+ foreach($Series as $Key => $Serie) { if ( isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Ticks"] = $Width; } }
+ }
+
+ /* Define if a serie should be draw with a special weight */
+ function setSerieWeight($Series,$Weight=0)
+ {
+ if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+ foreach($Series as $Key => $Serie) { if ( isset($this->Data["Series"][$Serie]) ) { $this->Data["Series"][$Serie]["Weight"] = $Weight; } }
+ }
+
+ /* Returns the palette of the given serie */
+ function getSeriePalette($Serie)
+ {
+ if ( !isset($this->Data["Series"][$Serie]) ) { return(NULL); }
+
+ $Result = "";
+ $Result["R"] = $this->Data["Series"][$Serie]["Color"]["R"];
+ $Result["G"] = $this->Data["Series"][$Serie]["Color"]["G"];
+ $Result["B"] = $this->Data["Series"][$Serie]["Color"]["B"];
+ $Result["Alpha"] = $this->Data["Series"][$Serie]["Color"]["Alpha"];
+
+ return($Result);
+ }
+
+ /* Set the color of one serie */
+ function setPalette($Series,$Format=NULL)
+ {
+ if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+
+ foreach($Series as $Key => $Serie)
+ {
+ $R = isset($Format["R"]) ? $Format["R"] : 0;
+ $G = isset($Format["G"]) ? $Format["G"] : 0;
+ $B = isset($Format["B"]) ? $Format["B"] : 0;
+ $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+
+ if ( isset($this->Data["Series"][$Serie]) )
+ {
+ $OldR = $this->Data["Series"][$Serie]["Color"]["R"]; $OldG = $this->Data["Series"][$Serie]["Color"]["G"]; $OldB = $this->Data["Series"][$Serie]["Color"]["B"];
+ $this->Data["Series"][$Serie]["Color"]["R"] = $R;
+ $this->Data["Series"][$Serie]["Color"]["G"] = $G;
+ $this->Data["Series"][$Serie]["Color"]["B"] = $B;
+ $this->Data["Series"][$Serie]["Color"]["Alpha"] = $Alpha;
+
+ /* Do reverse processing on the internal palette array */
+ foreach ($this->Palette as $Key => $Value)
+ { if ($Value["R"] == $OldR && $Value["G"] == $OldG && $Value["B"] == $OldB) { $this->Palette[$Key]["R"] = $R; $this->Palette[$Key]["G"] = $G; $this->Palette[$Key]["B"] = $B; $this->Palette[$Key]["Alpha"] = $Alpha;} }
+ }
+ }
+ }
+
+ /* Load a palette file */
+ function loadPalette($FileName,$Overwrite=FALSE)
+ {
+ if ( !file_exists($FileName) ) { return(-1); }
+ if ( $Overwrite ) { $this->Palette = ""; }
+
+ $fileHandle = @fopen($FileName, "r");
+ if (!$fileHandle) { return(-1); }
+ while (!feof($fileHandle))
+ {
+ $buffer = fgets($fileHandle, 4096);
+ if ( preg_match("/,/",$buffer) )
+ {
+ list($R,$G,$B,$Alpha) = preg_split("/,/",$buffer);
+ if ( $this->Palette == "" ) { $ID = 0; } else { $ID = count($this->Palette); }
+ $this->Palette[$ID] = array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha);
+ }
+ }
+ fclose($fileHandle);
+
+ /* Apply changes to current series */
+ $ID = 0;
+ if ( isset($this->Data["Series"]))
+ {
+ foreach($this->Data["Series"] as $Key => $Value)
+ {
+ if ( !isset($this->Palette[$ID]) )
+ $this->Data["Series"][$Key]["Color"] = array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>0);
+ else
+ $this->Data["Series"][$Key]["Color"] = $this->Palette[$ID];
+ $ID++;
+ }
+ }
+ }
+
+ /* Initialise a given scatter serie */
+ function initScatterSerie($ID)
+ {
+ if ( isset($this->Data["ScatterSeries"][$ID]) ) { return(0); }
+
+ $this->Data["ScatterSeries"][$ID]["Description"] = "Scatter ".$ID;
+ $this->Data["ScatterSeries"][$ID]["isDrawable"] = TRUE;
+ $this->Data["ScatterSeries"][$ID]["Picture"] = NULL;
+ $this->Data["ScatterSeries"][$ID]["Ticks"] = 0;
+ $this->Data["ScatterSeries"][$ID]["Weight"] = 0;
+
+ if ( isset($this->Palette[$ID]) )
+ $this->Data["ScatterSeries"][$ID]["Color"] = $this->Palette[$ID];
+ else
+ {
+ $this->Data["ScatterSeries"][$ID]["Color"]["R"] = rand(0,255);
+ $this->Data["ScatterSeries"][$ID]["Color"]["G"] = rand(0,255);
+ $this->Data["ScatterSeries"][$ID]["Color"]["B"] = rand(0,255);
+ $this->Data["ScatterSeries"][$ID]["Color"]["Alpha"] = 100;
+ }
+ }
+
+ /* Initialise a given serie */
+ function initialise($Serie)
+ {
+ if ( isset($this->Data["Series"]) ) { $ID = count($this->Data["Series"]); } else { $ID = 0; }
+
+ $this->Data["Series"][$Serie]["Description"] = $Serie;
+ $this->Data["Series"][$Serie]["isDrawable"] = TRUE;
+ $this->Data["Series"][$Serie]["Picture"] = NULL;
+ $this->Data["Series"][$Serie]["Max"] = NULL;
+ $this->Data["Series"][$Serie]["Min"] = NULL;
+ $this->Data["Series"][$Serie]["Axis"] = 0;
+ $this->Data["Series"][$Serie]["Ticks"] = 0;
+ $this->Data["Series"][$Serie]["Weight"] = 0;
+ $this->Data["Series"][$Serie]["Shape"] = SERIE_SHAPE_FILLEDCIRCLE;
+
+ if ( isset($this->Palette[$ID]) )
+ $this->Data["Series"][$Serie]["Color"] = $this->Palette[$ID];
+ else
+ {
+ $this->Data["Series"][$Serie]["Color"]["R"] = rand(0,255);
+ $this->Data["Series"][$Serie]["Color"]["G"] = rand(0,255);
+ $this->Data["Series"][$Serie]["Color"]["B"] = rand(0,255);
+ $this->Data["Series"][$Serie]["Color"]["Alpha"] = 100;
+ }
+ }
+
+ function normalize($NormalizationFactor=100,$UnitChange=NULL,$Round=1)
+ {
+ $Abscissa = $this->Data["Abscissa"];
+
+ $SelectedSeries = "";
+ $MaxVal = 0;
+ foreach($this->Data["Axis"] as $AxisID => $Axis)
+ {
+ if ( $UnitChange != NULL ) { $this->Data["Axis"][$AxisID]["Unit"] = $UnitChange; }
+
+ foreach($this->Data["Series"] as $SerieName => $Serie)
+ {
+ if ($Serie["Axis"] == $AxisID && $Serie["isDrawable"] == TRUE && $SerieName != $Abscissa)
+ {
+ $SelectedSeries[$SerieName] = $SerieName;
+
+ if ( count($Serie["Data"] ) > $MaxVal ) { $MaxVal = count($Serie["Data"]); }
+ }
+ }
+ }
+
+ for($i=0;$i<=$MaxVal-1;$i++)
+ {
+ $Factor = 0;
+ foreach ($SelectedSeries as $Key => $SerieName )
+ {
+ $Value = $this->Data["Series"][$SerieName]["Data"][$i];
+ if ( $Value != VOID )
+ $Factor = $Factor + abs($Value);
+ }
+
+ if ( $Factor != 0 )
+ {
+ $Factor = $NormalizationFactor / $Factor;
+
+ foreach ($SelectedSeries as $Key => $SerieName )
+ {
+ $Value = $this->Data["Series"][$SerieName]["Data"][$i];
+
+ if ( $Value != VOID && $Factor != $NormalizationFactor )
+ $this->Data["Series"][$SerieName]["Data"][$i] = round(abs($Value)*$Factor,$Round);
+ elseif ( $Value == VOID || $Value == 0 )
+ $this->Data["Series"][$SerieName]["Data"][$i] = VOID;
+ elseif ( $Factor == $NormalizationFactor )
+ $this->Data["Series"][$SerieName]["Data"][$i] = $NormalizationFactor;
+ }
+ }
+ }
+
+ foreach ($SelectedSeries as $Key => $SerieName )
+ {
+ $this->Data["Series"][$SerieName]["Max"] = max($this->stripVOID($this->Data["Series"][$SerieName]["Data"]));
+ $this->Data["Series"][$SerieName]["Min"] = min($this->stripVOID($this->Data["Series"][$SerieName]["Data"]));
+ }
+ }
+
+ /* Load data from a CSV (or similar) data source */
+ function importFromCSV($FileName,$Options="")
+ {
+ $Delimiter = isset($Options["Delimiter"]) ? $Options["Delimiter"] : ",";
+ $GotHeader = isset($Options["GotHeader"]) ? $Options["GotHeader"] : FALSE;
+ $SkipColumns = isset($Options["SkipColumns"]) ? $Options["SkipColumns"] : array(-1);
+ $DefaultSerieName = isset($Options["DefaultSerieName"]) ? $Options["DefaultSerieName"] : "Serie";
+
+ $Handle = @fopen($FileName,"r");
+ if ($Handle)
+ {
+ $HeaderParsed = FALSE; $SerieNames = "";
+ while (!feof($Handle))
+ {
+ $Buffer = fgets($Handle, 4096);
+ $Buffer = str_replace(chr(10),"",$Buffer);
+ $Buffer = str_replace(chr(13),"",$Buffer);
+ $Values = preg_split("/".$Delimiter."/",$Buffer);
+
+ if ( $Buffer != "" )
+ {
+ if ( $GotHeader && !$HeaderParsed )
+ {
+ foreach($Values as $Key => $Name) { if ( !in_array($Key,$SkipColumns) ) { $SerieNames[$Key] = $Name; } }
+ $HeaderParsed = TRUE;
+ }
+ else
+ {
+ if ($SerieNames == "" ) { foreach($Values as $Key => $Name) { if ( !in_array($Key,$SkipColumns) ) { $SerieNames[$Key] = $DefaultSerieName.$Key; } } }
+ foreach($Values as $Key => $Value) { if ( !in_array($Key,$SkipColumns) ) { $this->addPoints($Value,$SerieNames[$Key]); } }
+ }
+ }
+ }
+ fclose($Handle);
+ }
+ }
+
+ /* Create a dataset based on a formula */
+ /* COMMENTED BY PIWIK to avoid eval()
+ function createFunctionSerie($SerieName,$Formula="",$Options="")
+ {
+ $MinX = isset($Options["MinX"]) ? $Options["MinX"] : -10;
+ $MaxX = isset($Options["MaxX"]) ? $Options["MaxX"] : 10;
+ $XStep = isset($Options["XStep"]) ? $Options["XStep"] : 1;
+ $AutoDescription = isset($Options["AutoDescription"]) ? $Options["AutoDescription"] : FALSE;
+ $RecordAbscissa = isset($Options["RecordAbscissa"]) ? $Options["RecordAbscissa"] : FALSE;
+ $AbscissaSerie = isset($Options["AbscissaSerie"]) ? $Options["AbscissaSerie"] : "Abscissa";
+
+ if ( $Formula == "" ) { return(0); }
+
+ $Result = ""; $Abscissa = "";
+ for($i=$MinX; $i<=$MaxX; $i=$i+$XStep)
+ {
+ $Expression = "\$return = '!'.(".str_replace("z",$i,$Formula).");";
+ if ( @eval($Expression) === FALSE ) { $return = VOID; }
+ if ( $return == "!" ) { $return = VOID; } else { $return = $this->right($return,strlen($return)-1); }
+ if ( $return == "NAN" ) { $return = VOID; }
+ if ( $return == "INF" ) { $return = VOID; }
+ if ( $return == "-INF" ) { $return = VOID; }
+
+ $Abscissa[] = $i;
+ $Result[] = $return;
+ }
+
+ $this->addPoints($Result,$SerieName);
+ if ( $AutoDescription ) { $this->setSerieDescription($SerieName,$Formula); }
+ if ( $RecordAbscissa ) { $this->addPoints($Abscissa,$AbscissaSerie); }
+ }*/
+
+ function negateValues($Series)
+ {
+ if ( !is_array($Series) ) { $Series = $this->convertToArray($Series); }
+ foreach($Series as $Key => $SerieName)
+ {
+ if (isset($this->Data["Series"][$SerieName]))
+ {
+ $Data = "";
+ foreach($this->Data["Series"][$SerieName]["Data"] as $Key => $Value)
+ { if ( $Value == VOID ) { $Data[] = VOID; } else { $Data[] = -$Value; } }
+ $this->Data["Series"][$SerieName]["Data"] = $Data;
+
+ $this->Data["Series"][$SerieName]["Max"] = max($this->stripVOID($this->Data["Series"][$SerieName]["Data"]));
+ $this->Data["Series"][$SerieName]["Min"] = min($this->stripVOID($this->Data["Series"][$SerieName]["Data"]));
+ }
+ }
+ }
+
+ /* Return the data & configuration of the series */
+ function getData()
+ { return($this->Data); }
+
+ /* Save a palette element */
+ function savePalette($ID,$Color)
+ { $this->Palette[$ID] = $Color; }
+
+ /* Return the palette of the series */
+ function getPalette()
+ { return($this->Palette); }
+
+ /* Called by the scaling algorithm to save the config */
+ function saveAxisConfig($Axis) { $this->Data["Axis"]=$Axis; }
+
+ /* Save the Y Margin if set */
+ function saveYMargin($Value) { $this->Data["YMargin"]=$Value; }
+
+ /* Save extended configuration to the pData object */
+ function saveExtendedData($Tag,$Values) { $this->Data["Extended"][$Tag]=$Values; }
+
+ /* Called by the scaling algorithm to save the orientation of the scale */
+ function saveOrientation($Orientation) { $this->Data["Orientation"]=$Orientation; }
+
+ /* Convert a string to a single elements array */
+ function convertToArray($Value)
+ { $Values = ""; $Values[] = $Value; return($Values); }
+
+ /* Class string wrapper */
+ function __toString()
+ { return("pData object."); }
+
+ function left($value,$NbChar) { return substr($value,0,$NbChar); }
+ function right($value,$NbChar) { return substr($value,strlen($value)-$NbChar,$NbChar); }
+ function mid($value,$Depart,$NbChar) { return substr($value,$Depart-1,$NbChar); }
+ }
?> \ No newline at end of file
diff --git a/libs/pChart/class/pImage.class.php b/libs/pChart/class/pImage.class.php
index 900174d720..562dd08922 100755
--- a/libs/pChart/class/pImage.class.php
+++ b/libs/pChart/class/pImage.class.php
@@ -1,482 +1,482 @@
-<?php
- /*
- pDraw - pChart core class
-
- Version : 2.1.4
- Made by : Jean-Damien POGOLOTTI
- Last Update : 19/01/2014
-
- This file can be distributed under the license you can find at :
-
- http://www.pchart.net/license
-
- You can find the whole class documentation on the pChart web site.
- */
-
- /* The GD extension is mandatory */
- if (!extension_loaded('gd') && !extension_loaded('gd2'))
- {
- echo "GD extension must be loaded. \r\n";
- exit();
- }
-
- /* Image map handling */
- define("IMAGE_MAP_STORAGE_FILE" , 680001);
- define("IMAGE_MAP_STORAGE_SESSION" , 680002);
-
- /* Last generated chart layout */
- define("CHART_LAST_LAYOUT_REGULAR" , 680011);
- define("CHART_LAST_LAYOUT_STACKED" , 680012);
-
- /* ImageMap string delimiter */
- define("IMAGE_MAP_DELIMITER" , chr(1));
-
- class pImage extends pDraw
- {
- /* Image settings, size, quality, .. */
- var $XSize = NULL; // Width of the picture
- var $YSize = NULL; // Height of the picture
- var $Picture = NULL; // GD picture object
- var $Antialias = TRUE; // Turn antialias on or off
- var $AntialiasQuality = 0; // Quality of the antialiasing implementation (0-1)
- var $Mask = ""; // Already drawn pixels mask (Filled circle implementation)
- var $TransparentBackground = FALSE; // Just to know if we need to flush the alpha channels when rendering
-
- /* Graph area settings */
- var $GraphAreaX1 = NULL; // Graph area X origin
- var $GraphAreaY1 = NULL; // Graph area Y origin
- var $GraphAreaX2 = NULL; // Graph area bottom right X position
- var $GraphAreaY2 = NULL; // Graph area bottom right Y position
-
- /* Scale settings */
- var $ScaleMinDivHeight = 20; // Minimum height for scame divs
-
- /* Font properties */
- var $FontName = "fonts/GeosansLight.ttf"; // Default font file
- var $FontSize = 12; // Default font size
- var $FontBox = NULL; // Return the bounding box of the last written string
- var $FontColorR = 0; // Default color settings
- var $FontColorG = 0; // Default color settings
- var $FontColorB = 0; // Default color settings
- var $FontColorA = 100; // Default transparency
-
- /* Shadow properties */
- var $Shadow = FALSE; // Turn shadows on or off
- var $ShadowX = NULL; // X Offset of the shadow
- var $ShadowY = NULL; // Y Offset of the shadow
- var $ShadowR = NULL; // R component of the shadow
- var $ShadowG = NULL; // G component of the shadow
- var $ShadowB = NULL; // B component of the shadow
- var $Shadowa = NULL; // Alpha level of the shadow
-
- /* Image map */
- var $ImageMap = NULL; // Aray containing the image map
- var $ImageMapIndex = "pChart"; // Name of the session array
- var $ImageMapStorageMode = NULL; // Save the current imagemap storage mode
- var $ImageMapAutoDelete = TRUE; // Automatic deletion of the image map temp files
-
- /* Data Set */
- var $DataSet = NULL; // Attached dataset
-
- /* Last generated chart info */
- var $LastChartLayout = CHART_LAST_LAYOUT_REGULAR; // Last layout : regular or stacked
-
- /* Class constructor */
- function pImage($XSize,$YSize,$DataSet=NULL,$TransparentBackground=FALSE)
- {
- $this->TransparentBackground = $TransparentBackground;
-
- if ( $DataSet != NULL ) { $this->DataSet = $DataSet; }
-
- $this->XSize = $XSize;
- $this->YSize = $YSize;
- $this->Picture = imagecreatetruecolor($XSize,$YSize);
-
- if ( $this->TransparentBackground )
- {
- imagealphablending($this->Picture,FALSE);
- imagefilledrectangle($this->Picture, 0,0,$XSize, $YSize, imagecolorallocatealpha($this->Picture, 255, 255, 255, 127));
- imagealphablending($this->Picture,TRUE);
- imagesavealpha($this->Picture,true);
- }
- else
- {
- $C_White = $this->AllocateColor($this->Picture,255,255,255);
- imagefilledrectangle($this->Picture,0,0,$XSize,$YSize,$C_White);
- }
- }
-
- /* Enable / Disable and set shadow properties */
- function setShadow($Enabled=TRUE,$Format="")
- {
- $X = isset($Format["X"]) ? $Format["X"] : 2;
- $Y = isset($Format["Y"]) ? $Format["Y"] : 2;
- $R = isset($Format["R"]) ? $Format["R"] : 0;
- $G = isset($Format["G"]) ? $Format["G"] : 0;
- $B = isset($Format["B"]) ? $Format["B"] : 0;
- $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 10;
-
- $this->Shadow = $Enabled;
- $this->ShadowX = $X;
- $this->ShadowY = $Y;
- $this->ShadowR = $R;
- $this->ShadowG = $G;
- $this->ShadowB = $B;
- $this->Shadowa = $Alpha;
- }
-
- /* Set the graph area position */
- function setGraphArea($X1,$Y1,$X2,$Y2)
- {
- if ( $X2 < $X1 || $X1 == $X2 || $Y2 < $Y1 || $Y1 == $Y2 ) { return(-1); }
-
- $this->GraphAreaX1 = $X1; $this->DataSet->Data["GraphArea"]["X1"] = $X1;
- $this->GraphAreaY1 = $Y1; $this->DataSet->Data["GraphArea"]["Y1"] = $Y1;
- $this->GraphAreaX2 = $X2; $this->DataSet->Data["GraphArea"]["X2"] = $X2;
- $this->GraphAreaY2 = $Y2; $this->DataSet->Data["GraphArea"]["Y2"] = $Y2;
- }
-
- /* Return the width of the picture */
- function getWidth()
- { return($this->XSize); }
-
- /* Return the heigth of the picture */
- function getHeight()
- { return($this->YSize); }
-
- /* Render the picture to a file */
- function render($FileName)
- {
- if ( $this->TransparentBackground ) { imagealphablending($this->Picture,false); imagesavealpha($this->Picture,true); }
- imagepng($this->Picture,$FileName);
- }
-
- /* Render the picture to a web browser stream */
- function stroke($BrowserExpire=FALSE)
- {
- if ( $this->TransparentBackground ) { imagealphablending($this->Picture,false); imagesavealpha($this->Picture,true); }
-
- if ( $BrowserExpire )
- {
- header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
- header("Cache-Control: no-cache");
- header("Pragma: no-cache");
- }
-
- header('Content-type: image/png');
- imagepng($this->Picture);
- }
-
- /* Automatic output method based on the calling interface */
- function autoOutput($FileName="output.png")
- {
- if (php_sapi_name() == "cli")
- $this->Render($FileName);
- else
- $this->Stroke();
- }
-
- /* Return the length between two points */
- function getLength($X1,$Y1,$X2,$Y2)
- { return(sqrt(pow(max($X1,$X2)-min($X1,$X2),2)+pow(max($Y1,$Y2)-min($Y1,$Y2),2))); }
-
- /* Return the orientation of a line */
- function getAngle($X1,$Y1,$X2,$Y2)
- {
- $Opposite = $Y2 - $Y1; $Adjacent = $X2 - $X1;$Angle = rad2deg(atan2($Opposite,$Adjacent));
- if ($Angle > 0) { return($Angle); } else { return(360-abs($Angle)); }
- }
-
- /* Return the surrounding box of text area */
- function getTextBox_deprecated($X,$Y,$FontName,$FontSize,$Angle,$Text)
- {
- $Size = imagettfbbox($FontSize,$Angle,$FontName,$this->getEncodedText($Text));
- $Width = $this->getLength($Size[0],$Size[1],$Size[2],$Size[3])+1;
- $Height = $this->getLength($Size[2],$Size[3],$Size[4],$Size[5])+1;
-
- $RealPos[0]["X"] = $X; $RealPos[0]["Y"] = $Y;
- $RealPos[1]["X"] = cos((360-$Angle)*PI/180)*$Width + $RealPos[0]["X"]; $RealPos[1]["Y"] = sin((360-$Angle)*PI/180)*$Width + $RealPos[0]["Y"];
- $RealPos[2]["X"] = cos((270-$Angle)*PI/180)*$Height + $RealPos[1]["X"]; $RealPos[2]["Y"] = sin((270-$Angle)*PI/180)*$Height + $RealPos[1]["Y"];
- $RealPos[3]["X"] = cos((180-$Angle)*PI/180)*$Width + $RealPos[2]["X"]; $RealPos[3]["Y"] = sin((180-$Angle)*PI/180)*$Width + $RealPos[2]["Y"];
-
- $RealPos[TEXT_ALIGN_BOTTOMLEFT]["X"] = $RealPos[0]["X"]; $RealPos[TEXT_ALIGN_BOTTOMLEFT]["Y"] = $RealPos[0]["Y"];
- $RealPos[TEXT_ALIGN_BOTTOMRIGHT]["X"] = $RealPos[1]["X"]; $RealPos[TEXT_ALIGN_BOTTOMRIGHT]["Y"] = $RealPos[1]["Y"];
-
- return($RealPos);
- }
-
- function getEncodedText($text)
- {
- $gdinfo = gd_info();
- if (!empty($gdinfo['JIS-mapped Japanese Font Support'])) {
- return mb_convert_encoding($text, "SJIS", "UTF-8");
- }
-
- return $text;
- }
-
- /* Return the surrounding box of text area */
- function getTextBox($X,$Y,$FontName,$FontSize,$Angle,$Text)
- {
- $coords = imagettfbbox($FontSize, 0, $FontName, $this->getEncodedText($Text));
-
- $a = deg2rad($Angle); $ca = cos($a); $sa = sin($a); $RealPos = array();
- for($i = 0; $i < 7; $i += 2)
- {
- $RealPos[$i/2]["X"] = $X + round($coords[$i] * $ca + $coords[$i+1] * $sa);
- $RealPos[$i/2]["Y"] = $Y + round($coords[$i+1] * $ca - $coords[$i] * $sa);
- }
-
- $RealPos[TEXT_ALIGN_BOTTOMLEFT]["X"] = $RealPos[0]["X"]; $RealPos[TEXT_ALIGN_BOTTOMLEFT]["Y"] = $RealPos[0]["Y"];
- $RealPos[TEXT_ALIGN_BOTTOMRIGHT]["X"] = $RealPos[1]["X"]; $RealPos[TEXT_ALIGN_BOTTOMRIGHT]["Y"] = $RealPos[1]["Y"];
- $RealPos[TEXT_ALIGN_TOPLEFT]["X"] = $RealPos[3]["X"]; $RealPos[TEXT_ALIGN_TOPLEFT]["Y"] = $RealPos[3]["Y"];
- $RealPos[TEXT_ALIGN_TOPRIGHT]["X"] = $RealPos[2]["X"]; $RealPos[TEXT_ALIGN_TOPRIGHT]["Y"] = $RealPos[2]["Y"];
- $RealPos[TEXT_ALIGN_BOTTOMMIDDLE]["X"] = ($RealPos[1]["X"]-$RealPos[0]["X"])/2+$RealPos[0]["X"]; $RealPos[TEXT_ALIGN_BOTTOMMIDDLE]["Y"] = ($RealPos[0]["Y"]-$RealPos[1]["Y"])/2+$RealPos[1]["Y"];
- $RealPos[TEXT_ALIGN_TOPMIDDLE]["X"] = ($RealPos[2]["X"]-$RealPos[3]["X"])/2+$RealPos[3]["X"]; $RealPos[TEXT_ALIGN_TOPMIDDLE]["Y"] = ($RealPos[3]["Y"]-$RealPos[2]["Y"])/2+$RealPos[2]["Y"];
- $RealPos[TEXT_ALIGN_MIDDLELEFT]["X"] = ($RealPos[0]["X"]-$RealPos[3]["X"])/2+$RealPos[3]["X"]; $RealPos[TEXT_ALIGN_MIDDLELEFT]["Y"] = ($RealPos[0]["Y"]-$RealPos[3]["Y"])/2+$RealPos[3]["Y"];
- $RealPos[TEXT_ALIGN_MIDDLERIGHT]["X"] = ($RealPos[1]["X"]-$RealPos[2]["X"])/2+$RealPos[2]["X"]; $RealPos[TEXT_ALIGN_MIDDLERIGHT]["Y"] = ($RealPos[1]["Y"]-$RealPos[2]["Y"])/2+$RealPos[2]["Y"];
- $RealPos[TEXT_ALIGN_MIDDLEMIDDLE]["X"] = ($RealPos[1]["X"]-$RealPos[3]["X"])/2+$RealPos[3]["X"]; $RealPos[TEXT_ALIGN_MIDDLEMIDDLE]["Y"] = ($RealPos[0]["Y"]-$RealPos[2]["Y"])/2+$RealPos[2]["Y"];
-
- return($RealPos);
- }
-
- /* Set current font properties */
- function setFontProperties($Format="")
- {
- $R = isset($Format["R"]) ? $Format["R"] : -1;
- $G = isset($Format["G"]) ? $Format["G"] : -1;
- $B = isset($Format["B"]) ? $Format["B"] : -1;
- $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
- $FontName = isset($Format["FontName"]) ? $Format["FontName"] : NULL;
- $FontSize = isset($Format["FontSize"]) ? $Format["FontSize"] : NULL;
-
- if ( $R != -1) { $this->FontColorR = $R; }
- if ( $G != -1) { $this->FontColorG = $G; }
- if ( $B != -1) { $this->FontColorB = $B; }
- if ( $Alpha != NULL) { $this->FontColorA = $Alpha; }
-
- if ( $FontName != NULL )
- $this->FontName = $FontName;
-
- if ( $FontSize != NULL )
- $this->FontSize = $FontSize;
- }
-
- /* Returns the 1st decimal values (used to correct AA bugs) */
- function getFirstDecimal($Value)
- {
- $Values = preg_split("/\./",$Value);
- if ( isset($Values[1]) ) { return(substr($Values[1],0,1)); } else { return(0); }
- }
-
- /* Attach a dataset to your pChart Object */
- function setDataSet(&$DataSet)
- { $this->DataSet = $DataSet; }
-
- /* Print attached dataset contents to STDOUT */
- function printDataSet()
- { print_r($this->DataSet); }
-
- /* Initialise the image map methods */
- function initialiseImageMap($Name="pChart",$StorageMode=IMAGE_MAP_STORAGE_SESSION,$UniqueID="imageMap",$StorageFolder="tmp")
- {
- $this->ImageMapIndex = $Name;
- $this->ImageMapStorageMode = $StorageMode;
-
- if ($StorageMode == IMAGE_MAP_STORAGE_SESSION)
- {
- if(!isset($_SESSION)) { session_start(); }
- $_SESSION[$this->ImageMapIndex] = NULL;
- }
- elseif($StorageMode == IMAGE_MAP_STORAGE_FILE)
- {
- $this->ImageMapFileName = $UniqueID;
- $this->ImageMapStorageFolder = $StorageFolder;
-
- if (file_exists($StorageFolder."/".$UniqueID.".map")) { unlink($StorageFolder."/".$UniqueID.".map"); }
- }
- }
-
- /* Add a zone to the image map */
- function addToImageMap($Type,$Plots,$Color=NULL,$Title=NULL,$Message=NULL,$HTMLEncode=FALSE)
- {
- if ( $this->ImageMapStorageMode == NULL ) { $this->initialiseImageMap(); }
-
- /* Encode the characters in the imagemap in HTML standards */
- $Title = str_replace("&#8364;","\u20AC",$Title);
- $Title = htmlentities($Title,ENT_QUOTES,"ISO-8859-15");
- if ( $HTMLEncode )
- {
- $Message = htmlentities($Message,ENT_QUOTES,"ISO-8859-15");
- $Message = str_replace("&lt;","<",$Message);
- $Message = str_replace("&gt;",">",$Message);
- }
-
- if ( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_SESSION )
- {
- if(!isset($_SESSION)) { $this->initialiseImageMap(); }
- $_SESSION[$this->ImageMapIndex][] = array($Type,$Plots,$Color,$Title,$Message);
- }
- elseif($this->ImageMapStorageMode == IMAGE_MAP_STORAGE_FILE)
- {
- $Handle = fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", 'a');
- fwrite($Handle, $Type.IMAGE_MAP_DELIMITER.$Plots.IMAGE_MAP_DELIMITER.$Color.IMAGE_MAP_DELIMITER.$Title.IMAGE_MAP_DELIMITER.$Message."\r\n");
- fclose($Handle);
- }
- }
-
- /* Remove VOID values from an imagemap custom values array */
- function removeVOIDFromArray($SerieName, $Values)
- {
- if ( !isset($this->DataSet->Data["Series"][$SerieName]) ) { return(-1); }
-
- $Result = "";
- foreach($this->DataSet->Data["Series"][$SerieName]["Data"] as $Key => $Value)
- { if ( $Value != VOID && isset($Values[$Key]) ) { $Result[] = $Values[$Key]; } }
- return($Result);
- }
-
- /* Replace the title of one image map serie */
- function replaceImageMapTitle($OldTitle, $NewTitle)
- {
- if ( $this->ImageMapStorageMode == NULL ) { return(-1); }
-
- if ( is_array($NewTitle) ) { $NewTitle = $this->removeVOIDFromArray($OldTitle, $NewTitle); }
-
- if ( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_SESSION )
- {
- if(!isset($_SESSION)) { return(-1); }
- if ( is_array($NewTitle) )
- { $ID = 0; foreach($_SESSION[$this->ImageMapIndex] as $Key => $Settings) { if ( $Settings[3] == $OldTitle && isset($NewTitle[$ID])) { $_SESSION[$this->ImageMapIndex][$Key][3] = $NewTitle[$ID]; $ID++; } } }
- else
- { foreach($_SESSION[$this->ImageMapIndex] as $Key => $Settings) { if ( $Settings[3] == $OldTitle ) { $_SESSION[$this->ImageMapIndex][$Key][3] = $NewTitle; } } }
- }
- elseif( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_FILE )
- {
- $TempArray = "";
- $Handle = @fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", "r");
- if ($Handle)
- {
- while (($Buffer = fgets($Handle, 4096)) !== false)
- {
- $Fields = preg_split("/".IMAGE_MAP_DELIMITER."/",str_replace(array(chr(10),chr(13)),"",$Buffer));
- $TempArray[] = array($Fields[0],$Fields[1],$Fields[2],$Fields[3],$Fields[4]);
- }
- fclose($Handle);
-
- if ( is_array($NewTitle) )
- { $ID = 0; foreach($TempArray as $Key => $Settings) { if ( $Settings[3] == $OldTitle && isset($NewTitle[$ID]) ) { $TempArray[$Key][3] = $NewTitle[$ID]; $ID++; } } }
- else
- { foreach($TempArray as $Key => $Settings) { if ( $Settings[3] == $OldTitle ) { $TempArray[$Key][3] = $NewTitle; } } }
-
- $Handle = fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", 'w');
- foreach($TempArray as $Key => $Settings)
- { fwrite($Handle, $Settings[0].IMAGE_MAP_DELIMITER.$Settings[1].IMAGE_MAP_DELIMITER.$Settings[2].IMAGE_MAP_DELIMITER.$Settings[3].IMAGE_MAP_DELIMITER.$Settings[4]."\r\n"); }
- fclose($Handle);
- }
- }
- }
-
- /* Replace the values of the image map contents */
- function replaceImageMapValues($Title, $Values)
- {
- if ( $this->ImageMapStorageMode == NULL ) { return(-1); }
-
- $Values = $this->removeVOIDFromArray($Title, $Values);
- $ID = 0;
- if ( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_SESSION )
- {
- if(!isset($_SESSION)) { return(-1); }
- foreach($_SESSION[$this->ImageMapIndex] as $Key => $Settings) { if ( $Settings[3] == $Title ) { if ( isset($Values[$ID]) ) { $_SESSION[$this->ImageMapIndex][$Key][4] = $Values[$ID]; } $ID++; } }
- }
- elseif( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_FILE )
- {
- $TempArray = "";
- $Handle = @fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", "r");
- if ($Handle)
- {
- while (($Buffer = fgets($Handle, 4096)) !== false)
- {
- $Fields = preg_split("/".IMAGE_MAP_DELIMITER."/",str_replace(array(chr(10),chr(13)),"",$Buffer));
- $TempArray[] = array($Fields[0],$Fields[1],$Fields[2],$Fields[3],$Fields[4]);
- }
- fclose($Handle);
-
- foreach($TempArray as $Key => $Settings) { if ( $Settings[3] == $Title ) { if ( isset($Values[$ID]) ) { $TempArray[$Key][4] = $Values[$ID]; } $ID++; } }
-
- $Handle = fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", 'w');
- foreach($TempArray as $Key => $Settings)
- { fwrite($Handle, $Settings[0].IMAGE_MAP_DELIMITER.$Settings[1].IMAGE_MAP_DELIMITER.$Settings[2].IMAGE_MAP_DELIMITER.$Settings[3].IMAGE_MAP_DELIMITER.$Settings[4]."\r\n"); }
- fclose($Handle);
- }
- }
- }
-
- /* Dump the image map */
- function dumpImageMap($Name="pChart",$StorageMode=IMAGE_MAP_STORAGE_SESSION,$UniqueID="imageMap",$StorageFolder="tmp")
- {
- $this->ImageMapIndex = $Name;
- $this->ImageMapStorageMode = $StorageMode;
-
- if ( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_SESSION )
- {
- if(!isset($_SESSION)) { session_start(); }
- if ( $_SESSION[$Name] != NULL )
- {
- foreach($_SESSION[$Name] as $Key => $Params)
- { echo $Params[0].IMAGE_MAP_DELIMITER.$Params[1].IMAGE_MAP_DELIMITER.$Params[2].IMAGE_MAP_DELIMITER.$Params[3].IMAGE_MAP_DELIMITER.$Params[4]."\r\n"; }
- }
- }
- elseif( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_FILE )
- {
- if (file_exists($StorageFolder."/".$UniqueID.".map"))
- {
- $Handle = @fopen($StorageFolder."/".$UniqueID.".map", "r");
- if ($Handle) { while (($Buffer = fgets($Handle, 4096)) !== false) { echo $Buffer; } }
- fclose($Handle);
-
- if ( $this->ImageMapAutoDelete ) { unlink($StorageFolder."/".$UniqueID.".map"); }
- }
- }
-
- /* When the image map is returned to the client, the script ends */
- exit();
- }
-
- /* Return the HTML converted color from the RGB composite values */
- function toHTMLColor($R,$G,$B)
- {
- $R=intval($R); $G=intval($G); $B=intval($B);
- $R=dechex($R<0?0:($R>255?255:$R)); $G=dechex($G<0?0:($G>255?255:$G));$B=dechex($B<0?0:($B>255?255:$B));
- $Color="#".(strlen($R) < 2?'0':'').$R; $Color.=(strlen($G) < 2?'0':'').$G; $Color.= (strlen($B) < 2?'0':'').$B;
- return($Color);
- }
-
- /* Reverse an array of points */
- function reversePlots($Plots)
- {
- $Result = "";
- for($i=count($Plots)-2;$i>=0;$i=$i-2) { $Result[] = $Plots[$i]; $Result[] = $Plots[$i+1]; }
- return($Result);
- }
-
- /* Mirror Effect */
- function drawAreaMirror($X,$Y,$Width,$Height,$Format="")
- {
- $StartAlpha = isset($Format["StartAlpha"]) ? $Format["StartAlpha"] : 80;
- $EndAlpha = isset($Format["EndAlpha"]) ? $Format["EndAlpha"] : 0;
-
- $AlphaStep = ($StartAlpha-$EndAlpha)/$Height;
-
- $Picture = imagecreatetruecolor($this->XSize,$this->YSize);
- imagecopy($Picture,$this->Picture,0,0,0,0,$this->XSize,$this->YSize);
-
- for($i=1;$i<=$Height;$i++)
- {
- if ( $Y+($i-1) < $this->YSize && $Y-$i > 0 ) { imagecopymerge($Picture,$this->Picture,$X,$Y+($i-1),$X,$Y-$i,$Width,1,$StartAlpha-$AlphaStep*$i); }
- }
-
- imagecopy($this->Picture,$Picture,0,0,0,0,$this->XSize,$this->YSize);
- }
- }
+<?php
+ /*
+ pDraw - pChart core class
+
+ Version : 2.1.4
+ Made by : Jean-Damien POGOLOTTI
+ Last Update : 19/01/2014
+
+ This file can be distributed under the license you can find at :
+
+ http://www.pchart.net/license
+
+ You can find the whole class documentation on the pChart web site.
+ */
+
+ /* The GD extension is mandatory */
+ if (!extension_loaded('gd') && !extension_loaded('gd2'))
+ {
+ echo "GD extension must be loaded. \r\n";
+ exit();
+ }
+
+ /* Image map handling */
+ define("IMAGE_MAP_STORAGE_FILE" , 680001);
+ define("IMAGE_MAP_STORAGE_SESSION" , 680002);
+
+ /* Last generated chart layout */
+ define("CHART_LAST_LAYOUT_REGULAR" , 680011);
+ define("CHART_LAST_LAYOUT_STACKED" , 680012);
+
+ /* ImageMap string delimiter */
+ define("IMAGE_MAP_DELIMITER" , chr(1));
+
+ class pImage extends pDraw
+ {
+ /* Image settings, size, quality, .. */
+ var $XSize = NULL; // Width of the picture
+ var $YSize = NULL; // Height of the picture
+ var $Picture = NULL; // GD picture object
+ var $Antialias = TRUE; // Turn antialias on or off
+ var $AntialiasQuality = 0; // Quality of the antialiasing implementation (0-1)
+ var $Mask = ""; // Already drawn pixels mask (Filled circle implementation)
+ var $TransparentBackground = FALSE; // Just to know if we need to flush the alpha channels when rendering
+
+ /* Graph area settings */
+ var $GraphAreaX1 = NULL; // Graph area X origin
+ var $GraphAreaY1 = NULL; // Graph area Y origin
+ var $GraphAreaX2 = NULL; // Graph area bottom right X position
+ var $GraphAreaY2 = NULL; // Graph area bottom right Y position
+
+ /* Scale settings */
+ var $ScaleMinDivHeight = 20; // Minimum height for scame divs
+
+ /* Font properties */
+ var $FontName = "fonts/GeosansLight.ttf"; // Default font file
+ var $FontSize = 12; // Default font size
+ var $FontBox = NULL; // Return the bounding box of the last written string
+ var $FontColorR = 0; // Default color settings
+ var $FontColorG = 0; // Default color settings
+ var $FontColorB = 0; // Default color settings
+ var $FontColorA = 100; // Default transparency
+
+ /* Shadow properties */
+ var $Shadow = FALSE; // Turn shadows on or off
+ var $ShadowX = NULL; // X Offset of the shadow
+ var $ShadowY = NULL; // Y Offset of the shadow
+ var $ShadowR = NULL; // R component of the shadow
+ var $ShadowG = NULL; // G component of the shadow
+ var $ShadowB = NULL; // B component of the shadow
+ var $Shadowa = NULL; // Alpha level of the shadow
+
+ /* Image map */
+ var $ImageMap = NULL; // Aray containing the image map
+ var $ImageMapIndex = "pChart"; // Name of the session array
+ var $ImageMapStorageMode = NULL; // Save the current imagemap storage mode
+ var $ImageMapAutoDelete = TRUE; // Automatic deletion of the image map temp files
+
+ /* Data Set */
+ var $DataSet = NULL; // Attached dataset
+
+ /* Last generated chart info */
+ var $LastChartLayout = CHART_LAST_LAYOUT_REGULAR; // Last layout : regular or stacked
+
+ /* Class constructor */
+ function __construct($XSize,$YSize,$DataSet=NULL,$TransparentBackground=FALSE)
+ {
+ $this->TransparentBackground = $TransparentBackground;
+
+ if ( $DataSet != NULL ) { $this->DataSet = $DataSet; }
+
+ $this->XSize = $XSize;
+ $this->YSize = $YSize;
+ $this->Picture = imagecreatetruecolor($XSize,$YSize);
+
+ if ( $this->TransparentBackground )
+ {
+ imagealphablending($this->Picture,FALSE);
+ imagefilledrectangle($this->Picture, 0,0,$XSize, $YSize, imagecolorallocatealpha($this->Picture, 255, 255, 255, 127));
+ imagealphablending($this->Picture,TRUE);
+ imagesavealpha($this->Picture,true);
+ }
+ else
+ {
+ $C_White = $this->AllocateColor($this->Picture,255,255,255);
+ imagefilledrectangle($this->Picture,0,0,$XSize,$YSize,$C_White);
+ }
+ }
+
+ /* Enable / Disable and set shadow properties */
+ function setShadow($Enabled=TRUE,$Format="")
+ {
+ $X = isset($Format["X"]) ? $Format["X"] : 2;
+ $Y = isset($Format["Y"]) ? $Format["Y"] : 2;
+ $R = isset($Format["R"]) ? $Format["R"] : 0;
+ $G = isset($Format["G"]) ? $Format["G"] : 0;
+ $B = isset($Format["B"]) ? $Format["B"] : 0;
+ $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 10;
+
+ $this->Shadow = $Enabled;
+ $this->ShadowX = $X;
+ $this->ShadowY = $Y;
+ $this->ShadowR = $R;
+ $this->ShadowG = $G;
+ $this->ShadowB = $B;
+ $this->Shadowa = $Alpha;
+ }
+
+ /* Set the graph area position */
+ function setGraphArea($X1,$Y1,$X2,$Y2)
+ {
+ if ( $X2 < $X1 || $X1 == $X2 || $Y2 < $Y1 || $Y1 == $Y2 ) { return(-1); }
+
+ $this->GraphAreaX1 = $X1; $this->DataSet->Data["GraphArea"]["X1"] = $X1;
+ $this->GraphAreaY1 = $Y1; $this->DataSet->Data["GraphArea"]["Y1"] = $Y1;
+ $this->GraphAreaX2 = $X2; $this->DataSet->Data["GraphArea"]["X2"] = $X2;
+ $this->GraphAreaY2 = $Y2; $this->DataSet->Data["GraphArea"]["Y2"] = $Y2;
+ }
+
+ /* Return the width of the picture */
+ function getWidth()
+ { return($this->XSize); }
+
+ /* Return the heigth of the picture */
+ function getHeight()
+ { return($this->YSize); }
+
+ /* Render the picture to a file */
+ function render($FileName)
+ {
+ if ( $this->TransparentBackground ) { imagealphablending($this->Picture,false); imagesavealpha($this->Picture,true); }
+ imagepng($this->Picture,$FileName);
+ }
+
+ /* Render the picture to a web browser stream */
+ function stroke($BrowserExpire=FALSE)
+ {
+ if ( $this->TransparentBackground ) { imagealphablending($this->Picture,false); imagesavealpha($this->Picture,true); }
+
+ if ( $BrowserExpire )
+ {
+ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+ header("Cache-Control: no-cache");
+ header("Pragma: no-cache");
+ }
+
+ header('Content-type: image/png');
+ imagepng($this->Picture);
+ }
+
+ /* Automatic output method based on the calling interface */
+ function autoOutput($FileName="output.png")
+ {
+ if (php_sapi_name() == "cli")
+ $this->Render($FileName);
+ else
+ $this->Stroke();
+ }
+
+ /* Return the length between two points */
+ function getLength($X1,$Y1,$X2,$Y2)
+ { return(sqrt(pow(max($X1,$X2)-min($X1,$X2),2)+pow(max($Y1,$Y2)-min($Y1,$Y2),2))); }
+
+ /* Return the orientation of a line */
+ function getAngle($X1,$Y1,$X2,$Y2)
+ {
+ $Opposite = $Y2 - $Y1; $Adjacent = $X2 - $X1;$Angle = rad2deg(atan2($Opposite,$Adjacent));
+ if ($Angle > 0) { return($Angle); } else { return(360-abs($Angle)); }
+ }
+
+ /* Return the surrounding box of text area */
+ function getTextBox_deprecated($X,$Y,$FontName,$FontSize,$Angle,$Text)
+ {
+ $Size = imagettfbbox($FontSize,$Angle,$FontName,$this->getEncodedText($Text));
+ $Width = $this->getLength($Size[0],$Size[1],$Size[2],$Size[3])+1;
+ $Height = $this->getLength($Size[2],$Size[3],$Size[4],$Size[5])+1;
+
+ $RealPos[0]["X"] = $X; $RealPos[0]["Y"] = $Y;
+ $RealPos[1]["X"] = cos((360-$Angle)*PI/180)*$Width + $RealPos[0]["X"]; $RealPos[1]["Y"] = sin((360-$Angle)*PI/180)*$Width + $RealPos[0]["Y"];
+ $RealPos[2]["X"] = cos((270-$Angle)*PI/180)*$Height + $RealPos[1]["X"]; $RealPos[2]["Y"] = sin((270-$Angle)*PI/180)*$Height + $RealPos[1]["Y"];
+ $RealPos[3]["X"] = cos((180-$Angle)*PI/180)*$Width + $RealPos[2]["X"]; $RealPos[3]["Y"] = sin((180-$Angle)*PI/180)*$Width + $RealPos[2]["Y"];
+
+ $RealPos[TEXT_ALIGN_BOTTOMLEFT]["X"] = $RealPos[0]["X"]; $RealPos[TEXT_ALIGN_BOTTOMLEFT]["Y"] = $RealPos[0]["Y"];
+ $RealPos[TEXT_ALIGN_BOTTOMRIGHT]["X"] = $RealPos[1]["X"]; $RealPos[TEXT_ALIGN_BOTTOMRIGHT]["Y"] = $RealPos[1]["Y"];
+
+ return($RealPos);
+ }
+
+ function getEncodedText($text)
+ {
+ $gdinfo = gd_info();
+ if (!empty($gdinfo['JIS-mapped Japanese Font Support'])) {
+ return mb_convert_encoding($text, "SJIS", "UTF-8");
+ }
+
+ return $text;
+ }
+
+ /* Return the surrounding box of text area */
+ function getTextBox($X,$Y,$FontName,$FontSize,$Angle,$Text)
+ {
+ $coords = imagettfbbox($FontSize, 0, $FontName, $this->getEncodedText($Text));
+
+ $a = deg2rad($Angle); $ca = cos($a); $sa = sin($a); $RealPos = array();
+ for($i = 0; $i < 7; $i += 2)
+ {
+ $RealPos[$i/2]["X"] = $X + round($coords[$i] * $ca + $coords[$i+1] * $sa);
+ $RealPos[$i/2]["Y"] = $Y + round($coords[$i+1] * $ca - $coords[$i] * $sa);
+ }
+
+ $RealPos[TEXT_ALIGN_BOTTOMLEFT]["X"] = $RealPos[0]["X"]; $RealPos[TEXT_ALIGN_BOTTOMLEFT]["Y"] = $RealPos[0]["Y"];
+ $RealPos[TEXT_ALIGN_BOTTOMRIGHT]["X"] = $RealPos[1]["X"]; $RealPos[TEXT_ALIGN_BOTTOMRIGHT]["Y"] = $RealPos[1]["Y"];
+ $RealPos[TEXT_ALIGN_TOPLEFT]["X"] = $RealPos[3]["X"]; $RealPos[TEXT_ALIGN_TOPLEFT]["Y"] = $RealPos[3]["Y"];
+ $RealPos[TEXT_ALIGN_TOPRIGHT]["X"] = $RealPos[2]["X"]; $RealPos[TEXT_ALIGN_TOPRIGHT]["Y"] = $RealPos[2]["Y"];
+ $RealPos[TEXT_ALIGN_BOTTOMMIDDLE]["X"] = ($RealPos[1]["X"]-$RealPos[0]["X"])/2+$RealPos[0]["X"]; $RealPos[TEXT_ALIGN_BOTTOMMIDDLE]["Y"] = ($RealPos[0]["Y"]-$RealPos[1]["Y"])/2+$RealPos[1]["Y"];
+ $RealPos[TEXT_ALIGN_TOPMIDDLE]["X"] = ($RealPos[2]["X"]-$RealPos[3]["X"])/2+$RealPos[3]["X"]; $RealPos[TEXT_ALIGN_TOPMIDDLE]["Y"] = ($RealPos[3]["Y"]-$RealPos[2]["Y"])/2+$RealPos[2]["Y"];
+ $RealPos[TEXT_ALIGN_MIDDLELEFT]["X"] = ($RealPos[0]["X"]-$RealPos[3]["X"])/2+$RealPos[3]["X"]; $RealPos[TEXT_ALIGN_MIDDLELEFT]["Y"] = ($RealPos[0]["Y"]-$RealPos[3]["Y"])/2+$RealPos[3]["Y"];
+ $RealPos[TEXT_ALIGN_MIDDLERIGHT]["X"] = ($RealPos[1]["X"]-$RealPos[2]["X"])/2+$RealPos[2]["X"]; $RealPos[TEXT_ALIGN_MIDDLERIGHT]["Y"] = ($RealPos[1]["Y"]-$RealPos[2]["Y"])/2+$RealPos[2]["Y"];
+ $RealPos[TEXT_ALIGN_MIDDLEMIDDLE]["X"] = ($RealPos[1]["X"]-$RealPos[3]["X"])/2+$RealPos[3]["X"]; $RealPos[TEXT_ALIGN_MIDDLEMIDDLE]["Y"] = ($RealPos[0]["Y"]-$RealPos[2]["Y"])/2+$RealPos[2]["Y"];
+
+ return($RealPos);
+ }
+
+ /* Set current font properties */
+ function setFontProperties($Format="")
+ {
+ $R = isset($Format["R"]) ? $Format["R"] : -1;
+ $G = isset($Format["G"]) ? $Format["G"] : -1;
+ $B = isset($Format["B"]) ? $Format["B"] : -1;
+ $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+ $FontName = isset($Format["FontName"]) ? $Format["FontName"] : NULL;
+ $FontSize = isset($Format["FontSize"]) ? $Format["FontSize"] : NULL;
+
+ if ( $R != -1) { $this->FontColorR = $R; }
+ if ( $G != -1) { $this->FontColorG = $G; }
+ if ( $B != -1) { $this->FontColorB = $B; }
+ if ( $Alpha != NULL) { $this->FontColorA = $Alpha; }
+
+ if ( $FontName != NULL )
+ $this->FontName = $FontName;
+
+ if ( $FontSize != NULL )
+ $this->FontSize = $FontSize;
+ }
+
+ /* Returns the 1st decimal values (used to correct AA bugs) */
+ function getFirstDecimal($Value)
+ {
+ $Values = preg_split("/\./",$Value);
+ if ( isset($Values[1]) ) { return(substr($Values[1],0,1)); } else { return(0); }
+ }
+
+ /* Attach a dataset to your pChart Object */
+ function setDataSet(&$DataSet)
+ { $this->DataSet = $DataSet; }
+
+ /* Print attached dataset contents to STDOUT */
+ function printDataSet()
+ { print_r($this->DataSet); }
+
+ /* Initialise the image map methods */
+ function initialiseImageMap($Name="pChart",$StorageMode=IMAGE_MAP_STORAGE_SESSION,$UniqueID="imageMap",$StorageFolder="tmp")
+ {
+ $this->ImageMapIndex = $Name;
+ $this->ImageMapStorageMode = $StorageMode;
+
+ if ($StorageMode == IMAGE_MAP_STORAGE_SESSION)
+ {
+ if(!isset($_SESSION)) { session_start(); }
+ $_SESSION[$this->ImageMapIndex] = NULL;
+ }
+ elseif($StorageMode == IMAGE_MAP_STORAGE_FILE)
+ {
+ $this->ImageMapFileName = $UniqueID;
+ $this->ImageMapStorageFolder = $StorageFolder;
+
+ if (file_exists($StorageFolder."/".$UniqueID.".map")) { unlink($StorageFolder."/".$UniqueID.".map"); }
+ }
+ }
+
+ /* Add a zone to the image map */
+ function addToImageMap($Type,$Plots,$Color=NULL,$Title=NULL,$Message=NULL,$HTMLEncode=FALSE)
+ {
+ if ( $this->ImageMapStorageMode == NULL ) { $this->initialiseImageMap(); }
+
+ /* Encode the characters in the imagemap in HTML standards */
+ $Title = str_replace("&#8364;","\u20AC",$Title);
+ $Title = htmlentities($Title,ENT_QUOTES,"ISO-8859-15");
+ if ( $HTMLEncode )
+ {
+ $Message = htmlentities($Message,ENT_QUOTES,"ISO-8859-15");
+ $Message = str_replace("&lt;","<",$Message);
+ $Message = str_replace("&gt;",">",$Message);
+ }
+
+ if ( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_SESSION )
+ {
+ if(!isset($_SESSION)) { $this->initialiseImageMap(); }
+ $_SESSION[$this->ImageMapIndex][] = array($Type,$Plots,$Color,$Title,$Message);
+ }
+ elseif($this->ImageMapStorageMode == IMAGE_MAP_STORAGE_FILE)
+ {
+ $Handle = fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", 'a');
+ fwrite($Handle, $Type.IMAGE_MAP_DELIMITER.$Plots.IMAGE_MAP_DELIMITER.$Color.IMAGE_MAP_DELIMITER.$Title.IMAGE_MAP_DELIMITER.$Message."\r\n");
+ fclose($Handle);
+ }
+ }
+
+ /* Remove VOID values from an imagemap custom values array */
+ function removeVOIDFromArray($SerieName, $Values)
+ {
+ if ( !isset($this->DataSet->Data["Series"][$SerieName]) ) { return(-1); }
+
+ $Result = "";
+ foreach($this->DataSet->Data["Series"][$SerieName]["Data"] as $Key => $Value)
+ { if ( $Value != VOID && isset($Values[$Key]) ) { $Result[] = $Values[$Key]; } }
+ return($Result);
+ }
+
+ /* Replace the title of one image map serie */
+ function replaceImageMapTitle($OldTitle, $NewTitle)
+ {
+ if ( $this->ImageMapStorageMode == NULL ) { return(-1); }
+
+ if ( is_array($NewTitle) ) { $NewTitle = $this->removeVOIDFromArray($OldTitle, $NewTitle); }
+
+ if ( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_SESSION )
+ {
+ if(!isset($_SESSION)) { return(-1); }
+ if ( is_array($NewTitle) )
+ { $ID = 0; foreach($_SESSION[$this->ImageMapIndex] as $Key => $Settings) { if ( $Settings[3] == $OldTitle && isset($NewTitle[$ID])) { $_SESSION[$this->ImageMapIndex][$Key][3] = $NewTitle[$ID]; $ID++; } } }
+ else
+ { foreach($_SESSION[$this->ImageMapIndex] as $Key => $Settings) { if ( $Settings[3] == $OldTitle ) { $_SESSION[$this->ImageMapIndex][$Key][3] = $NewTitle; } } }
+ }
+ elseif( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_FILE )
+ {
+ $TempArray = "";
+ $Handle = @fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", "r");
+ if ($Handle)
+ {
+ while (($Buffer = fgets($Handle, 4096)) !== false)
+ {
+ $Fields = preg_split("/".IMAGE_MAP_DELIMITER."/",str_replace(array(chr(10),chr(13)),"",$Buffer));
+ $TempArray[] = array($Fields[0],$Fields[1],$Fields[2],$Fields[3],$Fields[4]);
+ }
+ fclose($Handle);
+
+ if ( is_array($NewTitle) )
+ { $ID = 0; foreach($TempArray as $Key => $Settings) { if ( $Settings[3] == $OldTitle && isset($NewTitle[$ID]) ) { $TempArray[$Key][3] = $NewTitle[$ID]; $ID++; } } }
+ else
+ { foreach($TempArray as $Key => $Settings) { if ( $Settings[3] == $OldTitle ) { $TempArray[$Key][3] = $NewTitle; } } }
+
+ $Handle = fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", 'w');
+ foreach($TempArray as $Key => $Settings)
+ { fwrite($Handle, $Settings[0].IMAGE_MAP_DELIMITER.$Settings[1].IMAGE_MAP_DELIMITER.$Settings[2].IMAGE_MAP_DELIMITER.$Settings[3].IMAGE_MAP_DELIMITER.$Settings[4]."\r\n"); }
+ fclose($Handle);
+ }
+ }
+ }
+
+ /* Replace the values of the image map contents */
+ function replaceImageMapValues($Title, $Values)
+ {
+ if ( $this->ImageMapStorageMode == NULL ) { return(-1); }
+
+ $Values = $this->removeVOIDFromArray($Title, $Values);
+ $ID = 0;
+ if ( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_SESSION )
+ {
+ if(!isset($_SESSION)) { return(-1); }
+ foreach($_SESSION[$this->ImageMapIndex] as $Key => $Settings) { if ( $Settings[3] == $Title ) { if ( isset($Values[$ID]) ) { $_SESSION[$this->ImageMapIndex][$Key][4] = $Values[$ID]; } $ID++; } }
+ }
+ elseif( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_FILE )
+ {
+ $TempArray = "";
+ $Handle = @fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", "r");
+ if ($Handle)
+ {
+ while (($Buffer = fgets($Handle, 4096)) !== false)
+ {
+ $Fields = preg_split("/".IMAGE_MAP_DELIMITER."/",str_replace(array(chr(10),chr(13)),"",$Buffer));
+ $TempArray[] = array($Fields[0],$Fields[1],$Fields[2],$Fields[3],$Fields[4]);
+ }
+ fclose($Handle);
+
+ foreach($TempArray as $Key => $Settings) { if ( $Settings[3] == $Title ) { if ( isset($Values[$ID]) ) { $TempArray[$Key][4] = $Values[$ID]; } $ID++; } }
+
+ $Handle = fopen($this->ImageMapStorageFolder."/".$this->ImageMapFileName.".map", 'w');
+ foreach($TempArray as $Key => $Settings)
+ { fwrite($Handle, $Settings[0].IMAGE_MAP_DELIMITER.$Settings[1].IMAGE_MAP_DELIMITER.$Settings[2].IMAGE_MAP_DELIMITER.$Settings[3].IMAGE_MAP_DELIMITER.$Settings[4]."\r\n"); }
+ fclose($Handle);
+ }
+ }
+ }
+
+ /* Dump the image map */
+ function dumpImageMap($Name="pChart",$StorageMode=IMAGE_MAP_STORAGE_SESSION,$UniqueID="imageMap",$StorageFolder="tmp")
+ {
+ $this->ImageMapIndex = $Name;
+ $this->ImageMapStorageMode = $StorageMode;
+
+ if ( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_SESSION )
+ {
+ if(!isset($_SESSION)) { session_start(); }
+ if ( $_SESSION[$Name] != NULL )
+ {
+ foreach($_SESSION[$Name] as $Key => $Params)
+ { echo $Params[0].IMAGE_MAP_DELIMITER.$Params[1].IMAGE_MAP_DELIMITER.$Params[2].IMAGE_MAP_DELIMITER.$Params[3].IMAGE_MAP_DELIMITER.$Params[4]."\r\n"; }
+ }
+ }
+ elseif( $this->ImageMapStorageMode == IMAGE_MAP_STORAGE_FILE )
+ {
+ if (file_exists($StorageFolder."/".$UniqueID.".map"))
+ {
+ $Handle = @fopen($StorageFolder."/".$UniqueID.".map", "r");
+ if ($Handle) { while (($Buffer = fgets($Handle, 4096)) !== false) { echo $Buffer; } }
+ fclose($Handle);
+
+ if ( $this->ImageMapAutoDelete ) { unlink($StorageFolder."/".$UniqueID.".map"); }
+ }
+ }
+
+ /* When the image map is returned to the client, the script ends */
+ exit();
+ }
+
+ /* Return the HTML converted color from the RGB composite values */
+ function toHTMLColor($R,$G,$B)
+ {
+ $R=intval($R); $G=intval($G); $B=intval($B);
+ $R=dechex($R<0?0:($R>255?255:$R)); $G=dechex($G<0?0:($G>255?255:$G));$B=dechex($B<0?0:($B>255?255:$B));
+ $Color="#".(strlen($R) < 2?'0':'').$R; $Color.=(strlen($G) < 2?'0':'').$G; $Color.= (strlen($B) < 2?'0':'').$B;
+ return($Color);
+ }
+
+ /* Reverse an array of points */
+ function reversePlots($Plots)
+ {
+ $Result = "";
+ for($i=count($Plots)-2;$i>=0;$i=$i-2) { $Result[] = $Plots[$i]; $Result[] = $Plots[$i+1]; }
+ return($Result);
+ }
+
+ /* Mirror Effect */
+ function drawAreaMirror($X,$Y,$Width,$Height,$Format="")
+ {
+ $StartAlpha = isset($Format["StartAlpha"]) ? $Format["StartAlpha"] : 80;
+ $EndAlpha = isset($Format["EndAlpha"]) ? $Format["EndAlpha"] : 0;
+
+ $AlphaStep = ($StartAlpha-$EndAlpha)/$Height;
+
+ $Picture = imagecreatetruecolor($this->XSize,$this->YSize);
+ imagecopy($Picture,$this->Picture,0,0,0,0,$this->XSize,$this->YSize);
+
+ for($i=1;$i<=$Height;$i++)
+ {
+ if ( $Y+($i-1) < $this->YSize && $Y-$i > 0 ) { imagecopymerge($Picture,$this->Picture,$X,$Y+($i-1),$X,$Y-$i,$Width,1,$StartAlpha-$AlphaStep*$i); }
+ }
+
+ imagecopy($this->Picture,$Picture,0,0,0,0,$this->XSize,$this->YSize);
+ }
+ }
?> \ No newline at end of file
diff --git a/libs/pChart/class/pPie.class.php b/libs/pChart/class/pPie.class.php
index 209b74979e..845f81ca98 100755
--- a/libs/pChart/class/pPie.class.php
+++ b/libs/pChart/class/pPie.class.php
@@ -1,1500 +1,1500 @@
-<?php
- /*
- pPie - class to draw pie charts
-
- Version : 2.1.4
- Made by : Jean-Damien POGOLOTTI
- Last Update : 19/01/2014
-
- This file can be distributed under the license you can find at :
-
- http://www.pchart.net/license
-
- You can find the whole class documentation on the pChart web site.
- */
-
- /* Class return codes */
- define("PIE_NO_ABSCISSA" , 140001);
- define("PIE_NO_DATASERIE" , 140002);
- define("PIE_SUMISNULL" , 140003);
- define("PIE_RENDERED" , 140000);
-
- define("PIE_LABEL_COLOR_AUTO" , 140010);
- define("PIE_LABEL_COLOR_MANUAL", 140011);
-
- define("PIE_VALUE_NATURAL" , 140020);
- define("PIE_VALUE_PERCENTAGE" , 140021);
-
- define("PIE_VALUE_INSIDE" , 140030);
- define("PIE_VALUE_OUTSIDE" , 140031);
-
- /* pPie class definition */
- class pPie
- {
- var $pChartObject;
- var $pDataObject;
- var $LabelPos = "" ;
-
- /* Class creator */
- function pPie($Object,$pDataObject)
- {
- /* Cache the pChart object reference */
- $this->pChartObject = $Object;
-
- /* Cache the pData object reference */
- $this->pDataObject = $pDataObject;
- }
-
- /* Draw a pie chart */
- function draw2DPie($X,$Y,$Format="")
- {
- $Radius = isset($Format["Radius"]) ? $Format["Radius"] : 60;
- $Precision = isset($Format["Precision"]) ? $Format["Precision"] : 0;
- $DataGapAngle = isset($Format["DataGapAngle"]) ? $Format["DataGapAngle"] : 0;
- $DataGapRadius = isset($Format["DataGapRadius"]) ? $Format["DataGapRadius"] : 0;
- $SecondPass = isset($Format["SecondPass"]) ? $Format["SecondPass"] : TRUE;
- $Border = isset($Format["Border"]) ? $Format["Border"] : FALSE;
- $BorderR = isset($Format["BorderR"]) ? $Format["BorderR"] : 255;
- $BorderG = isset($Format["BorderG"]) ? $Format["BorderG"] : 255;
- $BorderB = isset($Format["BorderB"]) ? $Format["BorderB"] : 255;
- $Shadow = isset($Format["Shadow"]) ? $Format["Shadow"] : FALSE;
- $DrawLabels = isset($Format["DrawLabels"]) ? $Format["DrawLabels"] : FALSE;
- $LabelStacked = isset($Format["LabelStacked"]) ? $Format["LabelStacked"] : FALSE;
- $LabelColor = isset($Format["LabelColor"]) ? $Format["LabelColor"] : PIE_LABEL_COLOR_MANUAL;
- $LabelR = isset($Format["LabelR"]) ? $Format["LabelR"] : 0;
- $LabelG = isset($Format["LabelG"]) ? $Format["LabelG"] : 0;
- $LabelB = isset($Format["LabelB"]) ? $Format["LabelB"] : 0;
- $LabelAlpha = isset($Format["LabelAlpha"]) ? $Format["LabelAlpha"] : 100;
- $WriteValues = isset($Format["WriteValues"]) ? $Format["WriteValues"] : NULL;
- $ValuePosition = isset($Format["ValuePosition"]) ? $Format["ValuePosition"] : PIE_VALUE_OUTSIDE;
- $ValuePadding = isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : 15;
- $ValueSuffix = isset($Format["ValueSuffix"]) ? $Format["ValueSuffix"] : "";
- $ValueR = isset($Format["ValueR"]) ? $Format["ValueR"] : 255;
- $ValueG = isset($Format["ValueG"]) ? $Format["ValueG"] : 255;
- $ValueB = isset($Format["ValueB"]) ? $Format["ValueB"] : 255;
- $ValueAlpha = isset($Format["ValueAlpha"]) ? $Format["ValueAlpha"] : 100;
- $RecordImageMap = isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
-
- /* Data Processing */
- $Data = $this->pDataObject->getData();
- $Palette = $this->pDataObject->getPalette();
-
- /* Do we have an abscissa serie defined? */
- if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
-
- /* Try to find the data serie */
- $DataSerie = "";
- foreach ($Data["Series"] as $SerieName => $SerieData)
- { if ( $SerieName != $Data["Abscissa"]) { $DataSerie = $SerieName; } }
-
- /* Do we have data to compute? */
- if ( $DataSerie == "" ) { return(PIE_NO_DATASERIE); }
-
- /* Remove unused data */
- list($Data,$Palette) = $this->clean0Values($Data,$Palette,$DataSerie,$Data["Abscissa"]);
-
- /* Compute the pie sum */
- $SerieSum = $this->pDataObject->getSum($DataSerie);
-
- /* Do we have data to draw? */
- if ( $SerieSum == 0 ) { return(PIE_SUMISNULL); }
-
- /* Dump the real number of data to draw */
- $Values = "";
- foreach ($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
- { if ($Value != 0) { $Values[] = $Value; } }
-
- /* Compute the wasted angular space between series */
- if (count($Values)==1) { $WastedAngular = 0; } else { $WastedAngular = count($Values) * $DataGapAngle; }
-
- /* Compute the scale */
- $ScaleFactor = (360 - $WastedAngular) / $SerieSum;
-
- $RestoreShadow = $this->pChartObject->Shadow;
- if ( $this->pChartObject->Shadow )
- {
- $this->pChartObject->Shadow = FALSE;
-
- $ShadowFormat = $Format; $ShadowFormat["Shadow"] = TRUE;
- $this->draw2DPie($X+$this->pChartObject->ShadowX,$Y+$this->pChartObject->ShadowY,$ShadowFormat);
- }
-
- /* Draw the polygon pie elements */
- $Step = 360 / (2 * PI * $Radius);
- $Offset = 0; $ID = 0;
- foreach($Values as $Key => $Value)
- {
- if ( $Shadow )
- $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa);
- else
- {
- if ( !isset($Palette[$ID]["R"]) ) { $Color = $this->pChartObject->getRandomColor(); $Palette[$ID] = $Color; $this->pDataObject->savePalette($ID,$Color); }
- $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
- }
-
- if ( !$SecondPass && !$Shadow )
- {
- if ( !$Border )
- $Settings["Surrounding"] = 10;
- else
- { $Settings["BorderR"] = $BorderR; $Settings["BorderG"] = $BorderG; $Settings["BorderB"] = $BorderB; }
- }
-
- $Plots = "";
- $EndAngle = $Offset+($Value*$ScaleFactor); if ( $EndAngle > 360 ) { $EndAngle = 360; }
-
- $Angle = ($EndAngle - $Offset)/2 + $Offset;
- if ($DataGapAngle == 0)
- { $X0 = $X; $Y0 = $Y; }
- else
- {
- $X0 = cos(($Angle-90)*PI/180) * $DataGapRadius + $X;
- $Y0 = sin(($Angle-90)*PI/180) * $DataGapRadius + $Y;
- }
-
- $Plots[] = $X0; $Plots[] = $Y0;
-
-
- for($i=$Offset;$i<=$EndAngle;$i=$i+$Step)
- {
- $Xc = cos(($i-90)*PI/180) * $Radius + $X;
- $Yc = sin(($i-90)*PI/180) * $Radius + $Y;
-
- if ( $SecondPass && ( $i<90 )) { $Yc++; }
- if ( $SecondPass && ( $i>180 && $i<270 )) { $Xc++; }
- if ( $SecondPass && ( $i>=270 )) { $Xc++; $Yc++; }
-
- $Plots[] = $Xc; $Plots[] = $Yc;
- }
-
- $this->pChartObject->drawPolygon($Plots,$Settings);
- if ( $RecordImageMap && !$Shadow ) { $this->pChartObject->addToImageMap("POLY",$this->arraySerialize($Plots),$this->pChartObject->toHTMLColor($Palette[$ID]["R"],$Palette[$ID]["G"],$Palette[$ID]["B"]),$Data["Series"][$Data["Abscissa"]]["Data"][$Key],$Value); }
-
- if ( $DrawLabels && !$Shadow && !$SecondPass )
- {
- if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
- { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
- else
- { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
-
- $Angle = ($EndAngle - $Offset)/2 + $Offset;
- $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
- $Yc = sin(($Angle-90)*PI/180) * $Radius + $Y;
-
- $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$Key];
-
- if ( $LabelStacked )
- $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,TRUE,$X,$Y,$Radius);
- else
- $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,FALSE);
- }
-
- $Offset = $i + $DataGapAngle; $ID++;
- }
-
- /* Second pass to smooth the angles */
- if ( $SecondPass )
- {
- $Step = 360 / (2 * PI * $Radius);
- $Offset = 0; $ID = 0;
- foreach($Values as $Key => $Value)
- {
- $FirstPoint = TRUE;
- if ( $Shadow )
- $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa);
- else
- {
- if ( $Border )
- $Settings = array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB);
- else
- $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
- }
-
- $EndAngle = $Offset+($Value*$ScaleFactor); if ( $EndAngle > 360 ) { $EndAngle = 360; }
-
- if ($DataGapAngle == 0)
- { $X0 = $X; $Y0 = $Y; }
- else
- {
- $Angle = ($EndAngle - $Offset)/2 + $Offset;
- $X0 = cos(($Angle-90)*PI/180) * $DataGapRadius + $X;
- $Y0 = sin(($Angle-90)*PI/180) * $DataGapRadius + $Y;
- }
- $Plots[] = $X0; $Plots[] = $Y0;
-
- for($i=$Offset;$i<=$EndAngle;$i=$i+$Step)
- {
- $Xc = cos(($i-90)*PI/180) * $Radius + $X;
- $Yc = sin(($i-90)*PI/180) * $Radius + $Y;
-
- if ( $FirstPoint ) { $this->pChartObject->drawLine($Xc,$Yc,$X0,$Y0,$Settings); } { $FirstPoint = FALSE; }
-
- $this->pChartObject->drawAntialiasPixel($Xc,$Yc,$Settings);
- }
- $this->pChartObject->drawLine($Xc,$Yc,$X0,$Y0,$Settings);
-
- if ( $DrawLabels && !$Shadow )
- {
- if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
- { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
- else
- { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
-
- $Angle = ($EndAngle - $Offset)/2 + $Offset;
- $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
- $Yc = sin(($Angle-90)*PI/180) * $Radius + $Y;
-
- $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$Key];
-
- if ( $LabelStacked )
- $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,TRUE,$X,$Y,$Radius);
- else
- $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,FALSE);
- }
-
- $Offset = $i + $DataGapAngle; $ID++;
- }
- }
-
- if ( $WriteValues != NULL && !$Shadow )
- {
- $Step = 360 / (2 * PI * $Radius);
- $Offset = 0; $ID = count($Values)-1;
- $Settings = array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"R"=>$ValueR,"G"=>$ValueG,"B"=>$ValueB,"Alpha"=>$ValueAlpha);
- foreach($Values as $Key => $Value)
- {
- $EndAngle = ($Value*$ScaleFactor) + $Offset; if ( (int)$EndAngle > 360 ) { $EndAngle = 0; }
- $Angle = ($EndAngle - $Offset)/2 + $Offset;
-
- if ( $ValuePosition == PIE_VALUE_OUTSIDE )
- {
- $Xc = cos(($Angle-90)*PI/180) * ($Radius+$ValuePadding) + $X;
- $Yc = sin(($Angle-90)*PI/180) * ($Radius+$ValuePadding) + $Y;
- }
- else
- {
- $Xc = cos(($Angle-90)*PI/180) * ($Radius)/2 + $X;
- $Yc = sin(($Angle-90)*PI/180) * ($Radius)/2 + $Y;
- }
-
- if ( $WriteValues == PIE_VALUE_PERCENTAGE )
- $Display = round(( 100 / $SerieSum ) * $Value,$Precision)."%";
- elseif ( $WriteValues == PIE_VALUE_NATURAL )
- $Display = $Value.$ValueSuffix;
-
- $this->pChartObject->drawText($Xc,$Yc,$Display,$Settings);
-
- $Offset = $EndAngle + $DataGapAngle; $ID--;
- }
- }
-
- if ( $DrawLabels && $LabelStacked ) { $this->writeShiftedLabels(); }
-
- $this->pChartObject->Shadow = $RestoreShadow;
-
- return(PIE_RENDERED);
- }
-
- /* Draw a 3D pie chart */
- function draw3DPie($X,$Y,$Format="")
- {
- /* Rendering layout */
- $Radius = isset($Format["Radius"]) ? $Format["Radius"] : 80;
- $Precision = isset($Format["Precision"]) ? $Format["Precision"] : 0;
- $SkewFactor = isset($Format["SkewFactor"]) ? $Format["SkewFactor"] : .5;
- $SliceHeight = isset($Format["SliceHeight"]) ? $Format["SliceHeight"] : 20;
- $DataGapAngle = isset($Format["DataGapAngle"]) ? $Format["DataGapAngle"] : 0;
- $DataGapRadius = isset($Format["DataGapRadius"]) ? $Format["DataGapRadius"] : 0;
- $SecondPass = isset($Format["SecondPass"]) ? $Format["SecondPass"] : TRUE;
- $Border = isset($Format["Border"]) ? $Format["Border"] : FALSE;
- $Shadow = isset($Format["Shadow"]) ? $Format["Shadow"] : FALSE;
- $DrawLabels = isset($Format["DrawLabels"]) ? $Format["DrawLabels"] : FALSE;
- $LabelStacked = isset($Format["LabelStacked"]) ? $Format["LabelStacked"] : FALSE;
- $LabelColor = isset($Format["LabelColor"]) ? $Format["LabelColor"] : PIE_LABEL_COLOR_MANUAL;
- $LabelR = isset($Format["LabelR"]) ? $Format["LabelR"] : 0;
- $LabelG = isset($Format["LabelG"]) ? $Format["LabelG"] : 0;
- $LabelB = isset($Format["LabelB"]) ? $Format["LabelB"] : 0;
- $LabelAlpha = isset($Format["LabelAlpha"]) ? $Format["LabelAlpha"] : 100;
- $WriteValues = isset($Format["WriteValues"]) ? $Format["WriteValues"] : NULL; //PIE_VALUE_PERCENTAGE
- $ValuePosition = isset($Format["ValuePosition"]) ? $Format["ValuePosition"] : PIE_VALUE_INSIDE;
- $ValuePadding = isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : 15;
- $ValueSuffix = isset($Format["ValueSuffix"]) ? $Format["ValueSuffix"] : "";
- $ValueR = isset($Format["ValueR"]) ? $Format["ValueR"] : 255;
- $ValueG = isset($Format["ValueG"]) ? $Format["ValueG"] : 255;
- $ValueB = isset($Format["ValueB"]) ? $Format["ValueB"] : 255;
- $ValueAlpha = isset($Format["ValueAlpha"]) ? $Format["ValueAlpha"] : 100;
- $RecordImageMap = isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
-
- /* Error correction for overlaying rounded corners */
- if ( $SkewFactor < .5 ) { $SkewFactor = .5; }
-
- /* Data Processing */
- $Data = $this->pDataObject->getData();
- $Palette = $this->pDataObject->getPalette();
-
- /* Do we have an abscissa serie defined? */
- if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
-
- /* Try to find the data serie */
- $DataSerie = "";
- foreach ($Data["Series"] as $SerieName => $SerieData)
- { if ( $SerieName != $Data["Abscissa"]) { $DataSerie = $SerieName; } }
-
- /* Do we have data to compute? */
- if ( $DataSerie == "" ) { return(PIE_NO_DATASERIE); }
-
- /* Remove unused data */
- list($Data,$Palette) = $this->clean0Values($Data,$Palette,$DataSerie,$Data["Abscissa"]);
-
- /* Compute the pie sum */
- $SerieSum = $this->pDataObject->getSum($DataSerie);
-
- /* Do we have data to draw? */
- if ( $SerieSum == 0 ) { return(PIE_SUMISNULL); }
-
- /* Dump the real number of data to draw */
- $Values = "";
- foreach ($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
- { if ($Value != 0) { $Values[] = $Value; } }
-
- /* Compute the wasted angular space between series */
- if (count($Values)==1) { $WastedAngular = 0; } else { $WastedAngular = count($Values) * $DataGapAngle; }
-
- /* Compute the scale */
- $ScaleFactor = (360 - $WastedAngular) / $SerieSum;
-
- $RestoreShadow = $this->pChartObject->Shadow;
- if ( $this->pChartObject->Shadow ) { $this->pChartObject->Shadow = FALSE; }
-
- /* Draw the polygon pie elements */
- $Step = 360 / (2 * PI * $Radius);
- $Offset = 360; $ID = count($Values)-1;
- $Values = array_reverse($Values);
- $Slice = 0; $Slices = ""; $SliceColors = ""; $Visible = ""; $SliceAngle = "";
- foreach($Values as $Key => $Value)
- {
- if ( !isset($Palette[$ID]["R"]) ) { $Color = $this->pChartObject->getRandomColor(); $Palette[$ID] = $Color; $this->pDataObject->savePalette($ID,$Color); }
- $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
-
- $SliceColors[$Slice] = $Settings;
-
- $StartAngle = $Offset;
- $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
-
- if ( $StartAngle > 180 ) { $Visible[$Slice]["Start"] = TRUE; } else { $Visible[$Slice]["Start"] = TRUE; }
- if ( $EndAngle < 180 ) { $Visible[$Slice]["End"] = FALSE; } else { $Visible[$Slice]["End"] = TRUE; }
-
- if ($DataGapAngle == 0)
- { $X0 = $X; $Y0 = $Y; }
- else
- {
- $Angle = ($EndAngle - $Offset)/2 + $Offset;
- $X0 = cos(($Angle-90)*PI/180) * $DataGapRadius + $X;
- $Y0 = sin(($Angle-90)*PI/180) * $DataGapRadius*$SkewFactor + $Y;
- }
- $Slices[$Slice][] = $X0; $Slices[$Slice][] = $Y0; $SliceAngle[$Slice][] = 0;
-
- for($i=$Offset;$i>=$EndAngle;$i=$i-$Step)
- {
- $Xc = cos(($i-90)*PI/180) * $Radius + $X;
- $Yc = sin(($i-90)*PI/180) * $Radius*$SkewFactor + $Y;
-
- if ( ($SecondPass || $RestoreShadow ) && ( $i<90 )) { $Yc++; }
- if ( ($SecondPass || $RestoreShadow ) && ( $i>90 && $i<180 )) { $Xc++; }
- if ( ($SecondPass || $RestoreShadow ) && ( $i>180 && $i<270 )) { $Xc++; }
- if ( ($SecondPass || $RestoreShadow ) && ( $i>=270 )) { $Xc++; $Yc++; }
-
- $Slices[$Slice][] = $Xc; $Slices[$Slice][] = $Yc; $SliceAngle[$Slice][] = $i;
- }
-
- $Offset = $i - $DataGapAngle; $ID--; $Slice++;
- }
-
- /* Draw the bottom shadow if needed */
- if ( $RestoreShadow && ($this->pChartObject->ShadowX != 0 || $this->pChartObject->ShadowY !=0 ))
- {
- foreach($Slices as $SliceID => $Plots)
- {
- $ShadowPie = "";
- for($i=0;$i<count($Plots);$i=$i+2)
- { $ShadowPie[] = $Plots[$i]+$this->pChartObject->ShadowX; $ShadowPie[] = $Plots[$i+1]+$this->pChartObject->ShadowY; }
-
- $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa,"NoBorder"=>TRUE);
- $this->pChartObject->drawPolygon($ShadowPie,$Settings);
- }
-
- $Step = 360 / (2 * PI * $Radius);
- $Offset = 360;
- foreach($Values as $Key => $Value)
- {
- $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
-
- for($i=$Offset;$i>=$EndAngle;$i=$i-$Step)
- {
- $Xc = cos(($i-90)*PI/180) * $Radius + $X + $this->pChartObject->ShadowX;
- $Yc = sin(($i-90)*PI/180) * $Radius*$SkewFactor + $Y + $this->pChartObject->ShadowY;
-
- $this->pChartObject->drawAntialiasPixel($Xc,$Yc,$Settings);
- }
-
- $Offset = $i - $DataGapAngle; $ID--;
- }
- }
-
- /* Draw the bottom pie splice */
- foreach($Slices as $SliceID => $Plots)
- {
- $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
- $this->pChartObject->drawPolygon($Plots,$Settings);
-
- if ( $SecondPass )
- {
- $Settings = $SliceColors[$SliceID];
- if ( $Border )
- { $Settings["R"]+= 30; $Settings["G"]+= 30; $Settings["B"]+= 30;; }
-
- if ( isset($SliceAngle[$SliceID][1]) ) /* Empty error handling */
- {
- $Angle = $SliceAngle[$SliceID][1];
- $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
- $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y;
- $this->pChartObject->drawLine($Plots[0],$Plots[1],$Xc,$Yc,$Settings);
-
- $Angle = $SliceAngle[$SliceID][count($SliceAngle[$SliceID])-1];
- $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
- $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y;
- $this->pChartObject->drawLine($Plots[0],$Plots[1],$Xc,$Yc,$Settings);
- }
- }
- }
-
- /* Draw the two vertical edges */
- $Slices = array_reverse($Slices);
- $SliceColors = array_reverse($SliceColors);
- foreach($Slices as $SliceID => $Plots)
- {
- $Settings = $SliceColors[$SliceID];
- $Settings["R"]+= 10; $Settings["G"]+= 10; $Settings["B"]+= 10; $Settings["NoBorder"] = TRUE;
-
- if ( $Visible[$SliceID]["Start"] && isset($Plots[2])) /* Empty error handling */
- {
- $this->pChartObject->drawLine($Plots[2],$Plots[3],$Plots[2],$Plots[3]- $SliceHeight,array("R"=>$Settings["R"],"G"=>$Settings["G"],"B"=>$Settings["B"]));
- $Border = "";
- $Border[] = $Plots[0]; $Border[] = $Plots[1]; $Border[] = $Plots[0]; $Border[] = $Plots[1] - $SliceHeight;
- $Border[] = $Plots[2]; $Border[] = $Plots[3] - $SliceHeight; $Border[] = $Plots[2]; $Border[] = $Plots[3];
- $this->pChartObject->drawPolygon($Border,$Settings);
- }
- }
-
- $Slices = array_reverse($Slices);
- $SliceColors = array_reverse($SliceColors);
- foreach($Slices as $SliceID => $Plots)
- {
- $Settings = $SliceColors[$SliceID];
- $Settings["R"]+= 10; $Settings["G"]+= 10; $Settings["B"]+= 10; $Settings["NoBorder"] = TRUE;
- if ( $Visible[$SliceID]["End"] )
- {
- $this->pChartObject->drawLine($Plots[count($Plots)-2],$Plots[count($Plots)-1],$Plots[count($Plots)-2],$Plots[count($Plots)-1]- $SliceHeight,array("R"=>$Settings["R"],"G"=>$Settings["G"],"B"=>$Settings["B"]));
-
- $Border = "";
- $Border[] = $Plots[0]; $Border[] = $Plots[1]; $Border[] = $Plots[0]; $Border[] = $Plots[1] - $SliceHeight;
- $Border[] = $Plots[count($Plots)-2]; $Border[] = $Plots[count($Plots)-1] - $SliceHeight; $Border[] = $Plots[count($Plots)-2]; $Border[] = $Plots[count($Plots)-1];
- $this->pChartObject->drawPolygon($Border,$Settings);
- }
- }
-
- /* Draw the rounded edges */
- foreach($Slices as $SliceID => $Plots)
- {
- $Settings = $SliceColors[$SliceID];
- $Settings["R"]+= 10; $Settings["G"]+= 10; $Settings["B"]+= 10; $Settings["NoBorder"] = TRUE;
-
- for ($j=2;$j<count($Plots)-2;$j=$j+2)
- {
- $Angle = $SliceAngle[$SliceID][$j/2];
- if ( $Angle < 270 && $Angle > 90 )
- {
- $Border = "";
- $Border[] = $Plots[$j]; $Border[] = $Plots[$j+1];
- $Border[] = $Plots[$j+2]; $Border[] = $Plots[$j+3];
- $Border[] = $Plots[$j+2]; $Border[] = $Plots[$j+3] - $SliceHeight;
- $Border[] = $Plots[$j]; $Border[] = $Plots[$j+1] - $SliceHeight;
- $this->pChartObject->drawPolygon($Border,$Settings);
- }
- }
-
- if ( $SecondPass )
- {
- $Settings = $SliceColors[$SliceID];
- if ( $Border )
- { $Settings["R"]+= 30; $Settings["G"]+= 30; $Settings["B"]+= 30; }
-
- if ( isset($SliceAngle[$SliceID][1]) ) /* Empty error handling */
- {
- $Angle = $SliceAngle[$SliceID][1];
- if ( $Angle < 270 && $Angle > 90 )
- {
- $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
- $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y;
- $this->pChartObject->drawLine($Xc,$Yc,$Xc,$Yc-$SliceHeight,$Settings);
- }
- }
-
- $Angle = $SliceAngle[$SliceID][count($SliceAngle[$SliceID])-1];
- if ( $Angle < 270 && $Angle > 90 )
- {
- $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
- $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y;
- $this->pChartObject->drawLine($Xc,$Yc,$Xc,$Yc-$SliceHeight,$Settings);
- }
-
- if ( isset($SliceAngle[$SliceID][1]) && $SliceAngle[$SliceID][1] > 270 && $SliceAngle[$SliceID][count($SliceAngle[$SliceID])-1] < 270 )
- {
- $Xc = cos((270-90)*PI/180) * $Radius + $X;
- $Yc = sin((270-90)*PI/180) * $Radius*$SkewFactor + $Y;
- $this->pChartObject->drawLine($Xc,$Yc,$Xc,$Yc-$SliceHeight,$Settings);
- }
-
- if ( isset($SliceAngle[$SliceID][1]) && $SliceAngle[$SliceID][1] > 90 && $SliceAngle[$SliceID][count($SliceAngle[$SliceID])-1] < 90 )
- {
- $Xc = cos((0)*PI/180) * $Radius + $X;
- $Yc = sin((0)*PI/180) * $Radius*$SkewFactor + $Y;
- $this->pChartObject->drawLine($Xc,$Yc,$Xc,$Yc-$SliceHeight,$Settings);
- }
-
- }
- }
-
- /* Draw the top splice */
- foreach($Slices as $SliceID => $Plots)
- {
- $Settings = $SliceColors[$SliceID];
- $Settings["R"]+= 20; $Settings["G"]+= 20; $Settings["B"]+= 20;
-
- $Top = "";
- for($j=0;$j<count($Plots);$j=$j+2) { $Top[] = $Plots[$j]; $Top[] = $Plots[$j+1]- $SliceHeight; }
- $this->pChartObject->drawPolygon($Top,$Settings);
-
- if ( $RecordImageMap && !$Shadow ) { $this->pChartObject->addToImageMap("POLY",$this->arraySerialize($Top),$this->pChartObject->toHTMLColor($Settings["R"],$Settings["G"],$Settings["B"]),$Data["Series"][$Data["Abscissa"]]["Data"][count($Slices)-$SliceID-1],$Values[$SliceID]); }
- }
-
-
- /* Second pass to smooth the angles */
- if ( $SecondPass )
- {
- $Step = 360 / (2 * PI * $Radius);
- $Offset = 360; $ID = count($Values)-1;
- foreach($Values as $Key => $Value)
- {
- $FirstPoint = TRUE;
- if ( $Shadow )
- $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa);
- else
- {
- if ( $Border )
- { $Settings = array("R"=>$Palette[$ID]["R"]+30,"G"=>$Palette[$ID]["G"]+30,"B"=>$Palette[$ID]["B"]+30,"Alpha"=>$Palette[$ID]["Alpha"]); }
- else
- $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
- }
-
- $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
-
- if ($DataGapAngle == 0)
- { $X0 = $X; $Y0 = $Y- $SliceHeight; }
- else
- {
- $Angle = ($EndAngle - $Offset)/2 + $Offset;
- $X0 = cos(($Angle-90)*PI/180) * $DataGapRadius + $X;
- $Y0 = sin(($Angle-90)*PI/180) * $DataGapRadius*$SkewFactor + $Y - $SliceHeight;
- }
- $Plots[] = $X0; $Plots[] = $Y0;
-
- for($i=$Offset;$i>=$EndAngle;$i=$i-$Step)
- {
- $Xc = cos(($i-90)*PI/180) * $Radius + $X;
- $Yc = sin(($i-90)*PI/180) * $Radius*$SkewFactor + $Y - $SliceHeight;
-
- if ( $FirstPoint ) { $this->pChartObject->drawLine($Xc,$Yc,$X0,$Y0,$Settings); } { $FirstPoint = FALSE; }
-
- $this->pChartObject->drawAntialiasPixel($Xc,$Yc,$Settings);
- if ($i < 270 && $i > 90 ) { $this->pChartObject->drawAntialiasPixel($Xc,$Yc+$SliceHeight,$Settings); }
- }
- $this->pChartObject->drawLine($Xc,$Yc,$X0,$Y0,$Settings);
-
- $Offset = $i - $DataGapAngle; $ID--;
- }
- }
-
- if ( $WriteValues != NULL )
- {
- $Step = 360 / (2 * PI * $Radius);
- $Offset = 360; $ID = count($Values)-1;
- $Settings = array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"R"=>$ValueR,"G"=>$ValueG,"B"=>$ValueB,"Alpha"=>$ValueAlpha);
- foreach($Values as $Key => $Value)
- {
- $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
-
- $Angle = ($EndAngle - $Offset)/2 + $Offset;
-
- if ( $ValuePosition == PIE_VALUE_OUTSIDE )
- {
- $Xc = cos(($Angle-90)*PI/180) * ($Radius+$ValuePadding) + $X;
- $Yc = sin(($Angle-90)*PI/180) * (($Radius*$SkewFactor)+$ValuePadding) + $Y - $SliceHeight;
- }
- else
- {
- $Xc = cos(($Angle-90)*PI/180) * ($Radius)/2 + $X;
- $Yc = sin(($Angle-90)*PI/180) * ($Radius*$SkewFactor)/2 + $Y - $SliceHeight;
- }
-
- if ( $WriteValues == PIE_VALUE_PERCENTAGE )
- $Display = round(( 100 / $SerieSum ) * $Value,$Precision)."%";
- elseif ( $WriteValues == PIE_VALUE_NATURAL )
- $Display = $Value.$ValueSuffix;
-
- $this->pChartObject->drawText($Xc,$Yc,$Display,$Settings);
-
- $Offset = $EndAngle - $DataGapAngle; $ID--;
- }
- }
-
- if ( $DrawLabels )
- {
- $Step = 360 / (2 * PI * $Radius);
- $Offset = 360; $ID = count($Values)-1;
- foreach($Values as $Key => $Value)
- {
- if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
- { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
- else
- { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
-
- $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
-
- $Angle = ($EndAngle - $Offset)/2 + $Offset;
- $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
- $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y - $SliceHeight;
-
- if ( isset($Data["Series"][$Data["Abscissa"]]["Data"][$ID]) )
- {
- $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$ID];
-
- if ( $LabelStacked )
- $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,TRUE,$X,$Y,$Radius,TRUE);
- else
- $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,FALSE);
- }
-
- $Offset = $EndAngle - $DataGapAngle; $ID--;
- }
- }
-
- if ( $DrawLabels && $LabelStacked ) { $this->writeShiftedLabels(); }
-
- $this->pChartObject->Shadow = $RestoreShadow;
-
- return(PIE_RENDERED);
- }
-
- /* Draw the legend of pie chart */
- function drawPieLegend($X,$Y,$Format="")
- {
- $FontName = isset($Format["FontName"]) ? $Format["FontName"] : $this->pChartObject->FontName;
- $FontSize = isset($Format["FontSize"]) ? $Format["FontSize"] : $this->pChartObject->FontSize;
- $FontR = isset($Format["FontR"]) ? $Format["FontR"] : $this->pChartObject->FontColorR;
- $FontG = isset($Format["FontG"]) ? $Format["FontG"] : $this->pChartObject->FontColorG;
- $FontB = isset($Format["FontB"]) ? $Format["FontB"] : $this->pChartObject->FontColorB;
- $BoxSize = isset($Format["BoxSize"]) ? $Format["BoxSize"] : 5;
- $Margin = isset($Format["Margin"]) ? $Format["Margin"] : 5;
- $R = isset($Format["R"]) ? $Format["R"] : 200;
- $G = isset($Format["G"]) ? $Format["G"] : 200;
- $B = isset($Format["B"]) ? $Format["B"] : 200;
- $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
- $BorderR = isset($Format["BorderR"]) ? $Format["BorderR"] : 255;
- $BorderG = isset($Format["BorderG"]) ? $Format["BorderG"] : 255;
- $BorderB = isset($Format["BorderB"]) ? $Format["BorderB"] : 255;
- $Surrounding = isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
- $Style = isset($Format["Style"]) ? $Format["Style"] : LEGEND_ROUND;
- $Mode = isset($Format["Mode"]) ? $Format["Mode"] : LEGEND_VERTICAL;
-
- if ( $Surrounding != NULL ) { $BorderR = $R + $Surrounding; $BorderG = $G + $Surrounding; $BorderB = $B + $Surrounding; }
-
- $YStep = max($this->pChartObject->FontSize,$BoxSize) + 5;
- $XStep = $BoxSize + 5;
-
- /* Data Processing */
- $Data = $this->pDataObject->getData();
- $Palette = $this->pDataObject->getPalette();
-
- /* Do we have an abscissa serie defined? */
- if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
-
- $Boundaries = ""; $Boundaries["L"] = $X; $Boundaries["T"] = $Y; $Boundaries["R"] = 0; $Boundaries["B"] = 0; $vY = $Y; $vX = $X;
- foreach($Data["Series"][$Data["Abscissa"]]["Data"] as $Key => $Value)
- {
- $BoxArray = $this->pChartObject->getTextBox($vX+$BoxSize+4,$vY+$BoxSize/2,$FontName,$FontSize,0,$Value);
-
- if ( $Mode == LEGEND_VERTICAL )
- {
- if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$BoxSize/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$BoxSize/2; }
- if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
- if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$BoxSize/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$BoxSize/2; }
- $vY=$vY+$YStep;
- }
- elseif ( $Mode == LEGEND_HORIZONTAL )
- {
- if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$BoxSize/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$BoxSize/2; }
- if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
- if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$BoxSize/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$BoxSize/2; }
- $vX=$Boundaries["R"]+$XStep;
- }
- }
- $vY=$vY-$YStep; $vX=$vX-$XStep;
-
- $TopOffset = $Y - $Boundaries["T"];
- if ( $Boundaries["B"]-($vY+$BoxSize) < $TopOffset ) { $Boundaries["B"] = $vY+$BoxSize+$TopOffset; }
-
- if ( $Style == LEGEND_ROUND )
- $this->pChartObject->drawRoundedFilledRectangle($Boundaries["L"]-$Margin,$Boundaries["T"]-$Margin,$Boundaries["R"]+$Margin,$Boundaries["B"]+$Margin,$Margin,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB));
- elseif ( $Style == LEGEND_BOX )
- $this->pChartObject->drawFilledRectangle($Boundaries["L"]-$Margin,$Boundaries["T"]-$Margin,$Boundaries["R"]+$Margin,$Boundaries["B"]+$Margin,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB));
-
- $RestoreShadow = $this->pChartObject->Shadow; $this->pChartObject->Shadow = FALSE;
- foreach($Data["Series"][$Data["Abscissa"]]["Data"] as $Key => $Value)
- {
- $R = $Palette[$Key]["R"]; $G = $Palette[$Key]["G"]; $B = $Palette[$Key]["B"];
-
- $this->pChartObject->drawFilledRectangle($X+1,$Y+1,$X+$BoxSize+1,$Y+$BoxSize+1,array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>20));
- $this->pChartObject->drawFilledRectangle($X,$Y,$X+$BoxSize,$Y+$BoxSize,array("R"=>$R,"G"=>$G,"B"=>$B,"Surrounding"=>20));
- if ( $Mode == LEGEND_VERTICAL )
- {
- $this->pChartObject->drawText($X+$BoxSize+4,$Y+$BoxSize/2,$Value,array("R"=>$FontR,"G"=>$FontG,"B"=>$FontB,"Align"=>TEXT_ALIGN_MIDDLELEFT,"FontName"=>$FontName,"FontSize"=>$FontSize));
- $Y=$Y+$YStep;
- }
- elseif ( $Mode == LEGEND_HORIZONTAL )
- {
- $BoxArray = $this->pChartObject->drawText($X+$BoxSize+4,$Y+$BoxSize/2,$Value,array("R"=>$FontR,"G"=>$FontG,"B"=>$FontB,"Align"=>TEXT_ALIGN_MIDDLELEFT,"FontName"=>$FontName,"FontSize"=>$FontSize));
- $X=$BoxArray[1]["X"]+2+$XStep;
- }
- }
-
- $this->Shadow = $RestoreShadow;
- }
-
- /* Set the color of the specified slice */
- function setSliceColor($SliceID,$Format="")
- {
- $R = isset($Format["R"]) ? $Format["R"] : 0;
- $G = isset($Format["G"]) ? $Format["G"] : 0;
- $B = isset($Format["B"]) ? $Format["B"] : 0;
- $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
-
- $this->pDataObject->Palette[$SliceID]["R"] = $R;
- $this->pDataObject->Palette[$SliceID]["G"] = $G;
- $this->pDataObject->Palette[$SliceID]["B"] = $B;
- $this->pDataObject->Palette[$SliceID]["Alpha"] = $Alpha;
- }
-
- /* Internally used compute the label positions */
- function writePieLabel($X,$Y,$Label,$Angle,$Settings,$Stacked,$Xc=0,$Yc=0,$Radius=0,$Reversed=FALSE)
- {
- $LabelOffset = 30;
- $FontName = $this->pChartObject->FontName;
- $FontSize = $this->pChartObject->FontSize;
-
- if ( !$Stacked )
- {
- $Settings["Angle"] = 360-$Angle;
- $Settings["Length"] = 25;
- $Settings["Size"] = 8;
-
- $this->pChartObject->drawArrowLabel($X,$Y," ".$Label." ",$Settings);
- }
- else
- {
- $X2 = cos(deg2rad($Angle-90))*20+$X;
- $Y2 = sin(deg2rad($Angle-90))*20+$Y;
-
- $TxtPos = $this->pChartObject->getTextBox($X,$Y,$FontName,$FontSize,0,$Label);
- $Height = $TxtPos[0]["Y"] - $TxtPos[2]["Y"];
- $YTop = $Y2 - $Height/2 - 2;
- $YBottom = $Y2 + $Height/2 + 2;
-
- if ( $this->LabelPos != "" )
- {
- $Done = FALSE;
- foreach($this->LabelPos as $Key => $Settings)
- {
- if ( !$Done )
- {
- if ( $Angle <= 90 && (($YTop >= $Settings["YTop"] && $YTop <= $Settings["YBottom"]) || ($YBottom >= $Settings["YTop"] && $YBottom <= $Settings["YBottom"])))
- { $this->shift(0,180,-($Height+2),$Reversed); $Done = TRUE; }
- if ( $Angle > 90 && $Angle <= 180 && (($YTop >= $Settings["YTop"] && $YTop <= $Settings["YBottom"]) || ($YBottom >= $Settings["YTop"] && $YBottom <= $Settings["YBottom"])))
- { $this->shift(0,180,-($Height+2),$Reversed); $Done = TRUE; }
- if ( $Angle > 180 && $Angle <= 270 && (($YTop >= $Settings["YTop"] && $YTop <= $Settings["YBottom"]) || ($YBottom >= $Settings["YTop"] && $YBottom <= $Settings["YBottom"])))
- { $this->shift(180,360,($Height+2),$Reversed); $Done = TRUE; }
- if ( $Angle > 270 && $Angle <= 360 && (($YTop >= $Settings["YTop"] && $YTop <= $Settings["YBottom"]) || ($YBottom >= $Settings["YTop"] && $YBottom <= $Settings["YBottom"])))
- { $this->shift(180,360,($Height+2),$Reversed); $Done = TRUE; }
- }
- }
- }
-
- $LabelSettings = array("YTop"=>$YTop,"YBottom"=>$YBottom,"Label"=>$Label,"Angle"=>$Angle,"X1"=>$X,"Y1"=>$Y,"X2"=>$X2,"Y2"=>$Y2);
- if ( $Angle <= 180 ) { $LabelSettings["X3"] = $Xc+$Radius+$LabelOffset; }
- if ( $Angle > 180 ) { $LabelSettings["X3"] = $Xc-$Radius-$LabelOffset; }
- $this->LabelPos[] = $LabelSettings;
- }
- }
-
- /* Internally used to shift label positions */
- function shift($StartAngle,$EndAngle,$Offset,$Reversed)
- {
- if ( $Reversed ) { $Offset = -$Offset; }
- foreach($this->LabelPos as $Key => $Settings)
- {
- if ( $Settings["Angle"] > $StartAngle && $Settings["Angle"] <= $EndAngle ) { $this->LabelPos[$Key]["YTop"] = $Settings["YTop"] + $Offset; $this->LabelPos[$Key]["YBottom"] = $Settings["YBottom"] + $Offset; $this->LabelPos[$Key]["Y2"] = $Settings["Y2"] + $Offset; }
- }
- }
-
- /* Internally used to write the re-computed labels */
- function writeShiftedLabels()
- {
- if ( $this->LabelPos == "" ) { return(0); }
- foreach($this->LabelPos as $Key => $Settings)
- {
- $X1 = $Settings["X1"]; $Y1 = $Settings["Y1"];
- $X2 = $Settings["X2"]; $Y2 = $Settings["Y2"];
- $X3 = $Settings["X3"];
- $Angle = $Settings["Angle"];
- $Label = $Settings["Label"];
-
- $this->pChartObject->drawArrow($X2,$Y2,$X1,$Y1,array("Size"=>8));
- if ( $Angle <= 180 )
- {
- $this->pChartObject->drawLine($X2,$Y2,$X3,$Y2);
- $this->pChartObject->drawText($X3+2,$Y2,$Label,array("Align"=>TEXT_ALIGN_MIDDLELEFT));
- }
- else
- {
- $this->pChartObject->drawLine($X2,$Y2,$X3,$Y2);
- $this->pChartObject->drawText($X3-2,$Y2,$Label,array("Align"=>TEXT_ALIGN_MIDDLERIGHT));
- }
- }
- }
-
- /* Draw a ring chart */
- function draw2DRing($X,$Y,$Format="")
- {
- $OuterRadius = isset($Format["Radius"]) ? $Format["Radius"] : 60;
- $Precision = isset($Format["Precision"]) ? $Format["Precision"] : 0;
- $InnerRadius = isset($Format["Radius"]) ? $Format["Radius"] : 30;
- $Border = isset($Format["Border"]) ? $Format["Border"] : FALSE;
- $BorderR = isset($Format["BorderR"]) ? $Format["BorderR"] : 255;
- $BorderG = isset($Format["BorderG"]) ? $Format["BorderG"] : 255;
- $BorderB = isset($Format["BorderB"]) ? $Format["BorderB"] : 255;
- $BorderAlpha = isset($Format["BorderAlpha"]) ? $Format["BorderAlpha"] : 100;
- $Shadow = isset($Format["Shadow"]) ? $Format["Shadow"] : FALSE;
- $DrawLabels = isset($Format["DrawLabels"]) ? $Format["DrawLabels"] : FALSE;
- $LabelStacked = isset($Format["LabelStacked"]) ? $Format["LabelStacked"] : FALSE;
- $LabelColor = isset($Format["LabelColor"]) ? $Format["LabelColor"] : PIE_LABEL_COLOR_MANUAL;
- $LabelR = isset($Format["LabelR"]) ? $Format["LabelR"] : 0;
- $LabelG = isset($Format["LabelG"]) ? $Format["LabelG"] : 0;
- $LabelB = isset($Format["LabelB"]) ? $Format["LabelB"] : 0;
- $LabelAlpha = isset($Format["LabelAlpha"]) ? $Format["LabelAlpha"] : 100;
- $WriteValues = isset($Format["WriteValues"]) ? $Format["WriteValues"] : NULL; //PIE_VALUE_PERCENTAGE
- $ValuePadding = isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : 5;
- $ValuePosition = isset($Format["ValuePosition"]) ? $Format["ValuePosition"] : PIE_VALUE_OUTSIDE;
- $ValueSuffix = isset($Format["ValueSuffix"]) ? $Format["ValueSuffix"] : "";
- $ValueR = isset($Format["ValueR"]) ? $Format["ValueR"] : 255;
- $ValueG = isset($Format["ValueG"]) ? $Format["ValueG"] : 255;
- $ValueB = isset($Format["ValueB"]) ? $Format["ValueB"] : 255;
- $ValueAlpha = isset($Format["ValueAlpha"]) ? $Format["ValueAlpha"] : 100;
- $RecordImageMap = isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
-
- /* Data Processing */
- $Data = $this->pDataObject->getData();
- $Palette = $this->pDataObject->getPalette();
-
- /* Do we have an abscissa serie defined? */
- if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
-
- /* Try to find the data serie */
- $DataSerie = "";
- foreach ($Data["Series"] as $SerieName => $SerieData)
- { if ( $SerieName != $Data["Abscissa"]) { $DataSerie = $SerieName; } }
-
- /* Do we have data to compute? */
- if ( $DataSerie == "" ) { return(PIE_NO_DATASERIE); }
-
- /* Remove unused data */
- list($Data,$Palette) = $this->clean0Values($Data,$Palette,$DataSerie,$Data["Abscissa"]);
-
- /* Compute the pie sum */
- $SerieSum = $this->pDataObject->getSum($DataSerie);
-
- /* Do we have data to draw? */
- if ( $SerieSum == 0 ) { return(PIE_SUMISNULL); }
-
- /* Dump the real number of data to draw */
- $Values = "";
- foreach ($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
- { if ($Value != 0) { $Values[] = $Value; } }
-
- /* Compute the wasted angular space between series */
- if (count($Values)==1) { $WastedAngular = 0; } else { $WastedAngular = 0; } // count($Values)
-
- /* Compute the scale */
- $ScaleFactor = (360 - $WastedAngular) / $SerieSum;
-
- $RestoreShadow = $this->pChartObject->Shadow;
- if ( $this->pChartObject->Shadow )
- {
- $this->pChartObject->Shadow = FALSE;
-
- $ShadowFormat = $Format; $ShadowFormat["Shadow"] = TRUE;
- $this->draw2DRing($X+$this->pChartObject->ShadowX,$Y+$this->pChartObject->ShadowY,$ShadowFormat);
- }
-
- /* Draw the polygon pie elements */
- $Step = 360 / (2 * PI * $OuterRadius);
- $Offset = 0; $ID = 0;
- foreach($Values as $Key => $Value)
- {
- if ( $Shadow )
- {
- $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa);
- $BorderColor = $Settings;
- }
- else
- {
- if ( !isset($Palette[$ID]["R"]) ) { $Color = $this->pChartObject->getRandomColor(); $Palette[$ID] = $Color; $this->pDataObject->savePalette($ID,$Color); }
- $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
-
- if ( $Border )
- $BorderColor = array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha);
- else
- $BorderColor = $Settings;
- }
-
- $Plots = ""; $Boundaries = ""; $AAPixels = "";
- $EndAngle = $Offset+($Value*$ScaleFactor); if ( $EndAngle > 360 ) { $EndAngle = 360; }
- for($i=$Offset;$i<=$EndAngle;$i=$i+$Step)
- {
- $Xc = cos(($i-90)*PI/180) * $OuterRadius + $X;
- $Yc = sin(($i-90)*PI/180) * $OuterRadius + $Y;
-
- if ( !isset($Boundaries[0]["X1"]) ) { $Boundaries[0]["X1"] = $Xc; $Boundaries[0]["Y1"] = $Yc; }
- $AAPixels[] = array($Xc,$Yc);
-
- if ( $i<90 ) { $Yc++; }
- if ( $i>180 && $i<270 ) { $Xc++; }
- if ( $i>=270 ) { $Xc++; $Yc++; }
-
- $Plots[] = $Xc; $Plots[] = $Yc;
- }
- $Boundaries[1]["X1"] = $Xc; $Boundaries[1]["Y1"] = $Yc;
- $Lasti = $EndAngle;
-
- for($i=$EndAngle;$i>=$Offset;$i=$i-$Step)
- {
- $Xc = cos(($i-90)*PI/180) * ($InnerRadius-1) + $X;
- $Yc = sin(($i-90)*PI/180) * ($InnerRadius-1) + $Y;
-
- if ( !isset($Boundaries[1]["X2"]) ) { $Boundaries[1]["X2"] = $Xc; $Boundaries[1]["Y2"] = $Yc; }
- $AAPixels[] = array($Xc,$Yc);
-
- $Xc = cos(($i-90)*PI/180) * $InnerRadius + $X;
- $Yc = sin(($i-90)*PI/180) * $InnerRadius + $Y;
-
- if ( $i<90 ) { $Yc++; }
- if ( $i>180 && $i<270 ) { $Xc++; }
- if ( $i>=270 ) { $Xc++; $Yc++; }
-
- $Plots[] = $Xc; $Plots[] = $Yc;
- }
- $Boundaries[0]["X2"] = $Xc; $Boundaries[0]["Y2"] = $Yc;
-
- /* Draw the polygon */
- $this->pChartObject->drawPolygon($Plots,$Settings);
- if ( $RecordImageMap && !$Shadow ) { $this->pChartObject->addToImageMap("POLY",$this->arraySerialize($Plots),$this->pChartObject->toHTMLColor($Palette[$ID]["R"],$Palette[$ID]["G"],$Palette[$ID]["B"]),$Data["Series"][$Data["Abscissa"]]["Data"][$Key],$Value); }
-
- /* Smooth the edges using AA */
- foreach($AAPixels as $iKey => $Pos ) { $this->pChartObject->drawAntialiasPixel($Pos[0],$Pos[1],$BorderColor); }
- $this->pChartObject->drawLine($Boundaries[0]["X1"],$Boundaries[0]["Y1"],$Boundaries[0]["X2"],$Boundaries[0]["Y2"],$BorderColor);
- $this->pChartObject->drawLine($Boundaries[1]["X1"],$Boundaries[1]["Y1"],$Boundaries[1]["X2"],$Boundaries[1]["Y2"],$BorderColor);
-
- if ( $DrawLabels && !$Shadow )
- {
- if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
- { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
- else
- { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
-
- $Angle = ($EndAngle - $Offset)/2 + $Offset;
- $Xc = cos(($Angle-90)*PI/180) * $OuterRadius + $X;
- $Yc = sin(($Angle-90)*PI/180) * $OuterRadius + $Y;
-
- $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$Key];
-
- if ( $LabelStacked )
- $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,TRUE,$X,$Y,$OuterRadius);
- else
- $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,FALSE);
- }
-
- $Offset = $Lasti; $ID++;
- }
-
- if ( $DrawLabels && $LabelStacked ) { $this->writeShiftedLabels(); }
-
- if ( $WriteValues && !$Shadow )
- {
- $Step = 360 / (2 * PI * $OuterRadius);
- $Offset = 0;
- foreach($Values as $Key => $Value)
- {
- $EndAngle = $Offset+($Value*$ScaleFactor);
- if ( $EndAngle > 360 ) { $EndAngle = 360; }
-
- $Angle = $Offset+($Value*$ScaleFactor)/2;
- if ( $ValuePosition == PIE_VALUE_OUTSIDE )
- {
- $Xc = cos(($Angle-90)*PI/180) * ($OuterRadius+$ValuePadding) + $X;
- $Yc = sin(($Angle-90)*PI/180) * ($OuterRadius+$ValuePadding) + $Y;
- if ( $Angle >=0 && $Angle <= 90 ) { $Align = TEXT_ALIGN_BOTTOMLEFT; }
- if ( $Angle > 90 && $Angle <= 180 ) { $Align = TEXT_ALIGN_TOPLEFT; }
- if ( $Angle > 180 && $Angle <= 270 ) { $Align = TEXT_ALIGN_TOPRIGHT; }
- if ( $Angle > 270 ) { $Align = TEXT_ALIGN_BOTTOMRIGHT; }
- }
- else
- {
- $Xc = cos(($Angle-90)*PI/180) * (($OuterRadius-$InnerRadius)/2+$InnerRadius) + $X;
- $Yc = sin(($Angle-90)*PI/180) * (($OuterRadius-$InnerRadius)/2+$InnerRadius) + $Y;
- $Align = TEXT_ALIGN_MIDDLEMIDDLE;
- }
-
- if ( $WriteValues == PIE_VALUE_PERCENTAGE )
- $Display = round(( 100 / $SerieSum ) * $Value,$Precision)."%";
- elseif ( $WriteValues == PIE_VALUE_NATURAL )
- $Display = $Value.$ValueSuffix;
- else
- $Label = "";
-
- $this->pChartObject->drawText($Xc,$Yc,$Display,array("Align"=>$Align,"R"=>$ValueR,"G"=>$ValueG,"B"=>$ValueB));
- $Offset = $EndAngle;
- }
- }
-
- $this->pChartObject->Shadow = $RestoreShadow;
-
- return(PIE_RENDERED);
- }
-
- /* Draw a 3D ring chart */
- function draw3DRing($X,$Y,$Format="")
- {
- $OuterRadius = isset($Format["OuterRadius"]) ? $Format["OuterRadius"] : 100;
- $Precision = isset($Format["Precision"]) ? $Format["Precision"] : 0;
- $InnerRadius = isset($Format["InnerRadius"]) ? $Format["InnerRadius"] : 30;
- $SkewFactor = isset($Format["SkewFactor"]) ? $Format["SkewFactor"] : .6;
- $SliceHeight = isset($Format["SliceHeight"]) ? $Format["SliceHeight"] : 10;
- $DataGapAngle = isset($Format["DataGapAngle"]) ? $Format["DataGapAngle"] : 10;
- $DataGapRadius = isset($Format["DataGapRadius"]) ? $Format["DataGapRadius"] : 10;
- $Border = isset($Format["Border"]) ? $Format["Border"] : FALSE;
- $Shadow = isset($Format["Shadow"]) ? $Format["Shadow"] : FALSE;
- $DrawLabels = isset($Format["DrawLabels"]) ? $Format["DrawLabels"] : FALSE;
- $LabelStacked = isset($Format["LabelStacked"]) ? $Format["LabelStacked"] : FALSE;
- $LabelColor = isset($Format["LabelColor"]) ? $Format["LabelColor"] : PIE_LABEL_COLOR_MANUAL;
- $LabelR = isset($Format["LabelR"]) ? $Format["LabelR"] : 0;
- $LabelG = isset($Format["LabelG"]) ? $Format["LabelG"] : 0;
- $LabelB = isset($Format["LabelB"]) ? $Format["LabelB"] : 0;
- $LabelAlpha = isset($Format["LabelAlpha"]) ? $Format["LabelAlpha"] : 100;
- $Cf = isset($Format["Cf"]) ? $Format["Cf"] : 20;
- $WriteValues = isset($Format["WriteValues"]) ? $Format["WriteValues"] : PIE_VALUE_NATURAL;
- $ValuePadding = isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : $SliceHeight + 15;
- $ValuePosition = isset($Format["ValuePosition"]) ? $Format["ValuePosition"] : PIE_VALUE_OUTSIDE;
- $ValueSuffix = isset($Format["ValueSuffix"]) ? $Format["ValueSuffix"] : "";
- $ValueR = isset($Format["ValueR"]) ? $Format["ValueR"] : 255;
- $ValueG = isset($Format["ValueG"]) ? $Format["ValueG"] : 255;
- $ValueB = isset($Format["ValueB"]) ? $Format["ValueB"] : 255;
- $ValueAlpha = isset($Format["ValueAlpha"]) ? $Format["ValueAlpha"] : 100;
- $RecordImageMap = isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
-
- /* Error correction for overlaying rounded corners */
- if ( $SkewFactor < .5 ) { $SkewFactor = .5; }
-
- /* Data Processing */
- $Data = $this->pDataObject->getData();
- $Palette = $this->pDataObject->getPalette();
-
- /* Do we have an abscissa serie defined? */
- if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
-
- /* Try to find the data serie */
- $DataSerie = "";
- foreach ($Data["Series"] as $SerieName => $SerieData)
- { if ( $SerieName != $Data["Abscissa"]) { $DataSerie = $SerieName; } }
-
- /* Do we have data to compute? */
- if ( $DataSerie == "" ) { return(PIE_NO_DATASERIE); }
-
- /* Remove unused data */
- list($Data,$Palette) = $this->clean0Values($Data,$Palette,$DataSerie,$Data["Abscissa"]);
-
- /* Compute the pie sum */
- $SerieSum = $this->pDataObject->getSum($DataSerie);
-
- /* Do we have data to draw? */
- if ( $SerieSum == 0 ) { return(PIE_SUMISNULL); }
-
- /* Dump the real number of data to draw */
- $Values = "";
- foreach ($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
- { if ($Value != 0) { $Values[] = $Value; } }
-
- /* Compute the wasted angular space between series */
- if (count($Values)==1) { $WastedAngular = 0; } else { $WastedAngular = count($Values) * $DataGapAngle; }
-
- /* Compute the scale */
- $ScaleFactor = (360 - $WastedAngular) / $SerieSum;
-
- $RestoreShadow = $this->pChartObject->Shadow;
- if ( $this->pChartObject->Shadow ) { $this->pChartObject->Shadow = FALSE; }
-
- /* Draw the polygon ring elements */
- $Offset = 360; $ID = count($Values)-1;
- $Values = array_reverse($Values);
- $Slice = 0; $Slices = ""; $SliceColors = ""; $Visible = ""; $SliceAngle = "";
- foreach($Values as $Key => $Value)
- {
- if ( !isset($Palette[$ID]["R"]) ) { $Color = $this->pChartObject->getRandomColor(); $Palette[$ID] = $Color; $this->pDataObject->savePalette($ID,$Color); }
- $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
-
- $SliceColors[$Slice] = $Settings;
-
- $StartAngle = $Offset;
- $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
-
- if ( $StartAngle > 180 ) { $Visible[$Slice]["Start"] = TRUE; } else { $Visible[$Slice]["Start"] = TRUE; }
- if ( $EndAngle < 180 ) { $Visible[$Slice]["End"] = FALSE; } else { $Visible[$Slice]["End"] = TRUE; }
-
- $Step = (360 / (2 * PI * $OuterRadius))/2;
- $OutX1 = VOID; $OutY1 = VOID;
- for($i=$Offset;$i>=$EndAngle;$i=$i-$Step)
- {
- $Xc = cos(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius-2) + $X;
- $Yc = sin(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius-2)*$SkewFactor + $Y;
- $Slices[$Slice]["AA"][] = array($Xc,$Yc);
-
- $Xc = cos(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius-1) + $X;
- $Yc = sin(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius-1)*$SkewFactor + $Y;
- $Slices[$Slice]["AA"][] = array($Xc,$Yc);
-
- $Xc = cos(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius) + $X;
- $Yc = sin(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius)*$SkewFactor + $Y;
- $this->pChartObject->drawAntialiasPixel($Xc,$Yc,$Settings);
-
- if ( $OutX1 == VOID ) { $OutX1 = $Xc; $OutY1 = $Yc; }
-
- if ( $i<90 ) { $Yc++; }
- if ( $i>90 && $i<180 ) { $Xc++; }
- if ( $i>180 && $i<270 ) { $Xc++; }
- if ( $i>=270 ) { $Xc++; $Yc++; }
-
- $Slices[$Slice]["BottomPoly"][] = floor($Xc); $Slices[$Slice]["BottomPoly"][] = floor($Yc);
- $Slices[$Slice]["TopPoly"][] = floor($Xc); $Slices[$Slice]["TopPoly"][] = floor($Yc)-$SliceHeight;
- $Slices[$Slice]["Angle"][] = $i;
- }
- $OutX2 = $Xc; $OutY2 = $Yc;
-
- $Slices[$Slice]["Angle"][] = VOID;
- $Lasti = $i;
-
- $Step = (360 / (2 * PI * $InnerRadius))/2;
- $InX1 = VOID; $InY1 = VOID;
- for($i=$EndAngle;$i<=$Offset;$i=$i+$Step)
- {
- $Xc = cos(($i-90)*PI/180) * ($InnerRadius+$DataGapRadius-1) + $X;
- $Yc = sin(($i-90)*PI/180) * ($InnerRadius+$DataGapRadius-1)*$SkewFactor + $Y;
- $Slices[$Slice]["AA"][] = array($Xc,$Yc);
-
- $Xc = cos(($i-90)*PI/180) * ($InnerRadius+$DataGapRadius) + $X;
- $Yc = sin(($i-90)*PI/180) * ($InnerRadius+$DataGapRadius)*$SkewFactor + $Y;
- $Slices[$Slice]["AA"][] = array($Xc,$Yc);
-
- if ( $InX1 == VOID ) { $InX1 = $Xc; $InY1 = $Yc; }
-
- if ( $i<90 ) { $Yc++; }
- if ( $i>90 && $i<180 ) { $Xc++; }
- if ( $i>180 && $i<270 ) { $Xc++; }
- if ( $i>=270 ) { $Xc++; $Yc++; }
-
- $Slices[$Slice]["BottomPoly"][] = floor($Xc); $Slices[$Slice]["BottomPoly"][] = floor($Yc);
- $Slices[$Slice]["TopPoly"][] = floor($Xc); $Slices[$Slice]["TopPoly"][] = floor($Yc)-$SliceHeight;
- $Slices[$Slice]["Angle"][] = $i;
- }
- $InX2 = $Xc; $InY2 = $Yc;
-
- $Slices[$Slice]["InX1"] = $InX1; $Slices[$Slice]["InY1"] = $InY1;
- $Slices[$Slice]["InX2"] = $InX2; $Slices[$Slice]["InY2"] = $InY2;
- $Slices[$Slice]["OutX1"] = $OutX1; $Slices[$Slice]["OutY1"] = $OutY1;
- $Slices[$Slice]["OutX2"] = $OutX2; $Slices[$Slice]["OutY2"] = $OutY2;
-
- $Offset = $Lasti - $DataGapAngle; $ID--; $Slice++;
- }
-
- /* Draw the bottom pie splice */
- foreach($Slices as $SliceID => $Plots)
- {
- $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
- $this->pChartObject->drawPolygon($Plots["BottomPoly"],$Settings);
-
- foreach($Plots["AA"] as $Key => $Pos)
- $this->pChartObject->drawAntialiasPixel($Pos[0],$Pos[1],$Settings);
-
- $this->pChartObject->drawLine($Plots["InX1"],$Plots["InY1"],$Plots["OutX2"],$Plots["OutY2"],$Settings);
- $this->pChartObject->drawLine($Plots["InX2"],$Plots["InY2"],$Plots["OutX1"],$Plots["OutY1"],$Settings);
- }
-
- $Slices = array_reverse($Slices);
- $SliceColors = array_reverse($SliceColors);
-
- /* Draw the vertical edges (semi-visible) */
- foreach($Slices as $SliceID => $Plots)
- {
- $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
- $Settings["R"] = $Settings["R"]+$Cf; $Settings["G"] = $Settings["G"]+$Cf; $Settings["B"] = $Settings["B"]+$Cf;
-
- $StartAngle = $Plots["Angle"][0];
- foreach($Plots["Angle"] as $Key =>$Angle) { if ($Angle == VOID) { $EndAngle = $Plots["Angle"][$Key-1]; } }
-
- if ( $StartAngle >= 270 || $StartAngle <= 90 )
- $this->pChartObject->drawLine($Plots["OutX1"],$Plots["OutY1"],$Plots["OutX1"],$Plots["OutY1"]-$SliceHeight,$Settings);
- if ( $StartAngle >= 270 || $StartAngle <= 90 )
- $this->pChartObject->drawLine($Plots["OutX2"],$Plots["OutY2"],$Plots["OutX2"],$Plots["OutY2"]-$SliceHeight,$Settings);
-
- $this->pChartObject->drawLine($Plots["InX1"],$Plots["InY1"],$Plots["InX1"],$Plots["InY1"]-$SliceHeight,$Settings);
- $this->pChartObject->drawLine($Plots["InX2"],$Plots["InY2"],$Plots["InX2"],$Plots["InY2"]-$SliceHeight,$Settings);
- }
-
- /* Draw the inner vertical slices */
- foreach($Slices as $SliceID => $Plots)
- {
- $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
- $Settings["R"] = $Settings["R"]+$Cf; $Settings["G"] = $Settings["G"]+$Cf; $Settings["B"] = $Settings["B"]+$Cf;
-
- $Outer = TRUE; $Inner = FALSE;
- $InnerPlotsA = ""; $InnerPlotsB = "";
- foreach($Plots["Angle"] as $ID => $Angle)
- {
- if ( $Angle == VOID )
- { $Outer = FALSE; $Inner = TRUE; }
- elseif( $Inner )
- {
- if (( $Angle < 90 || $Angle > 270 ) && isset($Plots["BottomPoly"][$ID*2]) )
- {
- $Xo = $Plots["BottomPoly"][$ID*2];
- $Yo = $Plots["BottomPoly"][$ID*2+1];
-
- $InnerPlotsA[] = $Xo; $InnerPlotsA[] = $Yo;
- $InnerPlotsB[] = $Xo; $InnerPlotsB[] = $Yo-$SliceHeight;
- }
- }
- }
-
- if ( $InnerPlotsA != "" )
- { $InnerPlots = array_merge($InnerPlotsA,$this->arrayReverse($InnerPlotsB)); $this->pChartObject->drawPolygon($InnerPlots,$Settings); }
- }
-
- /* Draw the splice top and left poly */
- foreach($Slices as $SliceID => $Plots)
- {
- $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
- $Settings["R"] = $Settings["R"]+$Cf*1.5; $Settings["G"] = $Settings["G"]+$Cf*1.5; $Settings["B"] = $Settings["B"]+$Cf*1.5;
-
- $StartAngle = $Plots["Angle"][0];
- foreach($Plots["Angle"] as $Key =>$Angle) { if ($Angle == VOID) { $EndAngle = $Plots["Angle"][$Key-1]; } }
-
- if ( $StartAngle < 180 )
- {
- $Points = "";
- $Points[] = $Plots["InX2"];
- $Points[] = $Plots["InY2"];
- $Points[] = $Plots["InX2"];
- $Points[] = $Plots["InY2"]-$SliceHeight;
- $Points[] = $Plots["OutX1"];
- $Points[] = $Plots["OutY1"]-$SliceHeight;
- $Points[] = $Plots["OutX1"];
- $Points[] = $Plots["OutY1"];
-
- $this->pChartObject->drawPolygon($Points,$Settings);
- }
-
- if ( $EndAngle > 180 )
- {
- $Points = "";
- $Points[] = $Plots["InX1"];
- $Points[] = $Plots["InY1"];
- $Points[] = $Plots["InX1"];
- $Points[] = $Plots["InY1"]-$SliceHeight;
- $Points[] = $Plots["OutX2"];
- $Points[] = $Plots["OutY2"]-$SliceHeight;
- $Points[] = $Plots["OutX2"];
- $Points[] = $Plots["OutY2"];
-
- $this->pChartObject->drawPolygon($Points,$Settings);
- }
- }
-
-
- /* Draw the vertical edges (visible) */
- foreach($Slices as $SliceID => $Plots)
- {
- $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
- $Settings["R"] = $Settings["R"]+$Cf; $Settings["G"] = $Settings["G"]+$Cf; $Settings["B"] = $Settings["B"]+$Cf;
-
- $StartAngle = $Plots["Angle"][0];
- foreach($Plots["Angle"] as $Key =>$Angle) { if ($Angle == VOID) { $EndAngle = $Plots["Angle"][$Key-1]; } }
-
- if ( $StartAngle <= 270 && $StartAngle >= 90 )
- $this->pChartObject->drawLine($Plots["OutX1"],$Plots["OutY1"],$Plots["OutX1"],$Plots["OutY1"]-$SliceHeight,$Settings);
- if ( $EndAngle <= 270 && $EndAngle >= 90 )
- $this->pChartObject->drawLine($Plots["OutX2"],$Plots["OutY2"],$Plots["OutX2"],$Plots["OutY2"]-$SliceHeight,$Settings);
- }
-
-
- /* Draw the outer vertical slices */
- foreach($Slices as $SliceID => $Plots)
- {
- $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
- $Settings["R"] = $Settings["R"]+$Cf; $Settings["G"] = $Settings["G"]+$Cf; $Settings["B"] = $Settings["B"]+$Cf;
-
- $Outer = TRUE; $Inner = FALSE;
- $OuterPlotsA = ""; $OuterPlotsB = ""; $InnerPlotsA = ""; $InnerPlotsB = "";
- foreach($Plots["Angle"] as $ID => $Angle)
- {
- if ( $Angle == VOID )
- { $Outer = FALSE; $Inner = TRUE; }
- elseif( $Outer )
- {
- if ( ( $Angle > 90 && $Angle < 270 ) && isset($Plots["BottomPoly"][$ID*2]) )
- {
- $Xo = $Plots["BottomPoly"][$ID*2];
- $Yo = $Plots["BottomPoly"][$ID*2+1];
-
- $OuterPlotsA[] = $Xo; $OuterPlotsA[] = $Yo;
- $OuterPlotsB[] = $Xo; $OuterPlotsB[] = $Yo-$SliceHeight;
- }
- }
- }
- if ( $OuterPlotsA != "" )
- { $OuterPlots = array_merge($OuterPlotsA,$this->arrayReverse($OuterPlotsB)); $this->pChartObject->drawPolygon($OuterPlots,$Settings); }
- }
-
- $Slices = array_reverse($Slices);
- $SliceColors = array_reverse($SliceColors);
-
-
- /* Draw the top pie splice */
- foreach($Slices as $SliceID => $Plots)
- {
- $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
- $Settings["R"] = $Settings["R"]+$Cf*2; $Settings["G"] = $Settings["G"]+$Cf*2; $Settings["B"] = $Settings["B"]+$Cf*2;
-
- $this->pChartObject->drawPolygon($Plots["TopPoly"],$Settings);
-
- if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("POLY",$this->arraySerialize($Plots["TopPoly"]),$this->pChartObject->toHTMLColor($Settings["R"],$Settings["G"],$Settings["B"]),$Data["Series"][$Data["Abscissa"]]["Data"][$SliceID],$Data["Series"][$DataSerie]["Data"][count($Slices)-$SliceID-1]); }
-
- foreach($Plots["AA"] as $Key => $Pos)
- $this->pChartObject->drawAntialiasPixel($Pos[0],$Pos[1]-$SliceHeight,$Settings);
-
- $this->pChartObject->drawLine($Plots["InX1"],$Plots["InY1"]-$SliceHeight,$Plots["OutX2"],$Plots["OutY2"]-$SliceHeight,$Settings);
- $this->pChartObject->drawLine($Plots["InX2"],$Plots["InY2"]-$SliceHeight,$Plots["OutX1"],$Plots["OutY1"]-$SliceHeight,$Settings);
- }
-
- if ( $DrawLabels )
- {
- $Offset = 360;
- foreach($Values as $Key => $Value)
- {
- $StartAngle = $Offset;
- $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
-
- if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
- { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
- else
- { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
-
- $Angle = ($EndAngle - $Offset)/2 + $Offset;
- $Xc = cos(($Angle-90)*PI/180) * ($OuterRadius+$DataGapRadius) + $X;
- $Yc = sin(($Angle-90)*PI/180) * ($OuterRadius+$DataGapRadius)*$SkewFactor + $Y;
-
- if ( $WriteValues == PIE_VALUE_PERCENTAGE )
- $Label = $Display = round(( 100 / $SerieSum ) * $Value,$Precision)."%";
- elseif ( $WriteValues == PIE_VALUE_NATURAL )
- $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$Key];
- else
- $Label = "";
-
- if ( $LabelStacked )
- $this->writePieLabel($Xc,$Yc-$SliceHeight,$Label,$Angle,$Settings,TRUE,$X,$Y,$OuterRadius);
- else
- $this->writePieLabel($Xc,$Yc-$SliceHeight,$Label,$Angle,$Settings,FALSE);
-
- $Offset = $EndAngle - $DataGapAngle; $ID--; $Slice++;
- }
- }
- if ( $DrawLabels && $LabelStacked ) { $this->writeShiftedLabels(); }
-
- $this->pChartObject->Shadow = $RestoreShadow;
-
- return(PIE_RENDERED);
- }
-
- /* Serialize an array */
- function arraySerialize($Data)
- {
- $Result = "";
- foreach($Data as $Key => $Value)
- { if ($Result == "") { $Result = floor($Value); } else { $Result = $Result.",".floor($Value); } }
-
- return($Result);
- }
-
- /* Reverse an array */
- function arrayReverse($Plots)
- {
- $Result = "";
-
- for($i=count($Plots)-1;$i>=0;$i=$i-2)
- { $Result[] = $Plots[$i-1]; $Result[] = $Plots[$i]; }
-
- return($Result);
- }
-
- /* Remove unused series & values */
- function clean0Values($Data,$Palette,$DataSerie,$AbscissaSerie)
- {
- $NewPalette = ""; $NewData = ""; $NewAbscissa = "";
-
- /* Remove unused series */
- foreach($Data["Series"] as $SerieName => $SerieSettings)
- { if ( $SerieName != $DataSerie && $SerieName != $AbscissaSerie ) { unset($Data["Series"][$SerieName]); } }
-
- /* Remove NULL values */
- foreach($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
- {
- if ($Value != 0 )
- {
- $NewData[] = $Value;
- $NewAbscissa[] = $Data["Series"][$AbscissaSerie]["Data"][$Key];
- if ( isset($Palette[$Key]) ) { $NewPalette[] = $Palette[$Key]; }
- }
- }
- $Data["Series"][$DataSerie]["Data"] = $NewData;
- $Data["Series"][$AbscissaSerie]["Data"] = $NewAbscissa;
-
- return(array($Data,$NewPalette));
- }
- }
+<?php
+ /*
+ pPie - class to draw pie charts
+
+ Version : 2.1.4
+ Made by : Jean-Damien POGOLOTTI
+ Last Update : 19/01/2014
+
+ This file can be distributed under the license you can find at :
+
+ http://www.pchart.net/license
+
+ You can find the whole class documentation on the pChart web site.
+ */
+
+ /* Class return codes */
+ define("PIE_NO_ABSCISSA" , 140001);
+ define("PIE_NO_DATASERIE" , 140002);
+ define("PIE_SUMISNULL" , 140003);
+ define("PIE_RENDERED" , 140000);
+
+ define("PIE_LABEL_COLOR_AUTO" , 140010);
+ define("PIE_LABEL_COLOR_MANUAL", 140011);
+
+ define("PIE_VALUE_NATURAL" , 140020);
+ define("PIE_VALUE_PERCENTAGE" , 140021);
+
+ define("PIE_VALUE_INSIDE" , 140030);
+ define("PIE_VALUE_OUTSIDE" , 140031);
+
+ /* pPie class definition */
+ class pPie
+ {
+ var $pChartObject;
+ var $pDataObject;
+ var $LabelPos = "" ;
+
+ /* Class creator */
+ function __construct($Object,$pDataObject)
+ {
+ /* Cache the pChart object reference */
+ $this->pChartObject = $Object;
+
+ /* Cache the pData object reference */
+ $this->pDataObject = $pDataObject;
+ }
+
+ /* Draw a pie chart */
+ function draw2DPie($X,$Y,$Format="")
+ {
+ $Radius = isset($Format["Radius"]) ? $Format["Radius"] : 60;
+ $Precision = isset($Format["Precision"]) ? $Format["Precision"] : 0;
+ $DataGapAngle = isset($Format["DataGapAngle"]) ? $Format["DataGapAngle"] : 0;
+ $DataGapRadius = isset($Format["DataGapRadius"]) ? $Format["DataGapRadius"] : 0;
+ $SecondPass = isset($Format["SecondPass"]) ? $Format["SecondPass"] : TRUE;
+ $Border = isset($Format["Border"]) ? $Format["Border"] : FALSE;
+ $BorderR = isset($Format["BorderR"]) ? $Format["BorderR"] : 255;
+ $BorderG = isset($Format["BorderG"]) ? $Format["BorderG"] : 255;
+ $BorderB = isset($Format["BorderB"]) ? $Format["BorderB"] : 255;
+ $Shadow = isset($Format["Shadow"]) ? $Format["Shadow"] : FALSE;
+ $DrawLabels = isset($Format["DrawLabels"]) ? $Format["DrawLabels"] : FALSE;
+ $LabelStacked = isset($Format["LabelStacked"]) ? $Format["LabelStacked"] : FALSE;
+ $LabelColor = isset($Format["LabelColor"]) ? $Format["LabelColor"] : PIE_LABEL_COLOR_MANUAL;
+ $LabelR = isset($Format["LabelR"]) ? $Format["LabelR"] : 0;
+ $LabelG = isset($Format["LabelG"]) ? $Format["LabelG"] : 0;
+ $LabelB = isset($Format["LabelB"]) ? $Format["LabelB"] : 0;
+ $LabelAlpha = isset($Format["LabelAlpha"]) ? $Format["LabelAlpha"] : 100;
+ $WriteValues = isset($Format["WriteValues"]) ? $Format["WriteValues"] : NULL;
+ $ValuePosition = isset($Format["ValuePosition"]) ? $Format["ValuePosition"] : PIE_VALUE_OUTSIDE;
+ $ValuePadding = isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : 15;
+ $ValueSuffix = isset($Format["ValueSuffix"]) ? $Format["ValueSuffix"] : "";
+ $ValueR = isset($Format["ValueR"]) ? $Format["ValueR"] : 255;
+ $ValueG = isset($Format["ValueG"]) ? $Format["ValueG"] : 255;
+ $ValueB = isset($Format["ValueB"]) ? $Format["ValueB"] : 255;
+ $ValueAlpha = isset($Format["ValueAlpha"]) ? $Format["ValueAlpha"] : 100;
+ $RecordImageMap = isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+
+ /* Data Processing */
+ $Data = $this->pDataObject->getData();
+ $Palette = $this->pDataObject->getPalette();
+
+ /* Do we have an abscissa serie defined? */
+ if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
+
+ /* Try to find the data serie */
+ $DataSerie = "";
+ foreach ($Data["Series"] as $SerieName => $SerieData)
+ { if ( $SerieName != $Data["Abscissa"]) { $DataSerie = $SerieName; } }
+
+ /* Do we have data to compute? */
+ if ( $DataSerie == "" ) { return(PIE_NO_DATASERIE); }
+
+ /* Remove unused data */
+ list($Data,$Palette) = $this->clean0Values($Data,$Palette,$DataSerie,$Data["Abscissa"]);
+
+ /* Compute the pie sum */
+ $SerieSum = $this->pDataObject->getSum($DataSerie);
+
+ /* Do we have data to draw? */
+ if ( $SerieSum == 0 ) { return(PIE_SUMISNULL); }
+
+ /* Dump the real number of data to draw */
+ $Values = "";
+ foreach ($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
+ { if ($Value != 0) { $Values[] = $Value; } }
+
+ /* Compute the wasted angular space between series */
+ if (count($Values)==1) { $WastedAngular = 0; } else { $WastedAngular = count($Values) * $DataGapAngle; }
+
+ /* Compute the scale */
+ $ScaleFactor = (360 - $WastedAngular) / $SerieSum;
+
+ $RestoreShadow = $this->pChartObject->Shadow;
+ if ( $this->pChartObject->Shadow )
+ {
+ $this->pChartObject->Shadow = FALSE;
+
+ $ShadowFormat = $Format; $ShadowFormat["Shadow"] = TRUE;
+ $this->draw2DPie($X+$this->pChartObject->ShadowX,$Y+$this->pChartObject->ShadowY,$ShadowFormat);
+ }
+
+ /* Draw the polygon pie elements */
+ $Step = 360 / (2 * PI * $Radius);
+ $Offset = 0; $ID = 0;
+ foreach($Values as $Key => $Value)
+ {
+ if ( $Shadow )
+ $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa);
+ else
+ {
+ if ( !isset($Palette[$ID]["R"]) ) { $Color = $this->pChartObject->getRandomColor(); $Palette[$ID] = $Color; $this->pDataObject->savePalette($ID,$Color); }
+ $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
+ }
+
+ if ( !$SecondPass && !$Shadow )
+ {
+ if ( !$Border )
+ $Settings["Surrounding"] = 10;
+ else
+ { $Settings["BorderR"] = $BorderR; $Settings["BorderG"] = $BorderG; $Settings["BorderB"] = $BorderB; }
+ }
+
+ $Plots = "";
+ $EndAngle = $Offset+($Value*$ScaleFactor); if ( $EndAngle > 360 ) { $EndAngle = 360; }
+
+ $Angle = ($EndAngle - $Offset)/2 + $Offset;
+ if ($DataGapAngle == 0)
+ { $X0 = $X; $Y0 = $Y; }
+ else
+ {
+ $X0 = cos(($Angle-90)*PI/180) * $DataGapRadius + $X;
+ $Y0 = sin(($Angle-90)*PI/180) * $DataGapRadius + $Y;
+ }
+
+ $Plots[] = $X0; $Plots[] = $Y0;
+
+
+ for($i=$Offset;$i<=$EndAngle;$i=$i+$Step)
+ {
+ $Xc = cos(($i-90)*PI/180) * $Radius + $X;
+ $Yc = sin(($i-90)*PI/180) * $Radius + $Y;
+
+ if ( $SecondPass && ( $i<90 )) { $Yc++; }
+ if ( $SecondPass && ( $i>180 && $i<270 )) { $Xc++; }
+ if ( $SecondPass && ( $i>=270 )) { $Xc++; $Yc++; }
+
+ $Plots[] = $Xc; $Plots[] = $Yc;
+ }
+
+ $this->pChartObject->drawPolygon($Plots,$Settings);
+ if ( $RecordImageMap && !$Shadow ) { $this->pChartObject->addToImageMap("POLY",$this->arraySerialize($Plots),$this->pChartObject->toHTMLColor($Palette[$ID]["R"],$Palette[$ID]["G"],$Palette[$ID]["B"]),$Data["Series"][$Data["Abscissa"]]["Data"][$Key],$Value); }
+
+ if ( $DrawLabels && !$Shadow && !$SecondPass )
+ {
+ if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
+ { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
+ else
+ { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
+
+ $Angle = ($EndAngle - $Offset)/2 + $Offset;
+ $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+ $Yc = sin(($Angle-90)*PI/180) * $Radius + $Y;
+
+ $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$Key];
+
+ if ( $LabelStacked )
+ $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,TRUE,$X,$Y,$Radius);
+ else
+ $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,FALSE);
+ }
+
+ $Offset = $i + $DataGapAngle; $ID++;
+ }
+
+ /* Second pass to smooth the angles */
+ if ( $SecondPass )
+ {
+ $Step = 360 / (2 * PI * $Radius);
+ $Offset = 0; $ID = 0;
+ foreach($Values as $Key => $Value)
+ {
+ $FirstPoint = TRUE;
+ if ( $Shadow )
+ $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa);
+ else
+ {
+ if ( $Border )
+ $Settings = array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB);
+ else
+ $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
+ }
+
+ $EndAngle = $Offset+($Value*$ScaleFactor); if ( $EndAngle > 360 ) { $EndAngle = 360; }
+
+ if ($DataGapAngle == 0)
+ { $X0 = $X; $Y0 = $Y; }
+ else
+ {
+ $Angle = ($EndAngle - $Offset)/2 + $Offset;
+ $X0 = cos(($Angle-90)*PI/180) * $DataGapRadius + $X;
+ $Y0 = sin(($Angle-90)*PI/180) * $DataGapRadius + $Y;
+ }
+ $Plots[] = $X0; $Plots[] = $Y0;
+
+ for($i=$Offset;$i<=$EndAngle;$i=$i+$Step)
+ {
+ $Xc = cos(($i-90)*PI/180) * $Radius + $X;
+ $Yc = sin(($i-90)*PI/180) * $Radius + $Y;
+
+ if ( $FirstPoint ) { $this->pChartObject->drawLine($Xc,$Yc,$X0,$Y0,$Settings); } { $FirstPoint = FALSE; }
+
+ $this->pChartObject->drawAntialiasPixel($Xc,$Yc,$Settings);
+ }
+ $this->pChartObject->drawLine($Xc,$Yc,$X0,$Y0,$Settings);
+
+ if ( $DrawLabels && !$Shadow )
+ {
+ if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
+ { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
+ else
+ { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
+
+ $Angle = ($EndAngle - $Offset)/2 + $Offset;
+ $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+ $Yc = sin(($Angle-90)*PI/180) * $Radius + $Y;
+
+ $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$Key];
+
+ if ( $LabelStacked )
+ $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,TRUE,$X,$Y,$Radius);
+ else
+ $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,FALSE);
+ }
+
+ $Offset = $i + $DataGapAngle; $ID++;
+ }
+ }
+
+ if ( $WriteValues != NULL && !$Shadow )
+ {
+ $Step = 360 / (2 * PI * $Radius);
+ $Offset = 0; $ID = count($Values)-1;
+ $Settings = array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"R"=>$ValueR,"G"=>$ValueG,"B"=>$ValueB,"Alpha"=>$ValueAlpha);
+ foreach($Values as $Key => $Value)
+ {
+ $EndAngle = ($Value*$ScaleFactor) + $Offset; if ( (int)$EndAngle > 360 ) { $EndAngle = 0; }
+ $Angle = ($EndAngle - $Offset)/2 + $Offset;
+
+ if ( $ValuePosition == PIE_VALUE_OUTSIDE )
+ {
+ $Xc = cos(($Angle-90)*PI/180) * ($Radius+$ValuePadding) + $X;
+ $Yc = sin(($Angle-90)*PI/180) * ($Radius+$ValuePadding) + $Y;
+ }
+ else
+ {
+ $Xc = cos(($Angle-90)*PI/180) * ($Radius)/2 + $X;
+ $Yc = sin(($Angle-90)*PI/180) * ($Radius)/2 + $Y;
+ }
+
+ if ( $WriteValues == PIE_VALUE_PERCENTAGE )
+ $Display = round(( 100 / $SerieSum ) * $Value,$Precision)."%";
+ elseif ( $WriteValues == PIE_VALUE_NATURAL )
+ $Display = $Value.$ValueSuffix;
+
+ $this->pChartObject->drawText($Xc,$Yc,$Display,$Settings);
+
+ $Offset = $EndAngle + $DataGapAngle; $ID--;
+ }
+ }
+
+ if ( $DrawLabels && $LabelStacked ) { $this->writeShiftedLabels(); }
+
+ $this->pChartObject->Shadow = $RestoreShadow;
+
+ return(PIE_RENDERED);
+ }
+
+ /* Draw a 3D pie chart */
+ function draw3DPie($X,$Y,$Format="")
+ {
+ /* Rendering layout */
+ $Radius = isset($Format["Radius"]) ? $Format["Radius"] : 80;
+ $Precision = isset($Format["Precision"]) ? $Format["Precision"] : 0;
+ $SkewFactor = isset($Format["SkewFactor"]) ? $Format["SkewFactor"] : .5;
+ $SliceHeight = isset($Format["SliceHeight"]) ? $Format["SliceHeight"] : 20;
+ $DataGapAngle = isset($Format["DataGapAngle"]) ? $Format["DataGapAngle"] : 0;
+ $DataGapRadius = isset($Format["DataGapRadius"]) ? $Format["DataGapRadius"] : 0;
+ $SecondPass = isset($Format["SecondPass"]) ? $Format["SecondPass"] : TRUE;
+ $Border = isset($Format["Border"]) ? $Format["Border"] : FALSE;
+ $Shadow = isset($Format["Shadow"]) ? $Format["Shadow"] : FALSE;
+ $DrawLabels = isset($Format["DrawLabels"]) ? $Format["DrawLabels"] : FALSE;
+ $LabelStacked = isset($Format["LabelStacked"]) ? $Format["LabelStacked"] : FALSE;
+ $LabelColor = isset($Format["LabelColor"]) ? $Format["LabelColor"] : PIE_LABEL_COLOR_MANUAL;
+ $LabelR = isset($Format["LabelR"]) ? $Format["LabelR"] : 0;
+ $LabelG = isset($Format["LabelG"]) ? $Format["LabelG"] : 0;
+ $LabelB = isset($Format["LabelB"]) ? $Format["LabelB"] : 0;
+ $LabelAlpha = isset($Format["LabelAlpha"]) ? $Format["LabelAlpha"] : 100;
+ $WriteValues = isset($Format["WriteValues"]) ? $Format["WriteValues"] : NULL; //PIE_VALUE_PERCENTAGE
+ $ValuePosition = isset($Format["ValuePosition"]) ? $Format["ValuePosition"] : PIE_VALUE_INSIDE;
+ $ValuePadding = isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : 15;
+ $ValueSuffix = isset($Format["ValueSuffix"]) ? $Format["ValueSuffix"] : "";
+ $ValueR = isset($Format["ValueR"]) ? $Format["ValueR"] : 255;
+ $ValueG = isset($Format["ValueG"]) ? $Format["ValueG"] : 255;
+ $ValueB = isset($Format["ValueB"]) ? $Format["ValueB"] : 255;
+ $ValueAlpha = isset($Format["ValueAlpha"]) ? $Format["ValueAlpha"] : 100;
+ $RecordImageMap = isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+
+ /* Error correction for overlaying rounded corners */
+ if ( $SkewFactor < .5 ) { $SkewFactor = .5; }
+
+ /* Data Processing */
+ $Data = $this->pDataObject->getData();
+ $Palette = $this->pDataObject->getPalette();
+
+ /* Do we have an abscissa serie defined? */
+ if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
+
+ /* Try to find the data serie */
+ $DataSerie = "";
+ foreach ($Data["Series"] as $SerieName => $SerieData)
+ { if ( $SerieName != $Data["Abscissa"]) { $DataSerie = $SerieName; } }
+
+ /* Do we have data to compute? */
+ if ( $DataSerie == "" ) { return(PIE_NO_DATASERIE); }
+
+ /* Remove unused data */
+ list($Data,$Palette) = $this->clean0Values($Data,$Palette,$DataSerie,$Data["Abscissa"]);
+
+ /* Compute the pie sum */
+ $SerieSum = $this->pDataObject->getSum($DataSerie);
+
+ /* Do we have data to draw? */
+ if ( $SerieSum == 0 ) { return(PIE_SUMISNULL); }
+
+ /* Dump the real number of data to draw */
+ $Values = "";
+ foreach ($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
+ { if ($Value != 0) { $Values[] = $Value; } }
+
+ /* Compute the wasted angular space between series */
+ if (count($Values)==1) { $WastedAngular = 0; } else { $WastedAngular = count($Values) * $DataGapAngle; }
+
+ /* Compute the scale */
+ $ScaleFactor = (360 - $WastedAngular) / $SerieSum;
+
+ $RestoreShadow = $this->pChartObject->Shadow;
+ if ( $this->pChartObject->Shadow ) { $this->pChartObject->Shadow = FALSE; }
+
+ /* Draw the polygon pie elements */
+ $Step = 360 / (2 * PI * $Radius);
+ $Offset = 360; $ID = count($Values)-1;
+ $Values = array_reverse($Values);
+ $Slice = 0; $Slices = ""; $SliceColors = ""; $Visible = ""; $SliceAngle = "";
+ foreach($Values as $Key => $Value)
+ {
+ if ( !isset($Palette[$ID]["R"]) ) { $Color = $this->pChartObject->getRandomColor(); $Palette[$ID] = $Color; $this->pDataObject->savePalette($ID,$Color); }
+ $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
+
+ $SliceColors[$Slice] = $Settings;
+
+ $StartAngle = $Offset;
+ $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+ if ( $StartAngle > 180 ) { $Visible[$Slice]["Start"] = TRUE; } else { $Visible[$Slice]["Start"] = TRUE; }
+ if ( $EndAngle < 180 ) { $Visible[$Slice]["End"] = FALSE; } else { $Visible[$Slice]["End"] = TRUE; }
+
+ if ($DataGapAngle == 0)
+ { $X0 = $X; $Y0 = $Y; }
+ else
+ {
+ $Angle = ($EndAngle - $Offset)/2 + $Offset;
+ $X0 = cos(($Angle-90)*PI/180) * $DataGapRadius + $X;
+ $Y0 = sin(($Angle-90)*PI/180) * $DataGapRadius*$SkewFactor + $Y;
+ }
+ $Slices[$Slice][] = $X0; $Slices[$Slice][] = $Y0; $SliceAngle[$Slice][] = 0;
+
+ for($i=$Offset;$i>=$EndAngle;$i=$i-$Step)
+ {
+ $Xc = cos(($i-90)*PI/180) * $Radius + $X;
+ $Yc = sin(($i-90)*PI/180) * $Radius*$SkewFactor + $Y;
+
+ if ( ($SecondPass || $RestoreShadow ) && ( $i<90 )) { $Yc++; }
+ if ( ($SecondPass || $RestoreShadow ) && ( $i>90 && $i<180 )) { $Xc++; }
+ if ( ($SecondPass || $RestoreShadow ) && ( $i>180 && $i<270 )) { $Xc++; }
+ if ( ($SecondPass || $RestoreShadow ) && ( $i>=270 )) { $Xc++; $Yc++; }
+
+ $Slices[$Slice][] = $Xc; $Slices[$Slice][] = $Yc; $SliceAngle[$Slice][] = $i;
+ }
+
+ $Offset = $i - $DataGapAngle; $ID--; $Slice++;
+ }
+
+ /* Draw the bottom shadow if needed */
+ if ( $RestoreShadow && ($this->pChartObject->ShadowX != 0 || $this->pChartObject->ShadowY !=0 ))
+ {
+ foreach($Slices as $SliceID => $Plots)
+ {
+ $ShadowPie = "";
+ for($i=0;$i<count($Plots);$i=$i+2)
+ { $ShadowPie[] = $Plots[$i]+$this->pChartObject->ShadowX; $ShadowPie[] = $Plots[$i+1]+$this->pChartObject->ShadowY; }
+
+ $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa,"NoBorder"=>TRUE);
+ $this->pChartObject->drawPolygon($ShadowPie,$Settings);
+ }
+
+ $Step = 360 / (2 * PI * $Radius);
+ $Offset = 360;
+ foreach($Values as $Key => $Value)
+ {
+ $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+ for($i=$Offset;$i>=$EndAngle;$i=$i-$Step)
+ {
+ $Xc = cos(($i-90)*PI/180) * $Radius + $X + $this->pChartObject->ShadowX;
+ $Yc = sin(($i-90)*PI/180) * $Radius*$SkewFactor + $Y + $this->pChartObject->ShadowY;
+
+ $this->pChartObject->drawAntialiasPixel($Xc,$Yc,$Settings);
+ }
+
+ $Offset = $i - $DataGapAngle; $ID--;
+ }
+ }
+
+ /* Draw the bottom pie splice */
+ foreach($Slices as $SliceID => $Plots)
+ {
+ $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
+ $this->pChartObject->drawPolygon($Plots,$Settings);
+
+ if ( $SecondPass )
+ {
+ $Settings = $SliceColors[$SliceID];
+ if ( $Border )
+ { $Settings["R"]+= 30; $Settings["G"]+= 30; $Settings["B"]+= 30;; }
+
+ if ( isset($SliceAngle[$SliceID][1]) ) /* Empty error handling */
+ {
+ $Angle = $SliceAngle[$SliceID][1];
+ $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+ $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y;
+ $this->pChartObject->drawLine($Plots[0],$Plots[1],$Xc,$Yc,$Settings);
+
+ $Angle = $SliceAngle[$SliceID][count($SliceAngle[$SliceID])-1];
+ $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+ $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y;
+ $this->pChartObject->drawLine($Plots[0],$Plots[1],$Xc,$Yc,$Settings);
+ }
+ }
+ }
+
+ /* Draw the two vertical edges */
+ $Slices = array_reverse($Slices);
+ $SliceColors = array_reverse($SliceColors);
+ foreach($Slices as $SliceID => $Plots)
+ {
+ $Settings = $SliceColors[$SliceID];
+ $Settings["R"]+= 10; $Settings["G"]+= 10; $Settings["B"]+= 10; $Settings["NoBorder"] = TRUE;
+
+ if ( $Visible[$SliceID]["Start"] && isset($Plots[2])) /* Empty error handling */
+ {
+ $this->pChartObject->drawLine($Plots[2],$Plots[3],$Plots[2],$Plots[3]- $SliceHeight,array("R"=>$Settings["R"],"G"=>$Settings["G"],"B"=>$Settings["B"]));
+ $Border = "";
+ $Border[] = $Plots[0]; $Border[] = $Plots[1]; $Border[] = $Plots[0]; $Border[] = $Plots[1] - $SliceHeight;
+ $Border[] = $Plots[2]; $Border[] = $Plots[3] - $SliceHeight; $Border[] = $Plots[2]; $Border[] = $Plots[3];
+ $this->pChartObject->drawPolygon($Border,$Settings);
+ }
+ }
+
+ $Slices = array_reverse($Slices);
+ $SliceColors = array_reverse($SliceColors);
+ foreach($Slices as $SliceID => $Plots)
+ {
+ $Settings = $SliceColors[$SliceID];
+ $Settings["R"]+= 10; $Settings["G"]+= 10; $Settings["B"]+= 10; $Settings["NoBorder"] = TRUE;
+ if ( $Visible[$SliceID]["End"] )
+ {
+ $this->pChartObject->drawLine($Plots[count($Plots)-2],$Plots[count($Plots)-1],$Plots[count($Plots)-2],$Plots[count($Plots)-1]- $SliceHeight,array("R"=>$Settings["R"],"G"=>$Settings["G"],"B"=>$Settings["B"]));
+
+ $Border = "";
+ $Border[] = $Plots[0]; $Border[] = $Plots[1]; $Border[] = $Plots[0]; $Border[] = $Plots[1] - $SliceHeight;
+ $Border[] = $Plots[count($Plots)-2]; $Border[] = $Plots[count($Plots)-1] - $SliceHeight; $Border[] = $Plots[count($Plots)-2]; $Border[] = $Plots[count($Plots)-1];
+ $this->pChartObject->drawPolygon($Border,$Settings);
+ }
+ }
+
+ /* Draw the rounded edges */
+ foreach($Slices as $SliceID => $Plots)
+ {
+ $Settings = $SliceColors[$SliceID];
+ $Settings["R"]+= 10; $Settings["G"]+= 10; $Settings["B"]+= 10; $Settings["NoBorder"] = TRUE;
+
+ for ($j=2;$j<count($Plots)-2;$j=$j+2)
+ {
+ $Angle = $SliceAngle[$SliceID][$j/2];
+ if ( $Angle < 270 && $Angle > 90 )
+ {
+ $Border = "";
+ $Border[] = $Plots[$j]; $Border[] = $Plots[$j+1];
+ $Border[] = $Plots[$j+2]; $Border[] = $Plots[$j+3];
+ $Border[] = $Plots[$j+2]; $Border[] = $Plots[$j+3] - $SliceHeight;
+ $Border[] = $Plots[$j]; $Border[] = $Plots[$j+1] - $SliceHeight;
+ $this->pChartObject->drawPolygon($Border,$Settings);
+ }
+ }
+
+ if ( $SecondPass )
+ {
+ $Settings = $SliceColors[$SliceID];
+ if ( $Border )
+ { $Settings["R"]+= 30; $Settings["G"]+= 30; $Settings["B"]+= 30; }
+
+ if ( isset($SliceAngle[$SliceID][1]) ) /* Empty error handling */
+ {
+ $Angle = $SliceAngle[$SliceID][1];
+ if ( $Angle < 270 && $Angle > 90 )
+ {
+ $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+ $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y;
+ $this->pChartObject->drawLine($Xc,$Yc,$Xc,$Yc-$SliceHeight,$Settings);
+ }
+ }
+
+ $Angle = $SliceAngle[$SliceID][count($SliceAngle[$SliceID])-1];
+ if ( $Angle < 270 && $Angle > 90 )
+ {
+ $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+ $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y;
+ $this->pChartObject->drawLine($Xc,$Yc,$Xc,$Yc-$SliceHeight,$Settings);
+ }
+
+ if ( isset($SliceAngle[$SliceID][1]) && $SliceAngle[$SliceID][1] > 270 && $SliceAngle[$SliceID][count($SliceAngle[$SliceID])-1] < 270 )
+ {
+ $Xc = cos((270-90)*PI/180) * $Radius + $X;
+ $Yc = sin((270-90)*PI/180) * $Radius*$SkewFactor + $Y;
+ $this->pChartObject->drawLine($Xc,$Yc,$Xc,$Yc-$SliceHeight,$Settings);
+ }
+
+ if ( isset($SliceAngle[$SliceID][1]) && $SliceAngle[$SliceID][1] > 90 && $SliceAngle[$SliceID][count($SliceAngle[$SliceID])-1] < 90 )
+ {
+ $Xc = cos((0)*PI/180) * $Radius + $X;
+ $Yc = sin((0)*PI/180) * $Radius*$SkewFactor + $Y;
+ $this->pChartObject->drawLine($Xc,$Yc,$Xc,$Yc-$SliceHeight,$Settings);
+ }
+
+ }
+ }
+
+ /* Draw the top splice */
+ foreach($Slices as $SliceID => $Plots)
+ {
+ $Settings = $SliceColors[$SliceID];
+ $Settings["R"]+= 20; $Settings["G"]+= 20; $Settings["B"]+= 20;
+
+ $Top = "";
+ for($j=0;$j<count($Plots);$j=$j+2) { $Top[] = $Plots[$j]; $Top[] = $Plots[$j+1]- $SliceHeight; }
+ $this->pChartObject->drawPolygon($Top,$Settings);
+
+ if ( $RecordImageMap && !$Shadow ) { $this->pChartObject->addToImageMap("POLY",$this->arraySerialize($Top),$this->pChartObject->toHTMLColor($Settings["R"],$Settings["G"],$Settings["B"]),$Data["Series"][$Data["Abscissa"]]["Data"][count($Slices)-$SliceID-1],$Values[$SliceID]); }
+ }
+
+
+ /* Second pass to smooth the angles */
+ if ( $SecondPass )
+ {
+ $Step = 360 / (2 * PI * $Radius);
+ $Offset = 360; $ID = count($Values)-1;
+ foreach($Values as $Key => $Value)
+ {
+ $FirstPoint = TRUE;
+ if ( $Shadow )
+ $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa);
+ else
+ {
+ if ( $Border )
+ { $Settings = array("R"=>$Palette[$ID]["R"]+30,"G"=>$Palette[$ID]["G"]+30,"B"=>$Palette[$ID]["B"]+30,"Alpha"=>$Palette[$ID]["Alpha"]); }
+ else
+ $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
+ }
+
+ $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+ if ($DataGapAngle == 0)
+ { $X0 = $X; $Y0 = $Y- $SliceHeight; }
+ else
+ {
+ $Angle = ($EndAngle - $Offset)/2 + $Offset;
+ $X0 = cos(($Angle-90)*PI/180) * $DataGapRadius + $X;
+ $Y0 = sin(($Angle-90)*PI/180) * $DataGapRadius*$SkewFactor + $Y - $SliceHeight;
+ }
+ $Plots[] = $X0; $Plots[] = $Y0;
+
+ for($i=$Offset;$i>=$EndAngle;$i=$i-$Step)
+ {
+ $Xc = cos(($i-90)*PI/180) * $Radius + $X;
+ $Yc = sin(($i-90)*PI/180) * $Radius*$SkewFactor + $Y - $SliceHeight;
+
+ if ( $FirstPoint ) { $this->pChartObject->drawLine($Xc,$Yc,$X0,$Y0,$Settings); } { $FirstPoint = FALSE; }
+
+ $this->pChartObject->drawAntialiasPixel($Xc,$Yc,$Settings);
+ if ($i < 270 && $i > 90 ) { $this->pChartObject->drawAntialiasPixel($Xc,$Yc+$SliceHeight,$Settings); }
+ }
+ $this->pChartObject->drawLine($Xc,$Yc,$X0,$Y0,$Settings);
+
+ $Offset = $i - $DataGapAngle; $ID--;
+ }
+ }
+
+ if ( $WriteValues != NULL )
+ {
+ $Step = 360 / (2 * PI * $Radius);
+ $Offset = 360; $ID = count($Values)-1;
+ $Settings = array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE,"R"=>$ValueR,"G"=>$ValueG,"B"=>$ValueB,"Alpha"=>$ValueAlpha);
+ foreach($Values as $Key => $Value)
+ {
+ $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+ $Angle = ($EndAngle - $Offset)/2 + $Offset;
+
+ if ( $ValuePosition == PIE_VALUE_OUTSIDE )
+ {
+ $Xc = cos(($Angle-90)*PI/180) * ($Radius+$ValuePadding) + $X;
+ $Yc = sin(($Angle-90)*PI/180) * (($Radius*$SkewFactor)+$ValuePadding) + $Y - $SliceHeight;
+ }
+ else
+ {
+ $Xc = cos(($Angle-90)*PI/180) * ($Radius)/2 + $X;
+ $Yc = sin(($Angle-90)*PI/180) * ($Radius*$SkewFactor)/2 + $Y - $SliceHeight;
+ }
+
+ if ( $WriteValues == PIE_VALUE_PERCENTAGE )
+ $Display = round(( 100 / $SerieSum ) * $Value,$Precision)."%";
+ elseif ( $WriteValues == PIE_VALUE_NATURAL )
+ $Display = $Value.$ValueSuffix;
+
+ $this->pChartObject->drawText($Xc,$Yc,$Display,$Settings);
+
+ $Offset = $EndAngle - $DataGapAngle; $ID--;
+ }
+ }
+
+ if ( $DrawLabels )
+ {
+ $Step = 360 / (2 * PI * $Radius);
+ $Offset = 360; $ID = count($Values)-1;
+ foreach($Values as $Key => $Value)
+ {
+ if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
+ { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
+ else
+ { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
+
+ $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+ $Angle = ($EndAngle - $Offset)/2 + $Offset;
+ $Xc = cos(($Angle-90)*PI/180) * $Radius + $X;
+ $Yc = sin(($Angle-90)*PI/180) * $Radius*$SkewFactor + $Y - $SliceHeight;
+
+ if ( isset($Data["Series"][$Data["Abscissa"]]["Data"][$ID]) )
+ {
+ $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$ID];
+
+ if ( $LabelStacked )
+ $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,TRUE,$X,$Y,$Radius,TRUE);
+ else
+ $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,FALSE);
+ }
+
+ $Offset = $EndAngle - $DataGapAngle; $ID--;
+ }
+ }
+
+ if ( $DrawLabels && $LabelStacked ) { $this->writeShiftedLabels(); }
+
+ $this->pChartObject->Shadow = $RestoreShadow;
+
+ return(PIE_RENDERED);
+ }
+
+ /* Draw the legend of pie chart */
+ function drawPieLegend($X,$Y,$Format="")
+ {
+ $FontName = isset($Format["FontName"]) ? $Format["FontName"] : $this->pChartObject->FontName;
+ $FontSize = isset($Format["FontSize"]) ? $Format["FontSize"] : $this->pChartObject->FontSize;
+ $FontR = isset($Format["FontR"]) ? $Format["FontR"] : $this->pChartObject->FontColorR;
+ $FontG = isset($Format["FontG"]) ? $Format["FontG"] : $this->pChartObject->FontColorG;
+ $FontB = isset($Format["FontB"]) ? $Format["FontB"] : $this->pChartObject->FontColorB;
+ $BoxSize = isset($Format["BoxSize"]) ? $Format["BoxSize"] : 5;
+ $Margin = isset($Format["Margin"]) ? $Format["Margin"] : 5;
+ $R = isset($Format["R"]) ? $Format["R"] : 200;
+ $G = isset($Format["G"]) ? $Format["G"] : 200;
+ $B = isset($Format["B"]) ? $Format["B"] : 200;
+ $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+ $BorderR = isset($Format["BorderR"]) ? $Format["BorderR"] : 255;
+ $BorderG = isset($Format["BorderG"]) ? $Format["BorderG"] : 255;
+ $BorderB = isset($Format["BorderB"]) ? $Format["BorderB"] : 255;
+ $Surrounding = isset($Format["Surrounding"]) ? $Format["Surrounding"] : NULL;
+ $Style = isset($Format["Style"]) ? $Format["Style"] : LEGEND_ROUND;
+ $Mode = isset($Format["Mode"]) ? $Format["Mode"] : LEGEND_VERTICAL;
+
+ if ( $Surrounding != NULL ) { $BorderR = $R + $Surrounding; $BorderG = $G + $Surrounding; $BorderB = $B + $Surrounding; }
+
+ $YStep = max($this->pChartObject->FontSize,$BoxSize) + 5;
+ $XStep = $BoxSize + 5;
+
+ /* Data Processing */
+ $Data = $this->pDataObject->getData();
+ $Palette = $this->pDataObject->getPalette();
+
+ /* Do we have an abscissa serie defined? */
+ if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
+
+ $Boundaries = ""; $Boundaries["L"] = $X; $Boundaries["T"] = $Y; $Boundaries["R"] = 0; $Boundaries["B"] = 0; $vY = $Y; $vX = $X;
+ foreach($Data["Series"][$Data["Abscissa"]]["Data"] as $Key => $Value)
+ {
+ $BoxArray = $this->pChartObject->getTextBox($vX+$BoxSize+4,$vY+$BoxSize/2,$FontName,$FontSize,0,$Value);
+
+ if ( $Mode == LEGEND_VERTICAL )
+ {
+ if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$BoxSize/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$BoxSize/2; }
+ if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
+ if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$BoxSize/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$BoxSize/2; }
+ $vY=$vY+$YStep;
+ }
+ elseif ( $Mode == LEGEND_HORIZONTAL )
+ {
+ if ( $Boundaries["T"] > $BoxArray[2]["Y"]+$BoxSize/2 ) { $Boundaries["T"] = $BoxArray[2]["Y"]+$BoxSize/2; }
+ if ( $Boundaries["R"] < $BoxArray[1]["X"]+2 ) { $Boundaries["R"] = $BoxArray[1]["X"]+2; }
+ if ( $Boundaries["B"] < $BoxArray[1]["Y"]+2+$BoxSize/2 ) { $Boundaries["B"] = $BoxArray[1]["Y"]+2+$BoxSize/2; }
+ $vX=$Boundaries["R"]+$XStep;
+ }
+ }
+ $vY=$vY-$YStep; $vX=$vX-$XStep;
+
+ $TopOffset = $Y - $Boundaries["T"];
+ if ( $Boundaries["B"]-($vY+$BoxSize) < $TopOffset ) { $Boundaries["B"] = $vY+$BoxSize+$TopOffset; }
+
+ if ( $Style == LEGEND_ROUND )
+ $this->pChartObject->drawRoundedFilledRectangle($Boundaries["L"]-$Margin,$Boundaries["T"]-$Margin,$Boundaries["R"]+$Margin,$Boundaries["B"]+$Margin,$Margin,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB));
+ elseif ( $Style == LEGEND_BOX )
+ $this->pChartObject->drawFilledRectangle($Boundaries["L"]-$Margin,$Boundaries["T"]-$Margin,$Boundaries["R"]+$Margin,$Boundaries["B"]+$Margin,array("R"=>$R,"G"=>$G,"B"=>$B,"Alpha"=>$Alpha,"BorderR"=>$BorderR,"BorderG"=>$BorderG,"BorderB"=>$BorderB));
+
+ $RestoreShadow = $this->pChartObject->Shadow; $this->pChartObject->Shadow = FALSE;
+ foreach($Data["Series"][$Data["Abscissa"]]["Data"] as $Key => $Value)
+ {
+ $R = $Palette[$Key]["R"]; $G = $Palette[$Key]["G"]; $B = $Palette[$Key]["B"];
+
+ $this->pChartObject->drawFilledRectangle($X+1,$Y+1,$X+$BoxSize+1,$Y+$BoxSize+1,array("R"=>0,"G"=>0,"B"=>0,"Alpha"=>20));
+ $this->pChartObject->drawFilledRectangle($X,$Y,$X+$BoxSize,$Y+$BoxSize,array("R"=>$R,"G"=>$G,"B"=>$B,"Surrounding"=>20));
+ if ( $Mode == LEGEND_VERTICAL )
+ {
+ $this->pChartObject->drawText($X+$BoxSize+4,$Y+$BoxSize/2,$Value,array("R"=>$FontR,"G"=>$FontG,"B"=>$FontB,"Align"=>TEXT_ALIGN_MIDDLELEFT,"FontName"=>$FontName,"FontSize"=>$FontSize));
+ $Y=$Y+$YStep;
+ }
+ elseif ( $Mode == LEGEND_HORIZONTAL )
+ {
+ $BoxArray = $this->pChartObject->drawText($X+$BoxSize+4,$Y+$BoxSize/2,$Value,array("R"=>$FontR,"G"=>$FontG,"B"=>$FontB,"Align"=>TEXT_ALIGN_MIDDLELEFT,"FontName"=>$FontName,"FontSize"=>$FontSize));
+ $X=$BoxArray[1]["X"]+2+$XStep;
+ }
+ }
+
+ $this->Shadow = $RestoreShadow;
+ }
+
+ /* Set the color of the specified slice */
+ function setSliceColor($SliceID,$Format="")
+ {
+ $R = isset($Format["R"]) ? $Format["R"] : 0;
+ $G = isset($Format["G"]) ? $Format["G"] : 0;
+ $B = isset($Format["B"]) ? $Format["B"] : 0;
+ $Alpha = isset($Format["Alpha"]) ? $Format["Alpha"] : 100;
+
+ $this->pDataObject->Palette[$SliceID]["R"] = $R;
+ $this->pDataObject->Palette[$SliceID]["G"] = $G;
+ $this->pDataObject->Palette[$SliceID]["B"] = $B;
+ $this->pDataObject->Palette[$SliceID]["Alpha"] = $Alpha;
+ }
+
+ /* Internally used compute the label positions */
+ function writePieLabel($X,$Y,$Label,$Angle,$Settings,$Stacked,$Xc=0,$Yc=0,$Radius=0,$Reversed=FALSE)
+ {
+ $LabelOffset = 30;
+ $FontName = $this->pChartObject->FontName;
+ $FontSize = $this->pChartObject->FontSize;
+
+ if ( !$Stacked )
+ {
+ $Settings["Angle"] = 360-$Angle;
+ $Settings["Length"] = 25;
+ $Settings["Size"] = 8;
+
+ $this->pChartObject->drawArrowLabel($X,$Y," ".$Label." ",$Settings);
+ }
+ else
+ {
+ $X2 = cos(deg2rad($Angle-90))*20+$X;
+ $Y2 = sin(deg2rad($Angle-90))*20+$Y;
+
+ $TxtPos = $this->pChartObject->getTextBox($X,$Y,$FontName,$FontSize,0,$Label);
+ $Height = $TxtPos[0]["Y"] - $TxtPos[2]["Y"];
+ $YTop = $Y2 - $Height/2 - 2;
+ $YBottom = $Y2 + $Height/2 + 2;
+
+ if ( $this->LabelPos != "" )
+ {
+ $Done = FALSE;
+ foreach($this->LabelPos as $Key => $Settings)
+ {
+ if ( !$Done )
+ {
+ if ( $Angle <= 90 && (($YTop >= $Settings["YTop"] && $YTop <= $Settings["YBottom"]) || ($YBottom >= $Settings["YTop"] && $YBottom <= $Settings["YBottom"])))
+ { $this->shift(0,180,-($Height+2),$Reversed); $Done = TRUE; }
+ if ( $Angle > 90 && $Angle <= 180 && (($YTop >= $Settings["YTop"] && $YTop <= $Settings["YBottom"]) || ($YBottom >= $Settings["YTop"] && $YBottom <= $Settings["YBottom"])))
+ { $this->shift(0,180,-($Height+2),$Reversed); $Done = TRUE; }
+ if ( $Angle > 180 && $Angle <= 270 && (($YTop >= $Settings["YTop"] && $YTop <= $Settings["YBottom"]) || ($YBottom >= $Settings["YTop"] && $YBottom <= $Settings["YBottom"])))
+ { $this->shift(180,360,($Height+2),$Reversed); $Done = TRUE; }
+ if ( $Angle > 270 && $Angle <= 360 && (($YTop >= $Settings["YTop"] && $YTop <= $Settings["YBottom"]) || ($YBottom >= $Settings["YTop"] && $YBottom <= $Settings["YBottom"])))
+ { $this->shift(180,360,($Height+2),$Reversed); $Done = TRUE; }
+ }
+ }
+ }
+
+ $LabelSettings = array("YTop"=>$YTop,"YBottom"=>$YBottom,"Label"=>$Label,"Angle"=>$Angle,"X1"=>$X,"Y1"=>$Y,"X2"=>$X2,"Y2"=>$Y2);
+ if ( $Angle <= 180 ) { $LabelSettings["X3"] = $Xc+$Radius+$LabelOffset; }
+ if ( $Angle > 180 ) { $LabelSettings["X3"] = $Xc-$Radius-$LabelOffset; }
+ $this->LabelPos[] = $LabelSettings;
+ }
+ }
+
+ /* Internally used to shift label positions */
+ function shift($StartAngle,$EndAngle,$Offset,$Reversed)
+ {
+ if ( $Reversed ) { $Offset = -$Offset; }
+ foreach($this->LabelPos as $Key => $Settings)
+ {
+ if ( $Settings["Angle"] > $StartAngle && $Settings["Angle"] <= $EndAngle ) { $this->LabelPos[$Key]["YTop"] = $Settings["YTop"] + $Offset; $this->LabelPos[$Key]["YBottom"] = $Settings["YBottom"] + $Offset; $this->LabelPos[$Key]["Y2"] = $Settings["Y2"] + $Offset; }
+ }
+ }
+
+ /* Internally used to write the re-computed labels */
+ function writeShiftedLabels()
+ {
+ if ( $this->LabelPos == "" ) { return(0); }
+ foreach($this->LabelPos as $Key => $Settings)
+ {
+ $X1 = $Settings["X1"]; $Y1 = $Settings["Y1"];
+ $X2 = $Settings["X2"]; $Y2 = $Settings["Y2"];
+ $X3 = $Settings["X3"];
+ $Angle = $Settings["Angle"];
+ $Label = $Settings["Label"];
+
+ $this->pChartObject->drawArrow($X2,$Y2,$X1,$Y1,array("Size"=>8));
+ if ( $Angle <= 180 )
+ {
+ $this->pChartObject->drawLine($X2,$Y2,$X3,$Y2);
+ $this->pChartObject->drawText($X3+2,$Y2,$Label,array("Align"=>TEXT_ALIGN_MIDDLELEFT));
+ }
+ else
+ {
+ $this->pChartObject->drawLine($X2,$Y2,$X3,$Y2);
+ $this->pChartObject->drawText($X3-2,$Y2,$Label,array("Align"=>TEXT_ALIGN_MIDDLERIGHT));
+ }
+ }
+ }
+
+ /* Draw a ring chart */
+ function draw2DRing($X,$Y,$Format="")
+ {
+ $OuterRadius = isset($Format["Radius"]) ? $Format["Radius"] : 60;
+ $Precision = isset($Format["Precision"]) ? $Format["Precision"] : 0;
+ $InnerRadius = isset($Format["Radius"]) ? $Format["Radius"] : 30;
+ $Border = isset($Format["Border"]) ? $Format["Border"] : FALSE;
+ $BorderR = isset($Format["BorderR"]) ? $Format["BorderR"] : 255;
+ $BorderG = isset($Format["BorderG"]) ? $Format["BorderG"] : 255;
+ $BorderB = isset($Format["BorderB"]) ? $Format["BorderB"] : 255;
+ $BorderAlpha = isset($Format["BorderAlpha"]) ? $Format["BorderAlpha"] : 100;
+ $Shadow = isset($Format["Shadow"]) ? $Format["Shadow"] : FALSE;
+ $DrawLabels = isset($Format["DrawLabels"]) ? $Format["DrawLabels"] : FALSE;
+ $LabelStacked = isset($Format["LabelStacked"]) ? $Format["LabelStacked"] : FALSE;
+ $LabelColor = isset($Format["LabelColor"]) ? $Format["LabelColor"] : PIE_LABEL_COLOR_MANUAL;
+ $LabelR = isset($Format["LabelR"]) ? $Format["LabelR"] : 0;
+ $LabelG = isset($Format["LabelG"]) ? $Format["LabelG"] : 0;
+ $LabelB = isset($Format["LabelB"]) ? $Format["LabelB"] : 0;
+ $LabelAlpha = isset($Format["LabelAlpha"]) ? $Format["LabelAlpha"] : 100;
+ $WriteValues = isset($Format["WriteValues"]) ? $Format["WriteValues"] : NULL; //PIE_VALUE_PERCENTAGE
+ $ValuePadding = isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : 5;
+ $ValuePosition = isset($Format["ValuePosition"]) ? $Format["ValuePosition"] : PIE_VALUE_OUTSIDE;
+ $ValueSuffix = isset($Format["ValueSuffix"]) ? $Format["ValueSuffix"] : "";
+ $ValueR = isset($Format["ValueR"]) ? $Format["ValueR"] : 255;
+ $ValueG = isset($Format["ValueG"]) ? $Format["ValueG"] : 255;
+ $ValueB = isset($Format["ValueB"]) ? $Format["ValueB"] : 255;
+ $ValueAlpha = isset($Format["ValueAlpha"]) ? $Format["ValueAlpha"] : 100;
+ $RecordImageMap = isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+
+ /* Data Processing */
+ $Data = $this->pDataObject->getData();
+ $Palette = $this->pDataObject->getPalette();
+
+ /* Do we have an abscissa serie defined? */
+ if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
+
+ /* Try to find the data serie */
+ $DataSerie = "";
+ foreach ($Data["Series"] as $SerieName => $SerieData)
+ { if ( $SerieName != $Data["Abscissa"]) { $DataSerie = $SerieName; } }
+
+ /* Do we have data to compute? */
+ if ( $DataSerie == "" ) { return(PIE_NO_DATASERIE); }
+
+ /* Remove unused data */
+ list($Data,$Palette) = $this->clean0Values($Data,$Palette,$DataSerie,$Data["Abscissa"]);
+
+ /* Compute the pie sum */
+ $SerieSum = $this->pDataObject->getSum($DataSerie);
+
+ /* Do we have data to draw? */
+ if ( $SerieSum == 0 ) { return(PIE_SUMISNULL); }
+
+ /* Dump the real number of data to draw */
+ $Values = "";
+ foreach ($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
+ { if ($Value != 0) { $Values[] = $Value; } }
+
+ /* Compute the wasted angular space between series */
+ if (count($Values)==1) { $WastedAngular = 0; } else { $WastedAngular = 0; } // count($Values)
+
+ /* Compute the scale */
+ $ScaleFactor = (360 - $WastedAngular) / $SerieSum;
+
+ $RestoreShadow = $this->pChartObject->Shadow;
+ if ( $this->pChartObject->Shadow )
+ {
+ $this->pChartObject->Shadow = FALSE;
+
+ $ShadowFormat = $Format; $ShadowFormat["Shadow"] = TRUE;
+ $this->draw2DRing($X+$this->pChartObject->ShadowX,$Y+$this->pChartObject->ShadowY,$ShadowFormat);
+ }
+
+ /* Draw the polygon pie elements */
+ $Step = 360 / (2 * PI * $OuterRadius);
+ $Offset = 0; $ID = 0;
+ foreach($Values as $Key => $Value)
+ {
+ if ( $Shadow )
+ {
+ $Settings = array("R"=>$this->pChartObject->ShadowR,"G"=>$this->pChartObject->ShadowG,"B"=>$this->pChartObject->ShadowB,"Alpha"=>$this->pChartObject->Shadowa);
+ $BorderColor = $Settings;
+ }
+ else
+ {
+ if ( !isset($Palette[$ID]["R"]) ) { $Color = $this->pChartObject->getRandomColor(); $Palette[$ID] = $Color; $this->pDataObject->savePalette($ID,$Color); }
+ $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
+
+ if ( $Border )
+ $BorderColor = array("R"=>$BorderR,"G"=>$BorderG,"B"=>$BorderB,"Alpha"=>$BorderAlpha);
+ else
+ $BorderColor = $Settings;
+ }
+
+ $Plots = ""; $Boundaries = ""; $AAPixels = "";
+ $EndAngle = $Offset+($Value*$ScaleFactor); if ( $EndAngle > 360 ) { $EndAngle = 360; }
+ for($i=$Offset;$i<=$EndAngle;$i=$i+$Step)
+ {
+ $Xc = cos(($i-90)*PI/180) * $OuterRadius + $X;
+ $Yc = sin(($i-90)*PI/180) * $OuterRadius + $Y;
+
+ if ( !isset($Boundaries[0]["X1"]) ) { $Boundaries[0]["X1"] = $Xc; $Boundaries[0]["Y1"] = $Yc; }
+ $AAPixels[] = array($Xc,$Yc);
+
+ if ( $i<90 ) { $Yc++; }
+ if ( $i>180 && $i<270 ) { $Xc++; }
+ if ( $i>=270 ) { $Xc++; $Yc++; }
+
+ $Plots[] = $Xc; $Plots[] = $Yc;
+ }
+ $Boundaries[1]["X1"] = $Xc; $Boundaries[1]["Y1"] = $Yc;
+ $Lasti = $EndAngle;
+
+ for($i=$EndAngle;$i>=$Offset;$i=$i-$Step)
+ {
+ $Xc = cos(($i-90)*PI/180) * ($InnerRadius-1) + $X;
+ $Yc = sin(($i-90)*PI/180) * ($InnerRadius-1) + $Y;
+
+ if ( !isset($Boundaries[1]["X2"]) ) { $Boundaries[1]["X2"] = $Xc; $Boundaries[1]["Y2"] = $Yc; }
+ $AAPixels[] = array($Xc,$Yc);
+
+ $Xc = cos(($i-90)*PI/180) * $InnerRadius + $X;
+ $Yc = sin(($i-90)*PI/180) * $InnerRadius + $Y;
+
+ if ( $i<90 ) { $Yc++; }
+ if ( $i>180 && $i<270 ) { $Xc++; }
+ if ( $i>=270 ) { $Xc++; $Yc++; }
+
+ $Plots[] = $Xc; $Plots[] = $Yc;
+ }
+ $Boundaries[0]["X2"] = $Xc; $Boundaries[0]["Y2"] = $Yc;
+
+ /* Draw the polygon */
+ $this->pChartObject->drawPolygon($Plots,$Settings);
+ if ( $RecordImageMap && !$Shadow ) { $this->pChartObject->addToImageMap("POLY",$this->arraySerialize($Plots),$this->pChartObject->toHTMLColor($Palette[$ID]["R"],$Palette[$ID]["G"],$Palette[$ID]["B"]),$Data["Series"][$Data["Abscissa"]]["Data"][$Key],$Value); }
+
+ /* Smooth the edges using AA */
+ foreach($AAPixels as $iKey => $Pos ) { $this->pChartObject->drawAntialiasPixel($Pos[0],$Pos[1],$BorderColor); }
+ $this->pChartObject->drawLine($Boundaries[0]["X1"],$Boundaries[0]["Y1"],$Boundaries[0]["X2"],$Boundaries[0]["Y2"],$BorderColor);
+ $this->pChartObject->drawLine($Boundaries[1]["X1"],$Boundaries[1]["Y1"],$Boundaries[1]["X2"],$Boundaries[1]["Y2"],$BorderColor);
+
+ if ( $DrawLabels && !$Shadow )
+ {
+ if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
+ { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
+ else
+ { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
+
+ $Angle = ($EndAngle - $Offset)/2 + $Offset;
+ $Xc = cos(($Angle-90)*PI/180) * $OuterRadius + $X;
+ $Yc = sin(($Angle-90)*PI/180) * $OuterRadius + $Y;
+
+ $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$Key];
+
+ if ( $LabelStacked )
+ $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,TRUE,$X,$Y,$OuterRadius);
+ else
+ $this->writePieLabel($Xc,$Yc,$Label,$Angle,$Settings,FALSE);
+ }
+
+ $Offset = $Lasti; $ID++;
+ }
+
+ if ( $DrawLabels && $LabelStacked ) { $this->writeShiftedLabels(); }
+
+ if ( $WriteValues && !$Shadow )
+ {
+ $Step = 360 / (2 * PI * $OuterRadius);
+ $Offset = 0;
+ foreach($Values as $Key => $Value)
+ {
+ $EndAngle = $Offset+($Value*$ScaleFactor);
+ if ( $EndAngle > 360 ) { $EndAngle = 360; }
+
+ $Angle = $Offset+($Value*$ScaleFactor)/2;
+ if ( $ValuePosition == PIE_VALUE_OUTSIDE )
+ {
+ $Xc = cos(($Angle-90)*PI/180) * ($OuterRadius+$ValuePadding) + $X;
+ $Yc = sin(($Angle-90)*PI/180) * ($OuterRadius+$ValuePadding) + $Y;
+ if ( $Angle >=0 && $Angle <= 90 ) { $Align = TEXT_ALIGN_BOTTOMLEFT; }
+ if ( $Angle > 90 && $Angle <= 180 ) { $Align = TEXT_ALIGN_TOPLEFT; }
+ if ( $Angle > 180 && $Angle <= 270 ) { $Align = TEXT_ALIGN_TOPRIGHT; }
+ if ( $Angle > 270 ) { $Align = TEXT_ALIGN_BOTTOMRIGHT; }
+ }
+ else
+ {
+ $Xc = cos(($Angle-90)*PI/180) * (($OuterRadius-$InnerRadius)/2+$InnerRadius) + $X;
+ $Yc = sin(($Angle-90)*PI/180) * (($OuterRadius-$InnerRadius)/2+$InnerRadius) + $Y;
+ $Align = TEXT_ALIGN_MIDDLEMIDDLE;
+ }
+
+ if ( $WriteValues == PIE_VALUE_PERCENTAGE )
+ $Display = round(( 100 / $SerieSum ) * $Value,$Precision)."%";
+ elseif ( $WriteValues == PIE_VALUE_NATURAL )
+ $Display = $Value.$ValueSuffix;
+ else
+ $Label = "";
+
+ $this->pChartObject->drawText($Xc,$Yc,$Display,array("Align"=>$Align,"R"=>$ValueR,"G"=>$ValueG,"B"=>$ValueB));
+ $Offset = $EndAngle;
+ }
+ }
+
+ $this->pChartObject->Shadow = $RestoreShadow;
+
+ return(PIE_RENDERED);
+ }
+
+ /* Draw a 3D ring chart */
+ function draw3DRing($X,$Y,$Format="")
+ {
+ $OuterRadius = isset($Format["OuterRadius"]) ? $Format["OuterRadius"] : 100;
+ $Precision = isset($Format["Precision"]) ? $Format["Precision"] : 0;
+ $InnerRadius = isset($Format["InnerRadius"]) ? $Format["InnerRadius"] : 30;
+ $SkewFactor = isset($Format["SkewFactor"]) ? $Format["SkewFactor"] : .6;
+ $SliceHeight = isset($Format["SliceHeight"]) ? $Format["SliceHeight"] : 10;
+ $DataGapAngle = isset($Format["DataGapAngle"]) ? $Format["DataGapAngle"] : 10;
+ $DataGapRadius = isset($Format["DataGapRadius"]) ? $Format["DataGapRadius"] : 10;
+ $Border = isset($Format["Border"]) ? $Format["Border"] : FALSE;
+ $Shadow = isset($Format["Shadow"]) ? $Format["Shadow"] : FALSE;
+ $DrawLabels = isset($Format["DrawLabels"]) ? $Format["DrawLabels"] : FALSE;
+ $LabelStacked = isset($Format["LabelStacked"]) ? $Format["LabelStacked"] : FALSE;
+ $LabelColor = isset($Format["LabelColor"]) ? $Format["LabelColor"] : PIE_LABEL_COLOR_MANUAL;
+ $LabelR = isset($Format["LabelR"]) ? $Format["LabelR"] : 0;
+ $LabelG = isset($Format["LabelG"]) ? $Format["LabelG"] : 0;
+ $LabelB = isset($Format["LabelB"]) ? $Format["LabelB"] : 0;
+ $LabelAlpha = isset($Format["LabelAlpha"]) ? $Format["LabelAlpha"] : 100;
+ $Cf = isset($Format["Cf"]) ? $Format["Cf"] : 20;
+ $WriteValues = isset($Format["WriteValues"]) ? $Format["WriteValues"] : PIE_VALUE_NATURAL;
+ $ValuePadding = isset($Format["ValuePadding"]) ? $Format["ValuePadding"] : $SliceHeight + 15;
+ $ValuePosition = isset($Format["ValuePosition"]) ? $Format["ValuePosition"] : PIE_VALUE_OUTSIDE;
+ $ValueSuffix = isset($Format["ValueSuffix"]) ? $Format["ValueSuffix"] : "";
+ $ValueR = isset($Format["ValueR"]) ? $Format["ValueR"] : 255;
+ $ValueG = isset($Format["ValueG"]) ? $Format["ValueG"] : 255;
+ $ValueB = isset($Format["ValueB"]) ? $Format["ValueB"] : 255;
+ $ValueAlpha = isset($Format["ValueAlpha"]) ? $Format["ValueAlpha"] : 100;
+ $RecordImageMap = isset($Format["RecordImageMap"]) ? $Format["RecordImageMap"] : FALSE;
+
+ /* Error correction for overlaying rounded corners */
+ if ( $SkewFactor < .5 ) { $SkewFactor = .5; }
+
+ /* Data Processing */
+ $Data = $this->pDataObject->getData();
+ $Palette = $this->pDataObject->getPalette();
+
+ /* Do we have an abscissa serie defined? */
+ if ( $Data["Abscissa"] == "" ) { return(PIE_NO_ABSCISSA); }
+
+ /* Try to find the data serie */
+ $DataSerie = "";
+ foreach ($Data["Series"] as $SerieName => $SerieData)
+ { if ( $SerieName != $Data["Abscissa"]) { $DataSerie = $SerieName; } }
+
+ /* Do we have data to compute? */
+ if ( $DataSerie == "" ) { return(PIE_NO_DATASERIE); }
+
+ /* Remove unused data */
+ list($Data,$Palette) = $this->clean0Values($Data,$Palette,$DataSerie,$Data["Abscissa"]);
+
+ /* Compute the pie sum */
+ $SerieSum = $this->pDataObject->getSum($DataSerie);
+
+ /* Do we have data to draw? */
+ if ( $SerieSum == 0 ) { return(PIE_SUMISNULL); }
+
+ /* Dump the real number of data to draw */
+ $Values = "";
+ foreach ($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
+ { if ($Value != 0) { $Values[] = $Value; } }
+
+ /* Compute the wasted angular space between series */
+ if (count($Values)==1) { $WastedAngular = 0; } else { $WastedAngular = count($Values) * $DataGapAngle; }
+
+ /* Compute the scale */
+ $ScaleFactor = (360 - $WastedAngular) / $SerieSum;
+
+ $RestoreShadow = $this->pChartObject->Shadow;
+ if ( $this->pChartObject->Shadow ) { $this->pChartObject->Shadow = FALSE; }
+
+ /* Draw the polygon ring elements */
+ $Offset = 360; $ID = count($Values)-1;
+ $Values = array_reverse($Values);
+ $Slice = 0; $Slices = ""; $SliceColors = ""; $Visible = ""; $SliceAngle = "";
+ foreach($Values as $Key => $Value)
+ {
+ if ( !isset($Palette[$ID]["R"]) ) { $Color = $this->pChartObject->getRandomColor(); $Palette[$ID] = $Color; $this->pDataObject->savePalette($ID,$Color); }
+ $Settings = array("R"=>$Palette[$ID]["R"],"G"=>$Palette[$ID]["G"],"B"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);
+
+ $SliceColors[$Slice] = $Settings;
+
+ $StartAngle = $Offset;
+ $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+ if ( $StartAngle > 180 ) { $Visible[$Slice]["Start"] = TRUE; } else { $Visible[$Slice]["Start"] = TRUE; }
+ if ( $EndAngle < 180 ) { $Visible[$Slice]["End"] = FALSE; } else { $Visible[$Slice]["End"] = TRUE; }
+
+ $Step = (360 / (2 * PI * $OuterRadius))/2;
+ $OutX1 = VOID; $OutY1 = VOID;
+ for($i=$Offset;$i>=$EndAngle;$i=$i-$Step)
+ {
+ $Xc = cos(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius-2) + $X;
+ $Yc = sin(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius-2)*$SkewFactor + $Y;
+ $Slices[$Slice]["AA"][] = array($Xc,$Yc);
+
+ $Xc = cos(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius-1) + $X;
+ $Yc = sin(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius-1)*$SkewFactor + $Y;
+ $Slices[$Slice]["AA"][] = array($Xc,$Yc);
+
+ $Xc = cos(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius) + $X;
+ $Yc = sin(($i-90)*PI/180) * ($OuterRadius+$DataGapRadius)*$SkewFactor + $Y;
+ $this->pChartObject->drawAntialiasPixel($Xc,$Yc,$Settings);
+
+ if ( $OutX1 == VOID ) { $OutX1 = $Xc; $OutY1 = $Yc; }
+
+ if ( $i<90 ) { $Yc++; }
+ if ( $i>90 && $i<180 ) { $Xc++; }
+ if ( $i>180 && $i<270 ) { $Xc++; }
+ if ( $i>=270 ) { $Xc++; $Yc++; }
+
+ $Slices[$Slice]["BottomPoly"][] = floor($Xc); $Slices[$Slice]["BottomPoly"][] = floor($Yc);
+ $Slices[$Slice]["TopPoly"][] = floor($Xc); $Slices[$Slice]["TopPoly"][] = floor($Yc)-$SliceHeight;
+ $Slices[$Slice]["Angle"][] = $i;
+ }
+ $OutX2 = $Xc; $OutY2 = $Yc;
+
+ $Slices[$Slice]["Angle"][] = VOID;
+ $Lasti = $i;
+
+ $Step = (360 / (2 * PI * $InnerRadius))/2;
+ $InX1 = VOID; $InY1 = VOID;
+ for($i=$EndAngle;$i<=$Offset;$i=$i+$Step)
+ {
+ $Xc = cos(($i-90)*PI/180) * ($InnerRadius+$DataGapRadius-1) + $X;
+ $Yc = sin(($i-90)*PI/180) * ($InnerRadius+$DataGapRadius-1)*$SkewFactor + $Y;
+ $Slices[$Slice]["AA"][] = array($Xc,$Yc);
+
+ $Xc = cos(($i-90)*PI/180) * ($InnerRadius+$DataGapRadius) + $X;
+ $Yc = sin(($i-90)*PI/180) * ($InnerRadius+$DataGapRadius)*$SkewFactor + $Y;
+ $Slices[$Slice]["AA"][] = array($Xc,$Yc);
+
+ if ( $InX1 == VOID ) { $InX1 = $Xc; $InY1 = $Yc; }
+
+ if ( $i<90 ) { $Yc++; }
+ if ( $i>90 && $i<180 ) { $Xc++; }
+ if ( $i>180 && $i<270 ) { $Xc++; }
+ if ( $i>=270 ) { $Xc++; $Yc++; }
+
+ $Slices[$Slice]["BottomPoly"][] = floor($Xc); $Slices[$Slice]["BottomPoly"][] = floor($Yc);
+ $Slices[$Slice]["TopPoly"][] = floor($Xc); $Slices[$Slice]["TopPoly"][] = floor($Yc)-$SliceHeight;
+ $Slices[$Slice]["Angle"][] = $i;
+ }
+ $InX2 = $Xc; $InY2 = $Yc;
+
+ $Slices[$Slice]["InX1"] = $InX1; $Slices[$Slice]["InY1"] = $InY1;
+ $Slices[$Slice]["InX2"] = $InX2; $Slices[$Slice]["InY2"] = $InY2;
+ $Slices[$Slice]["OutX1"] = $OutX1; $Slices[$Slice]["OutY1"] = $OutY1;
+ $Slices[$Slice]["OutX2"] = $OutX2; $Slices[$Slice]["OutY2"] = $OutY2;
+
+ $Offset = $Lasti - $DataGapAngle; $ID--; $Slice++;
+ }
+
+ /* Draw the bottom pie splice */
+ foreach($Slices as $SliceID => $Plots)
+ {
+ $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
+ $this->pChartObject->drawPolygon($Plots["BottomPoly"],$Settings);
+
+ foreach($Plots["AA"] as $Key => $Pos)
+ $this->pChartObject->drawAntialiasPixel($Pos[0],$Pos[1],$Settings);
+
+ $this->pChartObject->drawLine($Plots["InX1"],$Plots["InY1"],$Plots["OutX2"],$Plots["OutY2"],$Settings);
+ $this->pChartObject->drawLine($Plots["InX2"],$Plots["InY2"],$Plots["OutX1"],$Plots["OutY1"],$Settings);
+ }
+
+ $Slices = array_reverse($Slices);
+ $SliceColors = array_reverse($SliceColors);
+
+ /* Draw the vertical edges (semi-visible) */
+ foreach($Slices as $SliceID => $Plots)
+ {
+ $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
+ $Settings["R"] = $Settings["R"]+$Cf; $Settings["G"] = $Settings["G"]+$Cf; $Settings["B"] = $Settings["B"]+$Cf;
+
+ $StartAngle = $Plots["Angle"][0];
+ foreach($Plots["Angle"] as $Key =>$Angle) { if ($Angle == VOID) { $EndAngle = $Plots["Angle"][$Key-1]; } }
+
+ if ( $StartAngle >= 270 || $StartAngle <= 90 )
+ $this->pChartObject->drawLine($Plots["OutX1"],$Plots["OutY1"],$Plots["OutX1"],$Plots["OutY1"]-$SliceHeight,$Settings);
+ if ( $StartAngle >= 270 || $StartAngle <= 90 )
+ $this->pChartObject->drawLine($Plots["OutX2"],$Plots["OutY2"],$Plots["OutX2"],$Plots["OutY2"]-$SliceHeight,$Settings);
+
+ $this->pChartObject->drawLine($Plots["InX1"],$Plots["InY1"],$Plots["InX1"],$Plots["InY1"]-$SliceHeight,$Settings);
+ $this->pChartObject->drawLine($Plots["InX2"],$Plots["InY2"],$Plots["InX2"],$Plots["InY2"]-$SliceHeight,$Settings);
+ }
+
+ /* Draw the inner vertical slices */
+ foreach($Slices as $SliceID => $Plots)
+ {
+ $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
+ $Settings["R"] = $Settings["R"]+$Cf; $Settings["G"] = $Settings["G"]+$Cf; $Settings["B"] = $Settings["B"]+$Cf;
+
+ $Outer = TRUE; $Inner = FALSE;
+ $InnerPlotsA = ""; $InnerPlotsB = "";
+ foreach($Plots["Angle"] as $ID => $Angle)
+ {
+ if ( $Angle == VOID )
+ { $Outer = FALSE; $Inner = TRUE; }
+ elseif( $Inner )
+ {
+ if (( $Angle < 90 || $Angle > 270 ) && isset($Plots["BottomPoly"][$ID*2]) )
+ {
+ $Xo = $Plots["BottomPoly"][$ID*2];
+ $Yo = $Plots["BottomPoly"][$ID*2+1];
+
+ $InnerPlotsA[] = $Xo; $InnerPlotsA[] = $Yo;
+ $InnerPlotsB[] = $Xo; $InnerPlotsB[] = $Yo-$SliceHeight;
+ }
+ }
+ }
+
+ if ( $InnerPlotsA != "" )
+ { $InnerPlots = array_merge($InnerPlotsA,$this->arrayReverse($InnerPlotsB)); $this->pChartObject->drawPolygon($InnerPlots,$Settings); }
+ }
+
+ /* Draw the splice top and left poly */
+ foreach($Slices as $SliceID => $Plots)
+ {
+ $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
+ $Settings["R"] = $Settings["R"]+$Cf*1.5; $Settings["G"] = $Settings["G"]+$Cf*1.5; $Settings["B"] = $Settings["B"]+$Cf*1.5;
+
+ $StartAngle = $Plots["Angle"][0];
+ foreach($Plots["Angle"] as $Key =>$Angle) { if ($Angle == VOID) { $EndAngle = $Plots["Angle"][$Key-1]; } }
+
+ if ( $StartAngle < 180 )
+ {
+ $Points = "";
+ $Points[] = $Plots["InX2"];
+ $Points[] = $Plots["InY2"];
+ $Points[] = $Plots["InX2"];
+ $Points[] = $Plots["InY2"]-$SliceHeight;
+ $Points[] = $Plots["OutX1"];
+ $Points[] = $Plots["OutY1"]-$SliceHeight;
+ $Points[] = $Plots["OutX1"];
+ $Points[] = $Plots["OutY1"];
+
+ $this->pChartObject->drawPolygon($Points,$Settings);
+ }
+
+ if ( $EndAngle > 180 )
+ {
+ $Points = "";
+ $Points[] = $Plots["InX1"];
+ $Points[] = $Plots["InY1"];
+ $Points[] = $Plots["InX1"];
+ $Points[] = $Plots["InY1"]-$SliceHeight;
+ $Points[] = $Plots["OutX2"];
+ $Points[] = $Plots["OutY2"]-$SliceHeight;
+ $Points[] = $Plots["OutX2"];
+ $Points[] = $Plots["OutY2"];
+
+ $this->pChartObject->drawPolygon($Points,$Settings);
+ }
+ }
+
+
+ /* Draw the vertical edges (visible) */
+ foreach($Slices as $SliceID => $Plots)
+ {
+ $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
+ $Settings["R"] = $Settings["R"]+$Cf; $Settings["G"] = $Settings["G"]+$Cf; $Settings["B"] = $Settings["B"]+$Cf;
+
+ $StartAngle = $Plots["Angle"][0];
+ foreach($Plots["Angle"] as $Key =>$Angle) { if ($Angle == VOID) { $EndAngle = $Plots["Angle"][$Key-1]; } }
+
+ if ( $StartAngle <= 270 && $StartAngle >= 90 )
+ $this->pChartObject->drawLine($Plots["OutX1"],$Plots["OutY1"],$Plots["OutX1"],$Plots["OutY1"]-$SliceHeight,$Settings);
+ if ( $EndAngle <= 270 && $EndAngle >= 90 )
+ $this->pChartObject->drawLine($Plots["OutX2"],$Plots["OutY2"],$Plots["OutX2"],$Plots["OutY2"]-$SliceHeight,$Settings);
+ }
+
+
+ /* Draw the outer vertical slices */
+ foreach($Slices as $SliceID => $Plots)
+ {
+ $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
+ $Settings["R"] = $Settings["R"]+$Cf; $Settings["G"] = $Settings["G"]+$Cf; $Settings["B"] = $Settings["B"]+$Cf;
+
+ $Outer = TRUE; $Inner = FALSE;
+ $OuterPlotsA = ""; $OuterPlotsB = ""; $InnerPlotsA = ""; $InnerPlotsB = "";
+ foreach($Plots["Angle"] as $ID => $Angle)
+ {
+ if ( $Angle == VOID )
+ { $Outer = FALSE; $Inner = TRUE; }
+ elseif( $Outer )
+ {
+ if ( ( $Angle > 90 && $Angle < 270 ) && isset($Plots["BottomPoly"][$ID*2]) )
+ {
+ $Xo = $Plots["BottomPoly"][$ID*2];
+ $Yo = $Plots["BottomPoly"][$ID*2+1];
+
+ $OuterPlotsA[] = $Xo; $OuterPlotsA[] = $Yo;
+ $OuterPlotsB[] = $Xo; $OuterPlotsB[] = $Yo-$SliceHeight;
+ }
+ }
+ }
+ if ( $OuterPlotsA != "" )
+ { $OuterPlots = array_merge($OuterPlotsA,$this->arrayReverse($OuterPlotsB)); $this->pChartObject->drawPolygon($OuterPlots,$Settings); }
+ }
+
+ $Slices = array_reverse($Slices);
+ $SliceColors = array_reverse($SliceColors);
+
+
+ /* Draw the top pie splice */
+ foreach($Slices as $SliceID => $Plots)
+ {
+ $Settings = $SliceColors[$SliceID]; $Settings["NoBorder"] = TRUE;
+ $Settings["R"] = $Settings["R"]+$Cf*2; $Settings["G"] = $Settings["G"]+$Cf*2; $Settings["B"] = $Settings["B"]+$Cf*2;
+
+ $this->pChartObject->drawPolygon($Plots["TopPoly"],$Settings);
+
+ if ( $RecordImageMap ) { $this->pChartObject->addToImageMap("POLY",$this->arraySerialize($Plots["TopPoly"]),$this->pChartObject->toHTMLColor($Settings["R"],$Settings["G"],$Settings["B"]),$Data["Series"][$Data["Abscissa"]]["Data"][$SliceID],$Data["Series"][$DataSerie]["Data"][count($Slices)-$SliceID-1]); }
+
+ foreach($Plots["AA"] as $Key => $Pos)
+ $this->pChartObject->drawAntialiasPixel($Pos[0],$Pos[1]-$SliceHeight,$Settings);
+
+ $this->pChartObject->drawLine($Plots["InX1"],$Plots["InY1"]-$SliceHeight,$Plots["OutX2"],$Plots["OutY2"]-$SliceHeight,$Settings);
+ $this->pChartObject->drawLine($Plots["InX2"],$Plots["InY2"]-$SliceHeight,$Plots["OutX1"],$Plots["OutY1"]-$SliceHeight,$Settings);
+ }
+
+ if ( $DrawLabels )
+ {
+ $Offset = 360;
+ foreach($Values as $Key => $Value)
+ {
+ $StartAngle = $Offset;
+ $EndAngle = $Offset-($Value*$ScaleFactor); if ( $EndAngle < 0 ) { $EndAngle = 0; }
+
+ if ( $LabelColor == PIE_LABEL_COLOR_AUTO )
+ { $Settings = array("FillR"=>$Palette[$ID]["R"],"FillG"=>$Palette[$ID]["G"],"FillB"=>$Palette[$ID]["B"],"Alpha"=>$Palette[$ID]["Alpha"]);}
+ else
+ { $Settings = array("FillR"=>$LabelR,"FillG"=>$LabelG,"FillB"=>$LabelB,"Alpha"=>$LabelAlpha); }
+
+ $Angle = ($EndAngle - $Offset)/2 + $Offset;
+ $Xc = cos(($Angle-90)*PI/180) * ($OuterRadius+$DataGapRadius) + $X;
+ $Yc = sin(($Angle-90)*PI/180) * ($OuterRadius+$DataGapRadius)*$SkewFactor + $Y;
+
+ if ( $WriteValues == PIE_VALUE_PERCENTAGE )
+ $Label = $Display = round(( 100 / $SerieSum ) * $Value,$Precision)."%";
+ elseif ( $WriteValues == PIE_VALUE_NATURAL )
+ $Label = $Data["Series"][$Data["Abscissa"]]["Data"][$Key];
+ else
+ $Label = "";
+
+ if ( $LabelStacked )
+ $this->writePieLabel($Xc,$Yc-$SliceHeight,$Label,$Angle,$Settings,TRUE,$X,$Y,$OuterRadius);
+ else
+ $this->writePieLabel($Xc,$Yc-$SliceHeight,$Label,$Angle,$Settings,FALSE);
+
+ $Offset = $EndAngle - $DataGapAngle; $ID--; $Slice++;
+ }
+ }
+ if ( $DrawLabels && $LabelStacked ) { $this->writeShiftedLabels(); }
+
+ $this->pChartObject->Shadow = $RestoreShadow;
+
+ return(PIE_RENDERED);
+ }
+
+ /* Serialize an array */
+ function arraySerialize($Data)
+ {
+ $Result = "";
+ foreach($Data as $Key => $Value)
+ { if ($Result == "") { $Result = floor($Value); } else { $Result = $Result.",".floor($Value); } }
+
+ return($Result);
+ }
+
+ /* Reverse an array */
+ function arrayReverse($Plots)
+ {
+ $Result = "";
+
+ for($i=count($Plots)-1;$i>=0;$i=$i-2)
+ { $Result[] = $Plots[$i-1]; $Result[] = $Plots[$i]; }
+
+ return($Result);
+ }
+
+ /* Remove unused series & values */
+ function clean0Values($Data,$Palette,$DataSerie,$AbscissaSerie)
+ {
+ $NewPalette = ""; $NewData = ""; $NewAbscissa = "";
+
+ /* Remove unused series */
+ foreach($Data["Series"] as $SerieName => $SerieSettings)
+ { if ( $SerieName != $DataSerie && $SerieName != $AbscissaSerie ) { unset($Data["Series"][$SerieName]); } }
+
+ /* Remove NULL values */
+ foreach($Data["Series"][$DataSerie]["Data"] as $Key => $Value)
+ {
+ if ($Value != 0 )
+ {
+ $NewData[] = $Value;
+ $NewAbscissa[] = $Data["Series"][$AbscissaSerie]["Data"][$Key];
+ if ( isset($Palette[$Key]) ) { $NewPalette[] = $Palette[$Key]; }
+ }
+ }
+ $Data["Series"][$DataSerie]["Data"] = $NewData;
+ $Data["Series"][$AbscissaSerie]["Data"] = $NewAbscissa;
+
+ return(array($Data,$NewPalette));
+ }
+ }
?> \ No newline at end of file
diff --git a/misc/log-analytics b/misc/log-analytics
-Subproject f0d8d9722962275ff72316904d82a35bc78930c
+Subproject f15f7271439380dbc7366aa117d3c8add358c26
diff --git a/misc/phpstorm-codestyles/Piwik_codestyle.xml b/misc/phpstorm-codestyles/Piwik_codestyle.xml
deleted file mode 100644
index e863de94cd..0000000000
--- a/misc/phpstorm-codestyles/Piwik_codestyle.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<code_scheme name="Piwik-codestyle">
- <option name="LINE_SEPARATOR" value="&#10;" />
- <option name="RIGHT_MARGIN" value="160" />
- <PHPCodeStyleSettings>
- <option name="ALIGN_KEY_VALUE_PAIRS" value="true" />
- <option name="LOWER_CASE_BOOLEAN_CONST" value="true" />
- <option name="LOWER_CASE_NULL_CONST" value="true" />
- </PHPCodeStyleSettings>
- <XML>
- <option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
- </XML>
- <codeStyleSettings language="JavaScript">
- <option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
- <option name="KEEP_SIMPLE_BLOCKS_IN_ONE_LINE" value="true" />
- <option name="KEEP_SIMPLE_METHODS_IN_ONE_LINE" value="true" />
- </codeStyleSettings>
- <codeStyleSettings language="LESS">
- <indentOptions>
- <option name="INDENT_SIZE" value="4" />
- </indentOptions>
- </codeStyleSettings>
- <codeStyleSettings language="PHP">
- <option name="BLANK_LINES_AFTER_PACKAGE" value="1" />
- <option name="ALIGN_MULTILINE_ARRAY_INITIALIZER_EXPRESSION" value="true" />
- <arrangement>
- <groups>
- <group>
- <type>DEPENDENT_METHODS</type>
- <order>BREADTH_FIRST</order>
- </group>
- </groups>
- </arrangement>
- </codeStyleSettings>
-</code_scheme> \ No newline at end of file
diff --git a/misc/phpstorm-codestyles/README.md b/misc/phpstorm-codestyles/README.md
deleted file mode 100644
index 020f5d1cc8..0000000000
--- a/misc/phpstorm-codestyles/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-Phpstorm has an awesome feature called "Reformat code" which reformats all PHP code to follow a particular selected coding style.
-
-Piwik uses PSR coding standard for php source code. We use a slightly customized PSR style
-(because the default PSR style in Phpstorm results in some unwanted changes).
-
-Steps:
- * Use latest Phpstorm
- * Copy this Piwik_codestyle.xml file in your `~/.WebIde80/config/codestyles/`
- * If you use Windows or Mac see which path to copy at: http://intellij-support.jetbrains.com/entries/23358108
- * To automatically link to the file in Piwik:
- `$ ln -s ~/dev/piwik-master/misc/phpstorm-codestyles/Piwik_codestyle.xml ~/.WebIde80/config/codestyles/Piwik_codestyle.xml`
-
- * Restart PhpStorm
- * Select this coding in Settings > Code style.
-
-Phpstorm can also be configured to apply the style automatically before commit.
-
-You are now writing code that respects Piwik coding standards. Enjoy!
-
-Reference: [Piwik Coding standards](http://developer.piwik.org/guides/contributing-to-piwik-core#piwik-core-code-standards)
-
diff --git a/piwik.js b/piwik.js
index 72f7bf39d9..08107280f4 100644
--- a/piwik.js
+++ b/piwik.js
@@ -18,49 +18,49 @@ var I="000000";var t=function(ac,ad){return(I+(ad||0)).slice(-ac)};var z="\\u00"
}else{at=null}}else{if(typeof at.toJSON=="function"&&((ae!=N&&ae!=O&&ae!=E)||r.call(at,"toJSON"))){at=at.toJSON(ai)}}}if(ag){at=ag.call(aA,ai,at)}if(at===null){return"null"}ae=u.call(at);if(ae==A){return""+at}else{if(ae==N){return at>-1/0&&at<1/0?""+at:"null"}else{if(ae==O){return C(""+at)}}}if(typeof at=="object"){for(af=aj.length;af--;){if(aj[af]===at){throw aa()}}aj.push(at);ar=[];av=ac;ac+=ax;if(ae==E){for(ah=0,af=at.length;ah<af;ah++){ad=p(ah,at,ag,al,ax,ac,aj);ar.push(ad===L?"null":ad)}ao=ar.length?(ax?"[\n"+ac+ar.join(",\n"+ac)+"\n"+av+"]":("["+ar.join(",")+"]")):"[]"}else{m(al||at,function(aC){var aB=p(aC,at,ag,al,ax,ac,aj);if(aB!==L){ar.push(C(aC)+":"+(ax?" ":"")+aB)}});ao=ar.length?(ax?"{\n"+ac+ar.join(",\n"+ac)+"\n"+av+"}":("{"+ar.join(",")+"}")):"{}"}aj.pop();return ao}};V.stringify=function(ac,ae,af){var ad,al,aj,ai;if(e[typeof ae]&&ae){if((ai=u.call(ae))==U){al=ae}else{if(ai==E){aj={};for(var ah=0,ag=ae.length,ak;ah<ag;ak=ae[ah++],((ai=u.call(ak)),ai==O||ai==N)&&(aj[ak]=1)){}}}}if(af){if((ai=u.call(af))==N){if((af-=af%1)>0){for(ad="",af>10&&(af=10);
ad.length<af;ad+=" "){}}}else{if(ai==O){ad=af.length<=10?af:af.slice(0,10)}}}return p("",(ak={},ak[""]=ac,ak),al,aj,ad,"",[])}}if(!o("json-parse")){var M=R.fromCharCode;var l={92:"\\",34:'"',47:"/",98:"\b",116:"\t",110:"\n",102:"\f",114:"\r"};var G,X;var H=function(){G=X=null;throw T()};var y=function(){var ah=X,af=ah.length,ag,ae,ac,ai,ad;while(G<af){ad=ah.charCodeAt(G);switch(ad){case 9:case 10:case 13:case 32:G++;break;case 123:case 125:case 91:case 93:case 58:case 44:ag=F?ah.charAt(G):ah[G];G++;return ag;case 34:for(ag="@",G++;G<af;){ad=ah.charCodeAt(G);if(ad<32){H()}else{if(ad==92){ad=ah.charCodeAt(++G);switch(ad){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:ag+=l[ad];G++;break;case 117:ae=++G;for(ac=G+4;G<ac;G++){ad=ah.charCodeAt(G);if(!(ad>=48&&ad<=57||ad>=97&&ad<=102||ad>=65&&ad<=70)){H()}}ag+=M("0x"+ah.slice(ae,G));break;default:H()}}else{if(ad==34){break}ad=ah.charCodeAt(G);ae=G;while(ad>=32&&ad!=92&&ad!=34){ad=ah.charCodeAt(++G)}ag+=ah.slice(ae,G)}}}if(ah.charCodeAt(G)==34){G++;
return ag}H();default:ae=G;if(ad==45){ai=true;ad=ah.charCodeAt(++G)}if(ad>=48&&ad<=57){if(ad==48&&((ad=ah.charCodeAt(G+1)),ad>=48&&ad<=57)){H()}ai=false;for(;G<af&&((ad=ah.charCodeAt(G)),ad>=48&&ad<=57);G++){}if(ah.charCodeAt(G)==46){ac=++G;for(;ac<af&&((ad=ah.charCodeAt(ac)),ad>=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}ad=ah.charCodeAt(G);if(ad==101||ad==69){ad=ah.charCodeAt(++G);if(ad==43||ad==45){G++}for(ac=G;ac<af&&((ad=ah.charCodeAt(ac)),ad>=48&&ad<=57);ac++){}if(ac==G){H()}G=ac}return +ah.slice(ae,G)}if(ai){H()}if(ah.slice(G,G+4)=="true"){G+=4;return true}else{if(ah.slice(G,G+5)=="false"){G+=5;return false}else{if(ah.slice(G,G+4)=="null"){G+=4;return null}}}H()}}return"$"};var W=function(ad){var ac,ae;if(ad=="$"){H()}if(typeof ad=="string"){if((F?ad.charAt(0):ad[0])=="@"){return ad.slice(1)}if(ad=="["){ac=[];for(;;ae||(ae=true)){ad=y();if(ad=="]"){break}if(ae){if(ad==","){ad=y();if(ad=="]"){H()}}else{H()}}if(ad==","){H()}ac.push(W(ad))}return ac}else{if(ad=="{"){ac={};for(;;ae||(ae=true)){ad=y();
-if(ad=="}"){break}if(ae){if(ad==","){ad=y();if(ad=="}"){H()}}else{H()}}if(ad==","||typeof ad!="string"||(F?ad.charAt(0):ad[0])!="@"||y()!=":"){H()}ac[ad.slice(1)]=W(y())}return ac}}H()}return ad};var P=function(ae,ad,af){var ac=w(ae,ad,af);if(ac===L){delete ae[ad]}else{ae[ad]=ac}};var w=function(af,ae,ag){var ad=af[ae],ac;if(typeof ad=="object"&&ad){if(u.call(ad)==E){for(ac=ad.length;ac--;){P(ad,ac,ag)}}else{m(ad,function(ah){P(ad,ah,ag)})}}return ag.call(af,ae,ad)};V.parse=function(ae,af){var ac,ad;G=0;X=""+ae;ac=W(y());if(y()!="$"){H()}G=X=null;return af&&u.call(af)==U?w((ad={},ad[""]=ac,ad),"",af):ac}}}V.runInContext=j;return V}if(h&&!c){j(i,h)}else{var f=i.JSON,k=i.JSON3,d=false;var g=j(i,(i.JSON3={noConflict:function(){if(!d){d=true;i.JSON=f;i.JSON3=k;f=k=null}return g}}));i.JSON={parse:g.parse,stringify:g.stringify}}if(c){define(function(){return g})}}).call(this);JSON2=a})()}if(typeof _paq!=="object"){_paq=[]}if(typeof Piwik!=="object"){Piwik=(function(){var k,a={},w=document,e=navigator,M=screen,I=window,f=I.performance||I.mozPerformance||I.msPerformance||I.webkitPerformance,q=false,G=[],m=I.encodeURIComponent,H=I.decodeURIComponent,h=unescape,N,v,d;
-function j(Y){try{return H(Y)}catch(Z){return unescape(Y)}}function y(Z){var Y=typeof Z;return Y!=="undefined"}function r(Y){return typeof Y==="function"}function L(Y){return typeof Y==="object"}function o(Y){return typeof Y==="string"||Y instanceof String}function s(Z){if(!Z){return true}var Y;var aa=true;for(Y in Z){if(Object.prototype.hasOwnProperty.call(Z,Y)){aa=false}}return aa}function T(){var Y,aa,Z;for(Y=0;Y<arguments.length;Y+=1){Z=arguments[Y];aa=Z.shift();if(o(aa)){N[aa].apply(N,Z)}else{aa.apply(N,Z)}}}function X(ab,aa,Z,Y){if(ab.addEventListener){ab.addEventListener(aa,Z,Y);return true}if(ab.attachEvent){return ab.attachEvent("on"+aa,Z)}ab["on"+aa]=Z}function Q(Z,ac){var Y="",ab,aa;for(ab in a){if(Object.prototype.hasOwnProperty.call(a,ab)){aa=a[ab][Z];if(r(aa)){Y+=aa(ac)}}}return Y}function U(){var Y;Q("unload");if(k){do{Y=new Date()}while(Y.getTimeAlias()<k)}}function R(){var Y;if(!q){q=true;Q("load");for(Y=0;Y<G.length;Y++){G[Y]()}}return true}function p(){var Z;if(w.addEventListener){X(w,"DOMContentLoaded",function Y(){w.removeEventListener("DOMContentLoaded",Y,false);
-R()})}else{if(w.attachEvent){w.attachEvent("onreadystatechange",function Y(){if(w.readyState==="complete"){w.detachEvent("onreadystatechange",Y);R()}});if(w.documentElement.doScroll&&I===I.top){(function Y(){if(!q){try{w.documentElement.doScroll("left")}catch(aa){setTimeout(Y,0);return}R()}}())}}}if((new RegExp("WebKit")).test(e.userAgent)){Z=setInterval(function(){if(q||/loaded|complete/.test(w.readyState)){clearInterval(Z);R()}},10)}X(I,"load",R,false)}function i(aa,Z){var Y=w.createElement("script");Y.type="text/javascript";Y.src=aa;if(Y.readyState){Y.onreadystatechange=function(){var ab=this.readyState;if(ab==="loaded"||ab==="complete"){Y.onreadystatechange=null;Z()}}}else{Y.onload=Z}w.getElementsByTagName("head")[0].appendChild(Y)}function z(){var Y="";try{Y=I.top.document.referrer}catch(aa){if(I.parent){try{Y=I.parent.document.referrer}catch(Z){Y=""}}}if(Y===""){Y=w.referrer}return Y}function l(Y){var aa=new RegExp("^([a-z]+):"),Z=aa.exec(Y);return Z?Z[1]:null}function c(Y){var aa=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)"),Z=aa.exec(Y);
-return Z?Z[1]:Y}function K(aa,Z){var Y="[\\?&#]"+Z+"=([^&#]*)";var ac=new RegExp(Y);var ab=ac.exec(aa);return ab?H(ab[1]):""}function u(Y){return unescape(m(Y))}function W(an){var aa=function(au,at){return(au<<at)|(au>>>(32-at))},ao=function(aw){var au="",av,at;for(av=7;av>=0;av--){at=(aw>>>(av*4))&15;au+=at.toString(16)}return au},ad,aq,ap,Z=[],ah=1732584193,af=4023233417,ae=2562383102,ac=271733878,ab=3285377520,am,al,ak,aj,ai,ar,Y,ag=[];an=u(an);Y=an.length;for(aq=0;aq<Y-3;aq+=4){ap=an.charCodeAt(aq)<<24|an.charCodeAt(aq+1)<<16|an.charCodeAt(aq+2)<<8|an.charCodeAt(aq+3);ag.push(ap)}switch(Y&3){case 0:aq=2147483648;break;case 1:aq=an.charCodeAt(Y-1)<<24|8388608;break;case 2:aq=an.charCodeAt(Y-2)<<24|an.charCodeAt(Y-1)<<16|32768;break;case 3:aq=an.charCodeAt(Y-3)<<24|an.charCodeAt(Y-2)<<16|an.charCodeAt(Y-1)<<8|128;break}ag.push(aq);while((ag.length&15)!==14){ag.push(0)}ag.push(Y>>>29);ag.push((Y<<3)&4294967295);for(ad=0;ad<ag.length;ad+=16){for(aq=0;aq<16;aq++){Z[aq]=ag[ad+aq]}for(aq=16;
-aq<=79;aq++){Z[aq]=aa(Z[aq-3]^Z[aq-8]^Z[aq-14]^Z[aq-16],1)}am=ah;al=af;ak=ae;aj=ac;ai=ab;for(aq=0;aq<=19;aq++){ar=(aa(am,5)+((al&ak)|(~al&aj))+ai+Z[aq]+1518500249)&4294967295;ai=aj;aj=ak;ak=aa(al,30);al=am;am=ar}for(aq=20;aq<=39;aq++){ar=(aa(am,5)+(al^ak^aj)+ai+Z[aq]+1859775393)&4294967295;ai=aj;aj=ak;ak=aa(al,30);al=am;am=ar}for(aq=40;aq<=59;aq++){ar=(aa(am,5)+((al&ak)|(al&aj)|(ak&aj))+ai+Z[aq]+2400959708)&4294967295;ai=aj;aj=ak;ak=aa(al,30);al=am;am=ar}for(aq=60;aq<=79;aq++){ar=(aa(am,5)+(al^ak^aj)+ai+Z[aq]+3395469782)&4294967295;ai=aj;aj=ak;ak=aa(al,30);al=am;am=ar}ah=(ah+am)&4294967295;af=(af+al)&4294967295;ae=(ae+ak)&4294967295;ac=(ac+aj)&4294967295;ab=(ab+ai)&4294967295}ar=ao(ah)+ao(af)+ao(ae)+ao(ac)+ao(ab);return ar.toLowerCase()}function P(aa,Y,Z){if(!aa){aa=""}if(!Y){Y=""}if(aa==="translate.googleusercontent.com"){if(Z===""){Z=Y}Y=K(Y,"u");aa=c(Y)}else{if(aa==="cc.bingj.com"||aa==="webcache.googleusercontent.com"||aa.slice(0,5)==="74.6."){Y=w.links[0].href;aa=c(Y)}}return[aa,Y,Z]
-}function A(Z){var Y=Z.length;if(Z.charAt(--Y)==="."){Z=Z.slice(0,Y)}if(Z.slice(0,2)==="*."){Z=Z.slice(1)}if(Z.indexOf("/")!==-1){Z=Z.substr(0,Z.indexOf("/"))}return Z}function V(Z){Z=Z&&Z.text?Z.text:Z;if(!o(Z)){var Y=w.getElementsByTagName("title");if(Y&&y(Y[0])){Z=Y[0].text}}return Z}function E(Y){if(!Y){return[]}if(!y(Y.children)&&y(Y.childNodes)){return Y.children}if(y(Y.children)){return Y.children}return[]}function J(Z,Y){if(!Z||!Y){return false}if(Z.contains){return Z.contains(Y)}if(Z===Y){return true}if(Z.compareDocumentPosition){return !!(Z.compareDocumentPosition(Y)&16)}return false}function B(aa,ab){if(aa&&aa.indexOf){return aa.indexOf(ab)}if(!y(aa)||aa===null){return -1}if(!aa.length){return -1}var Y=aa.length;if(Y===0){return -1}var Z=0;while(Z<Y){if(aa[Z]===ab){return Z}Z++}return -1}function g(aa){if(!aa){return false}function Y(ac,ad){if(I.getComputedStyle){return w.defaultView.getComputedStyle(ac,null)[ad]}if(ac.currentStyle){return ac.currentStyle[ad]}}function ab(ac){ac=ac.parentNode;
-while(ac){if(ac===w){return true}ac=ac.parentNode}return false}function Z(ae,ak,ac,ah,af,ai,ag){var ad=ae.parentNode,aj=1;if(!ab(ae)){return false}if(9===ad.nodeType){return true}if("0"===Y(ae,"opacity")||"none"===Y(ae,"display")||"hidden"===Y(ae,"visibility")){return false}if(!y(ak)||!y(ac)||!y(ah)||!y(af)||!y(ai)||!y(ag)){ak=ae.offsetTop;af=ae.offsetLeft;ah=ak+ae.offsetHeight;ac=af+ae.offsetWidth;ai=ae.offsetWidth;ag=ae.offsetHeight}if(aa===ae&&(0===ag||0===ai)&&"hidden"===Y(ae,"overflow")){return false}if(ad){if(("hidden"===Y(ad,"overflow")||"scroll"===Y(ad,"overflow"))){if(af+aj>ad.offsetWidth+ad.scrollLeft||af+ai-aj<ad.scrollLeft||ak+aj>ad.offsetHeight+ad.scrollTop||ak+ag-aj<ad.scrollTop){return false}}if(ae.offsetParent===ad){af+=ad.offsetLeft;ak+=ad.offsetTop}return Z(ad,ak,ac,ah,af,ai,ag)}return true}return Z(aa)}var S={htmlCollectionToArray:function(aa){var Y=[],Z;if(!aa||!aa.length){return Y}for(Z=0;Z<aa.length;Z++){Y.push(aa[Z])}return Y},find:function(Y){if(!document.querySelectorAll||!Y){return[]
-}var Z=document.querySelectorAll(Y);return this.htmlCollectionToArray(Z)},findMultiple:function(aa){if(!aa||!aa.length){return[]}var Z,ab;var Y=[];for(Z=0;Z<aa.length;Z++){ab=this.find(aa[Z]);Y=Y.concat(ab)}Y=this.makeNodesUnique(Y);return Y},findNodesByTagName:function(Z,Y){if(!Z||!Y||!Z.getElementsByTagName){return[]}var aa=Z.getElementsByTagName(Y);return this.htmlCollectionToArray(aa)},makeNodesUnique:function(Y){var ad=[].concat(Y);Y.sort(function(af,ae){if(af===ae){return 0}var ah=B(ad,af);var ag=B(ad,ae);if(ah===ag){return 0}return ah>ag?-1:1});if(Y.length<=1){return Y}var Z=0;var ab=0;var ac=[];var aa;aa=Y[Z++];while(aa){if(aa===Y[Z]){ab=ac.push(Z)}aa=Y[Z++]||null}while(ab--){Y.splice(ac[ab],1)}return Y},getAttributeValueFromNode:function(ac,aa){if(!this.hasNodeAttribute(ac,aa)){return}if(ac&&ac.getAttribute){return ac.getAttribute(aa)}if(!ac||!ac.attributes){return}var ab=(typeof ac.attributes[aa]);if("undefined"===ab){return}if(ac.attributes[aa].value){return ac.attributes[aa].value
-}if(ac.attributes[aa].nodeValue){return ac.attributes[aa].nodeValue}var Z;var Y=ac.attributes;if(!Y){return}for(Z=0;Z<Y.length;Z++){if(Y[Z].nodeName===aa){return Y[Z].nodeValue}}return null},hasNodeAttributeWithValue:function(Z,Y){var aa=this.getAttributeValueFromNode(Z,Y);return !!aa},hasNodeAttribute:function(aa,Y){if(aa&&aa.hasAttribute){return aa.hasAttribute(Y)}if(aa&&aa.attributes){var Z=(typeof aa.attributes[Y]);return"undefined"!==Z}return false},hasNodeCssClass:function(aa,Y){if(aa&&Y&&aa.className){var Z=typeof aa.className==="string"?aa.className.split(" "):[];if(-1!==B(Z,Y)){return true}}return false},findNodesHavingAttribute:function(ac,aa,Y){if(!Y){Y=[]}if(!ac||!aa){return Y}var ab=E(ac);if(!ab||!ab.length){return Y}var Z,ad;for(Z=0;Z<ab.length;Z++){ad=ab[Z];if(this.hasNodeAttribute(ad,aa)){Y.push(ad)}Y=this.findNodesHavingAttribute(ad,aa,Y)}return Y},findFirstNodeHavingAttribute:function(aa,Z){if(!aa||!Z){return}if(this.hasNodeAttribute(aa,Z)){return aa}var Y=this.findNodesHavingAttribute(aa,Z);
-if(Y&&Y.length){return Y[0]}},findFirstNodeHavingAttributeWithValue:function(ab,aa){if(!ab||!aa){return}if(this.hasNodeAttributeWithValue(ab,aa)){return ab}var Y=this.findNodesHavingAttribute(ab,aa);if(!Y||!Y.length){return}var Z;for(Z=0;Z<Y.length;Z++){if(this.getAttributeValueFromNode(Y[Z],aa)){return Y[Z]}}},findNodesHavingCssClass:function(ac,ab,Y){if(!Y){Y=[]}if(!ac||!ab){return Y}if(ac.getElementsByClassName){var ad=ac.getElementsByClassName(ab);return this.htmlCollectionToArray(ad)}var aa=E(ac);if(!aa||!aa.length){return[]}var Z,ae;for(Z=0;Z<aa.length;Z++){ae=aa[Z];if(this.hasNodeCssClass(ae,ab)){Y.push(ae)}Y=this.findNodesHavingCssClass(ae,ab,Y)}return Y},findFirstNodeHavingClass:function(aa,Z){if(!aa||!Z){return}if(this.hasNodeCssClass(aa,Z)){return aa}var Y=this.findNodesHavingCssClass(aa,Z);if(Y&&Y.length){return Y[0]}},isLinkElement:function(Z){if(!Z){return false}var Y=String(Z.nodeName).toLowerCase();var ab=["a","area"];var aa=B(ab,Y);return aa!==-1},setAnyAttribute:function(Z,Y,aa){if(!Z||!Y){return
-}if(Z.setAttribute){Z.setAttribute(Y,aa)}else{Z[Y]=aa}}};var n={CONTENT_ATTR:"data-track-content",CONTENT_CLASS:"piwikTrackContent",CONTENT_NAME_ATTR:"data-content-name",CONTENT_PIECE_ATTR:"data-content-piece",CONTENT_PIECE_CLASS:"piwikContentPiece",CONTENT_TARGET_ATTR:"data-content-target",CONTENT_TARGET_CLASS:"piwikContentTarget",CONTENT_IGNOREINTERACTION_ATTR:"data-content-ignoreinteraction",CONTENT_IGNOREINTERACTION_CLASS:"piwikContentIgnoreInteraction",location:undefined,findContentNodes:function(){var Z="."+this.CONTENT_CLASS;var Y="["+this.CONTENT_ATTR+"]";var aa=S.findMultiple([Z,Y]);return aa},findContentNodesWithinNode:function(ab){if(!ab){return[]}var Z=S.findNodesHavingCssClass(ab,this.CONTENT_CLASS);var Y=S.findNodesHavingAttribute(ab,this.CONTENT_ATTR);if(Y&&Y.length){var aa;for(aa=0;aa<Y.length;aa++){Z.push(Y[aa])}}if(S.hasNodeAttribute(ab,this.CONTENT_ATTR)){Z.push(ab)}else{if(S.hasNodeCssClass(ab,this.CONTENT_CLASS)){Z.push(ab)}}Z=S.makeNodesUnique(Z);return Z},findParentContentNode:function(Z){if(!Z){return
-}var aa=Z;var Y=0;while(aa&&aa!==w&&aa.parentNode){if(S.hasNodeAttribute(aa,this.CONTENT_ATTR)){return aa}if(S.hasNodeCssClass(aa,this.CONTENT_CLASS)){return aa}aa=aa.parentNode;if(Y>1000){break}Y++}},findPieceNode:function(Z){var Y;Y=S.findFirstNodeHavingAttribute(Z,this.CONTENT_PIECE_ATTR);if(!Y){Y=S.findFirstNodeHavingClass(Z,this.CONTENT_PIECE_CLASS)}if(Y){return Y}return Z},findTargetNodeNoDefault:function(Y){if(!Y){return}var Z=S.findFirstNodeHavingAttributeWithValue(Y,this.CONTENT_TARGET_ATTR);if(Z){return Z}Z=S.findFirstNodeHavingAttribute(Y,this.CONTENT_TARGET_ATTR);if(Z){return Z}Z=S.findFirstNodeHavingClass(Y,this.CONTENT_TARGET_CLASS);if(Z){return Z}},findTargetNode:function(Y){var Z=this.findTargetNodeNoDefault(Y);if(Z){return Z}return Y},findContentName:function(Z){if(!Z){return}var ac=S.findFirstNodeHavingAttributeWithValue(Z,this.CONTENT_NAME_ATTR);if(ac){return S.getAttributeValueFromNode(ac,this.CONTENT_NAME_ATTR)}var Y=this.findContentPiece(Z);if(Y){return this.removeDomainIfIsInLink(Y)
-}if(S.hasNodeAttributeWithValue(Z,"title")){return S.getAttributeValueFromNode(Z,"title")}var aa=this.findPieceNode(Z);if(S.hasNodeAttributeWithValue(aa,"title")){return S.getAttributeValueFromNode(aa,"title")}var ab=this.findTargetNode(Z);if(S.hasNodeAttributeWithValue(ab,"title")){return S.getAttributeValueFromNode(ab,"title")}},findContentPiece:function(Z){if(!Z){return}var ab=S.findFirstNodeHavingAttributeWithValue(Z,this.CONTENT_PIECE_ATTR);if(ab){return S.getAttributeValueFromNode(ab,this.CONTENT_PIECE_ATTR)}var Y=this.findPieceNode(Z);var aa=this.findMediaUrlInNode(Y);if(aa){return this.toAbsoluteUrl(aa)}},findContentTarget:function(aa){if(!aa){return}var ab=this.findTargetNode(aa);if(S.hasNodeAttributeWithValue(ab,this.CONTENT_TARGET_ATTR)){return S.getAttributeValueFromNode(ab,this.CONTENT_TARGET_ATTR)}var Z;if(S.hasNodeAttributeWithValue(ab,"href")){Z=S.getAttributeValueFromNode(ab,"href");return this.toAbsoluteUrl(Z)}var Y=this.findPieceNode(aa);if(S.hasNodeAttributeWithValue(Y,"href")){Z=S.getAttributeValueFromNode(Y,"href");
-return this.toAbsoluteUrl(Z)}},isSameDomain:function(Y){if(!Y||!Y.indexOf){return false}if(0===Y.indexOf(this.getLocation().origin)){return true}var Z=Y.indexOf(this.getLocation().host);if(8>=Z&&0<=Z){return true}return false},removeDomainIfIsInLink:function(aa){var Z="^https?://[^/]+";var Y="^.*//[^/]+";if(aa&&aa.search&&-1!==aa.search(new RegExp(Z))&&this.isSameDomain(aa)){aa=aa.replace(new RegExp(Y),"");if(!aa){aa="/"}}return aa},findMediaUrlInNode:function(ac){if(!ac){return}var aa=["img","embed","video","audio"];var Y=ac.nodeName.toLowerCase();if(-1!==B(aa,Y)&&S.findFirstNodeHavingAttributeWithValue(ac,"src")){var ab=S.findFirstNodeHavingAttributeWithValue(ac,"src");return S.getAttributeValueFromNode(ab,"src")}if(Y==="object"&&S.hasNodeAttributeWithValue(ac,"data")){return S.getAttributeValueFromNode(ac,"data")}if(Y==="object"){var ad=S.findNodesByTagName(ac,"param");if(ad&&ad.length){var Z;for(Z=0;Z<ad.length;Z++){if("movie"===S.getAttributeValueFromNode(ad[Z],"name")&&S.hasNodeAttributeWithValue(ad[Z],"value")){return S.getAttributeValueFromNode(ad[Z],"value")
-}}}var ae=S.findNodesByTagName(ac,"embed");if(ae&&ae.length){return this.findMediaUrlInNode(ae[0])}}},trim:function(Y){if(Y&&String(Y)===Y){return Y.replace(/^\s+|\s+$/g,"")}return Y},isOrWasNodeInViewport:function(ad){if(!ad||!ad.getBoundingClientRect||ad.nodeType!==1){return true}var ac=ad.getBoundingClientRect();var ab=w.documentElement||{};var aa=ac.top<0;if(aa&&ad.offsetTop){aa=(ad.offsetTop+ac.height)>0}var Z=ab.clientWidth;if(I.innerWidth&&Z>I.innerWidth){Z=I.innerWidth}var Y=ab.clientHeight;if(I.innerHeight&&Y>I.innerHeight){Y=I.innerHeight}return((ac.bottom>0||aa)&&ac.right>0&&ac.left<Z&&((ac.top<Y)||aa))},isNodeVisible:function(Z){var Y=g(Z);var aa=this.isOrWasNodeInViewport(Z);return Y&&aa},buildInteractionRequestParams:function(Y,Z,aa,ab){var ac="";if(Y){ac+="c_i="+m(Y)}if(Z){if(ac){ac+="&"}ac+="c_n="+m(Z)}if(aa){if(ac){ac+="&"}ac+="c_p="+m(aa)}if(ab){if(ac){ac+="&"}ac+="c_t="+m(ab)}return ac},buildImpressionRequestParams:function(Y,Z,aa){var ab="c_n="+m(Y)+"&c_p="+m(Z);if(aa){ab+="&c_t="+m(aa)
-}return ab},buildContentBlock:function(aa){if(!aa){return}var Y=this.findContentName(aa);var Z=this.findContentPiece(aa);var ab=this.findContentTarget(aa);Y=this.trim(Y);Z=this.trim(Z);ab=this.trim(ab);return{name:Y||"Unknown",piece:Z||"Unknown",target:ab||""}},collectContent:function(ab){if(!ab||!ab.length){return[]}var aa=[];var Y,Z;for(Y=0;Y<ab.length;Y++){Z=this.buildContentBlock(ab[Y]);if(y(Z)){aa.push(Z)}}return aa},setLocation:function(Y){this.location=Y},getLocation:function(){var Y=this.location||I.location;if(!Y.origin){Y.origin=Y.protocol+"//"+Y.hostname+(Y.port?":"+Y.port:"")}return Y},toAbsoluteUrl:function(Z){if((!Z||String(Z)!==Z)&&Z!==""){return Z}if(""===Z){return this.getLocation().href}if(Z.search(/^\/\//)!==-1){return this.getLocation().protocol+Z}if(Z.search(/:\/\//)!==-1){return Z}if(0===Z.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+Z}if(0===Z.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+Z}if(0===Z.search("^[a-zA-Z]{2,11}:")){return Z
-}if(Z.search(/^\//)!==-1){return this.getLocation().origin+Z}var Y="(.*/)";var aa=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(Y))[0];return aa+Z},isUrlToCurrentDomain:function(Z){var aa=this.toAbsoluteUrl(Z);if(!aa){return false}var Y=this.getLocation().origin;if(Y===aa){return true}if(0===String(aa).indexOf(Y)){if(":"===String(aa).substr(Y.length,1)){return false}return true}return false},setHrefAttribute:function(Z,Y){if(!Z||!Y){return}S.setAnyAttribute(Z,"href",Y)},shouldIgnoreInteraction:function(aa){var Z=S.hasNodeAttribute(aa,this.CONTENT_IGNOREINTERACTION_ATTR);var Y=S.hasNodeCssClass(aa,this.CONTENT_IGNOREINTERACTION_CLASS);return Z||Y}};function D(Y,Z){if(Z){return Z}if(Y.slice(-9)==="piwik.php"){Y=Y.slice(0,Y.length-9)}return Y}function C(ae){var ag="Piwik_Overlay";var Z=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var aa=Z.exec(w.referrer);if(aa){var ac=aa[1];if(ac!==String(ae)){return false
-}var ad=aa[2],Y=aa[3],ab=aa[4];if(!ab){ab=""}else{if(ab.indexOf("&segment=")===0){ab=ab.substr("&segment=".length)}}I.name=ag+"###"+ad+"###"+Y+"###"+ab}var af=I.name.split("###");return af.length===4&&af[0]===ag}function O(Z,af,ab){var ae=I.name.split("###"),ad=ae[1],Y=ae[2],ac=ae[3],aa=D(Z,af);i(aa+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(aa,ab,ad,Y,ac)})}function F(bH,bB){var bx=P(w.domain,I.location.href,z()),cf=A(bx[0]),bh=j(bx[1]),aW=j(bx[2]),cd=false,bL="GET",cs=bL,am="application/x-www-form-urlencoded; charset=UTF-8",bX=am,ai=bH||"",bc="",cj="",bz=bB||"",a5="",bi="",aG,aS=w.title,cp=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],ae=[cf],a6=[],bf=[],aJ=[],bd=500,b6,aH,bl,bj,Y,bT=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],bb=["pk_kwd","piwik_kwd","utm_term"],aT="_pk_",ch,aY,aU=false,cb,aQ,a2,b7=33955200000,bR=1800000,co=15768000000,aE=true,bP=0,bk=false,at=false,bE,bp={},bO={},aV={},a1=200,ck={},cq={},bD=[],bI=false,b0=false,Z=false,cr=false,aq=false,ci=null,bF,au,a7,bA=W,aX;
-function cv(cF,cC,cB,cE,cA,cD){if(aU){return}var cz;if(cB){cz=new Date();cz.setTime(cz.getTime()+cB)}w.cookie=cF+"="+m(cC)+(cB?";expires="+cz.toGMTString():"")+";path="+(cE||"/")+(cA?";domain="+cA:"")+(cD?";secure":"")}function ah(cB){if(aU){return 0}var cz=new RegExp("(^|;)[ ]*"+cB+"=([^;]*)"),cA=cz.exec(w.cookie);return cA?H(cA[2]):0}function bv(cz){var cA;if(bj){cA=new RegExp("#.*");return cz.replace(cA,"")}return cz}function bo(cB,cz){var cC=l(cz),cA;if(cC){return cz}if(cz.slice(0,1)==="/"){return l(cB)+"://"+c(cB)+cz}cB=bv(cB);cA=cB.indexOf("?");if(cA>=0){cB=cB.slice(0,cA)}cA=cB.lastIndexOf("/");if(cA!==cB.length-1){cB=cB.slice(0,cA+1)}return cB+cz}function b4(cB,cz){var cA;cB=String(cB).toLowerCase();cz=String(cz).toLowerCase();if(cB===cz){return true}if(cz.slice(0,1)==="."){if(cB===cz.slice(1)){return true}cA=cB.length-cz.length;if((cA>0)&&(cB.slice(cA)===cz)){return true}}return false}function cm(cA,cz){cA=String(cA);return cA.indexOf(cz,cA.length-cz.length)!==-1}function aP(cA,cz){cA=String(cA);
-return cA.substr(0,cA.length-cz)}function bN(cz){var cA=document.createElement("a");if(cz.indexOf("//")!==0&&cz.indexOf("http")!==0){cz="http://"+cz}cA.href=n.toAbsoluteUrl(cz);if(cA.pathname){return cA.pathname}return""}function aF(cA,cz){var cB=(!cz||cz==="/");if(cB){return true}if(cA===cz){return true}if(!cA){return false}cz=String(cz).toLowerCase();cA=String(cA).toLowerCase();if(!cm(cA,"/")){cA+="/"}if(!cm(cz,"/")){cz+="/"}return cA.indexOf(cz)===0}function ab(cD,cF){var cA,cz,cB,cC,cE;for(cA=0;cA<ae.length;cA++){cC=A(ae[cA]);cE=bN(ae[cA]);if(b4(cD,cC)&&aF(cF,cE)){return true}}return false}function ay(cC){var cA,cz,cB;for(cA=0;cA<ae.length;cA++){cz=A(ae[cA].toLowerCase());if(cC===cz){return true}if(cz.slice(0,1)==="."){if(cC===cz.slice(1)){return true}cB=cC.length-cz.length;if((cB>0)&&(cC.slice(cB)===cz)){return true}}}return false}function bS(cz,cB){var cA=new Image(1,1);cA.onload=function(){v=0;if(typeof cB==="function"){cB()}};cA.src=ai+(ai.indexOf("?")<0?"?":"&")+cz}function cn(cA,cD,cz){if(!y(cz)||null===cz){cz=true
-}try{var cC=I.XMLHttpRequest?new I.XMLHttpRequest():I.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;cC.open("POST",ai,true);cC.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cz){bS(cA,cD)}else{if(typeof cD==="function"){cD()}}};cC.setRequestHeader("Content-Type",bX);cC.send(cA)}catch(cB){if(cz){bS(cA,cD)}}}function bJ(cA){var cz=new Date();var cB=cz.getTime()+cA;if(!k||cB>k){k=cB}}function bQ(cz){if(bF||!aH){return}bF=setTimeout(function cA(){bF=null;if(bl()){return}var cB=new Date(),cC=aH-(cB.getTime()-ci);cC=Math.min(aH,cC);bQ(cC)},cz||aH)}function be(){if(!bF){return}clearTimeout(bF);bF=null}function aM(){if(bl()){return}bQ()}function af(){be()}function cx(){if(aq||!aH){return}aq=true;X(I,"focus",aM);X(I,"blur",af);bQ()}function b1(cD){var cA=new Date();var cz=cA.getTime();ci=cz;if(b0&&cz<b0){var cB=b0-cz;setTimeout(cD,cB);bJ(cB+50);b0+=50;return}if(b0===false){var cC=800;b0=cz+cC}cD()}function ba(cA,cz,cB){if(!cb&&cA){b1(function(){if(cs==="POST"){cn(cA,cB)
-}else{bS(cA,cB)}bJ(cz)})}if(!aq){cx()}else{bQ()}}function bM(cz){if(cb){return false}return(cz&&cz.length)}function cw(cB,cz){if(!bM(cB)){return}var cA='{"requests":["?'+cB.join('","?')+'"]}';b1(function(){cn(cA,null,false);bJ(cz)})}function aw(cz){return aT+cz+"."+bz+"."+aX}function by(){if(aU){return"0"}if(!y(e.cookieEnabled)){var cz=aw("testcookie");cv(cz,"1");return ah(cz)==="1"?"1":"0"}return e.cookieEnabled?"1":"0"}function aR(){aX=bA((ch||cf)+(aY||"/")).slice(0,4)}function bq(){var cA=aw("cvar"),cz=ah(cA);if(cz.length){cz=JSON2.parse(cz);if(L(cz)){return cz}}return{}}function b2(){if(at===false){at=bq()}}function cc(){return bA((e.userAgent||"")+(e.platform||"")+JSON2.stringify(cq)+(new Date()).getTime()+Math.random()).slice(0,16)}function b9(){var cB=new Date(),cz=Math.round(cB.getTime()/1000),cA=aw("id"),cE=ah(cA),cD,cC;if(cE){cD=cE.split(".");cD.unshift("0");if(bi.length){cD[1]=bi}return cD}if(bi.length){cC=bi}else{if("0"===by()){cC=""}else{cC=cc()}}cD=["1",cC,cz,0,cz,"",""];return cD
-}function aA(){var cG=b9(),cC=cG[0],cD=cG[1],cA=cG[2],cz=cG[3],cE=cG[4],cB=cG[5];if(!y(cG[6])){cG[6]=""}var cF=cG[6];return{newVisitor:cC,uuid:cD,createTs:cA,visitCount:cz,currentVisitTs:cE,lastVisitTs:cB,lastEcommerceOrderTs:cF}}function al(){var cC=new Date(),cA=cC.getTime(),cD=aA().createTs;var cz=parseInt(cD,10);var cB=(cz*1000)+b7-cA;return cB}function ao(cz){if(!bz){return}var cB=new Date(),cA=Math.round(cB.getTime()/1000);if(!y(cz)){cz=aA()}var cC=cz.uuid+"."+cz.createTs+"."+cz.visitCount+"."+cA+"."+cz.lastVisitTs+"."+cz.lastEcommerceOrderTs;cv(aw("id"),cC,al(),aY,ch)}function bg(){var cz=ah(aw("ref"));if(cz.length){try{cz=JSON2.parse(cz);if(L(cz)){return cz}}catch(cA){}}return["","",0,""]}function br(cB,cA,cz){cv(cB,"",-86400,cA,cz)}function a3(cA){var cz="testvalue";cv("test",cz,10000,null,cA);if(ah("test")===cz){br("test",null,cA);return true}return false}function aj(){var cB=aU;aU=false;var cz=["id","ses","cvar","ref"];var cA,cC;for(cA=0;cA<cz.length;cA++){cC=aw(cz[cA]);if(0!==ah(cC)){br(cC,aY,ch)
-}}aU=cB}function bw(cz){bz=cz;ao()}function cy(cD){if(!cD||!L(cD)){return}var cC=[];var cB;for(cB in cD){if(Object.prototype.hasOwnProperty.call(cD,cB)){cC.push(cB)}}var cE={};cC.sort();var cz=cC.length;var cA;for(cA=0;cA<cz;cA++){cE[cC[cA]]=cD[cC[cA]]}return cE}function bG(){cv(aw("ses"),"*",bR,aY,ch)}function bU(cB,cW,cX,cC){var cV,cA=new Date(),cJ=Math.round(cA.getTime()/1000),cG,cU,cD=1024,c2,cK,cS=at,cE=aw("ses"),cQ=aw("ref"),cN=aw("cvar"),cO=ah(cE),cT=bg(),cZ=aG||bh,cH,cz;if(aU){aj()}if(cb){return""}var cP=aA();if(!y(cC)){cC=""}var cM=w.characterSet||w.charset;if(!cM||cM.toLowerCase()==="utf-8"){cM=null}cH=cT[0];cz=cT[1];cG=cT[2];cU=cT[3];if(!cO){var cY=bR/1000;if(!cP.lastVisitTs||(cJ-cP.lastVisitTs)>cY){cP.visitCount++;cP.lastVisitTs=cP.currentVisitTs}if(!a2||!cH.length){for(cV in bT){if(Object.prototype.hasOwnProperty.call(bT,cV)){cH=K(cZ,bT[cV]);if(cH.length){break}}}for(cV in bb){if(Object.prototype.hasOwnProperty.call(bb,cV)){cz=K(cZ,bb[cV]);if(cz.length){break}}}}c2=c(aW);cK=cU.length?c(cU):"";
-if(c2.length&&!ay(c2)&&(!a2||!cK.length||ay(cK))){cU=aW}if(cU.length||cH.length){cG=cJ;cT=[cH,cz,cG,bv(cU.slice(0,cD))];cv(cQ,JSON2.stringify(cT),co,aY,ch)}}cB+="&idsite="+bz+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cA.getHours()+"&m="+cA.getMinutes()+"&s="+cA.getSeconds()+"&url="+m(bv(cZ))+(aW.length?"&urlref="+m(bv(aW)):"")+((a5&&a5.length)?"&uid="+m(a5):"")+"&_id="+cP.uuid+"&_idts="+cP.createTs+"&_idvc="+cP.visitCount+"&_idn="+cP.newVisitor+(cH.length?"&_rcn="+m(cH):"")+(cz.length?"&_rck="+m(cz):"")+"&_refts="+cG+"&_viewts="+cP.lastVisitTs+(String(cP.lastEcommerceOrderTs).length?"&_ects="+cP.lastEcommerceOrderTs:"")+(String(cU).length?"&_ref="+m(bv(cU.slice(0,cD))):"")+(cM?"&cs="+m(cM):"")+"&send_image=0";for(cV in cq){if(Object.prototype.hasOwnProperty.call(cq,cV)){cB+="&"+cV+"="+cq[cV]}}var c1=[];if(cW){for(cV in cW){if(Object.prototype.hasOwnProperty.call(cW,cV)&&/^dimension\d+$/.test(cV)){var cF=cV.replace("dimension","");c1.push(parseInt(cF,10));c1.push(String(cF));cB+="&"+cV+"="+cW[cV];
-delete cW[cV]}}}if(cW&&s(cW)){cW=null}for(cV in aV){if(Object.prototype.hasOwnProperty.call(aV,cV)){var cL=(-1===c1.indexOf(cV));if(cL){cB+="&dimension"+cV+"="+aV[cV]}}}if(cW){cB+="&data="+m(JSON2.stringify(cW))}else{if(Y){cB+="&data="+m(JSON2.stringify(Y))}}function cI(c3,c4){var c5=JSON2.stringify(c3);if(c5.length>2){return"&"+c4+"="+m(c5)}return""}var c0=cy(bp);var cR=cy(bO);cB+=cI(c0,"cvar");cB+=cI(cR,"e_cvar");if(at){cB+=cI(at,"_cvar");for(cV in cS){if(Object.prototype.hasOwnProperty.call(cS,cV)){if(at[cV][0]===""||at[cV][1]===""){delete at[cV]}}}if(bk){cv(cN,JSON2.stringify(at),bR,aY,ch)}}if(aE){if(bP){cB+="&gt_ms="+bP}else{if(f&&f.timing&&f.timing.requestStart&&f.timing.responseEnd){cB+="&gt_ms="+(f.timing.responseEnd-f.timing.requestStart)}}}cP.lastEcommerceOrderTs=y(cC)&&String(cC).length?cC:cP.lastEcommerceOrderTs;ao(cP);bG();cB+=Q(cX);if(cj.length){cB+="&"+cj}if(r(bE)){cB=bE(cB)}return cB}bl=function aI(){var cz=new Date();if(ci+aH<=cz.getTime()){var cA=bU("ping=1",null,"ping");
-ba(cA,bd);return true}return false};function aZ(cC,cB,cG,cD,cz,cJ){var cE="idgoal=0",cF,cA=new Date(),cH=[],cI;if(String(cC).length){cE+="&ec_id="+m(cC);cF=Math.round(cA.getTime()/1000)}cE+="&revenue="+cB;if(String(cG).length){cE+="&ec_st="+cG}if(String(cD).length){cE+="&ec_tx="+cD}if(String(cz).length){cE+="&ec_sh="+cz}if(String(cJ).length){cE+="&ec_dt="+cJ}if(ck){for(cI in ck){if(Object.prototype.hasOwnProperty.call(ck,cI)){if(!y(ck[cI][1])){ck[cI][1]=""}if(!y(ck[cI][2])){ck[cI][2]=""}if(!y(ck[cI][3])||String(ck[cI][3]).length===0){ck[cI][3]=0}if(!y(ck[cI][4])||String(ck[cI][4]).length===0){ck[cI][4]=1}cH.push(ck[cI])}}cE+="&ec_items="+m(JSON2.stringify(cH))}cE=bU(cE,Y,"ecommerce",cF);ba(cE,bd)}function bs(cz,cD,cC,cB,cA,cE){if(String(cz).length&&y(cD)){aZ(cz,cD,cC,cB,cA,cE)}}function a0(cz){if(y(cz)){aZ("",cz,"","","","")}}function bt(cB,cC){var cz=new Date(),cA=bU("action_name="+m(V(cB||aS)),cC,"log");ba(cA,bd)}function aC(cB,cA){var cC,cz="(^| )(piwik[_-]"+cA;if(cB){for(cC=0;cC<cB.length;
-cC++){cz+="|"+cB[cC]}}cz+=")( |$)";return new RegExp(cz)}function ax(cz){return(ai&&cz&&0===String(cz).indexOf(ai))}function bV(cD,cz,cE,cA){if(ax(cz)){return 0}var cC=aC(bf,"download"),cB=aC(aJ,"link"),cF=new RegExp("\\.("+cp.join("|")+")([?&#]|$)","i");if(cB.test(cD)){return"link"}if(cA||cC.test(cD)||cF.test(cz)){return"download"}if(cE){return 0}return"link"}function ac(cA){var cz;cz=cA.parentNode;while(cz!==null&&y(cz)){if(S.isLinkElement(cA)){break}cA=cz;cz=cA.parentNode}return cA}function ct(cE){cE=ac(cE);if(!S.hasNodeAttribute(cE,"href")){return}if(!y(cE.href)){return}var cD=S.getAttributeValueFromNode(cE,"href");if(ax(cD)){return}var cA=cE.pathname||bN(cE.href);var cF=cE.hostname||c(cE.href);var cG=cF.toLowerCase();var cB=cE.href.replace(cF,cG);var cC=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto):","i");if(!cC.test(cB)){var cz=bV(cE.className,cB,ab(cG,cA),S.hasNodeAttribute(cE,"download"));if(cz){return{type:cz,href:cB}}}}function ar(cz,cA,cB,cC){var cD=n.buildInteractionRequestParams(cz,cA,cB,cC);
-if(!cD){return}return bU(cD,null,"contentInteraction")}function b8(cB,cC,cG,cz,cA){if(!y(cB)){return}if(ax(cB)){return cB}var cE=n.toAbsoluteUrl(cB);var cD="redirecturl="+m(cE)+"&";cD+=ar(cC,cG,cz,(cA||cB));var cF="&";if(ai.indexOf("?")<0){cF="?"}return ai+cF+cD}function aN(cz,cA){if(!cz||!cA){return false}var cB=n.findTargetNode(cz);if(n.shouldIgnoreInteraction(cB)){return false}cB=n.findTargetNodeNoDefault(cz);if(cB&&!J(cB,cA)){return false}return true}function bW(cB,cA,cD){if(!cB){return}var cz=n.findParentContentNode(cB);if(!cz){return}if(!aN(cz,cB)){return}var cC=n.buildContentBlock(cz);if(!cC){return}if(!cC.target&&cD){cC.target=cD}return n.buildInteractionRequestParams(cA,cC.name,cC.piece,cC.target)}function az(cA){if(!bD||!bD.length){return false}var cz,cB;for(cz=0;cz<bD.length;cz++){cB=bD[cz];if(cB&&cB.name===cA.name&&cB.piece===cA.piece&&cB.target===cA.target){return true}}return false}function a9(cC){if(!cC){return false}var cF=n.findTargetNode(cC);if(!cF||n.shouldIgnoreInteraction(cF)){return false
-}var cG=ct(cF);if(cr&&cG&&cG.type){return false}if(S.isLinkElement(cF)&&S.hasNodeAttributeWithValue(cF,"href")){var cz=String(S.getAttributeValueFromNode(cF,"href"));if(0===cz.indexOf("#")){return false}if(ax(cz)){return true}if(!n.isUrlToCurrentDomain(cz)){return false}var cD=n.buildContentBlock(cC);if(!cD){return}var cB=cD.name;var cH=cD.piece;var cE=cD.target;if(!S.hasNodeAttributeWithValue(cF,n.CONTENT_TARGET_ATTR)||cF.wasContentTargetAttrReplaced){cF.wasContentTargetAttrReplaced=true;cE=n.toAbsoluteUrl(cz);S.setAnyAttribute(cF,n.CONTENT_TARGET_ATTR,cE)}var cA=b8(cz,"click",cB,cH,cE);n.setHrefAttribute(cF,cA);return true}return false}function ap(cA){if(!cA||!cA.length){return}var cz;for(cz=0;cz<cA.length;cz++){a9(cA[cz])}}function aB(cz){return function(cA){if(!cz){return}var cD=n.findParentContentNode(cz);var cE;if(cA){cE=cA.target||cA.srcElement}if(!cE){cE=cz}if(!aN(cD,cE)){return}bJ(bd);if(S.isLinkElement(cz)&&S.hasNodeAttributeWithValue(cz,"href")&&S.hasNodeAttributeWithValue(cz,n.CONTENT_TARGET_ATTR)){var cB=S.getAttributeValueFromNode(cz,"href");
-if(!ax(cB)&&cz.wasContentTargetAttrReplaced){S.setAnyAttribute(cz,n.CONTENT_TARGET_ATTR,"")}}var cI=ct(cz);if(Z&&cI&&cI.type){return cI.type}if(a9(cD)){return"href"}var cF=n.buildContentBlock(cD);if(!cF){return}var cC=cF.name;var cJ=cF.piece;var cH=cF.target;var cG=ar("click",cC,cJ,cH);ba(cG,bd);return cG}}function bu(cB){if(!cB||!cB.length){return}var cz,cA;for(cz=0;cz<cB.length;cz++){cA=n.findTargetNode(cB[cz]);if(cA&&!cA.contentInteractionTrackingSetupDone){cA.contentInteractionTrackingSetupDone=true;X(cA,"click",aB(cA))}}}function a4(cB,cC){if(!cB||!cB.length){return[]}var cz,cA;for(cz=0;cz<cB.length;cz++){if(az(cB[cz])){cB.splice(cz,1);cz--}else{bD.push(cB[cz])}}if(!cB||!cB.length){return[]}ap(cC);bu(cC);var cD=[];for(cz=0;cz<cB.length;cz++){cA=bU(n.buildImpressionRequestParams(cB[cz].name,cB[cz].piece,cB[cz].target),undefined,"contentImpressions");cD.push(cA)}return cD}function bZ(cA){var cz=n.collectContent(cA);return a4(cz,cA)}function aL(cA){if(!cA||!cA.length){return[]}var cz;
-for(cz=0;cz<cA.length;cz++){if(!n.isNodeVisible(cA[cz])){cA.splice(cz,1);cz--}}if(!cA||!cA.length){return[]}return bZ(cA)}function ak(cB,cz,cA){var cC=n.buildImpressionRequestParams(cB,cz,cA);return bU(cC,null,"contentImpression")}function cu(cC,cA){if(!cC){return}var cz=n.findParentContentNode(cC);var cB=n.buildContentBlock(cz);if(!cB){return}if(!cA){cA="Unknown"}return ar(cA,cB.name,cB.piece,cB.target)}function ca(cA,cC,cz,cB){return"e_c="+m(cA)+"&e_a="+m(cC)+(y(cz)?"&e_n="+m(cz):"")+(y(cB)?"&e_v="+m(cB):"")}function ad(cB,cD,cz,cC,cE){if(String(cB).length===0||String(cD).length===0){return false}var cA=bU(ca(cB,cD,cz,cC),cE,"event");ba(cA,bd)}function bC(cz,cC,cA,cD){var cB=bU("search="+m(cz)+(cC?"&search_cat="+m(cC):"")+(y(cA)?"&search_count="+cA:""),cD,"sitesearch");ba(cB,bd)}function ce(cz,cC,cB){var cA=bU("idgoal="+cz+(cC?"&revenue="+cC:""),cB,"goal");ba(cA,bd)}function cl(cC,cz,cG,cF,cB){var cE=cz+"="+m(bv(cC));var cA=bW(cB,"click",cC);if(cA){cE+="&"+cA}var cD=bU(cE,cG,"link");ba(cD,(cF?0:bd),cF)
-}function bm(cA,cz){if(cA!==""){return cA+cz.charAt(0).toUpperCase()+cz.slice(1)}return cz}function bK(cE){var cD,cz,cC=["","webkit","ms","moz"],cB;if(!aQ){for(cz=0;cz<cC.length;cz++){cB=cC[cz];if(Object.prototype.hasOwnProperty.call(w,bm(cB,"hidden"))){if(w[bm(cB,"visibilityState")]==="prerender"){cD=true}break}}}if(cD){X(w,cB+"visibilitychange",function cA(){w.removeEventListener(cB+"visibilitychange",cA,false);cE()});return}cE()}function an(cz){if(w.readyState==="complete"){cz()}else{if(I.addEventListener){I.addEventListener("load",cz)}else{if(I.attachEvent){I.attachEvent("onLoad",cz)}}}}function aO(cA){var cz=false;if(w.attachEvent){cz=w.readyState==="complete"}else{cz=w.readyState!=="loading"}if(cz){cA()}else{if(w.addEventListener){w.addEventListener("DOMContentLoaded",cA)}else{if(w.attachEvent){w.attachEvent("onreadystatechange",cA)}}}}function b5(cz){var cA=ct(cz);if(cA&&cA.type){cA.href=j(cA.href);cl(cA.href,cA.type,undefined,null,cz)}}function bY(){return w.all&&!w.addEventListener
-}function cg(cz){var cB=cz.which;var cA=(typeof cz.button);if(!cB&&cA!=="undefined"){if(bY()){if(cz.button&1){cB=1}else{if(cz.button&2){cB=3}else{if(cz.button&4){cB=2}}}}else{if(cz.button===0||cz.button==="0"){cB=1}else{if(cz.button&1){cB=2}else{if(cz.button&2){cB=3}}}}}return cB}function bn(cz){switch(cg(cz)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aD(cz){return cz.target||cz.srcElement}function ag(cz){return function(cC){cC=cC||I.event;var cB=bn(cC);var cD=aD(cC);if(cC.type==="click"){var cA=false;if(cz&&cB==="middle"){cA=true}if(cD&&!cA){b5(cD)}}else{if(cC.type==="mousedown"){if(cB==="middle"&&cD){au=cB;a7=cD}else{au=a7=null}}else{if(cC.type==="mouseup"){if(cB===au&&cD===a7){b5(cD)}au=a7=null}else{if(cC.type==="contextmenu"){b5(cD)}}}}}}function aa(cA,cz){X(cA,"click",ag(cz),false);if(cz){X(cA,"mouseup",ag(cz),false);X(cA,"mousedown",ag(cz),false);X(cA,"contextmenu",ag(cz),false)}}function a8(cA){if(!Z){Z=true;var cB,cz=aC(a6,"ignore"),cC=w.links;if(cC){for(cB=0;
-cB<cC.length;cB++){if(!cz.test(cC[cB].className)){aa(cC[cB],cA)}}}}}function av(cB,cD,cE){if(bI){return true}bI=true;var cF=false;var cC,cA;function cz(){cF=true}an(function(){function cG(cI){setTimeout(function(){if(!bI){return}cF=false;cE.trackVisibleContentImpressions();cG(cI)},cI)}function cH(cI){setTimeout(function(){if(!bI){return}if(cF){cF=false;cE.trackVisibleContentImpressions()}cH(cI)},cI)}if(cB){cC=["scroll","resize"];for(cA=0;cA<cC.length;cA++){if(w.addEventListener){w.addEventListener(cC[cA],cz)}else{I.attachEvent("on"+cC[cA],cz)}}cH(100)}if(cD&&cD>0){cD=parseInt(cD,10);cG(cD)}})}function aK(cD,cF){var cE=bN(cD);var cC=bN(cF);if(!cE||cE==="/"||!cC||cC==="/"){return}var cB=A(cD);if(ab(cB,"/")){return}if(cm(cE,"/")){cE=aP(cE,1)}var cG=cE.split("/");var cA;for(cA=2;cA<cG.length;cA++){var cz=cG.slice(0,cA).join("/");if(ab(cB,cz)){cE=cz;break}}if(!aF(cC,cE)){return}return cE}function b3(){var cB,cD,cE={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"},cA=I.devicePixelRatio||1;
-if(!((new RegExp("MSIE")).test(e.userAgent))){if(e.mimeTypes&&e.mimeTypes.length){for(cB in cE){if(Object.prototype.hasOwnProperty.call(cE,cB)){cD=e.mimeTypes[cE[cB]];cq[cB]=(cD&&cD.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&y(e.javaEnabled)&&e.javaEnabled()){cq.java="1"}if(r(I.GearsFactory)){cq.gears="1"}cq.cookie=by()}var cC=parseInt(M.width,10)*cA;var cz=parseInt(M.height,10)*cA;cq.res=parseInt(cC,10)+"x"+parseInt(cz,10)}b3();aR();ao();return{getVisitorId:function(){return aA().uuid},getVisitorInfo:function(){return b9()},getAttributionInfo:function(){return bg()},getAttributionCampaignName:function(){return bg()[0]},getAttributionCampaignKeyword:function(){return bg()[1]},getAttributionReferrerTimestamp:function(){return bg()[2]},getAttributionReferrerUrl:function(){return bg()[3]},setTrackerUrl:function(cz){ai=cz},getTrackerUrl:function(){return ai},getSiteId:function(){return bz},setSiteId:function(cz){bw(cz)},setUserId:function(cz){if(!y(cz)||!cz.length){return
-}a5=cz;bi=bA(a5).substr(0,16)},getUserId:function(){return a5},setCustomData:function(cz,cA){if(L(cz)){Y=cz}else{if(!Y){Y={}}Y[cz]=cA}},getCustomData:function(){return Y},setCustomRequestProcessing:function(cz){bE=cz},appendToTrackingUrl:function(cz){cj=cz},getRequest:function(cz){return bU(cz)},addPlugin:function(cz,cA){a[cz]=cA},setCustomDimension:function(cz,cA){cz=parseInt(cz,10);if(cz>0){if(!y(cA)){cA=""}if(!o(cA)){cA=String(cA)}aV[cz]=cA}},getCustomDimension:function(cz){cz=parseInt(cz,10);if(cz>0&&Object.prototype.hasOwnProperty.call(aV,cz)){return aV[cz]}},deleteCustomDimension:function(cz){cz=parseInt(cz,10);if(cz>0){delete aV[cz]}},setCustomVariable:function(cA,cz,cD,cB){var cC;if(!y(cB)){cB="visit"}if(!y(cz)){return}if(!y(cD)){cD=""}if(cA>0){cz=!o(cz)?String(cz):cz;cD=!o(cD)?String(cD):cD;cC=[cz.slice(0,a1),cD.slice(0,a1)];if(cB==="visit"||cB===2){b2();at[cA]=cC}else{if(cB==="page"||cB===3){bp[cA]=cC}else{if(cB==="event"){bO[cA]=cC}}}}},getCustomVariable:function(cA,cB){var cz;
-if(!y(cB)){cB="visit"}if(cB==="page"||cB===3){cz=bp[cA]}else{if(cB==="event"){cz=bO[cA]}else{if(cB==="visit"||cB===2){b2();cz=at[cA]}}}if(!y(cz)||(cz&&cz[0]==="")){return false}return cz},deleteCustomVariable:function(cz,cA){if(this.getCustomVariable(cz,cA)){this.setCustomVariable(cz,"","",cA)}},storeCustomVariablesInCookie:function(){bk=true},setLinkTrackingTimer:function(cz){bd=cz},setDownloadExtensions:function(cz){if(o(cz)){cz=cz.split("|")}cp=cz},addDownloadExtensions:function(cA){var cz;if(o(cA)){cA=cA.split("|")}for(cz=0;cz<cA.length;cz++){cp.push(cA[cz])}},removeDownloadExtensions:function(cB){var cA,cz=[];if(o(cB)){cB=cB.split("|")}for(cA=0;cA<cp.length;cA++){if(B(cB,cp[cA])===-1){cz.push(cp[cA])}}cp=cz},setDomains:function(cz){ae=o(cz)?[cz]:cz;var cB=false,cA;for(cA in ae){if(Object.prototype.hasOwnProperty.call(ae,cA)&&b4(cf,A(String(ae[cA])))){cB=true;if(!aY){var cC=aK(ae[cA],bh);if(cC){this.setCookiePath(cC)}break}}}if(!cB){ae.push(cf)}},setIgnoreClasses:function(cz){a6=o(cz)?[cz]:cz
-},setRequestMethod:function(cz){cs=cz||bL},setRequestContentType:function(cz){bX=cz||am},setReferrerUrl:function(cz){aW=cz},setCustomUrl:function(cz){aG=bo(bh,cz)},setDocumentTitle:function(cz){aS=cz},setAPIUrl:function(cz){bc=cz},setDownloadClasses:function(cz){bf=o(cz)?[cz]:cz},setLinkClasses:function(cz){aJ=o(cz)?[cz]:cz},setCampaignNameKey:function(cz){bT=o(cz)?[cz]:cz},setCampaignKeywordKey:function(cz){bb=o(cz)?[cz]:cz},discardHashTag:function(cz){bj=cz},setCookieNamePrefix:function(cz){aT=cz;at=bq()},setCookieDomain:function(cz){var cA=A(cz);if(a3(cA)){ch=cA;aR()}},setCookiePath:function(cz){aY=cz;aR()},setVisitorCookieTimeout:function(cz){b7=cz*1000},setSessionCookieTimeout:function(cz){bR=cz*1000},setReferralCookieTimeout:function(cz){co=cz*1000},setConversionAttributionFirstReferrer:function(cz){a2=cz},disableCookies:function(){aU=true;cq.cookie="0";if(bz){aj()}},deleteCookies:function(){aj()},setDoNotTrack:function(cA){var cz=e.doNotTrack||e.msDoNotTrack;cb=cA&&(cz==="yes"||cz==="1");
-if(cb){this.disableCookies()}},addListener:function(cA,cz){aa(cA,cz)},enableLinkTracking:function(cz){cr=true;if(q){a8(cz)}else{G.push(function(){a8(cz)})}},enableJSErrorTracking:function(){if(cd){return}cd=true;var cz=I.onerror;I.onerror=function(cE,cC,cB,cD,cA){bK(function(){var cF="JavaScript Errors";var cG=cC+":"+cB;if(cD){cG+=":"+cD}ad(cF,cG,cE)});if(cz){return cz(cE,cC,cB,cD,cA)}return false}},disablePerformanceTracking:function(){aE=false},setGenerationTimeMs:function(cz){bP=parseInt(cz,10)},enableHeartBeatTimer:function(cz){cz=Math.max(cz,1);aH=(cz||15)*1000;if(ci!==null){cx()}},killFrame:function(){if(I.location!==I.top.location){I.top.location=I.location}},redirectFile:function(cz){if(I.location.protocol==="file:"){I.location=cz}},setCountPreRendered:function(cz){aQ=cz},trackGoal:function(cz,cB,cA){bK(function(){ce(cz,cB,cA)})},trackLink:function(cA,cz,cC,cB){bK(function(){cl(cA,cz,cC,cB)})},trackPageView:function(cz,cA){bD=[];if(C(bz)){bK(function(){O(ai,bc,bz)})}else{bK(function(){bt(cz,cA)
-})}},trackAllContentImpressions:function(){if(C(bz)){return}bK(function(){aO(function(){var cz=n.findContentNodes();var cA=bZ(cz);cw(cA,bd)})})},trackVisibleContentImpressions:function(cz,cA){if(C(bz)){return}if(!y(cz)){cz=true}if(!y(cA)){cA=750}av(cz,cA,this);bK(function(){an(function(){var cB=n.findContentNodes();var cC=aL(cB);cw(cC,bd)})})},trackContentImpression:function(cB,cz,cA){if(C(bz)){return}if(!cB){return}cz=cz||"Unknown";bK(function(){var cC=ak(cB,cz,cA);ba(cC,bd)})},trackContentImpressionsWithinNode:function(cz){if(C(bz)||!cz){return}bK(function(){if(bI){an(function(){var cA=n.findContentNodesWithinNode(cz);var cB=aL(cA);cw(cB,bd)})}else{aO(function(){var cA=n.findContentNodesWithinNode(cz);var cB=bZ(cA);cw(cB,bd)})}})},trackContentInteraction:function(cB,cC,cz,cA){if(C(bz)){return}if(!cB||!cC){return}cz=cz||"Unknown";bK(function(){var cD=ar(cB,cC,cz,cA);ba(cD,bd)})},trackContentInteractionNode:function(cA,cz){if(C(bz)||!cA){return}bK(function(){var cB=cu(cA,cz);ba(cB,bd)})
-},logAllContentBlocksOnPage:function(){var cA=n.findContentNodes();var cz=n.collectContent(cA);if(console!==undefined&&console&&console.log){console.log(cz)}},trackEvent:function(cA,cC,cz,cB,cD){bK(function(){ad(cA,cC,cz,cB,cD)})},trackSiteSearch:function(cz,cB,cA,cC){bK(function(){bC(cz,cB,cA,cC)})},setEcommerceView:function(cC,cz,cB,cA){if(!y(cB)||!cB.length){cB=""}else{if(cB instanceof Array){cB=JSON2.stringify(cB)}}bp[5]=["_pkc",cB];if(y(cA)&&String(cA).length){bp[2]=["_pkp",cA]}if((!y(cC)||!cC.length)&&(!y(cz)||!cz.length)){return}if(y(cC)&&cC.length){bp[3]=["_pks",cC]}if(!y(cz)||!cz.length){cz=""}bp[4]=["_pkn",cz]},addEcommerceItem:function(cD,cz,cB,cA,cC){if(cD.length){ck[cD]=[cD,cz,cB,cA,cC]}},trackEcommerceOrder:function(cz,cD,cC,cB,cA,cE){bs(cz,cD,cC,cB,cA,cE)},trackEcommerceCartUpdate:function(cz){a0(cz)}}}function x(){return{push:T}}function b(ad,ac){var ae={};var aa,ab;for(aa=0;aa<ac.length;aa++){var Y=ac[aa];ae[Y]=1;for(ab=0;ab<ad.length;ab++){if(ad[ab]&&ad[ab][0]){var Z=ad[ab][0];
-if(Y===Z){T(ad[ab]);delete ad[ab];if(ae[Z]>1){if(console!==undefined&&console&&console.error){console.error("The method "+Z+' is registered more than once in "paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: http://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}}ae[Z]++}}}}return ad}X(I,"beforeunload",U,false);p();Date.prototype.getTimeAlias=Date.prototype.getTime;N=new F();var t=["disableCookies","setTrackerUrl","setAPIUrl","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];_paq=b(_paq,t);for(v=0;v<_paq.length;v++){if(_paq[v]){T(_paq[v])}}_paq=new x();d={addPlugin:function(Y,Z){a[Y]=Z},getTracker:function(Y,Z){if(!y(Z)){Z=this.getAsyncTracker().getSiteId()}if(!y(Y)){Y=this.getAsyncTracker().getTrackerUrl()}return new F(Y,Z)},getAsyncTracker:function(){return N}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return d})}return d
-}())}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}};
+if(ad=="}"){break}if(ae){if(ad==","){ad=y();if(ad=="}"){H()}}else{H()}}if(ad==","||typeof ad!="string"||(F?ad.charAt(0):ad[0])!="@"||y()!=":"){H()}ac[ad.slice(1)]=W(y())}return ac}}H()}return ad};var P=function(ae,ad,af){var ac=w(ae,ad,af);if(ac===L){delete ae[ad]}else{ae[ad]=ac}};var w=function(af,ae,ag){var ad=af[ae],ac;if(typeof ad=="object"&&ad){if(u.call(ad)==E){for(ac=ad.length;ac--;){P(ad,ac,ag)}}else{m(ad,function(ah){P(ad,ah,ag)})}}return ag.call(af,ae,ad)};V.parse=function(ae,af){var ac,ad;G=0;X=""+ae;ac=W(y());if(y()!="$"){H()}G=X=null;return af&&u.call(af)==U?w((ad={},ad[""]=ac,ad),"",af):ac}}}V.runInContext=j;return V}if(h&&!c){j(i,h)}else{var f=i.JSON,k=i.JSON3,d=false;var g=j(i,(i.JSON3={noConflict:function(){if(!d){d=true;i.JSON=f;i.JSON3=k;f=k=null}return g}}));i.JSON={parse:g.parse,stringify:g.stringify}}if(c){define(function(){return g})}}).call(this);JSON2=a})()}if(typeof _paq!=="object"){_paq=[]}if(typeof Piwik!=="object"){Piwik=(function(){var k,a={},x=document,e=navigator,N=screen,J=window,f=J.performance||J.mozPerformance||J.msPerformance||J.webkitPerformance,r=false,H=[],m=J.encodeURIComponent,I=J.decodeURIComponent,h=unescape,O,w,d;
+function j(Z){try{return I(Z)}catch(aa){return unescape(Z)}}function z(aa){var Z=typeof aa;return Z!=="undefined"}function s(Z){return typeof Z==="function"}function M(Z){return typeof Z==="object"}function p(Z){return typeof Z==="string"||Z instanceof String}function t(aa){if(!aa){return true}var Z;var ab=true;for(Z in aa){if(Object.prototype.hasOwnProperty.call(aa,Z)){ab=false}}return ab}function U(){var Z,ab,aa;for(Z=0;Z<arguments.length;Z+=1){aa=arguments[Z];ab=aa.shift();if(p(ab)){O[ab].apply(O,aa)}else{ab.apply(O,aa)}}}function Y(ac,ab,aa,Z){if(ac.addEventListener){ac.addEventListener(ab,aa,Z);return true}if(ac.attachEvent){return ac.attachEvent("on"+ab,aa)}ac["on"+ab]=aa}function R(aa,ad){var Z="",ac,ab;for(ac in a){if(Object.prototype.hasOwnProperty.call(a,ac)){ab=a[ac][aa];if(s(ab)){Z+=ab(ad)}}}return Z}function V(){var Z;R("unload");if(k){do{Z=new Date()}while(Z.getTimeAlias()<k)}}function S(){var Z;if(!r){r=true;R("load");for(Z=0;Z<H.length;Z++){H[Z]()}}return true}function q(){var aa;
+if(x.addEventListener){Y(x,"DOMContentLoaded",function Z(){x.removeEventListener("DOMContentLoaded",Z,false);S()})}else{if(x.attachEvent){x.attachEvent("onreadystatechange",function Z(){if(x.readyState==="complete"){x.detachEvent("onreadystatechange",Z);S()}});if(x.documentElement.doScroll&&J===J.top){(function Z(){if(!r){try{x.documentElement.doScroll("left")}catch(ab){setTimeout(Z,0);return}S()}}())}}}if((new RegExp("WebKit")).test(e.userAgent)){aa=setInterval(function(){if(r||/loaded|complete/.test(x.readyState)){clearInterval(aa);S()}},10)}Y(J,"load",S,false)}function i(ab,aa){var Z=x.createElement("script");Z.type="text/javascript";Z.src=ab;if(Z.readyState){Z.onreadystatechange=function(){var ac=this.readyState;if(ac==="loaded"||ac==="complete"){Z.onreadystatechange=null;aa()}}}else{Z.onload=aa}x.getElementsByTagName("head")[0].appendChild(Z)}function A(){var Z="";try{Z=J.top.document.referrer}catch(ab){if(J.parent){try{Z=J.parent.document.referrer}catch(aa){Z=""}}}if(Z===""){Z=x.referrer
+}return Z}function l(Z){var ab=new RegExp("^([a-z]+):"),aa=ab.exec(Z);return aa?aa[1]:null}function c(Z){var ab=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)"),aa=ab.exec(Z);return aa?aa[1]:Z}function L(ab,aa){var Z="[\\?&#]"+aa+"=([^&#]*)";var ad=new RegExp(Z);var ac=ad.exec(ab);return ac?I(ac[1]):""}function v(Z){return unescape(m(Z))}function X(ao){var ab=function(av,au){return(av<<au)|(av>>>(32-au))},ap=function(ax){var av="",aw,au;for(aw=7;aw>=0;aw--){au=(ax>>>(aw*4))&15;av+=au.toString(16)}return av},ae,ar,aq,aa=[],ai=1732584193,ag=4023233417,af=2562383102,ad=271733878,ac=3285377520,an,am,al,ak,aj,at,Z,ah=[];ao=v(ao);Z=ao.length;for(ar=0;ar<Z-3;ar+=4){aq=ao.charCodeAt(ar)<<24|ao.charCodeAt(ar+1)<<16|ao.charCodeAt(ar+2)<<8|ao.charCodeAt(ar+3);ah.push(aq)}switch(Z&3){case 0:ar=2147483648;break;case 1:ar=ao.charCodeAt(Z-1)<<24|8388608;break;case 2:ar=ao.charCodeAt(Z-2)<<24|ao.charCodeAt(Z-1)<<16|32768;break;case 3:ar=ao.charCodeAt(Z-3)<<24|ao.charCodeAt(Z-2)<<16|ao.charCodeAt(Z-1)<<8|128;
+break}ah.push(ar);while((ah.length&15)!==14){ah.push(0)}ah.push(Z>>>29);ah.push((Z<<3)&4294967295);for(ae=0;ae<ah.length;ae+=16){for(ar=0;ar<16;ar++){aa[ar]=ah[ae+ar]}for(ar=16;ar<=79;ar++){aa[ar]=ab(aa[ar-3]^aa[ar-8]^aa[ar-14]^aa[ar-16],1)}an=ai;am=ag;al=af;ak=ad;aj=ac;for(ar=0;ar<=19;ar++){at=(ab(an,5)+((am&al)|(~am&ak))+aj+aa[ar]+1518500249)&4294967295;aj=ak;ak=al;al=ab(am,30);am=an;an=at}for(ar=20;ar<=39;ar++){at=(ab(an,5)+(am^al^ak)+aj+aa[ar]+1859775393)&4294967295;aj=ak;ak=al;al=ab(am,30);am=an;an=at}for(ar=40;ar<=59;ar++){at=(ab(an,5)+((am&al)|(am&ak)|(al&ak))+aj+aa[ar]+2400959708)&4294967295;aj=ak;ak=al;al=ab(am,30);am=an;an=at}for(ar=60;ar<=79;ar++){at=(ab(an,5)+(am^al^ak)+aj+aa[ar]+3395469782)&4294967295;aj=ak;ak=al;al=ab(am,30);am=an;an=at}ai=(ai+an)&4294967295;ag=(ag+am)&4294967295;af=(af+al)&4294967295;ad=(ad+ak)&4294967295;ac=(ac+aj)&4294967295}at=ap(ai)+ap(ag)+ap(af)+ap(ad)+ap(ac);return at.toLowerCase()}function Q(ab,Z,aa){if(!ab){ab=""}if(!Z){Z=""}if(ab==="translate.googleusercontent.com"){if(aa===""){aa=Z
+}Z=L(Z,"u");ab=c(Z)}else{if(ab==="cc.bingj.com"||ab==="webcache.googleusercontent.com"||ab.slice(0,5)==="74.6."){Z=x.links[0].href;ab=c(Z)}}return[ab,Z,aa]}function B(aa){var Z=aa.length;if(aa.charAt(--Z)==="."){aa=aa.slice(0,Z)}if(aa.slice(0,2)==="*."){aa=aa.slice(1)}if(aa.indexOf("/")!==-1){aa=aa.substr(0,aa.indexOf("/"))}return aa}function W(aa){aa=aa&&aa.text?aa.text:aa;if(!p(aa)){var Z=x.getElementsByTagName("title");if(Z&&z(Z[0])){aa=Z[0].text}}return aa}function F(Z){if(!Z){return[]}if(!z(Z.children)&&z(Z.childNodes)){return Z.children}if(z(Z.children)){return Z.children}return[]}function K(aa,Z){if(!aa||!Z){return false}if(aa.contains){return aa.contains(Z)}if(aa===Z){return true}if(aa.compareDocumentPosition){return !!(aa.compareDocumentPosition(Z)&16)}return false}function C(ab,ac){if(ab&&ab.indexOf){return ab.indexOf(ac)}if(!z(ab)||ab===null){return -1}if(!ab.length){return -1}var Z=ab.length;if(Z===0){return -1}var aa=0;while(aa<Z){if(ab[aa]===ac){return aa}aa++}return -1}function g(ab){if(!ab){return false
+}function Z(ad,ae){if(J.getComputedStyle){return x.defaultView.getComputedStyle(ad,null)[ae]}if(ad.currentStyle){return ad.currentStyle[ae]}}function ac(ad){ad=ad.parentNode;while(ad){if(ad===x){return true}ad=ad.parentNode}return false}function aa(af,al,ad,ai,ag,aj,ah){var ae=af.parentNode,ak=1;if(!ac(af)){return false}if(9===ae.nodeType){return true}if("0"===Z(af,"opacity")||"none"===Z(af,"display")||"hidden"===Z(af,"visibility")){return false}if(!z(al)||!z(ad)||!z(ai)||!z(ag)||!z(aj)||!z(ah)){al=af.offsetTop;ag=af.offsetLeft;ai=al+af.offsetHeight;ad=ag+af.offsetWidth;aj=af.offsetWidth;ah=af.offsetHeight}if(ab===af&&(0===ah||0===aj)&&"hidden"===Z(af,"overflow")){return false}if(ae){if(("hidden"===Z(ae,"overflow")||"scroll"===Z(ae,"overflow"))){if(ag+ak>ae.offsetWidth+ae.scrollLeft||ag+aj-ak<ae.scrollLeft||al+ak>ae.offsetHeight+ae.scrollTop||al+ah-ak<ae.scrollTop){return false}}if(af.offsetParent===ae){ag+=ae.offsetLeft;al+=ae.offsetTop}return aa(ae,al,ad,ai,ag,aj,ah)}return true}return aa(ab)
+}var T={htmlCollectionToArray:function(ab){var Z=[],aa;if(!ab||!ab.length){return Z}for(aa=0;aa<ab.length;aa++){Z.push(ab[aa])}return Z},find:function(Z){if(!document.querySelectorAll||!Z){return[]}var aa=document.querySelectorAll(Z);return this.htmlCollectionToArray(aa)},findMultiple:function(ab){if(!ab||!ab.length){return[]}var aa,ac;var Z=[];for(aa=0;aa<ab.length;aa++){ac=this.find(ab[aa]);Z=Z.concat(ac)}Z=this.makeNodesUnique(Z);return Z},findNodesByTagName:function(aa,Z){if(!aa||!Z||!aa.getElementsByTagName){return[]}var ab=aa.getElementsByTagName(Z);return this.htmlCollectionToArray(ab)},makeNodesUnique:function(Z){var ae=[].concat(Z);Z.sort(function(ag,af){if(ag===af){return 0}var ai=C(ae,ag);var ah=C(ae,af);if(ai===ah){return 0}return ai>ah?-1:1});if(Z.length<=1){return Z}var aa=0;var ac=0;var ad=[];var ab;ab=Z[aa++];while(ab){if(ab===Z[aa]){ac=ad.push(aa)}ab=Z[aa++]||null}while(ac--){Z.splice(ad[ac],1)}return Z},getAttributeValueFromNode:function(ad,ab){if(!this.hasNodeAttribute(ad,ab)){return
+}if(ad&&ad.getAttribute){return ad.getAttribute(ab)}if(!ad||!ad.attributes){return}var ac=(typeof ad.attributes[ab]);if("undefined"===ac){return}if(ad.attributes[ab].value){return ad.attributes[ab].value}if(ad.attributes[ab].nodeValue){return ad.attributes[ab].nodeValue}var aa;var Z=ad.attributes;if(!Z){return}for(aa=0;aa<Z.length;aa++){if(Z[aa].nodeName===ab){return Z[aa].nodeValue}}return null},hasNodeAttributeWithValue:function(aa,Z){var ab=this.getAttributeValueFromNode(aa,Z);return !!ab},hasNodeAttribute:function(ab,Z){if(ab&&ab.hasAttribute){return ab.hasAttribute(Z)}if(ab&&ab.attributes){var aa=(typeof ab.attributes[Z]);return"undefined"!==aa}return false},hasNodeCssClass:function(ab,Z){if(ab&&Z&&ab.className){var aa=typeof ab.className==="string"?ab.className.split(" "):[];if(-1!==C(aa,Z)){return true}}return false},findNodesHavingAttribute:function(ad,ab,Z){if(!Z){Z=[]}if(!ad||!ab){return Z}var ac=F(ad);if(!ac||!ac.length){return Z}var aa,ae;for(aa=0;aa<ac.length;aa++){ae=ac[aa];
+if(this.hasNodeAttribute(ae,ab)){Z.push(ae)}Z=this.findNodesHavingAttribute(ae,ab,Z)}return Z},findFirstNodeHavingAttribute:function(ab,aa){if(!ab||!aa){return}if(this.hasNodeAttribute(ab,aa)){return ab}var Z=this.findNodesHavingAttribute(ab,aa);if(Z&&Z.length){return Z[0]}},findFirstNodeHavingAttributeWithValue:function(ac,ab){if(!ac||!ab){return}if(this.hasNodeAttributeWithValue(ac,ab)){return ac}var Z=this.findNodesHavingAttribute(ac,ab);if(!Z||!Z.length){return}var aa;for(aa=0;aa<Z.length;aa++){if(this.getAttributeValueFromNode(Z[aa],ab)){return Z[aa]}}},findNodesHavingCssClass:function(ad,ac,Z){if(!Z){Z=[]}if(!ad||!ac){return Z}if(ad.getElementsByClassName){var ae=ad.getElementsByClassName(ac);return this.htmlCollectionToArray(ae)}var ab=F(ad);if(!ab||!ab.length){return[]}var aa,af;for(aa=0;aa<ab.length;aa++){af=ab[aa];if(this.hasNodeCssClass(af,ac)){Z.push(af)}Z=this.findNodesHavingCssClass(af,ac,Z)}return Z},findFirstNodeHavingClass:function(ab,aa){if(!ab||!aa){return}if(this.hasNodeCssClass(ab,aa)){return ab
+}var Z=this.findNodesHavingCssClass(ab,aa);if(Z&&Z.length){return Z[0]}},isLinkElement:function(aa){if(!aa){return false}var Z=String(aa.nodeName).toLowerCase();var ac=["a","area"];var ab=C(ac,Z);return ab!==-1},setAnyAttribute:function(aa,Z,ab){if(!aa||!Z){return}if(aa.setAttribute){aa.setAttribute(Z,ab)}else{aa[Z]=ab}}};var o={CONTENT_ATTR:"data-track-content",CONTENT_CLASS:"piwikTrackContent",CONTENT_NAME_ATTR:"data-content-name",CONTENT_PIECE_ATTR:"data-content-piece",CONTENT_PIECE_CLASS:"piwikContentPiece",CONTENT_TARGET_ATTR:"data-content-target",CONTENT_TARGET_CLASS:"piwikContentTarget",CONTENT_IGNOREINTERACTION_ATTR:"data-content-ignoreinteraction",CONTENT_IGNOREINTERACTION_CLASS:"piwikContentIgnoreInteraction",location:undefined,findContentNodes:function(){var aa="."+this.CONTENT_CLASS;var Z="["+this.CONTENT_ATTR+"]";var ab=T.findMultiple([aa,Z]);return ab},findContentNodesWithinNode:function(ac){if(!ac){return[]}var aa=T.findNodesHavingCssClass(ac,this.CONTENT_CLASS);var Z=T.findNodesHavingAttribute(ac,this.CONTENT_ATTR);
+if(Z&&Z.length){var ab;for(ab=0;ab<Z.length;ab++){aa.push(Z[ab])}}if(T.hasNodeAttribute(ac,this.CONTENT_ATTR)){aa.push(ac)}else{if(T.hasNodeCssClass(ac,this.CONTENT_CLASS)){aa.push(ac)}}aa=T.makeNodesUnique(aa);return aa},findParentContentNode:function(aa){if(!aa){return}var ab=aa;var Z=0;while(ab&&ab!==x&&ab.parentNode){if(T.hasNodeAttribute(ab,this.CONTENT_ATTR)){return ab}if(T.hasNodeCssClass(ab,this.CONTENT_CLASS)){return ab}ab=ab.parentNode;if(Z>1000){break}Z++}},findPieceNode:function(aa){var Z;Z=T.findFirstNodeHavingAttribute(aa,this.CONTENT_PIECE_ATTR);if(!Z){Z=T.findFirstNodeHavingClass(aa,this.CONTENT_PIECE_CLASS)}if(Z){return Z}return aa},findTargetNodeNoDefault:function(Z){if(!Z){return}var aa=T.findFirstNodeHavingAttributeWithValue(Z,this.CONTENT_TARGET_ATTR);if(aa){return aa}aa=T.findFirstNodeHavingAttribute(Z,this.CONTENT_TARGET_ATTR);if(aa){return aa}aa=T.findFirstNodeHavingClass(Z,this.CONTENT_TARGET_CLASS);if(aa){return aa}},findTargetNode:function(Z){var aa=this.findTargetNodeNoDefault(Z);
+if(aa){return aa}return Z},findContentName:function(aa){if(!aa){return}var ad=T.findFirstNodeHavingAttributeWithValue(aa,this.CONTENT_NAME_ATTR);if(ad){return T.getAttributeValueFromNode(ad,this.CONTENT_NAME_ATTR)}var Z=this.findContentPiece(aa);if(Z){return this.removeDomainIfIsInLink(Z)}if(T.hasNodeAttributeWithValue(aa,"title")){return T.getAttributeValueFromNode(aa,"title")}var ab=this.findPieceNode(aa);if(T.hasNodeAttributeWithValue(ab,"title")){return T.getAttributeValueFromNode(ab,"title")}var ac=this.findTargetNode(aa);if(T.hasNodeAttributeWithValue(ac,"title")){return T.getAttributeValueFromNode(ac,"title")}},findContentPiece:function(aa){if(!aa){return}var ac=T.findFirstNodeHavingAttributeWithValue(aa,this.CONTENT_PIECE_ATTR);if(ac){return T.getAttributeValueFromNode(ac,this.CONTENT_PIECE_ATTR)}var Z=this.findPieceNode(aa);var ab=this.findMediaUrlInNode(Z);if(ab){return this.toAbsoluteUrl(ab)}},findContentTarget:function(ab){if(!ab){return}var ac=this.findTargetNode(ab);if(T.hasNodeAttributeWithValue(ac,this.CONTENT_TARGET_ATTR)){return T.getAttributeValueFromNode(ac,this.CONTENT_TARGET_ATTR)
+}var aa;if(T.hasNodeAttributeWithValue(ac,"href")){aa=T.getAttributeValueFromNode(ac,"href");return this.toAbsoluteUrl(aa)}var Z=this.findPieceNode(ab);if(T.hasNodeAttributeWithValue(Z,"href")){aa=T.getAttributeValueFromNode(Z,"href");return this.toAbsoluteUrl(aa)}},isSameDomain:function(Z){if(!Z||!Z.indexOf){return false}if(0===Z.indexOf(this.getLocation().origin)){return true}var aa=Z.indexOf(this.getLocation().host);if(8>=aa&&0<=aa){return true}return false},removeDomainIfIsInLink:function(ab){var aa="^https?://[^/]+";var Z="^.*//[^/]+";if(ab&&ab.search&&-1!==ab.search(new RegExp(aa))&&this.isSameDomain(ab)){ab=ab.replace(new RegExp(Z),"");if(!ab){ab="/"}}return ab},findMediaUrlInNode:function(ad){if(!ad){return}var ab=["img","embed","video","audio"];var Z=ad.nodeName.toLowerCase();if(-1!==C(ab,Z)&&T.findFirstNodeHavingAttributeWithValue(ad,"src")){var ac=T.findFirstNodeHavingAttributeWithValue(ad,"src");return T.getAttributeValueFromNode(ac,"src")}if(Z==="object"&&T.hasNodeAttributeWithValue(ad,"data")){return T.getAttributeValueFromNode(ad,"data")
+}if(Z==="object"){var ae=T.findNodesByTagName(ad,"param");if(ae&&ae.length){var aa;for(aa=0;aa<ae.length;aa++){if("movie"===T.getAttributeValueFromNode(ae[aa],"name")&&T.hasNodeAttributeWithValue(ae[aa],"value")){return T.getAttributeValueFromNode(ae[aa],"value")}}}var af=T.findNodesByTagName(ad,"embed");if(af&&af.length){return this.findMediaUrlInNode(af[0])}}},trim:function(Z){if(Z&&String(Z)===Z){return Z.replace(/^\s+|\s+$/g,"")}return Z},isOrWasNodeInViewport:function(ae){if(!ae||!ae.getBoundingClientRect||ae.nodeType!==1){return true}var ad=ae.getBoundingClientRect();var ac=x.documentElement||{};var ab=ad.top<0;if(ab&&ae.offsetTop){ab=(ae.offsetTop+ad.height)>0}var aa=ac.clientWidth;if(J.innerWidth&&aa>J.innerWidth){aa=J.innerWidth}var Z=ac.clientHeight;if(J.innerHeight&&Z>J.innerHeight){Z=J.innerHeight}return((ad.bottom>0||ab)&&ad.right>0&&ad.left<aa&&((ad.top<Z)||ab))},isNodeVisible:function(aa){var Z=g(aa);var ab=this.isOrWasNodeInViewport(aa);return Z&&ab},buildInteractionRequestParams:function(Z,aa,ab,ac){var ad="";
+if(Z){ad+="c_i="+m(Z)}if(aa){if(ad){ad+="&"}ad+="c_n="+m(aa)}if(ab){if(ad){ad+="&"}ad+="c_p="+m(ab)}if(ac){if(ad){ad+="&"}ad+="c_t="+m(ac)}return ad},buildImpressionRequestParams:function(Z,aa,ab){var ac="c_n="+m(Z)+"&c_p="+m(aa);if(ab){ac+="&c_t="+m(ab)}return ac},buildContentBlock:function(ab){if(!ab){return}var Z=this.findContentName(ab);var aa=this.findContentPiece(ab);var ac=this.findContentTarget(ab);Z=this.trim(Z);aa=this.trim(aa);ac=this.trim(ac);return{name:Z||"Unknown",piece:aa||"Unknown",target:ac||""}},collectContent:function(ac){if(!ac||!ac.length){return[]}var ab=[];var Z,aa;for(Z=0;Z<ac.length;Z++){aa=this.buildContentBlock(ac[Z]);if(z(aa)){ab.push(aa)}}return ab},setLocation:function(Z){this.location=Z},getLocation:function(){var Z=this.location||J.location;if(!Z.origin){Z.origin=Z.protocol+"//"+Z.hostname+(Z.port?":"+Z.port:"")}return Z},toAbsoluteUrl:function(aa){if((!aa||String(aa)!==aa)&&aa!==""){return aa}if(""===aa){return this.getLocation().href}if(aa.search(/^\/\//)!==-1){return this.getLocation().protocol+aa
+}if(aa.search(/:\/\//)!==-1){return aa}if(0===aa.indexOf("#")){return this.getLocation().origin+this.getLocation().pathname+aa}if(0===aa.indexOf("?")){return this.getLocation().origin+this.getLocation().pathname+aa}if(0===aa.search("^[a-zA-Z]{2,11}:")){return aa}if(aa.search(/^\//)!==-1){return this.getLocation().origin+aa}var Z="(.*/)";var ab=this.getLocation().origin+this.getLocation().pathname.match(new RegExp(Z))[0];return ab+aa},isUrlToCurrentDomain:function(aa){var ab=this.toAbsoluteUrl(aa);if(!ab){return false}var Z=this.getLocation().origin;if(Z===ab){return true}if(0===String(ab).indexOf(Z)){if(":"===String(ab).substr(Z.length,1)){return false}return true}return false},setHrefAttribute:function(aa,Z){if(!aa||!Z){return}T.setAnyAttribute(aa,"href",Z)},shouldIgnoreInteraction:function(ab){var aa=T.hasNodeAttribute(ab,this.CONTENT_IGNOREINTERACTION_ATTR);var Z=T.hasNodeCssClass(ab,this.CONTENT_IGNOREINTERACTION_CLASS);return aa||Z}};function E(Z,aa){if(aa){return aa}if(Z.slice(-9)==="piwik.php"){Z=Z.slice(0,Z.length-9)
+}return Z}function D(af){var ah="Piwik_Overlay";var aa=new RegExp("index\\.php\\?module=Overlay&action=startOverlaySession&idSite=([0-9]+)&period=([^&]+)&date=([^&]+)(&segment=.*)?$");var ab=aa.exec(x.referrer);if(ab){var ad=ab[1];if(ad!==String(af)){return false}var ae=ab[2],Z=ab[3],ac=ab[4];if(!ac){ac=""}else{if(ac.indexOf("&segment=")===0){ac=ac.substr("&segment=".length)}}J.name=ah+"###"+ae+"###"+Z+"###"+ac}var ag=J.name.split("###");return ag.length===4&&ag[0]===ah}function P(aa,ag,ac){var af=J.name.split("###"),ae=af[1],Z=af[2],ad=af[3],ab=E(aa,ag);i(ab+"plugins/Overlay/client/client.js?v=1",function(){Piwik_Overlay_Client.initialize(ab,ac,ae,Z,ad)})}function n(){if(z(J.frameElement)){return(J.frameElement&&String(J.frameElement.nodeName).toLowerCase()==="iframe")}try{return J.self!==J.top}catch(Z){return true}}function G(bJ,bD){var bz=Q(x.domain,J.location.href,A()),ch=B(bz[0]),bj=j(bz[1]),aY=j(bz[2]),cf=false,bN="GET",cu=bN,an="application/x-www-form-urlencoded; charset=UTF-8",bZ=an,aj=bJ||"",be="",cl="",bB=bD||"",a7="",bk="",aH,aU=x.title,cr=["7z","aac","apk","arc","arj","asf","asx","avi","azw3","bin","csv","deb","dmg","doc","docx","epub","exe","flv","gif","gz","gzip","hqx","ibooks","jar","jpg","jpeg","js","mobi","mp2","mp3","mp4","mpg","mpeg","mov","movie","msi","msp","odb","odf","odg","ods","odt","ogg","ogv","pdf","phps","png","ppt","pptx","qt","qtm","ra","ram","rar","rpm","sea","sit","tar","tbz","tbz2","bz","bz2","tgz","torrent","txt","wav","wma","wmv","wpd","xls","xlsx","xml","z","zip"],af=[ch],a8=[],bh=[],aK=[],bf=500,b8,aI,bn,bl,Z,bV=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],bd=["pk_kwd","piwik_kwd","utm_term"],aV="_pk_",cj,a0,aW=false,cd,aS,a4,b9=33955200000,bT=1800000,cq=15768000000,aF=true,bR=0,bm=false,au=false,bG,br={},bQ={},aX={},a3=200,cm={},cs={},bF=[],bK=false,b2=false,aa=false,ct=false,ar=false,aR=n(),ck=null,bH,av,a9,bC=X,aZ;
+function cx(cH,cE,cD,cG,cC,cF){if(aW){return}var cB;if(cD){cB=new Date();cB.setTime(cB.getTime()+cD)}x.cookie=cH+"="+m(cE)+(cD?";expires="+cB.toGMTString():"")+";path="+(cG||"/")+(cC?";domain="+cC:"")+(cF?";secure":"")}function ai(cD){if(aW){return 0}var cB=new RegExp("(^|;)[ ]*"+cD+"=([^;]*)"),cC=cB.exec(x.cookie);return cC?I(cC[2]):0}function bx(cB){var cC;if(bl){cC=new RegExp("#.*");return cB.replace(cC,"")}return cB}function bq(cD,cB){var cE=l(cB),cC;if(cE){return cB}if(cB.slice(0,1)==="/"){return l(cD)+"://"+c(cD)+cB}cD=bx(cD);cC=cD.indexOf("?");if(cC>=0){cD=cD.slice(0,cC)}cC=cD.lastIndexOf("/");if(cC!==cD.length-1){cD=cD.slice(0,cC+1)}return cD+cB}function b6(cD,cB){var cC;cD=String(cD).toLowerCase();cB=String(cB).toLowerCase();if(cD===cB){return true}if(cB.slice(0,1)==="."){if(cD===cB.slice(1)){return true}cC=cD.length-cB.length;if((cC>0)&&(cD.slice(cC)===cB)){return true}}return false}function co(cC,cB){cC=String(cC);return cC.indexOf(cB,cC.length-cB.length)!==-1}function aQ(cC,cB){cC=String(cC);
+return cC.substr(0,cC.length-cB)}function bP(cB){var cC=document.createElement("a");if(cB.indexOf("//")!==0&&cB.indexOf("http")!==0){cB="http://"+cB}cC.href=o.toAbsoluteUrl(cB);if(cC.pathname){return cC.pathname}return""}function aG(cC,cB){var cD=(!cB||cB==="/");if(cD){return true}if(cC===cB){return true}if(!cC){return false}cB=String(cB).toLowerCase();cC=String(cC).toLowerCase();if(!co(cC,"/")){cC+="/"}if(!co(cB,"/")){cB+="/"}return cC.indexOf(cB)===0}function ac(cF,cH){var cC,cB,cD,cE,cG;for(cC=0;cC<af.length;cC++){cE=B(af[cC]);cG=bP(af[cC]);if(b6(cF,cE)&&aG(cH,cG)){return true}}return false}function az(cE){var cC,cB,cD;for(cC=0;cC<af.length;cC++){cB=B(af[cC].toLowerCase());if(cE===cB){return true}if(cB.slice(0,1)==="."){if(cE===cB.slice(1)){return true}cD=cE.length-cB.length;if((cD>0)&&(cE.slice(cD)===cB)){return true}}}return false}function bU(cB,cD){var cC=new Image(1,1);cC.onload=function(){w=0;if(typeof cD==="function"){cD()}};cC.src=aj+(aj.indexOf("?")<0?"?":"&")+cB}function cp(cC,cF,cB){if(!z(cB)||null===cB){cB=true
+}try{var cE=J.XMLHttpRequest?new J.XMLHttpRequest():J.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;cE.open("POST",aj,true);cE.onreadystatechange=function(){if(this.readyState===4&&!(this.status>=200&&this.status<300)&&cB){bU(cC,cF)}else{if(typeof cF==="function"){cF()}}};cE.setRequestHeader("Content-Type",bZ);cE.send(cC)}catch(cD){if(cB){bU(cC,cF)}}}function bL(cC){var cB=new Date();var cD=cB.getTime()+cC;if(!k||cD>k){k=cD}}function bS(cB){if(bH||!aI){return}bH=setTimeout(function cC(){bH=null;if(!aR){aR=(!x.hasFocus||x.hasFocus())}if(!aR){bS(aI);return}if(bn()){return}var cD=new Date(),cE=aI-(cD.getTime()-ck);cE=Math.min(aI,cE);bS(cE)},cB||aI)}function bg(){if(!bH){return}clearTimeout(bH);bH=null}function aN(){aR=true;if(bn()){return}bS()}function ag(){bg()}function cz(){if(ar||!aI){return}ar=true;Y(J,"focus",aN);Y(J,"blur",ag);bS()}function b3(cF){var cC=new Date();var cB=cC.getTime();ck=cB;if(b2&&cB<b2){var cD=b2-cB;setTimeout(cF,cD);bL(cD+50);b2+=50;return}if(b2===false){var cE=800;
+b2=cB+cE}cF()}function bc(cC,cB,cD){if(!cd&&cC){b3(function(){if(cu==="POST"){cp(cC,cD)}else{bU(cC,cD)}bL(cB)})}if(!ar){cz()}else{bS()}}function bO(cB){if(cd){return false}return(cB&&cB.length)}function cy(cD,cB){if(!bO(cD)){return}var cC='{"requests":["?'+cD.join('","?')+'"]}';b3(function(){cp(cC,null,false);bL(cB)})}function ax(cB){return aV+cB+"."+bB+"."+aZ}function bA(){if(aW){return"0"}if(!z(e.cookieEnabled)){var cB=ax("testcookie");cx(cB,"1");return ai(cB)==="1"?"1":"0"}return e.cookieEnabled?"1":"0"}function aT(){aZ=bC((cj||ch)+(a0||"/")).slice(0,4)}function bs(){var cC=ax("cvar"),cB=ai(cC);if(cB.length){cB=JSON2.parse(cB);if(M(cB)){return cB}}return{}}function b4(){if(au===false){au=bs()}}function ce(){return bC((e.userAgent||"")+(e.platform||"")+JSON2.stringify(cs)+(new Date()).getTime()+Math.random()).slice(0,16)}function cb(){var cD=new Date(),cB=Math.round(cD.getTime()/1000),cC=ax("id"),cG=ai(cC),cF,cE;if(cG){cF=cG.split(".");cF.unshift("0");if(bk.length){cF[1]=bk}return cF}if(bk.length){cE=bk
+}else{if("0"===bA()){cE=""}else{cE=ce()}}cF=["1",cE,cB,0,cB,"",""];return cF}function aB(){var cI=cb(),cE=cI[0],cF=cI[1],cC=cI[2],cB=cI[3],cG=cI[4],cD=cI[5];if(!z(cI[6])){cI[6]=""}var cH=cI[6];return{newVisitor:cE,uuid:cF,createTs:cC,visitCount:cB,currentVisitTs:cG,lastVisitTs:cD,lastEcommerceOrderTs:cH}}function am(){var cE=new Date(),cC=cE.getTime(),cF=aB().createTs;var cB=parseInt(cF,10);var cD=(cB*1000)+b9-cC;return cD}function ap(cB){if(!bB){return}var cD=new Date(),cC=Math.round(cD.getTime()/1000);if(!z(cB)){cB=aB()}var cE=cB.uuid+"."+cB.createTs+"."+cB.visitCount+"."+cC+"."+cB.lastVisitTs+"."+cB.lastEcommerceOrderTs;cx(ax("id"),cE,am(),a0,cj)}function bi(){var cB=ai(ax("ref"));if(cB.length){try{cB=JSON2.parse(cB);if(M(cB)){return cB}}catch(cC){}}return["","",0,""]}function bt(cD,cC,cB){cx(cD,"",-86400,cC,cB)}function a5(cC){var cB="testvalue";cx("test",cB,10000,null,cC);if(ai("test")===cB){bt("test",null,cC);return true}return false}function ak(){var cD=aW;aW=false;var cB=["id","ses","cvar","ref"];
+var cC,cE;for(cC=0;cC<cB.length;cC++){cE=ax(cB[cC]);if(0!==ai(cE)){bt(cE,a0,cj)}}aW=cD}function by(cB){bB=cB;ap()}function cA(cF){if(!cF||!M(cF)){return}var cE=[];var cD;for(cD in cF){if(Object.prototype.hasOwnProperty.call(cF,cD)){cE.push(cD)}}var cG={};cE.sort();var cB=cE.length;var cC;for(cC=0;cC<cB;cC++){cG[cE[cC]]=cF[cE[cC]]}return cG}function bI(){cx(ax("ses"),"*",bT,a0,cj)}function bW(cD,cY,cZ,cE){var cX,cC=new Date(),cL=Math.round(cC.getTime()/1000),cI,cW,cF=1024,c4,cM,cU=au,cG=ax("ses"),cS=ax("ref"),cP=ax("cvar"),cQ=ai(cG),cV=bi(),c1=aH||bj,cJ,cB;if(aW){ak()}if(cd){return""}var cR=aB();if(!z(cE)){cE=""}var cO=x.characterSet||x.charset;if(!cO||cO.toLowerCase()==="utf-8"){cO=null}cJ=cV[0];cB=cV[1];cI=cV[2];cW=cV[3];if(!cQ){var c0=bT/1000;if(!cR.lastVisitTs||(cL-cR.lastVisitTs)>c0){cR.visitCount++;cR.lastVisitTs=cR.currentVisitTs}if(!a4||!cJ.length){for(cX in bV){if(Object.prototype.hasOwnProperty.call(bV,cX)){cJ=L(c1,bV[cX]);if(cJ.length){break}}}for(cX in bd){if(Object.prototype.hasOwnProperty.call(bd,cX)){cB=L(c1,bd[cX]);
+if(cB.length){break}}}}c4=c(aY);cM=cW.length?c(cW):"";if(c4.length&&!az(c4)&&(!a4||!cM.length||az(cM))){cW=aY}if(cW.length||cJ.length){cI=cL;cV=[cJ,cB,cI,bx(cW.slice(0,cF))];cx(cS,JSON2.stringify(cV),cq,a0,cj)}}cD+="&idsite="+bB+"&rec=1&r="+String(Math.random()).slice(2,8)+"&h="+cC.getHours()+"&m="+cC.getMinutes()+"&s="+cC.getSeconds()+"&url="+m(bx(c1))+(aY.length?"&urlref="+m(bx(aY)):"")+((a7&&a7.length)?"&uid="+m(a7):"")+"&_id="+cR.uuid+"&_idts="+cR.createTs+"&_idvc="+cR.visitCount+"&_idn="+cR.newVisitor+(cJ.length?"&_rcn="+m(cJ):"")+(cB.length?"&_rck="+m(cB):"")+"&_refts="+cI+"&_viewts="+cR.lastVisitTs+(String(cR.lastEcommerceOrderTs).length?"&_ects="+cR.lastEcommerceOrderTs:"")+(String(cW).length?"&_ref="+m(bx(cW.slice(0,cF))):"")+(cO?"&cs="+m(cO):"")+"&send_image=0";for(cX in cs){if(Object.prototype.hasOwnProperty.call(cs,cX)){cD+="&"+cX+"="+cs[cX]}}var c3=[];if(cY){for(cX in cY){if(Object.prototype.hasOwnProperty.call(cY,cX)&&/^dimension\d+$/.test(cX)){var cH=cX.replace("dimension","");
+c3.push(parseInt(cH,10));c3.push(String(cH));cD+="&"+cX+"="+cY[cX];delete cY[cX]}}}if(cY&&t(cY)){cY=null}for(cX in aX){if(Object.prototype.hasOwnProperty.call(aX,cX)){var cN=(-1===c3.indexOf(cX));if(cN){cD+="&dimension"+cX+"="+aX[cX]}}}if(cY){cD+="&data="+m(JSON2.stringify(cY))}else{if(Z){cD+="&data="+m(JSON2.stringify(Z))}}function cK(c5,c6){var c7=JSON2.stringify(c5);if(c7.length>2){return"&"+c6+"="+m(c7)}return""}var c2=cA(br);var cT=cA(bQ);cD+=cK(c2,"cvar");cD+=cK(cT,"e_cvar");if(au){cD+=cK(au,"_cvar");for(cX in cU){if(Object.prototype.hasOwnProperty.call(cU,cX)){if(au[cX][0]===""||au[cX][1]===""){delete au[cX]}}}if(bm){cx(cP,JSON2.stringify(au),bT,a0,cj)}}if(aF){if(bR){cD+="&gt_ms="+bR}else{if(f&&f.timing&&f.timing.requestStart&&f.timing.responseEnd){cD+="&gt_ms="+(f.timing.responseEnd-f.timing.requestStart)}}}cR.lastEcommerceOrderTs=z(cE)&&String(cE).length?cE:cR.lastEcommerceOrderTs;ap(cR);bI();cD+=R(cZ);if(cl.length){cD+="&"+cl}if(s(bG)){cD=bG(cD)}return cD}bn=function aJ(){var cB=new Date();
+if(ck+aI<=cB.getTime()){var cC=bW("ping=1",null,"ping");bc(cC,bf);return true}return false};function a1(cE,cD,cI,cF,cB,cL){var cG="idgoal=0",cH,cC=new Date(),cJ=[],cK;if(String(cE).length){cG+="&ec_id="+m(cE);cH=Math.round(cC.getTime()/1000)}cG+="&revenue="+cD;if(String(cI).length){cG+="&ec_st="+cI}if(String(cF).length){cG+="&ec_tx="+cF}if(String(cB).length){cG+="&ec_sh="+cB}if(String(cL).length){cG+="&ec_dt="+cL}if(cm){for(cK in cm){if(Object.prototype.hasOwnProperty.call(cm,cK)){if(!z(cm[cK][1])){cm[cK][1]=""}if(!z(cm[cK][2])){cm[cK][2]=""}if(!z(cm[cK][3])||String(cm[cK][3]).length===0){cm[cK][3]=0}if(!z(cm[cK][4])||String(cm[cK][4]).length===0){cm[cK][4]=1}cJ.push(cm[cK])}}cG+="&ec_items="+m(JSON2.stringify(cJ))}cG=bW(cG,Z,"ecommerce",cH);bc(cG,bf)}function bu(cB,cF,cE,cD,cC,cG){if(String(cB).length&&z(cF)){a1(cB,cF,cE,cD,cC,cG)}}function a2(cB){if(z(cB)){a1("",cB,"","","","")}}function bv(cD,cE){var cB=new Date(),cC=bW("action_name="+m(W(cD||aU)),cE,"log");bc(cC,bf)}function aD(cD,cC){var cE,cB="(^| )(piwik[_-]"+cC;
+if(cD){for(cE=0;cE<cD.length;cE++){cB+="|"+cD[cE]}}cB+=")( |$)";return new RegExp(cB)}function ay(cB){return(aj&&cB&&0===String(cB).indexOf(aj))}function bX(cF,cB,cG,cC){if(ay(cB)){return 0}var cE=aD(bh,"download"),cD=aD(aK,"link"),cH=new RegExp("\\.("+cr.join("|")+")([?&#]|$)","i");if(cD.test(cF)){return"link"}if(cC||cE.test(cF)||cH.test(cB)){return"download"}if(cG){return 0}return"link"}function ad(cC){var cB;cB=cC.parentNode;while(cB!==null&&z(cB)){if(T.isLinkElement(cC)){break}cC=cB;cB=cC.parentNode}return cC}function cv(cG){cG=ad(cG);if(!T.hasNodeAttribute(cG,"href")){return}if(!z(cG.href)){return}var cF=T.getAttributeValueFromNode(cG,"href");if(ay(cF)){return}var cC=cG.pathname||bP(cG.href);var cH=cG.hostname||c(cG.href);var cI=cH.toLowerCase();var cD=cG.href.replace(cH,cI);var cE=new RegExp("^(javascript|vbscript|jscript|mocha|livescript|ecmascript|mailto):","i");if(!cE.test(cD)){var cB=bX(cG.className,cD,ac(cI,cC),T.hasNodeAttribute(cG,"download"));if(cB){return{type:cB,href:cD}
+}}}function at(cB,cC,cD,cE){var cF=o.buildInteractionRequestParams(cB,cC,cD,cE);if(!cF){return}return bW(cF,null,"contentInteraction")}function ca(cD,cE,cI,cB,cC){if(!z(cD)){return}if(ay(cD)){return cD}var cG=o.toAbsoluteUrl(cD);var cF="redirecturl="+m(cG)+"&";cF+=at(cE,cI,cB,(cC||cD));var cH="&";if(aj.indexOf("?")<0){cH="?"}return aj+cH+cF}function aO(cB,cC){if(!cB||!cC){return false}var cD=o.findTargetNode(cB);if(o.shouldIgnoreInteraction(cD)){return false}cD=o.findTargetNodeNoDefault(cB);if(cD&&!K(cD,cC)){return false}return true}function bY(cD,cC,cF){if(!cD){return}var cB=o.findParentContentNode(cD);if(!cB){return}if(!aO(cB,cD)){return}var cE=o.buildContentBlock(cB);if(!cE){return}if(!cE.target&&cF){cE.target=cF}return o.buildInteractionRequestParams(cC,cE.name,cE.piece,cE.target)}function aA(cC){if(!bF||!bF.length){return false}var cB,cD;for(cB=0;cB<bF.length;cB++){cD=bF[cB];if(cD&&cD.name===cC.name&&cD.piece===cC.piece&&cD.target===cC.target){return true}}return false}function bb(cE){if(!cE){return false
+}var cH=o.findTargetNode(cE);if(!cH||o.shouldIgnoreInteraction(cH)){return false}var cI=cv(cH);if(ct&&cI&&cI.type){return false}if(T.isLinkElement(cH)&&T.hasNodeAttributeWithValue(cH,"href")){var cB=String(T.getAttributeValueFromNode(cH,"href"));if(0===cB.indexOf("#")){return false}if(ay(cB)){return true}if(!o.isUrlToCurrentDomain(cB)){return false}var cF=o.buildContentBlock(cE);if(!cF){return}var cD=cF.name;var cJ=cF.piece;var cG=cF.target;if(!T.hasNodeAttributeWithValue(cH,o.CONTENT_TARGET_ATTR)||cH.wasContentTargetAttrReplaced){cH.wasContentTargetAttrReplaced=true;cG=o.toAbsoluteUrl(cB);T.setAnyAttribute(cH,o.CONTENT_TARGET_ATTR,cG)}var cC=ca(cB,"click",cD,cJ,cG);o.setHrefAttribute(cH,cC);return true}return false}function aq(cC){if(!cC||!cC.length){return}var cB;for(cB=0;cB<cC.length;cB++){bb(cC[cB])}}function aC(cB){return function(cC){if(!cB){return}var cF=o.findParentContentNode(cB);var cG;if(cC){cG=cC.target||cC.srcElement}if(!cG){cG=cB}if(!aO(cF,cG)){return}bL(bf);if(T.isLinkElement(cB)&&T.hasNodeAttributeWithValue(cB,"href")&&T.hasNodeAttributeWithValue(cB,o.CONTENT_TARGET_ATTR)){var cD=T.getAttributeValueFromNode(cB,"href");
+if(!ay(cD)&&cB.wasContentTargetAttrReplaced){T.setAnyAttribute(cB,o.CONTENT_TARGET_ATTR,"")}}var cK=cv(cB);if(aa&&cK&&cK.type){return cK.type}if(bb(cF)){return"href"}var cH=o.buildContentBlock(cF);if(!cH){return}var cE=cH.name;var cL=cH.piece;var cJ=cH.target;var cI=at("click",cE,cL,cJ);bc(cI,bf);return cI}}function bw(cD){if(!cD||!cD.length){return}var cB,cC;for(cB=0;cB<cD.length;cB++){cC=o.findTargetNode(cD[cB]);if(cC&&!cC.contentInteractionTrackingSetupDone){cC.contentInteractionTrackingSetupDone=true;Y(cC,"click",aC(cC))}}}function a6(cD,cE){if(!cD||!cD.length){return[]}var cB,cC;for(cB=0;cB<cD.length;cB++){if(aA(cD[cB])){cD.splice(cB,1);cB--}else{bF.push(cD[cB])}}if(!cD||!cD.length){return[]}aq(cE);bw(cE);var cF=[];for(cB=0;cB<cD.length;cB++){cC=bW(o.buildImpressionRequestParams(cD[cB].name,cD[cB].piece,cD[cB].target),undefined,"contentImpressions");cF.push(cC)}return cF}function b1(cC){var cB=o.collectContent(cC);return a6(cB,cC)}function aM(cC){if(!cC||!cC.length){return[]}var cB;
+for(cB=0;cB<cC.length;cB++){if(!o.isNodeVisible(cC[cB])){cC.splice(cB,1);cB--}}if(!cC||!cC.length){return[]}return b1(cC)}function al(cD,cB,cC){var cE=o.buildImpressionRequestParams(cD,cB,cC);return bW(cE,null,"contentImpression")}function cw(cE,cC){if(!cE){return}var cB=o.findParentContentNode(cE);var cD=o.buildContentBlock(cB);if(!cD){return}if(!cC){cC="Unknown"}return at(cC,cD.name,cD.piece,cD.target)}function cc(cC,cE,cB,cD){return"e_c="+m(cC)+"&e_a="+m(cE)+(z(cB)?"&e_n="+m(cB):"")+(z(cD)?"&e_v="+m(cD):"")}function ae(cD,cF,cB,cE,cG){if(String(cD).length===0||String(cF).length===0){return false}var cC=bW(cc(cD,cF,cB,cE),cG,"event");bc(cC,bf)}function bE(cB,cE,cC,cF){var cD=bW("search="+m(cB)+(cE?"&search_cat="+m(cE):"")+(z(cC)?"&search_count="+cC:""),cF,"sitesearch");bc(cD,bf)}function cg(cB,cE,cD){var cC=bW("idgoal="+cB+(cE?"&revenue="+cE:""),cD,"goal");bc(cC,bf)}function cn(cE,cB,cI,cH,cD){var cG=cB+"="+m(bx(cE));var cC=bY(cD,"click",cE);if(cC){cG+="&"+cC}var cF=bW(cG,cI,"link");bc(cF,(cH?0:bf),cH)
+}function bp(cC,cB){if(cC!==""){return cC+cB.charAt(0).toUpperCase()+cB.slice(1)}return cB}function bM(cG){var cF,cB,cE=["","webkit","ms","moz"],cD;if(!aS){for(cB=0;cB<cE.length;cB++){cD=cE[cB];if(Object.prototype.hasOwnProperty.call(x,bp(cD,"hidden"))){if(x[bp(cD,"visibilityState")]==="prerender"){cF=true}break}}}if(cF){Y(x,cD+"visibilitychange",function cC(){x.removeEventListener(cD+"visibilitychange",cC,false);cG()});return}cG()}function ao(cB){if(x.readyState==="complete"){cB()}else{if(J.addEventListener){J.addEventListener("load",cB)}else{if(J.attachEvent){J.attachEvent("onLoad",cB)}}}}function aP(cC){var cB=false;if(x.attachEvent){cB=x.readyState==="complete"}else{cB=x.readyState!=="loading"}if(cB){cC()}else{if(x.addEventListener){x.addEventListener("DOMContentLoaded",cC)}else{if(x.attachEvent){x.attachEvent("onreadystatechange",cC)}}}}function b7(cB){var cC=cv(cB);if(cC&&cC.type){cC.href=j(cC.href);cn(cC.href,cC.type,undefined,null,cB)}}function b0(){return x.all&&!x.addEventListener
+}function ci(cB){var cD=cB.which;var cC=(typeof cB.button);if(!cD&&cC!=="undefined"){if(b0()){if(cB.button&1){cD=1}else{if(cB.button&2){cD=3}else{if(cB.button&4){cD=2}}}}else{if(cB.button===0||cB.button==="0"){cD=1}else{if(cB.button&1){cD=2}else{if(cB.button&2){cD=3}}}}}return cD}function bo(cB){switch(ci(cB)){case 1:return"left";case 2:return"middle";case 3:return"right"}}function aE(cB){return cB.target||cB.srcElement}function ah(cB){return function(cE){cE=cE||J.event;var cD=bo(cE);var cF=aE(cE);if(cE.type==="click"){var cC=false;if(cB&&cD==="middle"){cC=true}if(cF&&!cC){b7(cF)}}else{if(cE.type==="mousedown"){if(cD==="middle"&&cF){av=cD;a9=cF}else{av=a9=null}}else{if(cE.type==="mouseup"){if(cD===av&&cF===a9){b7(cF)}av=a9=null}else{if(cE.type==="contextmenu"){b7(cF)}}}}}}function ab(cC,cB){Y(cC,"click",ah(cB),false);if(cB){Y(cC,"mouseup",ah(cB),false);Y(cC,"mousedown",ah(cB),false);Y(cC,"contextmenu",ah(cB),false)}}function ba(cC){if(!aa){aa=true;var cD,cB=aD(a8,"ignore"),cE=x.links;if(cE){for(cD=0;
+cD<cE.length;cD++){if(!cB.test(cE[cD].className)){ab(cE[cD],cC)}}}}}function aw(cD,cF,cG){if(bK){return true}bK=true;var cH=false;var cE,cC;function cB(){cH=true}ao(function(){function cI(cK){setTimeout(function(){if(!bK){return}cH=false;cG.trackVisibleContentImpressions();cI(cK)},cK)}function cJ(cK){setTimeout(function(){if(!bK){return}if(cH){cH=false;cG.trackVisibleContentImpressions()}cJ(cK)},cK)}if(cD){cE=["scroll","resize"];for(cC=0;cC<cE.length;cC++){if(x.addEventListener){x.addEventListener(cE[cC],cB)}else{J.attachEvent("on"+cE[cC],cB)}}cJ(100)}if(cF&&cF>0){cF=parseInt(cF,10);cI(cF)}})}function aL(cF,cH){var cG=bP(cF);var cE=bP(cH);if(!cG||cG==="/"||!cE||cE==="/"){return}var cD=B(cF);if(ac(cD,"/")){return}if(co(cG,"/")){cG=aQ(cG,1)}var cI=cG.split("/");var cC;for(cC=2;cC<cI.length;cC++){var cB=cI.slice(0,cC).join("/");if(ac(cD,cB)){cG=cB;break}}if(!aG(cE,cG)){return}return cG}function b5(){var cD,cF,cG={pdf:"application/pdf",qt:"video/quicktime",realp:"audio/x-pn-realaudio-plugin",wma:"application/x-mplayer2",dir:"application/x-director",fla:"application/x-shockwave-flash",java:"application/x-java-vm",gears:"application/x-googlegears",ag:"application/x-silverlight"},cC=J.devicePixelRatio||1;
+if(!((new RegExp("MSIE")).test(e.userAgent))){if(e.mimeTypes&&e.mimeTypes.length){for(cD in cG){if(Object.prototype.hasOwnProperty.call(cG,cD)){cF=e.mimeTypes[cG[cD]];cs[cD]=(cF&&cF.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unknown"&&z(e.javaEnabled)&&e.javaEnabled()){cs.java="1"}if(s(J.GearsFactory)){cs.gears="1"}cs.cookie=bA()}var cE=parseInt(N.width,10)*cC;var cB=parseInt(N.height,10)*cC;cs.res=parseInt(cE,10)+"x"+parseInt(cB,10)}b5();aT();ap();return{getVisitorId:function(){return aB().uuid},getVisitorInfo:function(){return cb()},getAttributionInfo:function(){return bi()},getAttributionCampaignName:function(){return bi()[0]},getAttributionCampaignKeyword:function(){return bi()[1]},getAttributionReferrerTimestamp:function(){return bi()[2]},getAttributionReferrerUrl:function(){return bi()[3]},setTrackerUrl:function(cB){aj=cB},getTrackerUrl:function(){return aj},getSiteId:function(){return bB},setSiteId:function(cB){by(cB)},setUserId:function(cB){if(!z(cB)||!cB.length){return
+}a7=cB;bk=bC(a7).substr(0,16)},getUserId:function(){return a7},setCustomData:function(cB,cC){if(M(cB)){Z=cB}else{if(!Z){Z={}}Z[cB]=cC}},getCustomData:function(){return Z},setCustomRequestProcessing:function(cB){bG=cB},appendToTrackingUrl:function(cB){cl=cB},getRequest:function(cB){return bW(cB)},addPlugin:function(cB,cC){a[cB]=cC},setCustomDimension:function(cB,cC){cB=parseInt(cB,10);if(cB>0){if(!z(cC)){cC=""}if(!p(cC)){cC=String(cC)}aX[cB]=cC}},getCustomDimension:function(cB){cB=parseInt(cB,10);if(cB>0&&Object.prototype.hasOwnProperty.call(aX,cB)){return aX[cB]}},deleteCustomDimension:function(cB){cB=parseInt(cB,10);if(cB>0){delete aX[cB]}},setCustomVariable:function(cC,cB,cF,cD){var cE;if(!z(cD)){cD="visit"}if(!z(cB)){return}if(!z(cF)){cF=""}if(cC>0){cB=!p(cB)?String(cB):cB;cF=!p(cF)?String(cF):cF;cE=[cB.slice(0,a3),cF.slice(0,a3)];if(cD==="visit"||cD===2){b4();au[cC]=cE}else{if(cD==="page"||cD===3){br[cC]=cE}else{if(cD==="event"){bQ[cC]=cE}}}}},getCustomVariable:function(cC,cD){var cB;
+if(!z(cD)){cD="visit"}if(cD==="page"||cD===3){cB=br[cC]}else{if(cD==="event"){cB=bQ[cC]}else{if(cD==="visit"||cD===2){b4();cB=au[cC]}}}if(!z(cB)||(cB&&cB[0]==="")){return false}return cB},deleteCustomVariable:function(cB,cC){if(this.getCustomVariable(cB,cC)){this.setCustomVariable(cB,"","",cC)}},storeCustomVariablesInCookie:function(){bm=true},setLinkTrackingTimer:function(cB){bf=cB},setDownloadExtensions:function(cB){if(p(cB)){cB=cB.split("|")}cr=cB},addDownloadExtensions:function(cC){var cB;if(p(cC)){cC=cC.split("|")}for(cB=0;cB<cC.length;cB++){cr.push(cC[cB])}},removeDownloadExtensions:function(cD){var cC,cB=[];if(p(cD)){cD=cD.split("|")}for(cC=0;cC<cr.length;cC++){if(C(cD,cr[cC])===-1){cB.push(cr[cC])}}cr=cB},setDomains:function(cB){af=p(cB)?[cB]:cB;var cD=false,cC;for(cC in af){if(Object.prototype.hasOwnProperty.call(af,cC)&&b6(ch,B(String(af[cC])))){cD=true;if(!a0){var cE=aL(af[cC],bj);if(cE){this.setCookiePath(cE)}break}}}if(!cD){af.push(ch)}},setIgnoreClasses:function(cB){a8=p(cB)?[cB]:cB
+},setRequestMethod:function(cB){cu=cB||bN},setRequestContentType:function(cB){bZ=cB||an},setReferrerUrl:function(cB){aY=cB},setCustomUrl:function(cB){aH=bq(bj,cB)},setDocumentTitle:function(cB){aU=cB},setAPIUrl:function(cB){be=cB},setDownloadClasses:function(cB){bh=p(cB)?[cB]:cB},setLinkClasses:function(cB){aK=p(cB)?[cB]:cB},setCampaignNameKey:function(cB){bV=p(cB)?[cB]:cB},setCampaignKeywordKey:function(cB){bd=p(cB)?[cB]:cB},discardHashTag:function(cB){bl=cB},setCookieNamePrefix:function(cB){aV=cB;au=bs()},setCookieDomain:function(cB){var cC=B(cB);if(a5(cC)){cj=cC;aT()}},setCookiePath:function(cB){a0=cB;aT()},setVisitorCookieTimeout:function(cB){b9=cB*1000},setSessionCookieTimeout:function(cB){bT=cB*1000},setReferralCookieTimeout:function(cB){cq=cB*1000},setConversionAttributionFirstReferrer:function(cB){a4=cB},disableCookies:function(){aW=true;cs.cookie="0";if(bB){ak()}},deleteCookies:function(){ak()},setDoNotTrack:function(cC){var cB=e.doNotTrack||e.msDoNotTrack;cd=cC&&(cB==="yes"||cB==="1");
+if(cd){this.disableCookies()}},addListener:function(cC,cB){ab(cC,cB)},enableLinkTracking:function(cB){ct=true;if(r){ba(cB)}else{H.push(function(){ba(cB)})}},enableJSErrorTracking:function(){if(cf){return}cf=true;var cB=J.onerror;J.onerror=function(cG,cE,cD,cF,cC){bM(function(){var cH="JavaScript Errors";var cI=cE+":"+cD;if(cF){cI+=":"+cF}ae(cH,cI,cG)});if(cB){return cB(cG,cE,cD,cF,cC)}return false}},disablePerformanceTracking:function(){aF=false},setGenerationTimeMs:function(cB){bR=parseInt(cB,10)},enableHeartBeatTimer:function(cB){cB=Math.max(cB,1);aI=(cB||15)*1000;if(ck!==null){cz()}},killFrame:function(){if(J.location!==J.top.location){J.top.location=J.location}},redirectFile:function(cB){if(J.location.protocol==="file:"){J.location=cB}},setCountPreRendered:function(cB){aS=cB},trackGoal:function(cB,cD,cC){bM(function(){cg(cB,cD,cC)})},trackLink:function(cC,cB,cE,cD){bM(function(){cn(cC,cB,cE,cD)})},trackPageView:function(cB,cC){bF=[];if(D(bB)){bM(function(){P(aj,be,bB)})}else{bM(function(){bv(cB,cC)
+})}},trackAllContentImpressions:function(){if(D(bB)){return}bM(function(){aP(function(){var cB=o.findContentNodes();var cC=b1(cB);cy(cC,bf)})})},trackVisibleContentImpressions:function(cB,cC){if(D(bB)){return}if(!z(cB)){cB=true}if(!z(cC)){cC=750}aw(cB,cC,this);bM(function(){ao(function(){var cD=o.findContentNodes();var cE=aM(cD);cy(cE,bf)})})},trackContentImpression:function(cD,cB,cC){if(D(bB)){return}if(!cD){return}cB=cB||"Unknown";bM(function(){var cE=al(cD,cB,cC);bc(cE,bf)})},trackContentImpressionsWithinNode:function(cB){if(D(bB)||!cB){return}bM(function(){if(bK){ao(function(){var cC=o.findContentNodesWithinNode(cB);var cD=aM(cC);cy(cD,bf)})}else{aP(function(){var cC=o.findContentNodesWithinNode(cB);var cD=b1(cC);cy(cD,bf)})}})},trackContentInteraction:function(cD,cE,cB,cC){if(D(bB)){return}if(!cD||!cE){return}cB=cB||"Unknown";bM(function(){var cF=at(cD,cE,cB,cC);bc(cF,bf)})},trackContentInteractionNode:function(cC,cB){if(D(bB)||!cC){return}bM(function(){var cD=cw(cC,cB);bc(cD,bf)})
+},logAllContentBlocksOnPage:function(){var cC=o.findContentNodes();var cB=o.collectContent(cC);if(console!==undefined&&console&&console.log){console.log(cB)}},trackEvent:function(cC,cE,cB,cD,cF){bM(function(){ae(cC,cE,cB,cD,cF)})},trackSiteSearch:function(cB,cD,cC,cE){bM(function(){bE(cB,cD,cC,cE)})},setEcommerceView:function(cE,cB,cD,cC){if(!z(cD)||!cD.length){cD=""}else{if(cD instanceof Array){cD=JSON2.stringify(cD)}}br[5]=["_pkc",cD];if(z(cC)&&String(cC).length){br[2]=["_pkp",cC]}if((!z(cE)||!cE.length)&&(!z(cB)||!cB.length)){return}if(z(cE)&&cE.length){br[3]=["_pks",cE]}if(!z(cB)||!cB.length){cB=""}br[4]=["_pkn",cB]},addEcommerceItem:function(cF,cB,cD,cC,cE){if(cF.length){cm[cF]=[cF,cB,cD,cC,cE]}},trackEcommerceOrder:function(cB,cF,cE,cD,cC,cG){bu(cB,cF,cE,cD,cC,cG)},trackEcommerceCartUpdate:function(cB){a2(cB)}}}function y(){return{push:U}}function b(ae,ad){var af={};var ab,ac;for(ab=0;ab<ad.length;ab++){var Z=ad[ab];af[Z]=1;for(ac=0;ac<ae.length;ac++){if(ae[ac]&&ae[ac][0]){var aa=ae[ac][0];
+if(Z===aa){U(ae[ac]);delete ae[ac];if(af[aa]>1){if(console!==undefined&&console&&console.error){console.error("The method "+aa+' is registered more than once in "paq" variable. Only the last call has an effect. Please have a look at the multiple Piwik trackers documentation: http://developer.piwik.org/guides/tracking-javascript-guide#multiple-piwik-trackers')}}af[aa]++}}}}return ae}Y(J,"beforeunload",V,false);q();Date.prototype.getTimeAlias=Date.prototype.getTime;O=new G();var u=["disableCookies","setTrackerUrl","setAPIUrl","setCookiePath","setCookieDomain","setDomains","setUserId","setSiteId","enableLinkTracking"];_paq=b(_paq,u);for(w=0;w<_paq.length;w++){if(_paq[w]){U(_paq[w])}}_paq=new y();d={addPlugin:function(Z,aa){a[Z]=aa},getTracker:function(Z,aa){if(!z(aa)){aa=this.getAsyncTracker().getSiteId()}if(!z(Z)){Z=this.getAsyncTracker().getTrackerUrl()}return new G(Z,aa)},getAsyncTracker:function(){return O}};if(typeof define==="function"&&define.amd){define("piwik",[],function(){return d
+})}return d}())}if(window&&window.piwikAsyncInit){window.piwikAsyncInit()}(function(){var a=(typeof AnalyticsTracker);if(a==="undefined"){AnalyticsTracker=Piwik}}());if(typeof piwik_log!=="function"){piwik_log=function(b,f,d,g){function a(h){try{if(window["piwik_"+h]){return window["piwik_"+h]}}catch(i){}return}var c,e=Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}};
/*! @license-end */
}; \ No newline at end of file
diff --git a/plugins/API/API.php b/plugins/API/API.php
index 4eab2c63fd..528d17e8cf 100644
--- a/plugins/API/API.php
+++ b/plugins/API/API.php
@@ -434,7 +434,21 @@ class API extends \Piwik\Plugin\API
$result = array();
foreach ($urls as $url) {
- $req = new Request($url . '&format=php&serialize=0');
+ $params = Request::getRequestArrayFromString($url . '&format=php&serialize=0');
+
+ if (isset($params['urls']) && $params['urls'] == $urls) {
+ // by default 'urls' is added to $params as Request::getRequestArrayFromString adds all $_GET/$_POST
+ // default parameters
+ unset($params['urls']);
+ }
+
+ if (!empty($params['segment']) && strpos($url, 'segment=') > -1) {
+ // only unsanitize input when segment is actually present in URL, not when it was used from
+ // $defaultRequest in Request::getRequestArrayFromString from $_GET/$_POST
+ $params['segment'] = urlencode(Common::unsanitizeInputValue($params['segment']));
+ }
+
+ $req = new Request($params);
$result[] = $req->process();
}
return $result;
diff --git a/plugins/API/Renderer/Original.php b/plugins/API/Renderer/Original.php
index 33722b7026..a0730acf2b 100644
--- a/plugins/API/Renderer/Original.php
+++ b/plugins/API/Renderer/Original.php
@@ -50,7 +50,9 @@ class Original extends ApiRenderer
public function sendHeader()
{
- Common::sendHeader('Content-Type: text/plain; charset=utf-8');
+ if ($this->shouldSerialize()) {
+ Common::sendHeader('Content-Type: text/plain; charset=utf-8');
+ }
}
/**
diff --git a/plugins/API/SegmentMetadata.php b/plugins/API/SegmentMetadata.php
index caf89b7ea3..4be514978c 100644
--- a/plugins/API/SegmentMetadata.php
+++ b/plugins/API/SegmentMetadata.php
@@ -101,7 +101,7 @@ class SegmentMetadata
'category' => Piwik::translate('General_Visit'),
'name' => Piwik::translate('General_Visit') . " ID",
'segment' => 'visitId',
- 'acceptedValues' => 'Any integer. ',
+ 'acceptedValues' => 'Any integer.',
'sqlSegment' => 'log_visit.idvisit',
'permission' => $isAuthenticatedWithViewAccess,
);
diff --git a/plugins/API/lang/ar.json b/plugins/API/lang/ar.json
index 0a89babfd4..d5396d9aee 100644
--- a/plugins/API/lang/ar.json
+++ b/plugins/API/lang/ar.json
@@ -1,12 +1,12 @@
{
"API": {
- "GenerateVisits": "إذا كنت لا تملك بيانات لليوم الحالي، فيمكنك أن تنشئ بعض البيانات باستخدام تطبيق %s. يمكنك تفعيل تطبيق %s، ثم النقر على قائمة \"مولد الزوا\" في لوحة إدارة Piwik.",
- "KeepTokenSecret": "مفتاح المصادقة هذا سري كما هو الحال في اسم المستخدم ولكلمة المرور، %s لا تعطه لأحد قط%s!",
+ "GenerateVisits": "إذا كنت لا تملك بيانات لليوم الحالي، فيمكنك أن تنشئ بعض البيانات باستخدام تطبيق %1$s. يمكنك تفعيل تطبيق %2$s، ثم النقر على قائمة \"مولد الزوا\" في لوحة إدارة Piwik.",
+ "KeepTokenSecret": "مفتاح المصادقة هذا سري كما هو الحال في اسم المستخدم ولكلمة المرور، %1$s لا تعطه لأحد قط%2$s!",
"LoadedAPIs": "تم تحميل %s واجهة تطبيقات.",
- "MoreInformation": "لمزيد من المعلومات حول واجهة التطبيقات لبرنامج Piwik، الرجاء مراجعة %s مقدمة إلى واجهة تطبيقات Piwik %s وكذلك %sدليل واجهة تطبيقات Piwik %s.",
+ "MoreInformation": "لمزيد من المعلومات حول واجهة التطبيقات لبرنامج Piwik، الرجاء مراجعة %1$s مقدمة إلى واجهة تطبيقات Piwik %2$s وكذلك %3$sدليل واجهة تطبيقات Piwik %4$s.",
"PluginDescription": "يمكن الحصول على جميع بيانات Piwik عبر واجهات برمجية بسيطة. وهذه الإضافة هي نقطة بداية خدمة وب يمكنك استدعاؤها للحصول على بيانات تحليلات وب بصيغ xml ، json ، php ، csv وغيرها",
"TopLinkTooltip": "الوصول إلى تحليلات ويب الخاصة بك برمجياً عبر واجهة تطبيقات بسيطة API على شكل json, xml وغيرها.",
"UserAuthentication": "مصادقة المستخدم",
- "UsingTokenAuth": "إذا كنت ترغب في %s طلب بيانات من خلال نص برمجي أو Crontab، أو غيرها %s فستحتاج إلى إضافة باراميتر %s في روابط طلبات API والتي تتطلب المصادقة."
+ "UsingTokenAuth": "إذا كنت ترغب في %1$s طلب بيانات من خلال نص برمجي أو Crontab، أو غيرها %2$s فستحتاج إلى إضافة باراميتر %3$s في روابط طلبات API والتي تتطلب المصادقة."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/be.json b/plugins/API/lang/be.json
index c93365a068..bb2846663d 100644
--- a/plugins/API/lang/be.json
+++ b/plugins/API/lang/be.json
@@ -1,10 +1,10 @@
{
"API": {
- "GenerateVisits": "Калі ў вас няма дадзеных на сённяшні дзень, вы можаце стварыць некаторыя дадзеныя, выкарыстоўваючы даданы модуль %s. Уключыце даданы модуль %s, затым націсніце на \"Генератар наведванняў\" у адміністрацыйнай частцы Piwik.",
- "KeepTokenSecret": "Гэта ідэнтыфікацыйны токэн, ён такі жа сакрэтны, як ваш лагін і пароль, %s не дзеліцеся ім ня з кім%s!",
+ "GenerateVisits": "Калі ў вас няма дадзеных на сённяшні дзень, вы можаце стварыць некаторыя дадзеныя, выкарыстоўваючы даданы модуль %1$s. Уключыце даданы модуль %2$s, затым націсніце на \"Генератар наведванняў\" у адміністрацыйнай частцы Piwik.",
+ "KeepTokenSecret": "Гэта ідэнтыфікацыйны токэн, ён такі жа сакрэтны, як ваш лагін і пароль, %1$s не дзеліцеся ім ня з кім%2$s!",
"LoadedAPIs": "%s API паспяхова загружаны",
- "MoreInformation": "Дадатковыя звесткі аб Piwik API, калі ласка, звярніце ўвагу на %s Уводзіны ў Piwik API %s і %s Piwik API спасылкі %s.",
+ "MoreInformation": "Дадатковыя звесткі аб Piwik API, калі ласка, звярніце ўвагу на %1$s Уводзіны ў Piwik API %2$s і %3$s Piwik API спасылкі %4$s.",
"UserAuthentication": "Аўтэнтыфікацыя карыстальніка",
- "UsingTokenAuth": "Калі вы жадаеце %s запытаць дадзеныя ў рамках скрыпта, кронтаба і г.д. %s. Вам патрабуецца дадаць параметр %s да API каб выклікаць URL-адрасоў, якія патрабуюць праверкі сапраўднасці."
+ "UsingTokenAuth": "Калі вы жадаеце %1$s запытаць дадзеныя ў рамках скрыпта, кронтаба і г.д. %2$s. Вам патрабуецца дадаць параметр %3$s да API каб выклікаць URL-адрасоў, якія патрабуюць праверкі сапраўднасці."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/bg.json b/plugins/API/lang/bg.json
index fd377bf4a3..360fb546cf 100644
--- a/plugins/API/lang/bg.json
+++ b/plugins/API/lang/bg.json
@@ -1,11 +1,11 @@
{
"API": {
- "GenerateVisits": "Ако не разполагате с данни за днес можете да генерирате такива с помощта на добавката %s. Вие можете да активирате добавката %s, след което натиснете на „Генератор на посещения“, намиращ се в менюто на администраторската среда на Piwik.",
- "KeepTokenSecret": "Това token_auth е тайна, като Вашето потребителско име и парола, %s не го споделяйте%s!",
+ "GenerateVisits": "Ако не разполагате с данни за днес можете да генерирате такива с помощта на добавката %1$s. Вие можете да активирате добавката %2$s, след което натиснете на „Генератор на посещения“, намиращ се в менюто на администраторската среда на Piwik.",
+ "KeepTokenSecret": "Това token_auth е тайна, като Вашето потребителско име и парола, %1$s не го споделяйте%2$s!",
"LoadedAPIs": "Успешно заредени %s API-та",
- "MoreInformation": "За повече информация за Piwik API-тата, моля погледнете %s Въведение в Piwik API%s и %s Piwik API Референт%s.",
+ "MoreInformation": "За повече информация за Piwik API-тата, моля погледнете %1$s Въведение в Piwik API%2$s и %3$s Piwik API Референт%4$s.",
"TopLinkTooltip": "Информацията за уеб анализите може да бъде достъпена чрез прост приложно-програмен интерфейс в json, xml и др. формат.",
"UserAuthentication": "Удостоверяване на потребителя",
- "UsingTokenAuth": "Ако искате да %s вмъкнете данните със скрипт, crontab, др. %s трябва да добавите параметър %s на API кода за повиквания на URL адреси, които изискват удостоверяване."
+ "UsingTokenAuth": "Ако искате да %1$s вмъкнете данните със скрипт, crontab, др. %2$s трябва да добавите параметър %3$s на API кода за повиквания на URL адреси, които изискват удостоверяване."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/bs.json b/plugins/API/lang/bs.json
index 282c1167fc..c4af484c2f 100644
--- a/plugins/API/lang/bs.json
+++ b/plugins/API/lang/bs.json
@@ -1,7 +1,7 @@
{
"API": {
- "GenerateVisits": "Ako nemate podataka za danas onda možete prvo generisati neke podatke sa dodatkom %s. Ovo možete uraditi ako uključite dodatak %s i zatim kliknete na 'Proizvođač posjetilaca' u meniju koja se nalazi u Piwik adminskom prostoru.",
- "KeepTokenSecret": "Ovaj token_auth je povjerljiv podatak poput vašeg korisničkog imena i lozine. %s Nemojte ga dijeliti sa drugima%s!",
+ "GenerateVisits": "Ako nemate podataka za danas onda možete prvo generisati neke podatke sa dodatkom %1$s. Ovo možete uraditi ako uključite dodatak %2$s i zatim kliknete na 'Proizvođač posjetilaca' u meniju koja se nalazi u Piwik adminskom prostoru.",
+ "KeepTokenSecret": "Ovaj token_auth je povjerljiv podatak poput vašeg korisničkog imena i lozine. %1$s Nemojte ga dijeliti sa drugima%2$s!",
"LoadedAPIs": "Uspješno učitani %s API(-ovi)"
}
} \ No newline at end of file
diff --git a/plugins/API/lang/ca.json b/plugins/API/lang/ca.json
index 74d13ad58c..4222e8869e 100644
--- a/plugins/API/lang/ca.json
+++ b/plugins/API/lang/ca.json
@@ -1,11 +1,11 @@
{
"API": {
- "GenerateVisits": "Si no disposeu d'informació d'avui podeu generar informació utilitzant l'extensió: %s. Heu d'activar l'extensió %s i desprès anar al menú 'Generador de visites' de l'espai d'administració del Piwik.",
- "KeepTokenSecret": "El token_auth es tan secret com el vostre usuari i la vostra contrasenya, %s no compartiu el seu %s!",
+ "GenerateVisits": "Si no disposeu d'informació d'avui podeu generar informació utilitzant l'extensió: %1$s. Heu d'activar l'extensió %2$s i desprès anar al menú 'Generador de visites' de l'espai d'administració del Piwik.",
+ "KeepTokenSecret": "El token_auth es tan secret com el vostre usuari i la vostra contrasenya, %1$s no compartiu el seu %2$s!",
"LoadedAPIs": "S'ha carregat correctament un total de %s API",
- "MoreInformation": "Per mes informació sobre les APIs de Piwik, siusplau reviseu %s Introducció a l'API de Piwik %s i %s la Referència de l'API de Piwik %s.",
+ "MoreInformation": "Per mes informació sobre les APIs de Piwik, siusplau reviseu %1$s Introducció a l'API de Piwik %2$s i %3$s la Referència de l'API de Piwik %4$s.",
"TopLinkTooltip": "Accediu a la vostra informació de l'anàlisis Web d'una forma programada a través d'una API simple en json, xml, etc.",
"UserAuthentication": "Autentificació de l'usuari",
- "UsingTokenAuth": "Si voleu %s obtenir informació a través d'un script, un crontab, etc %s heu d'afegir el paràmetre %s a les crides a la APU per les URLs que requereixen autentificació."
+ "UsingTokenAuth": "Si voleu %1$s obtenir informació a través d'un script, un crontab, etc %2$s heu d'afegir el paràmetre %3$s a les crides a la APU per les URLs que requereixen autentificació."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/cs.json b/plugins/API/lang/cs.json
index 32d7dcba79..8ff3f774ef 100644
--- a/plugins/API/lang/cs.json
+++ b/plugins/API/lang/cs.json
@@ -1,15 +1,15 @@
{
"API": {
- "GenerateVisits": "Pokud pro dnešek nemáte data, můžete je nejprve vygenerovat pomocí zásuvného modulu %s. Můžete povolit zásuvný modul %s a poté kliknout na 'Generátor návštěv' v menu v administrační části Piwiku",
- "KeepTokenSecret": "Tento token_auth je tajný jako vaše uživatelské jméno a heslo, %s neříkejte jej nikomu jinému %s!",
+ "GenerateVisits": "Pokud pro dnešek nemáte data, můžete je nejprve vygenerovat pomocí zásuvného modulu %1$s. Můžete povolit zásuvný modul %2$s a poté kliknout na 'Generátor návštěv' v menu v administrační části Piwiku",
+ "KeepTokenSecret": "Tento token_auth je tajný jako vaše uživatelské jméno a heslo, %1$s neříkejte jej nikomu jinému %2$s!",
"LoadedAPIs": "Úspěšně načteno %s API",
- "MoreInformation": "Pro více informací o API Piwiku se podívejte na %s Úvod do API Piwiku %s a %s Referenci API Piwiku %s",
+ "MoreInformation": "Pro více informací o API Piwiku se podívejte na %1$s Úvod do API Piwiku %2$s a %3$s Referenci API Piwiku %4$s",
"PluginDescription": "Všechna data v Piwiku jsou dostupná pomocí jednoduchých API. Tento zásuvný modul je vstupním bodem těchto webových služeb, který vám umožňuje získat vaše analytická data jako XML, JSON, CSV, PHP atd.",
"ReportingApiReference": "Reference API hlášení",
"TopLinkTooltip": "Zpřístupněte svoje Webové analýzy programově skrze jednoduché API pomocí json, xml a dalších.",
"UserAuthentication": "Autentifikace uživatele",
- "UsingTokenAuth": "Pokud chcete %s načíst data ze skriptu, cronu, atd. %s Potřebujete přidat parametr %s k voláním API, které vyžadují přihlášení",
+ "UsingTokenAuth": "Pokud chcete %1$s načíst data ze skriptu, cronu, atd. %2$s Potřebujete přidat parametr %3$s k voláním API, které vyžadují přihlášení",
"Glossary": "Glosář",
- "LearnAboutCommonlyUsedTerms": "Zjistěte víc o nejčastějších termínech, abyste mohli využít Piwik naplno %s a %s."
+ "LearnAboutCommonlyUsedTerms": "Zjistěte víc o nejčastějších termínech, abyste mohli využít Piwik naplno %1$s a %2$s."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/da.json b/plugins/API/lang/da.json
index ecb8ddd6fc..701cfc28b6 100644
--- a/plugins/API/lang/da.json
+++ b/plugins/API/lang/da.json
@@ -1,12 +1,12 @@
{
"API": {
- "GenerateVisits": "Hvis du ikke har data for i dag ,kan du generere nogle data ved hjælp af %s programudvidelsen. Aktiver %s programudvidelsen, og klik derefter på 'Besøgsgenerator' i menuen under indstillinger.",
- "KeepTokenSecret": "Token_auth er ligeså hemmeligt som brugernavn og adgangskode, %sdel det ikke ud%s!",
+ "GenerateVisits": "Hvis du ikke har data for i dag ,kan du generere nogle data ved hjælp af %1$s programudvidelsen. Aktiver %2$s programudvidelsen, og klik derefter på 'Besøgsgenerator' i menuen under indstillinger.",
+ "KeepTokenSecret": "Token_auth er ligeså hemmeligt som brugernavn og adgangskode, %1$sdel det ikke ud%2$s!",
"LoadedAPIs": "%s APIs indlæst",
- "MoreInformation": "Mere information om Piwik API'er, findes på %sIntroduktion til Piwik API%s og %sPiwik API Reference%s.",
+ "MoreInformation": "Mere information om Piwik API'er, findes på %1$sIntroduktion til Piwik API%2$s og %3$sPiwik API Reference%4$s.",
"PluginDescription": "Alle data i Piwik er tilgængelig gennem enkle API'er. Denne udvidelse er en webservice indgang, som kaldes for at få Web Analytics-data i xml, JSON, php, csv etc.",
"TopLinkTooltip": "Få adgang til dine webanalyse data programmeringsmæssigt gennem en simpel API i JSON, XML, etc.",
"UserAuthentication": "Brugergodkendelse",
- "UsingTokenAuth": "Hvis du ønsker at %s hente data i et script, med crontab, m.m. %s skal du tilføje parameteren %s til API-kaldes netadresse, som kræver godkendelse."
+ "UsingTokenAuth": "Hvis du ønsker at %1$s hente data i et script, med crontab, m.m. %2$s skal du tilføje parameteren %3$s til API-kaldes netadresse, som kræver godkendelse."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/de.json b/plugins/API/lang/de.json
index 4dc1428c0a..7ad2ec2d1c 100644
--- a/plugins/API/lang/de.json
+++ b/plugins/API/lang/de.json
@@ -1,15 +1,15 @@
{
"API": {
- "GenerateVisits": "Sollten für heute keine Daten verfügbar sein, so können Sie mit dem %s Plugin Testdaten erzeugen. Aktivieren Sie das %s Plugin und klicken dann auf das 'Besuchergenerator' Menu in der Piwik-Administration.",
- "KeepTokenSecret": "Der token_auth ist so geheim wie Ihr Login und Passwort, %s teilen Sie es niemandem mit%s!",
+ "GenerateVisits": "Sollten für heute keine Daten verfügbar sein, so können Sie mit dem %1$s Plugin Testdaten erzeugen. Aktivieren Sie das %2$s Plugin und klicken dann auf das 'Besuchergenerator' Menu in der Piwik-Administration.",
+ "KeepTokenSecret": "Der token_auth ist so geheim wie Ihr Login und Passwort, %1$s teilen Sie es niemandem mit%2$s!",
"LoadedAPIs": "%s APIs erfolgreich geladen",
- "MoreInformation": "Für weitere Informationen über die Piwik-APIs lesen Sie bitte %s Einführung in die Piwik-API %s und die %s Piwik-API-Referenz %s.",
+ "MoreInformation": "Für weitere Informationen über die Piwik-APIs lesen Sie bitte %1$s Einführung in die Piwik-API %2$s und die %3$s Piwik-API-Referenz %4$s.",
"PluginDescription": "Alle Daten in Piwik sind über einfache APIs verfügbar. Dieses Plugin ist der Web Service Eingangspunkt, welchen Sie nutzen können um Daten der Webanalyse in XML, JSON, PHP, CSV usw. abzufragen.",
"ReportingApiReference": "Reporting-API-Referenz",
"TopLinkTooltip": "Greife auf die Webanalytikdaten über eine einfache API mit json, xml, usw. zu.",
"UserAuthentication": "Benutzerauthentifizierung",
- "UsingTokenAuth": "Wenn Sie %s Daten mit einem Script, einem Crontab, etc. abrufen wollen, %s müssen Sie den Parameter %s an die URLs anhängen, deren API-Aufrufe eine Authentifizierung benötigen.",
+ "UsingTokenAuth": "Wenn Sie %1$s Daten mit einem Script, einem Crontab, etc. abrufen wollen, %2$s müssen Sie den Parameter %3$s an die URLs anhängen, deren API-Aufrufe eine Authentifizierung benötigen.",
"Glossary": "Glossar",
- "LearnAboutCommonlyUsedTerms": "Lernen Sie mehr über die häufig verwendeten Begriffe um das Beste aus Ihren Piwik Analysen zu machen: %s und %s"
+ "LearnAboutCommonlyUsedTerms": "Lernen Sie mehr über die häufig verwendeten Begriffe um das Beste aus Ihren Piwik Analysen zu machen: %1$s und %2$s"
}
} \ No newline at end of file
diff --git a/plugins/API/lang/el.json b/plugins/API/lang/el.json
index 5b0bbfd872..ab37828570 100644
--- a/plugins/API/lang/el.json
+++ b/plugins/API/lang/el.json
@@ -1,15 +1,15 @@
{
"API": {
- "GenerateVisits": "Αν δεν έχετε δεδομένα για σήμερα μπορείτε να δημιουργήσετε χρησιμοποιώντας το πρόσθετο %s. Μπορείτε να ενεργοποιήσετε το πρόσθετο %s, μετά να επιλέξετε το μενού «Παραγωγή Επισκεπτών» στην περιοχή Διαχείρισης του Piwik.",
- "KeepTokenSecret": "Αυτή το πειστήριο πιστοποίησης είναι μυστικό το όνομα χρήστη και ο κωδικός πρόσβασης. %s Μη το δημοσιεύετε%s!",
+ "GenerateVisits": "Αν δεν έχετε δεδομένα για σήμερα μπορείτε να δημιουργήσετε χρησιμοποιώντας το πρόσθετο %1$s. Μπορείτε να ενεργοποιήσετε το πρόσθετο %2$s, μετά να επιλέξετε το μενού «Παραγωγή Επισκεπτών» στην περιοχή Διαχείρισης του Piwik.",
+ "KeepTokenSecret": "Αυτό το token_auth είναι μυστικό όπως και το όνομα χρήστη και συνθηματικό σας, %1$sγια το λόγο αυτό, μην το δίνετε πουθενά%2$s!",
"LoadedAPIs": "Φορτώθηκαν επιτυχώς %s APIs",
- "MoreInformation": "Για περισσότερες πληροφορίες για τα APIs του Piwik, δείτε την %s Παρουσίαση των API του Piwik %s και την %s Τεκμηρίωση των API του Piwik %s.",
+ "MoreInformation": "Για περισσότερες πληροφορίες σχετικά με τα APIs του Piwik, δείτε στην %1$s Εισαγωγή για το Piwik API %2$s και την %3$s Παραπομπή για το Piwik API %4$s.",
"PluginDescription": "Όλα τα δεδομένα στο Piwik είναι διαθέσιμα μέσω απλών API. Το πρόσθετο αυτό είναι ένα σημείο εισόδου μιας υπηρεσίας ιστού, που μπορείτε να καλείτε για να λαμβάνετε τα δεδομένα αναλυτικών σας σε μορφή xml, json, php, csv, κτλ.",
"ReportingApiReference": "Παραπομπή API Αναφορών",
"TopLinkTooltip": "Προσπελάστε τα δεδομένα Στατιστικών Ιστού προγραμματιστικά μέσω μιας απλής εφαρμογής σε json, xml, κλπ.",
"UserAuthentication": "Πιστοποίηση χρήστη",
- "UsingTokenAuth": "Αν θέλετε να %s αιτηθείτε δεδομένα εντός κώδικα, ένα crontab, κλπ. %s πρέπει να προσθέσετε την παράμετρο %s στο API που καλεί URLs που απαιτούν πιστοποίηση.",
+ "UsingTokenAuth": "Αν θέλετε να %1$s ζητήσετε δεδομένα από ένα σενάριο, μια εργασία crontab, κτλ. %2$s χρειάζεται να προσθέσετε την παράμετρο %3$s στα URLs των κλήσεων API που απαιτούν αυθεντικοποίηση.",
"Glossary": "Γλωσσάρι",
- "LearnAboutCommonlyUsedTerms": "Μάθετε για συχνά χρησιμοποιούμενους όρους για να λάβετε τα μέγιστα από τα αναλυτικά του Piwik: %s και %s."
+ "LearnAboutCommonlyUsedTerms": "Δείτε περισσότερα σχετικά με συχνά χρησιμοποιούμενους όρους για να εκμεταλλευτείτε στο έπακρο το Piwik Analytics: %1$s και %2$s."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/en.json b/plugins/API/lang/en.json
index 57ef19aa29..95152566a2 100644
--- a/plugins/API/lang/en.json
+++ b/plugins/API/lang/en.json
@@ -1,15 +1,15 @@
{
"API": {
- "GenerateVisits": "If you don't have data for today you can first generate some data using the %s plugin. You can enable the %s plugin, then click on the 'Visitor Generator' menu in the Piwik Admin area.",
- "KeepTokenSecret": "This token_auth is as secret as your login and password, %s do not share it%s!",
+ "GenerateVisits": "If you don't have data for today you can first generate some data using the %1$s plugin. You can enable the %2$s plugin, then click on the 'Visitor Generator' menu in the Piwik Admin area.",
+ "KeepTokenSecret": "This token_auth is as secret as your login and password, %1$s do not share it%2$s!",
"LoadedAPIs": "Successfully loaded %s APIs",
- "MoreInformation": "For more information about the Piwik APIs, please have a look at the %s Introduction to Piwik API %s and the %s Piwik API Reference %s.",
+ "MoreInformation": "For more information about the Piwik APIs, please have a look at the %1$s Introduction to Piwik API %2$s and the %3$s Piwik API Reference %4$s.",
"PluginDescription": "All the data in Piwik is available through simple APIs. This plugin is the web service entry point, that you can call to get your Web Analytics data in xml, json, php, csv, etc.",
"ReportingApiReference": "Reporting API Reference",
"TopLinkTooltip": "Access your Web Analytics data programmatically through a simple API in json, xml, etc.",
"UserAuthentication": "User authentication",
- "UsingTokenAuth": "If you want to %s request data within a script, a crontab, etc. %s you need to add the parameter %s to the API calls URLs that require authentication.",
+ "UsingTokenAuth": "If you want to %1$s request data within a script, a crontab, etc. %2$s you need to add the parameter %3$s to the API calls URLs that require authentication.",
"Glossary": "Glossary",
- "LearnAboutCommonlyUsedTerms": "Learn about the commonly used terms to make the most of Piwik Analytics: %s and %s."
+ "LearnAboutCommonlyUsedTerms": "Learn about the commonly used terms to make the most of Piwik Analytics: %1$s and %2$s."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/es.json b/plugins/API/lang/es.json
index 47cc18999a..ee7308033f 100644
--- a/plugins/API/lang/es.json
+++ b/plugins/API/lang/es.json
@@ -1,13 +1,13 @@
{
"API": {
- "GenerateVisits": "Si no tiene los datos de hoy puede generar primero algunos datos mediante el complemento %s. Puede habilitar el complemento %s, a continuación, haga clic en el menú 'Generador de Visitas' en la area Administrativa de Piwik.",
- "KeepTokenSecret": "Este token_auth es tan secreto como su nombre de usuario y contraseña, %s no lo comparta %s!",
+ "GenerateVisits": "Si no tiene los datos de hoy puede generar primero algunos datos mediante el complemento %1$s. Puede habilitar el complemento %2$s, a continuación, haga clic en el menú 'Generador de Visitas' en la area Administrativa de Piwik.",
+ "KeepTokenSecret": "Este token_auth es tan secreto como su nombre de usuario y contraseña, %1$s no lo comparta %2$s!",
"LoadedAPIs": "Se han cargado %s APIs exitosamente",
- "MoreInformation": "Para mayor información acerca de las APIs de Piwik, por favor lea la %s Introducción a las API Piwik %s y la %s Referencia de las API Piwik %s.",
+ "MoreInformation": "Para mayor información acerca de las APIs de Piwik, por favor lea la %1$s Introducción a las API Piwik %2$s y la %3$s Referencia de las API Piwik %4$s.",
"PluginDescription": "Toda la información en Piwik está disponible a través de simples APIs. Este complemento es el punto de entrada del servicio de internet, al que puede convocar para obtener la información analítica de internet en formato xml, json, php, csv, etc.",
"ReportingApiReference": "Informando Referencia API",
"TopLinkTooltip": "Acceda a sus datos de análisis de internet programáticamente, a través de una sencilla API en json, xml, etc.",
"UserAuthentication": "Autenticación de usuario",
- "UsingTokenAuth": "Si quieres %s solicitar datos dentro de un script, un crontab, etc. %s tiene que agregar el parámetro %s a las llamadas a la URL de la API que requieren autenticación."
+ "UsingTokenAuth": "Si quieres %1$s solicitar datos dentro de un script, un crontab, etc. %2$s tiene que agregar el parámetro %3$s a las llamadas a la URL de la API que requieren autenticación."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/et.json b/plugins/API/lang/et.json
index 00540812d3..253cdf8053 100644
--- a/plugins/API/lang/et.json
+++ b/plugins/API/lang/et.json
@@ -1,7 +1,7 @@
{
"API": {
"LoadedAPIs": "Edukalt laetud %s API-id",
- "MoreInformation": "Et saada rohkem infot Piwiku API-st, vaata %sPiwiku API tutvustus%s ja %sPiwiku API juhend%s.",
+ "MoreInformation": "Et saada rohkem infot Piwiku API-st, vaata %1$sPiwiku API tutvustus%2$s ja %3$sPiwiku API juhend%4$s.",
"UserAuthentication": "Kasutaja autentimine"
}
} \ No newline at end of file
diff --git a/plugins/API/lang/fa.json b/plugins/API/lang/fa.json
index e58a66014d..3ac3cbe52b 100644
--- a/plugins/API/lang/fa.json
+++ b/plugins/API/lang/fa.json
@@ -1,6 +1,6 @@
{
"API": {
- "KeepTokenSecret": "این token_auth برای رمزعبور و ورود شما مثل یک راز است , %s آن را به کسی نگویید %s!",
+ "KeepTokenSecret": "این token_auth برای رمزعبور و ورود شما مثل یک راز است , %1$s آن را به کسی نگویید %2$s!",
"LoadedAPIs": "API های %s با موفقیت بارگزاری شدند",
"TopLinkTooltip": "با استفاده از یک API ساده به اطلاعات آماری وب خود از طریق کدنویسی در فرمت های json و xml و غیره دسترسی پیدا کنید.",
"UserAuthentication": "تأیید هویت کاربر"
diff --git a/plugins/API/lang/fi.json b/plugins/API/lang/fi.json
index 4a139d5480..22e886ce2c 100644
--- a/plugins/API/lang/fi.json
+++ b/plugins/API/lang/fi.json
@@ -1,11 +1,11 @@
{
"API": {
- "GenerateVisits": "Jos sinulla ei ole yhtään tietoja tälle päivälle, voit generoida satunnaisia tietoja käyttämällä lisäosaa %s. Voit ottaa käyttöön %s-lisäosan ja painaa 'Vierailijoiden luominen'-linkkiä Piwikin ylläpitosivulla.",
- "KeepTokenSecret": "Tämä token_auth on yhtä salainen kuin salasanasi, %s älä jaa sitä%s!",
+ "GenerateVisits": "Jos sinulla ei ole yhtään tietoja tälle päivälle, voit generoida satunnaisia tietoja käyttämällä lisäosaa %1$s. Voit ottaa käyttöön %2$s-lisäosan ja painaa 'Vierailijoiden luominen'-linkkiä Piwikin ylläpitosivulla.",
+ "KeepTokenSecret": "Tämä token_auth on yhtä salainen kuin salasanasi, %1$s älä jaa sitä%2$s!",
"LoadedAPIs": "Ladattiin %s APIa",
- "MoreInformation": "Lisätietoa Piwikin APIsta löytyy sivulta %sJohdatus Piwikin APIin%s ja %sPiwikin API%s.",
+ "MoreInformation": "Lisätietoa Piwikin APIsta löytyy sivulta %1$sJohdatus Piwikin APIin%2$s ja %3$sPiwikin API%4$s.",
"TopLinkTooltip": "Hae analytiikkatietoja automaattisesti yksinkertaisella API:lla JSON:lla, XML:llä jne.",
"UserAuthentication": "Käyttäjän autentikointi",
- "UsingTokenAuth": "Jos haluat %s hakea tietoja skriptillä, crontabista jne. %s sinun täytyy lisätä parametri %s API-kutsujen osoitteisiin, jos kutsu vaatii autentikoinnin."
+ "UsingTokenAuth": "Jos haluat %1$s hakea tietoja skriptillä, crontabista jne. %2$s sinun täytyy lisätä parametri %3$s API-kutsujen osoitteisiin, jos kutsu vaatii autentikoinnin."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/fr.json b/plugins/API/lang/fr.json
index e6584e2302..b9358e562a 100644
--- a/plugins/API/lang/fr.json
+++ b/plugins/API/lang/fr.json
@@ -1,15 +1,15 @@
{
"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 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 !",
+ "GenerateVisits": "Si vous n'avez pas de données pour aujourd'hui vous pouvez en générer en utilisant le plugin %1$s. Vous pouvez activer le plugin %2$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, %1$s ne la partagez pas%2$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.",
+ "MoreInformation": "Pour plus d'informations à propos de l'API de Piwik, merci de visiter %1$s l'introduction à Piwik %2$s et %3$s la référence de l'API Piwik %4$s.",
"PluginDescription": "Toutes les données de Piwik sont disponibles via des API simples. Ce composant est le service web que vous pouvez appeler afin d'obtenir vos données d'analyse web en xml, json, php, csv, etc",
"ReportingApiReference": "Référence de l'API de rapports",
"TopLinkTooltip": "Accédez à vos données de statistiques web depuis votre code via une API simple en JSON, XML, Etc.",
"UserAuthentication": "Authentification de l'utilisateur",
- "UsingTokenAuth": "Si vous souhaitez %s récupérer des données depuis un script, un crontab, etc %s vous devez ajouter le paramètre %s aux appels d'URLs de l'API qui requièrent une authentification.",
+ "UsingTokenAuth": "Si vous souhaitez %1$s récupérer des données depuis un script, un crontab, etc %2$s vous devez ajouter le paramètre %3$s aux appels d'URLs de l'API qui requièrent une authentification.",
"Glossary": "Glossaire",
- "LearnAboutCommonlyUsedTerms": "En savoir plus sur les termes les plus couramment utilisés composant principalement Piwik Analytics : %s et %s."
+ "LearnAboutCommonlyUsedTerms": "En savoir plus sur les termes les plus couramment utilisés composant principalement Piwik Analytics : %1$s et %2$s."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/he.json b/plugins/API/lang/he.json
index b50010c028..41b265ad7e 100644
--- a/plugins/API/lang/he.json
+++ b/plugins/API/lang/he.json
@@ -1,10 +1,10 @@
{
"API": {
- "GenerateVisits": "אם אין לך מידע להיום ניתן קודם כל לחולל מידע בעזרת התוסף %s. ניתן להפעיל את התוסף %s, ולאחר מכן לחולל מידע על מבקרים דרך פאנל הניהול של Piwik.",
- "KeepTokenSecret": "הtoken_auth סודי ביותר כמו שם המשתמש והסיסמה, %s אין לשתף אף אחד בפרטים אלו%s!",
+ "GenerateVisits": "אם אין לך מידע להיום ניתן קודם כל לחולל מידע בעזרת התוסף %1$s. ניתן להפעיל את התוסף %2$s, ולאחר מכן לחולל מידע על מבקרים דרך פאנל הניהול של Piwik.",
+ "KeepTokenSecret": "הtoken_auth סודי ביותר כמו שם המשתמש והסיסמה, %1$s אין לשתף אף אחד בפרטים אלו%2$s!",
"LoadedAPIs": "%s APIים נטענו בהצלחה",
- "MoreInformation": "למידע נוסף עבור הAPIים של Piwik, מומלץ להציץ ב%sהיכרות עם הAPI של Piwik%s וגם ב%sהעמקה אודות הAPI של Piwik%s.",
+ "MoreInformation": "למידע נוסף עבור הAPIים של Piwik, מומלץ להציץ ב%1$sהיכרות עם הAPI של Piwik%2$s וגם ב%3$sהעמקה אודות הAPI של Piwik%4$s.",
"UserAuthentication": "אימות משתמש",
- "UsingTokenAuth": "אם ברצונך %s לדרוש מידע מתוך סקריטפ, עבודה כרונית וכד' %s יש צורך להוסיף את הפרמטר %s לכל קריאת API מהURLים שדורשים אימות."
+ "UsingTokenAuth": "אם ברצונך %1$s לדרוש מידע מתוך סקריטפ, עבודה כרונית וכד' %2$s יש צורך להוסיף את הפרמטר %3$s לכל קריאת API מהURLים שדורשים אימות."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/hi.json b/plugins/API/lang/hi.json
index d27c777ecc..4fa94cedaf 100644
--- a/plugins/API/lang/hi.json
+++ b/plugins/API/lang/hi.json
@@ -1,11 +1,11 @@
{
"API": {
- "GenerateVisits": "आप आज के लिए डेटा नहीं है, तो आप पहले %s प्लगइन का उपयोग कर कुछ डेटा उत्पन्न कर सकते हैं. आप %s प्लगइन सक्षम कर सकते हैं, तो Piwik व्यवस्थापक क्षेत्र में 'आगंतुक जेनरेटर' मेनू पर क्लिक करें.",
- "KeepTokenSecret": "इस टोकन प्रमाणन अपने लॉगिन और पासवर्ड के रूप में गुप्त रूप है, %s %s यह साझा नहीं करते हैं!",
+ "GenerateVisits": "आप आज के लिए डेटा नहीं है, तो आप पहले %1$s प्लगइन का उपयोग कर कुछ डेटा उत्पन्न कर सकते हैं. आप %2$s प्लगइन सक्षम कर सकते हैं, तो Piwik व्यवस्थापक क्षेत्र में 'आगंतुक जेनरेटर' मेनू पर क्लिक करें.",
+ "KeepTokenSecret": "इस टोकन प्रमाणन अपने लॉगिन और पासवर्ड के रूप में गुप्त रूप है, %1$s %2$s यह साझा नहीं करते हैं!",
"LoadedAPIs": "सफलतापूर्वक लोड %s एपीआई",
- "MoreInformation": "Piwik एपीआई के बारे में अधिक जानकारी के लिए,कृपया %s Piwik एपीआई %s और %s Piwik एपीआई संदर्भ %s के परिचय पर एक नजर डाले",
+ "MoreInformation": "Piwik एपीआई के बारे में अधिक जानकारी के लिए,कृपया %1$s Piwik एपीआई %2$s और %3$s Piwik एपीआई संदर्भ %4$s के परिचय पर एक नजर डाले",
"TopLinkTooltip": "Json, xml, आदि में एक सरल एपीआई के माध्यम से प्रोग्राम के रूप में अपने वेब विश्लेषिकी डेटा का उपयोग करे",
"UserAuthentication": "प्रयोगकर्ता का प्रामाणीकरण",
- "UsingTokenAuth": "आप एक स्क्रिप्ट के भीतर %s डेटा, एक crontab, आदि %s के लिए अनुरोध करना चाहते हैं तो प्रमाणीकरण की आवश्यकता है कि यूआरएल कॉल आप एपीआई के लिए पैरामीटर %s जोड़ने की जरूरत है."
+ "UsingTokenAuth": "आप एक स्क्रिप्ट के भीतर %1$s डेटा, एक crontab, आदि %2$s के लिए अनुरोध करना चाहते हैं तो प्रमाणीकरण की आवश्यकता है कि यूआरएल कॉल आप एपीआई के लिए पैरामीटर %3$s जोड़ने की जरूरत है."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/hr.json b/plugins/API/lang/hr.json
index 6e330d757d..79ce0cfb92 100644
--- a/plugins/API/lang/hr.json
+++ b/plugins/API/lang/hr.json
@@ -1,6 +1,6 @@
{
"API": {
- "GenerateVisits": "Ako ne postoje podaci za danas, možete ih kreirati pomoću %s plugina. Prvo uključite %s plugin, zatim koristite opciju 'Kreiraj posjetitelje' u izborniku Piwik administracije.",
+ "GenerateVisits": "Ako ne postoje podaci za danas, možete ih kreirati pomoću %1$s plugina. Prvo uključite %2$s plugin, zatim koristite opciju 'Kreiraj posjetitelje' u izborniku Piwik administracije.",
"LoadedAPIs": "%s API je uspješno učitan"
}
} \ No newline at end of file
diff --git a/plugins/API/lang/hu.json b/plugins/API/lang/hu.json
index c4b053a7f3..2465af69db 100644
--- a/plugins/API/lang/hu.json
+++ b/plugins/API/lang/hu.json
@@ -1,10 +1,10 @@
{
"API": {
- "GenerateVisits": "Ha nem volt még ma látogató, automatikusan generálhatsz mintaadatokat a %s kiegészítő segítségével. A %s kiegészítőt a Piwik adminisztrációs felületén megjelenő Látogatógenerálás menüpontra kattintva engedélyezheted.",
- "KeepTokenSecret": "Ez a token_auth nevű kód pontosan annyira érzékeny adat mint a felhasználói neved és jelszavad, ezért %s ne oszd meg mindenkivel%s!",
+ "GenerateVisits": "Ha nem volt még ma látogató, automatikusan generálhatsz mintaadatokat a %1$s kiegészítő segítségével. A %2$s kiegészítőt a Piwik adminisztrációs felületén megjelenő Látogatógenerálás menüpontra kattintva engedélyezheted.",
+ "KeepTokenSecret": "Ez a token_auth nevű kód pontosan annyira érzékeny adat mint a felhasználói neved és jelszavad, ezért %1$s ne oszd meg mindenkivel%2$s!",
"LoadedAPIs": "A(z) %s API sikeresen betöltődött.",
- "MoreInformation": "További információkért a Piwik API-kkal kapcsolatban kérjük, tekintse meg a %s Introduction to Piwik API %s és a %s Piwik API Reference %s című leírásokat.",
+ "MoreInformation": "További információkért a Piwik API-kkal kapcsolatban kérjük, tekintse meg a %1$s Introduction to Piwik API %2$s és a %3$s Piwik API Reference %4$s című leírásokat.",
"UserAuthentication": "Felhasználó autentikációja",
- "UsingTokenAuth": "Ha azt szeretné, hogy a %s külső alkalmazás adatot kérjen a szkripten belül, a crontab segítségével, stb. %s hozzá kell adnia a %s paramétert az API hívásoknál használt URL-ekhez, ha autentikáció szükséges számukra."
+ "UsingTokenAuth": "Ha azt szeretné, hogy a %1$s külső alkalmazás adatot kérjen a szkripten belül, a crontab segítségével, stb. %2$s hozzá kell adnia a %3$s paramétert az API hívásoknál használt URL-ekhez, ha autentikáció szükséges számukra."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/id.json b/plugins/API/lang/id.json
index 681bc8e37b..138242ef3f 100644
--- a/plugins/API/lang/id.json
+++ b/plugins/API/lang/id.json
@@ -1,11 +1,11 @@
{
"API": {
- "GenerateVisits": "Bila Anda tidak memiliki data untuk hari ini, Anda dapat membuat beberapa menggunakan pengaya %s. Anda dapat mengaktifkan pengaya %s, lalu klik menu 'Pembangkit Kunjungan' di halaman Pengurus Piwik.",
- "KeepTokenSecret": "token_auth ini merupakan hal yang rahasia sebagaimana nama-id dan sandi Anda, %s sehingga jangan memberitahukannya%s!",
+ "GenerateVisits": "Bila Anda tidak memiliki data untuk hari ini, Anda dapat membuat beberapa menggunakan pengaya %1$s. Anda dapat mengaktifkan pengaya %2$s, lalu klik menu 'Pembangkit Kunjungan' di halaman Pengurus Piwik.",
+ "KeepTokenSecret": "token_auth ini merupakan hal yang rahasia sebagaimana nama-id dan sandi Anda, %1$s sehingga jangan memberitahukannya%2$s!",
"LoadedAPIs": "Berhasil memuat API %s",
- "MoreInformation": "Untuk informasi selengkapnya tentang API Piwik, silakan melihat %s Pengenalan API Piwik%s dan %sReferensi API Piwik%s.",
+ "MoreInformation": "Untuk informasi selengkapnya tentang API Piwik, silakan melihat %1$s Pengenalan API Piwik%2$s dan %3$sReferensi API Piwik%4$s.",
"TopLinkTooltip": "Akses data Analisis Ramatraya terprogram melalui API sederhana dalam json, xml, dan lain lain.",
"UserAuthentication": "Otentikasi pengguna",
- "UsingTokenAuth": "Jika Anda ingin melakukan permintaan data %s menggunakan skrip, crontab, dll. %s Anda harus menambah parameter %s agar API memanggil URL yang membutuhkan otentikasi."
+ "UsingTokenAuth": "Jika Anda ingin melakukan permintaan data %1$s menggunakan skrip, crontab, dll. %2$s Anda harus menambah parameter %3$s agar API memanggil URL yang membutuhkan otentikasi."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/it.json b/plugins/API/lang/it.json
index a365bd298a..624a780cb7 100644
--- a/plugins/API/lang/it.json
+++ b/plugins/API/lang/it.json
@@ -1,15 +1,15 @@
{
"API": {
- "GenerateVisits": "Se oggi non hai ricevuto visite, le puoi generare usando il plugin %s. Abilita il plugin %s, quindi clicca su \"Generatore di Visite\" nell'area amministrazione Piwik.",
- "KeepTokenSecret": "Questo token_auth è segreto come il tuo login e la tua password, %s non condividerlo %s!",
+ "GenerateVisits": "Se oggi non hai ricevuto visite, le puoi generare usando il plugin %1$s. Abilita il plugin %2$s, quindi clicca su \"Generatore di Visite\" nell'area amministrazione Piwik.",
+ "KeepTokenSecret": "Questo token_auth è segreto come il tuo login e la tua password, %1$s non condividerlo %2$s!",
"LoadedAPIs": "Sono state caricate con successo %s API",
- "MoreInformation": "Per ulteriori informazioni sulle API di Piwik, si prega di dare un'occhiata all'introduzione delle API di Pwik %s e a %s %s Piwik API di riferimento API %s.",
+ "MoreInformation": "Per ulteriori informazioni sulle API di Piwik, si prega di dare un'occhiata all'introduzione delle API di Pwik %1$s e a %2$s %3$s Piwik API di riferimento API %4$s.",
"PluginDescription": "Tutti i dati di Piwik sono disponibili tramite semplici API. Questo plugin è la porta d'accesso al servizio web che puoi utilizzare per avere i dati delle tue statistiche web in xml, json, php, csv, ecc.",
"ReportingApiReference": "Segnalazione Riferimenti API",
"TopLinkTooltip": "Accedi ai tuoi dati di Web Analytics tramite le semplici API in JSON, XML, ecc",
"UserAuthentication": "Autenticazione utente",
- "UsingTokenAuth": "Se si vogliono i dati di richiesta %s all'interno di uno script, un crontab, ecc %s è necessario aggiungere il parametro %s per le chiamate API URL che richiedono l'autenticazione.",
+ "UsingTokenAuth": "Se si vogliono i dati di richiesta %1$s all'interno di uno script, un crontab, ecc %2$s è necessario aggiungere il parametro %3$s per le chiamate API URL che richiedono l'autenticazione.",
"Glossary": "Glossario",
- "LearnAboutCommonlyUsedTerms": "Impara i termini comunemente usati per sfruttare al meglio Piwik Analytics: %s e %s."
+ "LearnAboutCommonlyUsedTerms": "Impara i termini comunemente usati per sfruttare al meglio Piwik Analytics: %1$s e %2$s."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/ja.json b/plugins/API/lang/ja.json
index f32bf15992..b926ec3f5b 100644
--- a/plugins/API/lang/ja.json
+++ b/plugins/API/lang/ja.json
@@ -1,15 +1,15 @@
{
"API": {
- "GenerateVisits": "今日のデータがない場合は、%s プラグインを使用して、はじめに若干のデータを生成することができます。 これを行うには、%s プラグインを有効にし、管理エリアで 'ビジタージェネレータ' メニューをクリックします。",
- "KeepTokenSecret": "token_auth は、ログイン名とパスワードのように秘密にし、%s絶対に共有しないでください%s!",
+ "GenerateVisits": "今日のデータがない場合は、%1$s プラグインを使用して、はじめに若干のデータを生成することができます。 これを行うには、%2$s プラグインを有効にし、管理エリアで 'ビジタージェネレータ' メニューをクリックします。",
+ "KeepTokenSecret": "token_auth は、ログイン名とパスワードのように秘密にし、%1$s絶対に共有しないでください%2$s!",
"LoadedAPIs": "%s API が正常に読み込まれました",
- "MoreInformation": "Piwik API の詳細については、%sIntroduction to Piwik API%s や %sPiwik API Reference%s を参照してください。",
+ "MoreInformation": "Piwik API の詳細については、%1$sIntroduction to Piwik API%2$s や %3$sPiwik API Reference%4$s を参照してください。",
"PluginDescription": "Pwik の全てのデータは簡単な API を通して利用することができます。このプラグインはウェブサービスの入り口で、xml , json , php , csv などのあなたのウェブ分析データを入手するために呼び出すことができます。",
"ReportingApiReference": "API リファレンスを報告",
"TopLinkTooltip": "jsopn、xml等シンプルなAPIを介して、プログラムで分析データにアクセスできます",
"UserAuthentication": "ユーザー認証",
- "UsingTokenAuth": "%sスクリプト(crontab 等)でリクエストデータを得たい場合%sは、API をコールする URL(認証が必要)にパラメータ %s を付加する必要があります。",
+ "UsingTokenAuth": "%1$sスクリプト(crontab 等)でリクエストデータを得たい場合%2$sは、API をコールする URL(認証が必要)にパラメータ %3$s を付加する必要があります。",
"Glossary": "用語集",
- "LearnAboutCommonlyUsedTerms": "Piwik Analytics の最もよく使われる用語について: %s と %s"
+ "LearnAboutCommonlyUsedTerms": "Piwik Analytics の最もよく使われる用語について: %1$s と %2$s"
}
} \ No newline at end of file
diff --git a/plugins/API/lang/ko.json b/plugins/API/lang/ko.json
index b64a0e4b5b..afd69e28ec 100644
--- a/plugins/API/lang/ko.json
+++ b/plugins/API/lang/ko.json
@@ -1,15 +1,15 @@
{
"API": {
- "GenerateVisits": "오늘에 해당하는 데이터가 없는 경우는 %s 플러그인을 사용하여 처음 약간의 데이터를 생성할 수 있습니다. %s 플러그인을 활성화하고 관리 영역에서 '방문자 생성기'메뉴를 클릭하세요.",
- "KeepTokenSecret": "token_auth는 외부 로그인을 위한 비밀키입니다. %s 절대로 공유하지 마세요 %s!",
+ "GenerateVisits": "오늘에 해당하는 데이터가 없는 경우는 %1$s 플러그인을 사용하여 처음 약간의 데이터를 생성할 수 있습니다. %2$s 플러그인을 활성화하고 관리 영역에서 '방문자 생성기'메뉴를 클릭하세요.",
+ "KeepTokenSecret": "token_auth는 외부 로그인을 위한 비밀키입니다. %1$s 절대로 공유하지 마세요 %2$s!",
"LoadedAPIs": "성공적으로 %s API를 불러옴",
- "MoreInformation": "Piwik API에 대한 자세한 내용은 %sIntroduction to Piwik API %s 문서와 %sPiwik API Reference%s 문서를 참조하세요.",
+ "MoreInformation": "Piwik API에 대한 자세한 내용은 %1$sIntroduction to Piwik API %2$s 문서와 %3$sPiwik API Reference%4$s 문서를 참조하세요.",
"PluginDescription": "Piwik 내 모든 데이터는 간단한 API를 통해서 접근할 수 있습니다. 이 플러그인은 웹 분석 데이터를 xml, json, php, csv 등의 형태로 받을 수 있는 웹 서비스 진입로입니다.",
"ReportingApiReference": "API 레퍼런스 보고",
"TopLinkTooltip": "JSON, XML 등의 간단한 API를 통해 프로그래밍 방식으로 웹 로그 분석 데이터에 접근할 수 있습니다.",
"UserAuthentication": "사용자 인증",
- "UsingTokenAuth": "%s 스크립트 (crontab 등)에서 요청 데이터를 얻고 싶다면 %s는 API를 호출하는 URL (인증 필요)에 매개 변수 %s를 추가해야합니다.",
+ "UsingTokenAuth": "%1$s 스크립트 (crontab 등)에서 요청 데이터를 얻고 싶다면 %2$s는 API를 호출하는 URL (인증 필요)에 매개 변수 %3$s를 추가해야합니다.",
"Glossary": "용어",
- "LearnAboutCommonlyUsedTerms": "Piwik 분석에 있어 자주 사용되는 용어 %s 와 %s 배우기"
+ "LearnAboutCommonlyUsedTerms": "Piwik 분석에 있어 자주 사용되는 용어 %1$s 와 %2$s 배우기"
}
} \ No newline at end of file
diff --git a/plugins/API/lang/lt.json b/plugins/API/lang/lt.json
index 44e4d8e79e..e391a0181e 100644
--- a/plugins/API/lang/lt.json
+++ b/plugins/API/lang/lt.json
@@ -1,10 +1,10 @@
{
"API": {
- "GenerateVisits": "Jei neturite duomenų šiandienai , galite sugeneruoti jų pasinaudoję %s papildiniu. Įjunkite šį %s papildinį, tada spauskite ant 'Apsilankymų generatorius' meniu Piwik administratoriaus srityje.",
- "KeepTokenSecret": "Šis token_auth yra slaptas kaip ir naudotojo vardas bei slaptažodis, %s neviešinkite jo%s!",
+ "GenerateVisits": "Jei neturite duomenų šiandienai , galite sugeneruoti jų pasinaudoję %1$s papildiniu. Įjunkite šį %2$s papildinį, tada spauskite ant 'Apsilankymų generatorius' meniu Piwik administratoriaus srityje.",
+ "KeepTokenSecret": "Šis token_auth yra slaptas kaip ir naudotojo vardas bei slaptažodis, %1$s neviešinkite jo%2$s!",
"LoadedAPIs": "Sėkmingai įkrautos API sąsajos (%s).",
- "MoreInformation": "Norinčius gauti daugiau informacijos apie Piwik API sąsajas, prašome žvilgtelėti į %s Įvadas į Piwik API %s ir %s Piwik API informacija %s.",
+ "MoreInformation": "Norinčius gauti daugiau informacijos apie Piwik API sąsajas, prašome žvilgtelėti į %1$s Įvadas į Piwik API %2$s ir %3$s Piwik API informacija %4$s.",
"UserAuthentication": "Naudotojo autentifikavimas",
- "UsingTokenAuth": "Jei norite %s gauti duomenis scenarijų, crontab ir pan. įrankių pagalba, %s turite pridėti parametrus %s į API užklausų URLs, kurios reikalauja autentifikacijos."
+ "UsingTokenAuth": "Jei norite %1$s gauti duomenis scenarijų, crontab ir pan. įrankių pagalba, %2$s turite pridėti parametrus %3$s į API užklausų URLs, kurios reikalauja autentifikacijos."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/nb.json b/plugins/API/lang/nb.json
index c659502646..accf3ecfa4 100644
--- a/plugins/API/lang/nb.json
+++ b/plugins/API/lang/nb.json
@@ -1,15 +1,15 @@
{
"API": {
- "GenerateVisits": "Hvis du ikke har data for i dag kan du først generere noe data med utvidelsen %s. Du kan aktivere %s, så klikker du på «Besøksgenerator»-menyen i Piwik admin.",
- "KeepTokenSecret": "Denne token_auth er like hemmelig som ditt brukernavn og passord. %sIkke del den!%s",
+ "GenerateVisits": "Hvis du ikke har data for i dag kan du først generere noe data med utvidelsen %1$s. Du kan aktivere %2$s, så klikker du på «Besøksgenerator»-menyen i Piwik admin.",
+ "KeepTokenSecret": "Denne token_auth er like hemmelig som ditt brukernavn og passord. %1$sIkke del den!%2$s",
"LoadedAPIs": "Lastet %s API-er",
- "MoreInformation": "For mer informasjon om Piwik API-er, vennligst se på %s Introduction to Piwik API %s og %s Piwik API Reference %s.",
+ "MoreInformation": "For mer informasjon om Piwik API-er, vennligst se på %1$s Introduction to Piwik API %2$s og %3$s Piwik API Reference %4$s.",
"PluginDescription": "Alle data i Piwik er tilgjengelig gjennom enkle API-er. Denne utvidelsen er web-tjenestens inngangspunkt, som du kan kalle opp for å få ut dine data i xml, json, php, csv, etc.",
"ReportingApiReference": "Referanse for rapporterings-API",
"TopLinkTooltip": "Få tilgang til dine analysedata programmatisk gjennom en enkel API i json, xml, etc.",
"UserAuthentication": "Brukerautentisering",
- "UsingTokenAuth": "Hvis du vil %s spørre etter data i et script, en crontab, etc. %s må du legge til parameteret %s til API-spørringer som krever autentisering.",
+ "UsingTokenAuth": "Hvis du vil %1$s spørre etter data i et script, en crontab, etc. %2$s må du legge til parameteret %3$s til API-spørringer som krever autentisering.",
"Glossary": "Ordliste",
- "LearnAboutCommonlyUsedTerms": "Lær mer om vanlige termer for å få mest mulig ut av Piwik Analytics: %s og %s."
+ "LearnAboutCommonlyUsedTerms": "Lær mer om vanlige termer for å få mest mulig ut av Piwik Analytics: %1$s og %2$s."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/nl.json b/plugins/API/lang/nl.json
index 41bef30807..6e4547944d 100644
--- a/plugins/API/lang/nl.json
+++ b/plugins/API/lang/nl.json
@@ -1,13 +1,13 @@
{
"API": {
- "GenerateVisits": "Als u geen data hebt voor vandaag, kunt u eerst wat data genereren met de %s plugin. U kunt de %s plugin inschakelen, en dan klikken op het Bezoekers generator menu in het Piwik beheer gedeelte.",
- "KeepTokenSecret": "Deze token_auth is even geheim als uw gebruikersnaam en wachtwoord, %sdeel het met niemand%s!",
+ "GenerateVisits": "Als u geen data hebt voor vandaag, kunt u eerst wat data genereren met de %1$s plugin. U kunt de %2$s plugin inschakelen, en dan klikken op het Bezoekers generator menu in het Piwik beheer gedeelte.",
+ "KeepTokenSecret": "Deze token_auth is even geheim als uw gebruikersnaam en wachtwoord, %1$sdeel het met niemand%2$s!",
"LoadedAPIs": "%s API's succesvol geladen",
- "MoreInformation": "Voor meer informatie over de Piwik API's, lees even de %s introductie van de Piwik API %s en de %s Piwik API referenties %s.",
+ "MoreInformation": "Voor meer informatie over de Piwik API's, lees even de %1$s introductie van de Piwik API %2$s en de %3$s Piwik API referenties %4$s.",
"PluginDescription": "Alle data in Piwik is beschikbaar via eenvoudige API's. Deze plugin is het web service contactpunt, waarmee je je Web Analytics data in xml, json, php, csv, etc. kunt verkrijgen.",
"ReportingApiReference": "Rapportage API verwijzing",
"TopLinkTooltip": "Benader je Web Analyse data via een simpele API in josn, xml, enz.",
"UserAuthentication": "Gebruikers authenticatie.",
- "UsingTokenAuth": "Als u data wil %s opvragen via een script, een cronjob, enz. waarvoor authenticatie vereist is, %s moet u de parameter %s aan de API aanvraag URL's toevoegen"
+ "UsingTokenAuth": "Als u data wil %1$s opvragen via een script, een cronjob, enz. waarvoor authenticatie vereist is, %2$s moet u de parameter %3$s aan de API aanvraag URL's toevoegen"
}
} \ No newline at end of file
diff --git a/plugins/API/lang/pl.json b/plugins/API/lang/pl.json
index 4c0b6f1a6b..0a83b6c205 100644
--- a/plugins/API/lang/pl.json
+++ b/plugins/API/lang/pl.json
@@ -1,11 +1,13 @@
{
"API": {
- "GenerateVisits": "Jeżeli nie posiadasz żadnych danych do dnia dzisiejszego, możesz na początek wygenerować trochę symulowanych danych testowych używając wtyczki o nazwie %s. Możesz aktywować i uruchomić wtyczkę %s, a następnie kliknąć w menu przycisk Potwierdź w 'generatorze odwiedzin', w strefie menu Konfiguracja administratora systemu Piwik.",
- "KeepTokenSecret": "Ten token_auth jest tak samo tajny jak twój login i hasło, %s nie upowszechniaj go%s!",
+ "GenerateVisits": "Jeżeli nie posiadasz żadnych danych do dnia dzisiejszego, możesz na początek wygenerować trochę symulowanych danych testowych używając wtyczki o nazwie %1$s. Możesz aktywować i uruchomić wtyczkę %2$s, a następnie kliknąć w menu przycisk Potwierdź w 'generatorze odwiedzin', w strefie menu Konfiguracja administratora systemu Piwik.",
+ "KeepTokenSecret": "Ten token_auth jest tak samo tajny jak twój login i hasło, %1$s nie upowszechniaj go%2$s!",
"LoadedAPIs": "Środowisko API załadowano %s pomyślnie",
- "MoreInformation": "Aby uzyskać więcej informacji o interfejsie API statystyk Piwik, prosimy przeczytać %s Wprowadzenie do interfejsu API w Piwik%s, a także na stronie opracowania %s Piwik API Reference%s.",
+ "MoreInformation": "Aby uzyskać więcej informacji o interfejsie API statystyk Piwik, prosimy przeczytać %1$s Wprowadzenie do interfejsu API w Piwik%2$s, a także na stronie opracowania %3$s Piwik API Reference%4$s.",
+ "PluginDescription": "Wszystkie dane w Piwiku są dostępne poprzez proste API. Ten plugin jest punktem końcowym serwisu web,",
"TopLinkTooltip": "Dostęp do twoich danych analitycznych programistycznie poprzez proste API w formatach json, xml itp.",
"UserAuthentication": "Uwierzytelnianie użytkownika",
- "UsingTokenAuth": "Jeżeli wysuniesz żądanie %s ujęcia pewnych danych w statystyce za pomocą crontab, %s musisz dodać poniższy parametr %s do interfejsu API, wywołując URL-e które wymagają uwierzytelniania."
+ "UsingTokenAuth": "Jeżeli wysuniesz żądanie %1$s ujęcia pewnych danych w statystyce za pomocą crontab, %2$s musisz dodać poniższy parametr %3$s do interfejsu API, wywołując URL-e które wymagają uwierzytelniania.",
+ "Glossary": "Słownik"
}
} \ No newline at end of file
diff --git a/plugins/API/lang/pt-br.json b/plugins/API/lang/pt-br.json
index 930396245f..2ab4d322ba 100644
--- a/plugins/API/lang/pt-br.json
+++ b/plugins/API/lang/pt-br.json
@@ -1,15 +1,15 @@
{
"API": {
- "GenerateVisits": "Se você não tem nenhum dado hoje, primeiro você pode gerar alguns dados usando o plugin %s. Basta ativar o plugin %s e clicar no menu \"Gerador de Visitantes\" na área de Admin do Piwik.",
- "KeepTokenSecret": "Esse token_auth é tão secreto quanto seu login e sua senha, %s não compartilhe isso %s!",
+ "GenerateVisits": "Se você não tem nenhum dado hoje, primeiro você pode gerar alguns dados usando o plugin %1$s. Basta ativar o plugin %2$s e clicar no menu \"Gerador de Visitantes\" na área de Admin do Piwik.",
+ "KeepTokenSecret": "Esse token_auth é tão secreto quanto seu login e sua senha, %1$s não compartilhe isso %2$s!",
"LoadedAPIs": "%s APIs carregadas com sucesso",
- "MoreInformation": "Para mais informações sobre as APIs Piwik, por favor, dê uma olhada no %s Introdução para Piwik API %s e a %s API Piwik de Referência %s .",
+ "MoreInformation": "Para mais informações sobre as APIs Piwik, por favor, dê uma olhada no %1$s Introdução para Piwik API %2$s e a %3$s API Piwik de Referência %4$s.",
"PluginDescription": "Todos os dados em Piwik estão disponíveis através da APIs simples. Este plugin é o ponto de entrada do serviço web, que você pode chamar para obter seus dados de Web Analytics em XML, JSON, php, CSV, etc.",
"ReportingApiReference": "Reportando Referência do API",
"TopLinkTooltip": "Acesse seus dados de Análise Web de forma programática através de uma API simples em json, xml, etc.",
"UserAuthentication": "Autenticação de usuário",
- "UsingTokenAuth": "Se você quer %s requisitar dados dentro de um script, um crontab, etc. %s você precisa adicionar o parâmetro %s para a API chamar URLS que requerem autenticação.",
+ "UsingTokenAuth": "Se você quer %1$s requisitar dados dentro de um script, um crontab, etc. %2$s você precisa adicionar o parâmetro %3$s para a API chamar URLS que requerem autenticação.",
"Glossary": "Glossário",
- "LearnAboutCommonlyUsedTerms": "Saiba mais sobre os termos comumente utilizados ​​para tirar o máximo do Piwik Analytics: %s e %s."
+ "LearnAboutCommonlyUsedTerms": "Saiba mais sobre os termos comumente utilizados ​​para tirar o máximo do Piwik Analytics: %1$s e %2$s."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/pt.json b/plugins/API/lang/pt.json
index d1717faf1e..5531fbad56 100644
--- a/plugins/API/lang/pt.json
+++ b/plugins/API/lang/pt.json
@@ -1,11 +1,11 @@
{
"API": {
- "GenerateVisits": "Se não tiver dados para hoje pode gerar alguns através do plugin %s. Pode activar o plugin %s, e depois clicar no menu 'Gerador de Visitantes' na área de Administração do Piwik.",
- "KeepTokenSecret": "Este token_auth é tão secreto como o seu nome de utilizador e palavra-passe. %s não o partilhe%s!",
+ "GenerateVisits": "Se não tiver dados para hoje pode gerar alguns através do plugin %1$s. Pode activar o plugin %2$s, e depois clicar no menu 'Gerador de Visitantes' na área de Administração do Piwik.",
+ "KeepTokenSecret": "Este token_auth é tão secreto como o seu nome de utilizador e palavra-passe. %1$s não o partilhe%2$s!",
"LoadedAPIs": "%s APIs carregadas com sucesso",
- "MoreInformation": "Para mais informação sobre os APIs de Piwik, por favor dê uma vista de olhos na %s Introdução ao API Piwik %s e a %s Referência do API Piwik %s.",
+ "MoreInformation": "Para mais informação sobre os APIs de Piwik, por favor dê uma vista de olhos na %1$s Introdução ao API Piwik %2$s e a %3$s Referência do API Piwik %4$s.",
"TopLinkTooltip": "Aceda programaticamente à sua informação através de uma simples API em json, xml, etc.",
"UserAuthentication": "Autenticação do utilizador",
- "UsingTokenAuth": "Se quer %s pedir dados através de um script, crontab, etc. %s tem que adicionar o parâmetro %s aos URLs das chamadas do API que necessitam de autenticação."
+ "UsingTokenAuth": "Se quer %1$s pedir dados através de um script, crontab, etc. %2$s tem que adicionar o parâmetro %3$s aos URLs das chamadas do API que necessitam de autenticação."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/ro.json b/plugins/API/lang/ro.json
index 12c2bbb1da..673c34dd3d 100644
--- a/plugins/API/lang/ro.json
+++ b/plugins/API/lang/ro.json
@@ -1,11 +1,11 @@
{
"API": {
- "GenerateVisits": "Daca nu ai date pentru astazi, prima data poti genera date folosind pluginul %s. Poti activa pluginul %s, apoi apasa pe meniul 'Visitor Generator' in aria de administrare Piwik Admin.",
- "KeepTokenSecret": "Acest token_auth este secret cum sunt login-ul si parola, %s nu le fa publice%s!",
+ "GenerateVisits": "Daca nu ai date pentru astazi, prima data poti genera date folosind pluginul %1$s. Poti activa pluginul %2$s, apoi apasa pe meniul 'Visitor Generator' in aria de administrare Piwik Admin.",
+ "KeepTokenSecret": "Acest token_auth este secret cum sunt login-ul si parola, %1$s nu le fa publice%2$s!",
"LoadedAPIs": "%s API-uri încarcate cu succes",
- "MoreInformation": "Pentru mai multe informatii despre API-urile Piwik, va rugam sa va uitati la %s Introducere la Piwik API %s si la %s Referinte Piwik API %s.",
+ "MoreInformation": "Pentru mai multe informatii despre API-urile Piwik, va rugam sa va uitati la %1$s Introducere la Piwik API %2$s si la %3$s Referinte Piwik API %4$s.",
"TopLinkTooltip": "Acceseaza datele tale de Web Analytics in mod organizat prin intermediul unui simplu API in json, xml, etc.",
"UserAuthentication": "Identificare utilizator",
- "UsingTokenAuth": "Daca vrei sa %s preiei date printr-un script, crontab etc. %s este necesar sa adaugi parametrul %s la URL-urile API care cer autentificare."
+ "UsingTokenAuth": "Daca vrei sa %1$s preiei date printr-un script, crontab etc. %2$s este necesar sa adaugi parametrul %3$s la URL-urile API care cer autentificare."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/ru.json b/plugins/API/lang/ru.json
index e8db8ddd87..fd5378fa78 100644
--- a/plugins/API/lang/ru.json
+++ b/plugins/API/lang/ru.json
@@ -1,12 +1,12 @@
{
"API": {
- "GenerateVisits": "Если у вас нет данных на сегодня, вы можете для начала сгенерировать немного статистики, используя плагин: %s. Включите плагин %s, кликните на ’Visitor Generator’ в панели администрирования Piwik.",
- "KeepTokenSecret": "Этот token_auth является таким же секретным, как ваш логин и пароль. %s НЕ СООБЩАЙТЕ ЕГО НИКОМУ%s!",
+ "GenerateVisits": "Если у вас нет данных на сегодня, вы можете для начала сгенерировать немного статистики, используя плагин: %1$s. Включите плагин %2$s, кликните на ’Visitor Generator’ в панели администрирования Piwik.",
+ "KeepTokenSecret": "Этот token_auth является таким же секретным, как ваш логин и пароль. %1$s НЕ СООБЩАЙТЕ ЕГО НИКОМУ%2$s!",
"LoadedAPIs": "%s API успешно загружен",
- "MoreInformation": "Чтобы узнать больше информации о Piwik API, пожалуйста, посмотрите раздел %s Introduction to Piwik API %s в %s Piwik API Reference %s.",
+ "MoreInformation": "Чтобы узнать больше информации о Piwik API, пожалуйста, посмотрите раздел %1$s Introduction to Piwik API %2$s в %3$s Piwik API Reference %4$s.",
"PluginDescription": "Все данные из Piwik доступны через простые API. Этот плагин является входной точкой для веб сервиса, который можно вызвать чтобы получить данные веб аналитики в xml, json, php, csv и др.",
"TopLinkTooltip": "Получайте доступ к вашей веб-аналитике с помощью простого API и использования json, xml и др.",
"UserAuthentication": "Аутентификация пользователя",
- "UsingTokenAuth": "Если вам необходимо %s запрашивать данные в ваших скриптах, cron-задачах, или другого источника, то вам %s необходимо добавить следующий ключ %s к URL API-вызова, который требует аутентификации."
+ "UsingTokenAuth": "Если вам необходимо %1$s запрашивать данные в ваших скриптах, cron-задачах, или другого источника, то вам %2$s необходимо добавить следующий ключ %3$s к URL API-вызова, который требует аутентификации."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/sl.json b/plugins/API/lang/sl.json
index 67cdee6d6c..71ea9c7d74 100644
--- a/plugins/API/lang/sl.json
+++ b/plugins/API/lang/sl.json
@@ -1,10 +1,10 @@
{
"API": {
- "GenerateVisits": "Če nimate današnjih podatkov, potem lahko najprej ustvarite nekaj podatkov s %s vtičnikom. Vtičnik %s lahko omogočite in nato kliknete na 'Visitor Generator' meni v Piwik administraciji.",
- "KeepTokenSecret": "Ta žeton je skriven, kot vaše uporabniško ime in geslo, %s ne delite ga z drugimi %s!",
+ "GenerateVisits": "Če nimate današnjih podatkov, potem lahko najprej ustvarite nekaj podatkov s %1$s vtičnikom. Vtičnik %2$s lahko omogočite in nato kliknete na 'Visitor Generator' meni v Piwik administraciji.",
+ "KeepTokenSecret": "Ta žeton je skriven, kot vaše uporabniško ime in geslo, %1$s ne delite ga z drugimi %2$s!",
"LoadedAPIs": "Uspešno naloženih %s API-jev",
- "MoreInformation": "Za več informacij o Piwik API-ju, si oglejte %sNavodila za uporabo Piwik API-ja %s in %s Piwik API Reference %s.",
+ "MoreInformation": "Za več informacij o Piwik API-ju, si oglejte %1$sNavodila za uporabo Piwik API-ja %2$s in %3$s Piwik API Reference %4$s.",
"UserAuthentication": "Overitev uporabnika",
- "UsingTokenAuth": "Če želite %s zahtevati podatke preko skripte, crontaba, itd. %s potem morate dodati parameter %s v URL API klica za overitev."
+ "UsingTokenAuth": "Če želite %1$s zahtevati podatke preko skripte, crontaba, itd. %2$s potem morate dodati parameter %3$s v URL API klica za overitev."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/sq.json b/plugins/API/lang/sq.json
index 96bf9847c5..ce3df6871a 100644
--- a/plugins/API/lang/sq.json
+++ b/plugins/API/lang/sq.json
@@ -1,11 +1,11 @@
{
"API": {
- "GenerateVisits": "Nëse nuk keni të dhëna për ditën e sotme, mund të prodhonit ca të dhëna duke përdorur shtojcën %s. Shtojcën %s mund ta aktivizoni, mandej klikoni mbi menunë 'Gjenerator Vizitorësh' te pjesa Përgjegjës Piwik-u.",
- "KeepTokenSecret": "Ky token_auth është po aq i fshehtë sa të dhënat tuaja për hyrjen dhe fjalëkalimi juaj, %s mos ia jepni kujt%s!",
+ "GenerateVisits": "Nëse nuk keni të dhëna për ditën e sotme, mund të prodhonit ca të dhëna duke përdorur shtojcën %1$s. Shtojcën %2$s mund ta aktivizoni, mandej klikoni mbi menunë 'Gjenerator Vizitorësh' te pjesa Përgjegjës Piwik-u.",
+ "KeepTokenSecret": "Ky token_auth është po aq i fshehtë sa të dhënat tuaja për hyrjen dhe fjalëkalimi juaj, %1$s mos ia jepni kujt%2$s!",
"LoadedAPIs": "U ngarkua me sukses API %s",
- "MoreInformation": "Për më tepër të dhëna rreth API-ve të Piwik-ut, ju lutem, hidhini një sy %s Hyrje në API-t e Piwik-ut %s dhe %s Referencë API-sh Piwik-u %s.",
+ "MoreInformation": "Për më tepër të dhëna rreth API-ve të Piwik-ut, ju lutem, hidhini një sy %1$s Hyrje në API-t e Piwik-ut %2$s dhe %3$s Referencë API-sh Piwik-u %4$s.",
"TopLinkTooltip": "Hyni programatikisht te të dhënat tuaja të Analizave Web përmes një API-je të thjeshtë json, xml, etj.",
"UserAuthentication": "Mirëfilltësim përdoruesi",
- "UsingTokenAuth": "Nëse doni të %s kërkoni të dhëna brenda një programthi, një crontab-i, etj. %s lypset të shtoni parametrin %s te URL-të për thirrje API që lypin mirëfilltësim."
+ "UsingTokenAuth": "Nëse doni të %1$s kërkoni të dhëna brenda një programthi, një crontab-i, etj. %2$s lypset të shtoni parametrin %3$s te URL-të për thirrje API që lypin mirëfilltësim."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/sr.json b/plugins/API/lang/sr.json
index 1118164af8..11361f201f 100644
--- a/plugins/API/lang/sr.json
+++ b/plugins/API/lang/sr.json
@@ -1,12 +1,12 @@
{
"API": {
- "GenerateVisits": "Ukoliko nema podataka za danas, onda ih prvo generišite pomoću dodatka %s. Aktivirajte dodatak %s a onda kliknite na 'Generator posetilaca' na stranici za Piwik administraciju.",
- "KeepTokenSecret": "token_auth je poverljivi podatak poput vašeg korisničkog imena i lozinke, stoga ga %s nemojte nikome pokazivati%s!",
+ "GenerateVisits": "Ukoliko nema podataka za danas, onda ih prvo generišite pomoću dodatka %1$s. Aktivirajte dodatak %2$s a onda kliknite na 'Generator posetilaca' na stranici za Piwik administraciju.",
+ "KeepTokenSecret": "token_auth je poverljivi podatak poput vašeg korisničkog imena i lozinke, stoga ga %1$s nemojte nikome pokazivati%2$s!",
"LoadedAPIs": "Uspešno učitano API-ja: %s",
- "MoreInformation": "Za više informacija o Piwik API-ju molimo vas da pogledate %s uvod u Piwik API %s i %s Piwik API referenc listu %s.",
+ "MoreInformation": "Za više informacija o Piwik API-ju molimo vas da pogledate %1$s uvod u Piwik API %2$s i %3$s Piwik API referenc listu %4$s.",
"PluginDescription": "Svi podaci su u Piwik-u dostupni preko jednostavnih API-ja. Ovaj dodatak je ulazna tačka za veb servis koji možete pozivati kako biste dobili vaše analitičke podatke u XML, JSON, PHP, CSV i drugim formatima.",
"TopLinkTooltip": "Pristupite analitičkim podacima iz vašeg programa pomoću jednostavnog API-ja u json-u, xml-u itd.",
"UserAuthentication": "Autentifikacija korisnika",
- "UsingTokenAuth": "Ukoliko želite da %s dođete do podataka putem skripta, crontaba i slično %s potrebno je da dodate parametar %s API pozivima."
+ "UsingTokenAuth": "Ukoliko želite da %1$s dođete do podataka putem skripta, crontaba i slično %2$s potrebno je da dodate parametar %3$s API pozivima."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/sv.json b/plugins/API/lang/sv.json
index 6f8b2a3b9c..bdd60c8c23 100644
--- a/plugins/API/lang/sv.json
+++ b/plugins/API/lang/sv.json
@@ -1,11 +1,13 @@
{
"API": {
- "GenerateVisits": "Om du inte har data för idag så kan du först skapa några data med hjälp av %s plugin. Du kan aktivera %s plugin, klicka sedan på 'Besöksgeneratorn'-menyn i Piwik administrationsområdet.",
- "KeepTokenSecret": "Detta token_auth är lika hemligt som ditt användarnamn och lösenord, %s dela inte med dig av detta! %s!",
+ "GenerateVisits": "Om du inte har data för idag så kan du först skapa några data med hjälp av %1$s plugin. Du kan aktivera %2$s plugin, klicka sedan på 'Besöksgeneratorn'-menyn i Piwik administrationsområdet.",
+ "KeepTokenSecret": "Detta token_auth är lika hemligt som ditt användarnamn och lösenord, %1$s dela inte med dig av detta! %2$s!",
"LoadedAPIs": "Laddade in %s API'er utan problem",
- "MoreInformation": "För mer information om Piwiks API'er, ta en titt i %s Introduction to Piwik API %s och %s Piwik API Reference %s.",
+ "MoreInformation": "För mer information om Piwiks API'er, ta en titt i %1$s Introduction to Piwik API %2$s och %3$s Piwik API Reference %4$s.",
+ "PluginDescription": "Allt data i Piwik finns tillgängligt genom enkla API:er. Denna plugin är en web service entry point, vilken du kan använda för att hämta ditt Piwik-data i formaten xml, json, php, csv, etc.",
"TopLinkTooltip": "Få åtkomst till webbanalysdata programmatiskt genom ett enkelt API i t.ex. json, xml etc.",
"UserAuthentication": "Användarautentisering",
- "UsingTokenAuth": "Om du vill %s begära uppgifter inom ett skript, ett crontab-jobb, etc. %s måste du lägga till parametern %s till API-anrop webbadresser som kräver autentisering."
+ "UsingTokenAuth": "Om du vill %1$s begära uppgifter inom ett skript, ett crontab-jobb, etc. %2$s måste du lägga till parametern %3$s till API-anrop webbadresser som kräver autentisering.",
+ "Glossary": "Ordbok"
}
} \ No newline at end of file
diff --git a/plugins/API/lang/ta.json b/plugins/API/lang/ta.json
index e03c4fe2a9..28b9295b59 100644
--- a/plugins/API/lang/ta.json
+++ b/plugins/API/lang/ta.json
@@ -1,6 +1,6 @@
{
"API": {
- "KeepTokenSecret": "இந்த token_auth ஆனது உங்கள் கடவுச்சொல்லை போன்று இரகசியமானது. %s பகிர வேண்டாம்%s!",
+ "KeepTokenSecret": "இந்த token_auth ஆனது உங்கள் கடவுச்சொல்லை போன்று இரகசியமானது. %1$s பகிர வேண்டாம்%2$s!",
"LoadedAPIs": "%s ஏபிஐ-கள் வெற்றிகரமாக ஏற்றப்பட்டன",
"TopLinkTooltip": "JSON, XML முதலிய எளிய பயன்பாட்டு நிரலாக்க இடைமுகம் மூலம் நிரலாக்கத்தின்படி உங்கள் இணைய பகுப்பாய்வு தரவு அணுக",
"UserAuthentication": "பயனர் உறுதிப்பாடு"
diff --git a/plugins/API/lang/th.json b/plugins/API/lang/th.json
index 7848a2f92d..2ddd28ca69 100644
--- a/plugins/API/lang/th.json
+++ b/plugins/API/lang/th.json
@@ -1,10 +1,10 @@
{
"API": {
- "GenerateVisits": "ถ้าคุณไม่มีข้อมูลสำหรับวันนี้ คุณสามารถสร้างข้อมูลบางอย่างใช้ปลั๊กอินการ %s เป็นครั้งแรก คุณสามารถเปิดใช้งานปลั๊กอิน %s แล้วคลิกที่เมนู 'ตัวสร้างผู้เข้าชม' ในพื้นที่จัดการ Piwik",
- "KeepTokenSecret": "token_auth นี้จะเป็นความลับในการเข้าสู่ระบบและรหัสผ่านของคุณ %s ไม่แชร์ %s ได้",
+ "GenerateVisits": "ถ้าคุณไม่มีข้อมูลสำหรับวันนี้ คุณสามารถสร้างข้อมูลบางอย่างใช้ปลั๊กอินการ %1$s เป็นครั้งแรก คุณสามารถเปิดใช้งานปลั๊กอิน %2$s แล้วคลิกที่เมนู 'ตัวสร้างผู้เข้าชม' ในพื้นที่จัดการ Piwik",
+ "KeepTokenSecret": "token_auth นี้จะเป็นความลับในการเข้าสู่ระบบและรหัสผ่านของคุณ %1$s ไม่แชร์ %2$s ได้",
"LoadedAPIs": "โหลด API %s สำเร็จแล้ว",
- "MoreInformation": "สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Piwik APIs โปรดให้ดูที่ %s บทนำสู่การใช้ Piwik API %s และ %s แหล่งที่มาของ Piwik API %s.",
+ "MoreInformation": "สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Piwik APIs โปรดให้ดูที่ %1$s บทนำสู่การใช้ Piwik API %2$s และ %3$s แหล่งที่มาของ Piwik API %4$s.",
"UserAuthentication": "การรับรองความถูกต้องของผู้ใช้",
- "UsingTokenAuth": "ถ้าคุณต้องการ ข้อมูลที่ร้องขอ %s ภายในสคริปต์ crontab ฯลฯ %s คุณต้องการเพิ่มพารามิเตอร์ %s API เรียก url ที่ต้องการการรับรองความถูกต้อง"
+ "UsingTokenAuth": "ถ้าคุณต้องการ ข้อมูลที่ร้องขอ %1$s ภายในสคริปต์ crontab ฯลฯ %2$s คุณต้องการเพิ่มพารามิเตอร์ %3$s API เรียก url ที่ต้องการการรับรองความถูกต้อง"
}
} \ No newline at end of file
diff --git a/plugins/API/lang/tl.json b/plugins/API/lang/tl.json
index 9865132583..94d5bff2c9 100644
--- a/plugins/API/lang/tl.json
+++ b/plugins/API/lang/tl.json
@@ -1,11 +1,11 @@
{
"API": {
- "GenerateVisits": "Kung wala kang data para sa araw na ito maaari ka munang bumuo ng ilang data gamit ang %s na plugin. Maaari mong i-enable ang %s na plugin, at pagkatapos ay i-click ang 'Tagabuo ng Bisita' na menu sa Piwik Admin area.",
- "KeepTokenSecret": "Ang token_auth na ito ay isang lihim gaya ng iyong login at password, %s huwag itong ibahagi sa iba %s!",
+ "GenerateVisits": "Kung wala kang data para sa araw na ito maaari ka munang bumuo ng ilang data gamit ang %1$s na plugin. Maaari mong i-enable ang %2$s na plugin, at pagkatapos ay i-click ang 'Tagabuo ng Bisita' na menu sa Piwik Admin area.",
+ "KeepTokenSecret": "Ang token_auth na ito ay isang lihim gaya ng iyong login at password, %1$s huwag itong ibahagi sa iba %2$s!",
"LoadedAPIs": "Matagumpay na nai-load ang %s APIs",
- "MoreInformation": "Para sa karagdagang impormasyon tungkol sa Piwik API, mangyaring tumingin sa %s Panimula sa Piwik API %s at ang %s Piwik API Reference %s.",
+ "MoreInformation": "Para sa karagdagang impormasyon tungkol sa Piwik API, mangyaring tumingin sa %1$s Panimula sa Piwik API %2$s at ang %3$s Piwik API Reference %4$s.",
"TopLinkTooltip": "I-access ang iyong data ng Web Analytics programmatically sa pamamagitan ng isang simpleng API sa json, xml, atbp.",
"UserAuthentication": "Pagpapatunay sa User",
- "UsingTokenAuth": "Kung nais mong %s mag-request ng data sa loob ng isang script, crontab, atbp. %s kailangan mong idagdag ang parameter na %s sa mga tumatawag ng API na URL na nangangailangan ng pagpapatunay."
+ "UsingTokenAuth": "Kung nais mong %1$s mag-request ng data sa loob ng isang script, crontab, atbp. %2$s kailangan mong idagdag ang parameter na %3$s sa mga tumatawag ng API na URL na nangangailangan ng pagpapatunay."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/tr.json b/plugins/API/lang/tr.json
index 458b2f09af..cdc3253411 100644
--- a/plugins/API/lang/tr.json
+++ b/plugins/API/lang/tr.json
@@ -1,11 +1,11 @@
{
"API": {
- "GenerateVisits": "Eğer bugün için bir veri yoksa öncelikle %s eklentisiyle biraz veri oluşturabilirsiniz. %s eklentisini aktifleştirin, sonrasında Piwik Yönetim alanından 'Ziyaretçi Oluşturucu' menüsüne tıklayınız.",
- "KeepTokenSecret": "token_auth kullanıcı adı ve şifreniz kadar gizlidir, %s kimseyle paylaşmayınız%s!",
+ "GenerateVisits": "Eğer bugün için bir veri yoksa öncelikle %1$s eklentisiyle biraz veri oluşturabilirsiniz. %2$s eklentisini aktifleştirin, sonrasında Piwik Yönetim alanından 'Ziyaretçi Oluşturucu' menüsüne tıklayınız.",
+ "KeepTokenSecret": "token_auth kullanıcı adı ve şifreniz kadar gizlidir, %1$s kimseyle paylaşmayınız%2$s!",
"LoadedAPIs": "%s API başarılı şekilde yüklendi",
- "MoreInformation": "Piwik APIsi hakkında daha fazla bilgi için lütfen %s Piwik API Kullanımı %s ve %s Piwik API Referansına %s bakınız.",
+ "MoreInformation": "Piwik APIsi hakkında daha fazla bilgi için lütfen %1$s Piwik API Kullanımı %2$s ve %3$s Piwik API Referansına %4$s bakınız.",
"TopLinkTooltip": "Json, xml veya diğerleri ile Api kullanarak erişin.",
"UserAuthentication": "Kullanıcı kimlik doğrulaması",
- "UsingTokenAuth": "Bir script, cron vb içerisinden %s verisi çağırmak isterseniz, %s kimlik doğrulama gerektiren API bağlantılarına %s parametresini eklemelisiniz."
+ "UsingTokenAuth": "Bir script, cron vb içerisinden %1$s verisi çağırmak isterseniz, %2$s kimlik doğrulama gerektiren API bağlantılarına %3$s parametresini eklemelisiniz."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/uk.json b/plugins/API/lang/uk.json
index b33161e1eb..20e3eae228 100644
--- a/plugins/API/lang/uk.json
+++ b/plugins/API/lang/uk.json
@@ -1,10 +1,10 @@
{
"API": {
- "GenerateVisits": "Якщо на сьогодні ще немає даних то можна власноручно згенерувати дані використовуючи плагін %s . Щоб увімкнути плагін %s , клацніть \"Visitor Generator\" меню в Панелі Адміністратора Piwik.",
- "KeepTokenSecret": "token_auth є секретним, на рівні з логіном та паролем, тож %s тримайте цю інформацію секреті%s!",
+ "GenerateVisits": "Якщо на сьогодні ще немає даних то можна власноручно згенерувати дані використовуючи плагін %1$s . Щоб увімкнути плагін %2$s , клацніть \"Visitor Generator\" меню в Панелі Адміністратора Piwik.",
+ "KeepTokenSecret": "token_auth є секретним, на рівні з логіном та паролем, тож %1$s тримайте цю інформацію секреті%2$s!",
"LoadedAPIs": "%s API успішно завантажено",
- "MoreInformation": "Для отримання детальнішої інформації про API Piwik, перегляньте %s Вступ до Piwik API %s та %s Довідковий матеріал по Piwik API %s.",
+ "MoreInformation": "Для отримання детальнішої інформації про API Piwik, перегляньте %1$s Вступ до Piwik API %2$s та %3$s Довідковий матеріал по Piwik API %4$s.",
"UserAuthentication": "Аутентифікація користоувача",
- "UsingTokenAuth": "Для %sдоступу до інформації скриптом, програмою і т.д.%s треба додавати параметр %s до кожного виклику API якищо використовуваний URL вимагає аутентифікації."
+ "UsingTokenAuth": "Для %1$sдоступу до інформації скриптом, програмою і т.д.%2$s треба додавати параметр %3$s до кожного виклику API якищо використовуваний URL вимагає аутентифікації."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/vi.json b/plugins/API/lang/vi.json
index 18bf5e4d5b..05c908db9a 100644
--- a/plugins/API/lang/vi.json
+++ b/plugins/API/lang/vi.json
@@ -1,13 +1,13 @@
{
"API": {
- "GenerateVisits": "Nếu bạn không có dữ liệu cho ngày hôm nay, bạn có thể sinh một số dữ liệu (về người thăm website) bằng cách sử dụng plugin %s. Bạn có thể khởi động plugin %s, sau đó click vào menu \"Visitor Generator\" trên khu vực quản trị Piwik.",
- "KeepTokenSecret": "token_auth này chặt chẽ như mật khẩu đăng nhập của bạn, %s không thể chia sẻ nó %s!",
+ "GenerateVisits": "Nếu bạn không có dữ liệu cho ngày hôm nay, bạn có thể sinh một số dữ liệu (về người thăm website) bằng cách sử dụng plugin %1$s. Bạn có thể khởi động plugin %2$s, sau đó click vào menu \"Visitor Generator\" trên khu vực quản trị Piwik.",
+ "KeepTokenSecret": "token_auth này chặt chẽ như mật khẩu đăng nhập của bạn, %1$s không thể chia sẻ nó %2$s!",
"LoadedAPIs": "Nạp thành công API %s",
- "MoreInformation": "Để biết thêm thông tin về các API của Piwik, vui lòng xem ở Giới thiệu %s về %s API Piwik và API %s Piwik Reference %s",
+ "MoreInformation": "Để biết thêm thông tin về các API của Piwik, vui lòng xem ở Giới thiệu %1$s về %2$s API Piwik và API %3$s Piwik Reference %4$s",
"PluginDescription": "Tất cả dữ liệu của Piwik đều tủy cập được thông qua API. Plugin này là 1 web service, từ đó bạn có thể gọi để truy cập dữ liệu dưới dạng xml, json, csv,...",
"ReportingApiReference": "Tham chiếu API báo cáo",
"TopLinkTooltip": "Truy cập dữ liệu lập trình Web Analytics của bạn thông qua một API đơn giản trong JSON, xml, vv",
"UserAuthentication": "Xác thực người dùng",
- "UsingTokenAuth": "Nếu bạn muốn %s truy vấn dữ liệu trong script hoặc crontab, ... %s bạn cần phải thêm tham số %s vào các API call URL yêu cầu xác thực."
+ "UsingTokenAuth": "Nếu bạn muốn %1$s truy vấn dữ liệu trong script hoặc crontab, ... %2$s bạn cần phải thêm tham số %3$s vào các API call URL yêu cầu xác thực."
}
} \ No newline at end of file
diff --git a/plugins/API/lang/zh-cn.json b/plugins/API/lang/zh-cn.json
index 88023c92fb..6940435465 100644
--- a/plugins/API/lang/zh-cn.json
+++ b/plugins/API/lang/zh-cn.json
@@ -1,11 +1,11 @@
{
"API": {
- "GenerateVisits": "如果您今天还沒有任何资料,可以先用 %s 插件来产生一些数据。您可以启用 %s 插件,然后点击在 Piwik 管理菜单下的'生成访客'选项。",
- "KeepTokenSecret": "授权号 token_auth 与您的帐号和密码一样重要,%s请不要公开%s!",
+ "GenerateVisits": "如果您今天还沒有任何资料,可以先用 %1$s 插件来产生一些数据。您可以启用 %2$s 插件,然后点击在 Piwik 管理菜单下的'生成访客'选项。",
+ "KeepTokenSecret": "授权号 token_auth 与您的帐号和密码一样重要,%1$s请不要公开%2$s!",
"LoadedAPIs": "已成功载入 %s 个 APIs",
- "MoreInformation": "了解更多关于 Piwik APIs 的资讯,请访问 %sPiwik API 介绍%s 和 %s Piwik API 参考资料%s。",
+ "MoreInformation": "了解更多关于 Piwik APIs 的资讯,请访问 %1$sPiwik API 介绍%2$s 和 %3$s Piwik API 参考资料%4$s。",
"TopLinkTooltip": "通过一个简单的 API,让您可以以 xml, json, 及其它格式取得网站统计数据。",
"UserAuthentication": "身份验证",
- "UsingTokenAuth": "如果您想在代码、定时任务中 %s 请求资料,%s 要在 API 调用需要认证的网址时增加参数 %s。"
+ "UsingTokenAuth": "如果您想在代码、定时任务中 %1$s 请求资料,%2$s 要在 API 调用需要认证的网址时增加参数 %3$s。"
}
} \ No newline at end of file
diff --git a/plugins/API/lang/zh-tw.json b/plugins/API/lang/zh-tw.json
index 5bd89475f5..40c35b5731 100644
--- a/plugins/API/lang/zh-tw.json
+++ b/plugins/API/lang/zh-tw.json
@@ -1,12 +1,12 @@
{
"API": {
- "GenerateVisits": "如果你今天還沒有任何資料,你可以先使用 %s 外掛來產生一些數據。你可以啟用 %s 外掛,然後點擊在 Piwik 管理員區域裡的'產生訪客'選單。",
- "KeepTokenSecret": "token_auth 如你的帳號和密碼般重要,%s請不要公開它%s!",
+ "GenerateVisits": "如果你今天還沒有任何資料,你可以先使用 %1$s 外掛來產生一些數據。你可以啟用 %2$s 外掛,然後點擊在 Piwik 管理員區域裡的'產生訪客'選單。",
+ "KeepTokenSecret": "token_auth 如你的帳號和密碼般重要,%1$s請不要公開它%2$s!",
"LoadedAPIs": "已成功載入 %s 個 APIs",
- "MoreInformation": "取得更多關於 Piwik APIs 的資訊,請前往 %sPiwik API 指引%s 與 %s Piwik API 參考資料%s。",
+ "MoreInformation": "取得更多關於 Piwik APIs 的資訊,請前往 %1$sPiwik API 指引%2$s 與 %3$s Piwik API 參考資料%4$s。",
"PluginDescription": "所有在Piwik內透過簡單的API所取得資料都是可用的,這個外掛是網站服務的入口點,因此,你可以透過下列網路分析的資料:xml、json、php、csv,諸如此類的方式來加以呼叫。",
"TopLinkTooltip": "透過API可以取得網站流量統計分析json與xml格式的數據。",
"UserAuthentication": "使用者驗證",
- "UsingTokenAuth": "如果你想從程式、工作排程在 %s 請求資料。%s 你需要新增一個 %s 字串至 API 呼叫網址來進行驗證。"
+ "UsingTokenAuth": "如果你想從程式、工作排程在 %1$s 請求資料。%2$s 你需要新增一個 %3$s 字串至 API 呼叫網址來進行驗證。"
}
} \ No newline at end of file
diff --git a/plugins/API/tests/Integration/APITest.php b/plugins/API/tests/Integration/APITest.php
index 2362bebdf2..c60f1769ab 100644
--- a/plugins/API/tests/Integration/APITest.php
+++ b/plugins/API/tests/Integration/APITest.php
@@ -59,6 +59,7 @@ class APITest extends IntegrationTestCase
"method%3dVisitsSummary.get%26token_auth%3d$token%26idSite%3d1%26date%3d2015-01-26%26period%3dday",
"method%3dVisitsSummary.get%26idSite%3d1%26date%3d2015-01-26%26period%3dday",
"method%3dVisitsSummary.get%26idSite%3d1%26token_auth%3danonymous%26date%3d2015-01-26%26period%3dday",
+ "method%3dVisitsSummary.get%26token_auth%3d$token%26idSite%3d1%26date%3d2015-01-26%26period%3dday%26segment%3dvisitDuration%3d%3d30%3bactions%3e2",
);
$response = $this->api->getBulkRequest($urls);
@@ -67,6 +68,7 @@ class APITest extends IntegrationTestCase
$this->assertSame(0, $response[1]['nb_visits']);
$this->assertResponseIsPermissionError($response[2]);
$this->assertResponseIsPermissionError($response[3]);
+ $this->assertResponseIsSuccess($response[4]);
}
private function assertResponseIsPermissionError($response)
diff --git a/plugins/Actions/Columns/ActionType.php b/plugins/Actions/Columns/ActionType.php
index 3d6e9b599a..59f09c87e9 100644
--- a/plugins/Actions/Columns/ActionType.php
+++ b/plugins/Actions/Columns/ActionType.php
@@ -47,7 +47,7 @@ class ActionType extends ActionDimension
$segment->setSegment('actionType');
$segment->setName('Actions_ActionType');
$segment->setSqlSegment('log_action.type');
- $segment->setType(Segment::TYPE_METRIC);
+ $segment->setType(Segment::TYPE_DIMENSION);
$segment->setAcceptedValues(sprintf('A type of action, such as: %s', implode(', ', $types)));
$segment->setSqlFilter(function ($type) use ($types) {
if (array_key_exists($type, $types)) {
diff --git a/plugins/Actions/Columns/Metrics/AverageTimeOnPage.php b/plugins/Actions/Columns/Metrics/AverageTimeOnPage.php
index a11c60e853..934ee987b1 100644
--- a/plugins/Actions/Columns/Metrics/AverageTimeOnPage.php
+++ b/plugins/Actions/Columns/Metrics/AverageTimeOnPage.php
@@ -34,7 +34,7 @@ class AverageTimeOnPage extends ProcessedMetric
public function compute(Row $row)
{
$sumTimeSpent = $this->getMetric($row, 'sum_time_spent');
- $visits = $this->getMetric($row, 'nb_visits');
+ $visits = $this->getMetric($row, 'nb_hits');
return Piwik::getQuotientSafe($sumTimeSpent, $visits, $precision = 0);
}
@@ -46,6 +46,6 @@ class AverageTimeOnPage extends ProcessedMetric
public function getDependentMetrics()
{
- return array('sum_time_spent', 'nb_visits');
+ return array('sum_time_spent', 'nb_hits');
}
-} \ No newline at end of file
+}
diff --git a/plugins/Actions/javascripts/actionsDataTable.js b/plugins/Actions/javascripts/actionsDataTable.js
index ad64445c22..ef8442e1bd 100644
--- a/plugins/Actions/javascripts/actionsDataTable.js
+++ b/plugins/Actions/javascripts/actionsDataTable.js
@@ -318,7 +318,12 @@
$('tr#' + idToReplace, root).after(response).remove();
- var missingColumns = (response.prev().find('td').size() - response.find('td').size());
+ var requiredColumnCount = 0, availableColumnCount = 0;
+
+ response.prev().find('td').each(function(){ requiredColumnCount += $(this).attr('colspan') || 1; });
+ response.find('td').each(function(){ availableColumnCount += $(this).attr('colspan') || 1; });
+
+ var missingColumns = requiredColumnCount - availableColumnCount;
for (var i = 0; i < missingColumns; i++) {
// if the subtable has fewer columns than the parent table, add some columns.
// this happens for example, when the parent table has performance metrics and the subtable doesn't.
diff --git a/plugins/Actions/javascripts/rowactions.js b/plugins/Actions/javascripts/rowactions.js
index 33050b90ed..87b77868e4 100644
--- a/plugins/Actions/javascripts/rowactions.js
+++ b/plugins/Actions/javascripts/rowactions.js
@@ -25,41 +25,45 @@ $(function () {
return link;
}
- DataTable_RowActions_Transitions.registerReport({
- isAvailableOnReport: function (dataTableParams) {
- return isPageUrlReport(dataTableParams);
- },
- isAvailableOnRow: function (dataTableParams, tr) {
- return isPageUrlReport(dataTableParams) && tr.find('> td:first span.label').parent().is('a')
- },
- trigger: function (tr, e, subTableLabel) {
- var link = getLinkForTransitionAndOverlayPopover(tr);
- this.openPopover('url:' + link);
- }
- });
+ if (window.DataTable_RowActions_Transitions) {
+ DataTable_RowActions_Transitions.registerReport({
+ isAvailableOnReport: function (dataTableParams) {
+ return isPageUrlReport(dataTableParams);
+ },
+ isAvailableOnRow: function (dataTableParams, tr) {
+ return isPageUrlReport(dataTableParams) && tr.find('> td:first span.label').parent().is('a')
+ },
+ trigger: function (tr, e, subTableLabel) {
+ var link = getLinkForTransitionAndOverlayPopover(tr);
+ this.openPopover('url:' + link);
+ }
+ });
- DataTable_RowActions_Transitions.registerReport({
- isAvailableOnReport: function (dataTableParams) {
- return isPageTitleReport(dataTableParams);
- },
- isAvailableOnRow: function (dataTableParams, tr) {
- return isPageTitleReport(dataTableParams);
- },
- trigger: function (tr, e, subTableLabel) {
- DataTable_RowAction.prototype.trigger.apply(this, [tr, e, subTableLabel]);
- }
- });
+ DataTable_RowActions_Transitions.registerReport({
+ isAvailableOnReport: function (dataTableParams) {
+ return isPageTitleReport(dataTableParams);
+ },
+ isAvailableOnRow: function (dataTableParams, tr) {
+ return isPageTitleReport(dataTableParams);
+ },
+ trigger: function (tr, e, subTableLabel) {
+ DataTable_RowAction.prototype.trigger.apply(this, [tr, e, subTableLabel]);
+ }
+ });
+ }
- DataTable_RowActions_Overlay.registerReport({
- isAvailableOnReport: function (dataTableParams) {
- return isPageUrlReport(dataTableParams);
- },
- onClick: function (actionA, tr, e) {
- return {
- link: getLinkForTransitionAndOverlayPopover(tr),
- segment: null
+ if (window.DataTable_RowActions_Overlay) {
+ DataTable_RowActions_Overlay.registerReport({
+ isAvailableOnReport: function (dataTableParams) {
+ return isPageUrlReport(dataTableParams);
+ },
+ onClick: function (actionA, tr, e) {
+ return {
+ link: getLinkForTransitionAndOverlayPopover(tr),
+ segment: null
+ }
}
- }
- });
+ });
+ }
}); \ No newline at end of file
diff --git a/plugins/Actions/lang/ar.json b/plugins/Actions/lang/ar.json
index 3142990e99..a6de6924bf 100644
--- a/plugins/Actions/lang/ar.json
+++ b/plugins/Actions/lang/ar.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "متوسط على أساس %s كبسة %s ما بين %s و %s",
+ "AvgGenerationTimeTooltip": "متوسط على أساس %1$s كبسة %2$s ما بين %3$s و %4$s",
"ColumnClickedURL": "الرابط المتبوع",
"ColumnClicks": "النقرات",
"ColumnClicksDocumentation": "عدد مرات النقر على هذا الرابط.",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "الرابط الصادر هو رابط يقود الزائر بعيداً عن موقعك (إلى اسم نطاق آخر).",
"OutlinksReportDocumentation": "يعرض هذا التقرير قائمة هيكلية بالروابط الصادرة والتي تم النقر عليها بواسطة زوارك.",
"PagesReportDocumentation": "يتضمن هذا التقرير معلومات عن روابط الصفحات التي تم زيارتها. %s الجدول منظم هيكلياً، والروابط معروضة في شكل شجرة مجلدات.",
- "PageTitlesReportDocumentation": "يتضمن هذا التقرير معلومات عن عناوين الصفحات التي تم زيارتها. %s عنوان الصفحة هو وسم لغة %s HTML الذي تعرضه أغلب متصفحات ويب كعناون النافذة.",
+ "PageTitlesReportDocumentation": "يتضمن هذا التقرير معلومات عن عناوين الصفحات التي تم زيارتها. %1$s عنوان الصفحة هو وسم لغة %2$s HTML الذي تعرضه أغلب متصفحات ويب كعناون النافذة.",
"PageUrls": "روابط الصفحة",
"PluginDescription": "تقارير عرض الصفحات وعناوين الصفحات. تتيح لك هذه التقارير قياس خدمة البحث الداخلية في موقعك. كما تقدم تتبعاً آلياً للنقرات للروابط الخارجية وتنزيلات الملفات.",
"SiteSearchCategories1": "يعرض هذا التقرير قائمة الفئات التي اختارها زوارك عندما قاموا بالبحث في موقعك.",
diff --git a/plugins/Actions/lang/be.json b/plugins/Actions/lang/be.json
index b86bded152..13d053b0d8 100644
--- a/plugins/Actions/lang/be.json
+++ b/plugins/Actions/lang/be.json
@@ -19,7 +19,7 @@
"OutlinkDocumentation": "Знешняя спасылка - гэта такая спасылка, якая вядзе наведвальніка прэч з вашага сайта (да іншага дамену).",
"OutlinksReportDocumentation": "Гэтая справаздача паказвае іерархічны спіс URL-адрасоў знешніх спасылак, якія былі націснуты вашымі наведвальнікамі.",
"PagesReportDocumentation": "Гэтая справаздача змяшчае інфармацыю аб URL-адрасах старонак, якія былі наведаны. %s Табліца арганізавана іерархічна, URL-адрасы адлюстроўваюцца ў выглядзе тэчакавай структуры.",
- "PageTitlesReportDocumentation": "Гэтая справаздача змяшчае інфармацыю аб назвах старонак, якія былі наведаны. %s Назва старонкі гэта HTML %s тэг, які большасць брасзэраў паказваюць у загалоўке акна.",
+ "PageTitlesReportDocumentation": "Гэтая справаздача змяшчае інфармацыю аб назвах старонак, якія былі наведаны. %1$s Назва старонкі гэта HTML %2$s тэг, які большасць брасзэраў паказваюць у загалоўке акна.",
"SubmenuPagesEntry": "Старонкі ўваходу",
"SubmenuPagesExit": "Старонкі выхаду",
"SubmenuPageTitles": "Назвы старонак"
diff --git a/plugins/Actions/lang/bg.json b/plugins/Actions/lang/bg.json
index c5b02ecf37..b6de7afa2e 100644
--- a/plugins/Actions/lang/bg.json
+++ b/plugins/Actions/lang/bg.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Средно базирано на %s посещение(я) %s между %s и %s",
+ "AvgGenerationTimeTooltip": "Средно базирано на %1$s посещение(я) %2$s между %3$s и %4$s",
"ColumnClickedURL": "Посетена връзка",
"ColumnClicks": "Щраквания",
"ColumnClicksDocumentation": "Брой щраквания на тази връзка",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Изходящата връзка е връзка, която води посетителя извън Вашия сайт (към друг домейн).",
"OutlinksReportDocumentation": "Този доклад показва йерархичен списък на изходящите адреси, които са избрани от посетителите.",
"PagesReportDocumentation": "Този доклад включва информация за посетените връзки. %s Таблицата е организирана йерархично, връзките са показани като структура от папки.",
- "PageTitlesReportDocumentation": "Този доклад включва информация за заглавията на посетена страница. %s Заглавието на страницата е HTML %s таг, който се изобразява в заглавната част на повечето браузери.",
+ "PageTitlesReportDocumentation": "Този доклад включва информация за заглавията на посетена страница. %1$s Заглавието на страницата е HTML %2$s таг, който се изобразява в заглавната част на повечето браузери.",
"PageUrls": "URLs страница",
"PluginDescription": "Показва отчет за броя посетени страници и техните заглавия. Позволява ви да видите заявките към търсачката на вашия сайт. Автоматично проследява щракванията върху външни връзки и изтегляне на файлове.",
"SiteSearchCategories1": "Този доклад показва списък с категориите, които посетителите са избрали при търсене във Вашия сайт.",
diff --git a/plugins/Actions/lang/bs.json b/plugins/Actions/lang/bs.json
index c963173341..e3ec982dd9 100644
--- a/plugins/Actions/lang/bs.json
+++ b/plugins/Actions/lang/bs.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Prosijek baziran na %s pogodak(a) %s između %s i %s",
+ "AvgGenerationTimeTooltip": "Prosijek baziran na %1$s pogodak(a) %2$s između %3$s i %4$s",
"ColumnClickedURL": "Kliknut URL",
"ColumnClicks": "Klikovi",
"ColumnClicksDocumentation": "Broj klikova na ovaj link",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Izlazni link je link na kojeg je izašao posjetilac sa tvoje stranica na neki drugi websajt (druga domena)",
"OutlinksReportDocumentation": "Ovaj izvještaj sadrži hijerarhalnu listu izlaznih linkova koji su kliknuti od strane tvojih posjetilaca.",
"PagesReportDocumentation": "Ovaj izvještaj sadrži informacije o stranicama koje su posjećene. %s tabela je organizovana hijerarhijski, URL-ovi su prikazani kao struktura foldera.",
- "PageTitlesReportDocumentation": "Ovaj raport sadrži informacije o naslovima stranica koje su posjećene. %s Naslov stranice je HTML %s Oznaka koju većina pregledača prikazuje u njihovom prozornom imenu.",
+ "PageTitlesReportDocumentation": "Ovaj raport sadrži informacije o naslovima stranica koje su posjećene. %1$s Naslov stranice je HTML %2$s Oznaka koju većina pregledača prikazuje u njihovom prozornom imenu.",
"PageUrls": "Veze stranice",
"SiteSearchCategories1": "Ovaj raport prikazuje spisak kategorija koje su posjetioci odabrali kad su vršili istragu na vašoj stranici.",
"SiteSearchCategories2": "Na primjer, stranice sa elektronskom trgovinom tipično imaju birač kategorija tako da se posjetioci mogu ograničiti na pretrage na svim proizvodima u specifičnoj kategoriji.",
diff --git a/plugins/Actions/lang/ca.json b/plugins/Actions/lang/ca.json
index 688e8f3f82..2b9634655f 100644
--- a/plugins/Actions/lang/ca.json
+++ b/plugins/Actions/lang/ca.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Promig basat en %s accessos %s entre %s i %s",
+ "AvgGenerationTimeTooltip": "Promig basat en %1$s accessos %2$s entre %3$s i %4$s",
"ColumnClickedURL": "URL picada",
"ColumnClicks": "Clics",
"ColumnClicksDocumentation": "Nombre de vegades que s'ha fet clic en aquest enllaç",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Un enllaç de sortida es un enllaç que porta el visitant fora del teu lloc web (a un altre domini)",
"OutlinksReportDocumentation": "Aquest informe mostra una lista jeràrquica de les URL de sortida que han estat clicades pels vostres visitants.",
"PagesReportDocumentation": "Aquest informe conté les URL de les pàgines que s'han visitat. %s La taula s'organitza jerarquicament, i les URL es mostren amb estructura de directoris.",
- "PageTitlesReportDocumentation": "Aquest informe conté informació sobre els títols de les pàgines que s'han visitat. %s El títol de la pàgina es el tag HTML: %s, que es mostra al títol de la finestra en la majoría de navegadors.",
+ "PageTitlesReportDocumentation": "Aquest informe conté informació sobre els títols de les pàgines que s'han visitat. %1$s El títol de la pàgina es el tag HTML: %2$s, que es mostra al títol de la finestra en la majoría de navegadors.",
"PageUrls": "URLs de les pàgines",
"PluginDescription": "Informa sobre les vistes i títols de pàgina. Et permet mesurar el motor de cerca intern del teu lloc web. Monitoritza automàticament els clics en enllaços externs i descàrregues de fitxers.",
"SiteSearchCategories1": "Aquest informe mostra les categoríes que han seleccionat els visitants quan han fet una cerca al vostre lloc web",
diff --git a/plugins/Actions/lang/cs.json b/plugins/Actions/lang/cs.json
index 77c1aabb5b..e55c2038ff 100644
--- a/plugins/Actions/lang/cs.json
+++ b/plugins/Actions/lang/cs.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Průměr dle %s přístupů %s mezi %s a %s",
+ "AvgGenerationTimeTooltip": "Průměr dle %1$s přístupů %2$s mezi %3$s a %4$s",
"ColumnClickedURL": "URL prokliku",
"ColumnActionURL": "URL akce",
"ColumnClicks": "Prokliků",
@@ -38,7 +38,7 @@
"OutlinkDocumentation": "Externí odkaz je odkaz, který vede z vašich stránek na jinou domén.",
"OutlinksReportDocumentation": "Toto hlášení zobrazuje hyerarchický seznam URL externích odkazů, na které vaši návštěvníci klikli.",
"PagesReportDocumentation": "Toto hlášení obsahuje informace o URL navštívených. %s Tabulka je organizována hyerarchicky jako strom složek.",
- "PageTitlesReportDocumentation": "Toto hlášení obsahuje informace o titulcích navštívených stránek. %s Titulek je HTML tag %s, který většina prohlížečů zobrazuje v titulku okna.",
+ "PageTitlesReportDocumentation": "Toto hlášení obsahuje informace o titulcích navštívených stránek. %1$s Titulek je HTML tag %2$s, který většina prohlížečů zobrazuje v titulku okna.",
"PageUrls": "URL stránky",
"PluginDescription": "Podává hlášení o zobrazení a titulcích stránek. Umožňuje měřit váš interní vyhledávač. Automaticky sleduje kliky na externí odkazy a soubory ke stažení.",
"SiteSearchCategories1": "Toto hlášení shrnuje kategorie, které návštěvníci vybrali při vyhledávání na stránkách.",
diff --git a/plugins/Actions/lang/da.json b/plugins/Actions/lang/da.json
index 2b6217806e..f7bb0dd234 100644
--- a/plugins/Actions/lang/da.json
+++ b/plugins/Actions/lang/da.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Gennemsnit baseret på %s hits %s mellem %s og %s",
+ "AvgGenerationTimeTooltip": "Gennemsnit baseret på %1$s hits %2$s mellem %3$s og %4$s",
"ColumnClickedURL": "Klikkede URL",
"ColumnClicks": "Klik",
"ColumnClicksDocumentation": "Antal gange linket blev klikket på.",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Et udgående link er et link, der fører den besøgende væk fra hjemmesiden (til et andet domæne)",
"OutlinksReportDocumentation": "Rapporten viser en hierarkisk liste over udgående netadresser, der blev klikket på af de besøgende",
"PagesReportDocumentation": "Rapporten indeholder oplysninger om sidens netadresser, der er blevet besøgt. %s tabellen er arrangeret hierarkisk, netadresserne vises i en mappestruktur.",
- "PageTitlesReportDocumentation": "Rapporten indeholder oplysninger om titlerne på de sider, der er blevet besøgt. %s side titel er HTML %s mærket, som de fleste netlæsere viser i vinduetitlen.",
+ "PageTitlesReportDocumentation": "Rapporten indeholder oplysninger om titlerne på de sider, der er blevet besøgt. %1$s side titel er HTML %2$s mærket, som de fleste netlæsere viser i vinduetitlen.",
"PageUrls": "Side URL'er",
"PluginDescription": "Rapporter om sidevisninger og sidetitler. Gør det muligt at måle det interne websted søgemaskine. Sporer automatisk klik på eksterne links og filhentninger.",
"SiteSearchCategories1": "Rapporten viser de kategorier, som de besøgende valgte, da de lavede en søgning på hjemmesiden.",
diff --git a/plugins/Actions/lang/de.json b/plugins/Actions/lang/de.json
index ffefdf14be..52e3720409 100644
--- a/plugins/Actions/lang/de.json
+++ b/plugins/Actions/lang/de.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Durchschnitt basierend auf %s Aufruf(en) %s zwischen %s und %s",
+ "AvgGenerationTimeTooltip": "Durchschnitt basierend auf %1$s Aufruf(en) %2$s zwischen %3$s und %4$s",
"ColumnClickedURL": "Angeklickte URL",
"ColumnActionURL": "Aktions-URL",
"ColumnClicks": "Klicks",
@@ -38,7 +38,7 @@
"OutlinkDocumentation": "Ein ausgehender Verweis ist ein Link der einen Besucher auf eine andere Website führt (auf eine andere Domain).",
"OutlinksReportDocumentation": "Dieser Bericht zeigt eine hierarchisch angeordnete Liste von ausgehenden Links, die von ihren Besuchern angeklickt wurden.",
"PagesReportDocumentation": "Dieser Bericht enthält Informationen über die URLs der besuchten Seiten. %s Die Tabelle ist hierarchisch strukturiert, die URLs werden als Ordnerstruktur angezeigt.",
- "PageTitlesReportDocumentation": "Dieser Bericht enthält Informationen über die Seitentitel der besuchten Seiten. %s Der Seitentitel ist der HTML %s Tag, der von den meisten Browsern in ihrer Titelleiste angezeigt wird.",
+ "PageTitlesReportDocumentation": "Dieser Bericht enthält Informationen über die Seitentitel der besuchten Seiten. %1$s Der Seitentitel ist der HTML %2$s Tag, der von den meisten Browsern in ihrer Titelleiste angezeigt wird.",
"PageUrls": "Seiten URL",
"PluginDescription": "Berichte über die Seitenansichten und Seitentitel. Lässt Sie die internen Suchmaschinen Ihrer Website erfassen. Trackt Klicks auf externe Links und Dateidownloads automatisch.",
"SiteSearchCategories1": "Dieser Bericht zeigt die Kategorien, welche bei der internen Suche ausgewählt wurden.",
@@ -61,6 +61,7 @@
"WidgetPageUrlsFollowingSearch": "Besuchte Seiten nach einer internen Suche",
"WidgetSearchCategories": "Suchkategorien",
"WidgetSearchKeywords": "Suchbegriffe (interne Suche)",
- "WidgetSearchNoResultKeywords": "Suchbegriffe ohne Ergebnisse"
+ "WidgetSearchNoResultKeywords": "Suchbegriffe ohne Ergebnisse",
+ "ActionType": "Typ der Aktion"
}
} \ No newline at end of file
diff --git a/plugins/Actions/lang/el.json b/plugins/Actions/lang/el.json
index 5efdf4a061..e80eb4151a 100644
--- a/plugins/Actions/lang/el.json
+++ b/plugins/Actions/lang/el.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Μέσος όρος βάσει των %s επισκέψεων %s μεταξύ %s και %s",
+ "AvgGenerationTimeTooltip": "Μέσος όρος βάσει %1$s επισκέψεων %2$s μεταξύ %3$s και %4$s",
"ColumnClickedURL": "URL επιλογής",
"ColumnActionURL": "Διεύθυνση URL ενέργειας",
"ColumnClicks": "Κλικ",
@@ -38,7 +38,7 @@
"OutlinkDocumentation": "Ένας εξωτερικός σύνδεσμος είναι ένας σύνδεσμος που οδηγεί τον επισκέπτη εκτός της ιστοσελίδας (σε άλλη).",
"OutlinksReportDocumentation": "Αυτή η αναφορά δείχνει μια ιεραρχημένη λίστα με εξωτερικούς συνδέσμους διευθύνσεων ιστοσελίδων που πατήθηκαν από τους επισκέπτες σας.",
"PagesReportDocumentation": "Αυτή η αναφορά περιέχει πληροφορίες σχετικά με τις επισκεφθείσες διευθύνσεις σελίδων. %s Ο πίνακας ταξινομείται ιεραρχικά, οι διευθύνσεις σελίδων εμφανίζονται με δομή φακέλου.",
- "PageTitlesReportDocumentation": "Αυτή η αναφορά περιέχει πληροφορίες για τους τίτλους των επισκεφθεισών σελίδων. %s Ο τίτλος σελίδας είναι η ετικέτα HTML %s που οι περισσότεροι φυλλομετρητές δείχνουν στον τίτλο του παραθύρου τους.",
+ "PageTitlesReportDocumentation": "Η αναφορά αυτή περιέχει πληροφορίες σχετικά με τους τίτλους των σελίδων που επισκέφθηκαν οι χρήστες. %1$s Ο τίτλος της σελίδας είναι η σήμανση HTML %2$s που τα περισσότερα προγράμματα πλοήγησης δείχνουν στον τίτλο του παραθύρου τους.",
"PageUrls": "Διευθύνσεις σελίδων",
"PluginDescription": "Αναφέρει σχετικά με τις αναγνώσεις σελίδων και τους τίτλους τους. Επιτρέπει την μέτρηση της εσωτερικής μηχανής αναζήτησης του ιστοτόπου σας. Αυτόματα παρακολουθεί τα κλικ προς εξωτερικούς συνδέσμους και κατεβάσματα αρχείων.",
"SiteSearchCategories1": "Αυτή η αναφορά δημιουργεί λίστα με τις Κατηγορίες που οι επισκέπτες επέλεξαν όταν έκαναν μια Αναζήτηση στην ιστοσελίδα σας.",
diff --git a/plugins/Actions/lang/en.json b/plugins/Actions/lang/en.json
index f176db870d..f7669812c0 100644
--- a/plugins/Actions/lang/en.json
+++ b/plugins/Actions/lang/en.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Average based on %s hit(s) %s between %s and %s",
+ "AvgGenerationTimeTooltip": "Average based on %1$s hit(s) %2$s between %3$s and %4$s",
"ColumnClickedURL": "Clicked URL",
"ColumnActionURL": "Action URL",
"ColumnClicks": "Clicks",
@@ -38,7 +38,7 @@
"OutlinkDocumentation": "An outlink is a link that leads the visitor away from your website (to another domain).",
"OutlinksReportDocumentation": "This report shows a hierarchical list of outlink URLs that were clicked by your visitors.",
"PagesReportDocumentation": "This report contains information about the page URLs that have been visited. %s The table is organized hierarchically, the URLs are displayed as a folder structure.",
- "PageTitlesReportDocumentation": "This report contains information about the titles of the pages that have been visited. %s The page title is the HTML %s Tag that most browsers show in their window title.",
+ "PageTitlesReportDocumentation": "This report contains information about the titles of the pages that have been visited. %1$s The page title is the HTML %2$s Tag that most browsers show in their window title.",
"PageUrls": "Page URLs",
"PluginDescription": "Reports about the page views and page titles. Lets you measure your internal website's search engine. Automatically tracks clicks on external links and file downloads. ",
"SiteSearchCategories1": "This report lists the Categories that visitors selected when they made a Search on your website.",
diff --git a/plugins/Actions/lang/es.json b/plugins/Actions/lang/es.json
index 39f287079e..739ec1ba1d 100644
--- a/plugins/Actions/lang/es.json
+++ b/plugins/Actions/lang/es.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Promedio basado en %s acceso(s) %s entre %s y %s",
+ "AvgGenerationTimeTooltip": "Promedio basado en %1$s acceso(s) %2$s entre %3$s y %4$s",
"ColumnClickedURL": "URL elegida",
"ColumnClicks": "Clics",
"ColumnClicksDocumentation": "El número de veces que se ha hecho clic en este enlace.",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Un enlace externo es un enlace que lleva a su visitante fuera de su página de internet (a otro dominio).",
"OutlinksReportDocumentation": "Este informe muestra una lista jerárquica de los enlaces externos en los que sus visitantes han hecho clic.",
"PagesReportDocumentation": "Este reporte contiene información sobre las URLs de las páginas que han sido visitadas. %s La tabla está organizada por jerarquía, las URLs han sido mostradas como una estructura de carpetas.",
- "PageTitlesReportDocumentation": "Este informe contiene información sobre los títulos de las páginas que han sido visitadas. %s El título de la página es la etiqueta HTML %s, que la gran mayoría de los navegadores muestran en el título de su ventana.",
+ "PageTitlesReportDocumentation": "Este informe contiene información sobre los títulos de las páginas que han sido visitadas. %1$s El título de la página es la etiqueta HTML %2$s, que la gran mayoría de los navegadores muestran en el título de su ventana.",
"PageUrls": "URLs de página",
"PluginDescription": "Informa sobre las vistas y títulos de página. Le permite medir el motor de búsqueda interno de tu sitio de internet. Monitoriza automáticamente los clics de enlaces externos y descargas de archivos.",
"SiteSearchCategories1": "Este informe lista las Categorías que los visitantes eligieron cuando realizaron una búsqueda en su sitio de internet.",
diff --git a/plugins/Actions/lang/et.json b/plugins/Actions/lang/et.json
index eedc595652..9c1c48cfc6 100644
--- a/plugins/Actions/lang/et.json
+++ b/plugins/Actions/lang/et.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Keskmine, mis baseerub %s laadimisel %s, %s ja %s vahel.",
+ "AvgGenerationTimeTooltip": "Keskmine, mis baseerub %1$s laadimisel %2$s, %3$s ja %4$s vahel.",
"ColumnClickedURL": "Külastatud URL",
"ColumnClicks": "Hiireklikke",
"ColumnClicksDocumentation": "Arv, mitu korda antud linki on klikitud.",
diff --git a/plugins/Actions/lang/fa.json b/plugins/Actions/lang/fa.json
index 2c7a55ad74..7937515a3d 100644
--- a/plugins/Actions/lang/fa.json
+++ b/plugins/Actions/lang/fa.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "میانگین بر اساس %s کلیک %s بین %s و %s",
+ "AvgGenerationTimeTooltip": "میانگین بر اساس %1$s کلیک %2$s بین %3$s و %4$s",
"ColumnClickedURL": "آدرس کلیک شده",
"ColumnClicks": "کلیک ها",
"ColumnClicksDocumentation": "تعداد دفعاتی که بر روی این لینک کلیک شده است.",
@@ -34,7 +34,7 @@
"OutlinkDocumentation": "لینک یک لینک که منجر بازدید کننده از وب سایت خود را به یکی دیگر از دامنه است.",
"OutlinksReportDocumentation": "این گزارش نشان می دهد یک لیست سلسله مراتبی آدرس از لینک که کلیک بازدید کنندگان شما شد.",
"PagesReportDocumentation": "این گزارش شامل اطلاعاتی درباره URLهای صفحه هایی است که بازدید شده اند. %s جدول به صورت سلسله مراتبی سازماندهی شده است و URLها به عنوان پوشه نمایش داده شده اند.",
- "PageTitlesReportDocumentation": "این گزارش شامل اطلاعاتی درباره عنوان صفحه هایی است که بازدید شده اند. %s عنوان صفحه تگ %s HTML است که اغلب مرورگرها در عنوان پنجره هایشان نمایش می دهند.",
+ "PageTitlesReportDocumentation": "این گزارش شامل اطلاعاتی درباره عنوان صفحه هایی است که بازدید شده اند. %1$s عنوان صفحه تگ %2$s HTML است که اغلب مرورگرها در عنوان پنجره هایشان نمایش می دهند.",
"PageUrls": "آدرس صفحات",
"SiteSearchCategories1": "این گزارش مجموعه هایی را فهرست می کند که بازدیدکنندگان هنگام جستجو در سایت شما , آن را انتخاب نموده اند.",
"SiteSearchCategories2": "برای نمونه , وبسایت های تجاری معمولا \"مجموعه\"هایی برای انتخاب دارند که به بازدیدکنندگان اجازه می دهد جستجوهایشان را از تمام محصولات به مجموعه ای از محصولات محدود کنند.",
diff --git a/plugins/Actions/lang/fi.json b/plugins/Actions/lang/fi.json
index 250e73c416..cb7a0a31ca 100644
--- a/plugins/Actions/lang/fi.json
+++ b/plugins/Actions/lang/fi.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Keskiarvo %s osumasta %s %s - %s",
+ "AvgGenerationTimeTooltip": "Keskiarvo %1$s osumasta %2$s %3$s - %4$s",
"ColumnClickedURL": "Klikattu URL",
"ColumnClicks": "Klikkaukset",
"ColumnClicksDocumentation": "Tämän linkin klikkausten määrä.",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Lähtevä linkki on linkki, joka vie kävijän pois sinun sivultasi (eri verkkotunnukseen).",
"OutlinksReportDocumentation": "Tämä raportti näyttää hierarkisen listan lähtevistä osoitteista, joita kävijät ovat seuranneet.",
"PagesReportDocumentation": "Tämä raportti sisältää tietoa sivuista, joilla on käyty. %s Taulukko on organisoitu hierarkisesti, URL:t näytetään puurakenteena.",
- "PageTitlesReportDocumentation": "Tämä raportti sisältää tietoa käytyjen sivujen otsikoista. %s Sivun otsikko on HTML:n %s-tagi, jonka useimmat selaimet näyttävät ikkunan otsikossa.",
+ "PageTitlesReportDocumentation": "Tämä raportti sisältää tietoa käytyjen sivujen otsikoista. %1$s Sivun otsikko on HTML:n %2$s-tagi, jonka useimmat selaimet näyttävät ikkunan otsikossa.",
"PageUrls": "Sivujen URL:t",
"SiteSearchCategories1": "Tämä raportti listaa kategoriat jotka kävijät valitsivat.",
"SiteSearchCategories2": "Esimerkiksi e-kauppojen sivuilla on tyypillisesti \"Kategoria\"-valitsin, jolla käyttäjät voivat rajoittaa hakutuloksia.",
diff --git a/plugins/Actions/lang/fr.json b/plugins/Actions/lang/fr.json
index 5778686435..38fc3bd071 100644
--- a/plugins/Actions/lang/fr.json
+++ b/plugins/Actions/lang/fr.json
@@ -1,6 +1,5 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Moyenne basée sur %s entrée(s) sur %s entre %s et %s",
"ColumnClickedURL": "URL cliquées",
"ColumnActionURL": "URL d'action",
"ColumnClicks": "Clics",
@@ -38,7 +37,7 @@
"OutlinkDocumentation": "Un lien sortant est un lien qui mène le visiteur en dehors de votre site web (vers un autre domaine).",
"OutlinksReportDocumentation": "Ce rapport affiche une liste hiérarchique de liens sortants sur lesquels ont cliqué vos visiteurs.",
"PagesReportDocumentation": "Ce rapport contient des informations à propos des URLs qui ont été visitées. %s Le tableau est organisé hiérarchiquement, les URLs sont affichées en structure de dossier.",
- "PageTitlesReportDocumentation": "Ce rapport contient des informations à propos des titres des pages qui ont été visitées. %s Le titre de la page est le tag HTML %s que la plupart des navigateurs affichent dans le titre de la fenêtre.",
+ "PageTitlesReportDocumentation": "Ce rapport contient des informations à propos des titres des pages qui ont été visitées. %1$s Le titre de la page est le tag HTML %2$s que la plupart des navigateurs affichent dans le titre de la fenêtre.",
"PageUrls": "URL de la page",
"PluginDescription": "Rapports à propos des vues et titres de pages. Vous permet de suivre l'utilisation du moteur de recherche interne de votre site web. Trace automatiquement les clics sur des liens externes et téléchargements de fichiers.",
"SiteSearchCategories1": "Ce rapport liste les catégories que les visiteurs ont sélectionnées lorsqu'ils ont effectué une recherche sur votre site web.",
diff --git a/plugins/Actions/lang/he.json b/plugins/Actions/lang/he.json
index 4604c2a255..3eb3ee982e 100644
--- a/plugins/Actions/lang/he.json
+++ b/plugins/Actions/lang/he.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "ממוצע מבוסס על %s מופע(ים) %s בין %s ו-%s",
+ "AvgGenerationTimeTooltip": "ממוצע מבוסס על %1$s מופע(ים) %2$s בין %3$s ו-%4$s",
"ColumnClickedURL": "כתובת שנלחצה",
"ColumnClicks": "לחיצות",
"ColumnClicksDocumentation": "מספר הפעמים שקישור זה נלחץ",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "קישור יוצא הוא קישור שמוביל את המשתמש מחוץ לאתרך (לדומיין אחר).",
"OutlinksReportDocumentation": "דו״ח זה מציג רשימה היררכית של כתובות שנלחצו על ידי משתמשי אתרך.",
"PagesReportDocumentation": "דו״ח זה מכיל מידע אודות כתובת עמודים שבוקרו. %s הטבלה מאורגנת באופן היררכי, הכתובות מוצגות כמבנה תיקיות.",
- "PageTitlesReportDocumentation": "דו״ח זה מכיל מידע אודות כותרות העמודים שבוקרו. %s כותרת העמוד היא תגית HTML %s שרוב הדפדפנים מציגים בכותרת החלון שלהם.",
+ "PageTitlesReportDocumentation": "דו״ח זה מכיל מידע אודות כותרות העמודים שבוקרו. %1$s כותרת העמוד היא תגית HTML %2$s שרוב הדפדפנים מציגים בכותרת החלון שלהם.",
"PageUrls": "כתובות עמוד",
"SiteSearchCategories1": "דו״ח זה מציג רשימה של קטגוריות שמבקרים בחרו כאשר חיפשו באתרך.",
"SiteSearchCategories2": "לדוגמה, אתרי מסחר מקוונים מציגים בד״כ בחירת ״קטגוריה״ כדי שהמבקרים יוכלו לצמצם את תוצאות החיפוש למוצרים בקטגוריה מסויימת.",
diff --git a/plugins/Actions/lang/hi.json b/plugins/Actions/lang/hi.json
index 2b4e8ae53c..ed3ec18412 100644
--- a/plugins/Actions/lang/hi.json
+++ b/plugins/Actions/lang/hi.json
@@ -35,7 +35,7 @@
"OutlinkDocumentation": "आउटलिंक उस लिंक को कहा जाता है जो आपकी वेबसाइट पर आये व्यक्तियों को किसी अन्य वेबसाइट पर ले जाता है।",
"OutlinksReportDocumentation": "इस रिपोर्ट में अपने आगंतुकों द्वारा क्लिक किया गया है कि बाहर कड़ी यूआरएल की एक पदानुक्रमित सूची दिखाता है.",
"PagesReportDocumentation": "इस रिपोर्ट का दौरा किया गया है कि पृष्ठ यूआरएल के बारे में जानकारी शामिल हैं. तालिका %s पदानुक्रम रूप से आयोजित किया जाता है, यूआरएल एक फ़ोल्डर संरचना के रूप में प्रदर्शित कर रहे हैं.",
- "PageTitlesReportDocumentation": "इस रिपोर्ट का दौरा किया गया है कि पृष्ठों के शीर्षक के बारे में जानकारी शामिल हैं. %s पृष्ठ शीर्षक सबसे ब्राउज़रों अपने विंडो शीर्षक में पता चलता है कि एचटीएमएल %s टैग है.",
+ "PageTitlesReportDocumentation": "इस रिपोर्ट का दौरा किया गया है कि पृष्ठों के शीर्षक के बारे में जानकारी शामिल हैं. %1$s पृष्ठ शीर्षक सबसे ब्राउज़रों अपने विंडो शीर्षक में पता चलता है कि एचटीएमएल %2$s टैग है.",
"PageUrls": "पृष्ठों के यूआरएल",
"SiteSearchCategories1": "यह रिपोर्ट है कि वे अपनी वेबसाइट पर एक खोज कर दिया जब आगंतुकों द्वारा चयनित श्रेणियाँ सूचीबद्ध करता है.",
"SiteSearchCategories2": "आगंतुकों को एक विशिष्ट श्रेणी में सभी उत्पादों को उनकी खोजों को सीमित कर सकते हैं इतना है कि उदाहरण के लिए, ईकॉमर्स वेबसाइटों आम तौर पर एक \"श्रेणी\" चयनकर्ता है.",
diff --git a/plugins/Actions/lang/hu.json b/plugins/Actions/lang/hu.json
index da97381cb1..10bd2d1d96 100644
--- a/plugins/Actions/lang/hu.json
+++ b/plugins/Actions/lang/hu.json
@@ -29,7 +29,7 @@
"ExitPageTitlesReportDocumentation": "Ez a jelentés az adott idő alatt felmerült kilépési oldalak címeit és statisztikáit foglalja össze.",
"OneSearch": "1 keresés",
"PagesReportDocumentation": "Ez a jelentés a megtekintett URL-ekről tartalmaz információkat. %s A tábla hierarchigusan van szervezve, az URL-ek mappaként jelennek meg.",
- "PageTitlesReportDocumentation": "Ez a jelentés a megtekintett oldalak címéről tartalmaz információkat. %s Az oldal címe a %s HTML Tag, amit a legtöbb bönkésző az ablak címsorában mutat.",
+ "PageTitlesReportDocumentation": "Ez a jelentés a megtekintett oldalak címéről tartalmaz információkat. %1$s Az oldal címe a %2$s HTML Tag, amit a legtöbb bönkésző az ablak címsorában mutat.",
"PageUrls": "Oldal hivatkozások",
"SiteSearchKeyword": "Kulcsszó (Oldal keresés)",
"SubmenuPagesEntry": "Belépési lapok",
diff --git a/plugins/Actions/lang/id.json b/plugins/Actions/lang/id.json
index 13dd0fdc13..9fd65b060c 100644
--- a/plugins/Actions/lang/id.json
+++ b/plugins/Actions/lang/id.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Rerata berdasar %s kunjungan %s antara %s dan %s",
+ "AvgGenerationTimeTooltip": "Rerata berdasar %1$s kunjungan %2$s antara %3$s dan %4$s",
"ColumnClickedURL": "URL diklik",
"ColumnClicks": "Klik",
"ColumnClicksDocumentation": "Jumlah tautan ini diklik.",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Tautan keluar merupakan tautan yang mengarahkan keluar pengunjung dari situs Anda (ke ranah lainnya).",
"OutlinksReportDocumentation": "Laporan ini menampilkan laporan secara berurutan tautan keluar URL yang diklik oleh pengunjung Anda.",
"PagesReportDocumentation": "Laporan ini mengandung informasi tentang URL halaman yang dikunjungi. %s Tabel diatur berurutan, URL ditampilkan sebagai struktur map.",
- "PageTitlesReportDocumentation": "Laporan ini mengandung informasi tentang judul halaman yang telah dikunjungi. %s Judul halaman merupakan Etiket %s HTML yang kebanyakan peramban ditampilkan di judul jendela.",
+ "PageTitlesReportDocumentation": "Laporan ini mengandung informasi tentang judul halaman yang telah dikunjungi. %1$s Judul halaman merupakan Etiket %2$s HTML yang kebanyakan peramban ditampilkan di judul jendela.",
"PageUrls": "URL Halaman",
"PluginDescription": "Laporan mengenai tampilan dan judul halaman. Membantu Anda mengukur mesin pencarian internal situs web Anda. Pelacakan klik otomatis dalam tautan eksternal dan berkas unduhan.",
"SiteSearchCategories1": "Lapotan ini mendaftar Kategori dipilih oleh pengunjung ketika membuat Pencarian di situs Anda.",
diff --git a/plugins/Actions/lang/it.json b/plugins/Actions/lang/it.json
index f65519415f..46383b7e2e 100644
--- a/plugins/Actions/lang/it.json
+++ b/plugins/Actions/lang/it.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Media basata su %s hits %s tra %s e %s",
+ "AvgGenerationTimeTooltip": "Media basata su %1$s hits %2$s tra %3$s e %4$s",
"ColumnClickedURL": "URL Cliccate",
"ColumnActionURL": "URL dell'azione",
"ColumnClicks": "Click",
@@ -38,7 +38,7 @@
"OutlinkDocumentation": "Un link esterno è un link che conduce il visitatore lontano dal tuo sito web (in un altro dominio)",
"OutlinksReportDocumentation": "Questo report mostra un elenco gerarchico di link esterni che sono stati cliccati dai visitatori.",
"PagesReportDocumentation": "Questo report contiene informazioni riguardo gli URL delle pagine che sono state viste. %s La tabella è organizzata gerarchicamente, gli URL vengono visualizzati come una struttura di cartelle.",
- "PageTitlesReportDocumentation": "Questo report contiene informazioni sui titoli delle pagine che sono state visitate. %s Il titolo della pagina è il tag HTML %s che la maggior parte dei browser mostrano nel titolo della loro finestra.",
+ "PageTitlesReportDocumentation": "Questo report contiene informazioni sui titoli delle pagine che sono state visitate. %1$s Il titolo della pagina è il tag HTML %2$s che la maggior parte dei browser mostrano nel titolo della loro finestra.",
"PageUrls": "URL delle pagine",
"PluginDescription": "Riporta le viste e i titoli pagina. Ti consente di misurare il motore di ricerca interno al tuo sito. Traccia in automatico i click sui link esterni e i download dei files.",
"SiteSearchCategories1": "Questo report elenca le Categorie che i visitatori hanno selezionato nel fare una ricerca sul vostro sito.",
diff --git a/plugins/Actions/lang/ja.json b/plugins/Actions/lang/ja.json
index c752f0ece4..28463ef0e8 100644
--- a/plugins/Actions/lang/ja.json
+++ b/plugins/Actions/lang/ja.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "%s ~ %s の間の %s のヒット %s に基づく平均",
+ "AvgGenerationTimeTooltip": "%3$s ~ %4$s の間の %2$s のヒット %1$s に基づく平均",
"ColumnClickedURL": "クリックされた URL",
"ColumnActionURL": "アクション URL",
"ColumnClicks": "クリック数",
@@ -38,7 +38,7 @@
"OutlinkDocumentation": "外部リンクとはサイト内から外部のサイトへ(他のドメインへ)のリンクです。",
"OutlinksReportDocumentation": "訪問者がクリックした外部リンクのURLを階層構造のリストで表示したリポートです。",
"PagesReportDocumentation": "これは訪問されたページURLについてのリポートです。%s 表は階層構造になっており、URLはフォルダーの階層で表示されています。",
- "PageTitlesReportDocumentation": "これは訪問されたページタイトルについてのリポートです。%s ページタイトルは多くのブラウザでウインドウのタイトルに表示されるHTMLの %s タグです。",
+ "PageTitlesReportDocumentation": "これは訪問されたページタイトルについてのリポートです。%1$s ページタイトルは多くのブラウザでウインドウのタイトルに表示されるHTMLの %2$s タグです。",
"PageUrls": "ページURL",
"PluginDescription": "ページ ビューとページのタイトルについてレポートします。内部のウェブサイトの検索エンジンを測定できます。自動的に外部リンクとファイルのダウンロードのクリックを追跡します。",
"SiteSearchCategories1": "このレポートは、訪問者がサイトで検索した時に選択したカテゴリの一覧です。",
diff --git a/plugins/Actions/lang/ko.json b/plugins/Actions/lang/ko.json
index 34288ee774..9c56c41765 100644
--- a/plugins/Actions/lang/ko.json
+++ b/plugins/Actions/lang/ko.json
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "외부 링크는 사이트 내에서 외부 사이트(다른 도메인)로의 링크입니다.",
"OutlinksReportDocumentation": "이 보고서는 방문자가 클릭 한 외부 링크의 URL을 계층 구조 목록으로 표시합니다.",
"PagesReportDocumentation": "이 보고서는 방문한 페이지 URL에 대한 정보입니다. %s 테이블은 계층 구조로 되어 있으며, URL은 폴더 구조로 표시됩니다.",
- "PageTitlesReportDocumentation": "이 보고서는 방문한 페이지 제목에 대한 정보입니다. %s 페이지 제목은 대부분의 브라우저 윈도우의 제목에 표시되는 HTML %s 태그입니다.",
+ "PageTitlesReportDocumentation": "이 보고서는 방문한 페이지 제목에 대한 정보입니다. %1$s 페이지 제목은 대부분의 브라우저 윈도우의 제목에 표시되는 HTML %2$s 태그입니다.",
"PageUrls": "페이지 URL",
"PluginDescription": "페이지 뷰와 제목에 대한 보고서. 내부 웹사이트 검색 엔진을 측정할 수 있습니다. 외부 링크 클릭 및 파일 다운로드에 대해서도 자동으로 추적합니다.",
"SiteSearchCategories1": "이 보고서는 웹사이트에서 검색했을 때 방문자가 선택한 카테고리를 나열합니다.",
diff --git a/plugins/Actions/lang/lt.json b/plugins/Actions/lang/lt.json
index e6c74dcb0b..1514b94402 100644
--- a/plugins/Actions/lang/lt.json
+++ b/plugins/Actions/lang/lt.json
@@ -10,6 +10,7 @@
"SubmenuPagesEntry": "Užėjimo puslapiai",
"SubmenuPagesExit": "Išėjimo puslapiai",
"SubmenuPageTitles": "Puslapių antraštės",
- "WidgetSearchCategories": "Paieškos kategorijos"
+ "WidgetSearchCategories": "Paieškos kategorijos",
+ "ActionType": "Veiksmo tipas"
}
} \ No newline at end of file
diff --git a/plugins/Actions/lang/nb.json b/plugins/Actions/lang/nb.json
index 80e5c25863..742ac9ca33 100644
--- a/plugins/Actions/lang/nb.json
+++ b/plugins/Actions/lang/nb.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Gjennomsnitt basert på %s treff %s mellom %s og %s",
+ "AvgGenerationTimeTooltip": "Gjennomsnitt basert på %1$s treff %2$s mellom %3$s og %4$s",
"ColumnClickedURL": "Klikket URL",
"ColumnActionURL": "Handlings-URL",
"ColumnClicks": "Klikk",
@@ -38,7 +38,7 @@
"OutlinkDocumentation": "En utlenke er en lenke som leder besøkeren bort fra ditt nettsted (til et annet domene).",
"OutlinksReportDocumentation": "Denne rapporten viser en hierarkisk liste av utlenkers URL-er som ble klikket av dine besøkere.",
"PagesReportDocumentation": "Denne rapporten inneholder informasjon om side-URLer som har blitt besøkt. %s Tabellen er organisert hierarkisk, URL-ene vises som en mappestruktur.",
- "PageTitlesReportDocumentation": "Denne rapporten inneholder informasjon om titler på sider som har blitt besøkt. %s Sidetittelen er HTML-taggen %s som de fleste nettlesere viser i vindustittelen.",
+ "PageTitlesReportDocumentation": "Denne rapporten inneholder informasjon om titler på sider som har blitt besøkt. %1$s Sidetittelen er HTML-taggen %2$s som de fleste nettlesere viser i vindustittelen.",
"PageUrls": "Side-URLer",
"PluginDescription": "Rapporter om sidevisninger org sidetitler. Lar deg måle ditt nettsteds interne søkemotor. Sporer klikk på eksterne lenker og nedlastinger automatisk.",
"SiteSearchCategories1": "Denne rapporten viser kategorier som besøkere velger når de søker på ditt nettsted.",
diff --git a/plugins/Actions/lang/nl.json b/plugins/Actions/lang/nl.json
index 4efc21cf6b..870ab3a19c 100644
--- a/plugins/Actions/lang/nl.json
+++ b/plugins/Actions/lang/nl.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Gemiddelde gebaseerd op %s hit(s) %s tussen %s en %s",
+ "AvgGenerationTimeTooltip": "Gemiddelde gebaseerd op %1$s hit(s) %2$s tussen %3$s en %4$s",
"ColumnClickedURL": "Aangeklikte URL",
"ColumnClicks": "Kliks",
"ColumnClicksDocumentation": "Aantal keer dat er op deze link geklikt is.",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Een outlink is een link die de bezoeker leidt uit de buurt van uw website (naar een ander domein).",
"OutlinksReportDocumentation": "Dit rapport geeft een hiërarchische lijst van outlink URL's die zijn aangeklikt door uw bezoekers.",
"PagesReportDocumentation": "Dit rapport bevat informatie over de pagina-URL's die zijn bezocht. %s De tabel is hiërarchisch georganiseerd. De URL's worden weergegeven in een map structuur.",
- "PageTitlesReportDocumentation": "Dit rapport bevat informatie over de titels van de pagina's die zijn bezocht. %s De paginatitel is de HTML %s Tag dat de meeste browsers laten zien in hun window titel.",
+ "PageTitlesReportDocumentation": "Dit rapport bevat informatie over de titels van de pagina's die zijn bezocht. %1$s De paginatitel is de HTML %2$s Tag dat de meeste browsers laten zien in hun window titel.",
"PageUrls": "pagina-URL's",
"PluginDescription": "Rapporteert over pagina weergaven en pagina titels. Het maakt het zoekgedrag op je website inzichtelijk, geeft rapporten weer over outlinks en downloads.",
"SiteSearchCategories1": "Dit rapport toont de categorieën die bezoekers hebben geselecteerd bij het zoeken op uw website.",
diff --git a/plugins/Actions/lang/nn.json b/plugins/Actions/lang/nn.json
index 2d5f2115c4..9af598c6d5 100644
--- a/plugins/Actions/lang/nn.json
+++ b/plugins/Actions/lang/nn.json
@@ -24,7 +24,7 @@
"OutlinkDocumentation": "Ein utpeikar er ein peikar som leier vitjarane dine vekk frå nettsida di (til eit anna domene).",
"OutlinksReportDocumentation": "Denne rapporten viser ei hierarkisk liste av utpeikarar som vitjarane dine klikka på.",
"PagesReportDocumentation": "Denne rapporten inneheld informasjon om side-URLar som er vitja. %s Tabellen er organisert hierarkisk, URLane er vist som ein mappestruktur.",
- "PageTitlesReportDocumentation": "Denne rapporten inneheld informasjon om titlane til sidene som er vitja. %s Sidetittelen er HTML-entiteten %s som dei fleste nettlesarane viser som tittel på vindauget sitt.",
+ "PageTitlesReportDocumentation": "Denne rapporten inneheld informasjon om titlane til sidene som er vitja. %1$s Sidetittelen er HTML-entiteten %2$s som dei fleste nettlesarane viser som tittel på vindauget sitt.",
"PageUrls": "Side-URLar",
"SubmenuPagesEntry": "Inngangssider",
"SubmenuPagesExit": "Utgangssider",
diff --git a/plugins/Actions/lang/pl.json b/plugins/Actions/lang/pl.json
index 47201b927e..8e32572345 100644
--- a/plugins/Actions/lang/pl.json
+++ b/plugins/Actions/lang/pl.json
@@ -1,9 +1,10 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Średnia podstawa dla %s trafień %s pomiędzy %s i %s",
+ "AvgGenerationTimeTooltip": "Średnia podstawa dla %1$s trafień %2$s pomiędzy %3$s i %4$s",
"ColumnClickedURL": "Kliknięty link URL",
+ "ColumnActionURL": "Adres URL Akcji",
"ColumnClicks": "Kliknięcia",
- "ColumnClicksDocumentation": "Ile razy ten link został kliknięty.",
+ "ColumnClicksDocumentation": "Ilość kliknięć na ten link.",
"ColumnDownloadURL": "Adres URL pobrań",
"ColumnEntryPageTitle": "Tytuł stron z których wchodzono",
"ColumnEntryPageURL": "Adres URL stron z których wchodzono",
@@ -37,7 +38,7 @@
"OutlinkDocumentation": "Link wyjściowy to link który prowadzi odwiedzającego poza twoją stronę (do innej domeny).",
"OutlinksReportDocumentation": "Ten raport pokazuje ustrukturyzowaną listę linków wychodzących które zostały kliknięte przez odwiedzających.",
"PagesReportDocumentation": "Ten raport zawiera informację o URL-ach stron które zostały odwiedzone. %s Tabela jest organizowana w hierarchii, URL-e są wyświetlane z uwzględnieniem struktury katalogów.",
- "PageTitlesReportDocumentation": "Ten raport zawiera informację o tytułach stron które zostały odwiedzone. %s Tytuł stron to %s znacznik HTML które większość przeglądarek wyświetla na belce tytułowej okna.",
+ "PageTitlesReportDocumentation": "Ten raport zawiera informację o tytułach stron które zostały odwiedzone. %1$s Tytuł stron to %2$s znacznik HTML które większość przeglądarek wyświetla na belce tytułowej okna.",
"PageUrls": "Strony URL",
"PluginDescription": "Raporty dotyczące odwiedzin i tytułów stron. Pozwala na analizę działania wewnętrznej wyszukiwarki serwisu. Automatycznie śledzi kliknięcia na linkach zewnętrznych i pobraniach plików.",
"SiteSearchCategories1": "Ten raport wyświetla listę Kategorii które odwiedzający wybrali kiedy używali wyszukiwarki na twojej stronie.",
@@ -59,7 +60,8 @@
"WidgetPageTitlesFollowingSearch": "Tytuły Stron po Wyszukiwaniu Strony",
"WidgetPageUrlsFollowingSearch": "Strony Występujące po Wyszukiwaniu Stron",
"WidgetSearchCategories": "Kategorie wyszukiwań",
- "WidgetSearchKeywords": "Słowa Kluczowe Wyszukiwarki",
- "WidgetSearchNoResultKeywords": "Słowa Kluczowe bez Wyników"
+ "WidgetSearchKeywords": "Słowa kluczowe wyszukiwarki",
+ "WidgetSearchNoResultKeywords": "Słowa Kluczowe bez Wyników",
+ "ActionType": "Typ Akcji"
}
} \ No newline at end of file
diff --git a/plugins/Actions/lang/pt-br.json b/plugins/Actions/lang/pt-br.json
index 533814d0ec..b29445224a 100644
--- a/plugins/Actions/lang/pt-br.json
+++ b/plugins/Actions/lang/pt-br.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Média baseada em %s visita(s) %s entre %s e %s",
+ "AvgGenerationTimeTooltip": "Média baseada em %1$s visita(s) %2$s entre %3$s e %4$s",
"ColumnClickedURL": "URL clicado",
"ColumnActionURL": "URL Ação",
"ColumnClicks": "Cliques",
@@ -38,7 +38,7 @@
"OutlinkDocumentation": "Um outlink é um link que leva o visitante para fora do seu website (para outro domínio)",
"OutlinksReportDocumentation": "Este relatório mostra uma lista hierárquica de URLs outlinks clicadas pelos seus visitantes",
"PagesReportDocumentation": "Este relatório contém informações sobre URL de páginas as quais foram visitadas. %s A tabela está organizada hierarquicamente, as URLs estão apresentadas como estrutura de pastas",
- "PageTitlesReportDocumentation": "Este relatório contém informações sobre títulos de páginas as quais foram visitadas. %s O título da página é um HTML %s Tag a qual é mais visualizada nos títulos do browser.",
+ "PageTitlesReportDocumentation": "Este relatório contém informações sobre títulos de páginas as quais foram visitadas. %1$s O título da página é um HTML %2$s Tag a qual é mais visualizada nos títulos do browser.",
"PageUrls": "URLs de Página(s)",
"PluginDescription": "Relatórios sobre visualizações de páginas e títulos de página. Permite que você mensure o sistema de busca interno do seu website. Registra automaticamente cliques em links externos e downloads de arquivos.",
"SiteSearchCategories1": "Este relatório lista as categorias que os visitantes selecionaram, quando eles fizeram uma pesquisa em seu site.",
diff --git a/plugins/Actions/lang/pt.json b/plugins/Actions/lang/pt.json
index 00af2618bc..5fe9548e2d 100644
--- a/plugins/Actions/lang/pt.json
+++ b/plugins/Actions/lang/pt.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Média com base em %s hit(s) %s entre %s e %s",
+ "AvgGenerationTimeTooltip": "Média com base em %1$s hit(s) %2$s entre %3$s e %4$s",
"ColumnClickedURL": "Endereço Clicado",
"ColumnClicks": "Cliques",
"ColumnClicksDocumentation": "O número de vezes que o link foi clicado.",
@@ -35,7 +35,7 @@
"OutlinkDocumentation": "Um outlink é um link que leva o visitante para fora do seu website (para outro domínio).",
"OutlinksReportDocumentation": "Este relatório mostra uma lista hierárquica de URLs de saída que foram clicados pelos visitantes.",
"PagesReportDocumentation": "Este relatório contém informações sobre URLs das páginas que foram visitadas. %s A tabela está organizada hierarquicamente, as URLs são exibidas como uma estrutura de pastas.",
- "PageTitlesReportDocumentation": "Este relatório contém informação relativa aos títulos de páginas que foram visitadas. %s O título de página é a Etiqueta HTML %s que a maioria dos navegadores mostram como título de janela.",
+ "PageTitlesReportDocumentation": "Este relatório contém informação relativa aos títulos de páginas que foram visitadas. %1$s O título de página é a Etiqueta HTML %2$s que a maioria dos navegadores mostram como título de janela.",
"PageUrls": "URLs de páginas",
"SiteSearchCategories1": "Este relatório lista as Categorias que os visitantes selecionaram quando realizaram uma Pesquisa na sua página.",
"SiteSearchCategories2": "Por exemplo, os sites de comércio electrónico têm tipicamente uma \"Categoria\" seleccionada de modo que os visitantes podem restringir suas pesquisas a todos os produtos em uma categoria específica.",
diff --git a/plugins/Actions/lang/ro.json b/plugins/Actions/lang/ro.json
index 86e944e9c3..21ce2c4e9a 100644
--- a/plugins/Actions/lang/ro.json
+++ b/plugins/Actions/lang/ro.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Media bazata pe %s hit(uri) %s intre %s si %s",
+ "AvgGenerationTimeTooltip": "Media bazata pe %1$s hit(uri) %2$s intre %3$s si %4$s",
"ColumnClickedURL": "URL-uri accesate",
"ColumnClicks": "Click-uri",
"ColumnClicksDocumentation": "Numărul de ori link-ul a fost click-uit.",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Un outlink este un link ce trimite vizitatori de pe website-ul tău (către alt domeniu).",
"OutlinksReportDocumentation": "Acest raport arată o listă ierarhică al URL-urilor outlink-urilor ce au fost click-uite de vizitatorii tăi.",
"PagesReportDocumentation": "Acest raport conţine informaţii despre URL-urile paginilor ce au fost vizitate. %s Acest tabel este organizat ierarhic,URL-urile sunt afişate într-o structură tip arbore.",
- "PageTitlesReportDocumentation": "Acest raport conţine informaţii despre titlurile paginilor ce au fost vizitate. %s Titlul paginii este Tag-ul HTML %s afişat de cele mai multe browsere ca nume al ferestrei.",
+ "PageTitlesReportDocumentation": "Acest raport conţine informaţii despre titlurile paginilor ce au fost vizitate. %1$s Titlul paginii este Tag-ul HTML %2$s afişat de cele mai multe browsere ca nume al ferestrei.",
"PageUrls": "URL-uri pagini",
"SiteSearchCategories1": "Acest raport afiseaza Categoriile pe care vizitatorii le-au selectat cand au efectuat o Cautare pe siteul tau.",
"SiteSearchCategories2": "De exemplu, magazinele online de obicei au o optiune de a selecta o anumita \"Categorie\" dintr-o lista, pentru ca vizitatorii sa restrictioneze cautarile pe site doar la produsele aflate intr-o anumita Categorie.",
diff --git a/plugins/Actions/lang/ru.json b/plugins/Actions/lang/ru.json
index 70711381ed..04b3e49b5e 100644
--- a/plugins/Actions/lang/ru.json
+++ b/plugins/Actions/lang/ru.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "В среднем по %s хит(ов) %s между %s и %s",
+ "AvgGenerationTimeTooltip": "В среднем по %1$s хит(ов) %2$s между %3$s и %4$s",
"ColumnClickedURL": "URL кликов",
"ColumnClicks": "Клики",
"ColumnClicksDocumentation": "Количество кликов по этой ссылке.",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Исходящая ссылка – ссылка, которая уводит посетителя с вашего сайта (на другой домен).",
"OutlinksReportDocumentation": "Этот отчет показывает иерархический список исходящих ссылок, на которые пользователь кликнул.",
"PagesReportDocumentation": "Этот отчет содержит информацию об адресах страниц, на которых побывали посетители вашего сайта. %s Таблица организовано иерархично – URL-ы отображаются папочной структурой.",
- "PageTitlesReportDocumentation": "Этот отчет содержит информацию о заголовках посещенных страниц. %s Заголовок страницы это HTML-тег %s, который браузеры отображают в заголовке окна (вкладки).",
+ "PageTitlesReportDocumentation": "Этот отчет содержит информацию о заголовках посещенных страниц. %1$s Заголовок страницы это HTML-тег %2$s, который браузеры отображают в заголовке окна (вкладки).",
"PageUrls": "URL-ы страниц",
"PluginDescription": "Отчёты о просмотрах и заголовках страниц. Позволяют оценить поисковый дижок внутреннего сайта. Автоматически отслеживает клики по внешним ссылкам и скачиванию файлов.",
"SiteSearchCategories1": "Этот отчет показывает список категорий, которые выбрали посетители при поиске на вашем сайте.",
diff --git a/plugins/Actions/lang/sl.json b/plugins/Actions/lang/sl.json
index 5c852b18ec..4ddf33087f 100644
--- a/plugins/Actions/lang/sl.json
+++ b/plugins/Actions/lang/sl.json
@@ -31,7 +31,7 @@
"OutlinkDocumentation": "Zunanja povezava je povezava, ki vodi obiskovalca stran od vaše splete strani (na drugo domeno).",
"OutlinksReportDocumentation": "To poročilo prikazuje hierarhični seznam URL-jev zunanjih povezav na katere so uporabniki kliknili.",
"PagesReportDocumentation": "To poročilo vsebuje informacije o URL-jih strani, ki so bile obiskane. %s Tabela je hierarhično organizirana. URL-ji so prikazani kot struktura mape.",
- "PageTitlesReportDocumentation": "To poročilo vsebuje informacije o nazivih strani, ki so bile obiskane. %s Naziv strani je HTML oznaka %s Oznaka, ki jo večina brskalnikov prikaže v nazivu okna.",
+ "PageTitlesReportDocumentation": "To poročilo vsebuje informacije o nazivih strani, ki so bile obiskane. %1$s Naziv strani je HTML oznaka %2$s Oznaka, ki jo večina brskalnikov prikaže v nazivu okna.",
"PageUrls": "URL-ji strani",
"SiteSearchKeyword": "Ključna beseda (iskanje po strani)",
"SubmenuPagesEntry": "Vstopne strani",
diff --git a/plugins/Actions/lang/sq.json b/plugins/Actions/lang/sq.json
index c91becf8f0..c02a62e648 100644
--- a/plugins/Actions/lang/sq.json
+++ b/plugins/Actions/lang/sq.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Mesatare e bazuar në %s klikim(e) %s mes %s dhe %s",
+ "AvgGenerationTimeTooltip": "Mesatare e bazuar në %1$s klikim(e) %2$s mes %3$s dhe %4$s",
"ColumnClickedURL": "URL të klikuara",
"ColumnClicks": "Klikime",
"ColumnClicksDocumentation": "Sa herë është klikuar kjo lidhje.",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Një lidhje e jashtme është një lidhje që e shpie përdoruesin diku jashtë sajtit tuaj (te një tjetër përkatësi).",
"OutlinksReportDocumentation": "Ky raport shfaq një listë hierarkike URL-sh të jashtme që janë klikuar nga vizitorët tuaj.",
"PagesReportDocumentation": "Ky raport përmban të dhëna rreth URL faqesh që janë vizituar. %s Tabela është e sistemuar në mënyrë hierarkike, URL-të tregohen si strukturë dosjeje.",
- "PageTitlesReportDocumentation": "Ky raport përmban të dhëna rreth titujve të faqeve që janë vizituar. %s Titulli i faqes është Etiketa HTML %s që shfaqin shumica e shfletuesve te titulli i dritares.",
+ "PageTitlesReportDocumentation": "Ky raport përmban të dhëna rreth titujve të faqeve që janë vizituar. %1$s Titulli i faqes është Etiketa HTML %2$s që shfaqin shumica e shfletuesve te titulli i dritares.",
"PageUrls": "URL faqesh",
"PluginDescription": "Raporte rreth parjes së faqeve dhe titujve të tyre. Ju lejon të matni motorin e brendshëm të kërkimeve të sajtit tuaj. Gjurmon vetvetiu klikimet drejt lidhjesh të jashtme dhe shkarkime kartelash.",
"SiteSearchCategories1": "Ky raport paraqet kategoritë që vizitorët kanë përzgjedhur kur bënë një Kërkim te sajti juaj.",
diff --git a/plugins/Actions/lang/sr.json b/plugins/Actions/lang/sr.json
index 15702384c9..0a671837ad 100644
--- a/plugins/Actions/lang/sr.json
+++ b/plugins/Actions/lang/sr.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Prosek zasnovan na %s pogodaka %s između %s i %s",
+ "AvgGenerationTimeTooltip": "Prosek zasnovan na %1$s pogodaka %2$s između %3$s i %4$s",
"ColumnClickedURL": "Kliknutih linkova",
"ColumnClicks": "Klikovi",
"ColumnClicksDocumentation": "Broj klikova na ovaj link.",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Odlazni link je link koji posetioca vodi sa Vašeg sajta (ka nekom drugom).",
"OutlinksReportDocumentation": "Ovaj izveštaj pokazuje hijerarhijsku listu odlaznih linkova koje su Vaši posetioci kliknuli.",
"PagesReportDocumentation": "Ovaj izveštaj sadrži informacije o linkovima koji su posećeni. %s Tabela je organizovana hijerarhijski, linkovi su prikazani u vidu foldera.",
- "PageTitlesReportDocumentation": "Ovaj izveštaj sadrži informacije o naslovima stranica koje su posećene. %s Naslov stranice je HTML %s tag koji većina pregledača prikazuje umesto svog naslova.",
+ "PageTitlesReportDocumentation": "Ovaj izveštaj sadrži informacije o naslovima stranica koje su posećene. %1$s Naslov stranice je HTML %2$s tag koji većina pregledača prikazuje umesto svog naslova.",
"PageUrls": "Adrese stranica",
"PluginDescription": "Izveštaj o prikazima i naslovima stranica. Omogućava vam da pratite vaš interni pretraživač sajta. Automatski prati klikove na eksterne linkove i preuzimanja fajlova.",
"SiteSearchCategories1": "Ovaj izveštaj prikazuje kategorije koje posetioci biraju kada pretražuju vaš sajt.",
diff --git a/plugins/Actions/lang/sv.json b/plugins/Actions/lang/sv.json
index 793574edc7..116f810bdd 100644
--- a/plugins/Actions/lang/sv.json
+++ b/plugins/Actions/lang/sv.json
@@ -1,10 +1,11 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Medel baseras på %s träff(ar) %s mellan %s och %s",
+ "AvgGenerationTimeTooltip": "Medel baseras på %1$s träff(ar) %2$s mellan %3$s och %4$s",
"ColumnClickedURL": "Klickad URL",
+ "ColumnActionURL": "Åtgärds-URL",
"ColumnClicks": "Klick",
"ColumnClicksDocumentation": "Antalet gånger som denna länk klickades på.",
- "ColumnDownloadURL": "Nedladdningens URL",
+ "ColumnDownloadURL": "Nedladdnings-URL",
"ColumnEntryPageTitle": "Målsidans titel",
"ColumnEntryPageURL": "Målsidans URL",
"ColumnExitPageTitle": "Avvisningssidans titel",
@@ -14,7 +15,7 @@
"ColumnPagesPerSearch": "Sökresultatsidor",
"ColumnPagesPerSearchDocumentation": "Ibland klickar användare som söker på din webbplats på \"nästa\" för att visa flera resultat. Detta är det genomsnittliga antalet sidor med sökresultat som visas för det här nyckelordet.",
"ColumnPageURL": "Sidans URL",
- "ColumnSearchCategory": "Sök kategori",
+ "ColumnSearchCategory": "Sökkategori",
"ColumnSearches": "Sökningar",
"ColumnSearchesDocumentation": "Antalet besök som sökte efter detta nyckelord i din webbplats sökmotor.",
"ColumnSearchExits": "% Sökutgångar",
@@ -37,14 +38,14 @@
"OutlinkDocumentation": "En utlänk är en länk som leder besökaren bort från webbplatsen (till en annan domän).",
"OutlinksReportDocumentation": "Denna rapport visar en hierarkisk lista över utlänkarnas webbadresser som klickades på utav dina besökare.",
"PagesReportDocumentation": "Denna rapport innehåller information om webbadresserna som har besökts. %s Tabellen ordnas hierarkiskt, webbadresserna visas som en mappstruktur.",
- "PageTitlesReportDocumentation": "Denna rapport innehåller information om titlarna på de sidor som har besökts. %s sidans titel är HTML-taggen %s som de flesta webbläsare visar i sina fönster titel.",
- "PageUrls": "Webbadress",
+ "PageTitlesReportDocumentation": "Denna rapport innehåller information om titlarna på de sidor som har besökts. %1$s sidans titel är HTML-taggen %2$s som de flesta webbläsare visar i sina fönster titel.",
+ "PageUrls": "Webbadresser",
"PluginDescription": "Rapporter om sidvisningar och sidtitlar. Låter dig mäta din webbplats sökmotor. Spårar klick på externa länkar och filnedladdningar.",
"SiteSearchCategories1": "Den här rapporten listar kategorierna som besökarna valt när dom gjort en sökning på din webbplats.",
"SiteSearchCategories2": "T.ex. så har e-handelssidor vanligtvis kategorier som gör att besökarna kan begränsa sökningen till produkter i en vald kategori",
"SiteSearchFollowingPagesDoc": "När besökare söker på din webbplats så letar dom efter en speciell sida, innehåll, produkt eller tjänst. Den här rapporten listar de sidor med flest klick efter en intern sökning. Med andra ord, en lista med dom mest sökta sidorna av besökare som redan hittat till din webbplats.",
"SiteSearchIntro": "Att spåra sökningar som besökare gör på webbplatsen är ett väldigt effektivt sätt att lära sig mer om vad dom letar efter. Det kan hjälpa till med nya idéer för innehåll eller nya produkter som potentiella kunder letar efter. Det kan även förbättra den allmänna upplevelsen besökarna får på din webbplats.",
- "SiteSearchKeyword": "Nyckelord(Webbplatssökning)",
+ "SiteSearchKeyword": "Nyckelord (Webbplatssökning)",
"SiteSearchKeywordsDocumentation": "Den här rapporten listar nyckelorden som besökare sökt efter med din interna sökmotor.",
"SiteSearchKeywordsNoResultDocumentation": "Den här rapporten listar nyckelorden som inte gav något resultat. Möjligtvis kan webbplatsens sökmotor förbättras eller så letar besökarna efter innehåll som inte finns (ännu?)",
"SubmenuPagesEntry": "Målsidor",
@@ -60,6 +61,7 @@
"WidgetPageUrlsFollowingSearch": "Sidor från en webbplatssökning",
"WidgetSearchCategories": "Sök kategorier",
"WidgetSearchKeywords": "Nyckelord från webbplatssökningar",
- "WidgetSearchNoResultKeywords": "Nyckelord utan resultat"
+ "WidgetSearchNoResultKeywords": "Nyckelord utan resultat",
+ "ActionType": "Åtgärdstyp"
}
} \ No newline at end of file
diff --git a/plugins/Actions/lang/ta.json b/plugins/Actions/lang/ta.json
index 0042514005..f3b59163d8 100644
--- a/plugins/Actions/lang/ta.json
+++ b/plugins/Actions/lang/ta.json
@@ -1,6 +1,5 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "%s தடவை(கள்) அடிப்படையில் சராசரி %s க்கும் %s க்கும் %s இடையில்",
"ColumnClickedURL": "சொடுக்கபட்ட URL",
"ColumnClicks": "சொடுக்குகள்",
"ColumnClicksDocumentation": "இந்த இணைப்பு சொடுக்குகளின் எண்ணிக்கை",
@@ -37,7 +36,7 @@
"OutlinkDocumentation": "ஒரு வெளியிணைப்பு என்பது வருகையாளரை உங்கள் தளத்தை விட்டு (வேறு ஒரு ஆட்புல பேருக்கு) அழைத்து செல்லும் பிறிதொரு இணைய முகவரி ஆகும்.",
"OutlinksReportDocumentation": "இந்த அறிக்கை உங்கள் வருகையாளர்களால் வெளி இணைப்பு முகவரிகளில் மேற்கொள்ளப்பட்ட சொடுக்கங்களை படிநிலை முறை நிலையில் காட்டுகிறது.",
"PagesReportDocumentation": "இந்த அறிக்கை வருகை தரப்பட்ட பக்கங்களின் முகவரிகளை காட்டுகிறது. %s அட்டவணை படிமுறை நிலையில் ஒழுங்காக்கப்பட்டு உள்ளது. முகவரிகள் கோப்பு வடிவில் உள்ளன.",
- "PageTitlesReportDocumentation": "இந்த அறிக்கை நீங்கள் இதற்கு முன்பு சென்று வந்த பக்கங்களைப் பற்றிய தலைப்புகளை உள்ளடக்கியது. %s ஒரு பக்கத்தின் தலைப்பானது %s அனைத்து உலாவிகளின் தலைப்பாக காட்டப்படும் HTML டேக் ஆகும்.",
+ "PageTitlesReportDocumentation": "இந்த அறிக்கை நீங்கள் இதற்கு முன்பு சென்று வந்த பக்கங்களைப் பற்றிய தலைப்புகளை உள்ளடக்கியது. %1$s ஒரு பக்கத்தின் தலைப்பானது %2$s அனைத்து உலாவிகளின் தலைப்பாக காட்டப்படும் HTML டேக் ஆகும்.",
"PageUrls": "பக்க URLs",
"SiteSearchCategories1": "இந்த அறிக்கையை, உங்கள் வலைத்தளத்தில் ஒரு தேடல் செய்த போது பார்வையாளர்கள் தேர்ந்தெடுத்த வகைகள் பட்டியலிடுகிறது.",
"SiteSearchCategories2": "எடுத்துக்காட்டாக, மின்வணிக வலைத்தளங்களில் பொதுவாக ஒரு \"வகை\" தேர்வு இருக்கிறது. இதன் மூலம் தேடல் முடிவுகளை குறிப்பிட்ட வகையின் உள் பார்வையாலரால் மட்டுப்படுத்த முடியும்.",
diff --git a/plugins/Actions/lang/th.json b/plugins/Actions/lang/th.json
index 6af5f8874b..0887a25b7a 100644
--- a/plugins/Actions/lang/th.json
+++ b/plugins/Actions/lang/th.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "ค่าเฉลี่ยของจำนวน %s ครั้ง %s ระหว่าง %s และ %s",
+ "AvgGenerationTimeTooltip": "ค่าเฉลี่ยของจำนวน %1$s ครั้ง %2$s ระหว่าง %3$s และ %4$s",
"ColumnClickedURL": "URL ที่ถูกคลิก",
"ColumnClicks": "คลิก",
"ColumnClicksDocumentation": "จำนวนครั้งที่ link นี้ถูกคลิก",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Outlink คือการเชื่อมโยงที่นำไปสู่​​ผู้เข้าชมอยู่ห่างจากเว็บไซต์ของคุณ (โดเมนอื่น)",
"OutlinksReportDocumentation": "รายงานนี้จะแสดงรายการลำดับชั้นของการเชื่อมโยง URL อัตโนมัติ ที่มีการคลิกโดยผู้เข้าชมของคุณ",
"PagesReportDocumentation": "รายงานนี้ประกอบด้วยข้อมูลเกี่ยวกับ URL ของหน้าที่ได้รับการเข้าเยี่ยมชม %s ตารางจะถูกจัดลำดับชั้น URL ที่จะปรากฏเป็นโครงสร้างโฟลเดอร์",
- "PageTitlesReportDocumentation": "รายงานนี้ประกอบด้วยข้อมูลเกี่ยวกับชื่อเรื่องของหน้าเว็บที่ได้รับการเข้าเยี่ยมชม %s ชื่อหน้าจะเป็นแท็ก %s HTML เบราว์เซอร์ส่วนใหญ่จะแสดงในชื่อเรื่องของหน้าต่างของพวกเขา",
+ "PageTitlesReportDocumentation": "รายงานนี้ประกอบด้วยข้อมูลเกี่ยวกับชื่อเรื่องของหน้าเว็บที่ได้รับการเข้าเยี่ยมชม %1$s ชื่อหน้าจะเป็นแท็ก %2$s HTML เบราว์เซอร์ส่วนใหญ่จะแสดงในชื่อเรื่องของหน้าต่างของพวกเขา",
"PageUrls": "Url ของเพจ",
"SiteSearchCategories1": "รายงานนี้แสดงรายการหมวดหมู่ที่ผู้เข้าชมเลือกไว้ เมื่อพวกเขาทำค้นหาบนเว็บไซต์ของคุณ",
"SiteSearchCategories2": "ตัวอย่างเช่น เว็บไซต์อีคอมเมิร์ซมักจะมี \"หมวดหมู่\" เพื่อให้ผู้เข้าชมสามารถจำกัดการค้นหาของพวกเขาให้กับสินค้าทั้งหมดในหมวดหมู่ที่เลือกไว้ได้",
diff --git a/plugins/Actions/lang/tl.json b/plugins/Actions/lang/tl.json
index 0403fd0d6f..e4f9fb7f58 100644
--- a/plugins/Actions/lang/tl.json
+++ b/plugins/Actions/lang/tl.json
@@ -1,5 +1,6 @@
{
"Actions": {
+ "AvgGenerationTimeTooltip": "Pamantayan batay sa mga %1$s ng mga hit %2$s sa pagitan ng %3$s at %4$s",
"ColumnClickedURL": "Na-click na URL",
"ColumnClicks": "Mga Click",
"ColumnClicksDocumentation": "Kung ilang beses na na-click ang link na ito.",
@@ -36,7 +37,7 @@
"OutlinkDocumentation": "Ang isang outlink ay isang link na naghahatid sa isang bisita nang palayo mula sa iyong website (sa isa pang domain).",
"OutlinksReportDocumentation": "Ipinapakita ng ulat na ito ang hirerkiya na listahan ng mga outlink URL na na-click ng iyong mga bisita.",
"PagesReportDocumentation": "Ang ulat na ito ay naglalaman ng impormasyon tungkol sa mga URL ng pahina na binisita mo. %s ang talahanayan ay nakaayos ng hierarchically, ang mga URL ay ipinapakita bilang isang istraktura ng folder.",
- "PageTitlesReportDocumentation": "Ang ulat na ito ay naglalaman ng impormasyon tungkol sa mga pamagat ng mga pahina na binisita na. %s Ang pamagat ng pahina ay ang HTML %s Tag na karaniwang pinapakita ng ng karamihan sa mga browser sa kanilang mga window bilang pamagat.",
+ "PageTitlesReportDocumentation": "Ang ulat na ito ay naglalaman ng impormasyon tungkol sa mga pamagat ng mga pahina na binisita na. %1$s Ang pamagat ng pahina ay ang HTML %2$s Tag na karaniwang pinapakita ng ng karamihan sa mga browser sa kanilang mga window bilang pamagat.",
"PageUrls": "Mga URL ng Pahina",
"SiteSearchCategories1": "Inililista ng ulat na ito ang mga kategorya na napili ng mga bisita kapag ginawa nila ang isang Paghahanap sa iyong website.",
"SiteSearchCategories2": "Halimbawa, ang mga Ecommerce website ay karaniwang may tagapili ng \"Kategorya\" upang ang mga bisita ay maaaring malimitahan ang kanilang mga paghahanap sa lahat ng produkto sa isang espesipikong Kategorya.",
diff --git a/plugins/Actions/lang/tr.json b/plugins/Actions/lang/tr.json
index 16c6ef771b..5e1060c57c 100644
--- a/plugins/Actions/lang/tr.json
+++ b/plugins/Actions/lang/tr.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Ortalama %s hit, %s arasında %s \/ %s 'e dayalı",
+ "AvgGenerationTimeTooltip": "Ortalama %1$s hit, %2$s arasında %3$s \/ %4$s 'e dayalı",
"ColumnClickedURL": "Tıklanan Sayfa Adresleri",
"ColumnClicks": "Tıklamalar",
"ColumnClicksDocumentation": "Tıklama sayısı",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Bu dış bağlantı linki ziyaretçilerinizin sitenizden uzaklaştığı diğer alan adlarını kapsar.",
"OutlinksReportDocumentation": "Bu rapor, ziyaretçilerin tıkladıkları dış linklerin hiyerarşik listesini gösterir.",
"PagesReportDocumentation": "Bu rapor ziyaret edilen sayfa URL'leri hakkında bilgi içerir. %s Tablo hiyerarşik olarak düzenlenmiştir, URL'ler klasör yapısı ile görüntülenmektedir.",
- "PageTitlesReportDocumentation": "Bu rapor ziyaret edilen sayfaların başlıkları ile ilgili bilgi içerir. %s Sayfa başlığı, birçok tarayıcının pencere başlığında gösterdiği HTML %s imidir.",
+ "PageTitlesReportDocumentation": "Bu rapor ziyaret edilen sayfaların başlıkları ile ilgili bilgi içerir. %1$s Sayfa başlığı, birçok tarayıcının pencere başlığında gösterdiği HTML %2$s imidir.",
"PageUrls": "Sayfa Adresleri",
"SiteSearchCategories1": "Bu rapor, ziyaretçilerin sitenizde arama yaptıklarında seçtikleri kategorileri listelemektedir.",
"SiteSearchCategories2": "Örnek olarak, E-Ticaret websitelerinde tipik bir \"Kategori\" seçimi vardır böylece ziyaretçiler aramalarını belirli bir kategori içindeki tüm ürünler ile kısıtlayabilirler.",
diff --git a/plugins/Actions/lang/vi.json b/plugins/Actions/lang/vi.json
index ccdc79e820..d68aeeeed3 100644
--- a/plugins/Actions/lang/vi.json
+++ b/plugins/Actions/lang/vi.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "Trung bình dựa trên %s lần(s) %s giữa %s và %s",
+ "AvgGenerationTimeTooltip": "Trung bình dựa trên %1$s lần(s) %2$s giữa %3$s và %4$s",
"ColumnClickedURL": "URL đã truy cập",
"ColumnClicks": "Clicks",
"ColumnClicksDocumentation": "Số lần đường dẫn này đã được click",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "Một outlink là một liên kết dẫn người truy cập từ trang web của bạn (đến tên miền khác)",
"OutlinksReportDocumentation": "Báo cáo này cho thấy một danh sách phân cấp của outlink URL đã được click bởi khách truy cập của bạn",
"PagesReportDocumentation": "Báo cáo này chứa thông tin về các URLs của trang đã được xem. %s Bảng này được tổ chức dưới dạng cây, Các URL được hiển thị dưới cấu trúc folder.",
- "PageTitlesReportDocumentation": "Báo cáo này chứa thông tin về tiêu đề các trang đã được truy cập. %s Tiêu đề trang là thẻ HTML %s mà các trình duyệt hiển thị trên thanh tiêu đề của cửa sổ trình duyệt.",
+ "PageTitlesReportDocumentation": "Báo cáo này chứa thông tin về tiêu đề các trang đã được truy cập. %1$s Tiêu đề trang là thẻ HTML %2$s mà các trình duyệt hiển thị trên thanh tiêu đề của cửa sổ trình duyệt.",
"PageUrls": "Đường dẫn trang",
"SiteSearchCategories1": "Báo cáo này liệt kê các hạng mục cho người truy cập lựa chọn khi họ thực hiện một tìm kiếm trên trang web của bạn",
"SiteSearchCategories2": "Ví dụ, một trang thương mại điện tử (e-commerce) thường có chức năng \"Lựa chọn Phân mục\" để khách truy cập giới hạn phạm vi tìm kiếm đối với các sản phẩm trong một phân mục quy định.",
diff --git a/plugins/Actions/lang/zh-cn.json b/plugins/Actions/lang/zh-cn.json
index 45c925bd1e..6f067e99b5 100644
--- a/plugins/Actions/lang/zh-cn.json
+++ b/plugins/Actions/lang/zh-cn.json
@@ -1,6 +1,6 @@
{
"Actions": {
- "AvgGenerationTimeTooltip": "平均值基于 %s 次访问 %s,介于 %s 和 %s 之间",
+ "AvgGenerationTimeTooltip": "平均值基于 %1$s 次访问 %2$s,介于 %3$s 和 %4$s 之间",
"ColumnClickedURL": "点击的网址",
"ColumnClicks": "点击次数",
"ColumnClicksDocumentation": "链接被点击的次数",
@@ -37,7 +37,7 @@
"OutlinkDocumentation": "离站链接指导致访客离开您的网站或域名的链接。",
"OutlinksReportDocumentation": "本报表显示访客点击的离站链接网址的的分级列表。",
"PagesReportDocumentation": "本报表显示被访问的网页地址。%s 表格分级归类,网址按照目录结构显示。",
- "PageTitlesReportDocumentation": "本报表显示被访问页面的标题。%s 网页标题为 HTML %s 标签,多数浏览器显示为窗口的标题。",
+ "PageTitlesReportDocumentation": "本报表显示被访问页面的标题。%1$s 网页标题为 HTML %2$s 标签,多数浏览器显示为窗口的标题。",
"PageUrls": "页面地址",
"PluginDescription": "有关页面访问量和页面标题的报告。让你衡量你的内部网站的搜索引擎。自动跟踪外部链接和文件下载点击。",
"SiteSearchCategories1": "本报表显示访客使用站内搜索时选择的分类。",
diff --git a/plugins/AnonymousPiwikUsageMeasurement b/plugins/AnonymousPiwikUsageMeasurement
-Subproject 3b0da5dac2714339e6d8539b8a16c56fa22a872
+Subproject 3d1160c0980377b140c3ebb987cef4b01ce1b3a
diff --git a/plugins/Contents/lang/en.json b/plugins/Contents/lang/en.json
index 3873a7b2ac..78e347eaaa 100644
--- a/plugins/Contents/lang/en.json
+++ b/plugins/Contents/lang/en.json
@@ -1,14 +1,14 @@
{
- "Contents":{
+ "Contents": {
"PluginDescription": "Content and banner tracking lets you measure the performance (views, clicks, CTR) of any piece of content on your pages (Banner ad, image, any item).",
- "Impressions":"Impressions",
- "Interactions":"Interactions",
- "Interaction":"Interaction",
- "InteractionRate":"Interaction Rate",
- "ContentName":"Content Name",
- "ContentPiece":"Content Piece",
- "ContentTarget":"Content Target",
- "Contents":"Contents",
+ "Impressions": "Impressions",
+ "Interactions": "Interactions",
+ "Interaction": "Interaction",
+ "InteractionRate": "Interaction Rate",
+ "ContentName": "Content Name",
+ "ContentPiece": "Content Piece",
+ "ContentTarget": "Content Target",
+ "Contents": "Contents",
"InteractionsMetricDocumentation": "The number of times a content block was interacted with (eg, a 'click' on a banner or ad).",
"ImpressionsMetricDocumentation": "The number of times a content block, such as a banner or an ad, was displayed on a page.",
"InteractionRateMetricDocumentation": "The ratio of content impressions to interactions."
diff --git a/plugins/Contents/lang/pl.json b/plugins/Contents/lang/pl.json
index 28af2c1513..06a8e9db97 100644
--- a/plugins/Contents/lang/pl.json
+++ b/plugins/Contents/lang/pl.json
@@ -2,6 +2,6 @@
"Contents": {
"Interactions": "Interakcje",
"ContentName": "Nazwa treści",
- "Contents": "Treści"
+ "Contents": "Treść"
}
} \ No newline at end of file
diff --git a/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml b/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml
index bed8ee84d6..38f9ab1424 100644
--- a/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_day.xml
@@ -14,8 +14,8 @@
<pageId>1</pageId>
<generationTime>0.33s</generationTime>
- <timeSpent>270</timeSpent>
- <timeSpentPretty>4 min 30s</timeSpentPretty>
+ <timeSpent>271</timeSpent>
+ <timeSpentPretty>4 min 31s</timeSpentPretty>
<icon />
</row>
@@ -117,8 +117,8 @@
<pageId>13</pageId>
<generationTime>0.33s</generationTime>
- <timeSpent>270</timeSpent>
- <timeSpentPretty>4 min 30s</timeSpentPretty>
+ <timeSpent>271</timeSpent>
+ <timeSpentPretty>4 min 31s</timeSpentPretty>
<icon />
</row>
diff --git a/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml b/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml
index bed8ee84d6..38f9ab1424 100644
--- a/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml
+++ b/plugins/Contents/tests/System/expected/test_Contents__Live.getLastVisitsDetails_month.xml
@@ -14,8 +14,8 @@
<pageId>1</pageId>
<generationTime>0.33s</generationTime>
- <timeSpent>270</timeSpent>
- <timeSpentPretty>4 min 30s</timeSpentPretty>
+ <timeSpent>271</timeSpent>
+ <timeSpentPretty>4 min 31s</timeSpentPretty>
<icon />
</row>
@@ -117,8 +117,8 @@
<pageId>13</pageId>
<generationTime>0.33s</generationTime>
- <timeSpent>270</timeSpent>
- <timeSpentPretty>4 min 30s</timeSpentPretty>
+ <timeSpent>271</timeSpent>
+ <timeSpentPretty>4 min 31s</timeSpentPretty>
<icon />
</row>
diff --git a/plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml b/plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml
index bed8ee84d6..38f9ab1424 100644
--- a/plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Contents/tests/System/expected/test_Contents_contentInteractionMatch__Live.getLastVisitsDetails_day.xml
@@ -14,8 +14,8 @@
<pageId>1</pageId>
<generationTime>0.33s</generationTime>
- <timeSpent>270</timeSpent>
- <timeSpentPretty>4 min 30s</timeSpentPretty>
+ <timeSpent>271</timeSpent>
+ <timeSpentPretty>4 min 31s</timeSpentPretty>
<icon />
</row>
@@ -117,8 +117,8 @@
<pageId>13</pageId>
<generationTime>0.33s</generationTime>
- <timeSpent>270</timeSpent>
- <timeSpentPretty>4 min 30s</timeSpentPretty>
+ <timeSpent>271</timeSpent>
+ <timeSpentPretty>4 min 31s</timeSpentPretty>
<icon />
</row>
diff --git a/plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml b/plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml
index bed8ee84d6..38f9ab1424 100644
--- a/plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Contents/tests/System/expected/test_Contents_contentTargetMatch__Live.getLastVisitsDetails_day.xml
@@ -14,8 +14,8 @@
<pageId>1</pageId>
<generationTime>0.33s</generationTime>
- <timeSpent>270</timeSpent>
- <timeSpentPretty>4 min 30s</timeSpentPretty>
+ <timeSpent>271</timeSpent>
+ <timeSpentPretty>4 min 31s</timeSpentPretty>
<icon />
</row>
@@ -117,8 +117,8 @@
<pageId>13</pageId>
<generationTime>0.33s</generationTime>
- <timeSpent>270</timeSpent>
- <timeSpentPretty>4 min 30s</timeSpentPretty>
+ <timeSpent>271</timeSpent>
+ <timeSpentPretty>4 min 31s</timeSpentPretty>
<icon />
</row>
diff --git a/plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml b/plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml
index bed8ee84d6..38f9ab1424 100644
--- a/plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml
+++ b/plugins/Contents/tests/System/expected/test_ContentscontentNameOrPieceMatch__Live.getLastVisitsDetails_day.xml
@@ -14,8 +14,8 @@
<pageId>1</pageId>
<generationTime>0.33s</generationTime>
- <timeSpent>270</timeSpent>
- <timeSpentPretty>4 min 30s</timeSpentPretty>
+ <timeSpent>271</timeSpent>
+ <timeSpentPretty>4 min 31s</timeSpentPretty>
<icon />
</row>
@@ -117,8 +117,8 @@
<pageId>13</pageId>
<generationTime>0.33s</generationTime>
- <timeSpent>270</timeSpent>
- <timeSpentPretty>4 min 30s</timeSpentPretty>
+ <timeSpent>271</timeSpent>
+ <timeSpentPretty>4 min 31s</timeSpentPretty>
<icon />
</row>
diff --git a/plugins/CoreAdminHome/CustomLogo.php b/plugins/CoreAdminHome/CustomLogo.php
index 76f328e139..32fa636dd3 100644
--- a/plugins/CoreAdminHome/CustomLogo.php
+++ b/plugins/CoreAdminHome/CustomLogo.php
@@ -196,18 +196,22 @@ class CustomLogo
list($width, $height) = getimagesize($file);
switch ($_FILES[$uploadFieldName]['type']) {
case 'image/jpeg':
- $image = imagecreatefromjpeg($file);
+ $image = @imagecreatefromjpeg($file);
break;
case 'image/png':
- $image = imagecreatefrompng($file);
+ $image = @imagecreatefrompng($file);
break;
case 'image/gif':
- $image = imagecreatefromgif ($file);
+ $image = @imagecreatefromgif ($file);
break;
default:
return false;
}
+ if (!is_resource($image)) {
+ return false;
+ }
+
$targetWidth = round($width * $targetHeight / $height);
$newImage = imagecreatetruecolor($targetWidth, $targetHeight);
diff --git a/plugins/CoreAdminHome/javascripts/generalSettings.js b/plugins/CoreAdminHome/javascripts/generalSettings.js
index f0e5f103aa..e691ce72b9 100644
--- a/plugins/CoreAdminHome/javascripts/generalSettings.js
+++ b/plugins/CoreAdminHome/javascripts/generalSettings.js
@@ -114,6 +114,7 @@ $(document).ready(function () {
$("#logoUploadForm").submit(function (data) {
var submittingForm = $(this);
+ $('.uploaderror').fadeOut();
var frameName = "upload" + (new Date()).getTime();
var uploadFrame = $("<iframe name=\"" + frameName + "\" />");
uploadFrame.css("display", "none");
@@ -124,6 +125,10 @@ $(document).ready(function () {
var frameContent = $(uploadFrame.contents()).find('body').html();
frameContent = $.trim(frameContent);
+ if ('0' === frameContent) {
+ $('.uploaderror').show();
+ }
+
if ('1' === frameContent || '0' === frameContent) {
uploadFrame.remove();
}
diff --git a/plugins/CoreAdminHome/lang/ar.json b/plugins/CoreAdminHome/lang/ar.json
index a447d3d651..7177c24bfa 100644
--- a/plugins/CoreAdminHome/lang/ar.json
+++ b/plugins/CoreAdminHome/lang/ar.json
@@ -5,7 +5,7 @@
"BrandingSettings": "إعدادات العلامة التجارية",
"ClickHereToOptIn": "انقر هناك للاشتراك.",
"ClickHereToOptOut": "انقر هنا لإلغاء الاشتراك.",
- "CustomLogoFeedbackInfo": "إذا قمت بتخصيص شعار بايويك، فقد ترغب أيضاً في إخفاء الرابط %s في القائمة العليا. لإجراء هذا، يمكنك تعطيل الملحق البرمجي \"التغذية الراجعة\" في صفحة %sإدارة الملحقات%s.",
+ "CustomLogoFeedbackInfo": "إذا قمت بتخصيص شعار بايويك، فقد ترغب أيضاً في إخفاء الرابط %1$s في القائمة العليا. لإجراء هذا، يمكنك تعطيل الملحق البرمجي \"التغذية الراجعة\" في صفحة %2$sإدارة الملحقات%3$s.",
"CustomLogoHelpText": "يمكنك تخصيص شعار بايويك والذي يتم عرضه في صفحة المستخدم والتقارير البريدية.",
"EmailServerSettings": "إعدادات ملقم البريد",
"ForBetaTestersOnly": "لمجربي نسخة بيتا فقط",
@@ -34,7 +34,7 @@
"OptOutComplete": "اكتمل إلغاء الاشتراك: لن يتم احتساب زياراتك لهذا الموقع بواسطة أدوات تحليلات ويب الخاصة بنا.",
"OptOutCompleteBis": "لاحظ أنك في حالة مسح الكوكيز Coockies، فإنك بذلك تحذف الكوكيز الخاصة بإلغاء الاشتراك، أو في حالة تغيير جهاز الكمبيوتر أو المتصفح، فستحتاج لإعادة هذا الإجراء مرة أخرى.",
"OptOutExplanation": "Piwik ملتزم بالخصوصية على الإنترنت. لمنح زوارك اختيار إلغاء الاشتراك في تحليلات ويب من Piwik، يمكنك إضافة كود HTML التالي على أحد صفحات موقعك. على سبيل المثال في صفحة سياسة الخصوصية.",
- "OptOutExplanationBis": "سيقوم هذا الكود بعرض iFrame يحتوي رابطاً لزوارك لإلغاء اشتراكهم في Piwik من خلال ضبط كوكيز في متصفحهم. %s انقر هنا %s لمشاهدة المحتويات التي سيتم عرضها في النافذة الفرعية iFrame.",
+ "OptOutExplanationBis": "سيقوم هذا الكود بعرض iFrame يحتوي رابطاً لزوارك لإلغاء اشتراكهم في Piwik من خلال ضبط كوكيز في متصفحهم. %1$s انقر هنا %2$s لمشاهدة المحتويات التي سيتم عرضها في النافذة الفرعية iFrame.",
"OptOutForYourVisitors": "إلغاء الاشتراك في Piwik لزوارك",
"PiwikIsInstalledAt": "بايويك مثبت في المسار",
"TrackAGoal": "تتبع هدف",
diff --git a/plugins/CoreAdminHome/lang/be.json b/plugins/CoreAdminHome/lang/be.json
index c05e785a9e..ec13b08ce5 100644
--- a/plugins/CoreAdminHome/lang/be.json
+++ b/plugins/CoreAdminHome/lang/be.json
@@ -4,7 +4,7 @@
"BrandingSettings": "Брэндынг наладкі",
"ClickHereToOptIn": "Націсніце тут, каб адмяніць адмову.",
"ClickHereToOptOut": "Націсніце тут, каб адмовіцца.",
- "CustomLogoFeedbackInfo": "Калі Вы наладзілі свой лагатып, магчыма вы будзіце зацікаўлены ў схаванні %s спасылкі у верхнім меню. Для гэтага, вы можаце адключыць плагін зваротнай сувязі на старонцы %sУпраўлення плагінамі%s.",
+ "CustomLogoFeedbackInfo": "Калі Вы наладзілі свой лагатып, магчыма вы будзіце зацікаўлены ў схаванні %1$s спасылкі у верхнім меню. Для гэтага, вы можаце адключыць плагін зваротнай сувязі на старонцы %2$sУпраўлення плагінамі%3$s.",
"CustomLogoHelpText": "Вы можаце наладзіць свой лагатып, які будзе адлюстроўвацца ў карыстацкім інтэрфейсе і ў справаздачах, якія атрымліваюць па электроннай пошце.",
"EmailServerSettings": "Наладкі сервера электроннай пошты",
"LogoUpload": "Выбраць лагатып для загрузкі",
@@ -12,7 +12,7 @@
"OptOutComplete": "Адмова завершана; вашы наведванні гэтага вэб-сайта не будуць запісаны інструментам Вэб-Аналітыкі.",
"OptOutCompleteBis": "Заўважце, што калі вы выдаляеце cookies, выдаляеце спецыяльны cookie для адмовы, змяняяце кампутары або вэб-браўзэры, вам трэба выканаць працэдуру адмовы зноў.",
"OptOutExplanation": "Piwik прысвечаны забеспячэнню канфідэнцыяльнасці ў Інтэрнэце. Каб прапанаваць сваім наведвальнікам адмовіцца ад Piwik Вэб-Аналітыкі, вы можаце дадаць наступны код на адной з старонак вашага сайта, напрыклад, на старонцы Палітыка прыватнасці.",
- "OptOutExplanationBis": "Гэты код будзе адлюстроўвацца як Айфрэйм, які будзе змяшчаць спасылку для вашых наведвальнікаў, каб адмовіцца ад Piwik з дапамогай усталявання спецыяльных cookie у браўзэрах. %s Націсніце тут %s, каб прагледзець змесціва, якое будзе адлюстроўвацца ў Айфрэйме.",
+ "OptOutExplanationBis": "Гэты код будзе адлюстроўвацца як Айфрэйм, які будзе змяшчаць спасылку для вашых наведвальнікаў, каб адмовіцца ад Piwik з дапамогай усталявання спецыяльных cookie у браўзэрах. %1$s Націсніце тут %2$s, каб прагледзець змесціва, якое будзе адлюстроўвацца ў Айфрэйме.",
"OptOutForYourVisitors": "Адмова ад Piwik для вашых наведвальнікаў",
"UseCustomLogo": "Выкарыстаць ўласны лагатып",
"YouAreOptedIn": "У дадзены момант Вы не адмоўлены.",
diff --git a/plugins/CoreAdminHome/lang/bg.json b/plugins/CoreAdminHome/lang/bg.json
index f576dc49ac..f2f8f94021 100644
--- a/plugins/CoreAdminHome/lang/bg.json
+++ b/plugins/CoreAdminHome/lang/bg.json
@@ -5,7 +5,7 @@
"BrandingSettings": "Настройки на бранда",
"ClickHereToOptIn": "Натиснете тук за съгласие.",
"ClickHereToOptOut": "Натиснете тук за отказ.",
- "CustomLogoFeedbackInfo": "Ако модифицирате Piwik логото, може също да пожелаете да скриете %s връзката в главното меню. За да направите това, можете да изключите добавката за обратна връзка в страницата %sУправление на добавки%s.",
+ "CustomLogoFeedbackInfo": "Ако модифицирате Piwik логото, може също да пожелаете да скриете %1$s връзката в главното меню. За да направите това, можете да изключите добавката за обратна връзка в страницата %2$sУправление на добавки%3$s.",
"CustomLogoHelpText": "Можете да модифицирате логото на Piwik, което да се показва в интерфейса на потребителя и имейлите с отчети.",
"EmailServerSettings": "Настройки сървър на е-поща",
"ForBetaTestersOnly": "Само за бета тестери",
@@ -19,7 +19,6 @@
"JavaScriptTracking": "JavaScript Проследяване",
"JSTracking_CampaignKwdParam": "Параметър ключова дума на кампанията",
"JSTracking_CampaignNameParam": "Параметър име на кампанията",
- "JSTracking_CodeNote": "Уверете се, че този код е на всяка една страница от вашия сайт преди %1$s таг.",
"JSTracking_CustomCampaignQueryParam": "Използвайте произволно име на параметър заявка за име и ключ на кампанията",
"JSTracking_CustomCampaignQueryParamDesc": "Забележка: %1$sPiwik автоматично ще засече Google Analytics параметрите.%2$s",
"JSTracking_DisableCookies": "Изключване на всички проследяващи бисквитки",
@@ -41,21 +40,21 @@
"JSTrackingIntro5": "В случай, че желаете да събирате повече информация за посещенията, моля, вижте %1$sPiwik Javascript Tracking документацията%2$s, за списък с наличните функции. Използвайки тези функции може да следите цели, персонализирани променливи, поръчки, изоставени колички и други.",
"LogoUpload": "Изберете логото за качване",
"FaviconUpload": "Изберете Favicon за качване",
- "LogoUploadHelp": "Моля, качете файла в %s формати с минимална височина %s пиксела.",
+ "LogoUploadHelp": "Моля, качете файла в %1$s формати с минимална височина %2$s пиксела.",
"MenuDiagnostic": "Диагностика",
"MenuGeneralSettings": "Основни настройки",
"MenuManage": "Управление",
"OptOutComplete": "Отказът е приет; вашите посещения в този уебсайт няма да бъдат записвани от Инструмента за Уеб анализ.",
"OptOutCompleteBis": "Запомнете, че ако изтриете вашите бисквитки или ако смените компютъра или уеб браузъра ще е нужно да направите процедурата за отказ отново.",
"OptOutExplanation": "Piwik е ангажиран с осигуряването на поверителност в Интернет. За да позволите на потребителите си да се откажат от Piwik Web Analytics, можете да добавите нужният HTML код в една от вашите уеб страници, например в раздела Поверителност.",
- "OptOutExplanationBis": "Този код ще ви покаже рамка, съдържаща връзка, чрез която вашите посетители могат да се откажат от Piwik, като поставят бисквитка в техните браузъри. %s Натиснете тук%s за да видите съдържанието, което ще бъде показано в рамката.",
+ "OptOutExplanationBis": "Този код ще ви покаже рамка, съдържаща връзка, чрез която вашите посетители могат да се откажат от Piwik, като поставят бисквитка в техните браузъри. %1$s Натиснете тук%2$s за да видите съдържанието, което ще бъде показано в рамката.",
"OptOutForYourVisitors": "Piwik отказ за вашите посетители",
"PiwikIsInstalledAt": "Piwik е инсталиран на",
- "PluginSettingChangeNotAllowed": "Не е позволено да се променя стойността за настройка \"%s\" в добавка \"%s\"",
+ "PluginSettingChangeNotAllowed": "Не е позволено да се променя стойността за настройка \"%1$s\" в добавка \"%2$s\"",
"PluginSettingsIntro": "Тук могат да се променят настройките за следните добавки от трети страни:",
- "PluginSettingsValueNotAllowed": "Стойността за поле \"%s\" за добавка \"%s\" не е позволена",
+ "PluginSettingsValueNotAllowed": "Стойността за поле \"%1$s\" за добавка \"%2$s\" не е позволена",
"SendPluginUpdateCommunicationHelp": "Ще бъде изпратено съобщение на привилигирован потребител когато е налична нова версия за добавка.",
- "StableReleases": "Ако Piwik е критично важен за вашият бизнес, използвайте последната стабилна версия. Ако използвате последна бета и откриете бъг или имате предложение, моля %sвижте тук%s.",
+ "StableReleases": "Ако Piwik е критично важен за вашият бизнес, използвайте последната стабилна версия. Ако използвате последна бета и откриете бъг или имате предложение, моля %1$sвижте тук%2$s.",
"TrackAGoal": "Проследяване на цел",
"TrackingCode": "Код за проследяване",
"TrustedHostConfirm": "Сигурен ли сте, че желаете да промените доверен Piwiki хост име",
diff --git a/plugins/CoreAdminHome/lang/ca.json b/plugins/CoreAdminHome/lang/ca.json
index bb318f8013..e1485eea7b 100644
--- a/plugins/CoreAdminHome/lang/ca.json
+++ b/plugins/CoreAdminHome/lang/ca.json
@@ -4,7 +4,7 @@
"BrandingSettings": "Preferències del Branding",
"ClickHereToOptIn": "Feu click aquí per apuntar-vos.",
"ClickHereToOptOut": "Feu click aquí per desapuntar-vos.",
- "CustomLogoFeedbackInfo": "Si heu personalitzat el log de Piwik, potser també estareu interesants en amagar %s l'enllaç al menú superior. Per a fer-ho, podeu deshabilitar l'extensió de Feedback a la pàgina %sManage Plugins%s",
+ "CustomLogoFeedbackInfo": "Si heu personalitzat el log de Piwik, potser també estareu interesants en amagar %1$s l'enllaç al menú superior. Per a fer-ho, podeu deshabilitar l'extensió de Feedback a la pàgina %2$sManage Plugins%3$s",
"CustomLogoHelpText": "Podeu personalitzar el logo de Piwik que es mostrarà a l'interfície d'usuari i als informes d'emails.",
"EmailServerSettings": "Configuració del servidor de correu",
"ImageTracking": "Seguiment per imatge",
@@ -20,7 +20,7 @@
"OptOutComplete": "Baixa complerta. Les teves visites en aquest lloc web no es tindrán en compte per l'eina d'anàlisis Web.",
"OptOutCompleteBis": "Teniu en compte que si borreu les cookies, borreu la cookie de baixa o si canvieu d'ordenador o de navegadaor web, haureu de tornar a realitzar el proces de baixa.",
"OptOutExplanation": "El Piwik es dedica a garantir la privacitat a Internet. Per permetres als vostres usuaris la possibilitat de donar-se de baixa del l'análisis web del Piwik, podeu afegir el següent codi HTML a una de les pàgiens del vostre lloc web, per exemple a la pàgina de política de privacitat.",
- "OptOutExplanationBis": "Aquest codi mostrarà un Iframe que conté un enllaç per a que els vostres visitants es puguin donar de baixa del Piwik. Aquest enllaç guarda un cookie al seus navegadors. %s Click here%s per veure el contingut que es mostrarà al Iframe.",
+ "OptOutExplanationBis": "Aquest codi mostrarà un Iframe que conté un enllaç per a que els vostres visitants es puguin donar de baixa del Piwik. Aquest enllaç guarda un cookie al seus navegadors. %1$s Click here%2$s per veure el contingut que es mostrarà al Iframe.",
"OptOutForYourVisitors": "Pàgina de baixa del Piwik pels vostres visitants",
"PiwikIsInstalledAt": "El Piwik està instal·lat a",
"TrustedHostConfirm": "Esteu segur que voleu canviar el nom nom de la màquina (hostname) de confiança del Piwik?",
diff --git a/plugins/CoreAdminHome/lang/cs.json b/plugins/CoreAdminHome/lang/cs.json
index 57836e1ade..23e133f082 100644
--- a/plugins/CoreAdminHome/lang/cs.json
+++ b/plugins/CoreAdminHome/lang/cs.json
@@ -7,10 +7,10 @@
"ReleaseChannel": "Kanál vydání",
"ClickHereToOptIn": "Klikněte zde pro přihlášení.",
"ClickHereToOptOut": "Klikněte zde pro vyloučení.",
- "CustomLogoFeedbackInfo": "Pokud přizpůsobíte logo Piwiku, možná by vás zajímalo, jak skrýt odkaz %s v horním menu, Pokud to chcete provést, zakažte plugin zpětné vazby na stránce %sSpravovat zásuvné moduly%s.",
- "CustomLogoHelpText": "Můžete přizpůsobit logo Piwiku, které bude zobrazeno v uživatelském rozhraní a v emailových hlášeních.",
- "DevelopmentProcess": "Přestože náš %sproces vývoje%s zahrnuje tisíce automatizovaných testů, beta testeři hrají klíčovou roli v naší politice nevýskytu chyb.",
- "EmailServerSettings": "Nastavení emailového serveru",
+ "CustomLogoFeedbackInfo": "Pokud přizpůsobíte logo Piwiku, možná by vás zajímalo, jak skrýt odkaz %1$s v horním menu, Pokud to chcete provést, zakažte plugin zpětné vazby na stránce %2$sSpravovat zásuvné moduly%3$s.",
+ "CustomLogoHelpText": "Můžete přizpůsobit logo Piwiku, které bude zobrazeno v uživatelském rozhraní a v e-mailových hlášeních.",
+ "DevelopmentProcess": "Přestože náš %1$sproces vývoje%2$s zahrnuje tisíce automatizovaných testů, beta testeři hrají klíčovou roli v naší politice nevýskytu chyb.",
+ "EmailServerSettings": "Nastavení e-mailového serveru",
"ForBetaTestersOnly": "Pouze pro beta testery",
"ImageTracking": "Sledování obrázkem",
"ImageTrackingIntro1": "Pokud má návštěvník vypnutý JavaScript nebo nemůže být JavaScript použit, můžete využít obrázku k měření a sledování Vaší návštěvnosti.",
@@ -24,7 +24,7 @@
"JavaScriptTracking": "Sledování javascriptem",
"JSTracking_CampaignKwdParam": "Klíčové slovo kampaně",
"JSTracking_CampaignNameParam": "Název kampaně",
- "JSTracking_CodeNote": "Ujistěte se, že je následující kód na každé stránce před tagem %1$s.",
+ "JSTracking_CodeNoteBeforeClosingHead": "Ujistěte se, že je následující kód na každé stránce vašeho webu. Doporučujeme ho vložit před uzavírací tag %1$s.",
"JSTracking_CustomCampaignQueryParam": "Pro jméno kampaně a klíčové slovo použít vlastní parametry dotazu",
"JSTracking_CustomCampaignQueryParamDesc": "Poznámka: %1$sPiwik automaticky detekuje parametry pro Google analitics.%2$s",
"JSTracking_DisableCookies": "Zakázat všechny sledovací cookies",
@@ -49,9 +49,10 @@
"JSTrackingIntro5": "Pokud chcete ne jen sledovat zobrazení stránek, podívejte se na %1$sdokumentaci javascriptového sledování%2$s, kde naleznete seznam dostupných funkcí. S použitím těchto funkcí můžete sledovat cíle, vlastní proměnné, objednávky v e-obchodech, opuštěné košíky a mnoho dalšího.",
"LogoNotWriteableInstruction": "Pokud chcete místo výcchozího loga použít vlastní, je nutné, abyste měli práva k zápisu adresáře %1$s. Piwik potřebuje práva k zápisu log umístěných v souborech %2$s.",
"FileUploadDisabled": "Nahrávání souborů je zakázáno v konfiguraci PHP. Pokud chcete nahrát svoje vlastní logo, nastavte %s v souboru php.ini a restartujte webový server.",
+ "LogoUploadFailed": "Nahraný soubor nemohl být zpracován. Ověřte prosím, že má nahraný soubor správný formát.",
"LogoUpload": "Vyberte logo, které chcete nahrát",
"FaviconUpload": "Vyberte favicon, kterou chcete nahrát",
- "LogoUploadHelp": "Prosím, nahrajte soubor v jednom z následujících formátů: %s, s minimální výškou %s pixelů.",
+ "LogoUploadHelp": "Prosím, nahrajte soubor v jednom z následujících formátů: %1$s, s minimální výškou %2$s pixelů.",
"MenuDiagnostic": "Diagnostika",
"MenuGeneralSettings": "Hlavní nastavení",
"MenuManage": "Správa",
@@ -59,20 +60,20 @@
"OptOutComplete": "Vyloučení hotovo. Vaše návštěvy nebudou sledovány nástrojem webové analýzy.",
"OptOutCompleteBis": "Poznámka: pokud smažete cookie, odstraníte vylučovací cookie nebo zmměníte počítač nebo prohlížeč, budete muset provést proceduru vyloučení znovu.",
"OptOutDntFound": "Nejste sledováni, protože váš prohlížeč hlásí, že si to nepřejete. Jedná se o nastavení prohlížeče, takže se nebudete moci přihlásit, dokud nezakážete funkci nesledovat.",
- "OptOutExplanation": "Piwik se zaměřuje na poskytování soukromí na internetu. Pokud chcete dát svým návštěvníkům možnost, aby byli vyloučeni z webové analýzy Piwikem, můžete na nějakou stránku (třeba stránku o soukromí) umístit následující HTML kód.",
- "OptOutExplanationBis": "Tento kód zobrazí iframe s odkazem, který nastaví u návštěvníka vynechávací cookie. %s Klikněte zde%s pro zobrazení obsahu iframe.",
+ "OptOutExplanation": "Piwik se zaměřuje na poskytování soukromí na internetu. Pokud chcete dát svým návštěvníkům možnost odhlásit se z webových analýz Piwikem, můžete na nějakou stránku (třeba stránku o soukromí) umístit následující HTML kód.",
+ "OptOutExplanationBis": "Tento kód zobrazí iframe s odkazem, který nastaví u návštěvníka vynechávací cookie. %1$s Klikněte zde%2$s pro zobrazení obsahu iframe.",
"OptOutForYourVisitors": "Piwik vyloučení pro Vaše návštěvníky",
"PiwikIsInstalledAt": "Piwik je nainstalován na",
"PersonalPluginSettings": "Osobní nastavení zásuvných modulů",
- "PluginSettingChangeNotAllowed": "Nemůžete změnit hodnotu volby %s zásuvného modulu \"%s\"",
- "PluginSettingReadNotAllowed": "Nemůžete číst hodnotu volby %s zásuvného modulu \"%s\"",
+ "PluginSettingChangeNotAllowed": "Nemůžete změnit hodnotu volby %1$s zásuvného modulu \"%2$s\"",
+ "PluginSettingReadNotAllowed": "Nemůžete číst hodnotu volby %1$s zásuvného modulu \"%2$s\"",
"PluginSettings": "Nastavení zásuvného modulu",
"PluginSettingsIntro": "Zde můžete změnit nastavení pro následující zásuvné moduly třetích stran:",
- "PluginSettingsValueNotAllowed": "Hodnota pro pole \"%s\" zásuvného modulu \"%s\" není povolena",
+ "PluginSettingsValueNotAllowed": "Hodnota pro pole \"%1$s\" zásuvného modulu \"%2$s\" není povolena",
"PluginSettingsSaveFailed": "Nepodařilo se uložit nastavení zásuvného modulu",
- "SendPluginUpdateCommunication": "Pokud bude k dispozici aktualizace pluginu, odeslat email.",
- "SendPluginUpdateCommunicationHelp": "Super uživatelům bude odeslán email, pokud bude k dispozici aktualizace zásuvného modulu.",
- "StableReleases": "Piwik je důležitý nástroj pro měření, doporučujeme vždy používat nejnovější vydání. Pokud používáte nejnovější beta verzi a našli jste chyby, prosíme o jejich nahlášení %spřímo zde %s.",
+ "SendPluginUpdateCommunication": "Pokud bude k dispozici aktualizace pluginu, odeslat e-mail.",
+ "SendPluginUpdateCommunicationHelp": "Super-uživatelům bude odeslán e-mail, pokud bude k dispozici aktualizace zásuvného modulu.",
+ "StableReleases": "Piwik je důležitý nástroj pro měření, doporučujeme vždy používat nejnovější vydání. Pokud používáte nejnovější beta verzi a našli jste chyby, prosíme o jejich nahlášení %1$spřímo zde %2$s.",
"LtsReleases": "LTS (verze s dlouhodobou podporou) dostávají pouze bezpečnostní a jiné opravy chyb.",
"SystemPluginSettings": "Systémová nastavení zásuvných modulů",
"TrackAGoal": "Sledovat cíl",
@@ -85,10 +86,10 @@
"WithOptionalRevenue": "s volitelným příjmem",
"YouAreOptedIn": "Aktuálně nejste vyloučen.",
"YouAreOptedOut": "Aktuálně jste vyloučeni.",
- "YouMayOptOut": "Zde se můžete zakázat uložení cookie s identifikačním číslem přiděleným vašemu počítači a tím zamezit provozovateli této webové stránky shromažďovat a analyzovat statistické údaje.",
+ "YouMayOptOut": "Zde se můžete zakázat uložení cookie s identifikačním číslem přiděleným vašemu počítači a tím zamezit provozovateli tohoto webu shromažďovat a analyzovat statistické údaje.",
"YouMayOptOutBis": "Pokud jste se rozhodli že ne, klikněte na přiložený odkaz pro uložení deaktivačního cookie ve svém prohlížeči.",
"OptingYouOut": "Vylučování, prosím čekejte...",
"ProtocolNotDetectedCorrectly": "Nyní si prohlížíte Piwik zabezpečeným SSL spojením za použití HTTPS, ale Piwik na serveru detekoval pouze nezabezpečené připojení.",
- "ProtocolNotDetectedCorrectlySolution": "Abyste zajistili, že bude Piwik získávat a poskytovat obsah přes bezpečné HTTPS spojení, můžete upravit váš soubor %s a buď nastavit proxy, nebo přidat řádek %s pod sekci %s. %sDozvědět se více%s"
+ "ProtocolNotDetectedCorrectlySolution": "Abyste zajistili, že bude Piwik získávat a poskytovat obsah přes bezpečné HTTPS spojení, můžete upravit váš soubor %1$s a buď nastavit proxy, nebo přidat řádek %2$s pod sekci %3$s. %4$sDozvědět se více%5$s"
}
} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/da.json b/plugins/CoreAdminHome/lang/da.json
index d7ae0759d0..21619f6dc1 100644
--- a/plugins/CoreAdminHome/lang/da.json
+++ b/plugins/CoreAdminHome/lang/da.json
@@ -5,9 +5,9 @@
"BrandingSettings": "Branding indstillinger",
"ClickHereToOptIn": "Klik her for at vælge.",
"ClickHereToOptOut": "Klik her for at fravælge.",
- "CustomLogoFeedbackInfo": "Hvis du tilpasser Piwik logoet, kan du også være interesseret i at skjule %s linket i topmenuen. For at gøre dette, kan du deaktivere tilbagemeldingsmodulet på %sUdvidelsesmodul administration%s siden.",
+ "CustomLogoFeedbackInfo": "Hvis du tilpasser Piwik logoet, kan du også være interesseret i at skjule %1$s linket i topmenuen. For at gøre dette, kan du deaktivere tilbagemeldingsmodulet på %2$sUdvidelsesmodul administration%3$s siden.",
"CustomLogoHelpText": "Du kan tilpasse Piwik logo, der bliver vist i brugergrænsefladen og e-mail rapporter.",
- "DevelopmentProcess": "Mens vores%s udviklingsproces%s omfatter tusindvis af automatiske tests, spiller betatestere en nøglerolle i at opnå \"ingen fejl politikken\" i Piwik.",
+ "DevelopmentProcess": "Mens vores %1$sudviklingsproces%2$s omfatter tusindvis af automatiske tests, spiller betatestere en nøglerolle i at opnå \"ingen fejl politikken\" i Piwik.",
"EmailServerSettings": "E-mail-server indstillinger",
"ForBetaTestersOnly": "Kun for beta testere",
"ImageTracking": "Sporing vha. et billede",
@@ -22,7 +22,6 @@
"JavaScriptTracking": "Sporing med JavaScript",
"JSTracking_CampaignKwdParam": "Kampagne nøgleord parameter",
"JSTracking_CampaignNameParam": "Kampagnenavn parameter",
- "JSTracking_CodeNote": "Sørg for, at koden er på hver side af hjemmesiden, før %1$s tag.",
"JSTracking_CustomCampaignQueryParam": "Brug brugerdefineret forespørgsel parameternavne for kampagnenavnet & søgeord",
"JSTracking_CustomCampaignQueryParamDesc": "Note: %1$sPiwik registrerer automatisk Google Analytics parametre.%2$s",
"JSTracking_DisableCookies": "Deaktivere alle sporingscookies",
@@ -49,7 +48,7 @@
"FileUploadDisabled": "Overførelse af filer er ikke aktiveret i PHP-konfiguration. For at overføre dit brugerdefinerede logo skal du indstille %s i php.ini og genstarte webserveren.",
"LogoUpload": "Vælg et logo til overførelse",
"FaviconUpload": "Vælg Favicon til overførelse",
- "LogoUploadHelp": "Overfør en fil i %s formater med en højde på mindst %s pixels.",
+ "LogoUploadHelp": "Overfør en fil i %1$s formater med en højde på mindst %2$s pixels.",
"MenuDiagnostic": "Diagnosticering",
"MenuGeneralSettings": "Generelle indstillinger",
"MenuManage": "Administrere",
@@ -58,18 +57,18 @@
"OptOutCompleteBis": "Bemærk, at hvis du sletter dine cookies, sletter opt-out-cookien, eller hvis du skifter computer eller browser, skal du udføre opt-out-proceduren igen.",
"OptOutDntFound": "Sporing er ikke aktiv, fordi din browser har meddelt, at du ikke vil spores. Det er en browser indstilling. For at begynde at sporing igen, skal du deaktivere den såkaldte \"Do Not Track\" indstillingen i dine browserindstillinger.",
"OptOutExplanation": "Piwik er dedikeret til at værne om personlige oplysninger på internettet. For at give dine besøgende valgmulighed for at framelde Piwik Web Analyse, kan du tilføje den følgende HTML-kode på en af dine hjemmesider, f. eks. på en fortrolighedspolitik side.",
- "OptOutExplanationBis": "Koden vil vise en Iframe, der indeholder et link til dine besøgende til at framelde Piwik ved at sætte en opt out-cookie i browseren. %sKlik her%s for at få vist indholdet af iFramen.",
+ "OptOutExplanationBis": "Koden vil vise en Iframe, der indeholder et link til dine besøgende til at framelde Piwik ved at sætte en opt out-cookie i browseren. %1$sKlik her%2$s for at få vist indholdet af iFramen.",
"OptOutForYourVisitors": "Piwik opt-out for dine besøgende",
"PiwikIsInstalledAt": "Piwik er installeret på",
"PersonalPluginSettings": "Personlige indstillinger for udvidelsesmoduler",
- "PluginSettingChangeNotAllowed": "Du må ikke ændre værdien \"%s\" i udvidelse \"%s\"",
- "PluginSettingReadNotAllowed": "Du har ikke tilladelse til at læse værdien af ​​indstillingen \"%s\" i udvidelsen \"%s\"",
+ "PluginSettingChangeNotAllowed": "Du må ikke ændre værdien \"%1$s\" i udvidelse \"%2$s\"",
+ "PluginSettingReadNotAllowed": "Du har ikke tilladelse til at læse værdien af ​​indstillingen \"%1$s\" i udvidelsen \"%2$s\"",
"PluginSettings": "Programudvidelses indstilinger",
"PluginSettingsIntro": "Her kan du ændre indstillingerne for følgende 3. parts udvidelsesmoduler:",
- "PluginSettingsValueNotAllowed": "Værdien for feltet \"%s\" i udvidelsen \"%s\" er ikke tilladt",
+ "PluginSettingsValueNotAllowed": "Værdien for feltet \"%1$s\" i udvidelsen \"%2$s\" er ikke tilladt",
"PluginSettingsSaveFailed": "Kunne ikke gemme udvidelsesmodul indstillinger",
"SendPluginUpdateCommunicationHelp": "En e-mail vil blive sendt til Superbrugere, når der er en ny version tilgængelig for denne programudvidelse.",
- "StableReleases": "Hvis Piwik er en kritisk del af virksomheden, anbefaler vi at man bruger den nyeste stabile udgave. Hvis man bruger den nyeste beta, og finder en fejl eller har et forslag, %sse her%s.",
+ "StableReleases": "Hvis Piwik er en kritisk del af virksomheden, anbefaler vi at man bruger den nyeste stabile udgave. Hvis man bruger den nyeste beta, og finder en fejl eller har et forslag, %1$sse her%2$s.",
"SystemPluginSettings": "Indstillinger for system udvidelsesmoduler",
"TrackAGoal": "Spor et mål",
"TrackingCode": "Sporingskode",
diff --git a/plugins/CoreAdminHome/lang/de.json b/plugins/CoreAdminHome/lang/de.json
index 6c1d6681ac..89bfcdb50c 100644
--- a/plugins/CoreAdminHome/lang/de.json
+++ b/plugins/CoreAdminHome/lang/de.json
@@ -7,9 +7,9 @@
"ReleaseChannel": "Release Kanal",
"ClickHereToOptIn": "Klicken Sie hier, um Ihren Besuch wieder erfassen zu lassen.",
"ClickHereToOptOut": "Klicken Sie hier, damit Ihr Besuch nicht mehr erfasst wird.",
- "CustomLogoFeedbackInfo": "Wenn Sie das Piwik-Logo anpassen, ist sicher auch das Verstecken des %s-Links in der Navigation von Interesse. Bitte dazu das Feedback Plugin auf der %sManage Plugins%s Seite deaktivieren.",
+ "CustomLogoFeedbackInfo": "Wenn Sie das Piwik-Logo anpassen, ist sicher auch das Verstecken des %1$s-Links in der Navigation von Interesse. Bitte dazu das Feedback Plugin auf der %2$sPlugins verwalten%3$s Seite deaktivieren.",
"CustomLogoHelpText": "Hier kann das Piwik-Logo angepasst werden, das in der Benutzeroberfläche sowie in E-Mail-Berichten verwendet wird.",
- "DevelopmentProcess": "Auch wenn unser %sEntwicklungsprozess%s tausende an automatisierten Tests beinhaltet, haben Beta-Tester eine Schlüsselrolle um die \"No Bug Policy\" in Piwik zu gewährleisten.",
+ "DevelopmentProcess": "Auch wenn unser %1$sEntwicklungsprozess%2$s tausende an automatisierten Tests beinhaltet, haben Beta-Tester eine Schlüsselrolle um die \"No Bug Policy\" in Piwik zu gewährleisten.",
"EmailServerSettings": "E-Mail-Server-Einstellungen",
"ForBetaTestersOnly": "Nur für Beta-Tester",
"ImageTracking": "Tracking mit Hilfe eines Bildes",
@@ -24,7 +24,6 @@
"JavaScriptTracking": "Tracking mit JavaScript",
"JSTracking_CampaignKwdParam": "Kampagnen Suchbegriff Parameter",
"JSTracking_CampaignNameParam": "Parameter für Kampagnenname",
- "JSTracking_CodeNote": "Stellen Sie sicher, dass sich dieser Code auf jeder Seite Ihrer Website vor dem %1$s Tag befindet.",
"JSTracking_CustomCampaignQueryParam": "Eigene Anfrage-Parameter für Kampagnen Name & Suchbegriff verwenden",
"JSTracking_CustomCampaignQueryParamDesc": "Hinweis: %1$sPiwik erkennt Parameter von Google Analytics automatisch.%2$s",
"JSTracking_DisableCookies": "Alle Tracking Cookies deaktivieren",
@@ -49,9 +48,10 @@
"JSTrackingIntro5": "Sollte Sie mehr als nur Seitenaufrufe aufzeichnen wollen, werfen Sie einen Blick in die %1$sPiwik Javascript Tracking Dokumentation%2$s für eine Liste an verfügbaren Funktionen. Mit der Verwendung dieser Funktionen können Sie Ziele, benutzerdefinierte Variablen, Ecommerce Bestellungen, verlassene Warenkörbe und mehr aufzeichnen.",
"LogoNotWriteableInstruction": "Um Ihr eigenes Logo anstelle des Piwik Logos verwenden zu können werden Schreibrechte auf diesen Ordner benötigt: %1$s Piwik benötigt Schreibzugriff auf Ihre Logos die gespeichert sind in %2$s.",
"FileUploadDisabled": "Das Hochladen von Dateien ist in Ihrer PHP-Konfiguration nicht aktiviert. Um Ihr eigenes Logo hochladen zu können setzen Sie bitte %s in Ihrer php.ini und starten Sie den Webserver neu.",
+ "LogoUploadFailed": "Die hochgeladene Datei konnte nicht verarbeitet werden. Bitte überprüfen Sie ob die Datei ein gültiges Format hat.",
"LogoUpload": "Wählen Sie ein Logo für den Upload",
"FaviconUpload": "Wählen Sie ein Favicon für den Upload aus",
- "LogoUploadHelp": "Bitte laden Sie eine Datei in den Formaten %s mit einer minimalen Höhe von %s Pixeln hoch.",
+ "LogoUploadHelp": "Bitte laden Sie eine Datei in den Formaten %1$s mit einer minimalen Höhe von %2$s Pixeln hoch.",
"MenuDiagnostic": "Diagnose",
"MenuGeneralSettings": "Allgemeine Einstellungen",
"MenuManage": "Verwalten",
@@ -60,19 +60,19 @@
"OptOutCompleteBis": "Bitte beachten Sie, dass auch der Piwik-Deaktivierungs-Cookie dieser Website gelöscht wird, wenn Sie die in Ihrem Browser abgelegten Cookies entfernen. Außerdem müssen Sie, wenn Sie einen anderen Computer oder einen anderen Webbrowser verwenden, die Deaktivierungsprozedur nochmals absolvieren.",
"OptOutDntFound": "Das Tracking ist bei Ihnen derzeit nicht aktiv, denn Ihr Browser hat uns mitgeteilt, dass Sie kein Tracking wünschen. Hierbei handelt es sich um eine Browsereinstellung. Um das Tracking wieder zu aktivieren, müssen Sie die sogenannte \"Do Not Track\"-Einstellung in Ihren Browsereinstellungen deaktivieren.",
"OptOutExplanation": "Piwik ist es wichtig, die Privatsphäre Ihrer Besucher zu wahren. Fügen Sie den folgenden HTML-Code auf einer Seite Ihrer Website (z.B der Datenschutz-Seite) ein, um den Besuchern Ihrer Website die Möglichkeit zu geben, sich gegen eine Erfassung ihres Besuches durch Piwik zu entscheiden.",
- "OptOutExplanationBis": "Dieser Code wird innerhalb eines Iframes angezeigt und enthält einen Link, über den ein Cookie im Browser Ihrer Besucher abgelegt wird, womit die Erfassung durch Piwik deaktiviert wird. %s Klicken Sie hier%s, um eine Vorschau auf den Text zu bekommen, der den Besuchern in dem Iframe angezeigt wird.",
+ "OptOutExplanationBis": "Dieser Code wird innerhalb eines Iframes angezeigt und enthält einen Link, über den ein Cookie im Browser Ihrer Besucher abgelegt wird, womit die Erfassung durch Piwik deaktiviert wird. %1$s Klicken Sie hier%2$s, um eine Vorschau auf den Text zu bekommen, der den Besuchern in dem Iframe angezeigt wird.",
"OptOutForYourVisitors": "Piwik-Deaktivierung für Ihre Besucher",
"PiwikIsInstalledAt": "Piwik ist installiert unter",
"PersonalPluginSettings": "Persönliche Plugin Einstellungen",
- "PluginSettingChangeNotAllowed": "Sie sind nicht berechtigt den Wert für die Einstellung \"%s\" im Plugin \"%s\" zu ändern.",
- "PluginSettingReadNotAllowed": "Sie haben keine Berechtigung den Wert der Einstellung \"%s\" für das Plugin \"%s\" auszulesen.",
+ "PluginSettingChangeNotAllowed": "Sie sind nicht berechtigt den Wert für die Einstellung \"%1$s\" im Plugin \"%2$s\" zu ändern.",
+ "PluginSettingReadNotAllowed": "Sie haben keine Berechtigung den Wert der Einstellung \"%1$s\" für das Plugin \"%2$s\" auszulesen.",
"PluginSettings": "Plugin Einstellungen",
"PluginSettingsIntro": "Hier können Sie die Einstellungen für folgende Drittanbieter Plugins ändern:",
- "PluginSettingsValueNotAllowed": "Der Wert für die Einstellung \"%s\" im Plugin \"%s\" ist nicht erlaubt.",
+ "PluginSettingsValueNotAllowed": "Der Wert für die Einstellung \"%1$s\" im Plugin \"%2$s\" ist nicht erlaubt.",
"PluginSettingsSaveFailed": "Speichern der Plugin-Einstellungen fehlgeschlagen.",
"SendPluginUpdateCommunication": "Sende mir eine E-Mail wenn eine neue Plugin-Aktualisierung zur Verfügung steht",
"SendPluginUpdateCommunicationHelp": "Der Hauptadministrator wird per E-Mail benachrichtigt, sobald eine neue Version eines Plugins zur Verfügung steht.",
- "StableReleases": "Sollte Piwik eine wichtige Komponente Ihres Unternehmens sein, empfehlen wir Ihnen den letzen stabilen Release zu verwenden. Sollten Sie die letze Beta Version verwenden und einen Fehler finden oder einen Vorschlag haben, %slesen Sie bitte hier%s.",
+ "StableReleases": "Sollte Piwik eine wichtige Komponente Ihres Unternehmens sein, empfehlen wir Ihnen den letzen stabilen Release zu verwenden. Sollten Sie die letze Beta Version verwenden und einen Fehler finden oder einen Vorschlag haben, %1$slesen Sie bitte hier%2$s.",
"LtsReleases": "LTS (Long Term Support \/ Langzeit Support) Versionen erhalten nur Sicherheitsupdates und Bug Fixe.",
"SystemPluginSettings": "Globale Plugin Einstellungen",
"TrackAGoal": "Ein Ziel aufzeichnen",
@@ -87,6 +87,7 @@
"YouAreOptedOut": "Ihr Besuch dieser Website wird aktuell von der Piwik Webanalyse nicht erfasst.",
"YouMayOptOut": "Sie können sich hier entscheiden, ob in Ihrem Browser ein eindeutiger Webanalyse-Cookie abgelegt werden darf, um dem Betreiber der Website die Erfassung und Analyse verschiedener statistischer Daten zu ermöglichen.",
"YouMayOptOutBis": "Wenn Sie sich dagegen entscheiden möchten, klicken Sie den folgenden Link, um den Piwik-Deaktivierungs-Cookie in Ihrem Browser abzulegen.",
- "OptingYouOut": "Deaktivierung wird durchgeführt, bitte warten..."
+ "OptingYouOut": "Deaktivierung wird durchgeführt, bitte warten...",
+ "ProtocolNotDetectedCorrectly": "Sie betrachten Piwik momentan über eine sichere SSL-Verbindung (mittels HTTPS), aber Piwik konnte auf dem Server nur eine nicht sichere Verbindung feststellen."
}
} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/el.json b/plugins/CoreAdminHome/lang/el.json
index d75db959fa..f20cd02fb7 100644
--- a/plugins/CoreAdminHome/lang/el.json
+++ b/plugins/CoreAdminHome/lang/el.json
@@ -7,9 +7,9 @@
"ReleaseChannel": "Κανάλι εκδόσεων",
"ClickHereToOptIn": "Πατήστε εδώ για να καταγράφεστε",
"ClickHereToOptOut": "Πατήστε εδώ για να μην καταγράφεστε",
- "CustomLogoFeedbackInfo": "Αν προσαρμόσετε το λογότυπο του Piwik, ίσως θέλετε να αποκρύψετε τον σύνδεσμο %s στο βασικό μενού. Για να το κάνετε αυτό, μπορείτε να απενεργοποιήσετε το πρόσθετο Feedback στη σελίδα %sΔιαχείρισης Προσθέτων%s.",
+ "CustomLogoFeedbackInfo": "Αν προσαρμόσετε το λογότυπο του Piwik, ίσως θέλετε να αποκρύψετε τον σύνδεσμο %1$s στο βασικό μενού. Για να το κάνετε αυτό, μπορείτε να απενεργοποιήσετε το πρόσθετο Feedback στη σελίδα %2$sΔιαχείρισης Προσθέτων%3$s.",
"CustomLogoHelpText": "Μπορείτε να προσαρμόσετε το λογότυπο του Piwik που θα εμφανίζεται στο περιβάλλον εργασίας του χρήστη και στις αναφορές αλληλογραφίας.",
- "DevelopmentProcess": "Παρόλο που η %sδιαδικασία μας ανάπτυξης%s περιλαμβάνει χιλιάδες αυτοματοποιημένων ελέγχων, οι χρήστες δοκιμαστές παίζουν ένα κύριο ρόλο στο να πετύχουμε την \"Χωρίς σφάλματα πολιτική\" του Piwik.",
+ "DevelopmentProcess": "Παρόλο που η %1$sδιαδικασία μας ανάπτυξης%2$s περιλαμβάνει χιλιάδες αυτοματοποιημένων ελέγχων, οι χρήστες δοκιμαστές παίζουν ένα κύριο ρόλο στο να πετύχουμε την \"Χωρίς σφάλματα πολιτική\" του Piwik.",
"EmailServerSettings": "Ρυθμίσεις διακομιστή ηλεκτρονικής αλληλογραφίας",
"ForBetaTestersOnly": "Για χρήστες δοκιμαστές μόνο",
"ImageTracking": "Παρακολούθηση Εικόνων",
@@ -24,7 +24,7 @@
"JavaScriptTracking": "Παρακολούθηση με JavaScript",
"JSTracking_CampaignKwdParam": "Παράμετρος Κλειδιού Καμπάνιας",
"JSTracking_CampaignNameParam": "Παράμετρος Όνομα Καμπάνιας",
- "JSTracking_CodeNote": "Βεβαιωθείτε ότι ο κώδικας αυτός είναι σε κάθε σελίδα της ιστοσελίδας σας πριν από την ετικέτα %1$s.",
+ "JSTracking_CodeNoteBeforeClosingHead": "Βεβαιωθείτε ότι ο κώδικας αυτός υπάρχει σε κάθε σελίδα του ιστοτόπου σας. Προτείνεται να τον επικολλήσετε προτού κλείσει η σήμανση %1$s.",
"JSTracking_CustomCampaignQueryParam": "Χρήση προσαρμοσμένων ονομάτων παραμέτρων αναζητήσεων για το όνομα της καμπάνιας και τις λέξεις-κλειδιά",
"JSTracking_CustomCampaignQueryParamDesc": "Σημείωση: %1$sΤο Piwik θα ανιχνεύσει αυτόματα τις παραμέτρους του Google Analytics.%2$s",
"JSTracking_DisableCookies": "Απενεργοποίηση όλων των cookies παρακολούθησης",
@@ -49,9 +49,10 @@
"JSTrackingIntro5": "Αν θέλετε να κάνετε περισσότερα από να παρακολουθείτε προβολές σελίδων, παρακαλώ ελέγξτε το %1$sΤεκμηρίωση Piwik για Παρακολούθηση με Javascript%2$s για να δείτε τη λίστα με τις διαθέσιμες λειτουργίες. Χρησιμοποιώντας αυτές τις λειτουργίες, μπορείτε να παρακολουθείτε τους στόχους, προσαρμοσμένες μεταβλητές, παραγγελίες ηλεκτρονικού εμπορίου, εγκαταλελειμμένα καλάθια αγορών και πολλά άλλα.",
"LogoNotWriteableInstruction": "Για να χρησιμοποιήσετε το δικό σας λογότυπο αντί του προκαθορισμένου του Piwik, δώστε δικαίωμα εγγραφής σε αυτό τον κατάλογο: %1$s Το Piwik πρέπει να έχει δικαίωμα εγγραφής στα λογότυπά σας που είναι αποθηκευμένα στα αρχεία %2$s.",
"FileUploadDisabled": "Το ανέβασμα των αρχείων δεν είναι ενεργοποιημένο στην παραμετροποίηση της PHP. Για να ανεβάσετε το δικό σας λογότυπο ορίστε το %s στο αρχείο php.ini και κάντε επανεκκίνηση τον διακομιστή ιστού σας.",
+ "LogoUploadFailed": "Δεν ήταν δυνατή η επεξεργασία του αρχείου που ανεβάσατε. Παρακαλώ ελέγξτε αν είναι σε σωστή μορφή.",
"LogoUpload": "Επιλέξτε ένα Λογότυπο για αποστολή",
"FaviconUpload": "Επιλέξτε ένα favicon για ανέβασμα",
- "LogoUploadHelp": "Παρακαλούμε ανεβάστε ένα αρχείο σε μορφή %s με ελάχιστο ύψος %s pixel.",
+ "LogoUploadHelp": "Παρακαλώ ανεβάστε ένα αρχείο σε %1$s μορφή με ελάχιστο ύψος %2$s pixel.",
"MenuDiagnostic": "Διαγνωστικά",
"MenuGeneralSettings": "Γενικές ρυθμίσεις",
"MenuManage": "Διαχείριση",
@@ -60,19 +61,19 @@
"OptOutCompleteBis": "Σημειώστε ότι αν εκκαθαρίσετε τα cookies σας ή διαγράψετε το cookie απενεργοποιήσης ή αλλάξετε υπολογιστές ή φυλλομετρητές Ιστού, θα χρειαστεί να επαναλάβετε ξανά την διαδικασία απενεργοποιήσης.",
"OptOutDntFound": "Δεν παρακολουθήστε αυτή τη στιγμή επειδή το πρόγραμμα πλοήγησής σας δίνει οδηγία να μην είστε υπό παρακολούθηση. Αυτό αποτελεί ρύθμιση στο πρόγραμμα πλοήγησης έτσι ώστε να μην συμπεριλαμβάνεστε στην παρακολούθηση εκτός αν απενεργοποιήσετε το χαρακτηριστικό 'Όχι παρακολούθηση'.",
"OptOutExplanation": "Το Piwik είναι αφοσιωμένο στην προστασία του ιδιωτικού απορρήτου στο Διαδίκτυο. Για να παρέχετε την δυνατότητα απενεργοποίησης των στατιστικών ιστού του Piwik στους επισκέπτες σας, μπορείτε να προσθέσετε τον ακόλουθο κώδικα σε μια από τις ιστοσελίδες σας, για παράδειγμα στη σελίδα Ιδιωτικού Απορρήτου.",
- "OptOutExplanationBis": "Αυτός ο κώδικας θα εμφανίσει ένα πλαίσιο (iframe) που θα περιέχει έναν σύνδεσμο για τους επισκέπτες σας για να απενεργοποιήσουν το Piwik ορίζοντας ένα cookie απενεργοποίησης στους φυλλομετρητές τους. %sΠατήστε εδώ%s για να δείτε τα περιεχόμενα που θα εμφανίζονται στο πλαίσιο.",
+ "OptOutExplanationBis": "Ο κώδικας αυτός θα εμφανίσει ένα iFrame που θα περιέχει ένα σύνδεσμο ώστε οι επισκέπτες να μπορούν να επιλέξουν να μην παρακολουθούνται από το PIwik θέτοντας ένα cookie στα προγράμματα πλοήγησής τους. %1$sΚάντε κλικ εδώ%2$s για να δείτε το περιεχόμενο που θα εμφανίζεται από το iFrame.",
"OptOutForYourVisitors": "Απενεργοποίηση του Piwik για τους επισκέπτες σας",
"PiwikIsInstalledAt": "Το Piwik εγκαταστάθηκε στο",
"PersonalPluginSettings": "Προσωπικές Ρυθμίσεις Πρόσθετου",
- "PluginSettingChangeNotAllowed": "Δεν επιτρέπεται να αλλάξετε την τιμή της ρύθμισης \"%s\" στο πρόσθετο \"%s\"",
- "PluginSettingReadNotAllowed": "Απαγορεύεται να δείτε την τιμή της ρύθμισης \"%s\" στο πρόσθετο \"%s\"",
+ "PluginSettingChangeNotAllowed": "Δεν επιτρέπεται να αλλάξετε την τιμή της ρύθμισης \"%1$s\" στο πρόσθετο \"%2$s\"",
+ "PluginSettingReadNotAllowed": "Δεν επιτρέπεται να δείτε την τιμή της ρύθμισης \"%1$s\" στο πρόσθετο \"%2$s\"",
"PluginSettings": "Ρυθμίσεις πρόσθετου",
"PluginSettingsIntro": "Εδώ μπορείτε να αλλάξετε τις ρυθμίσεις των παρακάτω πρόσθετων από τρίτους:",
- "PluginSettingsValueNotAllowed": "Η τιμή για το πεδίο \"%s\" στο πρόσθετο \"%s\" δεν είναι επιτρεπτή",
+ "PluginSettingsValueNotAllowed": "Η τιμή για το πεδίο \"%1$s\" στο πρόσθετο \"%2$s\" δεν είναι επιτρεπτή.",
"PluginSettingsSaveFailed": "Υπήρξε αποτυχία κατά την αποθήκευση των ρυθμίσεων των πρόσθετων",
"SendPluginUpdateCommunication": "Αποστολή e-mail όταν υπάρχει διαθέσιμη ενημέρωση για ένα πρόσθετο",
"SendPluginUpdateCommunicationHelp": "Ένα e-mail θα στέλνεται στους Υπερ-Χρήστες όταν θα υπάρχει διαθέσιμη νέα έκδοση για ένα πρόσθετο.",
- "StableReleases": "Αν το Piwik αποτελεί ένα κρίσιμο μέρος της επιχείρησής σας, προτείνουμε να χρησιμοποιείτε την τελευταία σταθερή έκδοση. Αν χρησιμοποιείτε την τελευταία δοκιμαστική έκδοση και βρείτε κάποιο σφάλμα ή έχετε κάποια πρόταση, παρακαλούμε %sδείτε εδώ%s.",
+ "StableReleases": "Αν το Piwik αποτελεί ένα κρίσιμο κομμάτι της επιχείρησής σας, συνιστούμε να χρησιμοποιείτε την τελευταία σταθερή έκδοση. Αν χρησιμοποιείτε την τελευταία δοκιμαστική έκδοση και βρείτε ένα σφάλμα ή έχετε να κάνετε μια πρόταση, παρακαλώ %1$sδείτε εδώ%2$s.",
"LtsReleases": "Οι Εκδόσεις με Μακρά Υποστήριξη (Long Term Support) λαμβάνουν μόνο ενημερώσεις ασφαλείας και σφαλμάτων.",
"SystemPluginSettings": "Ρυθμίσεις Συστήματος Πρόσθετου",
"TrackAGoal": "Παρακολούθηση ενός στόχου",
@@ -89,6 +90,6 @@
"YouMayOptOutBis": "Για να κάνετε αυτή την επιλογή, πατήστε παρακάτω για να λάβετε ένα cookie απενεργοποιήσης.",
"OptingYouOut": "Συμπερίληψη εκτός λίστας, παρακαλώ περιμένετε...",
"ProtocolNotDetectedCorrectly": "Αυτή τη στιγμή χρησιμοποιείτε το Piwik πάνω από ασφαλή σύνδεση (με χρήση https), αλλά το Piwik εντοπίζει μόνο μη ασφαλή σύνδεση στον διακομιστή αυτό.",
- "ProtocolNotDetectedCorrectlySolution": "Για να βεβαιωθείτε ότι το Piwik κάνει αιτήσεις και εξυπηρετεί το περιεχόμενο πάνω από HTTPS, μπορείτε να τροποποιήσετε το αρχείο %s και να παραμετροποιήσετε τις ρυθμίσεις του διαμεσολαβητή ή να προσθέσετε την %s κάτω από το τμήμα %s. %sΔείτε περισσότερα%s"
+ "ProtocolNotDetectedCorrectlySolution": "Για να βεβαιωθείτε ότι το Piwik εξυπηρετεί και στέλνει το περιεχόμενό σας με ασφαλή τρόπο μέσω HTTPS, επεξεργαστείτε το αρχείο %1$s και ορίστε είτε τις ρυθμίσεις διαμεσολαβητή, ή προσθέστε την γραμμή %2$s κάτω από το τμήμα %3$s. %4$sΔείτε περισσότερα%5$s"
}
} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/en.json b/plugins/CoreAdminHome/lang/en.json
index 5be7675fb9..4a87945661 100644
--- a/plugins/CoreAdminHome/lang/en.json
+++ b/plugins/CoreAdminHome/lang/en.json
@@ -7,9 +7,9 @@
"ReleaseChannel": "Release channel",
"ClickHereToOptIn": "Click here to opt in.",
"ClickHereToOptOut": "Click here to opt out.",
- "CustomLogoFeedbackInfo": "If you customize the Piwik logo, you might also be interested to hide the %s link in the top menu. To do so, you can disable the Feedback plugin in the %sManage Plugins%s page.",
+ "CustomLogoFeedbackInfo": "If you customize the Piwik logo, you might also be interested to hide the %1$s link in the top menu. To do so, you can disable the Feedback plugin in the %2$sManage Plugins%3$s page.",
"CustomLogoHelpText": "You can customize the Piwik logo which will be displayed in the user interface and email reports.",
- "DevelopmentProcess": "While our %sdevelopment process%s includes thousands of automated tests, Beta Testers play a key role in achieving the \"No bug policy\" in Piwik.",
+ "DevelopmentProcess": "While our %1$sdevelopment process%2$s includes thousands of automated tests, Beta Testers play a key role in achieving the \"No bug policy\" in Piwik.",
"EmailServerSettings": "Email server settings",
"ForBetaTestersOnly": "For beta testers only",
"ImageTracking": "Image Tracking",
@@ -49,9 +49,10 @@
"JSTrackingIntro5": "If you want to do more than track page views, please check out the %1$sPiwik Javascript Tracking documentation%2$s for the list of available functions. Using these functions you can track goals, custom variables, ecommerce orders, abandoned carts and more.",
"LogoNotWriteableInstruction": "To use your custom logo instead of the default Piwik logo, give write permission to this directory: %1$s Piwik needs write access for your logos stored in the files %2$s.",
"FileUploadDisabled": "Uploading files is not enabled in your PHP configuration. To upload your custom logo please set %s in php.ini and restart your webserver.",
+ "LogoUploadFailed": "The uploaded file couldn't be processed. Please check if the file has a valid format.",
"LogoUpload": "Select a Logo to upload",
"FaviconUpload": "Select a Favicon to upload",
- "LogoUploadHelp": "Please upload a file in %s formats with a minimum height of %s pixels.",
+ "LogoUploadHelp": "Please upload a file in %1$s formats with a minimum height of %2$s pixels.",
"MenuDiagnostic": "Diagnostic",
"MenuGeneralSettings": "General settings",
"MenuManage": "Manage",
@@ -60,19 +61,19 @@
"OptOutCompleteBis": "Note that if you clear your cookies, delete the opt-out cookie, or if you change computers or Web browsers, you will need to perform the opt-out procedure again.",
"OptOutDntFound": "You are not being tracked since your browser is reporting that you do not want to. This is a setting of your browser so you won't be able to opt-in until you disable the 'Do Not Track' feature.",
"OptOutExplanation": "Piwik is dedicated to providing privacy on the Internet. To provide your visitors with the choice of opting-out of Piwik Web Analytics, you can add the following HTML code on one of your website page, for example in a Privacy Policy page.",
- "OptOutExplanationBis": "This code will display an Iframe containing a link for your visitors to opt-out of Piwik by setting an opt-out cookie in their browsers. %s Click here%s to view the content that will be displayed by the iFrame.",
+ "OptOutExplanationBis": "This code will display an Iframe containing a link for your visitors to opt-out of Piwik by setting an opt-out cookie in their browsers. %1$s Click here%2$s to view the content that will be displayed by the iFrame.",
"OptOutForYourVisitors": "Piwik opt-out for your visitors",
"PiwikIsInstalledAt": "Piwik is installed at",
"PersonalPluginSettings": "Personal Plugin Settings",
- "PluginSettingChangeNotAllowed": "You are not allowed to change the value of the setting \"%s\" in plugin \"%s\"",
- "PluginSettingReadNotAllowed": "You are not allowed to read the value of the setting \"%s\" in plugin \"%s\"",
+ "PluginSettingChangeNotAllowed": "You are not allowed to change the value of the setting \"%1$s\" in plugin \"%2$s\"",
+ "PluginSettingReadNotAllowed": "You are not allowed to read the value of the setting \"%1$s\" in plugin \"%2$s\"",
"PluginSettings": "Plugin Settings",
"PluginSettingsIntro": "Here you can change the settings for the following 3rd party plugins:",
- "PluginSettingsValueNotAllowed": "The value for field \"%s\" in plugin \"%s\" is not allowed",
+ "PluginSettingsValueNotAllowed": "The value for field \"%1$s\" in plugin \"%2$s\" is not allowed",
"PluginSettingsSaveFailed": "Failed to save plugin settings",
"SendPluginUpdateCommunication": "Send an email when a plugin update is available",
"SendPluginUpdateCommunicationHelp": "An email will be sent to Super Users when there is a new version available for a plugin.",
- "StableReleases": "If Piwik is a critical part of your business, we recommend you use the latest stable release. If you use the latest beta and you find a bug or have a suggestion, please %ssee here%s.",
+ "StableReleases": "If Piwik is a critical part of your business, we recommend you use the latest stable release. If you use the latest beta and you find a bug or have a suggestion, please %1$ssee here%2$s.",
"LtsReleases": "LTS (Long Term Support) versions receive only security and bug fixes.",
"SystemPluginSettings": "System Plugin Settings",
"TrackAGoal": "Track a goal",
@@ -89,6 +90,6 @@
"YouMayOptOutBis": "To make that choice, please click below to receive an opt-out cookie.",
"OptingYouOut": "Opting you out, please wait...",
"ProtocolNotDetectedCorrectly": "You are currently viewing Piwik over a secure SSL connection (using https), but Piwik could only detect a non secure connection on the server. ",
- "ProtocolNotDetectedCorrectlySolution": "To make sure Piwik securely requests and serves your content over HTTPS, you may edit your %s file and either configure your proxy settings, or you may add the line %s below the %s section. %sLearn more%s"
+ "ProtocolNotDetectedCorrectlySolution": "To make sure Piwik securely requests and serves your content over HTTPS, you may edit your %1$s file and either configure your proxy settings, or you may add the line %2$s below the %3$s section. %4$sLearn more%5$s"
}
-}
+} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/es.json b/plugins/CoreAdminHome/lang/es.json
index b148766597..70e8a505db 100644
--- a/plugins/CoreAdminHome/lang/es.json
+++ b/plugins/CoreAdminHome/lang/es.json
@@ -5,9 +5,9 @@
"BrandingSettings": "Configuración del Branding",
"ClickHereToOptIn": "Haga clic aquí para optar.",
"ClickHereToOptOut": "Haga clic aquí para no ser seguido.",
- "CustomLogoFeedbackInfo": "Si personaliza el logo de Piwik, puede que también esté interesado en ocultar el enlace %s en el menú superior. Para hacerlo, puede deshabilitar el complemento Feedback en la página de %sAdministración de complementos%s.",
+ "CustomLogoFeedbackInfo": "Si personaliza el logo de Piwik, puede que también esté interesado en ocultar el enlace %1$s en el menú superior. Para hacerlo, puede deshabilitar el complemento Feedback en la página de %2$sAdministración de complementos%3$s.",
"CustomLogoHelpText": "Puede personalizar el logo de Piwik que será mostrado en la interfaz de usuario y los informes por correo electrónico.",
- "DevelopmentProcess": "Mientras que nuestro %sproceso de desarrollo%s incluye miles de pruebas automatizadas, Beta Testers juegan un papel clave en el logro de la \"política de no error\" en Piwik.",
+ "DevelopmentProcess": "Mientras que nuestro %1$sproceso de desarrollo%2$s incluye miles de pruebas automatizadas, Beta Testers juegan un papel clave en el logro de la \"política de no error\" en Piwik.",
"EmailServerSettings": "Configuración del servidor de correo electrónico",
"ForBetaTestersOnly": "Solamente para beta testers",
"ImageTracking": "Seguimiento mediante imagen",
@@ -22,7 +22,6 @@
"JavaScriptTracking": "Seguimiento con JavaScript",
"JSTracking_CampaignKwdParam": "Parámetro palabra clave de la campaña",
"JSTracking_CampaignNameParam": "Parámetro Nombre de la campaña",
- "JSTracking_CodeNote": "Asegúrese que este código se encuentre en cada página de su sitio de internet antes de la etiqueta %1$s.",
"JSTracking_CustomCampaignQueryParam": "Utiliza nombres de parámetros de consulta personalizados para el nombre de la campaña y la palabra clave",
"JSTracking_CustomCampaignQueryParamDesc": "Nota: %1$sPiwik detectará automáticamente los parámetros de Google Analytics.%2$s",
"JSTracking_DisableCookies": "Desactivar todas las cookies de rastreo",
@@ -49,7 +48,7 @@
"FileUploadDisabled": "La carga de archivos no está habilitada en su configuración de PHP. Para cargar su logotipo personalizado, por favor ingrese %s en el php.ini y reinicie su servidor de internet.",
"LogoUpload": "Seleccione un logo para subir",
"FaviconUpload": "Selecciona un Favicon para subir",
- "LogoUploadHelp": "Sube un archivo en formato %s con una altura mínima de %s píxeles.",
+ "LogoUploadHelp": "Sube un archivo en formato %1$s con una altura mínima de %2$s píxeles.",
"MenuDiagnostic": "Diagnóstico",
"MenuGeneralSettings": "Configuración general",
"MenuManage": "Administrar",
@@ -58,19 +57,19 @@
"OptOutCompleteBis": "Tenga en cuenta que si elimina sus cookies, elimina la cookie opt-out, o si cambia de ordenador o navegador, deberá llevar a cabo el procedimiento opt-out otra vez.",
"OptOutDntFound": "No está siendo rastreado desde que su navegador está informando que esa es su elección. Esta es una opción de su navegador, así que no será posible hasta tanto no deshabilite la función 'No rastrear'.",
"OptOutExplanation": "Piwik se dedica a proveer privacidad en Internet. Para proporcionar a sus visitantes la opción de no ser seguidos por Piwik, puede añadir el siguiente código HTML en una de sus páginas en el sitio web, por ejemplo en la página de la Política de Privacidad.",
- "OptOutExplanationBis": "Este código mostrará un iFrame que contendrá un enlace para que sus visitantes dejen de ser seguidos por Piwik disponiendo una cookie opt-out en sus navegadores. %s Haga clic aquí%s para ver el contenido que será mostrado por el iFrame.",
+ "OptOutExplanationBis": "Este código mostrará un iFrame que contendrá un enlace para que sus visitantes dejen de ser seguidos por Piwik disponiendo una cookie opt-out en sus navegadores. %1$s Haga clic aquí%2$s para ver el contenido que será mostrado por el iFrame.",
"OptOutForYourVisitors": "Opción de no seguimiento de Piwik para sus visitantes",
"PiwikIsInstalledAt": "Piwik está instalado en",
"PersonalPluginSettings": "Ajustes de complemento personal",
- "PluginSettingChangeNotAllowed": "No tiene permitido cambiar el valor de configuración \"%s\" en el complemento \"%s\"",
- "PluginSettingReadNotAllowed": "No está permitido que lea el valor de la opción \"%s\" en el complemento \"%s\"",
+ "PluginSettingChangeNotAllowed": "No tiene permitido cambiar el valor de configuración \"%1$s\" en el complemento \"%2$s\"",
+ "PluginSettingReadNotAllowed": "No está permitido que lea el valor de la opción \"%1$s\" en el complemento \"%2$s\"",
"PluginSettings": "Ajustes de complemento",
"PluginSettingsIntro": "Aquí puede cambiar la configuración de los siguientes complementos de terceros:",
- "PluginSettingsValueNotAllowed": "El valor del campo \"%s\" del complemento \"%s\" no es permitido",
+ "PluginSettingsValueNotAllowed": "El valor del campo \"%1$s\" del complemento \"%2$s\" no es permitido",
"PluginSettingsSaveFailed": "Error al guardar la configuración del complemento",
"SendPluginUpdateCommunication": "Envíe un correo electrónico cuando la actualización del complemento esté disponible",
"SendPluginUpdateCommunicationHelp": "Se enviará un correo electrónico a los Super Usuarios cuando haya disponible una nueva versión de un complemento.",
- "StableReleases": "Si Piwik es una parte crítica de su negocio, le recomendamos que utilice la última versión estable. Si usa la última versión beta y encuentra un error o tiene alguna sugerencia, por favor %sver aquí%s.",
+ "StableReleases": "Si Piwik es una parte crítica de su negocio, le recomendamos que utilice la última versión estable. Si usa la última versión beta y encuentra un error o tiene alguna sugerencia, por favor %1$sver aquí%2$s.",
"SystemPluginSettings": "Ajustes de complemento del sistema",
"TrackAGoal": "Seguimiento de un objetivo",
"TrackingCode": "Código de seguimiento",
diff --git a/plugins/CoreAdminHome/lang/fa.json b/plugins/CoreAdminHome/lang/fa.json
index 64b587712b..a43409850f 100644
--- a/plugins/CoreAdminHome/lang/fa.json
+++ b/plugins/CoreAdminHome/lang/fa.json
@@ -5,7 +5,7 @@
"BrandingSettings": "تنظیمات نام تجاری",
"ClickHereToOptIn": "اینجا را کلیک کنید تا انتخاب شوید.",
"ClickHereToOptOut": "اینجا را کلیک کنید تا انتخاب کردن.",
- "CustomLogoFeedbackInfo": "اگر شما آرم پیویک را سفارشی کنید , شاید برایتان جالب باشد که لینک %s را در منوی بالایی پنهان کنید.برای این کار شما می توانید افزونه ی بازخورد را در صفحه %sمدیریت افزونه ها%s غیرفعال کنید.",
+ "CustomLogoFeedbackInfo": "اگر شما آرم پیویک را سفارشی کنید , شاید برایتان جالب باشد که لینک %1$s را در منوی بالایی پنهان کنید.برای این کار شما می توانید افزونه ی بازخورد را در صفحه %2$sمدیریت افزونه ها%3$s غیرفعال کنید.",
"CustomLogoHelpText": "شما می توانید آرم Piwik سفارشی است که در رابط کاربری و گزارش پست الکترونیک نمایش داده خواهد شد.",
"EmailServerSettings": "تنضیمات میل سرور",
"ForBetaTestersOnly": "فقط برای استفاده کنندهای موقطی",
@@ -40,9 +40,10 @@
"OptOutExplanation": "Piwik به ارائه حریم خصوصی در اینترنت اختصاص داده شده است. به منظور ارائه به بازدید کنندگان خود را با انتخاب از امید بستن به خارج از تجزیه و تحلیل وب سایت Piwik، شما می توانید از کد HTML زیر را در یک صفحه وب سایت خود را اضافه کنید، برای مثال در یک صفحه سیاست حفظ حریم خصوصی است.",
"OptOutForYourVisitors": "Piwik انتخاب کردن را برای بازدید کنندگان خود را",
"PiwikIsInstalledAt": "پیویک در این مسیر نصب شد",
- "PluginSettingChangeNotAllowed": "شما مجاز به تغییر مقدار \"%s\" در پلاگین \"%s\" نیستید.",
+ "PluginSettingChangeNotAllowed": "شما مجاز به تغییر مقدار \"%1$s\" در پلاگین \"%2$s\" نیستید.",
"PluginSettingsIntro": "در اینجا شما می توانید تغییراتی در تنظیمات پلاگین های زیر انجام دهید :",
- "PluginSettingsValueNotAllowed": "مقدار این رشته \"%s\" در پلاگین \"%s\" مورد قبول نیست",
+ "PluginSettingsValueNotAllowed": "مقدار این رشته \"%1$s\" در پلاگین \"%2$s\" مورد قبول نیست",
+ "StableReleases": "اگر پیویک قسمتی ار تجارت شماست , ما به شما پیشنهاد میکنیم از اخرین نسخه نهایی ان استفاده کنید .اگر شما از نسخه بتا استفاده میکنید و اگر باگ پیدا کردید یا همانند این , لطفا %1$s اینجا را ببینید %2$s",
"TrackAGoal": "به دنبال یک هدف",
"TrackingCode": "کد ردیابی",
"TrustedHostConfirm": "آیا از تغییر نام هاست مورد اعتماد پیویک اطمینان دارید؟",
diff --git a/plugins/CoreAdminHome/lang/fi.json b/plugins/CoreAdminHome/lang/fi.json
index 637e323f70..4a77c87d7b 100644
--- a/plugins/CoreAdminHome/lang/fi.json
+++ b/plugins/CoreAdminHome/lang/fi.json
@@ -5,9 +5,9 @@
"BrandingSettings": "Käyttöliittymän muokkaaminen",
"ClickHereToOptIn": "Klikkaa tästä, jos haluat mukaan seurantaan.",
"ClickHereToOptOut": "Klikkaa tästä poistuaksesi seurannasta.",
- "CustomLogoFeedbackInfo": "Jos haluat muokata Piwikin logoa, voit myös piilottaa %s linkin ylävalikosta. Piilottaminen tapahtuu poistamalla Palaute-lisäosa %s Hallitse lisäosia %s -sivulta.",
+ "CustomLogoFeedbackInfo": "Jos haluat muokata Piwikin logoa, voit myös piilottaa %1$s linkin ylävalikosta. Piilottaminen tapahtuu poistamalla Palaute-lisäosa %2$s Hallitse lisäosia %3$s -sivulta.",
"CustomLogoHelpText": "Voit vaihtaa Piwikin logoa, joka näytetään käyttöliittymässä ja sähköpostiraporteissa.",
- "DevelopmentProcess": "%sKehitysprosessimme%s sisältää tuhansia automatisoituja testejä, ja Beta testeillä on avainrooli Piwikin \"Ei bugeja\" -toimintaperiaatteessa.",
+ "DevelopmentProcess": "%1$sKehitysprosessimme%2$s sisältää tuhansia automatisoituja testejä, ja Beta testeillä on avainrooli Piwikin \"Ei bugeja\" -toimintaperiaatteessa.",
"EmailServerSettings": "Sähköpostipalvelimen asetukset",
"ForBetaTestersOnly": "Vain beta-testaajille",
"ImageTracking": "Kuvaseuranta",
@@ -22,7 +22,6 @@
"JavaScriptTracking": "JavaScript seuranta",
"JSTracking_CampaignKwdParam": "Kampanjan avainsanojen parametri",
"JSTracking_CampaignNameParam": "Kampanjan nimen parametri",
- "JSTracking_CodeNote": "Varmista, että tämä koodi löytyy jokaiselta verkkosivusi sivulta ennen %1$s tagia.",
"JSTracking_CustomCampaignQueryParam": "Käytä omia parametrejä kampanjoiden nimille ja avainsanoille",
"JSTracking_CustomCampaignQueryParamDesc": "Huomaa: %1$sPiwik jäljittää automaattisesti Google Analytics parametrejä.%2$s",
"JSTracking_DisableCookies": "Poista kaikki seurantakeksit käytöstä",
@@ -49,7 +48,7 @@
"FileUploadDisabled": "Tiedostojen lähettämistä ei ole sallittu PHP-asetuksissasi. Vaihda %s php.ini:ssä ja käynnistä web-serverisi uudelleen ensin.",
"LogoUpload": "Valitse tallennettava logo",
"FaviconUpload": "Valitse lähetettävä ikoni",
- "LogoUploadHelp": "Lähetä tiedosto formaatissa %s ja %s pikselin vähimmäiskorkeudella.",
+ "LogoUploadHelp": "Lähetä tiedosto formaatissa %1$s ja %2$s pikselin vähimmäiskorkeudella.",
"MenuDiagnostic": "Vianmääritys",
"MenuGeneralSettings": "Yleiset asetukset",
"MenuManage": "Hallinnoi",
@@ -57,15 +56,15 @@
"OptOutComplete": "Olet poistanut itsesi seurannasta; käyntejä tälle sivulle ei seurata.",
"OptOutCompleteBis": "Huomioi, että jos poistat evästeet, poistat tämän sivun asettaman evästeen, vaihdat tietokonetta tai selainta, sinun täytyy suorittaa tämä uudelleen.",
"OptOutExplanation": "Piwik on mukana mahdollistamassa yksityisyyttä internetissä. Jos haluat antaa kävijöillesi mahdollisuuden kieltää seuranta, lisää seuraava HTML-koodi verkkosivullesi, esimerkiksi \"Yksityisyyskäytännöt\"-sivulle.",
- "OptOutExplanationBis": "Tämä koodi näyttää iframen, jossa on linkki Piwikin poistamiseen käytöstä vierailijan selaimesta. Linkin klikkaaminen ei vaikuta muihin käyttäjiin mitenkään. %sKlikkaa tästä%s, jos haluat nähdä, mitä iframessa näytetään.",
+ "OptOutExplanationBis": "Tämä koodi näyttää iframen, jossa on linkki Piwikin poistamiseen käytöstä vierailijan selaimesta. Linkin klikkaaminen ei vaikuta muihin käyttäjiin mitenkään. %1$sKlikkaa tästä%2$s, jos haluat nähdä, mitä iframessa näytetään.",
"OptOutForYourVisitors": "Piwikin poistaminen käytöstä kävijöillesi (opt-out)",
"PiwikIsInstalledAt": "Piwik on asennettu kohteeseen",
- "PluginSettingChangeNotAllowed": "Arvojen muuttaminen \"%s\" liitännäisessä \"%s\" -asetuksissa ei ole sallittua",
- "PluginSettingReadNotAllowed": "Et voi lukea asetusta \"%s\" lisäosasta \"%s\"",
+ "PluginSettingChangeNotAllowed": "Arvojen muuttaminen \"%1$s\" liitännäisessä \"%2$s\" -asetuksissa ei ole sallittua",
+ "PluginSettingReadNotAllowed": "Et voi lukea asetusta \"%1$s\" lisäosasta \"%2$s\"",
"PluginSettingsIntro": "Täällä voit muuttaa kolmannen osapuolen liitännäisten asetuksia:",
- "PluginSettingsValueNotAllowed": "Arvo kentälle \"%s\" liitännäisessä \"%s\" ei ole sallittu",
+ "PluginSettingsValueNotAllowed": "Arvo kentälle \"%1$s\" liitännäisessä \"%2$s\" ei ole sallittu",
"SendPluginUpdateCommunicationHelp": "Pääkäyttäjät saavat sähköpostia kun lisäosasta on saatavilla uusi versio.",
- "StableReleases": "Jos Piwik on tärkeä osa liiketointasi, suosittelemme päivittämistä uusimpaan versioon. Jos käytt uusinta beta-versiota ja löydät bugin tai sinulla on ehdotus, %slue tämä%s.",
+ "StableReleases": "Jos Piwik on tärkeä osa liiketointasi, suosittelemme päivittämistä uusimpaan versioon. Jos käytt uusinta beta-versiota ja löydät bugin tai sinulla on ehdotus, %1$slue tämä%2$s.",
"TrackAGoal": "Seuraa tavoitetta",
"TrackingCode": "Seurantakoodi",
"TrustedHostConfirm": "Haluatko varmasti vaihtaa luotettua Piwikin konenimeä?",
diff --git a/plugins/CoreAdminHome/lang/fr.json b/plugins/CoreAdminHome/lang/fr.json
index c64231fe81..98bf55ee02 100644
--- a/plugins/CoreAdminHome/lang/fr.json
+++ b/plugins/CoreAdminHome/lang/fr.json
@@ -7,9 +7,9 @@
"ReleaseChannel": "Canal de sortie",
"ClickHereToOptIn": "Cliquez ici pour inclure votre ordinateur.",
"ClickHereToOptOut": "Cliquez ici pour exclure votre ordinateur.",
- "CustomLogoFeedbackInfo": "Si vous personnalisez le logo Piwik, vous pourriez être aussi intéressé pour cacher le lien %s du menu du haut. Pour ce faire, vous pouvez désactiver le composant de Feedback dans la page du %sGestionnaire de Composants%s.",
+ "CustomLogoFeedbackInfo": "Si vous personnalisez le logo Piwik, vous pouvez être aussi vouloir cacher le lien %1$s du menu du haut. Pour ce faire, vous pouvez désactiver le plugin de Feedback dans la page de %2$sGestionnaire de Plugins%3$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.",
+ "DevelopmentProcess": "Bien que notre %1$sprocessus de développement%2$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",
"ForBetaTestersOnly": "Pour les bêta testeurs uniquement",
"ImageTracking": "Suivi par image",
@@ -24,7 +24,6 @@
"JavaScriptTracking": "Suivi par JavaScript",
"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-clé de la campagne",
"JSTracking_CustomCampaignQueryParamDesc": "Note : %1$sPiwik détectera automatiquement les paramètres de Google Analytics.%2$s",
"JSTracking_DisableCookies": "Désactiver tous les cookies de suivi",
@@ -49,9 +48,10 @@
"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.",
"LogoNotWriteableInstruction": "Pour utiliser votre propre logo personnalisé à la place du logo par défaut de Piwik, attribuez des permissions en écriture sur ce répertoire : %1$s Piwik a besoin d'un accès en écriture aux fichiers pour stocker vos logos %2$s.",
"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.",
+ "LogoUploadFailed": "Le fichier téléversé n'a pas pu être pris en compte. Veuillez vérifier que le fichier a un format valide.",
"LogoUpload": "Sélectionnez le logo à télécharger",
"FaviconUpload": "Sélectionnez un favicon à télécharger",
- "LogoUploadHelp": "Veuillez télécharge un file dans un des formats suivants %s avec une hauteur minimale de %s pixels.",
+ "LogoUploadHelp": "Veuillez télécharge un file dans un des formats suivants %1$s avec une hauteur minimale de %2$s pixels.",
"MenuDiagnostic": "Diagnostic",
"MenuGeneralSettings": "Paramètres généraux",
"MenuManage": "Gérer",
@@ -60,19 +60,19 @@
"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.",
"OptOutDntFound": "Vous n'êtes pas suivi parce que votre navigateur transmet que vous ne voulez pas l'être. Ceci est un paramètre de votre navigateur et vous ne serez pas en mesure de participer avant d'avoir désactivé la fonctionnalité \"ne pas suivre\".",
"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 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.",
+ "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. %1$s Cliquez ici %2$s pour visualiser le contenu qui sera affiché par l'iFrame.",
"OptOutForYourVisitors": "Exclusion de Piwik pour vos visiteurs",
"PiwikIsInstalledAt": "Piwik est installé à l'adresse",
"PersonalPluginSettings": "Paramètres personnel de plugins",
- "PluginSettingChangeNotAllowed": "Vous n'êtes pas autorisé(e) à modifier la valeur du paramètre \"%s\" du plugin \"%s\"",
- "PluginSettingReadNotAllowed": "Vous n'êtes pas autorisé(e) à voir la valeur du paramètre \"%s\" dans le plugin \"%s\"",
+ "PluginSettingChangeNotAllowed": "Vous n'êtes pas autorisé(e) à modifier la valeur du paramètre \"%1$s\" du plugin \"%2$s\"",
+ "PluginSettingReadNotAllowed": "Vous n'êtes pas autorisé(e) à voir la valeur du paramètre \"%1$s\" dans le plugin \"%2$s\"",
"PluginSettings": "Paramètres du composant",
"PluginSettingsIntro": "Vous pouvez ici modifier les paramètres des composants tierce partie suivants :",
- "PluginSettingsValueNotAllowed": "La valeur pour le champ \"%s\" du composant \"%s\" n'est pas autorisée.",
+ "PluginSettingsValueNotAllowed": "La valeur pour le champ \"%1$s\" du composant \"%2$s\" n'est pas autorisée.",
"PluginSettingsSaveFailed": "Erreur lors de l'enregistrement des paramètres",
"SendPluginUpdateCommunication": "Envoyer un courriel lorsqu'une mise à jour d'un composant est disponible",
"SendPluginUpdateCommunicationHelp": "Un courriel sera envoyé aux super utilisateurs quand une nouvelle version de plugin sera disponible.",
- "StableReleases": "Si Piwik représente une part critique de vos affaires, nous vous recommandons d'utiliser la dernière version stable. Si vous utilisez la dernière version et que vous trouverez un bug ou avez une suggestion, %scliquez ici%s svp.",
+ "StableReleases": "Si Piwik représente une part critique de vos affaires, nous vous recommandons d'utiliser la dernière version stable. Si vous utilisez la dernière version et que vous trouverez un bug ou avez une suggestion, %1$scliquez ici%2$s svp.",
"LtsReleases": "Les versions LTS (Long Term Support) ne reçoivent que des correctifs de sécurité et de bugs.",
"SystemPluginSettings": "Paramètres système de plugins",
"TrackAGoal": "Effectuer le suivi d'un objectif",
@@ -89,6 +89,6 @@
"YouMayOptOutBis": "Pour faire ce choix et installer un cookie d'exclusion, veuillez cliquer ci-dessous.",
"OptingYouOut": "Désinscription en cours, merci de patienter...",
"ProtocolNotDetectedCorrectly": "Vous visualisez actuellement Piwik au travers d'une connection SSL sécurisé (utilisant HTTPS), mais Piwik n'est pas parvenu à détecter une connexion non sécurisée pour le serveur.",
- "ProtocolNotDetectedCorrectlySolution": "Afin de vous assurer que Piwik demande et sever votre contenu de manière sécurisée au travers du protocole HTTPS, vous devriez éditer votre fichier %s et configuration vos paramètres de proxy ou bien vous pouvez ajouter la ligne %s sous la section %s %sEn savoir plus%s"
+ "ProtocolNotDetectedCorrectlySolution": "Afin de vous assurer que Piwik demande et sever votre contenu de manière sécurisée au travers du protocole HTTPS, vous devriez éditer votre fichier %1$s et configuration vos paramètres de proxy ou bien vous pouvez ajouter la ligne %2$s sous la section %3$s %4$sEn savoir plus%5$s"
}
} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/hi.json b/plugins/CoreAdminHome/lang/hi.json
index dc80a75d4c..4b5a9e6cc9 100644
--- a/plugins/CoreAdminHome/lang/hi.json
+++ b/plugins/CoreAdminHome/lang/hi.json
@@ -5,9 +5,9 @@
"BrandingSettings": "ब्रांडिंग सेटिंग्स",
"ClickHereToOptIn": "इस विकल्प को चुनने के लिए यहाँ क्लिक करें।",
"ClickHereToOptOut": "बाहर निकलना के लिए यहां क्लिक करें.",
- "CustomLogoFeedbackInfo": "आप Piwik प्रतीक चिन्‍ह अनुकूलित करे, तो आप भी शीर्ष मेनू में लिंक %s को छिपाने के लिए दिलचस्पी हो सकती है. ऐसा करने के लिए, आप प्रबंधित प्लगइन्स पृष्ठ में %s प्रतिक्रिया प्लगइन %s निष्क्रिय कर सकते हैं.",
+ "CustomLogoFeedbackInfo": "आप Piwik प्रतीक चिन्‍ह अनुकूलित करे, तो आप भी शीर्ष मेनू में लिंक %1$s को छिपाने के लिए दिलचस्पी हो सकती है. ऐसा करने के लिए, आप प्रबंधित प्लगइन्स पृष्ठ में %2$s प्रतिक्रिया प्लगइन %3$s निष्क्रिय कर सकते हैं.",
"CustomLogoHelpText": "आप Piwik प्रतीक चिन्‍ह को अनुकूलित कर सकते हैं जो यूजर इंटरफेस और ईमेल रिपोर्ट में प्रदर्शित किया जाएगा",
- "DevelopmentProcess": "हमारी %s विकास प्रक्रिया %s मे हजारों स्वचालित परीक्षण शामिल हैं, जबकि बीटा परीक्षक Piwik में \"कोई बग नीति\" को प्राप्त करने में एक महत्वपूर्ण भूमिका निभाते हैं.",
+ "DevelopmentProcess": "हमारी %1$s विकास प्रक्रिया %2$s मे हजारों स्वचालित परीक्षण शामिल हैं, जबकि बीटा परीक्षक Piwik में \"कोई बग नीति\" को प्राप्त करने में एक महत्वपूर्ण भूमिका निभाते हैं.",
"EmailServerSettings": "ईमेल सर्वर की सेटिंग्स",
"ForBetaTestersOnly": "केवल बीटा परीक्षकों के लिए",
"ImageTracking": "इमेज ट्रैकिंग",
@@ -20,7 +20,6 @@
"JavaScriptTracking": "जावास्क्रिप्ट ट्रैकिंग",
"JSTracking_CampaignKwdParam": "अभियान खोजशब्द प्राचल",
"JSTracking_CampaignNameParam": "अभियान का नाम प्राचल",
- "JSTracking_CodeNote": "इस कोड %1$s टैग से पहले अपनी वेबसाइट के हर पृष्ठ पर है सुनिश्चित करें.",
"JSTracking_CustomCampaignQueryParam": "अभियान का नाम और कीवर्ड के लिए कस्टम क्वेरी प्राचल नाम का प्रयोग करें",
"JSTracking_CustomCampaignQueryParamDesc": "नोट: %1$s Piwik स्वतः गूगल एनालिटिक्स मापदंडों की पहचान करेगा.%2$s",
"JSTracking_EnableDoNotTrack": "ग्राहक की ओर \"ट्रैक नहीं\" का पता लगाना सक्षम",
@@ -48,10 +47,10 @@
"OptOutCompleteBis": "आप अपने कुकी साफ़ करें, अगर कुकी को हटा सकते हैं, या आप कंप्यूटर या वेब ब्राउज़र को बदलते हैं, तो आप फिर से ऑप्ट-आउट कार्यविधि को पूरा करने की आवश्यकता होगी.",
"OptOutDntFound": "आप अपने ब्राउज़र आप नहीं करना चाहते हैं कि रिपोर्ट कर रहा है के बाद से नज़र रखी जा रही नहीं कर रहे हैं । आप ' ट्रैक न करें' सुविधा का प्रयोग नहीं जब तक आप चुनते में करने में सक्षम नहीं होगा, तो यह आपके ब्राउजर की एक सेटिंग है।",
"OptOutExplanation": "Piwik इंटरनेट पर गोपनीयता प्रदान करने के लिए समर्पित है. Piwik वेब विश्लेषिकी से बाहर निकलने के विकल्प के साथ अपने आगंतुकों प्रदान करने के लिए, आप अपनी वेबसाइट के पेज में से एक पर निम्नलिखित HTML कोड जोड़ सकते हैं, एक गोपनीयता नीति पेज में उदाहरण के लिए.",
- "OptOutExplanationBis": "यह कोड अपने दर्शकों के लिए एक कड़ी युक्त एक iframe को प्रदर्शित करेगा अपने ब्राउज़र में एक कुकी को सेट करके Piwik से लिए ऑप्ट बाहर जाने के लिए आइफ्रेम द्वारा प्रदर्शित की जाने वाली सामग्री को देखने के लिए %s यहां क्लिक करें %s.",
+ "OptOutExplanationBis": "यह कोड अपने दर्शकों के लिए एक कड़ी युक्त एक iframe को प्रदर्शित करेगा अपने ब्राउज़र में एक कुकी को सेट करके Piwik से लिए ऑप्ट बाहर जाने के लिए आइफ्रेम द्वारा प्रदर्शित की जाने वाली सामग्री को देखने के लिए %1$s यहां क्लिक करें %2$s.",
"OptOutForYourVisitors": "अपने दर्शकों के लिए Piwik ऑप्ट आउट",
"PiwikIsInstalledAt": "Piwik में स्थापित किया गया है",
- "StableReleases": "Piwik अपने व्यापार का एक महत्वपूर्ण हिस्सा है, तो हम आपको नवीनतम स्थिर रिलीज उपयोग की सलाह देते हैं. आप नवीनतम बीटा का उपयोग करें और आप एक बग मिल या एक सलाह देना चाहते हैं, %sयहां देखें%s.",
+ "StableReleases": "Piwik अपने व्यापार का एक महत्वपूर्ण हिस्सा है, तो हम आपको नवीनतम स्थिर रिलीज उपयोग की सलाह देते हैं. आप नवीनतम बीटा का उपयोग करें और आप एक बग मिल या एक सलाह देना चाहते हैं, %1$sयहां देखें%2$s.",
"TrackAGoal": "एक लक्ष्य की खोज",
"TrackingCode": "कोड देखना",
"TrustedHostConfirm": "क्या आप विश्वसनीय Piwik परिचारक नाम बदलना चाहते हैं?",
diff --git a/plugins/CoreAdminHome/lang/hu.json b/plugins/CoreAdminHome/lang/hu.json
index 77e333c9b2..2923d83b6f 100644
--- a/plugins/CoreAdminHome/lang/hu.json
+++ b/plugins/CoreAdminHome/lang/hu.json
@@ -7,9 +7,9 @@
"ReleaseChannel": "Release csatorna",
"ClickHereToOptIn": "Kattintson ide a bekapcsoláshoz.",
"ClickHereToOptOut": "Kattintson ide a kikapcsoláshoz.",
- "CustomLogoFeedbackInfo": "A Piwik logó konfigurálása esetén érdekes lehet a felső menüben található %s link eltávolítása is. Ehhez a %sBővítmények%s oldalon ki kell kapcsolni a Feedback bővítményt.",
+ "CustomLogoFeedbackInfo": "A Piwik logó konfigurálása esetén érdekes lehet a felső menüben található %1$s link eltávolítása is. Ehhez a %2$sBővítmények%3$s oldalon ki kell kapcsolni a Feedback bővítményt.",
"CustomLogoHelpText": "A felhasználói felületen és az e-mail jelentésekben megjelenő Piwik logó testreszabható.",
- "DevelopmentProcess": "Annak ellenére, hogy a %sfejlesztési folyamat%s során több ezer automatizált teszt hajtódik végre, a Beta tesztelők kulcsfontosságú szerepet töltenek be, hogy a \"Nincs hiba irányelv\" tartható legyen.",
+ "DevelopmentProcess": "Annak ellenére, hogy a %1$sfejlesztési folyamat%2$s során több ezer automatizált teszt hajtódik végre, a Beta tesztelők kulcsfontosságú szerepet töltenek be, hogy a \"Nincs hiba irányelv\" tartható legyen.",
"EmailServerSettings": "E-mail szerver beállítások",
"ForBetaTestersOnly": "Csak béta tesztelőknek",
"ImageTracking": "Kép Követés",
@@ -23,7 +23,6 @@
"JavaScriptTracking": "JavaScript Követés",
"JSTracking_CampaignKwdParam": "Kampány Kulcsszó paraméter",
"JSTracking_CampaignNameParam": "Kampány Név paraméter",
- "JSTracking_CodeNote": "Győződjön meg róla, hogy a kód minden oldalon szerepel a %1$s tag előtt.",
"JSTracking_CustomCampaignQueryParam": "Saját paraméter nevek használata a kampány név és a kulcsszó mezőkhöz",
"JSTracking_CustomCampaignQueryParamDesc": "Megjegyzés: A %1$sPiwik automatikusan felismeri a Googly Analytics paramétereket.%2$s",
"JSTracking_DisableCookies": "Minden követő süti tiltása",
@@ -50,7 +49,7 @@
"FileUploadDisabled": "A fájlfeltöltés nincs engedélyezve a PHP konfigurációban. Egyedi logó feltöltéséhez be kell állítani a php.ini fájlban a következőt: %s. A webszerver újraindítása is szükséges lehet.",
"LogoUpload": "Válasszon egy logót a feltöltéshez",
"FaviconUpload": "Válasszon egy Favicon-t a feltöltéshez",
- "LogoUploadHelp": "A feltöltött fájlnak %s formátumban, minimum %s pixel magasnak kell lennie.",
+ "LogoUploadHelp": "A feltöltött fájlnak %1$s formátumban, minimum %2$s pixel magasnak kell lennie.",
"MenuDiagnostic": "Diagnosztika",
"MenuGeneralSettings": "Alapbeállítások",
"MenuManage": "Kezelés",
@@ -59,19 +58,19 @@
"OptOutCompleteBis": "Megjegyzés: abban az esetben, ha a követést tiltó süti törlődik, más számítógépről vagy böngészőből látogatja meg a weboldalt, a követést ismét le kell tiltania.",
"OptOutDntFound": "Ön nem lekövethető, mert a böngészője azt jelzni, hogy ön ezt nem kívánta. Ez az állapot nem fog addig változni, amíg le nem tiltja a 'Do Not Track' funkciót.",
"OptOutExplanation": "A Piwik tiszteletben tartja a magánéletet Internet. Annak érdekében, hogy látogatóinak lehetősége legyen a követés kikapcsolására, helyezze el az alábbi HTML kódot például egy Adatvédelmi Tájékoztató oldalon.",
- "OptOutExplanationBis": "Az alábbi kód egy Iframet tartalmazó link, ahol a látogatók ki tudják kapcsolni a követést. Ehhez a Piwik egy követést letiltő sütit helyez el a böngészőben. %s Kattintson ide%s az iFrame tartalmának megtekintéséhez.",
+ "OptOutExplanationBis": "Az alábbi kód egy Iframet tartalmazó link, ahol a látogatók ki tudják kapcsolni a követést. Ehhez a Piwik egy követést letiltő sütit helyez el a böngészőben. %1$s Kattintson ide%2$s az iFrame tartalmának megtekintéséhez.",
"OptOutForYourVisitors": "Piwik követés letiltása látogatók által",
"PiwikIsInstalledAt": "Piwik telepítve itt:",
"PersonalPluginSettings": "Személyes bővítmény beállítások",
- "PluginSettingChangeNotAllowed": "Önnek nincs jogosultsága a(z) \"%s\" beállítás módosításához a(z) \"%s\" bővítményben",
- "PluginSettingReadNotAllowed": "Önnek nincs jogosultséga a(z) \"%s\" beállítás megtekintéséhez a(z) \"%s\" bővítményben",
+ "PluginSettingChangeNotAllowed": "Önnek nincs jogosultsága a(z) \"%1$s\" beállítás módosításához a(z) \"%2$s\" bővítményben",
+ "PluginSettingReadNotAllowed": "Önnek nincs jogosultséga a(z) \"%1$s\" beállítás megtekintéséhez a(z) \"%2$s\" bővítményben",
"PluginSettings": "Bővítmény beállítások",
"PluginSettingsIntro": "Itt módosíthatók a harmadik féltől származó bővítmények beállításai:",
- "PluginSettingsValueNotAllowed": "A(z) \"%s\" mező értéke a(z) \"%s\" bővítményben érvénytelen",
+ "PluginSettingsValueNotAllowed": "A(z) \"%1$s\" mező értéke a(z) \"%2$s\" bővítményben érvénytelen",
"PluginSettingsSaveFailed": "A bővítmény beállítások mentése sikertelen",
"SendPluginUpdateCommunication": "Küldjön egy emailt, mikor egy bővítmény frissítés elérhetővé válik",
"SendPluginUpdateCommunicationHelp": "Az adminisztrátorok emailben értesülnek ha egy bővítményhez frissítés érhető el.",
- "StableReleases": "Ha a Piwik fontos része a vállalkozásának, javasoljuk, hogy a legfrissebb stabil kiadást használja. Ha a legfrissebb béte kiadást használja és hibát talál vagy javaslata van, kérjük %skattintson ide%s.",
+ "StableReleases": "Ha a Piwik fontos része a vállalkozásának, javasoljuk, hogy a legfrissebb stabil kiadást használja. Ha a legfrissebb béte kiadást használja és hibát talál vagy javaslata van, kérjük %1$skattintson ide%2$s.",
"LtsReleases": "LTS (Hosszútávú támogatás) kiadások csak biztonsági és hibajavítási frissítéseket kapnak",
"SystemPluginSettings": "Rendszer bővítmény beállításai",
"TrackAGoal": "Cél követése",
@@ -88,6 +87,6 @@
"YouMayOptOutBis": "Az alábbi kapcsoló segítségével engedélyezhető a követő süti használata.",
"OptingYouOut": "Kiléptetés alatt, kis türelmet...",
"ProtocolNotDetectedCorrectly": "Jelenleg biztonságos SSL kapcsolat van ön és a Piwik között (https használatával), de a Piwik csak nem biztonságos kapcsolatot tudott észlelni.",
- "ProtocolNotDetectedCorrectlySolution": "Hogy biztos minden kérés és kiszolgálás HTTPS-en keresztül biztonságosan történjen, szerkeszteni kell a %s fájlt és ellenőrizni a proxy beállításokat vagy hozzá kell adni a %s sort, lentebb a %s szekcióban. %sTovábbi információk%s"
+ "ProtocolNotDetectedCorrectlySolution": "Hogy biztos minden kérés és kiszolgálás HTTPS-en keresztül biztonságosan történjen, szerkeszteni kell a %1$s fájlt és ellenőrizni a proxy beállításokat vagy hozzá kell adni a %2$s sort, lentebb a %3$s szekcióban. %4$sTovábbi információk%5$s"
}
} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/id.json b/plugins/CoreAdminHome/lang/id.json
index dc5c55e737..5406543bcd 100644
--- a/plugins/CoreAdminHome/lang/id.json
+++ b/plugins/CoreAdminHome/lang/id.json
@@ -4,9 +4,9 @@
"BrandingSettings": "Pengaturan merek",
"ClickHereToOptIn": "Klik di sini agar terekam.",
"ClickHereToOptOut": "Klik di sini agar tak-terekam.",
- "CustomLogoFeedbackInfo": "Jika Anda menyesuaikan logo Piwik, Anda mungkin juga tertarik untuk menyembunyikan tautan %s di menu atas. Untuk melakukannya, Anda mematikan pengaya Umpan Balik di halaman %s Pengelolaan Pengaya%s.",
+ "CustomLogoFeedbackInfo": "Jika Anda menyesuaikan logo Piwik, Anda mungkin juga tertarik untuk menyembunyikan tautan %1$s di menu atas. Untuk melakukannya, Anda mematikan pengaya Umpan Balik di halaman %2$s Pengelolaan Pengaya%3$s.",
"CustomLogoHelpText": "Anda dapat Anda dapat menyesuaikan logo Piwik yang akan ditampilkan dalam antarmuka pengguna dan laporan surel.",
- "DevelopmentProcess": "Ketika %sproses pengembangan%s kami menyertakan ribuan pemeriksaan otomatis, Pemeriksa Betta menjalankan peran kunci dalam pengarsipan \"Kebijakan Tanpa Kutu\" di Piwik.",
+ "DevelopmentProcess": "Ketika %1$sproses pengembangan%2$s kami menyertakan ribuan pemeriksaan otomatis, Pemeriksa Betta menjalankan peran kunci dalam pengarsipan \"Kebijakan Tanpa Kutu\" di Piwik.",
"EmailServerSettings": "Pengaturan peladen Surel",
"ForBetaTestersOnly": "Hanya untuk pemeriksa beta saja",
"ImageTracking": "Pelacakan Gambar",
@@ -21,7 +21,6 @@
"JavaScriptTracking": "Pelacakan JavaScript",
"JSTracking_CampaignKwdParam": "Parameter Kata Kunci Kampanye",
"JSTracking_CampaignNameParam": "Parameter Nama Kampanye",
- "JSTracking_CodeNote": "Pastikan bahwa kode ini berada dalam setiap halaman Anda sebelum etiket %1$s.",
"JSTracking_CustomCampaignQueryParam": "Gunakan nama parameter kueri kustom untuk untuk nama kampanye dan kata kunci",
"JSTracking_CustomCampaignQueryParamDesc": "Catatan: %1$sPiwik akan secara otomastis mendeteksi parameter Google Analytics.%2$s",
"JSTracking_EnableDoNotTrack": "Mengaktifkan pendeteksian Jangan-Lacak sisi klien",
@@ -43,17 +42,17 @@
"JSTrackingIntro4": "Bila Anda tidak ingin menggunakan JavaScript untuk melacak pengunjung, %1$sbuat sebuah gambar pelacakan di tautan berikut%2$s.",
"JSTrackingIntro5": "Bila Anda berkeinginan lebih dari melacak tampilan halaman, harap periksa %1$sDokumentas Pelacakan Javascript Piwik%2$s untuk daftar fungsi yang tersedia. Gunakan funsi tersebut untuk melacak tujuan Anda, variabel kustom, pemesanan niaga-e, keranjang dibuang, dan lebih.",
"LogoUpload": "Pilih Logo untuk diunggah",
- "LogoUploadHelp": "Harap mengunggah berkas dalam bentuk %s dengan tinggi minimal %s pixel.",
+ "LogoUploadHelp": "Harap mengunggah berkas dalam bentuk %1$s dengan tinggi minimal %2$s pixel.",
"MenuDiagnostic": "Diagnosis",
"MenuGeneralSettings": "Pengaturan Umum",
"MenuManage": "Kelola",
"OptOutComplete": "Jangan-Lacak selesai. Bila Anda mengunjungi situs ini, Anda tidak akan terekam oleh perangkat Analisis Ramatraya.",
"OptOutCompleteBis": "Perhatikan bahwa jika Anda menghapus kuki Anda, menghapus kuki Jangan-Lacak, atau jika Anda mengganti komputer atau peramban ramatraya, Anda perlu melakukan prosedur Jangan-Lacak lagi.",
"OptOutExplanation": "Piwik berdedikasi untuk menyediakan privasi Internet. Agar pengunjung Anda memiliki pilihan untuk tidak terekam oleh Analisis Ramatraya Piwik, Anda dapat menambahkan kode HTML di salah satu halaman situs Anda, misalnya di halaman Kebijakan Privasi.",
- "OptOutExplanationBis": "Kode ini akan menampilkan bingkai pendam yang mengandung tautan untuk pengunjung agar Piwik tidak merekam dengan mengatur kuki Jangan-Lacak di peramban pengunjung. %sKlik di sini%s untuk melihat isi yang ditampilkan oleh bingkai pendam.",
+ "OptOutExplanationBis": "Kode ini akan menampilkan bingkai pendam yang mengandung tautan untuk pengunjung agar Piwik tidak merekam dengan mengatur kuki Jangan-Lacak di peramban pengunjung. %1$sKlik di sini%2$s untuk melihat isi yang ditampilkan oleh bingkai pendam.",
"OptOutForYourVisitors": "Piwik Jangan-Lacakan untuk Pengunjung",
"PiwikIsInstalledAt": "Piwik terpasang di",
- "StableReleases": "Bila Piwik merupakan hal yang penting dalam usaha Anda, kami menyarankan Anda menggunakan rilis stabil terkini. \tBila Anda menggunakan beta terkini dan Anda menemukan sebuah kutu atau sebuah sarah, harap %slihat di sini%s.",
+ "StableReleases": "Bila Piwik merupakan hal yang penting dalam usaha Anda, kami menyarankan Anda menggunakan rilis stabil terkini. \tBila Anda menggunakan beta terkini dan Anda menemukan sebuah kutu atau sebuah sarah, harap %1$slihat di sini%2$s.",
"TrackAGoal": "Lacak sebuah Tujuan",
"TrackingCode": "Kode Palacakan",
"TrustedHostConfirm": "Apakah Anda yakin mengubah nama inang terpercaya Piwik?",
diff --git a/plugins/CoreAdminHome/lang/it.json b/plugins/CoreAdminHome/lang/it.json
index 8b508a2c23..3db3978f69 100644
--- a/plugins/CoreAdminHome/lang/it.json
+++ b/plugins/CoreAdminHome/lang/it.json
@@ -7,9 +7,9 @@
"ReleaseChannel": "Canale release",
"ClickHereToOptIn": "Clicca qui per accettare (opt-in).",
"ClickHereToOptOut": "Clicca qui per rifiutare (opt-out).",
- "CustomLogoFeedbackInfo": "Se si personalizza il logo Piwik, si potrebbe anche essere interessati a nascondere il link %s nel menu in alto. A tale scopo, è possibile disattivare il plugin Feedback nella pagina %sGestione Plugin%s.",
+ "CustomLogoFeedbackInfo": "Se si personalizza il logo Piwik, si potrebbe anche essere interessati a nascondere il link %1$s nel menu in alto. A tale scopo, è possibile disattivare il plugin Feedback nella pagina %2$sGestione Plugin%3$s.",
"CustomLogoHelpText": "È possibile personalizzare il logo Piwik che verrà visualizzato nell'interfaccia utente e nei reports e-mail.",
- "DevelopmentProcess": "Poichè il nostro %sprocesso di sviluppo%s include migliaia di test automatizzati, i Beta Tester giocano un ruolo chiave nel raggiungimento in Piwik della \"Politica no bug\".",
+ "DevelopmentProcess": "Poichè il nostro %1$sprocesso di sviluppo%2$s include migliaia di test automatizzati, i Beta Tester giocano un ruolo chiave nel raggiungimento in Piwik della \"Politica no bug\".",
"EmailServerSettings": "Impostazioni server e-mail",
"ForBetaTestersOnly": "Solo per beta tester",
"ImageTracking": "Tracking Immagini",
@@ -24,7 +24,7 @@
"JavaScriptTracking": "Tracciamento JavaScript",
"JSTracking_CampaignKwdParam": "Parametro Keyword Campagna",
"JSTracking_CampaignNameParam": "Parametro Nome Campagna",
- "JSTracking_CodeNote": "Assicurati che questo codice si trovi in ognuna delle pagine del tuo sito prima del tag %1$s.",
+ "JSTracking_CodeNoteBeforeClosingHead": "Assicurati che questo codice sia presente su ogni pagina del tuo sito. Ti raccomandiamo di incollarlo subito prima del tag %1$s di chiusura.",
"JSTracking_CustomCampaignQueryParam": "Utilizza i nomi dei parametri di query personalizzati per il nome della campagna e parola chiave",
"JSTracking_CustomCampaignQueryParamDesc": "Nota: %1$sPiwik rivelerà automaticamente i parametri di Google Analytics.%2$s",
"JSTracking_DisableCookies": "Disabilita tutti i cookies di tracking",
@@ -49,9 +49,10 @@
"JSTrackingIntro5": "Se volete fare altro oltre che tracciare le viste pagina, preghiamo di controllare la %1$sDocumentazione Piwik Javascript Tracking%2$s per l'elenco delle funzioni disponibili. Utilizzando queste funzioni potrete tracciare obiettivi, variabili personalizzate, ordini ecommerce, carrelli abbandonati e altro.",
"LogoNotWriteableInstruction": "Per utilizzare il tuo logo personalizzato al posto del logo di Piwik, da' i permessi di scrittura a questa directory: %1$s Piwik necessita dell'accesso in scrittura per i tuoi loghi conservati nei files %2$s.",
"FileUploadDisabled": "Il caricamento dei files non è abilitato nella configurazione del tuo PHP. Per caricare il tuo logo personalizzato devi impostare %s nel php.ini e riavviare il server.",
+ "LogoUploadFailed": "E' stato impossibile leggere il file caricato. Assicurati che il file abbia un formato valido.",
"LogoUpload": "Seleziona un logo da caricare",
"FaviconUpload": "Seleziona una Favicon da caricare",
- "LogoUploadHelp": "Carica un file nei formati %s con un'altezza minima di %s pixels",
+ "LogoUploadHelp": "Caricate un file nei formati %1$s con un'altezza minima di %2$s pixels",
"MenuDiagnostic": "Diagnostica",
"MenuGeneralSettings": "Impostazioni generali",
"MenuManage": "Gestione",
@@ -60,19 +61,19 @@
"OptOutCompleteBis": "Nota che se cancelli i tuoi cookie, cancelli anche il cookie di opt-out, e se cambi computer o browser web, devi fare la procedura di opt-out nuovamente.",
"OptOutDntFound": "Non vieni tracciato poiché il tuo browser comunica che non lo desideri. Questa è un'impostazione del tuo browser, dunque non potrai effettuare l'opt-in finchè non disabiliti la funzionalità \"Non Tracciare\".",
"OptOutExplanation": "Piwik è impegnato ad assicurare la riservatezza su Internet. Per dare ai tuoi ospiti la possibilità di escludersi dalle Statistiche Web Piwik, è possibile aggiungere il seguente codice HTML in una pagina del tuo sito web, ad esempio in una pagina sulla privacy.",
- "OptOutExplanationBis": "Questo codice serve per mostrare un iFrame contenente un link che permetterà ai tuoi visitatori per escludersi da Piwik impostando un cookie opt-out nei loro browser. %sClicca qui%s per vedere il contenuto che sarà mostrato nell'iFrame.",
+ "OptOutExplanationBis": "Questo codice serve per mostrare un iFrame contenente un link per i tuoi visitatori per opt-out per le impostazioni di Piwik, tramite un opt-out cookie nei loro browser. %1$s Clicca qui%2$s per vedere il contenuto che sarà mostrato nell'iFrame.",
"OptOutForYourVisitors": "Piwik opt-out per i tuoi visitatori",
"PiwikIsInstalledAt": "Piwik è installato su",
"PersonalPluginSettings": "Impostazioni Personali Plugin",
- "PluginSettingChangeNotAllowed": "Non sei abilitato a cambiare il valore dell'impostazione \"%s\" nel plugin \"%s\"",
- "PluginSettingReadNotAllowed": "Non sei abilitato a leggere il valore dell'impostazione \"%s\" nel plugin \"%s\"",
+ "PluginSettingChangeNotAllowed": "Non sei abilitato a cambiare il valore dell'impostazione \"%1$s\" nel plugin \"%2$s\"",
+ "PluginSettingReadNotAllowed": "Non sei abilitato a leggere il valore dell'impostazione \"%1$s\" nel plugin \"%2$s\"",
"PluginSettings": "Impostazioni plugin",
"PluginSettingsIntro": "Qui puoi cambiare le impostazioni dei seguenti plugin di terze parti:",
- "PluginSettingsValueNotAllowed": "Il valore del campo \"%s\" nel plugin \"%s\" non è consentito",
+ "PluginSettingsValueNotAllowed": "Il valore del campo \"%1$s\" nel plugin \"%2$s\" non è consentito",
"PluginSettingsSaveFailed": "Salvataggio delle impostazioni del plugin fallito",
"SendPluginUpdateCommunication": "Manda un'email quando è disponibile l'aggiornamento di un plugin",
"SendPluginUpdateCommunicationHelp": "Verrà inviata una email ai Super User quando è disponibile una nuova versione di un plugin.",
- "StableReleases": "Se Piwik rappresenta una parte fondamentale nella tua attività, ti raccomandiamo di utilizzare l'ultima versione stabile. Se utilizzi l'ultima versione beta e riscontri un bug o hai dei suggerimenti, per favore %sguarda qui%s.",
+ "StableReleases": "Se Piwik rappresenta una parte fondamentale nella vostra attività, vi raccomandiamo di utilizzare l'ultima versione stabile. Se utilizzate l'ultima versione beta e riscontrate un bug o avete dei suggerimenti, per favore %1$sguardate qui%2$s.",
"LtsReleases": "Le versioni LTS (Supporto a Lungo termine) riceveranno assistenza solo per le correzioni dei bug e della sicurezza.",
"SystemPluginSettings": "Impostazioni di Sistema del Plugin",
"TrackAGoal": "Traccia un obiettivo",
@@ -89,6 +90,6 @@
"YouMayOptOutBis": "Per fare questa scelta, clicca qui di seguito per ricevere un cookie di opt-out.",
"OptingYouOut": "Sto acquisendo la tua rinuncia, attendi...",
"ProtocolNotDetectedCorrectly": "Al momento stai guardando Piwik tramite una connessione sicura SSL (uso di https) ma Piwik ha potuto rilevare sul server solo una connessione non protetta.",
- "ProtocolNotDetectedCorrectlySolution": "Per assicurarti che Piwik richieda e offra con sicurezza il tuo contenuto tramite HTTPS, puoi modificare il file %s e configurare le impostazioni del proxy, o puoi aggiungere la riga %s sotto la sezione %s. %sLeggi di più%s"
+ "ProtocolNotDetectedCorrectlySolution": "Per assicurarti che Piwik richieda e offra con sicurezza il tuo contenuto tramite HTTPS, puoi modificare il file %1$s e configurare le impostazioni del proxy, o puoi aggiungere la riga %2$s sotto la sezione %3$s. %4$sLeggi di più%5$s"
}
} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/ja.json b/plugins/CoreAdminHome/lang/ja.json
index a40ab8e3b8..6793b30dc4 100644
--- a/plugins/CoreAdminHome/lang/ja.json
+++ b/plugins/CoreAdminHome/lang/ja.json
@@ -7,9 +7,9 @@
"ReleaseChannel": "リリース チャネル",
"ClickHereToOptIn": "クリックしてオプトイン。",
"ClickHereToOptOut": "クリックしてオプトアウト。",
- "CustomLogoFeedbackInfo": "Piwikのロゴをカスタマイズする場合、トップメニューの %s のリンクも隠したいと思うかもしれません。それには %sプラグインの管理%s のページでフィードバックプラグインを無効にします。",
+ "CustomLogoFeedbackInfo": "Piwikのロゴをカスタマイズする場合、トップメニューの %1$s のリンクも隠したいと思うかもしれません。それには %2$sプラグインの管理%3$s のページでフィードバックプラグインを無効にします。",
"CustomLogoHelpText": "Piwikのロゴをカスタマイズして、ユーザーインターフェース画面とEメールリポートに表示できます。",
- "DevelopmentProcess": "私たちの%s開発プロセス%sは自動化された数千のテストを含んでいますが、ベータテスターはPiwikの\"No bug policy\"達成のための重要な役割を果たしています。",
+ "DevelopmentProcess": "私たちの%1$s開発プロセス%2$sは自動化された数千のテストを含んでいますが、ベータテスターはPiwikの\"No bug policy\"達成のための重要な役割を果たしています。",
"EmailServerSettings": "メールサーバの設定",
"ForBetaTestersOnly": "ベータテスターのみ",
"ImageTracking": "画像によるトラッキング",
@@ -24,7 +24,6 @@
"JavaScriptTracking": "JavaScriptトラッキング",
"JSTracking_CampaignKwdParam": "キャンペーン用キーワードのパラメーター",
"JSTracking_CampaignNameParam": "キャンペーン名のパラメーター",
- "JSTracking_CodeNote": "あなたのウェブサイトのすべてのページの%1$s タグの前に、このコードがあることを確認してください。",
"JSTracking_CustomCampaignQueryParam": "キャンペーン名とキーワード用のカスタムクエリパラメータ名を使用",
"JSTracking_CustomCampaignQueryParamDesc": "注: %1$sPiwikは自動的にGoogle Analyticsのパラメータを検出します。%2$s",
"JSTracking_DisableCookies": "すべてのトラッキングクッキーを無効にする",
@@ -51,7 +50,7 @@
"FileUploadDisabled": "PHP の設定で、ファイルのアップロードが有効になっていません。カスタムロゴをアップロードするには、 php.ini で %s を設定し、 Web サーバを再起動してください。",
"LogoUpload": "アップロードするロゴを選択",
"FaviconUpload": "アップロードするファビコンを選択",
- "LogoUploadHelp": "%s ピクセル以上の高さで %s 形式のファイルをアップロードしてください",
+ "LogoUploadHelp": "%1$s ピクセル以上の高さで %2$s 形式のファイルをアップロードしてください",
"MenuDiagnostic": "診断",
"MenuGeneralSettings": "全般の設定",
"MenuManage": "管理",
@@ -60,19 +59,19 @@
"OptOutCompleteBis": "Cookie をクリアしてオプトアウト Cookie を削除したり、コンピュータやブラウザを変更した場合は、オプトアウト手続きを再度実行する必要があることに注意してください。",
"OptOutDntFound": "ユーザーにより、このブラウザではトラッキングしない設定になっております。これはブラウザの設定によるもので、'Do Not Track' 機能を無効にするまでオプトインできません。",
"OptOutExplanation": "Piwik はインターネット上のプライバシーの提供に専念しています。 ビジターに Piwik ウェブ解析のオプトアウトの選択を提供するために、ウェブサイトの1ページ(プライバシーポリシーのページ等)に次の HTML コードを追加することができます。",
- "OptOutExplanationBis": "HTML コードは、ビジターのブラウザにオプトアウト Cookie を設定する、Piwik オプトアウトリンクを含む iFrame を表示します。 iFrame で表示される内容を表示するには、%sここをクリック%sします。",
+ "OptOutExplanationBis": "HTML コードは、ビジターのブラウザにオプトアウト Cookie を設定する、Piwik オプトアウトリンクを含む iFrame を表示します。 iFrame で表示される内容を表示するには、%1$sここをクリック%2$sします。",
"OptOutForYourVisitors": "ビジターの Piwik オプトアウト",
"PiwikIsInstalledAt": "Piwikがインストールされているのは",
"PersonalPluginSettings": "パーソナルプラグインの設定",
- "PluginSettingChangeNotAllowed": "\"%s\" プラグインで \"%s\" 設定されている値変更は許可されていません。",
- "PluginSettingReadNotAllowed": "\"%s\" プラグインで \"%s\" 設定されている値の読み取りは許可されていません。",
+ "PluginSettingChangeNotAllowed": "\"%1$s\" プラグインで \"%2$s\" 設定されている値変更は許可されていません。",
+ "PluginSettingReadNotAllowed": "\"%1$s\" プラグインで \"%2$s\" 設定されている値の読み取りは許可されていません。",
"PluginSettings": "プラグイン設定",
"PluginSettingsIntro": "ここでは、次のサードパーティのプラグインの設定変更ができます",
- "PluginSettingsValueNotAllowed": "\"%s\" プラグインの \"%s\" フィールドの値は許可されていません。",
+ "PluginSettingsValueNotAllowed": "\"%1$s\" プラグインの \"%2$s\" フィールドの値は許可されていません。",
"PluginSettingsSaveFailed": "プラグインの設定を保存できませんでした",
"SendPluginUpdateCommunication": "プラグインの更新が利用可能なときにメールを送信します。",
"SendPluginUpdateCommunicationHelp": "使用可能な新しいプラグインのバージョンがある場合、管理者ユーザーへメールが通知されます。",
- "StableReleases": "Piwikがビジネスの重要な一部である場合、最新の安定版を使用することを推奨します。また、最新のベータ版を使用し、バグを見つけたり、提案があれば、%sこちらをご覧ください%s。",
+ "StableReleases": "Piwikがビジネスの重要な一部である場合、最新の安定版を使用することを推奨します。また、最新のベータ版を使用し、バグを見つけたり、提案があれば、%1$sこちらをご覧ください%2$s。",
"LtsReleases": "LTS (長期サポート) のバージョンは、セキュリティとバグ修正のみ受信します。",
"SystemPluginSettings": "システムプラグイン設定",
"TrackAGoal": "目標の追跡",
diff --git a/plugins/CoreAdminHome/lang/ko.json b/plugins/CoreAdminHome/lang/ko.json
index d51f4e43be..0e7d79e8bc 100644
--- a/plugins/CoreAdminHome/lang/ko.json
+++ b/plugins/CoreAdminHome/lang/ko.json
@@ -1,24 +1,26 @@
{
"CoreAdminHome": {
+ "AddNewTrustedHost": "새 신뢰할 수 있는 호스트 추가",
"Administration": "관리",
"ArchivingSettings": "아카이브 설정",
"BrandingSettings": "브랜딩 설정",
"ReleaseChannel": "릴리즈 채널",
"ClickHereToOptIn": "클릭하여 허용합니다.",
"ClickHereToOptOut": "클릭하여 차단합니다.",
- "CustomLogoFeedbackInfo": "Piwik 로고를 변경하거나 상단 메뉴의 %s 링크도 숨길 수 있습니다. %s 플러그인 관리 %s 페이지에서 피드백 플러그인을 비활성화세요.",
+ "CustomLogoFeedbackInfo": "Piwik 로고를 변경하거나 상단 메뉴의 %1$s 링크도 숨길 수 있습니다. %2$s 플러그인 관리 %3$s 페이지에서 피드백 플러그인을 비활성화세요.",
"CustomLogoHelpText": "Piwik 로고를 사용자정의하여 사용자 인터페이스 화면과 이메일 보고서를 볼 수 있습니다.",
- "DevelopmentProcess": "Piwik의 %s개발 과정%s안에 수많은 자동 검사를 수행하지만, Piwik의 \"무버그 정책\"을 만족시키기 위해 베타 테스터가 상당히 중요합니다.",
+ "DevelopmentProcess": "Piwik의 %1$s개발 과정%2$s안에 수많은 자동 검사를 수행하지만, Piwik의 \\\"무버그 정책\\\"을 만족시키기 위해 베타 테스터가 상당히 중요합니다.",
"EmailServerSettings": "메일 서버 설정",
"ForBetaTestersOnly": "베타 테스터 전용",
"ImageTracking": "이미지 추적",
+ "ImageTrackingIntro1": "만약 방문자가 자바스크립트를 비활성화하였을 경우이거나 자바스크립트를 사용하지 못하는 경우, 이미지 추적 링크를 이용해서 방문자를 추적할 수 있습니다.",
"ImageTrackingLink": "이미지 추적 링크",
"ImportingServerLogs": "서버 로그 가져오기",
"JavaScriptTracking": "자바스크립트 추적",
"JSTracking_CampaignKwdParam": "캠페인 키워드 파라메터",
"JSTracking_CampaignNameParam": "캠페인 이름 파라메터",
- "JSTracking_CodeNote": "아래 코드는 당신의 웹사이트에서 모든 페이지의 %1$s 태그 바로 앞에 위치해야 합니다.",
"JSTracking_CustomCampaignQueryParamDesc": "중요: %1$s Piwik는 자동으로 구글 분석 파라메터를 감지합니다.%2$s",
+ "JSTracking_DisableCookies": "모든 추적 쿠키 비활성화",
"JSTracking_EnableDoNotTrack": "클라이언트에서 DoNotTrack 탐지 활성화",
"JSTrackingIntro3": "대부분의 웹사이트, 블로그, CMS 등에서 쉽게 사용할 수 있도록 플러그인 형태로 제공되고 있습니다. (%1$sPiwik 통합 플러그인 리스트%2$s 보기) 만약 플러그인이 제공되지 않는다면, 웹사이트 템플릿을 고쳐 \"footer\" 파일에 해당 코드를 넣어 해결할 수 있습니다.",
"JSTrackingIntro5": "만약 페이지 뷰에 대한 것 이상을 원할 경우, %1$sPiwik 자바스크립트 트래킹 문서%2$s 내 여러 가능한 함수 리스트를 참고하세요. 이 함수들을 통해 목표나 맞춤 변수, 상거래 주문 및 담겨져있기만 한 카트 등을 추적할 수 있습니다.",
@@ -31,7 +33,7 @@
"OptOutComplete": "차단 완료; 당신의 방문한 이 웹사이트는 이제 웹 분석 도구에 기록되지 않습니다.",
"OptOutCompleteBis": "Cookie를 삭제하여 차단 Cookie를 삭제하거나 컴퓨터 또는 브라우저를 변경 한 경우는 차단 절차를 다시 수행해야 한다는 점 유의하세요.",
"OptOutExplanation": "Piwik은 인터넷에서 개인 정보 제공에 최선을 다하고 있습니다. 방문자에 Piwik 웹 분석의 차단 옵션을 제공하기 위해 웹 사이트의 1페이지 (개인 정보 보호 정책 페이지 등)에 다음 HTML 코드를 추가 할 수 있습니다.",
- "OptOutExplanationBis": "HTML 코드는 방문자의 브라우저에 차단 Cookie를 설정하는 Piwik 차단 링크를 ​​포함 iFrame을 표시합니다. iFrame에서 표시되는 내용을 표시하려면 %s여기를 클릭%s합니다.",
+ "OptOutExplanationBis": "HTML 코드는 방문자의 브라우저에 차단 Cookie를 설정하는 Piwik 차단 링크를 ​​포함 iFrame을 표시합니다. iFrame에서 표시되는 내용을 표시하려면 %1$s여기를 클릭%2$s합니다.",
"OptOutForYourVisitors": "방문자의 Piwik 차단",
"PiwikIsInstalledAt": "Piwik가 설치되어 있습니다",
"PersonalPluginSettings": "나만의 플러그인 설정",
@@ -40,7 +42,7 @@
"PluginSettingsSaveFailed": "플러그인 설정 저장 실패",
"SendPluginUpdateCommunication": "플러그인 업데이트가 가능할 때 이메일 알림",
"SendPluginUpdateCommunicationHelp": "플러그인의 새로운 버전이 나타날 경우 수퍼 유저에게 메일로 알려집니다.",
- "StableReleases": "만약 Piwik가 당신의 비지니스에 상당히 중요한 요소라면 최근 안정 버전을 사용하시는 것을 추천합니다. 만약 최근 베타 버전을 사용 중 버그를 찾으셨거나 제안하실 사항이 있으시다면, %s여기를 봐주세요%s.",
+ "StableReleases": "\"만약 Piwik가 당신의 비지니스에 상당히 중요한 요소라면 최근 안정 버전을 사용하시는 것을 추천합니다. 만약 최근 베타 버전을 사용 중 버그를 찾으셨거나 제안하실 사항이 있으시다면, %1$s여기를 봐주세요%2$s.",
"LtsReleases": "LTS (Long Term Support, 오랜 기간동안 지원됨) 버전은 보안 및 버그 해결만 받습니다.",
"SystemPluginSettings": "시스템 플러그인 설정",
"TrackAGoal": "목표 추적",
diff --git a/plugins/CoreAdminHome/lang/lt.json b/plugins/CoreAdminHome/lang/lt.json
index 3c5e61a8cd..07cb019f5a 100644
--- a/plugins/CoreAdminHome/lang/lt.json
+++ b/plugins/CoreAdminHome/lang/lt.json
@@ -3,7 +3,9 @@
"Administration": "Administravimas",
"ArchivingSettings": "Archyvavimo nustatymai",
"EmailServerSettings": "El. pašto serverio nustatymai",
+ "ForBetaTestersOnly": "Tik beta testuotojams",
"MenuGeneralSettings": "Pagrindiniai nustatymai",
+ "PluginSettings": "Papildinio nustatymai",
"PluginSettingsSaveFailed": "Nepavyko įrašyti papildinio nustatymų"
}
} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/nb.json b/plugins/CoreAdminHome/lang/nb.json
index 7e394aca3f..8c89e22b14 100644
--- a/plugins/CoreAdminHome/lang/nb.json
+++ b/plugins/CoreAdminHome/lang/nb.json
@@ -7,9 +7,9 @@
"ReleaseChannel": "Versjonskanal",
"ClickHereToOptIn": "Trykk her for å delta.",
"ClickHereToOptOut": "Trykk her for å ikke delta.",
- "CustomLogoFeedbackInfo": "Hvis du tilpasser Piwik-logoen vil du kanskje også skjule %s-lenken i toppmenyen. For å gjøre det må du deaktivere Feedback-utvidelsen i %sAdministrasjon av utvidelser%s-siden.",
+ "CustomLogoFeedbackInfo": "Hvis du tilpasser Piwik-logoen vil du kanskje også skjule %1$s-lenken i toppmenyen. For å gjøre det må du deaktivere Feedback-utvidelsen i %2$sAdministrasjon av utvidelser%3$s-siden.",
"CustomLogoHelpText": "Du kan tilpasse Piwik-logoen som vises i brukergrensesnittet og i e-postrapporter.",
- "DevelopmentProcess": "Selv om vår %sutviklingsprosess%s inkluderer tusener av automatiske testser, spiller betatestere en viktig rolle for å at vi skal kunne etterleve vårt mål om å ikke ha noen feil.",
+ "DevelopmentProcess": "Selv om vår %1$sutviklingsprosess%2$s inkluderer tusener av automatiske testser, spiller betatestere en viktig rolle for å at vi skal kunne etterleve vårt mål om å ikke ha noen feil.",
"EmailServerSettings": "Innstillinger for e-posttjener",
"ForBetaTestersOnly": "Kun for beta-testere",
"ImageTracking": "Bildesporing",
@@ -24,7 +24,7 @@
"JavaScriptTracking": "JavaScript-sporing",
"JSTracking_CampaignKwdParam": "Nøkkelordparameter for kampanje",
"JSTracking_CampaignNameParam": "Navneparameter for kampanje",
- "JSTracking_CodeNote": "Forsikre deg om at koden brukes på alle sider på ditt nettsted før %1$s-taggen.",
+ "JSTracking_CodeNoteBeforeClosingHead": "Forsikre deg om at denne koden er på alle sider på nettstedet. Vi anbefaler å lime den inn rett før den lukkende %1$s-taggen.",
"JSTracking_CustomCampaignQueryParam": "Bruk tilpassede spørreparameternavn for kampanjens navn og nøkkelord",
"JSTracking_CustomCampaignQueryParamDesc": "Merk: %1$sPiwik vil automatisk oppdage Google Analytics-parametere.%2$s",
"JSTracking_DisableCookies": "Deaktiver alle sporingskapsler (cookies)",
@@ -41,7 +41,7 @@
"JSTracking_PageCustomVars": "Spor en tilpasset variabel for hver sidevisning",
"JSTracking_PageCustomVarsDesc": "For eksempel, med variabelnavnet «Kategori» og verdien «Rapporter».",
"JSTracking_VisitorCustomVars": "Spor tilpassede variabler for denne besøkeren",
- "JSTracking_VisitorCustomVarsDesc": "Dor eksempel, med variabelnavnet «Type» og verdien «Kunde».",
+ "JSTracking_VisitorCustomVarsDesc": "For eksempel, med variabelnavnet «Type» og verdien «Kunde».",
"JSTrackingIntro1": "Du kan spore besøkere til ditt nettsted på flere ulike måter. Den anbefalte måten å gjøre det er via JavaScript. For å bruke denne metoden må du forsikre deg om at alle nettsider på ditt nettsted har en JavaScript-kode, som du kan generere her.",
"JSTrackingIntro2": "Når du har JavaScript-sporingskoden for ditt nettsted, kopier og lim den inn på alle nettsteder som du vil spore med Piwik.",
"JSTrackingIntro3": "For de fleste nettsteder, blogger, CMS-er og liknende kan du bruke allerede eksisterende utvidelser for å gjøre den tekniske jobben for deg. (Se vår %1$sliste med utvidelser som integrerer Piwik%2$s.) Hvis det ikke eksisterer noen utvidelser kan du redigere ditt nettsteds maler og legge til koden i «footer»-filen.",
@@ -49,9 +49,10 @@
"JSTrackingIntro5": "Hvis du vil gjøre mer enn å spore sidevisninger, vennligst sjekk ut %1$sPiwik JavaScript Tracking documentation%2$s for en liste med tilgjengelige funksjoner. Ved å bruke disse funksjonene kan du spore mål, tilpassede variabler, e-handelsordre, forlatte handlevogner og mer.",
"LogoNotWriteableInstruction": "For å bruke din egen logo istedenfor Piwik-logoen, gi skriverettigheter til denne mappen: %1$s Piwik trenger skrivetilgang for dine logoer som er lagret i filene %2$s.",
"FileUploadDisabled": "Opplasting avfiler er ikke aktivert i din PHP-konfigurasjon. For å laste opp din egen logo, vennligst sett %s i php.ini og restart din webserver.",
+ "LogoUploadFailed": "Den opplastede filen kunne ikke prosesseres. Vennligst sjekk at den har et gyldig format.",
"LogoUpload": "Velg en logo å laste opp",
"FaviconUpload": "Velg et favicon å laste opp",
- "LogoUploadHelp": "Vennligst last opp en fil i %s-formatet med en minimumshøyde på %s piksler.",
+ "LogoUploadHelp": "Vennligst last opp en fil i %1$s-formatet med en minimumshøyde på %2$s piksler.",
"MenuDiagnostic": "Diagnostikk",
"MenuGeneralSettings": "Generelle innstillinger",
"MenuManage": "Administrer",
@@ -60,19 +61,19 @@
"OptOutCompleteBis": "Merk at hvis du sletter dine datakapsler (cookies), sletter denne opt-out-kapselen, eller hvis du endrer datamaskin eller nettleser, er du nødt til å gjennomføre denne prosedyren igjen.",
"OptOutDntFound": "Du spores ikke siden din nettleser rapporterer at du ikke vil det. Dette er en innstilling i din nettleser, så du vil ikke være i stand til å delta før du deaktiverer «Ikke spor meg»-funksjonen.",
"OptOutExplanation": "Piwik er dedikert til å gi personvern på Internett. For å gi dine besøkere valget om å ikke bli sporet, kan du legge til følgende HTML-kode på en av nettstedssider, for eksempel på personvern-siden.",
- "OptOutExplanationBis": "Denne koden vil vise en iframe med en lenke for dine besøkere slik at de kan velge å ikke bli sporet av Piwik ved å sette en opt-out-cookie i sine nettlesere. %s Klikk her%s for å vise innholdet som vil vises i iframen.",
+ "OptOutExplanationBis": "Denne koden vil vise en iframe med en lenke for dine besøkere slik at de kan velge å ikke bli sporet av Piwik ved å sette en opt-out-cookie i sine nettlesere. %1$s Klikk her%2$s for å vise innholdet som vil vises i iframen.",
"OptOutForYourVisitors": "Piwik opt-out for dine besøkende",
"PiwikIsInstalledAt": "Piwik er installert på",
"PersonalPluginSettings": "Personlige innstillinger for utvidelser",
- "PluginSettingChangeNotAllowed": "Du har ikke tillatelse til å endre verdien på innstillingen «%s» i utvidelsen «%s»",
- "PluginSettingReadNotAllowed": "Du har ikke tillatelse til å lese verdien av innstillingen «%s» i utvidelsen «%s»",
+ "PluginSettingChangeNotAllowed": "Du har ikke tillatelse til å endre verdien på innstillingen «%1$s» i utvidelsen «%2$s»",
+ "PluginSettingReadNotAllowed": "Du har ikke tillatelse til å lese verdien av innstillingen «%1$s» i utvidelsen «%2$s»",
"PluginSettings": "Innstillinger for utvidelser",
"PluginSettingsIntro": "Her kan du endre innstillinger for følgende 3. parts utvidelser:",
- "PluginSettingsValueNotAllowed": "Verdien for feltet «%s» i utvidelsen «%s» er ikke tillatt",
+ "PluginSettingsValueNotAllowed": "Verdien for feltet «%1$s» i utvidelsen «%2$s» er ikke tillatt",
"PluginSettingsSaveFailed": "Klarte ikke å lagre innstillinger for utvidelser",
"SendPluginUpdateCommunication": "Send en e-post når en oppdatering for en utvidelse er tilgjengelig",
"SendPluginUpdateCommunicationHelp": "En e-post vil bli sendt til superbrukere når det er en ny versjon tilgjengelig for en utvidelse.",
- "StableReleases": "Hvis Piwik er en kritisk del av din forretning anbefaler vi at du bruker den nyeste stabile versjonen. Hvis du bruker den nyeste betaen og du finner en feil eller har et forbedringsforslag, vennligst %sse her%s.",
+ "StableReleases": "Hvis Piwik er en kritisk del av din forretning anbefaler vi at du bruker den nyeste stabile versjonen. Hvis du bruker den nyeste betaen og du finner en feil eller har et forbedringsforslag, vennligst %1$sse her%2$s.",
"LtsReleases": "LTS(Long Term Support – langsiktig støtte)-versjoner får kun sikkerhets- og feilrettinger.",
"SystemPluginSettings": "Systeminnstillinger for utvidelser",
"TrackAGoal": "Spor et mål",
@@ -89,6 +90,6 @@
"YouMayOptOutBis": "Hvis du ønsker at din aktivitet ikke lagres, klikk under for å motta en blank informasjonskapsel, så vil du unngå å bli registrert.",
"OptingYouOut": "Forhindrer at du registreres, vennligst vent...",
"ProtocolNotDetectedCorrectly": "Du ser nå Piwik på en sikker SSL-tilkobling (med HTTPS), men Piwik kan kun se en ikke-sikker tilkobling til serveren.",
- "ProtocolNotDetectedCorrectlySolution": "For å forsikre deg om at Piwik mottar sikre spørringer og leverer innhold over HTTPS, kan du redigere din %s-fil og enten konfigurere dine proxy-innstillinger, eller du kan legge inn linjen %s under seksjonen %s. %sLær mer%s"
+ "ProtocolNotDetectedCorrectlySolution": "For å forsikre deg om at Piwik mottar sikre spørringer og leverer innhold over HTTPS, kan du redigere din %1$s-fil og enten konfigurere dine proxy-innstillinger, eller du kan legge inn linjen %2$s under seksjonen %3$s. %4$sLær mer%5$s"
}
} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/nl.json b/plugins/CoreAdminHome/lang/nl.json
index 5135a3cba9..5814095c64 100644
--- a/plugins/CoreAdminHome/lang/nl.json
+++ b/plugins/CoreAdminHome/lang/nl.json
@@ -6,9 +6,9 @@
"BrandingSettings": "Logo instellingen",
"ClickHereToOptIn": "Klik hier om u aan te melden.",
"ClickHereToOptOut": "Klik hier om u af te melden.",
- "CustomLogoFeedbackInfo": "Als u het Piwik logo bijwerkt, heeft u wellicht ook interesse om de %s link te verbergen in het menu bovenaan. Om dit te doen, kunt u de feedback plugin uitschakelen in de pagina van de %sManage Plugins%s.",
+ "CustomLogoFeedbackInfo": "Als u het Piwik logo bijwerkt, heeft u wellicht ook interesse om de %1$s link te verbergen in het menu bovenaan. Om dit te doen, kunt u de feedback plugin uitschakelen in de pagina van de %2$sManage Plugins%3$s.",
"CustomLogoHelpText": "U kunt het Piwik logo aanpassen dat wordt weergegeven in de gebruikersinterface en in de e-mail rapportages.",
- "DevelopmentProcess": "Hoewel ons %s ontwikkel process %s duizenden automatisch tests omvat, spelen Beta testers een belangrijke rol in het \"No bug beleid\" in Piwik.",
+ "DevelopmentProcess": "Hoewel ons %1$s ontwikkel process %2$s duizenden automatisch tests omvat, spelen Beta testers een belangrijke rol in het \"No bug beleid\" in Piwik.",
"EmailServerSettings": "E-mail server instellingen",
"ForBetaTestersOnly": "Alleen voor beta testers",
"ImageTracking": "Afbeelding tracking",
@@ -23,7 +23,6 @@
"JavaScriptTracking": "JavaScript Tracking",
"JSTracking_CampaignKwdParam": "Campagne sleutelwoord parameter",
"JSTracking_CampaignNameParam": "Campagna naam parameter",
- "JSTracking_CodeNote": "Zorg dat deze code is geplaatst voor de %1$s tag op elke pagina op uw website.",
"JSTracking_CustomCampaignQueryParam": "Gebruik aangepaste query parameter namen voor de campagne naam & sleutelwoorden",
"JSTracking_CustomCampaignQueryParamDesc": "Opmerking: %1$s Piwik detecteert automatisch Google Analytics parameters.%2$s",
"JSTracking_DisableCookies": "Schakel alle tracking cookies uit",
@@ -50,7 +49,7 @@
"FileUploadDisabled": "Het uploaden van documenten is niet geactiveerd in je PHP configuratie. Om een aangepast logo up te loaden pas %s aan in php.ini en herstart de webserver.",
"LogoUpload": "Selecteer een logo om te uploaden",
"FaviconUpload": "Selecteer een favicon om up te loaden",
- "LogoUploadHelp": "Upload een bestand in %s formaten met een minimum hoogte van %s pixels.",
+ "LogoUploadHelp": "Upload een bestand in %1$s formaten met een minimum hoogte van %2$s pixels.",
"MenuDiagnostic": "Diagnose",
"MenuGeneralSettings": "Algemene instellingen",
"MenuManage": "Beheer",
@@ -59,19 +58,19 @@
"OptOutCompleteBis": "Als u uw cookies verwijderd, de opt-out cookie verwijderd of wisselt van computer of webbrowser, dan zult u deze opt-out procedure opnieuw moeten uitvoeren.",
"OptOutDntFound": "Je bezoek wordt niet gemeten omdat je browser aangeeft dat je dat niet wil. Dit is een instelling van je browser, dus je kunt geen gebruik maken van opt-in, totdat je de 'Volg mij Niet' functie uitschakelt.",
"OptOutExplanation": "Piwik is ingericht om de privacy op internet te respecteren. U kunt uw bezoekers de keuze opting-out van Piwik Web Analytics aanbieden. Daartoe kunt u de volgende HTML-code toevoegen aan één van uw webpagina's, bijvoorbeeld op een pagina met de Privacy Policy.",
- "OptOutExplanationBis": "Deze code zal een I-frame tonen met daarin een link naar de opt-out van Piwik door een opt-out cookie te plaatsen in hun browser. %s Klik hier%s om de tekst te bekijken die in het I-frame getoond zal worden.",
+ "OptOutExplanationBis": "Deze code zal een I-frame tonen met daarin een link naar de opt-out van Piwik door een opt-out cookie te plaatsen in hun browser. %1$s Klik hier%2$s om de tekst te bekijken die in het I-frame getoond zal worden.",
"OptOutForYourVisitors": "Piwik opt-out voor uw bezoekers",
"PiwikIsInstalledAt": "Piwik is geïnstalleerd in",
"PersonalPluginSettings": "Persoonlijke Plugin Instellingen",
- "PluginSettingChangeNotAllowed": "U bent niet gemachtigd om de waarde aan te passen van de instelling \"%s\" in plugin \"%s\"",
- "PluginSettingReadNotAllowed": "Je hebt geen toestemming voor het uitlezen van de instelling \"%s\" uit de plugin \"%s\"",
+ "PluginSettingChangeNotAllowed": "U bent niet gemachtigd om de waarde aan te passen van de instelling \"%1$s\" in plugin \"%2$s\"",
+ "PluginSettingReadNotAllowed": "Je hebt geen toestemming voor het uitlezen van de instelling \"%1$s\" uit de plugin \"%2$s\"",
"PluginSettings": "Plugin Instellingen",
"PluginSettingsIntro": "Hier kunt u instellingen aanpassen voor de volgende plugins van derden:",
- "PluginSettingsValueNotAllowed": "De waarde voor veld \"%s\" in plugin \"%s\" is niet toegestaan",
+ "PluginSettingsValueNotAllowed": "De waarde voor veld \"%1$s\" in plugin \"%2$s\" is niet toegestaan",
"PluginSettingsSaveFailed": "Opslaan van plugin instellingen niet gelukt",
"SendPluginUpdateCommunication": "Stuur een email wanneer een plugin update beschikbaar is.",
"SendPluginUpdateCommunicationHelp": "Een email wordt verstuurd naar de Super User wanneer er een nieuwe versie voor de plugin is.",
- "StableReleases": "Indien Piwik een essentieel onderdeel is van uw zaak, dan raaden wij aan om de laatste stabiele versie te draaien. Indien je de laatste beta gebruikt en je ontdekt bugs of hebt een suggestie, %skijk dan hier%s.",
+ "StableReleases": "Indien Piwik een essentieel onderdeel is van uw zaak, dan raaden wij aan om de laatste stabiele versie te draaien. Indien je de laatste beta gebruikt en je ontdekt bugs of hebt een suggestie, %1$skijk dan hier%2$s.",
"SystemPluginSettings": "Systeem Plugin Instellingen",
"TrackAGoal": "Hou een doel bij.",
"TrackingCode": "Tracking code.",
diff --git a/plugins/CoreAdminHome/lang/nn.json b/plugins/CoreAdminHome/lang/nn.json
index ef834b8133..2004edfcd0 100644
--- a/plugins/CoreAdminHome/lang/nn.json
+++ b/plugins/CoreAdminHome/lang/nn.json
@@ -11,7 +11,7 @@
"OptOutComplete": "Avmelding fullførd. Vitjingane dine til denne nettsida vil ikkje loggførast av nettstatistikkverktøyet.",
"OptOutCompleteBis": "Dersom du slettar infokapslane dine eller byter datamaskin eller nettlesar, må du avmelda deg på nytt.",
"OptOutExplanation": "Piwik er oppteken av personvern på Internett.For å gje vitjarane dine valet om å slå av Piwik Nettstatistikk, kan du leggja til følgjande HTML-kode på ei av sidene dine, til dømes ei side med retningsliner for personvern.",
- "OptOutExplanationBis": "Denne koden vil visa ei flytande råme med ein peikar som vitjarane dine kan klikka på for å melda seg av med ein infokapsel i nettlesaren deira. %s Klikk her%s for å sjå innhaldet som visast i den flytande råma.",
+ "OptOutExplanationBis": "Denne koden vil visa ei flytande råme med ein peikar som vitjarane dine kan klikka på for å melda seg av med ein infokapsel i nettlesaren deira. %1$s Klikk her%2$s for å sjå innhaldet som visast i den flytande råma.",
"OptOutForYourVisitors": "Avmelding av Piwik for vitjarar",
"UseCustomLogo": "Bruk ein tilpassa logo",
"YouAreOptedIn": "Du er påmeldt.",
diff --git a/plugins/CoreAdminHome/lang/pl.json b/plugins/CoreAdminHome/lang/pl.json
index 00b2e7b1f0..06e87d64dd 100644
--- a/plugins/CoreAdminHome/lang/pl.json
+++ b/plugins/CoreAdminHome/lang/pl.json
@@ -5,9 +5,9 @@
"BrandingSettings": "Ustawienia logo",
"ClickHereToOptIn": "Kliknij tutaj by włączyć analizę.",
"ClickHereToOptOut": "Kliknij tutaj by wyłączyć analizę.",
- "CustomLogoFeedbackInfo": "Jeśli dostosujesz logo Piwik, może będziesz także chciał ukryć %s odnośnik w górnym menu. Aby to zrobić możesz wyłączyć plugin Feedback na stronie %sManage Plugins%s.",
+ "CustomLogoFeedbackInfo": "Jeśli dostosujesz logo Piwik, może będziesz także chciał ukryć %1$s odnośnik w górnym menu. Aby to zrobić możesz wyłączyć plugin Feedback na stronie %2$sManage Plugins%3$s.",
"CustomLogoHelpText": "Można dostosować logo Piwik, które będą wyświetlane w interfejsie użytkownika i w raportach e-mail.",
- "DevelopmentProcess": "Podczas gdy %sproces rozwoju%s składa się z tysięcy testów automatycznych, Beta Testerzy odgrywają kluczową rolę w osiągnięciu \"polityki braku błędów\" w Piwik'u.",
+ "DevelopmentProcess": "Podczas gdy %1$sproces rozwoju%2$s składa się z tysięcy testów automatycznych, Beta Testerzy odgrywają kluczową rolę w osiągnięciu \"polityki braku błędów\" w Piwik'u.",
"EmailServerSettings": "Konfiguracja serwera poczty",
"ForBetaTestersOnly": "Tylko dla beta testerów",
"ImageTracking": "Obrazek Śledziący",
@@ -22,7 +22,6 @@
"JavaScriptTracking": "Śledzenie JavaScriptowe",
"JSTracking_CampaignKwdParam": "Parametr Słowa Kluczowego Kampanii",
"JSTracking_CampaignNameParam": "Nazwa parametru Kampanii",
- "JSTracking_CodeNote": "Upewnij się, że ten kod jest na każdej podstronie Twojej strony przed tagiem %1$s.",
"JSTracking_CustomCampaignQueryParam": "Użyto niestandardowych nazw parametrów dla zapytanie do nazwy kampanii i hasła",
"JSTracking_CustomCampaignQueryParamDesc": "Ważne: %1$sPiwik automatycznie wykryje parametry Google Analystics..%2$s",
"JSTracking_DisableCookies": "Wyłącz wszystkie pliki cookie",
@@ -49,7 +48,7 @@
"FileUploadDisabled": "Przesyłanie plików nie jest włączone w konfiguracji PHP. Aby przesłać własne logo należy ustawić %s w pliku php.ini i ponownie uruchomić serwer WWW.",
"LogoUpload": "Wybierz logo",
"FaviconUpload": "Wybierz Favikonę do wysłania",
- "LogoUploadHelp": "Prześlij plik w formatach %s i o minimalnej wysokości %s pikseli.",
+ "LogoUploadHelp": "Prześlij plik w formatach %1$s i o minimalnej wysokości %2$s pikseli.",
"MenuDiagnostic": "Diagnostyka",
"MenuGeneralSettings": "Konfiguracja ogólna",
"MenuManage": "Zarządzaj",
@@ -57,15 +56,15 @@
"OptOutComplete": "Pełna dezaktywacja. Nie będziesz odnotowywany przez narzędzie statystyk i analityki.",
"OptOutCompleteBis": "Prosimy zauważyć, że jeśli usuniesz swoje pliki ciasteczek cookies, zostaną skasowane ciasteczka wyłączające śledzenie, lub jeśli zmienisz komputer czy przeglądarkę, będziesz musiał powtórzyć procedurę wyłączenia analizy statystycznej raz jeszcze.",
"OptOutExplanation": "Statystyki Piwik są zaprojektowane by nie naruszać prywatności w internecie. By zapewnić odwiedzającym możliwość wyboru rezygnacji ze śledzenia przez statystyki Piwik, możesz dodać następującą informację w kodzie HTML na jednej ze swoich stron, na przykład na stronie Polityka prywatności.",
- "OptOutExplanationBis": "Ten kod wyświetli ramkę Iframe zawierającą link dla odwiedzających do wyłączenia śledzenia przez ustawienie ciasteczka cookie dla ich przeglądarek. %s Kliknij tutaj%s, by zapoznać się z treścią wyświetlaną przez ramkę iFrame.",
+ "OptOutExplanationBis": "Ten kod wyświetli ramkę Iframe zawierającą link dla odwiedzających do wyłączenia śledzenia przez ustawienie ciasteczka cookie dla ich przeglądarek. %1$s Kliknij tutaj%2$s, by zapoznać się z treścią wyświetlaną przez ramkę iFrame.",
"OptOutForYourVisitors": "Wyłączenie działania Piwik dla twoich odwiedzających",
"PiwikIsInstalledAt": "Piwik jest zainstalowany w",
- "PluginSettingChangeNotAllowed": "Nie masz uprawnień do zmiany wartości parametru\"%s\" w pluginie \"%s\"",
- "PluginSettingReadNotAllowed": "Nie masz uprawnień do odczytu wartości ustawienia \"%s\" w pluginie \"%s\"",
+ "PluginSettingChangeNotAllowed": "Nie masz uprawnień do zmiany wartości parametru\"%1$s\" w pluginie \"%2$s\"",
+ "PluginSettingReadNotAllowed": "Nie masz uprawnień do odczytu wartości ustawienia \"%1$s\" w pluginie \"%2$s\"",
"PluginSettingsIntro": "Możesz tu zmienić ustawienia dla następujących pluginów innych autorów:",
- "PluginSettingsValueNotAllowed": "Wartość dla pola \"%s\" w pluginie \"%s\" jest niedozwolona",
+ "PluginSettingsValueNotAllowed": "Wartość dla pola \"%1$s\" w pluginie \"%2$s\" jest niedozwolona",
"SendPluginUpdateCommunicationHelp": "Email zostanie wysłany do Super Użytkowników gdy pojawi się nowa wersja pluginu.",
- "StableReleases": "Jeśli Piwik jest ważną częścią firmy , zalecamy użycie najnowszej stabilnej wersji. Jeśli używasz najnowszej wersji beta i znajdziesz błąd lub masz sugestię , prosimy %szobacz tutaj%s .",
+ "StableReleases": "Jeśli Piwik jest ważną częścią firmy , zalecamy użycie najnowszej stabilnej wersji. Jeśli używasz najnowszej wersji beta i znajdziesz błąd lub masz sugestię , prosimy %1$szobacz tutaj%2$s.",
"TrackAGoal": "Śledź cel",
"TrackingCode": "Kod śledzenia",
"TrustedHostConfirm": "Czy na pewno chcesz zmienić zaufaną nazwę hosta Piwik?",
diff --git a/plugins/CoreAdminHome/lang/pt-br.json b/plugins/CoreAdminHome/lang/pt-br.json
index 5547265a7c..c28980c099 100644
--- a/plugins/CoreAdminHome/lang/pt-br.json
+++ b/plugins/CoreAdminHome/lang/pt-br.json
@@ -7,9 +7,9 @@
"ReleaseChannel": "Canal de liberação",
"ClickHereToOptIn": "Clique aqui para aceitar",
"ClickHereToOptOut": "Clique aqui para optar por sair.",
- "CustomLogoFeedbackInfo": "Se você personalizar o logotipo Piwik, você também pode estar interessado em esconder o link %s no menu superior. Para fazer isso, você pode desabilitar o plug-in Comentários na %spágina de Plugins%s.",
+ "CustomLogoFeedbackInfo": "Se você personalizar o logotipo Piwik, você também pode estar interessado em esconder a ligação %1$s no menu superior. Para fazer isso, você pode desabilitar o plug-in Comentários na página de Plugins %2$sManage%3$s.",
"CustomLogoHelpText": "Você pode personalizar o logo que o Piwik exibe na interface do sistema e nos relatórios enviados por e-mail.",
- "DevelopmentProcess": "Enquanto o nosso %sprocesso de desenvolvimento%s inclui milhares de testes automatizados, Os Beta Testers desempenham um papel fundamental na realização da política de \"Nenhum bug\" no Piwik.",
+ "DevelopmentProcess": "Enquanto o nosso %1$sprocesso de desenvolvimento%2$s inclui milhares de testes automatizados, Os Beta Testers desempenham um papel fundamental na realização da política de \"Nenhum bug\" no Piwik.",
"EmailServerSettings": "Configurações do servidor de e-mail",
"ForBetaTestersOnly": "Somente para testadores beta",
"ImageTracking": "Rastreamento por imagem",
@@ -24,7 +24,7 @@
"JavaScriptTracking": "Rastreamento de JavaScript",
"JSTracking_CampaignKwdParam": "Parâmetro de Palavra-Chave da campanha",
"JSTracking_CampaignNameParam": "Parâmetro Nome da Campanha",
- "JSTracking_CodeNote": "Certifique-se de que este código estará em todas as páginas do seu website antes da tag %1$s.",
+ "JSTracking_CodeNoteBeforeClosingHead": "Certifique-se de que este código está em cada página do seu site. Recomendamos colá-lo imediatamente antes de fechar a tag %1$s .",
"JSTracking_CustomCampaignQueryParam": "Utilizar nomes de parâmetros de consultas personalizados para o nome da campanha e a palavra-chave.",
"JSTracking_CustomCampaignQueryParamDesc": "Nota: %1$sPiwik irá detectar automaticamente os parâmetros do Google Analytics.%2$s",
"JSTracking_DisableCookies": "Desabilitar todos os cookies de rastreamento",
@@ -49,9 +49,10 @@
"JSTrackingIntro5": "Se você deseja mais do que apenas monitorar exibições de página, porfavor verifique a %1$sdocumentação do rastreamento por javascript do Piwik%2$s para uma lista de funcões disponíveis. Usando essas funções você pode acompanhar objetivos, variáveis ​​personalizadas, ordens de comércio eletrônico, compras abandonadas e muito mais.",
"LogoNotWriteableInstruction": "Para usar um logotipo cutomizado ao invés do logo padrão Piwiki, dê permissão de escrita para esse diretório: %1$s Piwiki precisa de acesso de escrita para seus logotipos armazenados no arquivo %2$s.",
"FileUploadDisabled": "O carregamento de arquivos não está habilitado na sua configuração do PHP. Para carregar uma logomarca customizada defina %s no php.ini e reinicie seu servidor web.",
+ "LogoUploadFailed": "O arquivo enviado não pôde ser processado. Por favor, verifique se o arquivo tem um formato válido.",
"LogoUpload": "Selecione um logotipo para carregar",
"FaviconUpload": "Selecione um Favicon para carregar",
- "LogoUploadHelp": "Por favor carregue um arquivo nos formatos %s com uma altura mínima de %s pixels.",
+ "LogoUploadHelp": "Por favor faça o upload de um arquivo nos formatos %1$s com uma altura mínima de %2$s pixels.",
"MenuDiagnostic": "Diagnostico",
"MenuGeneralSettings": "Configurações Gerais",
"MenuManage": "Gerenciar",
@@ -60,19 +61,19 @@
"OptOutCompleteBis": "Note que se você limpar os cookies, excluir o cookie de opt-out, ou se mudar de computador ou navegadores da Web, você vai precisar realizar o procedimento opt-out novamente.",
"OptOutDntFound": "Você não está sendo monitorado desde que o seu navegador está informando que você não quer isso. Essa é uma configuração do seu navegador portanto você não será capaz de aceitar ser rastreado até que você desative o recurso \"Do Not Track\".",
"OptOutExplanation": "Piwik é dedicado a fornecer a privacidade na Internet. Para fornecer a seus visitantes a escolha de opting-out de Piwik Web Analytics, você pode adicionar o seguinte código HTML em uma página do seu site, por exemplo, em uma página de Política de Privacidade.",
- "OptOutExplanationBis": "Este código irá exibir um iframe contendo um link para os seus visitantes optarem por definir um cookie em seus navegadores para não utilizar o Piwik. %sClique aqui%s para visualizar o conteúdo que será exibido pelo iFrame.",
+ "OptOutExplanationBis": "Este código irá exibir um iframe contendo um link para os seus visitantes optarem por definir um cookie em seus navegadores para não utilizar o Piwik. %1$sClique aqui%2$s para visualizar o conteúdo que será exibido pelo iFrame.",
"OptOutForYourVisitors": "Piwik opt-out para os seus visitantes",
"PiwikIsInstalledAt": "Piwik esta instalado no",
"PersonalPluginSettings": "Configurações pessoais do plugin",
- "PluginSettingChangeNotAllowed": "Você não tem permissão para alterar o valor da configuração \"%s\" no plug-in \"%s\"",
- "PluginSettingReadNotAllowed": "Você não tem permissão para ler o valor da configuração \"%s\" no plug-in \"%s\"",
+ "PluginSettingChangeNotAllowed": "Você não tem permissão para alterar o valor da configuração \"%1$s\" no plug-in \"%2$s\"",
+ "PluginSettingReadNotAllowed": "Você não tem permissão para ler o valor da configuração \"%1$s\" no plug-in \"%2$s\"",
"PluginSettings": "Configurações do plugin",
"PluginSettingsIntro": "Aqui você pode alterar as configurações dos seguintes plugins de terceiros:",
- "PluginSettingsValueNotAllowed": "O valor para o campo \"%s\" no plug-in \"%s\" não é permitido",
+ "PluginSettingsValueNotAllowed": "O valor para o campo \"%1$s\" no plugin \"%2$s\" inão é permitido",
"PluginSettingsSaveFailed": "Falhou ao salvar as configurações do plugin",
"SendPluginUpdateCommunication": "Envie um e-mail quando uma atualização de plugin estiver disponível",
"SendPluginUpdateCommunicationHelp": "Um e-mail será enviado para os Super Usuários quando houver uma nova versão disponível para um plugin.",
- "StableReleases": "Se Piwik é uma parte crítica do seu negócio, recomendamos que você use a última versão estável. Se você usar a versão beta mais recente e você encontrar um erro ou tem uma sugestão, por favor, %sveja aqui%s.",
+ "StableReleases": "Se o Piwik é uma parte crítica do seu negócio, recomendamos que você use a última versão estável. Se você usar a versão beta mais recente e encontrar uma falha ou tiver alguma sugestão, por favor, %1$sveja aqui%2$s.",
"LtsReleases": "Versões LTS (Long Term Support - Suporte de Longo Prazo) recebe apenas correções de bugs e segurança.",
"SystemPluginSettings": "Configurações de Plugin do Sistema",
"TrackAGoal": "Monitorar uma meta",
@@ -89,6 +90,6 @@
"YouMayOptOutBis": "Para fazer essa escolha, clique abaixo para receber um cookie de opt-out.",
"OptingYouOut": "Optando por sair, por favor aguarde ...",
"ProtocolNotDetectedCorrectly": "Você está visualizando o Piwik atualmente através de uma conexão SSL segura (utilizando https), mas o Piwik só pode detectar uma conexão não segura no servidor.",
- "ProtocolNotDetectedCorrectlySolution": "Para certificar-se que o Piwik solicita e serve o seu conteúdo de forma segura através de HTTPS, você pode editar seu arquivo %s e configurar as configurações de proxy; ou, você pode adicionar a linha %s abaixo da seção %s. %sSaiba mais%s"
+ "ProtocolNotDetectedCorrectlySolution": "Para certificar-se que o Piwik solicita e serve o seu conteúdo de forma segura através de HTTPS, você pode editar o seu %1$s arquivo, assim como configurar o proxy, ou você pode adicionar a linha %2$s abaixo da %3$s seção. %4$sSaiba mais%5$s"
}
} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/pt.json b/plugins/CoreAdminHome/lang/pt.json
index b20f612246..cecdc2c942 100644
--- a/plugins/CoreAdminHome/lang/pt.json
+++ b/plugins/CoreAdminHome/lang/pt.json
@@ -14,7 +14,6 @@
"InvalidPluginsWarning": "Os seguintes plugins não são compatíveis com %1$s e não puderam ser carregados: %2$s.",
"JavaScriptTracking": "Monitorização por JavaScript",
"JSTracking_CampaignKwdParam": "Parâmetro da Palavra Chave da Campanha",
- "JSTracking_CodeNote": "Certifique-se que este código se encontra em todas as páginas do seu sítio de internet antes da etiqueta %1$s.",
"JSTracking_DisableCookies": "Desabilitar todos os cookies de rastreio.",
"JSTracking_EnableDoNotTrack": "Ativar deteção NãoSeguir do lado do cliente",
"JSTracking_MergeSubdomains": "Seguir visitantes através todos os subdomínios de",
@@ -32,16 +31,16 @@
"OptOutComplete": "Opt-out completo; as suas visitas a este site não serão gravadas pela ferramenta de Web Analytics.",
"OptOutCompleteBis": "Note que se você apagar os cookies, apagar o cookie de opt-out, ou se você mudar de computador ou navegadores Web, vai precisar de realizar o procedimento de opt-out novamente.",
"OptOutExplanation": "O Piwik é dedicado a fornecer privacidade na Internet. Para apresentar aos seus visitantes a escolha de opting-out da Web Analytics Piwik, você pode adicionar o seguinte código HTML em uma das páginas do seu site, por exemplo, numa página de Política de Privacidade.",
- "OptOutExplanationBis": "Este código irá exibir um iFrame contendo um link para que seus visitantes possam fazer opt-out do Piwik definindo um cookie de opt-out nos navegadores do utilizador. %s Clique aqui%s para ver o conteúdo que será exibido pelo iFrame.",
+ "OptOutExplanationBis": "Este código irá exibir um iFrame contendo um link para que seus visitantes possam fazer opt-out do Piwik definindo um cookie de opt-out nos navegadores do utilizador. %1$s Clique aqui%2$s para ver o conteúdo que será exibido pelo iFrame.",
"OptOutForYourVisitors": "opt-out do Piwik para os seus visitantes",
"PiwikIsInstalledAt": "Piwik encontra-se instalado em",
- "PluginSettingChangeNotAllowed": "Não lhe é permitido alterar o valor da definição \"%s\" no plugin \"%s\"",
- "PluginSettingReadNotAllowed": "Não lhe é permitido ler o valor da definição \"%s\" no plugin \"%s\"",
+ "PluginSettingChangeNotAllowed": "Não lhe é permitido alterar o valor da definição \"%1$s\" no plugin \"%2$s\"",
+ "PluginSettingReadNotAllowed": "Não lhe é permitido ler o valor da definição \"%1$s\" no plugin \"%2$s\"",
"PluginSettingsIntro": "Aqui pode alterar as definições dos seguintes plugins de terceiros:",
- "PluginSettingsValueNotAllowed": "O valor para o campo \"%s\" no plugin \"%s\" não é permitido",
+ "PluginSettingsValueNotAllowed": "O valor para o campo \"%1$s\" no plugin \"%2$s\" não é permitido",
"SendPluginUpdateCommunication": "Enviar um email quando uma actualização ao plugin estiver disponível",
"SendPluginUpdateCommunicationHelp": "Será enviado um email para os Super Utilizadores quando existir uma nova versão disponível para um plugin.",
- "StableReleases": "Se o Piwik é uma parte crítica do seu negócio, recomendamos que utilize a versão estável mais recente. Se você usa a mais recente versão beta e julga que encontrou um erro ou possui uma sugestão, por favor %sveja aqui%s.",
+ "StableReleases": "Se o Piwik é uma parte crítica do seu negócio, recomendamos que utilize a versão estável mais recente. Se você usa a mais recente versão beta e julga que encontrou um erro ou possui uma sugestão, por favor %1$sveja aqui%2$s.",
"TrackAGoal": "Monitorize um objectivo",
"TrackingCode": "Código de monitorização",
"UpdateSettings": "Actualizar definições",
diff --git a/plugins/CoreAdminHome/lang/ro.json b/plugins/CoreAdminHome/lang/ro.json
index cf44b37e51..a31494c3f0 100644
--- a/plugins/CoreAdminHome/lang/ro.json
+++ b/plugins/CoreAdminHome/lang/ro.json
@@ -5,9 +5,9 @@
"BrandingSettings": "Setări branding",
"ClickHereToOptIn": "Apasa aici pentru a te abona.",
"ClickHereToOptOut": "Apasa aici pentru a te dezabona.",
- "CustomLogoFeedbackInfo": "Daca customizezi logo-ul Piwik, ai putea fi interesat sa ascunzi linkul %s in meniul de sus. Pentru a face asta, poti dezactiva pluginul Feedback pe pagina %sManage Plugins%s.",
+ "CustomLogoFeedbackInfo": "Daca customizezi logo-ul Piwik, ai putea fi interesat sa ascunzi linkul %1$s in meniul de sus. Pentru a face asta, poti dezactiva pluginul Feedback pe pagina %2$sManage Plugins%3$s.",
"CustomLogoHelpText": "Poţi personaliza logoul Piwik care va fi afişat în interfaţa de utilizator şi în rapoartele email.",
- "DevelopmentProcess": "In timp ce %sprocesul de dezvoltare%s include mii de teste automate, Testerii Beta au un rol esential in a-si insusi \"No bug policy\" in Piwik.",
+ "DevelopmentProcess": "In timp ce %1$sprocesul de dezvoltare%2$s include mii de teste automate, Testerii Beta au un rol esential in a-si insusi \"No bug policy\" in Piwik.",
"EmailServerSettings": "Setările serverului email",
"ForBetaTestersOnly": "Numai pentru beta-testeri",
"ImageTracking": "Urmărire prin imagine",
@@ -22,7 +22,6 @@
"JavaScriptTracking": "Urmărire prin JavaScript",
"JSTracking_CampaignKwdParam": "Parametru Campanie Cuvânt Cheie",
"JSTracking_CampaignNameParam": "Parametrul Nume Campanie (Campaign Name)",
- "JSTracking_CodeNote": "Asigura-te ca acest cod este pe fiecare pagina a siteului tau inainte de tagul %1$s.",
"JSTracking_CustomCampaignQueryParam": "Foloseste nume customizate pentru parametrii de cautare, pentru numele campaniei & cuvant.",
"JSTracking_CustomCampaignQueryParamDesc": "Notă: %1$sPiwik va detecta automat parametrii Google Analytics.%2$s",
"JSTracking_EnableDoNotTrack": "Activeaza detectia DoNotTrack pentru vizitatori (client side).",
@@ -46,22 +45,22 @@
"LogoNotWriteableInstruction": "Pentru a folosi logo-ul tau custom in loc de logo-ul default Piwik, trebuie sa pui permisiuni de scriere pe acest director. %1$s Piwik are nevoie de drept de scriere pentru logo-urile tale salvate in fisiere %2$s.",
"LogoUpload": "Alege logo-ul pentru încărcare",
"FaviconUpload": "Alege un favicon pentru a fi încărcat",
- "LogoUploadHelp": "Te rugam sa incarci un fisier cu formaturile %s, cu o inaltime minima de %s pixeli.",
+ "LogoUploadHelp": "Te rugam sa incarci un fisier cu formaturile %1$s, cu o inaltime minima de %2$s pixeli.",
"MenuDiagnostic": "Diagnosticare",
"MenuGeneralSettings": "Setări generale",
"MenuManage": "Administrare",
"OptOutComplete": "Dezabonare completa; vizitele tale pe acest site nu vor fi contorizate de tool-ul de Web Analytics.",
"OptOutCompleteBis": "Aminteste-ti ca daca dai clear la cookie-uri, stergi cookie-ul de dezabonare sau daca schimbi calculatoarele sau browserele web, tot vei fi nevoit sa te dezabonezi iarasi.",
"OptOutExplanation": "Piwik este dedicat sa furnizeze intimitate\/privacy pe Internet. Pentru a lasa vizitatorilor tai optiunea de dezabonare de la Piwik Web Analytics, poti adauga urmatorul cod HTML pe una dintre paginile siteului tau, de exemplu pe pagina de Privacy Policy.",
- "OptOutExplanationBis": "Acest cod va afisa un Iframe ce va contine un link pentru ca vizitatorii tai sa se poata dezabona de la Piwik setand un cookie de dezabonare in browserele lor. %s Click aici%s pentru a vedea continutul care va fi afisat de iFrame.",
+ "OptOutExplanationBis": "Acest cod va afisa un Iframe ce va contine un link pentru ca vizitatorii tai sa se poata dezabona de la Piwik setand un cookie de dezabonare in browserele lor. %1$s Click aici%2$s pentru a vedea continutul care va fi afisat de iFrame.",
"OptOutForYourVisitors": "Dezabonare Piwik pentru vizitatorii tai",
"PiwikIsInstalledAt": "Piwik este instalat în",
- "PluginSettingChangeNotAllowed": "Nu iti este permis sa schimbi valoarea setarii \"%s\" in plugin \"%s\"",
- "PluginSettingReadNotAllowed": "Nu se poate citi valoare setării \"%s\" din modulul \"%s\"",
+ "PluginSettingChangeNotAllowed": "Nu iti este permis sa schimbi valoarea setarii \"%1$s\" in plugin \"%2$s\"",
+ "PluginSettingReadNotAllowed": "Nu se poate citi valoare setării \"%1$s\" din modulul \"%2$s\"",
"PluginSettingsIntro": "Aici poti schimba setarile pentru urmatoarele pluginuri terte (3rd party):",
- "PluginSettingsValueNotAllowed": "Valoarea pentru campul \"%s\" in plugin \"%s\" nu este permisa",
+ "PluginSettingsValueNotAllowed": "Valoarea pentru campul \"%1$s\" in plugin \"%2$s\" nu este permisa",
"SendPluginUpdateCommunicationHelp": "Va fi trimis un email catre Super Users cand va fi o noua versiune disponibila pentru un plugin.",
- "StableReleases": "Daca Piwik este un aspect foarte important al afacerii tale, noi recomandam sa folosesti ultima versiune stabila. Daca folosesti ultima versiune beta si gasesti un bug sau ai o sugestie, te rugam %suita-te aici%s.",
+ "StableReleases": "Daca Piwik este un aspect foarte important al afacerii tale, noi recomandam sa folosesti ultima versiune stabila. Daca folosesti ultima versiune beta si gasesti un bug sau ai o sugestie, te rugam %1$suita-te aici%2$s.",
"TrackAGoal": "Urmăreşte o ţintă",
"TrackingCode": "Codul de urmărire",
"TrustedHostConfirm": "Eşti sigur că doreşti să schimbi numele hostului de încredere Piwik_",
diff --git a/plugins/CoreAdminHome/lang/ru.json b/plugins/CoreAdminHome/lang/ru.json
index 83aaa6059a..92b61015dc 100644
--- a/plugins/CoreAdminHome/lang/ru.json
+++ b/plugins/CoreAdminHome/lang/ru.json
@@ -5,9 +5,9 @@
"BrandingSettings": "Настройки логотипа",
"ClickHereToOptIn": "Кликните, чтобы вы учитывались в аналитике.",
"ClickHereToOptOut": "Кликните, чтобы отказаться от учета вас в аналитике.",
- "CustomLogoFeedbackInfo": "Если вы используйете свой логотип, вам, возможно, также понадобится скрыть ссылку %s в верхнем меню. Для этого просто отключите плагин Feedback (обратная связь) на странице %sУправление плагинами%s.",
+ "CustomLogoFeedbackInfo": "Если вы используйете свой логотип, вам, возможно, также понадобится скрыть ссылку %1$s в верхнем меню. Для этого просто отключите плагин Feedback (обратная связь) на странице %2$sУправление плагинами%3$s.",
"CustomLogoHelpText": "Вы можете добавить свой логотип, который будет отображаться отчетах.",
- "DevelopmentProcess": "В то время как наш %sпроцесс разработки%s включает в себя тысячи автоматизированных тестов, бета-тестеры играют ключевую роль в достижении \"No bug policy\" в Piwik.",
+ "DevelopmentProcess": "В то время как наш %1$sпроцесс разработки%2$s включает в себя тысячи автоматизированных тестов, бета-тестеры играют ключевую роль в достижении \"No bug policy\" в Piwik.",
"EmailServerSettings": "Настройки сервера электронной почты",
"ForBetaTestersOnly": "Только для бета-тестеров",
"ImageTracking": "Отслеживание через изображение",
@@ -20,7 +20,6 @@
"InvalidPluginsWarning": "Следующие плагины не совместимы с %1$s и не могут быть загружены: %2$s.",
"InvalidPluginsYouCanUninstall": "Вы можете обновить или удалить эти плагины на странице %1$sУправления плагинами%2$s.",
"JavaScriptTracking": "JavaScript-отслеживание",
- "JSTracking_CodeNote": "Удостоверьтесь, что этот код содержится на каждой странице вашего сайта перед тегом %1$s.",
"JSTracking_CustomCampaignQueryParam": "Использовать пользовательские имена параметров в запросе для названия кампании и ключевого слова",
"JSTracking_CustomCampaignQueryParamDesc": "Примечание: %1$sPiwik автоматически определит параметры Google Analytics.%2$s",
"JSTracking_DisableCookies": "Отключить все отслеживания cookies",
@@ -47,7 +46,7 @@
"FileUploadDisabled": "Загрузка файлов не включена в вашей конфигурации PHP. Для загрузки другого логотипа выставите %s в php.ini и перезапустите веб-сервер.",
"LogoUpload": "Выберите лого для загрузки",
"FaviconUpload": "Выбрать Favicon для загрузки",
- "LogoUploadHelp": "Пожалуйста, закачивайте файлы в %s форматах, минимальное ограничение по высоте – %s пикселей.",
+ "LogoUploadHelp": "Пожалуйста, закачивайте файлы в %1$s форматах, минимальное ограничение по высоте – %2$s пикселей.",
"MenuDiagnostic": "Диагностика",
"MenuGeneralSettings": "Основные настройки",
"MenuManage": "Управление",
@@ -55,19 +54,19 @@
"OptOutComplete": "Исключение из политики конфиденциальности завершено; ваши посещения на данный сайт не будут учитываться системой веб аналитики. Мы уважаем ваш выбор.",
"OptOutCompleteBis": "Заметьте, что если вы очистите cookies браузера, то, скорее всего, удалится и исключительный cookie, или если вы поменяете компьютер или браузер, то необходимо будет пройти процедуру исключения снова.",
"OptOutExplanation": "Piwik – за сохранение личных данных в сети. Поэтому данная система может предложить вашим пользователям выбор исключения из политики конфиденциальности (отказ от дальнейшего сбора статистики о пользователе). Вы можете вставить следующий HTML-код на одну из ваших страниц сайта, например на страницу о гарантиях конфиденциальности.",
- "OptOutExplanationBis": "Этот код будет отображаться в iFrame, содержащем ссылку для посетителя для отказа о сборе данных о нем. Данные отказа хранятся на стороне посетителя, в его cookies браузера. %s Нажмите здесь%s для просмотра содержимого iFrame.",
+ "OptOutExplanationBis": "Тег покаже \"iframe\", в якому міститиметься посилання для ваших відвідувачів, клацнувши на яке, вони зможуть відмовитися від потрапляння в веб-аналітику через отримання відповідного файлу cookie. %1$s Клацніть тут%2$s, щоб переглянути вміст що буде показано в \"iframe\".",
"OptOutForYourVisitors": "Исключение из политики конфиденциальности Piwik для посетителей",
"PiwikIsInstalledAt": "Piwik установлен в",
"PersonalPluginSettings": "Персональные настройки плагинов",
- "PluginSettingChangeNotAllowed": "Вам не разрешено менять значение \"%s\" для плагина \"%s\"",
- "PluginSettingReadNotAllowed": "Вам не разрешено читать значение \"%s\" плагина \"%s\"",
+ "PluginSettingChangeNotAllowed": "Вам не разрешено менять значение \"%1$s\" для плагина \"%2$s\"",
+ "PluginSettingReadNotAllowed": "Вам не разрешено читать значение \"%1$s\" плагина \"%2$s\"",
"PluginSettings": "Настройки плагинов",
"PluginSettingsIntro": "Здесь вы можете изменить настройки для следующих плагинов:",
- "PluginSettingsValueNotAllowed": "Значение для поля \"%s\" в плагине \"%s\" не разрешено",
+ "PluginSettingsValueNotAllowed": "Значение для поля \"%1$s\" в плагине \"%2$s\" не разрешено",
"PluginSettingsSaveFailed": "Ошибка при сохранении настроек плагина",
"SendPluginUpdateCommunication": "Отправить email с уведомлением, когда для плагина будет доступна новая версия",
"SendPluginUpdateCommunicationHelp": "Письмо будет отправлено суперпользователю когда будет доступна новая версия плагина.",
- "StableReleases": "Если Piwik является важной частью вашего бизнеса, мы рекомендуем использовать последнюю стабильную версию. Если вы используете последнюю бета версию, и вы нашли ошибку или есть предложение, пожалуйста, %sперейдите по ссылке%s.",
+ "StableReleases": "Если Piwik является важной частью вашего бизнеса, мы рекомендуем использовать последнюю стабильную версию. Если вы используете последнюю бета версию, и вы нашли ошибку или есть предложение, пожалуйста, %1$sперейдите по ссылке%2$s.",
"SystemPluginSettings": "Системные настройки плагинов",
"TrackAGoal": "Отслеживать цель",
"TrackingCode": "Код отслеживания",
diff --git a/plugins/CoreAdminHome/lang/sl.json b/plugins/CoreAdminHome/lang/sl.json
index 70a67db34c..d864275440 100644
--- a/plugins/CoreAdminHome/lang/sl.json
+++ b/plugins/CoreAdminHome/lang/sl.json
@@ -6,9 +6,9 @@
"BrandingSettings": "Nastavitve znamke",
"ClickHereToOptIn": "Kliknite tukaj za prijavo",
"ClickHereToOptOut": "Kliknite tukaj, če se želite odjaviti",
- "CustomLogoFeedbackInfo": "Če želite prilagoditi Piwik logo, bi morda želeli tudi skriti povezavo %s v vrhnjem meniju. To lahko storite tako, da onemogočite vtičnik Feedback na strani %sUpravljanje vtičnikov%s.",
+ "CustomLogoFeedbackInfo": "Če želite prilagoditi Piwik logo, bi morda želeli tudi skriti povezavo %1$s v vrhnjem meniju. To lahko storite tako, da onemogočite vtičnik Feedback na strani %2$sUpravljanje vtičnikov%3$s.",
"CustomLogoHelpText": "Piwik-ov logo lahko prilagodite po vaših željah. Spremembe bodo vidne tako v uporabniškem vmesniku, kot v email poročilih.",
- "DevelopmentProcess": "Čeprav naš %srazvojni proces%s vključuje na tisoče avtomatiziranih testov, imajo Beta testerji ključno vlogo pri zagotavljanju \"No bug\" politike Piwika.",
+ "DevelopmentProcess": "Čeprav naš %1$srazvojni proces%2$s vključuje na tisoče avtomatiziranih testov, imajo Beta testerji ključno vlogo pri zagotavljanju \"No bug\" politike Piwika.",
"EmailServerSettings": "Nastavitev strežnika za email",
"ForBetaTestersOnly": "Samo za Beta testerje",
"ImageTracking": "Sledenje s pomočjo slike",
diff --git a/plugins/CoreAdminHome/lang/sq.json b/plugins/CoreAdminHome/lang/sq.json
index 2e5f3bae8a..33bf6ac651 100644
--- a/plugins/CoreAdminHome/lang/sq.json
+++ b/plugins/CoreAdminHome/lang/sq.json
@@ -4,7 +4,7 @@
"BrandingSettings": "Rregullime marke",
"ClickHereToOptIn": "Klikoni këtu për të kryer \"opt in\"",
"ClickHereToOptOut": "Klikoni këtu për të kryer \"opt out\"",
- "CustomLogoFeedbackInfo": "Nëse e përshtatni logon e Piwik-ut, mund t’ju interesonte edhe fshehja lidhjes %s te menuja në krye. Për ta bërë këtë, mund të çaktivizoni shtojcën e Përshtypjeve te faqja e %sAdministrimit të Shtojcëve%s.",
+ "CustomLogoFeedbackInfo": "Nëse e përshtatni logon e Piwik-ut, mund t’ju interesonte edhe fshehja lidhjes %1$s te menuja në krye. Për ta bërë këtë, mund të çaktivizoni shtojcën e Përshtypjeve te faqja e %2$sAdministrimit të Shtojcëve%3$s.",
"CustomLogoHelpText": "Logon e Piwik-ut, që do të shfaqet në ndërfaqen e përdoruesit dhe raportet email.",
"EmailServerSettings": "Rregullime shërbyesi email",
"LogoUpload": "Përzgjidhni një Logo për ta ngarkuar",
@@ -14,7 +14,7 @@
"OptOutComplete": "\"Opt-out\" u plotësua; vizitat tuaja në këtë \"site\" web nuk do të regjistrohen nga mjeti Analiza Web.",
"OptOutCompleteBis": "Mbani parasysh që nëse i hiqni \"cookie\"-t tuaja, fshini \"cookie\"-in për \"opt-out\", ose ndërroni kompjuter apo shfletues Web, do t'ju duhet të kryeni sërish procedurën për \"opt-out\".",
"OptOutExplanation": "Piwik-u është i përkushtuar ndaj mundësimit të vetësisë në Internet. Për t'u dhënë mundësinë e zgjedhjes së \"opt-out\" te Analizat Web Piwik, mund të shtoni kodin HTML vijues te një nga faqet e site-it tuaj web, për shembull te faqja e Rregullave të Vetësisë.",
- "OptOutExplanationBis": "Ky kod do të shfaqë një Iframe që përmban një lidhje me të cilën vizitorët të mund të zgjedhin \"opt-out\" për Piwik-un, duke depozituar një \"opt-out cookie\" në shfletuesin e tyre. %s Klikoni këtu%s që të shihni lëndën që do të shfaqet nga iFrame-i.",
+ "OptOutExplanationBis": "Ky kod do të shfaqë një Iframe që përmban një lidhje me të cilën vizitorët të mund të zgjedhin \"opt-out\" për Piwik-un, duke depozituar një \"opt-out cookie\" në shfletuesin e tyre. %1$s Klikoni këtu%2$s që të shihni lëndën që do të shfaqet nga iFrame-i.",
"OptOutForYourVisitors": "\"Opt-out\" i Piwik-ut për vizitorët tuaj",
"PiwikIsInstalledAt": "Piwik-u është instaluar te",
"TrustedHostConfirm": "Jeni i sigurt se doni të ndryshoni emërstrehën e besuar të Piwik-ut?",
diff --git a/plugins/CoreAdminHome/lang/sr.json b/plugins/CoreAdminHome/lang/sr.json
index e2a8cccc0f..f5707fff06 100644
--- a/plugins/CoreAdminHome/lang/sr.json
+++ b/plugins/CoreAdminHome/lang/sr.json
@@ -6,9 +6,9 @@
"BrandingSettings": "Podešavanje brendiranja",
"ClickHereToOptIn": "Kliknite za uključenje.",
"ClickHereToOptOut": "Kliknite za izuzeće.",
- "CustomLogoFeedbackInfo": "Ako podesite Piwik logo, možda biste bili zainteresovani da sakrijete %s link iz glavnog menija. Da to uradite, možete isključiti Feedback plugin iz %sOrganizuj Plugin-ove%s.",
+ "CustomLogoFeedbackInfo": "Ako podesite Piwik logo, možda biste bili zainteresovani da sakrijete %1$s link iz glavnog menija. Da to uradite, možete isključiti Feedback plugin iz %2$sOrganizuj Plugin-ove%3$s.",
"CustomLogoHelpText": "Možete podesiti Piwik logo koji će biti prikazan u korisničkom interfejsu i E-Mail izveštajima.",
- "DevelopmentProcess": "Iako se naš %srazvojni proces%s zasniva na preko hiljadu automatskih testova, beta testeri igraju ključnu ulogu u postizanju \"Politike bez bagova\"",
+ "DevelopmentProcess": "Iako se naš %1$srazvojni proces%2$s zasniva na preko hiljadu automatskih testova, beta testeri igraju ključnu ulogu u postizanju \"Politike bez bagova\"",
"EmailServerSettings": "Podešavanje servera za elektronsku poštu",
"ForBetaTestersOnly": "Samo za beta testere",
"ImageTracking": "Praćenje pomoću slike",
@@ -23,7 +23,6 @@
"JavaScriptTracking": "Praćenje pomoću JavaScript-a",
"JSTracking_CampaignKwdParam": "Parametar ključne reči kampanje",
"JSTracking_CampaignNameParam": "Parametar naziva kampanje",
- "JSTracking_CodeNote": "Proverite da li se ovaj kod nalazi na svakoj stranici vašeg sajta pre %1$s taga.",
"JSTracking_CustomCampaignQueryParam": "Korišćenje korisnički definisanih parametara za nazive i ključne reči kampanje",
"JSTracking_CustomCampaignQueryParamDesc": "%1$sPiwik će automatski prepoznati Google Analytics parametre.%2$s",
"JSTracking_DisableCookies": "Isključi sve kolačiće koji služe za praćenje",
@@ -50,7 +49,7 @@
"FileUploadDisabled": "Otpremanje datoteka nije omogućeno u podešavanjima za vaš PHP. Da biste otpremili sopstveni logotip, molimo vas da postavite %s u php.ini i restartujete veb server.",
"LogoUpload": "Izaberite logo za kačenje",
"FaviconUpload": "Izaberite ikonicu koju želite da postavite",
- "LogoUploadHelp": "Molimo vas da postavite datoteku u %s formatima minimalne visine %s piksela.",
+ "LogoUploadHelp": "Molimo vas da postavite datoteku u %1$s formatima minimalne visine %2$s piksela.",
"MenuDiagnostic": "Dijagnostika",
"MenuGeneralSettings": "Osnovna podešavanja",
"MenuManage": "Upravljanje",
@@ -59,19 +58,19 @@
"OptOutCompleteBis": "Imajte na umu da ako obrišete kolačiće ili promenite računar ili brauzer, da ćete morati ponovo da prođete kroz ovu proceduru.",
"OptOutDntFound": "Vaše akcije se ne beleže pošto vaš brauzer kaže da vi to ne želite. U pitanju je podešavanje u vašem brauzeru tako da nećete moći da se prijavite sve dok ne isključite 'Nemoj da me pratiš' opciju.",
"OptOutExplanation": "Piwik poštuje privatnost na Internetu. Kako biste omogućili vašim posetiocima da budu izuzeti iz Piwik analize, dodajte sledeći HTML kod na neku od stranica vaše sajta, na primer u polisu privatnosti",
- "OptOutExplanationBis": "Ovaj tag će prikazati iframe element koji sadrži link za vaše posetioce koji žele da budu izuzeti iz Piwik analize tako što će imati specijalan opt-out kolačić u svom brauzeru. %s Kliknite ovde%s kako biste videli sadržaj iframe elementa.",
+ "OptOutExplanationBis": "Ovaj tag će prikazati iframe element koji sadrži link za vaše posetioce koji žele da budu izuzeti iz Piwik analize tako što će imati specijalan opt-out kolačić u svom brauzeru. %1$s Kliknite ovde%2$s kako biste videli sadržaj iframe elementa.",
"OptOutForYourVisitors": "Piwik opt-out za vaše posetioce",
"PiwikIsInstalledAt": "Piwik je instaliran",
"PersonalPluginSettings": "Lična podešavanja dodataka",
- "PluginSettingChangeNotAllowed": "Nije vam dozvoljeno da promenite vrednost podešavanja \"%s\" u dodatku \"%s\"",
- "PluginSettingReadNotAllowed": "Nije vam dozvoljeno da vidite vrednost podešavanja \"%s\" u dodatku \"%s\"",
+ "PluginSettingChangeNotAllowed": "Nije vam dozvoljeno da promenite vrednost podešavanja \"%1$s\" u dodatku \"%2$s\"",
+ "PluginSettingReadNotAllowed": "Nije vam dozvoljeno da vidite vrednost podešavanja \"%1$s\" u dodatku \"%2$s\"",
"PluginSettings": "Podešavanja dodataka",
"PluginSettingsIntro": "Ovde možete promeniti podešavanja sledećih dodataka:",
- "PluginSettingsValueNotAllowed": "Vrednost za polje \"%s\" u dodatku \"%s\" nije dozvoljena",
+ "PluginSettingsValueNotAllowed": "Vrednost za polje \"%1$s\" u dodatku \"%2$s\" nije dozvoljena",
"PluginSettingsSaveFailed": "Greška prilikom snimanja podešavanja dodataka",
"SendPluginUpdateCommunication": "Pošalji mejl svaki put kada se pojavi nova verzija dodatka",
"SendPluginUpdateCommunicationHelp": "Mejl će biti poslat superkorisnicima kad god se pojavi nova verzija ovog dodatka.",
- "StableReleases": "Ukoliko Piwik čini kritičan deo vašeg poslovanja, preporučujemo vam da koristite poslednju stabilnu verziju. Ukoliko koristite poslednju beta verziju i nađete bag ili imate predlog, molimo vas %spogledajte ovde%s.",
+ "StableReleases": "Ukoliko Piwik čini kritičan deo vašeg poslovanja, preporučujemo vam da koristite poslednju stabilnu verziju. Ukoliko koristite poslednju beta verziju i nađete bag ili imate predlog, molimo vas %1$spogledajte ovde%2$s.",
"SystemPluginSettings": "Sistemska podešavanja dodataka",
"TrackAGoal": "Praćenje cilja",
"TrackingCode": "Kod za praćenje",
diff --git a/plugins/CoreAdminHome/lang/sv.json b/plugins/CoreAdminHome/lang/sv.json
index 7057a10bc1..e00f68b9a4 100644
--- a/plugins/CoreAdminHome/lang/sv.json
+++ b/plugins/CoreAdminHome/lang/sv.json
@@ -1,13 +1,14 @@
{
"CoreAdminHome": {
+ "AddNewTrustedHost": "Lägg till en ny betrodd värd",
"Administration": "Administration",
"ArchivingSettings": "Inställningar för arkivering",
"BrandingSettings": "Varumärkesinställningar",
"ClickHereToOptIn": "Klicka här för att gå med.",
"ClickHereToOptOut": "Klicka här för att gå ur.",
- "CustomLogoFeedbackInfo": "Om du anpassar Piwik's logotyp, kanske du också är intresserad av att dölja %s länken i toppmenyn. För att göra detta kan du inaktivera pluginen Feedback på sidan %sHantera Plugins%s.",
+ "CustomLogoFeedbackInfo": "Om du anpassar Piwik's logotyp, kanske du också är intresserad av att dölja %1$s länken i toppmenyn. För att göra detta kan du inaktivera pluginen Feedback på sidan %2$sHantera Plugins%3$s.",
"CustomLogoHelpText": "Du kan anpassa Piwik's logotyp som kommer att visas i användargränssnittet och i e-postrapporter.",
- "DevelopmentProcess": "Vår %sutvecklingsprocess%s inkluderar tusentals automatiserade test, och Beta test spelar en nyckelroll i Piwiks policy mot buggar.",
+ "DevelopmentProcess": "Vår %1$sutvecklingsprocess%2$s inkluderar tusentals automatiserade test, och Beta test spelar en nyckelroll i Piwiks policy mot buggar.",
"EmailServerSettings": "E-postinställningar (server)",
"ForBetaTestersOnly": "Endast för betatestare",
"ImageTracking": "Bildspårning",
@@ -22,7 +23,7 @@
"JavaScriptTracking": "Spårning med JavaScript",
"JSTracking_CampaignKwdParam": "Parameter för nyckelorden i kampanjen",
"JSTracking_CampaignNameParam": "villkor för kampanjnamn",
- "JSTracking_CodeNote": "Se till att denna kod finns på varje sida av din hemsida före %1$s taggen.",
+ "JSTracking_CodeNoteBeforeClosingHead": "Säkerställ att denna kod finns på varje sida på din webbplats. Vi rekommenderar att klistra in koden alldeles innan den stängande %1$s-taggen.",
"JSTracking_CustomCampaignQueryParam": "Använd den egna förfrågan för parameterns namn för kampanjnamn och nyckelord",
"JSTracking_CustomCampaignQueryParamDesc": "Observera: %1$sPiwik kommer automatiskt upptäcka parametrar för Google Analytics. %2$s",
"JSTracking_DisableCookies": "Inaktivera spårnings cookies",
@@ -49,7 +50,7 @@
"FileUploadDisabled": "Uppladdning av filer är inte aktiverat i din PHP-konfiguration. För att ladda upp din egen logo, sätt %s i php.ini och starta om din webbläsare.",
"LogoUpload": "Välj en logotyp att ladda upp",
"FaviconUpload": "Välj en Favicon att ladda upp",
- "LogoUploadHelp": "Ladda upp en fil i %s format med en minsta höjd på %s pixlar.",
+ "LogoUploadHelp": "Ladda upp en fil i %1$s format med en minsta höjd på %2$s pixlar.",
"MenuDiagnostic": "Diagnostik",
"MenuGeneralSettings": "Allmänna inställningar",
"MenuManage": "Hantera",
@@ -58,19 +59,20 @@
"OptOutCompleteBis": "Observera att om du rensar cookies, tar bort cookien för exkludering eller om du byter dator eller webbläsare måste du utföra exkluderingen igen.",
"OptOutDntFound": "Du spåras inte eftersom din webbläsare rapporterar att du inte vill det. Detta är en inställning i webbläsaren så du kan inte delta för än du avaktiverat 'Do Not Track'.",
"OptOutExplanation": "Piwik är dedikerat till att erbjuda personlig integritet på Internet. För att ge dina besökare möjligheten att välja om de ska exkluderas från Piwiks webbanalys, kan du lägga till följande HTML-kod på någon av din webbplats sidor, t.ex. på en sida om sekretesspolicy.",
- "OptOutExplanationBis": "Denna kod kommer att visas i en iFrame som innehåller en länk så att dina besökare kan välja bort Piwik genom att sätta en cookie i sina webbläsare. %s Klicka här för%s att visa innehållet som kommer att visas i iFrame'n.",
+ "OptOutExplanationBis": "Denna kod kommer att visas i en iFrame som innehåller en länk så att dina besökare kan välja bort Piwik genom att sätta en cookie i sina webbläsare. %1$s Klicka här för%2$s att visa innehållet som kommer att visas i iFrame'n.",
"OptOutForYourVisitors": "Exkludera spårning för dina besökare",
"PiwikIsInstalledAt": "Piwik är installerat på",
"PersonalPluginSettings": "Personliga plugininställningar",
- "PluginSettingChangeNotAllowed": "Det är inte tillåtet att ändra värdet i inställningar för \"%s\" i plugin \"\"%s\"",
- "PluginSettingReadNotAllowed": "Du har inte rättighet att läsa värdet för inställningen \"%s\" i tillägget \"%s\"",
+ "PluginSettingChangeNotAllowed": "Det är inte tillåtet att ändra värdet i inställningar för \"%1$s\" i plugin \"\"%2$s\"",
+ "PluginSettingReadNotAllowed": "Du har inte rättighet att läsa värdet för inställningen \"%1$s\" i tillägget \"%2$s\"",
"PluginSettings": "Inställningar för plugin",
"PluginSettingsIntro": "Här kan du ändra inställningarna för tredje parts plugin:",
- "PluginSettingsValueNotAllowed": "Värdet för det här området \"%s\" i Plugin \"%s\" är inte tillåtet",
+ "PluginSettingsValueNotAllowed": "Värdet för det här området \"%1$s\" i Plugin \"%2$s\" är inte tillåtet",
"PluginSettingsSaveFailed": "Misslyckades att spara plugin-inställningar",
"SendPluginUpdateCommunication": "Skicka e-post när pluginuppdateringar finns tillgängliga",
"SendPluginUpdateCommunicationHelp": "Ett e-postmeddelande kommer att skickas till Administratörerna när det finns en ny uppdatering för ett tillägg",
- "StableReleases": "Om Piwik är en viktig del av dina affärer, rekommenderar vi dig att använda den senaste versionen. Om du använder den senaste beta versionen och hittar en bugg eller har ett förslag, var vänlig att gå in %shär%s.",
+ "StableReleases": "Om Piwik är en viktig del av dina affärer, rekommenderar vi dig att använda den senaste versionen. Om du använder den senaste beta versionen och hittar en bugg eller har ett förslag, var vänlig att gå in %1$shär%2$s.",
+ "LtsReleases": "LTS-versioner (långtidstöd) får endast säkerhet- och buggfixar.",
"SystemPluginSettings": "Plugininställningar",
"TrackAGoal": "Monitorera ett mål",
"TrackingCode": "Spårningskod",
@@ -84,6 +86,7 @@
"YouAreOptedOut": "Du är just nu exkluderad.",
"YouMayOptOut": "Du kan välja att inte ha ett unikt identifieringsnummer i en cookie tilldelad till din dator för att undvika analys av uppgifter som samlats in på denna webbplats.",
"YouMayOptOutBis": "För att göra det valet, vänligen klicka nedan för att lagra en cookie för exkludering.",
- "OptingYouOut": "Undantar dig, vänligen vänta..."
+ "OptingYouOut": "Undantar dig, vänligen vänta...",
+ "ProtocolNotDetectedCorrectly": "Du använder just nu Piwik över en säker SSL-anslutning (via HTTPS), men Piwik kan bara upptäcka en osäker anslutning på servern."
}
} \ No newline at end of file
diff --git a/plugins/CoreAdminHome/lang/ta.json b/plugins/CoreAdminHome/lang/ta.json
index 134eb09313..613a8d72d0 100644
--- a/plugins/CoreAdminHome/lang/ta.json
+++ b/plugins/CoreAdminHome/lang/ta.json
@@ -14,7 +14,6 @@
"JavaScriptTracking": "ஜாவா ஸ்கிரிப்ட் கண்காணிப்பு",
"JSTracking_CampaignKwdParam": "பிரச்சாரத்தின் திறவுச்சொல் காரணி",
"JSTracking_CampaignNameParam": "பிரச்சாரப் பெயர் அளவுரு",
- "JSTracking_CodeNote": "இந்த குறியீடுகள் உங்கள் தளத்தின் ஒவ்வொரு பக்கத்திலும் %1$s ஒட்டுக்கு முன் இருப்பதை உறுதி செய்யுங்க.",
"JSTracking_CustomCampaignQueryParam": "பிரச்சாரப் பெயர் மற்றும் முக்கியைசொல்லுக்கு, தனிபயன் கேள்வி அளவுரு பெயர்கள் பயன்படுத்துக.",
"JSTracking_CustomCampaignQueryParamDesc": "குறிப்பு: %1$sPiwik தன்னியக்கமாக Google Analytics அளவுருக்களை கண்டுகொள்ளும்.%2$s",
"JSTracking_EnableDoNotTrack": "வாடிக்கையாளர் பக்க DoNotTrack கண்டறிதலை செயல்படுத்த",
diff --git a/plugins/CoreAdminHome/lang/th.json b/plugins/CoreAdminHome/lang/th.json
index 570631d1e5..101d044d4a 100644
--- a/plugins/CoreAdminHome/lang/th.json
+++ b/plugins/CoreAdminHome/lang/th.json
@@ -8,7 +8,7 @@
"OptOutComplete": "เลือกที่จะไม่ครบถ้วนเมื่อคุณเยี่ยมชมเว็บไซต์นี้จะไม่ถูกบันทึกโดยเครื่องมือวิเคราะห์เว็บ",
"OptOutCompleteBis": "โปรดทราบว่า หากคุณลบคุกกี้ของคุณให้ลบคุกกี้ไม่เข้าร่วมหรือถ้าคุณเปลี่ยนเครื่องคอมพิวเตอร์หรือเว็บเบราเซอร์คุณ จะต้องดำเนินการขั้นตอนการยกเลิกการเลือกอีกครั้ง",
"OptOutExplanation": "Piwik มีความมุ่งมั่นที่จะให้ความเป็นส่วนตัวบนอินเทอร์เน็ต เพื่อให้ผู้เข้าชมให้กับทางเลือกของการเลือกออกของ Piwik วิเคราะห์เว็บคุณสามารถเพิ่มรหัส HTML ต่อไปนี้บนหน้าหนึ่งของเว็บไซต์ของคุณ ตัวอย่างเช่น ในหน้านโยบายความเป็นส่วนตัว",
- "OptOutExplanationBis": "รหัสนี้จะแสดง Iframe ที่มีลิงค์สำหรับผู้เข้าชมของคุณเพื่อยกเลิกการเลือก Piwik โดยการตั้งค่าคุกกี้ยกเลิกการเลือกในเบราว์เซอร์ %s คลิกที่นี่ %s เพื่อดูเนื้อหาที่จะแสดงโดย iFrame",
+ "OptOutExplanationBis": "รหัสนี้จะแสดง Iframe ที่มีลิงค์สำหรับผู้เข้าชมของคุณเพื่อยกเลิกการเลือก Piwik โดยการตั้งค่าคุกกี้ยกเลิกการเลือกในเบราว์เซอร์ %1$s คลิกที่นี่ %2$s เพื่อดูเนื้อหาที่จะแสดงโดย iFrame",
"OptOutForYourVisitors": "Piwik ยกเลิกการเลือกสำหรับผู้เข้าชมของคุณ",
"TrustedHostSettings": "ชื่อโฮสต์ Piwik ที่เชื่อถือได้",
"UseCustomLogo": "ใช้รูปโลโก้ที่กำหนดเอง",
diff --git a/plugins/CoreAdminHome/lang/tl.json b/plugins/CoreAdminHome/lang/tl.json
index 1c1ffc9436..826f66be46 100644
--- a/plugins/CoreAdminHome/lang/tl.json
+++ b/plugins/CoreAdminHome/lang/tl.json
@@ -5,9 +5,9 @@
"BrandingSettings": "Mga setting ng branding",
"ClickHereToOptIn": "I-click ito upang mag-opt in.",
"ClickHereToOptOut": "I-click ito upang mag-opt out.",
- "CustomLogoFeedbackInfo": "Kung pinasadya mo ang logo ng Piwik, maaaring interesado ka rin upang itago ang %s na link sa itaas ng menu. Upang gawin ito, maaari mong i-disable ang Feedback plugin sa %s Manage Plugin %s na pahina.",
+ "CustomLogoFeedbackInfo": "Kung pinasadya mo ang logo ng Piwik, maaaring interesado ka rin upang itago ang %1$s na link sa itaas ng menu. Upang gawin ito, maaari mong i-disable ang Feedback plugin sa %2$s Manage Plugin %3$s na pahina.",
"CustomLogoHelpText": "Maaari mong i-customize ang Piwik logo na ipapakita sa user interface at mga report sa email.",
- "DevelopmentProcess": "Habang ang aming %s proseso ng development %s ay nakapaloob ang libu-libong automated tests, ang mga Beta Tester ay may pangunahing papel sa archiving ng \"No bug policy\" sa Piwik.",
+ "DevelopmentProcess": "Habang ang aming %1$s proseso ng development %2$s ay nakapaloob ang libu-libong automated tests, ang mga Beta Tester ay may pangunahing papel sa archiving ng \"No bug policy\" sa Piwik.",
"EmailServerSettings": "Mga setting sa email server",
"ForBetaTestersOnly": "Pagsusubaybay ng Imahe",
"ImageTracking": "Pagsubaybay ng Imahe",
@@ -21,7 +21,6 @@
"JavaScriptTracking": "Pagsubaybay ng JavaScript",
"JSTracking_CampaignKwdParam": "Keyword na Parametero ng Kampanya",
"JSTracking_CampaignNameParam": "Pangalang Parametero ng Kampanya",
- "JSTracking_CodeNote": "Siguraduhin na ang code na ito ay nasa bawat pahina ng iyong website bago ang %1$s na tag.",
"JSTracking_CustomCampaignQueryParam": "Gamitin ang custom query na parametro ng mga pangalan para sa pangalan ng kampanya at keyword",
"JSTracking_CustomCampaignQueryParamDesc": "Tandaan: Awtomatikong makikita ng %1$sPiwik ang mga parametro ng Google Analytics. %2$s",
"JSTracking_DisableCookies": "I-disable ang lahat ng mga cookies na sumusubaybay.",
@@ -47,7 +46,7 @@
"LogoNotWriteableInstruction": "Upang gamitin ang iyong pasadyang logo sa halip na ang default na Piwik logo, bigyan ng pahintulot na magsulat sa direktoryong ito: %1$s kailangan ng Piwik ng write access para sa iyong mga logo na naka-imbak sa mga file ng %2$s.",
"LogoUpload": "Piliin ang Logo na i-upload",
"FaviconUpload": "Pumili ng Favicon upang i-upload",
- "LogoUploadHelp": "Mangyaring mag-upload ng isang file sa format na %s na may pinakamababang taas na %s na pixel.",
+ "LogoUploadHelp": "Mangyaring mag-upload ng isang file sa format na %1$s na may pinakamababang taas na %2$s na pixel.",
"MenuDiagnostic": "Dyagnostiko",
"MenuGeneralSettings": "Pangkalahatang mga setting",
"MenuManage": "Pamahalaan",
@@ -55,15 +54,15 @@
"OptOutComplete": "Ang pag-opt-out ay kumpleto na; ang iyong mga pagbisita sa website na ito ay hindi maitatala sa Web Analytics na tool.",
"OptOutCompleteBis": "Tandaan na kung tinanggal mo ang iyong cookies, burahin ang opt-out cookie, o kapag nagbago ka ng computer o Web browser, kailangan mong isagawang muli ang opt-out cookie",
"OptOutExplanation": "Ang Piwik ay nakatuon sa pagbibigay ng privacy sa Internet. Upang bigyan ang iyong bisita ng pagpipilian na pag-opt-out ng Piwik Web Analytics, maaari mong idagdag ang sumusunod na HTML code sa isa sa iyong mga pahina ng website, halimbawa sa isang pahina ng Privacy Policy.",
- "OptOutExplanationBis": "Ang code na ito ay magpapakita ng isang Iframe na naglalaman ng isang link para makapag-opt-out ang iyong mga bisita sa Piwik sa pamamagitan ng pagtatakda ng isang opt-out na cookie sa kanilang mga browser. %s I-click dito%s upang tingnan ang nilalaman na ipapakita sa iFrame.",
+ "OptOutExplanationBis": "Ang code na ito ay magpapakita ng isang Iframe na naglalaman ng isang link para makapag-opt-out ang iyong mga bisita sa Piwik sa pamamagitan ng pagtatakda ng isang opt-out na cookie sa kanilang mga browser. %1$s I-click dito%2$s upang tingnan ang nilalaman na ipapakita sa iFrame.",
"OptOutForYourVisitors": "Piwik opt-out para sa iyong mga bisita",
"PiwikIsInstalledAt": "Ang Piwik ay naka-install sa",
- "PluginSettingChangeNotAllowed": "Hindi ka pinapahintulutang baguhin ang halaga ng setting \"%s\" sa plugin \"%s\"",
- "PluginSettingReadNotAllowed": "Hindi ka pinapahintulutang basahin ang halaga ng setting \"%s\" sa plugin \"%s\"",
+ "PluginSettingChangeNotAllowed": "Hindi ka pinapahintulutang baguhin ang halaga ng setting \"%1$s\" sa plugin \"%2$s\"",
+ "PluginSettingReadNotAllowed": "Hindi ka pinapahintulutang basahin ang halaga ng setting \"%1$s\" sa plugin \"%2$s\"",
"PluginSettingsIntro": "Dito maaaring baguhin ang mga setting para sa mga sumusunod na 3rd party na mga plugin:",
- "PluginSettingsValueNotAllowed": "Ang halaga para sa field \"%s\" sa plugin na \"%s\" ay hindi pinapahintulutan.",
+ "PluginSettingsValueNotAllowed": "Ang halaga para sa field \"%1$s\" sa plugin na \"%2$s\" ay hindi pinapahintulutan.",
"SendPluginUpdateCommunicationHelp": "Isang email ang ipapadala sa mga Super User kapag may bagong bersyon na maaaring magamit para sa isang plugin.",
- "StableReleases": "Kung ang Piwik ay isang kritikal na bahagi ng iyong negosyo, inirerekomenda namin na gamitin mo ang pinakabagong matatag na release. Kung gagamitin mo ang pinakabagong beta at nakakita ka ng bug o mayroong suhestiyon, mangyaring %s tingnan dito %s.",
+ "StableReleases": "Kung ang Piwik ay isang kritikal na bahagi ng iyong negosyo, inirerekomenda namin na gamitin mo ang pinakabagong matatag na release. Kung gagamitin mo ang pinakabagong beta at nakakita ka ng bug o mayroong suhestiyon, mangyaring %1$s tingnan dito %2$s.",
"TrackAGoal": "Subaybayan ang isang gol",
"TrackingCode": "Tracking Code",
"TrustedHostConfirm": "Sigurado ka ba na gusto mong baguhin ang pinagkakatiwalaang Piwik na hostname?",
diff --git a/plugins/CoreAdminHome/lang/tr.json b/plugins/CoreAdminHome/lang/tr.json
index 8a412db6af..69657dffcc 100644
--- a/plugins/CoreAdminHome/lang/tr.json
+++ b/plugins/CoreAdminHome/lang/tr.json
@@ -5,9 +5,9 @@
"BrandingSettings": "Marka ayarları",
"ClickHereToOptIn": "İzin vermek için tıklayınız.",
"ClickHereToOptOut": "İzni iptal etmek için tıklayınız.",
- "CustomLogoFeedbackInfo": "Eğer Piwik logosunu değiştirdiyseniz, üst menüden %s bağlantısını da kaldırmak isteyebilirsiniz. Bunun için, %sManage Plugins%s sayfasından Geribildirim ( Feedback ) eklentisini iptal edebilirsiniz.",
+ "CustomLogoFeedbackInfo": "Eğer Piwik logosunu değiştirdiyseniz, üst menüden %1$s bağlantısını da kaldırmak isteyebilirsiniz. Bunun için, %2$sManage Plugins%3$s sayfasından Geribildirim ( Feedback ) eklentisini iptal edebilirsiniz.",
"CustomLogoHelpText": "E-posta raporlarında ve kullanıcı arayüzünde kullanılacak olan Piwik logosunu değiştirebilirsiniz.",
- "DevelopmentProcess": "%sdevelopment process%s sırasında binlerce otomasyon testleri Piwik'te beta testerleriniz hatasız kullanım politikası yürütebilir",
+ "DevelopmentProcess": "%1$sdevelopment process%2$s sırasında binlerce otomasyon testleri Piwik'te beta testerleriniz hatasız kullanım politikası yürütebilir",
"EmailServerSettings": "E-Posta sunucusu ayarları",
"ForBetaTestersOnly": "Yalnızca beta test edenler için",
"ImageTracking": "Resimle İzleme",
@@ -20,7 +20,6 @@
"JavaScriptTracking": "Javascript İzleme Kodu",
"JSTracking_CampaignKwdParam": "Kampanya Anahtar Kelime Parametreleri",
"JSTracking_CampaignNameParam": "Kampanya Parametresi",
- "JSTracking_CodeNote": "Bu kodun web sitenizin her sayfasında %1$s den önce eklendiğine emin olun.",
"JSTracking_CustomCampaignQueryParam": "Kampanya adı ve anahtar kelime için özel sorgu parametresi kullanın",
"JSTracking_CustomCampaignQueryParamDesc": "Not: %1$sPiwik otomatik olarak Google Analytics parametreleri algılar. %2$s",
"JSTracking_DisableCookies": "Tüm takip cookilerini devredışı bırak",
@@ -38,9 +37,10 @@
"JSTrackingIntro2": "Piwik ile izlemek istediğiniz sitenin tüm sayfalarına Javascript izleme kodunu yapıştırmanız gerekmektedir.",
"JSTrackingIntro4": "Eğer Javascript izleme kodu kullanmak istemiyorsanız aşağıdaki%2$s linke tıklayarak izleme resmi oluşturabilirsiniz%1$s.",
"JSTrackingIntro5": "Eğer daha fazla sayfa görüntülenme sayısını takip etmek istiyorsanız, lütfen %1$sPiwik javascript izleme dökümantasyonunda %2$s listelenen uygun fonksiyonlara göz gezdirin. Bu fonksiyonları kullanarak hedefleri, özel değerleri, e-ticaret siparişlerini, terkedilen sepetler ve daha fazlasını takip edebilirsiniz.",
+ "FileUploadDisabled": "Dosya yükleme PHP yapılandırmada aktif değil. Özel logo yüklemek için lütfen %s php.ini yapılandırma ayarlarını yapın ve sunucunuzu yeniden başlatın.",
"LogoUpload": "Yüklemek için logo seçiniz",
"FaviconUpload": "Yüklemek için Favicon seçin",
- "LogoUploadHelp": "Lütfen %s formatlarında ve minimum %s piksel yüksekliğinde bir dosya yükleyin.",
+ "LogoUploadHelp": "Lütfen %1$s formatlarında ve minimum %2$s piksel yüksekliğinde bir dosya yükleyin.",
"MenuDiagnostic": "tehşis",
"MenuGeneralSettings": "Genel Ayarlar",
"MenuManage": "yönetmek",
@@ -49,12 +49,12 @@
"OptOutExplanation": "Bu yazılım kendini internette gizlilik sağlamaya adamıştır. Ekteki html kodunu sitenize ekleyerek ziyaretçilerinize izlenmeme (opsiyonel olarak) seçeneği sunabilirsiniz. Örnek olarak bunu Gizlilik Politikanız sayfasında sunabilirsiniz.",
"OptOutForYourVisitors": "ziyaretciniz için Piwiki devre dışı bırakmak",
"PiwikIsInstalledAt": "Piwikde yüklenir",
- "PluginSettingChangeNotAllowed": "Bu ayarların \"%s\" değerlerini değiştirmek için \"%s\" eklentisinde gerekli izniniz yok.",
+ "PluginSettingChangeNotAllowed": "Bu ayarların \"%1$s\" değerlerini değiştirmek için \"%2$s\" eklentisinde gerekli izniniz yok.",
"PluginSettings": "Eklenti Ayarları",
"PluginSettingsIntro": "Buradan aşağıdaki 3. parti eklentiler için ayarları değiştirebilirsiniz:",
"PluginSettingsSaveFailed": "Eklenti ayarları kaydedilemedi",
"SendPluginUpdateCommunication": "Eklenti güncellemesi olduğunda e-posta gönder",
- "StableReleases": "Eğer Piwik işiniz için kritik bir parçaysa, son ve stabil olan versiyonu kullanmanızı öneririz. Eğer en son güncel betayı kullanıyorsanız ve bir hata bulur ya da öneriniz olursa, lütfen şuraya%s bakın%s.",
+ "StableReleases": "Eğer Piwik işiniz için kritik bir parçaysa, son ve stabil olan versiyonu kullanmanızı öneririz. Eğer en son güncel betayı kullanıyorsanız ve bir hata bulur ya da öneriniz olursa, lütfen şuraya%1$s bakın%2$s.",
"SystemPluginSettings": "Sistem Eklenti Ayarları",
"TrackAGoal": "Bir hedef izleme",
"TrackingCode": "İzleme Kodu",
diff --git a/plugins/CoreAdminHome/lang/uk.json b/plugins/CoreAdminHome/lang/uk.json
index 940b3d5438..63711249da 100644
--- a/plugins/CoreAdminHome/lang/uk.json
+++ b/plugins/CoreAdminHome/lang/uk.json
@@ -6,7 +6,7 @@
"OptOutComplete": "Відмову прийнято; ваші заходи на цей сайт не буде записано в базу даних веб-аналітики.",
"OptOutCompleteBis": "Зверніть увагу, що при очищенні всіх файлів cookie, видаленні конкретного файлу cookie чи зміни веб-переглядача необхідно буде знову пройти процедуру відмови.",
"OptOutExplanation": "Piwik турбується про конфіденціальність в Інтернеті. Щоб надати вашим відвідувачам можливість відмовитися від включення інфомації про них до бази даних веб-аналітики Piwik, додайте наступний HTML код на одну з ваших сторінок - для прикладу на сторінку \"Політика конфіденційності\".",
- "OptOutExplanationBis": "Тег покаже \"iframe\", в якому міститиметься посилання для ваших відвідувачів, клацнувши на яке, вони зможуть відмовитися від потрапляння в веб-аналітику через отримання відповідного файлу cookie. %s Клацніть тут%s, щоб переглянути вміст що буде показано в \"iframe\".",
+ "OptOutExplanationBis": "Тег покаже \"iframe\", в якому міститиметься посилання для ваших відвідувачів, клацнувши на яке, вони зможуть відмовитися від потрапляння в веб-аналітику через отримання відповідного файлу cookie. %1$s Клацніть тут%2$s, щоб переглянути вміст що буде показано в \"iframe\".",
"OptOutForYourVisitors": "Відмова від включення в аналітику для відвідувачів.",
"YouAreOptedIn": "Наразі статистика записується в базу даних",
"YouAreOptedOut": "Наразі статистика не записується в базу даних",
diff --git a/plugins/CoreAdminHome/lang/vi.json b/plugins/CoreAdminHome/lang/vi.json
index ff85b80d9e..f3b13f92fd 100644
--- a/plugins/CoreAdminHome/lang/vi.json
+++ b/plugins/CoreAdminHome/lang/vi.json
@@ -5,9 +5,9 @@
"BrandingSettings": "Thiết lập Branding",
"ClickHereToOptIn": "Click vào đây để lựa chọn vào",
"ClickHereToOptOut": "Click vào đây để lựa chọn thoát ra",
- "CustomLogoFeedbackInfo": "Nếu bạn tuỳ chỉnh các biểu tượng Piwik, bạn cũng có thể quan tâm đến việc ẩn liên kết %s trong top menu. Để làm như vậy, bạn có thể vô hiệu hóa các plugin Thông tin phản hồi trong trang %s Plugins Quản lý %s.",
+ "CustomLogoFeedbackInfo": "Nếu bạn tuỳ chỉnh các biểu tượng Piwik, bạn cũng có thể quan tâm đến việc ẩn liên kết %1$s trong top menu. Để làm như vậy, bạn có thể vô hiệu hóa các plugin Thông tin phản hồi trong trang %2$s Plugins Quản lý %3$s.",
"CustomLogoHelpText": "Bạn có thể tùy chỉnh các biểu tượng Piwik sẽ được hiển thị trong giao diện người dùng và thư điện tử báo cáo.",
- "DevelopmentProcess": "Trong khi %s giai đoạn phát triển %s của chúng ta chứa hàng ngàn phép kiểm thử tự động, những người thực hiện kiểm thử Beta đóng một vai trò quan trọng trong việc thực hiện \"No bug policy\" trong Piwik.",
+ "DevelopmentProcess": "Trong khi %1$s giai đoạn phát triển %2$s của chúng ta chứa hàng ngàn phép kiểm thử tự động, những người thực hiện kiểm thử Beta đóng một vai trò quan trọng trong việc thực hiện \"No bug policy\" trong Piwik.",
"EmailServerSettings": "Cấu hình email server",
"ForBetaTestersOnly": "Chỉ áp dụng cho thử nghiệm bản beta",
"ImageTracking": "Theo dõi bằng hình ảnh",
@@ -22,7 +22,6 @@
"JavaScriptTracking": "Theo dõi JavaScript",
"JSTracking_CampaignKwdParam": "Chiến dịch từ khóa",
"JSTracking_CampaignNameParam": "tên chiến dịch",
- "JSTracking_CodeNote": "Chắc chắn rằng mã này trên mỗi trang của trang web của bạn trước khi %1$s tag",
"JSTracking_CustomCampaignQueryParam": "Sử dụng tên truy vấn tùy chỉnh cho các tên và từ khóa chiến dịch",
"JSTracking_CustomCampaignQueryParamDesc": "Lưu ý:.%1$s Piwik sẽ tự động phát hiện các thông số Google Analytics. %2$s",
"JSTracking_EnableDoNotTrack": "Cho phép máy khách phát hiện DoNotTrack",
@@ -44,20 +43,20 @@
"JSTrackingIntro4": "Nếu bạn không muốn sử dụng JavaScript để theo dõi khách truy cập, %1$s tạo ra một liên kết theo dõi hình ảnh dưới đây %2$s.",
"JSTrackingIntro5": "Nếu bạn muốn thực hiện các tác vụ khác theo dõi page view, vui lòng tham khảo %1$sTài liệu Piwik Javascript Tracking%2$s để xem danh sách những chức năng được cung cấp. Sử dụng những chức năng này, bạn có thể theo dõi goals, thông số thiết lập, đơn hàng thương mại điện tử, giỏ hàng bị từ chối và nhiều hơn thế nữa.",
"LogoUpload": "Chọn một logo để tải lên",
- "LogoUploadHelp": "Xin vui lòng tải lên file dưới định dạng %s với chiều cao tối thiểu là %s pixels",
+ "LogoUploadHelp": "Xin vui lòng tải lên file dưới định dạng %1$s với chiều cao tối thiểu là %2$s pixels",
"MenuDiagnostic": "chẩn đoán",
"MenuGeneralSettings": "cài đặt chung",
"MenuManage": "Quản lý",
"OptOutComplete": "Việc không tham gia hoàn tất; Việc thăm trang web này của bạn sẽ không được ghi lại bởi các công cụ Web Analytics.",
"OptOutCompleteBis": "Ghi nhớ rằng nếu bạn xóa cookies hoặc xóa cookie opt-out (quảng cáo, spam), hay nếu bạn tùy chỉnh máy tính hoặc trình duyệt của bạn, bạn sẽ phải tiến hành các thao tác opt-out (chặn spam, quảng cáo) lại một lần nữa.",
"OptOutExplanation": "Piwik được sử dụng để cung cấp quyền riêng tư trên Internet. Để cung cấp cho những khách ghé thăm trang web của bạn các lựa chọn chặn Piwik Web Analytics, bạn có thể thêm vào mã HTML sau trên trang web của bạn, ví dụ tùy chỉnh trong trang Quyền Riêng tư.",
- "OptOutExplanationBis": "Đoạn mã này sẽ hiển thị một Iframe chứa đường dẫn cho người ghé thăm trang web của bạn chặn Piwik bằng cách thiết lập một cookie opt-out trong trình duyệt của họ. %sNhấn vào đây%s để xem nội dung sẽ được hiển thị bởi iFrame.",
+ "OptOutExplanationBis": "Đoạn mã này sẽ hiển thị một Iframe chứa đường dẫn cho người ghé thăm trang web của bạn chặn Piwik bằng cách thiết lập một cookie opt-out trong trình duyệt của họ. %1$sNhấn vào đây%2$s để xem nội dung sẽ được hiển thị bởi iFrame.",
"OptOutForYourVisitors": "Piwik không tham gia truy cập của bạn",
"PiwikIsInstalledAt": "Piwik được cài đặt tại",
- "PluginSettingChangeNotAllowed": "Bạn không được phép thay đổi giá trị của các thiết lập \"%s\" trong plugin \"%s\"",
+ "PluginSettingChangeNotAllowed": "Bạn không được phép thay đổi giá trị của các thiết lập \"%1$s\" trong plugin \"%2$s\"",
"PluginSettingsIntro": "Ở đây bạn có thể thay đổi các thiết lập cho các plugin của bên thứ 3 như sau:",
- "PluginSettingsValueNotAllowed": "Giá trị của trường \"%s\" trong plugin \"%s\" không được chấp nhận",
- "StableReleases": "Nếu Piwik là một phần quan trọng của công việc của bạn, chúng tôi khuyên bạn nên sử dụng phiên bản ổn định mới nhất. Nếu bạn sử dụng phiên bản beta mới nhất và bạn tìm thấy một lỗi hoặc có một đề nghị, xin vui lòng %s xem tại đây %s.",
+ "PluginSettingsValueNotAllowed": "Giá trị của trường \"%1$s\" trong plugin \"%2$s\" không được chấp nhận",
+ "StableReleases": "Nếu Piwik là một phần quan trọng của công việc của bạn, chúng tôi khuyên bạn nên sử dụng phiên bản ổn định mới nhất. Nếu bạn sử dụng phiên bản beta mới nhất và bạn tìm thấy một lỗi hoặc có một đề nghị, xin vui lòng %1$s xem tại đây %2$s.",
"TrackAGoal": "Theo dõi một mục tiêu",
"TrackingCode": "Mã theo dõi",
"TrustedHostConfirm": "Bạn có chắc rằng bạn muốn thay đổi tên máy chủ Piwik đáng tin cậy không?",
diff --git a/plugins/CoreAdminHome/lang/zh-cn.json b/plugins/CoreAdminHome/lang/zh-cn.json
index a7b7f7cdf8..4f776e7267 100644
--- a/plugins/CoreAdminHome/lang/zh-cn.json
+++ b/plugins/CoreAdminHome/lang/zh-cn.json
@@ -5,9 +5,9 @@
"BrandingSettings": "图标设置",
"ClickHereToOptIn": "点这里主动加入。",
"ClickHereToOptOut": "点这里主动退出。",
- "CustomLogoFeedbackInfo": "如果您定制 Piwik 图标,可能想在顶部菜单隐藏 %s 链接,在 %s管理插件%s 页面禁用 Feedback 插件。",
+ "CustomLogoFeedbackInfo": "如果您定制 Piwik 图标,可能想在顶部菜单隐藏 %1$s 链接,在 %2$s管理插件%3$s 页面禁用 Feedback 插件。",
"CustomLogoHelpText": "您可以定制 Piwik 图标,显示在用户界面和报表邮件上。",
- "DevelopmentProcess": "虽然在%s开发过程%s中已进行过成千上万次的自动测试,Beta 版本测试仍然是实现 Piwik \"无错理念\"的很重要的一部分。",
+ "DevelopmentProcess": "虽然在%1$s开发过程%2$s中已进行过成千上万次的自动测试,Beta 版本测试仍然是实现 Piwik \"无错理念\"的很重要的一部分。",
"EmailServerSettings": "邮件服务器设置",
"ForBetaTestersOnly": "仅供测试",
"ImageTracking": "图片跟踪",
@@ -22,7 +22,6 @@
"JavaScriptTracking": "JavaScript 跟踪",
"JSTracking_CampaignKwdParam": "广告关键词参数",
"JSTracking_CampaignNameParam": "广告名称参数",
- "JSTracking_CodeNote": "确认这段代码在网站所有页面的 %1$s 标签之前。",
"JSTracking_CustomCampaignQueryParam": "广告名称和关键词使用自定义搜索参数名",
"JSTracking_CustomCampaignQueryParamDesc": "提示: %1$sPiwik 会自动检测 Google 分析参数。%2$s",
"JSTracking_EnableDoNotTrack": "启用访客 DoNotTrack 检测",
@@ -45,22 +44,22 @@
"JSTrackingIntro5": "如果除了统计访问次数,请在 %1$sPiwik Javascript 跟踪文档%2$s 中查看更多的功能列表。通过这些功能,您可以跟踪目标、自定义变量、订单、丢弃的购物车等。",
"LogoUpload": "选择一个图标上传",
"FaviconUpload": "选择上传图标",
- "LogoUploadHelp": "请上传 %s 格式的文件,最小高度 %s 点。",
+ "LogoUploadHelp": "请上传 %1$s 格式的文件,最小高度 %2$s 点。",
"MenuDiagnostic": "检测",
"MenuGeneralSettings": "一般设置",
"MenuManage": "管理",
"OptOutComplete": "主动退出 成功; 网站分析工具将不会统计您对这个网站的访问。",
"OptOutCompleteBis": "如果您清空了cookies、删除了主动退出cookie、或者更换了电脑或者浏览器,您需要重新执行主动退出的操作。",
"OptOutExplanation": "Piwik 致力于 Internet 隐私保护。为了给访客提供主动退出 Piwik 网页分析的选项, 您可以在一个网页上添加下面的HTML代码, 例如在隐私保护页面。",
- "OptOutExplanationBis": "本代码将显示一个包含链接的 Iframe,供访客在浏览器中设置主动退出的 cookie 来退出 Piwik 的统计。%s 点这里%s 查看将在 iFrame 里显示的内容。",
+ "OptOutExplanationBis": "本代码将显示一个包含链接的 Iframe,供访客在浏览器中设置主动退出的 cookie 来退出 Piwik 的统计。%1$s 点这里%2$s 查看将在 iFrame 里显示的内容。",
"OptOutForYourVisitors": "访客主动退出 Piwik",
"PiwikIsInstalledAt": "Piwik 安装在",
- "PluginSettingChangeNotAllowed": "不允许更改插件"%s"中配置"%s"的值",
+ "PluginSettingChangeNotAllowed": "不允许更改插件"%1$s"中配置"%2$s"的值",
"PluginSettingsIntro": "这里,你可以更改下列第三方插件的配置:",
- "PluginSettingsValueNotAllowed": "插件\"%s\"中的域\"%s\"的值是不被允许的",
+ "PluginSettingsValueNotAllowed": "插件\"%1$s\"中的域\"%2$s\"的值是不被允许的",
"PluginSettingsSaveFailed": "保存插件设置失败",
"SendPluginUpdateCommunicationHelp": "插件有新版本时将会给超级管理员发送邮件",
- "StableReleases": "如果Piwik对您的业务很重要,我们建议您使用最新的稳定版。如果使用最新测试版,发现了问题或有建议,请%s看这里%s。",
+ "StableReleases": "如果Piwik对您的业务很重要,我们建议您使用最新的稳定版。如果使用最新测试版,发现了问题或有建议,请%1$s看这里%2$s。",
"SystemPluginSettings": "系统插件设置",
"TrackAGoal": "跟踪目标",
"TrackingCode": "跟踪代码",
diff --git a/plugins/CoreAdminHome/templates/generalSettings.twig b/plugins/CoreAdminHome/templates/generalSettings.twig
index c3cd7c9500..e70d537472 100644
--- a/plugins/CoreAdminHome/templates/generalSettings.twig
+++ b/plugins/CoreAdminHome/templates/generalSettings.twig
@@ -204,6 +204,9 @@
<input type="hidden" name="token_auth" value="{{ token_auth }}"/>
{% if logosWriteable %}
+ <div class="alert alert-warning uploaderror" style="display:none;">
+ {{ 'CoreAdminHome_LogoUploadFailed'|translate }}
+ </div>
<div class="form-group">
<label for="customLogo">{{ 'CoreAdminHome_LogoUpload'|translate }}</label>
<div class="form-help">{{ 'CoreAdminHome_LogoUploadHelp'|translate("JPG / PNG / GIF", 110) }}</div>
diff --git a/plugins/CoreConsole/Commands/CoreArchiver.php b/plugins/CoreConsole/Commands/CoreArchiver.php
index 7f1eb6107d..32f1ba1116 100644
--- a/plugins/CoreConsole/Commands/CoreArchiver.php
+++ b/plugins/CoreConsole/Commands/CoreArchiver.php
@@ -41,6 +41,7 @@ class CoreArchiver extends ConsoleCommand
$archiver->forceTimeoutPeriod = $input->getOption("force-timeout-for-periods");
$archiver->shouldArchiveAllPeriodsSince = $input->getOption("force-all-periods");
$archiver->restrictToDateRange = $input->getOption("force-date-range");
+ $archiver->phpCliConfigurationOptions = $input->getOption("php-cli-options");
$restrictToPeriods = $input->getOption("force-periods");
$restrictToPeriods = explode(',', $restrictToPeriods);
@@ -116,5 +117,6 @@ class CoreArchiver extends ConsoleCommand
$command->addOption('accept-invalid-ssl-certificate', null, InputOption::VALUE_NONE,
"It is _NOT_ recommended to use this argument. Instead, you should use a valid SSL certificate!\nIt can be "
. "useful if you specified --url=https://... or if you are using Piwik with force_ssl=1");
+ $command->addOption('php-cli-options', null, InputOption::VALUE_OPTIONAL, 'Forwards the PHP configuration options to the PHP CLI command. For example "-d memory_limit=8G". Note: These options are only applied if the archiver actually uses CLI and not HTTP.', $default = '');
}
}
diff --git a/plugins/CoreConsole/Commands/GeneratePlugin.php b/plugins/CoreConsole/Commands/GeneratePlugin.php
index bf83889305..45fa111d87 100644
--- a/plugins/CoreConsole/Commands/GeneratePlugin.php
+++ b/plugins/CoreConsole/Commands/GeneratePlugin.php
@@ -126,6 +126,10 @@ class GeneratePlugin extends GeneratePluginBase
throw new \RuntimeException('You have to enter a plugin name');
}
+ if(strlen($pluginName) > 40) {
+ throw new \RuntimeException('Your plugin name cannot be longer than 40 characters');
+ }
+
if (!Plugin\Manager::getInstance()->isValidPluginName($pluginName)) {
throw new \RuntimeException(sprintf('The plugin name %s is not valid. The name must start with a letter and is only allowed to contain numbers and letters.', $pluginName));
}
diff --git a/plugins/CoreConsole/Commands/GenerateWidget.php b/plugins/CoreConsole/Commands/GenerateWidget.php
index 05f92bd4af..c04c30cd55 100644
--- a/plugins/CoreConsole/Commands/GenerateWidget.php
+++ b/plugins/CoreConsole/Commands/GenerateWidget.php
@@ -49,7 +49,7 @@ class GenerateWidget extends GeneratePluginBase
$replace = array('ExamplePlugin' => $pluginName,
'MyExampleWidget' => $widgetClass,
'Example Widget Name' => $this->makeTranslationIfPossible($pluginName, $widgetName),
- 'Example Widgets' => $category);
+ 'About Piwik' => $category);
$whitelistFiles = array('/Widgets', '/Widgets/MyExampleWidget.php');
$this->copyTemplateToPlugin($exampleFolder, $pluginName, $replace, $whitelistFiles);
diff --git a/plugins/CoreHome/Columns/VisitLastActionTime.php b/plugins/CoreHome/Columns/VisitLastActionTime.php
index 15e6ea8867..4ba0761c2a 100644
--- a/plugins/CoreHome/Columns/VisitLastActionTime.php
+++ b/plugins/CoreHome/Columns/VisitLastActionTime.php
@@ -51,6 +51,10 @@ class VisitLastActionTime extends VisitDimension
*/
public function onExistingVisit(Request $request, Visitor $visitor, $action)
{
+ if ($request->getParam('ping') == 1) {
+ return false;
+ }
+
return $this->onNewVisit($request, $visitor, $action);
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/CoreHome.php b/plugins/CoreHome/CoreHome.php
index c1f88e035c..9e6afdb107 100644
--- a/plugins/CoreHome/CoreHome.php
+++ b/plugins/CoreHome/CoreHome.php
@@ -306,6 +306,8 @@ class CoreHome extends \Piwik\Plugin
$translationKeys[] = 'CoreHome_Segments';
$translationKeys[] = 'CoreHome_MenuEntries';
$translationKeys[] = 'SitesManager_Sites';
+ $translationKeys[] = 'CoreHome_MainNavigation';
$translationKeys[] = 'CoreHome_ChangeCurrentWebsite';
+ $translationKeys[] = 'General_CreatedByUser';
}
}
diff --git a/plugins/CoreHome/Menu.php b/plugins/CoreHome/Menu.php
index c9331e4470..7009217833 100644
--- a/plugins/CoreHome/Menu.php
+++ b/plugins/CoreHome/Menu.php
@@ -35,7 +35,7 @@ class Menu extends \Piwik\Plugin\Menu
if (Piwik::isUserIsAnonymous()) {
if (Plugin\Manager::getInstance()->isPluginActivated('ScheduledReports')) {
- $menu->addItem($login, null, array('module' => 'ScheduledReports', 'action' => 'index'), 970, Piwik::translate('ScheduledReports_PersonalEmailReports'));
+ $menu->addItem($login, null, array('module' => 'ScheduledReports', 'action' => 'index'), 970, Piwik::translate('UsersManager_PersonalSettings'));
} else {
$menu->addItem($login, null, array('module' => 'API', 'action' => 'listAllAPI'), 970, Piwik::translate('API_ReportingApiReference'));
}
diff --git a/plugins/CoreHome/Widgets/GetDonateForm.php b/plugins/CoreHome/Widgets/GetDonateForm.php
index 093fe8c3a2..081afd9c03 100644
--- a/plugins/CoreHome/Widgets/GetDonateForm.php
+++ b/plugins/CoreHome/Widgets/GetDonateForm.php
@@ -29,7 +29,7 @@ class GetDonateForm extends Widget
public static function configure(WidgetConfig $config)
{
- $config->setCategoryId('Example Widgets');
+ $config->setCategoryId('About Piwik');
$config->setName('CoreHome_SupportPiwik');
$config->setOrder(5);
}
diff --git a/plugins/CoreHome/Widgets/GetPromoVideo.php b/plugins/CoreHome/Widgets/GetPromoVideo.php
index 49636b5e0e..5ceef91f84 100644
--- a/plugins/CoreHome/Widgets/GetPromoVideo.php
+++ b/plugins/CoreHome/Widgets/GetPromoVideo.php
@@ -27,7 +27,7 @@ class GetPromoVideo extends Widget
public static function configure(WidgetConfig $config)
{
- $config->setCategoryId('Example Widgets');
+ $config->setCategoryId('About Piwik');
$config->setName('Installation_Welcome');
$config->setOrder(10);
}
diff --git a/plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js b/plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js
index 5379253589..d90620053f 100644
--- a/plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js
+++ b/plugins/CoreHome/angularjs/common/directives/autocomplete-matched.js
@@ -37,7 +37,7 @@
return;
}
- var content = element.text();
+ var content = piwik.helper.htmlEntities(element.text());
var startTerm = content.toLowerCase().indexOf(searchTerm.toLowerCase());
if (-1 !== startTerm) {
diff --git a/plugins/CoreHome/angularjs/enrichedheadline/enrichedheadline.directive.html b/plugins/CoreHome/angularjs/enrichedheadline/enrichedheadline.directive.html
index 9bbdc8f8f4..f1a6779c87 100644
--- a/plugins/CoreHome/angularjs/enrichedheadline/enrichedheadline.directive.html
+++ b/plugins/CoreHome/angularjs/enrichedheadline/enrichedheadline.directive.html
@@ -1,9 +1,9 @@
<div class="enrichedHeadline"
ng-mouseenter="view.showIcons=true" ng-mouseleave="view.showIcons=false">
- <div ng-show="!editUrl" class="title" ng-transclude></div>
+ <div ng-show="!editUrl" class="title" ng-transclude tabindex="6"></div>
<a ng-show="editUrl" class="title" href="{{ editUrl }}"
title="{{ 'CoreHome_ClickToEditX'|translate:featureName }}"
- ng-transclude></a>
+ ng-transclude ></a>
<span ng-show="view.showIcons">
<a ng-if="helpUrl && !inlineHelp"
diff --git a/plugins/CoreHome/angularjs/quick-access/quick-access.controller.js b/plugins/CoreHome/angularjs/quick-access/quick-access.controller.js
index 9e1fefba82..c78628036b 100644
--- a/plugins/CoreHome/angularjs/quick-access/quick-access.controller.js
+++ b/plugins/CoreHome/angularjs/quick-access/quick-access.controller.js
@@ -16,6 +16,10 @@
this.sitesModel = siteSelectorModel;
this.onKeypress = function (event) {
+ var areSearchResultsDisplayed = $scope.search && $scope.search.term && $scope.view && $scope.view.searchActive;
+ var isTabKey = 9 == event.which
+ var isEscKey = 27 == event.which
+
if (38 == event.which) {
$scope.highlightPreviousItem();
event.preventDefault();
@@ -24,6 +28,10 @@
event.preventDefault();
} else if (13 == event.which) {
$scope.clickQuickAccessMenuItem();
+ } else if (isTabKey && areSearchResultsDisplayed) {
+ $scope.deactivateSearch();
+ } else if (isEscKey && areSearchResultsDisplayed) {
+ $scope.deactivateSearch();
}
};
diff --git a/plugins/CoreHome/angularjs/quick-access/quick-access.directive.html b/plugins/CoreHome/angularjs/quick-access/quick-access.directive.html
index 1e76f4fe7d..18d4eee252 100644
--- a/plugins/CoreHome/angularjs/quick-access/quick-access.directive.html
+++ b/plugins/CoreHome/angularjs/quick-access/quick-access.directive.html
@@ -1,13 +1,15 @@
-<div class="quick-access" title="{{ quickAccessTitle }}"
+<div class="quick-access"
ng-class="{active: view.searchActive, expanded: view.searchActive}"
piwik-focus-anywhere-but-here="view.searchActive = false;">
<span class="icon-search" ng-hide="search.term || view.searchActive"
ng-mouseenter="view.searchActive=true"></span>
- <input ng-keydown="quickAccess.onKeypress($event)"
+ <input class="s"
+ title="{{ quickAccessTitle }}"
+ ng-keydown="quickAccess.onKeypress($event)"
ng-change="view.searchActive=true;quickAccess.searchMenu(search.term)"
ng-focus="view.searchActive=true"
ng-model="search.term" piwik-focus-if="view.searchActive"
- type="text"/>
+ type="text" tabindex="2"/>
<ul ng-hide="!search.term || !view.searchActive || (quickAccess.numMenuItems > 0) || (quickAccess.sitesModel.sites | length)">
<li class="no-result">{{ 'General_SearchNoResults' | translate }}</li>
</ul>
@@ -33,4 +35,4 @@
ng-click="quickAccess.selectSite(site.idsite)"
ng-repeat="site in quickAccess.sitesModel.sites"><a ng-bind-html="site.name"></a></li>
</ul>
-</div> \ No newline at end of file
+</div>
diff --git a/plugins/CoreHome/angularjs/quick-access/quick-access.directive.js b/plugins/CoreHome/angularjs/quick-access/quick-access.directive.js
index 35df1d2ef0..e57d1b01b0 100644
--- a/plugins/CoreHome/angularjs/quick-access/quick-access.directive.js
+++ b/plugins/CoreHome/angularjs/quick-access/quick-access.directive.js
@@ -279,4 +279,4 @@
}
};
}
-})(); \ No newline at end of file
+})();
diff --git a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.directive.html b/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.directive.html
index 93371a03bf..0e32b23d7f 100644
--- a/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.directive.html
+++ b/plugins/CoreHome/angularjs/reporting-menu/reportingmenu.directive.html
@@ -1,9 +1,9 @@
-<ul class="navbar"role="menu">
+<ul class="navbar" role="menu" aria-label="{{ 'CoreHome_MainNavigation'|translate }}">
<li ng-repeat="category in menuModel.menu"
class="menuTab"
role="menuitem"
ng-class="{'active': category.active}">
- <a class="item"
+ <a class="item" tabindex="5"
href=""
ng-click="loadCategory(category)">
<span class="menu-icon {{ category.icon ? category.icon : 'icon-arrow-right' }}"></span>{{ category.name }}
@@ -16,7 +16,7 @@
role="menuitem"
ng-class="{'active': subcategory.active}">
<div ng-if="subcategory.isGroup" piwik-menudropdown show-search="true" menu-title="{{ subcategory.name|escape }}">
- <a class="item"
+ <a class="item" tabindex="5"
ng-repeat="subcat in subcategory.subcategories"
title="{{ subcat.tooltip }}"
ng-class="{'active': subcat.active}"
diff --git a/plugins/CoreHome/angularjs/siteselector/siteselector.directive.html b/plugins/CoreHome/angularjs/siteselector/siteselector.directive.html
index e4e46a676a..f9f135d143 100644
--- a/plugins/CoreHome/angularjs/siteselector/siteselector.directive.html
+++ b/plugins/CoreHome/angularjs/siteselector/siteselector.directive.html
@@ -7,7 +7,7 @@
class="custom_select_all">
<a href="{{ getUrlAllSites() }}"
piwik-ignore-click
- ng-bind-html="allSitesText"></a>
+ ng-bind-html="allSitesText" tabindex="4"></a>
</div>
</script>
@@ -16,9 +16,9 @@
<a ng-click="view.showSitesList=!view.showSitesList; view.showSitesList && !model.isLoading && model.loadInitialSites();"
piwik-onenter="view.showSitesList=!view.showSitesList; view.showSitesList && !model.isLoading && model.loadInitialSites();"
href="javascript:void(0)"
- title="{{ 'CoreHome_ChangeCurrentWebsite'|translate:((selectedSite.name || model.firstSiteName)|htmldecode) }}"
+ title="{{ 'CoreHome_ChangeCurrentWebsite'|translate:((selectedSite.name || model.firstSiteName)|htmldecode) }}"
ng-class="{'loading': model.isLoading}"
- class="title">
+ class="title" tabindex="4">
<span class="icon icon-arrow-bottom"
ng-class="{'iconHidden': model.isLoading, 'collapsed': !view.showSitesList}"></span>
<span>{{ 'General_Website'| translate }}:
@@ -37,8 +37,8 @@
ng-hide="!showSelectedSite && activeSiteId==site.idsite">
<a piwik-ignore-click href="{{ getUrlForSiteId(site.idsite) }}"
piwik-autocomplete-matched="view.searchTerm"
- title="{{ site.name|htmldecode }}"
- ng-bind-html="site.name"></a>
+ title="{{ site.name|htmldecode }}"
+ ng-bind-html="site.name" tabindex="4"></a>
</li>
</ul>
<ul ng-show="!model.sites.length && view.searchTerm" class="ui-autocomplete ui-front ui-menu ui-widget ui-widget-content ui-corner-all siteSelect">
diff --git a/plugins/CoreHome/angularjs/siteselector/siteselector.directive.less b/plugins/CoreHome/angularjs/siteselector/siteselector.directive.less
index 1614ceb4cd..b6e4c3d676 100644
--- a/plugins/CoreHome/angularjs/siteselector/siteselector.directive.less
+++ b/plugins/CoreHome/angularjs/siteselector/siteselector.directive.less
@@ -94,7 +94,7 @@
.siteSelector .custom_select_ul_list li a:hover,
.siteSelector .custom_select_all a:hover {
- background: #ebeae6;
+ background: @color-silver-l95;
}
.siteSelector .custom_select_all a {
diff --git a/plugins/CoreHome/javascripts/corehome.js b/plugins/CoreHome/javascripts/corehome.js
index 4526c9ec71..e215efb799 100755
--- a/plugins/CoreHome/javascripts/corehome.js
+++ b/plugins/CoreHome/javascripts/corehome.js
@@ -186,5 +186,16 @@
ajaxRequest.send(false);
});
});
+
+
+
}(jQuery));
+
+$( document ).ready(function() {
+ $('.accessibility-skip-to-content').click(function(e){
+ $('a[name="main"]').attr('tabindex', -1).focus();
+ $(window).scrollTo($('a[name="main"]'));
+ });
+
+});
diff --git a/plugins/CoreHome/javascripts/dataTable.js b/plugins/CoreHome/javascripts/dataTable.js
index 2ec3fb16d8..885603c0e7 100644
--- a/plugins/CoreHome/javascripts/dataTable.js
+++ b/plugins/CoreHome/javascripts/dataTable.js
@@ -1241,14 +1241,18 @@ $.extend(DataTable.prototype, UIControl.prototype, {
};
};
- var getText = function (text, addDefault) {
- text = _pk_translate(text);
- if (text.indexOf('%s') > 0) {
- text = text.replace('%s', '<br /><span class="action">&raquo; ');
+ var getText = function (text, addDefault, replacement) {
+ if (/(%(.\$)?s+)/g.test(_pk_translate(text))) {
+ var values = ['<br /><span class="action">&raquo; '];
+ if(replacement) {
+ values.push(replacement);
+ }
+ text = _pk_translate(text, values);
if (addDefault) text += ' (' + _pk_translate('CoreHome_Default') + ')';
text += '</span>';
+ return text;
}
- return text;
+ return _pk_translate(text);
};
var setText = function (el, paramName, textA, textB) {
@@ -1312,7 +1316,7 @@ $.extend(DataTable.prototype, UIControl.prototype, {
$(this).html(getText('CoreHome_UndoPivotBySubtable', true));
iconHighlighted = true;
} else {
- var optionLabelText = getText('CoreHome_PivotBySubtable').replace('%s', self.props.pivot_dimension_name);
+ var optionLabelText = getText('CoreHome_PivotBySubtable', false, self.props.pivot_dimension_name);
$(this).html(optionLabelText);
}
})
diff --git a/plugins/CoreHome/javascripts/top_controls.js b/plugins/CoreHome/javascripts/top_controls.js
index c94bcc128b..96d37ffb00 100644
--- a/plugins/CoreHome/javascripts/top_controls.js
+++ b/plugins/CoreHome/javascripts/top_controls.js
@@ -63,4 +63,51 @@ function initTopControls() {
}
}
}
+}
+
+//Keyboard controls for Top Controls Calendar through tab and enter.
+$( document ).ready(function() {
+ $('.periodSelector').keydown(function(e){
+ toggleCalendar(e);
+ })
+
+ blockPropegation();
+
+ $('.periodSelector .form-radio').keydown(function(e){
+ e.stopPropagation();
+ if(e.which==13){
+ selectPeriodRadioButton($(this));
+ }
+ })
+});
+
+function toggleCalendar(e){
+ var calendarOpen = $('.periodSelector').hasClass('expanded');
+
+ $('.periodSelector .ui-datepicker-month').attr('tabindex','4');
+ $('.periodSelector td a').attr('tabindex','4');
+ $('.periodSelector .ui-datepicker-year').attr('tabindex','4');
+ $('.periodSelector .form-radio').attr('tabindex','4');
+
+ if(e.which==13){
+ if(calendarOpen){
+ $('.periodSelector').removeClass('expanded');
+ }else{
+ $('.periodSelector').addClass('expanded');
+ }
+ }
+}
+
+function selectPeriodRadioButton(button){
+ $('.periodSelector .form-radio').removeClass('checked');
+ button.addClass('checked');
+ button.find('input').click();
+
+ blockPropegation();
+}
+
+function blockPropegation(){
+ $('.ui-datepicker-month, .ui-datepicker-year, .periodSelector td a').keydown(function(e){
+ e.stopPropagation();
+ })
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/ar.json b/plugins/CoreHome/lang/ar.json
index c2b944c649..8cf85b39d0 100644
--- a/plugins/CoreHome/lang/ar.json
+++ b/plugins/CoreHome/lang/ar.json
@@ -24,10 +24,11 @@
"InjectedHostSuperUserWarning": "قد تكون إعدادات بايويك غير مضبوطة بشكل صحيح (مثلاً، أن يكون قد تم نقله إلى ملقم جديد مؤخراً). يمكنك إما %1$sالنقر هنا وإضافة مضيف%2$s صالح جديد (إذا كنت تثق به)%3$s، أو %4$sانقر هنا لزيارة %5$s بايويك بأمان%6$s.",
"InjectedHostWarningIntro": "أنت الآن تصل إلى Piwik من %1$s ، إلا أن Piwik قد تم إعداده للعمل على هذا العنوان : %2$s .",
"JavascriptDisabled": "يجب تفعيل برمجيات جافا في سبيل استخدام Piwik في الوضع القياسي.<br\/> ومع ذلك، يبدو أن برمجيات جافا إما معطلة أو غير مدعمة في متصفح ويب الخاص بك.<br\/>لاستخدام العرض القياسي، قم بتفعيل JavaScript من خلال تغيير إعدادات متصفحك، ثم %1$sحاول مرة أخرى%2$s.<br\/>",
+ "MainNavigation": "التصفح الرئيس",
"MakeADifference": "اصنع فرقاً: %1$sتبرع الآن%2$s لتمويل بايويك 2.0!",
"MakeOneTimeDonation": "بديلاً عن ذلك، قم بالتبرع مرة واحدة",
"Menu": "القائمة",
- "NoPrivilegesAskPiwikAdmin": "لقد سجلت الدخول بصفتك '%s' ولكن يبدو أنه لا توجد أي صلاحيات لك في Piwik. %s اسأل مدير Piwik (انقر لمراسلته)%s gلمنحك صلاحيات \"المشاهدة\" لموقع ما.",
+ "NoPrivilegesAskPiwikAdmin": "لقد سجلت الدخول بصفتك '%1$s' ولكن يبدو أنه لا توجد أي صلاحيات لك في Piwik. %2$s اسأل مدير Piwik (انقر لمراسلته)%3$s gلمنحك صلاحيات \"المشاهدة\" لموقع ما.",
"OnlyForSuperUserAccess": "عنصر الواجهة هذا يُعرَض للمستخدمين من فئة المستخدم الفائق فقط.",
"PageOf": "%1$s من %2$s",
"PeriodRange": "نطاق",
@@ -46,6 +47,13 @@
"ViewAllPiwikVideoTutorials": "مشاهدة كافة دروس بايويك الفيديوية",
"WebAnalyticsReports": "تقارير تحليلات ويب",
"YouAreUsingTheLatestVersion": "أنت الآن تستخدم احدث إصدار من Piwik!",
- "ClickRowToExpandOrContract": "إضغط هذا الصف لتوسيع أو طيّ الجدول الفرعي."
+ "ClickRowToExpandOrContract": "إضغط هذا الصف لتوسيع أو طيّ الجدول الفرعي.",
+ "UndoPivotBySubtable": "حصل تمركُز لهذا التقرير %s تراجع عن التمركز",
+ "PivotBySubtable": "هذا التقرير ليس متمركزاً %1$s ، إجعله متمركزاً على %2$s",
+ "QuickAccessTitle": "إبحث عن %s . استخدم مفاتيح الأسهم لتصفح نتائج البحث. اختصار: إضغط 'f' للبحث.",
+ "MenuEntries": "بنود (مدخلات) القائمة",
+ "Segments": "فئات",
+ "AdblockIsMaybeUsed": "في حال استخدامك لحاجب إعلانات ، فضلاً عطّله عن هذا الموقع لتضمن عمل بيويك دون مشاكل.",
+ "ChangeCurrentWebsite": "إختر موقع وب، الموقع المختار حالياً : %s"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/be.json b/plugins/CoreHome/lang/be.json
index 98d1a4ce0b..051d521cbe 100644
--- a/plugins/CoreHome/lang/be.json
+++ b/plugins/CoreHome/lang/be.json
@@ -2,7 +2,7 @@
"CoreHome": {
"CategoryNoData": "Няма дадзеных у гэтай катэгорыі. Паспрабуйце \"Ўключыць усе паказчыкі\".",
"JavascriptDisabled": "Java-скрыпт павінен быць уключаны, каб выкарыстоўваць Piwik ў звычайны рэжыме прагляду.<br \/>Аднак, здаецца, што Java-скрыпт адключаны або не падтрымліваецца браўзэрам.<br \/>Каб выкарыстоўваць стандартны выгляд, уключыце JavaScript, змяніўшы наладкі браўзэра , затым %1$sпаспрабуйце зноў%2$s.<br \/>",
- "NoPrivilegesAskPiwikAdmin": "Вы ўвайшлі як '%s', але здаецца, што у вас няма патрэбнага дазволу у Piwik. %s Спытайце свайго Piwik адміністратара (націснуць, каб паслаць паведамленне)%s, каб падаць вам дазвол для прагляду вэб-сайту.",
+ "NoPrivilegesAskPiwikAdmin": "Вы ўвайшлі як '%1$s', але здаецца, што у вас няма патрэбнага дазволу у Piwik. %2$s Спытайце свайго Piwik адміністратара (націснуць, каб паслаць паведамленне)%3$s, каб падаць вам дазвол для прагляду вэб-сайту.",
"PageOf": "%1$s з %2$s",
"ShowJSCode": "Паказаць Java-код для ўстаўкі",
"ThereIsNoDataForThisReport": "Няма дадзеных для гэтай справаздачы.",
diff --git a/plugins/CoreHome/lang/bg.json b/plugins/CoreHome/lang/bg.json
index e4afb1a111..c68267fab1 100644
--- a/plugins/CoreHome/lang/bg.json
+++ b/plugins/CoreHome/lang/bg.json
@@ -26,7 +26,7 @@
"MakeADifference": "Открийте разликата: %1$sДарете%2$s за фонд Piwik 2.0!",
"MakeOneTimeDonation": "Направете еднократно дарение",
"Menu": "Меню",
- "NoPrivilegesAskPiwikAdmin": "Вие се логнахте в като '%s' но изглежда че нямате разрешение от Piwik. %s Попитайте Вашият Piwik администратор (клик на email)%s да Ви даде \"поглед\" достъп до сайта.",
+ "NoPrivilegesAskPiwikAdmin": "Вие се логнахте в като '%1$s' но изглежда че нямате разрешение от Piwik. %2$s Попитайте Вашият Piwik администратор (клик на email)%3$s да Ви даде \"поглед\" достъп до сайта.",
"PageOf": "%1$s от %2$s",
"PeriodRange": "Период",
"ReportGeneratedOn": "Доклада е генериран за %s",
diff --git a/plugins/CoreHome/lang/ca.json b/plugins/CoreHome/lang/ca.json
index e62e5c8e4d..9aab453c1e 100644
--- a/plugins/CoreHome/lang/ca.json
+++ b/plugins/CoreHome/lang/ca.json
@@ -16,7 +16,7 @@
"InjectedHostWarningIntro": "Esteu accedint al Piwik desde %1$s, però el Piwik està configurat per escoltar a l'adreça: %2$s.",
"JavascriptDisabled": "S'ha de tenir el Javascript activat per vistualitzar la vista estàndar del Piwik.<br\/> No obstant això, sembla que el Javascript esta deshabilitat or no està suportat pel vostre navegador<br\/> Per utilitzar la vista estàndarc, activeu el Javascript canviant les opcions del navegador i %1$storneu-ho a probar%2$s.<br \/>",
"MakeADifference": "Contribuieu a les millores: %1$sDonar ara%2$s per col·laborar amb Piwik 2.0!",
- "NoPrivilegesAskPiwikAdmin": "Esteu identificat com a '%s' però sembla que no teniu cap permís establert al Piwik. %s Pregunteu al vostre administrador de Piwik (feu click per enviar un email)%s que us dongui access per veure un lloc web.",
+ "NoPrivilegesAskPiwikAdmin": "Esteu identificat com a '%1$s' però sembla que no teniu cap permís establert al Piwik. %2$s Pregunteu al vostre administrador de Piwik (feu click per enviar un email)%3$s que us dongui access per veure un lloc web.",
"PageOf": "%1$s de %2$s",
"PeriodRange": "Rang",
"ReportGeneratedOn": "Informe generat el %s",
diff --git a/plugins/CoreHome/lang/cs.json b/plugins/CoreHome/lang/cs.json
index aba489871a..7bb0c2602b 100644
--- a/plugins/CoreHome/lang/cs.json
+++ b/plugins/CoreHome/lang/cs.json
@@ -20,15 +20,16 @@
"IncludeRowsWithLowPopulation": "Řádky s nízkou populací jsou skryty %s Zobrazit všechny řádky",
"InjectedHostEmailBody": "Ahoj. Dnes jsem se snažil dostat do \\Piwiku a dostal jsem varování o neznámém ménu hostitele.",
"InjectedHostEmailSubject": "K piwiku bylo přistupováno s neznámým jménem hostitele %s",
- "InjectedHostNonSuperUserWarning": "%1$sKlikněte zde pro bezpečný přístup k Piwiku%2$s a odstranění tohoto varování. Pokud chcete upozornit administrátora na tento problém, %3$sklikněte zde pro odeslání emailu%4$s.",
+ "InjectedHostNonSuperUserWarning": "%1$sKlikněte zde pro bezpečný přístup k Piwiku%2$s a odstranění tohoto varování. Pokud chcete upozornit administrátora na tento problém, (%3$sklikněte zde pro odeslání e-mailu%4$s).",
"InjectedHostSuperUserWarning": "Piwik může být špatně nakonfigurován, například pokud byl přesunut na nový server nebo URL. Můžete %1$skliknout zde a přidat %2$s jako platné jméno hostitele Piwiku (pokud mu důvěřujete)%3$s, nebo %4$s klikněte zde%5$s pro bezpečný přístup k Piwiku%6$s.",
"InjectedHostWarningIntro": "Nyní přistupujete k Piwiku z %1$s, ale byl nakonfigurován, aby naslouchal na následující adrese: %2$s.",
"JavascriptDisabled": "Musíte mít zapnutý JavaScript, jinak Piwik nezobrazíte.<br \/> Nebo jen není Váš prohlížeč mezi podporovanými.<br \/>Pro běžné zobrazení zapněte JavaScript ve svém prohlížeči, poté %1$szkuste znovu%2$s.<br \/>",
+ "MainNavigation": "Hlavní navigace",
"MakeADifference": "Udělej změnu: %1$sPřispěj na vývoj%2$s nové verze Piwik 2.0",
"MakeOneTimeDonation": "Provést jednorázový dar.",
"Menu": "Menu",
- "NoPrivilegesAskPiwikAdmin": "Jste přihlášen jako '%s' ale zdá se, že nemáte v Piwiku žádná práva. %s Zeptejte se Vašeho Piwik administrátora (klikem na email)%s aby Vám dal 'view' přístup na stránku.",
- "OnlyForSuperUserAccess": "Tento widget je zobrazován pouze uživatelům se super uživatelským přístupem.",
+ "NoPrivilegesAskPiwikAdmin": "Jste přihlášen jako '%1$s' ale zdá se, že nemáte v Piwiku žádná práva. %2$s Zeptejte se Vašeho Piwik administrátora (klikem na email)%3$s aby Vám dal 'view' přístup na stránku.",
+ "OnlyForSuperUserAccess": "Tento widget je zobrazován pouze uživatelům se super-uživatelským přístupem.",
"PageOf": "%1$s z %2$s",
"PeriodRange": "Rozsah",
"ReportGeneratedOn": "Hlášení vygenerované %s",
@@ -48,11 +49,11 @@
"YouAreUsingTheLatestVersion": "Používáte nejnovější verzi Piwiku.",
"ClickRowToExpandOrContract": "Klikněte na tento řádek pro rozbalení nebo zbalení podtabulky.",
"UndoPivotBySubtable": "Toto hlášení bylo zaměřeno %s Vrátit zpět",
- "PivotBySubtable": "Toto hlášení není zaměřené %s Zaměřit na %s",
- "QuickAccessTitle": "Najít zástupce %s: Pro hledání stiskněte 'f'.",
+ "PivotBySubtable": "Toto hlášení není zaměřené %1$s Zaměřit na %2$s",
+ "QuickAccessTitle": "Výsledky hledání pro %s. Pro navigaci ve výsledcích vyhledávání použijte šipky. Zkratka: Zmáčknout 'f' pro hledání.",
"MenuEntries": "Položky menu",
"Segments": "Segmenty",
"AdblockIsMaybeUsed": "Pokud používáte blokovač reklam, zakažte ho pro tyto stránky, aby Piwik správně fungoval.",
- "ChangeCurrentWebsite": "Vybrat webovou stránku, aktuálně vybraná stránka: %s"
+ "ChangeCurrentWebsite": "Vyberte web, aktuálně vybraný web: %s"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/da.json b/plugins/CoreHome/lang/da.json
index 88a490b1d0..7c65699d10 100644
--- a/plugins/CoreHome/lang/da.json
+++ b/plugins/CoreHome/lang/da.json
@@ -27,7 +27,7 @@
"MakeADifference": "Gør en forskel: %1$sGiv et bidrag nu%2$s og støt Piwik 2.0!",
"MakeOneTimeDonation": "Foretag engangsdonation, i stedet.",
"Menu": "Menu",
- "NoPrivilegesAskPiwikAdmin": "Du er logget på som '%s' men det ser ikke ud som du har adgang til Piwik. %s Spørg Piwik administratoren (klik for at sende e-mail)%s for at give dig 'se' adgang til et websted.",
+ "NoPrivilegesAskPiwikAdmin": "Du er logget på som '%1$s' men det ser ikke ud som du har adgang til Piwik. %2$s Spørg Piwik administratoren (klik for at sende e-mail)%3$s for at give dig 'se' adgang til et websted.",
"OnlyForSuperUserAccess": "Modulet vises kun til brugere, der har superbruger adgang.",
"PageOf": "%1$s af %2$s",
"PeriodRange": "Interval",
@@ -48,6 +48,6 @@
"YouAreUsingTheLatestVersion": "Du bruger den seneste version af Piwik!",
"ClickRowToExpandOrContract": "Klik på rækken for at udvide eller sammentrække undertabelen.",
"UndoPivotBySubtable": "Rapporten er blevet pivoteret %s Fortryd pivot.",
- "PivotBySubtable": "Rapporten er ikke pivoteret %s Pivoter med %s."
+ "PivotBySubtable": "Rapporten er ikke pivoteret %1$s Pivoter med %2$s."
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/de.json b/plugins/CoreHome/lang/de.json
index a80015d88d..8b6b841b84 100644
--- a/plugins/CoreHome/lang/de.json
+++ b/plugins/CoreHome/lang/de.json
@@ -24,10 +24,11 @@
"InjectedHostSuperUserWarning": "Piwik könnte falsch konfiguriert sein (zum Beispiel wenn Piwik vor kurzem auf einen neuen Server oder eine neue URL umgezogen ist). Sie können entweder %1$shier klicken und %2$s als gültigen Hostnamen hinzufügen (wenn Sie ihm vertrauen)%3$s, oder %4$shier klicken um Piwik unter %5$s sicher zu betreten%6$s",
"InjectedHostWarningIntro": "Sie betreten Piwik aktuell von %1$s, allerdings wurde Piwik so konfiguriert, dass es unter dieser Adresse läuft: %2$s.",
"JavascriptDisabled": "JavaScript muss aktiviert sein, um die Standardansicht von Piwik zu benutzen.<br\/>Es scheint jedoch so, als wäre JavaScript bei Ihnen deaktiviert bzw. würde nicht von Ihrem Browser unterstützt.<br \/>Um die Standardansicht zu benutzen, aktivieren Sie JavaScript in Ihren Browseroptionen und %1$sversuchen Sie es erneut%2$s.<br \/>",
+ "MainNavigation": "Hauptnavigation",
"MakeADifference": "Machen Sie den Unterschied: %1$sSpenden Sie jetzt%2$s und unterstützen Sie so Piwik 2.0!",
"MakeOneTimeDonation": "Stattdessen einmalig spenden.",
"Menu": "Menü",
- "NoPrivilegesAskPiwikAdmin": "Sie sind angemeldet als '%s', aber es wurden keine Berechtigungen für diesen Benutzer in Piwik gesetzt. %s Bitte fragen Sie Ihren Piwik Administrator (klicken für E-Mail)%s um Zugriff auf die Website zu erhalten.",
+ "NoPrivilegesAskPiwikAdmin": "Sie sind angemeldet als '%1$s', aber es wurden keine Berechtigungen für diesen Benutzer in Piwik gesetzt. %2$s Bitte fragen Sie Ihren Piwik Administrator (klicken für E-Mail)%3$s um Zugriff auf die Webseite zu erhalten.",
"OnlyForSuperUserAccess": "Dieses Widget wird nur Benutzern mit Hauptadministrator-Berechtigung angezeigt.",
"PageOf": "%1$s von %2$s",
"PeriodRange": "Zeitspanne",
@@ -48,8 +49,8 @@
"YouAreUsingTheLatestVersion": "Sie verwenden die aktuelle Version von Piwik!",
"ClickRowToExpandOrContract": "Klicken Sie auf diese Zeile um die Untertabelle anzuzeigen oder zu verbergen.",
"UndoPivotBySubtable": "Pivot erstellt für diesen Bericht %s Pivot rückgängig machen",
- "PivotBySubtable": "Kein Pivot erstellt für diesen Bericht %s Pivot erstellen mit %s",
- "QuickAccessTitle": "Suche nach %s. Tastenkürzel: Drücken Sie 'f' um zu suchen.",
+ "PivotBySubtable": "Kein Pivot erstellt für diesen Bericht %1$s Pivot erstellen mit %2$s",
+ "QuickAccessTitle": "Suche nach '%s'. Benutzen Sie die Pfeiltasten um durch die Ergebnisse zu navigieren. Tastenkürzel: Drücken Sie 'f' um zu suchen.",
"MenuEntries": "Menüeinträge",
"Segments": "Segmente",
"AdblockIsMaybeUsed": "Für den Fall, dass Sie einen Ad-Blocker verwenden, deaktivieren Sie diesen bitte für diese Seite um sicherzustellen, dass Piwik problemlos läuft.",
diff --git a/plugins/CoreHome/lang/el.json b/plugins/CoreHome/lang/el.json
index ed3ae34bb2..955ccf536d 100644
--- a/plugins/CoreHome/lang/el.json
+++ b/plugins/CoreHome/lang/el.json
@@ -24,10 +24,11 @@
"InjectedHostSuperUserWarning": "Το Piwik μπορεί να είναι λάθος ρυθμισμένο (για  παράδειγμα, αν το Piwik πρόσφατα μεταφέρθηκε σε ένα νέο εξυπηρετητή ή URL). Μπορείτε είτε %1$sνα κάνετε κλικ εδώ και να προσθέσετε %2$s ως έγκυρο όνομα εξυπηρετητή του Piwik (αν τον εμπιστεύεστε)%3$s ή %4$sνα κάνετε κλικ εδώ και πηγαίνετε στο %5$s για να έχουν πρόσβαση με ασφάλεια Piwik%6$s.",
"InjectedHostWarningIntro": "Θα έχετε πρόσβαση τώρα στο Piwik από το %1$s, αλλά το Piwik έχει ρυθμιστεί να τρέχει σε αυτή τη διεύθυνση: %2$s.",
"JavascriptDisabled": "Η JavaScript πρέπει να ενεργοποιηθεί για να χρησιμοποιήσετε το Piwik στη βασική του μορφή.<br \/>Ωστόσο, φαίνεται ότι η JavaScript είναι είτε απενεργοποιημένη ή δεν υποστηρίζεται από τον φυλλομετρητή σας.<br \/>Για τη χρήση της βασικής μορφής, ενεργοποιήστε τη JavaScript αλλάζοντας της ρυθμίσεις του φυλλομετρητή σας και %1$sδοκιμάστε ξανά%2$s.<br \/>",
+ "MainNavigation": "Κεντρική πλοήγηση",
"MakeADifference": "Κάντε τη διαφορά: %1$sΔωρίστε τώρα%2$s για τη χρηματοδότηση του Piwik 2.0!",
"MakeOneTimeDonation": "Εναλλακτικά, κάντε μια εφάπαξ δωρεά.",
"Menu": "Μενού",
- "NoPrivilegesAskPiwikAdmin": "Έχετε συνδεθεί ως «%s» αλλά φαίνεται να μην έχετε ορισμένα δικαιώματα στο Piwik. %s Ρωτήστε τον διαχειριστή του Piwik (πατήστε για να στείλετε ηλεκτρονική επιστολή)%s για να σας δώσει δικαιώματα προβολή για μια ιστοσελίδα.",
+ "NoPrivilegesAskPiwikAdmin": "Έχετε κάνει είσοδο ως '%1$s', αλλά φαίνεται ότι δεν σας έχει δοθεί κάποιο δικαίωμα από το Piwik. %2$s Ζητήστε από το διαχειριστή του Piwik σας (κλικ για αποστολή e-mail)%3$s να σας δώσει δικαίωμα 'ανάγνωσης' στον ιστοτόπο.",
"OnlyForSuperUserAccess": "Το γραφικό συστατικό εμφανίζεται μόνο σε χρήστες με δικαίωμα Υπερ-Χρήστη.",
"PageOf": "%1$s από %2$s",
"PeriodRange": "Εύρος",
@@ -48,8 +49,8 @@
"YouAreUsingTheLatestVersion": "Χρησιμοποιείτε την τελευταία έκδοση του Piwik!",
"ClickRowToExpandOrContract": "Πατήστε στη γραμμή για να επεκταθεί ή να κρυφτεί ο υποπίνακας.",
"UndoPivotBySubtable": "Η αναφορά θεμελιώθηκε %s Αναίρεση της θεμελίωσης",
- "PivotBySubtable": "Η αναφορά αυτή δεν είναι θεμελιωμένη %s Να θεμελιωθεί από %s",
- "QuickAccessTitle": "Αναζήτηση για το %s. Πλήκτρο συντόμευσης: Πατήστε 'f' για αναζήτηση.",
+ "PivotBySubtable": "Η αναφορά αυτή δεν στηρίζεται %1$s Pivot από %2$s",
+ "QuickAccessTitle": "Αναζήτηση για %s. Χρησιμοποιήστε τα βελάκια για να πλοηγηθείτε μεταξύ των αποτελεσμάτων αναζήτησης. Συντόμευση πληκτρολογίου: πατήστε 'f' για αναζήτηση.",
"MenuEntries": "Καταχωρήσεις μενού",
"Segments": "Τμήματα",
"AdblockIsMaybeUsed": "Σε περίπτωση που χρησιμοποιείτε κάποια πρόγραμμα που μπλοκάρει τις διαφημίσεις, παρακαλούμε απενεργοποιήστε το για αυτόν τον ιστοτόπο για να είστε σίγουροι ότι το Piwik δουλεύει σωστά.",
diff --git a/plugins/CoreHome/lang/en.json b/plugins/CoreHome/lang/en.json
index 75566a08f2..cbc0300282 100644
--- a/plugins/CoreHome/lang/en.json
+++ b/plugins/CoreHome/lang/en.json
@@ -24,10 +24,11 @@
"InjectedHostSuperUserWarning": "Piwik may be misconfigured (for example, if Piwik was recently moved to a new server or URL). You can either %1$sclick here and add %2$s as the valid Piwik hostname (if you trust it)%3$s, or %4$sclick here and go to %5$s to access Piwik safely%6$s.",
"InjectedHostWarningIntro": "You are now accessing Piwik from %1$s, but Piwik has been configured to run at this address: %2$s.",
"JavascriptDisabled": "JavaScript must be enabled in order for you to use Piwik in standard view.<br \/>However, it seems JavaScript is either disabled or not supported by your browser.<br \/>To use standard view, enable JavaScript by changing your browser options, then %1$stry again%2$s.<br \/>",
+ "MainNavigation": "Main navigation",
"MakeADifference": "Make a difference: %1$sDonate now%2$s to fund Piwik 2.0!",
"MakeOneTimeDonation": "Make a one time donation, instead.",
"Menu": "Menu",
- "NoPrivilegesAskPiwikAdmin": "You are logged in as '%s' but it seems you don't have any permission set in Piwik. %s Ask your Piwik administrator (click to email)%s to give you 'view' access to a website.",
+ "NoPrivilegesAskPiwikAdmin": "You are logged in as '%1$s' but it seems you don't have any permission set in Piwik. %2$s Ask your Piwik administrator (click to email)%3$s to give you 'view' access to a website.",
"OnlyForSuperUserAccess": "This widget is only displayed to users having Super User access.",
"PageOf": "%1$s of %2$s",
"PeriodRange": "Range",
@@ -48,9 +49,9 @@
"YouAreUsingTheLatestVersion": "You are using the latest version of Piwik!",
"ClickRowToExpandOrContract": "Click this row to expand or contract the subtable.",
"UndoPivotBySubtable": "This report has been pivoted %s Undo pivot",
- "PivotBySubtable": "This report is not pivoted %s Pivot by %s",
"NoSuchPage": "This page does not exist",
- "QuickAccessTitle": "Search for %s. Shortcut: Press 'f' to search.",
+ "PivotBySubtable": "This report is not pivoted %1$s Pivot by %2$s",
+ "QuickAccessTitle": "Search for %s. Use the arrow keys to navigate through search results. Shortcut: Press 'f' to search.",
"MenuEntries": "Menu entries",
"Segments": "Segments",
"AdblockIsMaybeUsed": "In case you are using an ad blocker, please disable it for this site to make sure Piwik works without any issues.",
diff --git a/plugins/CoreHome/lang/es.json b/plugins/CoreHome/lang/es.json
index 37ae02a651..189f1b485c 100644
--- a/plugins/CoreHome/lang/es.json
+++ b/plugins/CoreHome/lang/es.json
@@ -27,7 +27,7 @@
"MakeADifference": "Marque la diferencia: %1$sDone ahora%2$s para financiar Piwik 2.0!",
"MakeOneTimeDonation": "Entonces, haga una sola donación",
"Menu": "Menú",
- "NoPrivilegesAskPiwikAdmin": "Ha iniciado sesión como '%s', pero parece que no posee ningún permiso configurado en Piwik. %s Consulta al administrador de su Piwik (clic para enviar correo electrónico)%s para que le otorgue acceso para 'ver' en el sitio de internet.",
+ "NoPrivilegesAskPiwikAdmin": "Ha iniciado sesión como '%1$s', pero parece que no posee ningún permiso configurado en Piwik. %2$s Consulta al administrador de su Piwik (clic para enviar correo electrónico)%3$s para que le otorgue acceso para 'ver' en el sitio de internet.",
"OnlyForSuperUserAccess": "Este reproductor sólo se muestra a los usuarios con acceso Super User.",
"PageOf": "%1$s de %2$s",
"PeriodRange": "Rango",
@@ -48,6 +48,6 @@
"YouAreUsingTheLatestVersion": "¡Está utilizando la última versión de Piwik!",
"ClickRowToExpandOrContract": "Clic en esta fila para expandir o contraer la subtabla.",
"UndoPivotBySubtable": "Este informe ha sido girado %s Deshacer giro",
- "PivotBySubtable": "Este informe no es girado %s Giro por %s"
+ "PivotBySubtable": "Este informe no es girado %1$s Giro por %2$s"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/fa.json b/plugins/CoreHome/lang/fa.json
index 26f701e2c2..b6e80d44f7 100644
--- a/plugins/CoreHome/lang/fa.json
+++ b/plugins/CoreHome/lang/fa.json
@@ -16,7 +16,7 @@
"InjectedHostEmailSubject": "دسترسی به پیویک توسط یک میزبان ناشناخته انجام شده است: %s",
"MakeADifference": "یک تفاوت ایجاد کنید: %1$sبه پیویک هدیه بدهید%2$s تا در پیویک 2.0 سرمایه گذاری کنیم!",
"MakeOneTimeDonation": "یک بار کمک مالی انجام دهید.",
- "NoPrivilegesAskPiwikAdmin": "شما به عنوان %s وارد شده اید , اما به نظر می رسد که شما اجازه دسترسی به هیچ بخشی از پیویک را ندارید. %s از مدیریت پیویک تان بخواهید (برای ارسال ایمیل کلیک کنید)%s تا به شما دسترسی \"مشاهده\" یک وبسایت را بدهد.",
+ "NoPrivilegesAskPiwikAdmin": "شما به عنوان %1$s وارد شده اید , اما به نظر می رسد که شما اجازه دسترسی به هیچ بخشی از پیویک را ندارید. %2$s از مدیریت پیویک تان بخواهید (برای ارسال ایمیل کلیک کنید)%3$s تا به شما دسترسی \"مشاهده\" یک وبسایت را بدهد.",
"OnlyForSuperUserAccess": "این ویجت فقط برای کاربران با دسترسی ابرکاربر قابل مشاهده است.",
"PageOf": "%1$s از %2$s",
"PeriodRange": "بازه",
diff --git a/plugins/CoreHome/lang/fi.json b/plugins/CoreHome/lang/fi.json
index 396119d87e..382429907e 100644
--- a/plugins/CoreHome/lang/fi.json
+++ b/plugins/CoreHome/lang/fi.json
@@ -25,7 +25,7 @@
"JavascriptDisabled": "JavaScriptin täytyy olla käytössä normaalinäkymässä.<br \/>JavaScript ei ole päällä tai ei ole tuettu selaimessasi.<br \/>Ota JavaScript käyttöön selaimesi asetuksista ja %1$syritä uudelleen%2$s.<br\/>",
"MakeADifference": "Ole mukana vaikuttamassa: %1$sTee lahjoitus%2$s Piwik 2.0 version rahoittamiseksi!",
"MakeOneTimeDonation": "Lahjoita kertasumma.",
- "NoPrivilegesAskPiwikAdmin": "Olet kirjautuneena sisään käyttäjänä '%s', mutta sinulla ei ole mitään oikeuksia Piwikissä. %sPyydä Piwikin ylläpitäjää (klikkaa avataksesi sähköpostin)%s antamaan katseluoikeudet verkkosivuun.",
+ "NoPrivilegesAskPiwikAdmin": "Olet kirjautuneena sisään käyttäjänä '%1$s', mutta sinulla ei ole mitään oikeuksia Piwikissä. %2$sPyydä Piwikin ylläpitäjää (klikkaa avataksesi sähköpostin)%3$s antamaan katseluoikeudet verkkosivuun.",
"OnlyForSuperUserAccess": "Tämä widget näkyy ainoastaan käyttäjille, joilla on Superkäyttäjän oikeudet.",
"PageOf": "%1$s of %2$s",
"PeriodRange": "Alue",
@@ -45,6 +45,6 @@
"YouAreUsingTheLatestVersion": "Käytössäsi on uusin versio Piwikistä!",
"ClickRowToExpandOrContract": "Klikkaa tätä riviä avataksesi tai sulkeaksesi alataulukon.",
"UndoPivotBySubtable": "Tämä raportti on käännetty %s:llä. Kumoa kääntö",
- "PivotBySubtable": "Tämä raportti ei ole käännetty %s:n mukaan. Käännetty %s:llä."
+ "PivotBySubtable": "Tämä raportti ei ole käännetty %1$s:n mukaan. Käännetty %2$s:llä."
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/fr.json b/plugins/CoreHome/lang/fr.json
index 95d1b7ba2f..ff41959551 100644
--- a/plugins/CoreHome/lang/fr.json
+++ b/plugins/CoreHome/lang/fr.json
@@ -24,10 +24,11 @@
"InjectedHostSuperUserWarning": "Piwik est probablement mal configuré (par exemple, si Piwik a récemment été déplacé vers un nouveau serveur ou une nouvelle URL). Vous pouvez ou %1$scliquer ici et l'ajouter %2$s en tant que nom d'hôte Piwik valide (si vous lui faites confiance)%3$s, ou %4$s cliquer ici et accéder %5$s à Piwik de manière sécurisée%6$s.",
"InjectedHostWarningIntro": "Vous accédez maintenant à Piwik depuis %1$s, mais Piwik a été configuré pour s'exécuter à cette adresse : %2$s.",
"JavascriptDisabled": "JavaScript doit être activé pour que vous puissiez utiliser Piwik de manière basique.<br \/>Cependant, il semble que JasvaScript ne soit pas supporté ou soit désactivé sur votre navigateur.<br \/>Pour utiliser l'interface basique, activez JavaScript en modifiant les options de votre navigateur, ensuite %1$sessayez encore%2$s.<br \/>",
+ "MainNavigation": "Navigation principale",
"MakeADifference": "Faites une différence : %1$sDonnez Maintenant%2$s pour financer Piwik 2.0!",
"MakeOneTimeDonation": "Faire un don unique à la place.",
"Menu": "Menu",
- "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.",
+ "NoPrivilegesAskPiwikAdmin": "Vous êtes connecté en tant que '%1$s' mais il semble que nous n'ayez aucune permission définie dans Piwik. %2$s Demandez à votre administrateur (cliquez pour envoyer un e-mail)%3$s de vous donner l'accès 'Consultation' à un site web.",
"OnlyForSuperUserAccess": "Ce widget est uniquement affiché aux utilisateurs possédant un accès de type super utilisateur.",
"PageOf": "%1$s de %2$s",
"PeriodRange": "Etendue",
@@ -48,8 +49,7 @@
"YouAreUsingTheLatestVersion": "Vous utilisez la dernière version de Piwik!",
"ClickRowToExpandOrContract": "Cliquez sur cette rangée pour afficher ou masquer le sous-tableau",
"UndoPivotBySubtable": "Ce rapport a été pivoté %s Annuler le pivot",
- "PivotBySubtable": "Ce rapport n'a pas été pivoté %s Pivoter par %s",
- "QuickAccessTitle": "Recherchez %s. Raccourci : pressez \"f\" pour rechercher.",
+ "PivotBySubtable": "Ce rapport n'a pas été pivoté %1$s Pivoter par %2$s",
"MenuEntries": "Entrées de menu",
"Segments": "Segments",
"AdblockIsMaybeUsed": "Dans le cas où vous utiliseriez un bloqueur de publicités, veuillez le désactiver pour ce site afin de vous assurer que Piwik fonctionne correctement.",
diff --git a/plugins/CoreHome/lang/hi.json b/plugins/CoreHome/lang/hi.json
index 719ccb4c60..62b280843e 100644
--- a/plugins/CoreHome/lang/hi.json
+++ b/plugins/CoreHome/lang/hi.json
@@ -26,7 +26,7 @@
"JavascriptDisabled": "आप मानक दृश्य में Piwik का उपयोग करने के लिए जावास्क्रिप्ट क्रम में सक्षम होना चाहिए. <br \/> हालांकि, ऐसा लगता है कि या तो जावास्क्रिप्ट आपके ब्राउज़र से अक्षम या समर्थित नहीं है.<br \/>मानक दृश्य का उपयोग करने के लिए, अपने ब्राउज़र के विकल्प बदलकर JavaScript सक्षम करें, तब %1$s फिर कोशिश करें %2$s. <br\/>",
"MakeADifference": "एक फर्क: निधि Piwik 2.0 के लिए %1$sअभी दान करे%2$s!",
"MakeOneTimeDonation": "इसके बजाय, एक समय दान करें.",
- "NoPrivilegesAskPiwikAdmin": "आप '%s' के रूप में लॉग इन किया है, लेकिन यह आपको Piwik में निर्धारित कोई भी अनुमति नहीं है लगता है. एक वेबसाइट पर 'दृश्य' पहुंच देने के लिए आपके %sPiwik व्यवस्थापक (ईमेल के लिए क्लिक करें)%s से पूछो.",
+ "NoPrivilegesAskPiwikAdmin": "आप '%1$s' के रूप में लॉग इन किया है, लेकिन यह आपको Piwik में निर्धारित कोई भी अनुमति नहीं है लगता है. एक वेबसाइट पर 'दृश्य' पहुंच देने के लिए आपके %2$sPiwik व्यवस्थापक (ईमेल के लिए क्लिक करें)%3$s से पूछो.",
"PageOf": "%1$s का %2$s",
"PeriodRange": "सीमा",
"ReportGeneratedOn": "%s पर उत्पन्न रिपोर्ट",
diff --git a/plugins/CoreHome/lang/hu.json b/plugins/CoreHome/lang/hu.json
index 921823e414..26a7004854 100644
--- a/plugins/CoreHome/lang/hu.json
+++ b/plugins/CoreHome/lang/hu.json
@@ -2,7 +2,7 @@
"CoreHome": {
"CategoryNoData": "Nincs adat ebben a kategóriában. Próbáld meg a \"Tartalmazza a teljes populációt\" opciót.",
"JavascriptDisabled": "A normál nézet megtekintéséhez JavaScript szükséges.<br \/>Úgy tűnik azonban, hogy a JavaScript vagy nem engedélyezett, vagy pedig nem támogatott a böngésződben.<br \/>A normál nézet eléréséhez engedélyezd a JavaScriptet böngésződben, majd %1$stöltsd be az oldalt újra!%2$s.<br \/>",
- "NoPrivilegesAskPiwikAdmin": "'%s' felhasználóként léptél be, de úgy tűnik, hogy nem rendelkezel semmilyen jogosultsággal. %s Kérd meg a Piwik adminisztrátorod (kattints ide egy email írásához)%s, hogy adjon számodra 'megtekintési' jogosultságot a webhelyhez.",
+ "NoPrivilegesAskPiwikAdmin": "'%1$s' felhasználóként léptél be, de úgy tűnik, hogy nem rendelkezel semmilyen jogosultsággal. %2$s Kérd meg a Piwik adminisztrátorod (kattints ide egy email írásához)%3$s, hogy adjon számodra 'megtekintési' jogosultságot a webhelyhez.",
"PageOf": "%1$s — %2$s",
"ShowJSCode": "Mutasd a JavaScript kódot a beillesztéshez",
"ThereIsNoDataForThisReport": "Nincs adat ehhez a jelentéshez.",
diff --git a/plugins/CoreHome/lang/id.json b/plugins/CoreHome/lang/id.json
index 8de1d7e590..78b2c44760 100644
--- a/plugins/CoreHome/lang/id.json
+++ b/plugins/CoreHome/lang/id.json
@@ -24,7 +24,7 @@
"JavascriptDisabled": "JavaScript harus diaktifkan untuk melihat Piwik di tampilan standar. <br \/>Namun, tampaknya JavaScript dimatikan atau tidak didukung oleh peramban Anda. <br \/>Untuk menggunakan tampilan standar, aktifkan JavaScript dengan mengubah pengaturab peramban Anda, lalu %1$scoba lagi%2$s. <br \/>",
"MakeADifference": "Buat perbedaan: %1$sMenyumbang sekarang%2$s untuk mendanai Piwik 2.0!",
"MakeOneTimeDonation": "Buat satu kali sumbangan saja.",
- "NoPrivilegesAskPiwikAdmin": "Anda masuk sebagai '%s' tetapi sepertinya Anda tidak memiliki izin apapun di Piwik. %s Tanyakan kepada pengelola Piwik Anda (klik untuk kirim surel)%s untuk memberikan akses 'Lihat' ke situs.",
+ "NoPrivilegesAskPiwikAdmin": "Anda masuk sebagai '%1$s' tetapi sepertinya Anda tidak memiliki izin apapun di Piwik. %2$s Tanyakan kepada pengelola Piwik Anda (klik untuk kirim surel)%3$s untuk memberikan akses 'Lihat' ke situs.",
"PageOf": "%1$s dari %2$s",
"PeriodRange": "Rentang",
"ReportGeneratedOn": "Laporan dibuat dalam %s",
diff --git a/plugins/CoreHome/lang/it.json b/plugins/CoreHome/lang/it.json
index 37c9c5fc1a..913208c21e 100644
--- a/plugins/CoreHome/lang/it.json
+++ b/plugins/CoreHome/lang/it.json
@@ -24,10 +24,11 @@
"InjectedHostSuperUserWarning": "Piwik può essere configurato in modo errato (ad esempio, se Piwik è stato recentemente spostato in un nuovo server o URL). È possibile %1$sFare clic qui e aggiungere %2$s come hostname valido per Piwik (se ti fidi di esso)%3$s, o %4$sFare clic qui e andare a %5$s per accedere in modo sicuro a Piwik%6$s.",
"InjectedHostWarningIntro": "Stai accedendo a Piwik da %1$s ma Piwik è stato configuraato per girare a questo indirizzo: %2$s.",
"JavascriptDisabled": "JavaScript deve essere abilitato per poter utilizzare Piwik in visualizzazione standard.<br \/>Tuttavia, sembra che JavaScript sia disabilitato o non supportato dal tuo browser.<br \/> Per utilizzare la visualizzazione standard, attiva JavaScript modificando le opzioni del browser, quindi %1$sprova ancora%2$s.<br \/>",
+ "MainNavigation": "Navigazione principale",
"MakeADifference": "Fa' la differenza: %1$sDona adesso%2$s per finanziare Piwik 2.0!",
"MakeOneTimeDonation": "Fa' una donazione unica.",
"Menu": "Menu",
- "NoPrivilegesAskPiwikAdmin": "Sei loggato come '%s', ma a quanto pare non hai alcuna autorizzazione in Piwik. %s Contatta l'amministratore di Piwik (clicca per e-mail)%s per consentire la visualizzazione di un sito web.",
+ "NoPrivilegesAskPiwikAdmin": "Sei stato registrato come '%1$s', ma a quanto pare non si dispone di alcuna autorizzazione in Piwik. %2$s Contattare l'amministratore Piwik (clicca per e-mail) %3$s per consentire la visualizzazione di un sito web.",
"OnlyForSuperUserAccess": "Questo widget è visualizzato solo dagli utenti che hanno un accesso Super User.",
"PageOf": "%1$s di %2$s",
"PeriodRange": "Intervallo",
@@ -48,8 +49,8 @@
"YouAreUsingTheLatestVersion": "Stai utilizzando l'ultima versione di Piwik!",
"ClickRowToExpandOrContract": "Clicca su questa riga per espandere o restringere la sotto-tabella.",
"UndoPivotBySubtable": "Questo report è stato imperniato al Pivot %s Undo",
- "PivotBySubtable": "Questo report non è imperniato al Pivot %s da %s",
- "QuickAccessTitle": "Cerca %s. Shortcut: Premi 'f' per la ricerca.",
+ "PivotBySubtable": "Questo report non è imperniato al Pivot %1$s da %2$s",
+ "QuickAccessTitle": "Ricerca per %s. Utilizza i tasti freccia per navigare tra i risultati di ricerca. Scorciatoia: premi 'f' per cercare.",
"MenuEntries": "Ingressi da menù",
"Segments": "Segmenti",
"AdblockIsMaybeUsed": "Se stai utilizzando un plugin di blocco della pubblicità, disabilitalo per questo sito, per essere sicuro che Piwik lavori senza problemi.",
diff --git a/plugins/CoreHome/lang/ja.json b/plugins/CoreHome/lang/ja.json
index d328182c53..83d636991e 100644
--- a/plugins/CoreHome/lang/ja.json
+++ b/plugins/CoreHome/lang/ja.json
@@ -27,7 +27,7 @@
"MakeADifference": "ぜひ、新しい変化を生み出してください : Piwik 2.0 基金に %1$sDonate now%2$s !",
"MakeOneTimeDonation": "代わりに寄与をする",
"Menu": "メニュー",
- "NoPrivilegesAskPiwikAdmin": "'%s'としてログインしていますが、権限が設定されていないようです。 %s Piwikの管理者(クリックしてEメール)%s に'表示'の権限を与えてもらってください。",
+ "NoPrivilegesAskPiwikAdmin": "'%1$s'としてログインしていますが、権限が設定されていないようです。 %2$s Piwikの管理者(クリックしてEメール)%3$s に'表示'の権限を与えてもらってください。",
"OnlyForSuperUserAccess": "このウィジェットは、スーパーユーザのアクセス権を持つユーザにのみ表示されます",
"PageOf": "%1$s \/ %2$s",
"PeriodRange": "期間",
@@ -48,8 +48,7 @@
"YouAreUsingTheLatestVersion": "Piwik の最新バージョンを使用しています !",
"ClickRowToExpandOrContract": "サブテーブルを拡大または縮小するには、この列をクリックしてください。",
"UndoPivotBySubtable": "このレポートは、%s 元に戻すピボットを旋回しました。",
- "PivotBySubtable": "このレポートは、%s が %s ピボット を旋回していません。",
- "QuickAccessTitle": "%s を検索。ショートカット: ' f' キーを押して検索します。",
+ "PivotBySubtable": "このレポートは、%1$s が %2$s ピボット を旋回していません。",
"MenuEntries": "メニュー エントリー",
"Segments": "セグメント",
"AdblockIsMaybeUsed": "広告ブロッカーを使用している場合には、Piwik が問題なく動作することを確認するために、このサイトでそれを無効にしてください。",
diff --git a/plugins/CoreHome/lang/ko.json b/plugins/CoreHome/lang/ko.json
index aee10161d2..53f815c4cc 100644
--- a/plugins/CoreHome/lang/ko.json
+++ b/plugins/CoreHome/lang/ko.json
@@ -27,7 +27,7 @@
"MakeADifference": "개발 지원: Piwik 2.0에 %1$s기부해 주세요%2$s!",
"MakeOneTimeDonation": "또는, 한 번만 기부합니다.",
"Menu": "메뉴",
- "NoPrivilegesAskPiwikAdmin": "'%s'로 로그인되었지만 권한이 설정되어 있지 않습니다. %s Piwik 관리자(클릭 이메일) %s에 '보기'권한을 부여 받으세요.",
+ "NoPrivilegesAskPiwikAdmin": "'%1$s'로 로그인되었지만 권한이 설정되어 있지 않습니다. %2$s Piwik 관리자(클릭 이메일) %3$s에 '보기'권한을 부여 받으세요.",
"OnlyForSuperUserAccess": "해당 위젯은 유저가 수퍼 유저일 경우에만 나타납니다.",
"PageOf": "%1$s \/ %2$s",
"PeriodRange": "기간",
@@ -47,7 +47,8 @@
"WebAnalyticsReports": "웹 분석 보고서",
"YouAreUsingTheLatestVersion": "Piwik 최신 버전을 사용하고 있습니다!",
"ClickRowToExpandOrContract": "하위 테이블의 행을 확장하거나 축소하기 위해 클릭하세요.",
- "QuickAccessTitle": "%s 검색하기. 단축키: 검색을 하려면 'f'를 누르세요.",
+ "UndoPivotBySubtable": "이 보고서는 %s Undo pivot에 의해 결정되었습니다.",
+ "PivotBySubtable": "이 보고서는 %1$s Pivot이 %2$s에 의해 결정되지 않았습니다.",
"MenuEntries": "메뉴",
"Segments": "세그멘트",
"AdblockIsMaybeUsed": "Piwik가 문제 없이 동작하기 위해서 광고 차단기능이 있는 플러그인을 꺼주시길 바랍니다.",
diff --git a/plugins/CoreHome/lang/lt.json b/plugins/CoreHome/lang/lt.json
index 907f1bf178..daa7ec1701 100644
--- a/plugins/CoreHome/lang/lt.json
+++ b/plugins/CoreHome/lang/lt.json
@@ -1,7 +1,9 @@
{
"CoreHome": {
"CategoryNoData": "Šioje kategorijoje duomenų nėra. Pabandykite \"Įtraukti visą populiaciją\"",
+ "CheckForUpdates": "Tikrinti ar yra atnaujinimų",
"JavascriptDisabled": "JavaScript turi būti įjungta, kad būtų galima naudoti standartinę Piwik išvaizdą.<br \/>Tačiau panašu, kad JavaScript yra arba išjungta, arba nepalaikoma Jūsų naršyklės.<br \/>Norėdami matyti standartinę išvaizdą, įjunkite JavaScript keisdami savo naršyklės nustatymus, tada %1$sbandykite dar kartą%2$s.<br \/>",
+ "Menu": "Meniu",
"PageOf": "%1$s iš %2$s",
"SharePiwikShort": "Piwik! Nemokama\/laisva saityno analitika. Būkite savo duomenų savininkais.",
"ShowJSCode": "Parodyti JavaScript kodą įvedimui",
diff --git a/plugins/CoreHome/lang/lv.json b/plugins/CoreHome/lang/lv.json
index bc41f75746..d9f56e9eef 100644
--- a/plugins/CoreHome/lang/lv.json
+++ b/plugins/CoreHome/lang/lv.json
@@ -2,7 +2,7 @@
"CoreHome": {
"CategoryNoData": "Nav datu šajā kategorijā. Mēģiniet izvēlēties \"Iekļaut visu apmeklējumu\".",
"JavascriptDisabled": "Lai lietotu Piwik tā standartskatā, ir jāieslēdz JavaScript.<br \/>Tomēr izskatās, ka JavaScript atbalsts ir izslēgts vai arī to neatbalsts Jūsu pārlūks.<br \/>Lai lietotu standartskatu, ieslēdziet JavaScript atbalstu pārlūka iestatījumos, tad %1$smēģiniet atkārtoti%2$s.<br \/>",
- "NoPrivilegesAskPiwikAdmin": "Jūs esat ienākuši kā '%s', bet izskatās, ka Jums nav iestatītas vajadzīgās Piwik atļaujas. %s Pieprasiet savam Piwik administratoram (klikšķiniet, lai nosūtītu e-pastu)%s Jums pieslēgt vietnes apskates atļauju.",
+ "NoPrivilegesAskPiwikAdmin": "Jūs esat ienākuši kā '%1$s', bet izskatās, ka Jums nav iestatītas vajadzīgās Piwik atļaujas. %2$s Pieprasiet savam Piwik administratoram (klikšķiniet, lai nosūtītu e-pastu)%3$s Jums pieslēgt vietnes apskates atļauju.",
"PageOf": "%1$s no %2$s",
"ShowJSCode": "Rādīt ievietošanai paredzēto JavaScript kodu",
"ThereIsNoDataForThisReport": "Nav šajai atskaitei vajadzīgo datu.",
diff --git a/plugins/CoreHome/lang/nb.json b/plugins/CoreHome/lang/nb.json
index 18676eed7b..e8d177486d 100644
--- a/plugins/CoreHome/lang/nb.json
+++ b/plugins/CoreHome/lang/nb.json
@@ -24,10 +24,11 @@
"InjectedHostSuperUserWarning": "Piwik kan være feilkonfigurert (for eksempel hvis Piwik nylig var flyttet til en ny tjener eller ny URL). Du kan enten %1$sklikke her og legge til %2$s som et gyldig Piwik-vertsnavn (hvis du stoler på det)%3$s eller %4$sklikk her og gå til %5$s for sikker tilgang til Piwik%6$s.",
"InjectedHostWarningIntro": "Du har tilgang til Piwik fra %1$s, men Piwik er konfigurert til å kjøre på adressen: %2$s",
"JavascriptDisabled": "JavaScript må være aktivert for at du skal kunne bruke Piwik i standardvisning.<br \/>Det ser ut til at JavaScript enten er deaktivert eller ikke støttet av din nettleser.<br \/>For å bruke standardvisning, må du aktivere JavaScript i nettleserinnstillingene og deretter %1$sprøve igjen%2$s.<br \/>",
+ "MainNavigation": "Hovednavigasjon",
"MakeADifference": "Gjør en forskjell: %1$sDoner nå%2$s for å finansiere Piwik 2.0!",
"MakeOneTimeDonation": "Bidra med en engangsdonasjon i stedet.",
"Menu": "Meny",
- "NoPrivilegesAskPiwikAdmin": "Du er logget inn som «%s», men det ser ut til at du ikke har noen rettigheter satt i Piwik. %s Be din Piwik-administrator (klikk for å sende e-post)%s å gi deg «vis»-tilgang til et nettsted.",
+ "NoPrivilegesAskPiwikAdmin": "Du er logget inn som «%1$s», men det ser ut til at du ikke har noen rettigheter satt i Piwik. %2$s Be din Piwik-administrator (klikk for å sende e-post)%3$s å gi deg «vis»-tilgang til et nettsted.",
"OnlyForSuperUserAccess": "Denne widgeten vises kun til brukere som har superbruker-tilgang.",
"PageOf": "%1$s av %2$s",
"PeriodRange": "Periode",
@@ -48,8 +49,8 @@
"YouAreUsingTheLatestVersion": "Du bruker den nyeste versjonen av Piwik!",
"ClickRowToExpandOrContract": "Klikk denne raden for utvide eller slå sammen undertabellen.",
"UndoPivotBySubtable": "Denne rapporten er pivotert %s Angre pivot",
- "PivotBySubtable": "Denne rapporten er ikke pivotert %s Pivot etter %s",
- "QuickAccessTitle": "Søk etter %s. Snarvei: Trykk «f» for å søke.",
+ "PivotBySubtable": "Denne rapporten er ikke pivotert %1$s Pivot etter %2$s",
+ "QuickAccessTitle": "Søk etter %s. Bruk piltastene for å navigere i søkeresultatene. Snarvei: trykk «f» for å søke.",
"MenuEntries": "Menyvalg",
"Segments": "Segmenter",
"AdblockIsMaybeUsed": "Hvis du bruker en ad-blocker, vennligst deaktiver den for dette nettstedet for å forsikre deg om at Piwik fungerer som det skal.",
diff --git a/plugins/CoreHome/lang/nl.json b/plugins/CoreHome/lang/nl.json
index 56ac3bee35..a82520ae65 100644
--- a/plugins/CoreHome/lang/nl.json
+++ b/plugins/CoreHome/lang/nl.json
@@ -27,7 +27,7 @@
"MakeADifference": "Maak een verschil: %1$sDoneer nu%2$s om Piwik 2.0 te steunen!",
"MakeOneTimeDonation": "Doe een eennmalige donatie in de plaats.",
"Menu": "Menu",
- "NoPrivilegesAskPiwikAdmin": "U bent aangemeld as '%s'. Maar het lijkt er op dat u geen rechten hebt op Piwik te bezoeken. %sVraag aan uw webmaster (klik hier voor e-mail)%s of hij u de juiste rechten wilt geven om de statistieken te bekijken.",
+ "NoPrivilegesAskPiwikAdmin": "U bent aangemeld as '%1$s'. Maar het lijkt er op dat u geen rechten hebt op Piwik te bezoeken. %2$sVraag aan uw webmaster (klik hier voor e-mail)%3$s of hij u de juiste rechten wilt geven om de statistieken te bekijken.",
"OnlyForSuperUserAccess": "Deze widget wordt alleen getoond aan superusers.",
"PageOf": "%1$s of %2$s",
"PeriodRange": "Datumbereik",
@@ -48,6 +48,6 @@
"YouAreUsingTheLatestVersion": "Je gebruikt de laatste versie van Piwik!",
"ClickRowToExpandOrContract": "Klik deze regel om de tabel te openen of te sluiten.",
"UndoPivotBySubtable": "Dit rapport wordt als een draaitabel getoond, %s schakel de draaitabel uit.",
- "PivotBySubtable": "Dit rapport wordt niet als een draaitabel getoond, %s maak een draaitabel op basis van %s"
+ "PivotBySubtable": "Dit rapport wordt niet als een draaitabel getoond, %1$s maak een draaitabel op basis van %2$s"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/nn.json b/plugins/CoreHome/lang/nn.json
index 4e532bea24..d52bec6fd8 100644
--- a/plugins/CoreHome/lang/nn.json
+++ b/plugins/CoreHome/lang/nn.json
@@ -9,7 +9,7 @@
"FlattenDataTable": "Rapporten er hierarkisk %s Gjer den flat",
"IncludeRowsWithLowPopulation": "Rader med låg populasjon er skjult %s Vis alle rader",
"JavascriptDisabled": "JavaScript må vera slegen på for å kunne bruka Piwik i standardvisning.<br \/>Det ser ut til at JavaScript er slegen av eller ikkje støtta i nettlesaren din.<br \/>For å bruka standardvisninga, slå på JavaScript i nettlesaren din, og %1$sprøv igjen%2$s.<br \/>",
- "NoPrivilegesAskPiwikAdmin": "Du er innlogga som '%s' men det ser ikkje ut til at du har vidare tilgang til Piwik. %s Spør Piwik-administratoren (klikk for å senda e-post)%s om å gje deg 'vis'-tilgang til ei nettside.",
+ "NoPrivilegesAskPiwikAdmin": "Du er innlogga som '%1$s' men det ser ikkje ut til at du har vidare tilgang til Piwik. %2$s Spør Piwik-administratoren (klikk for å senda e-post)%3$s om å gje deg 'vis'-tilgang til ei nettside.",
"PageOf": "%1$s av %2$s",
"PeriodRange": "Periode",
"ReportGeneratedOn": "Rapport generert den %s",
diff --git a/plugins/CoreHome/lang/pl.json b/plugins/CoreHome/lang/pl.json
index e33b906c2c..ac7fbac176 100644
--- a/plugins/CoreHome/lang/pl.json
+++ b/plugins/CoreHome/lang/pl.json
@@ -24,7 +24,7 @@
"JavascriptDisabled": "Aby użyć standardowego widoku Piwik, wymagane jest zezwolenie do działanie skryptów Java.<br \/>Wydaje się jednak, że tutaj JavaScript nie działa lub jest niepoprawnie wspierany przez twoją przeglądarkę.<br \/>By użyć standardowego widoku, włącz działanie JavaScript w opcjach swojej przeglądarki, i wtedy %1$sspróbuj ponownie%2$s.<br \/>",
"MakeOneTimeDonation": "Zamiast, przekaż jednorazową dotację.",
"Menu": "Menu",
- "NoPrivilegesAskPiwikAdmin": "Jesteś zalogowany jako '%s' ale wygląda na to, że nie masz nadanych żadnych uprawnień w Piwik'u. %s Poproś swojego administratora Piwik'a (kliknij aby wysłąć email)%s aby nadał Ci uprawnienia 'przeglądania' strony.",
+ "NoPrivilegesAskPiwikAdmin": "Jesteś zalogowany jako '%1$s' ale wygląda na to, że nie masz nadanych żadnych uprawnień w Piwik'u. %2$s Poproś swojego administratora Piwik'a (kliknij aby wysłąć email)%3$s aby nadał Ci uprawnienia 'przeglądania' strony.",
"OnlyForSuperUserAccess": "Ten widżet widzą tylko użytkownych z prawami dostępu Super User.",
"PageOf": "%1$s z %2$s",
"PeriodRange": "Zakres",
diff --git a/plugins/CoreHome/lang/pt-br.json b/plugins/CoreHome/lang/pt-br.json
index b7522980e0..b2215af4dd 100644
--- a/plugins/CoreHome/lang/pt-br.json
+++ b/plugins/CoreHome/lang/pt-br.json
@@ -24,10 +24,11 @@
"InjectedHostSuperUserWarning": "Piwik pode estar mal configurado (por exemplo, se Piwik foi recentemente movido para um novo servidor ou URL). Você pode tanto %1$sClicar aqui e adicionar%2$s como um Piwik hostname válido (se você confiar nele)%3$s, ou %4$sClique aqui para %5$s para acessar com segurança Piwik%6$s.",
"InjectedHostWarningIntro": "Você está agora acessando Piwik de %1$s, mas Piwik foi configurado para ser executado neste endereço: %2$s.",
"JavascriptDisabled": "JavaScript deve ser habilitado para que você possa usar o Piwik como visualização padrão. <br\/>Contudo, parece que JavaScript ou está desabilidado ou não é suportado pelo seu navegador. <br\/>Para usar a visualização padrão, habilite o JavaScript mudando as opções do seu navegador, então %1$stente novamente%2$s.<br\/>",
+ "MainNavigation": "Navegação principal",
"MakeADifference": "Faça a diferença:%1$sDoe agora%2$s para o fundo Piwik 2.0!",
"MakeOneTimeDonation": "Em vez disso, faça uma doação.",
"Menu": "Menu",
- "NoPrivilegesAskPiwikAdmin": "Você está logado como '%s', mas parece que você não tem nenhuma permissão definida no Piwik. %s Pergunte ao seu administrador Piwik (clique para e-mail) %s para lhe dar acesso de 'visão' para um site.",
+ "NoPrivilegesAskPiwikAdmin": "Você está logado como '%1$s', mas parece que você não tem nenhuma permissão definida no Piwik. %2$s Pergunte ao seu administrador Piwik (clique para e-mail) %3$s para lhe dar acesso de 'visão' para um site.",
"OnlyForSuperUserAccess": "Este widget só é exibido para os usuários com privilégios de Super Usuário.",
"PageOf": "%1$s de %2$s",
"PeriodRange": "Alcance",
@@ -48,8 +49,8 @@
"YouAreUsingTheLatestVersion": "Você está usando a última versão do Piwik!",
"ClickRowToExpandOrContract": "Clique nesta linha para expandir ou contrair a subtabela.",
"UndoPivotBySubtable": "Este relatório foi articulado %s desfazer articulação",
- "PivotBySubtable": "Este relatório não foi articulado %s Articular por %s",
- "QuickAccessTitle": "Buscar por %s. Atalho: Tecle 'f' para buscar.",
+ "PivotBySubtable": "Este relatório não foi articulado %1$s Articular por %2$s",
+ "QuickAccessTitle": "Buscar por %s. Use as setas do teclado para navegar pelos resultados da pesquisa. Atalho: Pressione 'f' para pesquisar.",
"MenuEntries": "Itens do menu",
"Segments": "Segmentos",
"AdblockIsMaybeUsed": "Caso você esteja usando um bloqueador de anúncios, por favor desative-o para este site, pois assim poderá certificar-se de que o Piwik funciona sem qualquer problema.",
diff --git a/plugins/CoreHome/lang/ro.json b/plugins/CoreHome/lang/ro.json
index 5b74280ceb..bc8707c590 100644
--- a/plugins/CoreHome/lang/ro.json
+++ b/plugins/CoreHome/lang/ro.json
@@ -25,7 +25,7 @@
"JavascriptDisabled": "Trebuie sa aveti JavaScript activat pentru a putea utiliza Piwik in modul de vizualizare standard.<br \/> Se pare ca JavaScript ori nu este activat, ori nu este suportat de browserul dvs.<br \/> Pentru a utiliza modul de vizualizare standard, activati JavaScript modificand optiunile browserului dvs, apoi %1$sincercati din nou%2$s.<br \/>",
"MakeADifference": "Fa o diferenta: %1$sDoneaza acum%2$s pentru a sponsoriza Piwik 2.0!",
"MakeOneTimeDonation": "În schimb, donează o dată (fără subscriere).",
- "NoPrivilegesAskPiwikAdmin": "Sunteti logat ca '%s' dar se pare ca nu aveti nici o permisiune setata in Piwik. %s Solicitati administratorului dvs al Piwik (click pentru email)%s sa va permita accesul tip 'vizualizare' pentru un site.",
+ "NoPrivilegesAskPiwikAdmin": "Sunteti logat ca '%1$s' dar se pare ca nu aveti nici o permisiune setata in Piwik. %2$s Solicitati administratorului dvs al Piwik (click pentru email)%3$s sa va permita accesul tip 'vizualizare' pentru un site.",
"OnlyForSuperUserAccess": "Acest widget este afișat numai pentru utilizatorii care au acces la Super utilizator.",
"PageOf": "%1$s din %2$s",
"PeriodRange": "Perioadă",
diff --git a/plugins/CoreHome/lang/ru.json b/plugins/CoreHome/lang/ru.json
index 6103a78217..4b7d9f0549 100644
--- a/plugins/CoreHome/lang/ru.json
+++ b/plugins/CoreHome/lang/ru.json
@@ -27,7 +27,7 @@
"MakeADifference": "Внесите свой вклад: %1$sПожертвуйте сейчас%2$s для финансирования Piwik 2.0!",
"MakeOneTimeDonation": "Сделать только пожертвование (без подписки).",
"Menu": "Меню",
- "NoPrivilegesAskPiwikAdmin": "Вы авторизованы как '%s', но, кажется, для вас не установлены права в Piwik. %s Попросите вашего администратора (кликните, чтобы написать письмо)%s дать вам доступ на \"просмотр\" к статистике сайта.",
+ "NoPrivilegesAskPiwikAdmin": "Вы авторизованы как '%1$s', но, кажется, для вас не установлены права в Piwik. %2$s Попросите вашего администратора (кликните, чтобы написать письмо)%3$s дать вам доступ на \"просмотр\" к статистике сайта.",
"OnlyForSuperUserAccess": "Этот виджет отображается только у суперпользователя.",
"PageOf": "%1$s из %2$s",
"PeriodRange": "Период",
diff --git a/plugins/CoreHome/lang/sk.json b/plugins/CoreHome/lang/sk.json
index 4958269f47..784221d728 100644
--- a/plugins/CoreHome/lang/sk.json
+++ b/plugins/CoreHome/lang/sk.json
@@ -27,7 +27,7 @@
"MakeADifference": "Urobte rozdiel: %1$sTeraz prispejte finančne%2$s podporiť Piwik 2.0!",
"MakeOneTimeDonation": "Jednorázovo finančne podporiť.",
"Menu": "Menu",
- "NoPrivilegesAskPiwikAdmin": "Ste prihlásený ako '%s' ale vyzerá to tak , že nemáte žiadne povolenie do Piwiku. %s Spýtajte sa Vášho Piwik administrátora (Kliknite pre email)%s aby Vám dal 'prezerací' prístup na webstránku.",
+ "NoPrivilegesAskPiwikAdmin": "Ste prihlásený ako '%1$s' ale vyzerá to tak , že nemáte žiadne povolenie do Piwiku. %2$s Spýtajte sa Vášho Piwik administrátora (Kliknite pre email)%3$s aby Vám dal 'prezerací' prístup na webstránku.",
"OnlyForSuperUserAccess": "Táto miniaplikácia je zobrazená iba užívateľom ktorý majú prístup ako Super-užívatelia.",
"PageOf": "%1$s z %2$s",
"PeriodRange": "Rozsah",
@@ -48,6 +48,6 @@
"YouAreUsingTheLatestVersion": "Používate najnovšiu verziu Piwiku!",
"ClickRowToExpandOrContract": "Kliknite na tento riadok pre rozvinutie alebo zbalenie podtabuľky.",
"UndoPivotBySubtable": "Tento report bol pivotovaný %s Naspäť pivot",
- "PivotBySubtable": "Tento report nebol pivotovaný %s Pivotovať podľa %s"
+ "PivotBySubtable": "Tento report nebol pivotovaný %1$s Pivotovať podľa %2$s"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/sl.json b/plugins/CoreHome/lang/sl.json
index 3b257a7d70..3c353cb8a3 100644
--- a/plugins/CoreHome/lang/sl.json
+++ b/plugins/CoreHome/lang/sl.json
@@ -3,7 +3,7 @@
"CategoryNoData": "V tej kategoriji ni podatkov. Poizkusite \"Vključiti celotno populacijo\".",
"CheckForUpdates": "Preveri za posodobitve",
"Default": "privzeto",
- "NoPrivilegesAskPiwikAdmin": "Vpisani ste kot '%s', vendar v Piwik-u nimate nastavljenih nobenih pooblastil. %s Poprosite vašega Piwik administratorja (klik za email)%s naj vam da pooblastila za ogled določene(ih) strani.",
+ "NoPrivilegesAskPiwikAdmin": "Vpisani ste kot '%1$s', vendar v Piwik-u nimate nastavljenih nobenih pooblastil. %2$s Poprosite vašega Piwik administratorja (klik za email)%3$s naj vam da pooblastila za ogled določene(ih) strani.",
"PageOf": "%1$s od %2$s",
"PeriodRange": "Razpon",
"ReportGeneratedOn": "Poročilo ustvarjano na %s",
diff --git a/plugins/CoreHome/lang/sq.json b/plugins/CoreHome/lang/sq.json
index a4bee7a8fb..05a0379a62 100644
--- a/plugins/CoreHome/lang/sq.json
+++ b/plugins/CoreHome/lang/sq.json
@@ -4,7 +4,7 @@
"CheckForUpdates": "Kontrollo për përditësime",
"DataForThisReportHasBeenPurged": "Të dhënat e këtij raporti janë më të vjetra se %s muaj dhe u pastruan.",
"JavascriptDisabled": "Që të mund të përdorni Piwik-un në parjen standarde duhet të aktivizohet JavaScript-i.<br \/>Por ja që duket se ose JavaScript-i është i çaktivizuar, ose nuk mbulohet nga shfletuesi juaj.<br \/>Që të përdorni parjen standarde, aktivizoni JavaScript-in duke ndryshuar mundësitë përkatëse te shfletuesi juaj, mandej %1$sriprovoni%2$s.<br \/>",
- "NoPrivilegesAskPiwikAdmin": "Jeni i futur si '%s' por duket se nuk keni leje të rregulluara për ju në Piwik. %s Kërkojini administratorit tuaj te Piwik (klikoni që t’i dërgoni email)%s që t’ju japë të drejta 'parjesh' te një site web.",
+ "NoPrivilegesAskPiwikAdmin": "Jeni i futur si '%1$s' por duket se nuk keni leje të rregulluara për ju në Piwik. %2$s Kërkojini administratorit tuaj te Piwik (klikoni që t’i dërgoni email)%3$s që t’ju japë të drejta 'parjesh' te një site web.",
"PageOf": "%1$s nga %2$s",
"ShowJSCode": "Shfaqe kodin JavaScript që duhet futur",
"ThereIsNoDataForThisReport": "Nuk ka të dhëna për këtë raport.",
diff --git a/plugins/CoreHome/lang/sr.json b/plugins/CoreHome/lang/sr.json
index 532d2e9122..100389f22b 100644
--- a/plugins/CoreHome/lang/sr.json
+++ b/plugins/CoreHome/lang/sr.json
@@ -27,7 +27,7 @@
"MakeADifference": "Budi drugačiji: %1$sDoniraj%2$s za Piwik 2.0!",
"MakeOneTimeDonation": "Možete izvršiti i jednokratnu donaciju.",
"Menu": "Meni",
- "NoPrivilegesAskPiwikAdmin": "Prijavljeni ste kao '%s' ali izgleda da nemate postavljena nikakva ovlašćenja. %s Tražite od Piwik administratora (kliknite za poruku)%s da vam dozvoli 'prikaz' na sajtu.",
+ "NoPrivilegesAskPiwikAdmin": "Prijavljeni ste kao '%1$s' ali izgleda da nemate postavljena nikakva ovlašćenja. %2$s Tražite od Piwik administratora (kliknite za poruku)%3$s da vam dozvoli 'prikaz' na sajtu.",
"OnlyForSuperUserAccess": "Ovaj vidžet se prikazuje samo superkorisnicima.",
"PageOf": "%1$s od %2$s",
"PeriodRange": "Period",
@@ -48,6 +48,6 @@
"YouAreUsingTheLatestVersion": "Koristite poslednju verziju Piwik-a",
"ClickRowToExpandOrContract": "Kliknite ovaj red kako biste proširili ili skupili tabelu.",
"UndoPivotBySubtable": "Ovaj izveštaj je pivotiran %s Otkaži pivot",
- "PivotBySubtable": "Ovaj izveštaj nije pivotiran %s Pivotiraj sa %s"
+ "PivotBySubtable": "Ovaj izveštaj nije pivotiran %1$s Pivotiraj sa %2$s"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/sv.json b/plugins/CoreHome/lang/sv.json
index 08ccaa996a..e8390e8122 100644
--- a/plugins/CoreHome/lang/sv.json
+++ b/plugins/CoreHome/lang/sv.json
@@ -27,7 +27,7 @@
"MakeADifference": "Gör skillnad: %1$sDonera nu%2$s för att finansiera Piwik 2.0!",
"MakeOneTimeDonation": "Donera en engångssumma istället.",
"Menu": "Meny",
- "NoPrivilegesAskPiwikAdmin": "Du är inloggad som '%s' men det verkar som om du inte har några rättigheter satta i Piwik. %s Fråga din Piwik administratör (klicka för att e-posta)%s för att få läsrättighet till en webbplats.",
+ "NoPrivilegesAskPiwikAdmin": "Du är inloggad som '%1$s' men det verkar som om du inte har några rättigheter satta i Piwik. %2$s Fråga din Piwik administratör (klicka för att e-posta)%3$s för att få läsrättighet till en webbplats.",
"OnlyForSuperUserAccess": "Den här widgeten visas bara för användare som har Superanvändare access.",
"PageOf": "%1$s av %2$s",
"PeriodRange": "Intervall",
@@ -48,6 +48,7 @@
"YouAreUsingTheLatestVersion": "Du använder den senaste versionen av Piwik!",
"ClickRowToExpandOrContract": "Klicka på denna rad för att visa eller dölja undertabeller.",
"UndoPivotBySubtable": "Denna rapport har pivoterats %s Ångra pivotering",
- "PivotBySubtable": "Denna rapport är inte pivoterad %s Pivotera med %s"
+ "PivotBySubtable": "Denna rapport är inte pivoterad %1$s Pivotera med %2$s",
+ "Segments": "Segment"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/ta.json b/plugins/CoreHome/lang/ta.json
index 2d7e1ebe95..b0f89a192c 100644
--- a/plugins/CoreHome/lang/ta.json
+++ b/plugins/CoreHome/lang/ta.json
@@ -11,7 +11,7 @@
"InjectedHostWarningIntro": "நீங்கள் இப்போது பிவிக்கை %1$s -ல் இருந்து இயக்குகிறீர்கள், ஆனால் பிவிக்கானது %2$s -முகவரியிலிருந்து இயங்க கட்டமைக்கப்பட்டுள்ளது.",
"MakeADifference": "மாற்றுக : %1$s இப்போது அன்பளிக்க %2$s Piwik 2.0 இன் வளர்ச்சிக்கு!",
"MakeOneTimeDonation": "இல்லையேல் ஒருமுறை மட்டும் நன்கொடை செலுத்துங்கள்.",
- "NoPrivilegesAskPiwikAdmin": "நீங்கள் '%s' -ஆக உள்நுழைந்துள்ளீர்கள், ஆனால் உங்களுக்கு பார்வை அனுமதி வழங்கப்படவில்லை. %s உங்களுடைய பிவிக் நிர்வாகியிடம் (மின்னஞ்சல் அனுப்ப)%s வலைதளத்தைப் \"பார்வையிட\" அனுமதி கேளுங்கள்.",
+ "NoPrivilegesAskPiwikAdmin": "நீங்கள் '%1$s' -ஆக உள்நுழைந்துள்ளீர்கள், ஆனால் உங்களுக்கு பார்வை அனுமதி வழங்கப்படவில்லை. %2$s உங்களுடைய பிவிக் நிர்வாகியிடம் (மின்னஞ்சல் அனுப்ப)%3$s வலைதளத்தைப் \"பார்வையிட\" அனுமதி கேளுங்கள்.",
"PageOf": "%2$s ல் %1$s",
"PeriodRange": "வீச்சு",
"ReportGeneratedOn": "அறிக்கை %s அன்று உருவாக்கப்பட்டது",
diff --git a/plugins/CoreHome/lang/tl.json b/plugins/CoreHome/lang/tl.json
index 326713074a..ce6c22a538 100644
--- a/plugins/CoreHome/lang/tl.json
+++ b/plugins/CoreHome/lang/tl.json
@@ -25,7 +25,7 @@
"JavascriptDisabled": "Dapat mong i-enable ang Javascrip upang iyong magamit ang Piwik sa standard view. <br\/> tila ang JavaScript ay disabled o hindi suportado ng iyong browser. <br\/> Upang magamit ang standard view, paganahin ang JavaScript sa pamamagitan ng pagbabago ng iyong mga pagpipilian sa browser, pagkatapos ay %1$s subukang muli %2$s. <br\/>",
"MakeADifference": "Gumawa ng isang pagkakaiba: %1$sMagbigay ng donasyon ngayon%2$s upang pondohan ang Piwik 2.0!",
"MakeOneTimeDonation": "Ang widget na ito ay ipinapakita lamang sa mga user na may Super User na access.",
- "NoPrivilegesAskPiwikAdmin": "Ikaw ay naka-log-in bilang '%s' ngunit mukhang wala kang anumang pahintulot na naka-set sa Piwik. %s Tanungin ang iyong Piwik administrator (i-click upang i-email) %s upang bigyan ka ng 'view' access sa website.",
+ "NoPrivilegesAskPiwikAdmin": "Ikaw ay naka-log-in bilang '%1$s' ngunit mukhang wala kang anumang pahintulot na naka-set sa Piwik. %2$s Tanungin ang iyong Piwik administrator (i-click upang i-email) %3$s upang bigyan ka ng 'view' access sa website.",
"OnlyForSuperUserAccess": "Ang widget na ito ay ipanapakita lamang sa mga user na mayroong Super User access",
"PageOf": "%1$s ng %2$s",
"PeriodRange": "Pagitan",
@@ -45,6 +45,6 @@
"YouAreUsingTheLatestVersion": "Ginagamit mo ang pinaka bagong bersyon ng Piwik",
"ClickRowToExpandOrContract": "I-click ang hanay na ito, upang palawakin o ikontrata ang subtable",
"UndoPivotBySubtable": "Ang ulat na ito ay napaikot %s I-undo ang pagpaikot",
- "PivotBySubtable": "Ang ulat na ito ay hindi umiikot %s Paikutin ng %s"
+ "PivotBySubtable": "Ang ulat na ito ay hindi umiikot %1$s Paikutin ng %2$s"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/lang/vi.json b/plugins/CoreHome/lang/vi.json
index bbdc13daf2..73056da87b 100644
--- a/plugins/CoreHome/lang/vi.json
+++ b/plugins/CoreHome/lang/vi.json
@@ -25,7 +25,7 @@
"JavascriptDisabled": "JavaScript phải được cho phép trong trường hợp bạn sử dụng Piwik với hiển thị tiêu chuẩn. <br \/>Tuy nhiên, có thể là JavaScript đã bị chặn hoặc trình duyệt của bạn không hỗ trợ.<br \/> Để sử dụng hiển thị tiêu chuẩn, vui lòng bật JavaScript bằng cách thay đổi tùy biến trình duyệt của bạn, sau đó %1$sthử lại%2$s.<br \/>",
"MakeADifference": "Hãy tạo sự khác biệt: %1$s Đóng góp ngay bây giờ %2$s cho quỹ Piwik 2.0!",
"MakeOneTimeDonation": "Hãy đóng góp",
- "NoPrivilegesAskPiwikAdmin": "Bạn được đăng nhập như '%s' nhưng dường như bạn không được phép thiết lập trong Piwik. %s Yêu cầu quản trị Piwik của bạn (bấm vào để email) %s để cung cấp cho bạn 'xem' truy cập đến một website.",
+ "NoPrivilegesAskPiwikAdmin": "Bạn được đăng nhập như '%1$s' nhưng dường như bạn không được phép thiết lập trong Piwik. %2$s Yêu cầu quản trị Piwik của bạn (bấm vào để email) %3$s để cung cấp cho bạn 'xem' truy cập đến một website.",
"PageOf": "%1$s của %2$s",
"PeriodRange": "Phạm vi",
"ReportGeneratedOn": "Báo cáo được tạo vào %s",
diff --git a/plugins/CoreHome/lang/zh-cn.json b/plugins/CoreHome/lang/zh-cn.json
index 56272067df..de8270c5b6 100644
--- a/plugins/CoreHome/lang/zh-cn.json
+++ b/plugins/CoreHome/lang/zh-cn.json
@@ -27,7 +27,7 @@
"MakeADifference": "现在就%1$s捐款%2$s给 Piwik 2.0 !",
"MakeOneTimeDonation": "一次性捐款",
"Menu": "菜单",
- "NoPrivilegesAskPiwikAdmin": "您当前登录用户是 '%s' 但是没有 Piwik 权限。%s 联系 Piwik 管理员 (点击发送邮件)%s 获得 '查看' 权限。",
+ "NoPrivilegesAskPiwikAdmin": "您当前登录用户是 '%1$s' 但是没有 Piwik 权限。%2$s 联系 Piwik 管理员 (点击发送邮件)%3$s 获得 '查看' 权限。",
"OnlyForSuperUserAccess": "这个小工具只对超级用户开放。",
"PageOf": "%1$s,总共 %2$s",
"PeriodRange": "时间段",
@@ -48,6 +48,6 @@
"YouAreUsingTheLatestVersion": "您正在使用最新版的 Piwik!",
"ClickRowToExpandOrContract": "点击这行可以扩展或压缩小工作台。",
"UndoPivotBySubtable": "这个报表被 pivot 了 %s 撤销 Pivot",
- "PivotBySubtable": "这个报表尚未 pivot %s 以 %s 的身份 pivot"
+ "PivotBySubtable": "这个报表尚未 pivot %1$s 以 %2$s 的身份 pivot"
}
} \ No newline at end of file
diff --git a/plugins/CoreHome/stylesheets/dataTable/_dataTable.less b/plugins/CoreHome/stylesheets/dataTable/_dataTable.less
index 4b5f8321b2..861e628f33 100644
--- a/plugins/CoreHome/stylesheets/dataTable/_dataTable.less
+++ b/plugins/CoreHome/stylesheets/dataTable/_dataTable.less
@@ -292,7 +292,7 @@ div.dataTable, div.dataTable > .dataTableWrapper {
margin-bottom: -1px;
margin-left: auto;
margin-right: auto;
- background-color: @theme-color-background-base;
+ background-color: @theme-color-widget-background;
border: 1px solid @theme-color-background-tinyContrast;
height: 9px;
width: 70px;
@@ -336,7 +336,7 @@ div.dataTable, div.dataTable > .dataTableWrapper {
margin-top: 0px;
margin-left: auto;
margin-right: auto;
- background-color: @theme-color-background-base;
+ background-color: @theme-color-widget-background;
border: 1px solid @theme-color-background-tinyContrast;
-webkit-border-top-left-radius: 10px;
-webkit-border-top-right-radius: 10px;
diff --git a/plugins/CoreHome/stylesheets/dataTable/_limitSelection.less b/plugins/CoreHome/stylesheets/dataTable/_limitSelection.less
index cab249f9ea..44a6ea1243 100644
--- a/plugins/CoreHome/stylesheets/dataTable/_limitSelection.less
+++ b/plugins/CoreHome/stylesheets/dataTable/_limitSelection.less
@@ -58,7 +58,7 @@
}
.limitSelection > ul > li:hover {
- background-color: #EBEAE6;
+ background-color: @color-silver-l95;
}
.limitSelection span {
diff --git a/plugins/CoreHome/stylesheets/dataTable/_tableConfiguration.less b/plugins/CoreHome/stylesheets/dataTable/_tableConfiguration.less
index a6200d6e8e..f63e2eb573 100644
--- a/plugins/CoreHome/stylesheets/dataTable/_tableConfiguration.less
+++ b/plugins/CoreHome/stylesheets/dataTable/_tableConfiguration.less
@@ -74,7 +74,7 @@ a.tableConfigurationIcon.highlighted {
}
.tableConfiguration div.configItem:hover {
- background-color: #EBEAE6;
+ background-color: @color-silver-l95;
}
.tableConfiguration div.configItem span.action {
diff --git a/plugins/CoreHome/stylesheets/layout.less b/plugins/CoreHome/stylesheets/layout.less
index a398657c7c..03ef1c2959 100644
--- a/plugins/CoreHome/stylesheets/layout.less
+++ b/plugins/CoreHome/stylesheets/layout.less
@@ -1,3 +1,4 @@
+
#header {
padding: 0 15px;
background-color: @theme-color-background-base;
@@ -167,7 +168,7 @@
float: none;
display: inline-block;
}
-
+
.isPiwikDemo {
margin-top: 8px;
}
@@ -266,6 +267,7 @@
&.active {
> .menuDropdown,
> .item {
+ color: @theme-color-menu-contrast-textSelected;
background-color: @theme-color-background-base;
decoration: none;
}
diff --git a/plugins/CoreHome/templates/_dataTableHead.twig b/plugins/CoreHome/templates/_dataTableHead.twig
index 161de44b23..27ec83dd29 100644
--- a/plugins/CoreHome/templates/_dataTableHead.twig
+++ b/plugins/CoreHome/templates/_dataTableHead.twig
@@ -6,12 +6,12 @@
<div class="columnDocumentation">
<div class="columnDocumentationTitle">
<span class="icon-help"></span>
- {{ properties.translations[column]|default(column)|raw }}
+ {{ properties.translations[column]|default(column)|rawSafeDecoded }}
</div>
{{ properties.metrics_documentation[column]|raw }}
</div>
{% endif %}
- <div id="thDIV" class="thDIV">{{ properties.translations[column]|default(column)|raw }}</div>
+ <div id="thDIV" class="thDIV">{{ properties.translations[column]|default(column)|rawSafeDecoded }}</div>
</th>
{% endfor %}
</tr>
diff --git a/plugins/CoreHome/templates/_logo.twig b/plugins/CoreHome/templates/_logo.twig
index ad28f5b68e..633985a20d 100644
--- a/plugins/CoreHome/templates/_logo.twig
+++ b/plugins/CoreHome/templates/_logo.twig
@@ -1,7 +1,7 @@
<span id="logo">
- <a href="index.php" title="{% if isCustomLogo %}{{ 'General_PoweredBy'|translate }} {% endif %}Piwik # {{ 'General_OpenSourceWebAnalytics'|translate }}">
+ <a href="index.php" tabindex="-1" title="{% if isCustomLogo %}{{ 'General_PoweredBy'|translate }} {% endif %}Piwik # {{ 'General_OpenSourceWebAnalytics'|translate }}">
{% if hasSVGLogo %}
- <img src='{{ logoSVG }}' alt="{% if isCustomLogo %}{{ 'General_PoweredBy'|translate }} {% endif %}Piwik" class="ie-hide {% if not isCustomLogo %}default-piwik-logo{% endif %}" />
+ <img src='{{ logoSVG }}' tabindex="3" alt="{% if isCustomLogo %}{{ 'General_PoweredBy'|translate }} {% endif %}Piwik" class="ie-hide {% if not isCustomLogo %}default-piwik-logo{% endif %}" />
<!--[if lt IE 9]>
{% endif %}
<img src='{{ logoHeader }}' alt="{% if isCustomLogo %}{{ 'General_PoweredBy'|translate }} {% endif %}Piwik" />
diff --git a/plugins/CoreHome/templates/_menu.twig b/plugins/CoreHome/templates/_menu.twig
index 94321a033f..673c2ba1c8 100644
--- a/plugins/CoreHome/templates/_menu.twig
+++ b/plugins/CoreHome/templates/_menu.twig
@@ -3,7 +3,7 @@
<div id="search" ng-cloak>
<div piwik-quick-access class="borderedControl"></div>
</div>
- <ul class="navbar" role="menu">
+ <ul class="navbar" aria-label="{{ 'CoreHome_MainNavigation'|translate|e('html_attr') }}" role="menu">
{% for level1,level2 in menu %}
{% set hasSubmenuItem = false %}
@@ -16,7 +16,7 @@
{% if hasSubmenuItem %}
<li class="menuTab" role="menuitem">
- <a class="item">
+ <a class="item" tabindex="5">
<span class="menu-icon {{ level2._icon|default('icon-arrow-right') }}"></span>{{ level1|translate }}
<span class="hidden">
{{ 'CoreHome_Menu'|translate }}
@@ -28,8 +28,8 @@
<li {% if urlParameters._url.module is defined and urlParameters._url.module == currentModule and urlParameters._url.action is defined and urlParameters._url.action == currentAction %}class="active"{% endif %}
role="menuitem"
>
- <a class="item"
- title="{{ urlParameters._tooltip|default(name)|translate|e('html_attr') }}"
+ <a class="item" tabindex="5"
+ title="{{ urlParameters._tooltip|default('')|translate|e('html_attr') }}"
href="index.php?{{ urlParameters._url|urlRewriteWithParameters|slice(1) }}">
{{ name|translate }}
</a>
diff --git a/plugins/CoreHome/templates/_periodSelect.twig b/plugins/CoreHome/templates/_periodSelect.twig
index 67b30183d3..4528109f5f 100644
--- a/plugins/CoreHome/templates/_periodSelect.twig
+++ b/plugins/CoreHome/templates/_periodSelect.twig
@@ -1,5 +1,5 @@
<div id="periodString" piwik-expand-on-click class="piwikTopControl piwikSelector borderedControl periodSelector">
- <a id="date" class="title" title="{{ 'General_ChooseDate'|translate|e('html_attr') }}">
+ <a id="date" class="title" title="{{ 'General_ChooseDate'|translate(prettyDateLong|default(''))|e('html_attr') }}" tabindex="4">
<span class="icon icon-calendar"></span>
{{ prettyDate }}
</a>
@@ -9,12 +9,12 @@
</div>
<div class="period-range" style="display:none;">
<div id="calendarRangeFrom">
- <h6>{{ 'General_DateRangeFrom'|translate }}<input tabindex="1" type="text" id="inputCalendarFrom" name="inputCalendarFrom"/></h6>
+ <h6>{{ 'General_DateRangeFrom'|translate }}<input tabindex="4" type="text" id="inputCalendarFrom" name="inputCalendarFrom"/></h6>
<div id="calendarFrom"></div>
</div>
<div id="calendarRangeTo">
- <h6>{{ 'General_DateRangeTo'|translate }}<input tabindex="2" type="text" id="inputCalendarTo" name="inputCalendarTo"/></h6>
+ <h6>{{ 'General_DateRangeTo'|translate }}<input tabindex="4" type="text" id="inputCalendarTo" name="inputCalendarTo"/></h6>
<div id="calendarTo"></div>
</div>
@@ -28,7 +28,7 @@
<br/>
{% endfor %}
</span>
- <input tabindex="3" type="submit" value="{{ 'General_Apply'|translate }}" id="calendarApply" class="btn"/>
+ <input tabindex="4" type="submit" value="{{ 'General_Apply'|translate }}" id="calendarApply" class="btn"/>
{% import 'ajaxMacros.twig' as ajax %}
{{ ajax.loadingDiv('ajaxLoadingCalendar') }}
</div>
diff --git a/plugins/CoreHome/templates/_topBar.twig b/plugins/CoreHome/templates/_topBar.twig
index c1158f46bb..bc5261b70f 100644
--- a/plugins/CoreHome/templates/_topBar.twig
+++ b/plugins/CoreHome/templates/_topBar.twig
@@ -16,7 +16,7 @@
<a {% if menu._tooltip is defined %}title="{{ menu._tooltip }}"{% endif %}
class="topBarElem {% if (menu._url.module == currentModule and (menu._url.action is empty or menu._url.action == currentAction)) %}active{% endif %}"
id="topmenu-{{ menu._url.module|lower }}"
- href="index.php{{ menu._url|urlRewriteWithParameters }}">{{ _self.menuItemLabel(label, menu._icon) }}</a>
+ href="index.php{{ menu._url|urlRewriteWithParameters }}" tabindex="3">{{ _self.menuItemLabel(label, menu._icon) }}</a>
{% endif %}
{% endmacro %}
diff --git a/plugins/CoreHome/templates/_topScreen.twig b/plugins/CoreHome/templates/_topScreen.twig
index 805619814c..f0ba5fc147 100644
--- a/plugins/CoreHome/templates/_topScreen.twig
+++ b/plugins/CoreHome/templates/_topScreen.twig
@@ -1,5 +1,5 @@
<div id="header" class="container-fluid">
- <a href="#main" tabindex="0" class="accessibility-skip-to-content">{{'CoreHome_SkipToContent'|translate}}</a>
+ <a href="#main" tabindex="1" class="accessibility-skip-to-content">{{'CoreHome_SkipToContent'|translate}}</a>
<div id="topRightBar" class="navbar row">
<div class="navbar-header col-md-3">
<span class="toggle-second-menu icon-menu-hamburger"></span>
diff --git a/plugins/CoreHome/templates/getDefaultIndexView.twig b/plugins/CoreHome/templates/getDefaultIndexView.twig
index d685977971..97fae5e996 100644
--- a/plugins/CoreHome/templates/getDefaultIndexView.twig
+++ b/plugins/CoreHome/templates/getDefaultIndexView.twig
@@ -10,7 +10,7 @@
{% endblock %}
{% block content %}
- {{ ajax.requestErrorDiv(emailSuperUser|default('')) }}
+ {{ ajax.requestErrorDiv(emailSuperUser|default(''), arePiwikProAdsEnabled) }}
{{ ajax.loadingDiv() }}
<div id="content" class="home">
diff --git a/plugins/CorePluginsAdmin/lang/ar.json b/plugins/CorePluginsAdmin/lang/ar.json
index a1c147086e..332305ceff 100644
--- a/plugins/CorePluginsAdmin/lang/ar.json
+++ b/plugins/CorePluginsAdmin/lang/ar.json
@@ -31,7 +31,7 @@
"PluginHomepage": "صفحة التطبيقات الرئيسية",
"PluginKeywords": "كلمات دلالية",
"PluginsManagement": "إدارة التطبيقات",
- "PluginUpdateAvailable": "أنت تستخدم الإصدار %s %sويوجد إصدار جديد متاح",
+ "PluginUpdateAvailable": "أنت تستخدم الإصدار %1$s %2$sويوجد إصدار جديد متاح",
"PluginWebsite": "الموقع الإلكتروني للإضافة",
"Screenshots": "صور العرض",
"SortByAlpha": "الفا",
diff --git a/plugins/CorePluginsAdmin/lang/bg.json b/plugins/CorePluginsAdmin/lang/bg.json
index e20eb05270..f3e24c034f 100644
--- a/plugins/CorePluginsAdmin/lang/bg.json
+++ b/plugins/CorePluginsAdmin/lang/bg.json
@@ -16,14 +16,14 @@
"BeCarefulUsingThemes": "Бъдете внимателни с тапетите, които не са създадени от екипа на Piwik: те не са проверени.",
"ByXDevelopers": "от %s разработчици",
"Changelog": "Списък с промените",
- "ChangeSettingsPossible": "Промяна на %sнастройките%s за тази добавка.",
+ "ChangeSettingsPossible": "Промяна на %1$sнастройките%2$s за тази добавка.",
"CorePluginTooltip": "Основните добавки нямат версия, тъй като се разпространяват с Piwik.",
"Deactivate": "Деактивирай",
"Developer": "Разработчик",
"DoMoreContactPiwikAdmins": "За да се инсталира нова добавка или нова тема, трябва да се свържете с вашия администратор, който отговаря за Piwik.",
"EmailToEnquireUpdatedVersion": "Моля, пишете до %1$s и изискайте актуална версия на %2$s.",
"FeaturedPlugin": "Препоръчана добавка",
- "GetEarlyAccessForPaidPlugins": "Забележка: всички от наличните добавки са безплатни за използване; в бъдеще ще има платена секция в магазина за приложения (%sсвържете се с нас%s за предварителен достъп).",
+ "GetEarlyAccessForPaidPlugins": "Забележка: всички от наличните добавки са безплатни за използване; в бъдеще ще има платена секция в магазина за приложения (%1$sсвържете се с нас%2$s за предварителен достъп).",
"History": "История",
"Inactive": "Неактивна",
"InfoPluginUpdateIsRecommended": "Обновете вашите добавки, за да се възползвате от най-новите подобрения.",
@@ -57,7 +57,7 @@
"PluginNotWorkingAlternative": "Ако сте използвали тази добавка, може би ще намерите по-нова версия в магазина за приложения. В случай, че няма по-нова версия, може би ще желаете да деинсталирате добавката.",
"PluginRequirement": "%1$s изисква %2$s.",
"PluginsManagement": "Управление на добавките",
- "PluginUpdateAvailable": "Използва се версия %s и е налична нова версия %s.",
+ "PluginUpdateAvailable": "Използва се версия %1$s и е налична нова версия %2$s.",
"PluginVersionInfo": "%1$s от %2$s",
"PluginWebsite": "Сайт за добавки",
"Screenshots": "Екранни снимки",
diff --git a/plugins/CorePluginsAdmin/lang/cs.json b/plugins/CorePluginsAdmin/lang/cs.json
index 8ae77b996f..438d601d9e 100644
--- a/plugins/CorePluginsAdmin/lang/cs.json
+++ b/plugins/CorePluginsAdmin/lang/cs.json
@@ -17,16 +17,16 @@
"ByXDevelopers": "Od %s vývojářů",
"CannotInstall": "Nelze nainstalovat (nápověda)",
"Changelog": "Protokol změn",
- "ChangeSettingsPossible": "Pro tento zásuvný modul můžete změnit %snastavení%s.",
+ "ChangeSettingsPossible": "Pro tento zásuvný modul můžete změnit %1$snastavení%2$s.",
"CorePluginTooltip": "Jaderné zásuvné moduly nemají verzi, protože jsou distribuovány s Piwikem.",
"Deactivate": "Zakázat",
"Developer": "Vývojář",
- "DevelopersLearnHowToDevelopPlugins": "Vývojáři: naučte se, jak rozšířit Piwik vývojem %szásuvných modulů nebo témat vzhledu%s.",
+ "DevelopersLearnHowToDevelopPlugins": "Vývojáři: naučte se, jak rozšířit Piwik vývojem %1$szásuvných modulů nebo témat vzhledu%2$s.",
"DoMoreContactPiwikAdmins": "Pokud chcete nainstalovat nový zásuvný modul nebo šablonu,, kontaktujte vaše administrátory Piwiku.",
- "EmailToEnquireUpdatedVersion": "Napište email %1$s a požádejte o novější verzi %2$s.",
+ "EmailToEnquireUpdatedVersion": "Napište e-mail %1$s a požádejte o novější verzi %2$s.",
"FeaturedPlugin": "Doporučovaný zásuvný modul",
- "ChangeLookByManageThemes": "Vzhled Piwiku můžete změnit %sve správě motivů%s.",
- "GetEarlyAccessForPaidPlugins": "Poznámka: Momentálně jsou všechny zásuvné moduly v obchodě zdarma. V budoucnu máme v plánu povolit placené zásuvné moduly. %sKontaktujte nás%s pro včasný přístup.",
+ "ChangeLookByManageThemes": "Vzhled Piwiku můžete změnit %1$sve správě motivů%2$s.",
+ "GetEarlyAccessForPaidPlugins": "Poznámka: Momentálně jsou všechny zásuvné moduly v obchodě zdarma. V budoucnu máme v plánu povolit placené zásuvné moduly. %1$sKontaktujte nás%2$s pro včasný přístup.",
"History": "Historie",
"Inactive": "Zakázán",
"InfoPluginUpdateIsRecommended": "Aktualizujte vaše zásuvné moduly nyní, abyste mohli využít všechna vylepšení.",
@@ -66,7 +66,7 @@
"PluginNotWorkingAlternative": "Pokud jste tento zásuvný modul používali, možná najdete v obchodě novější verzi. Pokud ne, možná ho chcete odinstalovat.",
"PluginRequirement": "%1$s vyžaduje %2$s.",
"PluginsManagement": "Správa zásuvných modulů",
- "PluginUpdateAvailable": "Používáte verzi %s, ale je dostupná novější verze %s.",
+ "PluginUpdateAvailable": "Používáte verzi %1$s, ale je dostupná novější verze %2$s.",
"PluginVersionInfo": "%1$s z %2$s",
"PluginWebsite": "Stránky zásuvného modulu",
"Screenshots": "Snímky obrazovky",
@@ -90,7 +90,7 @@
"TeaserExtendPiwikByPlugin": "Rozšiřte Piwik instalací nového zásuvného modulu",
"TeaserExtendPiwikByTheme": "Užijte si jiný vzhled po instalaci nové šablony",
"TeaserExtendPiwikByUpload": "Rozšiřte Piwik nahráním zip souboru",
- "InstallingNewPluginViaMarketplaceOrUpload": "Můžete zásuvný modul nainstalovat automaticky z obchodu, %snebo ho nahrát%s ve formátu .zip.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Můžete zásuvný modul nainstalovat automaticky z obchodu, %1$snebo ho nahrát%2$s ve formátu .zip.",
"Theme": "Šablona",
"Themes": "Šablony",
"ThemesDescription": "Šablony mohou změnit vzhled uživatelského rozhraní Piwiku a přinést nový zážitek z vašich analytických hlášení.",
diff --git a/plugins/CorePluginsAdmin/lang/da.json b/plugins/CorePluginsAdmin/lang/da.json
index 1d0fab34f7..7dbeeb966c 100644
--- a/plugins/CorePluginsAdmin/lang/da.json
+++ b/plugins/CorePluginsAdmin/lang/da.json
@@ -16,16 +16,16 @@
"BeCarefulUsingThemes": "Temaer, der ikke er forfattet af Piwik holdet skal anvendes med forsigtighed: vi har ikke kontrolleret dem.",
"ByXDevelopers": "af %s udviklere",
"Changelog": "Ændringslog",
- "ChangeSettingsPossible": "Du kan ændre %sindstillinger%s for denne programudvidelse",
+ "ChangeSettingsPossible": "Du kan ændre %1$sindstillinger%2$s for denne programudvidelse",
"CorePluginTooltip": "Kerne programudvidelser har ingen version, da de distribuereter med Piwik.",
"Deactivate": "Deaktiver",
"Developer": "Udvikler",
- "DevelopersLearnHowToDevelopPlugins": "Udviklere: Lær hvordan du kan udvide og tilpasse Piwik ved at %sudvikle udvidelser eller temaer%s.",
+ "DevelopersLearnHowToDevelopPlugins": "Udviklere: Lær hvordan du kan udvide og tilpasse Piwik ved at %1$sudvikle udvidelser eller temaer%2$s.",
"DoMoreContactPiwikAdmins": "For at installere en ny programudvidelse eller et nyt tema, kontakt Piwik administratoren.",
"EmailToEnquireUpdatedVersion": "Send e-mail til %1$s og forespørg om en opdateret version af %2$s.",
"FeaturedPlugin": "Udvalgte programudvidelser",
- "ChangeLookByManageThemes": "Skift udseendet på Piwik med %sAdministration af temaer%s.",
- "GetEarlyAccessForPaidPlugins": "Bemærk: alle programudvidelser er tilgængelige gratis på nuværende tidspunkt; i fremtiden vil vi sætte betalte programudvidelser på markedspladsen (%skontakt os%s for tidlig adgang).",
+ "ChangeLookByManageThemes": "Skift udseendet på Piwik med %1$sAdministration af temaer%2$s.",
+ "GetEarlyAccessForPaidPlugins": "Bemærk: alle programudvidelser er tilgængelige gratis på nuværende tidspunkt; i fremtiden vil vi sætte betalte programudvidelser på markedspladsen (%1$skontakt os%2$s for tidlig adgang).",
"History": "Historik",
"Inactive": "Inaktiv",
"InfoPluginUpdateIsRecommended": "Opdater dine programudvidelser nu og drag fordel af de seneste forbedringer.",
@@ -60,7 +60,7 @@
"PluginNotWorkingAlternative": "Hvis du har brugt programudvidelsen,kan du måske finde en nyere version på markedspladen. Hvis ikke, kan du afinstallere den.",
"PluginRequirement": "%1$s kræver %2$s",
"PluginsManagement": "Udvidelsesmodul administration",
- "PluginUpdateAvailable": "Du bruger version %s en ny version %s er tilgængelig.",
+ "PluginUpdateAvailable": "Du bruger version %1$s en ny version %2$s er tilgængelig.",
"PluginVersionInfo": "%1$s fra %2$s",
"PluginWebsite": "Programudvidelsens hjemmeside",
"Screenshots": "Skærmbilleder",
@@ -84,7 +84,7 @@
"TeaserExtendPiwikByPlugin": "Udvid Piwik ved at installere en ny programudvidelse",
"TeaserExtendPiwikByTheme": "Ændre udseendet ved at installere et nyt tema",
"TeaserExtendPiwikByUpload": "Udvid Piwik ved at overføre en ZIP-fil",
- "InstallingNewPluginViaMarketplaceOrUpload": "De kan automatisk installere udvidelser fra markedspladsen eller %soverføre en udvidelse%s i .zip format.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "De kan automatisk installere udvidelser fra markedspladsen eller %1$soverføre en udvidelse%2$s i .zip format.",
"Theme": "Tema",
"Themes": "Temaer",
"ThemesDescription": "Temaer kan ændre udseendet af Piwik brugergrænsefladen,og giver en helt ny visuel oplevelse af dine analytiske rapporter.",
diff --git a/plugins/CorePluginsAdmin/lang/de.json b/plugins/CorePluginsAdmin/lang/de.json
index d8b68512b5..4597571372 100644
--- a/plugins/CorePluginsAdmin/lang/de.json
+++ b/plugins/CorePluginsAdmin/lang/de.json
@@ -17,16 +17,16 @@
"ByXDevelopers": "von %s Entwicklern",
"CannotInstall": "Installation nicht möglich (Hilfe)",
"Changelog": "Änderungsprotokoll",
- "ChangeSettingsPossible": "Sie können die %sEinstellungen%s für dieses Plugin ändern.",
+ "ChangeSettingsPossible": "Sie können die %1$sEinstellungen%2$s für dieses Plugin ändern.",
"CorePluginTooltip": "Core-Plugins haben keine Version, da diese mit Piwik ausgeliefert werden.",
"Deactivate": "Deaktivieren",
"Developer": "Entwickler",
- "DevelopersLearnHowToDevelopPlugins": "Für Entwickler: Lernen Sie wie Sie Piwik erweitern und personalisieren können, in dem Sie %sPlugins oder Themes entwickeln%s.",
+ "DevelopersLearnHowToDevelopPlugins": "Für Entwickler: Lernen Sie wie Sie Piwik erweitern und personalisieren können, in dem Sie %1$sPlugins oder Themes entwickeln%2$s.",
"DoMoreContactPiwikAdmins": "Um ein neues Plugin oder Theme zu installieren, treten Sie bitte in Kontakt mit Ihren Piwik-Admins.",
"EmailToEnquireUpdatedVersion": "Bitte schreiben Sie eine E-Mail and %1$s und fragen Sie nach einer aktualisierten Version von %2$s.",
"FeaturedPlugin": "Top-Plugin",
- "ChangeLookByManageThemes": "Sie können das Erscheinungsbild von Piwik mit dem Einsatz von %sThemes%s ändern.",
- "GetEarlyAccessForPaidPlugins": "Hinweis: Derzeit sind alle Plugins kostenlos erhältlich; In Zukunft werden wir auch bezahlte Plugins im Marketplace aktivieren (%sKontaktieren Sie uns%s für vorzeitigen Zugriff).",
+ "ChangeLookByManageThemes": "Sie können das Erscheinungsbild von Piwik mit dem Einsatz von %1$sThemes%2$s ändern.",
+ "GetEarlyAccessForPaidPlugins": "Hinweis: Derzeit sind alle Plugins kostenlos erhältlich; In Zukunft werden wir auch bezahlte Plugins im Marketplace aktivieren (%1$sKontaktieren Sie uns%2$s für vorzeitigen Zugriff).",
"History": "Entwicklung",
"Inactive": "Inaktiv",
"InfoPluginUpdateIsRecommended": "Aktualisieren Sie Ihre Plugins jetzt, um von den neuesten Verbesserungen zu profitieren.",
@@ -66,7 +66,7 @@
"PluginNotWorkingAlternative": "Wenn Sie dieses Plugin eingesetzt haben, finden Sie möglicherweise eine neuere Version im Marketplace. Wenn nicht, sollten Sie es deinstallieren.",
"PluginRequirement": "%1$s benötigt %2$s",
"PluginsManagement": "Pluginverwaltung",
- "PluginUpdateAvailable": "Sie verwenden Version %s und eine neue Version %s is verfügbar.",
+ "PluginUpdateAvailable": "Sie verwenden Version %1$s und eine neue Version %2$s is verfügbar.",
"PluginVersionInfo": "%1$s vom %2$s",
"PluginWebsite": "Website des Plugins",
"Screenshots": "Screenshots",
@@ -90,7 +90,7 @@
"TeaserExtendPiwikByPlugin": "Erweitern Sie Piwik durch die Installation von Plugins",
"TeaserExtendPiwikByTheme": "Wechseln Sie das Erscheinungsbild durch die Installation eines neuen Themes",
"TeaserExtendPiwikByUpload": "Piwik durch den Upload einer ZIP Datei erweitern",
- "InstallingNewPluginViaMarketplaceOrUpload": "Sie können Plugins aus dem Marketplace automatisiert installieren oder ein Plugin im .zip Format %shochladen%s.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Sie können Plugins aus dem Marketplace automatisiert installieren oder ein Plugin im .zip Format %1$shochladen%2$s.",
"Theme": "Theme",
"Themes": "Themes",
"ThemesDescription": "Themes können das Aussehen der Benutzeroberfläche für Piwik Anwender ändern, und bringen so ein komplett neues visuelles Erlebnis, das Ihnen die Analyse Ihrer Berichte angenehm gestaltet.",
diff --git a/plugins/CorePluginsAdmin/lang/el.json b/plugins/CorePluginsAdmin/lang/el.json
index 6de0af46c9..206e78c19d 100644
--- a/plugins/CorePluginsAdmin/lang/el.json
+++ b/plugins/CorePluginsAdmin/lang/el.json
@@ -17,16 +17,16 @@
"ByXDevelopers": "από %s προγραμματιστές",
"CannotInstall": "Δεν είναι δυνατή η εγκατάσταση (βοήθεια)",
"Changelog": "Αρχείο αλλαγών",
- "ChangeSettingsPossible": "Μπορείτε να αλλάξετε τις %sρυθμίσεις%s για αυτό το πρόσθετο.",
+ "ChangeSettingsPossible": "Μπορείτε να αλλάξετε τις %1$sρυθμίσεις%2$s για το πρόσθετο αυτό.",
"CorePluginTooltip": "Τα πρόσθετα του πυρήνα δεν έχουν έκδοση από τη στιγμή που διανέμονται μαζί με το Piwik.",
"Deactivate": "Απενεργοποίηση",
"Developer": "Προγραμματιστής",
- "DevelopersLearnHowToDevelopPlugins": "Προγραμματιστές: Μάθετε πώς μπορείτε να επεκτείνετε και να προσαρμόζετε το Piwik με την %sανάπτυξη πρόσθετων ή θεμάτων%s.",
+ "DevelopersLearnHowToDevelopPlugins": "Προγραμματιστές: Μάθετε πώς να επεκτείνετε και να προσαρμόζετε το Piwik %1$sδημιουργώντας πρόσθετα ή θέματα%2$s.",
"DoMoreContactPiwikAdmins": "Για να εγκαταστήσετε ένα νέο πρόσθετο ή θέμα, ελάτε σε επαφή με τους διαχειριστές του Piwik.",
"EmailToEnquireUpdatedVersion": "Παρακαλούμε στείλτε email στο %1$s και ζητήστε ενημέρωση της έκδοσης για το %2$s.",
"FeaturedPlugin": "Προβαλλόμενο πρόσθετο",
- "ChangeLookByManageThemes": "Μπορείτε να αλλάξετε την εμφάνιση του Piwik από τη %sΔιαχείριση Θεμάτων%s.",
- "GetEarlyAccessForPaidPlugins": "Σημείωση: όλα τα πρόσθετα διατίθενται δωρεάν αυτή τη στιγμή, στο μέλλον θα ενεργοποιήσουμε τα Επί Πληρωμή Πρόσθετα στην Αγορά (%sΕλάτε σε επικοινωνία μαζί μας%s για νωρίτερη πρόσβαση).",
+ "ChangeLookByManageThemes": "Μπορείτε να αλλάξετε την εμφάνιση του Piwik από τη %1$sΔιαχείριση Θεμάτων%2$s.",
+ "GetEarlyAccessForPaidPlugins": "Σημείωση: Όλα τα πρόσθετα είναι διαθέσιμα δωρεάν αυτή τη στιγμή. Στο μέλλον θα ενεργοποιήσουμε τα Πρόσθετα επί Πληρωμή στην Αγορά (%1$sεπικοινωνήστε μαζί μας%2$s για νωρίτερη πρόσβαση).",
"History": "Ιστορικό",
"Inactive": "Ανενεργό",
"InfoPluginUpdateIsRecommended": "Ενημερώστε τα πρόσθετά σας για να κερδίσετε από τις τελευταίες βελτιώσεις.",
@@ -66,7 +66,7 @@
"PluginNotWorkingAlternative": "Αν χρησιμοποιείτε αυτό το πρόσθετο, ενδέχεται να βρείτε νεότερη έκδοση στην Αγορά. Αν όχι, μπορείτε να το απεγκαταστήσετε.",
"PluginRequirement": "Το %1$s απαιτεί το %2$s.",
"PluginsManagement": "Διαχείριση προσθέτων",
- "PluginUpdateAvailable": "Χρησιμοποιείτε την έκδοση %s και υπάρχει διαθέσιμη η έκδοση %s.",
+ "PluginUpdateAvailable": "Χρησιμοποιείτε την έκδοση %1$s και υπάρχει νεότερη έκδοση %2$s.",
"PluginVersionInfo": "%1$s από %2$s",
"PluginWebsite": "Ιστοτόπος πρόσθετου",
"Screenshots": "Παραδείγματα οθονών",
@@ -90,7 +90,7 @@
"TeaserExtendPiwikByPlugin": "Επεκτείνετε το Piwik εγκαθιστώντας ένα νέο πρόσθετο",
"TeaserExtendPiwikByTheme": "Απολαύστε μια άλλη όψη & αίσθηση εγκαθιστώντας ένα νέο θέμα",
"TeaserExtendPiwikByUpload": "Επεκτείνετε το Piwik ανεβάζοντας ένα αρχείο ZIP",
- "InstallingNewPluginViaMarketplaceOrUpload": "Μπορείτε να εγκαταστήσετε αυτόματα πρόσθετα από την Αγορά ή %sνα ανεβάσετε ένα πρόσθετο%s σε μορφή αρχείου .zip.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Μπορείτε να εγκαθιστάτε αυτόματα πρόσθετα από την Αγορά ή %1$sνα ανεβάσετε ένα πρόσθετο%2$s σε μορφή .zip.",
"Theme": "Θεματική παραλλαγή",
"Themes": "Θεματικές παραλλαγές",
"ThemesDescription": "Οι θεματικές παραλλαγές αλλάζουν την εμφάνιση διεπαφής χρήστη του Piwik και παρέχουν μια τελείως νέα οπτική εμπειρία προκειμένου να απολαμβάνετε τις αναφορές σας.",
diff --git a/plugins/CorePluginsAdmin/lang/en.json b/plugins/CorePluginsAdmin/lang/en.json
index 4fbcc01281..d3b5a1d685 100644
--- a/plugins/CorePluginsAdmin/lang/en.json
+++ b/plugins/CorePluginsAdmin/lang/en.json
@@ -17,16 +17,16 @@
"ByXDevelopers": "by %s developers",
"CannotInstall": "Cannot install (help)",
"Changelog": "Changelog",
- "ChangeSettingsPossible": "You can change %ssettings%s for this plugin.",
+ "ChangeSettingsPossible": "You can change %1$ssettings%2$s for this plugin.",
"CorePluginTooltip": "Core plugins have no version since they are distributed with Piwik.",
"Deactivate": "Deactivate",
"Developer": "Developer",
- "DevelopersLearnHowToDevelopPlugins": "Developers: Learn how you can extend and customize Piwik by %sdeveloping plugins or themes%s.",
+ "DevelopersLearnHowToDevelopPlugins": "Developers: Learn how you can extend and customize Piwik by %1$sdeveloping plugins or themes%2$s.",
"DoMoreContactPiwikAdmins": "To install a new plugin or a new theme, please get in touch with your Piwik admins.",
"EmailToEnquireUpdatedVersion": "Please email %1$s and enquire an updated version of %2$s.",
"FeaturedPlugin": "Featured plugin",
- "ChangeLookByManageThemes": "You can change the appearance of Piwik by %sManaging Themes%s.",
- "GetEarlyAccessForPaidPlugins": "Note: all plugins are available for free at present; in the future we will enable Paid Plugins in the Marketplace (%scontact us%s for early access).",
+ "ChangeLookByManageThemes": "You can change the appearance of Piwik by %1$sManaging Themes%2$s.",
+ "GetEarlyAccessForPaidPlugins": "Note: all plugins are available for free at present; in the future we will enable Paid Plugins in the Marketplace (%1$scontact us%2$s for early access).",
"History": "History",
"Inactive": "Inactive",
"InfoPluginUpdateIsRecommended": "Update your plugins now to benefit from the latest improvements.",
@@ -66,7 +66,7 @@
"PluginNotWorkingAlternative": "If you've been using this plugin, maybe you can find a more recent version in the Marketplace. If not, you may want to uninstall it.",
"PluginRequirement": "%1$s requires %2$s.",
"PluginsManagement": "Manage Plugins",
- "PluginUpdateAvailable": "You are using version %s and a new version %s is available.",
+ "PluginUpdateAvailable": "You are using version %1$s and a new version %2$s is available.",
"PluginVersionInfo": "%1$s from %2$s",
"PluginWebsite": "Plugin Website",
"Screenshots": "Screenshots",
@@ -90,7 +90,7 @@
"TeaserExtendPiwikByPlugin": "Extend Piwik by installing a new plugin",
"TeaserExtendPiwikByTheme": "Enjoy another look & feel by installing a new theme",
"TeaserExtendPiwikByUpload": "Extend Piwik by uploading a ZIP file",
- "InstallingNewPluginViaMarketplaceOrUpload": "You may automatically install plugins from the Marketplace or %supload a plugin%s in .zip format.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "You may automatically install plugins from the Marketplace or %1$supload a plugin%2$s in .zip format.",
"Theme": "Theme",
"Themes": "Themes",
"ThemesDescription": "Themes can change the appearance of Piwik user interface, and provide a completely new visual experience to enjoy your analytics reports.",
diff --git a/plugins/CorePluginsAdmin/lang/es.json b/plugins/CorePluginsAdmin/lang/es.json
index f304969d32..b0407c02ae 100644
--- a/plugins/CorePluginsAdmin/lang/es.json
+++ b/plugins/CorePluginsAdmin/lang/es.json
@@ -17,16 +17,16 @@
"ByXDevelopers": "por %s desarrolladores",
"CannotInstall": "No se puede instalar (ayuda)",
"Changelog": "Registro de cambios",
- "ChangeSettingsPossible": "Puede cambiar la %sconfiguración%s de este complemento.",
+ "ChangeSettingsPossible": "Puede cambiar la %1$sconfiguración%2$s de este complemento.",
"CorePluginTooltip": "Los complementos centrales no tienen versión, puesto que han sido distribuidos por Piwik.",
"Deactivate": "Desactivar",
"Developer": "Desarrollador",
- "DevelopersLearnHowToDevelopPlugins": "Desarrolladores: Aprenda como extender y personalizar Piwik %sdesarrollando complementos o temas%s.",
+ "DevelopersLearnHowToDevelopPlugins": "Desarrolladores: Aprenda como extender y personalizar Piwik %1$sdesarrollando complementos o temas%2$s.",
"DoMoreContactPiwikAdmins": "Para instalar un nuevo complemento o un nuevo tema, póngase en contacto con sus administradores de Piwik.",
"EmailToEnquireUpdatedVersion": "Por favor envíe un correo electrónico a %1$s para solicitar mayor información sobre una versión actualizada de %2$s.",
"FeaturedPlugin": "Complemento destacado",
- "ChangeLookByManageThemes": "Puede cambiar la apariencia de Piwik %sgestionando temas%s.",
- "GetEarlyAccessForPaidPlugins": "Nota: por el momento todos los complementos están disponibles gratuitamente, en el futuro habilitaremos la sección Complementos de Pago en el Mercado (%scontáctenos %s para tener acceso de un modo temprano).",
+ "ChangeLookByManageThemes": "Puede cambiar la apariencia de Piwik %1$sgestionando temas%2$s.",
+ "GetEarlyAccessForPaidPlugins": "Nota: por el momento todos los complementos están disponibles gratuitamente, en el futuro habilitaremos la sección Complementos de Pago en el Mercado (%1$scontáctenos %2$s para tener acceso de un modo temprano).",
"History": "Historial",
"Inactive": "Inactivo",
"InfoPluginUpdateIsRecommended": "Actualice sus complementos y aproveche de los últimos mejoramientos.",
@@ -62,7 +62,7 @@
"PluginNotWorkingAlternative": "Si ha estado utilizando este complemento podrá encontrar una versión más reciente en el Mercado. Si no, quizá desee desinstalarlo.",
"PluginRequirement": "%1$s requiere %2$s.",
"PluginsManagement": "Administración de complementos",
- "PluginUpdateAvailable": "Está utilizando la versión %s y hay una nueva versión %s disponible.",
+ "PluginUpdateAvailable": "Está utilizando la versión %1$s y hay una nueva versión %2$s disponible.",
"PluginVersionInfo": "%1$s de %2$s",
"PluginWebsite": "Sitio de internet del complemento",
"Screenshots": "Capturas de pantalla",
@@ -86,7 +86,7 @@
"TeaserExtendPiwikByPlugin": "Amplíe Piwik instalando un nuevo complemento",
"TeaserExtendPiwikByTheme": "Disfrute de otra apariencia instalando un nuevo tema",
"TeaserExtendPiwikByUpload": "Amplíe Piwik cargando un archivo ZIP",
- "InstallingNewPluginViaMarketplaceOrUpload": "Puede automáticamente instalar complementos desde el Mercado o %scargar un complemento%s in formato .zip.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Puede automáticamente instalar complementos desde el Mercado o %1$scargar un complemento%2$s in formato .zip.",
"Theme": "Tema",
"Themes": "Temas",
"ThemesDescription": "Los temas pueden cambiar la apariencia de la interfaz de Piwik, y ofrecer una nueva experiencia visual para disfrutar sus informes de análisis.",
diff --git a/plugins/CorePluginsAdmin/lang/fa.json b/plugins/CorePluginsAdmin/lang/fa.json
index a4b8920f87..d59c73100d 100644
--- a/plugins/CorePluginsAdmin/lang/fa.json
+++ b/plugins/CorePluginsAdmin/lang/fa.json
@@ -16,7 +16,7 @@
"BeCarefulUsingThemes": "زمینه هایی که توسط Piwik تهیه نشده اند قابل اعتماد نبوده و باید با احتیاط استفاده گردند : ما آنها را چک نمی کنیم.",
"ByXDevelopers": "توسط %s برنامه نویس",
"Changelog": "لاگ تغییرات",
- "ChangeSettingsPossible": "شما می توانید %ssettings%s را برای این پلاگین تغییر دهید.",
+ "ChangeSettingsPossible": "شما می توانید %1$ssettings%2$s را برای این پلاگین تغییر دهید.",
"CorePluginTooltip": "پلاگین های هسته با برنامه توزیع شده اند",
"Deactivate": "غیر فعال کردن",
"Developer": "توسعه دهنده ها",
diff --git a/plugins/CorePluginsAdmin/lang/fi.json b/plugins/CorePluginsAdmin/lang/fi.json
index cd7bc9a446..b3dd018dd2 100644
--- a/plugins/CorePluginsAdmin/lang/fi.json
+++ b/plugins/CorePluginsAdmin/lang/fi.json
@@ -16,13 +16,13 @@
"BeCarefulUsingThemes": "Käytä harkitusti teemoja, jotka eivät ole Piwikin luomia: emme ole tarkastaneet niitä.",
"ByXDevelopers": "%s ohjelmoijalta",
"Changelog": "Muutokset",
- "ChangeSettingsPossible": "Voit muuttaa tämän liitännäisen %sasetuksia%s",
+ "ChangeSettingsPossible": "Voit muuttaa tämän liitännäisen %1$sasetuksia%2$s",
"CorePluginTooltip": "Standardiliitännäisillä ei ole versioita, koska ne ovat Piwikin levittämiä.",
"Deactivate": "Poistettu käytöstä",
"Developer": "Kehittäjä",
"DoMoreContactPiwikAdmins": "Asentaaksesi uuden liitännäisen tai uuden teeman, ota yhteyttä Piwikin ylläpitäjiin.",
"FeaturedPlugin": "Valittu liitännäinen",
- "GetEarlyAccessForPaidPlugins": "Huomio: kaikki liitännäiset ovat tällä hetkellä ilmaisia; tulevaisuudessa sallimme maksulliset liitännäiset kauppatorilla (%sota yhteyttä%s saadaksesi aikainen pääsy).",
+ "GetEarlyAccessForPaidPlugins": "Huomio: kaikki liitännäiset ovat tällä hetkellä ilmaisia; tulevaisuudessa sallimme maksulliset liitännäiset kauppatorilla (%1$sota yhteyttä%2$s saadaksesi aikainen pääsy).",
"History": "Historia",
"Inactive": "Ei käytössä",
"InfoPluginUpdateIsRecommended": "Päivitä liitännäisesi nyt hyötyäksesi uusimmista parannuksista.",
@@ -56,7 +56,7 @@
"PluginNotWorkingAlternative": "Jos olet käyttänyt tätä liitännäistä, voit ehkä löytää uudemman version kauppatorilta. Muussa tapauksessa haluat ehkä poistaa liitännäisen.",
"PluginRequirement": "%1$s vaatii %2$s:n.",
"PluginsManagement": "Lisäosien hallinta",
- "PluginUpdateAvailable": "Käytät versiota %s ja uusi versio %s on saatavilla.",
+ "PluginUpdateAvailable": "Käytät versiota %1$s ja uusi versio %2$s on saatavilla.",
"PluginVersionInfo": "%1$s %2$s:sta",
"PluginWebsite": "Liitännäissivu",
"Screenshots": "Ruudunkaappaukset",
diff --git a/plugins/CorePluginsAdmin/lang/fr.json b/plugins/CorePluginsAdmin/lang/fr.json
index b77d497719..8dbc4ca761 100644
--- a/plugins/CorePluginsAdmin/lang/fr.json
+++ b/plugins/CorePluginsAdmin/lang/fr.json
@@ -17,16 +17,16 @@
"ByXDevelopers": "par %s développeurs",
"CannotInstall": "Impossible d'installer (aide)",
"Changelog": "Historique des changements",
- "ChangeSettingsPossible": "Vous pouvez modifier les %sparamètres%s de ce composant.",
+ "ChangeSettingsPossible": "Vous pouvez modifier les %1$sparamètres%2$s de ce composant.",
"CorePluginTooltip": "Les composants principaux n'ont pas de version puisqu'ils sont distribués avec Piwik.",
"Deactivate": "Désactiver",
"Developer": "Développeur",
- "DevelopersLearnHowToDevelopPlugins": "Développeurs : Apprenez comment vous pouvez étendre et personaliser Piwik en %sdévelopant des composants ou themes%s.",
+ "DevelopersLearnHowToDevelopPlugins": "Développeurs : Apprenez comment vous pouvez étendre et personaliser Piwik en %1$sdévelopant des composants ou themes%2$s.",
"DoMoreContactPiwikAdmins": "Pour installer un nouveau composant additionnel ou thème, veuillez contacter votre administrateur Piwik.",
"EmailToEnquireUpdatedVersion": "Veuillez envoyer un e-mail à %1$s et renseighner une version mise à jour de %2$s.",
"FeaturedPlugin": "Composant mis en avant",
- "ChangeLookByManageThemes": "Vous pouvez changer l'apparence de Piwik en %sgérant les thèmes%s.",
- "GetEarlyAccessForPaidPlugins": "Note : tous les composants sont disponibles gratuitement à présent, dans le futur nous fourniront la possibilité de publier des composants payants sur le Marché (%scontactez-nous%s pour bénéficier d'un accès en avance)",
+ "ChangeLookByManageThemes": "Vous pouvez changer l'apparence de Piwik en %1$sgérant les thèmes%2$s.",
+ "GetEarlyAccessForPaidPlugins": "Note : tous les composants sont disponibles gratuitement à présent, dans le futur nous fourniront la possibilité de publier des composants payants sur le Marché (%1$scontactez-nous%2$s pour bénéficier d'un accès en avance)",
"History": "Historique",
"Inactive": "Inactif",
"InfoPluginUpdateIsRecommended": "Mettez à jour vos composants pour bénéficier des dernières améliorations.",
@@ -66,7 +66,7 @@
"PluginNotWorkingAlternative": "Si vous avez utilisé ce composant additionnel, peut être pourriez vous trouver une version plus récente sur le Marché. Le cas échéant vous devriez le désinstaller.",
"PluginRequirement": "%1$s requiert %2$s.",
"PluginsManagement": "Gestionnaire de plugins",
- "PluginUpdateAvailable": "Vous utilisez la version %s et une nouvelle version %s est disponible.",
+ "PluginUpdateAvailable": "Vous utilisez la version %1$s et une nouvelle version %2$s est disponible.",
"PluginVersionInfo": "%1$s de %2$s",
"PluginWebsite": "Site du composant additionnel",
"Screenshots": "Captures d'écran",
@@ -90,7 +90,7 @@
"TeaserExtendPiwikByPlugin": "Etendre Piwik en installant un nouveau composant additionnel",
"TeaserExtendPiwikByTheme": "Profitez d'une nouvelle charte graphique en installant un nouveau thème",
"TeaserExtendPiwikByUpload": "Etendre Piwik en téléchargeant un fichier ZIP",
- "InstallingNewPluginViaMarketplaceOrUpload": "Vous pouvez installer automatiquement un plugin à partir du Marketplace ou %supload a plugin%s au format .zip.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Vous pouvez installer automatiquement un plugin à partir du Marketplace ou %1$supload a plugin%2$s au format .zip.",
"Theme": "Thème",
"Themes": "Thèmes",
"ThemesDescription": "Les thèmes peuvent modifier l'apparence de l'interface utilisateur et fournir une expérience visuelle nouvelle pour apprécier les rapports de suivi de trafic.",
diff --git a/plugins/CorePluginsAdmin/lang/it.json b/plugins/CorePluginsAdmin/lang/it.json
index 940cab2c17..1a30966cc4 100644
--- a/plugins/CorePluginsAdmin/lang/it.json
+++ b/plugins/CorePluginsAdmin/lang/it.json
@@ -17,16 +17,16 @@
"ByXDevelopers": "da %s sviluppatori",
"CannotInstall": "Installazione impossibile (aiuto)",
"Changelog": "Changelog",
- "ChangeSettingsPossible": "Puoi cambiare le %simpostazioni%s per questo plugin.",
+ "ChangeSettingsPossible": "Puoi cambiare le %1$simpostazioni%2$s per questo plugin.",
"CorePluginTooltip": "I plugins di base non hanno versione dato che sono distribuiti con Piweik.",
"Deactivate": "Disattiva",
"Developer": "Sviluppatore",
- "DevelopersLearnHowToDevelopPlugins": "Sviluppatori: Impara come ampliare e personalizzare Piwik %ssviluppando plugins e temi%s.",
+ "DevelopersLearnHowToDevelopPlugins": "Sviluppatori: Impara come ampliare e personalizzare Piwik %1$ssviluppando plugins e temi%2$s.",
"DoMoreContactPiwikAdmins": "Per installare un nuovo plugin o un nuovo tema, rimani in contatto con il tuo amministratore di Piwik.",
"EmailToEnquireUpdatedVersion": "Manda un'email a %1$s per informarti su una versione aggiornata di %2$s.",
"FeaturedPlugin": "Plugin rappresentativo",
- "ChangeLookByManageThemes": "Puoi cambiare l'aspetto di Piwik tramite %sGestione Temi%s.",
- "GetEarlyAccessForPaidPlugins": "Nota: al momento tutti i plugin sono disponibili gratuitamente; in futuro abiliteremo sul Marketplace la sezione Plugin a Pagamento (%scontattaci%s per accedere anticipatamente).",
+ "ChangeLookByManageThemes": "Puoi cambiare l'aspetto di Piwik tramite %1$sGestione Temi%2$s.",
+ "GetEarlyAccessForPaidPlugins": "Nota: al momento tutti i plugin sono disponibili gratuitamente; in futuro abiliteremo sul Marketplace la sezione Plugin a Pagamento (%1$scontattaci%2$s per accedere anticipatamente).",
"History": "Storia",
"Inactive": "Inattivo",
"InfoPluginUpdateIsRecommended": "Aggiorna i tuoi plugin per beneficiare dei nuovi miglioramenti.",
@@ -66,7 +66,7 @@
"PluginNotWorkingAlternative": "Se hai utilizzato questo plugin puoi trovare una versione più recente nel Marketplace. Se no, puoi volere disinstallarlo.",
"PluginRequirement": "%1$s richiede %2$s.",
"PluginsManagement": "Amministra Plugin",
- "PluginUpdateAvailable": "Stai utilizzando la versione %s ed è disponibile la nuova versione %s.",
+ "PluginUpdateAvailable": "Stai utilizzando la versione %1$s ed è disponibile la nuova versione %2$s.",
"PluginVersionInfo": "%1$s da %2$s",
"PluginWebsite": "Sito Plugin",
"Screenshots": "Screenshots",
@@ -90,7 +90,7 @@
"TeaserExtendPiwikByPlugin": "Amplia Piwik installando un nuovo plugin",
"TeaserExtendPiwikByTheme": "Goditi un altro look installando un nuovo tema",
"TeaserExtendPiwikByUpload": "Estendi Piwik caricando un file ZIP",
- "InstallingNewPluginViaMarketplaceOrUpload": "Puoi installare automaticamente dei plugins dal Market o %scaricare un plugin%s in formato .zip.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Puoi installare automaticamente dei plugins dal Market o %1$scaricare un plugin%2$s in formato .zip.",
"Theme": "Tema",
"Themes": "Temi",
"ThemesDescription": "I temi possono cambiare l'aspetto dell'interfaccia utente Piwik e fornire una nuova esperienza visiva per godere i tuoi reports statistici.",
diff --git a/plugins/CorePluginsAdmin/lang/ja.json b/plugins/CorePluginsAdmin/lang/ja.json
index 708b4a6560..ace3833bf2 100644
--- a/plugins/CorePluginsAdmin/lang/ja.json
+++ b/plugins/CorePluginsAdmin/lang/ja.json
@@ -17,16 +17,16 @@
"ByXDevelopers": "%s の開発者",
"CannotInstall": "インストールできません ( ヘルプ )",
"Changelog": "変更履歴",
- "ChangeSettingsPossible": "このプラグインのために、 %ssettings%s を変更できます。",
+ "ChangeSettingsPossible": "このプラグインのために、 %1$ssettings%2$s を変更できます。",
"CorePluginTooltip": "コアプラグインは、 Piwik と一緒に配布されているため、バージョンはありません",
"Deactivate": "無効化",
"Developer": "開発者",
- "DevelopersLearnHowToDevelopPlugins": "デベロッパー:%s テーマやプラグイン %s を開発することでPiwikを拡張、カスタマイズする方法を学びます。",
+ "DevelopersLearnHowToDevelopPlugins": "デベロッパー:%1$s テーマやプラグイン %2$s を開発することでPiwikを拡張、カスタマイズする方法を学びます。",
"DoMoreContactPiwikAdmins": "新しいプラグインやテーマをインストールするには、 Piwik の管理者に連絡をしてください",
"EmailToEnquireUpdatedVersion": "%1$s をメールで送付の上、%2$s の最新バージョンをお問い合わせください。",
"FeaturedPlugin": "注目のプラグイン",
- "ChangeLookByManageThemes": "%s テーマの管理 %sによって Piwik の外観を変更できます。",
- "GetEarlyAccessForPaidPlugins": "注 : 現在、全てのプラグインは無料で利用できます。今後マーケットプレイスでは有料プラグインが有効になります。 (有料プラグインについて、誰よりも早く知りたい方は、%s こちら %s )",
+ "ChangeLookByManageThemes": "%1$s テーマの管理 %2$sによって Piwik の外観を変更できます。",
+ "GetEarlyAccessForPaidPlugins": "注 : 現在、全てのプラグインは無料で利用できます。今後マーケットプレイスでは有料プラグインが有効になります。 (有料プラグインについて、誰よりも早く知りたい方は、%1$s こちら %2$s )",
"History": "履歴",
"Inactive": "無効",
"InfoPluginUpdateIsRecommended": "最新の改良による恩恵を受けるには、今すぐプラグインをアップデートしてください。",
@@ -66,7 +66,7 @@
"PluginNotWorkingAlternative": "このプラグインを以前から使用している場合、マーケットプレイス上で、より最新のバージョンを見つけることができます。使用していない場合、アンインストールすることをお勧めします。",
"PluginRequirement": "%1$s requires %2$s.",
"PluginsManagement": "プラグインの管理",
- "PluginUpdateAvailable": "あなたは現在、バージョン %s を使用しています。新しいバージョン %s が利用可能です。",
+ "PluginUpdateAvailable": "あなたは現在、バージョン %1$s を使用しています。新しいバージョン %2$s が利用可能です。",
"PluginVersionInfo": "%2$s からの %1$s",
"PluginWebsite": "プラグインのウェブサイト",
"Screenshots": "スクリーンショット",
@@ -90,7 +90,7 @@
"TeaserExtendPiwikByPlugin": "新しいプラグインをインストールして Piwik を拡張",
"TeaserExtendPiwikByTheme": "新しいテーマをインストールして別の外観と操作感をお楽しみください",
"TeaserExtendPiwikByUpload": "ZIP ファイルをアップロードして Piwik を拡張",
- "InstallingNewPluginViaMarketplaceOrUpload": "自動的にマーケットプレイスからプラグインをインストールまたは.zip形式のプラグイン %s を %s アップロードすることができます。",
+ "InstallingNewPluginViaMarketplaceOrUpload": "自動的にマーケットプレイスからプラグインをインストールまたは.zip形式のプラグイン %1$s を %2$s アップロードすることができます。",
"Theme": "テーマ",
"Themes": "テーマ",
"ThemesDescription": "テーマは Piwik ユーザインターフェイスの外観を変更するだけでなく、解析レポートを楽しむ新しいビジュアルを備えています",
diff --git a/plugins/CorePluginsAdmin/lang/ko.json b/plugins/CorePluginsAdmin/lang/ko.json
index 406ec44c78..c604615601 100644
--- a/plugins/CorePluginsAdmin/lang/ko.json
+++ b/plugins/CorePluginsAdmin/lang/ko.json
@@ -18,7 +18,7 @@
"Deactivate": "비활성화",
"Developer": "개발자",
"DoMoreContactPiwikAdmins": "새로운 플러그인이나 테마를 설치하기 위해서, Piwik 관리자에게 연락해주세요.",
- "GetEarlyAccessForPaidPlugins": "참고사항: 모든 플러그인은 현재 무료로 사용할 수 있습니다. 향후 유료 마켓플레이스를 제공할 예정입니다 (자세한 사항은 %s연락 주시길%s 바랍니다.).",
+ "GetEarlyAccessForPaidPlugins": "참고사항: 모든 플러그인은 현재 무료로 사용할 수 있습니다. 향후 유료 마켓플레이스를 제공할 예정입니다 (자세한 사항은 %1$s연락 주시길%2$s 바랍니다.).",
"Inactive": "비활성",
"InstallNewPlugins": "새로운 플러그인 설치",
"InstallNewThemes": "새로운 테마 설치",
diff --git a/plugins/CorePluginsAdmin/lang/lt.json b/plugins/CorePluginsAdmin/lang/lt.json
index acc5f2fcdd..5af99565dd 100644
--- a/plugins/CorePluginsAdmin/lang/lt.json
+++ b/plugins/CorePluginsAdmin/lang/lt.json
@@ -1,18 +1,32 @@
{
"CorePluginsAdmin": {
+ "ActionActivatePlugin": "Aktyvuoti papildinį",
"Activate": "Aktyvinti",
"Activated": "Aktyvintas",
"Active": "Aktyvus",
+ "AllowedUploadFormats": "Per šį puslapį galite įkelti papildinį ar temą .zip formatu.",
"Changelog": "Keitimų žurnalas",
"Deactivate": "Pasyvinti",
+ "Developer": "Kūrėjas",
"Inactive": "Pasyvus",
+ "InstallingPlugin": "Įdiegiama %s",
+ "LikeThisPlugin": "Patinka šis papildinys?",
"PluginsExtendPiwik": "Papildiniai suteikia Piwik papildomų galimybių.",
"OncePluginIsInstalledYouMayActivateHere": "Įdiegę papildinį, čia galite jį aktyvinti arba pasyvinti",
+ "NoPluginsFound": "Papildinių nerasta",
+ "NoThemesFound": "Temų nerasta",
"NoZipFileSelected": "Prašome pasirinkti ZIP failą.",
"PluginHomepage": "Papildinio svetainė",
"PluginKeywords": "Raktiniai žodžiai",
+ "PluginRequirement": "%1$s reikalauja %2$s.",
"PluginsManagement": "Papildinių valdymas",
+ "PluginWebsite": "Papildinio svetainė",
+ "Screenshots": "Ekrano kopijos",
"Status": "Būsena",
+ "StepPluginSuccessfullyInstalled": "Jūs sėkmingai įdiegėte papildinį %1$s %2$s.",
+ "StepPluginSuccessfullyUpdated": "Jūs sėkmingai atnaujinote papildinį %1$s %2$s.",
+ "StepReplaceExistingPlugin": "Pakeičiamas esamas papildinys",
+ "SuccessfullyActicated": "Jūs sėkmingai aktyvavote <strong>%s<\/strong>.",
"Version": "Versija",
"Websites": "Svetainės"
}
diff --git a/plugins/CorePluginsAdmin/lang/nb.json b/plugins/CorePluginsAdmin/lang/nb.json
index 73c5446a7e..0444d1efa6 100644
--- a/plugins/CorePluginsAdmin/lang/nb.json
+++ b/plugins/CorePluginsAdmin/lang/nb.json
@@ -8,46 +8,79 @@
"Activated": "Aktivert",
"Active": "Aktiv",
"Activity": "Aktivitet",
+ "AllowedUploadFormats": "Du kan laste opp en utvidelse eller et tema i .zip-format via denne siden.",
"AuthorHomepage": "Forfatterens hjemmeside",
"Authors": "Forfattere",
"BackToExtendPiwik": "Tilbake til markedsplassen",
+ "BeCarefulUsingPlugins": "Utvidelser som ikke er skrevet av Piwik-laget bør brukes med forsiktighet: Vi har ikke vurdert dem.",
+ "BeCarefulUsingThemes": "Tema som ikke er skrevet av Piwik-laget bør brukes med forsiktighet: Vi har ikke vurdert dem.",
"ByXDevelopers": "av %s utviklere",
"CannotInstall": "Kan ikke installere (hjelp)",
"Changelog": "Endringslogg",
- "ChangeSettingsPossible": "Du kan endre %sinnstillingene%s for denne utvidelsen.",
+ "ChangeSettingsPossible": "Du kan endre %1$sinnstillingene%2$s for denne utvidelsen.",
+ "CorePluginTooltip": "Kjerne-utvidelser har ingen versjon siden de distribueres med Piwik.",
"Deactivate": "Deaktiver",
"Developer": "Utvikler",
+ "DevelopersLearnHowToDevelopPlugins": "Utviklere: Lær hvordan du kan utvide og tilpasse Piwik ved %1$så utvikle utvidelser og tema%2$s.",
+ "DoMoreContactPiwikAdmins": "For å installer en ny utvidelse eller et nytt tema, kontakt administratoren for din Piwik.",
+ "EmailToEnquireUpdatedVersion": "Vennligst send e-post til %1$s og si at det finnes en oppdatert versjon av %2$s.",
+ "FeaturedPlugin": "Fremhevet utvidelse",
+ "ChangeLookByManageThemes": "Du kan endre utseendet til Piwik ved å %1$sHåndtere temaer%2$s.",
+ "GetEarlyAccessForPaidPlugins": "Merk. alle utvidelser er nå tilgjengelig gratis; i fremtiden vil vi også tilby utvidelser mot betaling i markedsplassen (%1$skontakt oss%2$s for tidlig tilgang).",
"History": "Historikk",
"Inactive": "Deaktivert",
+ "InfoPluginUpdateIsRecommended": "Oppdater dine utvidelser nå for å få glede av de siste forbedringene.",
+ "InfoThemeIsUsedByOtherUsersAsWell": "Merk: de andre %1$s brukerne som er registrert i denne Piwiken bruker også temaet %2$s.",
+ "InfoThemeUpdateIsRecommended": "Oppdater dine temaer for å få gleden av den siste versjonen.",
"InstallingPlugin": "Installerer %s",
"InstallNewPlugins": "Installer nye utvidelser",
+ "InstallNewThemes": "Installer nye tema",
+ "LastCommitTime": "(siste bidrag %s)",
"LastUpdated": "Sist oppdatert",
+ "LicenseHomepage": "Lisensside",
+ "LikeThisPlugin": "Liker du denne utvidelsen?",
+ "ConsiderDonating": "Vurder å donere",
+ "CommunityContributedPlugin": "Dette er en utvidelse som er utviklet av samfunnet, tilgjengelig gratis for deg.",
+ "ConsiderDonatingCreatorOf": "Vurder å donere til forfatteren av %s",
"PluginsExtendPiwik": "Utvidelser kan utvide eller begrense funksjonaliteten i Piwik.",
"OncePluginIsInstalledYouMayActivateHere": "Når en utvidelse har blitt installert, kan du slå den av eller på her.",
"Marketplace": "Markedsplass",
+ "MarketplaceSellPluginSubject": "Markedsplass - selg utvidelse",
"MenuPlatform": "Platform",
"MissingRequirementsNotice": "Vennligst oppdater %1$s %2$s til en nyere versjon, %1$s %3$s er påkrevd.",
"MissingRequirementsPleaseInstallNotice": "Vennligst installer %1$s %2$s da dette er påkrevd av %3$s.",
"NewVersion": "ny versjon",
"NoPluginsFound": "Ingen utvidelser funnet",
+ "NotAllowedToBrowseMarketplacePlugins": "Du kan bla i listen over utvidelser som kan installeres for å utvide eller tilpasse din Piwik-plattform. Vennligst kontakt din admin hvis du trenger å installere noen av disse.",
+ "NotAllowedToBrowseMarketplaceThemes": "Du kan bla i listen over temaer som kan installeres for å tilpasse utseendet til Piwik-plattformen. Vennligst kontakt din admin for å få noen av disse installert.",
"NoThemesFound": "Ingen temaer funnet",
"NoZipFileSelected": "Vennligst velg en ZIP-fil.",
"NumDownloadsLatestVersion": "Siste versjon: %s nedlastinger",
"NumUpdatesAvailable": "%s oppdatering(er) tilgjengelig",
+ "Origin": "Opprinnelse",
"OriginCore": "Kjerne",
"OriginThirdParty": "Tredjepart",
"PluginHomepage": "Hjemmeside for utvidelse",
"PluginKeywords": "Nøkkelord",
"PluginNotCompatibleWith": "%1$s utvidelse ikke kompatibel med %2$s.",
+ "PluginNotWorkingAlternative": "Hvis du bruker denne utvidelsen, kanskje du kan finne en nyere versjon i markedsplassen. Hvis ikke, vil du kanskje avinstallere den.",
"PluginRequirement": "%1$s krever %2$s.",
"PluginsManagement": "Administrasjon av utvidelser",
+ "PluginUpdateAvailable": "Du bruker versjon %1$s og en ny versjon %2$s er tilgjengelig.",
"PluginVersionInfo": "%1$s fra %2$s",
+ "PluginWebsite": "Nettsted for utvidelse",
"Screenshots": "Skjermbilder",
"SortByAlpha": "alpha",
"SortByNewest": "nyeste",
"SortByPopular": "populære",
"Status": "Status",
"StepDownloadingPluginFromMarketplace": "Laster ned utvidelse fra markedsplassen",
+ "StepDownloadingThemeFromMarketplace": "Laster ned tema fra markedsplassen",
+ "StepPluginSuccessfullyInstalled": "Du har installert utvidelsen %1$s %2$s.",
+ "StepPluginSuccessfullyUpdated": "Du har oppdatert utvidelsen %1$s %2$s.",
+ "StepReplaceExistingPlugin": "Erstatter eksisterende utvidelse",
+ "StepReplaceExistingTheme": "Erstatter eksisterende tema",
+ "StepThemeSuccessfullyInstalled": "Du har installert temaet %1$s %2$s.",
"StepThemeSuccessfullyUpdated": "Du har oppdatert temaet %1$s %2$s.",
"StepUnzippingPlugin": "Pakker ut utvidelse",
"StepUnzippingTheme": "Pakker ut tema",
@@ -57,9 +90,12 @@
"TeaserExtendPiwikByPlugin": "Utvid Piwik ved å installere en ny utvidelse",
"TeaserExtendPiwikByTheme": "Nyt et annet design ved å installere et nytt tema",
"TeaserExtendPiwikByUpload": "Utvid Piwik ved å laste opp en ZIP-fil",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Du kan installere utvidelser fra markedsplassen automatisk eller %1$slaste opp en utvidelse%2$s i .zip-format.",
"Theme": "Tema",
"Themes": "Temaer",
+ "ThemesDescription": "Temaer kan endre utseendet til Piwik, og gi en helt ny visuell opplevelse for dine analyserapporter.",
"ThemesManagement": "Håndtere temaer",
+ "UninstallConfirm": "Du er i ferd med å avinstallere utvidelsen %s. Denne utvidelsen vil bli helt slettet fra din plattform, og dette kan ikke angres. Er du sikker at du vil dette?",
"Updated": "Oppdatert",
"UpdatingPlugin": "Oppdaterer %s",
"UploadZipFile": "Last opp ZIP-fil",
diff --git a/plugins/CorePluginsAdmin/lang/nl.json b/plugins/CorePluginsAdmin/lang/nl.json
index 338e12493c..e5a2b2885d 100644
--- a/plugins/CorePluginsAdmin/lang/nl.json
+++ b/plugins/CorePluginsAdmin/lang/nl.json
@@ -17,16 +17,16 @@
"ByXDevelopers": "door %s ontwikkelaars",
"CannotInstall": "Kan niet worden geïnstalleerd (help)",
"Changelog": "Wijzigingen",
- "ChangeSettingsPossible": "Je kunt %sinstellingen%s aanpassen voor deze plugin.",
+ "ChangeSettingsPossible": "Je kunt %1$sinstellingen%2$s aanpassen voor deze plugin.",
"CorePluginTooltip": "Kern plugins hebben geen versie omdat deze met Piwik gedistribueerd worden.",
"Deactivate": "Uitschakelen",
"Developer": "Ontwikkelaar",
- "DevelopersLearnHowToDevelopPlugins": "Ontwikkelaars: Leer hoe Piwik kan worden uitgebreid en aangepast door het %sontwikkelen van plugins en thema's%s.",
+ "DevelopersLearnHowToDevelopPlugins": "Ontwikkelaars: Leer hoe Piwik kan worden uitgebreid en aangepast door het %1$sontwikkelen van plugins en thema's%2$s.",
"DoMoreContactPiwikAdmins": "Neem contact op met je Piwik beheerder om een nieuwe plugin of thema te installeren.",
"EmailToEnquireUpdatedVersion": "Mail naar %1$s en vraag naar een actuele versie van %2$s.",
"FeaturedPlugin": "Aanbevolen plugin",
- "ChangeLookByManageThemes": "Je kan het uitelijk van Piwik wijzigen %sThema's%s",
- "GetEarlyAccessForPaidPlugins": "Opmerking: op het moment zijn alle plugins gratis beschikbaar; in de toekomst activeren we Betaalde Plugins in de Marktplaats (%sneem contact op%s om eerder toegang te krijgen).",
+ "ChangeLookByManageThemes": "Je kan het uitelijk van Piwik wijzigen %1$sThema's%2$s",
+ "GetEarlyAccessForPaidPlugins": "Opmerking: op het moment zijn alle plugins gratis beschikbaar; in de toekomst activeren we Betaalde Plugins in de Marktplaats (%1$sneem contact op%2$s om eerder toegang te krijgen).",
"History": "Historie",
"Inactive": "Uitgeschakeld",
"InfoPluginUpdateIsRecommended": "Update nu uw plugins om van de laatste verbeteringen te profiteren.",
@@ -65,7 +65,7 @@
"PluginNotWorkingAlternative": "Als je deze plugin hebt gebruikt, kun je wellicht een meer recente versie in de Marktplaats vinden. Zo niet, dan wil je deze plugin waarschijnlijk verwijderen.",
"PluginRequirement": "%1$s vereist %2$s.",
"PluginsManagement": "Plugin manager",
- "PluginUpdateAvailable": "Je gebruikt versie %s en een nieuwe versie %s is beschikbaar.",
+ "PluginUpdateAvailable": "Je gebruikt versie %1$s en een nieuwe versie %2$s is beschikbaar.",
"PluginVersionInfo": "%1$s van %2$s",
"PluginWebsite": "Plugin Website",
"Screenshots": "Schermafbeeldingen",
@@ -89,7 +89,7 @@
"TeaserExtendPiwikByPlugin": "Breidt Piwik uit door een nieuwe plugin te installeren",
"TeaserExtendPiwikByTheme": "Geniet van een andere weergave door het installeren van een nieuw thema.",
"TeaserExtendPiwikByUpload": "Breidt Piwik uit door een ZIP bestand te uploaden",
- "InstallingNewPluginViaMarketplaceOrUpload": "Je kunt automatisch plugins installeren van de Martkplaats, of een %splugin uploaden%s in een .zip bestand.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Je kunt automatisch plugins installeren van de Martkplaats, of een %1$splugin uploaden%2$s in een .zip bestand.",
"Theme": "Thema",
"Themes": "Thema's",
"ThemesDescription": "Thema's kunnen de weergave van de Piwik interface aanpassen, en bieden je een compleet nieuwe visuele ervaring voor je analyse rapporten",
diff --git a/plugins/CorePluginsAdmin/lang/pl.json b/plugins/CorePluginsAdmin/lang/pl.json
index 9a33e1731c..510e5bf484 100644
--- a/plugins/CorePluginsAdmin/lang/pl.json
+++ b/plugins/CorePluginsAdmin/lang/pl.json
@@ -16,14 +16,14 @@
"BeCarefulUsingThemes": "Szablonym, których autorem nie jest grupa Piwik, powinny by używane z rozwagą: nie sprawdzaliśmy ich.",
"ByXDevelopers": "przez %s deweloperów",
"Changelog": "Log zmian",
- "ChangeSettingsPossible": "Możesz zmienić %sustawienia%s dla tego plugin'u.",
+ "ChangeSettingsPossible": "Możesz zmienić %1$sustawienia%2$s dla tego plugin'u.",
"CorePluginTooltip": "Pluginy do Core nie mają wersji, ponieważ są rozpowszechniane z Piwik.",
"Deactivate": "Wyłącz",
"Developer": "Deweloper",
"DoMoreContactPiwikAdmins": "Aby zainstalować nowy plugin lub nową skórę, skontaktuj się z administratorami Piwik'a.",
"EmailToEnquireUpdatedVersion": "Proszę napiac do %1$s i zapytać o zaktualizowanie wersji %2$s.",
"FeaturedPlugin": "Wyróżniony plugin",
- "GetEarlyAccessForPaidPlugins": "Uwaga: wszystkie pluginy są obecnie dostępne za darmo; w przyszłości uruchomimy w Sklepie Płatne Pluginy (%sskontaktuj się%s dla wczesnego dostępu).",
+ "GetEarlyAccessForPaidPlugins": "Uwaga: wszystkie pluginy są obecnie dostępne za darmo; w przyszłości uruchomimy w Sklepie Płatne Pluginy (%1$sskontaktuj się%2$s dla wczesnego dostępu).",
"History": "Historia",
"Inactive": "Nieaktywna",
"InfoPluginUpdateIsRecommended": "Zaktualizuj swoje pluginy teraz, w celu uzyskania korzyści z najnowszych ulepszeń.",
@@ -57,7 +57,7 @@
"PluginNotWorkingAlternative": "Przy użyciu tej wtyczki, może znajdziesz nowszą wersję w Marketplace. Jeśli nie, możesz ją odinstalować.",
"PluginRequirement": "%1$s wymaga %2$s.",
"PluginsManagement": "Zarządzanie wtyczkami",
- "PluginUpdateAvailable": "Używasz wersji %s, nowa wersja %s jest dostępna.",
+ "PluginUpdateAvailable": "Używasz wersji %1$s, nowa wersja %2$s jest dostępna.",
"PluginVersionInfo": "%1$s z %2$s",
"PluginWebsite": "Strona WWW",
"Screenshots": "Screenshoty",
diff --git a/plugins/CorePluginsAdmin/lang/pt-br.json b/plugins/CorePluginsAdmin/lang/pt-br.json
index 479cc31bb8..70d48fc1ff 100644
--- a/plugins/CorePluginsAdmin/lang/pt-br.json
+++ b/plugins/CorePluginsAdmin/lang/pt-br.json
@@ -17,16 +17,16 @@
"ByXDevelopers": "por %s desenvolvedores",
"CannotInstall": "Não consegue instalar (ajuda)",
"Changelog": "Changelog",
- "ChangeSettingsPossible": "Você pode alterar as %sconfigurações%s para este plugin.",
+ "ChangeSettingsPossible": "Você pode alterar as %1$sconfigurações%2$s para este plugin.",
"CorePluginTooltip": "Plugins core não possuem versão uma que são distribuídos com Piwik.",
"Deactivate": "Desativar",
"Developer": "Desenvolvedor",
- "DevelopersLearnHowToDevelopPlugins": "Desenvolvedores: Saiba como você pode estender e personalizar Piwik usando os plugins %sdeveloping ou themes%s.",
+ "DevelopersLearnHowToDevelopPlugins": "Desenvolvedores: Saibam como estender e personalizar o Piwik %1$sdesenvolvendo plugins ou temas%2$s.",
"DoMoreContactPiwikAdmins": "Para instalar um novo plugin ou um novo tema, por favor, entrar em contato com os administradores do servidor Piwik.",
"EmailToEnquireUpdatedVersion": "Por favor enviar e-mail %1$s e inquirir uma versão atualizada do %2$s.",
"FeaturedPlugin": "Plugin destaque",
- "ChangeLookByManageThemes": "Você pode alterar a aparência do Piwik por %sManaging Themes%s.",
- "GetEarlyAccessForPaidPlugins": "Nota: Atualmente todos os plugins estão disponíveis gratuitamente; no futuro Plugins pagos serão permitidos no Marketplace (%sentre em contato conosco%s para acesso antecipado).",
+ "ChangeLookByManageThemes": "Você pode alterar a aparência do Piwik %1$sGerenciando Temas%2$s.",
+ "GetEarlyAccessForPaidPlugins": "Nota: atualmente todos os plugins estão disponíveis gratuitamente; no futuro serão permitidos Plugins Pagos no Marketplace (%1$sentre em contato conosco%2$s para acesso antecipado).",
"History": "Histórico",
"Inactive": "Inativo",
"InfoPluginUpdateIsRecommended": "Atualize seus plugins agora para se beneficiar das últimas melhorias.",
@@ -66,7 +66,7 @@
"PluginNotWorkingAlternative": "Se você estiver usando este plugin, talvez você possa encontrar uma versão mais recente no Marketplace. Se não, você pode querer desinstalá-lo.",
"PluginRequirement": "%1$s requer %2$s.",
"PluginsManagement": "Gerenciamento de plugins",
- "PluginUpdateAvailable": "Você está usando a versão %s e uma nova versão %s está disponível.",
+ "PluginUpdateAvailable": "Você está usando a versão %1$s e uma nova versão %2$s está disponível.",
"PluginVersionInfo": "%1$s de %2$s",
"PluginWebsite": "Site de Plugin",
"Screenshots": "Screenshots",
@@ -90,7 +90,7 @@
"TeaserExtendPiwikByPlugin": "Estenda Piwik instalando um novo plugin",
"TeaserExtendPiwikByTheme": "Aproveite um outro look & feel instalando um novo tema",
"TeaserExtendPiwikByUpload": "Estenda o Piwik carregando um arquivo ZIP",
- "InstallingNewPluginViaMarketplaceOrUpload": "Você pode instalar automaticamente plugins do mercado ou %scarregar um plugin%s em formato .zip.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Você pode instalar automaticamente plugins do Marketplace ou %1$scarregar um plugin%2$s no formato .zip",
"Theme": "Tema",
"Themes": "Temas",
"ThemesDescription": "Os temas podem alterar a aparência da interface do usuário do Piwik, e fornecer uma experiência completamente nova visual para desfrutar dos seus relatórios de análise.",
diff --git a/plugins/CorePluginsAdmin/lang/ro.json b/plugins/CorePluginsAdmin/lang/ro.json
index 136c5e89ed..d9ff7f63d9 100644
--- a/plugins/CorePluginsAdmin/lang/ro.json
+++ b/plugins/CorePluginsAdmin/lang/ro.json
@@ -16,14 +16,14 @@
"BeCarefulUsingThemes": "Temele al caror autor nu este Piwik trebuie utilizate cu precautie: noi nu le-am testat.",
"ByXDevelopers": "de către %s programatori",
"Changelog": "Changelog",
- "ChangeSettingsPossible": "Poti schimba %ssetarile%s pentru acest plugin.",
+ "ChangeSettingsPossible": "Poti schimba %1$ssetarile%2$s pentru acest plugin.",
"CorePluginTooltip": "Pluginurile esentiale nu au nici o versiune din moment ce sunt distribuite cu Piwik.",
"Deactivate": "Dezactivare",
"Developer": "Dezvoltator",
"DoMoreContactPiwikAdmins": "Pentru a instala un nou plugin sau o tema noua, va rugam luati legatura cu administratorii Dvs. ai Piwik.",
"EmailToEnquireUpdatedVersion": "Va rugam sa trimiteti email %1$s si intrebati de o versiune mai noua a %2$s.",
"FeaturedPlugin": "Plugin promovat",
- "GetEarlyAccessForPaidPlugins": "Nota: toate pluginurile sunt disponibile gratuit in acest moment; pe viitor activa sectiunea Pluginuri cu Plata in Marketplace (%scontacteaza-ne%s pentru a putea accesa mai devreme).",
+ "GetEarlyAccessForPaidPlugins": "Nota: toate pluginurile sunt disponibile gratuit in acest moment; pe viitor activa sectiunea Pluginuri cu Plata in Marketplace (%1$scontacteaza-ne%2$s pentru a putea accesa mai devreme).",
"History": "Istoric",
"Inactive": "Inactiv",
"InfoPluginUpdateIsRecommended": "Updateaza-ti pluginurile acum pentru a beneficia de ultimele imbunatatiri.",
@@ -57,7 +57,7 @@
"PluginNotWorkingAlternative": "Daca ati folosit acest plugin, poate gasiti o versiune mai noua in Marketplace. Daca nu, poate doriti sa il dezinstalati.",
"PluginRequirement": "%1$s cere %2$s.",
"PluginsManagement": "Managementul pluginurilor",
- "PluginUpdateAvailable": "Folositi versiunea %s iar o versiune noua %s este disponibila.",
+ "PluginUpdateAvailable": "Folositi versiunea %1$s iar o versiune noua %2$s este disponibila.",
"PluginVersionInfo": "%1$s de la %2$s",
"PluginWebsite": "Siteul pluginului",
"Screenshots": "Imagini",
diff --git a/plugins/CorePluginsAdmin/lang/ru.json b/plugins/CorePluginsAdmin/lang/ru.json
index d9ba736893..0aa82140b2 100644
--- a/plugins/CorePluginsAdmin/lang/ru.json
+++ b/plugins/CorePluginsAdmin/lang/ru.json
@@ -15,14 +15,14 @@
"BeCarefulUsingPlugins": "Плагины, которые разработаны не командой Piwik должны использоваться с осторожностью: мы не просматриваем их.",
"BeCarefulUsingThemes": "Темы, которые разработаны не командой Piwik должны использоваться с осторожностью: мы не просматриваем их.",
"Changelog": "История изменений",
- "ChangeSettingsPossible": "Вы можете %sизменить настройки%s для этого плагина.",
+ "ChangeSettingsPossible": "Вы можете %1$sизменить настройки%2$s для этого плагина.",
"CorePluginTooltip": "Основные плагины не имеют версию, так как они распространяются с Piwik.",
"Deactivate": "Деактивировать",
"Developer": "Разработчик",
"DoMoreContactPiwikAdmins": "Для установки нового плагина или новой темы, пожалуйста свяжитесь с вашим Piwik-администратором",
"FeaturedPlugin": "Набирающий популярность плагин",
- "ChangeLookByManageThemes": "Вы можете изменить внешний вид Piwik: %sВыбор Темы%s.",
- "GetEarlyAccessForPaidPlugins": "Примечание: в настоящее время все плагины доступны бесплатно, в будущем мы включим платные плагины на Marketplace (%sсвяжитесь с нами%s для раннего доступа).",
+ "ChangeLookByManageThemes": "Вы можете изменить внешний вид Piwik: %1$sВыбор Темы%2$s.",
+ "GetEarlyAccessForPaidPlugins": "Примечание: в настоящее время все плагины доступны бесплатно, в будущем мы включим платные плагины на Marketplace (%1$sсвяжитесь с нами%2$s для раннего доступа).",
"History": "История",
"Inactive": "Неактивный",
"InfoPluginUpdateIsRecommended": "Обновите плагины что бы воспользоваться последними улучшениями.",
@@ -55,7 +55,7 @@
"PluginNotWorkingAlternative": "Если вы используете этот плагин, может быть, вы сможете найти более новые версии в Marketplace. Если нет — можете удалить его.",
"PluginRequirement": "%1$s требуется %2$s.",
"PluginsManagement": "Управление плагинами",
- "PluginUpdateAvailable": "Вы используете версию %s последняя доступная %s",
+ "PluginUpdateAvailable": "Вы используете версию %1$s последняя доступная %2$s",
"PluginVersionInfo": "%1$s – %2$s",
"PluginWebsite": "Сайт плагина",
"Screenshots": "Скриншоты",
@@ -79,7 +79,7 @@
"TeaserExtendPiwikByPlugin": "Улучшение Piwik установкой нового плагина",
"TeaserExtendPiwikByTheme": "Насладитесь другим внешним видом установив новую тему",
"TeaserExtendPiwikByUpload": "Улучшение Piwik закачкой ZIP файла",
- "InstallingNewPluginViaMarketplaceOrUpload": "Вы автоматически можете установить плагины из Marketplace или %sзагрузить плагин%s в формате zip.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Вы автоматически можете установить плагины из Marketplace или %1$sзагрузить плагин%2$s в формате zip.",
"Theme": "Тема",
"Themes": "Темы",
"ThemesDescription": "Темы могут изменить внешний вид Piwik пользовательского интерфейса, а также обеспечить совершенно новое визуальное восприятие, чтобы наслаждаться отчетами аналитики.",
diff --git a/plugins/CorePluginsAdmin/lang/sk.json b/plugins/CorePluginsAdmin/lang/sk.json
index 2460c5c1bc..069cbec093 100644
--- a/plugins/CorePluginsAdmin/lang/sk.json
+++ b/plugins/CorePluginsAdmin/lang/sk.json
@@ -17,16 +17,16 @@
"ByXDevelopers": "%s vývojárov",
"CannotInstall": "Nedá sa nainštalovať (nápoveda)",
"Changelog": "protokol zmien",
- "ChangeSettingsPossible": "Môžete zmeniť %s nastavenia %s pre tento plugin.",
+ "ChangeSettingsPossible": "Môžete zmeniť %1$s nastavenia %2$s pre tento plugin.",
"CorePluginTooltip": "Jadrové pluginy nemajú žiadnu verziu odkedy sú distribuované s Piwikom.",
"Deactivate": "Deaktivovať",
"Developer": "Vývojár",
- "DevelopersLearnHowToDevelopPlugins": "Vývojári: Naučiť sa ako rozšíriť a prispôsobiť Piwik %s vývojarskými pluginmi alebo %s motívmi.",
+ "DevelopersLearnHowToDevelopPlugins": "Vývojári: Naučiť sa ako rozšíriť a prispôsobiť Piwik %1$s vývojarskými pluginmi alebo %2$s motívmi.",
"DoMoreContactPiwikAdmins": "Pre nainštalovanie nového pluginu alebo motívu sa prosím spojte s Vašími Piwik administrátormi.",
"EmailToEnquireUpdatedVersion": "Prosím mejlujte %1$s a informujte sa o aktualizovanej verzii %2$s.",
"FeaturedPlugin": "Hlavný plugin",
- "ChangeLookByManageThemes": "Výzor Piwiku môžete zmeniť %s spravovaním motívov%s.",
- "GetEarlyAccessForPaidPlugins": "Pozn.: všetky pluginy sú v súčasnosti voľne dostupné; v budúcnosti chceme zaviesť spoplatnené pluginy ktoré sa budú nachádzať na trhu (%s kontaktujte nás %s pre rýchly prístup).",
+ "ChangeLookByManageThemes": "Výzor Piwiku môžete zmeniť %1$s spravovaním motívov%2$s.",
+ "GetEarlyAccessForPaidPlugins": "Pozn.: všetky pluginy sú v súčasnosti voľne dostupné; v budúcnosti chceme zaviesť spoplatnené pluginy ktoré sa budú nachádzať na trhu (%1$s kontaktujte nás %2$s pre rýchly prístup).",
"History": "História",
"Inactive": "Neaktívny",
"InfoPluginUpdateIsRecommended": "Aktualizujte teraz Vaše pluginy aby ste vyťažili z najnovších vylepšení.",
@@ -62,7 +62,7 @@
"PluginNotWorkingAlternative": "Ak ste používali tento plugin, možno nájdete aj aktuálnejšiu verziu na trhu. Ak nie, možno ju budete chcieť odinštalovať.",
"PluginRequirement": "%1$s potrebuje %2$s.",
"PluginsManagement": "Správa modulov",
- "PluginUpdateAvailable": "Používate verziu %s a nová verzia %s je dostupná.",
+ "PluginUpdateAvailable": "Používate verziu %1$s a nová verzia %2$s je dostupná.",
"PluginVersionInfo": "%1$s z %2$s",
"PluginWebsite": "Webstránka pluginu",
"Screenshots": "Screenshoty",
@@ -86,7 +86,7 @@
"TeaserExtendPiwikByPlugin": "Rozšíriť Piwik inštalovaním nového pluginu",
"TeaserExtendPiwikByTheme": "Vychutnať si iný pohľad & pocit nainštalovaním nového motívu",
"TeaserExtendPiwikByUpload": "Rozšíriť Piwik nahratím ZIP súboru",
- "InstallingNewPluginViaMarketplaceOrUpload": "Môžete automaticky nainštalovať plugin z trhu alebo %s nahrať plugin%s v .zip formáte.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Môžete automaticky nainštalovať plugin z trhu alebo %1$s nahrať plugin%2$s v .zip formáte.",
"Theme": "Motív",
"Themes": "Motívy",
"ThemesDescription": "Motívy môžu zmeniť výzor Piwik uživateľského rozhrania, a poskytnúť úplne novú vizuálnu skúsenosť aby ste sa mohli tešiť z Vašich analytických reportov.",
diff --git a/plugins/CorePluginsAdmin/lang/sr.json b/plugins/CorePluginsAdmin/lang/sr.json
index 472bc60e1f..a88994f2b8 100644
--- a/plugins/CorePluginsAdmin/lang/sr.json
+++ b/plugins/CorePluginsAdmin/lang/sr.json
@@ -17,16 +17,16 @@
"ByXDevelopers": "%s razvojnom timu",
"CannotInstall": "Ne mogu da instaliram (pomoć)",
"Changelog": "Dnevnik promena",
- "ChangeSettingsPossible": "Možete izmeniti %spodešavanja%s za ovaj dodatak.",
+ "ChangeSettingsPossible": "Možete izmeniti %1$spodešavanja%2$s za ovaj dodatak.",
"CorePluginTooltip": "Osnovni dodaci oznaku verzije s obzirom na to da se distribuiraju zajedno sa Piwik-om.",
"Deactivate": "Deaktivirati",
"Developer": "Programer",
- "DevelopersLearnHowToDevelopPlugins": "Programeri: saznajte kako da proširite i prilagodite Piwik %spravljenjem dodataka i tema%s.",
+ "DevelopersLearnHowToDevelopPlugins": "Programeri: saznajte kako da proširite i prilagodite Piwik %1$spravljenjem dodataka i tema%2$s.",
"DoMoreContactPiwikAdmins": "Ukoliko želite da instalirate novi dodatak ili temu, kontaktirajte vašeg Piwik administratora.",
"EmailToEnquireUpdatedVersion": "Molimo vas da pošaljete mejl na %1$s i da zatražite novu verziju %2$s.",
"FeaturedPlugin": "Istaknuti dodatak",
- "ChangeLookByManageThemes": "Možete izmeniti izgled Piwik-a %supravljanjem temama%s.",
- "GetEarlyAccessForPaidPlugins": "Svi dodaci su u ovom trenutku dostupni potpuno besplatno; u budućnosti ćemo na Marketu omogućiti i dodatke koji se plaćaju (%skontaktirajte na%s za rani pristup).",
+ "ChangeLookByManageThemes": "Možete izmeniti izgled Piwik-a %1$supravljanjem temama%2$s.",
+ "GetEarlyAccessForPaidPlugins": "Svi dodaci su u ovom trenutku dostupni potpuno besplatno; u budućnosti ćemo na Marketu omogućiti i dodatke koji se plaćaju (%1$skontaktirajte na%2$s za rani pristup).",
"History": "Istorijat",
"Inactive": "Neaktivno",
"InfoPluginUpdateIsRecommended": "Ažurirajte dodatke kako biste iskoristili najnovija poboljšanja.",
@@ -66,7 +66,7 @@
"PluginNotWorkingAlternative": "Ukoliko ste koristili ovaj dodatak, novu verziju možda možete naći na Marketu. Ukoliko niste, možda želite da ga deinstalirate.",
"PluginRequirement": "%1$s zahteva %2$s.",
"PluginsManagement": "Upravljanje dodacima",
- "PluginUpdateAvailable": "Koristite verziju %s a novija verzija %s je na raspolaganju.",
+ "PluginUpdateAvailable": "Koristite verziju %1$s a novija verzija %2$s je na raspolaganju.",
"PluginVersionInfo": "%1$s sa %2$s",
"PluginWebsite": "Sajt sa dodacima",
"Screenshots": "Snimci ekrana",
@@ -90,7 +90,7 @@
"TeaserExtendPiwikByPlugin": "Proširite Piwik instaliranjem novog dodatka",
"TeaserExtendPiwikByTheme": "Uživajte u novom izgledu instaliranjem nove teme",
"TeaserExtendPiwikByUpload": "Proširite Piwik postavljanjem ZIP datoteke",
- "InstallingNewPluginViaMarketplaceOrUpload": "Možete automatski instalirati dodatak sa Marketa ili ga možete %saploudovati%s u ZIP formatu.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Možete automatski instalirati dodatak sa Marketa ili ga možete %1$saploudovati%2$s u ZIP formatu.",
"Theme": "Tema",
"Themes": "Teme",
"ThemesDescription": "Pomoću tema možete da izmenite izgled Piwik korisničkog interfejsa te da doživite potpuno novo vizuelno iskustvo i uživanje u vašim analitičkim izveštajima.",
diff --git a/plugins/CorePluginsAdmin/lang/sv.json b/plugins/CorePluginsAdmin/lang/sv.json
index c7a76cee9a..1f50caf404 100644
--- a/plugins/CorePluginsAdmin/lang/sv.json
+++ b/plugins/CorePluginsAdmin/lang/sv.json
@@ -16,16 +16,17 @@
"BeCarefulUsingThemes": "Teman som inte gjorts av Piwik bör användas med försiktighet då vi inte utvärderar dessa.",
"ByXDevelopers": "av %s utvecklare",
"CannotInstall": "Kan inte installera (hjälp)",
- "Changelog": "Logg över förändring",
- "ChangeSettingsPossible": "Du kan ändra %sinställningar%s för det här pluginet.",
+ "Changelog": "Ändringslogg",
+ "ChangeSettingsPossible": "Du kan ändra %1$sinställningar%2$s för det här pluginet.",
"CorePluginTooltip": "Standardplugin har ingen version eftersom de distribueras av Piwik.",
"Deactivate": "Inaktivera",
"Developer": "Utvecklare",
+ "DevelopersLearnHowToDevelopPlugins": "Utvecklare: Lär känna hur du kan bredda eller anpassa Piwik geonom %1$sutveckling av plugin eller teman%2$s",
"DoMoreContactPiwikAdmins": "För att installera ett nytt plugin eller tema, gå till dina Piwik admins.",
"EmailToEnquireUpdatedVersion": "Skicka ett mejl till %1$s och meddela om en uppdaterad version av %2$s.",
"FeaturedPlugin": "Utvalda plugin",
- "ChangeLookByManageThemes": "Du kan ändra utseendet på Piwik genom %sHantera teman%s.",
- "GetEarlyAccessForPaidPlugins": "Observera: Just nu är alla plugin gratis; framöver kommer det finnas Plugin som kostar i butiken. (%skontakta oss%s för tidig tillgång)",
+ "ChangeLookByManageThemes": "Du kan ändra utseendet på Piwik genom %1$sHantera teman%2$s.",
+ "GetEarlyAccessForPaidPlugins": "Observera: Just nu är alla plugin gratis; framöver kommer det finnas Plugin som kostar i butiken. (%1$skontakta oss%2$s för tidig tillgång)",
"History": "Historik",
"Inactive": "Inaktiverad",
"InfoPluginUpdateIsRecommended": "Uppdatera dina plugin så du kan ta del av de senaste förbättringarna.",
@@ -61,10 +62,10 @@
"PluginNotWorkingAlternative": "Om du använt det här pluginet, kanske du kan hitta en nyare version i vår butik. Om inte så kanske du vill avinstallera det.",
"PluginRequirement": "%1$s kräver %2$s",
"PluginsManagement": "Pluginhantering",
- "PluginUpdateAvailable": "Du använder version %s och en ny version %s finns tillgänglig.",
+ "PluginUpdateAvailable": "Du använder version %1$s och en ny version %2$s finns tillgänglig.",
"PluginVersionInfo": "%1$s från %2$s",
"PluginWebsite": "Plugin sida",
- "Screenshots": "Skärmbump",
+ "Screenshots": "Skärmdumpar",
"SortByAlpha": "alfa",
"SortByNewest": "nyaste",
"SortByPopular": "populär",
@@ -85,7 +86,7 @@
"TeaserExtendPiwikByPlugin": "Få ut mer av din Piwik genom att installera ett nytt plugin",
"TeaserExtendPiwikByTheme": "Njut av en annan design och känsla genom att installera ett nytt tema",
"TeaserExtendPiwikByUpload": "Utöka Piwik genom att ladda upp en ZIP fil",
- "InstallingNewPluginViaMarketplaceOrUpload": "Du kan automatiskt installera plugin från Butiken eller %sladda upp en plugin%s i .zip format.",
+ "InstallingNewPluginViaMarketplaceOrUpload": "Du kan automatiskt installera plugin från Butiken eller %1$sladda upp en plugin%2$s i .zip format.",
"Theme": "Tema",
"Themes": "Teman",
"ThemesDescription": "Teman kan förändra utseendet på Piwiks gränssnitt, och erbjuda en helt ny visuell upplevelse där du kan ta del av dina analysrapporter.",
diff --git a/plugins/CorePluginsAdmin/lang/tl.json b/plugins/CorePluginsAdmin/lang/tl.json
index dc6390afa6..25f61146f5 100644
--- a/plugins/CorePluginsAdmin/lang/tl.json
+++ b/plugins/CorePluginsAdmin/lang/tl.json
@@ -16,14 +16,14 @@
"BeCarefulUsingThemes": "Ang mga Theme na hindi nilikha ng Piwik team ay kailangang gamitin ng may pag-iingat, hindi namin nasuri ang mga ito.",
"ByXDevelopers": "sa %s mga nagdevelop",
"Changelog": "Baguhin ang log",
- "ChangeSettingsPossible": "Maaari mong baguhin ang mga %s setting %s para sa plugin na ito.",
+ "ChangeSettingsPossible": "Maaari mong baguhin ang mga %1$s setting %2$s para sa plugin na ito.",
"CorePluginTooltip": "Ang core plugin ay walang bersyon mula ng sila ay ipinamahagi sa Piwik.",
"Deactivate": "I-deactivate",
"Developer": "Nagdevelop",
"DoMoreContactPiwikAdmins": "Para ma-install ang bagong plugin o bagong theme, mangyaring makipag ugnayan sa mga admin ng Piwik",
"EmailToEnquireUpdatedVersion": "Paki-email ang %1$s at magtanong ng bagong na bersyon ng %2$s.",
"FeaturedPlugin": "Feature na plugin",
- "GetEarlyAccessForPaidPlugins": "Tandaan: lahat ng mga plugin ay magagamit ng libre sa kasalukuyan; sa hinaharap ay i-eenable namin ang Bayad na Plugin sa Marketplace (%s makipag-ugnayan sa amin %s para sa maagang pag-access).",
+ "GetEarlyAccessForPaidPlugins": "Tandaan: lahat ng mga plugin ay magagamit ng libre sa kasalukuyan; sa hinaharap ay i-eenable namin ang Bayad na Plugin sa Marketplace (%1$s makipag-ugnayan sa amin %2$s para sa maagang pag-access).",
"History": "Kasaysayan",
"Inactive": "Hindi aktibo",
"InfoPluginUpdateIsRecommended": "I-update ang iyong mga plugin ngayon, upang makinabang mula sa mga bagong pagpapabuti.",
@@ -57,7 +57,7 @@
"PluginNotWorkingAlternative": "Kung ginagamit nag plugin na ito, maari mong makita ang pinakabagong bersyon nito sa Marketplace. Kung hindi, maaari mong i-uninstall ito.",
"PluginRequirement": "%1$s kailangan %2$s.",
"PluginsManagement": "Pamamahala ng plugin",
- "PluginUpdateAvailable": "Iyong ginagamit ang bersyon %s at ang pinaka bagong bersyon %s ay available.",
+ "PluginUpdateAvailable": "Iyong ginagamit ang bersyon %1$s at ang pinaka bagong bersyon %2$s ay available.",
"PluginVersionInfo": "%1$s mula %2$s",
"PluginWebsite": "Plugin Website",
"Screenshots": "Screenshots",
diff --git a/plugins/CorePluginsAdmin/lang/tr.json b/plugins/CorePluginsAdmin/lang/tr.json
index 4ddf16b9e9..228325a807 100644
--- a/plugins/CorePluginsAdmin/lang/tr.json
+++ b/plugins/CorePluginsAdmin/lang/tr.json
@@ -42,7 +42,7 @@
"PluginHomepage": "Eklenti Sayfası",
"PluginKeywords": "Anahtar Kelimeler",
"PluginsManagement": "Eklenti Yönetimi",
- "PluginUpdateAvailable": "Şuanda %s versiyonunu kullanıyorsunuz ve yeni %s versiyon mevcut.",
+ "PluginUpdateAvailable": "Şuanda %1$s versiyonunu kullanıyorsunuz ve yeni %2$s versiyon mevcut.",
"PluginVersionInfo": "%2$s den %1$s e",
"PluginWebsite": "Eklenti Sitesi",
"Screenshots": "Ekran Görüntüleri",
diff --git a/plugins/CorePluginsAdmin/lang/vi.json b/plugins/CorePluginsAdmin/lang/vi.json
index a2c19bafe8..8d131dd15c 100644
--- a/plugins/CorePluginsAdmin/lang/vi.json
+++ b/plugins/CorePluginsAdmin/lang/vi.json
@@ -18,7 +18,7 @@
"Deactivate": "Ngừng hoạt động",
"Developer": "Người phát triển",
"DoMoreContactPiwikAdmins": "Để cài thêm tiện ích hay giao diện mời, xin vui lòng liên lạc với quản lý Piwik của bạn.",
- "GetEarlyAccessForPaidPlugins": "Lưu ý: hiện nay, mọi tiện ích đều được cung cấp miễn phí; Chúng tôi sẽ thêm Tiện ích trả phí tại Marketplace trong thời gian tới ((%sliên hệ%s để được sử dụng sớm).",
+ "GetEarlyAccessForPaidPlugins": "Lưu ý: hiện nay, mọi tiện ích đều được cung cấp miễn phí; Chúng tôi sẽ thêm Tiện ích trả phí tại Marketplace trong thời gian tới (%1$sliên hệ%2$s để được sử dụng sớm).",
"History": "Lịch sử",
"Inactive": "Không hoạt động",
"InfoPluginUpdateIsRecommended": "Cập nhập tiện ích của bạn ngay để hưởng lợi từ những thay đổi mới nhất.",
diff --git a/plugins/CoreUpdater/ReleaseChannel.php b/plugins/CoreUpdater/ReleaseChannel.php
index cb1ea5c9df..c7da77889f 100644
--- a/plugins/CoreUpdater/ReleaseChannel.php
+++ b/plugins/CoreUpdater/ReleaseChannel.php
@@ -10,6 +10,7 @@ namespace Piwik\Plugins\CoreUpdater;
use Piwik\Common;
use Piwik\Config;
+use Piwik\Db;
use Piwik\Http;
use Piwik\Plugins\SitesManager\API;
use Piwik\Url;
@@ -23,6 +24,7 @@ abstract class ReleaseChannel extends BaseReleaseChannel
$parameters = array(
'piwik_version' => Version::VERSION,
'php_version' => PHP_VERSION,
+ 'mysql_version' => Db::get()->getServerVersion(),
'release_channel' => $this->getId(),
'url' => Url::getCurrentUrlWithoutQueryString(),
'trigger' => Common::getRequestVar('module', '', 'string'),
diff --git a/plugins/CoreUpdater/Test/Integration/ReleaseChannelTest.php b/plugins/CoreUpdater/Test/Integration/ReleaseChannelTest.php
index 3f1f4248b4..5d480ed18e 100644
--- a/plugins/CoreUpdater/Test/Integration/ReleaseChannelTest.php
+++ b/plugins/CoreUpdater/Test/Integration/ReleaseChannelTest.php
@@ -9,6 +9,7 @@
namespace Piwik\Plugins\CoreUpdater\Test\ReleaseChannel;
use Piwik\Config;
+use Piwik\Db;
use Piwik\Plugins\CoreUpdater\ReleaseChannel;
use Piwik\UpdateCheck;
use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
@@ -56,11 +57,12 @@ class ReleaseChannelTest extends IntegrationTestCase
{
$version = Version::VERSION;
$phpVersion = urlencode(PHP_VERSION);
+ $mysqlVersion = Db::get()->getServerVersion();
$url = urlencode(Url::getCurrentUrlWithoutQueryString());
$urlToCheck = $this->channel->getUrlToCheckForLatestAvailableVersion();
- $this->assertStringStartsWith("http://api.piwik.org/1.0/getLatestVersion/?piwik_version=$version&php_version=$phpVersion&release_channel=my_channel&url=$url&trigger=&timezone=", $urlToCheck);
+ $this->assertStringStartsWith("http://api.piwik.org/1.0/getLatestVersion/?piwik_version=$version&php_version=$phpVersion&mysql_version=$mysqlVersion&release_channel=my_channel&url=$url&trigger=&timezone=", $urlToCheck);
}
}
diff --git a/plugins/CoreUpdater/lang/cs.json b/plugins/CoreUpdater/lang/cs.json
index d77907655a..e8558c4db1 100644
--- a/plugins/CoreUpdater/lang/cs.json
+++ b/plugins/CoreUpdater/lang/cs.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Zkontrolujte %1$s Piwik FAQ %2$s , kde jsou vysvětleny nejčastější chybi při aktualizaci. %3$s Požádejte svéo systémového administrátora - může vám pomoci s chybou, která je nejčastěji způsobena nastavením serveru MySQL.",
"HelpMessageIntroductionWhenError": "Níže je hlavní chybová hláška. Pomůže vám zjistit příčinu, ale pokud budete potřebovat další pomoc:",
"HelpMessageIntroductionWhenWarning": "Aktualizace proběhla v pořádku, ale byly zaznamenány problémy. Prosím přečtěte si jejich popis výše. Pro další pomoc:",
- "HighTrafficPiwikServerEnableMaintenance": "Pokud provozujete Piwik server s velkým provozem, doporučujeme %sna chvíli zakázat sledování návštěvníků a přepnout uživatelské rozhraní do režimu údržby%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Pokud provozujete Piwik server s velkým provozem, doporučujeme %1$sna chvíli zakázat sledování návštěvníků a přepnout uživatelské rozhraní do režimu údržby%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Poznámka: Některé zásuvné moduly nejsou kompatibilní s Piwikem %s. Budou zakázány při aktualizaci:",
"InstallingTheLatestVersion": "Instaluji poslední verzi",
"LatestBetaRelease": "Poslední beta vydání",
diff --git a/plugins/CoreUpdater/lang/da.json b/plugins/CoreUpdater/lang/da.json
index 5f81e928bd..cb351c649d 100644
--- a/plugins/CoreUpdater/lang/da.json
+++ b/plugins/CoreUpdater/lang/da.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "se %1$s Piwik FAQ %2$s som forklarer de mest almindelige fejl om opdateringer. %3$s Spørg systemadministratoren - vedkommende kan måske hjælpe med fejlen som sandsynligvis skyldes server eller MySQL-opsætning.",
"HelpMessageIntroductionWhenError": "Ovenstående vises fejlmeddelelsen. Den bør hjælpe med at forklare årsagen, men hvis der behøves mere hjælp:",
"HelpMessageIntroductionWhenWarning": "Opdateringen er fuldført, men det var nogle småproblemer under processen. Læs detaljerne ovenfor. For yderligere hjælp:",
- "HighTrafficPiwikServerEnableMaintenance": "Hvis du administrerer en Piwik server med høj trafik, anbefaler vi at du %s midlertidigt deaktivere sporing af besøgende og sætte Piwik brugergrænseflade i vedligeholdelsestilstand%s",
+ "HighTrafficPiwikServerEnableMaintenance": "Hvis du administrerer en Piwik server med høj trafik, anbefaler vi at du %1$s midlertidigt deaktivere sporing af besøgende og sætte Piwik brugergrænseflade i vedligeholdelsestilstand%2$s",
"IncompatbilePluginsWillBeDisabledInfo": "Bemærk: Nogle udvidelsesmoduler er ikke kompatible med Piwik %s. De vil blive deaktiveret, når du opgraderer:",
"InstallingTheLatestVersion": "Installerer den seneste version",
"MajorUpdateWarning1": "Dette er en stor opdatering! Den vil tage længere tid end normalt.",
diff --git a/plugins/CoreUpdater/lang/de.json b/plugins/CoreUpdater/lang/de.json
index 77b4cc9b8a..c4397dd0e5 100644
--- a/plugins/CoreUpdater/lang/de.json
+++ b/plugins/CoreUpdater/lang/de.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Lesen Sie die %1$sPiwik-FAQ%2$s. Dort werden die meisten Fehler, die während einer Aktualisierung auftreten können, erklärt. %3$sFragen Sie Ihren Systemadministrator - dieser kann Ihnen mit diesem Fehler helfen, da er am wahrscheinlichsten mit Ihrem Server oder dem MySQL-Server zusammenhängt.",
"HelpMessageIntroductionWhenError": "Dies ist die Kernfehlermeldung. Sie sollte helfen, die Ursache zu erklären, aber wenn Sie weitere Hilfe benötigen, bitte:",
"HelpMessageIntroductionWhenWarning": "Die Aktualisierung konnte erfolgreich abgeschlossen werden, obwohl es währenddessen zu Problemen kam. Für nähere Details lesen Sie bitte die Beschreibung. Für weitere Hilfe:",
- "HighTrafficPiwikServerEnableMaintenance": "Wenn Sie eine Website mit hohem Verkehrsaufkommen verwalten, empfehlen wir, das %sBesuchertracking vorübergehend zu deaktivieren und die Benutzeroberfläche in den Wartungsmodus zu versetzen%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Wenn Sie eine Website mit hohem Verkehrsaufkommen verwalten, empfehlen wir, das %1$sBesuchertracking vorübergehend zu deaktivieren und die Benutzeroberfläche in den Wartungsmodus zu versetzen%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Hinweis: Einige Plugins sind nicht kompatibel mit Piwik %s. Diese werden beim Upgrade deaktiviert:",
"InstallingTheLatestVersion": "Die neueste Version wird installiert",
"LatestBetaRelease": "Das aktuelle beta Release",
diff --git a/plugins/CoreUpdater/lang/el.json b/plugins/CoreUpdater/lang/el.json
index acd2046583..ce9c300041 100644
--- a/plugins/CoreUpdater/lang/el.json
+++ b/plugins/CoreUpdater/lang/el.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Ελέγξτε τις %1$s Piwik FAQ %2$s για συνήθη σφάλματα κατά τη διαδικασία της αναβάθμισης. %3$s Ρωτήστε τον διαχειριστή του συστήματος και ζητήστε βοήθεια με το σφάλμα το οποίο κατά πάσα πιθανότητα είναι συναφή με τον διακομιστή και την MySQL.",
"HelpMessageIntroductionWhenError": "Το παραπάνω είναι το μήνυμα λάθους του πυρήνα. Λογικά πρέπει να βοηθάει την επεξήγηση της αιτίας, αλλά αν θέλετε περισσότερες πληροφορίες:",
"HelpMessageIntroductionWhenWarning": "Η αναβάθμιση ολοκληρώθηκε με επιτυχία, αλλά υπήρξαν κάποια θέματα κατά τη διάρκεια. Παρακαλώ διαβάστε τις παραπάνω περιγραφές για τις λεπτομέρειες. Για περισσότερη βοήθεια:",
- "HighTrafficPiwikServerEnableMaintenance": "Αν διαχειρίζεστε ένα Piwik διακομιστή με υψηλή κίνηση, προτείνουμε να %sαπενεργοποιήσετε προσωρινά την παρακολούθηση Επισκέπτη και να βάλετε τη Διεπαφή Χρήστη του Piwik σε κατάσταση συντήρησης%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Αν διαχειρίζεστε ένα Piwik διακομιστή με υψηλή κίνηση, προτείνουμε να %1$sαπενεργοποιήσετε προσωρινά την παρακολούθηση Επισκέπτη και να βάλετε τη Διεπαφή Χρήστη του Piwik σε κατάσταση συντήρησης%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Σημείωση: ορισμένα πρόσθετα δεν είναι συμβατά με το Piwik %s. Θα απενεργοποιηθούν όταν αναβαθμίσετε:",
"InstallingTheLatestVersion": "Εγκατάσταση της τελευταίας έκδοσης",
"LatestBetaRelease": "Τελευταία δοκιμαστική έκδοση",
diff --git a/plugins/CoreUpdater/lang/en.json b/plugins/CoreUpdater/lang/en.json
index cb3f8a1c6a..5186315310 100644
--- a/plugins/CoreUpdater/lang/en.json
+++ b/plugins/CoreUpdater/lang/en.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Check the %1$s Piwik FAQ %2$s which explains most common errors during update. %3$s Ask your system administrator - they may be able to help you with the error which is most likely related to your server or MySQL setup.",
"HelpMessageIntroductionWhenError": "The above is the core error message. It should help explain the cause, but if you require further help please:",
"HelpMessageIntroductionWhenWarning": "The update completed successfuly, however there were issues during the process. Please read the above descriptions for details. For further help:",
- "HighTrafficPiwikServerEnableMaintenance": "If you manage a high traffic Piwik server, we recommend to %smomentarily disable visitor Tracking and put the Piwik User Interface in maintenance mode%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "If you manage a high traffic Piwik server, we recommend to %1$smomentarily disable visitor Tracking and put the Piwik User Interface in maintenance mode%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Note: some plugins are not compatible with Piwik %s. They will be disabled when you upgrade:",
"InstallingTheLatestVersion": "Installing the latest version",
"LatestBetaRelease": "Latest beta release",
diff --git a/plugins/CoreUpdater/lang/es.json b/plugins/CoreUpdater/lang/es.json
index 4c51b0d042..d3b9111aa3 100644
--- a/plugins/CoreUpdater/lang/es.json
+++ b/plugins/CoreUpdater/lang/es.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Comprueba la %1$s Piwik FAQ %2$s que explica los errores más comunes durante la actualización. %3$s Pregúntele a su administrador del sistema - que puede ser capaz de ayudarle con el error, que es más probable que sea en relación a su servidor o la configuración de MySQL.",
"HelpMessageIntroductionWhenError": "Lo anterior es un mensaje de error principal. Debería ayudarle a explicar la causa, pero si necesita más ayuda, por favor:",
"HelpMessageIntroductionWhenWarning": "Actualización completada con éxito, sin embargo hubo problemas durante el proceso. Por favor, lea las descripciones anteriores para obtener más detalles. Para obtener más ayuda:",
- "HighTrafficPiwikServerEnableMaintenance": "Si administra un servidor de Piwik con tráfico elevado, le recomendamos %sdesactivar momentáneamente el seguimento de los visitantes y disponer la interfaz de usuario de Piwik en modo mantenimiento%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Si administra un servidor de Piwik con tráfico elevado, le recomendamos %1$sdesactivar momentáneamente el seguimento de los visitantes y disponer la interfaz de usuario de Piwik en modo mantenimiento%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Nota: algunos complementos no son compatibles con Piwik %s. Serán desactivados cuando actualice:",
"InstallingTheLatestVersion": "Instalando la última versión",
"MajorUpdateWarning1": "¡Esta es una actualización importante! Tardará más de lo usual.",
diff --git a/plugins/CoreUpdater/lang/et.json b/plugins/CoreUpdater/lang/et.json
index 15b9c5dfc1..09c9b037ef 100644
--- a/plugins/CoreUpdater/lang/et.json
+++ b/plugins/CoreUpdater/lang/et.json
@@ -10,7 +10,7 @@
"ExceptionArchiveEmpty": "Tühi arhiiv.",
"HelpMessageContent": "Vaata %1$s Piwik KKK %2$s milles selgitadakse tavapäraste probleemide põhjuseid ja lahendusi. %3$s Kui sa ei leia lahendust, siis küsi oma süsteemi administraatoritelt abi- nad võivad aidata juhul, kui need vead on seotud serveri või MySQL seadetega.",
"HelpMessageIntroductionWhenWarning": "Uuendamine edukalt lõpetatud, siiski esines protsessis vigu. Palun tutvu ülal vigade kirjeldustega. Saamaks rohkem abi:",
- "HighTrafficPiwikServerEnableMaintenance": "Kui sa haldad suure liiklusega Piwiku serverit, soovitame korraks %slülitada Piwiku kasutajaliides hooldusrežiimi ja katkestada külastuste kohta info kogumine%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Kui sa haldad suure liiklusega Piwiku serverit, soovitame korraks %1$slülitada Piwiku kasutajaliides hooldusrežiimi ja katkestada külastuste kohta info kogumine%2$s.",
"InstallingTheLatestVersion": "Paigaldan uusimat versiooni",
"MajorUpdateWarning1": "Tegemist on suure uuendusega! See võtab tavapärasest kauem aega.",
"MajorUpdateWarning2": "Järgnev info on eriti oluline suure külastatavusega paigaldustele.",
diff --git a/plugins/CoreUpdater/lang/fi.json b/plugins/CoreUpdater/lang/fi.json
index 7d84b1554c..87b362e1e2 100644
--- a/plugins/CoreUpdater/lang/fi.json
+++ b/plugins/CoreUpdater/lang/fi.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Tarkista %1$s Piwikin FAQ:sta%2$s yleisimmät virheet. %3$s Kysy järjestelmän ylläpitäjältä - he voivat auttaa virheissä, jotka johtuvat luultavasti palvelimesta tai tietokannasta.",
"HelpMessageIntroductionWhenError": "Alla on ytimen virheviesti: Sen pitäisi auttaa virheen etsimisessä, mutta jos tarvitset lisää apua:",
"HelpMessageIntroductionWhenWarning": "Päivitys valmistui onnistuneesti, mutta prosessin aikana tapahtui virheitä. Ole hyvä ja lue alla olevat kuvaukset. Lisää apua:",
- "HighTrafficPiwikServerEnableMaintenance": "Jos Piwik-palvelimellasi on suuria määriä liikennettä, suosittelemme %spoistamaan käyttäjäseurannan hetkellisesti käytöstä ja laittamaan Piwikin käyttäjäliittymän huoltotilaan%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Jos Piwik-palvelimellasi on suuria määriä liikennettä, suosittelemme %1$spoistamaan käyttäjäseurannan hetkellisesti käytöstä ja laittamaan Piwikin käyttäjäliittymän huoltotilaan%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Huom. Osa lisäosista ei ole yhteensopivia Piwikin kanssa: %s. Nämä poistetaan käytöstä kun päivität:",
"InstallingTheLatestVersion": "Asennetaan uusinta versiota",
"MajorUpdateWarning1": "Tämä on iso päivitys! Päivityksessä kestää kauemmin kuin normaalisti.",
diff --git a/plugins/CoreUpdater/lang/fr.json b/plugins/CoreUpdater/lang/fr.json
index 4a4e84f983..51996305d8 100644
--- a/plugins/CoreUpdater/lang/fr.json
+++ b/plugins/CoreUpdater/lang/fr.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Allez voir la %1$s FAQ Piwik %2$s qui explique les erreurs courantes lors de la mise à jour. %3$s Demandez à votre administrateur système - il pourra être à même avec cette erreur qui est très probablement liée à la configuration de votre serveur MySQL.",
"HelpMessageIntroductionWhenError": "Ci-dessus est le message d'erreur du noyau. Cela devrait expliquer la cause, mais si vous nécessitez davantage d'aide merci de :",
"HelpMessageIntroductionWhenWarning": "La mise à jour a été complétée avec succès. Cependant, des problèmes sont survenus. Lisez la description ci-dessus pour plus de détails. Pour davantage d'aide :",
- "HighTrafficPiwikServerEnableMaintenance": "Si vous gérez un serveur Piwik à haut traffic, nous recommandons de %sdésactiver momentanément le suivi des visiteurs et de mettre l'interface utilisateur de Piwik en mode de maintenance%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Si vous gérez un serveur Piwik à haut traffic, nous recommandons de %1$sdésactiver momentanément le suivi des visiteurs et de mettre l'interface utilisateur de Piwik en mode de maintenance%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Note : certains plugins ne sont pas compatbles avec Piwik %s. Ils seront désactivés lorsque vous mettrez à jour :",
"InstallingTheLatestVersion": "Installation de la dernière version",
"LatestBetaRelease": "Dernière version beta",
diff --git a/plugins/CoreUpdater/lang/it.json b/plugins/CoreUpdater/lang/it.json
index 89e23f6e1e..0695373153 100644
--- a/plugins/CoreUpdater/lang/it.json
+++ b/plugins/CoreUpdater/lang/it.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Controlla le %1$sFAQ di Piwik %2$s, ti spiegheranno gli errori più comuni durante l'aggiornamento. %3$sChiedi all'amministratore di sistema circa gli errori che ti sembrano relativi alla configurazione di MySQL o al server, piuttosto che a Piwik.",
"HelpMessageIntroductionWhenError": "Il messaggio qui sopra ti spiega l'errore verificatosi durante l'aggiornamento. Ti spiega cosa l'ha causato, ma se vuoi ulteriore aiuto:",
"HelpMessageIntroductionWhenWarning": "L'aggiornamento è stato completato con successo, tuttavia si sono verificati dei piccoli problemi. Puoi leggerne qui sopra una breve descrizione. Per maggiori informazioni:",
- "HighTrafficPiwikServerEnableMaintenance": "Se gestisci un server di Piwik ad alto traffico, raccomandiamo di %sdisabilitare temporaneamente il Tracciamento dei visitatori e di mettere l'Interfaccia Utente di Piwik in modalità manutenzione%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Se gestisci un server di Piwik ad alto traffico, raccomandiamo di %1$sdisabilitare temporaneamente il Tracciamento dei visitatori e di mettere l'Interfaccia Utente di Piwik in modalità manutenzione%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Nota: alcuni plugins non sono compatibili con Piwik %s. Dopo l'aggiornamento verranno disabilitati.",
"InstallingTheLatestVersion": "Sto installando l'ultima versione",
"LatestBetaRelease": "Ultima release beta",
diff --git a/plugins/CoreUpdater/lang/ja.json b/plugins/CoreUpdater/lang/ja.json
index 25e1fb5caf..5b9e6c99f7 100644
--- a/plugins/CoreUpdater/lang/ja.json
+++ b/plugins/CoreUpdater/lang/ja.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "アップグレードの間、最も一般的なエラーを説明している %1$s Piwik FAQ %2$sをチェックしてください。%3$s システム管理者にお尋ねください - 彼らはたいていの場合、サーバや MySQL のセットアップに関係するエラーについて、あなたの手助けができるでしょう。",
"HelpMessageIntroductionWhenError": "上記はコアのエラーメッセージです。 原因の説明に役立つはずですが、さらなるヘルプが必要であればこちらをどうぞ:",
"HelpMessageIntroductionWhenWarning": "アップグレードは正常に完了しましたが、処理中に問題がありました。 詳細は上記の説明をお読みください。 さらなるヘルプ:",
- "HighTrafficPiwikServerEnableMaintenance": "高トラフィックの Piwik サーバーを管理する場合、 %smomentarily disable visitor Tracking and put the Piwik User Interface in maintenance mode%s をお勧めします。",
+ "HighTrafficPiwikServerEnableMaintenance": "高トラフィックの Piwik サーバーを管理する場合、 %1$smomentarily disable visitor Tracking and put the Piwik User Interface in maintenance mode%2$s をお勧めします。",
"IncompatbilePluginsWillBeDisabledInfo": "注 : 一部のプラグインは、Piwik %s に互換性がありません。アップグレード時に、これらのプラグインは無効になります。",
"InstallingTheLatestVersion": "最新バージョンをインストール中",
"LatestBetaRelease": "最新のベータ版 リリース",
diff --git a/plugins/CoreUpdater/lang/lt.json b/plugins/CoreUpdater/lang/lt.json
index 21eb9b5eff..fea60afcad 100644
--- a/plugins/CoreUpdater/lang/lt.json
+++ b/plugins/CoreUpdater/lang/lt.json
@@ -3,6 +3,7 @@
"ClickHereToViewSqlQueries": "Spauskite čia SQL užklausų, kurias reikia įvykdyti, sąrašui gauti.",
"CriticalErrorDuringTheUpgradeProcess": "Kritinė klaida atnaujinimo metu:",
"DatabaseUpgradeRequired": "Reikalingas duombazės atnaujinimas",
+ "DisablingIncompatiblePlugins": "Išjungiami nesuderinami papildiniai: %s",
"DownloadingUpdateFromX": "Atsisiunčiamas atnaujinimas iš %s",
"DownloadX": "Atsisiųsti %s",
"EmptyDatabaseError": "Duombazė %s yra tuščia. Privalote paredaguoti arba pašalinti savo Piwik konfigūracijos failą.",
@@ -20,9 +21,13 @@
"HelpMessageContent": "Peržiūrėkite %1$s Piwik DUK, %2$s kur paaiškinamos dažniausiai pasitaikančios naujinimo problemos. %3$s Jūsų sistemos administratorius gali padėti išspręsti daugumą jų, kadangi jos dažniausiai susijusios su serverio arba MySQL nustatymais.",
"HelpMessageIntroductionWhenError": "Aukščiau nurodytas klaidos aprašymas. Jei reikia daugiau pagalbos:",
"HelpMessageIntroductionWhenWarning": "Piwik atnaujinta, tačiau su išlygomis. Prašome perskaityti aukščiau pateikiamą aprašymą. Jei reikia daugiau pagalbos:",
+ "IncompatbilePluginsWillBeDisabledInfo": "Pastaba: kai kurie papildiniai yra nesuderinami su Piwik %s. Kai atsinaujinsite, jie bus išjungti:",
"InstallingTheLatestVersion": "Įdiegiama naujausia versija",
+ "MajorUpdateWarning1": "Tai yra didesnis atnaujinimas! Jis užtruks ilgiau nei įprasta.",
"NoteForLargePiwikInstances": "Svarbi pastaba apie didelius Piwik diegimus",
"NoteItIsExpectedThatQueriesFail": "Pastaba: jei rankiniu būdu įvykdysite šias užklausas, gali būti, jog kai kurios iš jų praneš apie klaidas ir nebus įvykdytos. Paprasčiausias ignoruokite klaidas ir vykdykite sekančias užklausas esančias sąraše.",
+ "NotificationClickToUpdatePlugins": "Spustelėkite čia, kad atnaujintumėte savo papildinius dabar:",
+ "NotificationSubjectAvailablePluginUpdate": "Jūsų Piwik papildiniams yra atnaujinimų",
"PiwikHasBeenSuccessfullyUpgraded": "Piwik sėkmingai atnaujinta!",
"PiwikUpdatedSuccessfully": "Piwik sėkmingai atnaujinta!",
"PiwikWillBeUpgradedFromVersionXToVersionY": "Piwik duombazė bus atnaujinta iš %1$s į %2$s versiją.",
@@ -36,6 +41,7 @@
"UpdateHasBeenCancelledExplanation": "Piwik automatinis atnaujinimas atšauktas. Jei negalite ištaisyti nurodytos klaidos, rekomenduojame atnaujinti Piwik rankiniu būdu. %1$s Peržiūrėkite %2$sNaujinimo dokumentaciją%3$s prieš pradedant!",
"UpdateTitle": "Naujinimas",
"UpdateSuccessTitle": "Piwik sėkmingai atnaujinta!",
+ "UpdateErrorTitle": "Atnaujinimo klaida",
"UpgradeComplete": "Naujinimas baigtas!",
"UpgradePiwik": "Naujinti Piwik",
"VerifyingUnpackedFiles": "Tikrinami išskleisti failai",
diff --git a/plugins/CoreUpdater/lang/nb.json b/plugins/CoreUpdater/lang/nb.json
index 7a65b4e3d5..e47c271de6 100644
--- a/plugins/CoreUpdater/lang/nb.json
+++ b/plugins/CoreUpdater/lang/nb.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Sjekk %1$s Piwik FAQ-en %2$s som prøver å forklare de mest vanlige feilene under oppdatering. %3$s Spør din systemadministrator – vedkommende kan kanskje hjelpe deg med feilen som antakelig har sammenheng med din tjener eller MySQL-installasjon.",
"HelpMessageIntroductionWhenError": "Over vises feilmeldingen. Den bør hjelpe deg med å forklare årsaken, men hvis du trenger mer hjelp, vennligst:",
"HelpMessageIntroductionWhenWarning": "Oppdateringen er fullført, men det var noen småproblemer under prossessen. Les beskrivelsene over for mer informasjon. For videre hjelp:",
- "HighTrafficPiwikServerEnableMaintenance": "Hvis du administrerer en Piwik-tjener for et nettsted med høy trafikk, anbefaler vi at du %smidlertidig slår av sporing av besøkende og setter Piwik-brukergrensesnittet i vedlikeholdsmodus%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Hvis du administrerer en Piwik-tjener for et nettsted med høy trafikk, anbefaler vi at du %1$smidlertidig slår av sporing av besøkende og setter Piwik-brukergrensesnittet i vedlikeholdsmodus%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Merk: Noen tillegg er ikke kompatible med Piwik %s. De blir deaktivert når du oppgraderer:",
"InstallingTheLatestVersion": "Installerer siste versjon.",
"LatestBetaRelease": "Siste beta-versjon",
diff --git a/plugins/CoreUpdater/lang/nl.json b/plugins/CoreUpdater/lang/nl.json
index b6dd947769..0113f6ff60 100644
--- a/plugins/CoreUpdater/lang/nl.json
+++ b/plugins/CoreUpdater/lang/nl.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Controleer de %1$s Piwik FAQ %2$s waarin de meest voorkomende upgrade foutmeldingen worden uitgelegd. %3$s Vraag uw systeem beheerder - deze kan u wellicht helpen met deze fout die waarschijnlijk gerelateerd is aan de configuratie van uw webserver of MySQL-database.",
"HelpMessageIntroductionWhenError": "Hierboven staat de foutmelding. Hierin zou de oorzaak naar voren moeten komen, mocht u desondanks nog vragen hebben:",
"HelpMessageIntroductionWhenWarning": "De upgrade is voltooid, maar met fouten tijdens het proces. Lees de omschrijvingen hierboven voor meer informatie. Voor verdere hulp:",
- "HighTrafficPiwikServerEnableMaintenance": "Als je een Piwik server met veel verkeer beheert, raden we je aan om %smetingen tijdelijk uit te schakelen en de Piwik omgeving in onderhouds modus te zetten%s",
+ "HighTrafficPiwikServerEnableMaintenance": "Als je een Piwik server met veel verkeer beheert, raden we je aan om %1$smetingen tijdelijk uit te schakelen en de Piwik omgeving in onderhouds modus te zetten%2$s",
"IncompatbilePluginsWillBeDisabledInfo": "Let op: sommige plugins zijn niet compitable met Piwik %s. Deze worden uitgeschakeld bij een upgrade.",
"InstallingTheLatestVersion": "Bezig om de laatste versie te installeren",
"MajorUpdateWarning1": "Dit is een ingrijpende update! Het zal langer dan normaal duren.",
diff --git a/plugins/CoreUpdater/lang/pl.json b/plugins/CoreUpdater/lang/pl.json
index dad0d3a8db..27de847fe6 100644
--- a/plugins/CoreUpdater/lang/pl.json
+++ b/plugins/CoreUpdater/lang/pl.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Sprawdź w %1$s Piwik FAQ %2$s, które wyjaśni najczęściej spotykane błędy występujące w trakcie aktualizacji. %3$s Poproś o pomoc, lub ewentualnie zadaj pytanie skierowane do helpdesku serwera - tam specjaliści mogą na prawdę pomóc w pokonywaniu błędów najczęściej spotykanych na serwerze lub przy konfiguracji MySQL.",
"HelpMessageIntroductionWhenError": "Powyżej znajduje się główny komunikat o błędzie. To powinno pomóc ustalić przyczynę problemu, ale jeżeli problem wymaga dodatkowej pomocy:",
"HelpMessageIntroductionWhenWarning": "Aktualizacja zakończona sukcesem, jednakże nie obyło się bez problemów podczas tego procesu. Proszę zaposnać się z powyższym opisem by poznać szczegóły. Więcej pomocy możesz uzyskać:",
- "HighTrafficPiwikServerEnableMaintenance": "Jeśli zarządzasz serwerem Piwik o dużym ruchu, zalecamy %stymczasowo wyłączyć śledzenie odwiedzających i przełączyć Interfejs Użytkownika Piwik w tryb konserwacji%s",
+ "HighTrafficPiwikServerEnableMaintenance": "Jeśli zarządzasz serwerem Piwik o dużym ruchu, zalecamy %1$stymczasowo wyłączyć śledzenie odwiedzających i przełączyć Interfejs Użytkownika Piwik w tryb konserwacji%2$s",
"IncompatbilePluginsWillBeDisabledInfo": "Uwaga: niektóre wtyczki nie są zgodne z Piwik %s. Będą wyłączone podczas aktualizacji:",
"InstallingTheLatestVersion": "Instalowanie najnowszej wersji",
"MajorUpdateWarning1": "To jest znacząca aktualizacja i potrwa dłużej niż zwykle.",
diff --git a/plugins/CoreUpdater/lang/pt-br.json b/plugins/CoreUpdater/lang/pt-br.json
index c8152439f1..80ba61911f 100644
--- a/plugins/CoreUpdater/lang/pt-br.json
+++ b/plugins/CoreUpdater/lang/pt-br.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Verifique o %1$s Piwik FAQ %2$s que explica os erros mais comuns durante a atualização. %3$s Pergunte ao seu administrador do sistema - Ele pode ser capaz de lhe ajudar com o erro que muito provavelmente é relacionado com o seu servidor ou o setup do MySQL.",
"HelpMessageIntroductionWhenError": "Acima está a mensagem de erro principal. Ela deve ajudar a explicar a causa, mas se você precisar de mais ajuda por favor:",
"HelpMessageIntroductionWhenWarning": "A atualização se completou com sucesso, contudo houve alguns problemas durante o processo. Por favor leia a descrição acima para os detalhes. Para mais ajuda:",
- "HighTrafficPiwikServerEnableMaintenance": "Se você gerencia um servidor Piwik com alto tráfego, recomendamos %sdesativar momentaneamente o Rastreamento de visitantes e colocar a interface de usuário do servidor Piwik no modo de manutenção%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Se você gerencia um servidor Piwik com alto tráfego, recomendamos %1$sdesativar momentaneamente o Rastreamento de visitantes e colocar a interface de usuário do servidor Piwik no modo de manutenção%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Nota: alguns plugins não são compatíveis com Piwik %s. Eles serão desativados quando você atualizar:",
"InstallingTheLatestVersion": "Instalando a versão mais recente",
"LatestBetaRelease": "Último lançamento beta",
diff --git a/plugins/CoreUpdater/lang/ro.json b/plugins/CoreUpdater/lang/ro.json
index 2827e2c504..06297f05b4 100644
--- a/plugins/CoreUpdater/lang/ro.json
+++ b/plugins/CoreUpdater/lang/ro.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Verifică %1$s Piwik FAQ %2$s ce explică cele mai comune errori privind actualizarea. %3$s Intreabă administratorul de sistem - dacă te poate ajuta să rezolvi erorile ce ţin de server sau de setările MySQL.",
"HelpMessageIntroductionWhenError": "Eroare de core . Consulta documentatia de ajutor:",
"HelpMessageIntroductionWhenWarning": "Actualizarea s-a efectuat cu succes, oricum mai sunt cateva lucruri ce sunt necesare pentru a finaliza procesul . Citeste descrierea pentru detalii. Pentru ajutor:",
- "HighTrafficPiwikServerEnableMaintenance": "Daca administrezi un server Piwik cu trafic mare, noi recomandam ca %spentru moment sa dezactivezi Contorizarea vizitatorilor si sa pui Interfata de Utilizare Piwik in modul de mentenanta%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Daca administrezi un server Piwik cu trafic mare, noi recomandam ca %1$spentru moment sa dezactivezi Contorizarea vizitatorilor si sa pui Interfata de Utilizare Piwik in modul de mentenanta%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Observatie: anumite pluginuri nu sunt compatibile cu Piwik %s. Acestea vor fi deactivate cand veti face upgrade:",
"InstallingTheLatestVersion": "Se instalează ultima versiune",
"MajorUpdateWarning1": "Este o actualizare majoră! Va dura mai mult decât de obicei.",
diff --git a/plugins/CoreUpdater/lang/sk.json b/plugins/CoreUpdater/lang/sk.json
index dca0ba5e74..92cd5fc608 100644
--- a/plugins/CoreUpdater/lang/sk.json
+++ b/plugins/CoreUpdater/lang/sk.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Pozrite si %1$s Piwik FAQ %2$s, kde sú vysvetlené najčastejšie problémy počas aktualizácie. %3$s Požiadajte svojho systémového administrátora - mal by Vám vedieť pomôcť s chybami, ktoré sa s najväčšou pravdepodobnosťou týkajú Vášho servera alebo nastavenia MySQL.",
"HelpMessageIntroductionWhenError": "Vyššie je uvedená hlavná chybová správa, ktorá by mala vysvetliť problém. Ak potrebujete ďalšiu pomoc, tak prosím:",
"HelpMessageIntroductionWhenWarning": "Aktualizácia je úspešne ukončená, vyskytli sa však problémy. Prečítajte si nasledovné detaily. Ďalšiu pomoc nájdete na:",
- "HighTrafficPiwikServerEnableMaintenance": "Ak natrafíte na zahltený Piwik server, odporúčame %s dočasne vypnúť sledovanie návštevníkov a prepnúť Piwik-užívateľské rozhranie do módu údržby %s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Ak natrafíte na zahltený Piwik server, odporúčame %1$s dočasne vypnúť sledovanie návštevníkov a prepnúť Piwik-užívateľské rozhranie do módu údržby %2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Pozn.: niektoré pluginy nie sú kompatibilné s Piwik %s. Budú vypnuté ak aktualizujete:",
"InstallingTheLatestVersion": "Inštalácia poslednej verzie",
"MajorUpdateWarning1": "Toto je veľká aktualizácia! Bude to trvať dlhšie ako zvyčajne.",
diff --git a/plugins/CoreUpdater/lang/sr.json b/plugins/CoreUpdater/lang/sr.json
index e11d89d214..5f18c9813a 100644
--- a/plugins/CoreUpdater/lang/sr.json
+++ b/plugins/CoreUpdater/lang/sr.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "Pogledajte %1$s Piwik pitanja i odgovore %2$s koja objašnjavaju najčešće greške prilikom nadogradnje. %3$s Kontaktirajte vašeg sistemskog administratora - možda je u mogućnosti da vam pomogne oko grešaka koje su najverovatnije u domenu podešavanja servera ili MySQL-a.",
"HelpMessageIntroductionWhenError": "Ovo gore je sama srž poruke o grešci. Ona bi trebalo da objasni uzrok a u slučaju da vam je potrebna dalja pomoć:",
"HelpMessageIntroductionWhenWarning": "Proces nadogradnje je uspešno okončan, međutim, imamo i spornih momenata nastalih tokom procesa. Molimo vas da pročitate njihove opise zarad detalja. U slučaju da vam je potrebna dalja pomoć:",
- "HighTrafficPiwikServerEnableMaintenance": "Ukoliko koristite Piwik na serveru sa velikim saobraćajem, preporučujemo da %sodmah isključite praćenje posetilaca i prebacite Piwik interfejs u mod održavanja%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Ukoliko koristite Piwik na serveru sa velikim saobraćajem, preporučujemo da %1$sodmah isključite praćenje posetilaca i prebacite Piwik interfejs u mod održavanja%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Neko dodaci nisu kompatibilni sa Piwik %s. Oni će biti deaktivirani nakon nadogradnje:",
"InstallingTheLatestVersion": "Instaliranje poslednje verzije",
"MajorUpdateWarning1": "Ovo je bitna nadogradnja! Trajaće duže nego inače.",
diff --git a/plugins/CoreUpdater/lang/sv.json b/plugins/CoreUpdater/lang/sv.json
index 67af94bc93..466ff0182b 100644
--- a/plugins/CoreUpdater/lang/sv.json
+++ b/plugins/CoreUpdater/lang/sv.json
@@ -22,9 +22,14 @@
"HelpMessageContent": "Kolla i %1$s Piwik FAQ %2$s vilken förklarar de vanligaste fel vid uppdateringar. %3$s Fråga din systemadministratör - de kanske kan hjälpa dig med det fel som är mest sannolikt relaterat till din server eller MySQL installation.",
"HelpMessageIntroductionWhenError": "Ovanstående är huvudsakliga felmeddelandet. Det bör bidra till att förklara orsaken, men om du behöver mer hjälp vänligen:",
"HelpMessageIntroductionWhenWarning": "Uppdateringen slutfördes framgångsrikt, men det fanns dock problem under processen. Vänligen läs ovanstående beskrivningar för detaljer. För ytterligare hjälp:",
- "HighTrafficPiwikServerEnableMaintenance": "Om du hanterar en Piwik server med mycket trafik rekommenderar vi att du tillfälligt %sinaktiverar spårning av besökare och sätter Piwik's användargränssnitt i underhållsläge%s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Om du hanterar en Piwik server med mycket trafik rekommenderar vi att du tillfälligt %1$sinaktiverar spårning av besökare och sätter Piwik's användargränssnitt i underhållsläge%2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Obs: vissa tillägg är inte kompatibla med Piwik %s. De kommer att inaktiveras när du uppgraderar:",
"InstallingTheLatestVersion": "Installerar den senaste versionen",
+ "LatestBetaRelease": "Senaste betaversion",
+ "LatestStableRelease": "Senaste stabila versionen",
+ "Latest2XStableRelease": "Senaste stabila 2.X",
+ "Latest2XBetaRelease": "Senaste beta 2.X",
+ "LtsSupportVersion": "Version med långtidsstöd",
"MajorUpdateWarning1": "Det här är en stor uppdatering! Den kommer att ta längre tid än vanligt.",
"MajorUpdateWarning2": "Följande råd är extra viktiga för stora installationer.",
"NoteForLargePiwikInstances": "Viktig notering för stora Piwik-installationer",
@@ -55,6 +60,8 @@
"CloudHosting": "Molntjänst",
"Updating": "Uppdateringar",
"UpdateUsingHttpsFailed": "Nedladdning ac den senaste versionen av Piwik över HTTPS fungerade inte på grund av följande fel:",
+ "UsingHttps": "använd den säkra HTTPS-anslutningen (rekommenderas)",
+ "UsingHttp": "använd den osäkra HTTP-anslutningen",
"UpgradeComplete": "Uppgradering färdig!",
"UpgradePiwik": "Uppgradera Piwik",
"VerifyingUnpackedFiles": "Kontrollerar uppackage filer",
diff --git a/plugins/CoreUpdater/lang/tl.json b/plugins/CoreUpdater/lang/tl.json
index 17e7ae9e36..3ce76138d7 100644
--- a/plugins/CoreUpdater/lang/tl.json
+++ b/plugins/CoreUpdater/lang/tl.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "e-check ang %1$s Piwik FAQ %2$s na nagpapaliwanag ng mga pinakapangkaraniwang error habang nag-uupdate. %3$s Magtanong sa inyong system administrator - maaari ka nilang tulungan sa mga error kung saan ito ay may ugnay sa iyong server O MySQL setup.",
"HelpMessageIntroductionWhenError": "Sa itaas ay ang core error message. Ito ay tumutulong upang ipaliwanag ang mga dahilan ng error ngunit kung kailangan mo ng karagdagang tulong mangyaring:",
"HelpMessageIntroductionWhenWarning": "Kumplete na ang pag-uupdate gayunpaman meron mga issues habang ito ay sinasagawa. Mangyaring basahin ang mga nasataas para sa mga detalye. Para sa mga karagdatang tulong:",
- "HighTrafficPiwikServerEnableMaintenance": "Kung ikaw ay may pinamamahalaang Piwik server na may mataas na traffic aming nirerekomenda na %s panandaliang alisin ang visitor Tracking at ilagay ang Piwik User Interface sa maintenance mode %s.",
+ "HighTrafficPiwikServerEnableMaintenance": "Kung ikaw ay may pinamamahalaang Piwik server na may mataas na traffic aming nirerekomenda na %1$s panandaliang alisin ang visitor Tracking at ilagay ang Piwik User Interface sa maintenance mode %2$s.",
"IncompatbilePluginsWillBeDisabledInfo": "Tandaan: ang ilang mga plugin ay hindi tugma sa Piwik %s. Ang mga ito ay hindi pinagana kapag nag-upgrade ka:",
"InstallingTheLatestVersion": "Ini-install ang pinakabagong bersyon",
"MajorUpdateWarning1": "Ito ay isang mahalagang update! Ito ay mas matagal kaysa sa karaniwan.",
diff --git a/plugins/CoreUpdater/lang/zh-tw.json b/plugins/CoreUpdater/lang/zh-tw.json
index 531d9a0c4c..82de574c81 100644
--- a/plugins/CoreUpdater/lang/zh-tw.json
+++ b/plugins/CoreUpdater/lang/zh-tw.json
@@ -22,7 +22,7 @@
"HelpMessageContent": "請檢查 %1$s Piwik FAQ %2$s,其中已有更新過程中所發生的常見錯誤之解決辦法。%3$s 詢問你的系統管理員 - 他們應該可以協助你解決大部分關於伺服器或 MySQL 設定的問題。",
"HelpMessageIntroductionWhenError": "以上是核心錯誤訊息。它應該有助於解釋原因,但如果你需要進一步的說明請至:",
"HelpMessageIntroductionWhenWarning": "此次更新成功完成,但在過程中有發生一些問題。請閱讀以上說明的詳細內容。如需更進一步的說明:",
- "HighTrafficPiwikServerEnableMaintenance": "如果你管理一個高流量的Piwik伺服器,我們建議%s暫時禁用訪客追踪功能,並把Piwik用戶界面設定為維運模式%s。",
+ "HighTrafficPiwikServerEnableMaintenance": "如果你管理一個高流量的Piwik伺服器,我們建議%1$s暫時禁用訪客追踪功能,並把Piwik用戶界面設定為維運模式%2$s。",
"IncompatbilePluginsWillBeDisabledInfo": "注意:有些插件並不兼容在Piwik %s,它們將會當你升級後被禁用。",
"InstallingTheLatestVersion": "正在安裝最新版本中",
"MajorUpdateWarning1": "這是一個重大更新!這將需要比平常更長的時間。",
diff --git a/plugins/CoreVisualizations/Visualizations/Cloud.php b/plugins/CoreVisualizations/Visualizations/Cloud.php
index d5a317da25..502411e74c 100644
--- a/plugins/CoreVisualizations/Visualizations/Cloud.php
+++ b/plugins/CoreVisualizations/Visualizations/Cloud.php
@@ -174,6 +174,8 @@ class Cloud extends Visualization
*/
private function truncateWordIfNeeded($word)
{
+ $word = Common::unsanitizeInputValue($word);
+
if (Common::mb_strlen($word) > $this->truncatingLimit) {
return Common::mb_substr($word, 0, $this->truncatingLimit - 3) . '...';
}
diff --git a/plugins/CoreVisualizations/templates/_dataTableViz_tagCloud.twig b/plugins/CoreVisualizations/templates/_dataTableViz_tagCloud.twig
index d7f328b923..d1085287f4 100644
--- a/plugins/CoreVisualizations/templates/_dataTableViz_tagCloud.twig
+++ b/plugins/CoreVisualizations/templates/_dataTableViz_tagCloud.twig
@@ -1,7 +1,7 @@
{% set cloudColumn = properties.columns_to_display[1] %}
<div class="tagCloud">
{% for word,value in cloudValues %}
- <span title="{{ value.word }} ({{ value.value }} {{ properties.translations[cloudColumn]|default(cloudColumn) }})" class="word size{{ value.size }}
+ <span title="{{ value.word|rawSafeDecoded }} ({{ value.value }} {{ properties.translations[cloudColumn]|default(cloudColumn) }})" class="word size{{ value.size }}
{# we strike tags with 0 hits #}
{% if value.value == 0 %}valueIsZero{% endif %}">
{% if labelMetadata[value.word].url is not sameas(false) %}
@@ -10,7 +10,7 @@
{% if labelMetadata[value.word].logo is not sameas(false) %}
<img src="{{ labelMetadata[value.word].logo }}" width="{{ value.logoWidth }}" />
{% else %}
- {{ value.wordTruncated }}
+ {{ value.wordTruncated|rawSafeDecoded }}
{% endif %}
{% if labelMetadata[value.word].url is not sameas(false) %}</a>{% endif %}
</span>
diff --git a/plugins/CustomAlerts b/plugins/CustomAlerts
-Subproject 1262e24e29fc2e725d064c77af2592c3e5216a5
+Subproject 3f71ea0d6880f4a1cbdc531342760f72136e26d
diff --git a/plugins/CustomDimensions b/plugins/CustomDimensions
-Subproject 4d35b0241557f7bb76c47e0f4c425aae17a5e34
+Subproject a9c2872b3e268ab3cbd4f6af0ae4547e466bafe
diff --git a/plugins/CustomVariables/Archiver.php b/plugins/CustomVariables/Archiver.php
index 39aa9e6bb7..5c5fcdf8b6 100644
--- a/plugins/CustomVariables/Archiver.php
+++ b/plugins/CustomVariables/Archiver.php
@@ -245,6 +245,19 @@ class Archiver extends \Piwik\Plugin\Archiver
}
}
+ /**
+ * Delete Visit, Unique Visitor and Users metric from 'page' scope custom variables.
+ *
+ * - Custom variables of 'visit' scope: it is expected that these ones have the "visit" column set.
+ * - Custom variables of 'page' scope: we cannot process "Visits" count for these.
+ * Why?
+ * "Actions" column is processed with a SELECT count(*).
+ * A same visit can set the same custom variable of 'page' scope multiple times.
+ * We cannot sum the values of count(*) as it would be incorrect.
+ * The way we could process "Visits" Metric for 'page' scope variable is to issue a count(Distinct *) or so,
+ * but it is no implemented yet (this would likely be very slow for high traffic sites).
+ *
+ */
protected function removeVisitsMetricsFromActionsAggregate()
{
$dataArray = & $this->dataArray->getDataArray();
diff --git a/plugins/CustomVariables/Commands/SetNumberOfCustomVariables.php b/plugins/CustomVariables/Commands/SetNumberOfCustomVariables.php
index 7ff8889d65..2f2fd7e396 100644
--- a/plugins/CustomVariables/Commands/SetNumberOfCustomVariables.php
+++ b/plugins/CustomVariables/Commands/SetNumberOfCustomVariables.php
@@ -55,7 +55,7 @@ class SetNumberOfCustomVariables extends ConsoleCommand
$this->printChanges($scope, $numVarsToSet, $output);
}
- if (!$this->confirmChange($output)) {
+ if ($input->isInteractive() && !$this->confirmChange($output)) {
return;
}
diff --git a/plugins/CustomVariables/Reports/GetCustomVariables.php b/plugins/CustomVariables/Reports/GetCustomVariables.php
index c6b28b6562..b460c8b836 100644
--- a/plugins/CustomVariables/Reports/GetCustomVariables.php
+++ b/plugins/CustomVariables/Reports/GetCustomVariables.php
@@ -8,6 +8,7 @@
*/
namespace Piwik\Plugins\CustomVariables\Reports;
+use Piwik\DataTable;
use Piwik\Piwik;
use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\CustomVariables\Columns\CustomVariableName;
@@ -34,5 +35,41 @@ class GetCustomVariables extends Base
$view->config->addTranslation('label', Piwik::translate('CustomVariables_ColumnCustomVariableName'));
$view->requestConfig->filter_sort_column = 'nb_actions';
$view->requestConfig->filter_sort_order = 'desc';
+
+ $that = $this;
+ $view->config->filters[] = function (DataTable $table) use ($view, $that) {
+ if($that->isReportContainsUnsetVisitsColumns($table)) {
+ $message = $that->getFooterMessageExplanationMissingMetrics();
+ $view->config->show_footer_message = $message;
+ }
+ };
+ }
+
+ /**
+ * @return array
+ */
+ public function getFooterMessageExplanationMissingMetrics()
+ {
+ $metrics = sprintf("'%s', '%s' %s '%s'",
+ Piwik::translate('General_ColumnNbVisits'),
+ Piwik::translate('General_ColumnNbUniqVisitors'),
+ Piwik::translate('General_And'),
+ Piwik::translate('General_ColumnNbUsers')
+ );
+ $messageStart = Piwik::translate('CustomVariables_MetricsAreOnlyAvailableForVisitScope', array($metrics, "'visit'"));
+
+ $messageEnd = Piwik::translate('CustomVariables_MetricsNotAvailableForPageScope', array("'page'", '\'-\''));
+
+ return $messageStart . ' ' . $messageEnd;
+ }
+
+ /**
+ * @return bool
+ */
+ public function isReportContainsUnsetVisitsColumns(DataTable $report)
+ {
+ $visits = $report->getColumn('nb_visits');
+ $isVisitsMetricsSometimesUnset = in_array(false, $visits);
+ return $isVisitsMetricsSometimesUnset;
}
}
diff --git a/plugins/CustomVariables/lang/be.json b/plugins/CustomVariables/lang/be.json
index d2d4b2eab4..3f0b23b437 100644
--- a/plugins/CustomVariables/lang/be.json
+++ b/plugins/CustomVariables/lang/be.json
@@ -3,6 +3,6 @@
"ColumnCustomVariableName": "Назва карыстацкай зменнай",
"ColumnCustomVariableValue": "Значэнне карыстацкай зменнай",
"CustomVariables": "Карыстацкія зменныя",
- "CustomVariablesReportDocumentation": "Справаздача змяшчае інфармацыю аб вашых Карыстацкіх зменных. Націсніце на імя зменнай, каб убачыць размеркаванне каштоўнасцяў. %s Дадатковыя звесткі аб карыстацкіх зменных чытайце ў %sДакументацыя аб карыстацкіх зменных на piwik.org%s."
+ "CustomVariablesReportDocumentation": "Справаздача змяшчае інфармацыю аб вашых Карыстацкіх зменных. Націсніце на імя зменнай, каб убачыць размеркаванне каштоўнасцяў. %1$s Дадатковыя звесткі аб карыстацкіх зменных чытайце ў %2$sДакументацыя аб карыстацкіх зменных на piwik.org%3$s."
}
} \ No newline at end of file
diff --git a/plugins/CustomVariables/lang/bg.json b/plugins/CustomVariables/lang/bg.json
index 8444ff47e0..936cfc3fce 100644
--- a/plugins/CustomVariables/lang/bg.json
+++ b/plugins/CustomVariables/lang/bg.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Име на променлива",
"ColumnCustomVariableValue": "Съдържание на променлива",
"CustomVariables": "Променливи",
- "CustomVariablesReportDocumentation": "Този отчет съдържа информация за вашите Персонални променливи. Кликнете върху името на променлива, за да видите разпределението на стойностите. %s За повече информация отностно Персоналните Променливи в общ план, прочетете Документацията за %sПерсонални промеливи на Piwik.org%s",
+ "CustomVariablesReportDocumentation": "Този отчет съдържа информация за вашите Персонални променливи. Кликнете върху името на променлива, за да видите разпределението на стойностите. %1$s За повече информация отностно Персоналните Променливи в общ план, прочетете Документацията за %2$sПерсонални промеливи на Piwik.org%3$s",
"ScopePage": "Разгледай страница",
"ScopeVisit": "Разгледай посещение"
}
diff --git a/plugins/CustomVariables/lang/ca.json b/plugins/CustomVariables/lang/ca.json
index 5578794062..afd7aeb20e 100644
--- a/plugins/CustomVariables/lang/ca.json
+++ b/plugins/CustomVariables/lang/ca.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Nom de la variable personalitzada",
"ColumnCustomVariableValue": "Valor de la variable personalitzada",
"CustomVariables": "Variables personalitzades",
- "CustomVariablesReportDocumentation": "Aquest informe conté informació sobre les variables personaltizades. Feu click al nom d'una variable per veure la distribució dels valors. %s Per més informació sobre les variables personalitzades, podeu llegir la %sdocumentació sobre variables peronalitzades a piwik.org%s",
+ "CustomVariablesReportDocumentation": "Aquest informe conté informació sobre les variables personaltizades. Feu click al nom d'una variable per veure la distribució dels valors. %1$s Per més informació sobre les variables personalitzades, podeu llegir la %2$sdocumentació sobre variables peronalitzades a piwik.org%3$s",
"ScopePage": "àmbit de la pàgina",
"ScopeVisit": "àmbit de la visita"
}
diff --git a/plugins/CustomVariables/lang/cs.json b/plugins/CustomVariables/lang/cs.json
index 98a5db6ea6..db4ead7de2 100644
--- a/plugins/CustomVariables/lang/cs.json
+++ b/plugins/CustomVariables/lang/cs.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Název vlastní proměnné",
"ColumnCustomVariableValue": "Hodnota vlastní proměnné",
"CustomVariables": "Vlastní proměnné",
- "CustomVariablesReportDocumentation": "Toto hlášení obsahuje informace o vašich vlastních proměnných. Klikněte na proměnnou pro zobrazení distribuce hodnot. %s Pro více informací si přečtěte %sdokumentaci o vlastních proměnných na piwik.org%s",
+ "CustomVariablesReportDocumentation": "Toto hlášení obsahuje informace o vašich vlastních proměnných. Klikněte na proměnnou pro zobrazení distribuce hodnot. %1$s Pro více informací si přečtěte %2$sdokumentaci o vlastních proměnných na piwik.org%3$s",
"PluginDescription": "Vlastní proměnné jsou páry (jméno, hodnota), které můžete nastavit návštěvníkovi, nebo libovolné akci, pomocí javascriptového API. Piwik potom ohlásí, kolik návštěv, stránek, konverzí bylo pro každé z těchto jmen a hodnot. Prohlédněte si detailně tyto proměnné pro každého uživatele a akci v záznamu návštěvníků.<br \/>Vyžadováno, pokud chcete použít <a href=\"http:\/\/piwik.org\/docs\/ecommerce-analytics\/\">analýzu E-obchodu<\/a>!",
"ScopePage": "rozsah stránky",
"ScopeVisit": "rozsah návštěvy",
@@ -13,10 +13,12 @@
"Usages": "Využití",
"Unused": "Nevyužito",
"CreateNewSlot": "Navýšit počet dostupných slotů vlastních proměnných",
- "UsageDetails": "%s návštěv a %s akcí od vytvoření této webové stránky.",
+ "UsageDetails": "%1$s návštěv a %2$s akcí od založení tohoto webu.",
"CreatingCustomVariableTakesTime": "Vytvoření nové vlastní proměnné hodnoty může trvat déle v závislosti na velikosti vaší databáze. Proto je toto možné provést pouze pomocí příkazu spuštěnému v příkazové řádce.",
"CurrentAvailableCustomVariables": "Aktuálně můžete použít až %s vlastních proměnných na stránku.",
"ToCreateCustomVarExecute": "Pro vytvoření nového slotu pro vlastní proměnnou spusťte následující příkaz ve své instalaci Piwik:",
- "SlotsReportIsGeneratedOverTime": "Data pro tento report budou dostupná později. Než budou data vidět, může to den nebo dva trvat a poté několik týdnů než bude report vypovídající."
+ "SlotsReportIsGeneratedOverTime": "Data pro toto hlášení budou dostupná později. Než budou data vidět, může to den nebo dva trvat a poté několik týdnů než bude hlášení plně vypovídající.",
+ "MetricsAreOnlyAvailableForVisitScope": "Poznámka: Metriky %1$s jsou k dispozici pro vlastní proměnné pouze v rozsahu %2$s.",
+ "MetricsNotAvailableForPageScope": "Pro vlastní proměnné v rozsahu %1$s je hodnota sloupce s těmito metrikami %2$s"
}
} \ No newline at end of file
diff --git a/plugins/CustomVariables/lang/da.json b/plugins/CustomVariables/lang/da.json
index 1766c95117..cf635d0330 100644
--- a/plugins/CustomVariables/lang/da.json
+++ b/plugins/CustomVariables/lang/da.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Brugerdefineret variabelnavn",
"ColumnCustomVariableValue": "Brugerdefineret variabelværdi",
"CustomVariables": "Brugerdefinerede variabler",
- "CustomVariablesReportDocumentation": "Rapporten indeholder oplysninger om brugerdefinerede variabler. Klik på et variabelnavn se fordeling af værdier. %s Yderligere oplysninger om brugerdefinerede variabler generelt, læs %sBrugerdefinerede variabel dokumentation på piwik.org%s",
+ "CustomVariablesReportDocumentation": "Rapporten indeholder oplysninger om brugerdefinerede variabler. Klik på et variabelnavn se fordeling af værdier. %1$s Yderligere oplysninger om brugerdefinerede variabler generelt, læs %2$sBrugerdefinerede variabel dokumentation på piwik.org%3$s",
"ScopePage": "virkefelt side",
"ScopeVisit": "virkefelt besøg"
}
diff --git a/plugins/CustomVariables/lang/de.json b/plugins/CustomVariables/lang/de.json
index c60483ec21..98f2bef3af 100644
--- a/plugins/CustomVariables/lang/de.json
+++ b/plugins/CustomVariables/lang/de.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Name der benutzerdefinierten Variable",
"ColumnCustomVariableValue": "Wert der benutzerdefinierten Variable",
"CustomVariables": "Benutzerdefinierte Variablen",
- "CustomVariablesReportDocumentation": "Dieser Bericht enthält Informationen über Ihre benutzerdefinierten Variablen. Klicken Sie auf einen Variablennamen, um die Verteilung der Werte zu sehen. %s Für mehr Informationen über benutzerdefinierte Variablen, lesen Sie die %sDokumentation auf piwik.org%s",
+ "CustomVariablesReportDocumentation": "Dieser Bericht enthält Informationen über Ihre benutzerdefinierten Variablen. Klicken Sie auf einen Variablennamen, um die Verteilung der Werte zu sehen. %1$s Für mehr Informationen über benutzerdefinierte Variablen, lesen Sie die %2$sDokumentation auf piwik.org%3$s",
"PluginDescription": "Benutzerdefinierte Variablen sind (Namen-, Wert-) Paare, welche Sie mit Hilfe der Javascript API auf Besucher oder deren Aktionen festlegen können. Piwik wird Sie dann über die Menge an Besuchen, Seiten, Konversionen für jede der benutzerdefinierten Variablen und Werte informieren. Die detaillierten benutzerdefinierten Variablen für jeden Benutzer und Aktionen im Besucher-Log einsehbar.<br \/>Benötigt um das Feature <a href=\"http:\/\/piwik.org\/docs\/ecommerce-analytics\/\">Ecommerce Analyse<\/a>nutzen zu können.",
"ScopePage": "Anwendungsbereich Seite",
"ScopeVisit": "Anwendungsbereich Besuch",
@@ -13,7 +13,7 @@
"Usages": "Verwendungen",
"Unused": "Unbenutzt",
"CreateNewSlot": "Die Anzahl verfügbarer benutzerdefinierter Variablen erhöhen",
- "UsageDetails": "%s Besuche und %s Aktionen seit der Erstellung dieser Webseite.",
+ "UsageDetails": "%1$s Besuche und %2$s Aktionen seit der Erstellung dieser Website.",
"CreatingCustomVariableTakesTime": "Neue benutzerdefinierte Variablen zu erstellen kann viel Zeit beanspruchen, abhängig von der Grösse Ihrer Datenbank. Deshalb ist dieser Vorgang nur über Kommandozeilen verfügbar.",
"CurrentAvailableCustomVariables": "Aktuell können Sie bis zu %s benutzerdefinierte Variablen pro Seite einsetzen.",
"ToCreateCustomVarExecute": "Um eine neue benutzerdefinierte Variable zu erstellen, führen Sie in Ihrer Piwik Installation folgende Befehle aus:",
diff --git a/plugins/CustomVariables/lang/el.json b/plugins/CustomVariables/lang/el.json
index 25b790a4f9..78076e9cf1 100644
--- a/plugins/CustomVariables/lang/el.json
+++ b/plugins/CustomVariables/lang/el.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Ονομασία Προσαρμοσμένης Μεταβλητής",
"ColumnCustomVariableValue": "Τιμή Προσαρμοσμένης Μεταβλητής",
"CustomVariables": "Προσαρμοσμένες Μεταβλητές",
- "CustomVariablesReportDocumentation": "Αυτή η αναφορά περιέχει πληροφορίες για τις Προσαρμοσμένες Μεταβλητές. Πατήστε σε ένα όνομα μεταβλητής για να δείτε την κατανομή των τιμών. %s Για περισσότερες πληροφορίες για τις Προσαρμοσμένες Μεταβλητές γενικά, διαβάστε την %sτεκμηρίωση Προσαρμοσμένων Μεταβλητών στο piwik.org%s.",
+ "CustomVariablesReportDocumentation": "Η αναφορά αυτή περιέχει πληροφορίες σχετικά με τις Προσαρμοσμένες Μεταβλητές. Κάντε κλικ σε μια μεταβλητή για να δείτε την διασπορά των τιμών. %1$s Για περισσότερες πληροφορίες σχετικά με τις Προσαρμοσμένες Μεταβλητές γενικότερα, διαβάστε την %2$sσχετική τεκμηρίωση στο piwik.org%3$s",
"PluginDescription": "Οι Προσαρμοσμένες Μεταβλητές (όνομα, τιμή) είναι ζεύγη που δίνετε με χρήση του Javascript API σε επισκέπτες ή οποιαδήποτε ενέργειά τους. Το Piwik τότε θα αναφέρει τις επισκέψεις, σελίδες, μετατροπές για κάθε μία από τις προσαρμοσμένες αυτές μεταβλητές. Δείτε τις λεπτομερείς Προσαρμοσμένες Μεταβλητές για κάθε χρήστη και ενέργεια στο Ημερολόγιο Επισκεπτών.<br \/>Απαιτείται για τη χρήση του χαρακτηριστικού <a href=\"http:\/\/piwik.org\/docs\/ecommerce-analytics\/\">Αναλυτικά Ηλ. Εμπορίου<\/a>!",
"ScopePage": "σελίδα σκοπού",
"ScopeVisit": "επίσκεψη σκοπού",
@@ -13,10 +13,12 @@
"Usages": "Χρήσεις",
"Unused": "Δεν χρησιμοποιούνται",
"CreateNewSlot": "Αυξήστε τον αριθμό των σχισμών Προσαρμοσμένων Μεταβλητών",
- "UsageDetails": "%s επισκέψεις και %s ενέργειες από την δημιουργία του ιστοτόπου.",
+ "UsageDetails": "%1$s επισκέψεις και %2$s ενέργειες από την στιγμή δημιουργίας του ιστοτόπου.",
"CreatingCustomVariableTakesTime": "Η δημιουργία σχισμής προσαρμοσμένης μεταβλητής μπορεί να διαρκέσει αρκετή ώρα ανάλογα με το μέγεθος της βάσης. Οπότε, αυτό είναι πρέπει να γίνεται από εντολή που χρειάζεται να εκτελεστεί από την γραμμή εντολών.",
"CurrentAvailableCustomVariables": "Αυτή τη στιγμή μπορείτε να χρησιμοποιήσετε %s Προσαρμοσμένες Μεταβλητές ανά ιστοτόπο.",
"ToCreateCustomVarExecute": "Για να δημιουργήσετε μια σχισμή προσαρμοσμένης μεταβλητής πρέπει να εκτελέσετε την παρακάτω εντολή για την εγκατάσταση του PIwik σας:",
- "SlotsReportIsGeneratedOverTime": "Τα δεδομένα για αυτή την αναφορά θα συμπληρώνονται με το πέρασμα του χρόνου. Μπορεί να χρειαστούν μία ή δύο μέρες για να δείτε δεδομένα και μερικές εβδομάδες μέχρι η αναφορά να είναι ακριβής."
+ "SlotsReportIsGeneratedOverTime": "Τα δεδομένα για αυτή την αναφορά θα συμπληρώνονται με το πέρασμα του χρόνου. Μπορεί να χρειαστούν μία ή δύο μέρες για να δείτε δεδομένα και μερικές εβδομάδες μέχρι η αναφορά να είναι ακριβής.",
+ "MetricsAreOnlyAvailableForVisitScope": "Σημείωση: %1$s μετρικές είναι διαθέσιμες για τις Προσαρμοσμένες Μεταβλητές εμβέλειας %2$s μόνο.",
+ "MetricsNotAvailableForPageScope": "Για Προσαρμοσμένες Μεταβλητές εμβέλειας %1$s, η τιμή στήλης για τις μετρικές αυτές είναι %2$s"
}
} \ No newline at end of file
diff --git a/plugins/CustomVariables/lang/en.json b/plugins/CustomVariables/lang/en.json
index 45052df4d9..e065886759 100644
--- a/plugins/CustomVariables/lang/en.json
+++ b/plugins/CustomVariables/lang/en.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Custom Variable name",
"ColumnCustomVariableValue": "Custom Variable value",
"CustomVariables": "Custom Variables",
- "CustomVariablesReportDocumentation": "This report contains information about your Custom Variables. Click on a variable name to see the distribution of the values. %s For more information about Custom Variables in general, read the %sCustom Variables documentation on piwik.org%s",
+ "CustomVariablesReportDocumentation": "This report contains information about your Custom Variables. Click on a variable name to see the distribution of the values. %1$s For more information about Custom Variables in general, read the %2$sCustom Variables documentation on piwik.org%3$s",
"PluginDescription": "Custom Variables are (name, value) pairs that you can assign using the Javascript API to visitors or any of their action. Piwik will then report how many visits, pages, conversions for each of these custom names and values. View the detailed Custom Variables for each user and action in the Visitor Log.<br />Required to use <a href=\"http://piwik.org/docs/ecommerce-analytics/\">Ecommerce Analytics</a> feature!",
"ScopePage": "scope page",
"ScopeVisit": "scope visit",
@@ -13,10 +13,12 @@
"Usages": "Usages",
"Unused": "Unused",
"CreateNewSlot": "Increase the number of available Custom Variables slots",
- "UsageDetails": "%s visits and %s actions since creation of this website.",
+ "UsageDetails": "%1$s visits and %2$s actions since creation of this website.",
"CreatingCustomVariableTakesTime": "Creating a new custom variable slot can take a long time depending on the size of your database. Therefore it is only possible to do this via a command which needs to be executed on the command line.",
"CurrentAvailableCustomVariables": "Currently you can use up to %s Custom Variables per site.",
"ToCreateCustomVarExecute": "To create a new custom variable slot execute the following command within your Piwik installation: ",
- "SlotsReportIsGeneratedOverTime": "Data for this report will be populated over time. It may take a day or two to see any data and a few weeks until the report is fully accurate."
+ "SlotsReportIsGeneratedOverTime": "Data for this report will be populated over time. It may take a day or two to see any data and a few weeks until the report is fully accurate.",
+ "MetricsAreOnlyAvailableForVisitScope": "Note: %1$s metrics are available for Custom Variables of scope %2$s only.",
+ "MetricsNotAvailableForPageScope": "For Custom Variables of scope %1$s, the column value for these metrics is %2$s"
}
} \ No newline at end of file
diff --git a/plugins/CustomVariables/lang/es.json b/plugins/CustomVariables/lang/es.json
index d84d2928f8..012d4797a6 100644
--- a/plugins/CustomVariables/lang/es.json
+++ b/plugins/CustomVariables/lang/es.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Nombre de la Variable Personalizada",
"ColumnCustomVariableValue": "Valor de la Variable Personalizada",
"CustomVariables": "Variables Personalizadas",
- "CustomVariablesReportDocumentation": "Este informe contiene información sobre sus Variables Personalizadas. Haga clic en el nombre de una variable para ver la distribución de los valores. %s Para más información sobre las Variables Personalizadas en general, lea la %sdocumentación de Variables Personalizadas en piwik.org%s",
+ "CustomVariablesReportDocumentation": "Este informe contiene información sobre sus Variables Personalizadas. Haga clic en el nombre de una variable para ver la distribución de los valores. %1$s Para más información sobre las Variables Personalizadas en general, lea la %2$sdocumentación de Variables Personalizadas en piwik.org%3$s",
"PluginDescription": "Variables Personalizadas (nombre, valor) son pares que se pueden asignar mediante la API de Javascript a los visitantes o cualquiera de sus acciones. Piwik luego informará el número de visitas, páginas, las conversiones para cada uno de estos nombres y valores personalizados. Vea las variables personalizadas detalladas para cada usuario y su acción en el registro de visitantes. <br \/> Requerida para utilizar la función de <a href=\"http:\/\/piwik.org\/docs\/ecommerce-analytics\/\"> Ecommerce Analytics <\/a>!",
"ScopePage": "ámbito de la página",
"ScopeVisit": "alcance de la visita"
diff --git a/plugins/CustomVariables/lang/fi.json b/plugins/CustomVariables/lang/fi.json
index 24559aca12..51c8ee0f1f 100644
--- a/plugins/CustomVariables/lang/fi.json
+++ b/plugins/CustomVariables/lang/fi.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Kustomoidun muuttujan nimi",
"ColumnCustomVariableValue": "Kustomoidun muuttujan arvo",
"CustomVariables": "Kustomoidut muuttujat",
- "CustomVariablesReportDocumentation": "Tämä raportti sisältää tietoa kustomoiduista muuttujastasi. Voit tarkastella eri arvojen määrää klikkaamalla muuttujan nimeä. %s Saat lisätietoa kustomoiduista muuttujista %sCustom Variables%s-sivulta piwik.orgista (englanninkielinen)",
+ "CustomVariablesReportDocumentation": "Tämä raportti sisältää tietoa kustomoiduista muuttujastasi. Voit tarkastella eri arvojen määrää klikkaamalla muuttujan nimeä. %1$s Saat lisätietoa kustomoiduista muuttujista %2$sCustom Variables%3$s-sivulta piwik.orgista (englanninkielinen)",
"ScopePage": "alueena sivu",
"ScopeVisit": "alueena käynti"
}
diff --git a/plugins/CustomVariables/lang/fr.json b/plugins/CustomVariables/lang/fr.json
index 25113643f0..04febeefd6 100644
--- a/plugins/CustomVariables/lang/fr.json
+++ b/plugins/CustomVariables/lang/fr.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Nom de la variable personnalisée",
"ColumnCustomVariableValue": "Valeur de la variable personnalisée",
"CustomVariables": "Variables personnalisées",
- "CustomVariablesReportDocumentation": "Ce rapport contient des informations à propos de vos Variables Personnalisées. Cliquez sur un nom de variable pour voir la répartition de la valeur. %s Pour plus d'informations à propos des variables personnalisées en général, lisez la %s documentation sur les variables personnalisées sur piwik.org%s",
+ "CustomVariablesReportDocumentation": "Ce rapport contient des informations à propos de vos Variables Personnalisées. Cliquez sur un nom de variable pour voir la répartition de la valeur. %1$s Pour plus d'informations à propos des variables personnalisées en général, lisez la %2$s documentation sur les variables personnalisées sur piwik.org%3$s",
"PluginDescription": "Les variables personnalisées sont des paires (nom, valeur) que vous pouvez assigner en utilisant l'API Javascript aux visiteurs ou n'importe quelle de leur action. Piwik rapportera ensuite le nombre de visites, pages, conversions pour chacune de ces noms et valeurs personnalisés. Voir les variables personnalisées détaillées pour chaque utilisateur et action dans le journal visiteur. <br \/>Nécessite d'utiliser la fonctionnalité <a href=\"http:\/\/piwik.org\/docs\/ecommerce-analytics\/\">Ecommerce Analytics<\/a> !",
"ScopePage": "Étendue page",
"ScopeVisit": "Étendue visite",
@@ -13,10 +13,11 @@
"Usages": "Usages",
"Unused": "Inutilisé",
"CreateNewSlot": "Augmenter le nombre d'emplacement de variables personnalisées disponibles",
- "UsageDetails": "%s visites et %s actions depuis la création de ce site web.",
+ "UsageDetails": "%1$s visites et %2$s actions depuis la création de ce site web.",
"CreatingCustomVariableTakesTime": "La création de nouveaux emplacement de variable personnalisée peut prendre du temps dépendamment de la taille de votre base de données. De ce fait il est possible d'effectuer cela uniquement via une commande qui doit être exécutée dans la console.",
"CurrentAvailableCustomVariables": "Pour l'instant vous pouvez utiliser jusqu'à %s Variables personnalisées par site.",
"ToCreateCustomVarExecute": "Pour créer un nouvel emplacement de variable personnalisée exécutez la commande suivante dans votre installation de Piwik :",
- "SlotsReportIsGeneratedOverTime": "Les données pour ce rapport vont être peuplées avec le temps. Il se peut que cela prenne un jour ou deux pour voir des informations et quelques semaines avant que le rapport ne soit précis."
+ "SlotsReportIsGeneratedOverTime": "Les données pour ce rapport vont être peuplées avec le temps. Il se peut que cela prenne un jour ou deux pour voir des informations et quelques semaines avant que le rapport ne soit précis.",
+ "MetricsNotAvailableForPageScope": "Pour les variables personnalisées de la portée %1$s, la valeur de colonne pour ces métriques est %2$s"
}
} \ No newline at end of file
diff --git a/plugins/CustomVariables/lang/hi.json b/plugins/CustomVariables/lang/hi.json
index 22d7393ded..182185263c 100644
--- a/plugins/CustomVariables/lang/hi.json
+++ b/plugins/CustomVariables/lang/hi.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "विशेष चर नाम",
"ColumnCustomVariableValue": "विशेष चर मूल्य",
"CustomVariables": "विशेष चर",
- "CustomVariablesReportDocumentation": "यह रिपोर्ट आपके कस्टम चर के बारे में जानकारी शामिल हैं. मूल्यों के वितरण को देखने के लिए एक चर के नाम पर क्लिक करें. %sसामान्य रूप में %sकस्टम चर के बारे में अधिक जानकारी के लिए, piwik.org %s पर कस्टम चर दस्तावेज़ पढ़ें",
+ "CustomVariablesReportDocumentation": "यह रिपोर्ट आपके कस्टम चर के बारे में जानकारी शामिल हैं. मूल्यों के वितरण को देखने के लिए एक चर के नाम पर क्लिक करें. %1$sसामान्य रूप में %2$sकस्टम चर के बारे में अधिक जानकारी के लिए, piwik.org %3$s पर कस्टम चर दस्तावेज़ पढ़ें",
"ScopePage": "प्रसार पृष्ठ",
"ScopeVisit": "प्रसार यात्रा"
}
diff --git a/plugins/CustomVariables/lang/id.json b/plugins/CustomVariables/lang/id.json
index 321529a42c..545429db06 100644
--- a/plugins/CustomVariables/lang/id.json
+++ b/plugins/CustomVariables/lang/id.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Nama Variabel Kustom",
"ColumnCustomVariableValue": "Nilai Variabel Kustom",
"CustomVariables": "Variabel Kustom",
- "CustomVariablesReportDocumentation": "Laporan ini mengandung informasi tentang Variabel Kustom Anda. Klik di nama variabel untuk melihat distribusi nilai. %s Informasi lebih lengkap tentang Vabiabel Kustom, baca %sdokumentasi Vabiabel Kustom di piwik.org%s",
+ "CustomVariablesReportDocumentation": "Laporan ini mengandung informasi tentang Variabel Kustom Anda. Klik di nama variabel untuk melihat distribusi nilai. %1$s Informasi lebih lengkap tentang Vabiabel Kustom, baca %2$sdokumentasi Vabiabel Kustom di piwik.org%3$s",
"ScopePage": "cakupan halaman",
"ScopeVisit": "cakupan kunjungan"
}
diff --git a/plugins/CustomVariables/lang/it.json b/plugins/CustomVariables/lang/it.json
index ec7b07a778..c23021e8a6 100644
--- a/plugins/CustomVariables/lang/it.json
+++ b/plugins/CustomVariables/lang/it.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Nome Variabile Personalizzata",
"ColumnCustomVariableValue": "Valore Variabile Personalizzata",
"CustomVariables": "Variabile Personalizzata",
- "CustomVariablesReportDocumentation": "Questo report contiene le informazioni sulle variabili personalizzate. Clicca su un nome di variabile per visualizzarne la distribuzione dei valori. %s Per ulteriori informazioni sulle variabili personalizzate in generale, leggere la %sDocumentazione Variabili Personalizzatesu piwik.org %s",
+ "CustomVariablesReportDocumentation": "Questo report contiene le informazioni sulle variabili personalizzate. Clicca su un nome di variabile per visualizzarne la distribuzione dei valori. %1$s Per ulteriori informazioni sulle variabili personalizzate in generale, leggere la %2$sDocumentazione Variabili Personalizzatesu piwik.org %3$s",
"PluginDescription": "Le variabili personalizzate sono coppie (nome, valore) che puoi assegnare ai visitatori o a una qualunque loro azione tramite API Javascript. Poi Piwik riporterà le visite, le pagine e le conversioni per questi nomi e valori. Guarda nel dettaglio le Variabili Personalizzate per ciascun utente nel Log Visitatori.<br>Necessario per utilizzare la funzione <a href=\"http:\/\/piwik.org\/docs\/ecommerce-analytics\/\">Statistiche Ecommerce<\/a>",
"ScopePage": "ambito pagina",
"ScopeVisit": "ambito visita",
@@ -13,7 +13,7 @@
"Usages": "Usi",
"Unused": "Inutilizzate",
"CreateNewSlot": "Aumenta il numero degli slot di variabili personali disponibili",
- "UsageDetails": "%s visite e %s azioni dalla creazione di questo sito web.",
+ "UsageDetails": "%1$s visite e %2$s azioni dalla creazione di questo sito web.",
"CreatingCustomVariableTakesTime": "La creazione di un nuovo slot di variabili personali può richiedere un tempo lungo che dipende dalla dimensione del tuo database. Pertanto è possibile fare ciò solo tramite un comando che deve essere eseguito da riga di comando.",
"CurrentAvailableCustomVariables": "Attualmente puoi utilizzare fino a %s variabili personali per sito.",
"ToCreateCustomVarExecute": "Per creare un nuovo slot di variabili personali esegui il comando seguente nella tua installazione di Piwik.",
diff --git a/plugins/CustomVariables/lang/ko.json b/plugins/CustomVariables/lang/ko.json
index 894e4e53ea..d0fb3c829c 100644
--- a/plugins/CustomVariables/lang/ko.json
+++ b/plugins/CustomVariables/lang/ko.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "맞춤 변수 이름",
"ColumnCustomVariableValue": "맞춤 변수 값",
"CustomVariables": "맞춤 변수",
- "CustomVariablesReportDocumentation": "이 보고서는 맞춤 변수에 대한 정보를 포함합니다. 변수 이름을 클릭하여 값의 분포를 확인할 수 있습니다. %s 맞춤 변수에 대한 자세한 내용은 %spiwik.org의 맞춤 변수 설명서%s를 참조하세요.",
+ "CustomVariablesReportDocumentation": "이 보고서는 맞춤 변수에 대한 정보를 포함합니다. 변수 이름을 클릭하여 값의 분포를 확인할 수 있습니다. %1$s 맞춤 변수에 대한 자세한 내용은 %2$spiwik.org의 맞춤 변수 설명서%3$s를 참조하세요.",
"ScopePage": "페이지 범위",
"ScopeVisit": "방문 범위"
}
diff --git a/plugins/CustomVariables/lang/nb.json b/plugins/CustomVariables/lang/nb.json
index 7fe6f0850d..3ba6325f36 100644
--- a/plugins/CustomVariables/lang/nb.json
+++ b/plugins/CustomVariables/lang/nb.json
@@ -1,5 +1,6 @@
{
"CustomVariables": {
- "CustomVariables": "Egendefinerte variabler"
+ "CustomVariables": "Egendefinerte variabler",
+ "Unused": "Ubrukt"
}
} \ No newline at end of file
diff --git a/plugins/CustomVariables/lang/nl.json b/plugins/CustomVariables/lang/nl.json
index 6dc3c511ce..4ba6ced08e 100644
--- a/plugins/CustomVariables/lang/nl.json
+++ b/plugins/CustomVariables/lang/nl.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Aangepaste variabelenaam",
"ColumnCustomVariableValue": "Aangepaste variabele waarde",
"CustomVariables": "Aangepaste variabelen",
- "CustomVariablesReportDocumentation": "Dit rapport bevat informatie over uw aangepaste variabelen. Klik op de naam van een variabele om de verdeling van de waarden te zien. %s voor meer informatie over aangepaste variabelen in het algemeen, lees de %sCustom variabelen documentatie over piwik.org%s",
+ "CustomVariablesReportDocumentation": "Dit rapport bevat informatie over uw aangepaste variabelen. Klik op de naam van een variabele om de verdeling van de waarden te zien. %1$s voor meer informatie over aangepaste variabelen in het algemeen, lees de %2$sCustom variabelen documentatie over piwik.org%3$s",
"PluginDescription": "Aangepaste variabelen zijn (naam, waarde) paren dat je kunt toewijzen via de Javascript API aan bezoekers of aan één van hun acties. Piwik zal dan het aantal bezoeken, pagina's, conversies voor elk van deze aangepaste namen en waarden rapporteren. Bekijk de gedetailleerde Aangepaste variabelen voor elke gebruik en actie in het Bezoekerslogboek. <br\/>Het is vereist gebruik te maken van de<a href=\"http:\/\/piwik.org\/docs\/ecommerce-analytics\/\">Ecommerce Analyses<\/a> functie!",
"ScopePage": "omvang pagina",
"ScopeVisit": "omvang bezoek"
diff --git a/plugins/CustomVariables/lang/pl.json b/plugins/CustomVariables/lang/pl.json
index 90c5daab59..ca5fdfad37 100644
--- a/plugins/CustomVariables/lang/pl.json
+++ b/plugins/CustomVariables/lang/pl.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Nazwa zmiennej niestandardowej",
"ColumnCustomVariableValue": "Wartość zmiennej niestandardowej",
"CustomVariables": "Zmienne niestandardowe",
- "CustomVariablesReportDocumentation": "Raport ten zawiera informacje na temat niestandardowych zmiennych. Kliknij na nazwę zmiennej, aby zobaczyć rozkład wartości. %sAby uzyskać więcej informacji na temat niestandardowych zmiennych, przeczytaj dokumentację Zmienne %sCustom na piwik.org%s",
+ "CustomVariablesReportDocumentation": "Raport ten zawiera informacje na temat niestandardowych zmiennych. Kliknij na nazwę zmiennej, aby zobaczyć rozkład wartości. %1$sAby uzyskać więcej informacji na temat niestandardowych zmiennych, przeczytaj dokumentację Zmienne %2$sCustom na piwik.org%3$s",
"ScopePage": "strona zakresu",
"ScopeVisit": "zakres wizyt"
}
diff --git a/plugins/CustomVariables/lang/pt-br.json b/plugins/CustomVariables/lang/pt-br.json
index 9f46739d4a..c0cf403f4e 100644
--- a/plugins/CustomVariables/lang/pt-br.json
+++ b/plugins/CustomVariables/lang/pt-br.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Nome da Variável Personalizada",
"ColumnCustomVariableValue": "Valor de variável personalizado",
"CustomVariables": "Variáveis personalizadas",
- "CustomVariablesReportDocumentation": "Este relatório contém informações sobre as suas variáveis ​​personalizadas. Clique em um nome de variável para ver a distribuição dos valores. %s para mais informações sobre variáveis ​​personalizadas em geral, leia a documentação %sCustom Variáveis ​​em piwik.org%s",
+ "CustomVariablesReportDocumentation": "Este relatório contém informações sobre as suas variáveis ​​personalizadas. Clique em um nome de variável para ver a distribuição dos valores. %1$s para mais informações sobre variáveis ​​personalizadas em geral, leia a documentação %2$sCustom Variáveis ​​em piwik.org%3$s",
"PluginDescription": "Variáveis Personalizadas são pares (nome, valor) que você pode atribuir utilizando a API Javascript para visitantes ou qualquer ações deles. Então, Piwik reporta o número de visitas, páginas e conversões para cada um desses nomes e valores personalizados. Veja as Variáveis Personalizadas detalhadas para cada usuário e ação no Registro de Visitantes.<br \/> É necessário utilizar a função <a href=\"http:\/\/piwik.org\/docs\/ecommerce-analytics\/\">Ecommerce Analytics<\/a>!",
"ScopePage": "página escopo",
"ScopeVisit": "visita escopo",
@@ -13,10 +13,12 @@
"Usages": "Utilizações",
"Unused": "Não utilizado",
"CreateNewSlot": "Aumentar o número de compartimentos de Variáveis ​​Personalizadas disponíveis",
- "UsageDetails": "%s visitas e %s ações desde a criação deste website.",
+ "UsageDetails": "%1$s visitas e %2$s ações desde a criação deste website.",
"CreatingCustomVariableTakesTime": "Criar um novo compartimento de variável personalizada pode levar um longo tempo, dependendo do tamanho do seu banco de dados. Por isso, só é possível fazer isso através de um comando que deve ser executado na linha de comando.",
"CurrentAvailableCustomVariables": "Atualmente você pode usar até %s Variáveis Personalizadas por site.",
"ToCreateCustomVarExecute": "Para criar um novo compartimento de variável personalizada execute o seguinte comando dentro da sua instalação Piwik:",
- "SlotsReportIsGeneratedOverTime": "Os dados para este relatório serão preenchidos ao longo do tempo. Pode demorar um dia ou dois para ver todos os dados e algumas semanas até que o relatório seja totalmente preciso."
+ "SlotsReportIsGeneratedOverTime": "Os dados para este relatório serão preenchidos ao longo do tempo. Pode demorar um dia ou dois para ver todos os dados e algumas semanas até que o relatório seja totalmente preciso.",
+ "MetricsAreOnlyAvailableForVisitScope": "Nota: %1$s métricas estão disponíveis apenas para as Variáveis ​​Personalizadas de alcance %2$s.",
+ "MetricsNotAvailableForPageScope": "Para as Variáveis ​​Personalizadas de alcance %1$s, o valor da coluna para essas métricas é %2$s"
}
} \ No newline at end of file
diff --git a/plugins/CustomVariables/lang/pt.json b/plugins/CustomVariables/lang/pt.json
index ec40f902c9..6c25ad3875 100644
--- a/plugins/CustomVariables/lang/pt.json
+++ b/plugins/CustomVariables/lang/pt.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Nome da variável ​​personalizada",
"ColumnCustomVariableValue": "Valor da variável ​​personalizada",
"CustomVariables": "Variáveis ​​personalizadas",
- "CustomVariablesReportDocumentation": "Este relatório contém informações sobre as variáveis ​​personalizadas. Clique no nome de uma variável para ver a distribuição dos valores. %s Para mais informações sobre variáveis ​​personalizadas em geral, deve ler a %sdocumentação sobre Variáveis Personalizadas em piwik.org %s",
+ "CustomVariablesReportDocumentation": "Este relatório contém informações sobre as variáveis ​​personalizadas. Clique no nome de uma variável para ver a distribuição dos valores. %1$s Para mais informações sobre variáveis ​​personalizadas em geral, deve ler a %2$sdocumentação sobre Variáveis Personalizadas em piwik.org %3$s",
"ScopePage": "Âmbito da página",
"ScopeVisit": "Âmbito da visita"
}
diff --git a/plugins/CustomVariables/lang/ro.json b/plugins/CustomVariables/lang/ro.json
index 8394ffd6c8..54b4291c9b 100644
--- a/plugins/CustomVariables/lang/ro.json
+++ b/plugins/CustomVariables/lang/ro.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Denumirea variabilei personalizate",
"ColumnCustomVariableValue": "Valoarea variabilei personalizate",
"CustomVariables": "Variabile personalizate",
- "CustomVariablesReportDocumentation": "Acest raport conține informații despre Variabilele Personalizate. Faceți clic pe un nume de variabilă pentru a vedea distribuția valorilor. %s Pentru mai multe informații despre variabile personalizate, în general, citiți %sdocumentatia Variabilelor Personalizate piwik.org%s",
+ "CustomVariablesReportDocumentation": "Acest raport conține informații despre Variabilele Personalizate. Faceți clic pe un nume de variabilă pentru a vedea distribuția valorilor. %1$s Pentru mai multe informații despre variabile personalizate, în general, citiți %2$sdocumentatia Variabilelor Personalizate piwik.org%3$s",
"ScopePage": "scop pagină",
"ScopeVisit": "scop vizită"
}
diff --git a/plugins/CustomVariables/lang/ru.json b/plugins/CustomVariables/lang/ru.json
index bc30aea1a0..c448538e4b 100644
--- a/plugins/CustomVariables/lang/ru.json
+++ b/plugins/CustomVariables/lang/ru.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Имя пользовательской переменной",
"ColumnCustomVariableValue": "Значение пользовательской переменной",
"CustomVariables": "Пользовательские переменные",
- "CustomVariablesReportDocumentation": "Этот отчет отображает информацию по вашим Пользовательским Переменным. Кликните по переменной, чтобы увидеть распределение значений. %s Для большей информации о Пользов. Переменных в общих чертах ознакомьтесь с %sдокументацией по Пользов. переменных на сайте Piwik%s",
+ "CustomVariablesReportDocumentation": "Этот отчет отображает информацию по вашим Пользовательским Переменным. Кликните по переменной, чтобы увидеть распределение значений. %1$s Для большей информации о Пользов. Переменных в общих чертах ознакомьтесь с %2$sдокументацией по Пользов. переменных на сайте Piwik%3$s",
"ScopePage": "scope page",
"ScopeVisit": "scope visit"
}
diff --git a/plugins/CustomVariables/lang/sq.json b/plugins/CustomVariables/lang/sq.json
index 0f7c09eb34..fb18850ba0 100644
--- a/plugins/CustomVariables/lang/sq.json
+++ b/plugins/CustomVariables/lang/sq.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Emër Ndryshoreje të Personalizueshme",
"ColumnCustomVariableValue": "Vlerë Ndryshoreje të Personalizueshme",
"CustomVariables": "Ndryshore të Personalizueshme",
- "CustomVariablesReportDocumentation": "Ky raport përmban të dhëna rreth Ndryshoreve tuaja të Personalizuara. Klikoni mbi një emër ndryshoreje që të shihni shpërndarjen e vlerave. %s Për më tepër të dhëna rreth Ndryshoresh të Personalizuara në përgjithësi, lexoni %sdokumentimin e Ndryshoreve të Personalizuara te piwik.org%s",
+ "CustomVariablesReportDocumentation": "Ky raport përmban të dhëna rreth Ndryshoreve tuaja të Personalizuara. Klikoni mbi një emër ndryshoreje që të shihni shpërndarjen e vlerave. %1$s Për më tepër të dhëna rreth Ndryshoresh të Personalizuara në përgjithësi, lexoni %2$sdokumentimin e Ndryshoreve të Personalizuara te piwik.org%3$s",
"PluginDescription": "Ndryshoret e Personalizueshme janë çifte (emër, vlerë) që mund t’ua vini në përshoqërim vizitorëve tuaj apo çfarëdo veprimi prej tyre, duke përdorur API-n për Javascript-in. Piwik-u mandej do të raportojë sa vizita, faqe, shndërrime ka për secilin prej këtyre emrave dhe vlerave të personalizuara. Ndryshoret e Personalizueshme në hollësi për çdo përdorues dhe veprim i gjeni te Regjistri i Vizitorëve.<br \/>E domosdoshme për përdorim të veçorisë <a href=\"http:\/\/piwik.org\/docs\/ecommerce-analytics\/\">Analiza E-tregti<\/a>!",
"ScopePage": "faqe me qëllim",
"ScopeVisit": "vizitë me qëllim"
diff --git a/plugins/CustomVariables/lang/sr.json b/plugins/CustomVariables/lang/sr.json
index b740d6b41c..37ba3f7eb0 100644
--- a/plugins/CustomVariables/lang/sr.json
+++ b/plugins/CustomVariables/lang/sr.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Ime dodatnog parametra",
"ColumnCustomVariableValue": "Vrednost dodatnog parametra",
"CustomVariables": "Dodatni parametri",
- "CustomVariablesReportDocumentation": "Ovaj izveštaj sadrži informacije o dodatnim parametrima. Kliknite na ime parametra kako biste videli distribuciju vrednosti. %s Za više informacija o dodatnim parametrima pogledajte %sCustom Variables na piwik.org%s",
+ "CustomVariablesReportDocumentation": "Ovaj izveštaj sadrži informacije o dodatnim parametrima. Kliknite na ime parametra kako biste videli distribuciju vrednosti. %1$s Za više informacija o dodatnim parametrima pogledajte %2$sCustom Variables na piwik.org%3$s",
"PluginDescription": "Dodatni parametri su uređeni parovi (naziv, vrednost) koje možete pomoću JavaScript API-ja da dodelite posetiocima ili bilo kojoj njihovoj akciji. Piwik će onda beležiti koliko ima poseta, stranica i konverzija za svaki od tih parova. Detalje možete videti u logu posetilaca. <br \/>Neophodno za <a href=\"http:\/\/piwik.org\/docs\/ecommerce-analytics\/\">E-commerce analitike<\/a>!",
"ScopePage": "oblast strana",
"ScopeVisit": "oblast poseta"
diff --git a/plugins/CustomVariables/lang/sv.json b/plugins/CustomVariables/lang/sv.json
index 2fc2e7dd6f..11f438e096 100644
--- a/plugins/CustomVariables/lang/sv.json
+++ b/plugins/CustomVariables/lang/sv.json
@@ -3,8 +3,11 @@
"ColumnCustomVariableName": "Anpassat variabelnamn",
"ColumnCustomVariableValue": "Anpassat variabelvärde",
"CustomVariables": "Anpassade variabler",
- "CustomVariablesReportDocumentation": "Denna rapport innehåller information om din anpassade variabler. Klicka på ett variabelnamn för att se fördelningen av värdena. %s För mer information om anpassade variabler i allmänhet, läs %sdokumentationen om anpassade variabler på piwik.org%s",
+ "CustomVariablesReportDocumentation": "Denna rapport innehåller information om din anpassade variabler. Klicka på ett variabelnamn för att se fördelningen av värdena. %1$s För mer information om anpassade variabler i allmänhet, läs %2$sdokumentationen om anpassade variabler på piwik.org%3$s",
"ScopePage": "omfattning sida",
- "ScopeVisit": "omfattning besök"
+ "ScopeVisit": "omfattning besök",
+ "Index": "Index",
+ "Usages": "Användningar",
+ "Unused": "Oanvänd"
}
} \ No newline at end of file
diff --git a/plugins/CustomVariables/lang/tl.json b/plugins/CustomVariables/lang/tl.json
index f5ecff66e7..1a18687540 100644
--- a/plugins/CustomVariables/lang/tl.json
+++ b/plugins/CustomVariables/lang/tl.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Pangalan ng Custom na Variable",
"ColumnCustomVariableValue": "Halaga ng Custom na Variable",
"CustomVariables": "Mga Custom na Variable",
- "CustomVariablesReportDocumentation": "Ang ulat na ito ay naglalaman ng mga impormasyon tunkol sa iyong mga Custom Variable. E-click ang pangalan ng variable upang makita ang pagkakabahagi ng mga laman nito. %s Upang makita ang pangkalahatang impormasyon tungkol sa Custom Variables basahin ang %sCustom Variables documentation sa piwi.org%s.",
+ "CustomVariablesReportDocumentation": "Ang ulat na ito ay naglalaman ng mga impormasyon tunkol sa iyong mga Custom Variable. E-click ang pangalan ng variable upang makita ang pagkakabahagi ng mga laman nito. %1$s Upang makita ang pangkalahatang impormasyon tungkol sa Custom Variables basahin ang %2$sCustom Variables documentation sa piwi.org%3$s.",
"ScopePage": "saklaw na pahina",
"ScopeVisit": "Saklaw ng pagbisita"
}
diff --git a/plugins/CustomVariables/lang/vi.json b/plugins/CustomVariables/lang/vi.json
index 29b5f4685a..8dec993981 100644
--- a/plugins/CustomVariables/lang/vi.json
+++ b/plugins/CustomVariables/lang/vi.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "Tên biến tùy chọn",
"ColumnCustomVariableValue": "Giá trị của biến tùy chọn",
"CustomVariables": "Các biến tùy chọn",
- "CustomVariablesReportDocumentation": "Báo cáo này chứa thông tin về các biến tùy chỉnh. Vui lòng chọn tên biến để xem phân bố của các giá trị. %s Để tìm hiểu thêm thông tin chung về các biến tùy chỉnh, đọc %s Tài liệu hướng dẫn về biến tùy chỉnh trên piwik.org %s",
+ "CustomVariablesReportDocumentation": "Báo cáo này chứa thông tin về các biến tùy chỉnh. Vui lòng chọn tên biến để xem phân bố của các giá trị. %1$s Để tìm hiểu thêm thông tin chung về các biến tùy chỉnh, đọc %2$s Tài liệu hướng dẫn về biến tùy chỉnh trên piwik.org %3$s",
"ScopePage": "Trang phạm vi",
"ScopeVisit": "sự viếng thăm trong phạm vi nào đó"
}
diff --git a/plugins/CustomVariables/lang/zh-cn.json b/plugins/CustomVariables/lang/zh-cn.json
index 7dca8365ac..a98cc725a7 100644
--- a/plugins/CustomVariables/lang/zh-cn.json
+++ b/plugins/CustomVariables/lang/zh-cn.json
@@ -3,7 +3,7 @@
"ColumnCustomVariableName": "自定义变量名称",
"ColumnCustomVariableValue": "自定义变量值",
"CustomVariables": "自定义变量",
- "CustomVariablesReportDocumentation": "本报表包含您的自定义变量的资料,点击变量名查看数据。%s 关于自定义变量的详情,请阅读 %spiwik.org 上的自定义变量文档%s",
+ "CustomVariablesReportDocumentation": "本报表包含您的自定义变量的资料,点击变量名查看数据。%1$s 关于自定义变量的详情,请阅读 %2$spiwik.org 上的自定义变量文档%3$s",
"ScopePage": "访问页面",
"ScopeVisit": "访问范围"
}
diff --git a/plugins/DBStats/lang/cs.json b/plugins/DBStats/lang/cs.json
index 57074b7cdd..c3247d786f 100644
--- a/plugins/DBStats/lang/cs.json
+++ b/plugins/DBStats/lang/cs.json
@@ -10,7 +10,7 @@
"MetricDataByYear": "Tabulky měření za rok",
"MetricTables": "Tabulky měření",
"OtherTables": "Ostatní tabulky",
- "PluginDescription": "Poskytuje detailní hlášení o využití Mysql databáze. Dostupné pro super uživatele pod diagnostikou.",
+ "PluginDescription": "Poskytuje detailní hlášení o využití Mysql databáze. Dostupné pro super-uživatele pod diagnostikou.",
"ReportDataByYear": "Hlášení tabulek za rok",
"ReportTables": "Tabulky hlášení",
"RowCount": "Počet řádků",
diff --git a/plugins/Dashboard/Dashboard.php b/plugins/Dashboard/Dashboard.php
index 5eee375988..44814f6800 100644
--- a/plugins/Dashboard/Dashboard.php
+++ b/plugins/Dashboard/Dashboard.php
@@ -9,10 +9,12 @@
namespace Piwik\Plugins\Dashboard;
use Piwik\Common;
+use Piwik\Container\StaticContainer;
use Piwik\Db;
use Piwik\Piwik;
use Piwik\Category\Subcategory;
use Piwik\Widget\WidgetConfig;
+use Piwik\Plugin;
/**
*/
@@ -132,11 +134,19 @@ class Dashboard extends \Piwik\Plugin
$defaultLayout = $this->getLayoutForUser('', 1);
if (empty($defaultLayout)) {
+ $topWidget = '';
+
+ $advertising = StaticContainer::get('Piwik\PiwikPro\Advertising');
+ if ($advertising->arePiwikProAdsEnabled() && Plugin\Manager::getInstance()->isPluginActivated('PiwikPro')) {
+ $topWidget .= '{"uniqueId":"widgetPiwikPropromoPiwikPro",'
+ . '"parameters":{"module":"PiwikPro","action":"promoPiwikPro"}},';
+ }
+
if (Piwik::hasUserSuperUserAccess()) {
- $topWidget = '{"uniqueId":"widgetCoreHomegetDonateForm",'
+ $topWidget .= '{"uniqueId":"widgetCoreHomegetDonateForm",'
. '"parameters":{"module":"CoreHome","action":"getDonateForm"}},';
} else {
- $topWidget = '{"uniqueId":"widgetCoreHomegetPromoVideo",'
+ $topWidget .= '{"uniqueId":"widgetCoreHomegetPromoVideo",'
. '"parameters":{"module":"CoreHome","action":"getPromoVideo"}},';
}
diff --git a/plugins/Dashboard/lang/ar.json b/plugins/Dashboard/lang/ar.json
index f4537a9f50..6796ea5776 100644
--- a/plugins/Dashboard/lang/ar.json
+++ b/plugins/Dashboard/lang/ar.json
@@ -21,6 +21,7 @@
"PluginDescription": "لوحة معلومات تحليلات الويب الخاصة بك. خصّص لوحة معلوماتك بإضافة عناصر واجهة جديدة وسحبها وإسقاطها أينما شئت ، بإمكانك أيضاً تغيير تخطيط أعمدة لوحة المعلومات. يمكن لكل مستخدم إدارة لوحة معلومات يخصصها كما يشاء.",
"RemoveDashboard": "إزالة اللوحة",
"RemoveDashboardConfirm": "هل أنت متأكد من رغبتك حذف لوحة المعلومات \"%s\" ؟",
+ "RemoveDefaultDashboardNotPossible": "لايمكن حذف لوحة المعلومات الافتراضية",
"RenameDashboard": "إعادة تسمية اللوحة",
"ResetDashboard": "أعد ضبط لوحة المعلومات",
"ResetDashboardConfirm": "هل ترغب حقاً في تنضيد تخطيط اللوحة الرئيسية ومجموعة التطبيقات المعروضة فيها إلى الافتراضية؟",
diff --git a/plugins/Dashboard/stylesheets/dashboard.less b/plugins/Dashboard/stylesheets/dashboard.less
index b45398379c..20a5fbac92 100644
--- a/plugins/Dashboard/stylesheets/dashboard.less
+++ b/plugins/Dashboard/stylesheets/dashboard.less
@@ -112,9 +112,19 @@
font-size: 10pt;
}
+.widgetLoadingError {
+ .alert.alert-danger {
+ border: 0;
+ }
+}
+
.widgetLoadingError, .dimensionLoadingError {
color: @theme-color-brand;
text-align: left;
+ a {
+ color: @theme-color-brand;
+ text-decoration: underline;
+ }
}
#closeMenuIcon {
@@ -257,7 +267,7 @@
ul.widgetpreview-widgetlist,
ul.widgetpreview-categorylist {
- color: #5d5342;
+ color: @theme-color-text-light;
list-style: none;
font-size: 11px;
line-height: 20px;
@@ -318,7 +328,7 @@ div.widgetpreview-preview {
font-weight: normal;
padding-top: 10px;
margin-left: 10px;
- color: #5D5342;
+ color: @theme-color-text-light;
list-style: none;
font-size: 11px;
line-height: 20px;
diff --git a/plugins/Dashboard/stylesheets/widget.less b/plugins/Dashboard/stylesheets/widget.less
index 09357f7784..c6743eb559 100644
--- a/plugins/Dashboard/stylesheets/widget.less
+++ b/plugins/Dashboard/stylesheets/widget.less
@@ -1,7 +1,7 @@
.widget {
.font-default(13px, 18px);
- background: @theme-color-background-base;
- border: 1px solid @color-silver-l85;
+ background: @theme-color-widget-background;
+ border: 1px solid @theme-color-widget-border;
box-shadow: 0 1px 1px rgba(204,204,204,.5);
overflow: hidden;
z-index: 1;
@@ -54,6 +54,7 @@
padding-left: 50px;
right: 8px;
display: none;
+ color: @theme-color-widget-title-text;
background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, @theme-color-widget-title-background 45px);
background: -webkit-linear-gradient(left,rgba(255,255,255,0) 0%, @theme-color-widget-title-background 45px);
background: linear-gradient(to right, rgba(255,255,255,0) 0%, @theme-color-widget-title-background 45px);
@@ -115,3 +116,15 @@
display:none;
}
}
+
+.widget table.dataTable tr td {
+ background-color: @theme-color-widget-background;
+}
+
+.dataTable table.dataTable tr td {
+ background-color: @theme-color-widget-background;
+}
+
+.bar-graph-colors[data-name=grid-background] {
+ color: @theme-color-widget-background !important;
+}
diff --git a/plugins/Dashboard/templates/_dashboardSettings.twig b/plugins/Dashboard/templates/_dashboardSettings.twig
index b82e913743..db21def819 100644
--- a/plugins/Dashboard/templates/_dashboardSettings.twig
+++ b/plugins/Dashboard/templates/_dashboardSettings.twig
@@ -1,4 +1,4 @@
-<a class="title" title="{{ 'Dashboard_ManageDashboard'|translate|e('html_attr') }}"><span class="icon icon-arrow-bottom"></span>{{ 'Dashboard_Dashboard'|translate }} </a>
+<a class="title" title="{{ 'Dashboard_ManageDashboard'|translate|e('html_attr') }}" tabindex="4"><span class="icon icon-arrow-bottom"></span>{{ 'Dashboard_Dashboard'|translate }} </a>
<ul class="dropdown submenu">
<li>
<div class="addWidget">{{ 'Dashboard_AddAWidget'|translate }}</div>
diff --git a/plugins/DevicePlugins/lang/ar.json b/plugins/DevicePlugins/lang/ar.json
index c0e62aa58f..0c29b16f22 100644
--- a/plugins/DevicePlugins/lang/ar.json
+++ b/plugins/DevicePlugins/lang/ar.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "ملاحظة: اكتشاف الإضافات البرمجية لا تعمل في متصفح إنترنت إكسبلورر. هذه الخاصية ترتكز للمتصفحات من العائلات الأخرى غير إنترنت إكسبلورر.",
"WidgetPlugins": "قائمة الإضافات"
}
} \ No newline at end of file
diff --git a/plugins/DevicePlugins/lang/be.json b/plugins/DevicePlugins/lang/be.json
index 82f75389a6..40743428a0 100644
--- a/plugins/DevicePlugins/lang/be.json
+++ b/plugins/DevicePlugins/lang/be.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "Заўважце: Плагіны не вызначаюцца ў Internet Explorer. Гэта справаздача заснавана на не-IE браўзарах.",
"WidgetPlugins": "Спіс плагінаў",
"WidgetPluginsDocumentation": "Гэтая справаздача паказвае, якія плагіны были ўключаны ў браўзэраў Вашых наведвальнікаў. Гэтая інфармацыя можа мець важнае значэнне для выбару правільнага спосабу дастаўкі кантэнту."
}
diff --git a/plugins/DevicePlugins/lang/bg.json b/plugins/DevicePlugins/lang/bg.json
index 12e47992f6..934f1ce85e 100644
--- a/plugins/DevicePlugins/lang/bg.json
+++ b/plugins/DevicePlugins/lang/bg.json
@@ -2,7 +2,6 @@
"DevicePlugins": {
"BrowserWithNoPluginsEnabled": "%1$s без активни добавки",
"BrowserWithPluginsEnabled": "%1$s с добавки %2$s активиран",
- "PluginDetectionDoesNotWorkInIE": "Забележка: Засичането на добавки не работи при Internet Explorer. Този доклад е базиран само на браузъри, различни от IE.",
"WidgetPlugins": "Добавки",
"WidgetPluginsDocumentation": "Този отчет показва каква добавка на браузъра са използвали вашите посетители. Тази информация може да е важна, за да изберете правилния начин за доставяне на вашето съдържание."
}
diff --git a/plugins/DevicePlugins/lang/ca.json b/plugins/DevicePlugins/lang/ca.json
index c0ae89b0f5..b097c67e18 100644
--- a/plugins/DevicePlugins/lang/ca.json
+++ b/plugins/DevicePlugins/lang/ca.json
@@ -3,7 +3,6 @@
"BrowserWithNoPluginsEnabled": "%1$s sense connectors activats",
"BrowserWithPluginsEnabled": "%1$s amb els connectors %2$s activats",
"PluginDescription": "Mostra la llista de connectors que suporten els navegadors dels visitants",
- "PluginDetectionDoesNotWorkInIE": "Nota: La detecció de connectors no funciona amb Internet Explorer. L'informe es basa nomes amb navegadors diferents de l'Internet Explorer",
"WidgetPlugins": "Llistat de connectors",
"WidgetPluginsDocumentation": "Aquest informe mostra quins connectors tenen els vostres visitants activades. Aquesta informació pot ser important per determinar la forma correcta de mostrar el contingut."
}
diff --git a/plugins/DevicePlugins/lang/cs.json b/plugins/DevicePlugins/lang/cs.json
index 3854a6916a..abc954d6dc 100644
--- a/plugins/DevicePlugins/lang/cs.json
+++ b/plugins/DevicePlugins/lang/cs.json
@@ -3,7 +3,7 @@
"BrowserWithNoPluginsEnabled": "%1$s bez povolených zásuvných modulů",
"BrowserWithPluginsEnabled": "%1$s s povolenými zásuvnými moduly %2$s",
"PluginDescription": "Hlásí podporované zásuvné moduly v prohlížečích návštěvníků.",
- "PluginDetectionDoesNotWorkInIE": "Poznámka: Detekce zásuvných modulů nepracuje v prohlížeči Interet Explorer. Toto hlášení je založeno pouze na jiných prohlížečích",
+ "PluginDetectionDoesNotWorkInIE": "Poznámka: Detekce zásuvných modulů nepracuje v prohlížeči Interet Explorer před verzí 11. Toto hlášení je založeno na datech z ostatních prohlížečů a novějších verzích IE.",
"WidgetPlugins": "Seznam zásuvných modulů",
"WidgetPluginsDocumentation": "Toto hlášení zobrazuje zásuvné moduly, které měli vaši návštěvníci povoleny. Tato informace může být důležitá při rozhodování o tom, jakým způsobem prezentovat obsah."
}
diff --git a/plugins/DevicePlugins/lang/da.json b/plugins/DevicePlugins/lang/da.json
index 0b095678c6..0291ba6e2c 100644
--- a/plugins/DevicePlugins/lang/da.json
+++ b/plugins/DevicePlugins/lang/da.json
@@ -3,7 +3,6 @@
"BrowserWithNoPluginsEnabled": "%1$s med ingen aktiverede udvidelsesmoduler",
"BrowserWithPluginsEnabled": "%1$s med udvidelsesmoduler %2$s aktiveret",
"PluginDescription": "Viseren liste over udvidelser, der understøttes i besøgendes browsere.",
- "PluginDetectionDoesNotWorkInIE": "Note: Udvidelsesmodul detektering virker ikke i Internet Explorer. Rapport viser kun ikke-IE browsere.",
"WidgetPlugins": "Udvidelsesmoduler",
"WidgetPluginsDocumentation": "Rapporten viser, hvilke browserudvidelser de besøgende havde aktiveret. Oplysningerne kan være vigtigt for at vælge den rigtige måde at levere indholdet på."
}
diff --git a/plugins/DevicePlugins/lang/de.json b/plugins/DevicePlugins/lang/de.json
index 3623dfb6df..9441759447 100644
--- a/plugins/DevicePlugins/lang/de.json
+++ b/plugins/DevicePlugins/lang/de.json
@@ -3,7 +3,7 @@
"BrowserWithNoPluginsEnabled": "%1$s mit keinen aktivierten Plugins",
"BrowserWithPluginsEnabled": "%1$s mit den Plugins %2$s aktiviert",
"PluginDescription": "Zeigt die Liste der Plugins an, welche in den Browsern der Benutzer unterstützt werden.",
- "PluginDetectionDoesNotWorkInIE": "Hinweis: Die Erkennung von Plugins funktioniert nicht im Internet Explorer. Diese Statistik beruht nur auf Nicht-IE Browsern.",
+ "PluginDetectionDoesNotWorkInIE": "Hinweis: Die Erkennung von Plugins funktioniert nicht im Internet Explorer vor Version 11. Diese Statistik beruht nur auf Nicht-IE Browsern sowie neueren Version des IE.",
"WidgetPlugins": "Browser-Plugins",
"WidgetPluginsDocumentation": "Dieser Bericht zeigt Ihnen, welche Plugins Ihre Besucher in Ihren Browser aktiviert haben. Diese Informationen kann Ihnen dabei helfen, die beste Art zu finden, Ihre Inhalte auszuliefern."
}
diff --git a/plugins/DevicePlugins/lang/el.json b/plugins/DevicePlugins/lang/el.json
index a9ae56efba..21d73c9716 100644
--- a/plugins/DevicePlugins/lang/el.json
+++ b/plugins/DevicePlugins/lang/el.json
@@ -3,7 +3,7 @@
"BrowserWithNoPluginsEnabled": "%1$s με ανενεργά πρόσθετα",
"BrowserWithPluginsEnabled": "%1$s με %2$s πρόσθετα ενεργά",
"PluginDescription": "Αναφέρει τη λίστα με τα πρόσθετα που υποστηρίζουν τα προγράμματα πλοήγησης των επισκεπτών.",
- "PluginDetectionDoesNotWorkInIE": "Σημείωση: η ανίχνευση Προσθέτων δεν λειτουργεί στον Internet Explorer. Αυτή η αναφορά βασίζεται μόνο σε μη IE φυλλομετρητές.",
+ "PluginDetectionDoesNotWorkInIE": "Σημείωση: Ο εντοπισμός προσθέτων δεν λειτουργεί σε προγενέστερη έκδοση της 11 του Internet Explorer. Η αναφορά αυτή βασίζεται μόνο σε προγράμματα πλοήγησης που δεν είναι ο IE και σε νεότερες εκδόσεις του IE.",
"WidgetPlugins": "Λίστα προσθέτων",
"WidgetPluginsDocumentation": "Αυτή η αναφορά δείχνει ποια πρόσθετα φυλλομετρητή έχουν ενεργά οι επισκέπτες σας. Αυτή η πληροφορία ίσως είναι σημαντική για την επιλογή του πιο σωστού τρόπου απόδοσης του περιεχομένου σας."
}
diff --git a/plugins/DevicePlugins/lang/es.json b/plugins/DevicePlugins/lang/es.json
index 657c20aacd..115de91a27 100644
--- a/plugins/DevicePlugins/lang/es.json
+++ b/plugins/DevicePlugins/lang/es.json
@@ -3,7 +3,6 @@
"BrowserWithNoPluginsEnabled": "%1$s sin complementos habilitados",
"BrowserWithPluginsEnabled": "%1$s con los complementos %2$s habilitados",
"PluginDescription": "Informa la lista de complementos que están admitidos en los navegadores de internet de los visitantes.",
- "PluginDetectionDoesNotWorkInIE": "Nota: la detección de complementos no funciona con Internet Explorer. Este reporte solo funciona con navegadores no-IE.",
"WidgetPlugins": "Lista de Complementos",
"WidgetPluginsDocumentation": "Este informe muestra que extensiones del navegador sus visitantes han habilitado. Esta información puede ser importante sea para elegir el método eficiente de enviar su contenido."
}
diff --git a/plugins/DevicePlugins/lang/et.json b/plugins/DevicePlugins/lang/et.json
index b6cd3a8379..9f58c3c208 100644
--- a/plugins/DevicePlugins/lang/et.json
+++ b/plugins/DevicePlugins/lang/et.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "Märge: Lisatarkvara tuvastamine ei tööta Internet Exploreriga külastajatel. See raport kuvab andmeid mitte-IE veebisirvikute kohta.",
"WidgetPlugins": "Sirviku lisatarkvarad"
}
} \ No newline at end of file
diff --git a/plugins/DevicePlugins/lang/fa.json b/plugins/DevicePlugins/lang/fa.json
index ea9edd5c4c..358132510f 100644
--- a/plugins/DevicePlugins/lang/fa.json
+++ b/plugins/DevicePlugins/lang/fa.json
@@ -1,7 +1,6 @@
{
"DevicePlugins": {
"BrowserWithNoPluginsEnabled": "%1$s با هیچ پلاگین را فعال کنید",
- "PluginDetectionDoesNotWorkInIE": "توجه: تشخیص پلاگین در مرورگر اینترنت اکسپلورر کار نمی کند. این گزارش تنها بر روی مرورگرهای غیر اینترنت اکسپلورر است.",
"WidgetPlugins": "لیست افزونه ها",
"WidgetPluginsDocumentation": "این گزارش نشان می دهد که پلاگین مرورگر بازدید کننده خود را فعال کرده بود. این اطلاعات ممکن است مهم برای انتخاب راه درست برای ارائه محتوای خود را."
}
diff --git a/plugins/DevicePlugins/lang/fi.json b/plugins/DevicePlugins/lang/fi.json
index 529fc48f67..8011625ef1 100644
--- a/plugins/DevicePlugins/lang/fi.json
+++ b/plugins/DevicePlugins/lang/fi.json
@@ -2,7 +2,6 @@
"DevicePlugins": {
"BrowserWithNoPluginsEnabled": "%1$s ilman liitännäisiä aktivoitu",
"BrowserWithPluginsEnabled": "%1$s liitännäisillä %2$s on aktivoitu",
- "PluginDetectionDoesNotWorkInIE": "Huom: lisäosien tunnistus ei toimi Internet Explorerissa. Tämä raportti perustuu vain ei-IE-selaimiin.",
"WidgetPlugins": "Lista lisäosista",
"WidgetPluginsDocumentation": "Tämä raportti näyttää, mitä selainlisäosia vierailijoillasi oli käytössä. Tästä tiedosta voi olla hyötyä, kun joudut valitsemaan, miten tietoa esitetään ja välitetään vierailijoille."
}
diff --git a/plugins/DevicePlugins/lang/fr.json b/plugins/DevicePlugins/lang/fr.json
index 31262f7e9d..1faa74e338 100644
--- a/plugins/DevicePlugins/lang/fr.json
+++ b/plugins/DevicePlugins/lang/fr.json
@@ -3,7 +3,6 @@
"BrowserWithNoPluginsEnabled": "%1$s avec aucun plugin activé",
"BrowserWithPluginsEnabled": "%1$s avec les plugins %2$s activés",
"PluginDescription": "Rapporte la liste des composants supportés par les navigateurs des visiteurs.",
- "PluginDetectionDoesNotWorkInIE": "Note : La détection des plugins ne fonctionne pas avec Internet Explorer. Ce rapport est basé sur les autres navigateurs.",
"WidgetPlugins": "Liste de Plugins",
"WidgetPluginsDocumentation": "Ce rapport montre quels plugins du navigateur vos visiteurs ont activés. Cette information peut être importante pour choisir le bon moyen de délivrer le contenu."
}
diff --git a/plugins/DevicePlugins/lang/hi.json b/plugins/DevicePlugins/lang/hi.json
index d9d586601a..b5c036438e 100644
--- a/plugins/DevicePlugins/lang/hi.json
+++ b/plugins/DevicePlugins/lang/hi.json
@@ -3,7 +3,6 @@
"BrowserWithNoPluginsEnabled": "%1$s के साथ प्लगइन सक्रिय नहीं",
"BrowserWithPluginsEnabled": "प्लगिन %2$s से %1$s सक्षम",
"PluginDescription": "आगंतुकों ब्राउज़रों में समर्थन कर रहे हैं कि प्लग इन की सूची रिपोर्टें।",
- "PluginDetectionDoesNotWorkInIE": "नोट: प्लगइन्स का पता लगाने इंटरनेट एक्सप्लोरर में काम नहीं करता है. यह रिपोर्ट केवल गैर आईई ब्राउज़रों पर आधारित है.",
"WidgetPlugins": "ब्राउज़र प्लगइन्स"
}
} \ No newline at end of file
diff --git a/plugins/DevicePlugins/lang/hu.json b/plugins/DevicePlugins/lang/hu.json
index e68a307f11..fb8acbcfc6 100644
--- a/plugins/DevicePlugins/lang/hu.json
+++ b/plugins/DevicePlugins/lang/hu.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "A böngészők bővítményeinek detektálása nem működik az Internet Exlporernél, így ez a jelentés csak a nem Internet Explorert használó látogatók adatait jeleníti meg.",
"WidgetPlugins": "Bővítmények listája"
}
} \ No newline at end of file
diff --git a/plugins/DevicePlugins/lang/id.json b/plugins/DevicePlugins/lang/id.json
index 4aad881c58..d84a902671 100644
--- a/plugins/DevicePlugins/lang/id.json
+++ b/plugins/DevicePlugins/lang/id.json
@@ -2,7 +2,6 @@
"DevicePlugins": {
"BrowserWithNoPluginsEnabled": "%1$s dengan tanpa pengaya diaktifkan",
"BrowserWithPluginsEnabled": "%1$s dengan %2$s pengaya diaktifkan",
- "PluginDetectionDoesNotWorkInIE": "Catatan: Pendeteksian pengaya tidak bekerja di Internet Explorer. Laporan ini hanya berdasarkan pada peramban bukan-IE.",
"WidgetPlugins": "Daftar Pengaya",
"WidgetPluginsDocumentation": "Laporan ini menunjukkan pengaya peramban yang diaktifkan oleh pengunjung. Informasi yang tersedia kemungkinan penting untuk memilih cara terbaik untuk menyampaikan konten Anda."
}
diff --git a/plugins/DevicePlugins/lang/it.json b/plugins/DevicePlugins/lang/it.json
index 6cc5b75c27..d4cd19ae4a 100644
--- a/plugins/DevicePlugins/lang/it.json
+++ b/plugins/DevicePlugins/lang/it.json
@@ -3,7 +3,7 @@
"BrowserWithNoPluginsEnabled": "%1$s con nessun plugin abilitato",
"BrowserWithPluginsEnabled": "%1$s con plugin %2$s abilitati",
"PluginDescription": "Restituisce l'elenco dei plugin supportati dal browser dei visitatori.",
- "PluginDetectionDoesNotWorkInIE": "N.B.: Questo plugin non funziona su Internet Explorer. Questo report è basato solamente sugli utenti di altri browser.",
+ "PluginDetectionDoesNotWorkInIE": "Nota: L'individuazione dei plugin non funziona con versioni di Internet Explorer precedenti alla 11. Questo report è basato solamente su browser diversi da IE e con versioni recenti di IE.",
"WidgetPlugins": "Plugin Browser",
"WidgetPluginsDocumentation": "Questo report mostra quali plugin del browser i visitatori avevano abilitato. Questa informazione potrebbe essere importante per la scelta del giusto modo di inviare i tuoi contenuti."
}
diff --git a/plugins/DevicePlugins/lang/ja.json b/plugins/DevicePlugins/lang/ja.json
index 2f3623a5e0..20dd03c4ec 100644
--- a/plugins/DevicePlugins/lang/ja.json
+++ b/plugins/DevicePlugins/lang/ja.json
@@ -3,7 +3,6 @@
"BrowserWithNoPluginsEnabled": "%1$s のプラグインが有効ではありません",
"BrowserWithPluginsEnabled": "%1$s のプラグイン %2$s は有効",
"PluginDescription": "ビジターのブラウザでサポートされているプラグインの一覧を報告します。",
- "PluginDetectionDoesNotWorkInIE": "注意: Internet Explorer ではプラグインの検出が動作しません。 このリポートは、非 IE ブラウザのみに基づきます。",
"WidgetPlugins": "プラグイン一覧",
"WidgetPluginsDocumentation": "ビジターが利用しているブラウザのプラグインについてのリポートです。コンテンツの最適な表示方法を選択するために重要な情報です。"
}
diff --git a/plugins/DevicePlugins/lang/ko.json b/plugins/DevicePlugins/lang/ko.json
index 35c64c3187..84dfe3cec5 100644
--- a/plugins/DevicePlugins/lang/ko.json
+++ b/plugins/DevicePlugins/lang/ko.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "참고: Internet Explorer에서는 플러그인 검색이 작동하지 않습니다. 이 보고서는 IE 브라우저가 아닌것에 기반합니다.",
"WidgetPlugins": "플러그인 목록",
"WidgetPluginsDocumentation": "방문자가 사용하는 브라우저의 플러그인에 대한 보고서입니다. 컨텐츠에 대한 최적의 표시 방법을 선택하는 데 중요한 정보입니다."
}
diff --git a/plugins/DevicePlugins/lang/lt.json b/plugins/DevicePlugins/lang/lt.json
index 3a239c80ac..d7327339b3 100644
--- a/plugins/DevicePlugins/lang/lt.json
+++ b/plugins/DevicePlugins/lang/lt.json
@@ -1,7 +1,6 @@
{
"DevicePlugins": {
"PluginDescription": "Praneša lankytojų naršyklėse palaikomų papildinių sąrašą.",
- "PluginDetectionDoesNotWorkInIE": "Pastaba: papildinio aptikimas neveikia Internet Explorer naršyklėje. Ši ataskaita bus sugeneruota tik kitose naršyklėse.",
"WidgetPlugins": "Papildinių sąrašas",
"WidgetPluginsDocumentation": "Ši ataskaita parodo kuriuos naršyklės papildinius jūsų lankytojai buvo įjungę. Ši informacija gali būti svarbi, pasirenkant teisingą savo turinio pristatymo būdą."
}
diff --git a/plugins/DevicePlugins/lang/lv.json b/plugins/DevicePlugins/lang/lv.json
index c09ee9a33f..0a39815020 100644
--- a/plugins/DevicePlugins/lang/lv.json
+++ b/plugins/DevicePlugins/lang/lv.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "Piezīme: spraudņu noteikšana nedarbojas Internet Explorer pārlūkā. Šī atskaite ir bāzēta tikai uz ne-IE pārlūkiem.",
"WidgetPlugins": "Spraudņu saraksts",
"WidgetPluginsDocumentation": "Šajā atskaitē ir redzami pārlūku spraudņi, kuri bija ieslēgti apmeklētāju pārlūkos. Šī informācija ir svarīga, lai izvēlētos vislabāko veidu kā piegādāt saturu apmeklētājiem."
}
diff --git a/plugins/DevicePlugins/lang/nb.json b/plugins/DevicePlugins/lang/nb.json
index efddb7fda5..4a383adae4 100644
--- a/plugins/DevicePlugins/lang/nb.json
+++ b/plugins/DevicePlugins/lang/nb.json
@@ -3,7 +3,7 @@
"BrowserWithNoPluginsEnabled": "%1$s uten noen aktiverte utvidelser",
"BrowserWithPluginsEnabled": "%1$s med utvidelsene %2$s aktivert",
"PluginDescription": "Rapporter med lister av utvidelser som er støttet i besøkeres nettlesere.",
- "PluginDetectionDoesNotWorkInIE": "Merk: Utvidelsesdeteksjon fungerer ikke i Internet Explorer. Denne rapporten er kun basert på ikke-IE-nettlesere.",
+ "PluginDetectionDoesNotWorkInIE": "Merk. Utvidelsesgjenkjenning fungerer ikke i Internet Explorer før versjon 11. Denne rapporten baserer seg kun på ikke-IE-nettlesere og nyere versjoner av IE.",
"WidgetPlugins": "Liste over utvidelser",
"WidgetPluginsDocumentation": "Denne rapporten viser hvilke utvidelser som dine besøkere har aktivert. Denne informasjonen kan være nyttig for velge riktig måte å presentere ditt innhold."
}
diff --git a/plugins/DevicePlugins/lang/nl.json b/plugins/DevicePlugins/lang/nl.json
index 00fbe08ab7..3fa489c813 100644
--- a/plugins/DevicePlugins/lang/nl.json
+++ b/plugins/DevicePlugins/lang/nl.json
@@ -3,7 +3,6 @@
"BrowserWithNoPluginsEnabled": "%1$s zonder plugins ingeschakeld",
"BrowserWithPluginsEnabled": "%1$s met plugins %2$s ingeschakeld",
"PluginDescription": "Toont de lijst met plugins die ondersteund worden door de browsers van bezoekers.",
- "PluginDetectionDoesNotWorkInIE": "Opmerking: plugin detectie werkt niet in Internet Explorer. Het rapport is alleen gebaseerd op andere browsers dan IE",
"WidgetPlugins": "Geïnstalleerde plugins",
"WidgetPluginsDocumentation": "Dit rapport laat zien welke browserplugins uw bezoekers haden geïnstalleerd. Deze informatie kan van belang zijn voor het kiezen van de juiste manier om uw content aan te bieden."
}
diff --git a/plugins/DevicePlugins/lang/nn.json b/plugins/DevicePlugins/lang/nn.json
index 29ffb15b3f..d63c975d5f 100644
--- a/plugins/DevicePlugins/lang/nn.json
+++ b/plugins/DevicePlugins/lang/nn.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "Merk: Registrering av innstikk virkar ikkje i Internet Explorer. Denne rapporten er berre basert på andre nettlesarar enn IE.",
"WidgetPlugins": "Liste over innstikk"
}
} \ No newline at end of file
diff --git a/plugins/DevicePlugins/lang/pl.json b/plugins/DevicePlugins/lang/pl.json
index 1efe58f73b..4eba8d6909 100644
--- a/plugins/DevicePlugins/lang/pl.json
+++ b/plugins/DevicePlugins/lang/pl.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "Uwaga: wykrywanie wtyczek nie działa w przypadku Internet Explorera. Raport ten pokaże tylko wyniki w oparciu o badanie innych przeglądarek, nie opartych na silniku IE.",
"WidgetPlugins": "Lista wtyczek"
}
} \ No newline at end of file
diff --git a/plugins/DevicePlugins/lang/pt-br.json b/plugins/DevicePlugins/lang/pt-br.json
index 7e813b2ea8..7268b700a5 100644
--- a/plugins/DevicePlugins/lang/pt-br.json
+++ b/plugins/DevicePlugins/lang/pt-br.json
@@ -3,7 +3,7 @@
"BrowserWithNoPluginsEnabled": "%1$s sem plugins ativados",
"BrowserWithPluginsEnabled": "%1$s com os plugins %2$s ativados",
"PluginDescription": "Informa a lista de plugins que são suportados nos navegadores dos Visitantes.",
- "PluginDetectionDoesNotWorkInIE": "Nota: a detecção de plugins não funciona no Internet Explorer. Esse relatório é baseado apenas em navegadores não IE.",
+ "PluginDetectionDoesNotWorkInIE": "Nota: A detecção de plugins não funciona no Internet Explorer anterior ao 11. Este relatório se baseia apenas em navegadores não-IE e versões mais recentes do IE.",
"WidgetPlugins": "Lista de Plugins",
"WidgetPluginsDocumentation": "Este relatório mostra quais plugins de navegador seus visitantes tinham ativado. Esta informação pode ser importante para escolher o caminho certo para levar o seu conteúdo."
}
diff --git a/plugins/DevicePlugins/lang/pt.json b/plugins/DevicePlugins/lang/pt.json
index 9c6ee983ae..187807a0f1 100644
--- a/plugins/DevicePlugins/lang/pt.json
+++ b/plugins/DevicePlugins/lang/pt.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "Nota: Detecção de plugins não funciona no Internet Explorer. Este relatório só se baseia em navegadores não-IE.",
"WidgetPlugins": "Lista de Plugins",
"WidgetPluginsDocumentation": "Este relatório mostra quais os plugin que o navegador dos seus visitantes tinham. Esta informação pode ser importante para a escolha do caminho certo para distribuir o seu conteúdo."
}
diff --git a/plugins/DevicePlugins/lang/ro.json b/plugins/DevicePlugins/lang/ro.json
index d8c8b21387..3239749de9 100644
--- a/plugins/DevicePlugins/lang/ro.json
+++ b/plugins/DevicePlugins/lang/ro.json
@@ -2,7 +2,6 @@
"DevicePlugins": {
"BrowserWithNoPluginsEnabled": "%1$s fără plugin-uri activate",
"BrowserWithPluginsEnabled": "%1$s cu plugin-uri %2$s activate",
- "PluginDetectionDoesNotWorkInIE": "Notă: de detectare a plugin-uri nu funcționează în Internet Explorer. Acest raport se bazează doar pe browsere non-IE.",
"WidgetPlugins": "Lista pluginurilor",
"WidgetPluginsDocumentation": "Acest raport arată ce plugin-uri de browser-ul au activat vizitatorii. Aceste informație ar putea fi importanta pentru a alege modul corect de a livra conținut."
}
diff --git a/plugins/DevicePlugins/lang/ru.json b/plugins/DevicePlugins/lang/ru.json
index 9b13987951..b1ae429313 100644
--- a/plugins/DevicePlugins/lang/ru.json
+++ b/plugins/DevicePlugins/lang/ru.json
@@ -2,7 +2,6 @@
"DevicePlugins": {
"BrowserWithNoPluginsEnabled": "%1$s без активированных плагинов",
"PluginDescription": "Сообщает список плагинов, доступных в браузерах посетителей.",
- "PluginDetectionDoesNotWorkInIE": "Учтите: Определение плагинов не работает в Internet Explorer. Этот отчет содержит информацию о не-IE браузерах.",
"WidgetPlugins": "Список плагинов",
"WidgetPluginsDocumentation": "Этот отчет показывается какие плагины посетители используют в своих браузерах. Эта информация может быть важна для того, чтобы посетители смогли видеть ваш контент должным образом."
}
diff --git a/plugins/DevicePlugins/lang/sk.json b/plugins/DevicePlugins/lang/sk.json
index 8ef5c5a693..842b3ce1b3 100644
--- a/plugins/DevicePlugins/lang/sk.json
+++ b/plugins/DevicePlugins/lang/sk.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "Poznámka: Plugin detekcia nefunguje v Internet Exploreri. Táto správa je založená len na non-IE prehliadačov.",
"WidgetPlugins": "Zoznam modulov"
}
} \ No newline at end of file
diff --git a/plugins/DevicePlugins/lang/sq.json b/plugins/DevicePlugins/lang/sq.json
index 1c9ca0ebad..7550b4b423 100644
--- a/plugins/DevicePlugins/lang/sq.json
+++ b/plugins/DevicePlugins/lang/sq.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "Shënim: Zbulimi i shtojcave nuk funksionon nën Internet Explorer. Ky raport mund të kihet vetëm nën shfletuesa jo-IE.",
"WidgetPlugins": "Listë e Shtojcave",
"WidgetPluginsDocumentation": "Ky raport tregon se cilat shtojca shfletuesi kanë të aktivizuara vizitorët tuaj. Ky informacion mund të jetë i vlefshëm për zgjedhjen e mënyrës më të përshtatshme për ofrimin e lëndës suaj."
}
diff --git a/plugins/DevicePlugins/lang/sr.json b/plugins/DevicePlugins/lang/sr.json
index 4e86c9f826..bcb3803323 100644
--- a/plugins/DevicePlugins/lang/sr.json
+++ b/plugins/DevicePlugins/lang/sr.json
@@ -3,7 +3,6 @@
"BrowserWithNoPluginsEnabled": "%1$s sa isključenim dodacima",
"BrowserWithPluginsEnabled": "%1$s sa uključenim dodacima %2$s",
"PluginDescription": "Prikazuje spisak dodataka koji su podržani u brauzerima posetilaca.",
- "PluginDetectionDoesNotWorkInIE": "Pažnja: detekcija dodataka ne radi kod Internet Explorera. Ovaj izveštaj se odnosi samo na brauzere koji nisu Internet Exlorer",
"WidgetPlugins": "Lista dodataka",
"WidgetPluginsDocumentation": "Ovaj izveštaj prikazuje koje dodatke za brauzere vaši posetioci imaju uključene. Ova informacija može biti od značaja prilikom odabira pravog načina prikaza sadržaja na vašem sajtu."
}
diff --git a/plugins/DevicePlugins/lang/sv.json b/plugins/DevicePlugins/lang/sv.json
index 4a1fa27e99..b5b98eced9 100644
--- a/plugins/DevicePlugins/lang/sv.json
+++ b/plugins/DevicePlugins/lang/sv.json
@@ -3,7 +3,6 @@
"BrowserWithNoPluginsEnabled": "%1$s med inga plugins är aktiverad",
"BrowserWithPluginsEnabled": "%1$s med plugins %2$s är aktiverad",
"PluginDescription": "Visar en lista av plugins som stöds i besökarnas webbläsare.",
- "PluginDetectionDoesNotWorkInIE": "Notering: Plugins upptäckt fungerar inte i Internet Explorer. Denna rapport är endast baserad på icke-IE webbläsare.",
"WidgetPlugins": "Lista över plugins",
"WidgetPluginsDocumentation": "Denna rapport visar vilka plugins i webbläsaren som besökarna hade aktiverat. Denna information kan vara viktig för att välja rätt sätt att leverera ditt innehåll."
}
diff --git a/plugins/DevicePlugins/lang/th.json b/plugins/DevicePlugins/lang/th.json
index 664c466eb3..7fede0c31b 100644
--- a/plugins/DevicePlugins/lang/th.json
+++ b/plugins/DevicePlugins/lang/th.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "หมายเหตุ: ตรวจสอบปลั๊กอินไม่ทำงานใน Internet Explorer รายงานนี้จะอิงตามเฉพาะเบราว์เซอร์ที่ไม่ใช่ IE",
"WidgetPlugins": "รายการปลั้กอิน"
}
} \ No newline at end of file
diff --git a/plugins/DevicePlugins/lang/tl.json b/plugins/DevicePlugins/lang/tl.json
index c0ce59acc1..2e8675dfc0 100644
--- a/plugins/DevicePlugins/lang/tl.json
+++ b/plugins/DevicePlugins/lang/tl.json
@@ -2,7 +2,6 @@
"DevicePlugins": {
"BrowserWithNoPluginsEnabled": "%1$s na may plugins na hindi pinapagana",
"BrowserWithPluginsEnabled": "%1$s na may mga plugin %2$s na naka-enable",
- "PluginDetectionDoesNotWorkInIE": "Tandaan: Ang pagtingin ng Plugin ay hindi gumagana sa Internet Explorer. Ang ulat na ito ay batay lamang sa mga browser na hindi-IE.",
"WidgetPlugins": "Browser Plugins",
"WidgetPluginsDocumentation": "Ang ulat na ito ay ipinapakita kung anong browser plugis ang gumagana sa iyong bisita. Ang impormasyon na ito may maaring mahalaga sa pagpili kung paanu ihahatid ang nilalaman nito."
}
diff --git a/plugins/DevicePlugins/lang/tr.json b/plugins/DevicePlugins/lang/tr.json
index 94ce8e428e..9a4de058ba 100644
--- a/plugins/DevicePlugins/lang/tr.json
+++ b/plugins/DevicePlugins/lang/tr.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "Not: Hedeflenen eklenti Internet Explorer çalışmamaktadir. Bu not\/rapor sadece IE içindir.",
"WidgetPlugins": "Eklenti Listesi"
}
} \ No newline at end of file
diff --git a/plugins/DevicePlugins/lang/uk.json b/plugins/DevicePlugins/lang/uk.json
index 142c1f2e63..1f2acce1e5 100644
--- a/plugins/DevicePlugins/lang/uk.json
+++ b/plugins/DevicePlugins/lang/uk.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "Примітка: Визначення плагінів не працює в Internet Explorer. Цей звіт базується лише на не-IE веб-оглядачах.",
"WidgetPlugins": "Список плагінів"
}
} \ No newline at end of file
diff --git a/plugins/DevicePlugins/lang/vi.json b/plugins/DevicePlugins/lang/vi.json
index 03098daac0..f10a113005 100644
--- a/plugins/DevicePlugins/lang/vi.json
+++ b/plugins/DevicePlugins/lang/vi.json
@@ -2,7 +2,6 @@
"DevicePlugins": {
"BrowserWithNoPluginsEnabled": "%1$s không có plugin nào được kích hoạt",
"BrowserWithPluginsEnabled": "%1$s với plugin %2$s đã kích hoạt",
- "PluginDetectionDoesNotWorkInIE": "Chú ý: Các Plugin phát hiện không làm việc trên Internet Explorer. Báo cáo này chỉ dựa trên trình duyệt không phải IE.",
"WidgetPlugins": "Các Plugin trình duyệt",
"WidgetPluginsDocumentation": "Báo cáo này cho thấy các plugin trình duyệt mà khách truy cập của bạn đã kích hoạt. Thông tin này có thể là quan trọng cho việc lựa chọn cách đúng để cung cấp nội dung của bạn."
}
diff --git a/plugins/DevicePlugins/lang/zh-cn.json b/plugins/DevicePlugins/lang/zh-cn.json
index 94e33f2469..8d5c0a3234 100644
--- a/plugins/DevicePlugins/lang/zh-cn.json
+++ b/plugins/DevicePlugins/lang/zh-cn.json
@@ -2,7 +2,6 @@
"DevicePlugins": {
"BrowserWithNoPluginsEnabled": "%1$s 没有启用插件",
"BrowserWithPluginsEnabled": "%1$s 启用插件%2$s",
- "PluginDetectionDoesNotWorkInIE": "注意: 插件检查无法在 Internet Explorer 上运行。这个报表仅提供非 IE 浏览器。",
"WidgetPlugins": "浏览器插件清单",
"WidgetPluginsDocumentation": "本报表显示访客使用的浏览器插件,这可能对如何发布您的内容很重要。"
}
diff --git a/plugins/DevicePlugins/lang/zh-tw.json b/plugins/DevicePlugins/lang/zh-tw.json
index 3525eebf47..cf32c00f58 100644
--- a/plugins/DevicePlugins/lang/zh-tw.json
+++ b/plugins/DevicePlugins/lang/zh-tw.json
@@ -1,6 +1,5 @@
{
"DevicePlugins": {
- "PluginDetectionDoesNotWorkInIE": "注意:外掛偵測無法在 Internet Explorer 上運作。這個報告僅提供非 IE 瀏覽器。",
"WidgetPlugins": "瀏覽器外掛清單"
}
} \ No newline at end of file
diff --git a/plugins/DevicesDetection/API.php b/plugins/DevicesDetection/API.php
index b6e484f924..69b3f80cdb 100644
--- a/plugins/DevicesDetection/API.php
+++ b/plugins/DevicesDetection/API.php
@@ -96,6 +96,7 @@ class API extends \Piwik\Plugin\API
$dataTable = $this->getDataTable('DevicesDetection_brands', $idSite, $period, $date, $segment);
$dataTable->filter('ColumnCallbackReplace', array('label', __NAMESPACE__ . '\getDeviceBrandLabel'));
$dataTable->filter('ColumnCallbackAddMetadata', array('label', 'logo', __NAMESPACE__ . '\getBrandLogo'));
+ $dataTable->filter('AddSegmentByLabel', array('deviceBrand'));
return $dataTable;
}
diff --git a/plugins/DevicesDetection/Columns/DeviceBrand.php b/plugins/DevicesDetection/Columns/DeviceBrand.php
index d5b06617ec..f21d1ed15e 100644
--- a/plugins/DevicesDetection/Columns/DeviceBrand.php
+++ b/plugins/DevicesDetection/Columns/DeviceBrand.php
@@ -8,7 +8,9 @@
*/
namespace Piwik\Plugins\DevicesDetection\Columns;
+use DeviceDetector\Parser\Device\DeviceParserAbstract;
use Piwik\Piwik;
+use Piwik\Plugins\DevicesDetection\Segment;
use Piwik\Tracker\Request;
use Piwik\Tracker\Visitor;
use Piwik\Tracker\Action;
@@ -23,6 +25,28 @@ class DeviceBrand extends Base
return Piwik::translate('DevicesDetection_DeviceBrand');
}
+ protected function configureSegments()
+ {
+ $brands = DeviceParserAbstract::$deviceBrands;
+ $brandList = implode(", ", $brands);
+
+ $segment = new Segment();
+ $segment->setSegment('deviceBrand');
+ $segment->setName('DevicesDetection_DeviceBrand');
+ $segment->setAcceptedValues($brandList);
+ $segment->setSqlFilter(function ($brand) use ($brandList, $brands) {
+ if ($brand == Piwik::translate('General_Unknown')) {
+ return '';
+ }
+ $index = array_search(trim(urldecode($brand)), $brands);
+ if ($index === false) {
+ throw new \Exception("deviceBrand segment must be one of: $brandList");
+ }
+ return $index;
+ });
+ $this->addSegment($segment);
+ }
+
/**
* @param Request $request
* @param Visitor $visitor
diff --git a/plugins/DevicesDetection/functions.php b/plugins/DevicesDetection/functions.php
index 2142c90487..0feafaebca 100644
--- a/plugins/DevicesDetection/functions.php
+++ b/plugins/DevicesDetection/functions.php
@@ -127,7 +127,7 @@ function getDeviceTypeLabel($label)
'desktop' => 'General_Desktop',
'smartphone' => 'DevicesDetection_Smartphone',
'tablet' => 'DevicesDetection_Tablet',
- 'phablet' => 'DevicesDetection_Phablet',
+ 'phablet' => 'DevicesDetection_Phablet',
'feature phone' => 'DevicesDetection_FeaturePhone',
'console' => 'DevicesDetection_Console',
'tv' => 'DevicesDetection_TV',
diff --git a/plugins/DevicesDetection/lang/lt.json b/plugins/DevicesDetection/lang/lt.json
index 26e803b3cd..7670af6847 100644
--- a/plugins/DevicesDetection/lang/lt.json
+++ b/plugins/DevicesDetection/lang/lt.json
@@ -1,6 +1,7 @@
{
"DevicesDetection": {
"BrowserEngine": "Naršyklė",
+ "BrowserEngines": "Naršyklių moduliai",
"BrowserFamily": "Naršyklių šeimos",
"Browsers": "Naršyklės",
"BrowserVersion": "Naršyklės versija",
diff --git a/plugins/Diagnostics/ConfigReader.php b/plugins/Diagnostics/ConfigReader.php
new file mode 100644
index 0000000000..22f95fc6eb
--- /dev/null
+++ b/plugins/Diagnostics/ConfigReader.php
@@ -0,0 +1,193 @@
+<?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\Diagnostics;
+
+use Piwik\Development;
+use Piwik\Ini\IniReader;
+use Piwik\Application\Kernel\GlobalSettingsProvider;
+use Piwik\Settings as PiwikSettings;
+use Piwik\Plugin\Settings as PluginSettings;
+
+/**
+ * A diagnostic report contains all the results of all the diagnostics.
+ */
+class ConfigReader
+{
+ /**
+ * @var GlobalSettingsProvider
+ */
+ private $settings;
+
+ /**
+ * @var IniReader
+ */
+ private $iniReader;
+
+ public function __construct(GlobalSettingsProvider $settings, IniReader $iniReader)
+ {
+ $this->settings = $settings;
+ $this->iniReader = $iniReader;
+ }
+
+ public function getConfigValuesFromFiles()
+ {
+ $ini = $this->settings->getIniFileChain();
+ $descriptions = $this->iniReader->readComments($this->settings->getPathGlobal());
+
+ $copy = array();
+ foreach ($ini->getAll() as $category => $values) {
+ if ($this->shouldSkipCategory($category)) {
+ continue;
+ }
+
+ $local = $this->getFromLocalConfig($category);
+ if (empty($local)) {
+ $local = array();
+ }
+
+ $global = $this->getFromGlobalConfig($category);
+ if (empty($global)) {
+ $global = array();
+ }
+
+ $copy[$category] = array();
+ foreach ($values as $key => $value) {
+
+ $newValue = $value;
+ if ($this->isKeyAPassword($key)) {
+ $newValue = $this->getMaskedPassword();
+ }
+
+ $defaultValue = null;
+ if (array_key_exists($key, $global)) {
+ $defaultValue = $global[$key];
+ }
+
+ $description = '';
+ if (!empty($descriptions[$category][$key])) {
+ $description = trim($descriptions[$category][$key]);
+ }
+
+ $copy[$category][$key] = array(
+ 'value' => $newValue,
+ 'description' => $description,
+ 'isCustomValue' => array_key_exists($key, $local),
+ 'defaultValue' => $defaultValue,
+ );
+ }
+ }
+
+ return $copy;
+ }
+
+ private function shouldSkipCategory($category)
+ {
+ $category = strtolower($category);
+ if ($category === 'database') {
+ return true;
+ }
+
+ $developmentOnlySections = array('database_tests', 'tests', 'debugtests');
+
+ return !Development::isEnabled() && in_array($category, $developmentOnlySections);
+ }
+
+ public function getFromGlobalConfig($name)
+ {
+ return $this->settings->getIniFileChain()->getFrom($this->settings->getPathGlobal(), $name);
+ }
+
+ public function getFromLocalConfig($name)
+ {
+ return $this->settings->getIniFileChain()->getFrom($this->settings->getPathLocal(), $name);
+ }
+
+ private function getMaskedPassword()
+ {
+ return '******';
+ }
+
+ private function isKeyAPassword($key)
+ {
+ $key = strtolower($key);
+ $passwordFields = array(
+ 'password', 'secret', 'apikey', 'privatekey', 'admin_pass'
+ );
+ foreach ($passwordFields as $value) {
+ if (strpos($key, $value) !== false) {
+ return true;
+ }
+ }
+
+ if ($key === 'salt') {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Adds config values that can be used to overwrite a plugin system setting and adds a description + default value
+ * for already existing configured config values that overwrite a plugin system setting.
+ *
+ * @param array $configValues
+ * @param \Piwik\Plugin\Settings[] $pluginSettings
+ * @return array
+ */
+ public function addConfigValuesFromPluginSettings($configValues, $pluginSettings)
+ {
+ foreach ($pluginSettings as $pluginSetting) {
+ $pluginName = $pluginSetting->getPluginName();
+
+ if (empty($pluginName)) {
+ continue;
+ }
+
+ $configs[$pluginName] = array();
+
+ foreach ($pluginSetting->getSettings() as $setting) {
+ if ($setting instanceof PiwikSettings\SystemSetting && $setting->isReadableByCurrentUser()) {
+ $name = $setting->getName();
+
+ $description = '';
+ if (!empty($setting->description)) {
+ $description .= $setting->description . ' ';
+ }
+
+ if (!empty($setting->inlineHelp)) {
+ $description .= $setting->inlineHelp;
+ }
+
+ if (isset($configValues[$pluginName][$name])) {
+ $configValues[$pluginName][$name]['defaultValue'] = $setting->defaultValue;
+ $configValues[$pluginName][$name]['description'] = trim($description);
+
+ if ($setting->uiControlType === PluginSettings::CONTROL_PASSWORD) {
+ $value = $configValues[$pluginName][$name]['value'];
+ $configValues[$pluginName][$name]['value'] = $this->getMaskedPassword();
+ }
+ } else {
+ $defaultValue = $setting->getValue();
+ $configValues[$pluginName][$name] = array(
+ 'value' => null,
+ 'description' => trim($description),
+ 'isCustomValue' => false,
+ 'defaultValue' => $defaultValue
+ );
+ }
+ }
+ }
+
+ if (empty($configValues[$pluginName])) {
+ unset($configValues[$pluginName]);
+ }
+ }
+
+ return $configValues;
+ }
+}
diff --git a/plugins/Diagnostics/Controller.php b/plugins/Diagnostics/Controller.php
new file mode 100644
index 0000000000..7d2341a195
--- /dev/null
+++ b/plugins/Diagnostics/Controller.php
@@ -0,0 +1,66 @@
+<?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\Diagnostics;
+
+use Piwik\Config;
+use Piwik\Piwik;
+use Piwik\View;
+use Piwik\Settings;
+
+class Controller extends \Piwik\Plugin\ControllerAdmin
+{
+ /**
+ * @var ConfigReader
+ */
+ private $configReader;
+
+ public function __construct(ConfigReader $configReader)
+ {
+ $this->configReader = $configReader;
+ parent::__construct();
+ }
+
+ public function configfile()
+ {
+ Piwik::checkUserHasSuperUserAccess();
+
+ $allSettings = Settings\Manager::getAllPluginSettings();
+
+ $configValues = $this->configReader->getConfigValuesFromFiles();
+ $configValues = $this->configReader->addConfigValuesFromPluginSettings($configValues, $allSettings);
+ $configValues = $this->sortConfigValues($configValues);
+
+ return $this->renderTemplate('configfile', array(
+ 'allConfigValues' => $configValues
+ ));
+ }
+
+ private function sortConfigValues($configValues)
+ {
+ // we sort by sections alphabetically
+ uksort($configValues, function ($section1, $section2) {
+ return strcasecmp($section1, $section2);
+ });
+
+ foreach ($configValues as $category => &$settings) {
+ // we sort keys alphabetically but list the ones that are changed first
+ uksort($settings, function ($setting1, $setting2) use ($settings) {
+ if ($settings[$setting1]['isCustomValue'] && !$settings[$setting2]['isCustomValue']) {
+ return -1;
+ } elseif (!$settings[$setting1]['isCustomValue'] && $settings[$setting2]['isCustomValue']) {
+ return 1;
+ }
+ return strcasecmp($setting1, $setting2);
+ });
+ }
+
+ return $configValues;
+ }
+
+}
diff --git a/plugins/Diagnostics/Diagnostic/LoadDataInfileCheck.php b/plugins/Diagnostics/Diagnostic/LoadDataInfileCheck.php
index 2c69111ebb..0d06ceef04 100644
--- a/plugins/Diagnostics/Diagnostic/LoadDataInfileCheck.php
+++ b/plugins/Diagnostics/Diagnostic/LoadDataInfileCheck.php
@@ -50,7 +50,8 @@ class LoadDataInfileCheck implements Diagnostic
array($testOptionNames[0], '1'),
array($testOptionNames[1], '2'),
),
- $throwException = true
+ $throwException = true,
+ $charset = 'latin1'
);
} catch (\Exception $ex) {
$errorMessage = str_replace("\n", "<br/>", $ex->getMessage());
diff --git a/plugins/Diagnostics/Diagnostic/RecommendedExtensionsCheck.php b/plugins/Diagnostics/Diagnostic/RecommendedExtensionsCheck.php
index b61ef4cbac..a3c0a2c933 100644
--- a/plugins/Diagnostics/Diagnostic/RecommendedExtensionsCheck.php
+++ b/plugins/Diagnostics/Diagnostic/RecommendedExtensionsCheck.php
@@ -31,9 +31,12 @@ class RecommendedExtensionsCheck implements Diagnostic
$result = new DiagnosticResult($label);
$loadedExtensions = @get_loaded_extensions();
+ $loadedExtensions = array_map(function ($extension) {
+ return strtolower($extension);
+ }, $loadedExtensions);
foreach ($this->getRecommendedExtensions() as $extension) {
- if (! in_array($extension, $loadedExtensions)) {
+ if (! in_array(strtolower($extension), $loadedExtensions)) {
$status = DiagnosticResult::STATUS_WARNING;
$comment = $extension . '<br/>' . $this->getHelpMessage($extension);
} else {
diff --git a/plugins/Diagnostics/Diagnostics.php b/plugins/Diagnostics/Diagnostics.php
index f69d1f45d1..9760be5b05 100644
--- a/plugins/Diagnostics/Diagnostics.php
+++ b/plugins/Diagnostics/Diagnostics.php
@@ -12,4 +12,19 @@ use Piwik\Plugin;
class Diagnostics extends Plugin
{
+ /**
+ * @see Piwik\Plugin::registerEvents
+ */
+ public function registerEvents()
+ {
+ return array(
+ 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
+ );
+ }
+
+ public function getStylesheetFiles(&$stylesheets)
+ {
+ $stylesheets[] = "plugins/Diagnostics/stylesheets/configfile.less";
+ }
+
}
diff --git a/plugins/Diagnostics/Menu.php b/plugins/Diagnostics/Menu.php
new file mode 100644
index 0000000000..52c28699b5
--- /dev/null
+++ b/plugins/Diagnostics/Menu.php
@@ -0,0 +1,28 @@
+<?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\Diagnostics;
+
+use Piwik\Menu\MenuAdmin;
+use Piwik\Piwik;
+
+/**
+ * This class allows you to add, remove or rename menu items.
+ * To configure a menu (such as Admin Menu, Reporting Menu, User Menu...) simply call the corresponding methods as
+ * described in the API-Reference http://developer.piwik.org/api-reference/Piwik/Menu/MenuAbstract
+ */
+class Menu extends \Piwik\Plugin\Menu
+{
+ public function configureAdminMenu(MenuAdmin $menu)
+ {
+ if (Piwik::hasUserSuperUserAccess()) {
+ $menu->addDiagnosticItem('Diagnostics_ConfigFileTitle', $this->urlForAction('configfile'), $orderId = 30);
+ }
+ }
+
+}
diff --git a/plugins/Diagnostics/Test/Integration/ConfigReaderTest.php b/plugins/Diagnostics/Test/Integration/ConfigReaderTest.php
new file mode 100644
index 0000000000..bb05cb61e7
--- /dev/null
+++ b/plugins/Diagnostics/Test/Integration/ConfigReaderTest.php
@@ -0,0 +1,261 @@
+<?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\Diagnostics\Test\Integration\Commands;
+
+use Piwik\Application\Kernel\GlobalSettingsProvider;
+use Piwik\Ini\IniReader;
+use Piwik\Plugins\Diagnostics\ConfigReader;
+use Piwik\Plugins\ExampleSettingsPlugin\Settings;
+use Piwik\Tests\Fixtures\OneVisitorTwoVisits;
+use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
+
+/**
+ * TODO: This could be a unit test if we could inject the ArchiveTableDao in the command
+ * @group Diagnostics
+ * @group Plugins
+ */
+class ConfigReaderTest extends IntegrationTestCase
+{
+ /**
+ * @var ConfigReader
+ */
+ private $configReader;
+
+ public function setUp()
+ {
+ $settings = new GlobalSettingsProvider($this->configPath('global.ini.php'), $this->configPath('config.ini.php'), $this->configPath('common.config.ini.php'));
+ $this->configReader = new ConfigReader($settings, new IniReader());
+ }
+
+ public function test_getConfigValuesFromFiles()
+ {
+ $fileConfig = $this->configReader->getConfigValuesFromFiles();
+
+ $expected = array (
+ 'Category' =>
+ array (
+ 'key1' =>
+ array (
+ 'value' => 'value_overwritten',
+ 'description' => '',
+ 'isCustomValue' => true,
+ 'defaultValue' => 'value1',
+ ),
+ 'key2' =>
+ array (
+ 'value' => 'valueCommon',
+ 'description' => '',
+ 'isCustomValue' => false,
+ 'defaultValue' => 'value2',
+ ),
+ 'key3' =>
+ array (
+ 'value' => '${@piwik(crash))}',
+ 'description' => '',
+ 'isCustomValue' => false,
+ 'defaultValue' => NULL,
+ ),
+ ),
+ 'CategoryOnlyInGlobalFile' =>
+ array (
+ 'key3' =>
+ array (
+ 'value' => 'value3',
+ 'description' => 'test comment',
+ 'isCustomValue' => false,
+ 'defaultValue' => 'value3',
+ ),
+ 'key4' =>
+ array (
+ 'value' => 'value4',
+ 'description' => 'test comment 4',
+ 'isCustomValue' => false,
+ 'defaultValue' => 'value4',
+ ),
+ ),
+ 'TestArray' =>
+ array (
+ 'installed' =>
+ array (
+ 'value' =>
+ array (
+ 0 => 'plugin"1',
+ 1 => 'plugin2',
+ 2 => 'plugin3',
+ ),
+ 'description' => 'test comment 2
+with multiple lines',
+ 'isCustomValue' => true,
+ 'defaultValue' =>
+ array (
+ 0 => 'plugin1',
+ 1 => 'plugin4',
+ ),
+ ),
+ ),
+ 'TestArrayOnlyInGlobalFile' =>
+ array (
+ 'my_array' =>
+ array (
+ 'value' =>
+ array (
+ 0 => 'value1',
+ 1 => 'value2',
+ ),
+ 'description' => '',
+ 'isCustomValue' => false,
+ 'defaultValue' =>
+ array (
+ 0 => 'value1',
+ 1 => 'value2',
+ ),
+ ),
+ ),
+ 'GeneralSection' =>
+ array (
+ 'password' =>
+ array (
+ 'value' => '******',
+ 'description' => '',
+ 'isCustomValue' => true,
+ 'defaultValue' => NULL,
+ ),
+ 'login' =>
+ array (
+ 'value' => 'tes"t',
+ 'description' => '',
+ 'isCustomValue' => true,
+ 'defaultValue' => NULL,
+ ),
+ ),
+ 'TestOnlyInCommon' =>
+ array (
+ 'value' =>
+ array (
+ 'value' => 'commonValue',
+ 'description' => '',
+ 'isCustomValue' => false,
+ 'defaultValue' => NULL,
+ ),
+ ),
+ 'Tracker' =>
+ array (
+ 'commonConfigTracker' =>
+ array (
+ 'value' => 'commonConfigTrackerValue',
+ 'description' => '',
+ 'isCustomValue' => false,
+ 'defaultValue' => NULL,
+ ),
+ ),
+ );
+ $this->assertEquals($expected, $fileConfig);
+ }
+
+ public function test_addConfigValuesFromPluginSettings()
+ {
+ $settings = new Settings();
+
+ $configValues = $this->configReader->addConfigValuesFromPluginSettings(array(), array($settings));
+
+ $expected = array (
+ 'ExampleSettingsPlugin' =>
+ array (
+ 'metric' =>
+ array (
+ 'value' => NULL,
+ 'description' => 'Choose the metric that should be displayed in the browser tab',
+ 'isCustomValue' => false,
+ 'defaultValue' => 'nb_visits',
+ ),
+ 'browsers' =>
+ array (
+ 'value' => NULL,
+ 'description' => 'The value will be only displayed in the following browsers',
+ 'isCustomValue' => false,
+ 'defaultValue' =>
+ array (
+ 0 => 'firefox',
+ 1 => 'chromium',
+ 2 => 'safari',
+ ),
+ ),
+ 'description' =>
+ array (
+ 'value' => NULL,
+ 'description' => 'This description will be displayed next to the value',
+ 'isCustomValue' => false,
+ 'defaultValue' => 'This is the value:
+Another line',
+ ),
+ 'password' =>
+ array (
+ 'value' => NULL,
+ 'description' => 'Password for the 3rd API where we fetch the value',
+ 'isCustomValue' => false,
+ 'defaultValue' => NULL,
+ ),
+ ),
+ );
+ $this->assertEquals($expected, $configValues);
+ }
+
+ public function test_addConfigValuesFromPluginSettings_shouldAddDescriptionAndDefaultValueForExistingConfigValues()
+ {
+ $settings = new Settings();
+
+ $existing = array(
+ 'ExampleSettingsPlugin' =>
+ array (
+ 'metric' =>
+ array (
+ 'value' => NULL,
+ 'description' => '',
+ 'isCustomValue' => false,
+ 'defaultValue' => null,
+ ),
+ )
+ );
+
+ $configValues = $this->configReader->addConfigValuesFromPluginSettings($existing, array($settings));
+
+ $this->assertSame('Choose the metric that should be displayed in the browser tab', $configValues['ExampleSettingsPlugin']['metric']['description']);
+ $this->assertSame('nb_visits', $configValues['ExampleSettingsPlugin']['metric']['defaultValue']);
+ }
+
+ public function test_addConfigValuesFromPluginSettings_shouldMaskValueIfTypeIsPassword()
+ {
+ $settings = new Settings();
+ $settings->metric->uiControlType = Settings::CONTROL_PASSWORD;
+
+ $existing = array(
+ 'ExampleSettingsPlugin' =>
+ array (
+ 'metric' =>
+ array (
+ 'value' => 'test',
+ 'description' => '',
+ 'isCustomValue' => false,
+ 'defaultValue' => null,
+ ),
+ )
+ );
+
+ $configValues = $this->configReader->addConfigValuesFromPluginSettings($existing, array($settings));
+
+ $this->assertSame('******', $configValues['ExampleSettingsPlugin']['metric']['value']);
+ }
+
+ private function configPath($file)
+ {
+ return PIWIK_INCLUDE_PATH . '/tests/resources/Config/' . $file;
+ }
+}
+
+AnalyzeArchiveTableTest::$fixture = new OneVisitorTwoVisits(); \ No newline at end of file
diff --git a/plugins/Diagnostics/lang/ar.json b/plugins/Diagnostics/lang/ar.json
new file mode 100644
index 0000000000..08b255b67a
--- /dev/null
+++ b/plugins/Diagnostics/lang/ar.json
@@ -0,0 +1,7 @@
+{
+ "Diagnostics": {
+ "ConfigFileTitle": "ملف الضبط",
+ "HideUnchanged": "يمكنك %1$s إخفاء كل القيم التي لم تتغير %2$s إذا كنت ترغب مشاهدة القيم المتغيرة فقط .",
+ "Sections": "الأقسام"
+ }
+} \ No newline at end of file
diff --git a/plugins/Diagnostics/lang/cs.json b/plugins/Diagnostics/lang/cs.json
new file mode 100644
index 0000000000..8a4f5e3178
--- /dev/null
+++ b/plugins/Diagnostics/lang/cs.json
@@ -0,0 +1,8 @@
+{
+ "Diagnostics": {
+ "ConfigFileTitle": "Konfigurační soubor",
+ "ConfigFileIntroduction": "Zde vidíte konfiguraci pro Piwik. Pokud Piwik běží v prostředí s vyvažováním zátěže, můžou se zobrazovaná data lišit podle toho, ze kterého serveru jsou natažena. Řádky se změněnou barvou pozadí značí změněné konfigurační hodnoty, které jsou specifikovány například v %1$s souboru.",
+ "HideUnchanged": "Pokud chcete vidět pouze změněné hodnoty, můžete %1$snezměněné hodnoty skrýt%2$s.",
+ "Sections": "Sekce"
+ }
+} \ No newline at end of file
diff --git a/plugins/Diagnostics/lang/de.json b/plugins/Diagnostics/lang/de.json
new file mode 100644
index 0000000000..b40af46d52
--- /dev/null
+++ b/plugins/Diagnostics/lang/de.json
@@ -0,0 +1,8 @@
+{
+ "Diagnostics": {
+ "ConfigFileTitle": "Konfigurationsdatei",
+ "ConfigFileIntroduction": "Hier können Sie die Piwik Konfiguration einsehen. Sollten Sie Piwik auf lastverteilten Systemen einsetzen könnte diese Seite unterschiedlich sein, abhängig vom Server auf dem die Seite geladen wurde. Zeilen mit einer anderen Hintergrundfarbe sind geänderte Konfigurationswerte, die beispielsweise in der Datei %1$s definiert wurden.",
+ "HideUnchanged": "Falls Sie nur die geänderten Werte einsehen möchten können Sie %1$salle unveränderten Werte ausblenden%2$s.",
+ "Sections": "Sektionen"
+ }
+} \ No newline at end of file
diff --git a/plugins/Diagnostics/lang/el.json b/plugins/Diagnostics/lang/el.json
new file mode 100644
index 0000000000..8f92d3f1a8
--- /dev/null
+++ b/plugins/Diagnostics/lang/el.json
@@ -0,0 +1,8 @@
+{
+ "Diagnostics": {
+ "ConfigFileTitle": "Αρχείο ρυθμίσεων",
+ "ConfigFileIntroduction": "Εδώ μπορείτε να δείτε τις ρυθμίσεις του Piwik. Αν εκτελείτε το Piwik σε περιβάλλον με διαμοιρασμό φόρτου, η σελίδα μπορεί να είναι διαφορετική, ανάλογα από ποιο διακομιστή έχει φορτωθεί. Οι γραμμές με διαφορετικό χρώμα υποβάθρου είναι οι τιμές ρυθμίσεων που άλλαξαν για παράδειγμα στο αρχείο ρυθμίσεων %1$s.",
+ "HideUnchanged": "Αν επιθυμείτε να δείτε μόνο τις τιμές που άλλαξαν, μπορείτε να %1$sαποκρύψετε τις τιμές που παρέμειναν ίδιες%2$s.",
+ "Sections": "Τμήματα"
+ }
+} \ No newline at end of file
diff --git a/plugins/Diagnostics/lang/en.json b/plugins/Diagnostics/lang/en.json
new file mode 100644
index 0000000000..1f63118bb4
--- /dev/null
+++ b/plugins/Diagnostics/lang/en.json
@@ -0,0 +1,8 @@
+{
+ "Diagnostics": {
+ "ConfigFileTitle": "Config file",
+ "ConfigFileIntroduction": "Here you can view the Piwik configuration. If you are running Piwik in a load balanced environment the page might be different depending from which server this page is loaded. Rows with a different background color are changed config values that are specified for example in the %1$s file.",
+ "HideUnchanged": "If you want to see only changed values you can %1$shide all unchanged values%2$s.",
+ "Sections": "Sections"
+ }
+} \ No newline at end of file
diff --git a/plugins/Diagnostics/lang/fr.json b/plugins/Diagnostics/lang/fr.json
new file mode 100644
index 0000000000..ffd3cffae6
--- /dev/null
+++ b/plugins/Diagnostics/lang/fr.json
@@ -0,0 +1,6 @@
+{
+ "Diagnostics": {
+ "ConfigFileTitle": "Fichier de configuration",
+ "Sections": "Sections"
+ }
+} \ No newline at end of file
diff --git a/plugins/Diagnostics/lang/it.json b/plugins/Diagnostics/lang/it.json
new file mode 100644
index 0000000000..72a21afc43
--- /dev/null
+++ b/plugins/Diagnostics/lang/it.json
@@ -0,0 +1,7 @@
+{
+ "Diagnostics": {
+ "ConfigFileTitle": "File di configurazione",
+ "HideUnchanged": "Se vuoi vedere soltanto i valori cambiati, puoi %1$snascondere tutti quelli che non sono cambiati%2$s.",
+ "Sections": "Sezioni"
+ }
+} \ No newline at end of file
diff --git a/plugins/Diagnostics/lang/pt-br.json b/plugins/Diagnostics/lang/pt-br.json
new file mode 100644
index 0000000000..c563a60e3f
--- /dev/null
+++ b/plugins/Diagnostics/lang/pt-br.json
@@ -0,0 +1,8 @@
+{
+ "Diagnostics": {
+ "ConfigFileTitle": "Arquivo de configuração",
+ "ConfigFileIntroduction": "Aqui você pode ver a configuração do Piwik. Se você estiver executando Piwik em um ambiente de balanceamento de carga a página pode ser diferente, dependendo de qual servidor esta página é carregada. Linhas com uma cor de fundo diferente são alterados os valores de configuração que são especificadas por exemplo, no arquivo %1$s.",
+ "HideUnchanged": "Se você quiser ver apenas valores alterados você pode %1$socultar todos os valores inalterados%2$s.",
+ "Sections": "Seções"
+ }
+} \ No newline at end of file
diff --git a/plugins/Diagnostics/lang/sv.json b/plugins/Diagnostics/lang/sv.json
new file mode 100644
index 0000000000..25fe2ba0c6
--- /dev/null
+++ b/plugins/Diagnostics/lang/sv.json
@@ -0,0 +1,5 @@
+{
+ "Diagnostics": {
+ "ConfigFileTitle": "Konfigurationsfil"
+ }
+} \ No newline at end of file
diff --git a/plugins/Diagnostics/plugin.json b/plugins/Diagnostics/plugin.json
index da53096d70..9f6d9023a2 100644
--- a/plugins/Diagnostics/plugin.json
+++ b/plugins/Diagnostics/plugin.json
@@ -1,3 +1,3 @@
{
- "description": "Performs diagnostics to check that Piwik is installed and runs correctly."
+ "description": "Performs diagnostics to check that Piwik is installed and runs correctly."
} \ No newline at end of file
diff --git a/plugins/Diagnostics/stylesheets/configfile.less b/plugins/Diagnostics/stylesheets/configfile.less
new file mode 100644
index 0000000000..f399ce3596
--- /dev/null
+++ b/plugins/Diagnostics/stylesheets/configfile.less
@@ -0,0 +1,22 @@
+.diagnostics.configfile {
+ .custom-value {
+ background-color: @theme-color-background-tinyContrast;
+ }
+
+ .defaultValue {
+ font-style: italic;
+ }
+
+ td.name {
+ max-width: 330px;
+ word-wrap: break-word;
+ width: 25%;
+ }
+
+ td.value {
+ word-wrap: break-word;
+ max-width: 400px;
+ width: 25%;
+ }
+
+}
diff --git a/plugins/Diagnostics/templates/configfile.twig b/plugins/Diagnostics/templates/configfile.twig
new file mode 100644
index 0000000000..46113b51da
--- /dev/null
+++ b/plugins/Diagnostics/templates/configfile.twig
@@ -0,0 +1,55 @@
+{% extends 'admin.twig' %}
+
+{% macro humanReadableValue(value) %}
+ {% if value is false %}
+ false
+ {% elseif value is true %}
+ true
+ {% elseif value is null %}
+ {% elseif value is emptyString %}
+ ''
+ {% else %}
+ {{ value|join(', ') }}
+ {% endif %}
+{% endmacro %}
+
+{% block content %}
+ <h2 piwik-enriched-headline>{{ 'Diagnostics_ConfigFileTitle'|translate }}</h2>
+ <p>
+ {{ 'Diagnostics_ConfigFileIntroduction'|translate('<code>"config/config.ini.php"</code>')|raw }}
+ {{ 'Diagnostics_HideUnchanged'|translate('<a ng-click="hideGlobalConfigValues=!hideGlobalConfigValues">', '</a>')|raw }}
+
+ <h3>{{ 'Diagnostics_Sections'|translate }}</h3>
+ {% for category, values in allConfigValues %}
+ <a href="#{{ category|e('html_attr') }}">{{ category }}</a><br />
+ {% endfor %}
+ </p>
+
+ <table class="simple-table diagnostics configfile">
+ <tbody>
+ {% for category, configValues in allConfigValues %}
+ <tr><td colspan="3"><a name="{{ category|e('html_attr') }}"></a><h3>{{ category }}</h3></td></tr>
+
+ {% for key, configEntry in configValues %}
+ <tr {% if configEntry.isCustomValue %}class="custom-value"{% else %}ng-hide="hideGlobalConfigValues"{% endif %}>
+ <td class="name">{{ key }}{% if configEntry.value is iterable %}[]{% endif %}</td>
+ <td class="value">
+ {{ _self.humanReadableValue(configEntry.value) }}
+ </td>
+ <td class="description">
+ {{ configEntry.description }}
+
+ {% if (configEntry.isCustomValue or configEntry.value is null) and configEntry.defaultValue is not null %}
+ {% if configEntry.description %}<br />{% endif %}
+
+ {{ 'General_Default'|translate }}:
+ <span class="defaultValue">{{ _self.humanReadableValue(configEntry.defaultValue) }}<span>
+ {% endif %}
+ </td>
+ </tr>
+ {% endfor %}
+ {% endfor %}
+ </tbody>
+ </table>
+
+{% endblock %} \ No newline at end of file
diff --git a/plugins/Events/lang/cs.json b/plugins/Events/lang/cs.json
index d919e1c04c..be21527108 100644
--- a/plugins/Events/lang/cs.json
+++ b/plugins/Events/lang/cs.json
@@ -15,7 +15,7 @@
"EventsWithValue": "Události s hodnotou",
"EventsWithValueDocumentation": "Počet událostí s nastavenou hodnotou",
"EventValue": "Hodnota události",
- "EventValueTooltip": "Celková hodnota události je součet %s hodnot událostí %s mezi minimem %s a maximem %s.",
+ "EventValueTooltip": "Celková hodnota události je součet %1$s hodnot událostí %2$s mezi minimem %3$s a maximem %4$s.",
"MaxValue": "Maximální hodnota",
"MaxValueDocumentation": "Maximální hodnota pro tuto událost",
"MinValue": "Minimální hodnota",
diff --git a/plugins/Events/lang/da.json b/plugins/Events/lang/da.json
index db8849014f..6ba733e87c 100644
--- a/plugins/Events/lang/da.json
+++ b/plugins/Events/lang/da.json
@@ -14,7 +14,7 @@
"EventsWithValue": "Hændelser med en værdi",
"EventsWithValueDocumentation": "Antal hændelser, hvor en hændelseværdi blev fastsat",
"EventValue": "Hændelsesværdi",
- "EventValueTooltip": "Samlet hændelsesværdi er summen af ​​%s hændelsesværdier %s mellem mindst %s og maksimalt %s.",
+ "EventValueTooltip": "Samlet hændelsesværdi er summen af ​​%1$s hændelsesværdier %2$s mellem mindst %3$s og maksimalt %4$s.",
"MaxValue": "Max værdi",
"MaxValueDocumentation": "Den maksimale værdi for hændelsen",
"MinValue": "Min værdi",
diff --git a/plugins/Events/lang/de.json b/plugins/Events/lang/de.json
index 33ddf79414..00c1c9849a 100644
--- a/plugins/Events/lang/de.json
+++ b/plugins/Events/lang/de.json
@@ -15,7 +15,7 @@
"EventsWithValue": "Ereignisse mit einem Wert",
"EventsWithValueDocumentation": "Anzahl der Ereignisse bei denen ein Ereigniswert gesetzt war",
"EventValue": "Ereigniswert",
- "EventValueTooltip": "Der Gesamtereigniswert ist die Summe von %s Ereigniswerten %s zwischen dem Minimum von %s und dem Maximum von %s.",
+ "EventValueTooltip": "Der Gesamtereigniswert ist die Summe von %1$s Ereigniswerten %2$s zwischen dem Minimum von %3$s und dem Maximum von %4$s.",
"MaxValue": "Maximaler Wert",
"MaxValueDocumentation": "Maximaler Wert für dieses Ereignis",
"MinValue": "Minimaler Wert",
diff --git a/plugins/Events/lang/el.json b/plugins/Events/lang/el.json
index 5547feed17..4a7197d3c9 100644
--- a/plugins/Events/lang/el.json
+++ b/plugins/Events/lang/el.json
@@ -15,7 +15,7 @@
"EventsWithValue": "Γεγονότα με τιμή",
"EventsWithValueDocumentation": "Αριθμός γεγονότων στα οποία έχει οριστεί μια τιμή",
"EventValue": "Τιμή Συμβάντος",
- "EventValueTooltip": "Η συνολική αξία συμβάντος είναι το άθροισμα %s τιμών συμβάντων %s μεταξύ ελάχιστου %s και μέγιστου %s.",
+ "EventValueTooltip": "Η συνολική τιμή Συμβάντος είναι το άθροισμα από %1$s τιμές γεγονότων %2$s μεταξύ μιας ελάχιστης τιμής %3$s και μιας μέγιστης %4$s.",
"MaxValue": "Μέγιστη τιμή",
"MaxValueDocumentation": "Μέγιστη τιμή για το συμβάν",
"MinValue": "Ελάχιστη τιμή",
diff --git a/plugins/Events/lang/en.json b/plugins/Events/lang/en.json
index 0981e4b690..89f9642d1f 100644
--- a/plugins/Events/lang/en.json
+++ b/plugins/Events/lang/en.json
@@ -15,7 +15,7 @@
"EventsWithValue": "Events with a value",
"EventsWithValueDocumentation": "Number of events where an Event value was set",
"EventValue": "Event Value",
- "EventValueTooltip": "Total Event value is the sum of %s events values %s between minimum of %s and maximum of %s.",
+ "EventValueTooltip": "Total Event value is the sum of %1$s events values %2$s between minimum of %3$s and maximum of %4$s.",
"MaxValue": "Maximum value",
"MaxValueDocumentation": "The maximum value for this event",
"MinValue": "Minimum value",
diff --git a/plugins/Events/lang/es.json b/plugins/Events/lang/es.json
index 59de90c961..b602256a4e 100644
--- a/plugins/Events/lang/es.json
+++ b/plugins/Events/lang/es.json
@@ -15,7 +15,7 @@
"EventsWithValue": "Eventos con un valor",
"EventsWithValueDocumentation": "Numero de eventos en los que se estableció un valor",
"EventValue": "Valor del evento",
- "EventValueTooltip": "El valor total del evento se compone de la suma de %s los valores de los eventos %s entre un mínimo de %s y un máximo de %s.",
+ "EventValueTooltip": "El valor total del evento se compone de la suma de %1$s los valores de los eventos %2$s entre un mínimo de %3$s y un máximo de %4$s.",
"MaxValue": "Valor máximo",
"MaxValueDocumentation": "El valor máximo de este evento",
"MinValue": "Valor mínimo",
diff --git a/plugins/Events/lang/fr.json b/plugins/Events/lang/fr.json
index ba1ed55637..fe4ddfb443 100644
--- a/plugins/Events/lang/fr.json
+++ b/plugins/Events/lang/fr.json
@@ -15,7 +15,7 @@
"EventsWithValue": "Evènements avec une valeur",
"EventsWithValueDocumentation": "Nombre d'évènements qui ont une valeur de définie",
"EventValue": "Valeur d'évènement",
- "EventValueTooltip": "La valeur totale de l'évènement est la somme des %s valeurs d'évènements %s entre un minimum de %s et un maximum de %s.",
+ "EventValueTooltip": "La valeur totale de l'évènement est la somme des %1$s valeurs d'évènements %2$s entre un minimum de %3$s et un maximum de %4$s.",
"MaxValue": "Valeur maximum",
"MaxValueDocumentation": "Valeur maximale pour cet évènement",
"MinValue": "Valeur minimum",
diff --git a/plugins/Events/lang/it.json b/plugins/Events/lang/it.json
index 465cebb176..da44c8b0b3 100644
--- a/plugins/Events/lang/it.json
+++ b/plugins/Events/lang/it.json
@@ -15,7 +15,7 @@
"EventsWithValue": "Eventi con un valore",
"EventsWithValueDocumentation": "Numero di eventi dove è stato impostato un valore Evento",
"EventValue": "Valore Evento",
- "EventValueTooltip": "Il valore totale Evento è la somma dei %s valori eventi %s tra un minimo di %s e un massimo di %s.",
+ "EventValueTooltip": "Il valore totale Evento è la somma dei %1$s valori eventi %2$s tra un minimo di %3$s e un massimo di %4$s.",
"MaxValue": "Valore massimo",
"MaxValueDocumentation": "Valore massimo per questo evento",
"MinValue": "Valore minimo",
diff --git a/plugins/Events/lang/ja.json b/plugins/Events/lang/ja.json
index 10051096aa..fe7ccda48a 100644
--- a/plugins/Events/lang/ja.json
+++ b/plugins/Events/lang/ja.json
@@ -15,7 +15,7 @@
"EventsWithValue": "値を持つイベント",
"EventsWithValueDocumentation": "イベントの値が設定されたイベント数",
"EventValue": "イベントの値",
- "EventValueTooltip": "総イベント値は %s 件のイベント値の合計です。 %s 最小値は %s 、最大値は %s です 。",
+ "EventValueTooltip": "総イベント値は %1$s 件のイベント値の合計です。 %2$s 最小値は %3$s 、最大値は %4$s です 。",
"MaxValue": "最大値",
"MaxValueDocumentation": "このイベントの最大値",
"MinValue": "最小値",
diff --git a/plugins/Events/lang/nb.json b/plugins/Events/lang/nb.json
index debcc1761c..cd72216d88 100644
--- a/plugins/Events/lang/nb.json
+++ b/plugins/Events/lang/nb.json
@@ -1,15 +1,32 @@
{
"Events": {
+ "PluginDescription": "Spor hendelser og få rapporter om dine brukeres aktiviteter.",
"AvgEventValue": "Gjennomsnittlig hendelseverdi er: %s",
"AvgValue": "Gjennomsnittlig verdi",
+ "AvgValueDocumentation": "Gjennomsnittet av alle verdier for denne hendelsen",
"Event": "Hendelse",
+ "EventAction": "Hendelseshandling",
+ "EventActions": "Hendelseshandlinger",
+ "EventCategories": "Hendelseskategorier",
"EventCategory": "Hendelsekategori",
+ "EventName": "Hendelsesnavn",
+ "EventNames": "Hendelsesnavn",
"Events": "Hendelser",
+ "EventsWithValue": "Hendelser med en verdi",
+ "EventsWithValueDocumentation": "Antall hendelser der en hendelsesverdi er satt",
+ "EventValue": "Hendelsesverdi",
+ "EventValueTooltip": "Total hendelsesverdi er summen av alle %1$s hendelsesverdier %2$s mellom minimumsverdi %3$s og maksimumsverdi %4$s.",
"MaxValue": "Maksimumsverdi",
- "MinValue": "Minimum verdi",
+ "MaxValueDocumentation": "Maksimumsverdien for denne hendelsen",
+ "MinValue": "Minimumsverdi",
+ "MinValueDocumentation": "Minimumsverdien for denne hendelsen",
+ "SecondaryDimension": "Sekundær dimensjon er %s.",
"SwitchToSecondaryDimension": "Bytt til %s",
"TopEvents": "Topphendelser",
+ "TotalEvents": "Totalt antall hendelser",
+ "TotalEventsDocumentation": "Totalt antall hendelser",
"TotalValue": "Totalverdi",
+ "TotalValueDocumentation": "Summen av alle hendelsesverdier",
"ViewEvents": "Vis hendelser"
}
} \ No newline at end of file
diff --git a/plugins/Events/lang/nl.json b/plugins/Events/lang/nl.json
index 81fa40e547..0109528078 100644
--- a/plugins/Events/lang/nl.json
+++ b/plugins/Events/lang/nl.json
@@ -15,7 +15,7 @@
"EventsWithValue": "Gebeurtenissen met een waarde",
"EventsWithValueDocumentation": "Aantal events waar een Event waarde is bepaald",
"EventValue": "Gebeurtenis Waarde",
- "EventValueTooltip": "Totale gebeurtenis waarde is de som van %s gebeurtenis waarden %s tussen minima van %s en maxima van %s.",
+ "EventValueTooltip": "Totale gebeurtenis waarde is de som van %1$s gebeurtenis waarden %2$s tussen minima van %3$s en maxima van %4$s.",
"MaxValue": "Maximale waarde",
"MaxValueDocumentation": "De maximale waarde voor deze gebeurtenis",
"MinValue": "Minimale waarde",
diff --git a/plugins/Events/lang/pt-br.json b/plugins/Events/lang/pt-br.json
index ccc155cae5..f311ca34cf 100644
--- a/plugins/Events/lang/pt-br.json
+++ b/plugins/Events/lang/pt-br.json
@@ -15,7 +15,7 @@
"EventsWithValue": "Eventos com um valor",
"EventsWithValueDocumentation": "Número de eventos onde foi configurado um valor Event",
"EventValue": "Valor do Evento",
- "EventValueTooltip": "O valor total de Evento é a soma de %s valores de eventos %s entre o mínimo de %s e o máximo de %s.",
+ "EventValueTooltip": "O valor total de Evento é a soma de %1$s valores de eventos %2$s entre o mínimo de %3$s e o máximo de %4$s.",
"MaxValue": "Valor máximo",
"MaxValueDocumentation": "O valor máximo para este evento",
"MinValue": "Valor mínimo",
diff --git a/plugins/Events/lang/ro.json b/plugins/Events/lang/ro.json
index c50fd8c446..3d26bb67d4 100644
--- a/plugins/Events/lang/ro.json
+++ b/plugins/Events/lang/ro.json
@@ -14,7 +14,7 @@
"EventsWithValue": "Evenimente cu valoare",
"EventsWithValueDocumentation": "Numărul de evenimente în care a fost stabilit o valoare Eveniment",
"EventValue": "Valoarea Evenimentului",
- "EventValueTooltip": "Valoarea totală Eveniment este suma de %s valoare evenimente %s între minim %s și maxim de %s.",
+ "EventValueTooltip": "Valoarea totală Eveniment este suma de %1$s valoare evenimente %2$s între minim %3$s și maxim de %4$s.",
"MaxValue": "Valoarea maxima",
"MaxValueDocumentation": "Valoarea maxima pentru acest eveniment",
"MinValue": "Valoarea minima",
diff --git a/plugins/Events/lang/ru.json b/plugins/Events/lang/ru.json
index 62ab5e6ce1..242b414fa2 100644
--- a/plugins/Events/lang/ru.json
+++ b/plugins/Events/lang/ru.json
@@ -14,6 +14,7 @@
"EventsWithValue": "События со значением",
"EventsWithValueDocumentation": "Количество событий, где было установлено значение для События",
"EventValue": "Значение события",
+ "EventValueTooltip": "Общие значения событий равны сумме %1$s значениям (событий) %2$s между минимумом %3$s и максимум %4$s.",
"MaxValue": "Максимальное значение",
"MaxValueDocumentation": "Максимальное значения для этого события",
"MinValue": "Минимальное значение",
diff --git a/plugins/Events/lang/sk.json b/plugins/Events/lang/sk.json
index a45b722eb4..cf80e73e95 100644
--- a/plugins/Events/lang/sk.json
+++ b/plugins/Events/lang/sk.json
@@ -5,7 +5,7 @@
"Events": "Udalosti",
"EventsWithValue": "Udalosti s hodnotou",
"EventsWithValueDocumentation": "Počet udalostí, kde bola nastavená hodnota Udalosti",
- "EventValueTooltip": "Hodnota Udalostí celom je suma %s hodnôt udalostí %s medzi minimom %s a maximom %s.",
+ "EventValueTooltip": "Hodnota Udalostí celom je suma %1$s hodnôt udalostí %2$s medzi minimom %3$s a maximom %4$s.",
"TopEvents": "Top Udalosti",
"TotalEvents": "Udalosti celkom",
"TotalEventsDocumentation": "Celkový počet udalostí",
diff --git a/plugins/Events/lang/sr.json b/plugins/Events/lang/sr.json
index bbf1a14779..82ca990cfb 100644
--- a/plugins/Events/lang/sr.json
+++ b/plugins/Events/lang/sr.json
@@ -15,7 +15,7 @@
"EventsWithValue": "Događaji sa vrednošću",
"EventsWithValueDocumentation": "Broj događaja u kojima je vrednost postavljena",
"EventValue": "Vrednost događaja",
- "EventValueTooltip": "Ukupna vrednost događaja je suma %s događaja sa vrednošću %s između minimum od %s i maksimum od %s",
+ "EventValueTooltip": "Ukupna vrednost događaja je suma %1$s događaja sa vrednošću %2$s između minimum od %3$s i maksimum od %4$s",
"MaxValue": "Maksimalna vrednost",
"MaxValueDocumentation": "Maksimalna vrednost za ovaj događaj",
"MinValue": "Minimalna vrednost",
diff --git a/plugins/Events/lang/sv.json b/plugins/Events/lang/sv.json
index 351e2b445d..e99f426681 100644
--- a/plugins/Events/lang/sv.json
+++ b/plugins/Events/lang/sv.json
@@ -15,7 +15,7 @@
"EventsWithValue": "Händelser med ett värde",
"EventsWithValueDocumentation": "Antal händelser där en händelses värde fastställdes",
"EventValue": "Händelse Värde",
- "EventValueTooltip": "Totalt händelsevärde är summan av %shändelsevärden%s mellan minst %s och högst %s.",
+ "EventValueTooltip": "Totalt händelsevärde är summan av %1$shändelsevärden%2$s mellan minst %3$s och högst %4$s.",
"MaxValue": "Högsta värde",
"MaxValueDocumentation": "Det maximala värdet för denna händelse",
"MinValue": "Minsta värde",
diff --git a/plugins/Events/lang/tl.json b/plugins/Events/lang/tl.json
index 9d5e90c97e..9d003e86c0 100644
--- a/plugins/Events/lang/tl.json
+++ b/plugins/Events/lang/tl.json
@@ -14,7 +14,7 @@
"EventsWithValue": "Mga event na may value",
"EventsWithValueDocumentation": "Bilang ng pangyayari kung saan ang halaga ng Event ay itinakda",
"EventValue": "Event Value",
- "EventValueTooltip": "Ang total event value ay resulta ng %s events values %s sa pagitan ng minimum %s at maximum ng %s.",
+ "EventValueTooltip": "Ang total event value ay resulta ng %1$s events values %2$s sa pagitan ng minimum %3$s at maximum ng %4$s.",
"MaxValue": "Maximum na halaga",
"MaxValueDocumentation": "Ang maximum na halaga para sa kaganapang ito.",
"MinValue": "Minimum na halaga",
diff --git a/plugins/ExamplePlugin/Widgets/MyExampleWidget.php b/plugins/ExamplePlugin/Widgets/MyExampleWidget.php
index 687ee6df67..3434a3aac9 100644
--- a/plugins/ExamplePlugin/Widgets/MyExampleWidget.php
+++ b/plugins/ExamplePlugin/Widgets/MyExampleWidget.php
@@ -26,7 +26,7 @@ class MyExampleWidget extends Widget
* Set the category the widget belongs to. You can reuse any existing widget category or define
* your own category.
*/
- $config->setCategoryId('Example Widgets');
+ $config->setCategoryId('About Piwik');
/**
* Set the subcategory the widget belongs to. If a subcategory is set, the widget will be shown in the UI.
diff --git a/plugins/ExamplePlugin/plugin.json b/plugins/ExamplePlugin/plugin.json
index 9f8e7a09bf..71f81fb70d 100644
--- a/plugins/ExamplePlugin/plugin.json
+++ b/plugins/ExamplePlugin/plugin.json
@@ -12,5 +12,8 @@
"email": "",
"homepage": ""
}
- ]
+ ],
+ "homepage": "",
+ "license": "GPL v3+",
+ "keywords": []
} \ No newline at end of file
diff --git a/plugins/ExampleRssWidget/Widgets/RssChangelog.php b/plugins/ExampleRssWidget/Widgets/RssChangelog.php
index 70ba5eb0c0..d42737b3fa 100644
--- a/plugins/ExampleRssWidget/Widgets/RssChangelog.php
+++ b/plugins/ExampleRssWidget/Widgets/RssChangelog.php
@@ -16,7 +16,7 @@ class RssChangelog extends \Piwik\Widget\Widget
{
public static function configure(WidgetConfig $config)
{
- $config->setCategoryId('Example Widgets');
+ $config->setCategoryId('About Piwik');
$config->setName('Piwik Changelog');
}
diff --git a/plugins/ExampleRssWidget/Widgets/RssPiwik.php b/plugins/ExampleRssWidget/Widgets/RssPiwik.php
index c3c7c76a16..489b703656 100644
--- a/plugins/ExampleRssWidget/Widgets/RssPiwik.php
+++ b/plugins/ExampleRssWidget/Widgets/RssPiwik.php
@@ -16,7 +16,7 @@ class RssPiwik extends \Piwik\Widget\Widget
{
public static function configure(WidgetConfig $config)
{
- $config->setCategoryId('Example Widgets');
+ $config->setCategoryId('About Piwik');
$config->setName('Piwik.org Blog');
}
diff --git a/plugins/ExampleTheme/plugin.json b/plugins/ExampleTheme/plugin.json
index 433b1eac3f..7f486d6ddf 100644
--- a/plugins/ExampleTheme/plugin.json
+++ b/plugins/ExampleTheme/plugin.json
@@ -3,5 +3,15 @@
"description": "Piwik Platform showcase: example of how to create a simple Theme.",
"version": "0.1.0",
"theme": true,
- "stylesheet": "stylesheets/theme.less"
+ "stylesheet": "stylesheets/theme.less",
+ "homepage": "",
+ "license": "GPL v3+",
+ "keywords": [],
+ "authors": [
+ {
+ "name": "",
+ "email": "",
+ "homepage": ""
+ }
+ ]
} \ No newline at end of file
diff --git a/plugins/ExampleTheme/stylesheets/theme.less b/plugins/ExampleTheme/stylesheets/theme.less
index 2763f2216d..6b68780734 100644
--- a/plugins/ExampleTheme/stylesheets/theme.less
+++ b/plugins/ExampleTheme/stylesheets/theme.less
@@ -12,6 +12,7 @@
@theme-color-menu-contrast-text: #666666;
@theme-color-menu-contrast-textActive: #0d0d0d;
+@theme-color-menu-contrast-textSelected: @theme-color-menu-contrast-text;
@theme-color-menu-contrast-background: #f2f2f2;
@theme-color-text: #0d0d0d;
diff --git a/plugins/Feedback/lang/ar.json b/plugins/Feedback/lang/ar.json
index 01a49d9937..ba0dbcc43e 100644
--- a/plugins/Feedback/lang/ar.json
+++ b/plugins/Feedback/lang/ar.json
@@ -2,10 +2,9 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "هل لديك خطأ أو ميزة تود إضافتها وتريد إخبارنا عنها؟",
"IWantTo": "أرغب في:",
- "LearnWaysToParticipate": "تعرف على كافة الطرق التي يمكنك %s المساهمة %s بها.",
+ "LearnWaysToParticipate": "تعرف على كافة الطرق التي يمكنك %1$s المساهمة %2$s بها.",
"ManuallySendEmailTo": "الرجاء إرسال رسالتك يدوياً إلى",
"SendFeedback": "أرسل التغذية الراجعة",
- "ThankYou": "شكراً لمساعدتك في جعل Piwik أفضل!",
- "VisitTheForums": "قم بزيارة %sالمنتديات%s"
+ "ThankYou": "شكراً لمساعدتك في جعل Piwik أفضل!"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/be.json b/plugins/Feedback/lang/be.json
index 0db00271d0..5fd20e94f2 100644
--- a/plugins/Feedback/lang/be.json
+++ b/plugins/Feedback/lang/be.json
@@ -2,10 +2,9 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Ці ёсць у вас памылка аб якой неабходна певедаміць?",
"IWantTo": "Я хачу, каб:",
- "LearnWaysToParticipate": "Даведайцеся пра ўсе спосабы %s ўдзельнічыства %s",
+ "LearnWaysToParticipate": "Даведайцеся пра ўсе спосабы %1$s ўдзельнічыства %2$s",
"ManuallySendEmailTo": "Калі ласка, уручную адпраўце паведамленне да",
"SendFeedback": "Адправіць водгук",
- "ThankYou": "Дзякуй за дапамогу нам зрабіць Piwik лепш!",
- "VisitTheForums": "Наведайце %s форумы %s"
+ "ThankYou": "Дзякуй за дапамогу нам зрабіць Piwik лепш!"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/bg.json b/plugins/Feedback/lang/bg.json
index 70b629ffe1..2085faac8b 100644
--- a/plugins/Feedback/lang/bg.json
+++ b/plugins/Feedback/lang/bg.json
@@ -2,12 +2,11 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Желаете да докладвате за грешка или имате предложение?",
"IWantTo": "Желая да:",
- "LearnWaysToParticipate": "Научете повече за начините, как бихте могли да %sучаствате%s",
+ "LearnWaysToParticipate": "Научете повече за начините, как бихте могли да %1$sучаствате%2$s",
"ManuallySendEmailTo": "Моля изпратете ръчно Вашето съобщение до",
"RateFeatureThankYouTitle": "Благодарим ви, че оценихте '%s'!",
"SendFeedback": "Изпрати съобщението",
"ThankYou": "Благодаря, че помогнахте да направим Piwik по-добър!",
- "TopLinkTooltip": "Може да ни кажете какво мислите, както и да изискате професионална помощ.",
- "VisitTheForums": "Посетете нашият %sФорум%s"
+ "TopLinkTooltip": "Може да ни кажете какво мислите, както и да изискате професионална помощ."
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/ca.json b/plugins/Feedback/lang/ca.json
index fdf83f335c..f172f63546 100644
--- a/plugins/Feedback/lang/ca.json
+++ b/plugins/Feedback/lang/ca.json
@@ -2,11 +2,10 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Teniu algun error que reportar o una petició de noves funcionalitats?",
"IWantTo": "Jo vull:",
- "LearnWaysToParticipate": "Apren sobre les formes en que tu pots %s participar %s",
+ "LearnWaysToParticipate": "Apren sobre les formes en que tu pots %1$s participar %2$s",
"ManuallySendEmailTo": "Siusplau envia el vostre missatge manualmetn a",
"SendFeedback": "Enviar Feedback",
"ThankYou": "Gràcies per ajudar-nos a fer el Piwik millor!",
- "TopLinkTooltip": "Digue'ns que en penses o demana suport Professional.",
- "VisitTheForums": "Entra als %s Forums%s"
+ "TopLinkTooltip": "Digue'ns que en penses o demana suport Professional."
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/cs.json b/plugins/Feedback/lang/cs.json
index 935e9913b4..bda47c8959 100644
--- a/plugins/Feedback/lang/cs.json
+++ b/plugins/Feedback/lang/cs.json
@@ -3,19 +3,19 @@
"DoYouHaveBugReportOrFeatureRequest": "Máte hlášení chyby, nebo námět na vylepšení?",
"HowToCreateTicket": "Prosím, přečtěte si doporučení, jak dobře nahlásit %1$schybu%2$s nebo %3$sžádost o vlastnost%4$s. Potom se zaregistrujte nebo přihlaste do %5$ssystému pro sledování problémů%6$s a vytvořte %7$snový problém%8$s.",
"IWantTo": "Chci:",
- "LearnWaysToParticipate": "Naučit způsoby jak %s spolupracovat %s",
+ "LearnWaysToParticipate": "Naučit způsoby jak %1$s spolupracovat %2$s",
"ManuallySendEmailTo": "Prosím pošlete ručně zprávu",
"PluginDescription": "Pošlete tým Piwiku vaši odezvu. Podělte se o své návrhy a nápady a pomozte nám, aby se Piwik stal nejlepší analytickou platformou vůbec.",
"PrivacyClaim": "Piwik respektuje vaše %1$ssoukromí%2$s a dává vám plnou kontrolu nad vašimi daty.",
"RateFeatureLeaveMessageDislike": "Je nám líto, že se vám to nelíbí. Řekněte nám, jak se můžeme zlepšit.",
"RateFeatureLeaveMessageLike": "Jsme rádi, že se vám to líbí. Řekněte nám, co se vám líbí nejvíc, nebo jestli máte nějaký návrh na novou funkci.",
- "RateFeatureSendFeedbackInformation": "Piwik platforma nám (týmu Piwiku) pošle zprávu s vaší emailovou adresou, abychom vás v případě otázek mohli kontaktovat.",
+ "RateFeatureSendFeedbackInformation": "Piwik platforma nám (týmu Piwiku) pošle zprávu s vaší e-mailovou adresou, abychom vás v případě otázek mohli kontaktovat.",
"RateFeatureThankYouTitle": "Děkujeme za ohodnocení %s.",
"RateFeatureTitle": "Líbí se vám vlastnost %s? Ohodnoťte ji a zanechte komentář",
"SendFeedback": "Odeslat odezvu",
"ThankYou": "Děkujeme vám, že pomáháte Piwik dělat lepším!",
"TopLinkTooltip": "Řekni co si myslíš, nebo požádej o pomoc profesionála.",
- "ViewAnswersToFAQ": "Zobrazit odpovědi na %sčasto kladené otázky%s",
+ "ViewAnswersToFAQ": "Zobrazit odpovědi na %1$sčasto kladené otázky%2$s",
"ViewUserGuides": "Naučte se, jak konfigurovat Piwik a efektivně analyzovat data s našimi %1$suživatelskými příručkami%2$s",
"CommunityHelp": "Komunitní pomoc",
"ProfessionalHelp": "Profesionální pomoc",
@@ -23,12 +23,12 @@
"PiwikProOfferIntro": "Naše nabídka obsahuje",
"PiwikProReviewPiwikSetup": "Kontrolu vašeho nastavení Piwik",
"PiwikProOptimizationMaintenance": "Služby optimalizace a údržby Piwiku",
- "PiwikProPhoneEmailSupport": "Telefonická a emailová podpora",
+ "PiwikProPhoneEmailSupport": "Telefonická a e-mailová podpora",
"PiwikProTraining": "Uživatelská, technická a vývojářská školení",
"PiwikProPremiumFeatures": "Prémiové funkce",
"PiwikProCustomDevelopment": "Služby vlastního vývoje",
"PiwikProAnalystConsulting": "Služby analytického konzultanta",
"ContactUs": "Kontaktujte nás",
- "VisitTheForums": "Navštivte %s forum%s"
+ "VisitTheForums": "Navštivte %1$s fóra%2$s a nechte si pomoci komunitou uživatelů aplikace Piwik"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/da.json b/plugins/Feedback/lang/da.json
index 49e24e53f7..4b3f74bf45 100644
--- a/plugins/Feedback/lang/da.json
+++ b/plugins/Feedback/lang/da.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "Har du en fejlrapport eller en anmodning om en funktion?",
"HowToCreateTicket": "Læs anbefalingerne om at skrive en god %1$sfejlrapport%2$s eller %3$sfunktionsanmodning%4$s. Tilmeld eller log ind på %5$svores emne tracker%6$s og opret et %7$snyt emne%8$s.",
"IWantTo": "Jeg ønsker at:",
- "LearnWaysToParticipate": "Lær om alle de måder, du kan %s bidrage%s",
+ "LearnWaysToParticipate": "Lær om alle de måder, du kan %1$s bidrage%2$s",
"ManuallySendEmailTo": "Send din besked manuelt til",
"PluginDescription": "Send tilbagemelding til Piwik holdet. Del dine ideer og forslag til at gøre Piwik til den bedste analyseplatform i verden!",
"PrivacyClaim": "Piwik respekterer din %1$sprivacy%2$s og giver dig fuld kontrol over dine data.",
@@ -15,8 +15,7 @@
"SendFeedback": "Send tilbagemelding",
"ThankYou": "Tak, fordi du hjælper med at gøre Piwik bedre!",
"TopLinkTooltip": "Fortæl os hvad du mener eller anmod om professionel support",
- "ViewAnswersToFAQ": "Se svarene på %sOfte stillede spørgsmål%s",
- "ViewUserGuides": "Lær at konfigurere Piwik og hvordan man effektivt analyserer data med vores %1$sbrugervejledninger%2$s",
- "VisitTheForums": "Besøg %s Forum%s"
+ "ViewAnswersToFAQ": "Se svarene på %1$sOfte stillede spørgsmål%2$s",
+ "ViewUserGuides": "Lær at konfigurere Piwik og hvordan man effektivt analyserer data med vores %1$sbrugervejledninger%2$s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/de.json b/plugins/Feedback/lang/de.json
index 84cc4e2687..8d40755793 100644
--- a/plugins/Feedback/lang/de.json
+++ b/plugins/Feedback/lang/de.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "Möchten Sie einen Fehler melden oder haben Sie eine Idee für eine neue Funktion?",
"HowToCreateTicket": "Bitte lesen Sie die Empfehlungen wie man eine gute %1$sFehlermeldung%2$s oder einen %3$sVerbesserungsvorschlag%4$s erstellt. Dann registrieren Sie sich oder loggen Sie sich bei %5$sunserem Fehlermeldesystem%6$s an und erstellen Sie einen %7$sneuen Fall%8$s.",
"IWantTo": "Ich möchte:",
- "LearnWaysToParticipate": "Lernen Sie alle Möglichkeiten kennen, wie Sie %s uns unterstützen können%s",
+ "LearnWaysToParticipate": "Lernen Sie alle Möglichkeiten kennen, wie Sie %1$s uns unterstützen können%2$s",
"ManuallySendEmailTo": "Senden Sie Ihre Nachricht manuell an",
"PluginDescription": "Senden Sie Ihr Feedback ans Piwik Team. Teilen Sie uns Ihre Ideen und Vorschläge mit, um Piwik zur besten Analyseplattform der Welt zu machen.",
"PrivacyClaim": "Piwik respektiert Ihre %1$sPrivatsphäre%2$s und gibt Ihnen volle Kontrolle über Ihre Daten.",
@@ -15,7 +15,7 @@
"SendFeedback": "Feedback absenden",
"ThankYou": "Danke für Ihre Unterstützung, Piwik zu verbessern!",
"TopLinkTooltip": "Teilen Sie uns Ihre Meinung mit, oder fordern professionelle Unterstützung an.",
- "ViewAnswersToFAQ": "Antworten zu %sFrequently Asked Questions%s ansehen",
+ "ViewAnswersToFAQ": "Antworten zu %1$sFrequently Asked Questions%2$s ansehen",
"ViewUserGuides": "Lernen Sie mithilfe unseres %1$sBenutzerhandbuches%2$s, wie Sie Piwik konfigurieren können und wie Sie effektiv Ihre Daten analysieren.",
"CommunityHelp": "Hilfe aus der Community",
"ProfessionalHelp": "Profesionelle Hilfe",
@@ -29,6 +29,6 @@
"PiwikProCustomDevelopment": "Individuelle Programmierung",
"PiwikProAnalystConsulting": "Analysenberatung",
"ContactUs": "Kontaktieren Sie uns",
- "VisitTheForums": "Besuchen Sie die %s Foren%s"
+ "VisitTheForums": "Besuchen Sie die %1$s Foren%2$s und erhalten Sie Hilfe von der Piwik Community"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/el.json b/plugins/Feedback/lang/el.json
index 58f53483e0..d8a6176309 100644
--- a/plugins/Feedback/lang/el.json
+++ b/plugins/Feedback/lang/el.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "Έχετε να αναφέρετε ένα πρόβλημα ή ένα αίτημα για χαρακτηριστικό;",
"HowToCreateTicket": "Παρακαλούμε διαβάστε τις προτάσεις για τη σύνταξη μιας καλής %1$sαναφοράς σφάλματος%2$s ή %3$sαίτησης για νέο χαρακτηριστικό%4$s. Στη συνέχεια κάντε εγγραφή ή συνδεθείτε στην %5$sπαρακολούθηση αιτημάτων%6$s και υποβάλλετε ένα %7$sνέο αίτημα%8$s.",
"IWantTo": "Θέλω να:",
- "LearnWaysToParticipate": "Μάθετε όλους του τρόπους που μπορείτε να %sσυμμετέχετε%s",
+ "LearnWaysToParticipate": "Μάθετε όλους του τρόπους που μπορείτε να %1$sσυμμετέχετε%2$s",
"ManuallySendEmailTo": "Στείλτε χειροκίνητα το μήνυμά σας στον\/στην",
"PluginDescription": "Στείλτε τη γνώμη σας στην ομάδα του Piwik. Μοιραστείτε τις ιδέες και τις προτάσεις σας για να κάνετε το Piwik την καλύτερη πλατφόρμα αναλυτικών στον κόσμο!",
"PrivacyClaim": "Το Piwik σέβεται την %1$sιδιωτικότητά%2$s σας και σας δίνει πλήρη έλεγχο πάνω στα δεδομένα σας.",
@@ -15,7 +15,7 @@
"SendFeedback": "Στείλτε Επισημάνσεις",
"ThankYou": "Ευχαριστούμε που βοηθήσατε να κάνουμε το Piwik καλύτερο!",
"TopLinkTooltip": "Πείτε μας τι σκέφτεστε ή ζητήστε Επαγγελματική Υποστήριξη.",
- "ViewAnswersToFAQ": "Δείτε τις απαντήσεις στις %sΣυχνές Ερωτήσεις%s",
+ "ViewAnswersToFAQ": "Δείτε απαντήσεις στις %1$sΣυχνές Ερωτήσεις%2$s",
"ViewUserGuides": "Μάθετε πως να παραμετροποιείτε το Piwik και να αναλύετε αποτελεσματικά τα δεδομένα σας με τους %1$sοδηγούς χρήση μας%2$s.",
"CommunityHelp": "Βοήθεια από την κοινότητα",
"ProfessionalHelp": "Βοήθεια από επαγγελματίες",
@@ -29,6 +29,6 @@
"PiwikProCustomDevelopment": "Προσαρμοσμένες υπηρεσίες ανάπτυξης",
"PiwikProAnalystConsulting": "Υπηρεσίες συμβουλευτικής από αναλυτές",
"ContactUs": "Επικοινωνήστε μαζί μας",
- "VisitTheForums": "Επισκεφτείτε τις %s Δημόσιες Συζητήσεις%s"
+ "VisitTheForums": "Δείτε τα %1$sΦόρουμ%2$s και λάβετε βοήθεια από την κοινότητα χρηστών του Piwik"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/en.json b/plugins/Feedback/lang/en.json
index d19caf97fa..4d55bcfe7a 100644
--- a/plugins/Feedback/lang/en.json
+++ b/plugins/Feedback/lang/en.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "Do you have a bug to report or a feature request?",
"HowToCreateTicket": "Please read the recommendations on writing a good %1$sbug report%2$s or %3$sfeature request%4$s. Then register or login on %5$sour issue tracker%6$s and create a %7$snew issue%8$s.",
"IWantTo": "I want to:",
- "LearnWaysToParticipate": "Learn about all the ways you can %s participate%s",
+ "LearnWaysToParticipate": "Learn about all the ways you can %1$s participate%2$s",
"ManuallySendEmailTo": "Please manually send your message to",
"PluginDescription": "Send your Feedback to the Piwik Team. Share your ideas and suggestions to make Piwik the best analytics platform in the world!",
"PrivacyClaim": "Piwik respects your %1$sprivacy%2$s and gives you full control over your data.",
@@ -15,7 +15,7 @@
"SendFeedback": "Send Feedback",
"ThankYou": "Thank you for helping us to make Piwik better!",
"TopLinkTooltip": "Tell us what you think, or request Professional Support.",
- "ViewAnswersToFAQ": "View answers to %sFrequently Asked Questions%s",
+ "ViewAnswersToFAQ": "View answers to %1$sFrequently Asked Questions%2$s",
"ViewUserGuides": "Learn how to configure Piwik and how to effectively analyze your data with our %1$suser guides%2$s",
"CommunityHelp": "Community Help",
"ProfessionalHelp": "Professional Help",
@@ -29,6 +29,6 @@
"PiwikProCustomDevelopment": "Custom Development services",
"PiwikProAnalystConsulting": "Analyst consulting services",
"ContactUs": "Contact us",
- "VisitTheForums": "Visit the %s Forums%s and get help from the community of Piwik users"
+ "VisitTheForums": "Visit the %1$s Forums%2$s and get help from the community of Piwik users"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/es.json b/plugins/Feedback/lang/es.json
index 849434a96a..1dc66dfd09 100644
--- a/plugins/Feedback/lang/es.json
+++ b/plugins/Feedback/lang/es.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "¿Tienes un error que informar o una nueva característica?",
"HowToCreateTicket": "Por favor, lee las recomendaciones de cómo escribir un buen %1$sinforme de error%2$s o %3$spetición de funcionalidad%4$s. Luego regístrese o inicie sesión en nuestro %5$ssistema de seguimiento de errores%6$s y crea un %7$snuevo tema de discusión%8$s.",
"IWantTo": "Yo quiero:",
- "LearnWaysToParticipate": "Aprende sobre todas las formas de %sparticipar%s",
+ "LearnWaysToParticipate": "Aprende sobre todas las formas de %1$sparticipar%2$s",
"ManuallySendEmailTo": "Por favor envíe su mensaje manualmente a",
"PluginDescription": "Envíe su comentario al equipo de Piwik. ¡Comparte tus ideas y sugerencias para hacer de Piwik la mejor plataforma de analíticas en el mundo!",
"PrivacyClaim": "Piwik respeta su %1$sprivacidad%2$s y le deja controlar todos sus datos.",
@@ -15,7 +15,7 @@
"SendFeedback": "Enviar comentario",
"ThankYou": "¡Gracias por ayudarnos a hacer Piwik mejor!",
"TopLinkTooltip": "Danos tu opinión o solicita Soporte Profesional",
- "ViewAnswersToFAQ": "Ver respuestas a las %sPreguntas frecuentes%s",
+ "ViewAnswersToFAQ": "Ver respuestas a las %1$sPreguntas frecuentes%2$s",
"ViewUserGuides": "Aprende a configurar Piwik y analizar sus datos de modo eficaz con nuestras %1$sguías de usuario%2$s",
"CommunityHelp": "Ayuda comunitaria",
"ProfessionalHelp": "Ayuda profesional",
@@ -29,6 +29,6 @@
"PiwikProCustomDevelopment": "Servicios de desarrollo personalizado",
"PiwikProAnalystConsulting": "Servicios de consultoría de análisis",
"ContactUs": "Contáctanos",
- "VisitTheForums": "Visita el %sForo%s y obtenga ayuda de la comuniad de usuarios Piwik"
+ "VisitTheForums": "Visita el %1$sForo%2$s y obtenga ayuda de la comuniad de usuarios Piwik"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/fa.json b/plugins/Feedback/lang/fa.json
index 9da5b8e998..4eb2a5803c 100644
--- a/plugins/Feedback/lang/fa.json
+++ b/plugins/Feedback/lang/fa.json
@@ -2,11 +2,10 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "آیا شما یک باگ برای گزارش دارید یا درخواستی برای یک ویژگی جدید دارید؟",
"IWantTo": "من می خواهم به :",
- "LearnWaysToParticipate": "درباره راه هایی که می توانید %sمشارکت کنید%s بیشتر بدانید.",
+ "LearnWaysToParticipate": "درباره راه هایی که می توانید %1$sمشارکت کنید%2$s بیشتر بدانید.",
"ManuallySendEmailTo": "لطفا پیام خود را به صورت دستی ارسال کنید به",
"SendFeedback": "ارسال بازخورد",
"ThankYou": "از شما برای کمک به بهتر کردن پیویک متشکریم!",
- "TopLinkTooltip": "به ما بگویید چه می اندیشید یا پشتیبانی حرفه ای درخواست کنید.",
- "VisitTheForums": "بازدید %s از فروم %s"
+ "TopLinkTooltip": "به ما بگویید چه می اندیشید یا پشتیبانی حرفه ای درخواست کنید."
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/fi.json b/plugins/Feedback/lang/fi.json
index 48f3986a1e..6ab6ec2a91 100644
--- a/plugins/Feedback/lang/fi.json
+++ b/plugins/Feedback/lang/fi.json
@@ -2,7 +2,7 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Onko sinulle virheraportti tai pyyntö uudesta ominaisuudesta?",
"IWantTo": "Haluan:",
- "LearnWaysToParticipate": "Katso erilaisia tapoja %s osallistua%s",
+ "LearnWaysToParticipate": "Katso erilaisia tapoja %1$s osallistua%2$s",
"ManuallySendEmailTo": "Ole hyvä ja lähetä viesti osoitteeseen",
"RateFeatureLeaveMessageDislike": "Harmillista kuulla että et pidä siitä! Voisitko kertoa meille, miten voimme korjata tämän?",
"RateFeatureLeaveMessageLike": "Olemme iloisia että pidit siitä! Kerro meille mistä pidit eniten tai jos sinulla on ehdotuksia uusiksi ominaisuuksiksi.",
@@ -10,7 +10,6 @@
"RateFeatureTitle": "Pidätkö ominaisuudesta '%s'? Jätä arvostelu ja kommentti",
"SendFeedback": "Lähetä palaute",
"ThankYou": "Kiitos että autat parantamaan Piwikiä!",
- "TopLinkTooltip": "Kerro meille mitä ajattelet, tai osta tukipalveluita (englanniksi).",
- "VisitTheForums": "Käy %s foorumeilla %s"
+ "TopLinkTooltip": "Kerro meille mitä ajattelet, tai osta tukipalveluita (englanniksi)."
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/fr.json b/plugins/Feedback/lang/fr.json
index b992c5cfbc..0df0bf5e6b 100644
--- a/plugins/Feedback/lang/fr.json
+++ b/plugins/Feedback/lang/fr.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "Avez-vous un bug à rapporter ou une fonctionnalité à demander ?",
"HowToCreateTicket": "Veuillez consulter les recommandations sur la rédaction d'un bon %1$srapport de bug%2$s ou %3$sdemande de fonctionnalité%4$s. Puis s'enregistrer ou se connecter sur %5$snotre système de suivi des incidents%6$s et créer un %7$snouvel incident%8$s.",
"IWantTo": "Je veux:",
- "LearnWaysToParticipate": "Renseignez vous sur les manières dont vous pouvez %s participer%s",
+ "LearnWaysToParticipate": "Renseignez vous sur les manières dont vous pouvez %1$s participer%2$s",
"ManuallySendEmailTo": "Merci d'envoyer manuellement votre message à",
"PluginDescription": "Envoyez votre votre retour d'expérience à l'équipe Piwik. Partagez vos idées et suggestions pour aider à faire de Piwik la meilleure plateforme d'analyse web du monde!",
"PrivacyClaim": "Piwik respecte votre %1$svie privée%2$s et vous donne un contrôle total sur vos données.",
@@ -15,7 +15,7 @@
"SendFeedback": "Envoyer le retour",
"ThankYou": "Merci d'avoir aidé à améliorer Piwik!",
"TopLinkTooltip": "Dites nous ce que vous en pensez, ou demandez un Support Professionnel.",
- "ViewAnswersToFAQ": "Voir les réponses aux %squestions fréquemment posées%s",
+ "ViewAnswersToFAQ": "Voir les réponses aux %1$squestions fréquemment posées%2$s",
"ViewUserGuides": "Apprenez comment configurer Piwik et comment analyser de manière efficaces vos données avec notre %1$sguide utilisateur%2$s",
"CommunityHelp": "Aide de la communauté",
"ProfessionalHelp": "Aide professionnelle",
@@ -28,7 +28,6 @@
"PiwikProPremiumFeatures": "Fonctionnalités premium",
"PiwikProCustomDevelopment": "Services de développement personnalisés",
"PiwikProAnalystConsulting": "Services de consultation en analyse",
- "ContactUs": "Nous contacter",
- "VisitTheForums": "Visitez les %s Forums%s"
+ "ContactUs": "Nous contacter"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/hi.json b/plugins/Feedback/lang/hi.json
index 7cca19f3c5..eb9f385152 100644
--- a/plugins/Feedback/lang/hi.json
+++ b/plugins/Feedback/lang/hi.json
@@ -2,7 +2,7 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "क्या आपके पास एक बग की रिपोर्ट या एक सुविधा का अनुरोध है?",
"IWantTo": "मैं चाहता हूँ:",
- "LearnWaysToParticipate": "सभी तरीकों के बारे में जानें, आप %s भाग %s ले सकते हैं",
+ "LearnWaysToParticipate": "सभी तरीकों के बारे में जानें, आप %1$s भाग %2$s ले सकते हैं",
"ManuallySendEmailTo": "अपने संदेश को स्वेक्षा से भेजने के लिए कृपया",
"RateFeatureLeaveMessageDislike": "आप इसे पसंद नहीं करते हम सुनने के लिए खेद है! कृपया हमें बतायें हम कैसे बेहतर कर सकते हैं।",
"RateFeatureLeaveMessageLike": "आप इसे पसंद हम खुश हैं! हमें आप एक सुविधा का अनुरोध किया है अगर आप सबसे अधिक पसंद है या क्या पता है।",
@@ -10,7 +10,6 @@
"ThankYou": "Piwik बेहतर बनाने में हमें मदद करने के लिए आपका शुक्रिया",
"TopLinkTooltip": "आप क्या सोचते हैं हमें बताओ,या व्यावसायिक सहायता का अनुरोध करे",
"CommunityHelp": "समुदाय सहायता",
- "ProfessionalHelp": "पेशेवर मदद",
- "VisitTheForums": "%s विचार मंच %s पर जाएँ"
+ "ProfessionalHelp": "पेशेवर मदद"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/hu.json b/plugins/Feedback/lang/hu.json
index 8165b7f499..94192d5b17 100644
--- a/plugins/Feedback/lang/hu.json
+++ b/plugins/Feedback/lang/hu.json
@@ -2,10 +2,9 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Hibát szeretnél bejelenteni, vagy egy funkció kifejlesztését szeretnéd kérni?",
"IWantTo": "A következőt szeretném:",
- "LearnWaysToParticipate": "Győződj meg róla, %shányféleképpen segíthetsz%s",
+ "LearnWaysToParticipate": "Győződj meg róla, %1$shányféleképpen segíthetsz%2$s",
"ManuallySendEmailTo": "Kérjük, küldd el manuálisan az üzeneted ide:",
"SendFeedback": "Visszajelzés elküldése",
- "ThankYou": "Köszönjük, hogy segítesz jobbá tenni a Piwik-et!",
- "VisitTheForums": "Látogasd meg a %sFórumot%s"
+ "ThankYou": "Köszönjük, hogy segítesz jobbá tenni a Piwik-et!"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/id.json b/plugins/Feedback/lang/id.json
index 39fed42539..32eaf8c16b 100644
--- a/plugins/Feedback/lang/id.json
+++ b/plugins/Feedback/lang/id.json
@@ -2,11 +2,10 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Apakah Anda ada laporan kutu atau permintaan fitur?",
"IWantTo": "Saya ingin:",
- "LearnWaysToParticipate": "Pelajari bagaimana kamu dapat %s berpartisipasi%s",
+ "LearnWaysToParticipate": "Pelajari bagaimana kamu dapat %1$s berpartisipasi%2$s",
"ManuallySendEmailTo": "Silakan kirim manual pesan Anda ke",
"SendFeedback": "Kirim Umpanbalik",
"ThankYou": "Terimaksih telah membantu kami menjadikan Piwik lebih baik!",
- "TopLinkTooltip": "Katakan apa yang Anda pikirkan, atau membutuhkan Bantuan Profesional.",
- "VisitTheForums": "Kunjungi %s Forum%s"
+ "TopLinkTooltip": "Katakan apa yang Anda pikirkan, atau membutuhkan Bantuan Profesional."
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/it.json b/plugins/Feedback/lang/it.json
index 1e3934e03f..19028736b1 100644
--- a/plugins/Feedback/lang/it.json
+++ b/plugins/Feedback/lang/it.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "Hai un bug da segnalare o una richiesta di funzionalità?",
"HowToCreateTicket": "Si prega di leggere le raccomandazioni per scrivere un buon %1$srapporto bug%2$s o una %3$srichiesta di funzionalità%4$s. Poi registrati o accedi al nostro %5$stracker dei problemi%6$s e segnala un %7$snuovo problema%8$s.",
"IWantTo": "Vorrei:",
- "LearnWaysToParticipate": "Impara tutti i modi attraverso i quali puoi %s partecipare%s",
+ "LearnWaysToParticipate": "Impara tutti i modi attraverso i quali puoi %1$s partecipare %2$s",
"ManuallySendEmailTo": "Perfavore invia manualmente il messaggio a",
"PluginDescription": "Invia un Feedback al Team di Piwik. Condividi idee e suggerimenti per rendere Piwik la migliore piattaforma al mondo di statistiche web!",
"PrivacyClaim": "Piwik rispetta la tua %1$sprivacy%2$s e ti dà il pieno controllo sui tuoi dati.",
@@ -15,7 +15,7 @@
"SendFeedback": "Invia",
"ThankYou": "Grazie per aiutarci a rendere Piwik migliore!",
"TopLinkTooltip": "Dicci cosa ne pensi, o richiedi supporto professionale.",
- "ViewAnswersToFAQ": "Guarda le risposte alle %sDomande frequenti%s",
+ "ViewAnswersToFAQ": "Guarda le risposte alle %1$sDomande frequenti%2$s",
"ViewUserGuides": "Impara a configurare Piwik e ad analizzare efficacemente i tuoi dati con le nostre %1$sguide utente%2$s",
"CommunityHelp": "Aiuto dalla comunità",
"ProfessionalHelp": "Aiuto professionale",
@@ -29,6 +29,6 @@
"PiwikProCustomDevelopment": "Sviluppo personalizzato su commissione",
"PiwikProAnalystConsulting": "Consulenza di analisti",
"ContactUs": "Contattaci",
- "VisitTheForums": "Visita i %s Forum%s e ottieni aiuto dalla comunità degli utenti Piwik"
+ "VisitTheForums": "Visita i %1$s Forum%2$s e ottieni aiuto dalla comunità degli utenti Piwik"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/ja.json b/plugins/Feedback/lang/ja.json
index 1819573a93..f43ceade9a 100644
--- a/plugins/Feedback/lang/ja.json
+++ b/plugins/Feedback/lang/ja.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "報告するべきバグや機能要望がありますか?",
"HowToCreateTicket": "推奨事項をお読みになり、%1$s バグ報告 %2$s や %3$s 機能のリクエスト %4$s を書いてください。その後、登録又は %5$s 課題トラッカー%6$s にログインして、%7$s 新しい課題 %8$s を作成します。",
"IWantTo": "あなたの希望:",
- "LearnWaysToParticipate": "あなたが参加できるすべての方法を%s学んでください%s",
+ "LearnWaysToParticipate": "あなたが参加できるすべての方法を%1$s学んでください%2$s",
"ManuallySendEmailTo": "あなたのメッセージを手作業で次のアドレスへ送ってください:",
"PluginDescription": "Piwik チームにフィードバックをお送りください。あなたのアイデアや提案をシェアすることで、Piwik を世界で最高のアナリティックス・プラットフォームにしましょう。",
"PrivacyClaim": "Piwik は あなたの %1$sprivacy%2$s を尊重します。あなたのデータに関する全ての管理はあなたにお任せします。",
@@ -15,7 +15,7 @@
"SendFeedback": "フィードバックを送信",
"ThankYou": "私たちが Piwik をより良くするのを支援していただきありがとうございます!",
"TopLinkTooltip": "あなたの意見をお知らせください。または、プロフェッショナルサポートをリクエストしてください。",
- "ViewAnswersToFAQ": "%s Frequently Asked Questions %s への回答をご覧ください。",
+ "ViewAnswersToFAQ": "%1$s Frequently Asked Questions %2$s への回答をご覧ください。",
"ViewUserGuides": "Piwik の設定方法と、効果的なデータ分析方法は、%1$s user guides %2$s をご確認ください。",
"CommunityHelp": "コミュニティヘルプ",
"ProfessionalHelp": "プロフェッショナルヘルプ",
@@ -29,6 +29,6 @@
"PiwikProCustomDevelopment": "カスタム開発サービス",
"PiwikProAnalystConsulting": "アナリストのコンサルティングサービス",
"ContactUs": "お問い合わせ",
- "VisitTheForums": "%s フォーラム %s にアクセスし、Piwik ユーザーのコミュニティから助けを得る"
+ "VisitTheForums": "%1$s フォーラム %2$s にアクセスし、Piwik ユーザーのコミュニティから助けを得る"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/ko.json b/plugins/Feedback/lang/ko.json
index 64a1086e78..d7e0c317ed 100644
--- a/plugins/Feedback/lang/ko.json
+++ b/plugins/Feedback/lang/ko.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "발견한 버그나 기능에 대한 의견을 보고하시겠습니까?",
"HowToCreateTicket": "좋은 %1$s버그 리포트%2$s 혹은 %3$s기능 개선%4$s을 작성하는 추천법에 대해 읽어주세요. 그 후 %5$s우리의 이슈 트래커%6$s에 가입 및 로그인 하셔서 %7$s새로운 이슈%8$s를 만들어주세요.",
"IWantTo": "내가 원하는 것은:",
- "LearnWaysToParticipate": "당신이 %s참여%s할 수있는 모든 방법",
+ "LearnWaysToParticipate": "당신이 %1$s참여%2$s할 수있는 모든 방법",
"ManuallySendEmailTo": "당신의 메시지를 다음 주소로 직접 보내주세요:",
"PluginDescription": "Piwik 팀에게 피드백 보내기. 당신의 아이디어와 제안은 더 나은 세상에서 가장 우수한 분석 플랫폼이 될 Piwik를 만드는데 큰 도움이 됩니다.",
"PrivacyClaim": "Piwik는 당신의 %1$s프라이버시%2$s를 존중하며 동시에 당신의 데이터가 당신의 통제 하에 있도록 노력합니다.",
@@ -15,7 +15,7 @@
"SendFeedback": "의견 보내기",
"ThankYou": "우리가 Piwik을 향상시키는 데 도움을 주셔서 감사합니다!",
"TopLinkTooltip": "당신이 필요로 하는 기술 지원 요청을 알려주세요.",
- "ViewAnswersToFAQ": "%s자주 하는 질문%s에서 답변 보기",
+ "ViewAnswersToFAQ": "%1$s자주 하는 질문%2$s에서 답변 보기",
"ViewUserGuides": "%1$s사용자 가이드%2$s에서 효율적으로 당신의 데이터를 분석하는 방법과 Piwik를 구성하는 법에 대해서 알 수 있습니다.",
"CommunityHelp": "커뮤니티에서의 도움",
"ProfessionalHelp": "전문가의 도움",
@@ -28,7 +28,6 @@
"PiwikProPremiumFeatures": "프리미엄",
"PiwikProCustomDevelopment": "맞춤 개발",
"PiwikProAnalystConsulting": "전문가 컨설팅",
- "ContactUs": "연락주세요",
- "VisitTheForums": "%s포럼%s으로 이동"
+ "ContactUs": "연락주세요"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/lt.json b/plugins/Feedback/lang/lt.json
index 2c7efb7f41..a00f39f1c9 100644
--- a/plugins/Feedback/lang/lt.json
+++ b/plugins/Feedback/lang/lt.json
@@ -2,7 +2,7 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Norite pranešti apie aptiktą klaidą arba paprašyti naujų ypatybių?",
"IWantTo": "Aš noriu:",
- "LearnWaysToParticipate": "Sužinokite kaip galite %s prisijungti%s",
+ "LearnWaysToParticipate": "Sužinokite kaip galite %1$s prisijungti%2$s",
"ManuallySendEmailTo": "Prašome išsiųsti rankiniu būdu",
"PluginDescription": "Siųskite savo atsiliepimus Piwik komandai. Dalinkitės savo idėjomis ir pasiūlymais, kad padarytumėte Piwik geriausia analitikos platforma pasaulyje!",
"RateFeatureLeaveMessageDislike": "Mes apgailestaujame išgirsti, kad jums ji nepatinka! Prašome parašyti, kaip mes galėtume ją patobulinti.",
@@ -12,7 +12,6 @@
"SendFeedback": "Siųsti atsiliepimą",
"ThankYou": "Dėkojame už pagalbą kuriant tobulesnį Piwik!",
"CommunityHelp": "Bendruomenės pagalba",
- "ProfessionalHelp": "Profesionali pagalba",
- "VisitTheForums": "Apsilankykite %s forumuose%s"
+ "ProfessionalHelp": "Profesionali pagalba"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/lv.json b/plugins/Feedback/lang/lv.json
index 1a69aa6e39..061ea389c3 100644
--- a/plugins/Feedback/lang/lv.json
+++ b/plugins/Feedback/lang/lv.json
@@ -2,7 +2,7 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Vai Jums ir kļūdas ziņojums vai papildus funkcionalitātes pieprasījums?",
"IWantTo": "Es vēlos:",
- "LearnWaysToParticipate": "Uzzināt vairāk par to, kā Jūs varat %s piedalīties%s",
+ "LearnWaysToParticipate": "Uzzināt vairāk par to, kā Jūs varat %1$s piedalīties%2$s",
"ManuallySendEmailTo": "Lūdzu manuāli nosūtiet savu ziņu uz",
"SendFeedback": "Sūtīt atsauksmes",
"ThankYou": "Paldies, ka palīdzat uzlabot Piwik!"
diff --git a/plugins/Feedback/lang/nb.json b/plugins/Feedback/lang/nb.json
index 360ea76c03..d9d4847674 100644
--- a/plugins/Feedback/lang/nb.json
+++ b/plugins/Feedback/lang/nb.json
@@ -2,7 +2,7 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Har du en feil å rapportere eller ny funksjonalitet du ønsker deg?",
"IWantTo": "Jeg vil:",
- "LearnWaysToParticipate": "Lær om alle måtene du kan %s bidra%s",
+ "LearnWaysToParticipate": "Lær om alle måtene du kan %1$s bidra%2$s",
"ManuallySendEmailTo": "Send meldingen manuelt til",
"RateFeatureThankYouTitle": "Takk for at du rangerer «%s»!",
"RateFeatureTitle": "Liker du funksjonen «%s»? Vennligst ranger den og legg igjen en kommentar",
@@ -15,7 +15,6 @@
"PiwikProPhoneEmailSupport": "Telefon og e-post-støtte",
"PiwikProTraining": "Bruker, teknisk- og utviklertrening",
"PiwikProPremiumFeatures": "Premium-funksjoner",
- "ContactUs": "Kontakt oss",
- "VisitTheForums": "Besøk %sforumet%s"
+ "ContactUs": "Kontakt oss"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/nl.json b/plugins/Feedback/lang/nl.json
index b4d5d7a3c3..6ce9e37d18 100644
--- a/plugins/Feedback/lang/nl.json
+++ b/plugins/Feedback/lang/nl.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "Heeft u een bugmelding of een verzoek voor nieuwe functies?",
"HowToCreateTicket": "Gelieve de richtlijnen te lezen over hoe een correct %1$sbug rapport%2$s of %3$sfeature request%4$s te schrijven. Daarna kun je je registreren of inloggen op %5$sonze issue tracker%6$s en een %7$snieuw issue%8$s aanmaken.",
"IWantTo": "Ik wil:",
- "LearnWaysToParticipate": "Ontdek op welke manieren je kunt %s bijdragen%s",
+ "LearnWaysToParticipate": "Ontdek op welke manieren je kunt %1$s bijdragen%2$s",
"ManuallySendEmailTo": "Gelieve uw bericht handmatig te zenden naar",
"PluginDescription": "Stuur je feedback naar het Piwik team. Deel je ideeën en suggesties om van Piwik het beste analytics platform in de wereld te maken!",
"PrivacyClaim": "Piwik respecteert je %1$sprivacy%2$s en geeft je alle controle over jouw data.",
@@ -15,7 +15,7 @@
"SendFeedback": "Stuur Feedback",
"ThankYou": "Bedankt voor uw bijdrage om Piwik beter te maken!",
"TopLinkTooltip": "Vertel ons je waat je ervan denkt, of vraag om Professionele Ondersteuning.",
- "ViewAnswersToFAQ": "Bekijk de antwoorden van %sveelgestelde vragen%s",
+ "ViewAnswersToFAQ": "Bekijk de antwoorden van %1$sveelgestelde vragen%2$s",
"ViewUserGuides": "Leer hoe je Piwik moet configureren en hoe je data te analyseren met onze %1$sgebruikers handleidingen%2$s",
"CommunityHelp": "Hulp van de community",
"ProfessionalHelp": "Professionele Hulp",
@@ -28,7 +28,6 @@
"PiwikProPremiumFeatures": "Premium functies",
"PiwikProCustomDevelopment": "Eigen Ontwikkel diensten",
"PiwikProAnalystConsulting": "Analyst consultatie diensten",
- "ContactUs": "Contacteer ons",
- "VisitTheForums": "Bezoek de %s Forums %s"
+ "ContactUs": "Contacteer ons"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/nn.json b/plugins/Feedback/lang/nn.json
index e39e428944..21179bd3e2 100644
--- a/plugins/Feedback/lang/nn.json
+++ b/plugins/Feedback/lang/nn.json
@@ -2,10 +2,9 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Vil du rapportera ein feil eller førespurnad om ein funksjon?",
"IWantTo": "Eg ønskjer:",
- "LearnWaysToParticipate": "Lær om korleis du kan %s medverka%s",
+ "LearnWaysToParticipate": "Lær om korleis du kan %1$s medverka%2$s",
"ManuallySendEmailTo": "Send meldinga di manuelt til",
"SendFeedback": "Send attendemelding",
- "ThankYou": "Takk for at hjelper oss med å forbetra Piwik!",
- "VisitTheForums": "Gå til %s Forumet%s"
+ "ThankYou": "Takk for at hjelper oss med å forbetra Piwik!"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/pl.json b/plugins/Feedback/lang/pl.json
index abf248a0c1..d877c5039b 100644
--- a/plugins/Feedback/lang/pl.json
+++ b/plugins/Feedback/lang/pl.json
@@ -2,7 +2,7 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Czy odkryłeś błąd o którym chcesz poinformować, lub masz pomysł na nową funkcjonalność?",
"IWantTo": "Pragnę:",
- "LearnWaysToParticipate": "Poznaj wszystkie sposoby %s uczestnictwa%s",
+ "LearnWaysToParticipate": "Poznaj wszystkie sposoby %1$s uczestnictwa%2$s",
"ManuallySendEmailTo": "Prosimy ręcznie wysłać swoją wiadomość",
"PrivacyClaim": "Piwik respektuje twoją %1$sprywatność%2$s i oddaje ci pełną kontrolę nad twoimi danymi.",
"RateFeatureLeaveMessageDislike": "Przykro nam słyszeć, że Tobie się nie podoba! Proszę pozwól nam wiedzieć, jak możemy to poprawić.",
@@ -12,7 +12,6 @@
"SendFeedback": "Wyślij opinię",
"ThankYou": "Dziękujemy za pomoc, która pozwala uczynić statystyki Piwik jeszcze lepszymi!",
"TopLinkTooltip": "Powiedz nam co myslisz albo poproś o profesjonalne wsparcie.",
- "ViewUserGuides": "Naucz się jak skonfigurować Piwik i jak efektywnie analizować twoje dane z naszym %1$spodręcznikiem użytkownika%2$s",
- "VisitTheForums": "Odwiedź %s forum%s"
+ "ViewUserGuides": "Naucz się jak skonfigurować Piwik i jak efektywnie analizować twoje dane z naszym %1$spodręcznikiem użytkownika%2$s"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/pt-br.json b/plugins/Feedback/lang/pt-br.json
index 7b060abb66..a2d46aee7b 100644
--- a/plugins/Feedback/lang/pt-br.json
+++ b/plugins/Feedback/lang/pt-br.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "Você tem algum bug para relatar ou alguma função para pedir?",
"HowToCreateTicket": "Por favor, leia as recomendações de como escrever um bom %1$sbug relatório%2$s ou %3$sfunção requerimento%4$s. Então, registre-se ou faço seu login em %5$snosso questões tracker%6$s e crie uma %7$snova questão%8$s.",
"IWantTo": "Eu quero:",
- "LearnWaysToParticipate": "Aprenda sobre todas as maneiras que você pode %s participar %s",
+ "LearnWaysToParticipate": "Aprenda sobre todas as maneiras que você pode %1$s participar %2$s",
"ManuallySendEmailTo": "Por favor envie manualmente sua mensagem para",
"PluginDescription": "Envie seu Feedback para a Equipe Piwik. Compartilhe as suas ideias e sugestões para tornar Piwik a melhor plataforma de análise do mundo!",
"PrivacyClaim": "Piwik respeita sua %1$sprivacy%2$s e lhe dá controle total de seus dados.",
@@ -15,7 +15,7 @@
"SendFeedback": "Envie FeedBack",
"ThankYou": "Obrigado por nos ajudar a fazer o Piwik melhor!",
"TopLinkTooltip": "Diga-nos o que você pensa, ou suporte.",
- "ViewAnswersToFAQ": "Ver respostas para %sPerguntas Frequentes%s",
+ "ViewAnswersToFAQ": "Ver respostas para %1$sPerguntas Frequentes%2$s",
"ViewUserGuides": "Saiba como configurar o Piwik e como efetivamente analisar seus dados com o nosso %1$sguias do usuário%2$s",
"CommunityHelp": "Ajuda da Comunidade",
"ProfessionalHelp": "Suporte Profissional",
@@ -29,6 +29,6 @@
"PiwikProCustomDevelopment": "Serviços de Desenvolvimento Personalizados",
"PiwikProAnalystConsulting": "Serviços de Consulturia Analítica",
"ContactUs": "Contato",
- "VisitTheForums": "Visite o %s Foruns %s"
+ "VisitTheForums": "Visite o %1$s Fóruns%2$s e obtenha ajuda da comunidade de usuários Piwik"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/pt.json b/plugins/Feedback/lang/pt.json
index 87c378e9e7..48329652cb 100644
--- a/plugins/Feedback/lang/pt.json
+++ b/plugins/Feedback/lang/pt.json
@@ -2,10 +2,9 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Tem algum erro para reportar ou um pedido de funcionalidade?",
"IWantTo": "Eu quero:",
- "LearnWaysToParticipate": "Aprenda todas as formas como pode %s participar%s",
+ "LearnWaysToParticipate": "Aprenda todas as formas como pode %1$s participar%2$s",
"ManuallySendEmailTo": "Por favor envie a sua mensagem manualmente para",
"SendFeedback": "Enviar Opinião",
- "ThankYou": "Obrigado por nos ajudar a melhorar o Piwik!",
- "VisitTheForums": "Visitar os %s Fóruns%s"
+ "ThankYou": "Obrigado por nos ajudar a melhorar o Piwik!"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/ro.json b/plugins/Feedback/lang/ro.json
index b5dd25cca8..851b416a6e 100644
--- a/plugins/Feedback/lang/ro.json
+++ b/plugins/Feedback/lang/ro.json
@@ -2,7 +2,7 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Doreşti să raportezi o problemă sau să propui o înbunătăţire?",
"IWantTo": "Doresc să:",
- "LearnWaysToParticipate": "Invata despre toate modalitatile in care poti %s participa%s",
+ "LearnWaysToParticipate": "Invata despre toate modalitatile in care poti %1$s participa%2$s",
"ManuallySendEmailTo": "Va rugam trimiteti manual mesajul dvs catre",
"PrivacyClaim": "Piwik respecta %1$sintimitatea%2$s Dvs. si va acorda control total pentru toate datele.",
"RateFeatureLeaveMessageDislike": "Ne pare rau sa aflam ca nu va place! Va rugam semnalati-ne cum putem imbunatati.",
@@ -13,8 +13,8 @@
"SendFeedback": "Trimite Feedback",
"ThankYou": "Va multumim pentru ca ne ajutati sa facem Piwik mai bun!",
"TopLinkTooltip": "Transmiteti-ne parerea Dvs sau cereti Support Profesional.",
- "ViewAnswersToFAQ": "Vedeti raspunsurile la %sIntrebari Frecvente(FAQ)%s",
+ "ViewAnswersToFAQ": "Vedeti raspunsurile la %1$sIntrebari Frecvente(FAQ)%2$s",
"ViewUserGuides": "Invata cum sa configurezi Piwik si cum sa analizezi datele eficient cu %1$sghidurile de utilizare%2$s",
- "VisitTheForums": "Vizitati %s Forumurile%s si primiti ajutor de la comunitatea de utilizatori Piwik."
+ "VisitTheForums": "Vizitati %1$s Forumurile%2$s si primiti ajutor de la comunitatea de utilizatori Piwik."
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/ru.json b/plugins/Feedback/lang/ru.json
index 60ea654045..e04996be0b 100644
--- a/plugins/Feedback/lang/ru.json
+++ b/plugins/Feedback/lang/ru.json
@@ -2,7 +2,7 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "У вас есть багрепорт, или предложение по улучшению функционала?",
"IWantTo": "Я хочу:",
- "LearnWaysToParticipate": "Изучить все способы, с помощью которых вы можете %s поучаствовать%s",
+ "LearnWaysToParticipate": "Изучить все способы, с помощью которых вы можете %1$s поучаствовать%2$s",
"ManuallySendEmailTo": "Пожалуйста, отправьте ваше сообщение вручную на",
"PluginDescription": "Направляет обратную связь команде Piwik. Делитесь своими идеями и предложениями чтобы сделать Piwik лучшей аналитической платформой в мире!",
"PrivacyClaim": "Piwik уважает вашу %1$sконфиденциальность%2$s и дает вам полный контроль над вашими данными.",
@@ -14,7 +14,7 @@
"SendFeedback": "Отправить отзыв",
"ThankYou": "Спасибо за помощь в развитии Piwik!",
"TopLinkTooltip": "Расскажите о своей проблеме с Piwik или запросите профессиональную помощь.",
- "ViewAnswersToFAQ": "Посмотреть ответы на %sЧасто Задаваемые Вопросы%s",
+ "ViewAnswersToFAQ": "Посмотреть ответы на %1$sЧасто Задаваемые Вопросы%2$s",
"ViewUserGuides": "Узнайте, как настроить Piwik и эффективно анализировать Ваши данные, используя %1$s руководства пользователя%2$s",
"CommunityHelp": "Помощь сообщества",
"ProfessionalHelp": "Помощь профессионала",
@@ -26,7 +26,6 @@
"PiwikProPremiumFeatures": "Премиальные возможности",
"PiwikProCustomDevelopment": "Услуги разработки",
"PiwikProAnalystConsulting": "Услуги аналитика-консультанта",
- "ContactUs": "Свяжитесь с нами",
- "VisitTheForums": "Посетить %s Форумы%s"
+ "ContactUs": "Свяжитесь с нами"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/sl.json b/plugins/Feedback/lang/sl.json
index ca65fe1a38..17d70cb095 100644
--- a/plugins/Feedback/lang/sl.json
+++ b/plugins/Feedback/lang/sl.json
@@ -2,10 +2,9 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Imate napako ali pa željo, ki nam jo želite sporočiti?",
"IWantTo": "Želim:",
- "LearnWaysToParticipate": "Oglejte si vse načine kako lahko %ssodelujete%s",
+ "LearnWaysToParticipate": "Oglejte si vse načine kako lahko %1$ssodelujete%2$s",
"ManuallySendEmailTo": "Prosimo, da sporočilo ročno pošljete",
"SendFeedback": "Pošlji povratno informacijo",
- "ThankYou": "Hvala, ker nam pomagate izboljšati Piwik!",
- "VisitTheForums": "Obiščite %sForume%s"
+ "ThankYou": "Hvala, ker nam pomagate izboljšati Piwik!"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/sq.json b/plugins/Feedback/lang/sq.json
index 803ab58ac8..e8ff0ace6d 100644
--- a/plugins/Feedback/lang/sq.json
+++ b/plugins/Feedback/lang/sq.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "Keni ndonjë të metë që ta raportoni apo kërkesë për veçori të reja?",
"HowToCreateTicket": "Ju lutemi, lexoni rekomandimet se si të shkruhet si duhet një %1$snjoftim të metash%2$s apo %3$skërkesë për veçori%4$s. Mandej regjistrohuni ose bëni hyrjen te %5$sndjekësi ynë i çështjeve%6$s dhe krijoni një %7$sçështje të re%8$s.",
"IWantTo": "Dua të:",
- "LearnWaysToParticipate": "Njihuni me krejt mënyrat përmes të cilave mund të %s merrni pjesë%s",
+ "LearnWaysToParticipate": "Njihuni me krejt mënyrat përmes të cilave mund të %1$s merrni pjesë%2$s",
"ManuallySendEmailTo": "Ju lutem, dërgojeni mesazhin tuaj dorazi te",
"PluginDescription": "Dërgojani Përshtypjet tuaja Ekipit të Piwik-ut. Ndani me taidetë dhe sugjerimet tuaja për ta bërë Piwik-un platformën më të mirë në botë për analiza!",
"PrivacyClaim": "Piwik-u respekton %1$sprivatësinë%2$s tuaj dhe ju jep kontroll të plotë mbi të dhënat tuaja.",
@@ -15,7 +15,7 @@
"SendFeedback": "Dërgoji Përshtypjet",
"ThankYou": "Faleminderit që na ndihmoni ta bëjmë më të mirë Piwik-un!",
"TopLinkTooltip": "Na thoni se ç’mendim keni, ose kërkoni Asistencë Profesionale.",
- "ViewAnswersToFAQ": "Shihni përgjigjet te %sPyetje të Bëra Shpesh%s",
+ "ViewAnswersToFAQ": "Shihni përgjigjet te %1$sPyetje të Bëra Shpesh%2$s",
"ViewUserGuides": "Mësoni përmes %1$sudhërëfyesit tonë për përdoruesit%2$s se si ta formësoni Piwik-un dhe si të analizoni me efektshmëri të dhënat tuaja",
"CommunityHelp": "Ndihmë nga Bashkësia",
"ProfessionalHelp": "Ndihmë Profesionale",
@@ -28,7 +28,6 @@
"PiwikProPremiumFeatures": "Veçori Me Pagesë",
"PiwikProCustomDevelopment": "Shërbime Personalizimesh",
"PiwikProAnalystConsulting": "Shërbime konsulence analizash",
- "ContactUs": "Lidhuni me ne",
- "VisitTheForums": "Vizitoni %s Forumet%s"
+ "ContactUs": "Lidhuni me ne"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/sr.json b/plugins/Feedback/lang/sr.json
index be5561cc65..274d669e6c 100644
--- a/plugins/Feedback/lang/sr.json
+++ b/plugins/Feedback/lang/sr.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "Da li želite da prijavite grešku u programu ili imate neku želju?",
"HowToCreateTicket": "Molimo vas da pročitate preporuke kako se piše dobra %1$sprijava problema%2$s ili %3$szahtev za novom funkcionalnošću%4$s. Nakon toga se %5$sregistrujte ili prijavite%6$s i kreirajte %7$snovi zahtev%8$s.",
"IWantTo": "Želim da:",
- "LearnWaysToParticipate": "Pogledajte kako sve možete da %s uzmete učešće%s",
+ "LearnWaysToParticipate": "Pogledajte kako sve možete da %1$s uzmete učešće%2$s",
"ManuallySendEmailTo": "Molimo vas da pošaljete poruku na",
"PluginDescription": "Pošaljite vaše komentare Piwik timu. Podelite vaše ideje i predloge kako bismo učinili Piwik najboljom analitičkom platformom na svetu!",
"PrivacyClaim": "Piwik poštuje vašu %1$sprivatnost%2$s i daje vam potpunu kontrolu nad vašim podacima.",
@@ -15,7 +15,7 @@
"SendFeedback": "Pošaljite vaše zapažanje",
"ThankYou": "Hvala vam što nam pomažete da učinimo Piwik boljim!",
"TopLinkTooltip": "Recite nam šta mislite ili zatražite profesionalnu pomoć.",
- "ViewAnswersToFAQ": "Prikaži odgovore na %sčesto postavljana pitanja%s",
+ "ViewAnswersToFAQ": "Prikaži odgovore na %1$sčesto postavljana pitanja%2$s",
"ViewUserGuides": "Naučite kako da podesite Piwik i kako da efikasno analizirate vaše podatke prateći %1$skorisničko uputstvo%2$s",
"CommunityHelp": "Pomoć zajednice",
"ProfessionalHelp": "Profesionalna pomoć",
@@ -28,7 +28,6 @@
"PiwikProPremiumFeatures": "Premium sadržaje",
"PiwikProCustomDevelopment": "Razvoj usluga po vašoj želji",
"PiwikProAnalystConsulting": "Usluge analitičkog konsaltinga",
- "ContactUs": "Kontaktirajte nas",
- "VisitTheForums": "Posetite %s Forum%s"
+ "ContactUs": "Kontaktirajte nas"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/sv.json b/plugins/Feedback/lang/sv.json
index bad69f07d3..379daed27b 100644
--- a/plugins/Feedback/lang/sv.json
+++ b/plugins/Feedback/lang/sv.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "Har du en bugg att rapportera eller en funktionsbegäran?",
"HowToCreateTicket": "Vänligen läs rekommendationerna för hur du skriver en bra %1$sfel rapport%2$s eller %3$sfunktionsförfrågan%4$s. Registrera eller logga in på %5$svårt ärendehanteringssystem%6$s och skapa %7$sett nytt ärende%8$s.",
"IWantTo": "Jag vill:",
- "LearnWaysToParticipate": "Läs om alla sätt du kan %s delta%s",
+ "LearnWaysToParticipate": "Läs om alla sätt du kan %1$s delta%2$s",
"ManuallySendEmailTo": "Vänligen skicka ditt meddelande manuellt till",
"PrivacyClaim": "Piwik respekterar din %1$sintegritet%2$s och ger dig full kontroll över din information.",
"RateFeatureLeaveMessageDislike": "Vi är ledsna över att du inte gillar det! Berätta gärna för oss hur vi kan förbättra Piwik.",
@@ -14,8 +14,12 @@
"SendFeedback": "Skicka Feedback",
"ThankYou": "Tack för att du hjälper oss att göra Piwik bättre!",
"TopLinkTooltip": "Tala om för oss vad du tycker, eller fråga efter professionell support.",
- "ViewAnswersToFAQ": "Se svar på %svanliga frågor%s",
+ "ViewAnswersToFAQ": "Se svar på %1$svanliga frågor%2$s",
"ViewUserGuides": "Lär dig att konfigurera Piwik och hur man på ett effektivt sätt analyserar data med våra %1$sanvändarguider%2$s",
- "VisitTheForums": "Besök %s Forumet%s"
+ "ProfessionalHelp": "Professionell hjälp",
+ "PiwikProOfferIntro": "Vårt erbjudande inkluderar",
+ "PiwikProPhoneEmailSupport": "Telefon och e-postsupport",
+ "PiwikProPremiumFeatures": "Premium-funktioner",
+ "ContactUs": "Kontakta oss"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/ta.json b/plugins/Feedback/lang/ta.json
index aae11b5308..3c65c9cddf 100644
--- a/plugins/Feedback/lang/ta.json
+++ b/plugins/Feedback/lang/ta.json
@@ -2,7 +2,7 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "நீங்கள் ஏதேனும் ஒரு பிழையை அல்லது புதிய அம்சம் பற்றி கோர வேண்டுமா?",
"IWantTo": "எனக்கு தேவை:",
- "LearnWaysToParticipate": "நீங்கள் %s பங்குகொள்ளகூடிய%s அனைத்து வழிகளைவும் தெரிந்து கொள்ள",
+ "LearnWaysToParticipate": "நீங்கள் %1$s பங்குகொள்ளகூடிய%2$s அனைத்து வழிகளைவும் தெரிந்து கொள்ள",
"ManuallySendEmailTo": "தயவுசெய்து சுயமாக உங்கள் செய்தியை இவருக்கு அனுப்புங்கள்",
"SendFeedback": "கருத்து தெரிவிக்க"
}
diff --git a/plugins/Feedback/lang/th.json b/plugins/Feedback/lang/th.json
index 11765a211e..c5fecf6fa8 100644
--- a/plugins/Feedback/lang/th.json
+++ b/plugins/Feedback/lang/th.json
@@ -2,10 +2,9 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "คุณมีข้อบกพร่องในการรายงานหรือการร้องขอคุณลักษณะหรือไม่",
"IWantTo": "ฉันอยากจะ:",
- "LearnWaysToParticipate": "เรียนรู้เกี่ยวกับทั้งหมดด้วยวิธี %s คุณสามารถ %s มีส่วนร่วมได้",
+ "LearnWaysToParticipate": "เรียนรู้เกี่ยวกับทั้งหมดด้วยวิธี %1$s คุณสามารถ %2$s มีส่วนร่วมได้",
"ManuallySendEmailTo": "กรุณาส่งข้อความของคุณด้วยตนเอง",
"SendFeedback": "ส่งคำติชม",
- "ThankYou": "ขอบคุณที่ช่วยให้เราสามารถทำให้ Piwik ดีกว่า",
- "VisitTheForums": "เข้าชม %s เว็บบอร์ด %s"
+ "ThankYou": "ขอบคุณที่ช่วยให้เราสามารถทำให้ Piwik ดีกว่า"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/tl.json b/plugins/Feedback/lang/tl.json
index ed55c67f5b..575f0a2152 100644
--- a/plugins/Feedback/lang/tl.json
+++ b/plugins/Feedback/lang/tl.json
@@ -3,7 +3,7 @@
"DoYouHaveBugReportOrFeatureRequest": "Mayroon ka bang iuulat na bug o hihilinging feature?",
"HowToCreateTicket": "Mangyaring basahin ang rekomendasyon sa mahusay na pagsusulat %1$sbug report%2$s o %3$sfeature request%4$s. Pagkatapos magrehistro o mag-login sa %5$sour issue tracker%6$s at gumawa ng %7$snew issue%8$s.",
"IWantTo": "Gusto kong:",
- "LearnWaysToParticipate": "Pag-aralan ang lahat ng daan upang %s makasali sa %s",
+ "LearnWaysToParticipate": "Pag-aralan ang lahat ng daan upang %1$s makasali sa %2$s",
"ManuallySendEmailTo": "Mangyaring manu-manong ipadala ang iyong mensahe sa.",
"PrivacyClaim": "Nirerespeto ng Piwik ang iyong %1$s privacy %2$s at nagbibigay sa iyo ng ganap na kontrol sa iyong data.",
"RateFeatureLeaveMessageDislike": "Ikinalulungkot namin na hindi mo ito gustong marinig! Mangyaring ipaalam samin kung paano naman ito mapapabuti.",
@@ -14,8 +14,8 @@
"SendFeedback": "Magpadala ng Feedback",
"ThankYou": "Salamat sa pagtulong sa amin upang maging mas mabuti ang Piwik!",
"TopLinkTooltip": "Sabihin sa amin ang iyong iniisip o humiling ng Propesyonal na Suporta.",
- "ViewAnswersToFAQ": "Ipakita ang sagot sa %s Mga Madalas Itanong %s",
+ "ViewAnswersToFAQ": "Ipakita ang sagot sa %1$s Mga Madalas Itanong %2$s",
"ViewUserGuides": "Alamin kung paano i-configure ang Piwik at kung paano epektibong pag-aralan ang iyong data sa aming %1$suser gabay sa %2$s.",
- "VisitTheForums": "Bisitahin ang mga %s Forum %s at makakuha ng tulong mula sa komunidad ng mga Piwik user."
+ "VisitTheForums": "Bisitahin ang mga %1$s Forum %2$s at makakuha ng tulong mula sa komunidad ng mga Piwik user."
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/tr.json b/plugins/Feedback/lang/tr.json
index 7afa546a62..cbd95587da 100644
--- a/plugins/Feedback/lang/tr.json
+++ b/plugins/Feedback/lang/tr.json
@@ -2,14 +2,13 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Hata raporu veya özellik öneriniz mi var?",
"IWantTo": "İstiyorum:",
- "LearnWaysToParticipate": "%sOrtak olabileceğiniz%s tüm yolları öğrenin",
+ "LearnWaysToParticipate": "%1$sOrtak olabileceğiniz%2$s tüm yolları öğrenin",
"ManuallySendEmailTo": "Lütfen mesajınızı elle yollayın",
"RateFeatureLeaveMessageDislike": "Beğenmediğiniz için çok üzgünüz! Lütfen bunu nasıl geliştireceğimiz konusunda yardımcı olun.",
"RateFeatureThankYouTitle": "Oyladığınız için teşekkürler '%s'!",
"RateFeatureTitle": "'%s' özelliğini beğendiniz mi? Lütfen oy verip, bir yorum yapın",
"SendFeedback": "Geribildirim Yollayın",
"ThankYou": "Piwik'i daha iyi yapmamıza yardım ettiğiniz için teşekkür ederiz!",
- "TopLinkTooltip": "Bize fikirlerinizi iletin, ya da Profesyonel Destek isteyin.",
- "VisitTheForums": "%sForumları%s ziyaret edin"
+ "TopLinkTooltip": "Bize fikirlerinizi iletin, ya da Profesyonel Destek isteyin."
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/uk.json b/plugins/Feedback/lang/uk.json
index 94ce2e5322..6bebd8ff76 100644
--- a/plugins/Feedback/lang/uk.json
+++ b/plugins/Feedback/lang/uk.json
@@ -2,10 +2,9 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Ви хочете надіслати нам повідомлення про помилку чи попросити додати нову функцію?",
"IWantTo": "Я хочу:",
- "LearnWaysToParticipate": "Дізнатися про всі способи %sдолучитися%s",
+ "LearnWaysToParticipate": "Дізнатися про всі способи %1$sдолучитися%2$s",
"ManuallySendEmailTo": "Будь-ласка надішліть ваше повідомлення власноручно на",
"SendFeedback": "Надіслати відгук",
- "ThankYou": "Дякуємо що допомагаєте робити Piwik кращим!",
- "VisitTheForums": "Відвідати %s Форум%s"
+ "ThankYou": "Дякуємо що допомагаєте робити Piwik кращим!"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/vi.json b/plugins/Feedback/lang/vi.json
index 0c83ad805b..6a4ab28315 100644
--- a/plugins/Feedback/lang/vi.json
+++ b/plugins/Feedback/lang/vi.json
@@ -2,11 +2,10 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "Bạn đã có lỗi với báo cáo hoặc yêu cầu tính năng?",
"IWantTo": "Tôi muốn:",
- "LearnWaysToParticipate": "Tìm hiểu về tất cả các cách bạn có thể %s tham gia %s",
+ "LearnWaysToParticipate": "Tìm hiểu về tất cả các cách bạn có thể %1$s tham gia %2$s",
"ManuallySendEmailTo": "Hãy tự gửi thông điệp của bạn tới",
"SendFeedback": "Gửi feedback",
"ThankYou": "Cảm ơn bạn đã giúp chúng tôi để làm cho Piwik tốt hơn!",
- "TopLinkTooltip": "Hãy cho chúng tôi những suy nghĩ của bạn, hoặc gửi một yều \"Professional Support\"",
- "VisitTheForums": "Thăm %s diễn đàn %s"
+ "TopLinkTooltip": "Hãy cho chúng tôi những suy nghĩ của bạn, hoặc gửi một yều \"Professional Support\""
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/zh-cn.json b/plugins/Feedback/lang/zh-cn.json
index e95d1f0ddc..2fa0b05bcc 100644
--- a/plugins/Feedback/lang/zh-cn.json
+++ b/plugins/Feedback/lang/zh-cn.json
@@ -2,11 +2,10 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "您有bug报告或要新增功能?",
"IWantTo": "我想要:",
- "LearnWaysToParticipate": "了解所有您可以 %s 参与%s 的方法",
+ "LearnWaysToParticipate": "了解所有您可以 %1$s 参与%2$s 的方法",
"ManuallySendEmailTo": "请手动发送信息至",
"SendFeedback": "提交反馈",
"ThankYou": "感谢您帮助我们改进 Piwik !",
- "TopLinkTooltip": "告诉我们您的想法,或者寻求专业技术支持。",
- "VisitTheForums": "访问 %s 论坛%s"
+ "TopLinkTooltip": "告诉我们您的想法,或者寻求专业技术支持。"
}
} \ No newline at end of file
diff --git a/plugins/Feedback/lang/zh-tw.json b/plugins/Feedback/lang/zh-tw.json
index 445de0fd3a..c2b37bc959 100644
--- a/plugins/Feedback/lang/zh-tw.json
+++ b/plugins/Feedback/lang/zh-tw.json
@@ -2,11 +2,10 @@
"Feedback": {
"DoYouHaveBugReportOrFeatureRequest": "你有一個臭蟲回報或功能請求?",
"IWantTo": "我想要:",
- "LearnWaysToParticipate": "瞭解所有你可以 %s 參與%s 的方法",
+ "LearnWaysToParticipate": "瞭解所有你可以 %1$s 參與%2$s 的方法",
"ManuallySendEmailTo": "請手動寄送你的訊息至",
"SendFeedback": "送出意見",
"ThankYou": "謝謝你協助我們使 Piwik 變得更好!",
- "TopLinkTooltip": "請分享您的意見,或提出專業支援要求。",
- "VisitTheForums": "訪問 %s 論壇%s"
+ "TopLinkTooltip": "請分享您的意見,或提出專業支援要求。"
}
} \ No newline at end of file
diff --git a/plugins/Goals/Controller.php b/plugins/Goals/Controller.php
index 966005b690..5d7a5168e2 100644
--- a/plugins/Goals/Controller.php
+++ b/plugins/Goals/Controller.php
@@ -98,6 +98,7 @@ class Controller extends \Piwik\Plugin\Controller
// conversion rate for new and returning visitors
$view->conversion_rate_returning = $this->formatConversionRate($goalMetrics, 'conversion_rate_returning_visit');
$view->conversion_rate_new = $this->formatConversionRate($goalMetrics, 'conversion_rate_new_visit');
+ $view->idGoal = $idGoal;
return $view->render();
}
diff --git a/plugins/Goals/Pages.php b/plugins/Goals/Pages.php
index 571a5f75cd..72db6cc21b 100644
--- a/plugins/Goals/Pages.php
+++ b/plugins/Goals/Pages.php
@@ -338,7 +338,8 @@ class Pages
private function createWidgetForReport($module, $action)
{
- $factory = new ReportWidgetFactory(Reports::factory($module, $action));
+ $report = Reports::factory($module, $action);
+ $factory = new ReportWidgetFactory($report);
return $factory->createWidget();
}
diff --git a/plugins/Goals/lang/ar.json b/plugins/Goals/lang/ar.json
index 8c40a00917..0f1394d2ec 100644
--- a/plugins/Goals/lang/ar.json
+++ b/plugins/Goals/lang/ar.json
@@ -2,7 +2,7 @@
"Goals": {
"AddGoal": "أضف هدفاً",
"AddNewGoal": "أضف هدفاً جديداً",
- "AddNewGoalOrEditExistingGoal": "%s أضف هدفاً جديداً %s أو %s حرر %s أهدافاً قائمة",
+ "AddNewGoalOrEditExistingGoal": "%1$s أضف هدفاً جديداً %2$s أو %3$s حرر %4$s أهدافاً قائمة",
"AllowGoalConvertedMoreThanOncePerVisit": "السماح للهدف بالتحويل أكثر من مرة لكل زيارة",
"AllowMultipleConversionsPerVisit": "السماح بعدة تحويلات لكل زيارة",
"BestCountries": "أفضل الدول من حيث التحويل هي:",
@@ -21,7 +21,7 @@
"DefaultRevenueHelp": "على سبيل المثال، نموذج الاتصال الذي يرسله الزائر قد يساوي 10 جنيه في المتوسط. سيساعدك Piwik في فهم كيف تؤدي القطاعات المختلفة من زياراتك.",
"DeleteGoalConfirm": "هل ترغب حقاً في حذف الهدف %s؟",
"Download": "تحميل ملف",
- "ExceptionInvalidMatchingString": "إذا اخترت \"مطابق تماماً\"، فإن العبارة المطابقة يجب أن تكون رابط ويب يبدأ بالتالي %s. على سبيل المثال \"%s\".",
+ "ExceptionInvalidMatchingString": "إذا اخترت \"مطابق تماماً\"، فإن العبارة المطابقة يجب أن تكون رابط ويب يبدأ بالتالي %1$s. على سبيل المثال \"%2$s\".",
"ExternalWebsiteUrl": "رابط موقع خارجي",
"Filename": "اسم الملف",
"GoalConversion": "تحويل الهدف",
@@ -51,6 +51,6 @@
"VisitUrl": "زيارة رابط معين (صفحة أو مجموعة من الصفحات)",
"WhenVisitors": "عندما يقوم الزوار",
"WhereThe": "حيث يكون",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "حيث تكون الصفحة تحتوي على استدعاء لجافاسكريبت piwikTracker.trackGoal() (%sتعرف على المزيد%s)"
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "حيث تكون الصفحة تحتوي على استدعاء لجافاسكريبت piwikTracker.trackGoal() (%1$sتعرف على المزيد%2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/be.json b/plugins/Goals/lang/be.json
index 42efc85eed..4374b6ebf6 100644
--- a/plugins/Goals/lang/be.json
+++ b/plugins/Goals/lang/be.json
@@ -3,7 +3,7 @@
"AbandonedCart": "Адмененых Кошыкаў",
"AddGoal": "Дадаць Мэту",
"AddNewGoal": "Дадаць новую Мэту",
- "AddNewGoalOrEditExistingGoal": "%sДадаць новую Мэту%s або %sРэдагаваць%s існуючыя Мэты",
+ "AddNewGoalOrEditExistingGoal": "%1$sДадаць новую Мэту%2$s або %3$sРэдагаваць%4$s існуючыя Мэты",
"AllowGoalConvertedMoreThanOncePerVisit": "Дазволіць канвертаванне Мэты больш чым адзін раз за наведванне",
"AllowMultipleConversionsPerVisit": "Дазволіць некалькі канверсій за адно наведванне",
"BestCountries": "Краіны з самай лепшай канверсіяй:",
@@ -42,7 +42,7 @@
"EcommerceOrder": "Электронна-камерцыйная замова",
"EcommerceOverview": "Агляд Электроннай камерцыі",
"EcommerceReports": "Справаздачы электроннай камерцыі",
- "ExceptionInvalidMatchingString": "Калі вы вылучыце 'дакладнае супадзенне', адпавядаючы радок павінен быць URL-адрасам, пачынаючы %s. Напрыклад, '%s'.",
+ "ExceptionInvalidMatchingString": "Калі вы вылучыце 'дакладнае супадзенне', адпавядаючы радок павінен быць URL-адрасам, пачынаючы %1$s. Напрыклад, '%2$s'.",
"ExternalWebsiteUrl": "знешні URL-адрас сайта",
"Filename": "імя файла",
"GoalConversion": "Канверсія Мэты",
@@ -79,7 +79,7 @@
"VisitUrl": "Наведайце URL-адрас (старонкі, або групу старонак)",
"WhenVisitors": "калі наведвальнікі",
"WhereThe": "дзе",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "дзе старонка павінна змяшчаць выклік JavaScript piwikTracker.trackGoal() метада (%sдаведацца больш%s)",
- "YouCanEnableEcommerceReports": "Вы можаце ўключыць %s для гэтага вэб-сайта ў %s старонкі."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "дзе старонка павінна змяшчаць выклік JavaScript piwikTracker.trackGoal() метада (%1$sдаведацца больш%2$s)",
+ "YouCanEnableEcommerceReports": "Вы можаце ўключыць %1$s для гэтага вэб-сайта ў %2$s старонкі."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/bg.json b/plugins/Goals/lang/bg.json
index 2999f16f9d..8729dc5666 100644
--- a/plugins/Goals/lang/bg.json
+++ b/plugins/Goals/lang/bg.json
@@ -3,7 +3,7 @@
"AbandonedCart": "Изоставена кошница",
"AddGoal": "Добави цел",
"AddNewGoal": "Добави нова цел",
- "AddNewGoalOrEditExistingGoal": "%sДобави нова цел%s или %sРедактирай%s съществуващите цели",
+ "AddNewGoalOrEditExistingGoal": "%1$sДобави нова цел%2$s или %3$sРедактирай%4$s съществуващите цели",
"AllowGoalConvertedMoreThanOncePerVisit": "Позволи Целта да бъде конвертирана повече от веднъж за едно посещение",
"AllowMultipleConversionsPerVisit": "Разреши няколко конверсии за посещение.",
"BestCountries": "Вашето най-добро конвертиране на страните е:",
@@ -25,7 +25,7 @@
"ColumnVisits": "Пълният брой на посещенията, независимо дали е задействана цел или не.",
"ColumnVisitsProductDocumentation": "Броят посещения на Продуктовата\/Категорийна страница. Това се използва също за да се изчисли %s степента на конверсия. Метричните данни са в отчета, ако изгледа Електронна търговия е бил настроен в Продукт\/Категория страниците.",
"Contains": "съдържа %s",
- "ConversionByTypeReportDocumentation": "Този отчет дава детайлна информация относно развитието на целта (конверсии, степен на конверсията и приход от посещението) за всяка една от категориите, показани на левия панел. %s Моля натиснете на някоя от категориите, за да видите отчета. %s За повече информация, прочетете %sдокументацията за проследяване на целите на piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Този отчет дава детайлна информация относно развитието на целта (конверсии, степен на конверсията и приход от посещението) за всяка една от категориите, показани на левия панел. %1$s Моля натиснете на някоя от категориите, за да видите отчета. %2$s За повече информация, прочетете %3$sдокументацията за проследяване на целите на piwik.org%4$s",
"ConversionRate": "%s обменният курс",
"Conversions": "%s конверсия",
"ConversionsOverview": "Общ преглед на реализациите",
@@ -43,7 +43,7 @@
"EcommerceOrder": "Електронна търговия поръчка",
"EcommerceOverview": "Електронна търговия преглед",
"EcommerceReports": "Електронна търговия доклади",
- "ExceptionInvalidMatchingString": "Ако изберете 'точно съвпадение', съвпадащият низ, трябва да започне с URL %s. Например, '%s'.",
+ "ExceptionInvalidMatchingString": "Ако изберете 'точно съвпадение', съвпадащият низ, трябва да започне с URL %1$s. Например, '%2$s'.",
"ExternalWebsiteUrl": "външен URL",
"Filename": "име на файла",
"GoalConversion": "Конверсия на цел",
@@ -83,7 +83,7 @@
"VisitUrl": "посетят определен URL (страница или група от страници)",
"WhenVisitors": "когато посетителите",
"WhereThe": "където",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "когато посетена страница съдържа призив към JavaScript piwikTracker.trackGoal() метод (%sнаучете повече%s)",
- "YouCanEnableEcommerceReports": "Можете да включите %s за този уебсайт в %s страницата."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "когато посетена страница съдържа призив към JavaScript piwikTracker.trackGoal() метод (%1$sнаучете повече%2$s)",
+ "YouCanEnableEcommerceReports": "Можете да включите %1$s за този уебсайт в %2$s страницата."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/ca.json b/plugins/Goals/lang/ca.json
index d492440031..f081f721ea 100644
--- a/plugins/Goals/lang/ca.json
+++ b/plugins/Goals/lang/ca.json
@@ -3,7 +3,7 @@
"AbandonedCart": "Cistella abandonada",
"AddGoal": "Afegir un objectiu",
"AddNewGoal": "Afegir un nou objectiu",
- "AddNewGoalOrEditExistingGoal": "%sAfegeix un nou objectiu%s o %sEdita objectius existents%s",
+ "AddNewGoalOrEditExistingGoal": "%1$sAfegeix un nou objectiu%2$s o %3$sEdita objectius existents%4$s",
"AllowGoalConvertedMoreThanOncePerVisit": "Permetre convertir un objectiu més d'una vegada per visita",
"AllowMultipleConversionsPerVisit": "Permetre múltiples conversions per visita",
"BestCountries": "Els millors paísos amb conversions són:",
@@ -26,7 +26,7 @@
"ColumnVisits": "El nombre total de visites, sense tenir en compte si s'ha assolit l'objectiu o no.",
"ColumnVisitsProductDocumentation": "El nombre de visites a la pagina del Producte\/Categoria. S'utiltiza per calcular el rati de conversió del %s. Aquesta mètrica està a l'informe si",
"Contains": "conté %s",
- "ConversionByTypeReportDocumentation": "Aquest informe proporciona informació detallada sobre la productivitat dels objectius (conversions, rati de conversións i ingresos per visita) per cada una de les catagories disponibles al panell de l'esquerra. %s Cliqueu alguna de les categories per veure l'informe. %s Per mes informació, llegiu %s la documetnació sobre el rastreig d'objectius a piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Aquest informe proporciona informació detallada sobre la productivitat dels objectius (conversions, rati de conversións i ingresos per visita) per cada una de les catagories disponibles al panell de l'esquerra. %1$s Cliqueu alguna de les categories per veure l'informe. %2$s Per mes informació, llegiu %3$s la documetnació sobre el rastreig d'objectius a piwik.org%4$s",
"ConversionRate": "Rati de coversió de %s",
"Conversions": "%s conversions",
"ConversionsOverview": "Vista general de les conversions",
@@ -44,7 +44,7 @@
"EcommerceOrder": "Ordre d'ecomerç",
"EcommerceOverview": "Vista general ecomerç",
"EcommerceReports": "Informes d'Ecommerce",
- "ExceptionInvalidMatchingString": "Si escolleu 'coïncidencia exacta', el cadena de coincidència ha de ser una URL que comença per %s. Per exemple, '%s'.",
+ "ExceptionInvalidMatchingString": "Si escolleu 'coïncidencia exacta', el cadena de coincidència ha de ser una URL que comença per %1$s. Per exemple, '%2$s'.",
"ExternalWebsiteUrl": "URL del lloc web extern",
"Filename": "nom del fitxer",
"GoalConversion": "Conversió d'objectius",
@@ -83,7 +83,7 @@
"VisitUrl": "Visitar una URL donada (pàgina o grup de pàgines)",
"WhenVisitors": "quan el visitant",
"WhereThe": "quan el",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "quan la pagina visitada conté una crida al mètode piwikTracker.trackGoal() de la API de Javascript (%s saber més %s)",
- "YouCanEnableEcommerceReports": "Podeu activar el %s per aquest lloc web a la pàgina %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "quan la pagina visitada conté una crida al mètode piwikTracker.trackGoal() de la API de Javascript (%1$s saber més %2$s)",
+ "YouCanEnableEcommerceReports": "Podeu activar el %1$s per aquest lloc web a la pàgina %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/cs.json b/plugins/Goals/lang/cs.json
index e229f04e14..e26bd7f11a 100644
--- a/plugins/Goals/lang/cs.json
+++ b/plugins/Goals/lang/cs.json
@@ -3,14 +3,14 @@
"AbandonedCart": "Neobjednané košíky",
"AddGoal": "Přidat cíl",
"AddNewGoal": "Přidat nový cíl",
- "AddNewGoalOrEditExistingGoal": "%sPřidat nový cíl%s, nebo %sUpravit%s existující cíle",
+ "AddNewGoalOrEditExistingGoal": "%1$sPřidat nový cíl%2$s, nebo %3$sUpravit%4$s existující cíle",
"AllowGoalConvertedMoreThanOncePerVisit": "Povolit konverzi cíle více než jednou za návštěvu",
"AllowMultipleConversionsPerVisit": "Povolit více konverzí za návštěvu",
"BestCountries": "Země s nejvyšším počtem konverzí jsou:",
"BestKeywords": "Klíčová slova s nejvyšším počtem konverzí jsou:",
"BestReferrers": "Odkazující stránky s nejvyšším počtem konverzí jsou:",
"CaseSensitive": "rozlišovat velikost písmen",
- "CancelAndReturnToGoals": "Zrušit a %svrátit se na seznam cílů%s",
+ "CancelAndReturnToGoals": "Zrušit a %1$svrátit se na seznam cílů%2$s",
"CategoryTextGeneral_Visitors": "Umístění uživatele",
"CategoryTextReferrers_Referrers": "Referrery",
"CategoryTextVisitsSummary_VisitsSummary": "Uživatelský atribut",
@@ -33,7 +33,7 @@
"ColumnVisits": "Celkový počet návštěv bez ohledu na to, jestli došlo k vyvolání cíle.",
"ColumnVisitsProductDocumentation": "Počet návštěv stránky produktu\/kategorie. Toto je také použito k výpočtu konverzního poměru pro %s. Toto měření je ve hlášení pouze, pokud bylo na stránkách produktů\/kategorií nastaveno sledování elektronického obchodu.",
"Contains": "obsahuje %s",
- "ConversionByTypeReportDocumentation": "Toto hlášení poskytuje podrobné informace o výkonu cíle (konverze, konverzní poměr, celkový příjem za návštěvu) pro každou z kategorií zobrazených v levém panelu. %s Klikněte na jednu z kategorií pro zobrazení hlášení. %s Pro více informací si přečtěte %sdokumentaci sledování cílů%s",
+ "ConversionByTypeReportDocumentation": "Toto hlášení poskytuje podrobné informace o výkonu cíle (konverze, konverzní poměr, celkový příjem za návštěvu) pro každou z kategorií zobrazených v levém panelu. %1$s Klikněte na jednu z kategorií pro zobrazení hlášení. %2$s Pro více informací si přečtěte %3$sdokumentaci sledování cílů%4$s",
"ConversionRate": "%s frekvence konverzí",
"Conversions": "%s konverzí",
"ConversionsOverview": "Přehled konverzí",
@@ -52,7 +52,7 @@
"EcommerceOrder": "Objednávky",
"EcommerceOverview": "Ochody - Přehled",
"EcommerceReports": "Hlášení obchodů",
- "ExceptionInvalidMatchingString": "Pokud zvolíte 'přesnou shodu' odpovídající řetězec musí být URL začínající s %s. Například, '%s'.",
+ "ExceptionInvalidMatchingString": "Pokud zvolíte 'přesnou shodu' odpovídající řetězec musí být URL začínající s %1$s. Například, '%2$s'.",
"ExternalWebsiteUrl": "URL externího webu",
"Filename": "jméno souboru",
"GoalConversion": "Cíl konverze",
@@ -68,16 +68,16 @@
"GoalX": "Cíl: %s",
"HelpOneConversionPerVisit": "Pokud byla stránka odpovídající cíli při návštěvě obnovena nebo zobrazena vícekrát, bude cíl započítán pouze jednou a to při prvním zobrazení.",
"IsExactly": "je přesně %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Více o sledování cílů se dozvíte v %suživatelské dokumentaci%s.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Více o sledování cílů se dozvíte v %1$suživatelské dokumentaci%2$s.",
"LeftInCart": "%s Zbylo v košíku",
- "ManageGoalsOrCreateANewGoal": "%sSpravovat cíle%s nebo ho vytvořte.",
+ "ManageGoalsOrCreateANewGoal": "%1$sSpravovat cíle%2$s nebo ho vytvořte.",
"Manually": "ručně",
"ManuallyTriggeredUsingJavascriptFunction": "Cíl je ručně zaznamenáván pomocí JavaScriptového API trackGoal()",
"MatchesExpression": "odpovídá %s",
"NewGoalIntro": "Sledování konverzního poměru cílů je jeden z nejefektivnějších způsobů měření a zlepšování podnikatelských zájmů.",
"NewVisitorsConversionRateIs": "Poměr konverze nové příchozích uživatelů je %s",
- "NoGoalsNeedAccess": "Pouze administrátor nebo uživatel s právy super uživatele může spravovat cíle pro dané webové stránky. Požádejte vašeho Piwik administrátora, aby vám cíl vytvořil.<br>Sledování cílů je skvělý způsob, jak sledovat a maximalizovat výkonnost vašich webových stránek.",
- "NeedAccess": "Pouze administrátor nebo uživatel s právy super uživatele může spravovat cíle pro danou webovou stránku.",
+ "NoGoalsNeedAccess": "Pouze administrátor nebo uživatel s právy super-uživatele může spravovat cíle pro daný web. Požádejte vašeho Piwik administrátora, aby cíl pro váš web vytvořil.<br>Sledování cílů je skvělý způsob, jak sledovat a maximalizovat výkonnost vašeho webu!",
+ "NeedAccess": "Pouze administrátor nebo uživatel s právy super-uživatele může spravovat cíle pro daný web.",
"Optional": "(volitelné)",
"OverallConversionRate": "%s celková frekvence konverzí (návštěv se splněným cílem)",
"OverallRevenue": "%s celkový příjem",
@@ -101,7 +101,7 @@
"VisitUrl": "Navštíví zadanou URL (stránku nebo skupiny stránek)",
"WhenVisitors": "pokud návštěvníci",
"WhereThe": "když",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "kde navštívená stránka obsahuhe volání metody JavaScriptu 'trackGoal' (%svíce%s)",
- "YouCanEnableEcommerceReports": "Pro tyto stránky můžete povolit %s na stránce %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "kde navštívená stránka obsahuhe volání metody JavaScriptu 'trackGoal' (%1$svíce%2$s)",
+ "YouCanEnableEcommerceReports": "Pro tyto stránky můžete povolit %1$s na stránce %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/da.json b/plugins/Goals/lang/da.json
index a6224eee57..55ae158edf 100644
--- a/plugins/Goals/lang/da.json
+++ b/plugins/Goals/lang/da.json
@@ -3,14 +3,14 @@
"AbandonedCart": "Afbrudt Ordre",
"AddGoal": "Tilføj mål",
"AddNewGoal": "Tilføj et nyt mål",
- "AddNewGoalOrEditExistingGoal": "%sTilføj et nyt mål%s eller %srediger%s eksisterende mål",
+ "AddNewGoalOrEditExistingGoal": "%1$sTilføj et nyt mål%2$s eller %3$srediger%4$s eksisterende mål",
"AllowGoalConvertedMoreThanOncePerVisit": "Tillad at mål konverteres mere end én gang pr. besøg",
"AllowMultipleConversionsPerVisit": "Tillad flere konverteringer pr. besøg",
"BestCountries": "De bedste konverteringslande er:",
"BestKeywords": "Top konverteringssøgeord er:",
"BestReferrers": "Bedste konverteringshjemmeside henvisning er:",
"CaseSensitive": "Forskel på små og store bogstaver",
- "CancelAndReturnToGoals": "Annuller og %sog vend tilbage til listen over mål%s",
+ "CancelAndReturnToGoals": "Annuller og %1$sog vend tilbage til listen over mål%2$s",
"ChooseGoal": "Vælg mål",
"ClickOutlink": "Klik på et link til en ekstern hjemmeside",
"SendEvent": "Send en hændelse",
@@ -29,7 +29,7 @@
"ColumnVisits": "Det samlede antal besøg, uanset om et mål blev udløst eller ej.",
"ColumnVisitsProductDocumentation": "Antallet af besøg på produktet\/kategori siden. Anvendes til at behandle %s konverteringsfrekvens. Målingen er med i rapporten, hvis e-handel sporing var konfigureret på produkt\/kategori siderne.",
"Contains": "indeholder %s",
- "ConversionByTypeReportDocumentation": "Rapporten indeholder detaljerede oplysninger om mål ydeevne (konverteringer, omregningskurser og indtægt pr. besøg) for hver af kategorierne tilgængelig i panelet til venstre. %s Klik på en af kategorierne for at få vist rapporten. %s For mere information læs %sSporing af mål dokumentation på piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Rapporten indeholder detaljerede oplysninger om mål ydeevne (konverteringer, omregningskurser og indtægt pr. besøg) for hver af kategorierne tilgængelig i panelet til venstre. %1$s Klik på en af kategorierne for at få vist rapporten. %2$s For mere information læs %3$sSporing af mål dokumentation på piwik.org%4$s",
"ConversionRate": "%s konverteringsrate",
"Conversions": "%s konverteringer",
"ConversionsOverview": "Konverteringsoversigt",
@@ -48,7 +48,7 @@
"EcommerceOrder": "E-handel ordre",
"EcommerceOverview": "E-handel oversigt",
"EcommerceReports": "E-handelsrapporter",
- "ExceptionInvalidMatchingString": "Hvis der vælges 'eksakt match', skal den matchende streng være en netadresse der starter med %s. F.eks., '%s'.",
+ "ExceptionInvalidMatchingString": "Hvis der vælges 'eksakt match', skal den matchende streng være en netadresse der starter med %1$s. F.eks., '%2$s'.",
"ExternalWebsiteUrl": "ekstern hjemmesideadresse",
"Filename": "filnavn",
"GoalConversion": "Mål konvertering",
@@ -64,9 +64,9 @@
"GoalX": "Mål %s",
"HelpOneConversionPerVisit": "Hvis en side der matcher målet opdateres eller ses mere end én gang i et besøg, vil målet kun spores første gang siden bliver indlæst under besøget.",
"IsExactly": "er nøjagtig %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Lær mere om %s sporingsmål i Piwik%s i brugerdokumentationen.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Lær mere om %1$s sporingsmål i Piwik%2$s i brugerdokumentationen.",
"LeftInCart": "%s tilbage i kurven",
- "ManageGoalsOrCreateANewGoal": "%sAdministrer mål%s eller opret et nyt mål nu!",
+ "ManageGoalsOrCreateANewGoal": "%1$sAdministrer mål%2$s eller opret et nyt mål nu!",
"Manually": "manuelt",
"ManuallyTriggeredUsingJavascriptFunction": "Målet udløses manuelt ved hjælp af JavaScript API trackGoal ()",
"MatchesExpression": "matcher udtrykket %s",
@@ -93,7 +93,7 @@
"VisitUrl": "Besøger en bestemt hjemmeside (side eller en gruppe af sider)",
"WhenVisitors": "når de besøgende",
"WhereThe": "Hvor",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "hvor den besøgte side indeholder et kald til JavaScriptet piwikTracker.trackGoal () metode (%s lær mere%s)",
- "YouCanEnableEcommerceReports": "Du kan aktivere %s for hjemmesiden på %s siden."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "hvor den besøgte side indeholder et kald til JavaScriptet piwikTracker.trackGoal () metode (%1$s lær mere%2$s)",
+ "YouCanEnableEcommerceReports": "Du kan aktivere %1$s for hjemmesiden på %2$s siden."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/de.json b/plugins/Goals/lang/de.json
index 73e5f8fca6..099058defa 100644
--- a/plugins/Goals/lang/de.json
+++ b/plugins/Goals/lang/de.json
@@ -3,14 +3,14 @@
"AbandonedCart": "Verlassener Warenkorb",
"AddGoal": "Ziel definieren",
"AddNewGoal": "Ein neues Ziel definieren",
- "AddNewGoalOrEditExistingGoal": "%s Eine neues Ziel definieren%s oder ein existierendes Ziel %sbearbeiten%s",
+ "AddNewGoalOrEditExistingGoal": "%1$sEine neues Ziel definieren%2$s oder ein existierendes Ziel %3$sbearbeiten%4$s",
"AllowGoalConvertedMoreThanOncePerVisit": "Erlauben, dass das Ziel mehr als einmal pro Besuch erreicht werden kann.",
"AllowMultipleConversionsPerVisit": "Mehrfacherreichung pro Besuch erlauben",
"BestCountries": "Beste Umsätze nach Länder:",
"BestKeywords": "Beste Umsätze nach Suchbegriffen:",
"BestReferrers": "Beste Umsätze nach verweisenden Websites:",
"CaseSensitive": "Groß-\/Kleinschreibung beachten",
- "CancelAndReturnToGoals": "Abbrechen und %szur Liste der Ziele zurückkehren%s",
+ "CancelAndReturnToGoals": "Abbrechen und %1$szur Liste der Ziele zurückkehren%2$s",
"CategoryTextGeneral_Visitors": "Benutzerstandort",
"CategoryTextReferrers_Referrers": "Verweise",
"CategoryTextVisitsSummary_VisitsSummary": "Benutzereigenschaft",
@@ -33,7 +33,7 @@
"ColumnVisits": "Die Gesamtanzahl an Besuchen, unabhängig davon ob dabei ein Ziel erreicht wurde oder nicht.",
"ColumnVisitsProductDocumentation": "Die Anzahl der Besuche auf der Produkt-\/Kategorieseite. Wird auch genutzt um die %s Konversionsrate zu berechnen.Diese Metrik ist auch im Report der Ecommerceansicht, wenn diese auf der Produkt-\/Kategorieseite eingestellt wurde.",
"Contains": "beinhaltet %s",
- "ConversionByTypeReportDocumentation": "In diesem Bericht finden Sie detaillierte Informationen über die Performance Ihrer Ziele für jede der Kategorien in der linken Leiste. %s Klicken Sie auf eine der Kategorien, um den entsprechenden Bericht anzuzeigen. %s Weitere Informationen finden Sie in der %sZiel-Dokumentation auf piwik.org%s",
+ "ConversionByTypeReportDocumentation": "In diesem Bericht finden Sie detaillierte Informationen über die Performance Ihrer Ziele für jede der Kategorien in der linken Leiste. %1$s Klicken Sie auf eine der Kategorien, um den entsprechenden Bericht anzuzeigen. %2$s Weitere Informationen finden Sie in der %3$sZiel-Dokumentation auf piwik.org%4$s",
"ConversionRate": "%s Konversionsrate",
"Conversions": "%s Konversionen",
"ConversionsOverview": "Konversions-Überblick",
@@ -52,7 +52,7 @@
"EcommerceOrder": "Ecommerce Bestellung",
"EcommerceOverview": "Ecommerce Übersicht",
"EcommerceReports": "Ecommerce Berichte",
- "ExceptionInvalidMatchingString": "Bei der Auswahl von 'Genauer Vergleich' muss die zu vergleichende Zeichenkette eine URL sein, die mit %s beginnt. Zum Beispiel '%s'.",
+ "ExceptionInvalidMatchingString": "Bei der Auswahl von 'Genauer Vergleich' muss die zu vergleichende Zeichenkette eine URL sein, die mit %1$s beginnt. Zum Beispiel '%2$s'.",
"ExternalWebsiteUrl": "externe Website-URL",
"Filename": "Dateiname",
"GoalConversion": "Ziel-Konversion",
@@ -68,9 +68,9 @@
"GoalX": "Ziel %s",
"HelpOneConversionPerVisit": "Wird eine Seite, auf die dieses Ziel passt, aktualisiert oder mehr als einmal während eines Besuchs betrachtet, wird das Ziel nur beim ersten Aufruf während des Besuchs gewertet.",
"IsExactly": "ist genau %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Mehr zum Thema %s Erfassen von Zielen in Piwik%s erfahren Sie in der Dokumentation.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Mehr zum Thema %1$s Erfassen von Zielen in Piwik%2$s erfahren Sie in der Dokumentation.",
"LeftInCart": "%s im Warenkorb gelassen",
- "ManageGoalsOrCreateANewGoal": "%sZiele verwalten%s oder ein neues Ziel erstellen!",
+ "ManageGoalsOrCreateANewGoal": "%1$sZiele verwalten%2$s oder ein neues Ziel erstellen!",
"Manually": "manuell",
"ManuallyTriggeredUsingJavascriptFunction": "Ziel wird manuell über die trackGoal() Funktion der Javascript-API auf erfüllt gesetzt",
"MatchesExpression": "entspricht dem Ausdruck %s",
@@ -101,7 +101,7 @@
"VisitUrl": "Die angegebene URL (Seite oder Gruppe von Seiten) wird besucht",
"WhenVisitors": "wenn vom Besucher",
"WhereThe": "bei denen die",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "wenn die besuchte Seite einen Aufruf der Javascript-Methode piwikTracker.trackGoal() enthält (%sweitere Informationen%s)",
- "YouCanEnableEcommerceReports": "Sie können %s für diese Website auf der Seite %s aktivieren."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "wenn die besuchte Seite einen Aufruf der Javascript-Methode 'trackGoal' enthält (%1$sweitere Informationen%2$s)",
+ "YouCanEnableEcommerceReports": "Sie können %1$s für diese Website auf der Seite %2$s aktivieren."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/el.json b/plugins/Goals/lang/el.json
index f1cc2fca4a..612438258b 100644
--- a/plugins/Goals/lang/el.json
+++ b/plugins/Goals/lang/el.json
@@ -3,14 +3,14 @@
"AbandonedCart": "Εγκατελειμένο Καλάθι",
"AddGoal": "Προσθήκη Στόχου",
"AddNewGoal": "Προσθήκη νέου Στόχου",
- "AddNewGoalOrEditExistingGoal": "%sΠροσθέστε έναν νέο Στόχο%s ή %sΕπεξεργαστείτε%s υπάρχοντες Στόχους",
+ "AddNewGoalOrEditExistingGoal": "%1$sΠροσθέστε νέο Στόχο%2$s ή %3$sτροποποιήστε%4$s υπάρχοντες Στόχους",
"AllowGoalConvertedMoreThanOncePerVisit": "Δικαίωμα μετατροπής Στόχου περισσότερο από μια φορά τηη ημέρα",
"AllowMultipleConversionsPerVisit": "Δυνατότητα πολλαπλών μετατροπών ανά επίσκεψη",
"BestCountries": "Οι καλύτερες χώρες μετατροπής είναι:",
"BestKeywords": "Οι κορυφαίες λέξεις-κλειδιά μετατροπής είναι:",
"BestReferrers": "Οι καλύτεροι αναφορείς ιστοσελίδων μετατροπής είναι:",
"CaseSensitive": "Ταίριασμα πεζών-κεφαλαίων",
- "CancelAndReturnToGoals": "Ακύρωση και %sεπιστροφή στη λίστα στόχων%s",
+ "CancelAndReturnToGoals": "Ακύρωση και %1$sεπιστροφή στη λίστα των στόχων%2$s",
"CategoryTextGeneral_Visitors": "Τοποθεσία χρήστη",
"CategoryTextReferrers_Referrers": "Αναφορείς",
"CategoryTextVisitsSummary_VisitsSummary": "Χαρακτηριστικό χρήστη",
@@ -33,7 +33,7 @@
"ColumnVisits": "Ο συνολικός αριθμός των επισκέψεων, ανεξάρτητα αν ένας στόχος εκπληρώθηκε ή όχι..",
"ColumnVisitsProductDocumentation": "Ο αριθμός των επισκέψεων στη σελίδα Προϊόντος\/Κατηγορίας. Αυτό χρησιμοποιείτε για τον υπολογισμό του βαθμού μετατροπής του %s. Αυτή η μέτρηση είναι στην αναφορά, αν η καταγραφή προβολής Ηλεκτρονικού Εμπορίου εγκαταστάθηκε στις σελίδες Προϊόντος\/Κατηγορίας.",
"Contains": "περιέχει %s",
- "ConversionByTypeReportDocumentation": "Αυτή αναφορά παρέχει λεπτομερείς πληροφορίες για την απόδοση του στόχου (μετατροπές, βαθμοί μετατροπής και πρόσοδος ανά επίσκεψη) για κάθε διαθέσιμη κατηγορία στον αριστερό πίνακα. %s Πατήστε μια από τις κατηγορίες για να δείτε την αναφορά. %s Για περισσότερες πληροφορίες, διαβάστε την %sτεκμηρίωση Ανίχνευσης Στόχων στο piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Η αναφορά αυτή παρέχει λεπτομερή πληροφορία σχετικά με την απόδοση των στόχων (μετατροπές, ρυθμοί μετατροπών και κέρδος ανά επίσκεψη) για καθεμία από τις διαθέσιμες κατηγορίες στον αριστερό πίνακα. %1$s Κάντε κλικ σε μία από τις κατηγορίες για να δείτε την αναφορά. %2$s Για περισσότερες πληροφορίες, δείτε την %3$sτεκμηρίωση Μετατροπής Στόχων%4$s",
"ConversionRate": "%s βαθμός μετατροπής",
"Conversions": "%s μετατροπές",
"ConversionsOverview": "Επισκόπηση μετατροπών",
@@ -52,7 +52,7 @@
"EcommerceOrder": "Ηλεκτρονική παραγγελία",
"EcommerceOverview": "Επισκόπηση Ηλεκτρονικού Εμπορίου",
"EcommerceReports": "Αναφορές Ηλεκτρονικού Εμπορίου",
- "ExceptionInvalidMatchingString": "Αν επιλέξετε «είναι ακριβώς», το κείμενο για ταίριασμα πρέπει να είναι ένα URL που θα ξεκινά με %s. Για παράδειγμα, %s.",
+ "ExceptionInvalidMatchingString": "Αν επιλέξετε 'ακριβές ταίριασμα', το κείμενο που θα αντιστοιχηθεί θα πρέπει να είναι διεύθυνση URL που να ξεκινάει από %1$s. Για παράδειγμα, '%2$s'.",
"ExternalWebsiteUrl": "εξωτερικό URL ιστοσελίδας",
"Filename": "όνομα αρχείου",
"GoalConversion": "Μετατροπή στόχου",
@@ -68,9 +68,9 @@
"GoalX": "Στόχος %s",
"HelpOneConversionPerVisit": "Αν μια Σελίδα ταιριάζει, αυτός ο Στόχος ανανεώνεται ή προβάλεται περισσόερες φορές ανά Επίσκεψη και ο Στόχος θα καταγράφετε μόνο την πρώτη φορά που φορτώθηκε η σελίδα κατά την επίσκεψη.",
"IsExactly": "είναι ακριβώς %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Μάθετε περισσότερα σχετικά με την %sΠαρακολούθηση Στόχων στο Piwik%s στην τεκμηρίωση για το χρήστη.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Δείτε περισσότερα για την %1$sΠαρακολούθηση των Στόχων στο Piwik%2$s στην τεκμηρίωση για το χρήστη.",
"LeftInCart": "%s απομένουν στο καλάθι",
- "ManageGoalsOrCreateANewGoal": "%sΔιαχειριστείτε τους Στόχους%s ή δημιουργήστε τώρα έναν νέο!",
+ "ManageGoalsOrCreateANewGoal": "%1$sΔιαχειριστείτε τους Στόχους%2$s ή δημιουργήστε ένα νέο τώρα!",
"Manually": "χειροκίνητα",
"ManuallyTriggeredUsingJavascriptFunction": "Ο Στόχος ενεργοποιείτε χειροκίνητα με χρήση του Javascript API trackGoal()",
"MatchesExpression": "ταιριάζει στην έκφραση %s",
@@ -101,7 +101,7 @@
"VisitUrl": "Επίσκεψη σε μια δοθείσα διεύθυνση URL (σελίδα ή ομάδα σελίδων)",
"WhenVisitors": "όταν οι επισκέψεις αφορούν",
"WhereThe": "όπου το",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "όπου η επισκεπτόμενη σελίδα περιέχει μια κλήση στη μέθοδο Javascript piwikTracker.trackGoal() (%sμάθετε περισσότερα%s)",
- "YouCanEnableEcommerceReports": "Μπορείτε να ενεργοποιήσετε τις %s για αυτή την ιστοσελίδα στη σελίδα %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "όπου η σελίδα που έχει επισκεφθεί από κάποιο χρήστη περιέχει μια κλήση για την μέθοδο 'trackGoal' της JavaScript (%1$sδιαβάστε περισσότερα%2$s)",
+ "YouCanEnableEcommerceReports": "Μπορείτε να ενεργοποιήσετε το %1$s για αυτό τον ιστοτόπο στη σελίδα %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/en.json b/plugins/Goals/lang/en.json
index 8820b333e7..d5b221a3fc 100644
--- a/plugins/Goals/lang/en.json
+++ b/plugins/Goals/lang/en.json
@@ -3,16 +3,16 @@
"AbandonedCart": "Abandoned Cart",
"AddGoal": "Add Goal",
"AddNewGoal": "Add a new Goal",
- "AddNewGoalOrEditExistingGoal": "%sAdd a new Goal%s or %sEdit%s existing Goals",
+ "AddNewGoalOrEditExistingGoal": "%1$sAdd a new Goal%2$s or %3$sEdit%4$s existing Goals",
"AllowGoalConvertedMoreThanOncePerVisit": "Allow Goal to be converted more than once per visit",
"AllowMultipleConversionsPerVisit": "Allow multiple conversions per visit",
"BestCountries": "Your best converting countries are:",
"BestKeywords": "Your top converting keywords are:",
"BestReferrers": "Your best converting websites referrers are:",
"CaseSensitive": "Case sensitive match",
- "CancelAndReturnToGoals": "Cancel and %sreturn to the list of goals%s",
+ "CancelAndReturnToGoals": "Cancel and %1$sreturn to the list of goals%2$s",
"CategoryTextGeneral_Visitors": "User location",
- "CategoryTextReferrers_Referrers": "Referrers",
+ "CategoryTextReferrers_Referrers": "Referrers",
"CategoryTextVisitsSummary_VisitsSummary": "User attribute",
"CategoryTextGeneral_Visit": "engagement",
"ChooseGoal": "Choose Goal",
@@ -33,7 +33,7 @@
"ColumnVisits": "The total number of visits, regardless of whether a goal was triggered or not.",
"ColumnVisitsProductDocumentation": "The number of visits on the Product\/Category page. This is also used to process the %s conversion rate. This metric is in the report if Ecommerce view tracking was setup on Product\/Category pages.",
"Contains": "contains %s",
- "ConversionByTypeReportDocumentation": "This report provides detailed information about the goal performance (conversions, conversion rates and revenue per visit) for each of the categories available in the left panel. %s Please click on one of the categories to view the report. %s For more information, read the %sTracking Goals documentation%s",
+ "ConversionByTypeReportDocumentation": "This report provides detailed information about the goal performance (conversions, conversion rates and revenue per visit) for each of the categories available in the left panel. %1$s Please click on one of the categories to view the report. %2$s For more information, read the %3$sTracking Goals documentation%4$s",
"ConversionRate": "%s conversion rate",
"Conversions": "%s conversions",
"ConversionsDescription": "conversions",
@@ -53,7 +53,7 @@
"EcommerceOrder": "Ecommerce order",
"EcommerceOverview": "Ecommerce Overview",
"EcommerceReports": "Ecommerce Reports",
- "ExceptionInvalidMatchingString": "If you choose 'exact match', the matching string must be a URL starting with %s. For example, '%s'.",
+ "ExceptionInvalidMatchingString": "If you choose 'exact match', the matching string must be a URL starting with %1$s. For example, '%2$s'.",
"ExternalWebsiteUrl": "external website URL",
"Filename": "filename",
"GoalConversion": "Goal conversion",
@@ -69,9 +69,9 @@
"GoalX": "Goal %s",
"HelpOneConversionPerVisit": "If a Page matching this Goal is refreshed or viewed more than once in a Visit, the Goal will only be tracked the first time the page was loaded during this visit.",
"IsExactly": "is exactly %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Learn more about %s Tracking Goals in Piwik%s in the user documentation.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Learn more about %1$s Tracking Goals in Piwik%2$s in the user documentation.",
"LeftInCart": "%s left in cart",
- "ManageGoalsOrCreateANewGoal": "%sManage Goals%s or create a new Goal now!",
+ "ManageGoalsOrCreateANewGoal": "%1$sManage Goals%2$s or create a new Goal now!",
"Manually": "manually",
"ManuallyTriggeredUsingJavascriptFunction": "Goal is manually triggered using the JavaScript API trackGoal()",
"MatchesExpression": "matches the expression %s",
@@ -102,7 +102,7 @@
"VisitUrl": "Visit a given URL (page or group of pages)",
"WhenVisitors": "when visitors",
"WhereThe": "where the",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "where the visited page contains a call to the JavaScript 'trackGoal' method (%slearn more%s)",
- "YouCanEnableEcommerceReports": "You can enable %s for this website in the %s page."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "where the visited page contains a call to the JavaScript 'trackGoal' method (%1$slearn more%2$s)",
+ "YouCanEnableEcommerceReports": "You can enable %1$s for this website in the %2$s page."
}
}
diff --git a/plugins/Goals/lang/es.json b/plugins/Goals/lang/es.json
index 4d5a1edc99..97d6b9b375 100644
--- a/plugins/Goals/lang/es.json
+++ b/plugins/Goals/lang/es.json
@@ -3,14 +3,14 @@
"AbandonedCart": "Carrito abandonado",
"AddGoal": "Agregar objetivo",
"AddNewGoal": "Agregar un nuevo objetivo",
- "AddNewGoalOrEditExistingGoal": "%sAgregar un nuevo objetivo%s o %sEditar%s objetivos existentes.",
+ "AddNewGoalOrEditExistingGoal": "%1$sAgregar un nuevo objetivo%2$s o %3$sEditar%4$s objetivos existentes.",
"AllowGoalConvertedMoreThanOncePerVisit": "Permitir que el objetivo sea convertido más de una vez por visita",
"AllowMultipleConversionsPerVisit": "Permitir múltiples conversiones por visita.",
"BestCountries": "Sus mejores países de conversión son:",
"BestKeywords": "Sus principales palabras clave de conversión son:",
"BestReferrers": "Sus mejores páginas de internet referentes de conversión son:",
"CaseSensitive": "Coincidir mayúsculas y minúsculas",
- "CancelAndReturnToGoals": "Cancelar y %svolver a la lista de metas%s",
+ "CancelAndReturnToGoals": "Cancelar y %1$svolver a la lista de metas%2$s",
"CategoryTextGeneral_Visitors": "Ubicación del usuario",
"CategoryTextReferrers_Referrers": "Referencias",
"CategoryTextVisitsSummary_VisitsSummary": "Atributo del usuario",
@@ -33,7 +33,7 @@
"ColumnVisits": "El número total de visitas, sin importar si el objetivo fue cumplido o no.",
"ColumnVisitsProductDocumentation": "El número de visitas en la página de Producto\/Categoría. Esto también se usa para procesar el ratio de conversión de %s. Esta métrica está en el Informe si el seguimiento del comercio electrónico fue configurado en las páginas de Producto\/Categoría.",
"Contains": "contiene %s",
- "ConversionByTypeReportDocumentation": "Este reporte proporciona información detallada sobre el rendimiento del objetivo (conversiones, ratio de conversión y ingresos por visita) para cada de las categorías disponibles en el panel de la izquierda. %s Por favor, haga clic en una de las categorías para ver el informe. %s Para más información, lea la %sdocumentación sobre Seguimiento de Objetivos en piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Este reporte proporciona información detallada sobre el rendimiento del objetivo (conversiones, ratio de conversión y ingresos por visita) para cada de las categorías disponibles en el panel de la izquierda. %1$s Por favor, haga clic en una de las categorías para ver el informe. %2$s Para más información, lea la %3$sdocumentación sobre Seguimiento de Objetivos en piwik.org%4$s",
"ConversionRate": "%s tasa de conversión",
"Conversions": "%s conversiones",
"ConversionsOverview": "Vista general de conversiones",
@@ -52,7 +52,7 @@
"EcommerceOrder": "Pedido de Comercio Electrónico",
"EcommerceOverview": "Información general de Comercio Electrónico",
"EcommerceReports": "Informes de Comercio Electrónico",
- "ExceptionInvalidMatchingString": "Si elige 'coincidencia exacta', la cadena debe ser una URL que comience con %s. Por ejemplo, '%s'..",
+ "ExceptionInvalidMatchingString": "Si elige 'coincidencia exacta', la cadena debe ser una URL que comience con %1$s. Por ejemplo, '%2$s'.",
"ExternalWebsiteUrl": "URL del sitio de internet externo",
"Filename": "nombre de archivo",
"GoalConversion": "Conversión de objetivos",
@@ -68,9 +68,9 @@
"GoalX": "Objetivo %s",
"HelpOneConversionPerVisit": "Si una página que coincide con este objetivo es actualizada o vista más de una vez en una visita, el objetivo solo será convertido la primera vez que la página fue cargada durante la visita.",
"IsExactly": "es exactamente %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Aprender más acerca de %sRastrear metas en Piwik%s en la documentación de usuario.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Aprender más acerca de %1$sRastrear metas en Piwik%2$s en la documentación de usuario.",
"LeftInCart": "%s dejado en el carrito",
- "ManageGoalsOrCreateANewGoal": "%sAdministrar metas%s o crear un nuevo objetivo ahora!",
+ "ManageGoalsOrCreateANewGoal": "%1$sAdministrar metas%2$s o crear un nuevo objetivo ahora!",
"Manually": "manualmente",
"ManuallyTriggeredUsingJavascriptFunction": "Los objetivos son manualmente activados usando la API Javascript trackGoal()",
"MatchesExpression": "coincide con la expresión %s",
@@ -99,7 +99,7 @@
"VisitUrl": "Visita a una URL dada (página o grupo de páginas)",
"WhenVisitors": "cuando los visitantes",
"WhereThe": "donde el",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "donde las paginas visitadas contienen una llamada al método JavaScript piwikTracker.trackGoal() (%ssaber mas%s)",
- "YouCanEnableEcommerceReports": "Puede habilitar %s para este sitio de internet en la página %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "donde las paginas visitadas contienen una llamada al método JavaScript 'trackGoal' (%1$ssaber mas%2$s)",
+ "YouCanEnableEcommerceReports": "Puede habilitar %1$s para este sitio de internet en la página %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/et.json b/plugins/Goals/lang/et.json
index 253161fe5e..ce5bb66789 100644
--- a/plugins/Goals/lang/et.json
+++ b/plugins/Goals/lang/et.json
@@ -3,7 +3,7 @@
"AbandonedCart": "Hüljatud ostukorv",
"AddGoal": "Lisa eesmärk",
"AddNewGoal": "Lisa uus eesmärk",
- "AddNewGoalOrEditExistingGoal": "%sLisa uus eesmärk%s või %sMuuda%s olemasolevaid eesmärke",
+ "AddNewGoalOrEditExistingGoal": "%1$sLisa uus eesmärk%2$s või %3$sMuuda%4$s olemasolevaid eesmärke",
"AllowGoalConvertedMoreThanOncePerVisit": "Luba külastajate muundamist rohkem kui ühe korra külastuse jooksul (võib mitu korda muutuda tulu toovaks kliendiks)",
"AllowMultipleConversionsPerVisit": "Luba mitu tulutoomist ühe külastuse jooksul",
"BestCountries": "Sinu parimad tulutoovad riigid on:",
@@ -60,6 +60,6 @@
"VisitUrl": "Külastavad määratud URLi (leht või lehtede grupp)",
"WhenVisitors": "kui külastajad",
"WhereThe": "kus",
- "YouCanEnableEcommerceReports": "Sa saad aktiveerida %s antud veebilehele %s lehel."
+ "YouCanEnableEcommerceReports": "Sa saad aktiveerida %1$s antud veebilehele %2$s lehel."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/eu.json b/plugins/Goals/lang/eu.json
index 52293f09f2..fd208b8a56 100644
--- a/plugins/Goals/lang/eu.json
+++ b/plugins/Goals/lang/eu.json
@@ -2,7 +2,7 @@
"Goals": {
"AddGoal": "Gehitu helburua",
"AddNewGoal": "Gehitu helburu berria",
- "AddNewGoalOrEditExistingGoal": "%sGehitu helburu berria%s edo %sEditatu%s dauden helburuak",
+ "AddNewGoalOrEditExistingGoal": "%1$sGehitu helburu berria%2$s edo %3$sEditatu%4$s dauden helburuak",
"ClickOutlink": "Egin klik kanpoko webgune baterako loturan",
"ColumnConversions": "Bihurketa",
"ConversionsOverview": "Bihurketen ikuspegi orokorra",
diff --git a/plugins/Goals/lang/fa.json b/plugins/Goals/lang/fa.json
index 1c15c53002..8366f700df 100644
--- a/plugins/Goals/lang/fa.json
+++ b/plugins/Goals/lang/fa.json
@@ -3,7 +3,7 @@
"AbandonedCart": "سبد خرید رها شده",
"AddGoal": "هدف اضافه کن",
"AddNewGoal": "هدف جدید اضافه کن",
- "AddNewGoalOrEditExistingGoal": "%s یک هدف جدید اضافه کنید %s یا %sویرایش کنید %sهدف های کنونی را",
+ "AddNewGoalOrEditExistingGoal": "%1$s یک هدف جدید اضافه کنید %2$s یا %3$sویرایش کنید %4$sهدف های کنونی را",
"AllowGoalConvertedMoreThanOncePerVisit": "اجازه هدف بیش از یک بار در هر بازدید تبدیل",
"AllowMultipleConversionsPerVisit": "اجازه تبدیل چند در هر بازدید",
"BestCountries": "بهترین شما تبدیل کشورها عبارتند از:",
@@ -74,6 +74,6 @@
"VisitUrl": "ارسال یک URL (صفحه یا گروهی از صفحات)",
"WhenVisitors": "زمانی که بازدیدکنندگان",
"WhereThe": "کجاست",
- "YouCanEnableEcommerceReports": "شما می توانید %s را برای این وبسایت در صفحه %s فعال کنید."
+ "YouCanEnableEcommerceReports": "شما می توانید %1$s را برای این وبسایت در صفحه %2$s فعال کنید."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/fi.json b/plugins/Goals/lang/fi.json
index 22c000b676..09d853141f 100644
--- a/plugins/Goals/lang/fi.json
+++ b/plugins/Goals/lang/fi.json
@@ -3,7 +3,7 @@
"AbandonedCart": "Hylätty ostoskori",
"AddGoal": "Lisää tavoite",
"AddNewGoal": "Lisää uusi tavoite",
- "AddNewGoalOrEditExistingGoal": "%sLisää uusi tavoite%s tai %smuokkaa%s olemassaolevia tavoitteita",
+ "AddNewGoalOrEditExistingGoal": "%1$sLisää uusi tavoite%2$s tai %3$smuokkaa%4$s olemassaolevia tavoitteita",
"AllowGoalConvertedMoreThanOncePerVisit": "Salli tavoitteen saavuttaminen useammin kuin kerran per käynti",
"AllowMultipleConversionsPerVisit": "Salli monta tavoitteen saavuttamista per käynti",
"BestCountries": "Parhaat maat ovat:",
@@ -28,7 +28,7 @@
"ColumnVisits": "Käyntien kokonaismäärä, riippumatta tavoitteiden saavuttamisesta.",
"ColumnVisitsProductDocumentation": "Käyntien määrä tuote-\/kategoriasivuilla. Tätä käytetään %s:n saavuttamisasteen laskemiseen. Tämä arvo on raportissa, jos verkkokaupan seuranta on otettu käyttöön tuote- ja kategoriasivuilla.",
"Contains": "sisältää %s",
- "ConversionByTypeReportDocumentation": "Tämä raportti antaa tarkempaa tietoa tavoitteista (saavuttaminen, saavuttamisprosentit, tulot per käynti) jokaiselle vasemman paneelin kategorialle. %s Näet raportin klikkaamalla kategoriaa. %s Saat lisätietoa englanninkielisestä %s dokumentaatiosta piwik.orgissa%s",
+ "ConversionByTypeReportDocumentation": "Tämä raportti antaa tarkempaa tietoa tavoitteista (saavuttaminen, saavuttamisprosentit, tulot per käynti) jokaiselle vasemman paneelin kategorialle. %1$s Näet raportin klikkaamalla kategoriaa. %2$s Saat lisätietoa englanninkielisestä %3$s dokumentaatiosta piwik.orgissa%4$s",
"ConversionRate": "%s siirtymisaste",
"Conversions": "%s siirtymää",
"ConversionsOverview": "Siirtymien yleiskatsaus",
@@ -46,7 +46,7 @@
"EcommerceOrder": "Verkkokaupan järjestys",
"EcommerceOverview": "Verkkokaupan yleiskatsaus",
"EcommerceReports": "Verkkokaupan raportit",
- "ExceptionInvalidMatchingString": "Jos valitset 'täsmällinen osuma', täsmäävän merkkijonon täytyy olla osoite, joka alkaa %s. Esimerkiksi '%s'.",
+ "ExceptionInvalidMatchingString": "Jos valitset 'täsmällinen osuma', täsmäävän merkkijonon täytyy olla osoite, joka alkaa %1$s. Esimerkiksi '%2$s'.",
"ExternalWebsiteUrl": "ulkopuolisen sivun osoite",
"Filename": "tiedostonimi",
"GoalConversion": "Maalin muunnos",
@@ -86,7 +86,7 @@
"VisitUrl": "Vierailee annetussa osoitteessa (sivu tai ryhmä sivuja)",
"WhenVisitors": "kun kävijöitä",
"WhereThe": "jossa",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "jossa sivu sisältää JavaScript-kutsun metodille piwikTracker.trackGoal() (%slue lisää%s)",
- "YouCanEnableEcommerceReports": "Voit ottaa käyttöön %s tälle sivustolle sivulla %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "jossa sivu sisältää JavaScript-kutsun metodille 'trackGoal' (%1$slue lisää%2$s)",
+ "YouCanEnableEcommerceReports": "Voit ottaa käyttöön %1$s tälle sivustolle sivulla %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/fr.json b/plugins/Goals/lang/fr.json
index 8518515c2e..3eb87a792b 100644
--- a/plugins/Goals/lang/fr.json
+++ b/plugins/Goals/lang/fr.json
@@ -3,14 +3,14 @@
"AbandonedCart": "Panier abandonné",
"AddGoal": "Ajouter un objectif",
"AddNewGoal": "Ajoutez un nouvel objectif",
- "AddNewGoalOrEditExistingGoal": "%sAjouter un nouvel objectif%s or %sEditer%s des objectifs existants",
+ "AddNewGoalOrEditExistingGoal": "%1$sAjouter un nouvel objectif%2$s or %3$sEditer%4$s des objectifs existants",
"AllowGoalConvertedMoreThanOncePerVisit": "Autoriser un objectif à être converti plus d'une fois par visite.",
"AllowMultipleConversionsPerVisit": "Autoriser les conversions multiples par visite",
"BestCountries": "Vos meilleurs pays de conversion sont :",
"BestKeywords": "Vos meilleurs mots-clés sont :",
"BestReferrers": "Vos meilleurs sites web de conversion sont :",
"CaseSensitive": "Correspondance sensible à la case",
- "CancelAndReturnToGoals": "Annuler et %sretourner à la liste des objectifs%s",
+ "CancelAndReturnToGoals": "Annuler et %1$sretourner à la liste des objectifs%2$s",
"CategoryTextGeneral_Visitors": "Emplacement de l'utilisateur",
"CategoryTextReferrers_Referrers": "Référents",
"CategoryTextVisitsSummary_VisitsSummary": "Attribut de l'utilisateur",
@@ -33,7 +33,7 @@
"ColumnVisits": "Nombre total de visites, indifféremment du fait qu'un objectif a été atteint ou non.",
"ColumnVisitsProductDocumentation": "Le nombre de visites sur la page produit \/ catégorie. Ceci est également utilisé pour traiter les taux de conversion %s. Cette mesure est dans le rapport si le suivi E-commerce produit \/ catégorie a été configuré.",
"Contains": "contient %s",
- "ConversionByTypeReportDocumentation": "Ce rapport apporte des informations détaillés les à propos de la performance de l'objectif (conversions, taux de conversion et recettes par visite) pour chacune des catégories disponibles sur le panneau de gauche. %s Veuillez cliquer sur une des catégories pour afficher le rapport. %s Pour plus d'informations sur les objectifs, lisez la %s documentation sur le suivi des objectifs sur Piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Ce rapport apporte des informations détaillés les à propos de la performance de l'objectif (conversions, taux de conversion et recettes par visite) pour chacune des catégories disponibles sur le panneau de gauche. %1$s Veuillez cliquer sur une des catégories pour afficher le rapport. %2$s Pour plus d'informations sur les objectifs, lisez la %3$s documentation sur le suivi des objectifs sur Piwik.org%4$s",
"ConversionRate": "%s taux de conversion",
"Conversions": "%s conversions",
"ConversionsOverview": "Vue globale des conversions",
@@ -52,7 +52,7 @@
"EcommerceOrder": "Commande E-Commerce",
"EcommerceOverview": "Aperçu E-Commerce",
"EcommerceReports": "Rapports E-Commerce",
- "ExceptionInvalidMatchingString": "Si vous choisissez 'correspondance exacte', la chaîne de caractères doit être une URL commençant par %s. Par exemple,'%s'.",
+ "ExceptionInvalidMatchingString": "Si vous choisissez 'correspondance exacte', la chaîne de caractères doit être une URL commençant par %1$s. Par exemple,'%2$s'.",
"ExternalWebsiteUrl": "URL externe du site web",
"Filename": "nom de fichier",
"GoalConversion": "Conversion de l'objectif",
@@ -68,9 +68,9 @@
"GoalX": "Objectif %s",
"HelpOneConversionPerVisit": "Si une page correspondant à cet objectif est actualisée ou vue plus d'une fois lors d'une visite, l'objectif ne pourra être suivi que la première fois la page a été chargée au cours de cette visite.",
"IsExactly": "est exactement %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Apprenez en plus sur %s le Suivi des Objectifs dans Piwik%s dans la documentation utilisateur.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Apprenez en plus sur %1$s le Suivi des Objectifs dans Piwik%2$s dans la documentation utilisateur.",
"LeftInCart": "%s laissé(s) dans le panier",
- "ManageGoalsOrCreateANewGoal": "%sGérer les objectifs%s ou créer un nouvel objectif maintenant!",
+ "ManageGoalsOrCreateANewGoal": "%1$sGérer les objectifs%2$s ou créer un nouvel objectif maintenant!",
"Manually": "manuellement",
"ManuallyTriggeredUsingJavascriptFunction": "Les objectifs sont déclenchés manuellement en utilisant l'API Javascript trackGoal()",
"MatchesExpression": "correspond à l'expression %s",
@@ -101,7 +101,7 @@
"VisitUrl": "Visitent une URL donnée (page ou groupe de pages)",
"WhenVisitors": "quand les visiteurs",
"WhereThe": "où le",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "où la page visitée contient un appel à la méthode JavaScript piwikTracker.trackGoal() (%sapprenez-en plus%s)",
- "YouCanEnableEcommerceReports": "Vous pouvez activer %s pour ce site web sur la page %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "où la page visitée contient un appel à la méthode JavaScript 'trackGoal' (%1$sapprenez-en plus%2$s)",
+ "YouCanEnableEcommerceReports": "Vous pouvez activer %1$s pour ce site web sur la page %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/hi.json b/plugins/Goals/lang/hi.json
index 79928e7757..f2b3f4362d 100644
--- a/plugins/Goals/lang/hi.json
+++ b/plugins/Goals/lang/hi.json
@@ -3,7 +3,7 @@
"AbandonedCart": "परित्यक्त कार्ट",
"AddGoal": "लक्ष्य जोड़ें",
"AddNewGoal": "एक नया लक्ष्य जोड़ें",
- "AddNewGoalOrEditExistingGoal": "%sएक नया लक्ष्य जोड़ें%s या %sमौजूदा लक्ष्य %sको संपादित करें",
+ "AddNewGoalOrEditExistingGoal": "%1$sएक नया लक्ष्य जोड़ें%2$s या %3$sमौजूदा लक्ष्य %4$sको संपादित करें",
"AllowGoalConvertedMoreThanOncePerVisit": "लक्ष्य प्रति विज़िट एक से अधिक बार परिवर्तित करने की अनुमति दें",
"AllowMultipleConversionsPerVisit": "प्रति यात्रा कई रूपांतरणों की अनुमति दें",
"BestCountries": "आपका सबसे अच्छा परिवर्तित देश हैं:",
@@ -32,7 +32,7 @@
"ColumnVisits": "यात्राओं की कुल संख्या,परवाह किए बिना एक लक्ष्य सक्रिय हो गया था या नहीं.",
"ColumnVisitsProductDocumentation": "उत्पाद \/ श्रेणी पेज पर यात्राओं की संख्या. यह भी %s की रूपांतरण दर संसाधित करने के लिए प्रयोग किया जाता है. ईकॉमर्स दृश्य ट्रैकिंग उत्पाद \/ श्रेणी पृष्ठों पर सेटअप किया गया तो यह मीट्रिक रिपोर्ट में है.",
"Contains": "%s में शामिल",
- "ConversionByTypeReportDocumentation": "इस रिपोर्ट के बाएं पैनल में उपलब्ध श्रेणियों में से प्रत्येक के लिए लक्ष्य प्रदर्शन (रूपांतरण, रूपांतरण दर और यात्रा के प्रति राजस्व) के बारे में विस्तृत जानकारी प्रदान करता है.%s रिपोर्ट देखने के लिए श्रेणियों में से एक पर क्लिक करें. %sअधिक जानकारी के लिए, %sट्रैकिंग लक्ष्य प्रलेखन%s पढ़ें",
+ "ConversionByTypeReportDocumentation": "इस रिपोर्ट के बाएं पैनल में उपलब्ध श्रेणियों में से प्रत्येक के लिए लक्ष्य प्रदर्शन (रूपांतरण, रूपांतरण दर और यात्रा के प्रति राजस्व) के बारे में विस्तृत जानकारी प्रदान करता है.%1$s रिपोर्ट देखने के लिए श्रेणियों में से एक पर क्लिक करें. %2$sअधिक जानकारी के लिए, %3$sट्रैकिंग लक्ष्य प्रलेखन%4$s पढ़ें",
"ConversionRate": "%s रूपांतरण दर",
"Conversions": "%s रूपांतरण",
"ConversionsOverview": "रूपांतरण अवलोकन",
@@ -50,7 +50,7 @@
"EcommerceOrder": "ईकॉमर्स के आदेश",
"EcommerceOverview": "ईकॉमर्स अवलोकन",
"EcommerceReports": "ईकॉमर्स रिपोर्टें",
- "ExceptionInvalidMatchingString": "आप 'सटीक मैच' चुनते हैं, तो मिलान स्ट्रिंग %s की शुरुआत के साथ एक URL होना चाहिए. उदाहरण के लिए, '%s' में.",
+ "ExceptionInvalidMatchingString": "आप 'सटीक मैच' चुनते हैं, तो मिलान स्ट्रिंग %1$s की शुरुआत के साथ एक URL होना चाहिए. उदाहरण के लिए, '%2$s' में.",
"ExternalWebsiteUrl": "बाहरी वेबसाइट यूआरएल",
"Filename": "फ़ाइल का नाम",
"GoalConversion": "लक्ष्य रूपांतरण",
@@ -93,7 +93,7 @@
"VisitUrl": "किसी दिए गए यूआरएल (पृष्ठों के पृष्ठ या समूह) पर जाएँ",
"WhenVisitors": "जब आगंतुकों",
"WhereThe": "जहां",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "दौरा पेज जावास्क्रिप्ट 'trackGoal' के लिए एक कॉल शामिल है जहां विधि (%s अधिक जानें%s)",
- "YouCanEnableEcommerceReports": "आपको %s पेज में इस वेबसाइट को सक्षम %s कर सकते हैं."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "दौरा पेज जावास्क्रिप्ट 'trackGoal' के लिए एक कॉल शामिल है जहां विधि (%1$s अधिक जानें%2$s)",
+ "YouCanEnableEcommerceReports": "आपको %1$s पेज में इस वेबसाइट को सक्षम %2$s कर सकते हैं."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/hu.json b/plugins/Goals/lang/hu.json
index 2af2eca013..7b6805d51d 100644
--- a/plugins/Goals/lang/hu.json
+++ b/plugins/Goals/lang/hu.json
@@ -2,7 +2,7 @@
"Goals": {
"AddGoal": "Cél hozzáadása",
"AddNewGoal": "Új cél létrehozása",
- "AddNewGoalOrEditExistingGoal": "%sHozz létre új célt%s vagy %sszerkeszd%s a már meglévő célokat",
+ "AddNewGoalOrEditExistingGoal": "%1$sHozz létre új célt%2$s vagy %3$sszerkeszd%4$s a már meglévő célokat",
"BestCountries": "A legjobban konvertáló országok a következőek:",
"BestKeywords": "A legjobban konvertáló kulcsszavak a következőek:",
"BestReferrers": "A legjobban konvertáló hivatkozó weboldalak a következőek:",
@@ -17,7 +17,7 @@
"DefaultRevenueHelp": "Például egy látogató által elküldött kapcsolatfelvételi űrlap 1000 forintnak megfelelő értéket jelenthet átlagosan. A Piwik segít annak megértésében, hogy az egyes látogatói szegmensek hogyan teljesítenek ennek fényében.",
"DeleteGoalConfirm": "Biztosan törölni szeretnéd a %s elnevezésű célt?",
"Download": "letöltenek egy fájlt",
- "ExceptionInvalidMatchingString": "Ha a pontos egyezést választja, akkor a sztringnek egy %s kezdetű URL-nek kell lennie, mint pl. %s.",
+ "ExceptionInvalidMatchingString": "Ha a pontos egyezést választja, akkor a sztringnek egy %1$s kezdetű URL-nek kell lennie, mint pl. %2$s.",
"ExternalWebsiteUrl": "Külső weboldal URL-je",
"Filename": "fájlnév",
"GoalConversion": "Célkonverzió",
@@ -43,6 +43,6 @@
"VisitUrl": "meglátogatnak egy adott URL-t (mely egy weblapot vagy weblapok csoportját jelenti)",
"WhenVisitors": "bekövetkezik, ha a látogatók",
"WhereThe": "ahol a (z)",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "ahol a meglátogatott oldal tartalmaz egy JavaScript hívást a piwikTracker.trackGoal() funkció aktiválására (%stovábbi információ%s)"
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "ahol a meglátogatott oldal tartalmaz egy JavaScript hívást a 'trackGoal' funkció aktiválására (%1$stovábbi információ%2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/id.json b/plugins/Goals/lang/id.json
index e0c197d112..24d4fef44c 100644
--- a/plugins/Goals/lang/id.json
+++ b/plugins/Goals/lang/id.json
@@ -3,7 +3,7 @@
"AbandonedCart": "Keranjang Terabaikan",
"AddGoal": "Tambah Tujuan",
"AddNewGoal": "Tambah Tujuan baru",
- "AddNewGoalOrEditExistingGoal": "%sTambah Tujuan baru%s atau %sSunting%s Tujuan saat ini",
+ "AddNewGoalOrEditExistingGoal": "%1$sTambah Tujuan baru%2$s atau %3$sSunting%4$s Tujuan saat ini",
"AllowGoalConvertedMoreThanOncePerVisit": "Perbolehkan Tujuan dikonversi lebih dari sekali tiap kunjungan",
"AllowMultipleConversionsPerVisit": "Perbolehkan banyak konversi tiap kunjungan",
"BestCountries": "Konversi terbaik untuk negara Anda adalah:",
@@ -26,7 +26,7 @@
"ColumnVisits": "Jumlah kunjungan, terlepas dari apakah tujuan telah dipicu atau tidak.",
"ColumnVisitsProductDocumentation": "Jumlah kunjungan halaman Produk\/Kategori. Ini juga digunakan untuk mengolah tingkat konversi %s. Matrik ini juga berada di laporan bila tampilan pelacakan Niaga-E diatur dalam halaman Produk\/Kategori.",
"Contains": "mengandung %s",
- "ConversionByTypeReportDocumentation": "Laporan ini menyediakan laporan terperinci tentang kinerja tujuan (konversi, ringkat konversi, dan pendapatan tiap kunjungan) untuk setiap kategori yang tersedia di panel kiri. %s Silakan klik salah satu kategori untuk melihat laporan. %s Informasi selengkapnya, silakan melihat %s dokumentasi Pelacakan Tujuan di piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Laporan ini menyediakan laporan terperinci tentang kinerja tujuan (konversi, ringkat konversi, dan pendapatan tiap kunjungan) untuk setiap kategori yang tersedia di panel kiri. %1$s Silakan klik salah satu kategori untuk melihat laporan. %2$s Informasi selengkapnya, silakan melihat %3$s dokumentasi Pelacakan Tujuan di piwik.org%4$s",
"ConversionRate": "%s tingkat konversi",
"Conversions": "%s konversi",
"ConversionsOverview": "Iktisar Konversi",
@@ -44,7 +44,7 @@
"EcommerceOrder": "Permintaan Niaga-E",
"EcommerceOverview": "Iktisar Niaga-E",
"EcommerceReports": "Laporan Niaga-E",
- "ExceptionInvalidMatchingString": "Bila Anda memilih 'persis sesuai', pencocokan huruf harus URL yang dimulai dengan %s. Misalnya, '%s'.",
+ "ExceptionInvalidMatchingString": "Bila Anda memilih 'persis sesuai', pencocokan huruf harus URL yang dimulai dengan %1$s. Misalnya, '%2$s'.",
"ExternalWebsiteUrl": "URL situs luar",
"Filename": "nama berkas",
"GoalConversion": "Konversi Tujuan",
@@ -84,7 +84,7 @@
"VisitUrl": "Kunjungi URL yang diberikan (halaman atau kelompok halaman)",
"WhenVisitors": "ketika pengunjung",
"WhereThe": "di mana",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "di mana halaman yang dikunjungi mengandung panggilan ke metode JavaScript piwikTracker.trackGoal() (%spelajari selengkapnya%s)",
- "YouCanEnableEcommerceReports": "Anda dapat mengaktifkan %s untuk situs ini dalam halaman %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "di mana halaman yang dikunjungi mengandung panggilan ke metode JavaScript 'trackGoal' (%1$spelajari selengkapnya%2$s)",
+ "YouCanEnableEcommerceReports": "Anda dapat mengaktifkan %1$s untuk situs ini dalam halaman %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/it.json b/plugins/Goals/lang/it.json
index cafa69d5a1..377c1d1949 100644
--- a/plugins/Goals/lang/it.json
+++ b/plugins/Goals/lang/it.json
@@ -3,14 +3,14 @@
"AbandonedCart": "Ordini abbandonati",
"AddGoal": "Aggiungi un Goal",
"AddNewGoal": "Aggiungi un nuovo Goal",
- "AddNewGoalOrEditExistingGoal": "%sAggiungi un nuovo Goal%s o %sModificane%s uno esistente",
+ "AddNewGoalOrEditExistingGoal": "%1$sAggiungi un nuovo Goal%2$s o %3$sModificane%4$s uno esistente",
"AllowGoalConvertedMoreThanOncePerVisit": "Consenti di convertire il Goal più di una volta per visita",
"AllowMultipleConversionsPerVisit": "Permetti conversioni multiple per visita",
"BestCountries": "Le tue nazioni che convertono meglio sono:",
"BestKeywords": "Le tue keyword che convertono meglio sono:",
"BestReferrers": "I tuoi referenti che convertono meglio sono:",
"CaseSensitive": "Corrispondenza maiuscole e minuscole",
- "CancelAndReturnToGoals": "Annulla e %storna all'elenco dei goal%s",
+ "CancelAndReturnToGoals": "Annulla e %1$storna all'elenco dei goal%2$s",
"CategoryTextGeneral_Visitors": "Località utente",
"CategoryTextReferrers_Referrers": "Referenti",
"CategoryTextVisitsSummary_VisitsSummary": "Attributo utente",
@@ -33,7 +33,7 @@
"ColumnVisits": "Numero totale delle visite, indipendentemente dal fatto se un obiettivo sia stato attivato o meno.",
"ColumnVisitsProductDocumentation": "Numero di visite sulla pagina del Prodotto\/Categoria. Questo è anche utilizzato per elaborare la percentuale di conversioni %s. Questa metrica è nel report se è stato impostato nelle pagine Prodotto\/Categoria il view tracking Ecommerce.",
"Contains": "contiene %s",
- "ConversionByTypeReportDocumentation": "Questo report fornisce informazioni dettagliate sull'andamento degli obiettivi (conversioni, tassi di conversione ed entrate per visita), per ciascuna delle categorie disponibili nel pannello di sinistra. %s Si prega di cliccare su una delle categorie per visualizzare il report. %s Per ulteriori informazioni, leggere la %sDocumentazione Tracking Goals%s",
+ "ConversionByTypeReportDocumentation": "Questo report fornisce informazioni dettagliate sull'andamento degli obiettivi (conversioni, tassi di conversione ed entrate per visita), per ciascuna delle categorie disponibili nel pannello di sinistra. %1$s Si prega di cliccare su una delle categorie per visualizzare il report. %2$s Per ulteriori informazioni, leggere la %3$sDocumentazione Tracking Goals%4$s",
"ConversionRate": "%s rapporto di conversione",
"Conversions": "%s conversioni",
"ConversionsOverview": "Panoramica Conversioni",
@@ -52,7 +52,7 @@
"EcommerceOrder": "Ordini Ecommerce",
"EcommerceOverview": "Panoramica Ecommerce",
"EcommerceReports": "Report Ecommerce",
- "ExceptionInvalidMatchingString": "Se scegli 'corrispondenza esatta', la stringa corrispondente deve essere un URL che inizia con %s. Ad esempio, '%s'.",
+ "ExceptionInvalidMatchingString": "Se scegli 'corrispondenza esatta', la stringa corrispondente deve essere un URL che inizia con %1$s. Ad esempio, '%2$s'.",
"ExternalWebsiteUrl": "URL sito esterno",
"Filename": "nome file",
"GoalConversion": "Conversione Goal",
@@ -68,9 +68,9 @@
"GoalX": "Goal %s",
"HelpOneConversionPerVisit": "Se una pagina corrispondente a un Obiettivo è aggiornata o visualizzata più di una volta in una visita, l'Obiettivo verrà registrato solo la prima volta che la pagina è stata caricata durante questa visita.",
"IsExactly": "è esattamente %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Impara di più sul %sTracciamento Obiettivi in Piwik%s nella documentazione per l'utente.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Impara di più sul %1$sTracciamento Obiettivi in Piwik%2$s nella documentazione per l'utente.",
"LeftInCart": "%s lasciato nel carrello",
- "ManageGoalsOrCreateANewGoal": "%sAmministra i Goal%s o creane ora uno nuovo!",
+ "ManageGoalsOrCreateANewGoal": "%1$sAmministra i Goal%2$s o creane ora uno nuovo!",
"Manually": "manualmente",
"ManuallyTriggeredUsingJavascriptFunction": "Il Goal si attiva manualmente usando l'API Javascript trackGoal()",
"MatchesExpression": "soddisfa l'espressione %s",
@@ -101,7 +101,7 @@
"VisitUrl": "Visitano uno specifico URL (pagina o gruppo di pagine)",
"WhenVisitors": "quando i visitatori",
"WhereThe": "dove le",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "dove la pagina visitata contiene una chiamata al metodo JavaScript 'trackGoal' (%smaggiori dettagli%s)",
- "YouCanEnableEcommerceReports": "Puoi abilitare %s per questo sito nella pagina %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "dove la pagina visitata contiene una chiamata al metodo JavaScript 'trackGoal' (%1$smaggiori dettagli%2$s)",
+ "YouCanEnableEcommerceReports": "Puoi abilitare %1$s per questo sito nella pagina %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/ja.json b/plugins/Goals/lang/ja.json
index bbb26f8859..798ff53050 100644
--- a/plugins/Goals/lang/ja.json
+++ b/plugins/Goals/lang/ja.json
@@ -3,14 +3,14 @@
"AbandonedCart": "放棄されたカート",
"AddGoal": "目標を追加",
"AddNewGoal": "新しい目標を追加",
- "AddNewGoalOrEditExistingGoal": "%s新しい目標の追加%sまたは%s既存の目標の編集%s",
+ "AddNewGoalOrEditExistingGoal": "%1$s新しい目標の追加%2$sまたは%3$s既存の目標の編集%4$s",
"AllowGoalConvertedMoreThanOncePerVisit": "目標達成は、訪問の度に複数回カウント",
"AllowMultipleConversionsPerVisit": "訪問ごとに複数のコンバージョンを許可",
"BestCountries": "ベストコンバージョンの国:",
"BestKeywords": "トップコンバージョンのキーワード:",
"BestReferrers": "ベストコンバージョンの参照元ウェブサイト",
"CaseSensitive": "大文字小文字を区別する一致",
- "CancelAndReturnToGoals": "キャンセルして目標 %s のリスト %s に戻る",
+ "CancelAndReturnToGoals": "キャンセルして目標 %1$s のリスト %2$s に戻る",
"CategoryTextGeneral_Visitors": "ユーザーの位置情報",
"CategoryTextReferrers_Referrers": "リファラー",
"CategoryTextVisitsSummary_VisitsSummary": "ユーザー属性",
@@ -33,7 +33,7 @@
"ColumnVisits": "目標達成の元となったかどうかに関わらない、訪問数の総数",
"ColumnVisitsProductDocumentation": "製品\/カテゴリーページ訪問数。これは、%s のコンバージョン率を処理するためにも使われています。 eコマースビュートラッキングを、製品\/カテゴリーページに設定した場合に、このメトリックがリポートに表示されます。",
"Contains": "%s を含む",
- "ConversionByTypeReportDocumentation": "このレポートでは、左側のパネルで使用可能なカテゴリごとの目標のパフォーマンス(コンバージョン、コンバージョン率、ビジットあたりの収益)に関する詳細な情報を提供します。 %s レポートを表示するには、カテゴリのいずれかをクリックしてください。%s 詳細については、%s piwik.orgのトラッキングゴール(目標)のドキュメント %s を参照してください。",
+ "ConversionByTypeReportDocumentation": "このレポートでは、左側のパネルで使用可能なカテゴリごとの目標のパフォーマンス(コンバージョン、コンバージョン率、ビジットあたりの収益)に関する詳細な情報を提供します。 %1$s レポートを表示するには、カテゴリのいずれかをクリックしてください。%2$s 詳細については、%3$s piwik.orgのトラッキングゴール(目標)のドキュメント %4$s を参照してください。",
"ConversionRate": "%s コンバージョン率",
"Conversions": "%s コンバージョン",
"ConversionsOverview": "コンバージョンの概観",
@@ -52,7 +52,7 @@
"EcommerceOrder": "eコマース注文",
"EcommerceOverview": "eコマース概観",
"EcommerceReports": "eコマースリポート",
- "ExceptionInvalidMatchingString": "'完全に一致する' を選択した場合、一致文字列は %s で始まる URL である必要があります。 例えば、%s です。",
+ "ExceptionInvalidMatchingString": "'完全に一致する' を選択した場合、一致文字列は %1$s で始まる URL である必要があります。 例えば、%2$s です。",
"ExternalWebsiteUrl": "外部ウェブサイトの URL",
"Filename": "ファイル名",
"GoalConversion": "目標コンバージョン",
@@ -68,9 +68,9 @@
"GoalX": "目標 %s",
"HelpOneConversionPerVisit": "もしこの目標にマッチしたページが更新されたり、一回のビジットで1回以上見られたとしても、その最初の訪問時にのみ目標はトラックされます。",
"IsExactly": "%s と完全に一致する",
- "LearnMoreAboutGoalTrackingDocumentation": "Piwik の目標のトラッキングについての詳細は、%s ユーザーマニュアル %sを参照してください。",
+ "LearnMoreAboutGoalTrackingDocumentation": "Piwik の目標のトラッキングについての詳細は、%1$s ユーザーマニュアル %2$sを参照してください。",
"LeftInCart": "カートに残された %s",
- "ManageGoalsOrCreateANewGoal": "%s 目標管理 %s や新たな目標を今すぐ作成!",
+ "ManageGoalsOrCreateANewGoal": "%1$s 目標管理 %2$s や新たな目標を今すぐ作成!",
"Manually": "手動",
"ManuallyTriggeredUsingJavascriptFunction": "JavaScript API の trackGoal() を使用した手動トリガー",
"MatchesExpression": "正規表現 %s に一致する",
@@ -101,7 +101,7 @@
"VisitUrl": "特定の URL を訪問(ページまたはページグループ)",
"WhenVisitors": "ビジター",
"WhereThe": "対象:",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "訪問したページに JavaScript の piwikTracker.trackGoal() メソッドのコールが含まれるところ(%s詳細%s)",
- "YouCanEnableEcommerceReports": "%s ページでこのウェブサイトに%s を有効にできます。"
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "訪問したページに JavaScript の 'trackGoal' メソッドのコールが含まれるところ(%1$s詳細%2$s)",
+ "YouCanEnableEcommerceReports": "%1$s ページでこのウェブサイトに%2$s を有効にできます。"
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/ko.json b/plugins/Goals/lang/ko.json
index 8dc370de94..a4e356a5bf 100644
--- a/plugins/Goals/lang/ko.json
+++ b/plugins/Goals/lang/ko.json
@@ -3,14 +3,14 @@
"AbandonedCart": "버려진 장바구니",
"AddGoal": "목표 추가",
"AddNewGoal": "새로운 목표 추가",
- "AddNewGoalOrEditExistingGoal": "%s새로운 목표 추가%s 또는 %s기존 목표 편집%s",
+ "AddNewGoalOrEditExistingGoal": "%1$s새로운 목표 추가%2$s 또는 %3$s기존 목표 편집%4$s",
"AllowGoalConvertedMoreThanOncePerVisit": "목표 달성은 방문 때마다 여러번 계산",
"AllowMultipleConversionsPerVisit": "방문마다 여러 전환 허용",
"BestCountries": "최고 전환 국가:",
"BestKeywords": "상위 전환 검색어:",
"BestReferrers": "최고 전환 참조 웹사이트:",
"CaseSensitive": "대소문자 구분함",
- "CancelAndReturnToGoals": "취소하고 %s목표 리스트로 돌아가기%s",
+ "CancelAndReturnToGoals": "취소하고 %1$s목표 리스트로 돌아가기%2$s",
"CategoryTextGeneral_Visitors": "사용자 위치",
"CategoryTextReferrers_Referrers": "리퍼러",
"CategoryTextVisitsSummary_VisitsSummary": "사용자 속성",
@@ -33,7 +33,7 @@
"ColumnVisits": "목표 달성 여부에 관계없는 방문자의 총계.",
"ColumnVisitsProductDocumentation": "제품\/카테고리 페이지 방문수입니다. 이것은 %s의 전환율을 처리하는 데에도 사용됩니다. 전자상거래 추적, 제품\/카테고리 페이지로 설정한 경우,이 통계가 보고서에 표시됩니다.",
"Contains": "%s를 포함",
- "ConversionByTypeReportDocumentation": "이 보고서는 왼쪽 패널에서 사용 가능한 카테고리별 목표 성능 (전환, 전환율, 비지트 당 수익)에 대한 자세한 정보를 제공합니다. %s 보고서를 표시하려면 카테고리 중 하나를 클릭하세요. %s 자세한 내용은 %s piwik.org 목표 추적 문서 %s를 참조하세요.",
+ "ConversionByTypeReportDocumentation": "이 보고서는 왼쪽 패널에서 사용 가능한 카테고리별 목표 성능 (전환, 전환율, 비지트 당 수익)에 대한 자세한 정보를 제공합니다. %1$s 보고서를 표시하려면 카테고리 중 하나를 클릭하세요. %2$s 자세한 내용은 %3$s piwik.org 목표 추적 문서 %4$s를 참조하세요.",
"ConversionRate": "%s 전환율",
"Conversions": "%s 전환",
"ConversionsOverview": "전환 개요",
@@ -52,7 +52,7 @@
"EcommerceOrder": "전자상거래 주문",
"EcommerceOverview": "전자상거래 개요",
"EcommerceReports": "전자상거래 보고서",
- "ExceptionInvalidMatchingString": "'완전 일치'를 선택하면 일치 문자열은 %s로 시작하는 URL이어야합니다. 예를 들면, %s입니다.",
+ "ExceptionInvalidMatchingString": "'완전 일치'를 선택하면 일치 문자열은 %1$s로 시작하는 URL이어야합니다. 예를 들면, %2$s입니다.",
"ExternalWebsiteUrl": "외부 웹사이트의 URL",
"Filename": "파일 이름",
"GoalConversion": "목표 전환",
@@ -68,9 +68,9 @@
"GoalX": "목표 %s",
"HelpOneConversionPerVisit": "만약 목표에 일치하는 페이지가 업데이트되거나 한번 이상 방문해도, 첫 번째 방문시에만 목표가 달성됩니다.",
"IsExactly": "%s와 일치",
- "LearnMoreAboutGoalTrackingDocumentation": "사용자 문서 내 %sPiwik 목표 추적%s 문서를 통해서 좀 더 알 수 있습니다.",
+ "LearnMoreAboutGoalTrackingDocumentation": "사용자 문서 내 %1$sPiwik 목표 추적%2$s 문서를 통해서 좀 더 알 수 있습니다.",
"LeftInCart": "카트에 남겨진 %s",
- "ManageGoalsOrCreateANewGoal": "%s목표 관리%s 혹은 새로운 목표를 만드세요!",
+ "ManageGoalsOrCreateANewGoal": "%1$s목표 관리%2$s 혹은 새로운 목표를 만드세요!",
"Manually": "수동으로",
"ManuallyTriggeredUsingJavascriptFunction": "JavaScript API의 trackGoal()을 사용하여 수동 트리거",
"MatchesExpression": "정규식 %s에 일치",
@@ -101,7 +101,7 @@
"VisitUrl": "특정 URL 방문 (페이지 또는 페이지 그룹)",
"WhenVisitors": "방문 시기",
"WhereThe": "방문 대상",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "방문한 페이지 JavaScript의 piwikTracker.trackGoal() 메서드 호출이 포함된 곳 (%s자세히%s)",
- "YouCanEnableEcommerceReports": "%s 페이지에서 이 웹사이트에 %s를 사용할 수 있습니다."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "방문한 페이지 JavaScript의 'trackGoal' 메서드 호출이 포함된 곳 (%1$s자세히%2$s)",
+ "YouCanEnableEcommerceReports": "%1$s 페이지에서 이 웹사이트에 %2$s를 사용할 수 있습니다."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/lt.json b/plugins/Goals/lang/lt.json
index 7249bfc3b9..10bcee0e28 100644
--- a/plugins/Goals/lang/lt.json
+++ b/plugins/Goals/lang/lt.json
@@ -2,7 +2,7 @@
"Goals": {
"AddGoal": "Pridėti uždavinį",
"AddNewGoal": "Pridėti naują uždavinį",
- "AddNewGoalOrEditExistingGoal": "%sPridėti naują uždavinį%s arba %sRedaguoti%s jau egzistuojantį",
+ "AddNewGoalOrEditExistingGoal": "%1$sPridėti naują uždavinį%2$s arba %3$sRedaguoti%4$s jau egzistuojantį",
"BestCountries": "Jūsų geriausios konversijos šalys:",
"BestKeywords": "Jū9sų geriausi konversijos raktažodžiai:",
"BestReferrers": "Jūsų geriausios konversijos svetainės:",
@@ -17,7 +17,7 @@
"DefaultRevenueHelp": "Pavyzdžiui, lankytojo užpildyta ir išsiųsta kontaktinė forma gali būti verta vidutiniškai 10 Lt. Piwik padės Jums suprasti Jūsų lankytojų segmentų efektyvumą.",
"DeleteGoalConfirm": "Ar tikrai norite ištrinti uždavinį %s?",
"Download": "Atsisiųsti failą",
- "ExceptionInvalidMatchingString": "Jei pasirinksite \"tikslų atitikimą\", tinkanti reikšmė turi būti URL prasidedanti %s. Pavyzdžiui, '%s'.",
+ "ExceptionInvalidMatchingString": "Jei pasirinksite \"tikslų atitikimą\", tinkanti reikšmė turi būti URL prasidedanti %1$s. Pavyzdžiui, '%2$s'.",
"ExternalWebsiteUrl": "išorinės svetainės URL",
"Filename": "failo pavadinimas",
"GoalIsTriggered": "Uždavinys paleistas",
diff --git a/plugins/Goals/lang/nb.json b/plugins/Goals/lang/nb.json
index ef41f48b6a..415c58bff0 100644
--- a/plugins/Goals/lang/nb.json
+++ b/plugins/Goals/lang/nb.json
@@ -3,9 +3,14 @@
"AbandonedCart": "Forlatt handlevogn",
"AddGoal": "Legg til mål",
"AddNewGoal": "Legg til et nytt mål",
- "AddNewGoalOrEditExistingGoal": "%sLegg til nytt mål%s eller %sRediger%s eksisterende mål",
+ "AddNewGoalOrEditExistingGoal": "%1$sLegg til nytt mål%2$s eller %3$sRediger%4$s eksisterende mål",
+ "AllowGoalConvertedMoreThanOncePerVisit": "Tillat mål å bli konvertert mer enn én gang per besøk",
"AllowMultipleConversionsPerVisit": "Tillat flere konverteringer per besøk",
- "CancelAndReturnToGoals": "Avbryt og %sreturner til listen over mål%s",
+ "BestCountries": "Dine best konverterende land er:",
+ "BestKeywords": "Dine best konverterende nøkkelord er:",
+ "BestReferrers": "Dine best konverterende nettstedshenvisere er:",
+ "CaseSensitive": "Skiller mellom store og små bokstaver",
+ "CancelAndReturnToGoals": "Avbryt og %1$sreturner til listen over mål%2$s",
"CategoryTextReferrers_Referrers": "Henvisere",
"ChooseGoal": "Velg mål",
"ColumnConversions": "Konvertering",
diff --git a/plugins/Goals/lang/nl.json b/plugins/Goals/lang/nl.json
index 710f410e2e..a7469ad347 100644
--- a/plugins/Goals/lang/nl.json
+++ b/plugins/Goals/lang/nl.json
@@ -3,14 +3,14 @@
"AbandonedCart": "Verlaat winkelwagen",
"AddGoal": "Voeg doelstelling toe",
"AddNewGoal": "Voeg een nieuwe doelstelling toe",
- "AddNewGoalOrEditExistingGoal": "%sVoeg een nieuwe doelstelling toe%s of %spas een bestaande doelstelling aan%s",
+ "AddNewGoalOrEditExistingGoal": "%1$sVoeg een nieuwe doelstelling toe%2$s of %3$spas een bestaande doelstelling aan%4$s",
"AllowGoalConvertedMoreThanOncePerVisit": "Sta pér bezoek meerdere conversie van dit doel toe",
"AllowMultipleConversionsPerVisit": "Sta meerdere conversies per bezoek toe",
"BestCountries": "Uw beste presterende landen zijn:",
"BestKeywords": "Uw beste presterende sleutelwoorden zijn:",
"BestReferrers": "Uw beste presterende referrers zijn:",
"CaseSensitive": "Hoofdletter gevoelig",
- "CancelAndReturnToGoals": "Annuleren en %sterugkeren naar de lijst van doelen%s",
+ "CancelAndReturnToGoals": "Annuleren en %1$sterugkeren naar de lijst van doelen%2$s",
"CategoryTextGeneral_Visitors": "Gebruikers locatie",
"CategoryTextReferrers_Referrers": "Herkomsten",
"CategoryTextVisitsSummary_VisitsSummary": "Gebruikers eigenschap",
@@ -33,7 +33,7 @@
"ColumnVisits": "Het totaal aantal bezoeken, ongeacht of er een conversiedoel werd bereikt of niet.",
"ColumnVisitsProductDocumentation": "Het aantal bezoeken aan de produkt\/catageorie pagina. Dit wordt ook gebruikt om het conversie percentage te berekenen. Deze gegevens zijn onderdeel van het rapport als Ecommerce-tracking is ingesteld op de produkt\/categorie paginas.The number of visits on the Product\/Category page. This is also used to process the %s conversion rate. This metric is in the report if Ecommerce view tracking was setup on Product\/Category pages.",
"Contains": "bevat %s",
- "ConversionByTypeReportDocumentation": "Dit rapport bevat gedetailleerde informatie over het doel prestaties (conversies, de wisselkoersen en de inkomsten per bezoek) voor elk van de categorieën in het linkervenster. %s Klik op een van de categorieën om het rapport te bekijken. %s voor meer informatie, lees de %sTracking Doelen documentatie over piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Dit rapport bevat gedetailleerde informatie over het doel prestaties (conversies, de wisselkoersen en de inkomsten per bezoek) voor elk van de categorieën in het linkervenster. %1$s Klik op een van de categorieën om het rapport te bekijken. %2$s voor meer informatie, lees de %3$sTracking Doelen documentatie over piwik.org%4$s",
"ConversionRate": "%s conversie rate",
"Conversions": "%s conversies",
"ConversionsOverview": "Overzicht conversies",
@@ -52,7 +52,7 @@
"EcommerceOrder": "E-commerce order",
"EcommerceOverview": "E-commerce Overzicht",
"EcommerceReports": "E-commerce Rapporten",
- "ExceptionInvalidMatchingString": "Als u voor 'exacte overeenkomst' kiest, moet de overeenkomende string een URL zijn en starten met %s. Bijvoorbeeld, '%s'.",
+ "ExceptionInvalidMatchingString": "Als u voor 'exacte overeenkomst' kiest, moet de overeenkomende string een URL zijn en starten met %1$s. Bijvoorbeeld, '%2$s'.",
"ExternalWebsiteUrl": "externe website URL",
"Filename": "bestandsnaam",
"GoalConversion": "Doel conversie",
@@ -68,9 +68,9 @@
"GoalX": "Doel %s",
"HelpOneConversionPerVisit": "Als een pagina - die dit doel bevat - wordt ververst of meerdere keren wordt opgevraagd in één bezoek, dan wordt de doelconversie geregistreerd tijdens de éérste keer dat de pagina werd opgevraagd.",
"IsExactly": "is exact %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Leer meer over het %s bijhouden van Doelen in Piwik%s in de gebruikers documentatie.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Leer meer over het %1$s bijhouden van Doelen in Piwik%2$s in de gebruikers documentatie.",
"LeftInCart": "%s achtergelaten in winkelwagen",
- "ManageGoalsOrCreateANewGoal": "%sBeheer Doelen%s of maak nu een nieuw Doel!",
+ "ManageGoalsOrCreateANewGoal": "%1$sBeheer Doelen%2$s of maak nu een nieuw Doel!",
"Manually": "handmatig",
"ManuallyTriggeredUsingJavascriptFunction": "Doelstelling is handmatig geactiveerd door de Javascript API trackGoal()",
"MatchesExpression": "Voldoet aan de expressie %s",
@@ -99,7 +99,7 @@
"VisitUrl": "Bezoek een gegeven url (pagina of groep pagina's)",
"WhenVisitors": "wanneer bezoekers",
"WhereThe": "waar de",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "Wanneer een bezochte pagina een oproep bevat naar de javascript piwikTracker.trackGoal() methode (%smeer info%s)",
- "YouCanEnableEcommerceReports": "U kunt de functie %s inschakelen voor deze website in de pagina %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "Wanneer een bezochte pagina een oproep bevat naar de javascript piwikTracker.trackGoal() methode (%1$smeer info%2$s)",
+ "YouCanEnableEcommerceReports": "U kunt de functie %1$s inschakelen voor deze website in de pagina %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/nn.json b/plugins/Goals/lang/nn.json
index 895d105827..b0e80f8461 100644
--- a/plugins/Goals/lang/nn.json
+++ b/plugins/Goals/lang/nn.json
@@ -39,6 +39,6 @@
"VisitUrl": "Vitj ein gitt URL (side eller gruppe av sider)",
"WhenVisitors": "når vitjarar",
"WhereThe": "når",
- "YouCanEnableEcommerceReports": "Du kan slå på %s for denne nettstaden på %s-sida."
+ "YouCanEnableEcommerceReports": "Du kan slå på %1$s for denne nettstaden på %2$s-sida."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/pl.json b/plugins/Goals/lang/pl.json
index 300db9740d..68c8b04cbf 100644
--- a/plugins/Goals/lang/pl.json
+++ b/plugins/Goals/lang/pl.json
@@ -3,7 +3,7 @@
"AbandonedCart": "Opuszczony Koszyk",
"AddGoal": "Dodaj założenia",
"AddNewGoal": "Dodaj nowy cel",
- "AddNewGoalOrEditExistingGoal": "%sDodaj nowe założenie celu%s lub %sedytuj%s istniejące trafienia",
+ "AddNewGoalOrEditExistingGoal": "%1$sDodaj nowe założenie celu%2$s lub %3$sedytuj%4$s istniejące trafienia",
"AllowGoalConvertedMoreThanOncePerVisit": "Zezwól dla trafień, by były zamieniane częściej w trakcie jednej wizyty",
"AllowMultipleConversionsPerVisit": "Zezwalaj na wiele zamian przypadających w trakcie wizyty",
"BestCountries": "Pochodzenie najlepszych krajów:",
@@ -35,7 +35,7 @@
"Ecommerce": "Ecommerce",
"EcommerceLog": "E-commerce Zaloguj",
"EcommerceOrder": "E-commerce zamów",
- "ExceptionInvalidMatchingString": "Jeżeli wybierasz 'dokładne dopasowanie', łańcuch dopasowujący musi być adresem URL zaczynającym się od %s. Na przykład, '%s'.",
+ "ExceptionInvalidMatchingString": "Jeżeli wybierasz 'dokładne dopasowanie', łańcuch dopasowujący musi być adresem URL zaczynającym się od %1$s. Na przykład, '%2$s'.",
"ExternalWebsiteUrl": "adres zewnętrzny URL",
"Filename": "nazwa pliku",
"GoalConversion": "Zmiana założenia",
@@ -70,6 +70,6 @@
"VisitUrl": "odwiedź dany adres URL (stronę lub grupę stron)",
"WhenVisitors": "przez odwiedzającego",
"WhereThe": "gdzie",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "gdzie odwiedzona strona zawiera wywołania do metody JavaScript piwikTracker.trackGoal() (%szobacz więcej%s)"
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "gdzie odwiedzona strona zawiera wywołania do metody JavaScript 'trackGoal' (%1$szobacz więcej%2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/pt-br.json b/plugins/Goals/lang/pt-br.json
index 0d6e3d7982..9434023edc 100644
--- a/plugins/Goals/lang/pt-br.json
+++ b/plugins/Goals/lang/pt-br.json
@@ -3,14 +3,14 @@
"AbandonedCart": "Carrinho abandonado",
"AddGoal": "Adicionar meta",
"AddNewGoal": "Adicionar nova meta",
- "AddNewGoalOrEditExistingGoal": "%sAdicionar nova meta%s ou %sEditar%s metas existentes",
+ "AddNewGoalOrEditExistingGoal": "%1$sAdicionar nova meta%2$s ou %3$sEditar%4$s metas existentes",
"AllowGoalConvertedMoreThanOncePerVisit": "Permitir convesão de metas mais do que uma vez por visita",
"AllowMultipleConversionsPerVisit": "Permitir múltiplas conversões por visita",
"BestCountries": "Seus melhores países conversores são:",
"BestKeywords": "Suas palavras-chave top de conversão são:",
"BestReferrers": "Seus melhores websites referenciadores são:",
"CaseSensitive": "Equivalencia case sensitive",
- "CancelAndReturnToGoals": "Cancelar e %sretornar para a lista de objetivos%s",
+ "CancelAndReturnToGoals": "Cancelar e %1$sretornar para a lista de objetivos%2$s",
"CategoryTextGeneral_Visitors": "Localização do usuário",
"CategoryTextReferrers_Referrers": "Referenciadores",
"CategoryTextVisitsSummary_VisitsSummary": "Característica do usuário",
@@ -33,7 +33,7 @@
"ColumnVisits": "O número total de visitas, independentemente de se uma meta foi disparado ou não.",
"ColumnVisitsProductDocumentation": "O número de visitas na página do produto\/Categoria. Este também é usado para processar a taxa de conversão %s. Esta métrica estará no relatório de monitoramento de comércio eletrônico se instalado nas páginas de Produto\/Categoria.",
"Contains": "contem %s",
- "ConversionByTypeReportDocumentation": "Esse relatório fornece informações detalhadas sobre o desempenho objetivo (conversões, taxas de conversão e receita por visita) para cada uma das categorias disponíveis no painel esquerdo. %s Por favor, clique em uma das categorias para ver o relatório. %s para mais informações, leia a documentação %sTracking Metas em piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Esse relatório fornece informações detalhadas sobre o desempenho objetivo (conversões, taxas de conversão e receita por visita) para cada uma das categorias disponíveis no painel esquerdo. %1$s Por favor, clique em uma das categorias para ver o relatório. %2$s para mais informações, leia a documentação %3$sTracking Metas em piwik.org%4$s",
"ConversionRate": "%s taxa de conversão",
"Conversions": "%s conversões",
"ConversionsOverview": "Visão geral de conversões",
@@ -52,7 +52,7 @@
"EcommerceOrder": "Ecommerce ordem",
"EcommerceOverview": "Visão geral do Ecommerce",
"EcommerceReports": "Relatórios de Ecommerce",
- "ExceptionInvalidMatchingString": "Se você escolher 'correspondência exata', a string correspondente deve ser uma URL que comece com %s. Por exemplo, \"%s\".",
+ "ExceptionInvalidMatchingString": "Se você escolher 'correspondência exata', a string correspondente deve ser uma URL que comece com %1$s. Por exemplo, \"%2$s\".",
"ExternalWebsiteUrl": "URL de website externo",
"Filename": "nome do arquivo",
"GoalConversion": "Conversão de meta",
@@ -68,9 +68,9 @@
"GoalX": "Meta %s",
"HelpOneConversionPerVisit": "Se a página correspondente a essa meta é recarregada ou vista mais de uma vez em uma visita, a Meta só será rastreada na primeira vez em que a página for carregada durante esta visita.",
"IsExactly": "é exatamente %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Aprenda mais sobre Rastreamento de Metas %s em Piwik%s na documentação do usuário.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Aprenda mais sobre Rastreamento de Metas %1$s em Piwik%2$s na documentação do usuário.",
"LeftInCart": "%s carrinhos abandonados",
- "ManageGoalsOrCreateANewGoal": "%sGerencie Metas%s ou crie uma nova Meta agora!",
+ "ManageGoalsOrCreateANewGoal": "%1$sGerencie Metas%2$s ou crie uma nova Meta agora!",
"Manually": "manualmente",
"ManuallyTriggeredUsingJavascriptFunction": "A meta é manualmente triggered usando a API do Javascript trackGoal()",
"MatchesExpression": "corresponde com a expressão %s",
@@ -101,7 +101,7 @@
"VisitUrl": "Visitar a URL dada(página ou grupo de páginas)",
"WhenVisitors": "quando visitantes",
"WhereThe": "onde o(a)",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "onde a página visitada contem um chamado para o JavaScript piwikTracker.trackGoal() metodo (%slearn more%s)",
- "YouCanEnableEcommerceReports": "Você pode habilitar %s para este site na página %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "onde a página visitada contem um chamado para o JavaScript 'trackGoal' metodo (%1$slearn more%2$s)",
+ "YouCanEnableEcommerceReports": "Você pode habilitar %1$s para este site na página %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/pt.json b/plugins/Goals/lang/pt.json
index 17e3a574c3..4246f9bc6d 100644
--- a/plugins/Goals/lang/pt.json
+++ b/plugins/Goals/lang/pt.json
@@ -3,7 +3,7 @@
"AbandonedCart": "Carrinhos abandonados",
"AddGoal": "Adicionar Objectivo",
"AddNewGoal": "Adicionar um novo Objectivo",
- "AddNewGoalOrEditExistingGoal": "%sAdicionar um novo Objectivo%s ou %sEditar%s Objectivos existentes",
+ "AddNewGoalOrEditExistingGoal": "%1$sAdicionar um novo Objectivo%2$s ou %3$sEditar%4$s Objectivos existentes",
"AllowGoalConvertedMoreThanOncePerVisit": "Permitir um Objectivo ser convertido mais de uma vez por visita",
"AllowMultipleConversionsPerVisit": "Permitir multiplas conversões por visitas",
"BestCountries": "Os seus melhores países de conversões são:",
@@ -26,7 +26,7 @@
"ColumnVisits": "O número total de visitas, independente se um objectivo foi despoletado ou não.",
"ColumnVisitsProductDocumentation": "O número de visitas na página do produto \/ Categoria. Este também é usado para processar a taxa de conversão %s. Esta métrica está no relatório se a vista de rastreamento de Comério electrónico foi configurado nas páginas de Produto \/ Categoria.",
"Contains": "contém %s",
- "ConversionByTypeReportDocumentation": "Este relatório fornece informações detalhadas sobre o desempenho de Objectivos (conversões, as taxas de conversão e receita por visita) para cada uma das categorias disponíveis no painel esquerdo. Por favor clique em %s em uma das categorias para visualizar o relatório. %s Para mais informações, leia a %sdocumentação Rastreamento de Objectivos em piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Este relatório fornece informações detalhadas sobre o desempenho de Objectivos (conversões, as taxas de conversão e receita por visita) para cada uma das categorias disponíveis no painel esquerdo. Por favor clique em %1$s em uma das categorias para visualizar o relatório. %2$s Para mais informações, leia a %3$sdocumentação Rastreamento de Objectivos em piwik.org%4$s",
"ConversionRate": "%s taxa de conversão",
"Conversions": "%s conversões",
"ConversionsOverview": "Visão Geral das Conversões",
@@ -44,7 +44,7 @@
"EcommerceOrder": "Ordens de Comércio Electrónico",
"EcommerceOverview": "Visão Global de Comércio Electrónico",
"EcommerceReports": "Relatórios de Comércio Electrónico",
- "ExceptionInvalidMatchingString": "Se escolher 'correspondência exacta', a string correspondente tem que ser um endereço a começar por %s. Por exemplo, '%s'.",
+ "ExceptionInvalidMatchingString": "Se escolher 'correspondência exacta', a string correspondente tem que ser um endereço a começar por %1$s. Por exemplo, '%2$s'.",
"ExternalWebsiteUrl": "endereço de website externo",
"Filename": "nome do ficheiro",
"GoalConversion": "Conversão de Objectivo",
@@ -83,7 +83,7 @@
"VisitUrl": "Visitar um dado endereço (página ou grupo de páginas)",
"WhenVisitors": "quando visitantes",
"WhereThe": "onde o",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "onde a página visitada contém uma chamada ao método JavaScript piwikTracker.trackGoal() (%saprenda mais%s)",
- "YouCanEnableEcommerceReports": "Você pode ativar %s para este site na página %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "onde a página visitada contém uma chamada ao método JavaScript 'trackGoal' (%1$saprenda mais%2$s)",
+ "YouCanEnableEcommerceReports": "Você pode ativar %1$s para este site na página %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/ro.json b/plugins/Goals/lang/ro.json
index 7bec7dd7c2..ed66db5624 100644
--- a/plugins/Goals/lang/ro.json
+++ b/plugins/Goals/lang/ro.json
@@ -3,7 +3,7 @@
"AbandonedCart": "Cart abandonat",
"AddGoal": "Adaugă o ţintă",
"AddNewGoal": "Agaugă o ţintă nouă",
- "AddNewGoalOrEditExistingGoal": "%sAdaugă o ţintă nouă sau%s sau %sModifică%s ţinte existente",
+ "AddNewGoalOrEditExistingGoal": "%1$sAdaugă o ţintă nouă sau%2$s sau %3$sModifică%4$s ţinte existente",
"AllowGoalConvertedMoreThanOncePerVisit": "Obiectivul permite să fie convertite mai mult de o dată la fiecare vizită",
"AllowMultipleConversionsPerVisit": "Permite conversii multiple pe vizita",
"BestCountries": "Topul tarilor care convertesc cel mai bine este:",
@@ -26,7 +26,7 @@
"ColumnVisits": "Numărul total de vizite, indiferent dacă a fost declanșată scop sau nu.",
"ColumnVisitsProductDocumentation": "Numărul de vizite pe pagina de Produs\/Categorie. Acest lucru este, de asemenea, utilizat pentru a procesa %s rata de conversie. Această valoare este în raport, dacă pe Ecommerce urmarire a fost configurat pe paginile de produs \/ categorie.",
"Contains": "conţine %s",
- "ConversionByTypeReportDocumentation": "Acest raport oferă informații detaliate despre performanța obiectivului (conversii, ratele de conversie și venituri pe vizita), pentru fiecare dintre categoriile disponibile în panoul din stânga. %s Vă rugăm să faceți clic pe una dintre categoriile pentru a vizualiza raportul. %s Pentru mai multe informații, citiți documentația %sUrmarire Goluri%s",
+ "ConversionByTypeReportDocumentation": "Acest raport oferă informații detaliate despre performanța obiectivului (conversii, ratele de conversie și venituri pe vizita), pentru fiecare dintre categoriile disponibile în panoul din stânga. %1$s Vă rugăm să faceți clic pe una dintre categoriile pentru a vizualiza raportul. %2$s Pentru mai multe informații, citiți documentația %3$sUrmarire Goluri%4$s",
"ConversionRate": "%s rata conversie",
"Conversions": "%s conversii",
"ConversionsOverview": "Privire Generala Conversii",
@@ -44,7 +44,7 @@
"EcommerceOrder": "Comanda Magazin Online",
"EcommerceOverview": "Privire Generala Magazin Online",
"EcommerceReports": "Rapoarte Ecomerţ",
- "ExceptionInvalidMatchingString": "Dacă alegeți \"potrivire exactă\", șirul de potrivire trebuie să fie un URL incepand cu %s. De exemplu, \"%s\".",
+ "ExceptionInvalidMatchingString": "Dacă alegeți \"potrivire exactă\", șirul de potrivire trebuie să fie un URL incepand cu %1$s. De exemplu, \"%2$s\".",
"ExternalWebsiteUrl": "URL Site web extern",
"Filename": "nume fişier",
"GoalConversion": "conversie obiectiv",
@@ -84,7 +84,7 @@
"VisitUrl": "Viziteaza un URL dat (o pagina sau un grup de pagini)",
"WhenVisitors": "când vizitatorii",
"WhereThe": "unde",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "acolo unde pagina vizitată conține un call către metoda JavaScript 'trackGoal' (%svezi mai multe%s)",
- "YouCanEnableEcommerceReports": "Poţi activa %s pentru acest site pe pagina %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "acolo unde pagina vizitată conține un call către metoda JavaScript 'trackGoal' (%1$svezi mai multe%2$s)",
+ "YouCanEnableEcommerceReports": "Poţi activa %1$s pentru acest site pe pagina %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/ru.json b/plugins/Goals/lang/ru.json
index 7869ed28fa..52b761496a 100644
--- a/plugins/Goals/lang/ru.json
+++ b/plugins/Goals/lang/ru.json
@@ -3,14 +3,17 @@
"AbandonedCart": "Брошенных корзин",
"AddGoal": "Добавить цель",
"AddNewGoal": "Добавить новую цель",
- "AddNewGoalOrEditExistingGoal": "%sДобавить новую цель%s или %sредактировать%s уже существующие",
+ "AddNewGoalOrEditExistingGoal": "%1$sДобавить новую цель%2$s или %3$sредактировать%4$s уже существующие",
"AllowGoalConvertedMoreThanOncePerVisit": "Разрешить засчитывание цели более одного раза за посещение",
"AllowMultipleConversionsPerVisit": "Разрешить множественную конверсию за посещение",
"BestCountries": "Наиболее популярные страны:",
"BestKeywords": "Наиболее популярные ключевые слова:",
"BestReferrers": "Наиболее популярные источники входа:",
"CaseSensitive": "Совпадения являются чувствительными к регистру",
- "CancelAndReturnToGoals": "Отмена и %sвозврат к списку целей%s",
+ "CancelAndReturnToGoals": "Отмена и %1$sвозврат к списку целей%2$s",
+ "CategoryTextGeneral_Visitors": "Местоположение пользователя",
+ "CategoryTextReferrers_Referrers": "Источники",
+ "CategoryTextGeneral_Visit": "Вовлеченность",
"ChooseGoal": "Выберите цель",
"ClickOutlink": "Переходят по ссылке на внешний сайт",
"SendEvent": "Отправляют событие",
@@ -29,7 +32,7 @@
"ColumnVisits": "Общее число посещений внезависимости от того, была выполнена Цель или нет.",
"ColumnVisitsProductDocumentation": "Число посещений страницы товаров\/категории товаров. Это используется для подсчета процента конверсии %s. Этот показатель попадает в отчет, если вы установили отслеживание электронной коммерции на странце товаров\/категории товаров.",
"Contains": "содержит %s",
- "ConversionByTypeReportDocumentation": "Этот отчет сожержит детальную информацию о целях (конверсия, процент конверсии и прибыль за посещение) по каждой доступной в левой панели категории. %s Пожалуйста, кликните на одну из категорий, чтобы увидеть детальный отчет. %s Больше информации в %sОтслеживании целей на piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Этот отчет сожержит детальную информацию о целях (конверсия, процент конверсии и прибыль за посещение) по каждой доступной в левой панели категории. %1$s Пожалуйста, кликните на одну из категорий, чтобы увидеть детальный отчет. %2$s Больше информации в %3$sОтслеживании целей на piwik.org%4$s",
"ConversionRate": "%s коэффициент конверсий",
"Conversions": "%s конверсий",
"ConversionsOverview": "Обзор переходов",
@@ -48,7 +51,7 @@
"EcommerceOrder": "Электронный заказ",
"EcommerceOverview": "Обзор электронный заказов",
"EcommerceReports": "Отчеты по электронным заказам",
- "ExceptionInvalidMatchingString": "Если вы выберите «совпадает точно», строка для сравнения должна быть URL'ом, начинающегося с %s. Например, \"%s\".",
+ "ExceptionInvalidMatchingString": "Если вы выберите «совпадает точно», строка для сравнения должна быть URL'ом, начинающегося с %1$s. Например, \"%2$s\".",
"ExternalWebsiteUrl": "внешняя ссылка выглядит следующим образом:",
"Filename": "имя файла выглядит следующим образом:",
"GoalConversion": "Конверсия целей",
@@ -64,14 +67,15 @@
"GoalX": "Цель %s",
"HelpOneConversionPerVisit": "Если страница, совпадающая с этой целью перезагружается или просматривается более одного раза за посещение, цель будет засчитана только единожды – при первом визите пользователя на эту страницу.",
"IsExactly": "точно %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Узнать больше об %sотслеживании целей в Piwik%s в руководстве пользователя.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Узнать больше об %1$sотслеживании целей в Piwik%2$s в руководстве пользователя.",
"LeftInCart": "%s брошено в корзине",
- "ManageGoalsOrCreateANewGoal": "%sУправляйте целями%s или создайте новую прямо сейчас!",
+ "ManageGoalsOrCreateANewGoal": "%1$sУправляйте целями%2$s или создайте новую прямо сейчас!",
"Manually": "ручная настройка",
"ManuallyTriggeredUsingJavascriptFunction": "Цель вручную стала условной через Javascript API trackGoal()",
"MatchesExpression": "совпадает с выражением %s",
"NewGoalIntro": "Отслеживание достигнутых переходов является одним из наиболее эффективных способов измерить и улучшить свои бизнес-задачи.",
"NewVisitorsConversionRateIs": "Коэффициент новых посетителей %s",
+ "NoGoalsNeedAccess": "Только администратор или пользователь с правами суперпользователя может добавлять цели для данного сайта. Пожалуйста, обратитесь к администратору Piwik, чтобы создать цели для вашего сайта.<br>Отслеживания целей является отличным способом, чтобы помочь понять как увеличить и максимизировать эффективность веб-сайта!",
"Optional": "(необязательно)",
"OverallConversionRate": "%s общий коэффициент конверсий (переходы с выполненной целью)",
"OverallRevenue": "%s общая прибыль",
@@ -93,7 +97,7 @@
"VisitUrl": "Посещают данный URL (страницу или группу страниц)",
"WhenVisitors": "посетители",
"WhereThe": "где",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "где цель засчитывается с помощью установки вызова метода JavaScript 'trackGoal' (%sузнать больше%s)",
- "YouCanEnableEcommerceReports": "Вы можете активировать %s для этого сайта на странице %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "где цель засчитывается с помощью установки вызова метода JavaScript 'trackGoal' (%1$sузнать больше%2$s)",
+ "YouCanEnableEcommerceReports": "Вы можете активировать %1$s для этого сайта на странице %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/sk.json b/plugins/Goals/lang/sk.json
index b7d7a3cace..1d811b8b81 100644
--- a/plugins/Goals/lang/sk.json
+++ b/plugins/Goals/lang/sk.json
@@ -3,7 +3,7 @@
"AbandonedCart": "Opustený košík",
"AddGoal": "Pridať ciele",
"AddNewGoal": "Pridať nový cieľ",
- "AddNewGoalOrEditExistingGoal": "%sPridať nový Cieľ%s alebo %sUpraviť%s existujúce Ciele",
+ "AddNewGoalOrEditExistingGoal": "%1$sPridať nový Cieľ%2$s alebo %3$sUpraviť%4$s existujúce Ciele",
"AllowGoalConvertedMoreThanOncePerVisit": "Povoliť aby bol Cieľ konvertovaný viac ako raz za návštevu",
"AllowMultipleConversionsPerVisit": "Povoliť viacero konverzií za návštevu",
"BestCountries": "Vaša najlepšia konverzia s krajín:",
diff --git a/plugins/Goals/lang/sq.json b/plugins/Goals/lang/sq.json
index 559f7a122c..b3c92ded43 100644
--- a/plugins/Goals/lang/sq.json
+++ b/plugins/Goals/lang/sq.json
@@ -3,14 +3,14 @@
"AbandonedCart": "Shportë e Braktisur",
"AddGoal": "Shtoni Objektiv",
"AddNewGoal": "Shtoni Objektiv të ri",
- "AddNewGoalOrEditExistingGoal": "%sShtoni Objektiv të ri%s ose %sPërpunoni%s Objektiva ekzistuese",
+ "AddNewGoalOrEditExistingGoal": "%1$sShtoni Objektiv të ri%2$s ose %3$sPërpunoni%4$s Objektiva ekzistuese",
"AllowGoalConvertedMoreThanOncePerVisit": "Lejoje Objektivin të shndërrohet më shumë se një herë për vizitë",
"AllowMultipleConversionsPerVisit": "Lejo shndërrime shumëfishe për vizitë",
"BestCountries": "Vendet me shndërrime më të mira për ju janë:",
"BestKeywords": "Fjalëkyçet kryesues për shndërrimet tuaja janë:",
"BestReferrers": "Referuesit më të mirë të shndërrimeve nga sajte për ju janë:",
"CaseSensitive": "Përputhje për siç është shkruajtur",
- "CancelAndReturnToGoals": "Anulojeni dhe %skthehuni te lista e objektivave%s",
+ "CancelAndReturnToGoals": "Anulojeni dhe %1$skthehuni te lista e objektivave%2$s",
"CategoryTextGeneral_Visitors": "Vend përdoruesi",
"CategoryTextReferrers_Referrers": "Referues",
"CategoryTextVisitsSummary_VisitsSummary": "Atribut përdoruesi",
@@ -33,7 +33,7 @@
"ColumnVisits": "Numër vizitash gjithsej, pavarësisht nëse u shkaktua a jo veprimtari te një objektiv.",
"ColumnVisitsProductDocumentation": "Numri i vizitave te faqja Produkt\/Kategori. Kjo përdoret gjithashtu për të përpunuar koeficientin %s e shndërrimeve. Kjo llogaritje gjendet te raporti nëse ndjekja e parjeve E-tregti është rregulluar te faqet Produkt\/Kategori.",
"Contains": "përmban %s",
- "ConversionByTypeReportDocumentation": "Ky raport ofron të dhëna të hollësishme rreth funksionimit të objektivave (shndërrime, koeficient shndërrimesh dhe të ardhura për vizitë) për secilën prej kategorive të mundshme te paneli majtas. %s Ju lutemi, klikoni mbi një nga këto kategori që të shihni raportin. %s Për më tepër të dhëna, lexoni %sdokumentimin për Ndjekje Objektivash te piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Ky raport ofron të dhëna të hollësishme rreth funksionimit të objektivave (shndërrime, koeficient shndërrimesh dhe të ardhura për vizitë) për secilën prej kategorive të mundshme te paneli majtas. %1$s Ju lutemi, klikoni mbi një nga këto kategori që të shihni raportin. %2$s Për më tepër të dhëna, lexoni %3$sdokumentimin për Ndjekje Objektivash te piwik.org%4$s",
"ConversionRate": "Koeficient shndërrimi %s",
"Conversions": "Shndërrime %s",
"ConversionsOverview": "Përmbledhje Shndërrimesh",
@@ -52,7 +52,7 @@
"EcommerceOrder": "Porosi E-tregtie",
"EcommerceOverview": "Përmbledhje E-tregtie",
"EcommerceReports": "Raporte E-tregtie",
- "ExceptionInvalidMatchingString": "Nëse zgjidhni 'përputhje e përpiktë', vargu për përputhje duhet të jetë një URL që fillon me %s. Për shembull, '%s'.",
+ "ExceptionInvalidMatchingString": "Nëse zgjidhni 'përputhje e përpiktë', vargu për përputhje duhet të jetë një URL që fillon me %1$s. Për shembull, '%2$s'.",
"ExternalWebsiteUrl": "URL sajti të jashtëm",
"Filename": "emër kartele",
"GoalConversion": "Shndërrim objektivi",
@@ -68,9 +68,9 @@
"GoalX": "Objektiv %s",
"HelpOneConversionPerVisit": "Nëse një faqe që përputhet me këtë Objektiv rifreskohet ose shihet më shumë se një herë gjatë një Vizite, Objektivi do të ndiqet vetëm herën e parë që faqja u ngarkua gjatë kësaj vizite.",
"IsExactly": "është saktësisht %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Mësoni më tepër mbi %s Gjurmimin e Objektivave në Piwik%s, te dokumentimi i përdoruesit.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Mësoni më tepër mbi %1$s Gjurmimin e Objektivave në Piwik%2$s, te dokumentimi i përdoruesit.",
"LeftInCart": "%s ende në shportë",
- "ManageGoalsOrCreateANewGoal": "%sAdministroni Objektiva%s ose krijoni tani një Objektiv të ri!",
+ "ManageGoalsOrCreateANewGoal": "%1$sAdministroni Objektiva%2$s ose krijoni tani një Objektiv të ri!",
"Manually": "dorazi",
"ManuallyTriggeredUsingJavascriptFunction": "Objektivi vihet në punë dorazi duke përdorur JavaScript API trackGoal()",
"MatchesExpression": "përputhet me shprehjen %s",
@@ -101,7 +101,7 @@
"VisitUrl": "Vizitoni një URL të dhënë (faqe ose grup faqesh)",
"WhenVisitors": "kur vizitorët",
"WhereThe": "kur",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "kur faqja e vizituar përmban një thirrje të metodës JavaScript piwikTracker.trackGoal() (%smësoni më tepër%s)",
- "YouCanEnableEcommerceReports": "Për këtë sajt mund të aktivizoni %s te faqja %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "kur faqja e vizituar përmban një thirrje të metodës JavaScript piwikTracker.trackGoal() (%1$smësoni më tepër%2$s)",
+ "YouCanEnableEcommerceReports": "Për këtë sajt mund të aktivizoni %1$s te faqja %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/sr.json b/plugins/Goals/lang/sr.json
index 6d99bbad14..b65739d596 100644
--- a/plugins/Goals/lang/sr.json
+++ b/plugins/Goals/lang/sr.json
@@ -3,14 +3,14 @@
"AbandonedCart": "Napuštene korpe",
"AddGoal": "Dodaj cilj",
"AddNewGoal": "Dodavanje novog cilja",
- "AddNewGoalOrEditExistingGoal": "%sDodaj novi cilj%s ili %sizmeni%s postojeće",
+ "AddNewGoalOrEditExistingGoal": "%1$sDodaj novi cilj%2$s ili %3$sizmeni%4$s postojeće",
"AllowGoalConvertedMoreThanOncePerVisit": "Dozvoli da cilj bude ostvaren više od jednom tokom jedne posete",
"AllowMultipleConversionsPerVisit": "Dozvoli više ispunjenja po poseti",
"BestCountries": "Zemlje koje imaju najbolje ispunjenje ciljeva:",
"BestKeywords": "Ključne reči koje imaju najbolje ispunjenje:",
"BestReferrers": "Reference koje imaju najbolje ispunjenje:",
"CaseSensitive": "Obrati pažnju na velika i mala slova",
- "CancelAndReturnToGoals": "Odustani i %svrati se na listu ciljeva%s",
+ "CancelAndReturnToGoals": "Odustani i %1$svrati se na listu ciljeva%2$s",
"CategoryTextGeneral_Visitors": "Lokacije posetilaca",
"CategoryTextReferrers_Referrers": "Reference",
"CategoryTextVisitsSummary_VisitsSummary": "Atributi korisnika",
@@ -33,7 +33,7 @@
"ColumnVisits": "Ukupan broj poseta bez obzira da li je cilj ispunjen ili ne.",
"ColumnVisitsProductDocumentation": "Broj poseta Proizvod\/Kategorija stranice. Ovo se koristi i za obradu %s stepena ispunjenosti cilja. Ova metrika je u izveštaju ako je na stranici Proizvod\/Kategorija uključeno praćene elektronskih porudžbina.",
"Contains": "sadrži %s",
- "ConversionByTypeReportDocumentation": "Ovaj izveštaj prikazuje detaljne informacije o ciljevima (stepene ispunjenja i prihod po poseti) za svaku od kategorija koja je izabrana s leve strane. %s Kliknite na neku od kategorija kako biste videli izveštaj. %s Za više informacija pročitajte %sTracking Goals na piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Ovaj izveštaj prikazuje detaljne informacije o ciljevima (stepene ispunjenja i prihod po poseti) za svaku od kategorija koja je izabrana s leve strane. %1$s Kliknite na neku od kategorija kako biste videli izveštaj. %2$s Za više informacija pročitajte %3$sTracking Goals na piwik.org%4$s",
"ConversionRate": "%s stepen ispunjenja",
"Conversions": "%s ispunjenja",
"ConversionsOverview": "Prikaz ispunjenja ciljeva",
@@ -52,7 +52,7 @@
"EcommerceOrder": "Redosled elektronskih porudžbina",
"EcommerceOverview": "Pregled elektronskih porudžbina",
"EcommerceReports": "Izveštaji elektronskih porudžbina",
- "ExceptionInvalidMatchingString": "Ukoliko izaberete 'tačno poklapanje', izraz mora biti adresa koja počinje sa %s. Na primer, '%s'.",
+ "ExceptionInvalidMatchingString": "Ukoliko izaberete 'tačno poklapanje', izraz mora biti adresa koja počinje sa %1$s. Na primer, '%2$s'.",
"ExternalWebsiteUrl": "adresa eksternog sajta",
"Filename": "datoteka",
"GoalConversion": "Ispunjenje cilja",
@@ -68,9 +68,9 @@
"GoalX": "Cilj %s",
"HelpOneConversionPerVisit": "Ukoliko je stranica koja odgovara ovom cilju otvorena više od jednom tokom jedne posete, cilj će biti ispraćen samo prilikom prvog otvaranja stranice.",
"IsExactly": "je tačno %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Naučite više o %s Praćenju ciljeva u Piwik-u%s u korisničkoj dokumentaciji.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Naučite više o %1$s Praćenju ciljeva u Piwik-u%2$s u korisničkoj dokumentaciji.",
"LeftInCart": "%s ostalo u korpi",
- "ManageGoalsOrCreateANewGoal": "%sUpravljajte ciljevima%s ili kreirajte novi cilj",
+ "ManageGoalsOrCreateANewGoal": "%1$sUpravljajte ciljevima%2$s ili kreirajte novi cilj",
"Manually": "ručno",
"ManuallyTriggeredUsingJavascriptFunction": "Cilj je ručno dostignut pomoću JavaScript API trackGoal()",
"MatchesExpression": "je u skladu sa izrazom %s",
@@ -101,7 +101,7 @@
"VisitUrl": "Poseti datu adresu (stranicu ili grupu stranica)",
"WhenVisitors": "kad posetioci",
"WhereThe": "gde",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "gde posećena stranica sadrži poziv Java Script piwikTracker.trackGoal() metod (%ssaznajte više%s)",
- "YouCanEnableEcommerceReports": "Za ovaj sajt možete omogućiti %s na stranici %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "gde posećena stranica sadrži poziv Java Script 'trackGoal' metod (%1$ssaznajte više%2$s)",
+ "YouCanEnableEcommerceReports": "Za ovaj sajt možete omogućiti %1$s na stranici %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/sv.json b/plugins/Goals/lang/sv.json
index 9a01c91212..63810c8f5a 100644
--- a/plugins/Goals/lang/sv.json
+++ b/plugins/Goals/lang/sv.json
@@ -3,14 +3,14 @@
"AbandonedCart": "Övergivna varukorgar",
"AddGoal": "Lägg till Mål",
"AddNewGoal": "Lägg till ett nytt Mål",
- "AddNewGoalOrEditExistingGoal": "%sLägg till ett nytt Mål%s eller %sRedigera%s befintliga Mål",
+ "AddNewGoalOrEditExistingGoal": "%1$sLägg till ett nytt Mål%2$s eller %3$sRedigera%4$s befintliga Mål",
"AllowGoalConvertedMoreThanOncePerVisit": "Tillåt att mål omvandlas mer än en gång per besök",
"AllowMultipleConversionsPerVisit": "Tillåt flera omvandlingar per besök",
"BestCountries": "Dina bäst omvandlade länder är:",
"BestKeywords": "Dina bäst omvandlade nyckelord är:",
"BestReferrers": "Dina bäst omvandlade hänvisningsadresser är:",
"CaseSensitive": "Skiftlägeskänslig matchning",
- "CancelAndReturnToGoals": "Avbryt och %såtergå till listan av mål%s",
+ "CancelAndReturnToGoals": "Avbryt och %1$såtergå till listan av mål%2$s",
"CategoryTextGeneral_Visitors": "användarens plats",
"CategoryTextReferrers_Referrers": "hänvisningar",
"CategoryTextVisitsSummary_VisitsSummary": "användarinformation",
@@ -33,7 +33,7 @@
"ColumnVisits": "Det totala antalet besök, oavsett om ett mål utlöstes eller inte.",
"ColumnVisitsProductDocumentation": "Antalet besök på Produktens\/Kategorins sida. Detta är används också för att bearbeta %s omvandlingsgraden. Det här måttet finns i rapporten om E-handelsspårning lagts in på Produkt\/ Kategorisidor.",
"Contains": "innehåller %s",
- "ConversionByTypeReportDocumentation": "Denna rapport ger detaljerad information om målprestanda (omvandlingar, omvandlingsgrader och intäkter per besök) för varje kategori som finns i den vänstra panelen. %s Klicka på en av kategorierna för att visa rapporten. %s För mer information, läs %sdokumentationen om Spårningsmål på piwik.org%s",
+ "ConversionByTypeReportDocumentation": "Denna rapport ger detaljerad information om målprestanda (omvandlingar, omvandlingsgrader och intäkter per besök) för varje kategori som finns i den vänstra panelen. %1$s Klicka på en av kategorierna för att visa rapporten. %2$s För mer information, läs %3$sdokumentationen om Spårningsmål på piwik.org%4$s",
"ConversionRate": "%s omvandlingsgrad",
"Conversions": "%s omvandlingar",
"ConversionsOverview": "Omvandlingsöversikt",
@@ -52,7 +52,7 @@
"EcommerceOrder": "E-handelsorder",
"EcommerceOverview": "E-handelsöversikt",
"EcommerceReports": "E-handelsrapporter",
- "ExceptionInvalidMatchingString": "Om du väljer \"exakt matchning\", måste den matchande strängen vara en URL som börjar med %s. Till exempel, \"%s'.",
+ "ExceptionInvalidMatchingString": "Om du väljer \"exakt matchning\", måste den matchande strängen vara en URL som börjar med %1$s. Till exempel, \"%2$s'.",
"ExternalWebsiteUrl": "extern webbplats URL",
"Filename": "filnamn",
"GoalConversion": "Målomvandling",
@@ -68,9 +68,9 @@
"GoalX": "Mål %s",
"HelpOneConversionPerVisit": "Om en sida som matchar det här målet uppdateras eller visas mer än en gång under ett besök, kommer detta mål endast spåras första gången sidan laddas under detta besök.",
"IsExactly": "är exakt %s",
- "LearnMoreAboutGoalTrackingDocumentation": "Lär dig mer om %s att mäta mål i Piwik%s i dokumentationen.",
+ "LearnMoreAboutGoalTrackingDocumentation": "Lär dig mer om %1$s att mäta mål i Piwik%2$s i dokumentationen.",
"LeftInCart": "%s kvar i varukorgen",
- "ManageGoalsOrCreateANewGoal": "%sHantera mål%s eller skapa ett nytt mål nu.",
+ "ManageGoalsOrCreateANewGoal": "%1$sHantera mål%2$s eller skapa ett nytt mål nu.",
"Manually": "manuellt",
"ManuallyTriggeredUsingJavascriptFunction": "Målet utlöses manuellt genom att använda JavaScript API trackGoal()",
"MatchesExpression": "matchar uttrycket %s",
@@ -99,7 +99,7 @@
"VisitUrl": "besöker en definerad URL (sida eller grupp av sidor)",
"WhenVisitors": "när besökarna",
"WhereThe": "där",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "där den besökta sidan innehåller ett anrop till JavaScript piwikTracker.trackGoal ()-metoden (%slär dig mer%s)",
- "YouCanEnableEcommerceReports": "Du kan aktivera %s för denna webbplats på sidan %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "där den besökta sidan innehåller ett anrop till JavaScript 'trackGoal'-metoden (%1$slär dig mer%2$s)",
+ "YouCanEnableEcommerceReports": "Du kan aktivera %1$s för denna webbplats på sidan %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/th.json b/plugins/Goals/lang/th.json
index b8fd9cc071..69a05b9aec 100644
--- a/plugins/Goals/lang/th.json
+++ b/plugins/Goals/lang/th.json
@@ -2,7 +2,7 @@
"Goals": {
"AddGoal": "เพิ่มเป้าหมาย",
"AddNewGoal": "เพิ่มค่าเป้าหมายใหม่",
- "AddNewGoalOrEditExistingGoal": "%s เพิ่มเป้าหมายใหม่ %s หรือ %s แก้ไข %s เป้าหมายที่มีอยู่แล้ว",
+ "AddNewGoalOrEditExistingGoal": "%1$s เพิ่มเป้าหมายใหม่ %2$s หรือ %3$s แก้ไข %4$s เป้าหมายที่มีอยู่แล้ว",
"BestCountries": "การแปลงประเทศที่ดีที่สุดของคุณคือ:",
"BestKeywords": "การแปลงคีย์เวิร์ดยอดนิยมของคุณคือ:",
"BestReferrers": "แปลงแหล่งที่มาเว็บไซต์ที่ดีที่สุดของคุณคือ:",
@@ -21,7 +21,7 @@
"Ecommerce": "อีคอมเมิร์ซ",
"EcommerceAndGoalsMenu": "อีคอมเมิร์ซ & เป้าหมาย",
"EcommerceOverview": "ข้อมูลอีคอมเมิร์ซเบื้องต้น",
- "ExceptionInvalidMatchingString": "ถ้าคุณเลือก 'ตรงกันพอดี' สตริงที่ตรงกันต้องเป็น URL เริ่มต้นด้วย %s ตัวอย่างเช่น '%s'",
+ "ExceptionInvalidMatchingString": "ถ้าคุณเลือก 'ตรงกันพอดี' สตริงที่ตรงกันต้องเป็น URL เริ่มต้นด้วย %1$s ตัวอย่างเช่น '%2$s'",
"ExternalWebsiteUrl": "URL ของเว็บไซต์ภายนอก",
"Filename": "ชื่อไฟล์",
"GoalConversion": "การแปลงเป้าหมาย",
@@ -53,6 +53,6 @@
"VisitUrl": "การเข้าชมได้รับ URL (หน้าหรือกลุ่มของหน้า)",
"WhenVisitors": "เมื่อผู้เข้าชม",
"WhereThe": "ที่ซึ่ง",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "ในหน้าเว็บเพจเมื่อเข้าชมแล้ว จะประกอบไปด้วยวิธีการเรียก JavaScript piwikTracker.trackGoal() และวิธี (%s เรียนรู้เพิ่มเติม %s)"
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "ในหน้าเว็บเพจเมื่อเข้าชมแล้ว จะประกอบไปด้วยวิธีการเรียก JavaScript 'trackGoal' และวิธี (%1$s เรียนรู้เพิ่มเติม %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/tr.json b/plugins/Goals/lang/tr.json
index 49611c8538..7be99ef69a 100644
--- a/plugins/Goals/lang/tr.json
+++ b/plugins/Goals/lang/tr.json
@@ -3,14 +3,14 @@
"AbandonedCart": "Terkedilen Sepet",
"AddGoal": "Hedef Ekle",
"AddNewGoal": "Yeni Hedef Ekle",
- "AddNewGoalOrEditExistingGoal": "%sYeni Hedef ekle%s veya Mevcut Hedefleri %sDüzenle%s",
+ "AddNewGoalOrEditExistingGoal": "%1$sYeni Hedef ekle%2$s veya Mevcut Hedefleri %3$sDüzenle%4$s",
"AllowGoalConvertedMoreThanOncePerVisit": "Hedefin ziyaret başına bir kereden fazla dönüştürülmesine izin ver",
"AllowMultipleConversionsPerVisit": "Ziyaret başına çoklu dönüşümlere izin ver",
"BestCountries": "En iyi dönüşüm aldığınız ülkeler:",
"BestKeywords": "En yüksek dönüşüm yapan anahtar kelimeler:",
"BestReferrers": "En iyi dönüşüm yapan web sayfaları yönlendiricileri:",
"CaseSensitive": "Büyük-küçük harf duyarlı eşleşme",
- "CancelAndReturnToGoals": "Vazgeç ve %shedefler listesine geri dön%s",
+ "CancelAndReturnToGoals": "Vazgeç ve %1$shedefler listesine geri dön%2$s",
"ChooseGoal": "Hedef Seç",
"ClickOutlink": "Harici bir web sayfasına olan Bağlantıya tıklayın",
"SendEvent": "Etkinlik gönder",
diff --git a/plugins/Goals/lang/uk.json b/plugins/Goals/lang/uk.json
index 28d4b1b9f1..fda6fe3d41 100644
--- a/plugins/Goals/lang/uk.json
+++ b/plugins/Goals/lang/uk.json
@@ -2,7 +2,7 @@
"Goals": {
"AddGoal": "Додати Ціль",
"AddNewGoal": "Додати нову Ціль",
- "AddNewGoalOrEditExistingGoal": "%sДодати нову Ціль%s або %sРедагувати%s існуючі Цілі",
+ "AddNewGoalOrEditExistingGoal": "%1$sДодати нову Ціль%2$s або %3$sРедагувати%4$s існуючі Цілі",
"BestCountries": "Країни з найкращою корверсією:",
"BestKeywords": "Ключові слова з найкращоб конверсією:",
"BestReferrers": "Джерела трафіку з найкращою конверсією:",
@@ -17,7 +17,7 @@
"DefaultRevenueHelp": "Для прикладу, надіслана відвідувачем Форма Контактів може в середньому вартувати $10. Piwik дозволить вам зрозуміти наскільки добре поводять себе різні сегменти ваших користувачів.",
"DeleteGoalConfirm": "Впевнені що хочете видалити Ціль %s?",
"Download": "Завантажено файл",
- "ExceptionInvalidMatchingString": "Якщо вибрати \"точне сіпвпадіння\" то стрічка для співставлення має бути коректним URL та починатися з %s. Наприклад '%s'.",
+ "ExceptionInvalidMatchingString": "Якщо вибрати \"точне сіпвпадіння\" то стрічка для співставлення має бути коректним URL та починатися з %1$s. Наприклад '%2$s'.",
"ExternalWebsiteUrl": "URL на зовнішній веб-сайт",
"Filename": "ім’я файла",
"GoalConversion": "Конверсія цілі",
@@ -43,6 +43,6 @@
"VisitUrl": "Відвідано заданий URL (сторінку або групу сторінок)",
"WhenVisitors": "коли відвідувачі",
"WhereThe": "де",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "де відвідана сторінка містить запит методу JavaScript piwikTracker.trackGoal()(%sдізнатись більше%s)"
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "де відвідана сторінка містить запит методу JavaScript 'trackGoal' (%1$sдізнатись більше%2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/vi.json b/plugins/Goals/lang/vi.json
index 873d33151c..6643c1a225 100644
--- a/plugins/Goals/lang/vi.json
+++ b/plugins/Goals/lang/vi.json
@@ -3,7 +3,7 @@
"AbandonedCart": "Giỏ hàng không được để ý đến",
"AddGoal": "Thêm chỉ tiêu (Goal)",
"AddNewGoal": "Thêm chỉ tiêu mới",
- "AddNewGoalOrEditExistingGoal": "%s Thêm một chỉ tiêu mới %s hoặc %s sửa chữa %s chỉ tiêu hiện tại",
+ "AddNewGoalOrEditExistingGoal": "%1$s Thêm một chỉ tiêu mới %2$s hoặc %3$s sửa chữa %4$s chỉ tiêu hiện tại",
"AllowGoalConvertedMoreThanOncePerVisit": "Chỉ tiêu được chuyển đổi nhiều hơn một lần của mỗi lượt truy cập",
"AllowMultipleConversionsPerVisit": "Cho phép chuyển đổi nhiều phần mỗi lần truy cập",
"BestCountries": "Các nước chuyển đổi tốt nhất của bạn là:",
@@ -26,7 +26,7 @@
"ColumnVisits": "Tổng lượt truy cập, Bất kể một mục tiêu có được kích hoạt hay không",
"ColumnVisitsProductDocumentation": "Số lần truy cập trang Product\/Category. Nó cũng được sử dụng để xử lý %s tốc độ chuyển trang. Chỉ số này sẽ xuất hiện trong báo cáo nếu hệ thống theo dõi thương mại điện tử được xây dựng trong các trang Product\/Category.",
"Contains": "Chứa %s",
- "ConversionByTypeReportDocumentation": "Báo cáo này cung cấp thông tin chi tiết về hiệu suất mong muốn (số lượt chuyển đổi, tốc độ chuyển đổi và lợi nhuận trên mỗi lượt thăm) đối với mỗi danh mục có trên panel bên trái. %s Vui lòng nhấn vào một trong các danh mục trên để xem báo cáo. %s Để có thêm thông tin, đọc %sTài liệu Tracking Goals%s",
+ "ConversionByTypeReportDocumentation": "Báo cáo này cung cấp thông tin chi tiết về hiệu suất mong muốn (số lượt chuyển đổi, tốc độ chuyển đổi và lợi nhuận trên mỗi lượt thăm) đối với mỗi danh mục có trên panel bên trái. %1$s Vui lòng nhấn vào một trong các danh mục trên để xem báo cáo. %2$s Để có thêm thông tin, đọc %3$sTài liệu Tracking Goals%4$s",
"ConversionRate": "Tỷ lệ chuyển đổi %s",
"Conversions": "%s chuyển đổi",
"ConversionsOverview": "Chuyển đổi tổng quan (Overview)",
@@ -44,7 +44,7 @@
"EcommerceOrder": "Đặt hàng Thương mại điện tử",
"EcommerceOverview": "Thương mại điện tử tổng quan",
"EcommerceReports": "Các báo cáo thương mại điện tử",
- "ExceptionInvalidMatchingString": "Nếu bạn chọn 'kết hợp chính xác', các chuỗi kết hợp phải là một URL bắt đầu với %s. Ví dụ, '%s'.",
+ "ExceptionInvalidMatchingString": "Nếu bạn chọn 'kết hợp chính xác', các chuỗi kết hợp phải là một URL bắt đầu với %1$s. Ví dụ, '%2$s'.",
"ExternalWebsiteUrl": "Đường dẫn (URL) của website nước ngoài",
"Filename": "Tên tệp tin",
"GoalConversion": "Chỉ tiêu chuyển đổi",
@@ -84,7 +84,7 @@
"VisitUrl": "Truy cập vào một URL đã cho (trang hoặc một nhóm trang)",
"WhenVisitors": "Khi các khách truy cập",
"WhereThe": "Ở đâu",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "Khi một trang đã truy cập gọi đến phương pháp JavaScript 'trackGoal' (%s tìm hiểu thêm %s)",
- "YouCanEnableEcommerceReports": "Bạn có thể kích hoạt %s cho website này trong trang %s."
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "Khi một trang đã truy cập gọi đến phương pháp JavaScript 'trackGoal' (%1$s tìm hiểu thêm %2$s)",
+ "YouCanEnableEcommerceReports": "Bạn có thể kích hoạt %1$s cho website này trong trang %2$s."
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/zh-cn.json b/plugins/Goals/lang/zh-cn.json
index d9d118ad09..71b887124d 100644
--- a/plugins/Goals/lang/zh-cn.json
+++ b/plugins/Goals/lang/zh-cn.json
@@ -3,7 +3,7 @@
"AbandonedCart": "丢弃的购物车",
"AddGoal": "新增目标",
"AddNewGoal": "新增目标",
- "AddNewGoalOrEditExistingGoal": "%s新增目标%s 或 %s编辑%s 已有目标",
+ "AddNewGoalOrEditExistingGoal": "%1$s新增目标%2$s 或 %3$s编辑%4$s 已有目标",
"AllowGoalConvertedMoreThanOncePerVisit": "每次访问的所有目标会被多次转化",
"AllowMultipleConversionsPerVisit": "每次访问允许多次转化",
"BestCountries": "您的最佳转化国家为:",
@@ -26,7 +26,7 @@
"ColumnVisits": "总的访问次数,无论是否触发目标。",
"ColumnVisitsProductDocumentation": "产品\/分类页面的访问次数,同时用于计算 %s 转化率。如果在产品\/分类页面设置了电子商务跟踪,报表中将显示这个指标。",
"Contains": "包含 %s",
- "ConversionByTypeReportDocumentation": "本报表显示左边每个分类的详细的目标性能。(转化, 转化率和单次访问收入)。%s 请点击分类查看报表。 %s 详情查看 %s跟踪目标文档%s",
+ "ConversionByTypeReportDocumentation": "本报表显示左边每个分类的详细的目标性能。(转化, 转化率和单次访问收入)。%1$s 请点击分类查看报表。 %2$s 详情查看 %3$s跟踪目标文档%4$s",
"ConversionRate": "%s转化率",
"Conversions": "%s 转化数",
"ConversionsOverview": "转化总表",
@@ -44,7 +44,7 @@
"EcommerceOrder": "订单",
"EcommerceOverview": "总表",
"EcommerceReports": "电子商务报表",
- "ExceptionInvalidMatchingString": "如果选择 'exact match',匹配的字符串必须是以 %s 开头的网址,例如,'%s' 。",
+ "ExceptionInvalidMatchingString": "如果选择 'exact match',匹配的字符串必须是以 %1$s 开头的网址,例如,'%2$s' 。",
"ExternalWebsiteUrl": "外部网站",
"Filename": "文件名称",
"GoalConversion": "目标转化",
@@ -61,7 +61,7 @@
"HelpOneConversionPerVisit": "如果一次访问中,匹配目标的页面被刷新或多次查看,只有第一次访问页面的目标会被统计。",
"IsExactly": "正好是 %s",
"LeftInCart": "%s(购物车内产品)",
- "ManageGoalsOrCreateANewGoal": "%s管理目标%s 或马上新建一个目标!",
+ "ManageGoalsOrCreateANewGoal": "%1$s管理目标%2$s 或马上新建一个目标!",
"Manually": "手动触发",
"ManuallyTriggeredUsingJavascriptFunction": "手动触发的目标是使用 JavaScript API trackGoal()",
"MatchesExpression": "匹配表达式 %s",
@@ -87,7 +87,7 @@
"VisitUrl": "访问特定网址(页面或页面组)",
"WhenVisitors": "当访客",
"WhereThe": "设置",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "在被访问的页面包含一个 JavaScript piwikTracker.trackGoal() 方法(%s了解更多%s)",
- "YouCanEnableEcommerceReports": "您可以为网站开启%s在%s页面。"
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "在被访问的页面包含一个 JavaScript piwikTracker.trackGoal() 方法(%1$s了解更多%2$s)",
+ "YouCanEnableEcommerceReports": "您可以为网站开启%1$s在%2$s页面。"
}
} \ No newline at end of file
diff --git a/plugins/Goals/lang/zh-tw.json b/plugins/Goals/lang/zh-tw.json
index 3bba1830e6..9c636893fc 100644
--- a/plugins/Goals/lang/zh-tw.json
+++ b/plugins/Goals/lang/zh-tw.json
@@ -2,7 +2,7 @@
"Goals": {
"AddGoal": "新增目標",
"AddNewGoal": "新增一個新的目標",
- "AddNewGoalOrEditExistingGoal": "%s新增一個新的目標%s 或 %s編輯%s 已存在的目標",
+ "AddNewGoalOrEditExistingGoal": "%1$s新增一個新的目標%2$s 或 %3$s編輯%4$s 已存在的目標",
"BestCountries": "你的最佳轉換國家為:",
"BestKeywords": "你的最佳轉換關鍵字為:",
"BestReferrers": "你的最佳轉換網站推薦連結為:",
@@ -17,7 +17,7 @@
"DefaultRevenueHelp": "舉例來說,訪客送出一個聯繫表單可能平均價值為 $10。Piwik 將幫助你瞭解你的訪客。",
"DeleteGoalConfirm": "你確定要刪除目標 %s ?",
"Download": "下載一個檔案",
- "ExceptionInvalidMatchingString": "如果你選擇 '精準符合',相符的字串必須包含一個網址開頭 %s. 舉例來說,'%s' 。",
+ "ExceptionInvalidMatchingString": "如果你選擇 '精準符合',相符的字串必須包含一個網址開頭 %1$s. 舉例來說,'%2$s' 。",
"ExternalWebsiteUrl": "外部網站網址",
"Filename": "檔案名稱",
"GoalIsTriggered": "目標觸發",
@@ -42,6 +42,6 @@
"VisitUrl": "訪問特定網址(頁面或頁面群組)",
"WhenVisitors": "當訪客",
"WhereThe": "位於",
- "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "在被訪問的頁面包含一個 JavaScript piwikTracker.trackGoal() 方法(%s知道更多%s)"
+ "WhereVisitedPageManuallyCallsJavascriptTrackerLearnMore": "在被訪問的頁面包含一個 JavaScript piwikTracker.trackGoal() 方法(%1$s知道更多%2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Goals/templates/conversionOverview.twig b/plugins/Goals/templates/conversionOverview.twig
index 2697527eb7..a810c464aa 100644
--- a/plugins/Goals/templates/conversionOverview.twig
+++ b/plugins/Goals/templates/conversionOverview.twig
@@ -12,4 +12,8 @@
{{ 'Goals_ReturningVisitorsConversionRateIs'|translate("<strong>"~conversion_rate_returning~"</strong>")|raw }}
, {{ 'Goals_NewVisitorsConversionRateIs'|translate("<strong>"~conversion_rate_new~"</strong>")|raw }}
</li>
-</ul><br style="clear:left"/> \ No newline at end of file
+</ul>
+<a href="javascript:;" class="segmentedlog" onclick="SegmentedVisitorLog.show('Goals.getMetrics', 'visitConvertedGoalId=={{ idGoal }}', {})">
+ {{ 'Live_RowActionTooltipWithDimension'|translate('General_Goal'|translate) }}
+</a>
+<br style="clear:left"/> \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/bg.json b/plugins/ImageGraph/lang/bg.json
index e7da535f7b..aa6ffdae65 100644
--- a/plugins/ImageGraph/lang/bg.json
+++ b/plugins/ImageGraph/lang/bg.json
@@ -1,5 +1,5 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Колоната '%s' не е намерена в този доклад. Опитайте с %s"
+ "ColumnOrdinateMissing": "Колоната '%1$s' не е намерена в този доклад. Опитайте с %2$s"
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/ca.json b/plugins/ImageGraph/lang/ca.json
index aa81dbc279..a5de45825a 100644
--- a/plugins/ImageGraph/lang/ca.json
+++ b/plugins/ImageGraph/lang/ca.json
@@ -1,5 +1,5 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "La columan '%s' no s'ha trobat en aquest informe. Proveu algun dels següents: %s"
+ "ColumnOrdinateMissing": "La columan '%1$s' no s'ha trobat en aquest informe. Proveu algun dels següents: %2$s"
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/cs.json b/plugins/ImageGraph/lang/cs.json
index cbb430459b..53ee4c8ac9 100644
--- a/plugins/ImageGraph/lang/cs.json
+++ b/plugins/ImageGraph/lang/cs.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Sloupec %s nebyl v tomto hlášení nalezen. Zkuste některé z %s",
+ "ColumnOrdinateMissing": "Sloupec %1$s nebyl v tomto hlášení nalezen. Zkuste některé z %2$s",
"PluginDescription": "Generujte pěkné statické PNG grafy z jakéhokoliv hlášení."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/da.json b/plugins/ImageGraph/lang/da.json
index 72b5ba3c0b..927adde448 100644
--- a/plugins/ImageGraph/lang/da.json
+++ b/plugins/ImageGraph/lang/da.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Kolonnen '%s' blev ikke fundet i denne rapport. Prøv en af %s",
+ "ColumnOrdinateMissing": "Kolonnen '%1$s' blev ikke fundet i denne rapport. Prøv en af %2$s",
"PluginDescription": "Generer flotte statiske PNG Graph billeder til alle datarapporter."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/de.json b/plugins/ImageGraph/lang/de.json
index 150b572b7d..5f14931a4d 100644
--- a/plugins/ImageGraph/lang/de.json
+++ b/plugins/ImageGraph/lang/de.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Die Spalte '%s' wurde in diesem Bericht nicht gefunden. Probieren Sie es mit einer hiervon: %s",
+ "ColumnOrdinateMissing": "Die Spalte '%1$s' wurde in diesem Bericht nicht gefunden. Probieren Sie es mit einer hiervon: %2$s",
"PluginDescription": "Generieren Sie schöne statische PNG Graph Bilder für Ihre Datenberichte."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/el.json b/plugins/ImageGraph/lang/el.json
index 6a954ebfd2..85a300b67a 100644
--- a/plugins/ImageGraph/lang/el.json
+++ b/plugins/ImageGraph/lang/el.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Η στήλη '%s' δε βρέθηκε σε αυτή την αναφορά. Δοκιμάστε ένα από τα %s",
+ "ColumnOrdinateMissing": "Η στήλη '%1$s' δεν βρέθηκε στην αναφορά. Δοκιμάστε οποιαδήποτε από τις %2$s",
"PluginDescription": "Δημιουργήστε όμορφες στατικές εικόνες γραφικών PNG για κάθε μία από τις αναφορές σας."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/en.json b/plugins/ImageGraph/lang/en.json
index f229e539dc..b5cc868782 100644
--- a/plugins/ImageGraph/lang/en.json
+++ b/plugins/ImageGraph/lang/en.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "The column '%s' was not found in this report. Try any of %s",
+ "ColumnOrdinateMissing": "The column '%1$s' was not found in this report. Try any of %2$s",
"PluginDescription": "Generate beautiful static PNG Graph images for any of your data report."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/es.json b/plugins/ImageGraph/lang/es.json
index bb288a550d..e11a85da22 100644
--- a/plugins/ImageGraph/lang/es.json
+++ b/plugins/ImageGraph/lang/es.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "La columna '%s' no se encontró en este informe. Intente con alguno de %s",
+ "ColumnOrdinateMissing": "La columna '%1$s' no se encontró en este informe. Intente con alguno de %2$s",
"PluginDescription": "Genera bellas imágenes estáticas de gráficos PNG para cualquiera de sus informes de datos."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/fa.json b/plugins/ImageGraph/lang/fa.json
index f825ade6e4..7f9ae95d53 100644
--- a/plugins/ImageGraph/lang/fa.json
+++ b/plugins/ImageGraph/lang/fa.json
@@ -1,5 +1,5 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "ستون '%s' در این گزارش پیدا نشد. تلاش کنید برای %s"
+ "ColumnOrdinateMissing": "ستون '%1$s' در این گزارش پیدا نشد. تلاش کنید برای %2$s"
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/fi.json b/plugins/ImageGraph/lang/fi.json
index a65b80f8bb..5dac1b5f20 100644
--- a/plugins/ImageGraph/lang/fi.json
+++ b/plugins/ImageGraph/lang/fi.json
@@ -1,5 +1,5 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Kolumnia '%s' ei löydetty tässä raportissa. Kokeile mitä tahansa %s"
+ "ColumnOrdinateMissing": "Kolumnia '%1$s' ei löydetty tässä raportissa. Kokeile mitä tahansa %2$s"
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/fr.json b/plugins/ImageGraph/lang/fr.json
index b2e3e5abc8..c13c874c9f 100644
--- a/plugins/ImageGraph/lang/fr.json
+++ b/plugins/ImageGraph/lang/fr.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "La colonne '%s' n'a pas été trouvée dans ce rapport. Essayez parmi %s",
+ "ColumnOrdinateMissing": "La colonne '%1$s' n'a pas été trouvée dans ce rapport. Essayez parmi %2$s",
"PluginDescription": "Générez de magnifiques images statiques PNG de graphiques de vos données de n'importe quelle donnée de votre rapport."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/hi.json b/plugins/ImageGraph/lang/hi.json
index 03b6e2f0b7..e99e78a256 100644
--- a/plugins/ImageGraph/lang/hi.json
+++ b/plugins/ImageGraph/lang/hi.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "स्तंभ '%s' इस रिपोर्ट में नहीं मिला था. किसी %sका प्रयास करें",
+ "ColumnOrdinateMissing": "स्तंभ '%1$s' इस रिपोर्ट में नहीं मिला था. किसी %2$sका प्रयास करें",
"PluginDescription": "अपने डेटा रिपोर्ट से किसी के लिए सुंदर स्थिर PNG ग्राफ छवियों को उत्पन्न।"
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/id.json b/plugins/ImageGraph/lang/id.json
index b44d08b89c..154544ffbc 100644
--- a/plugins/ImageGraph/lang/id.json
+++ b/plugins/ImageGraph/lang/id.json
@@ -1,5 +1,5 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Kolom '%s' tidak ditemukan dalam laporan ini. Coba salah satu dari %s"
+ "ColumnOrdinateMissing": "Kolom '%1$s' tidak ditemukan dalam laporan ini. Coba salah satu dari %2$s"
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/it.json b/plugins/ImageGraph/lang/it.json
index b86e0b0dd0..aa74059099 100644
--- a/plugins/ImageGraph/lang/it.json
+++ b/plugins/ImageGraph/lang/it.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "La colonna '%s' non è stato trovata in questo report. Prova una di queste %s",
+ "ColumnOrdinateMissing": "La colonna '%1$s' non è stato trovata in questo report. Prova una di queste %2$s",
"PluginDescription": "Genera delle belle immagini statiche PNG di grafici per ognuno dei tuoi report dati."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/ja.json b/plugins/ImageGraph/lang/ja.json
index bac9f01594..d60ea45b76 100644
--- a/plugins/ImageGraph/lang/ja.json
+++ b/plugins/ImageGraph/lang/ja.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "列 '%s' は、このレポートで見つかりませんでした。%s のいずれかをお試しください。",
+ "ColumnOrdinateMissing": "列 '%1$s' は、このレポートで見つかりませんでした。%2$s のいずれかをお試しください。",
"PluginDescription": "データ報告のいずれかのための美しい静的なPNGグラフの画像を生成します。"
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/nb.json b/plugins/ImageGraph/lang/nb.json
index eb83d1fc9e..6d7378f3ee 100644
--- a/plugins/ImageGraph/lang/nb.json
+++ b/plugins/ImageGraph/lang/nb.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Kolonnen «%s» ble ikke funnet i denne rapporten. Prøv %s",
+ "ColumnOrdinateMissing": "Kolonnen «%1$s» ble ikke funnet i denne rapporten. Prøv %2$s",
"PluginDescription": "Generer statiske PNG-grafebilder for alle dine datarapporter."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/nl.json b/plugins/ImageGraph/lang/nl.json
index 81a0c53eeb..cc43b5e2f5 100644
--- a/plugins/ImageGraph/lang/nl.json
+++ b/plugins/ImageGraph/lang/nl.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "De kolom '%s' is niet gevonden in dit rapport. Probeer één van %s",
+ "ColumnOrdinateMissing": "De kolom '%1$s' is niet gevonden in dit rapport. Probeer één van %2$s",
"PluginDescription": "Genereer mooie statische PNG Grafiek afbeeldingen voor elk van uw data rapporten."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/pt-br.json b/plugins/ImageGraph/lang/pt-br.json
index 1fba545128..58bb5d4062 100644
--- a/plugins/ImageGraph/lang/pt-br.json
+++ b/plugins/ImageGraph/lang/pt-br.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "A coluna '%s' não foi encontrada neste relatório. Tente qualquer %s",
+ "ColumnOrdinateMissing": "A coluna '%1$s' não foi encontrada neste relatório. Tente qualquer %2$s",
"PluginDescription": "Gera belas imagens estáticas PNG Grapf para os seus relatórios de dados."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/ro.json b/plugins/ImageGraph/lang/ro.json
index cc07edab2f..4824b8e948 100644
--- a/plugins/ImageGraph/lang/ro.json
+++ b/plugins/ImageGraph/lang/ro.json
@@ -1,5 +1,5 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Coloana '%s' nu a fost gasita in acest raport. Incearca oricare dintre %s"
+ "ColumnOrdinateMissing": "Coloana '%1$s' nu a fost gasita in acest raport. Incearca oricare dintre %2$s"
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/ru.json b/plugins/ImageGraph/lang/ru.json
index c82145f94b..6e8e646994 100644
--- a/plugins/ImageGraph/lang/ru.json
+++ b/plugins/ImageGraph/lang/ru.json
@@ -1,5 +1,5 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Колонка ’%s’ не была найдена в этом отчете. Попробуйте что-нибудь из %s"
+ "ColumnOrdinateMissing": "Колонка ’%1$s’ не была найдена в этом отчете. Попробуйте что-нибудь из %2$s"
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/sr.json b/plugins/ImageGraph/lang/sr.json
index 6a2782bc3f..3a25b0df4b 100644
--- a/plugins/ImageGraph/lang/sr.json
+++ b/plugins/ImageGraph/lang/sr.json
@@ -1,6 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Kolona '%s' nije nađena u ovom izveštaju. Pokušajte bilo koju od %s",
+ "ColumnOrdinateMissing": "Kolona '%1$s' nije nađena u ovom izveštaju. Pokušajte bilo koju od %2$s",
"PluginDescription": "Kreirajte predivne statične PNG grafikone za bilo koji od vaših izveštaja."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/sv.json b/plugins/ImageGraph/lang/sv.json
index 40983a891d..2ee4983a51 100644
--- a/plugins/ImageGraph/lang/sv.json
+++ b/plugins/ImageGraph/lang/sv.json
@@ -1,5 +1,6 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Kolumn '%s' var inte hittad i den här rapporten. Pröva någon av %s"
+ "ColumnOrdinateMissing": "Kolumn '%1$s' var inte hittad i den här rapporten. Pröva någon av %2$s",
+ "PluginDescription": "Generera fina statiska PNG-grafer för dina data rapporter."
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/vi.json b/plugins/ImageGraph/lang/vi.json
index 540c0a2093..ae48c4c742 100644
--- a/plugins/ImageGraph/lang/vi.json
+++ b/plugins/ImageGraph/lang/vi.json
@@ -1,5 +1,5 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "Cột này '%s' không thấy trong báo cáo này. Thử bất kỳ của %s"
+ "ColumnOrdinateMissing": "Cột này '%1$s' không thấy trong báo cáo này. Thử bất kỳ của %2$s"
}
} \ No newline at end of file
diff --git a/plugins/ImageGraph/lang/zh-cn.json b/plugins/ImageGraph/lang/zh-cn.json
index ea37a3b85c..c339cfb3a9 100644
--- a/plugins/ImageGraph/lang/zh-cn.json
+++ b/plugins/ImageGraph/lang/zh-cn.json
@@ -1,5 +1,5 @@
{
"ImageGraph": {
- "ColumnOrdinateMissing": "报表中没有 '%s' 栏,请试试 %s"
+ "ColumnOrdinateMissing": "报表中没有 '%1$s' 栏,请试试 %2$s"
}
} \ No newline at end of file
diff --git a/plugins/Installation/FormSuperUser.php b/plugins/Installation/FormSuperUser.php
index b8c0565299..c4b1d0944d 100644
--- a/plugins/Installation/FormSuperUser.php
+++ b/plugins/Installation/FormSuperUser.php
@@ -11,6 +11,7 @@ namespace Piwik\Plugins\Installation;
use HTML_QuickForm2_DataSource_Array;
use HTML_QuickForm2_Factory;
use HTML_QuickForm2_Rule;
+use Piwik\Container\StaticContainer;
use Piwik\Piwik;
use Piwik\Plugins\UsersManager\UsersManager;
use Piwik\QuickForm2;
@@ -58,11 +59,22 @@ class FormSuperUser extends QuickForm2
'content' => '&nbsp;&nbsp;' . Piwik::translate('Installation_PiwikOrgNewsletter'),
));
+ $piwikProNewsletter = Piwik::translate('Installation_PiwikProNewsletter',
+ array("<a href='http://piwik.pro?pk_medium=App_Newsletter_link&pk_source=Piwik_App&pk_campaign=App_Installation' style='color:#444;' rel='noreferrer' target='_blank'>", "</a>")
+ );
+
+ $currentLanguage = StaticContainer::get('Piwik\Translation\Translator')->getCurrentLanguage();
+
+ if ($currentLanguage == 'de') {
+ $piwikProNewsletter = Piwik::translate('Installation_PiwikProNewsletter',
+ array("<a href='http://piwikpro.de?pk_medium=App_Newsletter_link&pk_source=Piwik_App&pk_campaign=App_Installation' style='color:#444;' rel='noreferrer' target='_blank'>", "</a>")
+ );
+ $piwikProNewsletter = preg_replace('(Piwik PRO(?! GmbH))', 'Piwik PRO GmbH', $piwikProNewsletter);
+ }
+
$this->addElement('checkbox', 'subscribe_newsletter_piwikpro', null,
array(
- 'content' => '&nbsp;&nbsp;' . Piwik::translate('Installation_PiwikProNewsletter',
- array("<a href='http://piwik.pro?pk_medium=App_Newsletter_link&pk_source=Piwik_App&pk_campaign=App_Installation' style='color:#444;' rel='noreferrer' target='_blank'>", "</a>")
- ),
+ 'content' => '&nbsp;&nbsp;' . $piwikProNewsletter,
));
$this->addElement('submit', 'submit', array('value' => Piwik::translate('General_Next') . ' »', 'class' => 'btn btn-lg'));
@@ -70,7 +82,7 @@ class FormSuperUser extends QuickForm2
// default values
$this->addDataSource(new HTML_QuickForm2_DataSource_Array(array(
'subscribe_newsletter_piwikorg' => 1,
- 'subscribe_newsletter_piwikpro' => 1,
+ 'subscribe_newsletter_piwikpro' => $currentLanguage == 'de' ? 0 : 1,
)));
}
}
diff --git a/plugins/Installation/lang/ar.json b/plugins/Installation/lang/ar.json
index 9e8226ad1e..301db9879a 100644
--- a/plugins/Installation/lang/ar.json
+++ b/plugins/Installation/lang/ar.json
@@ -5,7 +5,7 @@
"ConfirmDeleteExistingTables": "هل ترغب حقاً في حذف الجداول: %s من قاعدة بياناتك؟ تنبيه: لن يمكن إستعادة البيانات من هذه الجداول!",
"Congratulations": "مبروك",
"CongratulationsHelp": "<p>مبروك! تم تثبيت Piwik بنجاح.<\/p><p>تأكد من إضافة كود JavaScript لكافة الصفحات التي تود تتبعها، ثم انتظر أول زوارك!<\/p>",
- "DatabaseAbilities": "إمكانيات قاعدة البيانات",
+ "DatabaseAbilities": "إمكانات قاعدة البيانات",
"DatabaseCreation": "إنشاء قاعدة البيانات",
"DatabaseErrorConnect": "خطأ أثناء الاتصال بملقم قاعدة البيانات",
"DatabaseServerVersion": "إصدار ملقم قاعدة البيانات",
@@ -32,6 +32,7 @@
"LargePiwikInstances": "المساعدة في مواقع Piwik العملاقة",
"Legend": "دليل",
"LoadDataInfileRecommended": "إذا كان خادم Piwik الخاص بك يتتبع مواقع وب كثيفة الحركة ( > 100,000 صفحة في الشهر مثلاً ) نقترح أن تحاول حل هذه المشكلة.",
+ "LoadDataInfileUnavailableHelp": "استخدام %1$s سيسرّع كثيراً عملية أرشفة بيويك. لهذا الغرض ، حاول تحديث حزم PHP و MySQL لديك وتأكد من أن مستخدم قاعدة البيانات لديه صلاحية %2$s .",
"NfsFilesystemWarning": "الخادم لديك يستخدم نظام ملفات NFS .",
"NfsFilesystemWarningSuffixAdmin": "هذا يعني أن Piwik سيكون بطيئاً جداً عند استخدام جلسات قائمة على الملفات.",
"NfsFilesystemWarningSuffixInstall": "استخدام الجلسات القائمة على الملفات في بيئة NFS شيئ بطيئ جداً ، ولهذا سيستخدم Piwik جلسات قواعد البيانات. قد تحتاج زيادة العدد الأقصى لاتصالات المستفيدين بخادم قاعدة البيانات إذا كان لديك العديد من مستخدمي لوحات المعلومات المتزامنين.",
@@ -41,6 +42,8 @@
"PasswordDoNotMatch": "كلمة المرور غير متطابقة",
"PasswordRepeat": "كلمة المرور(كرّرها)",
"PercentDone": "تم تنفيذ %s %%",
+ "PiwikProAdTitle": "تحليلات وخدمات متقدمة",
+ "PiwikProAdText": "أضف أعلى الإمكانات وأطلق عنان %1$sPiwik PRO On-Premises%2$s أو احصل على بيويك خاص بك دون عناء باستضافة سحابية على %3$sPiwik PRO Cloud%4$s .",
"PleaseFixTheFollowingErrors": "الرجاء إصلاح الأخطاء التالية",
"DefaultSettings": "إعدادات Piwik الافتراضية",
"DefaultSettingsHelp": "يأتي Piwik بإعدادات افتراضية. يمكنك تخصيصها الآن أو فعل ذلك لاحقاً في شاشة الإدارة.",
@@ -48,7 +51,7 @@
"RestartWebServer": "أعد تشغيل خادم الويب لديك بعد القيام بهذا التغيير.",
"ReusingTables": "إعادة استخدام الجداول",
"PiwikOrgNewsletter": "أرسل لي بريداً بآخر تحديثات مجتمع Piwik",
- "PiwikProNewsletter": "أرسل لي معلومات عن خدمات وعروض %sPiwik PRO%s",
+ "PiwikProNewsletter": "أرسل لي معلومات عن خدمات وعروض %1$sPiwik PRO%2$s",
"SeeBelowForMoreInfo": "أنظر أدناه لمزيد من المعلومات.",
"SetupWebsite": "إعداد موقع ويب",
"SetupWebsiteError": "حدث خطأ ما أثناء إضافة الموقع",
@@ -72,6 +75,7 @@
"SystemCheckExtensions": "الإضافات الأخرى المطلوبة",
"SystemCheckFileIntegrity": "سلامة الملفات",
"SystemCheckFunctions": "الدوال المطلوبة",
+ "SystemCheckFunctionHelp": "تحتاج لتفعيل هذه الوظيفة المضمّنة.",
"SystemCheckGDFreeType": "GD > 2.x + Freetype (رسوم)",
"SystemCheckGDHelp": "لن تعمل خاصية sparklines (الرسومات المصغرة).",
"SystemCheckGlobHelp": "تم تعطيل هذه الدالة المبنية ضمنياً، وسيحاول Piwik تقليدها ولكنه قد يواجه اعتبارات أمنية أخرى. قد يتأثر عدد من الوظائف أيضاً.",
diff --git a/plugins/Installation/lang/cs.json b/plugins/Installation/lang/cs.json
index 8e32ed6f4a..cdb5822ef5 100644
--- a/plugins/Installation/lang/cs.json
+++ b/plugins/Installation/lang/cs.json
@@ -15,7 +15,7 @@
"DatabaseSetupLogin": "uživatelské jméno",
"DatabaseSetupServer": "server s databází",
"DatabaseSetupTablePrefix": "prefix tabulek",
- "Email": "Email",
+ "Email": "E-mail",
"Extension": "přípona",
"Filesystem": "Souborový systém",
"GetInvolved": "Pokud se vám líbí, co vidíte, %1$szapojte se%2$s.",
@@ -42,14 +42,15 @@
"PasswordDoNotMatch": "hesla si neodpovídají",
"PasswordRepeat": "Heslo (zopakujte)",
"PercentDone": "%s %% hotovo",
+ "PiwikProAdTitle": "Pokročilé analýzy a služby",
"PleaseFixTheFollowingErrors": "Prosím opravte následující chyby",
"DefaultSettings": "Výchozí nastavení Piwiku",
"DefaultSettingsHelp": "Piwik má výchozí nastavení. Můžete je změnit teď, nebo později z administračního rozhraní.",
"Requirements": "Požadavky Piwiku",
"RestartWebServer": "Po uložení změn restartujte Vás web server.",
"ReusingTables": "Použití existujících tabulek",
- "PiwikOrgNewsletter": "odesílat emaily s důležitými událostmi v komunitě Piwiku",
- "PiwikProNewsletter": "Zasílejte mi informace o službách a nabídkách %sPiwik pro%s",
+ "PiwikOrgNewsletter": "odesílat e-maily s důležitými událostmi v komunitě Piwiku",
+ "PiwikProNewsletter": "Zasílejte mi informace o službách a nabídkách %1$sPiwik pro%2$s",
"SeeBelowForMoreInfo": "Pro více informací se podívejte níže.",
"SetupWebsite": "Nastavit Web",
"SetupWebsiteError": "Při přidávání Webu se vyskytla chyba",
@@ -58,10 +59,10 @@
"SetupWebSiteURL": "URL webových stránek",
"SiteSetup": "Prosím vytvořte první stránky, které budou sledovány a analyzovány Piwikem:",
"SiteSetupFootnote": "Poznámka: Jakmile bude instalace Piwiku dokončena, budete moci přidat další stránky ke sledování.",
- "SuperUser": "Super uživatel",
- "SuperUserLogin": "Přihlašovací jméno super uživatele",
- "SuperUserSetupError": "Při přidávání super uživatele došlo k chybě",
- "SuperUserSetupSuccess": "Super uživatel úspěšně vytvořen",
+ "SuperUser": "Super-uživatel",
+ "SuperUserLogin": "Přihlašovací jméno super-uživatele",
+ "SuperUserSetupError": "Při přidávání super-uživatele došlo k chybě",
+ "SuperUserSetupSuccess": "Super-uživatel úspěšně vytvořen",
"SystemCheck": "Kontrola systému",
"SystemCheckAutoUpdateHelp": "Poznámla: Aktualizace pomocí jednoho kliknutí vyžaduje práva pro zápis do adresářů Piwiku a jejich obsahu",
"SystemCheckCreateFunctionHelp": "Piwik pro zpětná volání využívá anonymní funkce",
diff --git a/plugins/Installation/lang/da.json b/plugins/Installation/lang/da.json
index 57d8f0e220..a06a4585c8 100644
--- a/plugins/Installation/lang/da.json
+++ b/plugins/Installation/lang/da.json
@@ -45,7 +45,7 @@
"RestartWebServer": "Efter ændringen er have foretaget - genstart webserveren.",
"ReusingTables": "Genbrug tabellerne",
"PiwikOrgNewsletter": "e-mail mig de vigtigste Piwik community opdateringer",
- "PiwikProNewsletter": "send mig information om %sPiwik PRO%s tjenester og tilbud",
+ "PiwikProNewsletter": "send mig information om %1$sPiwik PRO%2$s tjenester og tilbud",
"SeeBelowForMoreInfo": "Se nedenfor for mere information.",
"SetupWebsite": "Tilføj en hjemmeside",
"SetupWebsiteError": "Fejl ved tilføjelse af hjemmeside",
diff --git a/plugins/Installation/lang/de.json b/plugins/Installation/lang/de.json
index 22aef987eb..d46012b93e 100644
--- a/plugins/Installation/lang/de.json
+++ b/plugins/Installation/lang/de.json
@@ -49,7 +49,7 @@
"RestartWebServer": "Nach dieser Änderung müssen Sie den Webserver neu starten.",
"ReusingTables": "Tabellen werden wiederverwendet",
"PiwikOrgNewsletter": "Wichtige Piwik Community Updates per Mail zukommen lassen",
- "PiwikProNewsletter": "Lassen Sie mir Informationen über Dienstleistungen und Angebote von %sPiwik PRO GmbH%s zukommen.",
+ "PiwikProNewsletter": "Lassen Sie mir Informationen über %1$sPiwik PRO%2$s Dienstleistungen und Angebote zukommen.",
"SeeBelowForMoreInfo": "Unterhalb können Sie weitere Informationen finden.",
"SetupWebsite": "Website hinzufügen",
"SetupWebsiteError": "Beim Hinzufügen der Website ist ein Fehler aufgetreten",
diff --git a/plugins/Installation/lang/el.json b/plugins/Installation/lang/el.json
index ed9584ded6..a2c6a6e5c5 100644
--- a/plugins/Installation/lang/el.json
+++ b/plugins/Installation/lang/el.json
@@ -42,6 +42,8 @@
"PasswordDoNotMatch": "ο κωδικός δεν ταιριάζει",
"PasswordRepeat": "Συνθηματικό (επιβεβαίωση)",
"PercentDone": "%s %% Ολοκληρώθηκε",
+ "PiwikProAdTitle": "Αναλυτικά & Υπηρεσίες για Προχωρημένους",
+ "PiwikProAdText": "Προσθέστε επιπλέον λειτουργικότητα και ξεκλειδώστε την πλήρη δύναμη με το %1$sPiwik PRO On-Premises%2$s, ή αποκτήστε το δικό σας Piwik φιλοξενούμενο σε εξωτερική υποδομή με το %3$sPiwik PRO Cloud%4$s.",
"PleaseFixTheFollowingErrors": "Διορθώστε τα ακόλουθα σφάλματα",
"DefaultSettings": "Προκαθορισμένες ρυθμίσεις του Piwik",
"DefaultSettingsHelp": "Το Piwik έρχεται με προκαθορισμένες ρυθμίσεις. Μπορείτε να τις αλλάξετε τώρα ή αργότερα στην οθόνη διαχείρισης.",
@@ -49,7 +51,7 @@
"RestartWebServer": "Μετά από αυτή την αλλαγή, επανεκκινήστε τον διακομιστή σας.",
"ReusingTables": "Γίνεται χρήση των Πινάκων",
"PiwikOrgNewsletter": "στείλε μου e-mail για μεγάλες ενημερώσεις της κοινοτικής έκδοσης του Piwik",
- "PiwikProNewsletter": "στείλε μου πληροφορίες σχετικά με τις υπηρεσίες του %sPiwik PRO%s και τις προσφορές του",
+ "PiwikProNewsletter": "στείλε μου πληροφορίες σχετικά με τις υπηρεσίες του %1$sPiwik PRO%2$s και τις προσφορές του",
"SeeBelowForMoreInfo": "Δείτε παρακάτω για περισσότερες πληροφορίες.",
"SetupWebsite": "Ρύθμιση μιας ιστοσελίδας",
"SetupWebsiteError": "Συνέβη ένα σφάλμα κατά της προσθήκη της ιστοσελίδας",
@@ -100,7 +102,7 @@
"SystemCheckSplHelp": "Πρέπει να ρυθμίσετε και ξαναεγκαταστήσετε την PHP με τη Βασική Βιβλιοθήκη PHP (SPL) ενεργοποιήμένη (ως προεπιλογή).",
"SystemCheckSettings": "Απαιτούμενη παραμετροποίηση PHP (php.ini)",
"SystemCheckSummaryNoProblems": "Δεν υπάρχουν προβλήματα με την εγκατάσταση του Piwik. Όλα καλά!",
- "SystemCheckSummaryThereWereErrors": "Ώωχ, το Piwik εντόπισε %1$sκρίσιμα θέματα%2$s με την εγκατάσταση του Piwik. %3$sΑυτά τα θέματα πρέπει να διορθωθούν άμεσα.%4$s",
+ "SystemCheckSummaryThereWereErrors": "Ώχ, το Piwik εντόπισε %1$sκρίσιμα θέματα%2$s με την εγκατάσταση του Piwik. %3$sΑυτά τα θέματα πρέπει να διορθωθούν άμεσα.%4$s",
"SystemCheckSummaryThereWereWarnings": "Υπάρχουν ορισμένα ζητήματα με το σύστημά σας. Το Piwik θα τρέξει, αλλά μπορεί να αντιμετωπίσετε κάποια μικροπροβλήματα.",
"SystemCheckTimeLimitHelp": "Σε ιστοσελίδες με μεγάλη επισκεψιμότητα, όταν διενεργείται η αποθήκευση ασφαλείας μπορεί να δαπανήθει περισσότερος χρόνος από ότι είναι προς το παρόν επιτρεπτό.<br \/>Δείτε την οδηγία max_execution_time στο αρχείο php.ini αν είναι απαραίτητο",
"SystemCheckTracker": "Κατάσταση Ανιχνευτή",
diff --git a/plugins/Installation/lang/en.json b/plugins/Installation/lang/en.json
index 049d191fb4..0296e5f108 100644
--- a/plugins/Installation/lang/en.json
+++ b/plugins/Installation/lang/en.json
@@ -36,12 +36,14 @@
"NfsFilesystemWarning": "Your server is using an NFS filesystem.",
"NfsFilesystemWarningSuffixAdmin": "This means Piwik will be extremely slow when using file based sessions.",
"NfsFilesystemWarningSuffixInstall": "Using file based sessions on NFS is extremely slow, so Piwik will use database sessions. If you have many concurrent dashboard users, you may need to increase the maximum number of client connections to the database server.",
- "NoConfigFound": "The Piwik configuration file couldn't be found and you are trying to access a Piwik page.<br \/><b>\u00a0\u00a0\u00bb You can <a href='index.php'>install Piwik now<\/a><\/b><br \/><small>If you installed Piwik before and have some tables in your DB, don't worry, you can reuse the same tables and keep your existing data!<\/small>",
+ "NoConfigFound": "The Piwik configuration file couldn't be found and you are trying to access a Piwik page.<br \/><b>  » You can <a href='index.php'>install Piwik now<\/a><\/b><br \/><small>If you installed Piwik before and have some tables in your DB, don't worry, you can reuse the same tables and keep your existing data!<\/small>",
"Optional": "Optional",
"Password": "Password",
"PasswordDoNotMatch": "password do not match",
"PasswordRepeat": "Password (repeat)",
"PercentDone": "%s %% Done",
+ "PiwikProAdTitle": "Advanced Analytics & Services",
+ "PiwikProAdText": "Add premium functionality and unlock the full power with %1$sPiwik PRO On-Premises%2$s, or get your own hassle-free Piwik hosted in the %3$sPiwik PRO Cloud%4$s.",
"PleaseFixTheFollowingErrors": "Please fix the following errors",
"DefaultSettings": "Default Piwik settings",
"DefaultSettingsHelp": "Piwik comes with default settings. You can customize them now or do so later in the admin screen.",
@@ -49,7 +51,7 @@
"RestartWebServer": "After making this change, restart your web server.",
"ReusingTables": "Reusing the Tables",
"PiwikOrgNewsletter": "email me with major Piwik community updates",
- "PiwikProNewsletter": "send me information on %sPiwik PRO%s services and offers",
+ "PiwikProNewsletter": "send me information on %1$sPiwik PRO%2$s services and offers",
"SeeBelowForMoreInfo": "See below for more information.",
"SetupWebsite": "Setup a Website",
"SetupWebsiteError": "There was an error when adding the website",
@@ -118,7 +120,7 @@
"SystemCheckCronArchiveProcessCLI": "Managing processes via CLI",
"SystemCheckPhpSetting": "To prevent some critical issue, you must set the following in your php.ini file: %s",
"SystemCheckUpdateHttps": "Update over HTTPS",
- "SystemCheckUpdateHttpsNotSupported": "Piwik cannot use HTTPS to update, it will fall back to the insecure HTTP update. Check that CURL or allow_url_fopen is supported and that the openssl PHP extension is installed: http://piwik.org/faq/troubleshooting/faq_177/.",
+ "SystemCheckUpdateHttpsNotSupported": "Piwik cannot use HTTPS to update, it will fall back to the insecure HTTP update. Check that CURL or allow_url_fopen is supported and that the openssl PHP extension is installed: http:\/\/piwik.org\/faq\/troubleshooting\/faq_177\/.",
"NotSupported": "not supported",
"Tables": "Creating the Tables",
"TablesCreatedSuccess": "Tables created with success!",
@@ -137,4 +139,4 @@
"CannotConnectToDb": "Cannot connect to the database",
"CannotConnectToDbResolvingExplanation": "This may be a temporary issue, try %1$srefreshing the page%2$s. If the problem persists please contact your Piwik administrator."
}
-}
+} \ No newline at end of file
diff --git a/plugins/Installation/lang/es.json b/plugins/Installation/lang/es.json
index 3b4c1a7dfb..58ad29cbea 100644
--- a/plugins/Installation/lang/es.json
+++ b/plugins/Installation/lang/es.json
@@ -49,7 +49,7 @@
"RestartWebServer": "Luego de realizar este cambio, reinicie su servidor de internet.",
"ReusingTables": "Reutilizando las Tablas",
"PiwikOrgNewsletter": "Enviarme un correo electrónico con las principales actualizaciones de la comunidad Piwik",
- "PiwikProNewsletter": "enviarme información sobre los servicios y ofertas de %sPiwik PRO%s",
+ "PiwikProNewsletter": "enviarme información sobre los servicios y ofertas de %1$sPiwik PRO%2$s",
"SeeBelowForMoreInfo": "Véase más adelante para mayor información.",
"SetupWebsite": "Configurar un sitio de internet",
"SetupWebsiteError": "Se ha producido un error al añadir el sitio de internet",
diff --git a/plugins/Installation/lang/fr.json b/plugins/Installation/lang/fr.json
index d20170b82a..24a88721f4 100644
--- a/plugins/Installation/lang/fr.json
+++ b/plugins/Installation/lang/fr.json
@@ -42,6 +42,7 @@
"PasswordDoNotMatch": "Le mot de passe ne concorde pas",
"PasswordRepeat": "Mot de passe (répétez)",
"PercentDone": "%s %% complété",
+ "PiwikProAdTitle": "Services et statistiques avancés",
"PleaseFixTheFollowingErrors": "Merci de corriger les erreurs suivantes",
"DefaultSettings": "Paramétrage par défaut",
"DefaultSettingsHelp": "Piwik est installé avec un paramétrage par défaut. Vous pouvez personnaliser ces réglages maintenant ou le faire plus tard dans l'espace d'administration.",
@@ -49,6 +50,7 @@
"RestartWebServer": "Après avoir effectué ces modifications, redémarrez votre serveur web.",
"ReusingTables": "Réutilisation des Tables",
"PiwikOrgNewsletter": "Envoyez moi des courriels pour les mises à jour importantes de Piwik",
+ "PiwikProNewsletter": "envoyez-moi des informations à propos des services et offres de %1$sPiwik PRO%2$s",
"SeeBelowForMoreInfo": "Voir ci-dessous pour plus d'informations.",
"SetupWebsite": "Paramétrer un site",
"SetupWebsiteError": "Une erreur a été rencontrée pendant l'ajout du site",
diff --git a/plugins/Installation/lang/it.json b/plugins/Installation/lang/it.json
index 8fa8415c4f..b400e2b531 100644
--- a/plugins/Installation/lang/it.json
+++ b/plugins/Installation/lang/it.json
@@ -41,6 +41,8 @@
"PasswordDoNotMatch": "Le Password non coincidono",
"PasswordRepeat": "Password (ripeti)",
"PercentDone": "%s %% Fatto",
+ "PiwikProAdTitle": "Statistiche & Servizi avanzati",
+ "PiwikProAdText": "Aggiungi le funzionalità premium e sblocca l'intera potenza con %1$sPiwik PRO On-Premises%2$s o prendi Piwik senza fastidi ospitato nel %3$sClousd Piwik PRO%4$s.",
"PleaseFixTheFollowingErrors": "Per favore, risolvi i seguenti errori",
"DefaultSettings": "Impostazioni predefinite di Piwik",
"DefaultSettingsHelp": "Piwik ha delle impostazioni predefinite. Puoi personalizzarle ora o farlo in seguito dalla schermata di amministrazione.",
@@ -48,7 +50,7 @@
"RestartWebServer": "Dopo aver fatto questa modifica, riavvia il server web.",
"ReusingTables": "Riutilizzo delle Tabelle",
"PiwikOrgNewsletter": "Inviami per email gli aggiornamenti importanti della comunità di Piwik",
- "PiwikProNewsletter": "inviami informazioni su servizi e offerte di %sPiwik PRO%s",
+ "PiwikProNewsletter": "inviami informazioni su servizi e offerte di %1$sPiwik PRO%2$s",
"SeeBelowForMoreInfo": "Guarda sotto per altre informazioni.",
"SetupWebsite": "Configura un sito web",
"SetupWebsiteError": "C'è stato un errore durante l'aggiunta del sito web",
diff --git a/plugins/Installation/lang/ja.json b/plugins/Installation/lang/ja.json
index a2bfe0e5b4..3e65be17e8 100644
--- a/plugins/Installation/lang/ja.json
+++ b/plugins/Installation/lang/ja.json
@@ -49,7 +49,7 @@
"RestartWebServer": "この変更を行った後、ウェブサーバーを再起動してください。",
"ReusingTables": "表の再利用",
"PiwikOrgNewsletter": "私に Piwik コミュニティの最新情報をメールで送る",
- "PiwikProNewsletter": "%s Piwik PRO %s のサービスや最新情報を送ってください",
+ "PiwikProNewsletter": "%1$s Piwik PRO %2$s のサービスや最新情報を送ってください",
"SeeBelowForMoreInfo": "詳細は、以下をご確認ください。",
"SetupWebsite": "ウェブサイトのセットアップ",
"SetupWebsiteError": "ウェブサイトを追加する際にエラーが発生しました",
diff --git a/plugins/Installation/lang/ko.json b/plugins/Installation/lang/ko.json
index 3fa7374b09..bde1148c02 100644
--- a/plugins/Installation/lang/ko.json
+++ b/plugins/Installation/lang/ko.json
@@ -49,7 +49,7 @@
"RestartWebServer": "변경한 후 웹서버를 다시 시작하세요.",
"ReusingTables": "테이블",
"PiwikOrgNewsletter": "주요 Piwik 커뮤니티의 업데이트 이메일 구독",
- "PiwikProNewsletter": "%sPiwik PRO%s 서비스 및 신청과 관련한 정보 받기",
+ "PiwikProNewsletter": "%1$sPiwik PRO%2$s 서비스 및 신청과 관련한 정보 받기",
"SeeBelowForMoreInfo": "자세한 내용은 아래를 참조하세요.",
"SetupWebsite": "웹사이트 설정",
"SetupWebsiteError": "웹사이트 추가중에 에러가 있었습니다",
diff --git a/plugins/Installation/lang/lt.json b/plugins/Installation/lang/lt.json
index 43bb4d653c..61eb05852c 100644
--- a/plugins/Installation/lang/lt.json
+++ b/plugins/Installation/lang/lt.json
@@ -34,6 +34,7 @@
"DefaultSettings": "Numatytieji Piwik nustatymai",
"Requirements": "Piwik reikalavimai sistemai",
"RestartWebServer": "Įvykdę šį pakeitimą, iš naujo paleiskite savo saityno serverį.",
+ "SeeBelowForMoreInfo": "Išsamesnę informaciją žiūrėkite žemiau.",
"SetupWebsite": "Svetainės nustatymai",
"SetupWebsiteError": "Rasta klaidų pridedant svetainę",
"SetupWebSiteName": "Svetainės pavadinimas",
diff --git a/plugins/Installation/lang/nb.json b/plugins/Installation/lang/nb.json
index 3def7c1d73..8a1eea35c6 100644
--- a/plugins/Installation/lang/nb.json
+++ b/plugins/Installation/lang/nb.json
@@ -42,6 +42,8 @@
"PasswordDoNotMatch": "passordene stemmer ikke overens",
"PasswordRepeat": "Passord (gjenta)",
"PercentDone": "%s %% ferdig",
+ "PiwikProAdTitle": "Avansert analyse og tjenester",
+ "PiwikProAdText": "Legg til premium-funksjonalitet og lås opp høyeste gir med %1$sPiwik PRO On-Premises%2$s, eller få din egen Piwik drevet i %3$sPiwik PRO Cloud%4$s.",
"PleaseFixTheFollowingErrors": "Fiks følgende feil",
"DefaultSettings": "Standard Piwik-innstillinger",
"DefaultSettingsHelp": "Piwik kommer med standardinnstillinger. Du kan tilpasse dem nå eller gjøre det senere i administrasjonsskjermen.",
@@ -49,7 +51,7 @@
"RestartWebServer": "Etter å ha gjort denne endringen må du restarte webserveren.",
"ReusingTables": "Gjenbruker tabellene",
"PiwikOrgNewsletter": "Send meg e-poster med viktige oppdateringer om Piwik",
- "PiwikProNewsletter": "send meg informasjon om %sPiwik PRO%s tjenester og tilbud",
+ "PiwikProNewsletter": "send meg informasjon om %1$sPiwik PRO%2$s tjenester og tilbud",
"SeeBelowForMoreInfo": "Se nedenfor for mer informasjon.",
"SetupWebsite": "Legg til et nettsted",
"SetupWebsiteError": "Det skjedde en feil da nettstedet ble lagt til.",
diff --git a/plugins/Installation/lang/nl.json b/plugins/Installation/lang/nl.json
index a95963ef6a..07d4629d14 100644
--- a/plugins/Installation/lang/nl.json
+++ b/plugins/Installation/lang/nl.json
@@ -49,7 +49,7 @@
"RestartWebServer": "Herstart uw webserver na deze aanpassing.",
"ReusingTables": "Hergebruik de tabellen",
"PiwikOrgNewsletter": "email mij bij grote Piwik gemeenschap updates",
- "PiwikProNewsletter": "Stuur mij informatie over %sPiwik PRO%s diensten en aanbiedingen",
+ "PiwikProNewsletter": "Stuur mij informatie over %1$sPiwik PRO%2$s diensten en aanbiedingen",
"SeeBelowForMoreInfo": "Zie hieronder voor meer informatie.",
"SetupWebsite": "Configureer een website",
"SetupWebsiteError": "Er heeft zich een fout voorgedaan tijdens het toevoegen van de website",
diff --git a/plugins/Installation/lang/pl.json b/plugins/Installation/lang/pl.json
index 58a4eb5239..8bcc0d9c8d 100644
--- a/plugins/Installation/lang/pl.json
+++ b/plugins/Installation/lang/pl.json
@@ -11,21 +11,24 @@
"DatabaseSetup": "Konfiguracja bazy danych",
"DatabaseSetupAdapter": "adapter",
"DatabaseSetupDatabaseName": "nazwa bazy",
- "DatabaseSetupLogin": "login",
+ "DatabaseSetupLogin": "Login",
"DatabaseSetupServer": "Serwer bazy danych",
"DatabaseSetupTablePrefix": "prefix tabel",
- "Extension": "rozszerzenia",
+ "Email": "Email",
+ "Extension": "rozszerzenie",
"Filesystem": "System plików",
"GoBackAndDefinePrefix": "Cofnij się i zdefiniuj obowiązujący Prefix dla tabel",
"HappyAnalysing": "Powodzenia!",
"Installation": "Instalacja",
- "InstallationStatus": "Status postępu instalacji",
+ "InstallationStatus": "Postęp instalacji",
"LargePiwikInstances": "Pomoc w przypadku dużych instalacji z Piwik",
"Legend": "Legenda",
"NfsFilesystemWarning": "Twój system używa systemu plików NFS",
"NoConfigFound": "Plik konfiguracyjny Piwik nie został odnaleziony, a ty próbujesz uzyskać dostęp do strony Piwik.<br \/><b>  » Możesz <a href='index.php'>zainstalować statystyki Piwik teraz<\/a><\/b><br \/><small>Jeżeli zainstalowałeś Piwik poprzednio i masz swoje tabele w bazie danych, nie przejmuj się, możesz uzyć tych samych tabel i zachować istniejące w nich dane!<\/small>",
"Optional": "Opcionalnie",
+ "Password": "Hasło",
"PasswordDoNotMatch": "hasło jest nieprawidłowe",
+ "PasswordRepeat": "Hasło (powtórzone)",
"PercentDone": "%s %% wykonano",
"PleaseFixTheFollowingErrors": "Prosimy naprawić następujące błędy",
"Requirements": "Wymagania systemu Piwik",
@@ -39,7 +42,7 @@
"SiteSetup": "Proszę utworzyć pierwszą stronę, która miała by być anmalizowana prze Piwik'a:",
"SiteSetupFootnote": "UWAGA: Nowe strony do śledzenia będzie mozna dodawać dopiero po zakończeniu instalacji Piwik'a",
"SuperUser": "Super Użytkownik",
- "SuperUserSetupError": "Wystąpił błąd podczas dodawania Super User",
+ "SuperUserSetupError": "Wystąpił błąd podczas dodawania Super Użytkownika",
"SuperUserSetupSuccess": "Konto Super Użytkownika utworzono pomyślnie!",
"SystemCheck": "Sprawdzenie systemu",
"SystemCheckAutoUpdateHelp": "Uwaga: automatyczna aktualizacja statystyk Piwik wymaga praw do zapisu w folderze Piwik i w jego podkatalogach.",
@@ -78,7 +81,7 @@
"SystemCheckTracker": "Status śledzenia",
"SystemCheckWarnDomHelp": "Rozszerzenie \"dom\" winno być włączone (np., instalując pakiety \"php-dom\" i\/lub pakiet \"php-xml\").",
"SystemCheckWarning": "Piwik będzie działać normalnie, ale pewnie funkcje mogą być nieosiągalne",
- "SystemCheckWarnJsonHelp": "Rozszerzenie \"json\" winno byc włączone (np., instalując pakiet \"php-json\") dla uzyskania lepszej wydajności.",
+ "SystemCheckWarnJsonHelp": "Rozszerzenie \"json\" powinno być włączone (np.poprzez instalację pakietu \"php-json\") dla uzyskania lepszej wydajności.",
"SystemCheckWarnLibXmlHelp": "Rozszerzenie \"libxml\" winno być włączone (np., instalując pakiet \"php-libxml\") tak jak jest to wymagane przez inne rozszerzenia jądra PHP.",
"SystemCheckWarnSimpleXMLHelp": "Rozszerzenie \"SimpleXML\" winno być włączone (np., instalując pakiety \"php-simplexml\" i\/lub \"php-xml\").",
"SystemCheckWinPdoAndMysqliHelp": "Na serwerach w oparciu o Windows możesz dodać następujące linie do pliku php.ini: %s",
diff --git a/plugins/Installation/lang/pt-br.json b/plugins/Installation/lang/pt-br.json
index e01033da0f..050420299e 100644
--- a/plugins/Installation/lang/pt-br.json
+++ b/plugins/Installation/lang/pt-br.json
@@ -42,6 +42,8 @@
"PasswordDoNotMatch": "senha não confere",
"PasswordRepeat": "Senha (repetir)",
"PercentDone": "%s %% Completo",
+ "PiwikProAdTitle": "Análises e Serviços Avançados",
+ "PiwikProAdText": "Adicione funcionalidades premium e libere a força total com o %1$sPiwik PRO On-Premises%2$s, ou obtenha o seu próprio Piwik livre de problemas hospedado no %3$sPiwik PRO Cloud%4$s.",
"PleaseFixTheFollowingErrors": "Por favor, corrija os seguintes erros",
"DefaultSettings": "Configurações Piwik padrão",
"DefaultSettingsHelp": "Piwik vem com configurações padrão. Você pode personalizá-las agora ou posteriormente no painel de administração.",
@@ -49,7 +51,7 @@
"RestartWebServer": "Depois de fazer essa alteração, reinicie o seu servidor web.",
"ReusingTables": "Reutilizando as Tabelas",
"PiwikOrgNewsletter": "me enviar e-mail com as principais atualizações da comunidade Piwik",
- "PiwikProNewsletter": "envie-me informações sobre os serviços e ofertas do %sPiwik PRO%s",
+ "PiwikProNewsletter": "envie-me informações sobre os serviços e ofertas do %1$sPiwik PRO%2$s",
"SeeBelowForMoreInfo": "Veja abaixo para mais informações.",
"SetupWebsite": "Configurar um website",
"SetupWebsiteError": "Ocorreu um erro ao tentar adicionar o website",
diff --git a/plugins/Installation/lang/ru.json b/plugins/Installation/lang/ru.json
index 276574b9f5..a9d7e7eb4c 100644
--- a/plugins/Installation/lang/ru.json
+++ b/plugins/Installation/lang/ru.json
@@ -46,7 +46,7 @@
"RestartWebServer": "После этих изменений перезапустите браузер.",
"ReusingTables": "Переиспользование таблиц",
"PiwikOrgNewsletter": "послать мне email о новых обновления Piwik community",
- "PiwikProNewsletter": "пришлите мне информацию об услугах и предложениях %sPiwik PRO%s",
+ "PiwikProNewsletter": "пришлите мне информацию об услугах и предложениях %1$sPiwik PRO%2$s",
"SeeBelowForMoreInfo": "Смотрите ниже для получения дополнительной информации.",
"SetupWebsite": "Добавить сайт",
"SetupWebsiteError": "Возникла ошибка при добавлении сайта",
diff --git a/plugins/Installation/lang/sr.json b/plugins/Installation/lang/sr.json
index 45dd3d36b1..ec4fab0a62 100644
--- a/plugins/Installation/lang/sr.json
+++ b/plugins/Installation/lang/sr.json
@@ -49,7 +49,7 @@
"RestartWebServer": "Nakon ovih izmena restartujte vaš web server",
"ReusingTables": "Ponovna upotreba tabela",
"PiwikOrgNewsletter": "pošalji mi mejl kada dođe do značajne Piwik izmene",
- "PiwikProNewsletter": "pošalji mi informacije o %sPiwik PRO%s uslugama i ponudama",
+ "PiwikProNewsletter": "pošalji mi informacije o %1$sPiwik PRO%2$s uslugama i ponudama",
"SeeBelowForMoreInfo": "Pogledajte ispod za više informacija.",
"SetupWebsite": "Podešavanje sajta",
"SetupWebsiteError": "Došlo je do greške prilikom dodavanja sajta",
diff --git a/plugins/Installation/lang/sv.json b/plugins/Installation/lang/sv.json
index 6ec73dcb00..0bbbd52ad8 100644
--- a/plugins/Installation/lang/sv.json
+++ b/plugins/Installation/lang/sv.json
@@ -49,7 +49,7 @@
"RestartWebServer": "När du har gjort den här ändringen, starta om din webbserver.",
"ReusingTables": "Återanvänder tabellerna",
"PiwikOrgNewsletter": "maila mig vid större Piwik community uppdateringar",
- "PiwikProNewsletter": "skicka mer information om tjänster och erbjudanden från %sPiwik PRO%s",
+ "PiwikProNewsletter": "skicka mer information om tjänster och erbjudanden från %1$sPiwik PRO%2$s",
"SeeBelowForMoreInfo": "Se nedan för mer information.",
"SetupWebsite": "Konfigurera en webbplats",
"SetupWebsiteError": "Det uppstod ett fel när webbplatsen försökte läggas till.",
@@ -73,6 +73,7 @@
"SystemCheckExtensions": "Övriga nödvändiga tillägg",
"SystemCheckFileIntegrity": "Filintegritet",
"SystemCheckFunctions": "Funktioner som krävs",
+ "SystemCheckFunctionHelp": "Du måste aktivera denna inbyggda funktion.",
"SystemCheckGDFreeType": "GD > 2.x + Fristil (grafik)",
"SystemCheckGDHelp": "Graflinjerna kommer inte fungera.",
"SystemCheckGlobHelp": "Denna inbyggda funktionen har inaktiverats på din värd. Piwik försöker emulera denna funktion men kan stöta på ytterligare säkerhetsrestriktioner. Funktionalitet kan påverkas.",
diff --git a/plugins/Installation/lang/zh-cn.json b/plugins/Installation/lang/zh-cn.json
index edf6caa2a6..bef29bf2ac 100644
--- a/plugins/Installation/lang/zh-cn.json
+++ b/plugins/Installation/lang/zh-cn.json
@@ -49,7 +49,7 @@
"RestartWebServer": "做过这个改动之后,请重新启动网络服务器。",
"ReusingTables": "重用的表",
"PiwikOrgNewsletter": "邮件通知我重大的 Piwik 社区更新",
- "PiwikProNewsletter": "给我发送 %sPiwik PRO%s 的折扣和服务相关的信息",
+ "PiwikProNewsletter": "给我发送 %1$sPiwik PRO%2$s 的折扣和服务相关的信息",
"SeeBelowForMoreInfo": "更详细的信息请看下面",
"SetupWebsite": "设定一个网站",
"SetupWebsiteError": "增加此网站时出现错误",
diff --git a/plugins/Installation/templates/finished.twig b/plugins/Installation/templates/finished.twig
index 636e8d397c..b64bb79812 100644
--- a/plugins/Installation/templates/finished.twig
+++ b/plugins/Installation/templates/finished.twig
@@ -17,6 +17,16 @@
<p>{{ 'Installation_WeHopeYouWillEnjoyPiwik'|translate }}</p>
<p><i>{{ 'Installation_HappyAnalysing'|translate }}</i></p>
+ {% if arePiwikProAdsEnabled %}
+ <h3>{{ 'Installation_PiwikProAdTitle'|translate }}</h3>
+ <p>
+ {% set linkOnPremises = 'Installation_End'|piwikProOnPremisesPromoUrl %}
+ {% set linkOnCloud = 'Installation_End'|piwikProCloudPromoUrl %}
+
+ {{ 'Installation_PiwikProAdText'|translate('<a rel="noreferrer" target="_blank" href="' ~ linkOnPremises ~ '">','</a>', '<a rel="noreferrer" target="_blank" href="' ~ linkOnCloud ~ '">','</a>')|raw }}
+ </p>
+ {% endif %}
+
<h3>{{ 'Installation_DefaultSettings'|translate }}</h3>
<p>{{ 'Installation_DefaultSettingsHelp'|translate }}</p>
diff --git a/plugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php b/plugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php
index cf85b79bcf..0017cb3729 100755
--- a/plugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php
+++ b/plugins/LanguagesManager/Test/Integration/LanguagesManagerTest.php
@@ -8,6 +8,7 @@
namespace Piwik\Plugins\LanguagesManager\Test\Integration;
+use Piwik\Cache;
use Piwik\Container\StaticContainer;
use Piwik\Intl\Data\Provider\LanguageDataProvider;
use Piwik\Plugins\LanguagesManager\API;
@@ -19,6 +20,7 @@ use Piwik\Plugins\LanguagesManager\TranslationWriter\Filter\UnnecassaryWhitespac
use Piwik\Plugins\LanguagesManager\TranslationWriter\Validate\CoreTranslations;
use Piwik\Plugins\LanguagesManager\TranslationWriter\Validate\NoScripts;
use Piwik\Plugins\LanguagesManager\TranslationWriter\Writer;
+use Piwik\Translate;
/**
* @group LanguagesManager
@@ -126,6 +128,27 @@ class LanguagesManagerTest extends \PHPUnit_Framework_TestCase
}
/**
+ * check all english translations do not contain more than one
+ *
+ * @group Plugins
+ * @group numbered
+ */
+ function testTranslationsUseNumberedPlaceholders()
+ {
+ Cache::flushAll();
+ $translator = StaticContainer::get('Piwik\Translation\Translator');
+ $translator->reset();
+ Translate::loadAllTranslations();
+ $translations = $translator->getAllTranslations();
+ foreach ($translations AS $plugin => $pluginTranslations) {
+ foreach ($pluginTranslations as $key => $pluginTranslation) {
+ $this->assertLessThanOrEqual(1, substr_count($pluginTranslation, '%s'),
+ sprintf('%s.%s must use numbered placeholders instead of multiple %%s', $plugin, $key));
+ }
+ }
+ }
+
+ /**
* test English short name for language
*
* @group Plugins
diff --git a/plugins/Live/API.php b/plugins/Live/API.php
index 788f1d5c19..e52410d8e5 100644
--- a/plugins/Live/API.php
+++ b/plugins/Live/API.php
@@ -260,11 +260,29 @@ class API extends \Piwik\Plugin\API
{
Piwik::checkUserHasViewAccess($idSite);
+ // for faster performance search for a visitor within the last 7 days first
+ $minTimestamp = Date::now()->subDay(7)->getTimestamp();
+
$dataTable = $this->loadLastVisitorDetailsFromDatabase(
- $idSite, $period = false, $date = false, $segment, $offset = 0, $limit = 1
+ $idSite, $period = false, $date = false, $segment, $offset = 0, $limit = 1, $minTimestamp
);
if (0 >= $dataTable->getRowsCount()) {
+ $minTimestamp = Date::now()->subYear(1)->getTimestamp();
+ // no visitor found in last 7 days, look further back for up to 1 year. This query will be slower
+ $dataTable = $this->loadLastVisitorDetailsFromDatabase(
+ $idSite, $period = false, $date = false, $segment, $offset = 0, $limit = 1, $minTimestamp
+ );
+ }
+
+ if (0 >= $dataTable->getRowsCount()) {
+ // no visitor found in last year, look over all logs. This query might be quite slow
+ $dataTable = $this->loadLastVisitorDetailsFromDatabase(
+ $idSite, $period = false, $date = false, $segment, $offset = 0, $limit = 1
+ );
+ }
+
+ if (0 >= $dataTable->getRowsCount()) {
return false;
}
diff --git a/plugins/Live/Live.php b/plugins/Live/Live.php
index 1a71aa7b83..367d19c3a7 100644
--- a/plugins/Live/Live.php
+++ b/plugins/Live/Live.php
@@ -38,6 +38,7 @@ class Live extends \Piwik\Plugin
{
$jsFiles[] = "libs/bower_components/visibilityjs/lib/visibility.core.js";
$jsFiles[] = "plugins/Live/javascripts/live.js";
+ $jsFiles[] = "plugins/Live/javascripts/SegmentedVisitorLog.js";
$jsFiles[] = "plugins/Live/javascripts/visitorProfile.js";
$jsFiles[] = "plugins/Live/javascripts/visitorLog.js";
$jsFiles[] = "plugins/Live/javascripts/rowaction.js";
diff --git a/plugins/Live/Model.php b/plugins/Live/Model.php
index 2152aee43a..276061e14d 100644
--- a/plugins/Live/Model.php
+++ b/plugins/Live/Model.php
@@ -382,11 +382,15 @@ class Model
$date = 'yesterdaySameTime';
}
- list($whereBind, $where) = $this->getWhereClauseAndBind($idSite, $period, $date, $visitorId, $minTimestamp);
+
+ list($whereClause, $bindIdSites) = $this->getIdSitesWhereClause($idSite);
+
+ list($whereBind, $where) = $this->getWhereClauseAndBind($whereClause, $bindIdSites, $idSite, $period, $date, $visitorId, $minTimestamp);
if (strtolower($filterSortOrder) !== 'asc') {
$filterSortOrder = 'DESC';
}
+
$segment = new Segment($segment, $idSite);
// Subquery to use the indexes for ORDER BY
@@ -395,7 +399,13 @@ class Model
$groupBy = false;
$limit = $limit >= 1 ? (int)$limit : 0;
$offset = $offset >= 1 ? (int)$offset : 0;
- $orderBy = "idsite, visit_last_action_time " . $filterSortOrder;
+
+ $orderBy = '';
+ if (count($bindIdSites) <= 1) {
+ $orderBy = 'idsite, ';
+ }
+
+ $orderBy .= "visit_last_action_time " . $filterSortOrder;
$orderByParent = "sub.visit_last_action_time " . $filterSortOrder;
$subQuery = $segment->getSelectQuery($select, $from, $where, $whereBind, $orderBy, $groupBy, $limit, $offset);
@@ -422,6 +432,8 @@ class Model
}
/**
+ * @param string $whereClause
+ * @param array $bindIdSites
* @param $idSite
* @param $period
* @param $date
@@ -430,10 +442,8 @@ class Model
* @return array
* @throws Exception
*/
- private function getWhereClauseAndBind($idSite, $period, $date, $visitorId, $minTimestamp)
+ private function getWhereClauseAndBind($whereClause, $bindIdSites, $idSite, $period, $date, $visitorId, $minTimestamp)
{
- list($whereClause, $bindIdSites) = $this->getIdSitesWhereClause($idSite);
-
$where = array();
$where[] = $whereClause;
$whereBind = $bindIdSites;
diff --git a/plugins/Live/Visitor.php b/plugins/Live/Visitor.php
index 1525bfa5cf..4d15d5d3f6 100644
--- a/plugins/Live/Visitor.php
+++ b/plugins/Live/Visitor.php
@@ -359,6 +359,8 @@ class Visitor implements VisitorInterface
$ecommerceConversion['itemDetails'] = $itemsDetails;
}
+ $actionDetails = array_values($actionDetails);
+
// Enrich with time spent per action
foreach($actionDetails as $actionIdx => &$actionDetail) {
@@ -367,22 +369,24 @@ class Visitor implements VisitorInterface
if ($nextActionFound) {
$actionDetail['timeSpent'] = $actionDetails[$actionIdx + 1]['timeSpentRef'];
} else {
+
// Last action of a visit.
// By default, Piwik does not know how long the user stayed on the page
// If enableHeartBeatTimer() is used in piwik.js then we can find the accurate time on page for the last pageview
- $timeOfLastActionOrPingInVisitRow = $visitorDetailsArray['lastActionTimestamp'];
-
+ $visitTotalTime = $visitorDetailsArray['visitDuration'];
$timeOfLastAction = Date::factory($actionDetail['serverTimePretty'])->getTimestamp();
- $timeSpentOnPage = $timeOfLastActionOrPingInVisitRow - $timeOfLastAction;
+ $timeSpentOnAllActionsApartFromLastOne = ($timeOfLastAction - $visitorDetailsArray['firstActionTimestamp']);
+ $timeSpentOnPage = $visitTotalTime - $timeSpentOnAllActionsApartFromLastOne;
// Safe net, we assume the time is correct when it's more than 10 seconds
- if($timeSpentOnPage > 10) {
+ if ($timeSpentOnPage > 10) {
$actionDetail['timeSpent'] = $timeSpentOnPage;
}
+
}
- if(isset($actionDetail['timeSpent'])) {
+ if (isset($actionDetail['timeSpent'])) {
$actionDetail['timeSpentPretty'] = $formatter->getPrettyTimeFromSeconds($actionDetail['timeSpent'], true);
}
diff --git a/plugins/Live/VisitorProfile.php b/plugins/Live/VisitorProfile.php
index 20dca4b726..b92ead75e6 100644
--- a/plugins/Live/VisitorProfile.php
+++ b/plugins/Live/VisitorProfile.php
@@ -57,8 +57,12 @@ class VisitorProfile
// individual goal conversions are stored in action details
foreach ($visit->getColumn('actionDetails') as $action) {
$this->handleIfGoalAction($action);
+ $this->handleIfEventAction($action);
+ $this->handleIfDownloadAction($action);
+ $this->handleIfOutlinkAction($action);
$this->handleIfEcommerceAction($action);
$this->handleIfSiteSearchAction($action);
+ $this->handleIfPageViewAction($action);
$this->handleIfPageGenerationTime($action);
}
$this->handleGeoLocation($visit);
@@ -155,6 +159,50 @@ class VisitorProfile
/**
* @param $action
*/
+ private function handleIfEventAction($action)
+ {
+ if ($action['type'] != 'event') {
+ return;
+ }
+ $this->profile['totalEvents']++;
+ }
+
+ /**
+ * @param $action
+ */
+ private function handleIfDownloadAction($action)
+ {
+ if ($action['type'] != 'download') {
+ return;
+ }
+ $this->profile['totalDownloads']++;
+ }
+
+ /**
+ * @param $action
+ */
+ private function handleIfOutlinkAction($action)
+ {
+ if ($action['type'] != 'outlink') {
+ return;
+ }
+ $this->profile['totalOutlinks']++;
+ }
+
+ /**
+ * @param $action
+ */
+ private function handleIfPageViewAction($action)
+ {
+ if ($action['type'] != 'action') {
+ return;
+ }
+ $this->profile['totalPageViews']++;
+ }
+
+ /**
+ * @param $action
+ */
private function handleIfEcommerceAction($action)
{
if (!$this->isEcommerceEnabled()) {
@@ -283,7 +331,11 @@ class VisitorProfile
$this->profile['totalVisits'] = 0;
$this->profile['totalVisitDuration'] = 0;
$this->profile['totalActions'] = 0;
+ $this->profile['totalEvents'] = 0;
+ $this->profile['totalOutlinks'] = 0;
+ $this->profile['totalDownloads'] = 0;
$this->profile['totalSearches'] = 0;
+ $this->profile['totalPageViews'] = 0;
$this->profile['totalPageViewsWithTiming'] = 0;
$this->profile['totalGoalConversions'] = 0;
$this->profile['totalConversionsByGoal'] = array();
diff --git a/plugins/Live/javascripts/SegmentedVisitorLog.js b/plugins/Live/javascripts/SegmentedVisitorLog.js
new file mode 100644
index 0000000000..1f3581423b
--- /dev/null
+++ b/plugins/Live/javascripts/SegmentedVisitorLog.js
@@ -0,0 +1,142 @@
+var SegmentedVisitorLog = function() {
+
+ function getDataTableFromApiMethod(apiMethod)
+ {
+ var div = $(require('piwik/UI').DataTable.getDataTableByReport(apiMethod));
+ if (div.size() > 0 && div.data('uiControlObject')) {
+ return div.data('uiControlObject');
+ }
+ }
+
+ function getLabelFromTr ($tr, apiMethod) {
+ var label;
+
+ if (apiMethod && 0 === apiMethod.indexOf('Actions.')) {
+ // for now only use this for Actions... I know a hack :( Otherwise in Search Engines
+ // it would show "http://www.searchenginename.org" instead of "SearchEngineName"
+ label = $tr.attr('data-url-label');
+ }
+
+ if (!label) {
+ label = $tr.find('.label .value').text();
+ }
+
+ if (label) {
+ label = $.trim(label);
+ }
+
+ return label;
+ }
+
+
+ function getDimensionFromApiMethod(apiMethod)
+ {
+ if (!apiMethod) {
+ return;
+ }
+
+ var dataTable = getDataTableFromApiMethod(apiMethod);
+ var metadata = getMetadataFromDataTable(dataTable);
+
+ if (metadata && metadata.dimension) {
+ return metadata.dimension;
+ }
+ }
+
+ function getMetadataFromDataTable(dataTable)
+ {
+ if (dataTable) {
+
+ return dataTable.getReportMetadata();
+ }
+ }
+
+ function findTitleOfRowHavingRawSegmentValue(apiMethod, rawSegmentValue)
+ {
+ var $tr = $('[data-report="' + apiMethod + '"] tr[data-segment-filter="' + rawSegmentValue + '"]').first();
+
+ return getLabelFromTr($tr, apiMethod);
+ }
+
+ function setPopoverTitle(apiMethod, segment, index) {
+ var dataTable = getDataTableFromApiMethod(apiMethod);
+
+ if (!dataTable) {
+ if (index < 15) {
+ // this is needed when the popover is opened before the dataTable is there which can often
+ // happen when opening the popover directly via URL (broadcast.popoverHandler)
+ setTimeout(function () {
+ setPopoverTitle(apiMethod, segment, index + 1);
+ }, 150);
+ }
+ return;
+ }
+
+ var segmentName = getDimensionFromApiMethod(apiMethod);
+ var segmentValue = findTitleOfRowHavingRawSegmentValue(apiMethod, segment);
+
+ if (!segmentName || (segment && segment.indexOf(';') > 0)) {
+ segmentName = _pk_translate('General_Segment');
+ var segmentParts = segment.split(';');
+ segmentValue = segmentParts.join(' ' + _pk_translate('General_And') + ' ');
+ }
+
+ segmentName = piwikHelper.escape(segmentName);
+ segmentName = piwikHelper.htmlEntities(segmentName);
+ segmentValue = piwikHelper.escape(segmentValue);
+ segmentValue = piwikHelper.htmlEntities(segmentValue);
+ segmentName = segmentName.replace(/(&amp;)(#[0-9]{2,5};)/g, '&$2');
+ segmentValue = segmentValue.replace(/(&amp;)(#[0-9]{2,5};)/g, '&$2');
+
+ var title = _pk_translate('Live_SegmentedVisitorLogTitle', [segmentName, segmentValue]);
+
+ Piwik_Popover.setTitle(title);
+ }
+
+ function show(apiMethod, segment, extraParams) {
+
+ // open the popover
+ var box = Piwik_Popover.showLoading('Segmented Visitor Log');
+ box.addClass('segmentedVisitorLogPopover');
+
+
+ var callback = function (html) {
+ Piwik_Popover.setContent(html);
+
+ // remove title returned from the server
+ var title = box.find('h2[piwik-enriched-headline]');
+ var defaultTitle = title.text();
+
+ if (title.size() > 0) {
+ title.remove();
+ }
+
+ Piwik_Popover.setTitle(defaultTitle);
+
+ setPopoverTitle(apiMethod, segment, 0);
+ };
+
+ // prepare loading the popover contents
+ var requestParams = {
+ module: 'Live',
+ action: 'indexVisitorLog',
+ segment: segment,
+ disableLink: 1,
+ small: 1,
+ hideProfileLink: 1
+ };
+
+ $.extend(requestParams, extraParams);
+
+ var ajaxRequest = new ajaxHelper();
+ ajaxRequest.addParams(requestParams, 'get');
+ ajaxRequest.setCallback(callback);
+ ajaxRequest.setFormat('html');
+ ajaxRequest.send(false);
+ }
+
+ return {
+ show: show
+ }
+}();
+
diff --git a/plugins/Live/javascripts/rowaction.js b/plugins/Live/javascripts/rowaction.js
index 5c54e961b5..3524805dd8 100644
--- a/plugins/Live/javascripts/rowaction.js
+++ b/plugins/Live/javascripts/rowaction.js
@@ -13,38 +13,11 @@
var actionName = 'SegmentVisitorLog';
- function getLabelFromTr ($tr, apiMethod) {
- var label;
-
- if (apiMethod && 0 === apiMethod.indexOf('Actions.')) {
- // for now only use this for Actions... I know a hack :( Otherwise in Search Engines
- // it would show "http://www.searchenginename.org" instead of "SearchEngineName"
- label = $tr.attr('data-url-label');
- }
-
- if (!label) {
- label = $tr.find('.label .value').text();
- }
-
- if (label) {
- label = $.trim(label);
- }
-
- return label;
- }
-
function getRawSegmentValueFromRow(tr)
{
return $(tr).attr('data-segment-filter');
}
- function findTitleOfRowHavingRawSegmentValue(apiMethod, rawSegmentValue)
- {
- var $tr = $('[data-report="' + apiMethod + '"] tr[data-segment-filter="' + rawSegmentValue + '"]').first();
-
- return getLabelFromTr($tr, apiMethod);
- }
-
function getDataTableFromApiMethod(apiMethod)
{
var div = $(require('piwik/UI').DataTable.getDataTableByReport(apiMethod));
@@ -81,8 +54,6 @@
// has to be overridden in subclasses
this.trEventName = 'piwikTriggerSegmentVisitorLogAction';
-
- this.segmentComparison = '==';
}
DataTable_RowActions_SegmentVisitorLog.prototype = new DataTable_RowAction();
@@ -121,86 +92,7 @@
// assume the parameter is an int/string describing whether to use multi row evolution
}
- this.showVisitorLog(apiMethod, segment, extraParams);
- };
-
- DataTable_RowActions_SegmentVisitorLog.prototype.showVisitorLog = function (apiMethod, segment, extraParams) {
-
- var self = this;
-
- // open the popover
- var box = Piwik_Popover.showLoading('Segmented Visitor Log');
- box.addClass('segmentedVisitorLogPopover');
-
- function setPopoverTitle(apiMethod, index)
- {
- var dataTable = getDataTableFromApiMethod(apiMethod);
-
- if (!dataTable) {
- if (index < 15) {
- // this is needed when the popover is opened before the dataTable is there which can often
- // happen when opening the popover directly via URL (broadcast.popoverHandler)
- setTimeout(function () {
- setPopoverTitle(apiMethod, index + 1);
- }, 150);
- }
- return;
- }
-
- var segmentName = getDimensionFromApiMethod(apiMethod);
- var segmentValue = findTitleOfRowHavingRawSegmentValue(apiMethod, segment);
-
- if (!segmentName || (segment && segment.indexOf(';') > 0)) {
- segmentName = _pk_translate('General_Segment');
- var segmentParts = segment.split(';');
- segmentValue = segmentParts.join(' ' + _pk_translate('General_And') + ' ');
- }
-
- segmentName = piwikHelper.escape(segmentName);
- segmentName = piwikHelper.htmlEntities(segmentName);
- segmentValue = piwikHelper.escape(segmentValue);
- segmentValue = piwikHelper.htmlEntities(segmentValue);
- segmentName = segmentName.replace(/(&amp;)(#[0-9]{2,5};)/g, '&$2')
- segmentValue = segmentValue.replace(/(&amp;)(#[0-9]{2,5};)/g, '&$2')
-
- var title = _pk_translate('Live_SegmentedVisitorLogTitle', [segmentName, segmentValue]);
-
- Piwik_Popover.setTitle(title);
- }
-
- var callback = function (html) {
- Piwik_Popover.setContent(html);
-
- // remove title returned from the server
- var title = box.find('h2[piwik-enriched-headline]');
- var defaultTitle = title.text();
-
- if (title.size() > 0) {
- title.remove();
- }
-
- Piwik_Popover.setTitle(defaultTitle);
-
- setPopoverTitle(apiMethod, 0);
- };
-
- // prepare loading the popover contents
- var requestParams = {
- module: 'Live',
- action: 'indexVisitorLog',
- segment: segment,
- disableLink: 1,
- small: 1,
- hideProfileLink: 1
- };
-
- $.extend(requestParams, extraParams);
-
- var ajaxRequest = new ajaxHelper();
- ajaxRequest.addParams(requestParams, 'get');
- ajaxRequest.setCallback(callback);
- ajaxRequest.setFormat('html');
- ajaxRequest.send(false);
+ SegmentedVisitorLog.show(apiMethod, segment, extraParams);
};
DataTable_RowActions_Registry.register({
diff --git a/plugins/Live/lang/be.json b/plugins/Live/lang/be.json
index 7746b4ec90..d50fa5dab9 100644
--- a/plugins/Live/lang/be.json
+++ b/plugins/Live/lang/be.json
@@ -7,7 +7,7 @@
"LinkVisitorLog": "Паглядзець падрабязны запіс наведвальнікаў",
"Referrer_URL": "URL спасыльніка",
"VisitorLog": "Запіс наведвальнікаў",
- "VisitorLogDocumentation": "Гэтая табліца паказвае апошнія наведванні ў межах выбранага дыяпазону дат. %s Калі дыяпазон дат ўключае ў сябе сёння, то вы можаце ўбачыць вашых наведвальнікаў у рэжыме рэальнага часу! %s Дадзеныя, якія адлюстроўваюцца тут заўсёды \"жывыя\", незалежна ад таго, і як часта вы карыстаецеся cron архіваваннем.",
+ "VisitorLogDocumentation": "Гэтая табліца паказвае апошнія наведванні ў межах выбранага дыяпазону дат. %1$s Калі дыяпазон дат ўключае ў сябе сёння, то вы можаце ўбачыць вашых наведвальнікаў у рэжыме рэальнага часу! %2$s Дадзеныя, якія адлюстроўваюцца тут заўсёды \"жывыя\", незалежна ад таго, і як часта вы карыстаецеся cron архіваваннем.",
"VisitorsInRealTime": "Наведвальнікаў у рэжыме рэальнага часу"
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/bg.json b/plugins/Live/lang/bg.json
index 97e23787e3..f25cb9e308 100644
--- a/plugins/Live/lang/bg.json
+++ b/plugins/Live/lang/bg.json
@@ -3,7 +3,6 @@
"AveragePageGenerationTime": "Всяка страница отнема средно по %1$s, за да бъде заредена от този посетител.",
"ClickToViewMoreAboutVisit": "Щракнете, за да видите повече информация за това посещение",
"ConvertedNGoals": "Конвертирани %s цели",
- "EcommerceSummaryConversions": "%1$s%2$s поръчки от общо %3$s%4$s, закупени %5$s артикули.",
"FirstVisit": "Първо посещение",
"GoalType": "Тип",
"HideMap": "скриване на картата",
@@ -22,15 +21,14 @@
"RealTimeVisitorCount": "Броене на посетителите в реално време",
"Referrer_URL": "URL Референции",
"ShowMap": "покажи картата",
- "SimpleRealTimeWidget_Message": "%s и %s в последното %s",
+ "SimpleRealTimeWidget_Message": "%1$s и %2$s в последното %3$s",
"ViewVisitorProfile": "Преглед профила на посетителя",
"VisitedPages": "Посетени страници",
"VisitorLog": "Статистика за посетителя",
- "VisitorLogDocumentation": "Тази таблица показва последните посещения, включени в избраният обхват от време. Можете да видите кога се е случило последното посещение на посетител, като посочите върху датата на посещението. %s Ако обхвата на датата включва днешния ден, можете да видите вашите посетители в реално време! %s Информацията тук винаги е в реално време, независимо дали и колко често използвате инструментите за архивиране.",
+ "VisitorLogDocumentation": "Тази таблица показва последните посещения, включени в избраният обхват от време. Можете да видите кога се е случило последното посещение на посетител, като посочите върху датата на посещението. %1$s Ако обхвата на датата включва днешния ден, можете да видите вашите посетители в реално време! %2$s Информацията тук винаги е в реално време, независимо дали и колко често използвате инструментите за архивиране.",
"VisitorProfile": "Профил на посетителя",
"VisitorsInRealTime": "Посетители в реално време",
"VisitorsLastVisit": "Последното посещение от този посетител беше от преди %s дни.",
- "VisitsFrom": "%1$s%2$s посещения%3$s от",
- "VisitSummary": "Общо прекарано време %1$s%2$s в сайта%3$s, и %4$sразгледани %5$s страници за %6$s посещения.%7$s"
+ "VisitsFrom": "%1$s%2$s посещения%3$s от"
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/ca.json b/plugins/Live/lang/ca.json
index 8fd7d2f561..8124e7f243 100644
--- a/plugins/Live/lang/ca.json
+++ b/plugins/Live/lang/ca.json
@@ -9,7 +9,7 @@
"PageRefreshed": "Nombre de vegades que s'ha vist\/refrescat una pàgina",
"Referrer_URL": "URL del referent",
"VisitorLog": "Registre de visitants",
- "VisitorLogDocumentation": "Aquesta taula mostra les últimes visites pel període de temps seleccionat. Podeu veure quan s'ha produït l'últim accès d'un visitant pasant per damunt de la data de visita. %s Si el període de temps inclou avui, podeu veure els visitants en temps real! %s La informació que es mostra és sempre en directa, sense dependre de cada quan executeu el treball programat d'arxivat.",
+ "VisitorLogDocumentation": "Aquesta taula mostra les últimes visites pel període de temps seleccionat. Podeu veure quan s'ha produït l'últim accès d'un visitant pasant per damunt de la data de visita. %1$s Si el període de temps inclou avui, podeu veure els visitants en temps real! %2$s La informació que es mostra és sempre en directa, sense dependre de cada quan executeu el treball programat d'arxivat.",
"VisitorsInRealTime": "Visitants en temps real",
"VisitorsLastVisit": "L'ultima visita d'aquest visitant va ser fa %s dies."
}
diff --git a/plugins/Live/lang/cs.json b/plugins/Live/lang/cs.json
index caf56e0adc..4c5d166fcf 100644
--- a/plugins/Live/lang/cs.json
+++ b/plugins/Live/lang/cs.json
@@ -1,11 +1,11 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s opuštěných košíků%3$s a %4$s opuštěných položek %5$scelkem za %6$s%7$s.",
+ "AbandonedCartSummary": "%1$s opuštěných košíků%2$s a %3$s opuštěných položek%4$s celkem za %5$s%6$s.",
"AveragePageGenerationTime": "Pro tohoto návštěvníka se každá stránka načetla v průměru za %1$s.",
"CalculatedOverNPageViews": "Vypočítáno na základě %1$s posledních zobrazení stránek tohoto návštěvníka.",
"ClickToViewMoreAboutVisit": "Klikněte pro zobrazení více informací o této návštěvě",
"ConvertedNGoals": "Proměněno %s cílů",
- "EcommerceSummaryConversions": "%1$s%2$s objednávek celkem za %3$s%4$s, zakoupeno %5$s položek.",
+ "EcommerceSummaryConversions": "%1$s objednávek%2$s celkem za %3$s%4$s, zakoupeno %5$s položek%6$s.",
"FirstVisit": "První návštěva",
"GoalType": "Typ",
"HideMap": "skrýt mapu",
@@ -26,20 +26,21 @@
"RealTimeVisitorCount": "Počet návštěvníků v reálném čase",
"Referrer_URL": "Odkazující URL",
"ShowMap": "Zobrazit mapu",
- "SimpleRealTimeWidget_Message": "%s a %s v posledních %s.",
+ "SimpleRealTimeWidget_Message": "%1$s a %2$s v posledních %3$s.",
"ViewVisitorProfile": "Zobrazit profil návštěvníka",
"VisitedPages": "Navštívené stránky",
"VisitorLog": "Pohled na návštěvníky",
- "VisitorLogDocumentation": "Tato tabulka zobrazuje poslední návštěvy v daném období. Najetím na datum návštěvy zobrazíte čas, kdy tento návštěvník navštívil stránky naposledy. %s Pokud období zahrnuje dnešek, můžete vidět návštěvníky v reálném čase! %s Zde zobrazovaná data jsou vždy živá bez ohledu na to, jak a kdy probíhá archivační cron úloha.",
+ "VisitorLogDocumentation": "Tato tabulka zobrazuje poslední návštěvy v daném období. Najetím na datum návštěvy zobrazíte čas, kdy tento návštěvník navštívil stránky naposledy. %1$s Pokud období zahrnuje dnešek, můžete vidět návštěvníky v reálném čase! %2$s Zde zobrazovaná data jsou vždy živá bez ohledu na to, jak a kdy probíhá archivační cron úloha.",
"VisitorProfile": "Profil návštěvníka",
"VisitorsInRealTime": "Návštěvníci v reálném čase",
"VisitorsLastVisit": "K poslední návštěvě tohoto návštěvníka došlo před %s dny.",
"VisitsFrom": "%1$s%2$s návštěv%3$s z",
- "VisitSummary": "Strávil celkem %1$s%2$s na stránkách%3$s a %4$szobrazil %5$s stránek za %6$s návštěv.%7$s",
+ "VisitSummary": "Strávil celkem %1$s%2$s na stránkách%3$s, a zobrazil %4$s stránek%5$s při %6$s návštěvách%7$s.",
+ "VisitSummaryWithActionDetails": "Strávil celkem %1$s%2$s na stránkách%3$s, a provedl %4$s akcí%5$s (%6$s) při %7$s návštěvách%8$s.",
"RowActionTooltipDefault": "Zobrazit záznam návštěvníků rozdělený podle tohoto řádku",
"RowActionTooltipWithDimension": "Zobrazit záznam návštěvníků rozdělený podle %s",
"RowActionTooltipTitle": "Otevřít rozdělený záznam návštěvníků",
- "SegmentedVisitorLogTitle": "Záznam návštěvníků, zobrazující návštěvy, kde %s je \"%s\"",
+ "SegmentedVisitorLogTitle": "Záznam návštěvníků, zobrazující návštěvy, kde %1$s je \"%2$s\"",
"OnClickPause": "%s běží. Klikněte pro pozastavení.",
"OnClickStart": "%s je zastaven. Klikněte pro spuštění."
}
diff --git a/plugins/Live/lang/da.json b/plugins/Live/lang/da.json
index 1c6af1bc30..e5a99a34b9 100644
--- a/plugins/Live/lang/da.json
+++ b/plugins/Live/lang/da.json
@@ -1,11 +1,9 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s afbrudte ordrer%3$s og %4$s usolgte varer %5$stil en samlet værdi af %6$s%7$s.",
"AveragePageGenerationTime": "Det tog gennemsnitligt %1$s at indlæse hver side for denne besøgende.",
"CalculatedOverNPageViews": "Beregnet på baggrund af denne besøgendes seneste %1$s sidevisninger.",
"ClickToViewMoreAboutVisit": "Klik for at se mere information om dette besøg",
"ConvertedNGoals": "Omregnet %s mål",
- "EcommerceSummaryConversions": "%1$s%2$s ordrer til en værdi af %3$s%4$s, købte %5$s varer.",
"FirstVisit": "Første besøg",
"GoalType": "Type",
"HideMap": "skjul kort",
@@ -25,19 +23,18 @@
"RealTimeVisitorCount": "Tidstro besøgsantal",
"Referrer_URL": "Henvisning netadresse",
"ShowMap": "vis kort",
- "SimpleRealTimeWidget_Message": "%s og %s i den sidste %s.",
+ "SimpleRealTimeWidget_Message": "%1$s og %2$s i den sidste %3$s.",
"ViewVisitorProfile": "Vis besøgendes profil",
"VisitedPages": "Besøgte sider",
"VisitorLog": "Besøgslog",
- "VisitorLogDocumentation": "Tabelen viser de nyeste besøg inden for det valgte datointerval.%s Hvis datointervallet omfatter i dag, kan du se dine besøgende i virkelig tid! %s Data, der vises her er altid live, uanset hvor ofte arkiveringsjob kører.",
+ "VisitorLogDocumentation": "Tabelen viser de nyeste besøg inden for det valgte datointerval.%1$s Hvis datointervallet omfatter i dag, kan du se dine besøgende i virkelig tid! %2$s Data, der vises her er altid live, uanset hvor ofte arkiveringsjob kører.",
"VisitorProfile": "Besøgendes profil",
"VisitorsInRealTime": "Besøgende her og nu",
"VisitorsLastVisit": "Besøgendes seneste besøg var for %s dage siden.",
"VisitsFrom": "%1$s%2$s besøg %3$s fra",
- "VisitSummary": "Brugte i alt %1$s%2$s på hjemmesiden %3$s og %4$sså %5$s sider på %6$s besøg. %7$s",
"RowActionTooltipDefault": "Vis besøgslog opdelt efter denne række",
"RowActionTooltipWithDimension": "Vis besøgslog opdelt efter %s",
"RowActionTooltipTitle": "Åben segmenteret besøgslog",
- "SegmentedVisitorLogTitle": "Besøgslog viser besøg, hvor %s er \\\"%s\\\""
+ "SegmentedVisitorLogTitle": "Besøgslog viser besøg, hvor %1$s er \"%2$s\""
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/de.json b/plugins/Live/lang/de.json
index fed711aa89..4796bbc01f 100644
--- a/plugins/Live/lang/de.json
+++ b/plugins/Live/lang/de.json
@@ -1,11 +1,10 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s verlassene Warenkörbe%3$s und %4$s verlassene Produkte %5$sim Gesamtwert von %6$s%7$s.",
+ "AbandonedCartSummary": "%1$s verlassene Warenkörbe%2$s und %3$s verlassene Produkte%4$s im Gesamtwert von %5$s%6$s.",
"AveragePageGenerationTime": "Jede Seite benötigte im Durchschnitt %1$s um bei diesem Besucher zu laden.",
"CalculatedOverNPageViews": "Berechnet mithilfe der letzten %1$s Seitenansichten dieses Besuchers.",
"ClickToViewMoreAboutVisit": "Klicken Sie um nähere Informationen zu diesem Besuch zu sehen",
"ConvertedNGoals": "%s Ziele konvertiert",
- "EcommerceSummaryConversions": "%1$s%2$s Bestellungen für insgesamt %3$s%4$s, bestellte %5$s Produkte.",
"FirstVisit": "Erster Besuch",
"GoalType": "Typ",
"HideMap": "Karte ausblenden",
@@ -26,20 +25,19 @@
"RealTimeVisitorCount": "Echtzeit-Besucherzähler",
"Referrer_URL": "Herkunftsseite",
"ShowMap": "Karte einblenden",
- "SimpleRealTimeWidget_Message": "%s und %s in den letzten %s.",
+ "SimpleRealTimeWidget_Message": "%1$s und %2$s in den letzten %3$s.",
"ViewVisitorProfile": "Besucherprofil ansehen",
"VisitedPages": "Besuchte Seiten",
"VisitorLog": "Besucher-Log",
- "VisitorLogDocumentation": "Diese Tabelle zeigt die letzten Besuche innerhalb der ausgewählten Periode. Sie können sehen, wann der Besucher die Seite zuletzt besucht hat, wenn Sie die Maus über das Datum eines Besuches bewegen. %s Wenn die gewählte Periode den heutigen Tag enthält, können Sie die Besuche in Echtzeit sehen! %s Die angezeigten Daten sind immer live, egal ob und in welchem Intervall Sie den Archivierungs-Cronjob verwenden.",
+ "VisitorLogDocumentation": "Diese Tabelle zeigt die letzten Besuche innerhalb der ausgewählten Periode. Sie können sehen, wann der Besucher die Seite zuletzt besucht hat, wenn Sie die Maus über das Datum eines Besuches bewegen. %1$s Wenn die gewählte Periode den heutigen Tag enthält, können Sie die Besuche in Echtzeit sehen! %2$s Die angezeigten Daten sind immer live, egal ob und in welchem Intervall Sie den Archivierungs-Cronjob verwenden.",
"VisitorProfile": "Besucherprofil",
"VisitorsInRealTime": "Besucher in Echtzeit",
"VisitorsLastVisit": "Der letzte Besuch dieses Besuchers war vor %s Tagen.",
"VisitsFrom": "%1$s%2$s Besuche%3$s aus",
- "VisitSummary": "Verbrachte insgesamt %1$s%2$s auf der Website%3$s, und %4$sbesuchte %5$s Seiten in %6$s Besuchen.%7$s",
"RowActionTooltipDefault": "Zeige Besucher-Log aufgeteilt durch diese Zeile",
"RowActionTooltipWithDimension": "Zeige Besucher-Log segmentiert durch %s",
"RowActionTooltipTitle": "Log segmentierter Besucher öffnen",
- "SegmentedVisitorLogTitle": "Besucher-Log zeigt Besuche bei denen gilt: %s ist \\\"%s\\\"",
+ "SegmentedVisitorLogTitle": "Besucher-Log zeigt Besuche bei denen gilt: %1$s ist \"%2$s\"",
"OnClickPause": "%s ist gestartet. Klicken Sie um zu pausieren.",
"OnClickStart": "%s ist gestoppt. Klicken Sie um zu starten."
}
diff --git a/plugins/Live/lang/el.json b/plugins/Live/lang/el.json
index 53f2b0fc4a..88c5184607 100644
--- a/plugins/Live/lang/el.json
+++ b/plugins/Live/lang/el.json
@@ -1,11 +1,11 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s εγκατέλειψε καλάθια%3$s και %4$s εγκαταλελειμμένα αντικείμενα %5$sαξίας συνόλου %6$s%7$s.",
+ "AbandonedCartSummary": "%1$s εγκαταλελειμμένα καλάθια αγορών%2$s και %3$s εγκαταλελειμμένα αντικείμενα%4$s με συνολική αξία %5$s%6$s.",
"AveragePageGenerationTime": "Κάθε σελίδα χρειάστηκε κατά μέσο όρο %1$s για να φορτωθεί στον επισκέπτη.",
"CalculatedOverNPageViews": "Έγινε υπολογισμός βάση των τελευταίων %1$s αναγνώσεων σελίδων του επισκέπτη.",
"ClickToViewMoreAboutVisit": "Κάντε κλικ για να δείτε περισσότερες λεπτομέρειες γύρω από την επίσκεψη",
"ConvertedNGoals": "Μετατράπηκαν %s Στόχοι",
- "EcommerceSummaryConversions": "%1$s%2$s παραγγελίες από σύνολο %3$s%4$s, αγοράστηκαν %5$s αντικείμενα.",
+ "EcommerceSummaryConversions": "%1$s αγορές%2$s για ένα σύνολο %3$s%4$s, με αγορασμένα %5$s αντικείμενα%6$s.",
"FirstVisit": "Πρώτη επίσκεψη",
"GoalType": "Τύπος",
"HideMap": "απόκρυψη χάρτη",
@@ -26,20 +26,21 @@
"RealTimeVisitorCount": "Αριθμός επισκεπτών σε πραγματικό χρόνο",
"Referrer_URL": "Διεύθυνση URL παραπομπού",
"ShowMap": "εμφάνιση χάρτη",
- "SimpleRealTimeWidget_Message": "%s και %s στα τελευταία %s.",
+ "SimpleRealTimeWidget_Message": "%1$s και %2$s στα τελευταία %3$s",
"ViewVisitorProfile": "Εμφάνιση του προφίλ επισκέπτη",
"VisitedPages": "Σελίδες που έχουν επισκεφθεί",
"VisitorLog": "Καταγραφή Επισκεπτών",
- "VisitorLogDocumentation": "Αυτός ο πίνακας δείχνει τις τελευταίες επισκέψεις εντός της επιλεγμένης χρονικής περιόδου. Μπορείτε να δείτε πότε έγινε η τελευταία επίσκεψη του επισκέπτη μετακινόντας το ποντίκι στην ημερομηνία της επίσκεψης.%s Αν η χρονική περίοδος περιλαμβάνει τη σημερινή μέρα, μπορείτε να δείτε τους επισκέπτες σας σε πραγματικό χρόνο! %s Τα δεδομένα που εμφανίζονται εδώ είναι σε απευθείας μετάδοση, ανεξάρτητα αν και πόσο συχνά χρησιμοποιείτε την εργασία αρχειοθέτησης.",
+ "VisitorLogDocumentation": "Ο πίνακας εμφανίζει τις τελευταίες επισκέψεις στο επιλεγμένο εύρος ημερομηνιών. Μπορείτε να δείτε την τελευταία ημερομηνία επίσκεψης ενός επισκέπτη πηγαίνοντας με το ποντίκι πάνω από την ημερομηνία μιας επίσκεψης. %1$s Αν το εύρος ημερομηνιών περιλαμβάνει και τη σημερινή μέρα, μπορείτε να δείτε τους επισκέπτες σε πραγματικό χρόνο! %2$s Τα δεδομένα που εμφανίζονται είναι πάντα σε πραγματικό χρόνο, ανεξάρτητα από το αν και πόσο συχνά χρησιμοποιείτε την αυτοματοποιημένη εργασία αρχειοθέτησης του cron.",
"VisitorProfile": "Προφίλ επισκέπτη",
"VisitorsInRealTime": "Επισκέπτες σε πραγματικό χρόνο",
"VisitorsLastVisit": "Η τελευταία επίσκεψη αυτού του επισκέπτη ήταν πριν από %s ημέρες.",
"VisitsFrom": "%1$s%2$s επισκέψεις%3$s από",
- "VisitSummary": "Ξόδεψε συνολικά %1$s%2$s στον ιστοτόπο%3$s και %4$sείδε %5$s σελίδες σε %6$s επισκέψεις.%7$s",
+ "VisitSummary": "Σπαταλήθηκε συνολικός χρόνος %1$s%2$s στον ιστοτόπο %3$s και αναγνώστηκαν %4$s σελίδες%5$s σε %6$s επισκέψεις%7$s.",
+ "VisitSummaryWithActionDetails": "Σπαταλήθηκε συνολικός χρόνος %1$s%2$s στον ιστοτόπο %3$s και έγιναν %4$s ενέργειες%5$s (%6$s) σε %7$s επισκέψεις%8$s.",
"RowActionTooltipDefault": "Εμφάνιση του Ημερολογίου Επισκεπτών κατατμημένο σε αυτή τη γραμμή",
"RowActionTooltipWithDimension": "Εμφάνιση του Ημερολογίου Επισκεπτών κατατμημένο με αυτό το %s",
"RowActionTooltipTitle": "Άνοιγμα κατετμημένου Ημερολογίου Επισκεπτών",
- "SegmentedVisitorLogTitle": "Ημερολόγιο επισκεπτών που δείχνει επισκέψεις όπου το %s είναι \"%s\"",
+ "SegmentedVisitorLogTitle": "Ημερολόγιο Επισκεπτών με επισκέψεις όπου το %1$s είναι \"%2$s\"",
"OnClickPause": "Το %s έχει ξεκινήσει. Πατήστε για παύση.",
"OnClickStart": "Το %s είναι σταματημένο. Πατήστε για εκκίνηση."
}
diff --git a/plugins/Live/lang/en.json b/plugins/Live/lang/en.json
index 44526bdea4..b45e43da83 100644
--- a/plugins/Live/lang/en.json
+++ b/plugins/Live/lang/en.json
@@ -1,11 +1,11 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s abandoned carts%3$s and %4$s abandoned items %5$sworth a total of %6$s%7$s.",
+ "AbandonedCartSummary": "%1$s abandoned carts%2$s and %3$s abandoned items%4$s worth a total of %5$s%6$s.",
"AveragePageGenerationTime": "Each page took on average %1$s to load for this visitor.",
"CalculatedOverNPageViews": "Calculated using this visitor's last %1$s page views.",
"ClickToViewMoreAboutVisit": "Click to view more information about this visit",
"ConvertedNGoals": "Converted %s Goals",
- "EcommerceSummaryConversions": "%1$s%2$s orders for a total of %3$s%4$s, purchased %5$s items.",
+ "EcommerceSummaryConversions": "%1$s orders%2$s for a total of %3$s%4$s, purchased %5$s items%6$s.",
"FirstVisit": "First visit",
"GoalType": "Type",
"HideMap": "hide map",
@@ -26,20 +26,21 @@
"RealTimeVisitorCount": "Real Time Visitor Count",
"Referrer_URL": "Referrer URL",
"ShowMap": "show map",
- "SimpleRealTimeWidget_Message": "%s and %s in the last %s",
+ "SimpleRealTimeWidget_Message": "%1$s and %2$s in the last %3$s",
"ViewVisitorProfile": "View visitor profile",
"VisitedPages": "Visited pages",
"VisitorLog": "Visitor Log",
- "VisitorLogDocumentation": "This table shows the latest visits within the selected date range. You can see when a visitor's last visit occurred by hovering over the date of a visit. %s If the date range includes today, you can see your visitors real time! %s The data displayed here is always live, regardless of whether and how often you are using the archiving cron job.",
+ "VisitorLogDocumentation": "This table shows the latest visits within the selected date range. You can see when a visitor's last visit occurred by hovering over the date of a visit. %1$s If the date range includes today, you can see your visitors real time! %2$s The data displayed here is always live, regardless of whether and how often you are using the archiving cron job.",
"VisitorProfile": "Visitor profile",
"VisitorsInRealTime": "Visitors in Real-time",
"VisitorsLastVisit": "This visitor's last visit was %s days ago.",
"VisitsFrom": "%1$s%2$s visits%3$s from",
- "VisitSummary": "Spent a total of %1$s%2$s on the website%3$s, and %4$sviewed %5$s pages in %6$s visits.%7$s",
+ "VisitSummary": "Spent a total of %1$s%2$s on the website%3$s, and viewed %4$s pages%5$s in %6$s visits%7$s.",
+ "VisitSummaryWithActionDetails": "Spent a total of %1$s%2$s on the website%3$s, and performed %4$s actions%5$s (%6$s) in %7$s visits%8$s.",
"RowActionTooltipDefault": "Show Visitor Log segmented by this row",
"RowActionTooltipWithDimension": "Show Visitor Log segmented by this %s",
"RowActionTooltipTitle": "Open segmented Visitor Log",
- "SegmentedVisitorLogTitle": "Visitor Log showing visits where %s is \"%s\"",
+ "SegmentedVisitorLogTitle": "Visitor Log showing visits where %1$s is \"%2$s\"",
"OnClickPause": "%s is started. Click to pause.",
"OnClickStart": "%s is stopped. Click to start."
}
diff --git a/plugins/Live/lang/es.json b/plugins/Live/lang/es.json
index 2a67b6e426..dfd02688b6 100644
--- a/plugins/Live/lang/es.json
+++ b/plugins/Live/lang/es.json
@@ -1,11 +1,9 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s carritos abandonados%3$s y %4$s artículos abandonados %5$scon un valor total de %6$s%7$s.",
"AveragePageGenerationTime": "Cada página tomó en promedio %1$s para cargar este visitante.",
"CalculatedOverNPageViews": "Calculado usando las últimas %1$s páginas vistas de este visitante.",
"ClickToViewMoreAboutVisit": "Clic para ver más información acerca de esta visita.",
"ConvertedNGoals": "%s Objetivos convertidos",
- "EcommerceSummaryConversions": "%1$s%2$s pedidos de un total de %3$s%4$s, %5$s artículos comprados.",
"FirstVisit": "Primer visita",
"GoalType": "Tipo",
"HideMap": "ocultar mapa",
@@ -26,20 +24,19 @@
"RealTimeVisitorCount": "Contador de visitantes en tiempo real",
"Referrer_URL": "URL de referencia",
"ShowMap": "mostrar mapa",
- "SimpleRealTimeWidget_Message": "%s y %s en los últimos %s",
+ "SimpleRealTimeWidget_Message": "%1$s y %2$s en los últimos %3$s",
"ViewVisitorProfile": "Ver perfil de visitante",
"VisitedPages": "Páginas vsitadas",
"VisitorLog": "Registro de visitantes",
- "VisitorLogDocumentation": "Esta tabla muestra las últimas visitas en el rango de fecha seleccionado. Puede ver cuando fue la última visita de un visitante posicionándose sobre la fecha de la visita. %s Si el rango de fecha incluye el día actual, ¡puede ver a sus visitantes en tiempo real! %s La información mostrada aquí es siempre en tiempo real, independientemente de si y con qué frecuencia está utilizando un cron archivando.",
+ "VisitorLogDocumentation": "Esta tabla muestra las últimas visitas en el rango de fecha seleccionado. Puede ver cuando fue la última visita de un visitante posicionándose sobre la fecha de la visita. %1$s Si el rango de fecha incluye el día actual, ¡puede ver a sus visitantes en tiempo real! %2$s La información mostrada aquí es siempre en tiempo real, independientemente de si y con qué frecuencia está utilizando un cron archivando.",
"VisitorProfile": "Perfil de visitante",
"VisitorsInRealTime": "Visitantes en tiempo real",
"VisitorsLastVisit": "La última visita de este visitante fue hace %s días.",
"VisitsFrom": "%1$s%2$s visitas%3$s desde",
- "VisitSummary": "Pasó un total de %1$s%2$s en el sitio de internet%3$s y %4$svió %5$s paáinas en %6$s visitas.%7$s",
"RowActionTooltipDefault": "Mostrar registro de visitante segmentado por esta fila",
"RowActionTooltipWithDimension": "Mostrar registro de visitante segmentado por este %s",
"RowActionTooltipTitle": "Abrir registro de visitante segmentado",
- "SegmentedVisitorLogTitle": "Mostrando visitas del Registro de Visitante donde %s es \"%s\"",
+ "SegmentedVisitorLogTitle": "Mostrando visitas del Registro de Visitante donde %1$s es \"%2$s\"",
"OnClickPause": "%s está iniciado. Clic para pausar.",
"OnClickStart": "%s está detenido. Clic para iniciar."
}
diff --git a/plugins/Live/lang/et.json b/plugins/Live/lang/et.json
index d5543f23db..731319485c 100644
--- a/plugins/Live/lang/et.json
+++ b/plugins/Live/lang/et.json
@@ -22,14 +22,13 @@
"RealTimeVisitorCount": "Reaalajas külastuste arv",
"Referrer_URL": "Viitaja URL",
"ShowMap": "kuva kaart",
- "SimpleRealTimeWidget_Message": "%s ja %s perioodis viimased %s",
+ "SimpleRealTimeWidget_Message": "%1$s ja %2$s perioodis viimased %3$s",
"ViewVisitorProfile": "Kuva külastaja profiil",
"VisitedPages": "Külastatud lehed",
"VisitorLog": "Külastuste logi",
"VisitorProfile": "Külastaja profiil",
"VisitorsInRealTime": "Reaalajas külastused",
"VisitorsLastVisit": "Antud külastaja viimane külastus lehel oli %s päeva tagasi.",
- "VisitsFrom": "%1$s%2$s külastust %3$s pärineb",
- "VisitSummary": "Viibis kokku %1$s%2$s veebilehel%3$s ja %4$svaatas %5$s lehte %6$s külastuse jooksul.%7$s"
+ "VisitsFrom": "%1$s%2$s külastust %3$s pärineb"
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/fa.json b/plugins/Live/lang/fa.json
index 6b027d1d77..393c015c98 100644
--- a/plugins/Live/lang/fa.json
+++ b/plugins/Live/lang/fa.json
@@ -22,7 +22,7 @@
"RealTimeVisitorCount": "زمان واقعی تعداد بازدید کنندگان",
"Referrer_URL": "URL بازگشتی",
"ShowMap": "نمایش نقشه",
- "SimpleRealTimeWidget_Message": "%s و %s در اخرین %s",
+ "SimpleRealTimeWidget_Message": "%1$s و %2$s در اخرین %3$s",
"ViewVisitorProfile": "مشاهده نمایه دیدن کننده",
"VisitedPages": "صفحات بازدید شده",
"VisitorLog": "لاگ بازدیدکننده",
diff --git a/plugins/Live/lang/fi.json b/plugins/Live/lang/fi.json
index 3d68a9466b..505ef58e1b 100644
--- a/plugins/Live/lang/fi.json
+++ b/plugins/Live/lang/fi.json
@@ -1,11 +1,9 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s hylätyt ostoskorit%3$s ja %4$s hylätyt tuotteet %5$s,joiden arvo on yhteensä %6$s%7$s.",
"AveragePageGenerationTime": "Jokainen sivun lataaminen kesti keskimäärin %1$s tälle käyttäjälle.",
"CalculatedOverNPageViews": "Laskettu käyttämällä tämän kävijän %1$s viimeisintä nähtyä sivua.",
"ClickToViewMoreAboutVisit": "Klikkaa saadaksesi lisätietoa tästä käynnistä",
"ConvertedNGoals": "Konvertoidut %s tavoitteet",
- "EcommerceSummaryConversions": "%1$s%2$s tilausta, yhteensä %3$s%4$s, ostettuja tuotteita %5$s.",
"FirstVisit": "Ensimmäinen käynti",
"GoalType": "Tyyppi",
"HideMap": "piilota kartta",
@@ -25,15 +23,14 @@
"RealTimeVisitorCount": "Reaaliaikainen kävijälaskuri",
"Referrer_URL": "Saapumisosoite",
"ShowMap": "näytä kartta",
- "SimpleRealTimeWidget_Message": "%s ja %s viimeisessä %s",
+ "SimpleRealTimeWidget_Message": "%1$s ja %2$s viimeisessä %3$s",
"ViewVisitorProfile": "Näytä kävijäprofiili",
"VisitedPages": "Vieraillut sivut",
"VisitorLog": "Kävijän tiedot",
- "VisitorLogDocumentation": "Tämä taulukko näyttää viimeisimmät käynnit valitulta aikaväliltä. Voit nähdä, koska viimeisin käynti oli pitämällä hiirtä päiväyksen päällä. %s Jos aikaväli sisältää tämän päivän, näet kävijät reaaliaikaisena! %s Näytetyt tiedot ovat aina reaaliaikaisia, riippumatta arkistoinnista.",
+ "VisitorLogDocumentation": "Tämä taulukko näyttää viimeisimmät käynnit valitulta aikaväliltä. Voit nähdä, koska viimeisin käynti oli pitämällä hiirtä päiväyksen päällä. %1$s Jos aikaväli sisältää tämän päivän, näet kävijät reaaliaikaisena! %2$s Näytetyt tiedot ovat aina reaaliaikaisia, riippumatta arkistoinnista.",
"VisitorProfile": "Kävijäprofiili",
"VisitorsInRealTime": "Reaaliaikaiset kävijätiedot",
"VisitorsLastVisit": "Tämän kävijän edellinen käynti oli %s päivää sitten.",
- "VisitsFrom": "%1$s%2$s käyntiä%3$s lähteestä",
- "VisitSummary": "Viipyi yhteensä %1$s%2$s verkkosivulla%3$s, ja %4$skatsoi %5$s sivua %6$s käynnillä.%7$s"
+ "VisitsFrom": "%1$s%2$s käyntiä%3$s lähteestä"
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/fr.json b/plugins/Live/lang/fr.json
index ad9dd10a44..2dff46092b 100644
--- a/plugins/Live/lang/fr.json
+++ b/plugins/Live/lang/fr.json
@@ -1,11 +1,9 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s caddies abandonnés %3$s et %4$s articles abandonnés %5$spour une valeur totale de %6$s%7$s.",
"AveragePageGenerationTime": "Chaque page a pris une moyenne de %1$s à charger pour ce visiteur.",
"CalculatedOverNPageViews": "Calculé sur la base des %1$s dernières pages vues par ce visiteur.",
"ClickToViewMoreAboutVisit": "Cliquez pour afficher plus d'informations à propos de cette visite",
"ConvertedNGoals": "Conversion de %s objectifs",
- "EcommerceSummaryConversions": "%1$s%2$s commandes sur un total de %3$s%4$s, comptaient %5$s articles.",
"FirstVisit": "Première visite",
"GoalType": "Type",
"HideMap": "Cacher la carte",
@@ -26,20 +24,19 @@
"RealTimeVisitorCount": "Décompte des visiteurs en temps réel",
"Referrer_URL": "URL du référent",
"ShowMap": "Montrer la carte",
- "SimpleRealTimeWidget_Message": "%s et %s dans le(s)\/la dernier(s)\/ière(s) %s.",
+ "SimpleRealTimeWidget_Message": "%1$s et %2$s dans le(s)\/la dernier(s)\/ière(s) %3$s.",
"ViewVisitorProfile": "Afficher le profil du visiteur",
"VisitedPages": "Pages visitées",
"VisitorLog": "Log visiteur",
- "VisitorLogDocumentation": "Ce tableau affiche les dernières visites parmi la période sélectionnée. %s Si la période inclut aujourd'hui, vous pouvez voir vos visiteurs en temps réel! %s Les données affichées ici le sont toujours en temps réel, indépendamment de quand et à quelle fréquence vous utilisez la tâche automatique (cron) d'archivage.",
+ "VisitorLogDocumentation": "Ce tableau affiche les dernières visites parmi la période sélectionnée. %1$s Si la période inclut aujourd'hui, vous pouvez voir vos visiteurs en temps réel! %2$s Les données affichées ici le sont toujours en temps réel, indépendamment de quand et à quelle fréquence vous utilisez la tâche automatique (cron) d'archivage.",
"VisitorProfile": "Profil visiteur",
"VisitorsInRealTime": "Visiteurs en temps réel",
"VisitorsLastVisit": "La dernière visite du visiteur était il y a %s jours.",
"VisitsFrom": "%1$s%2$s visites%3$s de",
- "VisitSummary": "A passé un total de %1$s%2$s sur le site web%3$s, et %4$saffiché %5$s pages en %6$s visites.%7$s",
"RowActionTooltipDefault": "Afficher le logs des visiteurs segmenté par cette rangée",
"RowActionTooltipWithDimension": "Afficher le log des visiteurs segmenté en fonction de %s",
"RowActionTooltipTitle": "Ouvrir le log des visiteur segmenté",
- "SegmentedVisitorLogTitle": "Log des visiteurs affichant les visites ou %s est \"%s\"",
+ "SegmentedVisitorLogTitle": "Log des visiteurs affichant les visites ou %1$s est \"%2$s\"",
"OnClickPause": "%s est démarré. Cliquer pour mettre en pause.",
"OnClickStart": "%s est arrêté. Cliquer pour démarrer."
}
diff --git a/plugins/Live/lang/hi.json b/plugins/Live/lang/hi.json
index 388a3b2375..6982a61af3 100644
--- a/plugins/Live/lang/hi.json
+++ b/plugins/Live/lang/hi.json
@@ -21,14 +21,13 @@
"RealTimeVisitorCount": "रीयल टाइम आगंतुक गणना",
"Referrer_URL": "संदर्भ URL",
"ShowMap": "नक्शा दिखाना",
- "SimpleRealTimeWidget_Message": "अंतिम %s में %s और %s है.",
+ "SimpleRealTimeWidget_Message": "अंतिम %1$s में %2$s और %3$s है.",
"VisitedPages": "पृष्ठों का दौरा",
"VisitorLog": "आगंतुक प्रवेश",
- "VisitorLogDocumentation": "इस तालिका में चयनित तिथि सीमा के भीतर नवीनतम यात्राओं से पता चलता है. %sआप देख सकते हैं जब एक आगंतुक की अंतिम यात्रा की तारीख के आस-पास उत्पन्न हुई।तिथि सीमा आज भी शामिल है, तो आप अपने दर्शकों के वास्तविक समय देख सकते हैं! %s यहाँ प्रदर्शित डेटा की परवाह किए बिना कि क्या और कितनी बार आप पुरालेखण क्रॉन जॉब का उपयोग कर रहे हैं.",
+ "VisitorLogDocumentation": "इस तालिका में चयनित तिथि सीमा के भीतर नवीनतम यात्राओं से पता चलता है. %1$sआप देख सकते हैं जब एक आगंतुक की अंतिम यात्रा की तारीख के आस-पास उत्पन्न हुई।तिथि सीमा आज भी शामिल है, तो आप अपने दर्शकों के वास्तविक समय देख सकते हैं! %2$s यहाँ प्रदर्शित डेटा की परवाह किए बिना कि क्या और कितनी बार आप पुरालेखण क्रॉन जॉब का उपयोग कर रहे हैं.",
"VisitorProfile": "आगंतुक रूपरेखा",
"VisitorsInRealTime": "वास्तविक समय से आगंतुक",
"VisitorsLastVisit": "इस आगंतुक की आखिरी यात्रा %s दिन पहले की बात है.",
- "VisitsFrom": "%1$s%2$s से दौरा %3$s",
- "VisitSummary": "वेबसाइट पर %1$s%2$s का कुल खर्च किया%3$s, और%4$s यात्राओं में %5$sपृष्ठों को %6$s देखा.%7$s"
+ "VisitsFrom": "%1$s%2$s से दौरा %3$s"
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/hu.json b/plugins/Live/lang/hu.json
index c798b9f486..c193f8734f 100644
--- a/plugins/Live/lang/hu.json
+++ b/plugins/Live/lang/hu.json
@@ -7,7 +7,7 @@
"LinkVisitorLog": "Részletes látogatói adatok megtekintése",
"Referrer_URL": "Hivatkozó URL",
"VisitorLog": "Látogatói adatok",
- "VisitorLogDocumentation": "Ez a táblázat a legutolsó látogatásokat mutatja a kiválasztott időintervallumon belül.%s Ha az időintervallum tartalmazz a mai napot is, akkor élőben láthatod látogatóid! %s Az itt kijelzett adatok mindig élőek maradnak, függetlenül, hogy hogyan és milyen gyakran használod az archiválásra szolgáló cron job-ot.",
+ "VisitorLogDocumentation": "Ez a táblázat a legutolsó látogatásokat mutatja a kiválasztott időintervallumon belül.%1$s Ha az időintervallum tartalmazz a mai napot is, akkor élőben láthatod látogatóid! %2$s Az itt kijelzett adatok mindig élőek maradnak, függetlenül, hogy hogyan és milyen gyakran használod az archiválásra szolgáló cron job-ot.",
"VisitorsInRealTime": "Látogatók valós időben"
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/id.json b/plugins/Live/lang/id.json
index 3a75b77885..06a528cba0 100644
--- a/plugins/Live/lang/id.json
+++ b/plugins/Live/lang/id.json
@@ -11,9 +11,9 @@
"PageRefreshed": "Jumlah kali halaman ini ditampilkan \/ disegarkan berurutan.",
"RealTimeVisitorCount": "Jumlah Pengunjung Waktu Nyata",
"Referrer_URL": "URL Pengarah",
- "SimpleRealTimeWidget_Message": "%s dan %s dalam %s terakhir.",
+ "SimpleRealTimeWidget_Message": "%1$s dan %2$s dalam %3$s terakhir.",
"VisitorLog": "Catatan Pengunjung",
- "VisitorLogDocumentation": "Tabel berikut menampilkan kunjungan terakhir selama rentang tanggal yang dipilih.%s Bila hari ini termasuk dalam rentang tanggal, Anda dapat melihat pengunjung Anda dalam waktu nyata! %s Data yang ditampilkan di sini selalu ditampilkan secara langsung, tidak terpengaruh bagaimana Anda mengatur pengarsipan di tugas Cron.",
+ "VisitorLogDocumentation": "Tabel berikut menampilkan kunjungan terakhir selama rentang tanggal yang dipilih.%1$s Bila hari ini termasuk dalam rentang tanggal, Anda dapat melihat pengunjung Anda dalam waktu nyata! %2$s Data yang ditampilkan di sini selalu ditampilkan secara langsung, tidak terpengaruh bagaimana Anda mengatur pengarsipan di tugas Cron.",
"VisitorsInRealTime": "Pengunjung dalam Waktu Nyata",
"VisitorsLastVisit": "Pengunjung ini telah berkunjung %s hari yang lalu."
}
diff --git a/plugins/Live/lang/it.json b/plugins/Live/lang/it.json
index 5a00adfa52..a2ac489301 100644
--- a/plugins/Live/lang/it.json
+++ b/plugins/Live/lang/it.json
@@ -1,11 +1,11 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s carrelli abbandonati%3$s e %4$s articoli abbandonati %5$sper un valore complessivo di %6$s%7$s.",
+ "AbandonedCartSummary": "%1$s carrelli abbandonati%2$s e %3$s articoli abbandonati%4$s per un valore complessivo di %5$s%6$s.",
"AveragePageGenerationTime": "Ciascuna pagina ha richiesto una media di %1$s per essere caricata per questo visitatore.",
"CalculatedOverNPageViews": "Calcolate usando le ultime %1$s pagine visualizzate da questo visitatore.",
"ClickToViewMoreAboutVisit": "Clicca per vedere ulteriori informazioni su questa visita",
"ConvertedNGoals": "%s Obiettivi Convertiti",
- "EcommerceSummaryConversions": "%1$s%2$s ordini per un totale di %3$s%4$s, acquistati %5$s articoli.",
+ "EcommerceSummaryConversions": "%1$s ordini%2$s per un totale di %3$s%4$s, acquistati %5$s articoli%6$s.",
"FirstVisit": "Prima visita",
"GoalType": "Tipo",
"HideMap": "nascondi mappa",
@@ -26,20 +26,21 @@
"RealTimeVisitorCount": "Conteggio Visitatori in Tempo Reale",
"Referrer_URL": "URL del referrer",
"ShowMap": "mostra mappa",
- "SimpleRealTimeWidget_Message": "%s e %s negli ultimi %s",
+ "SimpleRealTimeWidget_Message": "%1$s e %2$s negli ultimi %3$s",
"ViewVisitorProfile": "Guarda profilo visitatore",
"VisitedPages": "Pagine visitate",
"VisitorLog": "Log Visitatori",
- "VisitorLogDocumentation": "Questa tabella mostra le ultime visite nell'intervallo di date selezionato. Puoi vedere quando c'è stata l'ultima visita di un visitatore posizionando il mouse sopra la data di una visita. %sSe l'intervallo di date comprende oggi, è possibile vedere in tempo reale i tuoi visitatori!%s I dati visualizzati qui sono sempre aggiornati, indipendentemente da quanto spesso usi l'archiviazione automatica.",
+ "VisitorLogDocumentation": "Questa tabella mostra le ultime visite nell'intervallo di date selezionato. Puoi vedere quando c'è stata l'ultima visita di un visitatore posizionando il mouse sopra la data di una visita. %1$sSe l'intervallo di date comprende oggi, è possibile vedere in tempo reale i tuoi visitatori!%2$s I dati visualizzati qui sono sempre aggiornati, indipendentemente da quanto spesso usi l'archiviazione automatica.",
"VisitorProfile": "Profilo visitatore",
"VisitorsInRealTime": "Visite in tempo reale",
"VisitorsLastVisit": "L'ultima visita di questo visitatore è stata %s giorni fa.",
"VisitsFrom": "%1$s%2$s visite%3$s da",
- "VisitSummary": "Passato un totale di %1$s%2$s sul sito%3$s e %4$sviste %5$s pagine in %6$s visite.%7$s",
+ "VisitSummary": "Speso un totale di %1$s%2$s sul sito%3$s, e viste %4$s pagine%5$s in %6$s visite%7$s.",
+ "VisitSummaryWithActionDetails": "Speso un totale di %1$s%2$s sul sito%3$s, ed eseguite %4$s azioni%5$s (%6$s) in %7$s visite%8$s.",
"RowActionTooltipDefault": "Mostra Log Visitatori segmentato per questa riga",
"RowActionTooltipWithDimension": "Mostra Log Visitatori segmentato per questo %s",
"RowActionTooltipTitle": "Apri il log segmentato dei visitatori",
- "SegmentedVisitorLogTitle": "Log Visitatori che mostra le visite, dove %s è \"%s\"",
+ "SegmentedVisitorLogTitle": "Log Visitatori che mostra le visite, dove %1$s è \"%2$s\"",
"OnClickPause": "%s è avviato. Clicca per mettere in pausa.",
"OnClickStart": "%s è stato arrestato. Clicca per avviare."
}
diff --git a/plugins/Live/lang/ja.json b/plugins/Live/lang/ja.json
index 1bcc483702..8e15f18ee8 100644
--- a/plugins/Live/lang/ja.json
+++ b/plugins/Live/lang/ja.json
@@ -1,11 +1,9 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s はカート %3$s と %4$s を放棄し、 はアイテム %5$s (総合 %6$s%7$s に値する)を放棄しました。",
"AveragePageGenerationTime": "このビジターのロードに、各ページ平均 %1$s かかりました。",
"CalculatedOverNPageViews": "このビジターの最終 %1$s ページビューを利用して計算",
"ClickToViewMoreAboutVisit": "この訪問に関する詳細情報を見るには、クリックしてください。",
"ConvertedNGoals": "変換された %s 目標",
- "EcommerceSummaryConversions": "%1$s%2$s は、合計 %3$s%4$s を注文し、%5$s アイテムを購入しました。",
"FirstVisit": "最初の訪問",
"GoalType": "タイプ",
"HideMap": "隠れたマップ",
@@ -26,20 +24,19 @@
"RealTimeVisitorCount": "リアルタイムのビジター数",
"Referrer_URL": "参照元 URL",
"ShowMap": "地図を表示",
- "SimpleRealTimeWidget_Message": "最後の %s の %s と %s",
+ "SimpleRealTimeWidget_Message": "最後の %1$s の %2$s と %3$s",
"ViewVisitorProfile": "ビジターのプロフィールをみる",
"VisitedPages": "訪問されたページ",
"VisitorLog": "ビジターログ",
- "VisitorLogDocumentation": "この表は選択した日付期間内で最新のビジットについて表示しています。ビジットの日付の上にマウスを移動して、そのビジターの最後のビジットが何日前か見ることが出来ます。%s 期間内に本日が含まれていれば、ビジターをリアルタイムで見られます! %s ここに表示されるのは、アーカイブのためのcronジョブ設定の頻度に関わらず、常にライブのデータです。",
+ "VisitorLogDocumentation": "この表は選択した日付期間内で最新のビジットについて表示しています。ビジットの日付の上にマウスを移動して、そのビジターの最後のビジットが何日前か見ることが出来ます。%1$s 期間内に本日が含まれていれば、ビジターをリアルタイムで見られます! %2$s ここに表示されるのは、アーカイブのためのcronジョブ設定の頻度に関わらず、常にライブのデータです。",
"VisitorProfile": "ビジターのプロフィール",
"VisitorsInRealTime": "リアルタイムのビジター",
"VisitorsLastVisit": "このビジターの最新のビジットは %s 日前です。",
"VisitsFrom": "から %1$s%2$s が %3$s を訪問",
- "VisitSummary": "ウェブサイト %3$s で、合計 %1$s%2$s を消費し、%4$s は %6$s 訪問で、%5$s ページ閲覧しました。%7$s",
"RowActionTooltipDefault": "この行で分割されたビジターログを表示",
"RowActionTooltipWithDimension": "この %s で分割されたビジターログを表示",
"RowActionTooltipTitle": "セグメントビジターログを表示",
- "SegmentedVisitorLogTitle": "%s が \" %s \" のビジットを示すビジターログ",
+ "SegmentedVisitorLogTitle": "%1$s が \" %2$s \" のビジットを示すビジターログ",
"OnClickPause": "%s が開始されました。クリックして一時停止します。",
"OnClickStart": "%s は停止しています。クリックして開始します。"
}
diff --git a/plugins/Live/lang/ko.json b/plugins/Live/lang/ko.json
index e1de77a61f..4b843fbc89 100644
--- a/plugins/Live/lang/ko.json
+++ b/plugins/Live/lang/ko.json
@@ -2,6 +2,7 @@
"Live": {
"CalculatedOverNPageViews": "해당 방문자의 %1$s 번 페이지 방문을 통해 계산되었습니다.",
"ClickToViewMoreAboutVisit": "이 방문에 대해 더 자세한 정보를 보기 위해서 클릭하세요.",
+ "ConvertedNGoals": "변환된 %s 목표",
"FirstVisit": "첫 방문",
"GoalType": "유형",
"HideMap": "지도 숨기기",
@@ -24,7 +25,7 @@
"ViewVisitorProfile": "방문자 프로필 보기",
"VisitedPages": "방문한 페이지들",
"VisitorLog": "방문자 기록",
- "VisitorLogDocumentation": "이 표는 선택한 날짜 기간 내에 최신 방문에 표시하고 있습니다. 방문 날짜 위로 마우스를 이동하고, 그 방문자의 마지막 방문이 며칠 전인지 볼 수 있습니다. %s 기간내에 오늘이 포함되어 있으면, 방문객을 실시간으로 볼 수 있습니다! %s 여기에 표시되는 것은 보관을위한 cron 작업 설정 빈도에 상관없는 라이브 데이터입니다.",
+ "VisitorLogDocumentation": "이 표는 선택한 날짜 기간 내에 최신 방문에 표시하고 있습니다. 방문 날짜 위로 마우스를 이동하고, 그 방문자의 마지막 방문이 며칠 전인지 볼 수 있습니다. %1$s 기간내에 오늘이 포함되어 있으면, 방문객을 실시간으로 볼 수 있습니다! %2$s 여기에 표시되는 것은 보관을위한 cron 작업 설정 빈도에 상관없는 라이브 데이터입니다.",
"VisitorProfile": "방문자 프로필",
"VisitorsInRealTime": "실시간 방문자",
"VisitorsLastVisit": "이 방문객의 최신 방문은 %s일 입니다.",
diff --git a/plugins/Live/lang/lv.json b/plugins/Live/lang/lv.json
index e75bddf313..8c31bcd3bd 100644
--- a/plugins/Live/lang/lv.json
+++ b/plugins/Live/lang/lv.json
@@ -7,7 +7,7 @@
"LinkVisitorLog": "Apskatīt detalizētu apmeklētāju žurnālu",
"Referrer_URL": "Atsauces URL",
"VisitorLog": "Apmeklētāju žurnāls",
- "VisitorLogDocumentation": "Šī tabula atspoguļo pēdējos apmeklējumus izvēlētajā datumu intervālā. Jūs varat apskatīt pēdējo apmeklētāja apmeklējuma laiku kursoru uzbīdot uz apmeklējuma datuma. %s Ja datumu intervāls iekļauj šodienu, Jūs varat skatīt apmeklētājus reāllaikā! %s Dati, kas apskatāmi šeit, ir vienmēr aktuālie, neatkarīgi no tā vai lietojat arhivēšanas darbu, vai nē.",
+ "VisitorLogDocumentation": "Šī tabula atspoguļo pēdējos apmeklējumus izvēlētajā datumu intervālā. Jūs varat apskatīt pēdējo apmeklētāja apmeklējuma laiku kursoru uzbīdot uz apmeklējuma datuma. %1$s Ja datumu intervāls iekļauj šodienu, Jūs varat skatīt apmeklētājus reāllaikā! %2$s Dati, kas apskatāmi šeit, ir vienmēr aktuālie, neatkarīgi no tā vai lietojat arhivēšanas darbu, vai nē.",
"VisitorsInRealTime": "Apmeklētāji reāllaikā",
"VisitorsLastVisit": "Šī apmeklētāja pēdējais apmklējums bija %s dienas atpakaļ."
}
diff --git a/plugins/Live/lang/nb.json b/plugins/Live/lang/nb.json
index 2d82e3aa63..f70474f6c6 100644
--- a/plugins/Live/lang/nb.json
+++ b/plugins/Live/lang/nb.json
@@ -16,7 +16,7 @@
"RealTimeVisitorCount": "Besøkstall i sanntid",
"Referrer_URL": "Henvisnings-URL",
"ShowMap": "vis kart",
- "SimpleRealTimeWidget_Message": "%s og %s i de siste %s",
+ "SimpleRealTimeWidget_Message": "%1$s og %2$s i de siste %3$s",
"ViewVisitorProfile": "Vis besøksprofil",
"VisitedPages": "Besøkte sider",
"VisitorLog": "Logg over besøkere",
diff --git a/plugins/Live/lang/nl.json b/plugins/Live/lang/nl.json
index 6258bb4bcb..571ac72f2e 100644
--- a/plugins/Live/lang/nl.json
+++ b/plugins/Live/lang/nl.json
@@ -1,11 +1,9 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s achtergelaten winkelwagens%3$s en %4$s achtergelaten items %5$s, voor een totale waarde van %6$s%7$s.",
"AveragePageGenerationTime": "Elke pagina duurde gemiddeld %1$s om te laden voor deze bezoeker.",
"CalculatedOverNPageViews": "Berekend met de laatste %1$s paginaweergaves van deze bezoeker.",
"ClickToViewMoreAboutVisit": "Klik om meer informatie over dit bezoek te zien",
"ConvertedNGoals": "Behaalde %s Doelen",
- "EcommerceSummaryConversions": "%1$s%2$s aankopen voor een totaal van %3$s%4$s, kochten %5$s items aan.",
"FirstVisit": "Eerste bezoek",
"GoalType": "Type",
"HideMap": "Verberg kaart",
@@ -26,20 +24,19 @@
"RealTimeVisitorCount": "Real Time bezoekers aantal",
"Referrer_URL": "Referrer URL",
"ShowMap": "Toon kaart",
- "SimpleRealTimeWidget_Message": "%s en %s in de laatste %s",
+ "SimpleRealTimeWidget_Message": "%1$s en %2$s in de laatste %3$s",
"ViewVisitorProfile": "Bekijk bezoeker profiel",
"VisitedPages": "Bezochte pagina's",
"VisitorLog": "Bezoekerslogboek",
- "VisitorLogDocumentation": "Deze tabel toont de laatste bezoeken binnen het geselecteerde datumbereik. Je kunt zien wanneer een bezoeker zijn laatste bezoek bracht door je muis boven de datum te houden. %s Indien het datumbereik ook vandaag bevat, kun je je bezoekers zien in real time! %s De data die hier wordt getoond is steeds live, ongeacht of en wanneer je de archiving cron job gebruikt.",
+ "VisitorLogDocumentation": "Deze tabel toont de laatste bezoeken binnen het geselecteerde datumbereik. Je kunt zien wanneer een bezoeker zijn laatste bezoek bracht door je muis boven de datum te houden. %1$s Indien het datumbereik ook vandaag bevat, kun je je bezoekers zien in real time! %2$s De data die hier wordt getoond is steeds live, ongeacht of en wanneer je de archiving cron job gebruikt.",
"VisitorProfile": "Bezoekers profiel",
"VisitorsInRealTime": "Bezoekers in real-time",
"VisitorsLastVisit": "Het laatste bezoek van deze bezoekers was %s dagen geleden.",
"VisitsFrom": "%1$s%2$s bezoeken%3$s van",
- "VisitSummary": "Spendeerde in totaal %1$s%2$s op de website %3$s, en %4$sbekeek %5$s pagina's in %6$s bezoeken.%7$s",
"RowActionTooltipDefault": "Toon bezoekers log verdeeld volgens deze rij",
"RowActionTooltipWithDimension": "Toon bezoekers log verdeeld volgens %s",
"RowActionTooltipTitle": "Open gesegmenteerd Bezoekerslogboek",
- "SegmentedVisitorLogTitle": "Bezoekers log toont bezoeken waar %s is \"%s\"",
+ "SegmentedVisitorLogTitle": "Bezoekers log toont bezoeken waar %1$s is \"%2$s\"",
"OnClickPause": "%s is gestart. Klik om te pauzeren.",
"OnClickStart": "%s is gestopt. Klik om te starten."
}
diff --git a/plugins/Live/lang/nn.json b/plugins/Live/lang/nn.json
index 02bc75a333..106c7300c6 100644
--- a/plugins/Live/lang/nn.json
+++ b/plugins/Live/lang/nn.json
@@ -7,7 +7,7 @@
"MorePagesNotDisplayed": "fleire sider av denne vitjaren er ikkje vist",
"PageRefreshed": "Tal på gonger denne sida var vist \/ oppdatert.",
"VisitorLog": "Vitjarlogg",
- "VisitorLogDocumentation": "Denne tabellen visar dei seinaste vitjingane innan tidsperioden. Du kan sjå den førre vitjinga til ein vitjar ved å halda peikaren over datoen til ei vitjing. %s Viss tidsperioden inkluderer idag, kan du sjå vitjarane dine i sanntid! %s Data her er alltid i sanntid, same om og kor ofte Piwik arkiverer dei.",
+ "VisitorLogDocumentation": "Denne tabellen visar dei seinaste vitjingane innan tidsperioden. Du kan sjå den førre vitjinga til ein vitjar ved å halda peikaren over datoen til ei vitjing. %1$s Viss tidsperioden inkluderer idag, kan du sjå vitjarane dine i sanntid! %2$s Data her er alltid i sanntid, same om og kor ofte Piwik arkiverer dei.",
"VisitorsInRealTime": "Vitjarar i sanntid",
"VisitorsLastVisit": "Den førre vitjinga til vitjaren var %s dagar sidan."
}
diff --git a/plugins/Live/lang/pl.json b/plugins/Live/lang/pl.json
index a0ca6439b3..0acd83d60d 100644
--- a/plugins/Live/lang/pl.json
+++ b/plugins/Live/lang/pl.json
@@ -1,7 +1,6 @@
{
"Live": {
"ClickToViewMoreAboutVisit": "Kliknij po więcej informacji o tej wizycie",
- "EcommerceSummaryConversions": "%1$s%2$s zamówienia na łączną %3$s%4$s, zakupione %5$s elementy.",
"FirstVisit": "Pierwsza wizyta",
"GoalType": "Rodzaj",
"HideMap": "ukryj mapę",
@@ -18,7 +17,7 @@
"PreviousVisitor": "Poprzedni odwiedzający",
"Referrer_URL": "Przysyłający adres URL",
"ShowMap": "Pokaż mapę",
- "SimpleRealTimeWidget_Message": "%s %s na %s ostatni",
+ "SimpleRealTimeWidget_Message": "%1$s %2$s na %3$s ostatni",
"ViewVisitorProfile": "Zobacz profil odwiedzającego",
"VisitedPages": "Odwiedzone strony",
"VisitorLog": "Log odwiedzających",
diff --git a/plugins/Live/lang/pt-br.json b/plugins/Live/lang/pt-br.json
index a49b770732..7ff29e747e 100644
--- a/plugins/Live/lang/pt-br.json
+++ b/plugins/Live/lang/pt-br.json
@@ -1,11 +1,11 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s carrinhos abandonados%3$s e %4$s itens abandonados %5$svalem um total de %6$s%7$s.",
+ "AbandonedCartSummary": "%1$s carrinhos abandonados%2$s e %3$s itens abandonados%4$s valendo um total de %5$s%6$s.",
"AveragePageGenerationTime": "Cada página levou em média %1$s para carregar para este visitante.",
"CalculatedOverNPageViews": "Calculado usando as últimas %1$s exibições de página deste visitante.",
"ClickToViewMoreAboutVisit": "Clique para ver mais informações sobre esta visita",
"ConvertedNGoals": "%s Metas convertidas",
- "EcommerceSummaryConversions": "%1$s%2$s pedidos de um total de %3$s%4$s, comprados %5$s itens.",
+ "EcommerceSummaryConversions": "%1$s pedidos%2$s de um total de %3$s%4$s, comprados %5$s itens%6$s.",
"FirstVisit": "Primeiro visitante",
"GoalType": "Tipo",
"HideMap": "esconder mapa",
@@ -26,20 +26,21 @@
"RealTimeVisitorCount": "Contagem de visitantes em tempo real",
"Referrer_URL": "URL do Referenciador",
"ShowMap": "mostrar mapa",
- "SimpleRealTimeWidget_Message": "%s e %s na última %s.",
+ "SimpleRealTimeWidget_Message": "%1$s e %2$s na última %3$s.",
"ViewVisitorProfile": "Ver o perfil do visitante",
"VisitedPages": "Páginas visitadas",
"VisitorLog": "Log de visitantes",
- "VisitorLogDocumentation": "Esta tabela mostra as últimas visitas dentro do período selecionado. Você pode ver quando a última visita de um visitante ocorreu passando o mouse sobre a data da visita. %s se o intervalo de data incluir hoje, você pode ver os seus visitantes em tempo real! %s Os dados exibidos aqui são sempre ao vivo, independentemente de estar usando o arquivamento agendado por cron.",
+ "VisitorLogDocumentation": "Esta tabela mostra as últimas visitas dentro do período selecionado. Você pode ver quando a última visita de um visitante ocorreu passando o mouse sobre a data da visita. %1$s se o intervalo de data incluir hoje, você pode ver os seus visitantes em tempo real! %2$s Os dados exibidos aqui são sempre ao vivo, independentemente de estar usando o arquivamento agendado por cron.",
"VisitorProfile": "Páginas visitadas",
"VisitorsInRealTime": "Visitantes em tempo real",
"VisitorsLastVisit": "A última visita deste visitante foi a %s dias atrás.",
"VisitsFrom": "%1$s%2$s visitas%3$s de",
- "VisitSummary": "Passou um total de %1$s%2$s no site%3$s, e %4$spáginas %5$s vistas em %6$s visitas.%7$s",
+ "VisitSummary": "Passou um total de %1$s%2$s no website%3$s, e viu %4$s páginas%5$s em %6$s visitas%7$s.",
+ "VisitSummaryWithActionDetails": "Passou um total de %1$s%2$s no website%3$s, e realizou %4$s ações%5$s (%6$s) em %7$s visitas%8$s.",
"RowActionTooltipDefault": "Mostrar Log de Visitantes segmentado por esta linha",
"RowActionTooltipWithDimension": "Mostrar Log de Visitantes segmentado por este %s",
"RowActionTooltipTitle": "Abrir Log de Visitantes segmentado",
- "SegmentedVisitorLogTitle": "Log de Visitantes mostrando visitas onde %s é \"%s\"",
+ "SegmentedVisitorLogTitle": "Log de visitante mostrando visitas onde %1$s é \"%2$s\"",
"OnClickPause": "%s iniciou. Clique para pausar.",
"OnClickStart": "%s parou. Clique para iniciar."
}
diff --git a/plugins/Live/lang/pt.json b/plugins/Live/lang/pt.json
index f91c27b754..42a4d29d79 100644
--- a/plugins/Live/lang/pt.json
+++ b/plugins/Live/lang/pt.json
@@ -7,7 +7,7 @@
"LinkVisitorLog": "Ver registo de visitantes detalhado",
"Referrer_URL": "Endereço do Referente",
"VisitorLog": "Registo de Visitantes",
- "VisitorLogDocumentation": "Esta tabela mostra as últimas visitas dentro do período selecionado. Você pode ver quando a última visita de um visitante ocorreu passando o cursor sobre os dados de uma visita. %s Se o intervalo de datas incluir hoje, você pode ver os seus visitantes em tempo real! %s Os dados apresentados aqui são sempre em tempo real, independentemente de quantas vezes você está usando o cron job de arquivamento.",
+ "VisitorLogDocumentation": "Esta tabela mostra as últimas visitas dentro do período selecionado. Você pode ver quando a última visita de um visitante ocorreu passando o cursor sobre os dados de uma visita. %1$s Se o intervalo de datas incluir hoje, você pode ver os seus visitantes em tempo real! %2$s Os dados apresentados aqui são sempre em tempo real, independentemente de quantas vezes você está usando o cron job de arquivamento.",
"VisitorsInRealTime": "Visitantes em Tempo Real",
"VisitorsLastVisit": "A última visita do utilizador ocorreu à %s dias atrás."
}
diff --git a/plugins/Live/lang/ro.json b/plugins/Live/lang/ro.json
index 8df0a174bb..673eb72363 100644
--- a/plugins/Live/lang/ro.json
+++ b/plugins/Live/lang/ro.json
@@ -1,11 +1,9 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s casute abandonate%3$s si %4$s obiective abandonte %5$svaloare total de %6$s%7$s.",
"AveragePageGenerationTime": "Fiecare pagină a avut, în medie %1$s pentru a încărca pentru acest vizitator.",
"CalculatedOverNPageViews": "Calculat folosind aceast vizitator trecut %1$s pagini văzute.",
"ClickToViewMoreAboutVisit": "Click pentru a vedea mai multe informații despre această vizită",
"ConvertedNGoals": "Convertit %s Goluri",
- "EcommerceSummaryConversions": "%1$s%2$s comenzi pentru un total de %3$s%4$s, produse achizitionate %5$s .",
"FirstVisit": "Prima vizita",
"GoalType": "Tip",
"HideMap": "ascunde hartă",
@@ -25,15 +23,14 @@
"RealTimeVisitorCount": "Numărul vizitatori în timp real",
"Referrer_URL": "Referal URL",
"ShowMap": "Arata harta",
- "SimpleRealTimeWidget_Message": "%s și %s în ultimele %s",
+ "SimpleRealTimeWidget_Message": "%1$s și %2$s în ultimele %3$s",
"ViewVisitorProfile": "Vezi profilul vizitatorului",
"VisitedPages": "Pagini vizitate",
"VisitorLog": "Registrul vizitatorilor",
- "VisitorLogDocumentation": "Acest tabel arată cele mai recente vizite în intervalul de date selectat. Puteți vedea când a fost ultima vizita a unui vizitator a avut loc. %s În cazul în care intervalul de date include astăzi, puteți vedea vizitatorii dvs. în timp real! %s Datele afișate aici sunt mereu actualizate, indiferent cand si cât de des folosiți arhivarea cron.",
+ "VisitorLogDocumentation": "Acest tabel arată cele mai recente vizite în intervalul de date selectat. Puteți vedea când a fost ultima vizita a unui vizitator a avut loc. %1$s În cazul în care intervalul de date include astăzi, puteți vedea vizitatorii dvs. în timp real! %2$s Datele afișate aici sunt mereu actualizate, indiferent cand si cât de des folosiți arhivarea cron.",
"VisitorProfile": "Profilul vizitator",
"VisitorsInRealTime": "Vizitatori în timp real",
"VisitorsLastVisit": "Ultima vizită a acestui vizitator a avut loc cu %s zile în urmă.",
- "VisitsFrom": "%1$s%2$s vizite%3$s de la",
- "VisitSummary": "A petrecut un total de %1$s%2$s pe site-ul%3$s și%4$s vizionari %5$s paginile %6$s în vizite de .%7$s"
+ "VisitsFrom": "%1$s%2$s vizite%3$s de la"
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/ru.json b/plugins/Live/lang/ru.json
index 31388029f4..96f0c99890 100644
--- a/plugins/Live/lang/ru.json
+++ b/plugins/Live/lang/ru.json
@@ -24,18 +24,17 @@
"RealTimeVisitorCount": "Счётчик посетителей в реальном времени",
"Referrer_URL": "URL источника",
"ShowMap": "показать карту",
- "SimpleRealTimeWidget_Message": "%s и %s за последние %s",
+ "SimpleRealTimeWidget_Message": "%1$s и %2$s за последние %3$s",
"ViewVisitorProfile": "Посмотреть профиль посетителя",
"VisitedPages": "Посещённые страницы",
"VisitorLog": "Журнал посетителей",
- "VisitorLogDocumentation": "Эта таблица показывает последние посещения за выбранный период. Вы можете видеть последнее посещение пользователя при наведении мыши на дату посещения. %s Если период включает сегодняшний день, вы можете наблюдать за посетителями в реальном времени! %s Данные здесь всегда отображаются в режиме реального времени вне зависимости от того, как часто вы используете архивацию по крону.",
+ "VisitorLogDocumentation": "Эта таблица показывает последние посещения за выбранный период. Вы можете видеть последнее посещение пользователя при наведении мыши на дату посещения. %1$s Если период включает сегодняшний день, вы можете наблюдать за посетителями в реальном времени! %2$s Данные здесь всегда отображаются в режиме реального времени вне зависимости от того, как часто вы используете архивацию по крону.",
"VisitorProfile": "Профиль посетителя",
"VisitorsInRealTime": "Посетители в реальном времени",
"VisitorsLastVisit": "Последнее посещение этого пользователя было %s дней назад.",
"VisitsFrom": "%1$s%2$s визитов%3$s от",
- "VisitSummary": "Провёл в общей сложности %1$s%2$s на этом сайте%3$s, и %4$sпросмотрел %5$s страниц за %6$s посещений%7$s.",
"RowActionTooltipDefault": "Показать журнал посетителей, сегментированный по этой строке",
"RowActionTooltipTitle": "Открыть сегментированный журнал посетителей",
- "SegmentedVisitorLogTitle": "Просмотр посещений где %s равно \\\"%s\\\""
+ "SegmentedVisitorLogTitle": "Просмотр посещений где %1$s равно \"%2$s\""
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/sk.json b/plugins/Live/lang/sk.json
index 6f57149a23..7913b725cd 100644
--- a/plugins/Live/lang/sk.json
+++ b/plugins/Live/lang/sk.json
@@ -15,7 +15,7 @@
"PreviousVisitor": "Predchádzajúci návštevník",
"RealTimeVisitorCount": "Sledovanie návštev v reálnom čase",
"Referrer_URL": "Referenčné URL",
- "SimpleRealTimeWidget_Message": "%s a %s v posledných %s",
+ "SimpleRealTimeWidget_Message": "%1$s a %2$s v posledných %3$s",
"VisitorLog": "Záznam návštevníka",
"VisitorsInRealTime": "Návštevníci v reálnom čase"
}
diff --git a/plugins/Live/lang/sq.json b/plugins/Live/lang/sq.json
index dc43082b48..f1b14ea1d9 100644
--- a/plugins/Live/lang/sq.json
+++ b/plugins/Live/lang/sq.json
@@ -8,7 +8,7 @@
"PageRefreshed": "Sa herë rresht është parë \/ rifreskuar kjo faqew.",
"Referrer_URL": "URL Referuesi",
"VisitorLog": "Regjistër Vizitori",
- "VisitorLogDocumentation": "Kjo tabelë tregon vizitat e fundit brenda intervalit kohor të përzgjedhur. Se kur u bë vizita e fundit nga një vizitor mund ta shihni duke kaluar kursorin përsipër datës së një vizite. %s Nëse intervali kohor e përfshin ditën e sotme, mund t’i shihni vizitorët aty për aty! %s Të dhënat e shfaqura këtu janë përherë më të rejat, pavarësisht nëse e përdorni a jo dhe se sa shpesh funksionin cron për arkivim.",
+ "VisitorLogDocumentation": "Kjo tabelë tregon vizitat e fundit brenda intervalit kohor të përzgjedhur. Se kur u bë vizita e fundit nga një vizitor mund ta shihni duke kaluar kursorin përsipër datës së një vizite. %1$s Nëse intervali kohor e përfshin ditën e sotme, mund t’i shihni vizitorët aty për aty! %2$s Të dhënat e shfaqura këtu janë përherë më të rejat, pavarësisht nëse e përdorni a jo dhe se sa shpesh funksionin cron për arkivim.",
"VisitorsInRealTime": "Vizitorë në Kohë Reale",
"VisitorsLastVisit": "Vizita e fundit e këtij vizitori ndodhi %s ditë më parë."
}
diff --git a/plugins/Live/lang/sr.json b/plugins/Live/lang/sr.json
index f45b67a510..d84b91cfa1 100644
--- a/plugins/Live/lang/sr.json
+++ b/plugins/Live/lang/sr.json
@@ -1,11 +1,9 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s napuštenih koripi%3$s i %4$s napuštenih artikala %5$sukupne vrednosti %6$s%7$s.",
"AveragePageGenerationTime": "Ovom korisniku je za svaku stranicu u proseku potrebno %1$s kako bi se učitala.",
"CalculatedOverNPageViews": "Izračunato na osnovu poslednjih %1$s prikaza stranica ovog korisnika",
"ClickToViewMoreAboutVisit": "Kliknite kako biste videli više informacija o ovoj poseti.",
"ConvertedNGoals": "Ispunjeno ciljeva: %s",
- "EcommerceSummaryConversions": "%1$s%2$s narudžbina od ukupno %3$s%4$s, naručeno %5$s artikala.",
"FirstVisit": "Prva poseta",
"GoalType": "Tip",
"HideMap": "sakrij mapu",
@@ -26,20 +24,19 @@
"RealTimeVisitorCount": "Brojač posetilaca u realnom vremenu",
"Referrer_URL": "Referenca",
"ShowMap": "prikaži mapu",
- "SimpleRealTimeWidget_Message": "%s i %s u poslednjih %s.",
+ "SimpleRealTimeWidget_Message": "%1$s i %2$s u poslednjih %3$s.",
"ViewVisitorProfile": "Profil novog posetioca",
"VisitedPages": "Posećene stranice",
"VisitorLog": "Zapis poseta",
- "VisitorLogDocumentation": "Ova tabela prikazuje poslednje posete unutar izabranog vremenskog opsega. Možete videti poslednju posetu pomeranjem miša preko datuma posete. %s Ako vremenski opseg obuhvata i današnji dan, možete videti vaše posetioce u realnom vremenu! %s Podaci ovde prikazani su uvek u realnom vremenu bez obzira na to koliko često koristite cron.",
+ "VisitorLogDocumentation": "Ova tabela prikazuje poslednje posete unutar izabranog vremenskog opsega. Možete videti poslednju posetu pomeranjem miša preko datuma posete. %1$s Ako vremenski opseg obuhvata i današnji dan, možete videti vaše posetioce u realnom vremenu! %2$s Podaci ovde prikazani su uvek u realnom vremenu bez obzira na to koliko često koristite cron.",
"VisitorProfile": "Profil posetioca",
"VisitorsInRealTime": "Posetioci u realnom vremenu",
"VisitorsLastVisit": "Poslednja poseta je bila pre %s dana.",
"VisitsFrom": "%1$s%2$s poseta%3$s sa",
- "VisitSummary": "Utrošeno ukupno %1$s%2$s na sajtu%3$s, %4$sprikazano %5$s stranica u %6$s poseta.%7$s",
"RowActionTooltipDefault": "Prikaži zapis poseta podeljen ovim redom",
"RowActionTooltipWithDimension": "Prikaži zapis poseta podeljen %s",
"RowActionTooltipTitle": "Otvori podeljeni zapis psoeta",
- "SegmentedVisitorLogTitle": "Zapis poseta prikazuje posete kod kojih %s je \"%s\"",
+ "SegmentedVisitorLogTitle": "Zapis poseta prikazuje posete kod kojih %1$s je \"%2$s\"",
"OnClickPause": "%s je pokrenut. Kliknite za pauzu.",
"OnClickStart": "%s je zaustavljen. Kliknite za start."
}
diff --git a/plugins/Live/lang/sv.json b/plugins/Live/lang/sv.json
index 26610f850f..7e4b82f6d2 100644
--- a/plugins/Live/lang/sv.json
+++ b/plugins/Live/lang/sv.json
@@ -1,11 +1,10 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s övergivna korgar %3$s och %4$s övergivna varor %5$still ett värde av totalt %6$s%7$s.",
+ "AbandonedCartSummary": "%1$s övergivna varukorgar%2$s och %3$s övergivna varor%4$s värda totalt %5$s%6$s.",
"AveragePageGenerationTime": "Varje sida tog i genomsnitt %1$s att ladda för besökaren.",
"CalculatedOverNPageViews": "Beräknat på denna besöakrens senaste %1$s sidvisningar.",
"ClickToViewMoreAboutVisit": "Klicka för mer information om det här besöket",
"ConvertedNGoals": "Konverteringar %s Mål",
- "EcommerceSummaryConversions": "%1$s%2$s ordrar för totalt %3$s%4$s, köpt %5$s varor.",
"FirstVisit": "Första besöket",
"GoalType": "Sort",
"HideMap": "Dölj mapp",
@@ -25,15 +24,14 @@
"RealTimeVisitorCount": "Besöksräknare i realtid",
"Referrer_URL": "Hänvisningsadress",
"ShowMap": "Visa mapp",
- "SimpleRealTimeWidget_Message": "%s och %s dom senaste %s.",
+ "SimpleRealTimeWidget_Message": "%1$s och %2$s dom senaste %3$s.",
"ViewVisitorProfile": "Ny besöksprofil",
"VisitedPages": "Besökta sidor",
"VisitorLog": "Besökslogg",
- "VisitorLogDocumentation": "Denna tabell visar de senaste besök inom det valda datumintervallet. %s Om datumet inkluderar idag kan du se dina besökare i realtid! %s data som visas här är alltid live, oavsett om och hur ofta du använder cron-jobb för arkivering.",
+ "VisitorLogDocumentation": "Denna tabell visar de senaste besök inom det valda datumintervallet. %1$s Om datumet inkluderar idag kan du se dina besökare i realtid! %2$s data som visas här är alltid live, oavsett om och hur ofta du använder cron-jobb för arkivering.",
"VisitorProfile": "Besöksprofil",
"VisitorsInRealTime": "Besökare i realtid",
"VisitorsLastVisit": "Denna besökares senaste besök var %s dagar sedan.",
- "VisitsFrom": "%1$s%2$s besökta %3$s från",
- "VisitSummary": "Spenderade totalt %1$s%2$s på den här webbsidan%3$s, och %4$svar inne på %5$s sidor under %6$sbesöket. %7$s"
+ "VisitsFrom": "%1$s%2$s besökta %3$s från"
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/th.json b/plugins/Live/lang/th.json
index cc8ca1e901..40c9fd4ef8 100644
--- a/plugins/Live/lang/th.json
+++ b/plugins/Live/lang/th.json
@@ -7,7 +7,7 @@
"LinkVisitorLog": "ดูไฟล์ประวัติผู้เข้าชม",
"Referrer_URL": "ที่มา URL",
"VisitorLog": "ประวัติผู้เข้าชม",
- "VisitorLogDocumentation": "ตารางนี้แสดงการเข้าชมล่าสุดภายในช่วงวันที่ที่เลือก %s หากช่วงวันที่ที่รวมถึงวันนี้คุณสามารถเห็นผู้เข้าชมของคุณเวลาจริง! %s ข้อมูลที่แสดงที่นี่อยู่เสมอโดยไม่คำนึงว่าและความถี่ที่คุณกำลังใช้ cron job",
+ "VisitorLogDocumentation": "ตารางนี้แสดงการเข้าชมล่าสุดภายในช่วงวันที่ที่เลือก %1$s หากช่วงวันที่ที่รวมถึงวันนี้คุณสามารถเห็นผู้เข้าชมของคุณเวลาจริง! %2$s ข้อมูลที่แสดงที่นี่อยู่เสมอโดยไม่คำนึงว่าและความถี่ที่คุณกำลังใช้ cron job",
"VisitorsInRealTime": "ผู้เข้าชมในเวลาจริง"
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/tl.json b/plugins/Live/lang/tl.json
index 75df40235b..81fdec8e68 100644
--- a/plugins/Live/lang/tl.json
+++ b/plugins/Live/lang/tl.json
@@ -1,6 +1,5 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s inabandunang mga cart%3$s at %4$s inabandunang mga item %5$sna may halagang aabot sa total na %6$s%7$s.",
"AveragePageGenerationTime": "Bawat pahina ay umaabot ng %1$s upang mag-load para sa bisita.",
"CalculatedOverNPageViews": "Kinakalkula gamit ang huling %1$s page view ng bisita na ito.",
"ClickToViewMoreAboutVisit": "Pindutin dito upang makita ang marami pang impormasyon tungkol sa pagbisita.",
@@ -23,11 +22,11 @@
"RealTimeVisitorCount": "Real Time na bilang ng mga bisita",
"Referrer_URL": "Referrer URL",
"ShowMap": "ipakita ang mapa",
- "SimpleRealTimeWidget_Message": "%s at %s sa nakaraang %s",
+ "SimpleRealTimeWidget_Message": "%1$s at %2$s sa nakaraang %3$s",
"ViewVisitorProfile": "Tingnan ang profile ng bisita",
"VisitedPages": "Binisitang mga pahina",
"VisitorLog": "Log ng bisita",
- "VisitorLogDocumentation": "Ang table na ito ay nagpapakita ng mga pinakabagong mga pagbisita sa loob ng napiling hanay ng petsa. Maaari mong makita kung kelan ang huling pag bisita ng iyong bisita sa pamamagitan ng pag hover sa petsa ng pag bisita. %s Kung ang sakop ng petsa ay kaasama ngayon makikita mo ang lahat ng iyong mga bisita real time! %s Ang datus ng pinapakita dito ay laging live hindi alintana at kung gaano kadalas mo ginagamit ang archiving cron-job.",
+ "VisitorLogDocumentation": "Ang table na ito ay nagpapakita ng mga pinakabagong mga pagbisita sa loob ng napiling hanay ng petsa. Maaari mong makita kung kelan ang huling pag bisita ng iyong bisita sa pamamagitan ng pag hover sa petsa ng pag bisita. %1$s Kung ang sakop ng petsa ay kaasama ngayon makikita mo ang lahat ng iyong mga bisita real time! %2$s Ang datus ng pinapakita dito ay laging live hindi alintana at kung gaano kadalas mo ginagamit ang archiving cron-job.",
"VisitorProfile": "profile ng Bisita",
"VisitorsInRealTime": "Real time na pagbisita",
"VisitorsLastVisit": "Ang huling bisita ng bisitang ito ay %s araw na ang nakakalipas.",
diff --git a/plugins/Live/lang/vi.json b/plugins/Live/lang/vi.json
index 10697bbe84..56babf205b 100644
--- a/plugins/Live/lang/vi.json
+++ b/plugins/Live/lang/vi.json
@@ -1,11 +1,9 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s giỏ hàng bị quên %3$s và %4$s mặt hàng bị quên %5$s trị giá tổng cộng của %6$s%7$s.",
"AveragePageGenerationTime": "Mỗi trang mất trung bình %1$s để nạp cho khách truy cập này.",
"CalculatedOverNPageViews": "Việc tính toán sử dụng lượt xem trang %1$s cuối cùng của khách truy cập này.",
"ClickToViewMoreAboutVisit": "Click để xem thêm thông tin về lượt truy cập này",
"ConvertedNGoals": "%s Mục tiêu đã được chuyển đổi",
- "EcommerceSummaryConversions": "%1$s%2$s đơn đặt hàng với tổng số %3$s%4$s, %5$s các mặt hàng đã mua.",
"FirstVisit": "Lượt truy cập đầu tiên",
"GoalType": "Kiểu",
"HideMap": "Ẩn bản đồ",
@@ -25,15 +23,14 @@
"RealTimeVisitorCount": "Số lượt khách truy cập thời gian thực",
"Referrer_URL": "URL tham chiếu",
"ShowMap": "Hiện thị bản đồ",
- "SimpleRealTimeWidget_Message": "%s và %s trong %s cuối cùng",
+ "SimpleRealTimeWidget_Message": "%1$s và %2$s trong %3$s cuối cùng",
"ViewVisitorProfile": "Xem hồ sơ khách truy cập",
"VisitedPages": "Các trang đã truy cập",
"VisitorLog": "Khách truy cập đăng nhập",
- "VisitorLogDocumentation": "Bảng này cho thấy lần truy cập mới nhất trong phạm vi ngày đã chọn. Bạn có thể thấy khi một lượt truy cập cuối của khách truy cập đã xảy ra bằng cách lướt qua ngày của một truy cập.%s Nếu phạm vi ngày bao gồm ngày hôm nay, bạn có thể thấy khách truy cập thời gian thực của bạn! %s Dữ liệu hiển thị ở đây là luôn luôn sống, bất kể lúc nào và cách bạn thường đang sử dụng công việc lưu trữ theo định kỳ.",
+ "VisitorLogDocumentation": "Bảng này cho thấy lần truy cập mới nhất trong phạm vi ngày đã chọn. Bạn có thể thấy khi một lượt truy cập cuối của khách truy cập đã xảy ra bằng cách lướt qua ngày của một truy cập.%1$s Nếu phạm vi ngày bao gồm ngày hôm nay, bạn có thể thấy khách truy cập thời gian thực của bạn! %2$s Dữ liệu hiển thị ở đây là luôn luôn sống, bất kể lúc nào và cách bạn thường đang sử dụng công việc lưu trữ theo định kỳ.",
"VisitorProfile": "Hồ sơ cá nhân của khách",
"VisitorsInRealTime": "Các khách truy cập trong thời gian thực",
"VisitorsLastVisit": "Lần truy cập trước của khách truy cập này là %s ngày trước.",
- "VisitsFrom": "%1$s%2$s lượt truy cập %3$s từ",
- "VisitSummary": "Đã dành tổng cộng %1$s%2$s trên website %3$s, và %4$s đã xem %5$s trang trong %6$s lượt truy cập.%7$s"
+ "VisitsFrom": "%1$s%2$s lượt truy cập %3$s từ"
}
} \ No newline at end of file
diff --git a/plugins/Live/lang/zh-cn.json b/plugins/Live/lang/zh-cn.json
index b3e36afbe4..54e6ac56f1 100644
--- a/plugins/Live/lang/zh-cn.json
+++ b/plugins/Live/lang/zh-cn.json
@@ -1,11 +1,9 @@
{
"Live": {
- "AbandonedCartSummary": "%1$s%2$s 个丢弃的购物车%3$s 和 %4$s 个丢弃的产品 %5$s,总价值为 %6$s%7$s。",
"AveragePageGenerationTime": "这个访客的每个页面加载平均花 %1$s。",
"CalculatedOverNPageViews": "采用这个访客最后 %1$s 个访问页面统计。",
"ClickToViewMoreAboutVisit": "点击查看关于这次访问的详细信息。",
"ConvertedNGoals": "转化了 %s 个目标",
- "EcommerceSummaryConversions": "%1$s%2$s 个订单,总价值 %3$s%4$s,购买了 %5$s 个产品。",
"FirstVisit": "首次访问",
"GoalType": "类型",
"HideMap": "隐藏地图",
@@ -25,15 +23,14 @@
"RealTimeVisitorCount": "实时访客计数",
"Referrer_URL": "来源网址",
"ShowMap": "显示地图",
- "SimpleRealTimeWidget_Message": "%s 和 %s 在最近 %s。",
+ "SimpleRealTimeWidget_Message": "%1$s 和 %2$s 在最近 %3$s。",
"ViewVisitorProfile": "查看访客资料",
"VisitedPages": "访问的页面",
"VisitorLog": "访客日志",
- "VisitorLogDocumentation": "本表显示所选时间段内最新的访客资料,鼠标移到日期上可以查看上次访问时间,%s 如果时间段包含今天,您可以实时查看访客! %s 这里显示的数据总是实时的,无论是否使用定时处理任务。",
+ "VisitorLogDocumentation": "本表显示所选时间段内最新的访客资料,鼠标移到日期上可以查看上次访问时间,%1$s 如果时间段包含今天,您可以实时查看访客! %2$s 这里显示的数据总是实时的,无论是否使用定时处理任务。",
"VisitorProfile": "访客资料",
"VisitorsInRealTime": "实时访客",
"VisitorsLastVisit": "此访客上次访问是%s天前。",
- "VisitsFrom": "%1$s%2$s 次访问%3$s 来自",
- "VisitSummary": "停留了 %1$s%2$s 在网站%3$s,%4$s查看了 %5$s 个页面,访问次数 %6$s 。%7$s"
+ "VisitsFrom": "%1$s%2$s 次访问%3$s 来自"
}
} \ No newline at end of file
diff --git a/plugins/Live/stylesheets/live.less b/plugins/Live/stylesheets/live.less
index 230893a741..7bbdde4044 100644
--- a/plugins/Live/stylesheets/live.less
+++ b/plugins/Live/stylesheets/live.less
@@ -41,7 +41,7 @@
}
#visitsLive .settings {
- background: @theme-color-background-base none repeat scroll 0 0;
+ background: @theme-color-widget-background none repeat scroll 0 0;
}
#visitsLive .settings a {
@@ -312,4 +312,14 @@ a.visitor-log-visitor-profile-link {
.visitorReferrer {
clear:both;
padding-top: 1em;
-} \ No newline at end of file
+}
+
+.segmentedlog {
+ margin: 8px;
+ display: block;
+ background: transparent url('plugins/Live/images/visitorlog.png') no-repeat 0 0;
+ padding-left: 25px;
+}
+.segmentedlog:hover {
+ background-image: url('plugins/Live/images/visitorlog-hover.png');
+}
diff --git a/plugins/Live/templates/_dataTableViz_visitorLog.twig b/plugins/Live/templates/_dataTableViz_visitorLog.twig
index 16cac60b73..5ae56c9570 100644
--- a/plugins/Live/templates/_dataTableViz_visitorLog.twig
+++ b/plugins/Live/templates/_dataTableViz_visitorLog.twig
@@ -190,6 +190,7 @@ GPS (lat/long): {{ visitor.getColumn('latitude') }},{{ visitor.getColumn('longit
{% endif %}
<div class="col-md-{% if displayVisitorsInOwnColumn %}7{% else %}8{% endif %} column {% if visitor.getColumn('visitConverted') and not isWidget %}highlightField{% endif %}">
+ {{ postEvent('Live.visitorLogViewBeforeActionsInfo', visitor) }}
<div class="visitor-log-page-list">
<strong>
{{ visitor.getColumn('actionDetails')|length }}
@@ -205,6 +206,7 @@ GPS (lat/long): {{ visitor.getColumn('latitude') }},{{ visitor.getColumn('longit
{% include "@Live/_actionsList.twig" with {'actionDetails': visitor.getColumn('actionDetails')} %}
</ol>
</div>
+ {{ postEvent('Live.visitorLogViewAfterActionsInfo', visitor) }}
</div>
</div>
{% endset %}
diff --git a/plugins/Live/templates/getLastVisitsStart.twig b/plugins/Live/templates/getLastVisitsStart.twig
index e2a99e4dd9..59a4a1fb9d 100644
--- a/plugins/Live/templates/getLastVisitsStart.twig
+++ b/plugins/Live/templates/getLastVisitsStart.twig
@@ -7,6 +7,7 @@
<div style="display:none;" class="idvisit">{{ visitor.idVisit }}</div>
<div title="{{ visitor.actionDetails|length }} {{ 'General_Actions'|translate }}" class="datetime">
<span style="display:none;" class="serverTimestamp">{{ visitor.serverTimestamp|raw }}</span>
+ {{ postEvent('Live.visitorLogWidgetViewBeforeVisitInfo', visitor) }}
{% set year = visitor.serverTimestamp|date('Y') %}
{{ visitor.serverDatePretty|replace({(year): ' '}) }} - {{ visitor.serverTimePretty }} {% if visitor.visitDuration > 0 %}<em>({{ visitor.visitDurationPretty|raw }})</em>{% endif %}
{% if visitor.visitorId|default(false) is not empty %}
diff --git a/plugins/Live/templates/getVisitorProfilePopup.twig b/plugins/Live/templates/getVisitorProfilePopup.twig
index 2171d458f9..c41acd19a4 100644
--- a/plugins/Live/templates/getVisitorProfilePopup.twig
+++ b/plugins/Live/templates/getVisitorProfilePopup.twig
@@ -40,20 +40,30 @@
<div class="visitor-profile-summary">
<h1>{{ 'General_Summary'|translate }}</h1>
<div>
- <p>{{ 'Live_VisitSummary'|translate('<strong>' ~ visitorData.totalVisitDurationPretty ~ '</strong>', '', '', '<strong>', visitorData.totalActions, visitorData.totalVisits, '</strong>')|raw }}</p>
+ {% if visitorData.totalPageViews != visitorData.totalActions %}
+ {% set actionDetails = [] %}
+ {% if visitorData.totalPageViews > 0 %}{% set actionDetails = actionDetails|merge([visitorData.totalPageViews ~ ' ' ~ 'General_ColumnPageviews'|translate]) %}{% endif %}
+ {% if visitorData.totalEvents > 0 %}{% set actionDetails = actionDetails|merge([visitorData.totalEvents ~ ' ' ~ 'Events_Events'|translate]) %}{% endif %}
+ {% if visitorData.totalDownloads > 0 %}{% set actionDetails = actionDetails|merge([visitorData.totalDownloads ~ ' ' ~ 'General_Downloads'|translate]) %}{% endif %}
+ {% if visitorData.totalOutlinks > 0 %}{% set actionDetails = actionDetails|merge([visitorData.totalOutlinks ~ ' ' ~ 'General_Outlinks'|translate]) %}{% endif %}
+ {% if visitorData.totalSearches > 0 %}{% set actionDetails = actionDetails|merge([visitorData.totalSearches ~ ' ' ~ 'Actions_ColumnSearches'|translate]) %}{% endif %}
+ <p>{{ 'Live_VisitSummaryWithActionDetails'|translate('<strong>' ~ visitorData.totalVisitDurationPretty ~ '</strong>', '', '', '<strong>' ~ visitorData.totalActions, '</strong>', actionDetails|join(', ') , '<strong>' ~ visitorData.totalVisits, '</strong>')|raw }}</p>
+ {% else %}
+ <p>{{ 'Live_VisitSummary'|translate('<strong>' ~ visitorData.totalVisitDurationPretty ~ '</strong>', '', '', '<strong>' ~ visitorData.totalActions, '</strong>', '<strong>' ~ visitorData.totalVisits, '</strong>')|raw }}</p>
+ {% endif %}
<p>{% if visitorData.totalGoalConversions %}<strong>{% endif %}{{ 'Live_ConvertedNGoals'|translate(visitorData.totalGoalConversions) }}{% if visitorData.totalGoalConversions %}</strong>{% endif %}
{%- if visitorData.totalGoalConversions %} (
{%- for idGoal, totalConversions in visitorData.totalConversionsByGoal -%}
{%- set idGoal = idGoal[7:] -%}
- {%- if not loop.first %}, {% endif -%}{{- totalConversions }} <span class="visitor-profile-goal-name">{{ goals[idGoal]['name'] -}}</span>
+ {%- if not loop.first %}, {% endif -%}{{- totalConversions }} {{ goals[idGoal]['name'] -}}
{%- endfor -%}
){% endif %}.</p>
{% if visitorData.totalEcommerceConversions|default(0) > 0 or visitorData.totalAbandonedCarts|default(0) > 0%}
<p>
{{ 'Goals_Ecommerce'|translate }}:
- {%- if visitorData.totalEcommerceConversions|default(0) > 0 %} {{ 'Live_EcommerceSummaryConversions'|translate('<strong>', visitorData.totalEcommerceConversions, visitorData.totalEcommerceRevenue|money(idSite), '</strong>', visitorData.totalEcommerceItems)|raw }}
+ {%- if visitorData.totalEcommerceConversions|default(0) > 0 %} {{ 'Live_EcommerceSummaryConversions'|translate('<strong>' ~ visitorData.totalEcommerceConversions, '</strong>', '<strong>' ~ visitorData.totalEcommerceRevenue|money(idSite), '</strong>', '<strong>' ~ visitorData.totalEcommerceItems, '</strong>')|raw }}
{%- endif -%}
- {%- if visitorData.totalAbandonedCarts|default(0) > 0 %} {{ 'Live_AbandonedCartSummary'|translate('<strong>', visitorData.totalAbandonedCarts, '</strong>', visitorData.totalAbandonedCartsItems, '<strong>', visitorData.totalAbandonedCartsRevenue|money(idSite), '</strong>')|raw }}{%- endif -%}
+ {%- if visitorData.totalAbandonedCarts|default(0) > 0 %} {{ 'Live_AbandonedCartSummary'|translate('<strong>' ~ visitorData.totalAbandonedCarts, '</strong>', '<strong>' ~ visitorData.totalAbandonedCartsItems, '</strong>', '<strong>' ~ visitorData.totalAbandonedCartsRevenue|money(idSite), '</strong>')|raw }}{%- endif -%}
</p>
{% endif %}
{% if visitorData.totalSearches|default(0) %}
@@ -74,18 +84,18 @@
<div>
<h1>{% if visitorData.visitsAggregated == 100 %}{{ 'General_Visit'|translate }}# 100{% else %}{{ 'Live_FirstVisit'|translate }}{% endif %}</h1>
<div>
- <p><strong>{{ visitorData.firstVisit.prettyDate }}</strong><span>&nbsp;- {{ 'UserCountryMap_DaysAgo'|translate(visitorData.firstVisit.daysAgo) }}</span></p>
- <p><span>{{ 'General_FromReferrer'|translate }}</span>
- <strong {% if visitorData.firstVisit.referrerType == 'search' and '(' not in visitorData.firstVisit.referralSummary %}title="{{ keywordNotDefined }}"{% endif %}>{{ visitorData.firstVisit.referralSummary }}</strong></p>
+ <p><strong>{{ visitorData.firstVisit.prettyDate }}</strong>&nbsp;- {{ 'UserCountryMap_DaysAgo'|translate(visitorData.firstVisit.daysAgo) }}</p>
+ <p>
+ {{ 'General_FromReferrer'|translate }}<strong {% if visitorData.firstVisit.referrerType == 'search' and '(' not in visitorData.firstVisit.referralSummary %}title="{{ keywordNotDefined }}"{% endif %}>{{ visitorData.firstVisit.referralSummary }}</strong></p>
</div>
</div>
{% if visitorData.lastVisits.getRowsCount() != 1 %}
<div>
<h1>{{ 'Live_LastVisit'|translate }}</h1>
<div>
- <p><strong>{{ visitorData.lastVisit.prettyDate }}</strong><span>&nbsp;- {{ 'UserCountryMap_DaysAgo'|translate(visitorData.lastVisit.daysAgo) }}</span></p>
- <p><span>{{ 'General_FromReferrer'|translate }}</span>
- <strong {% if visitorData.lastVisit.referrerType == 'search' and '(' not in visitorData.lastVisit.referralSummary %}title="{{ keywordNotDefined }}"{% endif %}>{{ visitorData.lastVisit.referralSummary }}</strong></p>
+ <p><strong>{{ visitorData.lastVisit.prettyDate }}</strong>&nbsp;- {{ 'UserCountryMap_DaysAgo'|translate(visitorData.lastVisit.daysAgo) }}</p>
+ <p>
+ {{ 'General_FromReferrer'|translate }}<strong {% if visitorData.lastVisit.referrerType == 'search' and '(' not in visitorData.lastVisit.referralSummary %}title="{{ keywordNotDefined }}"{% endif %}>{{ visitorData.lastVisit.referralSummary }}</strong></p>
</div>
</div>
{% endif %}
diff --git a/plugins/Live/tests/Integration/ModelTest.php b/plugins/Live/tests/Integration/ModelTest.php
index 1bc14d6375..355f1fb777 100644
--- a/plugins/Live/tests/Integration/ModelTest.php
+++ b/plugins/Live/tests/Integration/ModelTest.php
@@ -9,6 +9,7 @@
namespace Piwik\Plugins\Live\tests\Integration;
use Piwik\Common;
+use Piwik\Piwik;
use Piwik\Plugins\Live\Model;
use Piwik\Tests\Framework\Fixture;
use Piwik\Tests\Framework\Mock\FakeAccess;
@@ -66,6 +67,48 @@ class ModelTest extends IntegrationTestCase
$this->assertEquals(SegmentTest::removeExtraWhiteSpaces($expectedBind), SegmentTest::removeExtraWhiteSpaces($bind));
}
+ public function test_makeLogVisitsQueryString_withMultipleIdSites()
+ {
+ Piwik::addAction('Live.API.getIdSitesString', function (&$idSites) {
+ $idSites = array(2,3,4);
+ });
+
+ $model = new Model();
+ list($sql, $bind) = $model->makeLogVisitsQueryString(
+ $idSite = 1,
+ $period = 'month',
+ $date = '2010-01-01',
+ $segment = false,
+ $offset = 0,
+ $limit = 100,
+ $visitorId = false,
+ $minTimestamp = false,
+ $filterSortOrder = false
+ );
+ $expectedSql = ' SELECT sub.* FROM
+ (
+ SELECT log_visit.*
+ FROM ' . Common::prefixTable('log_visit') . ' AS log_visit
+ WHERE log_visit.idsite in (?,?,?)
+ AND log_visit.visit_last_action_time >= ?
+ AND log_visit.visit_last_action_time <= ?
+ ORDER BY visit_last_action_time DESC
+ LIMIT 100
+ ) AS sub
+ GROUP BY sub.idvisit
+ ORDER BY sub.visit_last_action_time DESC
+ ';
+ $expectedBind = array(
+ '2',
+ '3',
+ '4',
+ '2010-01-01 00:00:00',
+ '2010-02-01 00:00:00',
+ );
+ $this->assertEquals(SegmentTest::removeExtraWhiteSpaces($expectedSql), SegmentTest::removeExtraWhiteSpaces($sql));
+ $this->assertEquals(SegmentTest::removeExtraWhiteSpaces($expectedBind), SegmentTest::removeExtraWhiteSpaces($bind));
+ }
+
public function test_makeLogVisitsQueryStringWithOffset()
{
$model = new Model();
diff --git a/plugins/Live/tests/System/expected/test___Live.getVisitorProfile.xml b/plugins/Live/tests/System/expected/test___Live.getVisitorProfile.xml
index 25b150b17b..5a85f3d795 100644
--- a/plugins/Live/tests/System/expected/test___Live.getVisitorProfile.xml
+++ b/plugins/Live/tests/System/expected/test___Live.getVisitorProfile.xml
@@ -3,7 +3,11 @@
<totalVisits>31</totalVisits>
<totalVisitDuration>0</totalVisitDuration>
<totalActions>31</totalActions>
+ <totalEvents>0</totalEvents>
+ <totalOutlinks>0</totalOutlinks>
+ <totalDownloads>0</totalDownloads>
<totalSearches>0</totalSearches>
+ <totalPageViews>31</totalPageViews>
<totalPageViewsWithTiming>0</totalPageViewsWithTiming>
<totalGoalConversions>0</totalGoalConversions>
<totalConversionsByGoal>
diff --git a/plugins/Live/tests/System/expected/test_higherLimit__Live.getVisitorProfile.xml b/plugins/Live/tests/System/expected/test_higherLimit__Live.getVisitorProfile.xml
index c5e105bab3..135d6e020a 100644
--- a/plugins/Live/tests/System/expected/test_higherLimit__Live.getVisitorProfile.xml
+++ b/plugins/Live/tests/System/expected/test_higherLimit__Live.getVisitorProfile.xml
@@ -3,7 +3,11 @@
<totalVisits>31</totalVisits>
<totalVisitDuration>0</totalVisitDuration>
<totalActions>31</totalActions>
+ <totalEvents>0</totalEvents>
+ <totalOutlinks>0</totalOutlinks>
+ <totalDownloads>0</totalDownloads>
<totalSearches>0</totalSearches>
+ <totalPageViews>31</totalPageViews>
<totalPageViewsWithTiming>0</totalPageViewsWithTiming>
<totalGoalConversions>0</totalGoalConversions>
<totalConversionsByGoal>
diff --git a/plugins/LogViewer b/plugins/LogViewer
-Subproject 0ee846df5038e82a87abb98e35b4d7cd1718d22
+Subproject 1703d7536e39240643204a1f334d8b8da6cd6fc
diff --git a/plugins/Login/Auth.php b/plugins/Login/Auth.php
index b05d31f32e..2de99c6934 100644
--- a/plugins/Login/Auth.php
+++ b/plugins/Login/Auth.php
@@ -11,14 +11,16 @@ namespace Piwik\Plugins\Login;
use Exception;
use Piwik\AuthResult;
use Piwik\Db;
+use Piwik\Piwik;
use Piwik\Plugins\UsersManager\Model;
+use Piwik\Plugins\UsersManager\UsersManager;
use Piwik\Session;
class Auth implements \Piwik\Auth
{
protected $login;
protected $token_auth;
- protected $md5Password;
+ protected $hashedPassword;
/**
* @var Model
@@ -47,7 +49,7 @@ class Auth implements \Piwik\Auth
*/
public function authenticate()
{
- if (!empty($this->md5Password)) { // favor authenticating by password
+ if (!empty($this->hashedPassword)) { // favor authenticating by password
return $this->authenticateWithPassword($this->login, $this->getTokenAuthSecret());
} elseif (is_null($this->login)) {
return $this->authenticateWithToken($this->token_auth);
@@ -132,7 +134,7 @@ class Auth implements \Piwik\Auth
*/
public function getTokenAuthSecret()
{
- return $this->md5Password;
+ return $this->hashedPassword;
}
/**
@@ -153,9 +155,9 @@ class Auth implements \Piwik\Auth
public function setPassword($password)
{
if (empty($password)) {
- $this->md5Password = null;
+ $this->hashedPassword = null;
} else {
- $this->md5Password = md5($password);
+ $this->hashedPassword = UsersManager::getPasswordHash($password);
}
}
@@ -163,19 +165,17 @@ class Auth implements \Piwik\Auth
* Sets the password hash to use when authentication.
*
* @param string $passwordHash The password hash.
- * @throws Exception if $passwordHash does not have 32 characters in it.
*/
public function setPasswordHash($passwordHash)
{
if ($passwordHash === null) {
- $this->md5Password = null;
+ $this->hashedPassword = null;
return;
}
- if (strlen($passwordHash) != 32) {
- throw new Exception("Invalid hash: incorrect length " . strlen($passwordHash));
- }
+ // check that the password hash is valid (sanity check)
+ UsersManager::checkPasswordHash($passwordHash, Piwik::translate('Login_ExceptionPasswordMD5HashExpected'));
- $this->md5Password = $passwordHash;
+ $this->hashedPassword = $passwordHash;
}
}
diff --git a/plugins/Login/Controller.php b/plugins/Login/Controller.php
index 74a546d01b..707f9a2c9f 100644
--- a/plugins/Login/Controller.php
+++ b/plugins/Login/Controller.php
@@ -48,7 +48,7 @@ class Controller extends \Piwik\Plugin\Controller
* @param PasswordResetter $passwordResetter
* @param AuthInterface $auth
* @param SessionInitializer $authenticatedSessionFactory
-\ */
+ */
public function __construct($passwordResetter = null, $auth = null, $sessionInitializer = null)
{
parent::__construct();
@@ -184,9 +184,10 @@ class Controller extends \Piwik\Plugin\Controller
* Authenticate user and password. Redirect if successful.
*
* @param string $login user name
- * @param string $password md5 password
+ * @param string $password plain-text or hashed password
* @param bool $rememberMe Remember me?
* @param string $urlToRedirect URL to redirect to, if successfully authenticated
+ * @param bool $passwordHashed indicates if $password is hashed
* @return string failure message if unable to authenticate
*/
protected function authenticateAndRedirect($login, $password, $rememberMe, $urlToRedirect = false, $passwordHashed = false)
diff --git a/plugins/Login/PasswordResetter.php b/plugins/Login/PasswordResetter.php
index d2631abdf9..ebbc7577cd 100644
--- a/plugins/Login/PasswordResetter.php
+++ b/plugins/Login/PasswordResetter.php
@@ -310,7 +310,7 @@ class PasswordResetter
}
/**
- * Hashes a string. By default generates an MD5 hash.
+ * Hashes a string.
*
* Derived classes can override this to provide a different hashing implementation.
*
@@ -378,14 +378,12 @@ class PasswordResetter
*
* Derived classes can override this method to provide fewer or more checks.
*
- * @param string $password The password to check.
- * @throws Exception if the password is not 32 bytes long.
+ * @param string $passwordHash The password hash to check.
+ * @throws Exception if the password hash length is incorrect.
*/
- protected function checkPasswordHash($password)
+ protected function checkPasswordHash($passwordHash)
{
- if (strlen($password) != 32) {
- throw new Exception(Piwik::translate('Login_ExceptionPasswordMD5HashExpected'));
- }
+ UsersManager::checkPasswordHash($passwordHash, Piwik::translate('Login_ExceptionPasswordMD5HashExpected'));
}
/**
@@ -477,4 +475,4 @@ class PasswordResetter
{
return $login . '_reset_password_info';
}
-} \ No newline at end of file
+}
diff --git a/plugins/Login/lang/ar.json b/plugins/Login/lang/ar.json
index d017f60adc..08c035af34 100644
--- a/plugins/Login/lang/ar.json
+++ b/plugins/Login/lang/ar.json
@@ -2,7 +2,7 @@
"Login": {
"ContactAdmin": "الأسباب المحتملة: قد يكون مستضيف الموقع قد عطل خاصية mail().<br\/> الرجاء الاتصال بمدير Piwik.",
"ExceptionPasswordMD5HashExpected": "باراميتر كلمة المرور كان يتوقع أن يكون MD5 hash لكلمة المرور.",
- "InvalidNonceOrHeadersOrReferrer": "فشل نموذج الأمن. الرجاء إعادة تحديث النموذج وفحص ما إذا كانت الكوكيز مفعلة لديك. إذا كنت تستخدم ملقم بروكسي، يتوجب عليك %s ضبط Piwik ليقبل ترويسات البروكسي %s والتي ترسل ترويسة المضيف. أيضاً افحص ما إذا كان يتم إرسال ترويسة المرسل بشكل صحيح.",
+ "InvalidNonceOrHeadersOrReferrer": "فشل نموذج الأمن. الرجاء إعادة تحديث النموذج وفحص ما إذا كانت الكوكيز مفعلة لديك. إذا كنت تستخدم ملقم بروكسي، يتوجب عليك %1$s ضبط Piwik ليقبل ترويسات البروكسي %2$s والتي ترسل ترويسة المضيف. أيضاً افحص ما إذا كان يتم إرسال ترويسة المرسل بشكل صحيح.",
"InvalidOrExpiredToken": "الشفرة غير صالحة أو انتهت صلاحيتها",
"InvalidUsernameEmail": "اسم المستخدم\/البريد الإلكتروني غير صالح",
"LogIn": "تسجيل الدخول",
diff --git a/plugins/Login/lang/be.json b/plugins/Login/lang/be.json
index f730289526..68e273be9e 100644
--- a/plugins/Login/lang/be.json
+++ b/plugins/Login/lang/be.json
@@ -2,7 +2,7 @@
"Login": {
"ContactAdmin": "Магчымы чыннік: функцыя mail() адключана. <br \/>Калі ласка, звяжыцеся з адміністратарам.",
"ExceptionPasswordMD5HashExpected": "Параметр пароля апынуўся MD5-хэшаваным паролям.",
- "InvalidNonceOrHeadersOrReferrer": "Бяспека формы не атрымалася. Калі ласка, перазагрузіце форму і пераканаецеся, што вашы cookies ўключаны. Калі вы выкарыстоўваеце проксі-сервер, то неабходна %s наладзіць Piwik да прыняцця проксі загалоўкаў%s, якія перанакіроўваюць да загалоўкаў вузлоў. Акрамя таго, праверце, што ваш Referer загаловак перадаецца правільна.",
+ "InvalidNonceOrHeadersOrReferrer": "Бяспека формы не атрымалася. Калі ласка, перазагрузіце форму і пераканаецеся, што вашы cookies ўключаны. Калі вы выкарыстоўваеце проксі-сервер, то неабходна %1$s наладзіць Piwik да прыняцця проксі загалоўкаў%2$s, якія перанакіроўваюць да загалоўкаў вузлоў. Акрамя таго, праверце, што ваш Referer загаловак перадаецца правільна.",
"InvalidOrExpiredToken": "Токэн з'яўляецца несапраўдным або мінуў.",
"InvalidUsernameEmail": "Няслушнае імя карыстача і\/ці e-mail",
"LogIn": "Увайсці",
diff --git a/plugins/Login/lang/bg.json b/plugins/Login/lang/bg.json
index 2e80e5cf9d..4044f52a62 100644
--- a/plugins/Login/lang/bg.json
+++ b/plugins/Login/lang/bg.json
@@ -3,7 +3,7 @@
"ConfirmationLinkSent": "Изпратена е връзка за потвърждение. Проверете пощенската си кутия, за да потвърдите заявката за смяна на парола.",
"ContactAdmin": "Възможни причини: функцията mail() е липсваща или забранена на сървъра. <br \/>Свържете се с вашия Piwik администратор.",
"ExceptionPasswordMD5HashExpected": "Параметърът на паролата се очаква да бъде MD5 хеш на парола.",
- "InvalidNonceOrHeadersOrReferrer": "Сигурността на формата е нарушена. Моля презаредете формата и проверете отново дали бисквитките са включени. Ако използвате прокси сървър, трябва да %s конфигурирате Piwik да приема хеадъра%s на проксито, който препраща хост хеадъра. Също така проверете, дали вашият хеадър за прапращане(Referer header) е изпратен правилно.",
+ "InvalidNonceOrHeadersOrReferrer": "Сигурността на формата е нарушена. Моля презаредете формата и проверете отново дали бисквитките са включени. Ако използвате прокси сървър, трябва да %1$s конфигурирате Piwik да приема хеадъра%2$s на проксито, който препраща хост хеадъра. Също така проверете, дали вашият хеадър за прапращане(Referer header) е изпратен правилно.",
"InvalidOrExpiredToken": "Token е грешен или изтекъл",
"InvalidUsernameEmail": "Грешно потребителско име и\/или имейл адрес",
"LogIn": "Вход",
diff --git a/plugins/Login/lang/ca.json b/plugins/Login/lang/ca.json
index 122d30eab0..6a70ee8a50 100644
--- a/plugins/Login/lang/ca.json
+++ b/plugins/Login/lang/ca.json
@@ -4,7 +4,7 @@
"ContactAdmin": "Possiblement sigui perquè el vostre proveïdor d'allotjament ha desactivat la funció mail().<br \/>Contacteu amb l'administrador del lloc.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "No es pot autentificar mitjançant el mecanisme '%s' un usuari amb accessos de super usuari.",
"ExceptionPasswordMD5HashExpected": "El paràmetre contrasenya hauria de ser un hash MD5 de la contrasenya.",
- "InvalidNonceOrHeadersOrReferrer": "El formulari de seguretat ha fallat. Sisuplau recarregeu el formaulari i reviseu que teniu les cookies activades. Si feu servir un proxy, heu de %s configurar el Piwik per a que accepti la capcelera del proxy %s que conté la capçalera del host. També reviseu que el la vostra capçalera de referent s'envia correctament.",
+ "InvalidNonceOrHeadersOrReferrer": "El formulari de seguretat ha fallat. Sisuplau recarregeu el formaulari i reviseu que teniu les cookies activades. Si feu servir un proxy, heu de %1$s configurar el Piwik per a que accepti la capcelera del proxy %2$s que conté la capçalera del host. També reviseu que el la vostra capçalera de referent s'envia correctament.",
"InvalidOrExpiredToken": "El codi és invàlid o ha caducat",
"InvalidUsernameEmail": "Aquest usuari i\/o direcció de correu-e és invàlid.",
"LogIn": "Inicia la sessió",
diff --git a/plugins/Login/lang/cs.json b/plugins/Login/lang/cs.json
index 8dc2f4f2f0..46ba3eff8b 100644
--- a/plugins/Login/lang/cs.json
+++ b/plugins/Login/lang/cs.json
@@ -1,14 +1,15 @@
{
"Login": {
- "ConfirmationLinkSent": "Do vaší schránky byl odeslán potvrzovací email. Pro potvrzení požadavku na změnu hesla navštivte odkaz uvedený v emailu.",
+ "ConfirmationLinkSent": "Do vaší schránky byl odeslán potvrzovací e-mail. Pro potvrzení požadavku na změnu hesla navštivte odkaz uvedený v e-mailu.",
"ContactAdmin": "Možná příčina: Váš hosting zakázal funkci mail().. <br \/>Prosím kontaktujte svého administrátora Piwiku.",
- "ExceptionInvalidSuperUserAccessAuthenticationMethod": "Uživatel se Super uživatelským přístupem nemůže být autentizován mechanismem %s.",
+ "ExceptionInvalidSuperUserAccessAuthenticationMethod": "Uživatel se super-uživatelským přístupem nemůže být ověřen mechanismem %s.",
"ExceptionPasswordMD5HashExpected": "Parametr hesla je očekáván jako MD5 hash hesla",
- "InvalidNonceOrHeadersOrReferrer": "Zabezpečení formuláře selhalo. Prosím obnovte formulář a zkontrolujte, že máte povolené cookies. Pokud používáte proxy server, %smusíte nakonfigurovat Piwik aby přijímal proxy hlavičku%s, která přeposílá hlavičku hosta. Zkontrolujte také, že je správně posílána hlavička referrer.",
+ "InvalidNonceOrHeadersOrReferrer": "Zabezpečení formuláře selhalo. Prosím obnovte formulář a zkontrolujte, že máte povolené cookies. Pokud používáte proxy server, %1$smusíte nakonfigurovat Piwik aby přijímal proxy hlavičku%2$s, která přeposílá hlavičku hosta. Zkontrolujte také, že je správně posílána hlavička referrer.",
+ "InvalidNonceSSLMisconfigured": "Můžete také %1$s přinutit Piwik používat zabezpečené připojení%2$s: ve svém konfiguračním souboru %3$s nastavte %4$s pod sekci %5$s",
"InvalidOrExpiredToken": "Klíč je neplatný, nebo vypršel",
- "InvalidUsernameEmail": "Neplatné uživatelské jméno a\/nebo emailová adresa",
+ "InvalidUsernameEmail": "Neplatné uživatelské jméno a\/nebo e-mailová adresa",
"LogIn": "Přihlásit",
- "LoginOrEmail": "Uživatelské jméno nebo Email",
+ "LoginOrEmail": "Uživatelské jméno nebo E-mail",
"LoginPasswordNotCorrect": "Chybná kombinace uživatelského jména a hesla.",
"LostYourPassword": "Zapomněli jste vaše heslo?",
"MailPasswordChangeBody": "Ahoj %1$s,\n\nZ %2$s byl zaslán požadavek o změnu hesla. Pro potvrzení nových přihlašovacích údajů navštivte následující odkaz:\n\n%3$s\n\nPoznámka: Tento token je platný 24 hodin.\n\nA díky za používání Piwiku!",
diff --git a/plugins/Login/lang/da.json b/plugins/Login/lang/da.json
index 0815389fe4..dd97a5e577 100644
--- a/plugins/Login/lang/da.json
+++ b/plugins/Login/lang/da.json
@@ -4,7 +4,7 @@
"ContactAdmin": "Mulig årsag: udbyderen har måske deaktiveret mail()-funktionen. <br \/>Kontakt Piwik administrator.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "En bruger med superbruger adgang kan ikke godkendes ved hjælp af '%s' mekanisme.",
"ExceptionPasswordMD5HashExpected": "Adgangskode parameteren forventes at være en MD5 hash af adgangskoden.",
- "InvalidNonceOrHeadersOrReferrer": "Formularsikkerhed fejlede. Genindlæs formularen og kontroller, at dine cookies er aktiveret. Hvis du bruger en proxyserver, skal du %s konfigurere Piwik til at acceptere proxyheaderen%s, der videresender hostheaderen. Kontroller også, at din Referer header er sendt korrekt",
+ "InvalidNonceOrHeadersOrReferrer": "Formularsikkerhed fejlede. Genindlæs formularen og kontroller, at dine cookies er aktiveret. Hvis du bruger en proxyserver, skal du %1$s konfigurere Piwik til at acceptere proxyheaderen%2$s, der videresender hostheaderen. Kontroller også, at din Referer header er sendt korrekt",
"InvalidOrExpiredToken": "Nøglen er forkert eller udløbet",
"InvalidUsernameEmail": "Fejl i brugernavn og\/eller e-mail-adresse.",
"LogIn": "Log på",
diff --git a/plugins/Login/lang/de.json b/plugins/Login/lang/de.json
index 1948ed9dad..15618ddbdf 100644
--- a/plugins/Login/lang/de.json
+++ b/plugins/Login/lang/de.json
@@ -2,9 +2,9 @@
"Login": {
"ConfirmationLinkSent": "Ein Bestätigungslink wurde an Ihren Posteingang verschickt. Überprüfen Sie Ihre E-Mails und besuchen diesen Link um die Passwortänderung zu bestätigen.",
"ContactAdmin": "Möglicher Grund: Der Server könnte die mail()-Funktion deaktiviert haben.<br\/>Bitte sprechen Sie mit Ihrem Piwik-Administrator.",
- "ExceptionInvalidSuperUserAccessAuthenticationMethod": "Ein Benutzer mit Hauptadministrator-Berechtigung kann nicht mit der Methode '%s' authentifiziert werden.",
- "ExceptionPasswordMD5HashExpected": "Der 'password'-Parameter wird als MD5-Hash des Passworts erwartet.",
- "InvalidNonceOrHeadersOrReferrer": "Sicherheitschecks fehlgeschlagen. Bitte laden Sie das Formular erneut und prüfen Sie, ob Ihr Browser Cookies zulässt. Wenn Sie einen Proxy Server verwenden, müssen Sie %sPiwik so einrichten, dass es Proxy Header akzeptiert%s.",
+ "ExceptionInvalidSuperUserAccessAuthenticationMethod": "Ein Benutzer mit Systemverwaltunszugriff kann nicht mit der Methode »%s« legitimiert werden.",
+ "ExceptionPasswordMD5HashExpected": "Der Parameter »password« wird als MD5-Hash des Passwortes erwartet.",
+ "InvalidNonceOrHeadersOrReferrer": "Sicherheitschecks fehlgeschlagen. Bitte laden Sie das Formular erneut und prüfen Sie, ob Ihr Browser Cookies zulässt. Wenn Sie einen Proxy Server verwenden, müssen Sie %1$sPiwik so einrichten, dass es Proxy Header akzeptiert%2$s.",
"InvalidOrExpiredToken": "Der Token ist ungültig oder dessen Gültigkeitsdauer ist bereits abgelaufen.",
"InvalidUsernameEmail": "Ungültiger Bernutzername und\/oder E-Mail-Adresse",
"LogIn": "Anmelden",
diff --git a/plugins/Login/lang/el.json b/plugins/Login/lang/el.json
index b68a6f18ab..c4caac5e6e 100644
--- a/plugins/Login/lang/el.json
+++ b/plugins/Login/lang/el.json
@@ -4,7 +4,8 @@
"ContactAdmin": "Πιθανή αιτία: ο διακομιστής έχει απενεργοποιημένη τη συνάρτηση mail() <br \/>Επικοινωνήστε με τον διαχειριστή.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "Ένας χρήστης με δικαίωμα Υπερ-Χρήστη μπορεί να πιστοποιηθεί χρησιμοποιώντας το μηχανισμό '%s'.",
"ExceptionPasswordMD5HashExpected": "Η παράμετρος του κωδικού πρόσβασης αναμενόταν να είναι ο αριθμός MD5 του κωδικού πρόσβασης.",
- "InvalidNonceOrHeadersOrReferrer": "Η ασφάλεια της φόρμας απέτυχε. Επαναφορτώστε τη φόρμα και ελέγξτε ότι είναι ενεργοποιημένα τα cookies. Αν χρησιμοποιείτε διακομιστή μεσολάβησης, πρέπει να %sρυθμίσετε το Piwik να δέχεται την κεφαλίδα proxy%s που προωθεί την κεφαλίδα του διακομιστή. Επίσης, ελέγξτε ότι η κεφαλίδα Αναφορέα στέλνεται σωστά.",
+ "InvalidNonceOrHeadersOrReferrer": "Η ασφάλεια της φόρμας απέτυχε. Παρακαλώ επαναφορτώστε τη φόρμα και ελέγξτε αν τα cookies είναι ενεργοποιημένα. Αν χρησιμοποιείτε κάποιο διακομιστή μεσολάβησης, θα πρέπει να %1$s παραμετροποιήσετε το Piwik να δέχεται τις κεφαλίδες του μεσολαβητή%2$s που προωθούν την κεφαλίδα Host. Επίσης, ελέγξτε αν η κεφαλίδα Referrer αποστέλλεται σωστά.",
+ "InvalidNonceSSLMisconfigured": "Επίσης, μπορείτε να %1$sαναγκάσετε το Piwik να χρησιμοποιεί ασφαλή σύνδεση%2$s: στο αρχείο ρυθμίσεων %3$s ορίστε το %4$s στο παρακάτω τμήμα %5$s",
"InvalidOrExpiredToken": "Το τεκμήριο είναι άκυρο ή έχει λήξει",
"InvalidUsernameEmail": "Λανθασμένο όνομα χρήστη ή\/και λάθος ηλεκτρονική διεύθυνση",
"LogIn": "Σύνδεση",
diff --git a/plugins/Login/lang/en.json b/plugins/Login/lang/en.json
index ad7d3524f0..7597684359 100644
--- a/plugins/Login/lang/en.json
+++ b/plugins/Login/lang/en.json
@@ -4,7 +4,7 @@
"ContactAdmin": "Possible reason: your host may have disabled the mail() function. <br \/>Please contact your Piwik administrator.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "A user with Super User access cannot be authenticated using the '%s' mechanism.",
"ExceptionPasswordMD5HashExpected": "The password parameter is expected to be a MD5 hash of the password.",
- "InvalidNonceOrHeadersOrReferrer": "Form security failed. Please reload the form and check that your cookies are enabled. If you use a proxy server, you must %s configure Piwik to accept the proxy header%s that forwards the Host header. Also, check that your Referrer header is sent correctly.",
+ "InvalidNonceOrHeadersOrReferrer": "Form security failed. Please reload the form and check that your cookies are enabled. If you use a proxy server, you must %1$s configure Piwik to accept the proxy header%2$s that forwards the Host header. Also, check that your Referrer header is sent correctly.",
"InvalidNonceSSLMisconfigured": "Also, you may %1$s force Piwik to use a secure connection%2$s: in your config file %3$s set %4$s below section %5$s",
"InvalidOrExpiredToken": "Token is invalid or has expired.",
"InvalidUsernameEmail": "Invalid username or e-mail address.",
@@ -21,4 +21,4 @@
"RememberMe": "Remember Me",
"ResetPasswordInstructions": "Enter a new password for your account."
}
-}
+} \ No newline at end of file
diff --git a/plugins/Login/lang/es.json b/plugins/Login/lang/es.json
index 5a855159f5..113da72c49 100644
--- a/plugins/Login/lang/es.json
+++ b/plugins/Login/lang/es.json
@@ -4,7 +4,7 @@
"ContactAdmin": "Posible razón: su servicio de alojamiento puede tener deshabilitado la función mail(). <br \/>Por favor contáctese con su administrador de Piwik.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "Un usuario con acceso Super Usuario no puede ser autenticado usando el mecanismo '%s'.",
"ExceptionPasswordMD5HashExpected": "Se espera que el parámetro contraseña sea un hash MD5 de la contraseña.",
- "InvalidNonceOrHeadersOrReferrer": "La seguridad del formulario falló. Por favor cargue nuevamente el formulario y compruebe que sus cookies están habilitadas. Si usa un proxy, debe %s configurar Piwik para aceptar la cabecera proxy%s que precede a la cabecera Host. Compruebe también que su cabecera Referrer se envía correctamente.",
+ "InvalidNonceOrHeadersOrReferrer": "La seguridad del formulario falló. Por favor cargue nuevamente el formulario y compruebe que sus cookies están habilitadas. Si usa un proxy, debe %1$s configurar Piwik para aceptar la cabecera proxy%2$s que precede a la cabecera Host. Compruebe también que su cabecera Referrer se envía correctamente.",
"InvalidOrExpiredToken": "El Token no es válido o ha caducado",
"InvalidUsernameEmail": "Nombre de usuario y\/o correo electrónico incorrectos.",
"LogIn": "Iniciar sesión",
diff --git a/plugins/Login/lang/fi.json b/plugins/Login/lang/fi.json
index 782204bc2e..c2a5ca27d5 100644
--- a/plugins/Login/lang/fi.json
+++ b/plugins/Login/lang/fi.json
@@ -4,7 +4,7 @@
"ContactAdmin": "Mahdollisia syitä: palvelin ei välttämättä salli sähköpostien lähetystä (mail()-funktiota).<br\/>Ota yhteyttä Piwikin ylläpitäjään.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "Käyttäjää, jolla on Superkäyttäjäoikeudet, ei voida todentaa käyttämällä '%s' mekanismia.",
"ExceptionPasswordMD5HashExpected": "Salasanaparametrin kuuluu olla MD5-tiiviste salasanasta.",
- "InvalidNonceOrHeadersOrReferrer": "Lomakkeen turvatarkastus epäonnistui. Lataa lomake uudelleen, ja tarkista että evästeet on sallittu. Jos käytät välityspalvelinta, sinun täytyy %s säätää Piwik sallimaan välityspalvelimen otsake %s joka välittää Host-otsakkeen. Tarkista, että \"Referer\"-otsake lähetetään oikein.",
+ "InvalidNonceOrHeadersOrReferrer": "Lomakkeen turvatarkastus epäonnistui. Lataa lomake uudelleen, ja tarkista että evästeet on sallittu. Jos käytät välityspalvelinta, sinun täytyy %1$s säätää Piwik sallimaan välityspalvelimen otsake %2$s joka välittää Host-otsakkeen. Tarkista, että \"Referer\"-otsake lähetetään oikein.",
"InvalidOrExpiredToken": "Virheellinen tai vanhentunut tunnistautuminen",
"InvalidUsernameEmail": "Virheellinen käyttäjätunnus ja\/tai sähköpostiosoite",
"LogIn": "Kirjaudu sisään",
diff --git a/plugins/Login/lang/fr.json b/plugins/Login/lang/fr.json
index dba180c81f..be79d33a89 100644
--- a/plugins/Login/lang/fr.json
+++ b/plugins/Login/lang/fr.json
@@ -4,7 +4,7 @@
"ContactAdmin": "Raison possible : Votre hébergeur peut avoir désactivé la fonction mail(). <br \/> Veuillez contacter votre administrateur Piwik.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "Un utilisateur avec un accès super utilisateur ne peut être authentifié en utilisant le mécanisme '%s'.",
"ExceptionPasswordMD5HashExpected": "Le paramètre mot de passe doit être le hash MD5 du mot de passe.",
- "InvalidNonceOrHeadersOrReferrer": "La sécurité du formulaire a échoué. Veuillez recharger le formulaire et vérifier que vos cookies sont activés. Si vous utilisez un serveur proxy, vous devez %s configurer Piwik pour accepter les en-têtes du proxy %s qui relaient les en-têtes de l'hôte. Vérifiez aussi que l'en-tête de votre référent est correctement transmis.",
+ "InvalidNonceOrHeadersOrReferrer": "La sécurité du formulaire a échoué. Veuillez recharger le formulaire et vérifier que vos cookies sont activés. Si vous utilisez un serveur proxy, vous devez %1$s configurer Piwik pour accepter les en-têtes du proxy %2$s qui relaient les en-têtes de l'hôte. Vérifiez aussi que l'en-tête de votre référent est correctement transmis.",
"InvalidOrExpiredToken": "La clef est invalide ou a expiré",
"InvalidUsernameEmail": "Nom d'utilisateur et\/ou courriel invalide.",
"LogIn": "Connexion",
diff --git a/plugins/Login/lang/hi.json b/plugins/Login/lang/hi.json
index 9eb062b859..9d66a4a9bd 100644
--- a/plugins/Login/lang/hi.json
+++ b/plugins/Login/lang/hi.json
@@ -4,7 +4,7 @@
"ContactAdmin": "संभावित कारण: आपके मेजबान मेल () फलन में अक्षम हो सकता है. <br \/> अपने Piwik प्रशासक से संपर्क करें.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "सुपर प्रयोक्ता का उपयोग के साथ एक उपयोगकर्ता '%s' के तंत्र का उपयोग कर प्रमाणीकृत नहीं किया जा सकता।",
"ExceptionPasswordMD5HashExpected": "पासवर्ड पैरामीटर पासवर्ड का एक एमडी 5 हैश होने की उम्मीद है.",
- "InvalidNonceOrHeadersOrReferrer": "प्रपत्र सुरक्षा में विफल रहा है. प्रपत्र लोड करें और अपने कुकीज़ सक्षम किए गए हैं कि जांच करें. आप एक प्रॉक्सी सर्वर का उपयोग करते हैं, तो आपको चाहिए% है कि होस्ट हेडर प्रॉक्सी हैडर %s को आगे स्वीकार करने के लिए Piwik %s कॉन्फ़िगर करें. इसके अलावा, आपके जो Referer हेडर सही ढंग से भेजा गया है कि जांच ले.",
+ "InvalidNonceOrHeadersOrReferrer": "प्रपत्र सुरक्षा में विफल रहा है. प्रपत्र लोड करें और अपने कुकीज़ सक्षम किए गए हैं कि जांच करें. आप एक प्रॉक्सी सर्वर का उपयोग करते हैं, तो आपको चाहिए% है कि होस्ट हेडर प्रॉक्सी हैडर %1$s को आगे स्वीकार करने के लिए Piwik %2$s कॉन्फ़िगर करें. इसके अलावा, आपके जो Referer हेडर सही ढंग से भेजा गया है कि जांच ले.",
"InvalidOrExpiredToken": "टोकन अमान्य है या समाप्त हो गया है.",
"InvalidUsernameEmail": "अमान्य उपयोगकर्ता नाम या ई - मेल का पता.",
"LogIn": "साइन इन करें",
diff --git a/plugins/Login/lang/hu.json b/plugins/Login/lang/hu.json
index 045fe68e62..22ee716bd9 100644
--- a/plugins/Login/lang/hu.json
+++ b/plugins/Login/lang/hu.json
@@ -4,7 +4,7 @@
"ContactAdmin": "Lehetséges ok: talán a szolgáltatód tiltja a mail() funkciót. <br \/> Kérjük, lépj kapcsolatba a Piwik adminisztrátoroddal.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "Egy felhasználó, akor Szuper felhasználó szinttel rendelkezik, nem használhatja a %s belépési mechanizmust.",
"ExceptionPasswordMD5HashExpected": "A jelszóparaméternek egyeznie kellene a jelszó MD5 hash értékével.",
- "InvalidNonceOrHeadersOrReferrer": "Űrlap biztonsági probléma. Kérjük töltse újra az űrlapot és ellenőrizze, hogy a sütik engedélyezve vannak-e. Amennyiben proxy szervert használ, akkor engedélyezni kell %s a Piwik-nek, hogy elfogadja a proxy fejléceket %s, amelyek visszamutatnak a hoszt fejlécére. Ezen felül ellenőrizze, hogy a Hivatkozó fejléc helyesen lett-e elküldve.",
+ "InvalidNonceOrHeadersOrReferrer": "Űrlap biztonsági probléma. Kérjük töltse újra az űrlapot és ellenőrizze, hogy a sütik engedélyezve vannak-e. Amennyiben proxy szervert használ, akkor engedélyezni kell %1$s a Piwik-nek, hogy elfogadja a proxy fejléceket %2$s, amelyek visszamutatnak a hoszt fejlécére. Ezen felül ellenőrizze, hogy a Hivatkozó fejléc helyesen lett-e elküldve.",
"InvalidOrExpiredToken": "A kód érvénytelen vagy lejárt.",
"InvalidUsernameEmail": "Helytelen felhasználói név és\/vagy e-mail cím",
"LogIn": "Bejelentkezés",
diff --git a/plugins/Login/lang/id.json b/plugins/Login/lang/id.json
index cf79387733..3d70d5c642 100644
--- a/plugins/Login/lang/id.json
+++ b/plugins/Login/lang/id.json
@@ -3,7 +3,7 @@
"ConfirmationLinkSent": "Tautan konfirmasi telah dikirim ke kotak masuk Anda. Periksa surel Anda dan kunjungi tautan ini untuk memberi izin permintaan perubahan sandi Anda.",
"ContactAdmin": "Kemungkinan: inang Anda kemungkinan mematikan fungsi mail(). <br \/>Silakan hubungi pengelola Piwik Anda.",
"ExceptionPasswordMD5HashExpected": "Parameter sandi diperkirakan menjadi hash MD5 dari sandi.",
- "InvalidNonceOrHeadersOrReferrer": "Borang keamanan gagal. Silkan muat ulang borang dan periksa apakah kuki Anda telah aktif. Bila Anda menggunakan peladen wali, Anda harus %s mengkonfigurasi Piwik untuk menerima `header` wali%s yang meneruskan `header` Inang. Serta, periksa apakah `header` Pengarah telah terkirim dengan benar.",
+ "InvalidNonceOrHeadersOrReferrer": "Borang keamanan gagal. Silkan muat ulang borang dan periksa apakah kuki Anda telah aktif. Bila Anda menggunakan peladen wali, Anda harus %1$s mengkonfigurasi Piwik untuk menerima `header` wali%2$s yang meneruskan `header` Inang. Serta, periksa apakah `header` Pengarah telah terkirim dengan benar.",
"InvalidOrExpiredToken": "Kepingan tak sahih atau telah kedaluwarsa.",
"InvalidUsernameEmail": "Nama-id dan\/atau alamat surel tak sahih",
"LogIn": "Masuk-log",
diff --git a/plugins/Login/lang/it.json b/plugins/Login/lang/it.json
index 74b65a1b5b..7897d60adb 100644
--- a/plugins/Login/lang/it.json
+++ b/plugins/Login/lang/it.json
@@ -4,7 +4,8 @@
"ContactAdmin": "Possibile ragione: il tuo host potrebbe non avere attive le funzionalità di e-mail.<br \/>Per favore, contatta l'amministratore del server.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "Un utente con accesso Super User non può essere autenticato utilizzando il sistema '%s'.",
"ExceptionPasswordMD5HashExpected": "I parametri della password che ci si aspetta sono un hash MD5 della password.",
- "InvalidNonceOrHeadersOrReferrer": "Sicurezza modulo non riuscita. Si prega di ricaricare il modulo e verificare che i cookie siano abilitati. Se si utilizza un server proxy, è necessario %s configurare Piwik per accettare gli header del proxy %s che inoltri l'header host. Inoltre, verificare che l'intestazione Referer venga inviata correttamente.",
+ "InvalidNonceOrHeadersOrReferrer": "Sicurezza modulo non riuscita. Si prega di ricaricare il modulo e verificare che i cookie siano abilitati. Se si utilizza un server proxy, è necessario %1$s configurare Piwik per accettare gli header del proxy %2$s che inoltri l'header host. Inoltre, verificare che l'intestazione Referer venga inviata correttamente.",
+ "InvalidNonceSSLMisconfigured": "Inoltre puoi %1$s forzare Piwik a utilizzare una connessione sicura%2$s: nel tuo file di configurazione %3$s imposta %4$s sotto la sezione %5$s",
"InvalidOrExpiredToken": "Token non valido o scaduto",
"InvalidUsernameEmail": "Nome utente e\/o indirizzo e-mail non validi",
"LogIn": "Accedi",
diff --git a/plugins/Login/lang/ja.json b/plugins/Login/lang/ja.json
index 112438441d..68e2dc17ba 100644
--- a/plugins/Login/lang/ja.json
+++ b/plugins/Login/lang/ja.json
@@ -4,7 +4,7 @@
"ContactAdmin": "考えられる理由: ホストで mail() 関数が無効にされている可能性があります。<br \/>Piwik 管理者にご連絡ください。",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "スーパーユーザーアクセス権を持つユーザーは、'%s' のメカニズムを使用して、認証することはできません。",
"ExceptionPasswordMD5HashExpected": "パスワードパラメータは、パスワードの MD5 ハッシュ値であることを想定されています。",
- "InvalidNonceOrHeadersOrReferrer": "安全にフォームをロードできませんでした。フォームを再ロードし、cookie が有効になっていることを確認してください。プロキシサーバーを使用する場合、ホストヘッダーを転送するプロキシヘッダー %s を許可するために、Piwik を %s 設定する必要があります。また、リファラーヘッダーが正しく送信されているかどうかご確認ください。",
+ "InvalidNonceOrHeadersOrReferrer": "安全にフォームをロードできませんでした。フォームを再ロードし、cookie が有効になっていることを確認してください。プロキシサーバーを使用する場合、ホストヘッダーを転送するプロキシヘッダー %1$s を許可するために、Piwik を %2$s 設定する必要があります。また、リファラーヘッダーが正しく送信されているかどうかご確認ください。",
"InvalidOrExpiredToken": "トークンが無効または期限切れです。",
"InvalidUsernameEmail": "ユーザー名またはメールアドレスが無効です",
"LogIn": "ログイン",
diff --git a/plugins/Login/lang/ko.json b/plugins/Login/lang/ko.json
index e924445eda..5b0072aed2 100644
--- a/plugins/Login/lang/ko.json
+++ b/plugins/Login/lang/ko.json
@@ -4,7 +4,8 @@
"ContactAdmin": "가능한 이유: 호스트가 메일 기능을 비활성화했을 수 있습니다. <br \/>당신의 Piwik 관리자에게 연락해보세요.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "슈퍼 유저 접근의 '%s' 방법으로는 인증되지 않습니다.",
"ExceptionPasswordMD5HashExpected": "비밀번호 매개변수는 MD5해시 값이 사용되고 있습니다.",
- "InvalidNonceOrHeadersOrReferrer": "양식 보안 실패, 양식을 새로고침하여 쿠키가 활성화되어 있는지 확인하세요. 프록시 서버를 사용하는 경우라면, 호스트 헤더에 %sPiwik configure에서 프록시 헤더를 수락%s하고 전달해야합니다. 또한 리퍼러 헤더가 올바르게 전송되는지 확인합니다.",
+ "InvalidNonceOrHeadersOrReferrer": "양식 보안 실패, 양식을 새로고침하여 쿠키가 활성화되어 있는지 확인하세요. 프록시 서버를 사용하는 경우라면, 호스트 헤더에 %1$sPiwik configure에서 프록시 헤더를 수락%2$s하고 전달해야합니다. 또한 리퍼러 헤더가 올바르게 전송되는지 확인합니다.",
+ "InvalidNonceSSLMisconfigured": "또한, 당신은 %1$s Piwik에 보안 연결 사용 강제%2$s할 수 있습니다: 설정 파일에 %3$s %4$s 설정, section 아래 %5$s",
"InvalidOrExpiredToken": "토큰이 잘못되었거나 만료되었습니다.",
"InvalidUsernameEmail": "잘못된 사용자명 그리고\/또는 이메일 주소",
"LogIn": "로그인",
diff --git a/plugins/Login/lang/lt.json b/plugins/Login/lang/lt.json
index 8bcb8496d1..984eec6149 100644
--- a/plugins/Login/lang/lt.json
+++ b/plugins/Login/lang/lt.json
@@ -7,6 +7,7 @@
"LoginOrEmail": "Registracijos vardas arba el. paštas",
"LoginPasswordNotCorrect": "Naudotojo vardas ir slaptažodis neteisingi",
"LostYourPassword": "Pamiršote slaptažodį?",
+ "PasswordChanged": "Jūsų slaptažodis buvo pakeistas.",
"PasswordRepeat": "Slaptažodis (pakartoti)",
"PasswordsDoNotMatch": "Slaptažodžiai nesutampa",
"RememberMe": "Prisiminti mane"
diff --git a/plugins/Login/lang/lv.json b/plugins/Login/lang/lv.json
index 7fd21114ca..9a09839786 100644
--- a/plugins/Login/lang/lv.json
+++ b/plugins/Login/lang/lv.json
@@ -2,7 +2,7 @@
"Login": {
"ContactAdmin": "Iespējams, ka Jūsu resursdatoram ir atslēgta mail() metode. <br \/>Sazinieties ar savu Piwik administrātoru.",
"ExceptionPasswordMD5HashExpected": "Paroles parametram ir jābūt paroles MD5 summai.",
- "InvalidNonceOrHeadersOrReferrer": "Formas drošība nenostrādāja. Lūdzu pārlādējiet formu un pārbaudiet vai sīkfailu atbalsts ir ieslēgts. Ja lietojat starpniekserveri, Jums %s jāiestata Piwik lai pieņemtu starpniekservera galveni %s, kas pārsūta resursdatora galveni. Papildus pārbaudiet vai Jūsu iepriekšējās vietnes galvene ir nosūtīta pareizi.",
+ "InvalidNonceOrHeadersOrReferrer": "Formas drošība nenostrādāja. Lūdzu pārlādējiet formu un pārbaudiet vai sīkfailu atbalsts ir ieslēgts. Ja lietojat starpniekserveri, Jums %1$s jāiestata Piwik lai pieņemtu starpniekservera galveni %2$s, kas pārsūta resursdatora galveni. Papildus pārbaudiet vai Jūsu iepriekšējās vietnes galvene ir nosūtīta pareizi.",
"InvalidOrExpiredToken": "Kods ir nepareizs vai tam ir beidzies termiņš.",
"InvalidUsernameEmail": "Nepareizs lietotājvārds un\/vai e-pasta adrese",
"LogIn": "Pieteikties",
diff --git a/plugins/Login/lang/nb.json b/plugins/Login/lang/nb.json
index 45385fbc4f..20e48735ec 100644
--- a/plugins/Login/lang/nb.json
+++ b/plugins/Login/lang/nb.json
@@ -4,7 +4,8 @@
"ContactAdmin": "Mulig grunn: Din tjener har kanskje deaktivert mail()-funksjonen. <br \/>Kontakt din Piwik administrator.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "En bruker med superbrukertilgang kan ikke autentiseres med «%s»-mekanismen.",
"ExceptionPasswordMD5HashExpected": "Passordparameteret er forventet å være en MD5-hash av passordet.",
- "InvalidNonceOrHeadersOrReferrer": "Skjemasikkerhet feilet. Vennligst last inn skjemaet på nytt og sjekk at datakapsler er aktivert. Hvis du bruker en proxy-server må du %s konfigurere Piwik til å akseptere proxy-headere %s som sender videre Host-headeren. Sjekk også at Referrer-headeren sendes uten feil.",
+ "InvalidNonceOrHeadersOrReferrer": "Skjemasikkerhet feilet. Vennligst last inn skjemaet på nytt og sjekk at datakapsler er aktivert. Hvis du bruker en proxy-server må du %1$s konfigurere Piwik til å akseptere proxy-headere %2$s som sender videre Host-headeren. Sjekk også at Referrer-headeren sendes uten feil.",
+ "InvalidNonceSSLMisconfigured": "I tillegg kan du %1$s tvinge Piwik til å bruke en sikker tilkobling%2$s: i din config-fil %3$s sett %4$s under seksjonen %5$s",
"InvalidOrExpiredToken": "Autentiseringsnøkkelen er ugyldig eller har utløpt.",
"InvalidUsernameEmail": "Feil brukernavn og\/eller epost-adresse.",
"LogIn": "Logg inn",
diff --git a/plugins/Login/lang/nl.json b/plugins/Login/lang/nl.json
index d062ac8a81..45a46d52f4 100644
--- a/plugins/Login/lang/nl.json
+++ b/plugins/Login/lang/nl.json
@@ -4,7 +4,7 @@
"ContactAdmin": "Mogelijke reden: uw host heeft mogelijk de mail() functie geblokkeerd. <br \/>Neem contact op met uw Piwik beheerder.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "Een gebruiker met Super User toegang kan niet geauthenticeerd worden met het '%s' mechanisme.",
"ExceptionPasswordMD5HashExpected": "De wachtwoord parameter moet een MD5 hash zijn van het wachtwoord.",
- "InvalidNonceOrHeadersOrReferrer": "Securityformulier gefaald. Herlaad het formulier en controleer dat cookies worden toegestaan. Als u een proxyserver gebruikt, %s configureer Piwik dan zodanig dat deze proxy headers%s accepteert, die de Hostheaders doorstuurt. Controleer tevens dat de refererheader correct wordt verzonden.",
+ "InvalidNonceOrHeadersOrReferrer": "Securityformulier gefaald. Herlaad het formulier en controleer dat cookies worden toegestaan. Als u een proxyserver gebruikt, %1$s configureer Piwik dan zodanig dat deze proxy headers%2$s accepteert, die de Hostheaders doorstuurt. Controleer tevens dat de refererheader correct wordt verzonden.",
"InvalidOrExpiredToken": "Token is ongeldig of is verlopen",
"InvalidUsernameEmail": "Ongeldige gebruikersnaam en\/of e-mail adres",
"LogIn": "Log in",
diff --git a/plugins/Login/lang/pl.json b/plugins/Login/lang/pl.json
index 8a43531505..6355e10c8f 100644
--- a/plugins/Login/lang/pl.json
+++ b/plugins/Login/lang/pl.json
@@ -3,7 +3,7 @@
"ConfirmationLinkSent": "Potwierdzenie zostało wysłane na skrzynkę odbiorczą. Sprawdź swój e-mail i odwiedzić link do autoryzacji żądania zmiany hasła.",
"ContactAdmin": "Prawdopodobny powód: twój host mógł wyłączyć działanie funkcji mail(). <br \/>Skontaktuj się w tej sprawie ze swoim administratorem statystyk Piwik.",
"ExceptionPasswordMD5HashExpected": "Oczekiwanym parametrem hasła jest hash z MD5 uzyskany z hasła.",
- "InvalidNonceOrHeadersOrReferrer": "Błąd zabezpieczeń formularza. Proszę przeładować stronę z formularzem i upewnić się, że obsługa ciasteczek jest włączona. Jeśli korzystasz z serwera proxy, należy %s skonfigurować Piwik, tak aby akceptował nagłówek serwera proxy%s, który przekazuje nagłówek serwera docelowego. Ponadto sprawdź, czy naglówek Referrer jest poprawnie wysyłany.",
+ "InvalidNonceOrHeadersOrReferrer": "Błąd zabezpieczeń formularza. Proszę przeładować stronę z formularzem i upewnić się, że obsługa ciasteczek jest włączona. Jeśli korzystasz z serwera proxy, należy %1$s skonfigurować Piwik, tak aby akceptował nagłówek serwera proxy%2$s, który przekazuje nagłówek serwera docelowego. Ponadto sprawdź, czy naglówek Referrer jest poprawnie wysyłany.",
"InvalidOrExpiredToken": "Token jest błędny lub już wygasł.",
"InvalidUsernameEmail": "Błędna nazwa użytkownika i\/lub adres e-mail",
"LogIn": "Zaloguj się",
diff --git a/plugins/Login/lang/pt-br.json b/plugins/Login/lang/pt-br.json
index e154cbd25a..332306ddb0 100644
--- a/plugins/Login/lang/pt-br.json
+++ b/plugins/Login/lang/pt-br.json
@@ -4,7 +4,8 @@
"ContactAdmin": "Possível razão: o seu host desabilitou a função mail(). <br \/>Por favor contacte o administrador do Piwik.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "Um usuário com acesso de Super Usuário não pode ser autenticado usando o mecanismo '%s'.",
"ExceptionPasswordMD5HashExpected": "É esperado que o parâmetro da senha seja um hash MD5 da senha.",
- "InvalidNonceOrHeadersOrReferrer": "O formulário de segurança falhou. Por favor, recarregue o formulário e verifique se seus cookies estão habilitados. Se você usa um servidor proxy, você deve configurar %s Piwik para aceitar proxy header%s que encaminhe para o Host header. Além disso, verifique se o header do Referenciador esta sendo enviada corretamente.",
+ "InvalidNonceOrHeadersOrReferrer": "O formulário de segurança falhou. Por favor, recarregue o formulário e verifique se seus cookies estão habilitados. Se você usa um servidor proxy, você deve configurar %1$s Piwik para aceitar proxy header%2$s que encaminhe para o Host header. Além disso, verifique se o header do Referenciador esta sendo enviada corretamente.",
+ "InvalidNonceSSLMisconfigured": "Além disso, você pode %1$s forçar o Piwik a usar uma conexão segura%2$s: em seu arquivo de configuração %3$s configure %4$s abaixo da secção %5$s",
"InvalidOrExpiredToken": "Token inválido ou expirado",
"InvalidUsernameEmail": "Nome de usuário ou e-mail inválido",
"LogIn": "Entrar",
diff --git a/plugins/Login/lang/pt.json b/plugins/Login/lang/pt.json
index d46f97c705..d442b40f98 100644
--- a/plugins/Login/lang/pt.json
+++ b/plugins/Login/lang/pt.json
@@ -2,7 +2,7 @@
"Login": {
"ContactAdmin": "Razão possível: o seu administrador desactivou a função mail(). <br \/>Por favor contacte o seu administrador Piwik.",
"ExceptionPasswordMD5HashExpected": "Espera-se que o parâmetro da palavra-passe seja uma hash MD5 da palavra-passe.",
- "InvalidNonceOrHeadersOrReferrer": "Erro de Segurança do formulário. Por favor, recarregar o formulário e verificar se os cookies estão activos. Se você usar um servidor proxy, você deve configurar %s Piwik para aceitar os cabeçalhos proxy %s que encaminha o cabeçalho do Host. Além disso, verifique se o cabeçalho Referer é enviado corretamente.",
+ "InvalidNonceOrHeadersOrReferrer": "Erro de Segurança do formulário. Por favor, recarregar o formulário e verificar se os cookies estão activos. Se você usar um servidor proxy, você deve configurar %1$s Piwik para aceitar os cabeçalhos proxy %2$s que encaminha o cabeçalho do Host. Além disso, verifique se o cabeçalho Referer é enviado corretamente.",
"InvalidOrExpiredToken": "A chave é inválida ou expirou.",
"InvalidUsernameEmail": "Nome de utilizador e\/ou endereço de e-mail inválido",
"LogIn": "Entrar",
diff --git a/plugins/Login/lang/ro.json b/plugins/Login/lang/ro.json
index 746eb60cb9..e60867324d 100644
--- a/plugins/Login/lang/ro.json
+++ b/plugins/Login/lang/ro.json
@@ -4,7 +4,7 @@
"ContactAdmin": "Motiv posibil: gazda ta poate avea dezactivata functia email . <br\/>Contactati adminstratorul.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "Un utilizator cu acces la Super utilizator nu poate fi autentificat folosind '%s' mecanismul.",
"ExceptionPasswordMD5HashExpected": "Parametrul parolei este aşteptat să fie un hash MD5 al parolei.",
- "InvalidNonceOrHeadersOrReferrer": "Formular de securitate nereusit. Vă rugăm să reîncărcați formularul și verificați dacă modulele cookie sunt activate. Dacă utilizați un server proxy, trebuie să configurati %s Piwik pentru a accepta antetul proxy %s care transmite antetul Host. De asemenea, verificați dacă antetul dvs. Referrer este trimis corect.",
+ "InvalidNonceOrHeadersOrReferrer": "Formular de securitate nereusit. Vă rugăm să reîncărcați formularul și verificați dacă modulele cookie sunt activate. Dacă utilizați un server proxy, trebuie să configurati %1$s Piwik pentru a accepta antetul proxy %2$s care transmite antetul Host. De asemenea, verificați dacă antetul dvs. Referrer este trimis corect.",
"InvalidOrExpiredToken": "Jetonul este invalid sau expirat.",
"InvalidUsernameEmail": "Nume sau adresa email invalidă.",
"LogIn": "Intrare",
diff --git a/plugins/Login/lang/ru.json b/plugins/Login/lang/ru.json
index bf6a6ad20a..b143491922 100644
--- a/plugins/Login/lang/ru.json
+++ b/plugins/Login/lang/ru.json
@@ -4,7 +4,7 @@
"ContactAdmin": "Возможная причина: функция mail() отключена. <br \/>Пожалуйста, свяжитесь с администратором.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "Пользователь с правами суперпользователя не может пройти проверку подлинности с помощью данного механизма: '%s'.",
"ExceptionPasswordMD5HashExpected": "Параметр пароля вероятно является MD5-хэшем пароля.",
- "InvalidNonceOrHeadersOrReferrer": "Ошибка при загрузки формы безопасности. Пожалуйста, обновите форму и проверьте, что ваши cookies включены. Если вы используете прокси-сервер, вы должны %s настроить принятие прокси-заголовков в Piwik%s, которые следуют за названием хоста. Также убедитесь, что заголовки источника трафика отправляются верно.",
+ "InvalidNonceOrHeadersOrReferrer": "Ошибка при загрузки формы безопасности. Пожалуйста, обновите форму и проверьте, что ваши cookies включены. Если вы используете прокси-сервер, вы должны %1$s настроить принятие прокси-заголовков в Piwik%2$s, которые следуют за названием хоста. Также убедитесь, что заголовки источника трафика отправляются верно.",
"InvalidOrExpiredToken": "Код неправильный или просрочен.",
"InvalidUsernameEmail": "Неверное имя пользователя и\/или e-mail",
"LogIn": "Войти",
diff --git a/plugins/Login/lang/sq.json b/plugins/Login/lang/sq.json
index f283222e93..04d268333c 100644
--- a/plugins/Login/lang/sq.json
+++ b/plugins/Login/lang/sq.json
@@ -2,7 +2,7 @@
"Login": {
"ContactAdmin": "Arsye e mundshme: streha juaj mund të ketë çaktivizuar funksionin mail(). <br \/>Ju lutem, lidhuni me përgjegjësin e Piwik-ut tuaj.",
"ExceptionPasswordMD5HashExpected": "Parametri i fjalëkalimit pritet të jetë një hash MD5 fjalëkalimi.",
- "InvalidNonceOrHeadersOrReferrer": "Siguria e formularit dështoi. Ju lutem, ringarkoni formularin dhe kontrolloni nëse janë të aktivizuara \"cookie\"-et tuaja. Nëse përdorni një shërbyes ndërmjetës, duhet ta formësoni %s Piwik-un që të pranojë titull ndërmjetësi%s i cili përcjell titull Strehe. Kontrolloni gjithashtu që titulli i Referuesit dërgohet saktë.",
+ "InvalidNonceOrHeadersOrReferrer": "Siguria e formularit dështoi. Ju lutem, ringarkoni formularin dhe kontrolloni nëse janë të aktivizuara \"cookie\"-et tuaja. Nëse përdorni një shërbyes ndërmjetës, duhet ta formësoni %1$s Piwik-un që të pranojë titull ndërmjetësi%2$s i cili përcjell titull Strehe. Kontrolloni gjithashtu që titulli i Referuesit dërgohet saktë.",
"InvalidOrExpiredToken": "Elementi është i pavlefshëm ose ka skaduar",
"InvalidUsernameEmail": "Emër përdoruesi dhe\/ose vendndodhje e-mail e pavlefshme",
"LogIn": "Hyni",
diff --git a/plugins/Login/lang/sr.json b/plugins/Login/lang/sr.json
index efa7f36cca..69ef62ef76 100644
--- a/plugins/Login/lang/sr.json
+++ b/plugins/Login/lang/sr.json
@@ -4,7 +4,7 @@
"ContactAdmin": "Moguć razlog: vaš hosting provajder je možda onemogućio mail() funkciju. <br \/>Molimo vas da kontaktirate vašeg Piwik administratora.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "Korisnik sa superkorisničkim nivoom pristupa ne može biti autentifikovan korišćenjem mehanizma '%s'.",
"ExceptionPasswordMD5HashExpected": "Parametar za lozinku bi trebalo da bude MD5 hash lozinke.",
- "InvalidNonceOrHeadersOrReferrer": "Problem sa sigurnošću. Molimo vas da proverite da li su kolačići (cookies) omogućeni i da ponovo učitate stranicu. Ukoliko se nalazite iza proxy servera, morate %s podesiti Piwik da prihvata proxy zaglavlje%s koje prosleđuje zaglavlje servera. Takođe, proverite da li je referer zaglavlje poslato kako treba.",
+ "InvalidNonceOrHeadersOrReferrer": "Problem sa sigurnošću. Molimo vas da proverite da li su kolačići (cookies) omogućeni i da ponovo učitate stranicu. Ukoliko se nalazite iza proxy servera, morate %1$s podesiti Piwik da prihvata proxy zaglavlje%2$s koje prosleđuje zaglavlje servera. Takođe, proverite da li je referer zaglavlje poslato kako treba.",
"InvalidOrExpiredToken": "Token ili nije validan ili je istekao.",
"InvalidUsernameEmail": "Pogrešno korisničko ime i\/ili elektronska adresa",
"LogIn": "Prijavljivanje",
diff --git a/plugins/Login/lang/sv.json b/plugins/Login/lang/sv.json
index 8baae71d7e..8590790862 100644
--- a/plugins/Login/lang/sv.json
+++ b/plugins/Login/lang/sv.json
@@ -4,7 +4,7 @@
"ContactAdmin": "Möjlig orsak: din värd kan ha inaktiverat mail() funktionen. <br\/>Kontakta din Piwik administratör.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "En användare med Superanvändaråtkomst kan inte bli autensieras vid användande av '%s' mekanism.",
"ExceptionPasswordMD5HashExpected": "Lösenordsparametern förväntas bli en MD5-hash av lösenordet.",
- "InvalidNonceOrHeadersOrReferrer": "Formulärets säkerhet misslyckades. Vänligen ladda formuläret och kontrollera att cookies är aktiverade. Om du använder en proxyserver måste du %s konfigurera Piwik att acceptera proxy huvuden %s som överför Host-huvuden. Kontrollera också att din Referer header skickas korrekt.",
+ "InvalidNonceOrHeadersOrReferrer": "Formulärets säkerhet misslyckades. Vänligen ladda formuläret och kontrollera att cookies är aktiverade. Om du använder en proxyserver måste du %1$s konfigurera Piwik att acceptera proxy huvuden %2$s som överför Host-huvuden. Kontrollera också att din Referer header skickas korrekt.",
"InvalidOrExpiredToken": "Lösenordsbevis är felaktigt eller har utgått.",
"InvalidUsernameEmail": "Felaktigt användarnamn och\/eller e-postadress",
"LogIn": "Logga in",
diff --git a/plugins/Login/lang/th.json b/plugins/Login/lang/th.json
index ca598b83e8..c350a9d208 100644
--- a/plugins/Login/lang/th.json
+++ b/plugins/Login/lang/th.json
@@ -2,7 +2,7 @@
"Login": {
"ContactAdmin": "เหตุผลที่อาจเป็นไปได้: โฮสต์ของคุณอาจปิดการใช้งานฟังก์ชัน mail()<br \/>กรุณาติดต่อผู้ดูแล Piwik ของคุณ",
"ExceptionPasswordMD5HashExpected": "พารามิเตอร์รหัสผ่านจะคาดว่าจะ เป็น MD5 hash ของรหัสผ่าน",
- "InvalidNonceOrHeadersOrReferrer": "แบบฟอร์มการรักษาความปลอดภัยความล้มเหลว โปรดโหลดแบบฟอร์มและตรวจสอบว่าคุกกี้ของคุณำได้เปิดใช้งานแล้ว ถ้าคุณใช้พร็อกซี่เซิร์ฟเวอร์, คุณจะต้องกำหนดค่า %s ของ Piwik เพื่อที่จะยอมรับส่วนหัวของพร็อกซี่ %s ที่ส่งต่อส่วนหัวของโฮสต์ นอกจากนี้ตรวจสอบว่าส่วนหัวการอ้างอิงของคุณจะถูกส่งอย่างถูกต้อง",
+ "InvalidNonceOrHeadersOrReferrer": "แบบฟอร์มการรักษาความปลอดภัยความล้มเหลว โปรดโหลดแบบฟอร์มและตรวจสอบว่าคุกกี้ของคุณำได้เปิดใช้งานแล้ว ถ้าคุณใช้พร็อกซี่เซิร์ฟเวอร์, คุณจะต้องกำหนดค่า %1$s ของ Piwik เพื่อที่จะยอมรับส่วนหัวของพร็อกซี่ %2$s ที่ส่งต่อส่วนหัวของโฮสต์ นอกจากนี้ตรวจสอบว่าส่วนหัวการอ้างอิงของคุณจะถูกส่งอย่างถูกต้อง",
"InvalidOrExpiredToken": "Token ไม่ถูกต้องหรือหมดอายุ",
"InvalidUsernameEmail": "ไม่มี ชื่อผู้ใช้ และ\/หรือ ที่อยู่อีเมลล์ดังกล่าว",
"LogIn": "เข้าสู่ระบบ",
diff --git a/plugins/Login/lang/tl.json b/plugins/Login/lang/tl.json
index 949573351e..e11aa0e681 100644
--- a/plugins/Login/lang/tl.json
+++ b/plugins/Login/lang/tl.json
@@ -4,7 +4,7 @@
"ContactAdmin": "Mga posibleng dahilan: maaaring hindi pinagana ng iyong host ang function mail (). <br \/> Mangyaring makipag-ugnay sa iyong Piwik administrator.",
"ExceptionInvalidSuperUserAccessAuthenticationMethod": "Ang isang user na may Super-access ay hindi maaaring e-authenticate gamit ang '%s' mechanism.",
"ExceptionPasswordMD5HashExpected": "Ang parameter ng password ay inaasahan na maging isang MD5 hash ng password.",
- "InvalidNonceOrHeadersOrReferrer": "Form security failed. Mangyaring i-reload ang form at suriin kung ang iyong cookies ay gumagana. Kung ikaw ay gumagamit ng proxy server dapat mong %s i-configure ang Piwik upang makatanggap ng proxy header %s para ma e-forward sa host header. At dapat mong e-check ang iyong Referrer header kung ito ay napadala ng tama.",
+ "InvalidNonceOrHeadersOrReferrer": "Form security failed. Mangyaring i-reload ang form at suriin kung ang iyong cookies ay gumagana. Kung ikaw ay gumagamit ng proxy server dapat mong %1$s i-configure ang Piwik upang makatanggap ng proxy header %2$s para ma e-forward sa host header. At dapat mong e-check ang iyong Referrer header kung ito ay napadala ng tama.",
"InvalidOrExpiredToken": "Ang token ay hindi wasto o nag-expire.",
"InvalidUsernameEmail": "Di-wasto ang username o e-mail address.",
"LogIn": "Mag-sign in",
diff --git a/plugins/Login/lang/vi.json b/plugins/Login/lang/vi.json
index caa4bd003b..f8274e299b 100644
--- a/plugins/Login/lang/vi.json
+++ b/plugins/Login/lang/vi.json
@@ -3,7 +3,7 @@
"ConfirmationLinkSent": "Một liên kết xác nhận đã được gửi đến hộp thư của bạn. Kiểm tra e-mail của bạn và truy cập vào liên kết này để cấp phép yêu cầu thay đổi mật khẩu của bạn.",
"ContactAdmin": "Có thể lý do là: máy chủ của bạn có thể đã bị vô hiệu hóa hàm mail(). <br \/> Xin vui lòng liên hệ với quản trị viên Piwik của bạn.",
"ExceptionPasswordMD5HashExpected": "Mật khẩu dự kiến ​​sẽ là một mật khẩu dạng mã MD5.",
- "InvalidNonceOrHeadersOrReferrer": "Hình thức bảo mật thất bại. Hãy nạp lại hình thức bảo mật và kiểm tra các cookie là được kích hoạt. Nếu bạn sử dụng một máy chủ proxy, bạn phải cấu hình %s Piwik chấp nhận %s tiêu đề proxy chuyển tiếp tiêu đề máy chủ. Ngoài ra, kiểm tra rằng tiêu đề trang giới thiệu của bạn được gửi một cách chính xác.",
+ "InvalidNonceOrHeadersOrReferrer": "Hình thức bảo mật thất bại. Hãy nạp lại hình thức bảo mật và kiểm tra các cookie là được kích hoạt. Nếu bạn sử dụng một máy chủ proxy, bạn phải cấu hình %1$s Piwik chấp nhận %2$s tiêu đề proxy chuyển tiếp tiêu đề máy chủ. Ngoài ra, kiểm tra rằng tiêu đề trang giới thiệu của bạn được gửi một cách chính xác.",
"InvalidOrExpiredToken": "Mã thông báo là không hợp lệ hoặc đã hết hạn.",
"InvalidUsernameEmail": "Tên hoặc địa chỉ e-mail truy cập không hợp lệ.",
"LogIn": "Đăng nhập",
diff --git a/plugins/Login/lang/zh-cn.json b/plugins/Login/lang/zh-cn.json
index 98c38d6824..1b128e914d 100644
--- a/plugins/Login/lang/zh-cn.json
+++ b/plugins/Login/lang/zh-cn.json
@@ -3,7 +3,7 @@
"ConfirmationLinkSent": "确认链接已发到您的邮箱,请接收邮件并点击链接确认密码修改。",
"ContactAdmin": "可能的原因: 您的主机可能已经停用了 mail() 函数! <br \/>请联络您的 Piwik 管理员!",
"ExceptionPasswordMD5HashExpected": "密码参数是一个 MD5 加密的密码。",
- "InvalidNonceOrHeadersOrReferrer": "表单安全检查失败,请重新打开表单,检查是否启用cookie。如果配置了代理服务器,需要 %s 设置Piwik接收代理头信息 %s ,同时检查Referer头是否正确",
+ "InvalidNonceOrHeadersOrReferrer": "表单安全检查失败,请重新打开表单,检查是否启用cookie。如果配置了代理服务器,需要 %1$s 设置Piwik接收代理头信息 %2$s ,同时检查Referer头是否正确",
"InvalidOrExpiredToken": "凭证无效或已经过期。",
"InvalidUsernameEmail": "用户名或邮件地址不正确",
"LogIn": "登录",
diff --git a/plugins/Login/stylesheets/login.less b/plugins/Login/stylesheets/login.less
index 80c5e6e87b..ae35e24efd 100644
--- a/plugins/Login/stylesheets/login.less
+++ b/plugins/Login/stylesheets/login.less
@@ -126,6 +126,7 @@
#login_form_login,
#reset_form_login {
background: @theme-color-background-base url(../../Morpheus/images/login-sprite.png) no-repeat;
+ outline: 0;
}
#login_form_password,
diff --git a/plugins/MobileAppMeasurable/lang/en.json b/plugins/MobileAppMeasurable/lang/en.json
index de6c59c8d2..073f2a415f 100644
--- a/plugins/MobileAppMeasurable/lang/en.json
+++ b/plugins/MobileAppMeasurable/lang/en.json
@@ -1,7 +1,7 @@
{
- "MobileAppMeasurable": {
- "MobileApp": "Mobile App",
- "MobileApps": "Mobile Apps",
- "MobileAppDescription": " A native mobile app for iOS, Android or any other mobile operating system."
- }
+ "MobileAppMeasurable": {
+ "MobileApp": "Mobile App",
+ "MobileApps": "Mobile Apps",
+ "MobileAppDescription": " A native mobile app for iOS, Android or any other mobile operating system."
+ }
} \ No newline at end of file
diff --git a/plugins/MobileAppMeasurable/lang/lt.json b/plugins/MobileAppMeasurable/lang/lt.json
new file mode 100644
index 0000000000..7783ba817c
--- /dev/null
+++ b/plugins/MobileAppMeasurable/lang/lt.json
@@ -0,0 +1,5 @@
+{
+ "MobileAppMeasurable": {
+ "MobileApp": "Mobilioji programa"
+ }
+} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/bg.json b/plugins/MobileMessaging/lang/bg.json
index 2894a84bd8..ff1791594b 100644
--- a/plugins/MobileMessaging/lang/bg.json
+++ b/plugins/MobileMessaging/lang/bg.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Името на доставчика '%s' е неизвестно. Пробвайте друго име вместо: %s.",
+ "Exception_UnknownProvider": "Името на доставчика '%1$s' е неизвестно. Пробвайте друго име вместо: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Могат да бъдат добавени повече телефонни номера достъпвайки",
"MobileReport_MobileMessagingSettingsLink": "Страницата за настройка на мобилните съобщения",
"MobileReport_NoPhoneNumbers": "Моля, активирайте поне един телефонен номер, достъпвайки",
@@ -23,12 +23,12 @@
"Settings_SMSProvider": "SMS провайдър",
"Settings_SuperAdmin": "Настройки на супер потребителя",
"Settings_SuspiciousPhoneNumber": "Ако не получите текстовото съобщение, може да опитате без водещата нула. т.е. %s",
- "Settings_UpdateOrDeleteAccount": "%sОбновяване%s или %sизтриване%s на този профил.",
+ "Settings_UpdateOrDeleteAccount": "%1$sОбновяване%2$s или %3$sизтриване%4$s на този профил.",
"Settings_ValidatePhoneNumber": "Валидиране",
"Settings_VerificationCodeJustSent": "Туко-що беше изпратено кратко съобщение (SMS) до този номер с код: моля, въведете този код в горното поле и натиснете „Потвърди“.",
"SettingsMenu": "Мобилни съобщения",
"TopLinkTooltip": "Вземете Web Analytics Reports доставен във вашата пощенска кутия или във вашия мобилен телефон!",
"TopMenu": "Email & SMS Доклади",
- "VerificationText": "Кодът е %s. За да потвърдите вашия телефонен номер и да получите Piwik SMS отчети, моля, копирайте този код във формата достъпна чрез Piwik > %s > %s."
+ "VerificationText": "Кодът е %1$s. За да потвърдите вашия телефонен номер и да получите Piwik SMS отчети, моля, копирайте този код във формата достъпна чрез Piwik > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/cs.json b/plugins/MobileMessaging/lang/cs.json
index 6b4d0ad68b..f8492f1f61 100644
--- a/plugins/MobileMessaging/lang/cs.json
+++ b/plugins/MobileMessaging/lang/cs.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Jméno poskytovatele '%s' není známé. Zkuste některé z %s.",
+ "Exception_UnknownProvider": "Jméno poskytovatele '%1$s' není známé. Zkuste některé z %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Více telefonních čísel můžete přidat přejitím na",
"MobileReport_MobileMessagingSettingsLink": "Stránka nastavení mobilních zpráv",
"MobileReport_NoPhoneNumbers": "Prosím aktivujte aspoň jedno telefonní číslo přejitím na",
@@ -27,15 +27,15 @@
"Settings_PleaseSignUp": "Pokud chcetevytvářet SMS hlášení a dostávat krátké zprávy o statistikách do svého telefonu, zaregistrujte se na SMS API a zadejte svoje informace níže.",
"Settings_SMSAPIAccount": "Správa SMS API účtu",
"Settings_SMSProvider": "SMS Provider",
- "Settings_SuperAdmin": "Nastavení super uživatele",
+ "Settings_SuperAdmin": "Nastavení super-uživatele",
"Settings_SuspiciousPhoneNumber": "Pokud neobdržíte SMS zprávu, můžete to zkusit bez úvodní nuly, t. j. %s",
- "Settings_UpdateOrDeleteAccount": "Také můžete tento účet %saktualizovat%s nebo %ssmazat%s.",
+ "Settings_UpdateOrDeleteAccount": "Také můžete tento účet %1$saktualizovat%2$s nebo %3$ssmazat%4$s.",
"Settings_ValidatePhoneNumber": "Ověřit",
"Settings_VerificationCodeJustSent": "Právě jsme na zadané telefonní číslo odeslali SMS s kódem. Zadejte ho výše a stiskněte \"ověřit\".",
"SettingsMenu": "Mobilní zprávy",
"SMS_Content_Too_Long": "[příliš dlouhé]",
- "TopLinkTooltip": "Nechte si webové analýzy zasílat na email nebo na svůj mobilní telefon.",
- "TopMenu": "Email a SMS reporty",
- "VerificationText": "Kód je %s. Pro ověření vašeh otelefonního čísla tento kód zkopírujte do formuláře přístupného na Piwik > %s > %s."
+ "TopLinkTooltip": "Nechte si webové analýzy zasílat na e-mail nebo na svůj mobilní telefon.",
+ "TopMenu": "E-mail a SMS hlášení",
+ "VerificationText": "Kód je %1$s. Pro ověření vašeh otelefonního čísla tento kód zkopírujte do formuláře přístupného na Piwik > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/da.json b/plugins/MobileMessaging/lang/da.json
index 0be0220ae2..0f61cf4422 100644
--- a/plugins/MobileMessaging/lang/da.json
+++ b/plugins/MobileMessaging/lang/da.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Udbydernavn '%s' er ukendt. Prøv et af følgende i stedet: %s.",
+ "Exception_UnknownProvider": "Udbydernavn '%1$s' er ukendt. Prøv et af følgende i stedet: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Du kan tilføje flere telefonnumre ved at åbne",
"MobileReport_MobileMessagingSettingsLink": "Mobil besked indstillinger",
"MobileReport_NoPhoneNumbers": "Aktiver mindst ét telefonnummer ved at besøge",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "SMS udbyder",
"Settings_SuperAdmin": "Superbruger indstillinger",
"Settings_SuspiciousPhoneNumber": "Hvis du ikke modtager en SMS-besked, kan du prøve uden det forreste nul. dvs. %s",
- "Settings_UpdateOrDeleteAccount": "Du kan også %sopdatere%s eller %sslette%s denne konto.",
+ "Settings_UpdateOrDeleteAccount": "Du kan også %1$sopdatere%2$s eller %3$sslette%4$s denne konto.",
"Settings_ValidatePhoneNumber": "Bekræft",
"Settings_VerificationCodeJustSent": "Vi har sendt dig en SMS med en kode til dette nummer: Indtast denne kode nedenfor og klik på \"Godkend\".",
"SettingsMenu": "Mobile beskeder",
"SMS_Content_Too_Long": "[for lang]",
"TopLinkTooltip": "Få web analyse rapporter leveret til din indbakke eller din mobiltelefon!",
"TopMenu": "Email & SMS rapporter",
- "VerificationText": "Koden er %s. For at validere dit telefonnummer og modtage Piwik SMS rapporter, kopierer koden til formularen tilgængelig på Piwik > %s > %s."
+ "VerificationText": "Koden er %1$s. For at validere dit telefonnummer og modtage Piwik SMS rapporter, kopierer koden til formularen tilgængelig på Piwik > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/de.json b/plugins/MobileMessaging/lang/de.json
index 1a79a7059e..4a704f36fd 100644
--- a/plugins/MobileMessaging/lang/de.json
+++ b/plugins/MobileMessaging/lang/de.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Der Anbietername '%s' ist unbekannt. Versuchen Sie stattdessen einen der folgenden: %s.",
+ "Exception_UnknownProvider": "Der Anbietername '%1$s' ist unbekannt. Versuchen Sie stattdessen einen der folgenden: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Sie können weitere Telefonnummern hinzufügen auf",
"MobileReport_MobileMessagingSettingsLink": "der Mobile Messaging Einstellungsseite",
"MobileReport_NoPhoneNumbers": "Bitte aktivieren Sie mindestens eine Telefonnummer auf",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "SMS-Anbieter",
"Settings_SuperAdmin": "Einstellungen für Hauptadministrator",
"Settings_SuspiciousPhoneNumber": "Falls Sie keine Textnachricht erhalten probieren Sie es bitte ohne eine führende 0, z.B.: %s",
- "Settings_UpdateOrDeleteAccount": "Sie können diesen Zugang auch %saktualisieren%s oder %sentfernen%s.",
+ "Settings_UpdateOrDeleteAccount": "Sie können diesen Zugang auch %1$saktualisieren%2$s oder %3$sentfernen%4$s.",
"Settings_ValidatePhoneNumber": "Validieren",
"Settings_VerificationCodeJustSent": "Wir haben Ihnen eine SMS mit einem Code an diese Nummer geschickt: Bitte geben Sie diesen Code unterhalb ein und klicken auf \"Validieren\".",
"SettingsMenu": "Mobile Messaging",
"SMS_Content_Too_Long": "[zu lang]",
"TopLinkTooltip": "Erhalten Sie Webanalytik Berichte direkt in Ihren E-Mail Posteingang oder auf Ihr Mobiltelefon!",
"TopMenu": "E-Mail & SMS Berichte",
- "VerificationText": "Der Code lautet %s. Um Ihre Telefonnummer zu validieren und Piwik SMS Berichte zu erhalten kopieren Sie bitte diesen Code in das Formular unter Piwik > %s > %s."
+ "VerificationText": "Der Code lautet %1$s. Um Ihre Telefonnummer zu validieren und Piwik SMS Berichte zu erhalten kopieren Sie bitte diesen Code in das Formular unter Piwik > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/el.json b/plugins/MobileMessaging/lang/el.json
index dd378aceac..a51270908a 100644
--- a/plugins/MobileMessaging/lang/el.json
+++ b/plugins/MobileMessaging/lang/el.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Άγνωστο όνομα Παρόχου '%s'. Εναλλακτικά, δοκιμάστε ένα από τα παρακάτω: %s.",
+ "Exception_UnknownProvider": "Άγνωστο όνομα Παρόχου '%1$s'. Εναλλακτικά, δοκιμάστε ένα από τα παρακάτω: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Μπορείτε να προσθέσετε περισσότερους αριθμούς τηλεφώνου με πρόσβαση",
"MobileReport_MobileMessagingSettingsLink": "τη σελίδα ρυθμίσεων Μηνύματα σε Κινητά",
"MobileReport_NoPhoneNumbers": "Παρακαλούμε ενεργοποιήστε τουλάχιστον έναν αριθμό τηλεφώνου με πρόσβαση",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "Πάροχος SMS",
"Settings_SuperAdmin": "Ρυθμίσεις Υπερχρήστη",
"Settings_SuspiciousPhoneNumber": "Εάν δεν λάβετε το μήνυμα κειμένου, μπορείτε να δοκιμάσετε χωρίς το πρόθεμα μηδέν, δηλαδή %s",
- "Settings_UpdateOrDeleteAccount": "Μπορείτε επίσης να %sαναβαθμίσετε%s ή να %sδιαγράψετε%s αυτό το λογαριασμό.",
+ "Settings_UpdateOrDeleteAccount": "Μπορείτε επίσης να %1$sτροποποιήσετε%2$s ή να %3$sδιαγράψετε%4$s αυτόν τον λογαριασμό.",
"Settings_ValidatePhoneNumber": "Επαλήθευση",
"Settings_VerificationCodeJustSent": "Στείλαμε μόλις ένα SMS σε αυτόν τον αριθμό με κωδικό: παρακαλώ πληκτρολογήστε το κωδικό παραπάνω και κάντε κλικ στο κουμπί \"Επαλήθευση\".",
"SettingsMenu": "Μηνύματα σε Κινητά",
"SMS_Content_Too_Long": "[πολύ μεγάλο μήκος]",
"TopLinkTooltip": "Λάβετε αναφορές Στατιστικών Ιστοσελίδων στο e-mail σας ή το κινητό σας τηλέφωνο!",
"TopMenu": "Αναφορές Email & SMS",
- "VerificationText": "Ο κωδικός είναι %s. Για να επικυρώσετε τον αριθμό τηλεφώνου σας και να λάβετε αναφορές του Piwik με SMS παρακαλούμε αντιγράψτε τον κώδικα σε μορφή προσβάσιμη μέσω του Piwik > %s > %s."
+ "VerificationText": "Ο κωδικός είναι %1$s. Για να επαληθεύσετε τον τηλεφωνικό σας αριθμό και να λάβετε αναφορές του Piwik σε SMS, αντιγράψτε τον κωδικό αυτόν στη διαθέσιμη φόρμα στο Piwik > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/en.json b/plugins/MobileMessaging/lang/en.json
index 63df29ceef..3bc39147ef 100644
--- a/plugins/MobileMessaging/lang/en.json
+++ b/plugins/MobileMessaging/lang/en.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Provider name '%s' unknown. Try any of the following instead: %s.",
+ "Exception_UnknownProvider": "Provider name '%1$s' unknown. Try any of the following instead: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "You can add more phone numbers by accessing",
"MobileReport_MobileMessagingSettingsLink": "the Mobile Messaging settings page",
"MobileReport_NoPhoneNumbers": "Please activate at least one phone number by accessing",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "SMS Provider",
"Settings_SuperAdmin": "Super User Settings",
"Settings_SuspiciousPhoneNumber": "If you don't receive the text message, you may try without the leading zero. ie. %s",
- "Settings_UpdateOrDeleteAccount": "You can also %supdate%s or %sdelete%s this account.",
+ "Settings_UpdateOrDeleteAccount": "You can also %1$supdate%2$s or %3$sdelete%4$s this account.",
"Settings_ValidatePhoneNumber": "Validate",
"Settings_VerificationCodeJustSent": "We just sent a SMS to this number with a code: please enter this code above and click \"Validate\".",
"SettingsMenu": "Mobile Messaging",
"SMS_Content_Too_Long": "[too long]",
"TopLinkTooltip": "Get Web Analytics Reports delivered to your email inbox or your mobile phone.",
"TopMenu": "Email & SMS Reports",
- "VerificationText": "Code is %s. To validate your phone number and receive Piwik SMS reports please copy this code in the form accessible via Piwik > %s > %s."
+ "VerificationText": "Code is %1$s. To validate your phone number and receive Piwik SMS reports please copy this code in the form accessible via Piwik > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/es.json b/plugins/MobileMessaging/lang/es.json
index 2de7c1e071..68b8c3a083 100644
--- a/plugins/MobileMessaging/lang/es.json
+++ b/plugins/MobileMessaging/lang/es.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Nombre del proveedor '%s' desconocido. Intente con los siguientes: %s.",
+ "Exception_UnknownProvider": "Nombre del proveedor '%1$s' desconocido. Intente con los siguientes: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Puede agregar más números telefónicos accediendo",
"MobileReport_MobileMessagingSettingsLink": "página de configuraciones de mensajería móvil",
"MobileReport_NoPhoneNumbers": "Por favor, active al menos un número telefónico accediendo",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "Proveedor SMS",
"Settings_SuperAdmin": "Configuraciones Super Usuario",
"Settings_SuspiciousPhoneNumber": "Si no recibe el mensaje de texto, puede intentarlo sin el cero inicial. Por ejemplo, %s",
- "Settings_UpdateOrDeleteAccount": "Puede también %sactualizar%s o %sborrar%s esta cuenta.",
+ "Settings_UpdateOrDeleteAccount": "Puede también %1$sactualizar%2$s o %3$sborrar%4$s esta cuenta.",
"Settings_ValidatePhoneNumber": "Convalidado",
"Settings_VerificationCodeJustSent": "Hemos enviado un mensaje de texto (SMS) con un código: por favor, ingrese este código arriba y clic en \"Validar\".",
"SettingsMenu": "Mensajero móvil",
"SMS_Content_Too_Long": "[demasiado largo]",
"TopLinkTooltip": "Obtenga informes analíticos de su sitio de internet enviados a su casilla de correo electrónico o su teléfono móvil.",
"TopMenu": "Informes por correo electrónico & SMS",
- "VerificationText": "Código es %s. Para validar su número de teléfono y recibir los informes Piwik vía mensaje de texto (SMS), por favor, copie este código en el formulario accesible vía Piwik > %s > %s."
+ "VerificationText": "Código es %1$s. Para validar su número de teléfono y recibir los informes Piwik vía mensaje de texto (SMS), por favor, copie este código en el formulario accesible vía Piwik > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/fa.json b/plugins/MobileMessaging/lang/fa.json
index 3df2e43440..418407be1d 100644
--- a/plugins/MobileMessaging/lang/fa.json
+++ b/plugins/MobileMessaging/lang/fa.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "ارائه کننده خدمات با نام '%s' ناشناخته است. یکی از این ها را امتحان کنید: %s",
+ "Exception_UnknownProvider": "ارائه کننده خدمات با نام '%1$s' ناشناخته است. یکی از این ها را امتحان کنید: %2$s",
"MobileReport_AdditionalPhoneNumbers": "پس از دسترسی می توانید شماره موبایل های بیشتری اضافه کنید",
"MobileReport_MobileMessagingSettingsLink": "صفحه تنظیمات پیام رسانی با موبایل",
"MobileReport_NoPhoneNumbers": "لطفا پس از دسترسی حداقل یک شماره موبایل را فعال کنید",
@@ -25,7 +25,7 @@
"Settings_SMSAPIAccount": "تنظیم اکانت SMS API",
"Settings_SMSProvider": "ارائه دهنده خدمات پیامک",
"Settings_SuperAdmin": "تنظیمات ابر کاربر",
- "Settings_UpdateOrDeleteAccount": "شما می توانید این اکانت را %supdate%s یا %sdelete%s نمایید.",
+ "Settings_UpdateOrDeleteAccount": "شما می توانید این اکانت را %1$supdate%2$s یا %3$sdelete%4$s نمایید.",
"Settings_ValidatePhoneNumber": "تایید",
"Settings_VerificationCodeJustSent": "ما همین الان یک پیامک به همراه یک کد به این شماره فرستادیم: لطفا آن کد را بالا وارد کنید و بر روی \"تایید\" کلیک کنید.",
"SettingsMenu": "پیام رسانی با موبایل",
diff --git a/plugins/MobileMessaging/lang/fi.json b/plugins/MobileMessaging/lang/fi.json
index c4dab90783..1694513001 100644
--- a/plugins/MobileMessaging/lang/fi.json
+++ b/plugins/MobileMessaging/lang/fi.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Tarjoajan nimi '%s' on tuntematon. Kokeile jotakin seuraavista: %s.",
+ "Exception_UnknownProvider": "Tarjoajan nimi '%1$s' on tuntematon. Kokeile jotakin seuraavista: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Voit lisätä puhelinnumeroita",
"MobileReport_MobileMessagingSettingsLink": "Mobiiliviestinnän asetukset",
"MobileReport_NoPhoneNumbers": "Aktivoi vähintään yksi puhelinnumero",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "SMS-toimittaja",
"Settings_SuperAdmin": "Superkäyttäjäasetukset",
"Settings_SuspiciousPhoneNumber": "Jos et saa tekstiviestiä, kokeile ottaa ensimmäinen nolla pois numerosta, eli %s",
- "Settings_UpdateOrDeleteAccount": "Voit myös %späivittää%s tai %spoistaa%s tämän tilin.",
+ "Settings_UpdateOrDeleteAccount": "Voit myös %1$späivittää%2$s tai %3$spoistaa%4$s tämän tilin.",
"Settings_ValidatePhoneNumber": "Varmista",
"Settings_VerificationCodeJustSent": "Olemme juuri lähettäneet tähän numeroon koodin sisältävän tekstiviestin: kirjoita koodi ylle ja klikkaa \"Todenna\".",
"SettingsMenu": "Mobiiliviestit",
"SMS_Content_Too_Long": "[liian pitkä]",
"TopLinkTooltip": "Saa verkkoanalyysiraportteja suoraan sähköpostiisi tai puhelimeesi!",
"TopMenu": "Sähköposti- ja SMS-raportit",
- "VerificationText": "Koodi on %s. Todentaaksesi puhelinnumerosi ja vastaanottaaksesi Piwik SMS raportteja, kopioi tämä koodi lomakkeeseen, jonka löydät Piwikissä > %s > %s."
+ "VerificationText": "Koodi on %1$s. Todentaaksesi puhelinnumerosi ja vastaanottaaksesi Piwik SMS raportteja, kopioi tämä koodi lomakkeeseen, jonka löydät Piwikissä > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/fr.json b/plugins/MobileMessaging/lang/fr.json
index d3be3b6938..26ee3e98f0 100644
--- a/plugins/MobileMessaging/lang/fr.json
+++ b/plugins/MobileMessaging/lang/fr.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Le fournisseur avec le nom '%s' est inconnu. Essayez un de ceux-ci à la place : %s.",
+ "Exception_UnknownProvider": "Le fournisseur avec le nom '%1$s' est inconnu. Essayez un de ceux-ci à la place : %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Vous pouvez ajouter plus de numéro de téléphone en accédant à",
"MobileReport_MobileMessagingSettingsLink": "la page des paramètres mobiles",
"MobileReport_NoPhoneNumbers": "Veuillez activer au moins un des numéros de téléphone en accédant à",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "Fournisseur SMS",
"Settings_SuperAdmin": "Paramètres Super Utilisateur",
"Settings_SuspiciousPhoneNumber": "Si vous ne recevez pas de SMS, vous devriez essayer sans le zéro initial. ie. %s",
- "Settings_UpdateOrDeleteAccount": "Vous pouvez aussi %smettre à jour%s ou %ssupprimer%s ce compte.",
+ "Settings_UpdateOrDeleteAccount": "Vous pouvez aussi %1$smettre à jour%2$s ou %3$ssupprimer%4$s ce compte.",
"Settings_ValidatePhoneNumber": "Valider",
"Settings_VerificationCodeJustSent": "Nous venons juste de vous envoyer un SMS à ce numéro avec un code : veuillez entrer ce code ci-dessus et cliquer sur \"Valider\".",
"SettingsMenu": "Messagerie Mobile",
"SMS_Content_Too_Long": "[trop long]",
"TopLinkTooltip": "Recevez vos rapports d'analyse web dans votre boite de courriels ou sur votre téléphone mobile!",
"TopMenu": "Rapports Email & SMS",
- "VerificationText": "Le code est %s. Pour valider votre numéro de téléphone et recevoir les rapports SMS de Piwik veuillez copier ce code dans le formulaire accessible via Piwik > %s > %s."
+ "VerificationText": "Le code est %1$s. Pour valider votre numéro de téléphone et recevoir les rapports SMS de Piwik veuillez copier ce code dans le formulaire accessible via Piwik > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/hi.json b/plugins/MobileMessaging/lang/hi.json
index ecb78d2b10..ac074b88e5 100644
--- a/plugins/MobileMessaging/lang/hi.json
+++ b/plugins/MobileMessaging/lang/hi.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "प्रदाता का नाम '%s' अज्ञात है. बजाय निम्न में से किसी का प्रयास करें:%s.",
+ "Exception_UnknownProvider": "प्रदाता का नाम '%1$s' अज्ञात है. बजाय निम्न में से किसी का प्रयास करें:%2$s.",
"MobileReport_AdditionalPhoneNumbers": "तुम अभिगम के द्वारा अधिक फोन नंबर जोड़ सकते हैं",
"MobileReport_MobileMessagingSettingsLink": "मोबाइल संदेश सेटिंग पेज",
"MobileReport_NoPhoneNumbers": "अभिगम के द्वारा कम से कम एक फोन नंबर को सक्रिय करें",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "एसएमएस प्रदाता",
"Settings_SuperAdmin": "सुपर प्रयोक्ता सेटिंग्स",
"Settings_SuspiciousPhoneNumber": "आपको टेक्स्ट संदेश नहीं मिलता, तो आप अग्रणी शून्य के बिना कोशिश कर सकते हैं. अर्थात्. %s",
- "Settings_UpdateOrDeleteAccount": "आप भी %sअपडेट%s करने या इस खाते को %sहटा%s सकते हैं.",
+ "Settings_UpdateOrDeleteAccount": "आप भी %1$sअपडेट%2$s करने या इस खाते को %3$sहटा%4$s सकते हैं.",
"Settings_ValidatePhoneNumber": "मान्य करें",
"Settings_VerificationCodeJustSent": "हम सिर्फ एक कोड के साथ इस संख्या के लिए एक एसएमएस भेजा: ऊपर यह कोड दर्ज करें और \"मान्य\" पर क्लिक करें.",
"SettingsMenu": "मोबाइल संदेश",
"SMS_Content_Too_Long": "[बहुत लंबा]",
"TopLinkTooltip": "आपके ईमेल इनबॉक्स या आपके मोबाइल फोन के लिए वेब विश्लेषिकी रिपोर्ट प्राप्त करें!",
"TopMenu": "ईमेल और एसएमएस रिपोर्टें",
- "VerificationText": "प्रविष्ट कोड %s है. अपना फोन नंबर मान्य है और Piwik एसएमएस रिपोर्ट प्राप्त करने के लिए. Piwik के माध्यम से सुलभ रूप से यह कोड की नकल बनाये कृपया > %s > %s."
+ "VerificationText": "प्रविष्ट कोड %1$s है. अपना फोन नंबर मान्य है और Piwik एसएमएस रिपोर्ट प्राप्त करने के लिए. Piwik के माध्यम से सुलभ रूप से यह कोड की नकल बनाये कृपया > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/id.json b/plugins/MobileMessaging/lang/id.json
index 5420b5a418..be3b870245 100644
--- a/plugins/MobileMessaging/lang/id.json
+++ b/plugins/MobileMessaging/lang/id.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Nama penyedia '%s' tidak dikenal. Coba salah satu berikut ini sebagai pengganti: %s.",
+ "Exception_UnknownProvider": "Nama penyedia '%1$s' tidak dikenal. Coba salah satu berikut ini sebagai pengganti: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Anda dapat menambah nomor telepon dengan mengakses",
"MobileReport_MobileMessagingSettingsLink": "halaman pengaturan Pesan Bergerak",
"MobileReport_NoPhoneNumbers": "Harap aktifkan sekurangnya satu nomor telepon dengan mengakses",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "Penyedia SMS",
"Settings_SuperAdmin": "Pengaturan Pengguna Super",
"Settings_SuspiciousPhoneNumber": "Bila Anda tidak menerima pesan teks, silakan coba tanpa awalan nol. Misal, %s",
- "Settings_UpdateOrDeleteAccount": "Anda juga dapat %smemperbarui%s atau %smenghapus%s akun ini.",
+ "Settings_UpdateOrDeleteAccount": "Anda juga dapat %1$smemperbarui%2$s atau %3$smenghapus%4$s akun ini.",
"Settings_ValidatePhoneNumber": "Sahkan",
"Settings_VerificationCodeJustSent": "Kami baru saja mengirim sebuah SMS kepada nomor ini dengan kode: harap masukkan kode di atas dan klik \"Sahkan\".",
"SettingsMenu": "Pesan Bergerak",
"SMS_Content_Too_Long": "[terlalu panjang]",
"TopLinkTooltip": "Dapatkan Laporan Analitis Ramatraya dikirim ke kotak masuk surel atau telepon seluler Anda!",
"TopMenu": "Laporan Surel & SMS",
- "VerificationText": "Kode adalah %s. Untuk mengesahkan nomor telepon Anda dan memperoleh laporan SMS Piwik, harap menyalin kode ini di borang yang daoat diraih melalui Piwik > %s > %s."
+ "VerificationText": "Kode adalah %1$s. Untuk mengesahkan nomor telepon Anda dan memperoleh laporan SMS Piwik, harap menyalin kode ini di borang yang daoat diraih melalui Piwik > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/it.json b/plugins/MobileMessaging/lang/it.json
index e981206157..cb4e358da5 100644
--- a/plugins/MobileMessaging/lang/it.json
+++ b/plugins/MobileMessaging/lang/it.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Nome provider '%s' sconosciuto. Prova uno di questi: %s.",
+ "Exception_UnknownProvider": "Nome provider '%1$s' sconosciuto. Prova uno di questi: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Accedendo puoi aggiungere altri numeri telefonici",
"MobileReport_MobileMessagingSettingsLink": "pagina delle impostazioni Messaggistica Mobile",
"MobileReport_NoPhoneNumbers": "Si prega di attivare con l'accesso almeno un numero di telefono",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "Gestore SMS",
"Settings_SuperAdmin": "Impostazioni Super User",
"Settings_SuspiciousPhoneNumber": "Se non si riceve il messaggio di testo, si può provare senza lo zero iniziale. Cioè %s",
- "Settings_UpdateOrDeleteAccount": "Puoi anche %saggiornare%s o %scancellare%s questo account.",
+ "Settings_UpdateOrDeleteAccount": "Puoi anche %1$saggiornare%2$s o %3$scancellare%4$s questo account.",
"Settings_ValidatePhoneNumber": "Convalida",
"Settings_VerificationCodeJustSent": "Abbiamo inviato ora un SMS con un codice a questo numero: si prega di inserire questo codice qui sopraa e cliccare su \"Convalida\".",
"SettingsMenu": "Messaggeria Mobile",
"SMS_Content_Too_Long": "[troppo lungo]",
"TopLinkTooltip": "Ricevi i Rapporti delle Statistiche Web sulla tua casella di posta elettronica o sul tuo cellulare!",
"TopMenu": "Rapporti Email & SMS",
- "VerificationText": "Il codice è %s. Per convalidare il tuo numero telefonico e ricevere i report SMS di Piwik copia questo codice nel form accessibile da Piwik > %s > %s."
+ "VerificationText": "Il codice è %1$s. Per convalidare il tuo numero telefonico e ricevere i report SMS di Piwik copia questo codice nel form accessibile da Piwik > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/ja.json b/plugins/MobileMessaging/lang/ja.json
index 06a6d42f02..7296a247ec 100644
--- a/plugins/MobileMessaging/lang/ja.json
+++ b/plugins/MobileMessaging/lang/ja.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "プロバイダ名 '%s' は不明です。代わりに次のいずれかをお試しください。%s",
+ "Exception_UnknownProvider": "プロバイダ名 '%1$s' は不明です。代わりに次のいずれかをお試しください。%2$s",
"MobileReport_AdditionalPhoneNumbers": "アクセスすることにより、さらに電話番号を追加できます。",
"MobileReport_MobileMessagingSettingsLink": "モバイルメッセージの設定ページ",
"MobileReport_NoPhoneNumbers": "アクセスすることにより、少なくとも 1 つ以上の電話番号を有効にしてください。",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "SMS プロバイダ",
"Settings_SuperAdmin": "スーパーユーザー設定",
"Settings_SuspiciousPhoneNumber": "テキストメッセージを受け取らない場合、先頭に 0 を付けずにお試しください。例 %s",
- "Settings_UpdateOrDeleteAccount": "このアカウントを %supdate%s または %sdelete%s することも可能です。",
+ "Settings_UpdateOrDeleteAccount": "このアカウントを %1$supdate%2$s または %3$sdelete%4$s することも可能です。",
"Settings_ValidatePhoneNumber": "検証する",
"Settings_VerificationCodeJustSent": "今この番号にコード付きの SMS を送信しました。上のコードを入力し、\"検証\" をクリックしてください。",
"SettingsMenu": "モバイルメッセージ",
"SMS_Content_Too_Long": "[ 長過ぎます ]",
"TopLinkTooltip": "E メール受信箱または携帯電話に届けられたウェブ解析レポートを取得する",
"TopMenu": "Eメール & SMS レポート",
- "VerificationText": "コードは %sです。電話番号を検証または Piwik SMS レポートを受け取るには、Piwik > %s > %s 経由でアクセスできるフォームでこのコードをコピーしてくださ"
+ "VerificationText": "コードは %1$sです。電話番号を検証または Piwik SMS レポートを受け取るには、Piwik > %2$s > %3$s 経由でアクセスできるフォームでこのコードをコピーしてくださ"
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/ko.json b/plugins/MobileMessaging/lang/ko.json
index 44cb019a84..74f5ff5ed2 100644
--- a/plugins/MobileMessaging/lang/ko.json
+++ b/plugins/MobileMessaging/lang/ko.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "'%s' 공급자 이름은 알 수 없습니다. 대신 다음을 사용하세요: %s.",
+ "Exception_UnknownProvider": "'%1$s' 공급자 이름은 알 수 없습니다. 대신 다음을 사용하세요: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "접근에 의해 더 많은 전화 번호를 추가할 수 있습니다",
"MobileReport_MobileMessagingSettingsLink": "모바일 메시징 설정 페이지",
"MobileReport_NoPhoneNumbers": "접근 단위로 하나 이상의 전화 번호를 활성화해 주세요",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "SMS 공급자",
"Settings_SuperAdmin": "슈퍼 유저 설정",
"Settings_SuspiciousPhoneNumber": "만약 문자 메시지를 받지 못했다면, 당신은 리딩 제로 없이 시도할 수 있습니다. 즉. %s",
- "Settings_UpdateOrDeleteAccount": "또한 해당 계정을 %supdate%s나 %sdelete%s할 수 있습니다.",
+ "Settings_UpdateOrDeleteAccount": "또한 해당 계정을 %1$supdate%2$s나 %3$sdelete%4$s할 수 있습니다.",
"Settings_ValidatePhoneNumber": "확인",
"Settings_VerificationCodeJustSent": "해당 번호로 코드를 발송했습니다: 수신한 코드를 입력하고 '확인'을 클릭하세요.",
"SettingsMenu": "모바일 메시징",
"SMS_Content_Too_Long": "[너무 김]",
"TopLinkTooltip": "이메일 또는 휴대전화로 웹로그 분석을 보고할 수 있습니다!",
"TopMenu": "이메일 및 SMS 보고서",
- "VerificationText": "인증코드는 %s 입니다. Piwik SMS 보고서를 받기 위한 전화번호 확인을 위해 수신한 인증코드를 Piwik > %s > %s으로 이동하여 입력하세요."
+ "VerificationText": "인증코드는 %1$s 입니다. Piwik SMS 보고서를 받기 위한 전화번호 확인을 위해 수신한 인증코드를 Piwik > %2$s > %3$s으로 이동하여 입력하세요."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/lt.json b/plugins/MobileMessaging/lang/lt.json
new file mode 100644
index 0000000000..35993aca89
--- /dev/null
+++ b/plugins/MobileMessaging/lang/lt.json
@@ -0,0 +1,11 @@
+{
+ "MobileMessaging": {
+ "Settings_APIKey": "API raktas",
+ "Settings_CountryCode": "Šalies kodas",
+ "Settings_DeleteAccountConfirm": "Ar tikrai norite ištrinti šią SMS paskyrą?",
+ "Settings_InvalidActivationCode": "Įvestas kodas buvo neteisingas, prašome bandyti dar kartą.",
+ "Settings_PhoneNumber": "Telefono numeris",
+ "Settings_PhoneNumbers_Add": "Pridėti naują telefono numerį",
+ "Settings_SuperAdmin": "Super naudotojo nustatymai"
+ }
+} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/nb.json b/plugins/MobileMessaging/lang/nb.json
index 79b4224f2a..faea5eb984 100644
--- a/plugins/MobileMessaging/lang/nb.json
+++ b/plugins/MobileMessaging/lang/nb.json
@@ -12,7 +12,7 @@
"Settings_SMSAPIAccount": "Behandle SMS API-konto",
"Settings_SMSProvider": "SMS-leverandør",
"Settings_SuperAdmin": "Superbruker-instillinger",
- "Settings_UpdateOrDeleteAccount": "Du kan også %soppdatere%s eller %sslette%s denne kontoen.",
+ "Settings_UpdateOrDeleteAccount": "\"Du kan også %1$soppdatere%2$s eller %3$sslette%4$s denne kontoen.",
"Settings_ValidatePhoneNumber": "Valider",
"Settings_VerificationCodeJustSent": "Vi har nettopp sendt en SMS til dette nummeret med en kode: Skriv inn denne koden ovenfor og klikk \"Valider\".",
"SettingsMenu": "Meldingstjenester",
diff --git a/plugins/MobileMessaging/lang/nl.json b/plugins/MobileMessaging/lang/nl.json
index 5c06b59c90..8c1c5f2276 100644
--- a/plugins/MobileMessaging/lang/nl.json
+++ b/plugins/MobileMessaging/lang/nl.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Provider naam '%s' is onbekend. Probeer één van de volgende in de plaats: %s.",
+ "Exception_UnknownProvider": "Provider naam '%1$s' is onbekend. Probeer één van de volgende in de plaats: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Je kunt meer telefoon nummers toevoegen via",
"MobileReport_MobileMessagingSettingsLink": "De Mobiele Messaging instellingen pagina",
"MobileReport_NoPhoneNumbers": "Gelieve ten minste één telefoonnummer te activeren door",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "SMS provider",
"Settings_SuperAdmin": "Super User instellingen",
"Settings_SuspiciousPhoneNumber": "Indien je geen SMS bericht ontvangt, kun je proberen zonder de 0 vooraf te gaan. bijv. %s",
- "Settings_UpdateOrDeleteAccount": "Je kunt dit account ook %supdaten%s of %sverwijderen%s",
+ "Settings_UpdateOrDeleteAccount": "Je kunt dit account ook %1$supdaten%2$s of %3$sverwijderen%4$s",
"Settings_ValidatePhoneNumber": "Valideer",
"Settings_VerificationCodeJustSent": "We hebben net een SMS met een code naar dit nummer verstuurd: Gelieve de code hierboven in te vullen en klik op \"Valideer\".",
"SettingsMenu": "Mobiele berichten",
"SMS_Content_Too_Long": "[te lang]",
"TopLinkTooltip": "Krijg je Web Analyse rapporten toegestuurd naar je mailbox of je mobiele telefoon!",
"TopMenu": "Email & SMS Rapporten",
- "VerificationText": "Code %s. Kopieer deze code naar Piwik > %s > %s om je telefoonnummer te valideren en sms rapporten te ontvangen."
+ "VerificationText": "Code %1$s. Kopieer deze code naar Piwik > %2$s > %3$s om je telefoonnummer te valideren en sms rapporten te ontvangen."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/pt-br.json b/plugins/MobileMessaging/lang/pt-br.json
index 045303b9d1..54e0c4239e 100644
--- a/plugins/MobileMessaging/lang/pt-br.json
+++ b/plugins/MobileMessaging/lang/pt-br.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Nome do provedor '%s' desconhecido. Tente um dos seguintes: %s.",
+ "Exception_UnknownProvider": "Provedor '%1$s' desconhecido. Tente um dos seguintes em vez: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Você pode adicionar mais números de telefone, acessando",
"MobileReport_MobileMessagingSettingsLink": "Página de configurações de Mensagens móveis",
"MobileReport_NoPhoneNumbers": "Por favor ative pelo menos um número de telefone acessando",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "Provedor SMS",
"Settings_SuperAdmin": "Configurações de super usuário",
"Settings_SuspiciousPhoneNumber": "Se você não receber a mensagem de texto, você pode experimentar sem o zero à esquerda. ou seja. %s",
- "Settings_UpdateOrDeleteAccount": "Você também pode %satualizar%s ou %sapagar%s esta conta.",
+ "Settings_UpdateOrDeleteAccount": "Você também pode %1$satualizar%2$s ou %3$sapagar%4$s esta conta.",
"Settings_ValidatePhoneNumber": "Validar",
"Settings_VerificationCodeJustSent": "Acabamos de enviar um SMS para este número com um código: por favor digite o código acima e clique em \"Validar\".",
"SettingsMenu": "Mensagem móvel",
"SMS_Content_Too_Long": "[muito longo]",
"TopLinkTooltip": "Obter relatórios analíticos da Web em seu e-mail ou telefone móvel!",
"TopMenu": "Relatórios de e-mail e SMS",
- "VerificationText": "O código é %s. Para validar o seu número de telefone e receber relatórios Piwik de SMS, copie este código no formulário acessível no Piwik em > %s > %s."
+ "VerificationText": "O código é %1$s. Para validar o seu número de telefone e receber relatórios Piwik de SMS, copie este código no formulário acessível no Piwik em > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/ro.json b/plugins/MobileMessaging/lang/ro.json
index ab8d4b18d7..60a35d16ac 100644
--- a/plugins/MobileMessaging/lang/ro.json
+++ b/plugins/MobileMessaging/lang/ro.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Numele furnizorului '%s' necunoscut. Încercați oricare dintre următoarele: %s.",
+ "Exception_UnknownProvider": "Numele furnizorului '%1$s' necunoscut. Încercați oricare dintre următoarele: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Poţi adîuga mai multe numele de telefon accesând",
"MobileReport_MobileMessagingSettingsLink": "Pagina setări mesage mobile",
"MobileReport_NoPhoneNumbers": "Vă rugăm să activați cel puțin un număr de telefon accesand",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "Operator SMS",
"Settings_SuperAdmin": "Setările utilizatorului privilegiat",
"Settings_SuspiciousPhoneNumber": "Dacă nu primiți un mesaj text, puteți încerca fără primul zero. de exemplu. %s.",
- "Settings_UpdateOrDeleteAccount": "Puteți, de asemenea %sactualiza%s sau %ssterge%s acest cont.",
+ "Settings_UpdateOrDeleteAccount": "Puteți, de asemenea %1$sactualiza%2$s sau %3$ssterge%4$s acest cont.",
"Settings_ValidatePhoneNumber": "Verifică",
"Settings_VerificationCodeJustSent": "Tocmai am trimis un SMS la acest număr cu un cod: Va rugam introduceti codul de mai sus și faceți clic pe \"Validare\".",
"SettingsMenu": "Mesagerie mobil",
"SMS_Content_Too_Long": "[prea lung]",
"TopLinkTooltip": "Web Analytics Rapoarte livrate pe email-ul sau telefonul mobil!",
"TopMenu": "Email & SMS Rapoarte",
- "VerificationText": "Codul este de %s. Pentru a valida numărul dvs. de telefon și pentru a primi rapoarte SMS Piwik vă rugăm să copiați acest cod în formă accesibilă prin intermediul Piwik > %s > %s."
+ "VerificationText": "Codul este de %1$s. Pentru a valida numărul dvs. de telefon și pentru a primi rapoarte SMS Piwik vă rugăm să copiați acest cod în formă accesibilă prin intermediul Piwik > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/ru.json b/plugins/MobileMessaging/lang/ru.json
index 96a0b55e1c..e54e2c7748 100644
--- a/plugins/MobileMessaging/lang/ru.json
+++ b/plugins/MobileMessaging/lang/ru.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Провайдер с именем '%s' неизвестен. Попробуйте один из предложенных вариантов: %s.",
+ "Exception_UnknownProvider": "Провайдер с именем '%1$s' неизвестен. Попробуйте один из предложенных вариантов: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Вы можете добавить несколько телефонных номеров получив доступ",
"MobileReport_MobileMessagingSettingsLink": "Страница настроек Mobile Messaging",
"MobileReport_NoPhoneNumbers": "Пожалуйста, включите хотя бы один номер телефона получив доступ",
@@ -28,12 +28,12 @@
"Settings_SMSAPIAccount": "Управление API SMS аккаунтом",
"Settings_SMSProvider": "SMS-гейт",
"Settings_SuperAdmin": "Настройки суперпользователя",
- "Settings_UpdateOrDeleteAccount": "Так же вы можете %sобновить%s или %sудалить%s этот аккаунт.",
+ "Settings_UpdateOrDeleteAccount": "Так же вы можете %1$sобновить%2$s или %3$sудалить%4$s этот аккаунт.",
"Settings_ValidatePhoneNumber": "Проверить",
"Settings_VerificationCodeJustSent": "Мы только что отправили SMS с кодом на ваш номер: введите его ниже и нажмите \"Подтвердить\"",
"SettingsMenu": "СМС сообщения",
"SMS_Content_Too_Long": "[слишком длинно]",
"TopMenu": "Email и SMS отчёты",
- "VerificationText": "Код %s. Для проверки номера Вашего телефона и получения SMS-отчетов Piwik, пожалуйста, скопируйте этот код в форму > %s > %s."
+ "VerificationText": "\"Код %1$s. Для проверки номера Вашего телефона и получения SMS-отчетов Piwik, пожалуйста, скопируйте этот код в форму > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/sr.json b/plugins/MobileMessaging/lang/sr.json
index c2a01e2ac6..d0c22a0182 100644
--- a/plugins/MobileMessaging/lang/sr.json
+++ b/plugins/MobileMessaging/lang/sr.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Ime provajdera '%s' je nepoznato. Pokušajte sa nekim od ovih: %s.",
+ "Exception_UnknownProvider": "Ime provajdera '%1$s' je nepoznato. Pokušajte sa nekim od ovih: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Možete dodati više brojeva telefona preko",
"MobileReport_MobileMessagingSettingsLink": "stranica sa podešavanjima za SMS",
"MobileReport_NoPhoneNumbers": "Molimo vas da aktivirate barem jedan broj telefona preko",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "SMS provajder",
"Settings_SuperAdmin": "Podešavanja za superkorisnika",
"Settings_SuspiciousPhoneNumber": "Ukoliko ne dobijete SMS poruku, pokušajte bez vodećih nula. Na primer %s",
- "Settings_UpdateOrDeleteAccount": "Ovaj nalog možete i %sažurirati%s ili %sobrisati%s.",
+ "Settings_UpdateOrDeleteAccount": "Ovaj nalog možete i %1$sažurirati%2$s ili %3$sobrisati%4$s.",
"Settings_ValidatePhoneNumber": "Validacija",
"Settings_VerificationCodeJustSent": "Upravo je poslata SMS poruka sa kodom na ovaj broj. Molimo vas da upišete kod u polje iznad i kliknete na \"Validacija\".",
"SettingsMenu": "SMS poruke",
"SMS_Content_Too_Long": "Sadržaj poruke je predug",
"TopLinkTooltip": "Neka izveštaji i analitike stižu u vaše poštansko sanduče ili na mobilni!",
"TopMenu": "Elektronski i SMS izveštaji",
- "VerificationText": "Kod je %s. Da biste izvršili validaciju broja vašeg telefona i počeli da primate SMS izveštaje, molimo vas da kopirate ovaj kod u Piwik > %s > %s."
+ "VerificationText": "Kod je %1$s. Da biste izvršili validaciju broja vašeg telefona i počeli da primate SMS izveštaje, molimo vas da kopirate ovaj kod u Piwik > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/sv.json b/plugins/MobileMessaging/lang/sv.json
index 4c1cd77c4d..d7e3bfbd19 100644
--- a/plugins/MobileMessaging/lang/sv.json
+++ b/plugins/MobileMessaging/lang/sv.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Användarnamn '%s' är okänt. Försök med något av följande istället: %s.",
+ "Exception_UnknownProvider": "Användarnamn '%1$s' är okänt. Försök med något av följande istället: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Du kan lägga till flera telefonnummer genom att ge dem tillgång",
"MobileReport_MobileMessagingSettingsLink": "Sidan för Mobila meddelanden",
"MobileReport_NoPhoneNumbers": "Aktivera minst ett telefonnummer genom att ge åtkomst",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "SMS Leverantör",
"Settings_SuperAdmin": "Administratörsinställningar",
"Settings_SuspiciousPhoneNumber": "Om du inte får något meddelande, pröva att ta bort första nollan i numret %s",
- "Settings_UpdateOrDeleteAccount": "Du kan också %suppdatera%s eller %sradera%s det här kontot.",
+ "Settings_UpdateOrDeleteAccount": "Du kan också %1$suppdatera%2$s eller %3$sradera%4$s det här kontot.",
"Settings_ValidatePhoneNumber": "Bekräfta",
"Settings_VerificationCodeJustSent": "Vi har precis skickat ett SMS till det här numret med en kod: var snäll och skriv in den här koden ovan och klicka på \"verifiera\"",
"SettingsMenu": "Mobila meddelanden",
"SMS_Content_Too_Long": "[för långt]",
"TopLinkTooltip": "Få Webb Analysrapporter levererade till din mail inkorg eller din mobiltelefon",
"TopMenu": "E-post och SMS-rapporter",
- "VerificationText": "Koden är %s. För att verifiera ditt telefonnummer och få Piwiks SMS rapporter ber vi dig kopiera den här koden i formuläret för åtkomlighet via Piwik > %s > %s."
+ "VerificationText": "Koden är %1$s. För att verifiera ditt telefonnummer och få Piwiks SMS rapporter ber vi dig kopiera den här koden i formuläret för åtkomlighet via Piwik > %2$s > %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/tl.json b/plugins/MobileMessaging/lang/tl.json
index 22c3efe4c4..36ffcd81d9 100644
--- a/plugins/MobileMessaging/lang/tl.json
+++ b/plugins/MobileMessaging/lang/tl.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "%s' ay hindi kilalang pangalan ng Provider. Subukan ang alinman sa mga sumusunod sa halip: %s.",
+ "Exception_UnknownProvider": "'%1$s' ay hindi kilalang pangalan ng Provider. Subukan ang alinman sa mga sumusunod sa halip: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Maaari kang magdagdag iba pang numero ng telepono sa pag-access sa",
"MobileReport_MobileMessagingSettingsLink": "Ang pahina para sa Mobile Messaging settings.",
"MobileReport_NoPhoneNumbers": "Mangyaring i-activate ang kahit isang phone number sa pamamagitan ng pag-access",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "SMS Provider",
"Settings_SuperAdmin": "Mga Super Setting ng User",
"Settings_SuspiciousPhoneNumber": "Kung hindi mo natanggap ang text message maaari mong subukan mo ng walang mga zero sa unahan ng numbero. ibig sabihin. %s",
- "Settings_UpdateOrDeleteAccount": "Pwede mo ring %s i-update %s o %s tanggalin %s ang account na ito.",
+ "Settings_UpdateOrDeleteAccount": "Pwede mo ring %1$s i-update %2$s o %3$s tanggalin %4$s ang account na ito.",
"Settings_ValidatePhoneNumber": "Validate",
"Settings_VerificationCodeJustSent": "Kakapadala lang namin ng SMS sa numerong ito na may code na: mangyarin ilagay ang code sa taas at e-click ang \"Validate\".",
"SettingsMenu": "Mobile Messaging",
"SMS_Content_Too_Long": "[masyadong mahaba]",
"TopLinkTooltip": "Kumuha ng Ulat para sa Web Analytics na mai-hahatid sa iyong email inbox o sa iyong mobile phone.",
"TopMenu": "Mga ulat ng Email at SMS",
- "VerificationText": "Ang code ay %s. Upang mapatunayan ang iyong numero at makatanggap ng Piwik SMS mangyaring kopyahin ang code na ito sa form sa pamamagitan ng Piwik >%s >%s"
+ "VerificationText": "Ang code ay %1$s. Upang mapatunayan ang iyong numero at makatanggap ng Piwik SMS mangyaring kopyahin ang code na ito sa form sa pamamagitan ng Piwik >%2$s >%3$s"
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/vi.json b/plugins/MobileMessaging/lang/vi.json
index d5deb6ff92..13c11448f8 100644
--- a/plugins/MobileMessaging/lang/vi.json
+++ b/plugins/MobileMessaging/lang/vi.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "Tên nhà cung cấp '%s' chưa biết. Thử các cách sau đây để thay thế: %s.",
+ "Exception_UnknownProvider": "Tên nhà cung cấp '%1$s' chưa biết. Thử các cách sau đây để thay thế: %2$s.",
"MobileReport_AdditionalPhoneNumbers": "Bạn có thể thêm nhiều số điện thoại bằng cách truy cập",
"MobileReport_MobileMessagingSettingsLink": "Trang cài đặt tin nhắn di động",
"MobileReport_NoPhoneNumbers": "Hãy kích hoạt ít nhất một số điện thoại bằng cách truy cập",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "Nhà cung cấp SMS",
"Settings_SuperAdmin": "Cài đặt siêu người dùng",
"Settings_SuspiciousPhoneNumber": "Nếu bạn không nhận được tin nhắn văn bản, bạn có thể thử ngoài hàng 0 đầu. tức là. %s",
- "Settings_UpdateOrDeleteAccount": "Bạn cũng có thể %s cập nhật %s hoặc %s xóa %s tài khoản này.",
+ "Settings_UpdateOrDeleteAccount": "Bạn cũng có thể %1$s cập nhật %2$s hoặc %3$s xóa %4$s tài khoản này.",
"Settings_ValidatePhoneNumber": "Xác nhận",
"Settings_VerificationCodeJustSent": "Chúng tôi đã gửi một tin nhắn SMS đến số này với một mã số: vui lòng điền mã ở trên và click \"Xác nhận\".",
"SettingsMenu": "Tin nhắn trên điện thoại di động",
"SMS_Content_Too_Long": "[quá lâu]",
"TopLinkTooltip": "Nhận các báo cáo Web Analytics đã được gửi đến hộp thư email của bạn hoặc điện thoại di động của bạn!",
"TopMenu": "Các báo cáo Email & SMS",
- "VerificationText": "Mã số là %s. Để xác nhận số điện thoại của bạn và nhận được báo cáo SMS Piwik hãy sao chép mã này trong mẫu truy cập thông qua Piwik > %s> %s."
+ "VerificationText": "Mã số là %1$s. Để xác nhận số điện thoại của bạn và nhận được báo cáo SMS Piwik hãy sao chép mã này trong mẫu truy cập thông qua Piwik > %2$s> %3$s."
}
} \ No newline at end of file
diff --git a/plugins/MobileMessaging/lang/zh-cn.json b/plugins/MobileMessaging/lang/zh-cn.json
index ea65101499..8dec33bdc4 100644
--- a/plugins/MobileMessaging/lang/zh-cn.json
+++ b/plugins/MobileMessaging/lang/zh-cn.json
@@ -1,6 +1,6 @@
{
"MobileMessaging": {
- "Exception_UnknownProvider": "服务商名字 '%s' 未知,请试试下面的: %s。",
+ "Exception_UnknownProvider": "服务商名字 '%1$s' 未知,请试试下面的: %2$s。",
"MobileReport_AdditionalPhoneNumbers": "通过访问,您可以添加多个电话号码",
"MobileReport_MobileMessagingSettingsLink": "手机短信设置页",
"MobileReport_NoPhoneNumbers": "激活至少一个电话号码,请访问",
@@ -29,13 +29,13 @@
"Settings_SMSProvider": "短信服务商",
"Settings_SuperAdmin": "用户设置",
"Settings_SuspiciousPhoneNumber": "如果没有收到短信,试试前面不要 0。例如. %s",
- "Settings_UpdateOrDeleteAccount": "您也可以 %s修改%s 或 %s删除%s 这个帐号。",
+ "Settings_UpdateOrDeleteAccount": "您也可以 %1$s修改%2$s 或 %3$s删除%4$s 这个帐号。",
"Settings_ValidatePhoneNumber": "有效",
"Settings_VerificationCodeJustSent": "我们刚发了代码短信到这个号码: 请输入上面的代码然后点 \"验证\"。",
"SettingsMenu": "手机短信",
"SMS_Content_Too_Long": "[太长]",
"TopLinkTooltip": "设置网站分析报表发送到邮箱或者手机!",
"TopMenu": "邮件和短信报表",
- "VerificationText": "代码为 %s。要验证电话号码及接收 Piwik 短信报表,请复制本代码到 Piwik > %s > %s 的表格中。"
+ "VerificationText": "代码为 %1$s。要验证电话号码及接收 Piwik 短信报表,请复制本代码到 Piwik > %2$s > %3$s 的表格中。"
}
} \ No newline at end of file
diff --git a/plugins/Monolog/tests/System/TrackerLoggingTest.php b/plugins/Monolog/tests/System/TrackerLoggingTest.php
index 8716229116..0c85338850 100644
--- a/plugins/Monolog/tests/System/TrackerLoggingTest.php
+++ b/plugins/Monolog/tests/System/TrackerLoggingTest.php
@@ -12,6 +12,7 @@ use Piwik\Config;
use Piwik\Date;
use Piwik\Tests\Framework\Fixture;
use Piwik\Tests\Framework\TestCase\SystemTestCase;
+use Piwik\Tests\Framework\TestingEnvironmentVariables;
use PiwikTracker;
/**
@@ -82,7 +83,7 @@ DEBUG: 'apiv' => '1',", $response);
private function setTrackerConfig($trackerConfig)
{
- $testingEnvironment = self::$fixture->getTestEnvironment();
+ $testingEnvironment = new TestingEnvironmentVariables();
$testingEnvironment->overrideConfig('Tracker', $trackerConfig);
$testingEnvironment->overrideConfig('log', 'log_writers', array('screen'));
$testingEnvironment->save();
diff --git a/plugins/Morpheus/stylesheets/general/_default.less b/plugins/Morpheus/stylesheets/general/_default.less
index 689cb0351f..68d1827806 100644
--- a/plugins/Morpheus/stylesheets/general/_default.less
+++ b/plugins/Morpheus/stylesheets/general/_default.less
@@ -33,7 +33,11 @@ blockquote, q {
/* remember to define focus styles! */
:focus {
- outline: auto;
+ outline: thin dotted;
+}
+
+a:focus {
+ outline: thin dotted;
}
/* remember to highlight inserts somehow! */
diff --git a/plugins/Morpheus/stylesheets/general/_jqueryUI.less b/plugins/Morpheus/stylesheets/general/_jqueryUI.less
index f5025fbd03..51d5cd0b9a 100644
--- a/plugins/Morpheus/stylesheets/general/_jqueryUI.less
+++ b/plugins/Morpheus/stylesheets/general/_jqueryUI.less
@@ -262,3 +262,22 @@ body .ui-tooltip.small {
.ui-dialog ~ .ui-dialog {
border: 1px solid #aaa;
}
+
+.ui-dialog-titlebar .ui-icon-closethick {
+ font-family: 'piwik';
+ font-weight: bold;
+
+ /* Better Font Rendering =========== */
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
+ font-size:8px;
+ background-image: none !important;
+ text-indent: 0px !important;
+ opacity: 1 !important;
+ color:@theme-color-brand-contrast;
+
+ &:before{
+ content:"\e60a";
+ }
+}
diff --git a/plugins/Morpheus/stylesheets/main.less b/plugins/Morpheus/stylesheets/main.less
index 3bbe2602f5..5d37b9ab2b 100644
--- a/plugins/Morpheus/stylesheets/main.less
+++ b/plugins/Morpheus/stylesheets/main.less
@@ -163,13 +163,8 @@ table.entityTable tr td a:hover {
.segmentationContainer {
.submenu {
li {
- .font-default(13px, 16px);
- color: @theme-color-text-light;
- &:hover {
- border-color: @color-silver-l80 !important;
- background:@theme-color-background-base !important;
- .border-radius(0px);
- }
+ .font-default(13px, 16px);
+ color: @theme-color-text-light;
}
}
}
@@ -561,7 +556,7 @@ div.sparkline {
}
.visitor-profile-more-info {
- margin-top: 15px;
+ margin: 5px 0 15px 0;
}
.visitor-profile-visits-container {
diff --git a/plugins/Morpheus/stylesheets/theme-advanced.less b/plugins/Morpheus/stylesheets/theme-advanced.less
index 82efdbb571..31e91e6cd8 100644
--- a/plugins/Morpheus/stylesheets/theme-advanced.less
+++ b/plugins/Morpheus/stylesheets/theme-advanced.less
@@ -8,3 +8,6 @@
@theme-color-code: #F3F3F3;
@theme-color-code-background: #4D4D4D;
+
+@theme-color-widget-background: @theme-color-background-base;
+@theme-color-widget-border: @color-silver-l85;
diff --git a/plugins/Morpheus/stylesheets/theme.less b/plugins/Morpheus/stylesheets/theme.less
index 97eb216d2f..54a49bd9db 100644
--- a/plugins/Morpheus/stylesheets/theme.less
+++ b/plugins/Morpheus/stylesheets/theme.less
@@ -13,6 +13,7 @@
@theme-color-base-series: #ee3024;
@theme-color-menu-contrast-text: @theme-color-text;
+@theme-color-menu-contrast-textSelected: @theme-color-menu-contrast-text;
@theme-color-menu-contrast-textActive: @theme-color-brand;
@theme-color-menu-contrast-background: @theme-color-background-tinyContrast;
diff --git a/plugins/Morpheus/stylesheets/uibase/_loading.less b/plugins/Morpheus/stylesheets/uibase/_loading.less
index e57e3d0a6d..f375f7917f 100644
--- a/plugins/Morpheus/stylesheets/uibase/_loading.less
+++ b/plugins/Morpheus/stylesheets/uibase/_loading.less
@@ -15,6 +15,11 @@
display:none;
}
+#root > #loadingError {
+ margin-left: 20px;
+ margin-right: 20px;
+}
+
#loadingError {
font-size: 15px;
padding: 8px 0;
diff --git a/plugins/Morpheus/templates/admin.twig b/plugins/Morpheus/templates/admin.twig
index 348cd71f72..bb669acf51 100644
--- a/plugins/Morpheus/templates/admin.twig
+++ b/plugins/Morpheus/templates/admin.twig
@@ -19,7 +19,7 @@
{% include "@CoreHome/_topScreen.twig" %}
{% import 'ajaxMacros.twig' as ajax %}
- {{ ajax.requestErrorDiv(emailSuperUser|default('')) }}
+ {{ ajax.requestErrorDiv(emailSuperUser|default(''), arePiwikProAdsEnabled) }}
{{ postEvent("Template.beforeContent", "admin", currentModule) }}
<div class="page">
diff --git a/plugins/Morpheus/templates/ajaxMacros.twig b/plugins/Morpheus/templates/ajaxMacros.twig
index 4d06fd4e30..267ff8e83d 100644
--- a/plugins/Morpheus/templates/ajaxMacros.twig
+++ b/plugins/Morpheus/templates/ajaxMacros.twig
@@ -13,10 +13,26 @@
</div>
{% endmacro %}
-{% macro requestErrorDiv(emailSuperUser) %}
- {% if emailSuperUser is defined and emailSuperUser %}
- <div id="loadingError">{{ 'General_ErrorRequest'|translate('<a href="mailto:' ~ emailSuperUser ~ '">', '</a>')|raw }}</div>
- {% else %}
- <div id="loadingError">{{ 'General_ErrorRequest'|translate('', '') }}</div>
- {% endif %}
+{% macro requestErrorDiv(emailSuperUser, arePiwikProAdsEnabled = false) %}
+ <div id="loadingError">
+ <div class="alert alert-danger">
+
+ {% if emailSuperUser is defined and emailSuperUser %}
+ {{ 'General_ErrorRequest'|translate('<a href="mailto:' ~ emailSuperUser ~ '">', '</a>')|raw }}
+ {% else %}
+ {{ 'General_ErrorRequest'|translate('', '') }}
+ {% endif %}
+
+ <br /><br />
+ {{ 'General_NeedMoreHelp'|translate }}
+
+ <a rel="noreferrer" target="_blank" href="https://piwik.org/faq/troubleshooting/faq_19489/">{{ 'General_Faq'|translate }}</a> –
+ <a rel="noreferrer" target="_blank" href="http://forum.piwik.org/">{{ 'Feedback_CommunityHelp'|translate }}</a>
+
+ {%- if arePiwikProAdsEnabled %}
+ –
+ <a rel="noreferrer" target="_blank" href="{{ 'https://piwik.pro/'|piwikProCampaignParameters('Help', 'AjaxError')|e('html_attr') }}">{{ 'Feedback_ProfessionalHelp'|translate }}</a>
+ {%- endif %}.
+ </div>
+ </div>
{% endmacro %} \ No newline at end of file
diff --git a/plugins/Morpheus/templates/dashboard.twig b/plugins/Morpheus/templates/dashboard.twig
index c9feafebe6..8adf020f2c 100644
--- a/plugins/Morpheus/templates/dashboard.twig
+++ b/plugins/Morpheus/templates/dashboard.twig
@@ -8,7 +8,7 @@
<![endif]-->
{% endblock %}
-{% set title %}{{ siteName|raw }} - {{ 'CoreHome_WebAnalyticsReports'|translate }}{% endset %}
+{% set title %}{{ siteName|raw }}{% if prettyDateLong is defined %} - {{ prettyDateLong }}{% endif %} - {{ 'CoreHome_WebAnalyticsReports'|translate }}{% endset %}
{% block pageDescription %}Web Analytics report for {{ siteName|escape("html_attr") }} - Piwik{% endblock %}
@@ -43,13 +43,13 @@
<div class="pageWrap">
- <a name="main"></a>
<div class="top_controls">
{% block topcontrols %}
{% endblock %}
</div>
+ <a name="main"></a>
{% block notification %}
{% include "@CoreHome/_notifications.twig" %}
{% endblock %}
diff --git a/plugins/Morpheus/templates/user.twig b/plugins/Morpheus/templates/user.twig
index 39710e2bb2..f1fed83d2e 100644
--- a/plugins/Morpheus/templates/user.twig
+++ b/plugins/Morpheus/templates/user.twig
@@ -21,7 +21,7 @@
{% include "@CoreHome/_topScreen.twig" %}
{% import 'ajaxMacros.twig' as ajax %}
- {{ ajax.requestErrorDiv(emailSuperUser|default('')) }}
+ {{ ajax.requestErrorDiv(emailSuperUser|default(''), arePiwikProAdsEnabled) }}
{{ postEvent("Template.beforeContent", "user", currentModule) }}
<div class="page">
diff --git a/plugins/MultiSites/MultiSites.php b/plugins/MultiSites/MultiSites.php
index 1fb90cfeae..d104db301b 100644
--- a/plugins/MultiSites/MultiSites.php
+++ b/plugins/MultiSites/MultiSites.php
@@ -62,6 +62,10 @@ class MultiSites extends \Piwik\Plugin
$translations[] = 'General_ErrorRequest';
$translations[] = 'General_Pagination';
$translations[] = 'General_ClickToSearch';
+ $translations[] = 'General_NeedMoreHelp';
+ $translations[] = 'General_Faq';
+ $translations[] = 'Feedback_CommunityHelp';
+ $translations[] = 'Feedback_ProfessionalHelp';
}
public function getJsFiles(&$jsFiles)
diff --git a/plugins/MultiSites/angularjs/dashboard/dashboard.controller.js b/plugins/MultiSites/angularjs/dashboard/dashboard.controller.js
index 3ba1b15a21..35cf26a5de 100644
--- a/plugins/MultiSites/angularjs/dashboard/dashboard.controller.js
+++ b/plugins/MultiSites/angularjs/dashboard/dashboard.controller.js
@@ -19,6 +19,7 @@
$scope.idSite = piwik.broadcast.getValueFromUrl('idSite');
$scope.url = piwik.piwik_url;
$scope.period = piwik.period;
+ $scope.arePiwikProAdsEnabled = piwik.config && piwik.config.are_ads_enabled;
this.refresh = function (interval) {
multisitesDashboardModel.refreshInterval = interval;
diff --git a/plugins/MultiSites/angularjs/dashboard/dashboard.directive.html b/plugins/MultiSites/angularjs/dashboard/dashboard.directive.html
index a0f183a7c6..06a7fb6613 100644
--- a/plugins/MultiSites/angularjs/dashboard/dashboard.directive.html
+++ b/plugins/MultiSites/angularjs/dashboard/dashboard.directive.html
@@ -59,6 +59,15 @@
<td colspan="7">
<div class="notification system notification-error">
{{ 'General_ErrorRequest'|translate:(''):('') }}
+
+ <br /><br />
+ {{ 'General_NeedMoreHelp'|translate }}
+
+ <a rel="noreferrer" target="_blank" href="https://piwik.org/faq/troubleshooting/faq_19489/">{{ 'General_Faq'|translate }}</a>
+ –
+ <a rel="noreferrer" target="_blank" href="http://forum.piwik.org/">{{ 'Feedback_CommunityHelp'|translate }}</a>
+ <span ng-show="arePiwikProAdsEnabled"> – </span>
+ <a ng-show="arePiwikProAdsEnabled" rel="noreferrer" target="_blank" href="https://piwik.pro/?pk_campaign=Help&pk_medium=AjaxError&pk_content=MultiSites&pk_source=Piwik_App">{{ 'Feedback_ProfessionalHelp'|translate }}</a>.
</div>
</td>
</tr>
diff --git a/plugins/MultiSites/angularjs/dashboard/dashboard.directive.less b/plugins/MultiSites/angularjs/dashboard/dashboard.directive.less
index a200b3d626..c83ab162aa 100644
--- a/plugins/MultiSites/angularjs/dashboard/dashboard.directive.less
+++ b/plugins/MultiSites/angularjs/dashboard/dashboard.directive.less
@@ -21,6 +21,9 @@
.notification-error {
margin-top: 15px;
+ a {
+ text-decoration: underline !important;
+ }
}
.add_new_site,
diff --git a/plugins/MultiSites/lang/bg.json b/plugins/MultiSites/lang/bg.json
index 6535de584c..a99b4f15a9 100644
--- a/plugins/MultiSites/lang/bg.json
+++ b/plugins/MultiSites/lang/bg.json
@@ -3,6 +3,6 @@
"Evolution": "Развитие",
"LoadingWebsites": "Зарежда сайтовете",
"TopLinkTooltip": "Сравнете статистиката за всички ваши уебсайтове.",
- "Pagination": "%s - %s като %s"
+ "Pagination": "%1$s - %2$s като %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/ca.json b/plugins/MultiSites/lang/ca.json
index 764efcbeb1..caa5d9b427 100644
--- a/plugins/MultiSites/lang/ca.json
+++ b/plugins/MultiSites/lang/ca.json
@@ -2,6 +2,6 @@
"MultiSites": {
"Evolution": "Evolució",
"TopLinkTooltip": "Compareu les estadístiques anàlitiques de tots els vostres llocs web.",
- "Pagination": "%s - %s de %s"
+ "Pagination": "%1$s - %2$s de %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/cs.json b/plugins/MultiSites/lang/cs.json
index 2e5df85149..0b9c753c86 100644
--- a/plugins/MultiSites/lang/cs.json
+++ b/plugins/MultiSites/lang/cs.json
@@ -3,7 +3,7 @@
"Evolution": "Vývoj",
"LoadingWebsites": "Načítání webových stránek",
"PluginDescription": "Zobrazte a porovnejte všechny vaše stránky a aplikace na této užitečné nástěnce všech stránek.",
- "TopLinkTooltip": "Porovnejte webové analytické statistiky pro všechny vaše webové stránky.",
- "Pagination": "%s - %s z %s"
+ "TopLinkTooltip": "Porovnejte webové analytické statistiky pro všechny vaše weby.",
+ "Pagination": "%1$s - %2$s z %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/da.json b/plugins/MultiSites/lang/da.json
index 7ef8b68538..5effb77da6 100644
--- a/plugins/MultiSites/lang/da.json
+++ b/plugins/MultiSites/lang/da.json
@@ -3,6 +3,6 @@
"Evolution": "Udvikling",
"LoadingWebsites": "Loading websites",
"TopLinkTooltip": "Sammenlign analyse statistik for alle hjemmesider.",
- "Pagination": "%s - %s af %s"
+ "Pagination": "%1$s - %2$s af %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/de.json b/plugins/MultiSites/lang/de.json
index e85dd962f0..d8e8a37fed 100644
--- a/plugins/MultiSites/lang/de.json
+++ b/plugins/MultiSites/lang/de.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "Lade Websites",
"PluginDescription": "Zeige und vergleiche alle Websites und Apps im hilfreichen 'Alle Websites' Dashboard.",
"TopLinkTooltip": "Vergleichen Sie Webanalytikstatistiken für alle Ihre Websites.",
- "Pagination": "%s - %s von %s"
+ "Pagination": "%1$s - %2$s von %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/el.json b/plugins/MultiSites/lang/el.json
index 930b87d814..2dfc77c22c 100644
--- a/plugins/MultiSites/lang/el.json
+++ b/plugins/MultiSites/lang/el.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "Γίνεται φόρτωση των ιστοτόπων",
"PluginDescription": "Δείτε και συγκρίνετε όλους τους ιστοτόπους σας και τις εφαρμογές σας σε αυτό τον χρήσιμο πίνακα 'Όλοι οι Ιστοτόποι'.",
"TopLinkTooltip": "Σύγκριση στατιστικών Ιστού για όλες τις ιστοσελίδες σας.",
- "Pagination": "%s - %s από %s"
+ "Pagination": "%1$s - %2$s από %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/en.json b/plugins/MultiSites/lang/en.json
index d2a89bbbbd..a96871d54c 100644
--- a/plugins/MultiSites/lang/en.json
+++ b/plugins/MultiSites/lang/en.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "Loading websites",
"PluginDescription": "View and compare all your websites and apps in this useful 'All Websites' dashboard. ",
"TopLinkTooltip": "Compare Web Analytics stats for all of your Websites.",
- "Pagination": "%s - %s of %s"
+ "Pagination": "%1$s - %2$s of %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/es.json b/plugins/MultiSites/lang/es.json
index 87690d1f18..732aed218c 100644
--- a/plugins/MultiSites/lang/es.json
+++ b/plugins/MultiSites/lang/es.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "Cargando sitios de internet",
"PluginDescription": "Vea y compare todos sus sitios de internet y aplicaciones en este tablero 'Todos los sitios de internet'",
"TopLinkTooltip": "Comparar la estadísticas de Análisis de internet para todos sus sitios.",
- "Pagination": "%s - %s de %s"
+ "Pagination": "%1$s - %2$s de %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/fi.json b/plugins/MultiSites/lang/fi.json
index 1c8e1221b3..f947b96527 100644
--- a/plugins/MultiSites/lang/fi.json
+++ b/plugins/MultiSites/lang/fi.json
@@ -3,6 +3,6 @@
"Evolution": "Kehitys",
"LoadingWebsites": "Lataa verkkosivuja",
"TopLinkTooltip": "Vertaile eri sivujen tilastoja.",
- "Pagination": "%s - %s %s:sta."
+ "Pagination": "%1$s - %2$s %3$s:sta."
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/fr.json b/plugins/MultiSites/lang/fr.json
index 6f7a2d1117..511b1937fe 100644
--- a/plugins/MultiSites/lang/fr.json
+++ b/plugins/MultiSites/lang/fr.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "Chargement des sites",
"PluginDescription": "Visualisez et comparez tous vos sites web et application en utilisant le tableau de bord \"tous les sites web\".",
"TopLinkTooltip": "Comparez les statistiques pour tous vos sites web.",
- "Pagination": "%s - %s de %s"
+ "Pagination": "%1$s - %2$s de %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/hi.json b/plugins/MultiSites/lang/hi.json
index 07700bb3c5..78e21fb4f4 100644
--- a/plugins/MultiSites/lang/hi.json
+++ b/plugins/MultiSites/lang/hi.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "लोड हो रहा है वेबसाइट",
"PluginDescription": "देखें और इस उपयोगी 'सभी वेबसाइटों के' डैशबोर्ड में अपने सभी वेबसाइटों और क्षुधा की तुलना करें।",
"TopLinkTooltip": "आपकी वेबसाइट सभी के लिए वेब विश्लेषिकी आँकड़ों की तुलना करें.",
- "Pagination": "%s - %s के लिए %s"
+ "Pagination": "%1$s - %2$s के लिए %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/it.json b/plugins/MultiSites/lang/it.json
index d3fbb5db23..6c0a52d635 100644
--- a/plugins/MultiSites/lang/it.json
+++ b/plugins/MultiSites/lang/it.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "Caricamento siti web",
"PluginDescription": "Guarda e confronta tutti i siti e le app in questa utile dashboard 'Tutti i Siti'.",
"TopLinkTooltip": "Compara le statistiche web di tutti i tuoi siti web.",
- "Pagination": "%s - %s di %s"
+ "Pagination": "%1$s - %2$s di %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/ja.json b/plugins/MultiSites/lang/ja.json
index 56c9ac9e64..6ee7a2ad3a 100644
--- a/plugins/MultiSites/lang/ja.json
+++ b/plugins/MultiSites/lang/ja.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "ウェブサイトをロード中",
"PluginDescription": "この便利な「すべてのウェブサイト」ダッシュボードで、すべてのウェブサイトとアプリケーションを見て、比較してください。",
"TopLinkTooltip": "あなたの全ウェブサイトに対するウェブ解析統計情報を比較してください。",
- "Pagination": "%s の %s - %s"
+ "Pagination": "%1$s の %2$s - %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/ko.json b/plugins/MultiSites/lang/ko.json
index 69e154b027..ce8aa8a772 100644
--- a/plugins/MultiSites/lang/ko.json
+++ b/plugins/MultiSites/lang/ko.json
@@ -2,6 +2,6 @@
"MultiSites": {
"Evolution": "변화 추이",
"TopLinkTooltip": "웹사이트의 모든 웹분석 통계를 비교합니다.",
- "Pagination": "%s - %s 의 %s"
+ "Pagination": "%1$s - %2$s 의 %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/lt.json b/plugins/MultiSites/lang/lt.json
index 8969e9c66c..e4f996cedb 100644
--- a/plugins/MultiSites/lang/lt.json
+++ b/plugins/MultiSites/lang/lt.json
@@ -1,5 +1,7 @@
{
"MultiSites": {
- "Evolution": "Raida"
+ "Evolution": "Raida",
+ "LoadingWebsites": "Įkeliamos svetainės",
+ "Pagination": "%1$s - %2$s iš %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/nb.json b/plugins/MultiSites/lang/nb.json
index 2f317cc9fa..321ce0743a 100644
--- a/plugins/MultiSites/lang/nb.json
+++ b/plugins/MultiSites/lang/nb.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "Laster nettsteder",
"PluginDescription": "Se og sammenligne alle dine nettsteder og apper i denne nyttige «Alle nettsteder»-oversikten.",
"TopLinkTooltip": "Sammenligne web-statistikk for alle dine nettsteder.",
- "Pagination": "%s – %s av %s"
+ "Pagination": "%1$s – %2$s av %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/nl.json b/plugins/MultiSites/lang/nl.json
index de44ae763c..2479c97ecb 100644
--- a/plugins/MultiSites/lang/nl.json
+++ b/plugins/MultiSites/lang/nl.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "Websites laden",
"PluginDescription": "Bekijk en vergelijk al uw websites en apps in dit handige 'Alle Websites' paneel.",
"TopLinkTooltip": "Vergelijk Website statistieken van al je websites.",
- "Pagination": "%s - %s van %s"
+ "Pagination": "%1$s - %2$s van %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/pl.json b/plugins/MultiSites/lang/pl.json
index db8a26af67..c05c3bf9dd 100644
--- a/plugins/MultiSites/lang/pl.json
+++ b/plugins/MultiSites/lang/pl.json
@@ -2,6 +2,6 @@
"MultiSites": {
"Evolution": "Postęp",
"LoadingWebsites": "Ładowanie stron",
- "Pagination": "%s - %s z %s"
+ "Pagination": "%1$s - %2$s z %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/pt-br.json b/plugins/MultiSites/lang/pt-br.json
index 781e7f7e84..e83116d395 100644
--- a/plugins/MultiSites/lang/pt-br.json
+++ b/plugins/MultiSites/lang/pt-br.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "Carregando sites",
"PluginDescription": "Veja e compare todos os seus sites e aplicativos neste útil painel 'Todos Websites'.",
"TopLinkTooltip": "Comparar estatísticas de todos os websites.",
- "Pagination": "%s - %s de %s"
+ "Pagination": "%1$s - %2$s de %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/pt.json b/plugins/MultiSites/lang/pt.json
index 975aadbe4c..e4378b299b 100644
--- a/plugins/MultiSites/lang/pt.json
+++ b/plugins/MultiSites/lang/pt.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "A carregar websites",
"PluginDescription": "Veja e compare todos os seus websites e aplicações no painel \"Todos os Websites\".",
"TopLinkTooltip": "Compare as estatísticas de todos os seus websites.",
- "Pagination": "%s - %s de %s"
+ "Pagination": "%1$s - %2$s de %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/ro.json b/plugins/MultiSites/lang/ro.json
index 147d73ab51..c2a10ba461 100644
--- a/plugins/MultiSites/lang/ro.json
+++ b/plugins/MultiSites/lang/ro.json
@@ -3,6 +3,6 @@
"Evolution": "Evoluţie",
"LoadingWebsites": "încărcare site-uri web",
"TopLinkTooltip": "Compara statisticiLE Web Analytics pentru toate site-urile dvs..",
- "Pagination": "%s - %s of %s"
+ "Pagination": "%1$s - %2$s of %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/ru.json b/plugins/MultiSites/lang/ru.json
index 544c78b519..6f2aec0571 100644
--- a/plugins/MultiSites/lang/ru.json
+++ b/plugins/MultiSites/lang/ru.json
@@ -3,6 +3,6 @@
"Evolution": "Эволюция",
"LoadingWebsites": "Загрузка сайтов",
"TopLinkTooltip": "Сравните веб-аналитику для всех ваших сайтов.",
- "Pagination": "%s - %s из %s"
+ "Pagination": "%1$s - %2$s из %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/sl.json b/plugins/MultiSites/lang/sl.json
index 9843800020..eac6a08232 100644
--- a/plugins/MultiSites/lang/sl.json
+++ b/plugins/MultiSites/lang/sl.json
@@ -2,6 +2,6 @@
"MultiSites": {
"Evolution": "Evolucija",
"LoadingWebsites": "Nalaganje strani",
- "Pagination": "%s - %s od %s"
+ "Pagination": "%1$s - %2$s od %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/sq.json b/plugins/MultiSites/lang/sq.json
index 480a6eb843..cdcbe04e65 100644
--- a/plugins/MultiSites/lang/sq.json
+++ b/plugins/MultiSites/lang/sq.json
@@ -1,6 +1,6 @@
{
"MultiSites": {
"Evolution": "Evolution",
- "Pagination": "%s - %s of %s"
+ "Pagination": "%1$s - %2$s of %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/sr.json b/plugins/MultiSites/lang/sr.json
index c6cdf66780..020b8e00d1 100644
--- a/plugins/MultiSites/lang/sr.json
+++ b/plugins/MultiSites/lang/sr.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "Učitavanje sajtova",
"PluginDescription": "Pregledajte i uporedite sve vaše sajtove i aplikacije preko ovog korisnog 'Svi sajtovi' dodatka.",
"TopLinkTooltip": "Uporedi statistiku za sve vaše sajtove",
- "Pagination": "%s - %s od %s"
+ "Pagination": "%1$s - %2$s od %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/sv.json b/plugins/MultiSites/lang/sv.json
index 1657323104..a8a1adb4b1 100644
--- a/plugins/MultiSites/lang/sv.json
+++ b/plugins/MultiSites/lang/sv.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "Laddar webbplatser",
"PluginDescription": "Visa och jämför alla dina webbplatser i panelen 'All Websites'.",
"TopLinkTooltip": "Jämför statistik för alla dina webbplatser.",
- "Pagination": "%s - %s av %s"
+ "Pagination": "%1$s - %2$s av %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/tl.json b/plugins/MultiSites/lang/tl.json
index fe4d425619..20f6feec10 100644
--- a/plugins/MultiSites/lang/tl.json
+++ b/plugins/MultiSites/lang/tl.json
@@ -3,6 +3,6 @@
"Evolution": "Ebolusyon",
"LoadingWebsites": "Naglo-load ang mga website",
"TopLinkTooltip": "Ikumpara ang stats ng Web Analytics para sa lahat ng iyong Website.",
- "Pagination": "%s - %s ng %s"
+ "Pagination": "%1$s - %2$s ng %3$s"
}
} \ No newline at end of file
diff --git a/plugins/MultiSites/lang/vi.json b/plugins/MultiSites/lang/vi.json
index 7a09ec5c7c..70af095242 100644
--- a/plugins/MultiSites/lang/vi.json
+++ b/plugins/MultiSites/lang/vi.json
@@ -4,6 +4,6 @@
"LoadingWebsites": "Đang tải website",
"PluginDescription": "Xem và so sánh toàn bộ các website bạn quản lý",
"TopLinkTooltip": "So sánh các số liệu thống kê Web Analytics cho tất cả các trang web của bạn.",
- "Pagination": "%s - %s trên %s"
+ "Pagination": "%1$s - %2$s trên %3$s"
}
} \ No newline at end of file
diff --git a/plugins/Overlay/client/followingpages.js b/plugins/Overlay/client/followingpages.js
index 860fbc2274..3185b87b67 100644
--- a/plugins/Overlay/client/followingpages.js
+++ b/plugins/Overlay/client/followingpages.js
@@ -164,7 +164,12 @@ var Piwik_Overlay_FollowingPages = (function () {
linkTag[0].piwikTagElement = true;
var rate = data.clickRate;
- if (rate < 10) {
+
+ if( rate < 0.001 ) {
+ rate = '<0.001';
+ } else if (rate < 1) {
+ rate = Math.round( rate * 1000 ) / 1000;
+ } else if (rate < 10) {
rate = Math.round(rate * 10) / 10;
} else {
rate = Math.round(rate);
diff --git a/plugins/Overlay/javascripts/Piwik_Overlay.js b/plugins/Overlay/javascripts/Piwik_Overlay.js
index 4bde0ee343..35584be177 100644
--- a/plugins/Overlay/javascripts/Piwik_Overlay.js
+++ b/plugins/Overlay/javascripts/Piwik_Overlay.js
@@ -240,19 +240,23 @@ var Piwik_Overlay = (function () {
if (segment) {
unescapedSegment = unescape(segment);
}
- DataTable_RowActions_Transitions.launchForUrl(iframeCurrentPageNormalized, unescapedSegment);
+ if (window.DataTable_RowActions_Transitions) {
+ DataTable_RowActions_Transitions.launchForUrl(iframeCurrentPageNormalized, unescapedSegment);
+ }
return false;
});
// handle row evolution link
$rowEvolutionLink.click(function () {
- DataTable_RowActions_RowEvolution.launch('Actions.getPageUrls', iframeCurrentActionLabel);
+ if (window.DataTable_RowActions_RowEvolution) {
+ DataTable_RowActions_RowEvolution.launch('Actions.getPageUrls', iframeCurrentActionLabel);
+ }
return false;
});
// handle segmented visitor log link
$visitorLogLink.click(function () {
- DataTable_RowActions_Registry.getActionByName('SegmentVisitorLog').createInstance({}).showVisitorLog('Actions.getPageUrls', $('#segment').val(), {});
+ SegmentedVisitorLog.show('Actions.getPageUrls', $('#segment').val(), {});
return false;
});
diff --git a/plugins/Overlay/lang/bg.json b/plugins/Overlay/lang/bg.json
index 4f1a8ffa41..cdd5c2c06d 100644
--- a/plugins/Overlay/lang/bg.json
+++ b/plugins/Overlay/lang/bg.json
@@ -10,7 +10,7 @@
"NoData": "Няма данни за тази страница по време на избрания период.",
"OneClick": "1 клик",
"OpenFullScreen": "Цял екран (без странична лента)",
- "RedirectUrlErrorAdmin": "Може да добавите домейнът като допълнителен адрес %sв настройките%s.",
+ "RedirectUrlErrorAdmin": "Може да добавите домейнът като допълнителен адрес %1$sв настройките%2$s.",
"RedirectUrlErrorUser": "Попитайте вашият администратор да добави домейна, като допълнителен URL."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/ca.json b/plugins/Overlay/lang/ca.json
index daebb34b52..c7f6810ee6 100644
--- a/plugins/Overlay/lang/ca.json
+++ b/plugins/Overlay/lang/ca.json
@@ -13,8 +13,8 @@
"OneClick": "1 click",
"OpenFullScreen": "Mostra a pantalla complerta (sense barra lateral)",
"Overlay": "Overlay de pàgina",
- "RedirectUrlError": "Esteu intentant obrir un pàgina Overlay per la URL \"%s\". %s Cap dels dominis configurats al Piwik concòrda amb l'enllaç.",
- "RedirectUrlErrorAdmin": "Podeu afegir una URL addicional per un domini a %s les preferències%s.",
+ "RedirectUrlError": "Esteu intentant obrir un pàgina Overlay per la URL \"%1$s\". %2$s Cap dels dominis configurats al Piwik concòrda amb l'enllaç.",
+ "RedirectUrlErrorAdmin": "Podeu afegir una URL addicional per un domini a %1$s les preferències%2$s.",
"RedirectUrlErrorUser": "Contacteu amb el vostre administrador per afegir el domini com una URL adicional."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/cs.json b/plugins/Overlay/lang/cs.json
index 69d4745175..d759cb3867 100644
--- a/plugins/Overlay/lang/cs.json
+++ b/plugins/Overlay/lang/cs.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "Přejít na celou obrazovku (bez postranní lišty)",
"Overlay": "Překryv stránky",
"PluginDescription": "Podívejte se na vaše analytická data jako na překryv na vašich stránkách. Zjistěte, kolik uživatelů kliklo na kterýkoliv odkaz. Poznámka: vyžaduje povolený zásuvný modul přechodů.",
- "RedirectUrlError": "Pokoušíte se spustit překryv pro stránku s url \"%s\". %s Žádná doména z nastavení Piwiku ale neodpovídá odkazu.",
- "RedirectUrlErrorAdmin": "Doménu můžete jako další URL přidat v %snastavení%s.",
+ "RedirectUrlError": "Pokoušíte se spustit překryv pro stránku s url \"%1$s\". %2$s Žádná doména z nastavení Piwiku ale neodpovídá odkazu.",
+ "RedirectUrlErrorAdmin": "Doménu můžete jako další URL přidat v %1$snastavení%2$s.",
"RedirectUrlErrorUser": "Požádejte svého administrátora o přidání stránky jako další URL:."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/da.json b/plugins/Overlay/lang/da.json
index 89423a11e2..6caa11f763 100644
--- a/plugins/Overlay/lang/da.json
+++ b/plugins/Overlay/lang/da.json
@@ -13,8 +13,8 @@
"OneClick": "1 klik",
"OpenFullScreen": "Vis fuldskærm (ingen sidebjælke)",
"Overlay": "Side overlejring",
- "RedirectUrlError": "Du forsøger at åbne sideoverlejring for URL \"%s\". %s Ingen af ​​domæner fra Piwiks indstillinger matcher linket.",
- "RedirectUrlErrorAdmin": "Du kan tilføje domænet som en yderligere URL %si indstillingerne%s.",
+ "RedirectUrlError": "Du forsøger at åbne sideoverlejring for URL \"%1$s\". %2$s Ingen af ​​domæner fra Piwiks indstillinger matcher linket.",
+ "RedirectUrlErrorAdmin": "Du kan tilføje domænet som en yderligere URL %1$si indstillingerne%2$s.",
"RedirectUrlErrorUser": "Spørg administratoren om at tilføje domænet som en yderligere URL."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/de.json b/plugins/Overlay/lang/de.json
index d44a6a8084..12391dc874 100644
--- a/plugins/Overlay/lang/de.json
+++ b/plugins/Overlay/lang/de.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "Vollbildmodus starten (keine Sidebar)",
"Overlay": "Seiten Overlay",
"PluginDescription": "Sehen Sie Ihre Analysedaten als ein Overlay auf Ihrer aktuellen Website an. Lassen Sie sich anzeigen wie oft Ihre Benutzer auf welchen Link geklickt haben. Hinweis: Benötigt das Transitions-Plugin.",
- "RedirectUrlError": "Sie versuchen, eine Seiten Overlay Sitzung für die URL \"%s\" zu starten. %s Keine der in den Piwik Einstellungen hinterlegten Domains passt zu diesem Link.",
- "RedirectUrlErrorAdmin": "Sie können diese Domain %sin den Einstellungen%s als zusätzliche URL hinzufügen.",
+ "RedirectUrlError": "Sie versuchen, eine Seiten Overlay Sitzung für die URL \"%1$s\" zu starten. %2$s Keine der in den Piwik Einstellungen hinterlegten Domains passt zu diesem Link.",
+ "RedirectUrlErrorAdmin": "Sie können diese Domain %1$sin den Einstellungen%2$s als zusätzliche URL hinzufügen.",
"RedirectUrlErrorUser": "Bitten Sie Ihren Administrator diese Domain als zusätzliche URL hinzuzufügen."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/el.json b/plugins/Overlay/lang/el.json
index fafe81eb53..76a2b56f98 100644
--- a/plugins/Overlay/lang/el.json
+++ b/plugins/Overlay/lang/el.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "Μετάβαση σε πλήρη οθόνη (χωρίς πλευρική γραμμή)",
"Overlay": "Υπερκάλυψη Σελίδας",
"PluginDescription": "Δείτε τα δεδομένα αναλυτικών σας ως Υπέρθεση στον ιστοτόπο σας. Δείτε πόσες φορές οι χρήστες σας κάνανε κλικ σε κάθε σύνδεσμο. Σημείωση: Απαιτείται να είναι ενεργοποιημένο το πρόσθετο Transitions.",
- "RedirectUrlError": "Προσπαθείτε να ανοίξετε την Επικάλυψη Σελίδων για τη διεύθυνση URL \"%s\". %s Κανένα από τα ονόματα χώρου που βρίσκονται στις ρυθμίσεις του Piwik δεν ταιριάζει με το σύνδεσμο.",
- "RedirectUrlErrorAdmin": "Μπορείτε να προσθέσετε το όνομα χώρου ως μια πρόσθετη διεύθυνση URL %sστις ρυθμίσεις%s.",
+ "RedirectUrlError": "Προσπαθείτε να ανοίξετε τη Σελίδα Υπέρθεσης για το URL \"%1$s\". %2$s Κανένα από τα ονόματα στις ρυθμίσεις του Piwik συμφωνεί με το σύνδεσμο.",
+ "RedirectUrlErrorAdmin": "Μπορείτε να προσθέσετε το όνομα ως επιπρόσθετο URL %1$sστις ρυθμίσεις%2$s.",
"RedirectUrlErrorUser": "Ζητήστε από το διαχειριστή σας για να προσθέσετε το όνομα χώρου ως μια επιπλέον διεύθυνση URL."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/en.json b/plugins/Overlay/lang/en.json
index 2e97cff7db..e6aaec28ff 100644
--- a/plugins/Overlay/lang/en.json
+++ b/plugins/Overlay/lang/en.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "Go full screen (no sidebar)",
"Overlay": "Page Overlay",
"PluginDescription": "See your analytics data as an Overlay on your actual website. View how many times your users have clicked on each link. Note: Requires the Transitions plugin enabled.",
- "RedirectUrlError": "You are attempting to open Page Overlay for the URL \"%s\". %s None of the domains from the Piwik settings matches the link.",
- "RedirectUrlErrorAdmin": "You can add the domain as an additional URL %sin the settings%s.",
+ "RedirectUrlError": "You are attempting to open Page Overlay for the URL \"%1$s\". %2$s None of the domains from the Piwik settings matches the link.",
+ "RedirectUrlErrorAdmin": "You can add the domain as an additional URL %1$sin the settings%2$s.",
"RedirectUrlErrorUser": "Ask your administrator to add the domain as an additional URL."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/es.json b/plugins/Overlay/lang/es.json
index f146775efd..24cda29637 100644
--- a/plugins/Overlay/lang/es.json
+++ b/plugins/Overlay/lang/es.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "Ir a pantalla completa (sin barras laterales)",
"Overlay": "Superposición de página",
"PluginDescription": "Vea su información analítica como una superposición en su actual sitio de internet. Vea cuántas veces sus usuarios han hecho clic en cada enlace. Nota: Requiere el complemento Transitions habilitado.",
- "RedirectUrlError": "Está intentando abrir Superposición de página de la dirección de internet \"%s\"- %s Ninguno de los dominios de su configuración Piwik coincide con el enlace.",
- "RedirectUrlErrorAdmin": "Puede agregar el dominio como una dirección de internet %sen la configuración%s.",
+ "RedirectUrlError": "Está intentando abrir Superposición de página de la dirección de internet \"%1$s\"- %2$s Ninguno de los dominios de su configuración Piwik coincide con el enlace.",
+ "RedirectUrlErrorAdmin": "Puede agregar el dominio como una dirección de internet %1$sen la configuración%2$s.",
"RedirectUrlErrorUser": "Pregunte a su administrador para agregar el dominio como una dirección de internet adicional."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/fa.json b/plugins/Overlay/lang/fa.json
index e10e1473f7..3265a3ae1d 100644
--- a/plugins/Overlay/lang/fa.json
+++ b/plugins/Overlay/lang/fa.json
@@ -11,7 +11,7 @@
"OneClick": "1 کلیک",
"OpenFullScreen": "به حالت تمام صفحه برو (بدون ستون کناری)",
"Overlay": "صفحه از دسترس خارج شد",
- "RedirectUrlErrorAdmin": "شما توانید آدرس های جدیدی را اضافه نمایید URL %sin the settings%s.",
+ "RedirectUrlErrorAdmin": "شما توانید آدرس های جدیدی را اضافه نمایید URL %1$sin the settings%2$s.",
"RedirectUrlErrorUser": "از مدیریت بخواهید که این دامنه را به عنوان دامنه اضافی بیافزاید."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/fi.json b/plugins/Overlay/lang/fi.json
index 2a3719e356..9296b2d7e5 100644
--- a/plugins/Overlay/lang/fi.json
+++ b/plugins/Overlay/lang/fi.json
@@ -13,8 +13,8 @@
"OneClick": "1 klikkaus",
"OpenFullScreen": "Siirry koko näytön tilaan (ei sivupalkkia)",
"Overlay": "Sivun leijuke",
- "RedirectUrlError": "Yrität avata sivun leijuketta URL:lle \"%s\". %s mikän Piwikin asetuksien domain ei vastaa linkkiä.",
- "RedirectUrlErrorAdmin": "Voit lisätä domainin ylimääräisenä URL:nä %sasetuksissa%s.",
+ "RedirectUrlError": "Yrität avata sivun leijuketta URL:lle \"%1$s\". %2$s mikän Piwikin asetuksien domain ei vastaa linkkiä.",
+ "RedirectUrlErrorAdmin": "Voit lisätä domainin ylimääräisenä URL:nä %1$sasetuksissa%2$s.",
"RedirectUrlErrorUser": "Pyydä ylläpitää lisäämään domain ylimääräisenä verkkosivuna."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/fr.json b/plugins/Overlay/lang/fr.json
index 3e2093d4f3..e099c43d87 100644
--- a/plugins/Overlay/lang/fr.json
+++ b/plugins/Overlay/lang/fr.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "Ouvrir en plein écran",
"Overlay": "Analyse des pages web",
"PluginDescription": "Visualisez vos données d'analyse comme une Superposition de votre site web. Voyez combien de fois vos utilisateurs ont cliqué sur chaque lien. Remarque : Nécessite que le composant Transitions soit activé.",
- "RedirectUrlError": "Vous tentez d'ouvrir l'analyse des pages web pour l'URL \"%s\". %s Aucun des domaines configurés dans Piwik ne correspond à cette URL.",
- "RedirectUrlErrorAdmin": "Vous pouvez ajouter le domaine en tant qu'URL additionnelle %sdans les paramètres%s.",
+ "RedirectUrlError": "Vous tentez d'ouvrir l'analyse des pages web pour l'URL \"%1$s\". %2$s Aucun des domaines configurés dans Piwik ne correspond à cette URL.",
+ "RedirectUrlErrorAdmin": "Vous pouvez ajouter le domaine en tant qu'URL additionnelle %1$sdans les paramètres%2$s.",
"RedirectUrlErrorUser": "Demandez à votre administrateur d'ajouter le domaine en tant qu'URL additionnelle."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/hi.json b/plugins/Overlay/lang/hi.json
index a8a35d73a7..2d17629eb6 100644
--- a/plugins/Overlay/lang/hi.json
+++ b/plugins/Overlay/lang/hi.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "पूर्ण स्क्रीन (कोई साइडबार नहीं ) के लिए जाओ",
"Overlay": "पृष्ठ आवरण",
"PluginDescription": "अपने वास्तविक वेबसाइट पर ओवरले के रूप में अपने Analytics डेटा देखें। अपने उपयोगकर्ताओं को एक लिंक पर क्लिक किया है कि कैसे कई बार देखें। नोट: सक्षम बदलाव प्लगइन की आवश्यकता है।",
- "RedirectUrlError": "आप यूआरएल \"%s\" के लिए पृष्ठ आवरण खोलने के लिए प्रयास कर रहे हैं. Piwik सेटिंग से डोमेन में से कोई%s भी लिंक से मेल नहीं खाता है.",
- "RedirectUrlErrorAdmin": "आप सेटिंग्स%s से एक अतिरिक्त URL%s के रूप में डोमेन जोड़ सकते हैं",
+ "RedirectUrlError": "आप यूआरएल \"%1$s\" के लिए पृष्ठ आवरण खोलने के लिए प्रयास कर रहे हैं. Piwik सेटिंग से डोमेन में से कोई%2$s भी लिंक से मेल नहीं खाता है.",
+ "RedirectUrlErrorAdmin": "आप सेटिंग्स%1$s से एक अतिरिक्त URL%2$s के रूप में डोमेन जोड़ सकते हैं",
"RedirectUrlErrorUser": "एक अतिरिक्त URL के रूप में डोमेन को जोड़ने के लिए अपने व्यवस्थापक से पूछें."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/id.json b/plugins/Overlay/lang/id.json
index 2b751ebcbe..2623f61852 100644
--- a/plugins/Overlay/lang/id.json
+++ b/plugins/Overlay/lang/id.json
@@ -13,8 +13,8 @@
"OneClick": "1 kilik",
"OpenFullScreen": "Menuju halaman penuh (tanpa batang sisi)",
"Overlay": "Penghampar Halaman",
- "RedirectUrlError": "Anda mencoba membuka Penghampar Halaman dari URL \"%s\". %s Tidak ada ranah dari pengaturan Piwik sesuai dengan tautan.",
- "RedirectUrlErrorAdmin": "Anda dapat menambah ranah sebagai URL tambahan di %spengaturan%s.",
+ "RedirectUrlError": "Anda mencoba membuka Penghampar Halaman dari URL \"%1$s\". %2$s Tidak ada ranah dari pengaturan Piwik sesuai dengan tautan.",
+ "RedirectUrlErrorAdmin": "Anda dapat menambah ranah sebagai URL tambahan di %1$spengaturan%2$s.",
"RedirectUrlErrorUser": "Silakan bertanya kepada pengelola Anda untuk menambah ranah sebagai URL tambahan."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/it.json b/plugins/Overlay/lang/it.json
index 8f5411007a..f220c226da 100644
--- a/plugins/Overlay/lang/it.json
+++ b/plugins/Overlay/lang/it.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "Vai a schermo intero (niente barra laterale)",
"Overlay": "Overlay di Pagina",
"PluginDescription": "Vedi i tuoi dati statistici in sovrapposizione al tuo sito web. Guarda quante volte i tuoi utenti hanno cliccato su ciascun link. Nota: Richiede che sia abilitato il plugin Transitions.",
- "RedirectUrlError": "Si sta tentando di aprire la Pagina Overlay per l'URL \"%s\". %s Nessuno dei domini dalle impostazioni di Piwik corrisponde al link.",
- "RedirectUrlErrorAdmin": "È possibile aggiungere il dominio come un ulteriore URL %snelle impostazioni%s.",
+ "RedirectUrlError": "Si sta tentando di aprire la Pagina Overlay per l'URL \"%1$s\". %2$s Nessuno dei domini dalle impostazioni di Piwik corrisponde al link.",
+ "RedirectUrlErrorAdmin": "È possibile aggiungere il dominio come un ulteriore URL %1$snelle impostazioni%2$s.",
"RedirectUrlErrorUser": "Chiedi all'amministratore di aggiungere il dominio come un URL aggiuntivo."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/ja.json b/plugins/Overlay/lang/ja.json
index 3c99e23c55..a83faf5776 100644
--- a/plugins/Overlay/lang/ja.json
+++ b/plugins/Overlay/lang/ja.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "フルスクリーンへ (サイドバーなし)",
"Overlay": "ページオーバーレイ",
"PluginDescription": "実際の web サイト上のオーバーレイ分析データを参照してください。ユーザーが各リンクをクリックした回数が表示されます。注: 有効なトランジションプラグインが必要です。",
- "RedirectUrlError": "URL \"%s\" に対するページオーバーレイを開こうとしています。%s Piwik 設定のドメインが、すべてリンクに一致しません。",
- "RedirectUrlErrorAdmin": "%s 設定で %s 追加の URL としてドメインを追加できます。",
+ "RedirectUrlError": "URL \"%1$s\" に対するページオーバーレイを開こうとしています。%2$s Piwik 設定のドメインが、すべてリンクに一致しません。",
+ "RedirectUrlErrorAdmin": "%1$s 設定で %2$s 追加の URL としてドメインを追加できます。",
"RedirectUrlErrorUser": "管理者に、任意のドメインを追加 URL として追加するよう管理者に依頼してください。"
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/ko.json b/plugins/Overlay/lang/ko.json
index 1c2ebbc404..0b0ceb8506 100644
--- a/plugins/Overlay/lang/ko.json
+++ b/plugins/Overlay/lang/ko.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "전체 화면 (사이드바 아님)으로 이동",
"Overlay": "페이지 오버레이",
"PluginDescription": "당신의 웹사이트 분석 데이터를 오버레이 형식으로 볼 수 있습니다. 사용자가 얼마나 각 링크를 클릭했는지 확인해보세요. 참고: Transitions 플러그인이 활성화 되어 있어야 합니다.",
- "RedirectUrlError": "URL \"%s\"에 대한 페이지 오버레이를 열려고 시도합니다. %s은 Piwik 설정한 도메인과 어떤 링크도 일치하지 않습니다.",
- "RedirectUrlErrorAdmin": "당신은 %s설정%s에서 추가적인 URL로 도메인을 추가할 수 있습니다.",
+ "RedirectUrlError": "URL \"%1$s\"에 대한 페이지 오버레이를 열려고 시도합니다. %2$s은 Piwik 설정한 도메인과 어떤 링크도 일치하지 않습니다.",
+ "RedirectUrlErrorAdmin": "당신은 %1$s설정%2$s에서 추가적인 URL로 도메인을 추가할 수 있습니다.",
"RedirectUrlErrorUser": "도메인에 추가적인 URL을 추가하려면 관리자에게 문의하세요."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/lt.json b/plugins/Overlay/lang/lt.json
index 423410a4d4..dfa6b32488 100644
--- a/plugins/Overlay/lang/lt.json
+++ b/plugins/Overlay/lang/lt.json
@@ -1,5 +1,6 @@
{
"Overlay": {
+ "Clicks": "%s spustelėjimų",
"Location": "Vietovė"
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/nl.json b/plugins/Overlay/lang/nl.json
index 1d13d8d471..9fc4153d7a 100644
--- a/plugins/Overlay/lang/nl.json
+++ b/plugins/Overlay/lang/nl.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "Toon volledig scherm (geen zijbalk)",
"Overlay": "Pagina Overlay",
"PluginDescription": "Zie je analyse data als een transparant op je eigenlijke website. Zie hoeveel keer je bezoekers hebben geklik op elke link. Opmerking: Vereist dat de Transitions plugin is ingeschakeld.",
- "RedirectUrlError": "Je probeert Pagina overlay te openen voor de URL \"%s\". %s Geen enkel domain van de Piwik instellingen komt overeen met de link.",
- "RedirectUrlErrorAdmin": "Je kunt het domein toevoegen als extra URL %sin de instellingen%s.",
+ "RedirectUrlError": "Je probeert Pagina overlay te openen voor de URL \"%1$s\". %2$s Geen enkel domain van de Piwik instellingen komt overeen met de link.",
+ "RedirectUrlErrorAdmin": "Je kunt het domein toevoegen als extra URL %1$sin de instellingen%2$s.",
"RedirectUrlErrorUser": "Vraag je beheerder om het domein toe te voegen als additionele URL."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/pt-br.json b/plugins/Overlay/lang/pt-br.json
index 7ac9592fc5..0962c16ed2 100644
--- a/plugins/Overlay/lang/pt-br.json
+++ b/plugins/Overlay/lang/pt-br.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "Ir para tela cheia (sem barra lateral)",
"Overlay": "Sobreposição de Página",
"PluginDescription": "Veja os dados das suas análises como uma sobreposição em seu site real. Veja quantas vezes os usuários clicaram em cada link. Nota: Requer o plugin Transições ativado.",
- "RedirectUrlError": "Você está tentando abrir sobreposição de página para a URL \"%s\". %s Nenhum dos domínios configurados no Piwik corresponde ao link.",
- "RedirectUrlErrorAdmin": "Você pode adicionar um domínio como uma URL adicional %sem definições%s.",
+ "RedirectUrlError": "Você está tentando abrir sobreposição de página para a URL \"%1$s\". %2$s Nenhum dos domínios configurados no Piwik corresponde ao link.",
+ "RedirectUrlErrorAdmin": "Você pode adicionar um domínio como uma URL adicional %1$sem definições%2$s.",
"RedirectUrlErrorUser": "Solicite ao seu administrador para adicionar o domínio como uma URL adicional."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/ro.json b/plugins/Overlay/lang/ro.json
index 88dc592478..6f5c63cce2 100644
--- a/plugins/Overlay/lang/ro.json
+++ b/plugins/Overlay/lang/ro.json
@@ -13,8 +13,8 @@
"OneClick": "1 click",
"OpenFullScreen": "Tot ecranul (fără bara laterală)",
"Overlay": "Acoperire Pagina",
- "RedirectUrlError": "Încercați să deschideți Acoperire Pagina pentru URL-ul \"%s\". %s Niciunul dintre domeniile de setările Piwik nu se potrivește lcu acest link.",
- "RedirectUrlErrorAdmin": "Puteți adăuga domeniul ca o suplimentare de URL-ul %s in setarile%s.",
+ "RedirectUrlError": "Încercați să deschideți Acoperire Pagina pentru URL-ul \"%1$s\". %2$s Niciunul dintre domeniile de setările Piwik nu se potrivește lcu acest link.",
+ "RedirectUrlErrorAdmin": "Puteți adăuga domeniul ca o suplimentare de URL-ul %1$s in setarile%2$s.",
"RedirectUrlErrorUser": "Adresați-vă administratorului pentru a adăuga un domeniu ca un URL suplimentar."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/ru.json b/plugins/Overlay/lang/ru.json
index 14e1780a95..3d9a4a1966 100644
--- a/plugins/Overlay/lang/ru.json
+++ b/plugins/Overlay/lang/ru.json
@@ -9,7 +9,7 @@
"OneClick": "1 клик",
"OpenFullScreen": "Перейти к полному экрану",
"Overlay": "Глубина проникновения",
- "RedirectUrlErrorAdmin": "Можете добавить домен как дополнительный URL %sв настройках%s.",
+ "RedirectUrlErrorAdmin": "Можете добавить домен как дополнительный URL %1$sв настройках%2$s.",
"RedirectUrlErrorUser": "Попросите администратора добавить домен как дополнительный URL."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/sr.json b/plugins/Overlay/lang/sr.json
index 76b0713996..902037b8a2 100644
--- a/plugins/Overlay/lang/sr.json
+++ b/plugins/Overlay/lang/sr.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "Prikaži preko celog ekrana",
"Overlay": "Prikaz preko (overlay)",
"PluginDescription": "Prikažite analitičke podatke preko vašeg sajta. Pogledajte koliko puta su korisnici kliknuli na svaki od linkova. Morate imati uključen Transitions dodatak.",
- "RedirectUrlError": "Pokušali ste da otvorite stranicu za URL \"%s\". %s Nijedan od domena iz Piwik podešavanja ne odgovara ovom linku.",
- "RedirectUrlErrorAdmin": "Možete dodati domen kao dodatni URL %su podešavanjima%s.",
+ "RedirectUrlError": "Pokušali ste da otvorite stranicu za URL \"%1$s\". %2$s Nijedan od domena iz Piwik podešavanja ne odgovara ovom linku.",
+ "RedirectUrlErrorAdmin": "Možete dodati domen kao dodatni URL %1$su podešavanjima%2$s.",
"RedirectUrlErrorUser": "Zamolite administratora da doda domen kao dodatni URL."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/sv.json b/plugins/Overlay/lang/sv.json
index 9974f217d7..29de918027 100644
--- a/plugins/Overlay/lang/sv.json
+++ b/plugins/Overlay/lang/sv.json
@@ -13,8 +13,8 @@
"OneClick": "1 klick",
"OpenFullScreen": "Gå till helskärmsläge (ingen sidolist)",
"Overlay": "Sidöverlägg",
- "RedirectUrlError": "Du försöker öppna ett överliggande lager för URL \"%s\". %s Ingen av domänerna från Piwik's inställningar matchar länken.",
- "RedirectUrlErrorAdmin": "Du kan lägga till domänen som en extra URL %si inställningarna%s.",
+ "RedirectUrlError": "Du försöker öppna ett överliggande lager för URL \"%1$s\". %2$s Ingen av domänerna från Piwik's inställningar matchar länken.",
+ "RedirectUrlErrorAdmin": "Du kan lägga till domänen som en extra URL %1$si inställningarna%2$s.",
"RedirectUrlErrorUser": "Be administratören att lägga till domänen som en extra webbadress"
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/tl.json b/plugins/Overlay/lang/tl.json
index ad94f4a07d..0872705347 100644
--- a/plugins/Overlay/lang/tl.json
+++ b/plugins/Overlay/lang/tl.json
@@ -12,8 +12,8 @@
"NoData": "Walang datos para sa pahinang ito sa napiling panahon.",
"OpenFullScreen": "Mag full screen (walang sidebar)",
"Overlay": "Page Overlay",
- "RedirectUrlError": "Sinusubukan mo upang buksan ang Overlay ng Pahina para sa URL na \"%s\". %s Wala sa mga domains ng Piwik settings ang tugma sa link",
- "RedirectUrlErrorAdmin": "Maaari mong idagdag ang domain na karagdagang URL %s sa mga setting ng %s.",
+ "RedirectUrlError": "Sinusubukan mo upang buksan ang Overlay ng Pahina para sa URL na \"%1$s\". %2$s Wala sa mga domains ng Piwik settings ang tugma sa link",
+ "RedirectUrlErrorAdmin": "Maaari mong idagdag ang domain na karagdagang URL %1$s sa mga setting ng %2$s.",
"RedirectUrlErrorUser": "Tanungin ang iyong administrator upang idagdag ang domain bilang isang karagdagang URL."
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/vi.json b/plugins/Overlay/lang/vi.json
index a84ed3122b..a896ef4d8a 100644
--- a/plugins/Overlay/lang/vi.json
+++ b/plugins/Overlay/lang/vi.json
@@ -13,8 +13,8 @@
"OneClick": "1 click",
"OpenFullScreen": "Toàn màn hình (không có sidebar)",
"Overlay": "Trang Overlay",
- "RedirectUrlError": "Bạn đang cố mở trang Overlay cho URL \"%s\". Không có %s của các tên miền từ các thiết lập Piwik phù hợp với liên kết này.",
- "RedirectUrlErrorAdmin": "Bạn có thể thêm các tên miền như một URL bổ sung %s trong cài đặt %s.",
+ "RedirectUrlError": "Bạn đang cố mở trang Overlay cho URL \"%1$s\". Không có %2$s của các tên miền từ các thiết lập Piwik phù hợp với liên kết này.",
+ "RedirectUrlErrorAdmin": "Bạn có thể thêm các tên miền như một URL bổ sung %1$s trong cài đặt %2$s.",
"RedirectUrlErrorUser": "Yêu cầu quản trị của bạn thêm các tên miền như một URL bổ sung"
}
} \ No newline at end of file
diff --git a/plugins/Overlay/lang/zh-cn.json b/plugins/Overlay/lang/zh-cn.json
index c6fec4aa70..01cfb83dd3 100644
--- a/plugins/Overlay/lang/zh-cn.json
+++ b/plugins/Overlay/lang/zh-cn.json
@@ -14,8 +14,8 @@
"OpenFullScreen": "全屏(无边框)",
"Overlay": "页面叠加",
"PluginDescription": "请参阅您的分析数据为您的实际网站的叠加。查看有多少次你的用户点击每一个环节上。注:需要在转换插件启用。",
- "RedirectUrlError": "您正在打开网址 \"%s\" 的页面叠加。%s 没有 Piwik 设置的域名匹配这个链接。",
- "RedirectUrlErrorAdmin": "您可以在 %s管理设置%s 中以附加网址添加域名。",
+ "RedirectUrlError": "您正在打开网址 \"%1$s\" 的页面叠加。%2$s 没有 Piwik 设置的域名匹配这个链接。",
+ "RedirectUrlErrorAdmin": "您可以在 %1$s管理设置%2$s 中以附加网址添加域名。",
"RedirectUrlErrorUser": "请管理员以附加网址来添加域名。"
}
} \ No newline at end of file
diff --git a/plugins/PiwikPro/PiwikPro.php b/plugins/PiwikPro/PiwikPro.php
new file mode 100644
index 0000000000..590b2a94b5
--- /dev/null
+++ b/plugins/PiwikPro/PiwikPro.php
@@ -0,0 +1,27 @@
+<?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\PiwikPro;
+
+class PiwikPro extends \Piwik\Plugin
+{
+ /**
+ * @see Piwik\Plugin::registerEvents
+ */
+ public function registerEvents()
+ {
+ return array(
+ 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
+ );
+ }
+
+ public function getStylesheetFiles(&$stylesheets)
+ {
+ $stylesheets[] = 'plugins/PiwikPro/stylesheets/widget.less';
+ }
+}
diff --git a/plugins/PiwikPro/Promo.php b/plugins/PiwikPro/Promo.php
new file mode 100644
index 0000000000..c253df0f43
--- /dev/null
+++ b/plugins/PiwikPro/Promo.php
@@ -0,0 +1,65 @@
+<?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\PiwikPro;
+
+class Promo
+{
+ protected $linkTitles = array('Read more', 'Learn more');
+
+ protected $content = array(
+ array(
+ 'campaignContent' => 'discoverPower',
+ 'text' => 'Discover the power of open-source combined with enterprise-grade support and premium functionalities.'
+ ),
+ array(
+ 'campaignContent' => 'bringEnterpriseLevel',
+ 'text' => 'Bring your analytics to enterprise level. Upgrade your Piwik platform and receive access to numerous premium features and assistance from our experts.'
+ ),
+ array(
+ 'campaignContent' => 'funnelAnalytics',
+ 'text' => 'Want Funnel Analytics? Get Premium features and enterprise-grade support from the makers of Piwik.'
+ ),
+ array(
+ 'campaignContent' => 'monitoringAndIncident',
+ 'text' => 'Do you need 24/7 Monitoring and Incident Handling for your Piwik? Get Premium features and enterprise-grade support from the makers of Piwik.'
+ ),
+ array(
+ 'campaignContent' => 'slowingDown',
+ 'text' => 'Is your Piwik slowing down? The Piwik makers can help with your server setup!'
+ ),
+ array(
+ 'campaignContent' => 'excitingFeatures',
+ 'text' => 'Want to know how to use all the exciting features in Piwik? Try our User training to be up to speed with working with Piwik.'
+ ),
+ array(
+ 'campaignContent' => 'slowingDown',
+ 'text' => 'Did you know you can adjust the look and feel of Piwik to your brand, and even replace "Piwik" with your product name? Try our White Label product!',
+ ),
+ array(
+ 'campaignContent' => 'metaSites',
+ 'text' => 'Did you know you can aggregate the tracked data across hundreds of sites and display it in a single dashboard? Get Premium features and enterprise-grade support.',
+ ),
+ );
+
+ public function getLinkTitle()
+ {
+ $titles = $this->linkTitles;
+ shuffle($titles);
+
+ return array_shift($titles);
+ }
+
+ public function getContent()
+ {
+ $content = $this->content;
+ shuffle($content);
+
+ return array_shift($content);
+ }
+}
diff --git a/plugins/PiwikPro/Widgets/PromoPiwikPro.php b/plugins/PiwikPro/Widgets/PromoPiwikPro.php
new file mode 100644
index 0000000000..a9203d417f
--- /dev/null
+++ b/plugins/PiwikPro/Widgets/PromoPiwikPro.php
@@ -0,0 +1,55 @@
+<?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\PiwikPro\Widgets;
+
+use Piwik\Container\StaticContainer;
+use Piwik\Piwik;
+use Piwik\PiwikPro\Advertising;
+use Piwik\Plugins\PiwikPro\Promo;
+use Piwik\View;
+use Piwik\Widget\WidgetConfig;
+
+class PromoPiwikPro extends \Piwik\Widget\Widget
+{
+ /**
+ * @var Advertising
+ */
+ private $advertising;
+
+ /**
+ * @var Promo
+ */
+ private $promo;
+
+ public function __construct(Advertising $advertising, Promo $promo)
+ {
+ $this->advertising = $advertising;
+ $this->promo = $promo;
+ }
+
+ public static function configure(WidgetConfig $config)
+ {
+ $config->setCategoryId('About Piwik');
+ $config->setName('PiwikPro_WidgetPiwikProAd');
+ $config->setIsEnabled(StaticContainer::get('Piwik\PiwikPro\Advertising')->arePiwikProAdsEnabled());
+ }
+
+ public function render()
+ {
+ $view = new View('@PiwikPro/promoPiwikProWidget');
+
+ $promo = $this->promo->getContent();
+
+ $view->ctaLinkUrl = $this->advertising->getPromoUrlForOnPremises('PromoWidget', $promo['campaignContent']);
+ $view->ctaText = $promo['text'];
+ $view->ctaLinkTitle = $this->promo->getLinkTitle();
+
+ return $view->render();
+ }
+}
diff --git a/plugins/PiwikPro/Widgets/RssPiwikPro.php b/plugins/PiwikPro/Widgets/RssPiwikPro.php
new file mode 100644
index 0000000000..26e87f92be
--- /dev/null
+++ b/plugins/PiwikPro/Widgets/RssPiwikPro.php
@@ -0,0 +1,49 @@
+<?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\PiwikPro\Widgets;
+
+use Piwik\Container\StaticContainer;
+use Piwik\Piwik;
+use Piwik\Widget\WidgetConfig;
+use Piwik\Plugins\ExampleRssWidget\RssRenderer;
+
+class RssPiwikPro extends \Piwik\Widget\Widget
+{
+ public static function configure(WidgetConfig $config)
+ {
+ $config->setCategoryId('About Piwik');
+ $config->setName('PiwikPro_WidgetBlogTitle');
+ $config->setIsEnabled(StaticContainer::get('Piwik\PiwikPro\Advertising')->arePiwikProAdsEnabled());
+ }
+
+ public function render()
+ {
+ try {
+ $rss = new RssRenderer('https://piwik.pro/feed/');
+ $rss->showDescription(true);
+
+ return $rss->get();
+
+ } catch (\Exception $e) {
+
+ return $this->error($e);
+ }
+ }
+
+ /**
+ * @param \Exception $e
+ * @return string
+ */
+ private function error($e)
+ {
+ return '<div class="pk-emptyDataTable">'
+ . Piwik::translate('General_ErrorRequest', array('', ''))
+ . ' - ' . $e->getMessage() . '</div>';
+ }
+}
diff --git a/plugins/PiwikPro/config/test.php b/plugins/PiwikPro/config/test.php
new file mode 100644
index 0000000000..327acd5205
--- /dev/null
+++ b/plugins/PiwikPro/config/test.php
@@ -0,0 +1,13 @@
+<?php
+
+use Piwik\Tests\Framework\Mock\PiwikPro\Advertising;
+use Piwik\Plugins\PiwikPro\tests\Framework\Mock\Promo;
+
+return array(
+ 'Piwik\PiwikPro\Advertising' => function () {
+ return new Advertising();
+ },
+ 'Piwik\Plugins\PiwikPro\Promo' => function () {
+ return new Promo();
+ }
+);
diff --git a/plugins/PiwikPro/images/promo.png b/plugins/PiwikPro/images/promo.png
new file mode 100644
index 0000000000..ac15b596df
--- /dev/null
+++ b/plugins/PiwikPro/images/promo.png
Binary files differ
diff --git a/plugins/PiwikPro/lang/en.json b/plugins/PiwikPro/lang/en.json
new file mode 100644
index 0000000000..34e405f8f0
--- /dev/null
+++ b/plugins/PiwikPro/lang/en.json
@@ -0,0 +1,6 @@
+{
+ "PiwikPro": {
+ "WidgetBlogTitle": "Piwik PRO Blog",
+ "WidgetPiwikProAd": "Piwik PRO: Advanced Analytics & Services"
+ }
+} \ No newline at end of file
diff --git a/plugins/PiwikPro/plugin.json b/plugins/PiwikPro/plugin.json
new file mode 100644
index 0000000000..089dd4abf2
--- /dev/null
+++ b/plugins/PiwikPro/plugin.json
@@ -0,0 +1,5 @@
+{
+ "name": "PiwikPro",
+ "description": "Provides widgets to follow Piwik PRO blog and to see info about Piwik PRO services and products.",
+ "theme": false
+} \ No newline at end of file
diff --git a/plugins/PiwikPro/stylesheets/widget.less b/plugins/PiwikPro/stylesheets/widget.less
new file mode 100644
index 0000000000..fdb9cb1eae
--- /dev/null
+++ b/plugins/PiwikPro/stylesheets/widget.less
@@ -0,0 +1,29 @@
+.promoWidget {
+ // hard coded background color because image has hardcoded background
+ background-color: white;
+
+ .promo {
+ padding: 20px;
+ &:after {
+ content: '';
+ clear: both;
+ visibility: hidden;
+ }
+ }
+ .text {
+ overflow: hidden;
+ }
+ hr {
+ margin: 0px;
+ }
+ .link {
+ padding: 20px;
+ }
+ .icon {
+ margin-top:20px;
+ width: 64px;
+ height: 64px;
+ float: left;
+ margin-right: 20px;
+ }
+} \ No newline at end of file
diff --git a/plugins/PiwikPro/templates/promoPiwikProWidget.twig b/plugins/PiwikPro/templates/promoPiwikProWidget.twig
new file mode 100644
index 0000000000..2864fa340f
--- /dev/null
+++ b/plugins/PiwikPro/templates/promoPiwikProWidget.twig
@@ -0,0 +1,12 @@
+<div class="promoWidget">
+ <div class="promo">
+ <img class="icon" src="plugins/PiwikPro/images/promo.png">
+ <p class="text">
+ {{ ctaText }}
+ <br /><br />
+ <a class="btn" href="{{ ctaLinkUrl|e('html_attr') }}" target="_blank" rel="noreferrer">
+ {{ ctaLinkTitle }}
+ </a>
+ </p>
+ </div>
+</div> \ No newline at end of file
diff --git a/plugins/PiwikPro/tests/Framework/Mock/Promo.php b/plugins/PiwikPro/tests/Framework/Mock/Promo.php
new file mode 100644
index 0000000000..47dd6f6497
--- /dev/null
+++ b/plugins/PiwikPro/tests/Framework/Mock/Promo.php
@@ -0,0 +1,22 @@
+<?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\PiwikPro\tests\Framework\Mock;
+
+class Promo extends \Piwik\Plugins\PiwikPro\Promo
+{
+ public function getLinkTitle()
+ {
+ return $this->linkTitles[0];
+ }
+
+ public function getContent()
+ {
+ return $this->content[0];
+ }
+} \ No newline at end of file
diff --git a/plugins/PrivacyManager/lang/be.json b/plugins/PrivacyManager/lang/be.json
index dbad381752..c7da31457e 100644
--- a/plugins/PrivacyManager/lang/be.json
+++ b/plugins/PrivacyManager/lang/be.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "Абярыце \"Так\", калі вы хочаце, каб Piwik не адсочваў поўны IP-адрас.",
"AnonymizeIpInlineHelp": "Схаваць апошні байт(ы) IP-адрасоў наведвальнікаў, каб выканаць вашы мясцовыя законы кіруючых органаў.",
"AnonymizeIpMaskLengtDescription": "Выбраць, колькі байтаў IP-адрасоў наведвальнікаў павінны быць схаваныя.",
- "AnonymizeIpMaskLength": "%s байт(ы) - напр., %s",
+ "AnonymizeIpMaskLength": "%1$s байт(ы) - напр., %2$s",
"ClickHereSettings": "Націсніце тут, каб атрымаць доступ да %s наладак.",
"DeleteLogDescription2": "Калі вы ўключыце аўтаматычнае выдаленне запісаў, вы павінны пераканацца, што ўсе папярэднія штодзённыя справаздачы былі апрацаваны, каб пазбегнуць гублення дадзеных.",
"DeleteLogInfo": "Запісы з наступнай табліцы будуць выдаленыя: %s",
diff --git a/plugins/PrivacyManager/lang/bg.json b/plugins/PrivacyManager/lang/bg.json
index 4e1a6ea7d2..cad5e085e8 100644
--- a/plugins/PrivacyManager/lang/bg.json
+++ b/plugins/PrivacyManager/lang/bg.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "Изберете \"Да\", ако желаете Piwik да не проследява напълно квалифицирани IP адреси.",
"AnonymizeIpInlineHelp": "Скрива последните цифри на IP адреса на посетителя, за да бъде спазен закона за поверителност.",
"AnonymizeIpMaskLengtDescription": "Изберете колко байта от IP на посетителите да е маскирано.",
- "AnonymizeIpMaskLength": "%s байта - пример %s",
+ "AnonymizeIpMaskLength": "%1$s байта - пример %2$s",
"ClickHereSettings": "Натиснете тук, за да влезете в %s настройките.",
"CurrentDBSize": "Настоящ размер на базата данни",
"DBPurged": "Базата от данни е изтрита.",
@@ -18,8 +18,8 @@
"DeleteMaxRows": "Максималният брой редове, които да бъдат изтрити на един път:",
"DeleteMaxRowsNoLimit": "без лимит",
"DeleteReportsConfirm": "На път сте да включите изтриване на отчетите. Ако старите отчети са изтрити, вие ще трябвате да ги изготвите наново за да ги видите. Сигурни ли сте, че искате да направите това?",
- "DeleteReportsDetailedInfo": "Информацията от базата данни за цифровите архивни таблици (%s) и текстовите архивни таблици (%s) ще бъде изтрита.",
- "DeleteReportsInfo": "Ако е включено, старите отчети ще бъдат изтрити. %sПрепоръчваме да включвате само когато мястото за база данни е ограничено.%s",
+ "DeleteReportsDetailedInfo": "Информацията от базата данни за цифровите архивни таблици (%1$s) и текстовите архивни таблици (%2$s) ще бъде изтрита.",
+ "DeleteReportsInfo": "Ако е включено, старите отчети ще бъдат изтрити. %1$sПрепоръчваме да включвате само когато мястото за база данни е ограничено.%2$s",
"DeleteReportsInfo2": "Ако не сте включили \"%s\", старите отчети ще се създават автоматично при поискване.",
"DeleteReportsInfo3": "Ако сте включили \"%s\", информацията ще бъде изгубена завинаги.",
"DeleteReportsOlderThan": "Изтрива отчети по-стари от",
@@ -47,7 +47,7 @@
"PurgingData": "Изтриване на базата данни...",
"ReportsDataSavedEstimate": "Размер на базата данни",
"SaveSettingsBeforePurge": "Вие променихте настройките за изтриване на информация. Моля запазете ги, преди да започнете изтриване.",
- "Teaser": "На тази страница можете да персонализирате Piwik, за да съгласувате поверителността със съществуващото законодателство, чрез: %s правейки посетителското IP анонимно %s, %s автоматично премахване на стари посетителски логове от базата данни %s, и %s даване на възможност за отказ от услуги за вашият уеб сайт%s.",
+ "Teaser": "На тази страница можете да персонализирате Piwik, за да съгласувате поверителността със съществуващото законодателство, чрез: %1$s правейки посетителското IP анонимно %2$s, %3$s автоматично премахване на стари посетителски логове от базата данни %4$s, и %5$s даване на възможност за отказ от услуги за вашият уеб сайт%6$s.",
"TeaserHeadline": "Настройки на поверителността",
"UseAnonymizeIp": "Правене на IP-тата на посетителите анонимни",
"UseDeleteLog": "Периодично изтриване на старите посетителски логове от базата данни",
diff --git a/plugins/PrivacyManager/lang/ca.json b/plugins/PrivacyManager/lang/ca.json
index 1e06cfbfc5..bc9e47251a 100644
--- a/plugins/PrivacyManager/lang/ca.json
+++ b/plugins/PrivacyManager/lang/ca.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "Seleccioneu \"Sí\" si voleu que el Piwik no registri l'adreça IP complerta.",
"AnonymizeIpInlineHelp": "Anonimitzar el(s) últim(s) de la IP de les adreces dels visitants per complir amb la vostra política de privacitat\/llei.",
"AnonymizeIpMaskLengtDescription": "Seleccioneu quans bytes de l'adreça IP del visitant voleu enmascarar.",
- "AnonymizeIpMaskLength": "%s byte(s) - p.e. %s",
+ "AnonymizeIpMaskLength": "%1$s byte(s) - p.e. %2$s",
"CannotLockSoDeleteLogActions": "La taula log_action no es purgarà: siusplau doneu el privilegi LOCK TABLES a l'ususair de MySQL '%s'.",
"ClickHereSettings": "Feu click aquí per entrar a %s la configuració",
"CurrentDBSize": "Tamany actual de la Base de dades",
@@ -19,8 +19,8 @@
"DeleteMaxRows": "Nombre màxim de files per eliminar en una sola execució:",
"DeleteMaxRowsNoLimit": "sense límit",
"DeleteReportsConfirm": "Esteu a punt d'activar l'eliminació de la informació dels informes. Si els informes antics s'eliminen, haure de tornar-los a procesar per veure'ls. Esteu segur que voleu fer això?",
- "DeleteReportsDetailedInfo": "S'eliminarà la informació de les taules númeriques (%s) i de les taules binàries (%s).",
- "DeleteReportsInfo": "Si s'activa els informes antic s'esborraran. %s Recomanem que només ho activeu quan l'espai de la BD es limitat. %s",
+ "DeleteReportsDetailedInfo": "S'eliminarà la informació de les taules númeriques (%1$s) i de les taules binàries (%2$s).",
+ "DeleteReportsInfo": "Si s'activa els informes antic s'esborraran. %1$s Recomanem que només ho activeu quan l'espai de la BD es limitat. %2$s",
"DeleteReportsInfo2": "Si no heu activat \"%s\", els informes anteriors es recrearan de forma automàtica quan es demanin.",
"DeleteReportsInfo3": "Si heu activat \"%s\", la informació s'esborrarà permanentment.",
"DeleteReportsOlderThan": "Elmina els informes anteriors a",
@@ -49,7 +49,7 @@
"PurgingData": "Prugant la informació...",
"ReportsDataSavedEstimate": "Mida de la Base de dades",
"SaveSettingsBeforePurge": "Heu canviat la configuració d'esborrament. Sisplau, guardeu les vostres preferències abans de començar la purga.",
- "Teaser": "En aquesta pàgina podeu personalitzar el Piwik per tal de que compleixi amb les legislacions actuals. Podeu: %sconvertir la IP del visitant en anònima%s, %sesborrar automàticmant els registres antics de la base de dades%s i %s proporcionar un mecanisme per a que els vostreus usuaris puguin triar de no ser rastrejats %s.",
+ "Teaser": "En aquesta pàgina podeu personalitzar el Piwik per tal de que compleixi amb les legislacions actuals. Podeu: %1$sconvertir la IP del visitant en anònima%2$s, %3$sesborrar automàticmant els registres antics de la base de dades%4$s i %5$s proporcionar un mecanisme per a que els vostreus usuaris puguin triar de no ser rastrejats %6$s.",
"TeaserHeadline": "Preferències de Privacitat",
"UseAnonymizeIp": "Convertir la IP dels vostres visitants en anònima",
"UseDeleteLog": "Esborrar de forma períodica el registres de visitants.",
diff --git a/plugins/PrivacyManager/lang/cs.json b/plugins/PrivacyManager/lang/cs.json
index 1677ed1252..a5c8be3f67 100644
--- a/plugins/PrivacyManager/lang/cs.json
+++ b/plugins/PrivacyManager/lang/cs.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Zvolte \"ano\", pokud nemá Piwik sledovat plně kvalifikované IP adresy.",
"AnonymizeIpInlineHelp": "Skryje poslední byte IP adresy návštěvníka, aby souhlasila se zákony vaší země.",
- "AnonymizeIpExtendedHelp": "Když uživatelé navštíví vaše stránky, Piwik neuloží jejich plnou IP adresu (jako %s), ale nejprve bude anonymizována (na %s). Anonymizace IP adres je jedním z požadavků práva na ochranu soukromí v některých zemí, jako je třeba Německo.",
+ "AnonymizeIpExtendedHelp": "Když uživatelé navštíví vaše stránky, Piwik neuloží jejich plnou IP adresu (jako %1$s), ale nejprve bude anonymizována (na %2$s). Anonymizace IP adres je jedním z požadavků práva na ochranu soukromí v některých zemí, jako je třeba Německo.",
"AnonymizeIpMaskLengtDescription": "Zvolte, kolik bitů z návštěvníkovy IP adresy má být maskováno.",
- "AnonymizeIpMaskLength": "%s bitů - např. %s",
+ "AnonymizeIpMaskLength": "%1$s bitů - např. %2$s",
"CannotLockSoDeleteLogActions": "Tabulka log_action nebude vyprázdněna: dejte Mysql uživateli %s privilegium LOCK TABLES.",
"ClickHereSettings": "Pro přístup k nastavení %s klikněte zde.",
"CurrentDBSize": "Aktuální velikost databáze",
@@ -22,14 +22,14 @@
"DeleteMaxRows": "Maximální počet řádků, které se mají smazat při jednom běhu:",
"DeleteMaxRowsNoLimit": "bez limitu",
"DeleteReportsConfirm": "Chystáte se povolit mazání starých hlášení. Pokud je budete chtít zobrazit, budou muset být znovu vytvořena. Opravdu to chcete provést?",
- "DeleteReportsDetailedInfo": "Data z databázových archivních číselných tabulek (%s) a archivních tabulek syrových dat (%s) budou odstraněna.",
- "DeleteReportsInfo": "Pokud je povoleno, stará hlášení budou smazána. %sDoporučujeme použít tuto možnost pouze, je-li velikost vaší databáze omezená.%s",
+ "DeleteReportsDetailedInfo": "Data z databázových archivních číselných tabulek (%1$s) a archivních tabulek syrových dat (%2$s) budou odstraněna.",
+ "DeleteReportsInfo": "Pokud je povoleno, stará hlášení budou smazána. %1$sDoporučujeme použít tuto možnost pouze, je-li velikost vaší databáze omezená.%2$s",
"DeleteReportsInfo2": "Pokud není povoleno \"%s\", stará hlášení budou na požádání znovu vytvořena.",
"DeleteReportsInfo3": "Pokud je povoleno \"%s\", data budou nevratně ztracena.",
"DeleteReportsOlderThan": "Smazat hlášení starší než",
"DeleteSchedulingSettings": "Maplánovat výmaz starých dat",
"DeleteDataSettings": "Smazat staré logy návštěvníků a hlášení",
- "DoNotTrack_Description": "Do not track je návrh technologie a politiky, která umožňuje uživatelům indikovat, že si nepřejí být stránkami, které navštěvují a to včetně služeb webové analýzi, reklamních služeb a sociálních platforem.",
+ "DoNotTrack_Description": "Do Not Track je návrh technologie a politiky, která umožňuje uživatelům odhlásit se ze sledování stránkami, které navštíví, včetně služeb webových analýz, reklamních sítí a sociálních platforem.",
"DoNotTrack_Disable": "Zakázat podporu Do not track",
"DoNotTrack_Disabled": "Piwik sleduje všechny návštěvníky včetně těch, kteří v možnostech svého webového prohlížeče nastavili, že si nepřejí být sledováni.",
"DoNotTrack_DisabledMoreInfo": "Doporučujeme respektovat soukromí vašich návštěvníků a podporu Do not track povolit.",
@@ -56,8 +56,8 @@
"RecommendedForPrivacy": "Doporučeno pro soukromí",
"ReportsDataSavedEstimate": "Velikost databáze",
"SaveSettingsBeforePurge": "Nastavení mazání dat byla změněna. Uložte je před promazáním.",
- "SeeAlsoOurOfficialGuidePrivacy": "Podívejte se také na náš oficiální návod: %ssoukromí webové analýzy%s",
- "Teaser": "Na této stránce můžete Piwik nastavit tak, aby splňoval zákony o soukromí s použitím %s anonymizování IP adresy návštěvníků%s, %s automatického odstraňování starých logů návštěvníků z databáze%s a %s poskytováním mechanismu vyloučení pro vaše webové stránky%s.",
+ "SeeAlsoOurOfficialGuidePrivacy": "Podívejte se také na náš oficiální návod: %1$ssoukromí webové analýzy%2$s",
+ "Teaser": "Na této stránce můžete Piwik nastavit tak, aby chránil osobní údaje tak, že bude: %1$s anonymizovat IP adresy návštěvníků%2$s, %3$s automaticky odstraňovat staré logy návštěvníků z databáze%4$s a %5$s poskytovat mechanismus odhlášení pro váš web%6$s.",
"TeaserHeadline": "Nastavení ochrany soukromí",
"UseAnonymizedIpForVisitEnrichment": "Anonymizované IP adresy použít i při obohacování návštěv.",
"UseAnonymizedIpForVisitEnrichmentNote": "Zásuvné moduly jako geolokace podle IP a poskytovatel vylepšují metadata o návštěvnících. Ve výchozím stavu tyto zásuvné moduly používají anonymizované IP adresy. Pokud vyberete \"ne\", pak tyto zásuvné moduly budou používat plné adresy, což způsobí omezení soukromí ale zlepšení výsledků.",
diff --git a/plugins/PrivacyManager/lang/da.json b/plugins/PrivacyManager/lang/da.json
index 223eeaa4f5..f4255ab3bd 100644
--- a/plugins/PrivacyManager/lang/da.json
+++ b/plugins/PrivacyManager/lang/da.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Vælg \"Ja\", hvis Piwik ikke skal spore fuldt kvalificerede IP-adresser.",
"AnonymizeIpInlineHelp": "Anonymiser besøgendes IP-adresser for at efterkomme den lokale lovgivning om privatlivets fred\/retningslinjer.",
- "AnonymizeIpExtendedHelp": "Når brugerne besøger hjemmesiden, vil Piwik ikke bruge den fulde IP-adresse (f.eks %s), men i stedet vil Piwik anonymisere det først (til %s). IP-adresse anonymisering er et af de krav, som lovgivningen om privatlivets fred i visse lande som fx. Tyskland.",
+ "AnonymizeIpExtendedHelp": "Når brugerne besøger hjemmesiden, vil Piwik ikke bruge den fulde IP-adresse (f.eks %1$s), men i stedet vil Piwik anonymisere det først (til %2$s). IP-adresse anonymisering er et af de krav, som lovgivningen om privatlivets fred i visse lande som fx. Tyskland.",
"AnonymizeIpMaskLengtDescription": "Vælg hvor mange bytes af de besøgendes IP-adresser der skal maskeres.",
- "AnonymizeIpMaskLength": "%s bytes - f.eks %s",
+ "AnonymizeIpMaskLength": "%1$s bytes - f.eks %2$s",
"CannotLockSoDeleteLogActions": "log_action tabellen vil ikke blive slettet: giv LOCK TABELLER privilegium til '%s' MYSQL brugeren.",
"ClickHereSettings": "Klik her for at få adgang til %s indstillinger.",
"CurrentDBSize": "Nuværende database størrelse",
@@ -20,8 +20,8 @@
"DeleteMaxRows": "Maksimale antal rækker der slettes på én gang:",
"DeleteMaxRowsNoLimit": "ingen begrænsning",
"DeleteReportsConfirm": "Aktiver rapportdata sletning. Hvis gamle rapporter fjernes, skal de forarbejdes igen dem med henblik på se dem. Bekræft sletning.",
- "DeleteReportsDetailedInfo": "Data fra de numeriske arkiv tabeller (%s) og blob arkiv tabeller (%s) i databasen vil blive slettet.",
- "DeleteReportsInfo": "Hvis aktiveret, vil gamle rapporter blive slettet. %sVi anbefaler kun at aktivere dette, når din database-plads er begrænset.%s",
+ "DeleteReportsDetailedInfo": "Data fra de numeriske arkiv tabeller (%1$s) og blob arkiv tabeller (%2$s) i databasen vil blive slettet.",
+ "DeleteReportsInfo": "Hvis aktiveret, vil gamle rapporter blive slettet. %1$sVi anbefaler kun at aktivere dette, når din database-plads er begrænset.%2$s",
"DeleteReportsInfo2": "Hvis ikke \"%s\" er aktiveret , vil gamle rapporter genskabes automatisk når det anmodes.",
"DeleteReportsInfo3": "Hvis du har aktiveret \"%s\", slettes data permanent.",
"DeleteReportsOlderThan": "Slet rapporter ældre end",
@@ -50,8 +50,8 @@
"PurgingData": "Rydder op i data...",
"ReportsDataSavedEstimate": "Database størrelse",
"SaveSettingsBeforePurge": "Indstillinger for datasletning er ændret. Gem før oprydning.",
- "SeeAlsoOurOfficialGuidePrivacy": "Se også vores officielle vejledning: %sWeb Analytics Privacy%s",
- "Teaser": "Tilpas Piwik til at beskytte personlige oplysninger i overensstemmelse med gældende lovgivning, ved at: %s anonymisere den besøgendes IP%s, %s automatisk fjerne gamle besøgs logfiler fra databasen%s og %s giver en frameld mekanisme til hjemmesiden%s.",
+ "SeeAlsoOurOfficialGuidePrivacy": "Se også vores officielle vejledning: %1$sWeb Analytics Privacy%2$s",
+ "Teaser": "Tilpas Piwik til at beskytte personlige oplysninger i overensstemmelse med gældende lovgivning, ved at: %1$s anonymisere den besøgendes IP%2$s, %3$s automatisk fjerne gamle besøgs logfiler fra databasen%4$s og %5$s giver en frameld mekanisme til hjemmesiden%6$s.",
"TeaserHeadline": "Privatlivsindstillinger",
"UseAnonymizedIpForVisitEnrichment": "Brug også anonymiseret IP-adresser, når beriger besøg.",
"UseAnonymizedIpForVisitEnrichmentNote": "Programudvidelser som Geo Location via IP og udbyder forbedrer besøgendes metadata. Som standard bruger disse udvidelsesmoduler anonyme IP-adresser. Hvis du vælger 'Nej', så vil den ikke-anonymiseret fulde IP-adresse blive brugt i stedet for, hvilket resulterer i mindre privatliv, men bedre data nøjagtighed.",
diff --git a/plugins/PrivacyManager/lang/de.json b/plugins/PrivacyManager/lang/de.json
index 8771dd1286..2303439d45 100644
--- a/plugins/PrivacyManager/lang/de.json
+++ b/plugins/PrivacyManager/lang/de.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Wählen Sie \"Ja\", wenn Piwik keine vollständigen IP-Adressen speichern soll.",
"AnonymizeIpInlineHelp": "Um den Datenschutzbestimmungen Ihres Landes gerecht zu werden, können Sie mit diesem Plugin die letzten Bytes der IP-Adresse Ihrer Besucher anonymisieren.",
- "AnonymizeIpExtendedHelp": "Wenn Benutzer Ihre Website besuchen, wird Piwik nicht die komplette IP Adresse (so wie %s) benützen, sondern sie stattdessen zuerst anonymisieren (zu %s). Die Anonymisierung der IP Adresse ist in einigen Ländern eine gesetzliche Pflicht, zum Beispiel in Deutschland vorgegeben durch das Datenschutzrecht.",
+ "AnonymizeIpExtendedHelp": "Wenn Benutzer Ihre Website besuchen, wird Piwik nicht die komplette IP Adresse (so wie %1$s) benützen, sondern sie stattdessen zuerst anonymisieren (zu %2$s). Die Anonymisierung der IP Adresse ist in einigen Ländern eine gesetzliche Pflicht, zum Beispiel in Deutschland vorgegeben durch das Datenschutzrecht.",
"AnonymizeIpMaskLengtDescription": "Wählen Sie aus, wieviele Bytes der Besucher-IP maskiert werden sollen.",
- "AnonymizeIpMaskLength": "%s byte(s) - z.B. %s",
+ "AnonymizeIpMaskLength": "%1$s byte(s) - z.B. %2$s",
"CannotLockSoDeleteLogActions": "Die log_action Tabelle wird nicht geleert: bitte geben Sie dem MySQL User '%s' das LOCK TABLES Privileg.",
"ClickHereSettings": "Hier klicken, um die %s Einstellungen zu bearbeiten.",
"CurrentDBSize": "Aktuelle Größe der Datenbank",
@@ -22,8 +22,8 @@
"DeleteMaxRows": "Maximale Anzahl der Datensätze, die pro Durchlauf gelöscht werden dürfen:",
"DeleteMaxRowsNoLimit": "Keine Begrenzung",
"DeleteReportsConfirm": "Sie sind dabei, das Löschen von Berichtsdaten zu aktivieren. Wenn alte Berichte entfernt wurden, müssen Sie diese neu generieren, um Sie anzusehen. Sind Sie sicher, dass Sie das wollen?",
- "DeleteReportsDetailedInfo": "Daten aus den Numerischen Archiv Tabellen (%s) und Blob Archiv Tabellen (%s) werden aus der Datenbank gelöscht.",
- "DeleteReportsInfo": "Wenn aktiviert, dann werden alte Berichte gelöscht. %sWir empfehlen dies nur, wenn die maximale Größe der Datenbank begrenzt ist%s.",
+ "DeleteReportsDetailedInfo": "Daten aus den Numerischen Archiv Tabellen (%1$s) und Blob Archiv Tabellen (%2$s) werden aus der Datenbank gelöscht.",
+ "DeleteReportsInfo": "Wenn aktiviert, dann werden alte Berichte gelöscht. %1$sWir empfehlen dies nur, wenn die maximale Größe der Datenbank begrenzt ist%2$s.",
"DeleteReportsInfo2": "Wenn Sie \"%s\" nicht aktiviert haben, dann werden alte Berichte automatisch bei Bedarf neu generiert.",
"DeleteReportsInfo3": "Wenn Sie \"%s\" aktiviert haben, sind die Daten dauerhaft gelöscht.",
"DeleteReportsOlderThan": "Lösche Berichte, die älter sind als",
@@ -56,8 +56,8 @@
"RecommendedForPrivacy": "Für den Datenschutz empfohlen",
"ReportsDataSavedEstimate": "Größe der Datenbank",
"SaveSettingsBeforePurge": "Sie haben die Einstellungen für das Löschen von Daten geändert. Bitte erst speichern, bevor Sie einen Löschvorgang starten.",
- "SeeAlsoOurOfficialGuidePrivacy": "Siehe auch unser offizielles Handbuch: %sWebanalyse Privatsphäre%s",
- "Teaser": "Auf dieser Seite können Sie Piwik so anpassen, dass es die bei Ihnen herrschenden Datenschutzbestimmungen einhält. Sie können %sBenutzer-IPs anonymisieren%s, %sautomatisch alte Logs aus der Datenbank löschen%s und %seinen Opt-out Mechanismus auf Ihrer Website anbieten%s.",
+ "SeeAlsoOurOfficialGuidePrivacy": "Siehe auch unser offizielles Handbuch: %1$sWebanalyse Privatsphäre%2$s",
+ "Teaser": "Auf dieser Seite können Sie Piwik so anpassen, dass es die bei Ihnen herrschenden Datenschutzbestimmungen einhält. Sie können %1$sBenutzer-IPs anonymisieren%2$s, %3$sautomatisch alte Logs aus der Datenbank löschen%4$s und %5$seinen Opt-out Mechanismus auf Ihrer Website anbieten%6$s.",
"TeaserHeadline": "Privatsphäreeinstellungen",
"UseAnonymizedIpForVisitEnrichment": "Benutze die anonymisierte IP-Adresse auch für die Aufbereitung der Besuche.",
"UseAnonymizedIpForVisitEnrichmentNote": "Plugins wie Geolokalisierung anhand IP und Provider verbessern die Metadaten eines Besuchers. Normalerweise verwenden diese Plugins die anonymisierte IP Adresse. Wenn sie 'Nein' auswählen wird stattdessen die nicht anonymisierte volle IP Adresse verwendet. Daraus resultiert eine größere Genauigkeit, jedoch weniger Privatsphäre.",
diff --git a/plugins/PrivacyManager/lang/el.json b/plugins/PrivacyManager/lang/el.json
index 3c6f8d4933..c61f608b45 100644
--- a/plugins/PrivacyManager/lang/el.json
+++ b/plugins/PrivacyManager/lang/el.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Επιλέξτε «Ναι» αν θέλετε το Piwik να μην ανιχνεύει πλήρως ταυτοποιημένες διευθύνσεις IP.",
"AnonymizeIpInlineHelp": "Αποκρύπτει το τελευταίο byte των διευθύνσεων IP των επισκεπτών σας για συμμόρφωση με την τοπική νομοθεσία περί Ιδιωτικού Απορρήτου.",
- "AnonymizeIpExtendedHelp": "Όταν οι χρήστες επισκέπτονται τον ιστοτόπο σας, το Piwik δε θα χρησιμοποιεί την πλήρη διεύθυνση IP (όπως το %s), αλλά αντίθετα θα το κάνει πρώτα ανώνυμο (σε %s). Η μετατροπή των διευθύνσεων IP σε ανώνυμες είναι μία από τις απαιτήσεις που ορίζει η νομοθεσία γύρω από την ιδιωτικότητα σε ορισμένες χώρες όπως η Γερμανία.",
+ "AnonymizeIpExtendedHelp": "Όταν οι χρήστες επισκέπτονται τον ιστοτόπο σας, το Piwik δε θα χρησιμοποιήσει την πλήρη διεύθυνση IP (όπως %1$s), αντίθετα το Piwik θα την κάνει πρώτα ανώνυμη (σε %2$s). Η ανωνυμοποίηση των διευθύνσεων IP είναι μία από τις απαιτήσεις που θέτει η νομοθεσία σε ορισμένες χώρες όπως η Γερμανία.",
"AnonymizeIpMaskLengtDescription": "Επιλέξτε πόσα bytes από τις διευθύνσεις IP των επισκεπτών πρέπει να κρύβονται.",
- "AnonymizeIpMaskLength": "%s byte(s) - π.χ.. %s",
+ "AnonymizeIpMaskLength": "%1$s byte - πχ. %2$s",
"CannotLockSoDeleteLogActions": "Ο πίκανας log_action δεν θα διαγραφεί: δώστε δικαιώματα LOCK TABLES στον χρήστη MYSQL «%s».",
"ClickHereSettings": "Πατήστε εδώ για να έχετε πρόσβαση στις ρυθμίσεις %s.",
"CurrentDBSize": "Τρέχον μέγεθος βάσης δεδομένων",
@@ -22,8 +22,8 @@
"DeleteMaxRows": "Μέγιστος αριθμός εγγραφών για διαγραφή κάθε φορά:",
"DeleteMaxRowsNoLimit": "χωρίς περιορισμό",
"DeleteReportsConfirm": "Πρόκειται να ενεργοποιήσετε τη διαγραφή δεδομένων αναφορών. Αν οι παλαιές αναφορές απομακρυνθούν, θα πρέπει να τις ξαναδημιουργήσετε ώστε να τις δείτε. Θέλετε, σίγουρα, να συνεχίσετε;",
- "DeleteReportsDetailedInfo": "Τα δεδομένα από τους πίνακες αριθμητικής αρχειοθέτησης της βάσης δεδομένων (%s) και οι πίνακες αρχειοθέτησης blob (%s) θα διαγραφούν.",
- "DeleteReportsInfo": "Αν ενεργοποιηθεί, οι παλαιές αναφορές θα διαγραφούν. %sΠροτείνουμε να ενεργοποιήσετε την επιλογή αυτή μόνο όταν ο διαθέσιμος χώρος της βάσης δεδομένων σας είναι περιορισμένος.%s",
+ "DeleteReportsDetailedInfo": "Τα δεδομένα από τους αριθμητικούς πίνακες αρχειοθέτησης (%1$s) και οι πίνακες πίνακες αρχειοθέτησης με δυαδικά δεδομένα (%2$s) θα διαγραφούν.",
+ "DeleteReportsInfo": "Αν ενεργοποιηθεί, οι παλιές αναφορές θα διαγραφούν. %1$sΠροτείνουμε να το ενεργοποιήσετε μόνο σε περίπτωση περιορισμένου χώρου στη βάση δεδομένων. %2$s",
"DeleteReportsInfo2": "Αν δεν ενεργοποιήσατε το «%s», οι παλαιές αναφορές θα επαναδημιουργηθούν όταν ζητηθεί.",
"DeleteReportsInfo3": "Αν έχετε ενεργοποιήσει το «%s», τα δεδομένα θα χαθούν.",
"DeleteReportsOlderThan": "Διαγραφή αναφορών παλαιότερων από",
@@ -56,8 +56,8 @@
"RecommendedForPrivacy": "Προτείνεται για λόγους ιδιωτικότητας",
"ReportsDataSavedEstimate": "Μέγεθος βάσης δεδομένων",
"SaveSettingsBeforePurge": "Έχετε αλλάξει τις ρυθμίσεις διαγραφής δεδομένων. Αποθηκεύστε τες πριν αρχίσετε μια εκκαθάριση.",
- "SeeAlsoOurOfficialGuidePrivacy": "Δείτε ακόμη τον επίσημο οδηγό μας: %sΙδιωτικότητα Αναλυτικών Ιστού%s",
- "Teaser": "Σε αυτή τη σελίδα, μπορείτε να προσαρμόσετε το Piwik ώστε να είναι συμβατό με την ισχύουσα νομοθεσία όσο αφορά τα προσωπικά δεδομένα, %sκάνοντας ανώνυμες τις διευθύνσεις IP των επισκεπτών%s, %sαπομακρύνοντας αυτόματα τις παλαιές καταγραφές επισκεπτών από τη βάση δεδομένων%s και %sπαρέχοντας ένα μηχανισμό απενεργοποίησης για την ιστοσελίδα σας%s.",
+ "SeeAlsoOurOfficialGuidePrivacy": "Δείτε επίσης τον επίσημο οδηγό μας: %1$sΙδιωτικότητα στα Αναλυτικά Ιστού%2$s",
+ "Teaser": "Στη σελίδα αυτή, μπορείτε να παραμετροποιήσετε το Piwik ώστε να είναι συμβατό με την υπάρχουσα νομοθεσία για την ιδιωτικότητα, με %1$s ανωνυμοποίηση των διευθύνσεων IP των επισκεπτών %2$s, %3$s αυτόματη διαγραφή των παλιών καταγραφών επισκεπτών από την βάση δεδομένων%4$s και %5$s διάθεση ενός μηχανισμού για μη συμπερίληψη στην καταγραφή για τον ιστοτόπο σας%6$s.",
"TeaserHeadline": "Ρυθμίσεις ιδιωτικού απορρήτου",
"UseAnonymizedIpForVisitEnrichment": "Χρησιμοποιήστε παράλληλα και τις Ανώνυμες Διευθύνσεις IP κατά τον εμπλουτισμό των επισκέψεων.",
"UseAnonymizedIpForVisitEnrichmentNote": "Πρόσθετα όπως αυτό της Γεωτοποθεσίας και του Παρόχου βελτιώνουν τα μεταδεδομένα για τους επισκέπτες. Εξ' ορισμού τα πρόσθετα αυτά χρησιμοποιούν ανώνυμες διευθύνσεις IP. Αν επιλέξετε 'Όχι', τότε θα χρησιμοποιηθούν οι πλήρεις διευθύνσεις IP, έχοντας ως αποτέλεσμα λιγότερη ιδιωτικότητα, αλλά καλύτερη ακρίβεια δεδομένων.",
diff --git a/plugins/PrivacyManager/lang/en.json b/plugins/PrivacyManager/lang/en.json
index d8946a4056..a4350a6fc2 100644
--- a/plugins/PrivacyManager/lang/en.json
+++ b/plugins/PrivacyManager/lang/en.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Select \"Yes\" if you want Piwik not to track fully qualified IP-Addresses.",
"AnonymizeIpInlineHelp": "Anonymize the last byte(s) of visitors IP addresses to comply with your local privacy laws\/guidelines.",
- "AnonymizeIpExtendedHelp": "When users visit your website, Piwik will not use the full IP address (such as %s) but instead Piwik will anonymise it first (to %s). IP address anonymisation is one of the requirements set by the privacy laws in some countries such as Germany.",
+ "AnonymizeIpExtendedHelp": "When users visit your website, Piwik will not use the full IP address (such as %1$s) but instead Piwik will anonymise it first (to %2$s). IP address anonymisation is one of the requirements set by the privacy laws in some countries such as Germany.",
"AnonymizeIpMaskLengtDescription": "Select how many bytes of the visitors' IPs should be masked.",
- "AnonymizeIpMaskLength": "%s byte(s) - e.g. %s",
+ "AnonymizeIpMaskLength": "%1$s byte(s) - e.g. %2$s",
"CannotLockSoDeleteLogActions": "The log_action table will not be purged: please grant the LOCK TABLES privilege to the '%s' MYSQL user.",
"ClickHereSettings": "Click here to access the %s settings.",
"CurrentDBSize": "Current database size",
@@ -22,8 +22,8 @@
"DeleteMaxRows": "Maximum number of rows to delete in one run:",
"DeleteMaxRowsNoLimit": "no limit",
"DeleteReportsConfirm": "You are about to enable report data deletion. If old reports are removed, you will have to re-process them in order view them. Are you sure you want to do this?",
- "DeleteReportsDetailedInfo": "Data from the database numeric archive tables (%s) and blob archive tables (%s) will be deleted.",
- "DeleteReportsInfo": "If enabled, old reports will be deleted. %sWe recommend to enable only when your database space is limited.%s",
+ "DeleteReportsDetailedInfo": "Data from the database numeric archive tables (%1$s) and blob archive tables (%2$s) will be deleted.",
+ "DeleteReportsInfo": "If enabled, old reports will be deleted. %1$sWe recommend to enable only when your database space is limited.%2$s",
"DeleteReportsInfo2": "If you have not enabled \"%s\", old reports will be recreated automatically when requested.",
"DeleteReportsInfo3": "If you have enabled \"%s\", the data will be permanently lost.",
"DeleteReportsOlderThan": "Delete reports older than",
@@ -56,8 +56,8 @@
"RecommendedForPrivacy": "Recommended for privacy",
"ReportsDataSavedEstimate": "Database size",
"SaveSettingsBeforePurge": "You have changed the data deletion settings. Please save them before starting a purge.",
- "SeeAlsoOurOfficialGuidePrivacy": "See also our official guide: %sWeb Analytics Privacy%s",
- "Teaser": "On this page, you can customize Piwik to make it privacy compliant with existing legislations, by: %s anonymizing the visitor IP%s, %s automatically remove old visitor logs from the database%s, and %s providing an Opt-out mechanism for your website%s.",
+ "SeeAlsoOurOfficialGuidePrivacy": "See also our official guide: %1$sWeb Analytics Privacy%2$s",
+ "Teaser": "On this page, you can customize Piwik to make it privacy compliant with existing legislations, by: %1$s anonymizing the visitor IP%2$s, %3$s automatically remove old visitor logs from the database%4$s, and %5$s providing an Opt-out mechanism for your website%6$s.",
"TeaserHeadline": "Privacy Settings",
"UseAnonymizedIpForVisitEnrichment": "Also use the Anonymized IP addresses when enriching visits.",
"UseAnonymizedIpForVisitEnrichmentNote": "Plugins such as Geo Location via IP and Provider improve visitor's metadata. By default these plugins use the anonymized IP addresses. If you select 'No', then the non-anonymized full IP address will be used instead, resulting in less privacy but better data accuracy.",
diff --git a/plugins/PrivacyManager/lang/es.json b/plugins/PrivacyManager/lang/es.json
index 277c534d44..c97538b7d6 100644
--- a/plugins/PrivacyManager/lang/es.json
+++ b/plugins/PrivacyManager/lang/es.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Seleccione \"Si\" si desea que Piwik no registre direcciones IP completas.",
"AnonymizeIpInlineHelp": "Ocultar los últimos bit(s) de la dirección IP del visitante para cumplir con las leyes\/directrices de privacidad de su jurisdicción.",
- "AnonymizeIpExtendedHelp": "Cuando los usuarios visiten su sitio de internet, Piwik no usará la dirección completa IP (tales como %s) sino que Piwik las mantendrá anónimas primeramente (como %s). El anonimato de una dirección IP es uno de los requerimientos dispuesto por leyes de privacidad en algunos países tales como Alemania.",
+ "AnonymizeIpExtendedHelp": "Cuando los usuarios visiten su sitio de internet, Piwik no usará la dirección completa IP (tales como %1$s) sino que Piwik las mantendrá anónimas primeramente (como %2$s). El anonimato de una dirección IP es uno de los requerimientos dispuesto por leyes de privacidad en algunos países tales como Alemania.",
"AnonymizeIpMaskLengtDescription": "Seleccione cuantos bytes de las direcciones IP de los visitantes deben ser enmascaradas.",
- "AnonymizeIpMaskLength": "%s byte(s) - ej. %s",
+ "AnonymizeIpMaskLength": "%1$s byte(s) - ej. %2$s",
"CannotLockSoDeleteLogActions": "La tabla log_action no será purgada: por favor, conceda el privilegio LOCK TABLES al usuario MYSQL '%s'.",
"ClickHereSettings": "Haga clic aquí para acceder a la configuración de %s",
"CurrentDBSize": "Tamaño de la actual base de datos",
@@ -22,8 +22,8 @@
"DeleteMaxRows": "Número máximo de filas que serán eliminadas en cada ejecución:",
"DeleteMaxRowsNoLimit": "sin límites",
"DeleteReportsConfirm": "Está disponiendo la eliminación de datos de informes. Si un antiguo informe es borrado, tendrá que reprocesarlos nuevamente para visualizarlos. ¿Está seguro que desea hacer esto?",
- "DeleteReportsDetailedInfo": "Información desde las tablas numéricas de los archivos de la base de datos (%s) y borradores de archivos de tablas (%s) serán eliminados.",
- "DeleteReportsInfo": "Si es habilitado, todos los antiguos informes serán eliminados. %sRecomendamos habilitarlo solo cuando el espacio de la base de datos sea limitado.%s",
+ "DeleteReportsDetailedInfo": "Información desde las tablas numéricas de los archivos de la base de datos (%1$s) y borradores de archivos de tablas (%2$s) serán eliminados.",
+ "DeleteReportsInfo": "Si es habilitado, todos los antiguos informes serán eliminados. %1$sRecomendamos habilitarlo solo cuando el espacio de la base de datos sea limitado.%2$s",
"DeleteReportsInfo2": "Si no ha habilitado \"%s\", los antiguos informes serán recreados automáticamente cuando sean solicitados.",
"DeleteReportsInfo3": "Si ha habilitado \"%s\", la información será eliminada de forma permanente.",
"DeleteReportsOlderThan": "Borrar informes anteriores a",
@@ -56,8 +56,8 @@
"RecommendedForPrivacy": "Recomendado por privacidad",
"ReportsDataSavedEstimate": "Tamaño de la base de datos",
"SaveSettingsBeforePurge": "Ha cambiado la configuración de borrado de información. Por favor, guárdelas antes de iniciar la purga.",
- "SeeAlsoOurOfficialGuidePrivacy": "Lee también nuestra guía oficial: %sPrivacidad del análisis de internet%s",
- "Teaser": "En esta página, puede personalizar Piwik para hacer que cumpla con la privacidad de las legislaciones existentes: %s haciendo anónima la IP del visitante%s, %s eliminar automáticamente los antiguos registros de los visitantes de la base de datos%s. y %s proporcionando un mecanismo de opción de desconectarse de su sitio de internet (para que los visitantes no sean seguidos)%s",
+ "SeeAlsoOurOfficialGuidePrivacy": "Lee también nuestra guía oficial: %1$sPrivacidad del análisis de internet%2$s",
+ "Teaser": "En esta página, puede personalizar Piwik para hacer que cumpla con la privacidad de las legislaciones existentes: %1$s haciendo anónima la IP del visitante%2$s, %3$s eliminar automáticamente los antiguos registros de los visitantes de la base de datos%4$s. y %5$s proporcionando un mecanismo de opción de desconectarse de su sitio de internet (para que los visitantes no sean seguidos)%6$s",
"TeaserHeadline": "Configuración de privacidad",
"UseAnonymizedIpForVisitEnrichment": "Usa también direcciones IP anónimas para enriquecer las visitas.",
"UseAnonymizedIpForVisitEnrichmentNote": "Los complementos Geo Location a través de IP y Provider mejoran los metadatos de los visitantes. Por defecto estos complementos utilizan las direcciones IP anónimas. Si elige 'No' será utilizada una dirección completa de forma no anónima lo que resulta en una menor privacidad pero una mayor precisión de datos.",
diff --git a/plugins/PrivacyManager/lang/fa.json b/plugins/PrivacyManager/lang/fa.json
index d4e64510fa..8da25f70a4 100644
--- a/plugins/PrivacyManager/lang/fa.json
+++ b/plugins/PrivacyManager/lang/fa.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "انتخاب \"بله\" اگر می خواهید Piwik به ردیابی کاملا واجد شرایط IP آدرس.",
"AnonymizeIpInlineHelp": "گمنام آخرین بایت از آدرس های IP بازدید کنندگان مطابق با قوانین حفظ حریم خصوصی خود را محلی \/ دستورالعمل.",
"AnonymizeIpMaskLengtDescription": "انتخاب کنید چه تعداد از IP های بازدید کنندهگان باید مخفی باشند.",
- "AnonymizeIpMaskLength": "%s بایت (ها) - e.g. %s",
+ "AnonymizeIpMaskLength": "%1$s بایت (ها) - e.g. %2$s",
"ClickHereSettings": "اینجا کلیلک کنید تا به تنظیمات %s دسترسی پیدا کنید.",
"CurrentDBSize": "اندازه بانک اطلاعاتی کنونی",
"DBPurged": "پایگاه داده پالایش شد.",
@@ -17,8 +17,8 @@
"DeleteMaxRows": "بیشترین تعداد ردیف را حذف کنید در 1 اجرا:",
"DeleteMaxRowsNoLimit": "هیچ محدودیتی",
"DeleteReportsConfirm": "شما را قادر می سازد گزارش حذف داده ها هستند. اگر گزارش های قدیمی حذف می شوند، شما باید دوباره پردازش آنها را در جهت آنها را مشاهده کنید. آیا شما مطمئن هستید که می خواهید برای انجام این کار؟",
- "DeleteReportsDetailedInfo": "داده ها از جداول عددی dabase آرشیو (%s) و جداول آرشیو لکه (%s) حذف خواهد شد.",
- "DeleteReportsInfo": "اگر فعال شود, گزارش های قدیمی پاک می شوند. %s ما پیشنهاد می کنیم زمانی این گزینه را فعال نمایید که فضای دیتابیس شما محدود باشد. %s",
+ "DeleteReportsDetailedInfo": "داده ها از جداول عددی dabase آرشیو (%1$s) و جداول آرشیو لکه (%2$s) حذف خواهد شد.",
+ "DeleteReportsInfo": "اگر فعال شود, گزارش های قدیمی پاک می شوند. %1$s ما پیشنهاد می کنیم زمانی این گزینه را فعال نمایید که فضای دیتابیس شما محدود باشد. %2$s",
"DeleteReportsInfo2": "اگر شما \"%s\" را فعال نکرده اید , گزارش های قدیمی هنگامی که درخواست شوند دوباره به طور خودکار ایجاد خواهند شد.",
"DeleteReportsInfo3": "اگر شما \"%s\" را فعال کرده باشید , داده ها برای همیشه از دست خواهد رفت.",
"DeleteReportsOlderThan": "حذف گزارش های مسن تر از",
diff --git a/plugins/PrivacyManager/lang/fi.json b/plugins/PrivacyManager/lang/fi.json
index 91c4f2d7c8..bc8d0c0085 100644
--- a/plugins/PrivacyManager/lang/fi.json
+++ b/plugins/PrivacyManager/lang/fi.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "Valitse \"Kyllä\", jos et halua, että Piwik seuraa kokonaisia IP-osoitteita.",
"AnonymizeIpInlineHelp": "Poistaa viimeisen tavun vierailijoiden IP-osoitteista, mikäli paikalliset yksityiseensuojalait\/-ohjeistukset vaativat.",
"AnonymizeIpMaskLengtDescription": "Valitse, montako tavua käyttäjien IP-osoitteista piilotetaan.",
- "AnonymizeIpMaskLength": "%s tavua - esim. %s",
+ "AnonymizeIpMaskLength": "%1$s tavua - esim. %2$s",
"CannotLockSoDeleteLogActions": "log_action-taulua ei ole tyhjätty. Lisää \"LOCK TABLES\"-oikeus käyttäjälle %s.",
"ClickHereSettings": "Muokkaa %s:n asetuksia.",
"CurrentDBSize": "Nykyinen tietokannan koko",
@@ -19,8 +19,8 @@
"DeleteMaxRows": "Yhdellä kertaa poistettavien rivien maksimimäärä:",
"DeleteMaxRowsNoLimit": "ei rajaa",
"DeleteReportsConfirm": "Olet ottamassa käyttöön raporttien poistamisen. Jos vanhat raportit poistetaan, sinun täytyy luoda ne uudelleen ennen katsomista. Haluatko varmasti tehdä tämän?",
- "DeleteReportsDetailedInfo": "Tiedot tietokannan numeerisista tauluista (%s) ja arkistotauluista (%s) poistetaan.",
- "DeleteReportsInfo": "Jos käytössä, vanhat raportit poistetaan. %sSuosittelemme, että tämä otetaan käyttöön vain jos tietokannan tila loppuu.%s",
+ "DeleteReportsDetailedInfo": "Tiedot tietokannan numeerisista tauluista (%1$s) ja arkistotauluista (%2$s) poistetaan.",
+ "DeleteReportsInfo": "Jos käytössä, vanhat raportit poistetaan. %1$sSuosittelemme, että tämä otetaan käyttöön vain jos tietokannan tila loppuu.%2$s",
"DeleteReportsInfo2": "Jos et ole ottanut käyttöön \"%s\":ää, vanhat raportit luodaan automaattisesti uudelleen tarvittaessa.",
"DeleteReportsInfo3": "Jos olet ottanut käyttöön \"%s\":n, vanhat tiedot poistetaan lopullisesti.",
"DeleteReportsOlderThan": "Poista raportit, jotka ovat vanhempia kuin",
@@ -49,8 +49,8 @@
"PurgingData": "Siivotaan tietoja...",
"ReportsDataSavedEstimate": "Tietokannan koko",
"SaveSettingsBeforePurge": "Olet muuttanut tietojen poistamisen asetuksia. Tallenna muutokset ennen jatkamista.",
- "SeeAlsoOurOfficialGuidePrivacy": "Lue myös virallinen oppaamme: %sVerkkoanalyysi ja yksityisyys%s",
- "Teaser": "Tällä sivulla voit kustomoida Piwikiä, jotta se noudattaa voimassaolevia lakeja ja säännöksiä. Voit %s anonymisoida vierailijoiden IP-osoitteita%s, %s poistaa vanhat lokit automaattisesti%s ja %s tarjota mahdollisuuden poistaa seuranta käytöstä sivullasi%s.",
+ "SeeAlsoOurOfficialGuidePrivacy": "Lue myös virallinen oppaamme: %1$sVerkkoanalyysi ja yksityisyys%2$s",
+ "Teaser": "Tällä sivulla voit kustomoida Piwikiä, jotta se noudattaa voimassaolevia lakeja ja säännöksiä. Voit %1$s anonymisoida vierailijoiden IP-osoitteita%2$s, %3$s poistaa vanhat lokit automaattisesti%4$s ja %5$s tarjota mahdollisuuden poistaa seuranta käytöstä sivullasi%6$s.",
"TeaserHeadline": "Yksityisyysasetukset",
"UseAnonymizedIpForVisitEnrichment": "Käytä piilotettuja IP-osoitteita myös käyntejä rikastettaessa.",
"UseAnonymizedIpForVisitEnrichmentNote": "Geopaikannusliitännäiset parantavat käyttäjien metadataa. Nämä liitännäiset käyttävät oletuksena piilotettuja IP-osoitteita. Jos valitset \"Ei\", käytetään täysiä, ei-piilotettuja IP-osoitteita. Tämä vähentää yksityisyyttä, mutta parantaa datan tarkkuutta.",
diff --git a/plugins/PrivacyManager/lang/fr.json b/plugins/PrivacyManager/lang/fr.json
index dbdc71c602..916447f682 100644
--- a/plugins/PrivacyManager/lang/fr.json
+++ b/plugins/PrivacyManager/lang/fr.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Sélectionnez \"Oui\" si vous voulez que Piwik ne trace pas les adresses IP complètes.",
"AnonymizeIpInlineHelp": "Masque les adresses IP des visiteurs pour remplir les conditions légales et politiques locales.",
- "AnonymizeIpExtendedHelp": "Quand les utilisateurs visitent votre site, Piwik n'utilisera pas l'adresse IP complète (par exemple %s) mais l'anonymisera (par exemple %s). L'anonymisation des adresses IP est requise par certaines lois adressant la protection de la vie privée dans certains pays comme l'Allemagne.",
+ "AnonymizeIpExtendedHelp": "Quand les utilisateurs visitent votre site, Piwik n'utilisera pas l'adresse IP complète (par exemple %1$s) mais l'anonymisera (par exemple %2$s). L'anonymisation des adresses IP est requise par certaines lois adressant la protection de la vie privée dans certains pays comme l'Allemagne.",
"AnonymizeIpMaskLengtDescription": "Sélectionnez combien de bytes de l'adresse IP du visiteur doivent être masqués.",
- "AnonymizeIpMaskLength": "%s byte(s) - ex %s",
+ "AnonymizeIpMaskLength": "%1$s byte(s) - ex %2$s",
"CannotLockSoDeleteLogActions": "La table log_action ne sera pas purgée : veuillez accorder le privilège LOCK TABLES à l'utilisateur MYSQL '%s'.",
"ClickHereSettings": "Cliquez ici pour accéder aux paramètres %s.",
"CurrentDBSize": "Taille actuelle de la base de données",
@@ -22,8 +22,8 @@
"DeleteMaxRows": "Nombre maximal de lignes à supprimer à la fois:",
"DeleteMaxRowsNoLimit": "aucune limite",
"DeleteReportsConfirm": "Vous êtes sur le point d'activer la suppression des donées de rapports. Si d'anciens rapports sont supprimés, vous devrez les recalculer afin de les visualiser. Êtes vous sûr(e) de vouloir effectuer cela?",
- "DeleteReportsDetailedInfo": "Les données des tables d'archives numériques (%s) et d'archives binaires (%s) seront supprimées.",
- "DeleteReportsInfo": "Si activé, les anciens rapports seront supprimés. %sNous vous recommandons de l'activer seulement quand l'espace de votre base de données est limité.%s",
+ "DeleteReportsDetailedInfo": "Les données des tables d'archives numériques (%1$s) et d'archives binaires (%2$s) seront supprimées.",
+ "DeleteReportsInfo": "Si activé, les anciens rapports seront supprimés. %1$sNous vous recommandons de l'activer seulement quand l'espace de votre base de données est limité.%2$s",
"DeleteReportsInfo2": "Si vous n'avez pas activé \"%s\" les anciens rapports seront recréés automatiquement à la demande.",
"DeleteReportsInfo3": "Si vous avez activé \"%s\" les données seront perdues définitivement.",
"DeleteReportsOlderThan": "Supprimer les rapports plus anciens que",
@@ -56,8 +56,8 @@
"RecommendedForPrivacy": "Recommandé pour le respect de la vie privée",
"ReportsDataSavedEstimate": "Taille de la base de données",
"SaveSettingsBeforePurge": "Vous avez modifié les paramètres de suppression des données. Veuillez les sauvegarder avant de démmarrer une purge.",
- "SeeAlsoOurOfficialGuidePrivacy": "Consultez aussi notre guide officiel : %sConfidentialité de l'analyse web%s",
- "Teaser": "Sur cette page, vous pouvez personnaliser Piwik pour que sa gestion de la vie privée respecte la législation en vigueur, en : %s rendant anonyme l'adresse IP du visiteur%s, %s supprimant automatiquement les anciens logs de visiteurs de la base de données%s, et %s en fournissant un mécanisme d'exclusion pour votre site web%s.",
+ "SeeAlsoOurOfficialGuidePrivacy": "Consultez aussi notre guide officiel : %1$sConfidentialité de l'analyse web%2$s",
+ "Teaser": "Sur cette page, vous pouvez personnaliser Piwik pour que sa gestion de la vie privée respecte la législation en vigueur, en : %1$s rendant anonyme l'adresse IP du visiteur%2$s, %3$s supprimant automatiquement les anciens logs de visiteurs de la base de données%4$s, et %5$s en fournissant un mécanisme d'exclusion pour votre site web%6$s.",
"TeaserHeadline": "Paramètres de vie privée",
"UseAnonymizedIpForVisitEnrichment": "Utiliser les adresses IP anonymisées pour enrichir les visites",
"UseAnonymizedIpForVisitEnrichmentNote": "Les composants tels que Geo Location (localisation) par IP et Fournisseur améliorent les métadonnées des visiteurs. Par défaut ces composants utilisent des adresses IP anonymisées. Si vous sélectionnez \"Non\", l'adresse IP réelle et complète sera utilisée à la place. Ceci améliorera la précision des données mais diminuera le respect de la vie privée.",
diff --git a/plugins/PrivacyManager/lang/hi.json b/plugins/PrivacyManager/lang/hi.json
index cb9fc2610f..d32636d946 100644
--- a/plugins/PrivacyManager/lang/hi.json
+++ b/plugins/PrivacyManager/lang/hi.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "यदि आप पूरी तरह से योग्य आईपी पतों को Piwik से ट्रैक नहीं करना चाहते हैं तो \"हाँ\" का चयन करें.",
"AnonymizeIpInlineHelp": "अपने स्थानीय गोपनीयता कानून \/ दिशा निर्देशों का अनुपालन करने के लिए आगंतुकों आईपी पतों की अज्ञात आखिरी बाइट",
"AnonymizeIpMaskLengtDescription": "आवृत किया जाना चाहिए कि कितने बाइट्स 'दर्शकों के आईपी का चयन करें.",
- "AnonymizeIpMaskLength": "%s बाइट - e.g. %s",
+ "AnonymizeIpMaskLength": "%1$s बाइट - e.g. %2$s",
"CannotLockSoDeleteLogActions": "Log_action तालिका शुद्ध नहीं किया जाएगा: '%s' में MYSQL उपयोगकर्ता के लिए LOCK TABLES विशेषाधिकार का अनुदान करे कृपया.",
"ClickHereSettings": "%s की सेटिंग्स का उपयोग करने के लिए यहां क्लिक करें.",
"CurrentDBSize": "वर्तमान डेटाबेस का आकार",
@@ -21,8 +21,8 @@
"DeleteMaxRows": "एक समय में नष्ट करने के लिए पंक्तियों की अधिकतम संख्या:",
"DeleteMaxRowsNoLimit": "कोई सीमा नहीं",
"DeleteReportsConfirm": "आप रिपोर्ट डेटा मिटाना सक्षम करने के बारे में हैं. पुराने रिपोर्टों को हटा रहे हैं, तो आप उन्हें देखने के क्रम में फिर से प्रक्रिया उनमें करनी होगी. आप सुनिश्चित करें कि आप यह करना चाहते हैं?",
- "DeleteReportsDetailedInfo": "डेटाबेस सांख्यिक संग्रह तालिकाओं (%s) और ब्लॉब संग्रह तालिकाओं (%s) से डेटा हटा दिया जाएगा.",
- "DeleteReportsInfo": "यदि सक्षम, पुराने रिपोर्ट हटा दी जाएगी। %sहम केवल जब अपने डेटाबेस स्थान सीमित है को सक्षम करने के लिए सलाह देते हैं। %s",
+ "DeleteReportsDetailedInfo": "डेटाबेस सांख्यिक संग्रह तालिकाओं (%1$s) और ब्लॉब संग्रह तालिकाओं (%2$s) से डेटा हटा दिया जाएगा.",
+ "DeleteReportsInfo": "दि सक्षम, पुराने रिपोर्ट हटा दी जाएगी। %1$sहम केवल जब अपने डेटाबेस स्थान सीमित है को सक्षम करने के लिए सलाह देते हैं। %2$s",
"DeleteReportsInfo2": "आपका \"%s\" सक्षम नहीं है, तो अनुरोध किए जाने पर, पुरानी रिपोर्टों को स्वचालित रूप से निर्मित किया जाएगा.",
"DeleteReportsInfo3": "आप \"%s\" को सक्षम किया है, डेटा स्थायी रूप से नष्ट हो जाएंगे.",
"DeleteReportsOlderThan": "की तुलना में पुराने रिपोर्टों को हटाएँ",
@@ -51,7 +51,7 @@
"PurgingData": "डेटा शुद्धीकरण ...",
"ReportsDataSavedEstimate": "डेटाबेस विस्तार",
"SaveSettingsBeforePurge": "अपने डेटा विलोपन सेटिंग्स को बदल दिया है. शुद्धीकरण शुरू करने से पहले उन्हें बचाइए.",
- "Teaser": "इस पृष्ठ पर, आप विद्यमान विधान के साथ इसे गोपनीयता के अनुरूप बनाने के लिए Piwik को अनुकूलित कर सकते हैं: %sगुमनाम आगंतुक आईपी%s, %sस्वचालित रूप से डेटाबेस से पुराने आगंतुक लॉग को हटाने, और अपनी वेबसाइट%s के लिए एक बाहर निकलने की व्यवस्था%s प्रदान करते हैं%s.",
+ "Teaser": "इस पृष्ठ पर, आप विद्यमान विधान के साथ इसे गोपनीयता के अनुरूप बनाने के लिए Piwik को अनुकूलित कर सकते हैं: %1$sगुमनाम आगंतुक आईपी%2$s, %3$sस्वचालित रूप से डेटाबेस से पुराने आगंतुक लॉग को हटाने, और अपनी वेबसाइट%4$s के लिए एक बाहर निकलने की व्यवस्था%5$s प्रदान करते हैं%6$s.",
"TeaserHeadline": "गोपनीयता की सेटिंग्स",
"UseAnonymizeIp": "आगंतुक आईपी पते को गुमनाम करे",
"UseDeleteLog": "नियमित रूप से डेटाबेस से पुराने आगंतुक लॉग को हटाना",
diff --git a/plugins/PrivacyManager/lang/id.json b/plugins/PrivacyManager/lang/id.json
index 9f515e9556..183caceb03 100644
--- a/plugins/PrivacyManager/lang/id.json
+++ b/plugins/PrivacyManager/lang/id.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "Pilih \"Ya\" jika Anda ingin Piwik tidak melacak Alamat IP sepenuhnya.",
"AnonymizeIpInlineHelp": "Anonimasi bita terakhir dari alamat IP pengunjung sesuai dengan peraturan privasi\/panduan setempat Anda.",
"AnonymizeIpMaskLengtDescription": "Pilih berapa banyak bita dari IP pengunjung harus ditutupi.",
- "AnonymizeIpMaskLength": "%s bita - misalnya %s",
+ "AnonymizeIpMaskLength": "%1$s bita - misalnya %2$s",
"CannotLockSoDeleteLogActions": "Tabel log_action tidak akan dibersihakan: harap memberi hak LOCK TABLES terhadap pengguna MySQL '%s'.",
"ClickHereSettings": "Klik di sini untuk mengakses pengaturan %s.",
"CurrentDBSize": "Ukuran basisdata saat ini",
@@ -19,8 +19,8 @@
"DeleteMaxRows": "Jumlah maksimum baris yang dihapus dalam sekali tindakan:",
"DeleteMaxRowsNoLimit": "tak terbatas",
"DeleteReportsConfirm": "Anda berkeinginan mengaktifkan penghapusan data laporan. Bila laporan lama dihapus, Anda harus memroses ulang laporan tersebut sebelum dapat ditampilkan. Apakah Anda yakin melakukan ini?",
- "DeleteReportsDetailedInfo": "Data dari tabel arsip angka basisdata (%s) dan tabel arsip blob basisdata (%s) akan dihapus.",
- "DeleteReportsInfo": "Bila ini diaktifkan laporan lama akan dihapus. %sKami menyarankan ini hanya bila ruang basisdata Anda terbatas.%s",
+ "DeleteReportsDetailedInfo": "Data dari tabel arsip angka basisdata (%1$s) dan tabel arsip blob basisdata (%2$s) akan dihapus.",
+ "DeleteReportsInfo": "Bila ini diaktifkan laporan lama akan dihapus. %1$sKami menyarankan ini hanya bila ruang basisdata Anda terbatas.%2$s",
"DeleteReportsInfo2": "Bila Anda tidak mengaktifkan \"%s\", laporan lama akan dibuat kembali otomatis saat dibutuhkan.",
"DeleteReportsInfo3": "Bila Anda mengaktifkan \"%s\", data akan hilang permanen.",
"DeleteReportsOlderThan": "Hapus laporan yang berumur lebih dari",
@@ -49,7 +49,7 @@
"PurgingData": "Membersihkan data...",
"ReportsDataSavedEstimate": "Ukuran basisdata",
"SaveSettingsBeforePurge": "Anda melakukan perubahan pengaturan penghapusan. Harap menyimpan perubahan tersebut sebelum melakukan pembersihan.",
- "Teaser": "Pada halaman ini, Anda dapat menyesuaikan Piwik untuk membuatnya sesuai dengan peraturan perundang-undangan privasi yang ada, dengan: %s anonimasi IP pengunjung%s, %s otomatis hapus catatan pengunjung lama dari basis data%s, dan %s menyediakan pilihan Jangan-Lacak untuk situs Anda%s.",
+ "Teaser": "Pada halaman ini, Anda dapat menyesuaikan Piwik untuk membuatnya sesuai dengan peraturan perundang-undangan privasi yang ada, dengan: %1$s anonimasi IP pengunjung%2$s, %3$s otomatis hapus catatan pengunjung lama dari basis data%4$s, dan %5$s menyediakan pilihan Jangan-Lacak untuk situs Anda%6$s.",
"TeaserHeadline": "Pengaturan Privasi",
"UseAnonymizeIp": "Anonimasi alamat IP Pengunjung",
"UseDeleteLog": "Hapus teratur catatan pengunjung lama dari basis data",
diff --git a/plugins/PrivacyManager/lang/it.json b/plugins/PrivacyManager/lang/it.json
index b0203718af..012b45e312 100644
--- a/plugins/PrivacyManager/lang/it.json
+++ b/plugins/PrivacyManager/lang/it.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Seleziona \"Sì\" se vuoi che Piwik non mostri gli indirizzi IP completi dei visitatori.",
"AnonymizeIpInlineHelp": "Rende anonimi gli ip dei tuoi visitatori per conformarsi alle leggi o ai regolamenti locali.",
- "AnonymizeIpExtendedHelp": "Quando gli utenti visitano il tuo sito web, Piwik non userà l'indirizzo IP completo (come %s) ma lo renderà prima anonimo (%s). Questo è uno dei requisiti definiti dalle leggi sulla privacy in alcuni paesi come la Germania.",
+ "AnonymizeIpExtendedHelp": "Quando gli utenti visitano il tuo sito web, Piwik non userà l'indirizzo IP completo (come %1$s) ma lo renderà prima anonimo (%2$s). Questo è uno dei requisiti definiti dalle leggi sulla privacy in alcuni paesi come la Germania.",
"AnonymizeIpMaskLengtDescription": "Seleziona quanti byte degli indirizzi IP dei visitatori devono essere nascosti.",
- "AnonymizeIpMaskLength": "%s byte(s) - es. %s",
+ "AnonymizeIpMaskLength": "%1$s byte(s) - es. %2$s",
"CannotLockSoDeleteLogActions": "La tabella log_action non verrà pulita: assicura il privilegio LOCK TABLES all'utente MYSQL '%s'.",
"ClickHereSettings": "Accedi alle impostazioni %s.",
"CurrentDBSize": "Dimensione corrente del database",
@@ -22,8 +22,8 @@
"DeleteMaxRows": "Numero massimo di righe da cancellare in un passaggio:",
"DeleteMaxRowsNoLimit": "nessun limite",
"DeleteReportsConfirm": "Stai per consentire la cancellazione dei dati dei report. Se i vecchi report vengono rimossi, si dovranno rielaborare per visualizzarli. Sei sicuro di volerlo fare?",
- "DeleteReportsDetailedInfo": "I dati delle tabelle numeriche d'archivio del database(%s) e le tabelle d'archivio blob (%s) saranno cancellate.",
- "DeleteReportsInfo": "Se abilitato, i vecchi report verranno cancellati. %sRaccomandiamo di abilitare solo quando lo spazio del database è limitato.%s",
+ "DeleteReportsDetailedInfo": "I dati delle tabelle numeriche d'archivio del database (%1$s) e le tabelle d'archivio blob (%2$s) saranno cancellate.",
+ "DeleteReportsInfo": "Se abilitato, i vecchi report verranno cancellati. %1$sRaccomandiamo di abilitare solo quando lo spazio del database è limitato.%2$s",
"DeleteReportsInfo2": "Se non è stato abilitato \"%s\", i vecchi report verranno automaticamente ricreati quando richiesti.",
"DeleteReportsInfo3": "Se abilitato \"%s\", i dati andranno definitivamente persi.",
"DeleteReportsOlderThan": "Elimina i report più vecchi di",
@@ -56,8 +56,8 @@
"RecommendedForPrivacy": "Raccomandato per la privacy",
"ReportsDataSavedEstimate": "Dimensioni database",
"SaveSettingsBeforePurge": "Hai cambiato le impostazioni per la cancellazione dei dati. Si consiglia di salvarli prima di cominciare una pulizia.",
- "SeeAlsoOurOfficialGuidePrivacy": "Leggi anche la nostra guida ufficiale: %sWeb Analytics Privacy%s",
- "Teaser": "In questa pagina è possibile personalizzare Piwik per renderlo conforme alle norme vigenti sulla privacy. È possibile %s rendere anonimi gli IP dei visitatori%s, %s rimuovere automaticamente dal database i vecchi log dei visitatori%s e %s fornire un meccanismo opt-out per il sito%s.",
+ "SeeAlsoOurOfficialGuidePrivacy": "Leggi anche la nostra guida ufficiale: %1$sWeb Analytics Privacy%2$s",
+ "Teaser": "In questa pagina è possibile personalizzare Piwik per renderlo conforme alle norme vigenti sulla privacy. È possibile %1$s rendere anonimi gli IP dei visitatori%2$s, %3$s rimuovere automaticamente dal database i vecchi log dei visitatori%4$s e %5$s fornire un meccanismo opt-out per il sito%6$s.",
"TeaserHeadline": "Impostazioni privacy",
"UseAnonymizedIpForVisitEnrichment": "Usa anche gli indirizzi IP Anonimi quando si arricchiscono le visite",
"UseAnonymizedIpForVisitEnrichmentNote": "Plugin come Geo Location tramite IP e Provider incrementano i metadati dei visitatori. Di default questi plugin utiizzano gli indirizzi IP resi anonimi. Se selezioni 'No', verrà utilizzato l'indirizzo IP completo non reso anonimo, con la conseguenza di una minore privacy ma con un'accuratezza dei dati migliore.",
diff --git a/plugins/PrivacyManager/lang/ja.json b/plugins/PrivacyManager/lang/ja.json
index aee8d4f898..c830a60a91 100644
--- a/plugins/PrivacyManager/lang/ja.json
+++ b/plugins/PrivacyManager/lang/ja.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "完全に特定されたIPアドレスを追跡しないようにするには「はい」を選んでください。",
"AnonymizeIpInlineHelp": "ローカルプライバシー規則やガイドラインに応じて、ビジターの IP アドレスの最終バイトを匿名化します。",
- "AnonymizeIpExtendedHelp": "ユーザーがウェブサイトを訪れるとき、Piwik は ( %s のような ) 完全な IP アドレスを使用しませんが、代わりに最初に匿名化します ( %s まで ) 。IP アドレスの匿名化はドイツを含むいくつかの国においてプライバシー法によって設定されている条件の中の1つです。",
+ "AnonymizeIpExtendedHelp": "ユーザーがウェブサイトを訪れるとき、Piwik は ( %1$s のような ) 完全な IP アドレスを使用しませんが、代わりに最初に匿名化します ( %2$s まで ) 。IP アドレスの匿名化はドイツを含むいくつかの国においてプライバシー法によって設定されている条件の中の1つです。",
"AnonymizeIpMaskLengtDescription": "ビジターのIPアドレスから何バイトマスクするか選択してください。",
- "AnonymizeIpMaskLength": "%s バイト- 例. %s",
+ "AnonymizeIpMaskLength": "%1$s バイト- 例. %2$s",
"CannotLockSoDeleteLogActions": "log_action 表は、パージされません。'%s' MYSQL ユーザーに、LOCK TABLES 権限を付与してください。",
"ClickHereSettings": "%s 設定はこちらをクリック",
"CurrentDBSize": "現在のデータベースサイズ",
@@ -22,8 +22,8 @@
"DeleteMaxRows": "一回の実行で削除する最大の行数:",
"DeleteMaxRowsNoLimit": "制限なし",
"DeleteReportsConfirm": "リポートデータの削除を可能にしようとしています。古いリポートが削除された場合は、再度生成する必要があります。続けますか?",
- "DeleteReportsDetailedInfo": "データベースの数値型のアーカイブテーブル(%s)とブロブ型のアーカイブテーブル(%s)からデータが削除されます。",
- "DeleteReportsInfo": "有効の場合は、古いレポートが削除されます。%sデータベース容量が限られている場合のみ有効にすることをお勧めします。%s",
+ "DeleteReportsDetailedInfo": "データベースの数値型のアーカイブテーブル(%1$s)とブロブ型のアーカイブテーブル(%2$s)からデータが削除されます。",
+ "DeleteReportsInfo": "有効の場合は、古いレポートが削除されます。%1$sデータベース容量が限られている場合のみ有効にすることをお勧めします。%2$s",
"DeleteReportsInfo2": "\"%s\"が有効でない場合は、要求されれば、古いレポートが自動的に再作成されます。",
"DeleteReportsInfo3": "\"%s\" を有効にすると、データは永久に失われます。",
"DeleteReportsOlderThan": "この月数より古いリポートを削除",
@@ -56,8 +56,7 @@
"RecommendedForPrivacy": "プライバシー推奨",
"ReportsDataSavedEstimate": "データベースサイズ",
"SaveSettingsBeforePurge": "データ削除設定を変更しました。削除が開始される前に保存してください。",
- "SeeAlsoOurOfficialGuidePrivacy": "私達のオフィシャルガイドもご確認ください。%sWeb Analytics Privacy%s",
- "Teaser": "このページでは、既存の法律にのっとり、Piwikがプライバシーに準拠するようカスタマイズすることができます:%s 匿名の訪問者のIPアドレス %s、%s 自動的にデータベースから古いビジターのログを削除 %s、%sウェブサイトをオプトアウトする仕組みの提供%s による。",
+ "SeeAlsoOurOfficialGuidePrivacy": "私達のオフィシャルガイドもご確認ください。%1$sWeb Analytics Privacy%2$s",
"TeaserHeadline": "プライバシー設定",
"UseAnonymizedIpForVisitEnrichment": "訪問数を増やす際、匿名化された IP アドレスもご利用ください。",
"UseAnonymizedIpForVisitEnrichmentNote": "IP およびプロバイダー経由の位置情報探索機能のようなプラグインは、ビジターのメタデータを修正します。デフォルトでは、このようなプラグインは匿名 IP アドレスを使用します。'No' を選ぶと、非匿名の完全な IP アドレスが代わりに使用されます。この場合、データの正確性は向上しますがプライバシーは多少劣ります。",
diff --git a/plugins/PrivacyManager/lang/ko.json b/plugins/PrivacyManager/lang/ko.json
index 84987a600a..033621a5ef 100644
--- a/plugins/PrivacyManager/lang/ko.json
+++ b/plugins/PrivacyManager/lang/ko.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "완전히 확인 된 IP 주소를 추적하지 않도록하려면 \"예\"를 선택합니다.",
"AnonymizeIpInlineHelp": "개인이 설정한 내부 규칙 및 지침에 따라 방문자의 IP주소의 마지막 바이트를 숨깁니다.",
- "AnonymizeIpExtendedHelp": "유저들이 웹사이트에 접속할 때, Piwik는 모든 IP 주소(예: %s)를 사용하지 않고 일부를 숨깁니다(예: %s). IP 주소 익명 처리는 독일과 같이 특정 국가에서 프라이버시 법률에 따라 요구되는 것 중 하나입니다.",
+ "AnonymizeIpExtendedHelp": "유저들이 웹사이트에 접속할 때, Piwik는 모든 IP 주소(예: %1$s)를 사용하지 않고 일부를 숨깁니다(예: %2$s). IP 주소 익명 처리는 독일과 같이 특정 국가에서 프라이버시 법률에 따라 요구되는 것 중 하나입니다.",
"AnonymizeIpMaskLengtDescription": "방문자의 IP 주소에서 몇 바이트를 숨기려면 선택하세요.",
- "AnonymizeIpMaskLength": "%s 바이트 - 예) %s",
+ "AnonymizeIpMaskLength": "%1$s 바이트 - 예) %2$s",
"CannotLockSoDeleteLogActions": "log_action 테이블을 비울 수 없습니다: '%s' MYSQL 사용자에게 LOCK 테이블 권한을 부여하세요.",
"ClickHereSettings": "%s 설정은 여기를 클릭하세요.",
"CurrentDBSize": "현재 데이터베이스 크기",
@@ -22,8 +22,8 @@
"DeleteMaxRows": "한번의 실행으로 최대 제거 행 수:",
"DeleteMaxRowsNoLimit": "제한 없음",
"DeleteReportsConfirm": "보고서 데이터의 삭제를 가능하게하려고합니다. 이전 보고서가 삭제 된 경우 다시 생성해야합니다. 계속 하시겠습니까?",
- "DeleteReportsDetailedInfo": "데이터베이스의 숫자 아카이브 테이블 (%s)와 blob 아카이브 테이블 (%s)에서 데이터가 삭제됩니다.",
- "DeleteReportsInfo": "활성화된 경우, 이전 보고서가 삭제됩니다. %s데이터베이스 용량이 제한된 경우에만 사용하는 것이 좋습니다.%s",
+ "DeleteReportsDetailedInfo": "데이터베이스의 숫자 아카이브 테이블 (%1$s)와 blob 아카이브 테이블 (%2$s)에서 데이터가 삭제됩니다.",
+ "DeleteReportsInfo": "활성화된 경우, 이전 보고서가 삭제됩니다. %1$s데이터베이스 용량이 제한된 경우에만 사용하는 것이 좋습니다.%2$s",
"DeleteReportsInfo2": "\"%s\"가 유효하지 않은 경우, 요구되는 경우, 이전 보고서가 자동으로 다시 만들어집니다.",
"DeleteReportsInfo3": "\"%s\"를 사용하면 데이터가 영구적으로 손실됩니다.",
"DeleteReportsOlderThan": "오래된 보고서 삭제",
@@ -56,8 +56,8 @@
"RecommendedForPrivacy": "프라이버시를 위해 권장함",
"ReportsDataSavedEstimate": "데이터베이스 크기",
"SaveSettingsBeforePurge": "데이터 삭제 설정을 변경했습니다. 삭제가 시작되기 전에 저장하세요.",
- "SeeAlsoOurOfficialGuidePrivacy": "공식 가이드인 %sWeb Analytics Privacy%s을 참고해주세요.",
- "Teaser": "이 페이지에서는 기존의 법률에 따라, Piwik이 개인에 맞도록 정의할 수 있습니다: %s 익명 방문자의 IP 주소 %s, %s 자동으로 데이터베이스에서 오래된 방문자의 로그를 삭제 %s, %s 웹사이트를 탈퇴하는 방법을 제공 %s에 따름.",
+ "SeeAlsoOurOfficialGuidePrivacy": "공식 가이드인 %1$sWeb Analytics Privacy%2$s을 참고해주세요.",
+ "Teaser": "이 페이지에서는 기존의 법률에 따라, Piwik이 개인에 맞도록 정의할 수 있습니다: %1$s 익명 방문자의 IP 주소 %2$s, %3$s 자동으로 데이터베이스에서 오래된 방문자의 로그를 삭제 %4$s, %5$s 웹사이트를 탈퇴하는 방법을 제공 %6$s에 따름.",
"TeaserHeadline": "개인 정보 보호 설정",
"UseAnonymizedIpForVisitEnrichment": "또한, 방문이 많을 때 익명화된 IP 주소를 사용합니다.",
"UseAnonymizedIpForVisitEnrichmentNote": "IP 주소와 공급자를 통하여 방문자의 지역 정보를 알아내는 것 같은 플러그인은 방문자의 메타데이터를 향상시킵니다. 기본적으로 이런 플러그인은 익명화된 IP 주소를 사용합니다. 만약 '아니오'를 선택할 경우, 익명처리되지 않은 전체 IP 주소를 대신 사용하게 되어 프라이버시는 낮추지만 대신 데이터 정확도를 높일 것입니다.",
diff --git a/plugins/PrivacyManager/lang/nb.json b/plugins/PrivacyManager/lang/nb.json
index 512319bd66..87b96e9d56 100644
--- a/plugins/PrivacyManager/lang/nb.json
+++ b/plugins/PrivacyManager/lang/nb.json
@@ -1,6 +1,6 @@
{
"PrivacyManager": {
- "AnonymizeIpMaskLength": "%s byte(s) – f.eks %s",
+ "AnonymizeIpMaskLength": "%1$s byte(s) – f.eks %2$s",
"ClickHereSettings": "Klikk her for å få tilgang til %s-innstillingene.",
"CurrentDBSize": "Nåværende databasestørrelse",
"DeleteDataDescription": "Du kan sette opp Piwik til å regelmessig slette gamle besøkslogger og\/eller behandlede rapporter for å holde databasen din liten.",
diff --git a/plugins/PrivacyManager/lang/nl.json b/plugins/PrivacyManager/lang/nl.json
index c4b39559a3..2bd5aa2db4 100644
--- a/plugins/PrivacyManager/lang/nl.json
+++ b/plugins/PrivacyManager/lang/nl.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Selecteer \"Ja\" als u wilt dat Piwik niet de volledige IP-adressen registreert.",
"AnonymizeIpInlineHelp": "Anonimiseer de laatste byte van bezoekers IP adressen om te voldoen aan lokale privacy wetten\/richtlijnen.",
- "AnonymizeIpExtendedHelp": "Als gebruikers uw website bezoeken zal Piwik niet het volledige IP adres (zoals %s) gebruiken maar ditt eerst anonimiseren (tot %s). IP adres anonimisatie is in sommige landen zoals Duitsland, een van de eisen gesteld in privacy wetten.",
+ "AnonymizeIpExtendedHelp": "Als gebruikers uw website bezoeken zal Piwik niet het volledige IP adres (zoals %1$s) gebruiken maar ditt eerst anonimiseren (tot %2$s). IP adres anonimisatie is in sommige landen zoals Duitsland, een van de eisen gesteld in privacy wetten.",
"AnonymizeIpMaskLengtDescription": "Geef aan hoeveel cijfers van het IP-adres moeten worden gemaskeerd.",
- "AnonymizeIpMaskLength": "%s byte(s) - bijvoorbeeld %s",
+ "AnonymizeIpMaskLength": "%1$s byte(s) - bijvoorbeeld %2$s",
"CannotLockSoDeleteLogActions": "De log_action tabel zal niet worden opgekuist: Wijs het 'LOCK TABLES' recht toe aan de '%s' MYSQL gebruiker.",
"ClickHereSettings": "Klik hier om de%s-instellingen te openen.",
"CurrentDBSize": "Huidige database grotte",
@@ -22,8 +22,8 @@
"DeleteMaxRows": "Maximum aantal rijen te verwijderen in een keer:",
"DeleteMaxRowsNoLimit": "onbeperkt",
"DeleteReportsConfirm": "U staat op het punt om het verwijderen van rapporten te activeren. Als de oude rapporten zijn verwijderd, dan zullen ze opnieuw aangemaakt moeten worden als u ze later wilt bekijken. Bent u er zzker van dat u de oude rapporten wilt verwijderen?",
- "DeleteReportsDetailedInfo": "Data uit de database numeric archive tabellen (%s) and blob archive tabellen (%s) zullen worden verwijderd.",
- "DeleteReportsInfo": "Indien ingeschakeld zullen oude rapporten worden verwijderd. %sWe adviseren om dit alleen te doen als de databaseruimte beperkt is.%s",
+ "DeleteReportsDetailedInfo": "Data uit de database numeric archive tabellen (%1$s) and blob archive tabellen (%2$s) zullen worden verwijderd.",
+ "DeleteReportsInfo": "Indien ingeschakeld zullen oude rapporten worden verwijderd. %1$sWe adviseren om dit alleen te doen als de databaseruimte beperkt is.%2$s",
"DeleteReportsInfo2": "Als u \"%s\" niet heeft ingeschakeld, dan zullen de oude rapporten opnieuw automatisch worden aangemaakt zodra ze worden opgevraagd.",
"DeleteReportsInfo3": "Als u \"%s\" heeft ingeschakeld, dan zal de data permanent verloren gaan.",
"DeleteReportsOlderThan": "Verwijder rapporten ouder dan",
@@ -53,7 +53,7 @@
"PurgingData": "Data opschonen",
"RecommendedForPrivacy": "Aanbevolen voor privacy",
"ReportsDataSavedEstimate": "Database omvang",
- "Teaser": "Op deze pagina kunt u Piwik zodanig instellen dat het voldoet aan de bestaande privacy wetgeving in uw regio. Door: %s anonimiseren van uw bezoekers IP %s,%s automatisch verwijderen oude bezoekerlogs uit de database %s en %s door een opt-out ondersteuning aan te bieden voor uw website%s.",
+ "Teaser": "Op deze pagina kunt u Piwik zodanig instellen dat het voldoet aan de bestaande privacy wetgeving in uw regio. Door: %1$s anonimiseren van uw bezoekers IP %2$s,%3$s automatisch verwijderen oude bezoekerlogs uit de database %4$s en %5$s door een opt-out ondersteuning aan te bieden voor uw website%6$s.",
"TeaserHeadline": "Privacy instellingen",
"UseAnonymizedIpForVisitEnrichment": "Gebruik ook de geanonimiseerde IP adressen bij het verrijken van de bezoeken.",
"UseAnonymizedIpForVisitEnrichmentNote": "Plugins zoals Geolocatie via IP en Provider verbeteren bezoekers metadata. Standaard maken deze plugins gebruik van de geanonimiseerde IP adressen. Als je 'Nee' selecteert, dan zal het volledige, niet geanonimiseerde IP adres gebruikt worden. Dat resulteert in minder privacy, maar een grotere nauwkeurigheid van data.",
diff --git a/plugins/PrivacyManager/lang/pl.json b/plugins/PrivacyManager/lang/pl.json
index f9f9540a42..153759e824 100644
--- a/plugins/PrivacyManager/lang/pl.json
+++ b/plugins/PrivacyManager/lang/pl.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Wybierz \"Tak\" jeśli chcesz aby nie śledzić w pełni wykwalifikowanych adresów IP.",
"AnonymizeIpInlineHelp": "Anonimizacja ostatniego bajtu w adresie IP odwiedzających, by dostosować się do być może lokalnego prawa do prywatności\/wytycznych o prywatności.",
- "AnonymizeIpExtendedHelp": "Kiedy użytkownik odwiedzi twoją stronę. Piwik nie użyje całego adresu IP danej osoby (np %s), a zamiast tego wykona anonimizację adresu (do %s). Anonimizacja adresu IP jest wymogiem prawnym w niektórych krajach - na przykład w Niemczech.",
+ "AnonymizeIpExtendedHelp": "Kiedy użytkownik odwiedzi twoją stronę. Piwik nie użyje całego adresu IP danej osoby (np %1$s), a zamiast tego wykona anonimizację adresu (do %2$s). Anonimizacja adresu IP jest wymogiem prawnym w niektórych krajach - na przykład w Niemczech.",
"AnonymizeIpMaskLengtDescription": "Wybierz ile bajtów z odwiedzających' adresów IP powinny być zamaskowane.",
- "AnonymizeIpMaskLength": "%s bajt(ów) - np. %s",
+ "AnonymizeIpMaskLength": "%1$s bajt(ów) - np. %2$s",
"ClickHereSettings": "Kliknij tutaj, aby uzyskać dostęp do %s ustawień.",
"CurrentDBSize": "Obecny rozmiar bazy danych",
"DeleteDataInterval": "Usuń stare dane co",
@@ -13,7 +13,7 @@
"DeleteLogsOlderThan": "Usuń logi starsze niż",
"DeleteMaxRows": "Maksymalna liczba wierszy, aby usunąć w jednym przebiegu:",
"DeleteMaxRowsNoLimit": "bez limitu",
- "DeleteReportsInfo": "Jeśli opcja jest włączona, stare raporty zostaną usunięte. %s Zalecane włączyć tylko wtedy, gdy baza danych jest ma ograniczoną przestrzeń. %s",
+ "DeleteReportsInfo": "Jeśli opcja jest włączona, stare raporty zostaną usunięte. %1$s Zalecane włączyć tylko wtedy, gdy baza danych jest ma ograniczoną przestrzeń. %2$s",
"DeleteReportsInfo3": "Jeśli włączysz \"%s\", dane zostaną trwale utracone.",
"DeleteReportsOlderThan": "Usuń raporty starsze niż",
"DoNotTrack_Disable": "Wyłącz wsparcie Do Not Track",
@@ -30,7 +30,7 @@
"PurgeNow": "Oczyść bazę danych teraz",
"PurgingData": "Czyszczenie danych...",
"ReportsDataSavedEstimate": "Rozmiar bazy danych",
- "SeeAlsoOurOfficialGuidePrivacy": "Zobacz również nasz oficjalny przewodnik: : %sWeb Analytics Privacy%s",
+ "SeeAlsoOurOfficialGuidePrivacy": "Zobacz również nasz oficjalny przewodnik: : %1$sWeb Analytics Privacy%2$s",
"TeaserHeadline": "Ustawienia prywatności",
"UseAnonymizeIp": "Anonimizacja odwiedzających' adres IP",
"UseDeleteLog": "Regularnie usuwanie starych logów odwiedzających z bazy danych",
diff --git a/plugins/PrivacyManager/lang/pt-br.json b/plugins/PrivacyManager/lang/pt-br.json
index 2d65dfd76e..c5bfb79b63 100644
--- a/plugins/PrivacyManager/lang/pt-br.json
+++ b/plugins/PrivacyManager/lang/pt-br.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Selecione \"Sim\" se você quer que o Piwik não restreie os endereços de IP totalmente qualificados.",
"AnonymizeIpInlineHelp": "Anonimize o último byte do endereço IP dos visitantes para obedecer suas leis\/guias locais de privacidade.",
- "AnonymizeIpExtendedHelp": "Quando usuários visitarem o seu site, Piwik não vai usar o endereço de IP completo (como %s), pelo contrário, Piwik vai anonimizá-los primeiro (para %s). Anonimização de endereço de IP é um dos requisitos estabelecidos pelas leis de privacidade em alguns países como a Alemanha.",
+ "AnonymizeIpExtendedHelp": "Quando usuários visitarem o seu site, Piwik não vai usar o endereço de IP completo (como %1$s), pelo contrário, Piwik vai anonimizá-los primeiro (para %2$s). Anonimização de endereço de IP é um dos requisitos estabelecidos pelas leis de privacidade em alguns países como a Alemanha.",
"AnonymizeIpMaskLengtDescription": "Selecione quantos bytes de IPs dos visitantes deve ser mascarado.",
- "AnonymizeIpMaskLength": "%s byte(s) - e.g. %s",
+ "AnonymizeIpMaskLength": "%1$s byte(s) - e.g. %2$s",
"CannotLockSoDeleteLogActions": "A tabela log_action não será purgada: por favor, conceder o privilégio LOCK TABLES para o usuário MYSQL '%s'.",
"ClickHereSettings": "Clique aqui para acessar as configurações do %s.",
"CurrentDBSize": "Tamanho atual do banco de dados",
@@ -22,8 +22,8 @@
"DeleteMaxRows": "O número máximo de linhas a serem excluídos em uma execução:",
"DeleteMaxRowsNoLimit": "nenhum limite",
"DeleteReportsConfirm": "Você está prestes a permitir a exclusão dos dados do relatório. Se os relatórios antigos são removidos, você vai ter que re-processar-los em ordem de visualização. Tem certeza de que quer fazer isto?",
- "DeleteReportsDetailedInfo": "Os dados das tabelas de arquivamento de banco de dados numéricos (%s) e tabelas de arquivo blob (%s) será excluído.",
- "DeleteReportsInfo": "Se ativado, relatórios antigos serão apagados. %s Nós recomendamos permitir apenas quando o seu espaço de banco de dados é limitado. %s",
+ "DeleteReportsDetailedInfo": "Os dados das tabelas de arquivamento de banco de dados numéricos (%1$s) e tabelas de arquivo blob (%2$s) será excluído.",
+ "DeleteReportsInfo": "Se ativado, relatórios antigos serão apagados. %1$s Nós recomendamos permitir apenas quando o seu espaço de banco de dados é limitado. %2$s",
"DeleteReportsInfo2": "Se você não tiver ativado \"%s\", os relatórios antigos serão recriados automaticamente quando solicitado.",
"DeleteReportsInfo3": "Se você tiver ativado \"%s\", os dados serão perdidos para sempre.",
"DeleteReportsOlderThan": "Apagar relatórios com mais de",
@@ -56,8 +56,8 @@
"RecommendedForPrivacy": "Recomendado para privacidade",
"ReportsDataSavedEstimate": "Tamanho do banco de dados",
"SaveSettingsBeforePurge": "Você mudou as configurações de exclusão de dados. Guarde-os antes de iniciar um expurgo.",
- "SeeAlsoOurOfficialGuidePrivacy": "Veja também nosso guia oficial: %sWeb Analytics Privacy%s",
- "Teaser": "Nesta página, você pode personalizar Piwik para torná-lo compatível com as legislações de privacidade existentes, através: %s Esconder o IP do visitante %s,%s automaticamente remover registos de visitantes antigos do banco de dados%s, e, %s proporcionando um mecanismo de Opt-out para o seu site %s.",
+ "SeeAlsoOurOfficialGuidePrivacy": "Veja também nosso guia oficial: %1$sWeb Analytics Privacy%2$s",
+ "Teaser": "Nesta página, você pode personalizar Piwik para torná-lo compatível com as legislações de privacidade existentes, através: %1$s Esconder o IP do visitante %2$s,%3$s automaticamente remover registos de visitantes antigos do banco de dados%4$s, e, %5$s proporcionando um mecanismo de Opt-out para o seu site %6$s.",
"TeaserHeadline": "Configurações de privacidade",
"UseAnonymizedIpForVisitEnrichment": "Utilize também o endereço de IP Anonimizado ao enriquecer visitas.",
"UseAnonymizedIpForVisitEnrichmentNote": "Plugins como o de Geo Localização via IP e o Provedor melhoraram os metadados do visitante. Por padrão, esses plugins usam endereços IP anónimos. Se você selecionar \"Não\", então o endereço IP não-anónimos completo será usado, resultando em menos privacidade, mas melhor precisão dos dados.",
diff --git a/plugins/PrivacyManager/lang/pt.json b/plugins/PrivacyManager/lang/pt.json
index d0801c7487..297fe93f10 100644
--- a/plugins/PrivacyManager/lang/pt.json
+++ b/plugins/PrivacyManager/lang/pt.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "Selecione \"Sim\" para o Piwik não rastrear totalmente endereços IP qualificados.",
"AnonymizeIpInlineHelp": "Torna o último byte dos endereços IP de visitantes anónimo para obedecer às suas leis\/regulamentos de privacidade locais.",
"AnonymizeIpMaskLengtDescription": "Selecione quantos bytes dos IPs dos visitantes devem ser mascarados.",
- "AnonymizeIpMaskLength": "%s byte(s) - por exemplo %s",
+ "AnonymizeIpMaskLength": "%1$s byte(s) - por exemplo %2$s",
"ClickHereSettings": "Clique aqui para aceder às %s definições",
"DeleteLogDescription2": "Quando você activa a ​​eliminação automática de logs, você deve garantir que todos os relatórios diários anteriores tenham sido processados​​, de modo que nenhuns dados sejam perdidos.",
"DeleteLogInfo": "Logs das seguintes tabelas serão apagados: %s",
diff --git a/plugins/PrivacyManager/lang/ro.json b/plugins/PrivacyManager/lang/ro.json
index dbd3b85696..6cc21da90e 100644
--- a/plugins/PrivacyManager/lang/ro.json
+++ b/plugins/PrivacyManager/lang/ro.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "Selectați \"Da\" dacă doriți Piwik sa nu urmareasca pe deplin adrese IP.",
"AnonymizeIpInlineHelp": "Ascunde ultimele cifre ale IP-ului vizitatorilor pentru a fi în conformitate cu legile privind protecţia datelor personale.",
"AnonymizeIpMaskLengtDescription": "Selectați cât de multe bytes al IP-urilor de visitatori ar trebui să fie mascate.",
- "AnonymizeIpMaskLength": "%s octet(ii)- ex. %s",
+ "AnonymizeIpMaskLength": "%1$s octet(ii)- ex. %2$s",
"CannotLockSoDeleteLogActions": "Tabelul de acțiune jurnal nu va fi sters: vă rugăm să se acorde privilegiul LOCK TABLES pentru '%s' utilizatorul MySQL.",
"ClickHereSettings": "Dă click aici pentru a accesa setările %s.",
"CurrentDBSize": "Dimensiunea bazei de date curenta",
@@ -19,8 +19,8 @@
"DeleteMaxRows": "Numărul maxim de rânduri pentru a șterge într-o cursă:",
"DeleteMaxRowsNoLimit": "nelimitat",
"DeleteReportsConfirm": "Sunteți pe cale de a permite ștergerea raportului de date. Dacă rapoartele vechi sunt eliminate, va trebui să re-prelucrare a acestora, în scopul de a le vizualiza. Ești sigur că vrei să faci asta?",
- "DeleteReportsDetailedInfo": "Datele din baza de date arhiva tabele numerice (%s) și tabele de arhivă pată de cerneală (%s) vor fi șterse.",
- "DeleteReportsInfo": "Dacă este activat, rapoartele vechi vor fi șterse. %sNoi recomandam pentru a se activa numai atunci când spațiul de baze de date este limitat.%s",
+ "DeleteReportsDetailedInfo": "Datele din baza de date arhiva tabele numerice (%1$s) și tabele de arhivă pată de cerneală (%2$s) vor fi șterse.",
+ "DeleteReportsInfo": "Dacă este activat, rapoartele vechi vor fi șterse. %1$sNoi recomandam pentru a se activa numai atunci când spațiul de baze de date este limitat.%2$s",
"DeleteReportsInfo2": "Dacă nu ați activat \"%s\", rapoarte vechi vor fi recreate în mod automat atunci când sunt solicitate.",
"DeleteReportsInfo3": "Dacă ați activat \"%s\", datele vor fi pierdute definitiv.",
"DeleteReportsOlderThan": "Șterge rapoarte mai vechi de",
@@ -49,8 +49,8 @@
"PurgingData": "Purjare de date ...",
"ReportsDataSavedEstimate": "Mărimea bazei de date",
"SaveSettingsBeforePurge": "Ați schimbat setările de ștergere a datelor. Vă rugăm să le salvați înainte de a începe o curatare.",
- "SeeAlsoOurOfficialGuidePrivacy": "A se vedea, de asemenea, ghidul nostru oficial: %sWeb Analytics confidențialitate%s",
- "Teaser": "Pe această pagină, puteți personaliza Piwik pentru a face viața privată în conformitate cu legislațiile existente, prin: %s anonimizarea vizitator IP %s, %s elimina automat busteni de vizitatori vechi din baza de date %s, iar %s oferind un mecanism de opt-out pentru site-ul dvs.%s.",
+ "SeeAlsoOurOfficialGuidePrivacy": "A se vedea, de asemenea, ghidul nostru oficial: %1$sWeb Analytics confidențialitate%2$s",
+ "Teaser": "Pe această pagină, puteți personaliza Piwik pentru a face viața privată în conformitate cu legislațiile existente, prin: %1$s anonimizarea vizitator IP %2$s, %3$s elimina automat busteni de vizitatori vechi din baza de date %4$s, iar %5$s oferind un mecanism de opt-out pentru site-ul dvs.%6$s.",
"TeaserHeadline": "Setări confidenţialitate",
"UseAnonymizedIpForVisitEnrichment": "De asemenea, utilizeaza adresele IP anonimime, atunci când se cresc vizitele.",
"UseAnonymizedIpForVisitEnrichmentNote": "Plugin-uri, cum ar fi Locația geografică prin intermediul IP și furnizor îmbunătățire metadate vizitator. În mod implicit aceste plugin-uri folosesc adresele IP anonimizate. Dacă selectați \"Nu\", atunci adresa IP complet non-anonime va fi folosit în loc, careare mai puțina intimitate, dar are o mai mare acuratețe a datelor.",
diff --git a/plugins/PrivacyManager/lang/ru.json b/plugins/PrivacyManager/lang/ru.json
index 2714a75f96..fb766962dc 100644
--- a/plugins/PrivacyManager/lang/ru.json
+++ b/plugins/PrivacyManager/lang/ru.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Выберите \"Да\", если хотите, чтобы система отслеживала не полный IP-адрес посетителей.",
"AnonymizeIpInlineHelp": "Скрыть последний байт IP-адресов ваших посетителей согласно вашим принципам конфиденциальности или законодательству.",
- "AnonymizeIpExtendedHelp": "Когда пользователи посещают ваш сайт, Piwik не будет использовать полный IP-адрес (например, %s), а анонимизирует его (например, в %s). Анонимизация IP-адреса является одним из требований, установленных законами о конфиденциальности в некоторых странах, таких как Германия.",
+ "AnonymizeIpExtendedHelp": "Когда пользователи посещают ваш сайт, Piwik не будет использовать полный IP-адрес (например, %1$s), а анонимизирует его (например, в %2$s). Анонимизация IP-адреса является одним из требований, установленных законами о конфиденциальности в некоторых странах, таких как Германия.",
"AnonymizeIpMaskLengtDescription": "Выберите, как много байтов IP-адреса посетителей должно быть скрыто.",
- "AnonymizeIpMaskLength": "%s байт(ов), например, %s",
+ "AnonymizeIpMaskLength": "%1$s байт(ов), например, %2$s",
"CannotLockSoDeleteLogActions": "Таблица log_action не будет удалена: пожалуйста, установите привелегии LOCK TABLES для ’%s’ пользователя MYSQL.",
"ClickHereSettings": "Нажмите здесь, чтобы перейти к настройкам: %s.",
"CurrentDBSize": "Текущий размер базы данных",
@@ -20,8 +20,8 @@
"DeleteMaxRows": "Максимальное число строк для удаления за один раз:",
"DeleteMaxRowsNoLimit": "нет ограничений",
"DeleteReportsConfirm": "Вы собираетесь включить удаление данных по отчетам. Когда старые отчеты будут удалены, вы должны снова обработать их, если хотите просмотреть их. Вы увереныЮ что хотите сделать это?",
- "DeleteReportsDetailedInfo": "Данные базы данных, содержащиеся в numeric (%s) и blob-таблицах (%s) будут удалены.",
- "DeleteReportsInfo": "Если включено, старые отчеты будут удалены. %sМы рекомендуем включать это только если размер вашей БД ограничен.%s",
+ "DeleteReportsDetailedInfo": "Данные базы данных, содержащиеся в numeric (%1$s) и blob-таблицах (%2$s) будут удалены.",
+ "DeleteReportsInfo": "Если включено, старые отчеты будут удалены. %1$sМы рекомендуем включать это только если размер вашей БД ограничен.%2$s",
"DeleteReportsInfo2": "Если вы не включили '%s', старые отчеты будут воссоздаваться автоматически по запросу.",
"DeleteReportsInfo3": "Если вы включили '%s', данные будут навсегда потеряны.",
"DeleteReportsOlderThan": "Удалить отчеты, старше чем",
@@ -50,8 +50,8 @@
"PurgingData": "Чистка данных...",
"ReportsDataSavedEstimate": "Размер базы данных",
"SaveSettingsBeforePurge": "Вы изменили настройки удаления данных. Пожалуйста, сохраните их, перед тем как начать чистку.",
- "SeeAlsoOurOfficialGuidePrivacy": "Смотрите также официальное руководство: %sКонфидециальность данных в Piwik%s",
- "Teaser": "На этой вкладке вы можете настраивать Веб-аналитику для ее соответствия политике конфиденциальности действующего законодательства вашей страны. Используйте: %s скрытие IP-адреса посетителя%s, %s автоматическое стирание старых логов из базы банных%s и %s возможность для посетителей исключить себя из учета в системе%s.",
+ "SeeAlsoOurOfficialGuidePrivacy": "Смотрите также официальное руководство: %1$sКонфидециальность данных в Piwik%2$s",
+ "Teaser": "На этой вкладке вы можете настраивать Веб-аналитику для ее соответствия политике конфиденциальности действующего законодательства вашей страны. Используйте: %1$s скрытие IP-адреса посетителя%2$s, %3$s автоматическое стирание старых логов из базы банных%4$s и %5$s возможность для посетителей исключить себя из учета в системе%6$s.",
"TeaserHeadline": "Настройки конфиденциальности",
"UseAnonymizeIp": "Скрыть IP-адреса посетителей",
"UseDeleteLog": "Регулярно удалять старые логи посещений из базы данных",
diff --git a/plugins/PrivacyManager/lang/sk.json b/plugins/PrivacyManager/lang/sk.json
index 6f77236902..d2657f0d2b 100644
--- a/plugins/PrivacyManager/lang/sk.json
+++ b/plugins/PrivacyManager/lang/sk.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "Vyberte \"Áno\" ak chcete aby Piwik nesledoval plne kvalifikované IP adresy",
"AnonymizeIpInlineHelp": "Anonymnosť posledný bajt IP adresy návštevníkov v súlade s miestnymi zákonmi na ochranu súkromia.",
"AnonymizeIpMaskLengtDescription": "Vyberte koľko bajtov IP adresy návštevníkov by malo byť maskovaných.",
- "AnonymizeIpMaskLength": "%s bajt(y) - napr. %s",
+ "AnonymizeIpMaskLength": "%1$s bajt(y) - napr. %2$s",
"ClickHereSettings": "Kliknite sem pre prístup k %s nastaveniam.",
"CurrentDBSize": "Aktuálna veľkosť databázy",
"DBPurged": "Databáza vyčistená."
diff --git a/plugins/PrivacyManager/lang/sq.json b/plugins/PrivacyManager/lang/sq.json
index f69cdd55cf..eb6f8e6a30 100644
--- a/plugins/PrivacyManager/lang/sq.json
+++ b/plugins/PrivacyManager/lang/sq.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "Përzgjidhni \"Po\" nëse doni që Piwik-u të mos gjurmojë adresa IP të përcaktuara qartë.",
"AnonymizeIpInlineHelp": "Anonimizoje bajtin e fundit të adresave IP të vizitorëve, në pajtim me ligjet\/udhëzimet vendore për vetësinë.",
"AnonymizeIpMaskLengtDescription": "Përzgjidhni sa bajte të maskohen te IP-ja e vizitorit.",
- "AnonymizeIpMaskLength": "%s bajt(e) - p.sh. %s",
+ "AnonymizeIpMaskLength": "%1$s bajt(e) - p.sh. %2$s",
"ClickHereSettings": "Klikoni këtu që të shkoni te rregullimet mbi %s.",
"DeleteLogDescription2": "Kur aktivizoni fshirjen e vetvetishme të regjistrimeve, duhet të siguroheni që janë përpunuar krejt raportet e ditës së mëparshme, që të mos humbni të dhëna.",
"DeleteLogInfo": "Regjistrimet nga tabelat vijuese do të fshihen: %s",
@@ -14,7 +14,7 @@
"LeastDaysInput": "Ju lutem, jepni një numër ditësh më të madh se %s.",
"MenuPrivacySettings": "Privatësi",
"NextDelete": "Fshirja pasuese është planifikuar më",
- "Teaser": "Në këtë faqe, mund ta përshtatni Piwik-un që privatësi në të të jetë në pajtim me legjislacionin në fuqi, duke: %s anonimizuar IP-të e vizitorëve%s, %s hequr automatikisht nga baza e të dhënave regjistrime të vjetër vizitorësh%s, dhe %s duke ofruar një mekanizëm Opt-out për site-in tuaj web%s.",
+ "Teaser": "Në këtë faqe, mund ta përshtatni Piwik-un që privatësi në të të jetë në pajtim me legjislacionin në fuqi, duke: %1$s anonimizuar IP-të e vizitorëve%2$s, %3$s hequr automatikisht nga baza e të dhënave regjistrime të vjetër vizitorësh%4$s, dhe %5$s duke ofruar një mekanizëm Opt-out për site-in tuaj web%6$s.",
"TeaserHeadline": "Rregullime Privatësie",
"UseAnonymizeIp": "Anonimizoni adresat IP të Vizitorëve",
"UseDeleteLog": "Fshiji rregullisht te baza e të dhënave regjistrimet e vjetra të përdoruesve"
diff --git a/plugins/PrivacyManager/lang/sr.json b/plugins/PrivacyManager/lang/sr.json
index cd29363ee9..ecaf616498 100644
--- a/plugins/PrivacyManager/lang/sr.json
+++ b/plugins/PrivacyManager/lang/sr.json
@@ -2,9 +2,9 @@
"PrivacyManager": {
"AnonymizeIpDescription": "Kliknite na \"Da\" ako želite da Piwik ne beleži pune IP adrese",
"AnonymizeIpInlineHelp": "Maskiranje poslednjeg bajta IP adresa posetioca kako bi sve bilo u skladu sa vašim lokalnim zakonima i preporukama o zaštiti privatnosti.",
- "AnonymizeIpExtendedHelp": "Kada korisnik poseti vaš sajt, Piwik neće koristiti punu IP adresu (poput %s) već će je anonimizirati (u %s). Anonimizacija IP adresa je jedan od zahteva koje su postavili zakoni o zaštit privatnosti u zemljama poput Nemačke.",
+ "AnonymizeIpExtendedHelp": "Kada korisnik poseti vaš sajt, Piwik neće koristiti punu IP adresu (poput %1$s) već će je anonimizirati (u %2$s). Anonimizacija IP adresa je jedan od zahteva koje su postavili zakoni o zaštit privatnosti u zemljama poput Nemačke.",
"AnonymizeIpMaskLengtDescription": "Izaberite koliko bajtova IP adrese treba da bude maskirano",
- "AnonymizeIpMaskLength": "%s bajt(ova) - npr. %s",
+ "AnonymizeIpMaskLength": "%1$s bajt(ova) - npr. %2$s",
"CannotLockSoDeleteLogActions": "Tabela log_action ne može biti očišćena. Potrebno je da MYSQL korisnik '%s' ima privilegiju LOCK TABLES",
"ClickHereSettings": "Kliknite ovde kako biste pristupili %s podešavanjima.",
"CurrentDBSize": "Trenutna veličina baze",
@@ -22,8 +22,8 @@
"DeleteMaxRows": "Maksimalan broj redova za brisanje odjednom:",
"DeleteMaxRowsNoLimit": "bez ograničenja",
"DeleteReportsConfirm": "Na putu ste da uključite brisanje izveštaja. Ukoliko obrišete stare izveštaje, moraćete ponovo da ih kreirate ako budete želeli opet da ih vidite. Da li ste sigurni da želite to da uradite?",
- "DeleteReportsDetailedInfo": "Podaci iz numeričkih (%s) i binarnih (%s) arhiva će biti obrisani.",
- "DeleteReportsInfo": "Ukoliko je uključeno, stari izveštaji će biti obrisani. %sPreporučujemo vam da ovo uključite samo ako je prostor u vašoj bazi ograničen.%s",
+ "DeleteReportsDetailedInfo": "Podaci iz numeričkih (%1$s) i binarnih (%2$s) arhiva će biti obrisani.",
+ "DeleteReportsInfo": "Ukoliko je uključeno, stari izveštaji će biti obrisani. %1$sPreporučujemo vam da ovo uključite samo ako je prostor u vašoj bazi ograničen.%2$s",
"DeleteReportsInfo2": "Ukoliko niste uključili \"%s\", stari izveštaji će biti ponovo napravljeni automatski kada budu zahtevani.",
"DeleteReportsInfo3": "Ukoliko ste uključili \"%s\", podaci će biti zauvek izgubljeni.",
"DeleteReportsOlderThan": "Briši izveštaje starije od",
@@ -56,8 +56,8 @@
"RecommendedForPrivacy": "Preporučljivo zbog privatnosti",
"ReportsDataSavedEstimate": "Veličina baze",
"SaveSettingsBeforePurge": "Izmenili ste pravila oko brisanja podataka. Molimo vas da ih sačuvate pre nego što počnete sa čišćenjem podataka.",
- "SeeAlsoOurOfficialGuidePrivacy": "Pogledajte i naš zvanični vodič: %sPrivatnost u analitikama%s",
- "Teaser": "Na ovoj stranici možete izvršiti Piwik podešavanja u pogledu privatnosti tako što ćete: %s anonimizirati IP adrese posetilaca%s, %s automatski ukloniti stare zapise iz baze%s, obezbediti mehanizam da %s podaci ne budu zabeleženi ako posetioc to ne želi%s",
+ "SeeAlsoOurOfficialGuidePrivacy": "Pogledajte i naš zvanični vodič: %1$sPrivatnost u analitikama%2$s",
+ "Teaser": "Na ovoj stranici možete izvršiti Piwik podešavanja u pogledu privatnosti tako što ćete: %1$s anonimizirati IP adrese posetilaca%2$s, %3$s automatski ukloniti stare zapise iz baze%4$s, obezbediti mehanizam da %5$s podaci ne budu zabeleženi ako posetioc to ne želi%6$s",
"TeaserHeadline": "Podešavanja privatnosti",
"UseAnonymizedIpForVisitEnrichment": "Takođe koristi anonimne IP adrese kada obogaćuješ podete.",
"UseAnonymizedIpForVisitEnrichmentNote": "Dodaci poput Geolokacije putem IP adrese i provajdera unapređuju podatke o posetiocima. Podrazumevano, ovi dodaci anonimiziraju IP adrese. Ukoliko izaberete 'Ne', onda će u upotrebi biti pune IP adrese što će rezultovati slabijom privatnošću ali i većom tačnošću podataka.",
diff --git a/plugins/PrivacyManager/lang/sv.json b/plugins/PrivacyManager/lang/sv.json
index a94f171bef..5a8e1599f2 100644
--- a/plugins/PrivacyManager/lang/sv.json
+++ b/plugins/PrivacyManager/lang/sv.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "Välj \"Ja\" om du vill att Piwik inte ska spåra fullständiga IP-adresser.",
"AnonymizeIpInlineHelp": "Anonymisera den sista byten av besökarnas IP-adress för att följa lokala lagar om personlig integritet\/riktlinjer.",
"AnonymizeIpMaskLengtDescription": "Välj hur många bytes av besökares IP-adresser som ska döljas.",
- "AnonymizeIpMaskLength": "%s byte(s) - t.ex. %s",
+ "AnonymizeIpMaskLength": "%1$s byte(s) - t.ex. %2$s",
"CannotLockSoDeleteLogActions": "Tabellen log_action kommer inte att rensas: vänligen lägg till behörigheten LOCK TABLES till MYSQL-användaren '%s'",
"ClickHereSettings": "Klicka här för att komma åt inställningar för %s.",
"CurrentDBSize": "Aktuell databasstorlek",
@@ -12,6 +12,8 @@
"DeleteDataDescription": "Du kan konfigurera Piwik att regelbundet ta bort gamla besöksloggar och\/eller bearbetade rapporter för att behålla din databasstorlek minimal. Om så önskas, kommer inte förbearbetade rapporter tas bort, endast besöks, sidvisnings och konverterings loggdata kommer att raderas. Alternativt kan de förbearbetade rapporterna tas bort och loggdata kan behållas.",
"DeleteDataDescription2": "Om så önskas, så kommer förbehandlade rapporter att sparas, endast logdata för besök, sidvisningar och omvandligar att raderas. Eller, så kan förbehandlade rapporter raderas och logdata sparas.",
"DeleteDataInterval": "Ta bort gamla data varje",
+ "DeleteOldVisitorLogs": "Radera gamla besöksloggar",
+ "DeleteOldArchivedReports": "Ta bort gamla arkiverade rapporter",
"DeleteLogDescription2": "När du aktiverar automatisk radering av loggar, så måste du se till att alla tidigare dagliga rapporter har behandlats så att inga data går förlorade.",
"DeleteLogInfo": "Loggar från följande tabeller kommer att tas bort: %s",
"DeleteLogsConfirm": "Du är på väg att aktivera radering av loggdata. Om gamla loggdata tas bort, och rapporter inte redan har skapats, kommer du inte kunna se historiska förflutna analysdata. Är du säker på att du vill göra detta?",
@@ -19,11 +21,12 @@
"DeleteMaxRows": "Maximalt antal rader som ska tas bort under en körning:",
"DeleteMaxRowsNoLimit": "ingen begränsning",
"DeleteReportsConfirm": "Du är på väg att aktivera radering av loggdata. Om gamla rapporter tas bort, måste du på nytt behandla dem för att visa dem. Är du säker på att du vill göra detta?",
- "DeleteReportsDetailedInfo": "Data från databasens numeriska arkiveringstabeller (%s) och BLOB arkiveringstabeller (%s) kommer att tas bort.",
- "DeleteReportsInfo": "Om aktiverat, så kommer gamla rapporter tas bort. %sVi rekommenderar att du aktiverar detta först när databasutrymmet är begränsat.%s",
+ "DeleteReportsDetailedInfo": "Data från databasens numeriska arkiveringstabeller (%1$s) och BLOB arkiveringstabeller (%2$s) kommer att tas bort.",
+ "DeleteReportsInfo": "Om aktiverat, så kommer gamla rapporter tas bort. %1$sVi rekommenderar att du aktiverar detta först när databasutrymmet är begränsat.%2$s",
"DeleteReportsInfo2": "Om du inte har aktiverat \"%s\", så kommer gamla rapporter att återskapas automatiskt när de efterfrågas.",
"DeleteReportsInfo3": "Om du har aktiverat \"%s\", så kommer uppgifterna att permanent förloras.",
"DeleteReportsOlderThan": "Ta bort rapporter äldre än",
+ "DeleteSchedulingSettings": "Schemalägg radering av gammalt data",
"DeleteDataSettings": "Radera gamla besöksloggar och rapporter från databasen",
"DoNotTrack_Description": "\"Do Not Track\" är en teknologi och policy som tillåter användare att avstå från spårning av webbplatser dom besöker, det inkluderar analystjänster, reklamnätverk och sociala plattformer.",
"DoNotTrack_Disable": "Inaktivera Do Not Track",
@@ -38,6 +41,7 @@
"GeolocationAnonymizeIpNote": "Notera: Geolocation kommer att ha ungefär samma resultat med 1 byte anonymiserad. Med 2 byte eller mer blir Geolocation vara felaktig.",
"GetPurgeEstimate": "Hämta uppskattning för rensning",
"KeepBasicMetrics": "Behåll grundläggande variabler (besök, sidvisningar, studsfrekvens, målomvandlingar, e-handelskonverteringar, etc.)",
+ "KeepDataFor": "Behåll all data för",
"KeepReportSegments": "För behållen data, spara även segmenterade rapporter",
"LastDelete": "Senast borttaget",
"LeastDaysInput": "Vänligen ange ett antal dagar som är större än %s.",
@@ -49,8 +53,8 @@
"PurgingData": "Rensar data...",
"ReportsDataSavedEstimate": "Databasstorlek",
"SaveSettingsBeforePurge": "Du har ändrat inställningarna för radering av loggdata. Spara dem innan du startar en utrensning.",
- "SeeAlsoOurOfficialGuidePrivacy": "Se också vår allmänna guide: %sWeb Analytics Privacy%s",
- "Teaser": "På denna sidan kan du anpassa Piwik så att den personliga integriteten uppfyller existerande lagstiftning, genom att: %s anonymisera besökarens IP%s, %s automatiskt ta bort gamla besöksloggar från databasen %s, och %s erbjuda exkludering av spårning för din webbplats%s.",
+ "SeeAlsoOurOfficialGuidePrivacy": "Se också vår allmänna guide: %1$sWeb Analytics Privacy%2$s",
+ "Teaser": "På denna sidan kan du anpassa Piwik så att den personliga integriteten uppfyller existerande lagstiftning, genom att: %1$s anonymisera besökarens IP%2$s, %3$s automatiskt ta bort gamla besöksloggar från databasen %4$s, och %5$s erbjuda exkludering av spårning för din webbplats%6$s.",
"TeaserHeadline": "Integritetinställningar",
"UseAnonymizedIpForVisitEnrichment": "Använd också de anonyma IP-adresserna för att berika besök.",
"UseAnonymizedIpForVisitEnrichmentNote": "Plugin som Geo Location via IP adress och leverantör förbättrar dina användares metadat. För att standardisera dessa plugins använder du en anonyma IP adresser. Om du väljer \"Nej\", kommer den icke-anonyma fullständiga IP adressen att användas istället. Det kommer göra att du är mindre privat, men du kommer få en mer exakt data",
diff --git a/plugins/PrivacyManager/lang/th.json b/plugins/PrivacyManager/lang/th.json
index e24a46ef83..a6f5d06cae 100644
--- a/plugins/PrivacyManager/lang/th.json
+++ b/plugins/PrivacyManager/lang/th.json
@@ -14,7 +14,7 @@
"PurgeNow": "ล้างข้อมูลในฐานข้อมูลตอนนี้เลย",
"PurgingData": "กำลังล้างข้อมูล...",
"ReportsDataSavedEstimate": "ขนาดฐานข้อมูล",
- "Teaser": "ในหน้านี้ คุณสามารถปรับแต่ง Piwik เพื่อให้สอดคล้องกับความเป็นส่วนตัวตามกฎหมายที่มีอยู่โดย: %s ผู้เข้าชมแบบไม่ระบุ IP %s, %s จะลบไฟบ์บันทึกโดยอัตโนมัติของการเข้าเยี่ยมชมเก่าจากฐานข้อมูล %s และ %s การให้กลไกการออกแบบสำหรับเว็บไซต์ของคุณ %s",
+ "Teaser": "ในหน้านี้ คุณสามารถปรับแต่ง Piwik เพื่อให้สอดคล้องกับความเป็นส่วนตัวตามกฎหมายที่มีอยู่โดย: %1$s ผู้เข้าชมแบบไม่ระบุ IP %2$s, %3$s จะลบไฟบ์บันทึกโดยอัตโนมัติของการเข้าเยี่ยมชมเก่าจากฐานข้อมูล %4$s และ %5$s การให้กลไกการออกแบบสำหรับเว็บไซต์ของคุณ %6$s",
"TeaserHeadline": "การตั้งค่าความเป็นส่วนตัว",
"UseAnonymizeIp": "ผู้เข้าชมแบบไม่ระบุที่อยู่ IP"
}
diff --git a/plugins/PrivacyManager/lang/tl.json b/plugins/PrivacyManager/lang/tl.json
index d20109346f..96973bb979 100644
--- a/plugins/PrivacyManager/lang/tl.json
+++ b/plugins/PrivacyManager/lang/tl.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "Piliin ang \" Oo \" kung gusto mong hindi subaybayan ng Piwik ang ganap na kwalipikadong IP-address.",
"AnonymizeIpInlineHelp": "E-Anonymize ang huling byte ng IP address ng iyong mga bisita upang sumunod sa iyong mga alituntuning local at privacy.",
"AnonymizeIpMaskLengtDescription": "Piliin kung gaano karaming byte ng IP ng bisita ang dapat na ikubli.",
- "AnonymizeIpMaskLength": "%s (na) byte - hal %s",
+ "AnonymizeIpMaskLength": "%1$s (na) byte - hal %2$s",
"CannotLockSoDeleteLogActions": "Ang log_action table ay hindi maaring dayain: mangyaring magbigay ng pribilehiyo upang maisagawa ang LOCK TABLES sa '%s' MYSQL user.",
"ClickHereSettings": "Mag-click dito upang i-access ang mga setting sa %s.",
"CurrentDBSize": "Kasalukuyang laki ng database",
@@ -19,8 +19,8 @@
"DeleteMaxRows": "Pinakamataas na bilang ng mga hilera na tatanggalin sa isang pagtakbo:",
"DeleteMaxRowsNoLimit": "walang limitasyon",
"DeleteReportsConfirm": "Iyong papaganahin ang pag tanggal sa datus ng ulat. Kung ang matatagal ng ulat ay natanggal Kailangan mong ulitin ang mga ito upang makita. Gustomo mo bang gawin ito?",
- "DeleteReportsDetailedInfo": "Ang data mula sa database numeric archive tables (%s) at blob archive tables (%s) ay tinanggal.",
- "DeleteReportsInfo": "Kung gumagana ang mga lumang ulat ay mabubura. %s Aming inirerekomenda na itoy paganahin lamang kung ang iyong database ay may limitadong espasyo %s.",
+ "DeleteReportsDetailedInfo": "Ang data mula sa database numeric archive tables (%1$s) at blob archive tables (%2$s) ay tinanggal.",
+ "DeleteReportsInfo": "Kung gumagana ang mga lumang ulat ay mabubura. %1$s Aming inirerekomenda na itoy paganahin lamang kung ang iyong database ay may limitadong espasyo %2$s.",
"DeleteReportsInfo2": "Kung hindi mo pinagana ang \"%s\" mga lumang ulat ay awtomatikong magagawa muli kapag iyong ni-request.",
"DeleteReportsInfo3": "Kapag in-enable mo ang \"%s\" and data ay permanenteng mawawala.",
"DeleteReportsOlderThan": "Tanggalin ang mga lumang ulat na hihigit sa",
@@ -48,7 +48,8 @@
"PurgingData": "Purging data...",
"ReportsDataSavedEstimate": "Laki ng database",
"SaveSettingsBeforePurge": "Iyong binago ang mga setting ng pagtanggal ng data. Mangyaring i-save ang mga ito bago simulan ang isang pag purge.",
- "SeeAlsoOurOfficialGuidePrivacy": "Tingnan din ang aming opisyal na gabay: %s Privacy Web Analytics %s",
+ "SeeAlsoOurOfficialGuidePrivacy": "Tingnan din ang aming opisyal na gabay: %1$s Privacy Web Analytics %2$s",
+ "Teaser": "Sa pahinang ito maaari mong i-customize ang Piwik upang gawin itong privacy na sumusunod na mga legislations sa: %1$s anonymizing the visitor IP%2$s %3$s awtomatikong mga mag-alis ng lumang mga log ng bisita mula sa database %4$s at %5$s magbibigay ng isang mechanism sa Pag-opt-out para sa iyong website %6$s.",
"TeaserHeadline": "Mga setting ng privacy",
"UseAnonymizedIpForVisitEnrichment": "Gamitin rin ang hindi kilalang IP address kapag bumibisita.",
"UseAnonymizedIpForVisitEnrichmentNote": "Plugis tulad ng Geo Location sa pamamagitang ng IP at Provider ay pinagbuti ang metadata ng mga bumibisita. Sa una ang plugins na ito ay gumagamit ng anonymized IP addresses. Kapag iyong pinili ang 'No' pagkatapos ay ang non-anonymized na IP address ay syang magagamit na mag-reresulta ng may mababang privacy ngunit mas mahusay at tiyak na data.",
diff --git a/plugins/PrivacyManager/lang/vi.json b/plugins/PrivacyManager/lang/vi.json
index 8f92957a93..51f53b67b0 100644
--- a/plugins/PrivacyManager/lang/vi.json
+++ b/plugins/PrivacyManager/lang/vi.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "Chọn \"Đồng ý\" nếu bạn muốn Piwik không theo dõi toàn bộ địa chỉ IP.",
"AnonymizeIpInlineHelp": "Làm ẩn danh những byte(s) cuối trên địa chỉ IP của khách để tuân thủ quy định\/luật nội bộ về quyền riêng tư.",
"AnonymizeIpMaskLengtDescription": "Chọn bao nhiêu byte IPs của khách truy cập nên giấu.",
- "AnonymizeIpMaskLength": "%s byte(s) - ví dụ %s.",
+ "AnonymizeIpMaskLength": "%1$s byte(s) - ví dụ %2$s.",
"CannotLockSoDeleteLogActions": "Bảng log_action sẽ không được thanh lọc: xin cấp đặc quyền LOCK TABLES cho '%s' người sử dụng MySQL.",
"ClickHereSettings": "Click chuột tại đây để truy cập các cài đặt %s.",
"CurrentDBSize": "Kích thước cơ sở dữ liệu hiện tại",
@@ -19,8 +19,8 @@
"DeleteMaxRows": "Số hàng lớn nhất phải xóa trong mỗi lần chạy:",
"DeleteMaxRowsNoLimit": "không giới hạn",
"DeleteReportsConfirm": "Bạn muốn cho phép xóa dữ liệu báo cáo. Nếu báo cáo cũ được loại bỏ, bạn sẽ phải xử lý lại chúng theo thứ tự xem. Bạn có chắc bạn muốn làm điều này?",
- "DeleteReportsDetailedInfo": "Dữ liệu từ các bảng lưu trữ cơ sở dữ liệu số(%s) và các bảng lưu trữ blob(%s) sẽ được xóa.",
- "DeleteReportsInfo": "Nếu được kích hoạt, các báo cáo cũ sẽ được xóa bỏ. %s Chúng tôi đề nghị chỉ cho phép khi không gian cơ sở dữ liệu của bạn đã được hạn chế. %s",
+ "DeleteReportsDetailedInfo": "Dữ liệu từ các bảng lưu trữ cơ sở dữ liệu số(%1$s) và các bảng lưu trữ blob(%2$s) sẽ được xóa.",
+ "DeleteReportsInfo": "Nếu được kích hoạt, các báo cáo cũ sẽ được xóa bỏ. %1$s Chúng tôi đề nghị chỉ cho phép khi không gian cơ sở dữ liệu của bạn đã được hạn chế. %2$s",
"DeleteReportsInfo2": "Nếu bạn không kích hoạt \"%s\", báo cáo cũ sẽ được tái tạo tự động khi có yêu cầu.",
"DeleteReportsInfo3": "Nếu bạn đã kích hoạt \"%s\", dữ liệu sẽ bị mất vĩnh viễn.",
"DeleteReportsOlderThan": "Xóa báo cáo cũ hơn",
diff --git a/plugins/PrivacyManager/lang/zh-cn.json b/plugins/PrivacyManager/lang/zh-cn.json
index d252bfe7d7..6b553c7a0c 100644
--- a/plugins/PrivacyManager/lang/zh-cn.json
+++ b/plugins/PrivacyManager/lang/zh-cn.json
@@ -3,7 +3,7 @@
"AnonymizeIpDescription": "如果希望 Piwik 不要统计完整的 IP 地址,请选择 \"是\"",
"AnonymizeIpInlineHelp": "隐藏访客IP位址最后一个字符以符合您当地的隐私条例\/政策。",
"AnonymizeIpMaskLengtDescription": "隐藏的访客IP的字节数",
- "AnonymizeIpMaskLength": "%s 字节 - 例如 %s",
+ "AnonymizeIpMaskLength": "%1$s 字节 - 例如 %2$s",
"CannotLockSoDeleteLogActions": "log_action 表将不会被清空: 请设置 LOCK TABLES 的权限给 '%s' MYSQL 用户。",
"ClickHereSettings": "点这里查看 %s 设置。",
"CurrentDBSize": "当前数据库大小",
@@ -19,8 +19,8 @@
"DeleteMaxRows": "每次运行最多删除的行数:",
"DeleteMaxRowsNoLimit": "没有限制",
"DeleteReportsConfirm": "您正要启用报表数据删除。如果删除了旧的报表,下次查看前需要重新生成,您确认要这么做吗?",
- "DeleteReportsDetailedInfo": "数据库 numeric 存档表 (%s) 和 blob 存档表 (%s) 的数据将被删除。",
- "DeleteReportsInfo": "启用后,旧的报表将被删除。%s建议仅在数据库空间有限的情况下启用。%s",
+ "DeleteReportsDetailedInfo": "数据库 numeric 存档表 (%1$s) 和 blob 存档表 (%2$s) 的数据将被删除。",
+ "DeleteReportsInfo": "启用后,旧的报表将被删除。%1$s建议仅在数据库空间有限的情况下启用。%2$s",
"DeleteReportsInfo2": "如果还没有启用 \"%s\", 访问旧的报表时将会自动重建。",
"DeleteReportsInfo3": "如果已启用 \"%s\", 数据将被彻底删除。",
"DeleteReportsOlderThan": "删除报表超过",
@@ -49,7 +49,7 @@
"PurgingData": "清理数据...",
"ReportsDataSavedEstimate": "数据库大小",
"SaveSettingsBeforePurge": "您修改了数据删除选项,请保存后再开始删除。",
- "Teaser": "在本页面可以设置 Piwik 符合现有的隐私保护法规: %s 隐藏访客的 IP 地址%s, %s 自动从数据库删除旧的访问日志%s, 并且 %s 在网站提供主动退出机制%s。",
+ "Teaser": "在本页面可以设置 Piwik 符合现有的隐私保护法规: %1$s 隐藏访客的 IP 地址%2$s, %3$s 自动从数据库删除旧的访问日志%4$s, 并且 %5$s 在网站提供主动退出机制%6$s。",
"TeaserHeadline": "隐私设置",
"UseAnonymizedIpForVisitEnrichment": "当使访问更加丰富时也使用匿名IP地址。",
"UseAnonymizedIpForVisitEnrichmentNote": "例如通过IP和提供商的Geo定位等插件提供了关于访问者的更多数据。在默认情况下,这些插件都使用匿名IP地址。如果你选择“NO”,那么将使用非匿名的整个IP地址,从而可以得到更准确的数据,但是透露了更多的私有信息。",
diff --git a/plugins/Provider/lang/sv.json b/plugins/Provider/lang/sv.json
index 007c9bbf07..3f908b1fb0 100644
--- a/plugins/Provider/lang/sv.json
+++ b/plugins/Provider/lang/sv.json
@@ -1,6 +1,7 @@
{
"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"
}
diff --git a/plugins/QueuedTracking b/plugins/QueuedTracking
-Subproject 8aa8c0735c481a7355d69f99374ea7726d2f73c
+Subproject 5277167591c602d88ae8f4b065a314e670e0814
diff --git a/plugins/Referrers/API.php b/plugins/Referrers/API.php
index befd651fbe..40286cd86b 100644
--- a/plugins/Referrers/API.php
+++ b/plugins/Referrers/API.php
@@ -106,6 +106,15 @@ class API extends \Piwik\Plugin\API
// set subtable IDs for each row to the label (which holds the int referrer type)
$dataTable->filter('Piwik\Plugins\Referrers\DataTable\Filter\SetGetReferrerTypeSubtables', array($idSite, $period, $date, $segment, $expanded));
+ $dataTable->filter('AddSegmentByLabelMapping', array(
+ 'referrerType',
+ array(
+ Common::REFERRER_TYPE_DIRECT_ENTRY => 'direct',
+ Common::REFERRER_TYPE_CAMPAIGN => 'campaign',
+ Common::REFERRER_TYPE_SEARCH_ENGINE => 'search',
+ Common::REFERRER_TYPE_WEBSITE => 'website',
+ )
+ ));
// set referrer type column to readable value
$dataTable->queueFilter('ColumnCallbackReplace', array('label', __NAMESPACE__ . '\getReferrerTypeLabel'));
@@ -218,9 +227,12 @@ class API extends \Piwik\Plugin\API
public function getSearchEnginesFromKeywordId($idSite, $period, $date, $idSubtable, $segment = false)
{
$dataTable = $this->getDataTable(Archiver::KEYWORDS_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = false, $idSubtable);
+ $keywords = $this->getKeywords($idSite, $period, $date, $segment);
+ $keyword = $keywords->getRowFromIdSubDataTable($idSubtable)->getColumn('label');
- $keywords = $this->getKeywords($idSite, $period, $date, $segment);
$dataTable->filter('Piwik\Plugins\Referrers\DataTable\Filter\SearchEnginesFromKeywordId', array($keywords, $idSubtable));
+ $dataTable->filter('AddSegmentByLabel', array('referrerName'));
+ $dataTable->queueFilter('PrependSegment', array('referrerKeyword=='.$keyword.';referrerType==search;'));
return $dataTable;
}
@@ -250,8 +262,11 @@ class API extends \Piwik\Plugin\API
// get the search engine and create the URL to the search result page
$searchEngines = $this->getSearchEngines($idSite, $period, $date, $segment);
$searchEngines->applyQueuedFilters();
+ $searchEngine = $searchEngines->getRowFromIdSubDataTable($idSubtable)->getColumn('label');
$dataTable->filter('Piwik\Plugins\Referrers\DataTable\Filter\KeywordsFromSearchEngineId', array($searchEngines, $idSubtable));
+ $dataTable->filter('AddSegmentByLabel', array('referrerKeyword'));
+ $dataTable->queueFilter('PrependSegment', array('referrerName=='.$searchEngine.';referrerType==search;'));
return $dataTable;
}
@@ -268,7 +283,13 @@ class API extends \Piwik\Plugin\API
public function getKeywordsFromCampaignId($idSite, $period, $date, $idSubtable, $segment = false)
{
+ $campaigns = $this->getCampaigns($idSite, $period, $date, $segment);
+ $campaigns->applyQueuedFilters();
+ $campaign = $campaigns->getRowFromIdSubDataTable($idSubtable)->getColumn('label');
+
$dataTable = $this->getDataTable(Archiver::CAMPAIGNS_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = false, $idSubtable);
+ $dataTable->filter('AddSegmentByLabel', array('referrerKeyword'));
+ $dataTable->queueFilter('PrependSegment', array('referrerName=='.$campaign.';referrerType==campaign;'));
return $dataTable;
}
@@ -289,6 +310,7 @@ class API extends \Piwik\Plugin\API
{
$dataTable = $this->getDataTable(Archiver::WEBSITES_RECORD_NAME, $idSite, $period, $date, $segment, $expanded = false, $idSubtable);
$dataTable->filter('Piwik\Plugins\Referrers\DataTable\Filter\UrlsFromWebsiteId');
+ $dataTable->filter('AddSegmentByLabel', array('referrerUrl'));
return $dataTable;
}
@@ -369,6 +391,7 @@ class API extends \Piwik\Plugin\API
// merge the datatable's subtables which contain the individual URLs
$dataTable = $dataTable->mergeSubtables();
+ $dataTable->filter('AddSegmentByLabel', array('referrerUrl'));
$dataTable->filter('Piwik\Plugins\Referrers\DataTable\Filter\UrlsForSocial', array($expanded));
return $dataTable;
diff --git a/plugins/Referrers/lang/be.json b/plugins/Referrers/lang/be.json
index 8e16e706e6..d0fe396c85 100644
--- a/plugins/Referrers/lang/be.json
+++ b/plugins/Referrers/lang/be.json
@@ -1,8 +1,8 @@
{
"Referrers": {
"Campaigns": "Кампаніі",
- "CampaignsDocumentation": "Наведвальнікі, якія прыйшлі на ваш сайт у выніку кампаніі. %s Глядзі %s справаздачу для больш падрабязнай інфармацыі.",
- "CampaignsReportDocumentation": "Гэтая справаздача паказвае, якія кампаніі спаслалі наведвальнікаў на ваш сайт. %s Для атрымання дадатковай інфармацыі аб кампаніі, чытайце %sДакументацыю па кампаніях на piwik.org%s",
+ "CampaignsDocumentation": "Наведвальнікі, якія прыйшлі на ваш сайт у выніку кампаніі. %1$s Глядзі %2$s справаздачу для больш падрабязнай інфармацыі.",
+ "CampaignsReportDocumentation": "Гэтая справаздача паказвае, якія кампаніі спаслалі наведвальнікаў на ваш сайт. %1$s Для атрымання дадатковай інфармацыі аб кампаніі, чытайце %2$sДакументацыю па кампаніях на piwik.org%3$s",
"ColumnCampaign": "Кампанія",
"ColumnSearchEngine": "Пошукавая сістэма",
"ColumnWebsite": "Вэб-сайт",
@@ -21,7 +21,7 @@
"ReferrerName": "Імя спасыльніка",
"Referrers": "Спасыльнікі",
"SearchEngines": "Пошукавыя сістэмы",
- "SearchEnginesDocumentation": "Наведвальнік спасланы на ваш вэб-сайт пошукавай сістэмай. %s Глядзі %s справаздачу для больш падрабязнай інфармацыі.",
+ "SearchEnginesDocumentation": "Наведвальнік спасланы на ваш вэб-сайт пошукавай сістэмай. %1$s Глядзі %2$s справаздачу для больш падрабязнай інфармацыі.",
"SearchEnginesReportDocumentation": "Гэтая справаздача паказвае, якія пошукавыя сістэмы спасылаюць карыстальнікаў на ваш вэб-сайт. %s Пры націску на радок табліцы, можна ўбачыць, якія карыстальнікі шукалі з дапамогай якой пошукавай сістэмы.",
"SubmenuSearchEngines": "Пошукавыя сістэмы і ключавые словы",
"SubmenuWebsites": "Вэб-сайты",
@@ -33,7 +33,7 @@
"TypeWebsites": "%s уваходаў з вэб-сайтаў",
"UsingNDistinctUrls": "(з выкарыстаннем %s розных URL-адрасоў)",
"Websites": "Вэб-сайты",
- "WebsitesDocumentation": "Наведвальнік перайшоў па спасылцы на іншы сайце, які прывёў да вашага сайту. %s Глядзі %s справаздачу для для больш падрабязнай інфармацыі.",
+ "WebsitesDocumentation": "Наведвальнік перайшоў па спасылцы на іншы сайце, які прывёў да вашага сайту. %1$s Глядзі %2$s справаздачу для для больш падрабязнай інфармацыі.",
"WebsitesReportDocumentation": "У гэтай табліцы вы можаце ўбачыць, якія сайты спасылалі наведвальнікаў на ваш сайт. %s Пры націску на радок табліцы, можна ўбачыць URL старонкак, якія ўтрымліваюць спасылкі на на ваш вэб-сайт.",
"WidgetExternalWebsites": "Спіс вонкавых вэбсайтаў"
}
diff --git a/plugins/Referrers/lang/bg.json b/plugins/Referrers/lang/bg.json
index 886aaa52a3..1f370a5627 100644
--- a/plugins/Referrers/lang/bg.json
+++ b/plugins/Referrers/lang/bg.json
@@ -1,8 +1,8 @@
{
"Referrers": {
"Campaigns": "Кампании",
- "CampaignsDocumentation": "Посетители, дошли до вашият уеб сайт, в резултат на камания. %s Погледнете %s отчета за повече детайли.",
- "CampaignsReportDocumentation": "Този отчет показва кои кампании са довели посетители до вашият уеб сайт. %s За повече информация относно проследяването на кампании, прочетете %sдокументацията за кампании на piwik.org%s",
+ "CampaignsDocumentation": "Посетители, дошли до вашият уеб сайт, в резултат на камания. %1$s Погледнете %2$s отчета за повече детайли.",
+ "CampaignsReportDocumentation": "Този отчет показва кои кампании са довели посетители до вашият уеб сайт. %1$s За повече информация относно проследяването на кампании, прочетете %2$sдокументацията за кампании на piwik.org%3$s",
"ColumnCampaign": "Кампании",
"ColumnSearchEngine": "Търсещи машини",
"ColumnSocial": "Социална мрежа",
@@ -24,7 +24,7 @@
"Referrers": "Референции",
"ReferrersOverview": "Преглед на препоръчителите",
"SearchEngines": "Търсачки",
- "SearchEnginesDocumentation": "Посетител, който е бил препратен към вашият уеб сайт от търсачка. %s Погледнете %s отчета за повече детайли.",
+ "SearchEnginesDocumentation": "Посетител, който е бил препратен към вашият уеб сайт от търсачка. %1$s Погледнете %2$s отчета за повече детайли.",
"SearchEnginesReportDocumentation": "Този отчет показва кои търсачки са изпратили потребители към вашият уеб сайт. %s Ако кликнете върху реда в таблицата, можете да видите какво потребителите са търсили в конкретната търсачка.",
"Socials": "Социални мрежи",
"SubmenuSearchEngines": "Търсачки & Ключови думи",
@@ -39,7 +39,7 @@
"ViewAllReferrers": "Преглед на всички препоръчители",
"ViewReferrersBy": "Преглед на всички препоръчители по %s",
"Websites": "Сайтове",
- "WebsitesDocumentation": "Посетителят е последвал връзка в друг сайт, която сочи към вашия сайт. %s Вижте %s отчета за повече детайли.",
+ "WebsitesDocumentation": "Посетителят е последвал връзка в друг сайт, която сочи към вашия сайт. %1$s Вижте %2$s отчета за повече детайли.",
"WebsitesReportDocumentation": "В тази таблица, можете да видите кои уеб сайтове са препратили посетители към вашият сайт. %s Ако кликнете върху реда в таблицата, можете да видите URL-ите, чрез които потребителите са стигнали до вашият сайт.",
"WidgetExternalWebsites": "Външни сайтове",
"WidgetGetAll": "Всички препоръчители",
diff --git a/plugins/Referrers/lang/ca.json b/plugins/Referrers/lang/ca.json
index 28b8aacfec..c078203331 100644
--- a/plugins/Referrers/lang/ca.json
+++ b/plugins/Referrers/lang/ca.json
@@ -1,8 +1,8 @@
{
"Referrers": {
"Campaigns": "Campanyes",
- "CampaignsDocumentation": "Visitants que visiten el vostre lloc web com a resultat d'una campanya. %s Visualitzeu l'inforrme %s per més detalls.",
- "CampaignsReportDocumentation": "Aquest informe mostra quines campanyes han portat visitants al vostre lloc web. %s Per mes informació sobre la gestió de campanyes, llegiu la %s documetnació de campanyes a piwik.org %s",
+ "CampaignsDocumentation": "Visitants que visiten el vostre lloc web com a resultat d'una campanya. %1$s Visualitzeu l'inforrme %2$s per més detalls.",
+ "CampaignsReportDocumentation": "Aquest informe mostra quines campanyes han portat visitants al vostre lloc web. %1$s Per mes informació sobre la gestió de campanyes, llegiu la %2$s documetnació de campanyes a piwik.org %3$s",
"ColumnCampaign": "Campanya",
"ColumnSearchEngine": "Cercador",
"ColumnSocial": "Xarxa social",
@@ -25,7 +25,7 @@
"ReferrersOverview": "Resum dels referents",
"ReferrerTypes": "Tipus de referent",
"SearchEngines": "Cercadors",
- "SearchEnginesDocumentation": "Un visitant ha vingut al vostre lloc web a través d'un navegador web. %s Visualitzeu l'informe %s per a més informació.",
+ "SearchEnginesDocumentation": "Un visitant ha vingut al vostre lloc web a través d'un navegador web. %1$s Visualitzeu l'informe %2$s per a més informació.",
"SearchEnginesReportDocumentation": "Aquest informa mostra quins motors de cerca han portat usuaris al vostre lloc web. %s Clicant en una fila de la tabla, pedeu veureu que han estat cercant els vostres usuris en aquest lloc web.",
"SocialFooterMessage": "Aquest és un subconjunt del l'informe de llocs web de l'esquerra. Filtra la informació d'altres llocs web així podeu comparar els referents de xarxes socials directament.",
"Socials": "Xarxes socials",
@@ -42,7 +42,7 @@
"ViewAllReferrers": "Veure tots els referents",
"ViewReferrersBy": "Veure els referents agrupats per %s",
"Websites": "Llocs",
- "WebsitesDocumentation": "Els visitant ha seguit un enllaç en un altre lloc web que ha portat al vostre lloc web. %s Visualitzeu l'informe %s per a més detalls.",
+ "WebsitesDocumentation": "Els visitant ha seguit un enllaç en un altre lloc web que ha portat al vostre lloc web. %1$s Visualitzeu l'informe %2$s per a més detalls.",
"WebsitesReportDocumentation": "En aquesta taula podeu observar quins llocs web han portat visitants al vostre lloc web. %s Cliqueu en una fila de la taule per veure les URL dels enllaços a les vostres pàgines.",
"WidgetExternalWebsites": "Llistat de llocs web externs",
"WidgetGetAll": "Tots els referents",
diff --git a/plugins/Referrers/lang/cs.json b/plugins/Referrers/lang/cs.json
index 052a054161..53188d8daf 100644
--- a/plugins/Referrers/lang/cs.json
+++ b/plugins/Referrers/lang/cs.json
@@ -1,14 +1,14 @@
{
"Referrers": {
- "AllReferrersReportDocumentation": "Toto hlášení zobrazuje všechny referrery v jednom uceleném hlášení, kde zobrazuje všechny webové stránky, klíčová slova a kampaně, které vaši návštěvníci při hledání vašich webových stránek použili.",
+ "AllReferrersReportDocumentation": "Toto hlášení zobrazuje všechny odkazující stránky v jednom uceleném hlášení s výpisem všech webů, klíčových slov a kampaní použitých návštěvníky k nalezení vašeho webu.",
"Campaigns": "Kampaně",
- "CampaignsDocumentation": "Návštěvníci, kteří přišli na vaše webové stránky jako výsledek kampaně. %s Pro více informací si prohlédněte hlášení %s.",
- "CampaignsReportDocumentation": "Toto hlášení zobrazuje, které kampaně přivedly návštěvníky na vaše stránky. %s Pro více informací o sledování kampaní si %spřečtěte dokumentaci kampaní na piwik.org%s.",
+ "CampaignsDocumentation": "Návštěvníci, kteří přišli na váš web jako výsledek kampaně. %1$s Pro více informací si prohlédněte hlášení %2$s.",
+ "CampaignsReportDocumentation": "Toto hlášení zobrazuje, které kampaně přivedly návštěvníky na vaše stránky. %1$s Pro více informací o sledování kampaní si %2$spřečtěte dokumentaci kampaní na piwik.org%3$s.",
"ColumnCampaign": "Kampaň",
"ColumnSearchEngine": "Vyhledávač",
"ColumnSocial": "Sociální síť",
- "ColumnWebsite": "Web stránky",
- "ColumnWebsitePage": "Web stránka",
+ "ColumnWebsite": "Web",
+ "ColumnWebsitePage": "Stránka webu",
"DirectEntry": "Přímý vstup",
"DirectEntryDocumentation": "Návštěvník zadal URL vašich stránek do webového prohlížeče a začal s procházením zde - adresu zadal přímo.",
"Distinct": "Jedineční refereři podle typu",
@@ -16,7 +16,7 @@
"DistinctKeywords": "jedinečná klíčová slova",
"DistinctSearchEngines": "jedinečné vyhledávače",
"DistinctWebsites": "jedinečné weby",
- "EvolutionDocumentation": "Toto je přehled referrerů, které vedly návštěvníky na vaše webové stránky.",
+ "EvolutionDocumentation": "Toto je přehled odkazujících stránek, které přivedly návštěvníky na váš web.",
"EvolutionDocumentationMoreInfo": "Pro více informací o rozdílných typech referrerů nahlédněte do dokumentace tabulky %s.",
"Keywords": "Klíčová slova",
"KeywordsReportDocumentation": "Toto hlášení zobrazuje klíčová slova, která uživatelé hledali, než byli odkázáni na vaše stránky. %s Kliknutím na řádek tabulky zobrazíte distribuci vyhledávačů, které byly použity k hledání tohoto klíčového slova.",
@@ -27,7 +27,7 @@
"ReferrersOverview": "Přehled referrerů",
"ReferrerTypes": "Typy referrerů",
"SearchEngines": "Vyhledávače",
- "SearchEnginesDocumentation": "Návštěvník byl na vaše stránky odkázán vyhledávačem. %s Pro více informací si prohlédněte hlášení %s.",
+ "SearchEnginesDocumentation": "Návštěvník byl na vaše stránky odkázán vyhledávačem. %1$s Pro více informací si prohlédněte hlášení %2$s.",
"SearchEnginesReportDocumentation": "Toto hlášení zobrazuje, které vyhledávače odkázali návštěvníky na vaše stránky. %s Kliknutím na řádek v tabulce zobrazíte, co uživatelé na daném vyhledávači hledali.",
"SocialFooterMessage": "Toto je podmnožina hlášení zobrazeného vlevo. Filtruje ostatní stránky, takže můžete přímo porovnat referrery ze sociálních sítí.",
"Socials": "Sociální sítě",
@@ -39,14 +39,14 @@
"TypeDirectEntries": "%s přímých vstupů",
"TypeReportDocumentation": "Tato tabulka obsahuje informace o distribuci typů referrerů.",
"TypeSearchEngines": "%s z vyhledavačů",
- "TypeWebsites": "%s z web sídel",
+ "TypeWebsites": "%s z webových stránek",
"UsingNDistinctUrls": "(používá %s jedinečných url)",
"ViewAllReferrers": "Zobrazit všechny referrery",
"ViewReferrersBy": "Zobrazit referrery podle %s",
"Websites": "Stránky",
- "WebsitesDocumentation": "Návštěvník následoval odkaz, který na vaše stránky vedl odjinud. %s Podívejte se na hlášení %s, pokud chcete vědět více.",
+ "WebsitesDocumentation": "Návštěvník následoval odkaz, který na vaše stránky vedl odjinud. %1$s Podívejte se na hlášení %2$s, pokud chcete vědět více.",
"WebsitesReportDocumentation": "V této tabulce můžete vidět stránky, které odkázaly návštěvníky na vaše stránky. %s Kliknutím na řádek v tabulce zobrazíte URL, na kterých se odkazy nalézají.",
- "WidgetExternalWebsites": "Seznam externích web sídel",
+ "WidgetExternalWebsites": "Odkazující weby",
"WidgetGetAll": "Všechny referrery",
"WidgetSocials": "Seznam sociálních sítí",
"WidgetTopKeywordsForPages": "Nejčastější klíčová slova pro URL stránky",
diff --git a/plugins/Referrers/lang/da.json b/plugins/Referrers/lang/da.json
index 3701ba1942..15b76d633d 100644
--- a/plugins/Referrers/lang/da.json
+++ b/plugins/Referrers/lang/da.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Rapporten viser alle henvisninger i én samlet rapport, over alle hjemmesider, Søg i nøgleord og kampagner som bruges af de besøgende til at finde hjemmesiden.",
"Campaigns": "Kampagner",
- "CampaignsDocumentation": "Besøgende kom til hjemmesiden som følge af en kampagne. %s Se %s rapport for yderligere oplysninger.",
- "CampaignsReportDocumentation": "Rapporten viser, hvilke kampagner der førte besøgende til hjemmesiden. %s Finde flere oplysninger om sporing af kampagner, læs %skampagne dokumentation på piwik.org%s",
+ "CampaignsDocumentation": "Besøgende kom til hjemmesiden som følge af en kampagne. %1$s Se %2$s rapport for yderligere oplysninger.",
+ "CampaignsReportDocumentation": "Rapporten viser, hvilke kampagner der førte besøgende til hjemmesiden. %1$s Finde flere oplysninger om sporing af kampagner, læs %2$skampagne dokumentation på piwik.org%3$s",
"ColumnCampaign": "Kampagne",
"ColumnSearchEngine": "Søgemaskine",
"ColumnSocial": "Socialt netværk",
@@ -27,7 +27,7 @@
"ReferrersOverview": "Henvisningsoversigt",
"ReferrerTypes": "Henvisende typer",
"SearchEngines": "Søgemaskiner",
- "SearchEnginesDocumentation": "Besøgende blev henvist til hjemmesiden fra en søgemaskine. %s Se rapporten %s for yderligere oplysninger.",
+ "SearchEnginesDocumentation": "Besøgende blev henvist til hjemmesiden fra en søgemaskine. %1$s Se rapporten %2$s for yderligere oplysninger.",
"SearchEnginesReportDocumentation": "Rapporten viser hvilke søgemaskiner, der henviser brugere til hjemmesiden. %s Klik på en række i tabellen for at se, hvad brugerne søgte efter ved brug af en bestemt søgemaskine.",
"SocialFooterMessage": "Dette er en delmængde af hjemmesiderapporterne til venstre. Den filtrerer andre hjemmesider, så du kan sammenligne dine sociale netværk henvisningssteder direkte.",
"Socials": "Sociale netværk",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "Vis alle henvisninger",
"ViewReferrersBy": "Vis henvisninger efter %s",
"Websites": "Hjemmesider",
- "WebsitesDocumentation": "Besøgende fulgte et link fra en anden hjemmesiden, der førte til hjemmesiden. %s Se %s rapport for yderligere oplysninger.",
+ "WebsitesDocumentation": "Besøgende fulgte et link fra en anden hjemmesiden, der førte til hjemmesiden. %1$s Se %2$s rapport for yderligere oplysninger.",
"WebsitesReportDocumentation": "Tabellen viser, hvilke hjemmesider, der henviser besøgende til hjemmesiden. %s Klik på en række i tabellen, for at se, hvilke URL'er links til hjemmesiden er på.",
"WidgetExternalWebsites": "Eksterne hjemmesider",
"WidgetGetAll": "Alle henvisninger",
diff --git a/plugins/Referrers/lang/de.json b/plugins/Referrers/lang/de.json
index ea22dcfc62..42b51f0711 100644
--- a/plugins/Referrers/lang/de.json
+++ b/plugins/Referrers/lang/de.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Dieser Bericht zeigt Ihnen all Ihre Verweise in einem einzigen Bericht. Es werden alle Websites, Suchbegriffe und Kampagnen gezeigt, die von Ihren Besuchern benutzt wurden um ihre Website zu finden.",
"Campaigns": "Kampagnen",
- "CampaignsDocumentation": "Besucher, die aufgrund einer Kampagne auf Ihre Website kamen. Weitere Details finden Sie %sim Bericht%s.",
- "CampaignsReportDocumentation": "Dieser Bericht enthält Informationen darüber, welche Kampagnen Besucher auf Ihre Website gebracht haben. %s Für mehr Informationen zum Tracken von Kampagnen, lesen Sie die %sKampagnen-Dokumentation auf piwik.org%s",
+ "CampaignsDocumentation": "Besucher, die aufgrund einer Kampagne auf Ihre Website kamen. Weitere Details finden Sie %1$sim Bericht%2$s.",
+ "CampaignsReportDocumentation": "Dieser Bericht enthält Informationen darüber, welche Kampagnen Besucher auf Ihre Website gebracht haben. %1$s Für mehr Informationen zum Tracken von Kampagnen, lesen Sie die %2$sKampagnen-Dokumentation auf piwik.org%3$s",
"ColumnCampaign": "Kampagne",
"ColumnSearchEngine": "Suchmaschine",
"ColumnSocial": "Soziales Netzwerk",
@@ -27,7 +27,7 @@
"ReferrersOverview": "Übersicht Verweise",
"ReferrerTypes": "Verweistypen",
"SearchEngines": "Suchmaschinen",
- "SearchEnginesDocumentation": "Ein Besucher kam durch eine Suchmaschine auf die Website. %sDer Bericht%s enthält weitere Details.",
+ "SearchEnginesDocumentation": "Ein Besucher kam durch eine Suchmaschine auf die Website. %1$sDer Bericht%2$s enthält weitere Details.",
"SearchEnginesReportDocumentation": "Dieser Bericht zeigt Ihnen, welche Suchmaschinen Besucher auf die Website geführt haben. %s Wenn Sie auf eine Zeile der Tabelle klicken, werden die Suchbegriffe angezeigt, nach denen die Besucher gesucht haben.",
"SocialFooterMessage": "Dies ist eine Teilansicht des Berichtes auf der linken Seite. Er filtert andere Websites heraus, so dass Sie die Verweise von Sozialen Netzwerken direkt vergleichen können.",
"Socials": "Soziale Netzwerke",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "Alle Verweise ansehen",
"ViewReferrersBy": "Verweise anhand %s ansehen",
"Websites": "Websites",
- "WebsitesDocumentation": "Der Besucher folgte einem Link auf einer anderen Website, um auf Ihre Seite zu gelangen. Weitere Details finden Sie %sim Bericht%s.",
+ "WebsitesDocumentation": "Der Besucher folgte einem Link auf einer anderen Website, um auf Ihre Seite zu gelangen. Weitere Details finden Sie %1$sim Bericht%2$s.",
"WebsitesReportDocumentation": "In dieser Tabelle sehen Sie, von welchen Websites aus Besucher auf Ihre Seite verwiesen wurden. %s Wenn Sie auf eine Zeile der Tabelle klicken, sehen Sie, auf welchen URLs sich die Links zu Ihrer Website befanden.",
"WidgetExternalWebsites": "Liste externer Websites",
"WidgetGetAll": "Alle Verweise",
diff --git a/plugins/Referrers/lang/el.json b/plugins/Referrers/lang/el.json
index 555b23dd2a..a8c91905ea 100644
--- a/plugins/Referrers/lang/el.json
+++ b/plugins/Referrers/lang/el.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Αυτή η έκθεση δείχνει όλες τις συστάσεις σε μια ενιαία αναφορά, απαριθμώντας όλες τις ιστοσελίδες, τις λέξεις-κλειδιά αναζήτησης και τις καμπάνιες που χρησιμοποιούνται από τους επισκέπτες σας για να βρουν την ιστοσελίδα σας.",
"Campaigns": "Καμπάνιες",
- "CampaignsDocumentation": "Επισκέπτες που ήρθαν στην ιστοσελίδα ως αποτέλεσμα εκστρατείας. %s Δείτε την αναφορά %s για περισσότερες πληροφορίες.",
- "CampaignsReportDocumentation": "Αυτή η αναφορά δείχνει ποιες εκστρατείες οδήγησαν επισκέπτες στην ιστοσελίδα. %s Για περισσότερες πληροφορίες για την καταγραφή εκστρατειών, διαβάστε την %sτεκμηρίωση εκστρατειών στο piwik.org%s",
+ "CampaignsDocumentation": "Επισκέπτες που ήρθαν στον ιστοτόπο σας ως αποτέλεσμα μιας καμπάνιας. %1$s Δείτε την αναφορά %2$s για περισσότερες λεπτομέρειες.",
+ "CampaignsReportDocumentation": "Η αναφορά δείχνει ποιες καμπάνιες οδήγησαν επισκέπτες στον ιστοτόπο σας. %1$s Για περισσότερες πληροφορίες σχετικά με την παρακολούθηση των καμπανιών, δείτε την %2$sτεκμηρίωση για τις καμπάνιες στο piwik.org%3$s",
"ColumnCampaign": "Εκστρατεία",
"ColumnSearchEngine": "Μηχανή Αναζήτησης",
"ColumnSocial": "Κοινωνικό δίκτυο",
@@ -27,7 +27,7 @@
"ReferrersOverview": "Επισκόπηση Παραπομπών",
"ReferrerTypes": "Τύποι Αναφορών",
"SearchEngines": "Μηχανές αναζήτησης",
- "SearchEnginesDocumentation": "Ένας επισκέπτης επισκέφτηκε την ιστοσελίδα μέσω μηχανής αναζήτησης. %s Δείτε την αναφορά %s για περισσότερες πληροφορίες.",
+ "SearchEnginesDocumentation": "Ένας επισκέπτης οδηγήθηκε στον ιστοτόπο σας από μηχανή αναζήτησης. %1$s Δείτε την αναφορά %2$s για περισσότερες λεπτομέρειες.",
"SearchEnginesReportDocumentation": "αυτή η αναφορά δείχνει ποιες μηχανές αναζήτησης ανάφεραν χρήστες στην ιστοσελίδα. %s Πατώντας σε μια γραμμή στον πίνακα, μπορείτε να δείτε τι αναζητούσαν οι χρήστες χρησιμοποιώντας μια συγκεκριμένη μηχανή αναζήτησης.",
"SocialFooterMessage": "Αυτό είναι ένα υποσύνολο από τις Ιστοσελίδες Παραπομπέων προς τα αριστερά. Φιλτράρει άλλους δικτυακούς τόπους, ώστε να μπορείτε να συγκρίνετε τους παραπομπείς κοινωνικής δικτύωσης σας άμεσα.",
"Socials": "Κοινωνικά Δίκτυα",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "Δείτε όλες τις Παραπομπές",
"ViewReferrersBy": "Δείτε τις Παραπομπές ανά %s",
"Websites": "Ιστοτόποι",
- "WebsitesDocumentation": "Ο επισκέπτης ακολούθησε έναν σύνδεσμο σε μια άλλη ιστοσελίδα που οδηγούσε στην ιστοσελίδα σας. %s Δείτε την αναφορά %s για περισσότερες πληροφορίες.",
+ "WebsitesDocumentation": "Ο επισκέπτης ακολούθησε ένα σύνδεσμο από άλλο ιστοτόπο που οδήγησε στον δικό σας. %1$s Δείτε την αναφορά %2$s για περισσότερες λεπτομέρειες.",
"WebsitesReportDocumentation": "Σε αυτόν τον πίνακα, μπορείτε να δείτε ποιες ιστοσελίδες ανέφεραν επισκέπτες στην ιστοσελίδα. %s Πατώντας σε σε μια γραμμή στον πίνακα, μπορείτε να δείτε ποιες διευθύνσεις είχαν συνδέσμους για την ιστοσελίδα.",
"WidgetExternalWebsites": "Λίστα εξωτερικών ιστοσελίδων",
"WidgetGetAll": "Όλες οι Παραπομπές",
diff --git a/plugins/Referrers/lang/en.json b/plugins/Referrers/lang/en.json
index 14f106b9d0..3c4885a52f 100644
--- a/plugins/Referrers/lang/en.json
+++ b/plugins/Referrers/lang/en.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "This report shows all your Referrers in one unified report, listing all Websites, Search keywords and Campaigns used by your visitors to find your website.",
"Campaigns": "Campaigns",
- "CampaignsDocumentation": "Visitors that came to your website as the result of a campaign. %s See the %s report for more details.",
- "CampaignsReportDocumentation": "This report shows which campaigns led visitors to your website. %s For more information about tracking campaigns, read the %scampaigns documentation on piwik.org%s",
+ "CampaignsDocumentation": "Visitors that came to your website as the result of a campaign. %1$s See the %2$s report for more details.",
+ "CampaignsReportDocumentation": "This report shows which campaigns led visitors to your website. %1$s For more information about tracking campaigns, read the %2$scampaigns documentation on piwik.org%3$s",
"ColumnCampaign": "Campaign",
"ColumnSearchEngine": "Search Engine",
"ColumnSocial": "Social network",
@@ -27,7 +27,7 @@
"ReferrersOverview": "Referrers Overview",
"ReferrerTypes": "Referrer Types",
"SearchEngines": "Search Engines",
- "SearchEnginesDocumentation": "A visitor was referred to your website by a search engine. %s See the %s report for more details.",
+ "SearchEnginesDocumentation": "A visitor was referred to your website by a search engine. %1$s See the %2$s report for more details.",
"SearchEnginesReportDocumentation": "This report shows which search engines referred users to your website. %s By clicking on a row in the table, you can see what users were searching for using a specific search engine.",
"SocialFooterMessage": "This is a subset of the Websites report to the left. It filters out other websites so you can compare your social network referrers directly.",
"Socials": "Social Networks",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "View all Referrers",
"ViewReferrersBy": "View Referrers by %s",
"Websites": "Websites",
- "WebsitesDocumentation": "The visitor followed a link on another website that led to your site. %s See the %s report for more details.",
+ "WebsitesDocumentation": "The visitor followed a link on another website that led to your site. %1$s See the %2$s report for more details.",
"WebsitesReportDocumentation": "In this table, you can see which websites referred visitors to your site. %s By clicking on a row in the table, you can see which URLs the links to your website were on.",
"WidgetExternalWebsites": "Referrer Websites",
"WidgetGetAll": "All Referrers",
diff --git a/plugins/Referrers/lang/es.json b/plugins/Referrers/lang/es.json
index 9d38b45cc8..2e9bcc6403 100644
--- a/plugins/Referrers/lang/es.json
+++ b/plugins/Referrers/lang/es.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Este informe muestra todas las Referencias en un solo informe enumerando todos los sitios de internet, las palabras claves y las campañas que utilizan sus visitantes para encontrar su sitio.",
"Campaigns": "Campañas",
- "CampaignsDocumentation": "Visitantes que visitan su sitio de internet como resultado de una campaña. %s Vea el %s informe para más detalles.",
- "CampaignsReportDocumentation": "Este informe muestra que campaña llevó visitantes a su sitio de internet. %s Para una mayor información acerca del rastreo de las campañas, lea la documentación %scampañas en piwik.org%s",
+ "CampaignsDocumentation": "Visitantes que visitan su sitio de internet como resultado de una campaña. %1$s Vea el %2$s informe para más detalles.",
+ "CampaignsReportDocumentation": "Este informe muestra que campaña llevó visitantes a su sitio de internet. %1$s Para una mayor información acerca del rastreo de las campañas, lea la documentación %2$scampañas en piwik.org%3$s",
"ColumnCampaign": "Campaña",
"ColumnSearchEngine": "Motor de búsqueda",
"ColumnSocial": "Red social",
@@ -27,7 +27,7 @@
"ReferrersOverview": "Compendio de referencias",
"ReferrerTypes": "Tipos de referencias",
"SearchEngines": "Motores de búsqueda",
- "SearchEnginesDocumentation": "Un visitante fue remitido a su sitio de internet por un motor de búsqueda. %s Vea el %s informe para mayores detalles.",
+ "SearchEnginesDocumentation": "Un visitante fue remitido a su sitio de internet por un motor de búsqueda. %1$s Vea el %2$s informe para mayores detalles.",
"SearchEnginesReportDocumentation": "Este reporte muestra qué motores de búsqueda enviaron usuarios a su sitio de internet. %s Haciendo clic en una fila en la tabla, puede ver lo que los usuarios estaban buscando en un motor de búsqueda específico.",
"SocialFooterMessage": "A la izquierda, este es un subconjunto de los informes de los sitios de internet. Filtra respecto de otros sitios de internet, así puede comparar sus referencias de las redes sociales directamente.",
"Socials": "Redes sociales",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "Ver todas los referencias",
"ViewReferrersBy": "Ver referencias por %s",
"Websites": "Sitios de internet",
- "WebsitesDocumentation": "El visitante siguió un enlace situado en otro sitio de internet que lo condujo a su sitio. %s Vea el %s informe para mayores detalles.",
+ "WebsitesDocumentation": "El visitante siguió un enlace situado en otro sitio de internet que lo condujo a su sitio. %1$s Vea el %2$s informe para mayores detalles.",
"WebsitesReportDocumentation": "En esta tabla, puede observar qué sitio de internet envió visitantes a su sitio. %s Cliqueando en una fila de la tabla, puede ver que dirección de internet enlaza a su sitio.",
"WidgetExternalWebsites": "Sitios de internet de las referencias",
"WidgetGetAll": "Todas las referencias",
diff --git a/plugins/Referrers/lang/fa.json b/plugins/Referrers/lang/fa.json
index 59017db103..8d697ea773 100644
--- a/plugins/Referrers/lang/fa.json
+++ b/plugins/Referrers/lang/fa.json
@@ -21,7 +21,7 @@
"Referrers": "ارجاع دهنده ها",
"ReferrersOverview": "نمایش معرف ها",
"SearchEngines": "موتور های جستجو",
- "SearchEnginesDocumentation": "یک بازدیدکننده توسط موتورجستجو به وبسایت شما ارجاع داده شده است.%s برای جزئیات بیشتر %sاین گزارش را ببینید.",
+ "SearchEnginesDocumentation": "یک بازدیدکننده توسط موتورجستجو به وبسایت شما ارجاع داده شده است.%1$s برای جزئیات بیشتر %2$sاین گزارش را ببینید.",
"Socials": "شبکه های اجتماعی",
"SubmenuSearchEngines": "موتورهای جستجو و کلمات کلیدی",
"SubmenuWebsites": "وب سایت ها",
diff --git a/plugins/Referrers/lang/fi.json b/plugins/Referrers/lang/fi.json
index 7e2ac0ed16..a4e985a12b 100644
--- a/plugins/Referrers/lang/fi.json
+++ b/plugins/Referrers/lang/fi.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Tämä raportti näyttää kaikki viittaukset yhdessä raportissa, listaten kaikki verkkosivut, hakusanat ja kampanjat, joita käyttäjäsi käyttivät löytääkseen verkkosivusi.",
"Campaigns": "Kampanjat",
- "CampaignsDocumentation": "Vierailijat, jotka tulivat sivullesi kampanjan mukana. %s Katso %s raportista lisätietoja.",
- "CampaignsReportDocumentation": "Tässä raportissa on tietoa kampanjoista, joilla käyttäjiä tuli sivuillesi. %s Lisätietoa kampanjoiden seuraamisesta löytyy %senglanninkielisestä dokumentista piwik.orgissa%s",
+ "CampaignsDocumentation": "Vierailijat, jotka tulivat sivullesi kampanjan mukana. %1$s Katso %2$s raportista lisätietoja.",
+ "CampaignsReportDocumentation": "Tässä raportissa on tietoa kampanjoista, joilla käyttäjiä tuli sivuillesi. %1$s Lisätietoa kampanjoiden seuraamisesta löytyy %2$senglanninkielisestä dokumentista piwik.orgissa%3$s",
"ColumnCampaign": "Kampanja",
"ColumnSearchEngine": "Hakukone",
"ColumnSocial": "Sosiaalinen verkosto",
@@ -25,7 +25,7 @@
"Referrers": "Viittaajat",
"ReferrersOverview": "Viittauksien yleiskatsaus",
"SearchEngines": "Hakukoneet",
- "SearchEnginesDocumentation": "Kävijä tuli sivullesi hakukoneesta. %s Katso %s raportista lisätietoja.",
+ "SearchEnginesDocumentation": "Kävijä tuli sivullesi hakukoneesta. %1$s Katso %2$s raportista lisätietoja.",
"SearchEnginesReportDocumentation": "Tämä raportti näyttää, mitkä hakukoneet viittasivat kävijöitä sivuillesi. %s Näet hakusanat klikkaamalla hakukoneen nimeä.",
"SocialFooterMessage": "Tämä on osajoukko verkkosivuraportista vasemmalla. Se suodattaa pois toiset verkkosivut, jotta voit verrata sosiaalisia verkostojasi suoraan.",
"Socials": "Sosiaaliset verkostot",
@@ -42,7 +42,7 @@
"ViewAllReferrers": "Näytä kaikki viittaukset",
"ViewReferrersBy": "Näytä viittaukset %s mukaan",
"Websites": "Sivustot",
- "WebsitesDocumentation": "Kävijä tuli sivullesi seuraamalla linkkiä toiselta sivulta. %s Katso %s raportista lisätietoja.",
+ "WebsitesDocumentation": "Kävijä tuli sivullesi seuraamalla linkkiä toiselta sivulta. %1$s Katso %2$s raportista lisätietoja.",
"WebsitesReportDocumentation": "Tässä taulussa on lista sivuista, joiden kautta käyttäjiä tuli sinun sivullesi. %s Näet lähdesivun URL:n klikkaamalla taulun riviä.",
"WidgetExternalWebsites": "Lista ulkoisista verkkosivuista",
"WidgetGetAll": "Kaikki viittaukset",
diff --git a/plugins/Referrers/lang/fr.json b/plugins/Referrers/lang/fr.json
index 864f8b31a3..75a106ed02 100644
--- a/plugins/Referrers/lang/fr.json
+++ b/plugins/Referrers/lang/fr.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Ce rapport affiche tous les référents en un rapport consolidé, listant tous les sites web, mots-clés de recherche et campagnes utilisés par vos visiteurs pour trouver votre site web.",
"Campaigns": "Campagnes",
- "CampaignsDocumentation": "Visiteurs venus sur votre site web grâce à une campagne. %s Affichez le rapport %s pour plus de détails.",
- "CampaignsReportDocumentation": "Ce rapport montre quelles campagnes ont conduit des visiteurs à votre site web. %s Pour plus d'informations à propos des campagnes lisez %s la documentation des campagnes sur piwik.org%s",
+ "CampaignsDocumentation": "Visiteurs venus sur votre site web grâce à une campagne. %1$s Affichez le rapport %2$s pour plus de détails.",
+ "CampaignsReportDocumentation": "Ce rapport montre quelles campagnes ont conduit des visiteurs à votre site web. %1$s Pour plus d'informations à propos des campagnes lisez %2$s la documentation des campagnes sur piwik.org%3$s",
"ColumnCampaign": "Campagne",
"ColumnSearchEngine": "Moteur de recherche",
"ColumnSocial": "Réseaux sociaux",
@@ -27,7 +27,7 @@
"ReferrersOverview": "Vue d'ensemble des référents",
"ReferrerTypes": "Types de référants",
"SearchEngines": "Moteurs de recherche",
- "SearchEnginesDocumentation": "Un visiteur a été conduit sur votre site web par un moteur de recherche. %s Affichez le rapport %s pour plus de détails.",
+ "SearchEnginesDocumentation": "Un visiteur a été conduit sur votre site web par un moteur de recherche. %1$s Affichez le rapport %2$s pour plus de détails.",
"SearchEnginesReportDocumentation": "Ce rapport vous montre quels moteurs de recherche ont envoyé vos utilisateurs vers votre site. %s en cliquant sur une ligne sur la table, vous pouvez voir ce que vos utilisateurs étaient en train de chercher avec les moteurs de recherches spécifiques.",
"SocialFooterMessage": "Ceci est un sous-ensemble du rapport de sites web à gauche. Les autres sites web sont filtrés vous permettant ainsi de comparer les réseaux sociaux référents directement.",
"Socials": "Réseaux sociaux",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "Afficher tous les référents",
"ViewReferrersBy": "Afficher les référents par %s",
"Websites": "Sites web",
- "WebsitesDocumentation": "Le visiteur a suivi un lien sur un autre site qui l'a conduit sur votre site. %s Affichez le rapport %s pour plus de détails.",
+ "WebsitesDocumentation": "Le visiteur a suivi un lien sur un autre site qui l'a conduit sur votre site. %1$s Affichez le rapport %2$s pour plus de détails.",
"WebsitesReportDocumentation": "Dans ce tableau vous pouvez voir quels sites web ont conduit des visiteurs sur votre site.. %s En cliquant sur une ligne du tableau, vous pouvez voir les URL des sites sur lesquels sont les liens.",
"WidgetExternalWebsites": "Sites Internet référents",
"WidgetGetAll": "Tous les référents",
diff --git a/plugins/Referrers/lang/hi.json b/plugins/Referrers/lang/hi.json
index 131e5bcd05..8f23797a7c 100644
--- a/plugins/Referrers/lang/hi.json
+++ b/plugins/Referrers/lang/hi.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "इस रिपोर्ट में अपनी वेबसाइट खोजने के लिए अपने आगंतुकों द्वारा उपयोग किए गए सभी वेबसाइटों, खोज कीवर्ड और अभियान को सूचीबद्ध, एक एकीकृत रिपोर्ट में आपके सभी सन्दर्भदाता दिखाता है.",
"Campaigns": "अभियान",
- "CampaignsDocumentation": "आगंतुकों जो एक अभियान के परिणाम के रूप में अपनी वेबसाइट पर आए. अधिक जानकारी के लिए %sरिपोर्ट %s देखें.",
- "CampaignsReportDocumentation": "इस रिपोर्ट में आपकी वेबसाइट पर आगंतुकों का नेतृत्व किया जो अभियान से पता चलता है. ट्रैकिंग अभियान के बारे में %s अधिक जानकारी के लिए, piwik.org %sपर अभियान%s प्रलेखन पढ़ें",
+ "CampaignsDocumentation": "आगंतुकों जो एक अभियान के परिणाम के रूप में अपनी वेबसाइट पर आए. अधिक जानकारी के लिए %1$sरिपोर्ट %2$s देखें.",
+ "CampaignsReportDocumentation": "इस रिपोर्ट में आपकी वेबसाइट पर आगंतुकों का नेतृत्व किया जो अभियान से पता चलता है. ट्रैकिंग अभियान के बारे में %1$s अधिक जानकारी के लिए, piwik.org %2$sपर अभियान%3$s प्रलेखन पढ़ें",
"ColumnCampaign": "अभियान",
"ColumnSearchEngine": "सर्च इंजिन",
"ColumnSocial": "सामाजिक संजाल",
@@ -25,7 +25,7 @@
"Referrers": "सन्दर्भदाता",
"ReferrersOverview": "सन्दर्भदाता अवलोकन",
"SearchEngines": "सर्च इंजन",
- "SearchEnginesDocumentation": "एक आगंतुक एक खोज इंजन से आपकी वेबसाइट पर भेजा गया था. अधिक जानकारी के लिए %sरिपोर्ट देखें%s.",
+ "SearchEnginesDocumentation": "एक आगंतुक एक खोज इंजन से आपकी वेबसाइट पर भेजा गया था. अधिक जानकारी के लिए %1$sरिपोर्ट देखें%2$s.",
"SearchEnginesReportDocumentation": "यह रिपोर्ट जो दर्शाता है खोज इंजन का आपकी वेबसाइट पर उपयोगकर्ताओं को भेजा जाता. तालिका में एक पंक्ति पर%s क्लिक करते हुए आप देख सकते हैं क्या उपयोगकर्ताओं को एक विशिष्ट खोज इंजन का उपयोग करने की खोज कर रहे थे",
"SocialFooterMessage": "यह एक बाईं ओर रिपोर्ट है वेबसाइटों का एक सबसेट है. आप सीधे अपने सामाजिक नेटवर्क सन्दर्भदाता तुलना कर सकते हैं ताकि यह अन्य वेबसाइटों फिल्टर करे.",
"Socials": "सामाजिक संजाल",
@@ -42,7 +42,7 @@
"ViewAllReferrers": "सभी सन्दर्भदाता देखें",
"ViewReferrersBy": "%s द्वारा सन्दर्भदाता देखें",
"Websites": "वेबसाइटें",
- "WebsitesDocumentation": "आगंतुक अपनी साइट का नेतृत्व करने के लिए एक और वेबसाइट पर एक लिंक का पालन किया. %s अधिक जानकारी के लिए रिपोर्ट%s देखें.",
+ "WebsitesDocumentation": "आगंतुक अपनी साइट का नेतृत्व करने के लिए एक और वेबसाइट पर एक लिंक का पालन किया. %1$s अधिक जानकारी के लिए रिपोर्ट%2$s देखें.",
"WebsitesReportDocumentation": "इस तालिका में, आप अपनी वेबसाइट पर आगंतुकों को भेजने वाले वेबसाइट देख सकते हैं. तालिका में %s एक पंक्ति पर क्लिक करते हुए आप देख सकते हैं जो यूआरएल आपकी वेबसाइट के लिए लिंक किया गया है",
"WidgetExternalWebsites": "संदर्भ वेबसाईटें",
"WidgetGetAll": "सभी सन्दर्भदाता",
diff --git a/plugins/Referrers/lang/id.json b/plugins/Referrers/lang/id.json
index 71e6d93f81..707d85ce44 100644
--- a/plugins/Referrers/lang/id.json
+++ b/plugins/Referrers/lang/id.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Laporan ini menampilkan seluruh Pengarah Anda dalam laporan satu kompak, mendaftar seluruh Situs, dan kata kunci Pencarian serta Kampanye yang digunakan pengunjung Anda menemukan situs Anda.",
"Campaigns": "Kampanye",
- "CampaignsDocumentation": "Pengunjung yang datang ke situs Anda sebagai hasil dari kampanye. %s Lihat laporan %s untuk selengkapnya.",
- "CampaignsReportDocumentation": "Laporan ini menampilan kampanye mana yang mengarahkan pengungunjung ke situs Anda. %s Informasi selengkapnya tentang kampanye pelacakan, baca %sdokumentasi kampanye di piwik.org%s",
+ "CampaignsDocumentation": "Pengunjung yang datang ke situs Anda sebagai hasil dari kampanye. %1$s Lihat laporan %2$s untuk selengkapnya.",
+ "CampaignsReportDocumentation": "Laporan ini menampilan kampanye mana yang mengarahkan pengungunjung ke situs Anda. %1$s Informasi selengkapnya tentang kampanye pelacakan, baca %2$sdokumentasi kampanye di piwik.org%3$s",
"ColumnCampaign": "Kampanye",
"ColumnSearchEngine": "Mesin Pencari",
"ColumnSocial": "Jejaring Sosial",
@@ -25,7 +25,7 @@
"Referrers": "Pengarah",
"ReferrersOverview": "Iktisar Pengarah",
"SearchEngines": "Mesin Pencari",
- "SearchEnginesDocumentation": "Pengunjung telah diarahkan ke situs Anda oleh mesin pencari. %s Lihat laporan %s untuk selengkapnya.",
+ "SearchEnginesDocumentation": "Pengunjung telah diarahkan ke situs Anda oleh mesin pencari. %1$s Lihat laporan %2$s untuk selengkapnya.",
"SearchEnginesReportDocumentation": "Laporan ini menampilakan mesin pencari yang mengarahkan pengguna ke situs Anda. %s Dengan mengeklik baris dalam tabel, Anda dapat mengetahui pengguna mana yang menggunakan mesin pencari tertentu.",
"SocialFooterMessage": "Merupakan himpunan laporan Situs di sebelah kiri. Ini akan menapis keluar situs lain sehingga Anda dapat bandingkan dengan pengarah jejaring sosial secara langsung.",
"Socials": "Jejaring Sosial",
@@ -42,7 +42,7 @@
"ViewAllReferrers": "Lihat seluruh pengarah",
"ViewReferrersBy": "Lihat Pengarah berdasar %s",
"Websites": "Situs",
- "WebsitesDocumentation": "Pengunjung mengikuti tautan di situs lain yang mengarahkan ke situs Anda. %s Lihat laporan %s untuk selengkapnya.",
+ "WebsitesDocumentation": "Pengunjung mengikuti tautan di situs lain yang mengarahkan ke situs Anda. %1$s Lihat laporan %2$s untuk selengkapnya.",
"WebsitesReportDocumentation": "Dalam tabel ini, Anda dapat melihat situs mana yang mengarahkan pengunjung menuju situs Anda. %s Dengan mengeklik baris dalam tabel, Anda dapat mengetahui URL mana yang memiliki tautan ke situs Anda.",
"WidgetExternalWebsites": "Daftar Situs luar",
"WidgetGetAll": "Seluruh Pengarah",
diff --git a/plugins/Referrers/lang/it.json b/plugins/Referrers/lang/it.json
index 5343975d95..ac5c1ad83d 100644
--- a/plugins/Referrers/lang/it.json
+++ b/plugins/Referrers/lang/it.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Questo report mostra tutti i tuoi Referenti in un unico report che elenca tutti i Siti web, le Parole chiave di ricerca e Campagne utilizzate dai visitatori per trovare il tuo sito web.",
"Campaigns": "Campagne",
- "CampaignsDocumentation": "Visitatori che sono arrivati sul tuo sito web a seguito di una campagna. %s Vedi il%s Report per maggiori dettagli.",
- "CampaignsReportDocumentation": "Questo report mostra quali campagne hanno portato i visitatori sul tuo sito web. %s Per ulteriori informazioni sulle campagne di monitoraggio, leggi la %sdocumentazione campagne su piwik.org%s",
+ "CampaignsDocumentation": "Visitatori che sono arrivati sul tuo sito web a seguito di una campagna. %1$s Vedi il%2$s Report per maggiori dettagli.",
+ "CampaignsReportDocumentation": "Questo report mostra quali campagne hanno portato i visitatori sul tuo sito web. %1$s Per ulteriori informazioni sulle campagne di monitoraggio, leggi la %2$sdocumentazione campagne su piwik.org%3$s",
"ColumnCampaign": "Campagna",
"ColumnSearchEngine": "Motore di ricerca",
"ColumnSocial": "Social network",
@@ -27,7 +27,7 @@
"ReferrersOverview": "Panoramica Referenti",
"ReferrerTypes": "Tipi di Referenti",
"SearchEngines": "Motori di ricerca",
- "SearchEnginesDocumentation": "Un visitatore è stato portato sul tuo sito da un motore di ricerca. %s Vedi il %s report per maggiori dettagli.",
+ "SearchEnginesDocumentation": "Un visitatore è stato portato sul tuo sito da un motore di ricerca. %1$s Vedi il %2$s report per maggiori dettagli.",
"SearchEnginesReportDocumentation": "Questo report mostra quali motori di ricerca hanno portato gli utenti sul tuo sito web. %s Cliccando su una riga della tabella è possibile vedere ciò che gli utenti stavano cercando utilizzando un determinato motore di ricerca.",
"SocialFooterMessage": "Questo è un sottoinsieme dei siti web riportati a sinistra. Esso filtra altri siti web in modo da poter confrontare direttamente i vostri referenti di social network.",
"Socials": "Social Networks",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "Vedi tutti i Referenti",
"ViewReferrersBy": "Vedi Referenti per %s",
"Websites": "Siti web",
- "WebsitesDocumentation": "Il visitatore ha seguito un link su un altro sito web che lo ha portato sul tuo. %s Vedi il %s report per maggiori dettagli.",
+ "WebsitesDocumentation": "Il visitatore ha seguito un link su un altro sito web che lo ha portato sul tuo. %1$s Vedi il %2$s report per maggiori dettagli.",
"WebsitesReportDocumentation": "In questa tabella è possibile vedere quali siti web hanno portato i visitatori sul tuo sito. %s Cliccando su una riga della tabella è possibile vedere su quali URL si trovavano i link al tuo sito.",
"WidgetExternalWebsites": "Elenco di Siti web esterni",
"WidgetGetAll": "Tutti i Referenti",
diff --git a/plugins/Referrers/lang/ja.json b/plugins/Referrers/lang/ja.json
index f5b1e178a4..ac6dc845fa 100644
--- a/plugins/Referrers/lang/ja.json
+++ b/plugins/Referrers/lang/ja.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "このレポートは、すべての参照元を確認することができる統合レポートです。ビジターがサイト閲覧の際に利用したすべてのウェブサイト、検索キーワード、キャンペーンを一覧表示します。",
"Campaigns": "キャンペーン",
- "CampaignsDocumentation": "キャンペーンの結果としてウェブサイトを訪れたビジター。詳細のリポートは %s こちら %s",
- "CampaignsReportDocumentation": "このリポートは、ウェブサイトに訪問者を導いたキャンペーンについて示します。 %s キャンペーンのトラッキングの詳細については、%s piwik.orgのキャンペーンについてのドキュメント %s を読んでください。",
+ "CampaignsDocumentation": "キャンペーンの結果としてウェブサイトを訪れたビジター。詳細のリポートは %1$s こちら %2$s",
+ "CampaignsReportDocumentation": "このリポートは、ウェブサイトに訪問者を導いたキャンペーンについて示します。 %1$s キャンペーンのトラッキングの詳細については、%2$s piwik.orgのキャンペーンについてのドキュメント %3$s を読んでください。",
"ColumnCampaign": "キャンペーン",
"ColumnSearchEngine": "検索エンジン",
"ColumnSocial": "ソーシャルネットワーク",
@@ -27,7 +27,7 @@
"ReferrersOverview": "参照元概観",
"ReferrerTypes": "リファラータイプ",
"SearchEngines": "検索エンジン",
- "SearchEnginesDocumentation": "検索エンジンを参照してウェブサイトに来たビジター。詳細のリポートは %s こちら %s",
+ "SearchEnginesDocumentation": "検索エンジンを参照してウェブサイトに来たビジター。詳細のリポートは %1$s こちら %2$s",
"SearchEnginesReportDocumentation": "このリポートは、どの検索エンジンがこのウェブサイトにユーザーを呼びこんだかを示しています。 %s テーブル内の行をクリックすると、ユーザーが特定の検索エンジンを使って何を検索していたかを確認できます。",
"SocialFooterMessage": "これは、左のウェブサイトレポートのサブセットです。これは、他のウェブサイトをふるいにかけて選別するため、直接ソーシャルネットワークの参照元を比較することができます。",
"Socials": "ソーシャルネットワーク",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "全参照元を表示",
"ViewReferrersBy": "%s による参照元を表示",
"Websites": "ウェブサイト",
- "WebsitesDocumentation": "別のウェブサイト上のリンクをクリックしてやってきたビジター。詳細のリポートは %s こちら %s",
+ "WebsitesDocumentation": "別のウェブサイト上のリンクをクリックしてやってきたビジター。詳細のリポートは %1$s こちら %2$s",
"WebsitesReportDocumentation": "このテーブルでは、どのウェブサイトがビジターの参照元になっているかを示します。%s テーブル内の行をクリックすると、クリックされたURLのリンクを見ることが出来ます。",
"WidgetExternalWebsites": "外部ウェブサイト一覧",
"WidgetGetAll": "全参照元",
diff --git a/plugins/Referrers/lang/ko.json b/plugins/Referrers/lang/ko.json
index 28c132386a..5a133eb72e 100644
--- a/plugins/Referrers/lang/ko.json
+++ b/plugins/Referrers/lang/ko.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "이 보고서는 모든 리퍼러에 대한 보고서를 하나로 통합한 것으로, 방문자가 경유한 웹사이트, 검색어 그리고 캠페인의 목록입니다.",
"Campaigns": "캠페인",
- "CampaignsDocumentation": "캠페인의 결과로 웹사이트를 방문한 방문자입니다. 상세 보고서는 %s이곳%s에 있습니다.",
- "CampaignsReportDocumentation": "이 보고서는 웹사이트에 방문자를 이끈 캠페인에 대해 설명합니다. %s 캠페인 추적에 대한 자세한 내용은 %spiwik.org의 캠페인에 대한 문서%s를 읽어 보세요.",
+ "CampaignsDocumentation": "캠페인의 결과로 웹사이트를 방문한 방문자입니다. 상세 보고서는 %1$s이곳%2$s에 있습니다.",
+ "CampaignsReportDocumentation": "이 보고서는 웹사이트에 방문자를 이끈 캠페인에 대해 설명합니다. %1$s 캠페인 추적에 대한 자세한 내용은 %2$spiwik.org의 캠페인에 대한 문서%3$s를 읽어 보세요.",
"ColumnCampaign": "캠페인",
"ColumnSearchEngine": "검색엔진",
"ColumnSocial": "소셜 네트워크",
@@ -27,7 +27,7 @@
"ReferrersOverview": "리퍼러 개요",
"ReferrerTypes": "리퍼러 타입",
"SearchEngines": "검색엔진",
- "SearchEnginesDocumentation": "검색 엔진을 참조하여 웹사이트로 접속한 방문자입니다. 상세 보고서는 %s 여기 %s에 있습니다.",
+ "SearchEnginesDocumentation": "검색 엔진을 참조하여 웹사이트로 접속한 방문자입니다. 상세 보고서는 %1$s 여기 %2$s에 있습니다.",
"SearchEnginesReportDocumentation": "이 보고서는 어떤 검색 엔진으로 웹사이트에 사용자가 유입되었는 지를 보여줍니다. %s 테이블의 행을 클릭하면 사용자가 특정 검색 엔진을 사용하여 무엇을 찾고 있었는지를 확인할 수 있습니다.",
"SocialFooterMessage": "이것은 왼쪽 웹사이트 보고서의 집합입니다. 다른 웹사이트를 필터링해서 소셜 네트워크 리퍼러를 직접 비교할 수 있습니다.",
"Socials": "소셜 네트워크",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "모든 리퍼러 보기",
"ViewReferrersBy": "%s별 리퍼러 보기",
"Websites": "웹사이트",
- "WebsitesDocumentation": "다른 웹사이트의 링크를 클릭하여 찾아온 방문자입니다. 상세 보고서는 %s %s 자세히 보기",
+ "WebsitesDocumentation": "다른 웹사이트의 링크를 클릭하여 찾아온 방문자입니다. 상세 보고서는 %1$s %2$s 자세히 보기",
"WebsitesReportDocumentation": "이 표에서 귀하의 사이트로 방문자를 연결하는 추천 웹사이트를 볼 수 있습니다. %s 테이블의 행을 클릭하면 클릭된 URL 링크를 볼 수 있습니다.",
"WidgetExternalWebsites": "외부 웹사이트 목록",
"WidgetGetAll": "모든 리퍼러",
diff --git a/plugins/Referrers/lang/lt.json b/plugins/Referrers/lang/lt.json
index fba457a0f1..19c7b187ee 100644
--- a/plugins/Referrers/lang/lt.json
+++ b/plugins/Referrers/lang/lt.json
@@ -24,6 +24,7 @@
"TypeWebsites": "%s iš svetainių",
"UsingNDistinctUrls": "(naudojant %s skirtingus URL)",
"Websites": "Svetainės",
- "WidgetExternalWebsites": "Išorinių svetainių sąrašas"
+ "WidgetExternalWebsites": "Išorinių svetainių sąrašas",
+ "WidgetSocials": "Socialinių tinklų sąrašas"
}
} \ No newline at end of file
diff --git a/plugins/Referrers/lang/nl.json b/plugins/Referrers/lang/nl.json
index 648c1f51a1..39be150270 100644
--- a/plugins/Referrers/lang/nl.json
+++ b/plugins/Referrers/lang/nl.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Dit samengestelde rapport laat al uw referers zien met weergave van alle websites, zoekwoorden en campagnes waarmee bezoekers uw site hebben gevonden.",
"Campaigns": "Campagnes",
- "CampaignsDocumentation": "Bezoekers die op uw website uitkwamen via een campagne. %s Bekijk het %s rapport voor meer details.",
- "CampaignsReportDocumentation": "Dit rapport toont de campagnes die bezoekers naar uw website hebben geleid. %s Voor meer informatie over Campagne Tracking, lees de %scampagne documentatie op piwik.org%s",
+ "CampaignsDocumentation": "Bezoekers die op uw website uitkwamen via een campagne. %1$s Bekijk het %2$s rapport voor meer details.",
+ "CampaignsReportDocumentation": "Dit rapport toont de campagnes die bezoekers naar uw website hebben geleid. %1$s Voor meer informatie over Campagne Tracking, lees de %2$scampagne documentatie op piwik.org%3$s",
"ColumnCampaign": "Campagne",
"ColumnSearchEngine": "Zoekmachine",
"ColumnSocial": "Sociaal netwerk",
@@ -26,7 +26,7 @@
"ReferrersOverview": "Referer Overzicht",
"ReferrerTypes": "Referrer Types",
"SearchEngines": "Zoekmachines",
- "SearchEnginesDocumentation": "Een bezoeker is doorverwezen naar uw website via een zoekmachine. %s Bekijk het %s rapport voor meer details.",
+ "SearchEnginesDocumentation": "Een bezoeker is doorverwezen naar uw website via een zoekmachine. %1$s Bekijk het %2$s rapport voor meer details.",
"SearchEnginesReportDocumentation": "Dit rapport toont de zoekmachines die bezoekers naar uw wbsite hebben verwezen. %s Door op een rij in de tabel te klikken kunt u zien naar wat men precies op zoek was in de betreffende zoekmachine.",
"Socials": "Sociale netwerken",
"SubmenuSearchEngines": "Zoekmachines & sleutelwoorden",
@@ -41,7 +41,7 @@
"ViewAllReferrers": "Toon alle referers",
"ViewReferrersBy": "Toon referers volgens %s",
"Websites": "Websites",
- "WebsitesDocumentation": "De bezoeker klikte op een link naar uw website. %s Bekijk het %s rapport voor meer details.",
+ "WebsitesDocumentation": "De bezoeker klikte op een link naar uw website. %1$s Bekijk het %2$s rapport voor meer details.",
"WebsitesReportDocumentation": "In deze tabel kunt u de websites zien die bezoekers hebben doorverwezen naar uw website. %s Door op een rij in de tabel te klikken kunt u de URL's van de bijhorende linken zien.",
"WidgetExternalWebsites": "Top websites",
"WidgetGetAll": "Alle Referers",
diff --git a/plugins/Referrers/lang/pt-br.json b/plugins/Referrers/lang/pt-br.json
index 7204ca6069..4d00d68971 100644
--- a/plugins/Referrers/lang/pt-br.json
+++ b/plugins/Referrers/lang/pt-br.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Este relatório mostra todos os seus Referenciadores em um relatório unificado, listando todos os Websites, Palavras-Chave de Pesquisa e Campanhas utilizadas ​​por seus visitantes para encontrar seu website.",
"Campaigns": "Campanhas",
- "CampaignsDocumentation": "Os visitantes que vieram para o seu site como o resultado de uma campanha. %s Ver relatório %s para mais detalhes.",
- "CampaignsReportDocumentation": "Este relatório mostra quais as campanhas lideradas visitantes para o seu site. %s para mais informações sobre as campanhas de monitoramento, leia a documentação %s campanhas em piwik.org %s",
+ "CampaignsDocumentation": "Os visitantes que vieram para o seu site como o resultado de uma campanha. %1$s Ver relatório %2$s para mais detalhes.",
+ "CampaignsReportDocumentation": "Este relatório mostra quais as campanhas lideradas visitantes para o seu site. %1$s para mais informações sobre as campanhas de monitoramento, leia a documentação %2$s campanhas em piwik.org %3$s",
"ColumnCampaign": "campanha",
"ColumnSearchEngine": "Motor de Busca",
"ColumnSocial": "Rede social",
@@ -27,7 +27,7 @@
"ReferrersOverview": "Visão Geral dos Referenciadores",
"ReferrerTypes": "Tipos de Referenciadores",
"SearchEngines": "Motores de Busca",
- "SearchEnginesDocumentation": "Um visitante foi encaminhado para o seu site por um motor de busca. %s Ver o relatório %s para mais detalhes.",
+ "SearchEnginesDocumentation": "Um visitante foi encaminhado para o seu site por um motor de busca. %1$s Ver o relatório %2$s para mais detalhes.",
"SearchEnginesReportDocumentation": "Este relatório mostra quais motores de busca encaminhou usuários ao seu site. %s Ao clicar em uma linha na tabela, você pode ver o que os usuários estavam procurando utilizando um motor de busca específico.",
"SocialFooterMessage": "Este é um subconjunto do relatório de Websites listados à esquerda. Filtra outros websites para que você possa comparar diretamente os referenciadores de suas redes sociais .",
"Socials": "Redes Sociais",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "Ver todos os Referenciadores",
"ViewReferrersBy": "Ver Referenciadores por %s",
"Websites": "Websites",
- "WebsitesDocumentation": "O visitante seguiu um link em outro site que o levou para o seu site. %s Ver relatório %s para mais detalhes.",
+ "WebsitesDocumentation": "O visitante seguiu um link em outro site que o levou para o seu site. %1$s Ver relatório %2$s para mais detalhes.",
"WebsitesReportDocumentation": "Nesta tabela, você pode ver quais website encaminharam visitantes para o seu site. %s Ao clicar em uma linha na tabela, você pode ver quais os links de URLs que seu site estava.",
"WidgetExternalWebsites": "Websites Referenciadores",
"WidgetGetAll": "Todos os Referenciadores",
diff --git a/plugins/Referrers/lang/pt.json b/plugins/Referrers/lang/pt.json
index 78080e4748..6138f435f1 100644
--- a/plugins/Referrers/lang/pt.json
+++ b/plugins/Referrers/lang/pt.json
@@ -1,8 +1,8 @@
{
"Referrers": {
"Campaigns": "Campanhas",
- "CampaignsDocumentation": "Visitantes que chegaram ao seu website como resultado de uma campanha. %s Veja o relatório %s para mais detalhes.",
- "CampaignsReportDocumentation": "Este relatório mostra quais as campanhas que levaram visitantes ao seu website. %s Para mais informações sobre dados de campanhas, leia a documentação de campanhas%s em piwik.org%s.",
+ "CampaignsDocumentation": "Visitantes que chegaram ao seu website como resultado de uma campanha. %1$s Veja o relatório %2$s para mais detalhes.",
+ "CampaignsReportDocumentation": "Este relatório mostra quais as campanhas que levaram visitantes ao seu website. %1$s Para mais informações sobre dados de campanhas, leia a documentação de campanhas%2$s em piwik.org%3$s.",
"ColumnCampaign": "Campanha",
"ColumnSearchEngine": "Motor de Busca",
"ColumnWebsite": "Website",
@@ -21,7 +21,7 @@
"ReferrerName": "Nome do referente",
"Referrers": "Referentes",
"SearchEngines": "Motores de Busca",
- "SearchEnginesDocumentation": "O visitante foi referenciado para o seu website a partir de um motor de busca. %s Veja o relatório %s para mais detalhes.",
+ "SearchEnginesDocumentation": "O visitante foi referenciado para o seu website a partir de um motor de busca. %1$s Veja o relatório %2$s para mais detalhes.",
"SearchEnginesReportDocumentation": "Este relatório mostra quais os motores de pesquisa que referenciaram utilizadores para o seu website. %s Ao clicar numa linha da tabela pode ver o que os utilizadores pesquisaram num motor de pesquisa específico.",
"SubmenuSearchEngines": "Motores de Buscas & Palvras Chaves",
"SubmenuWebsites": "Websites",
@@ -33,7 +33,7 @@
"TypeWebsites": "%s de websites",
"UsingNDistinctUrls": "(usando %s endereços distintos)",
"Websites": "Websites",
- "WebsitesDocumentation": "O visitante seguiu um link noutro website que apontava para o seu. %s Veja o relatório %s para mais detalhes.",
+ "WebsitesDocumentation": "O visitante seguiu um link noutro website que apontava para o seu. %1$s Veja o relatório %2$s para mais detalhes.",
"WebsitesReportDocumentation": "Nesta tabela, pode ver quais os website que levaram referentes para o seu site. %s Ao clicar numa linha da tabela pode ver quais os URLs onde os links para o seu site estavam.",
"WidgetExternalWebsites": "Lista de Websites externos"
}
diff --git a/plugins/Referrers/lang/ro.json b/plugins/Referrers/lang/ro.json
index ea2c7aec82..46106bb202 100644
--- a/plugins/Referrers/lang/ro.json
+++ b/plugins/Referrers/lang/ro.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Acest raport arată toati referali într-un singur raport unificat, care listează toate site-urile, cuvintele cheie de căutare și campanii utilizate de vizitatorii dvs. pentru a găsi site-ul dumneavoastră.",
"Campaigns": "Campanii",
- "CampaignsDocumentation": "Vizitatorii care au venit pe site-ul dvs. ca rezultat al unei campanii. %s A se vedea raportul %s pentru mai multe detalii.",
- "CampaignsReportDocumentation": "Acest raport arată care care campanii a adus vizitatori websitului.%s Pentru mai multe informații despre campaniile de urmărire, citiți documentația %scampanii pe piwik.org%s",
+ "CampaignsDocumentation": "Vizitatorii care au venit pe site-ul dvs. ca rezultat al unei campanii. %1$s A se vedea raportul %2$s pentru mai multe detalii.",
+ "CampaignsReportDocumentation": "Acest raport arată care care campanii a adus vizitatori websitului.%1$s Pentru mai multe informații despre campaniile de urmărire, citiți documentația %2$scampanii pe piwik.org%3$s",
"ColumnCampaign": "Campanie",
"ColumnSearchEngine": "Motor de căutare",
"ColumnSocial": "Reţea socială",
@@ -25,7 +25,7 @@
"Referrers": "Referenti",
"ReferrersOverview": "Referenți Prezentare generală",
"SearchEngines": "Motoare căutare",
- "SearchEnginesDocumentation": "Un vizitator a fost menționat de site-ul dvs. cu un motor de căutare. %s A se vedea raportul %s pentru mai multe detalii.",
+ "SearchEnginesDocumentation": "Un vizitator a fost menționat de site-ul dvs. cu un motor de căutare. %1$s A se vedea raportul %2$s pentru mai multe detalii.",
"SearchEnginesReportDocumentation": "Acest raport arată care motoare de căutare folosite de utilizatorilor pe site-ul dumneavoastră. %s Făcând clic pe un rând din tabel, puteți vedea ce utilizatorii au fost în căutarea pentru utilizarea unui anumit motor de căutare.",
"SocialFooterMessage": "Acesta este un subset al raportului spre stânga. Se filtrează alte site-uri astfel încât să puteți compara referenți de rețea socială în mod direct.",
"Socials": "Reţele sociale",
@@ -42,7 +42,7 @@
"ViewAllReferrers": "Vezi toti referali",
"ViewReferrersBy": "Vezi referali cu %s",
"Websites": "Siteuri",
- "WebsitesDocumentation": "Vizitatorul a urmat un link de pe alt website care la dus la website-ul dumneavoastră. %s A se vedea raportul %s pentru mai multe detalii.",
+ "WebsitesDocumentation": "Vizitatorul a urmat un link de pe alt website care la dus la website-ul dumneavoastră. %1$s A se vedea raportul %2$s pentru mai multe detalii.",
"WebsitesReportDocumentation": "În acest tabel, puteți vedea ce site-uri web au facut referire vizitatorii la site-ul dumneavoastră. %s Făcând clic pe un rând din tabel, puteți vedea care URL-uri link-uri către site-ul dvs. au fost pe.",
"WidgetExternalWebsites": "Lista siteurilor externe",
"WidgetGetAll": "Toti Referalii",
diff --git a/plugins/Referrers/lang/ru.json b/plugins/Referrers/lang/ru.json
index 1a93015fc2..bff83d1cf3 100644
--- a/plugins/Referrers/lang/ru.json
+++ b/plugins/Referrers/lang/ru.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Этот отчёт показывает все Рефереры в одном сводном отчёте, перечисляя все Вебсайты, Поисковые запросы и Кампании, которыми пользовались посетители, чтобы найти ваш сайт.",
"Campaigns": "Кампании",
- "CampaignsDocumentation": "Посетитель перешел на ваш сайт с рекламной кампании. %s Детальная информация в отчете %s",
- "CampaignsReportDocumentation": "Этот отчет показывает, какие рекламные кампании привели посетителей на ваш сайт. %s Для большей информации об отслеживании кампаний читайте %sДокументацию по кампаниям на сайте piwik.org%s",
+ "CampaignsDocumentation": "Посетитель перешел на ваш сайт с рекламной кампании. %1$s Детальная информация в отчете %2$s",
+ "CampaignsReportDocumentation": "Этот отчет показывает, какие рекламные кампании привели посетителей на ваш сайт. %1$s Для большей информации об отслеживании кампаний читайте %2$sДокументацию по кампаниям на сайте piwik.org%3$s",
"ColumnCampaign": "Кампания",
"ColumnSearchEngine": "Поисковый движок",
"ColumnSocial": "Страница социальной сети",
@@ -26,7 +26,7 @@
"ReferrersOverview": "Обзор источников",
"ReferrerTypes": "Типы источника",
"SearchEngines": "Поисковые движки",
- "SearchEnginesDocumentation": "Посетитель перешел на ваш сайт с поисковой системы. %s Детальная информация в отчете %s.",
+ "SearchEnginesDocumentation": "Посетитель перешел на ваш сайт с поисковой системы. %1$s Детальная информация в отчете %2$s.",
"SearchEnginesReportDocumentation": "Этот отчет показывает, с каких поисковых систем пришли посетители. %s Кликнув на конкретный ряд таблицы, вы увидите, что посетитель искал в поисковой систем и что привело его на ваш сайт.",
"Socials": "Социальные сети",
"SocialsReportDocumentation": "Этот отчет показывает, какие социальные сети привели посетителей на ваш сайт.<br \/>Кликнув на конкретную строку таблицы, вы можете увидить, с каких именно страниц соц. сетей перешли эти посетители.",
@@ -42,7 +42,7 @@
"ViewAllReferrers": "Посмотреть все источники",
"ViewReferrersBy": "Посмотреть Источники по %s",
"Websites": "Сайты",
- "WebsitesDocumentation": "Посетитель перешел на ваш сайт по ссылке, которая находилась на другом сайте. %s Детальная информация в отчете %s",
+ "WebsitesDocumentation": "Посетитель перешел на ваш сайт по ссылке, которая находилась на другом сайте. %1$s Детальная информация в отчете %2$s",
"WebsitesReportDocumentation": "В этой таблице вы можете видеть сайты, которые привели посетителей на ваш сайт. %s Кликнув на таблице по конкретной строке, вы увидите где была размещена ссылка на ваш сайт.",
"WidgetExternalWebsites": "Внешние сайты",
"WidgetGetAll": "Все источники трафика",
diff --git a/plugins/Referrers/lang/sq.json b/plugins/Referrers/lang/sq.json
index f23869ce6f..8ea57774b4 100644
--- a/plugins/Referrers/lang/sq.json
+++ b/plugins/Referrers/lang/sq.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Ky raport shfaq krejt Sjellësit, në një raport të unifikuar, duke paraqitur krejt Sajtet, fjalëkyçe Kërkimi dhe Fushata të përdorura nga vizitorët për gjetjen e sajtit tuaj.",
"Campaigns": "Fushata",
- "CampaignsDocumentation": "Vizitorë që kanë ardhur te sajti juaj si rrjedhojë e një fushate. Për më tepër %s shihni %s raportin.",
- "CampaignsReportDocumentation": "Ky raport tregon se cilat fushata prunë vizitorë te sajti juaj. %s Për më tepër të dhëna rreth fushatave të ndjekjes, lexoni %sdokumentimin mbi fushatat, te piwik.org%s",
+ "CampaignsDocumentation": "Vizitorë që kanë ardhur te sajti juaj si rrjedhojë e një fushate. Për më tepër %1$s shihni %2$s raportin.",
+ "CampaignsReportDocumentation": "Ky raport tregon se cilat fushata prunë vizitorë te sajti juaj. %1$s Për më tepër të dhëna rreth fushatave të ndjekjes, lexoni %2$sdokumentimin mbi fushatat, te piwik.org%3$s",
"ColumnCampaign": "Fushatë",
"ColumnSearchEngine": "Motorë Kërkimesh",
"ColumnSocial": "Rrjet shoqëror",
@@ -27,7 +27,7 @@
"ReferrersOverview": "Përmbledhje Referuesish",
"ReferrerTypes": "Lloje Referuesish",
"SearchEngines": "Motorë Kërkimesh",
- "SearchEnginesDocumentation": "Një vizitori i është treguar sajti juaj nga një motor kërkimesh. Për më tepër hollësira, %s shihni %s raportin.",
+ "SearchEnginesDocumentation": "Një vizitori i është treguar sajti juaj nga një motor kërkimesh. Për më tepër hollësira, %1$s shihni %2$s raportin.",
"SearchEnginesReportDocumentation": "Ky raport shfaq cilët motorë kërkimi sollën përdorues te sajti juaj web. %s Duke klikuar mbi një rresht të tabelës, mund të shihni se për çfarë po kërkonin përdoruesit që përdorën një motor të caktuar kërkimesh.",
"SocialFooterMessage": "Ky është një nëngrup i raportit të Sajteve në të majtë. Lë jashtë sajte të tjerë, që kështu të mundeni të krahasoni drejtpërsëdrejti sjellësit tuaj nga rrjete shoqërore.",
"Socials": "Rrjete Shoqërore",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "Shihni krejt Sjellësit",
"ViewReferrersBy": "Shihini Sjellësit sipas %s",
"Websites": "Sajte",
- "WebsitesDocumentation": "Vizitori ndoqi një lidhje në një sajt tjetër, e cila të shpinte te sajti juaj. Për më tepër hollësira, %s shihni %s raportin.",
+ "WebsitesDocumentation": "Vizitori ndoqi një lidhje në një sajt tjetër, e cila të shpinte te sajti juaj. Për më tepër hollësira, %1$s shihni %2$s raportin.",
"WebsitesReportDocumentation": "Në këtë tabelë, mund të shihni cilët sajte sollën vizitorë te sajti juaj. %s Duke klikuar mbi një rresht të tabelës, mund të shihni se te cilat URL gjendeshin lidhjet për te sajti juaj.",
"WidgetExternalWebsites": "Sajte Sjellës",
"WidgetGetAll": "Krejt Sjellësit",
diff --git a/plugins/Referrers/lang/sr.json b/plugins/Referrers/lang/sr.json
index 1766549e62..c6da870b58 100644
--- a/plugins/Referrers/lang/sr.json
+++ b/plugins/Referrers/lang/sr.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Ovaj izveštaj prikazuje sve vaše reference na unificiran način preko spiska svih sajtova, traženih ključnih reči i kampanja koje su koristili posetioci kako bi došli do vašeg sajta.",
"Campaigns": "Kampanje",
- "CampaignsDocumentation": "Korisnik koji je došao na vaš sajt putem kampanje. %sPogledajte%s izveštaj za više detalja.",
- "CampaignsReportDocumentation": "Ovaj izveštaj prikazuje koje kampanje su dovele posetioce na vaš sajt. %s Za više informacija o praćenju kampanja pogledajte %scampaigns na piwik.org%s",
+ "CampaignsDocumentation": "Korisnik koji je došao na vaš sajt putem kampanje. %1$sPogledajte%2$s izveštaj za više detalja.",
+ "CampaignsReportDocumentation": "Ovaj izveštaj prikazuje koje kampanje su dovele posetioce na vaš sajt. %1$s Za više informacija o praćenju kampanja pogledajte %2$scampaigns na piwik.org%3$s",
"ColumnCampaign": "Kampanja",
"ColumnSearchEngine": "Pretraživač",
"ColumnSocial": "Društvena mreža",
@@ -27,7 +27,7 @@
"ReferrersOverview": "Pregled referenci",
"ReferrerTypes": "Tipovi referenci",
"SearchEngines": "Pretraživači",
- "SearchEnginesDocumentation": "Korisnik je upućen na vaš sajt od strane pretraživača. %s Pogledajte %s izveštaj za više detalja.",
+ "SearchEnginesDocumentation": "Korisnik je upućen na vaš sajt od strane pretraživača. %1$s Pogledajte %2$s izveštaj za više detalja.",
"SearchEnginesReportDocumentation": "Ovaj izveštaj prikazuje koji pretraživači upućuju posetioce na vaš sajt. %s Klikom na red tabele možete videti šta su korisnici tražili preko pojedinih pretraživača.",
"SocialFooterMessage": "Ovo je podskup izveštaja koje vidite na levoj strani. Ostali sajtovi su izostavljeni kako biste mogli direktno da uporedite vaše reference sa društvenih mreža.",
"Socials": "Društvene mreže",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "Prikaži sve reference",
"ViewReferrersBy": "Prikaži reference po %s",
"Websites": "Sajtovi",
- "WebsitesDocumentation": "Korisnik je klikom na link na drugom sajtu došao do vašeg sajta. %sPogledajte%s izveštaj za više detalja.",
+ "WebsitesDocumentation": "Korisnik je klikom na link na drugom sajtu došao do vašeg sajta. %1$sPogledajte%2$s izveštaj za više detalja.",
"WebsitesReportDocumentation": "U ovoj tabeli možete da vidite koji sajtovi su upućivali korisnike na vaš sajt. %s Klikom na red tabele možete videti koja adresa je povezana sa vašim sajtom.",
"WidgetExternalWebsites": "Lista eksternih sajtova",
"WidgetGetAll": "Sve reference",
diff --git a/plugins/Referrers/lang/sv.json b/plugins/Referrers/lang/sv.json
index 99319376dd..771d1788b9 100644
--- a/plugins/Referrers/lang/sv.json
+++ b/plugins/Referrers/lang/sv.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Den här rapporten visar all din hänvisningstrafik i en sammanslagen rapport, den listar alla webbsidor, nyckelord och kampanjer som dina besökare har använt sig av för att hitta din webbsida.",
"Campaigns": "Kampanjer",
- "CampaignsDocumentation": "Besökare som kom till din webbplats som resulterades av en kampanj. %s Se rapporten %s för mer information.",
- "CampaignsReportDocumentation": "Rapporten visar vilka kampanjer som har lett besökare till din webbplats. %s För mer information om hur du spårar kampanjer, läs %skampanjernas dokumentation på piwik.org%s",
+ "CampaignsDocumentation": "Besökare som kom till din webbplats som resulterades av en kampanj. %1$s Se rapporten %2$s för mer information.",
+ "CampaignsReportDocumentation": "Rapporten visar vilka kampanjer som har lett besökare till din webbplats. %1$s För mer information om hur du spårar kampanjer, läs %2$skampanjernas dokumentation på piwik.org%3$s",
"ColumnCampaign": "Kampanj",
"ColumnSearchEngine": "Sökmotor",
"ColumnSocial": "Sociala nätverk",
@@ -27,7 +27,7 @@
"ReferrersOverview": "Översikt för hänvisningar",
"ReferrerTypes": "Hänvisningstyper",
"SearchEngines": "Sökmotorer",
- "SearchEnginesDocumentation": "En besökare hänvisades till din webbplats genom en sökmotor. %s se %s rapport för mer detaljer.",
+ "SearchEnginesDocumentation": "En besökare hänvisades till din webbplats genom en sökmotor. %1$s se %2$s rapport för mer detaljer.",
"SearchEnginesReportDocumentation": "Rapporten visar vilka sökmotorer som hänvisat användare till din webbplats. %s Genom att klicka på en rad i tabellen så kan du se vad användarna sökte på, på en specifik sökmotor.",
"SocialFooterMessage": "Det här är en delmängd av webbplatsrapporten till vänster. Den filtrerar bort andra webbplatser så du kan jämföra hänvisningarna från sociala nätverk.",
"Socials": "Sociala Nätverk",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "Visa alla hänvisningar",
"ViewReferrersBy": "Visa hänvisningar efter %s",
"Websites": "Webbsidor",
- "WebsitesDocumentation": "Besökaren följde en länk på en annan webbplats som länkade till din webbplats. %s Se rapporten %s för mer information.",
+ "WebsitesDocumentation": "Besökaren följde en länk på en annan webbplats som länkade till din webbplats. %1$s Se rapporten %2$s för mer information.",
"WebsitesReportDocumentation": "I denna tabell kan du se vilka webbplatser som hänvisade besökare till din webbplats. %s Genom att klicka på en rad i tabellen så kan du se vilka webbadresser som länkarna till din webbplats var på.",
"WidgetExternalWebsites": "Lista på externa webbsidor",
"WidgetGetAll": "Alla hänvisningar",
diff --git a/plugins/Referrers/lang/tl.json b/plugins/Referrers/lang/tl.json
index cd2b2f5adc..9a54a489d4 100644
--- a/plugins/Referrers/lang/tl.json
+++ b/plugins/Referrers/lang/tl.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Ang ulat na ito ay nagpapakita ng lahat ng referrers sa pinag-isang ulat ng nakalista ang lahat ng websites Mga keywords at campaigns na ginamit ng iyong bisita upang makita ang iyong website",
"Campaigns": "Mga Kampanya",
- "CampaignsDocumentation": "Ang iyong mga bisita na mula sa iyong website ay result ng isang campaign. %s Tignan ang %s ulat para sa karagdagang mga detalye.",
- "CampaignsReportDocumentation": "Ang ulat na ito ay nagpapakita ng campaigns kung saan galing ang iyong mga bisita sa iyong website. %s Para sa karagdagang impormasyon tungkol sa tracking campaigns. basahin ang dokumentasyon ng %s campaigns sa piwik.org %s",
+ "CampaignsDocumentation": "Ang iyong mga bisita na mula sa iyong website ay result ng isang campaign. %1$s Tignan ang %2$s ulat para sa karagdagang mga detalye.",
+ "CampaignsReportDocumentation": "Ang ulat na ito ay nagpapakita ng campaigns kung saan galing ang iyong mga bisita sa iyong website. %1$s Para sa karagdagang impormasyon tungkol sa tracking campaigns. basahin ang dokumentasyon ng %2$s campaigns sa piwik.org %3$s",
"ColumnCampaign": "Kampanya",
"ColumnSearchEngine": "Search Engine",
"ColumnSocial": "Social network",
@@ -25,7 +25,7 @@
"Referrers": "Mga Referrer",
"ReferrersOverview": "Mga Referrer ng Pangkalahatang-pananaw",
"SearchEngines": "Search Engines",
- "SearchEnginesDocumentation": "Ang isang bisita na mula sa iyong website sa ay galing sa isang search engine. %s Tingnan ang mga ulat ang %s para sa karagdagang detalye.",
+ "SearchEnginesDocumentation": "Ang isang bisita na mula sa iyong website sa ay galing sa isang search engine. %1$s Tingnan ang mga ulat ang %2$s para sa karagdagang detalye.",
"SearchEnginesReportDocumentation": "Ang ulat na ito ay mag-papakita kung saang search engines na referred ang user papunta sa iyong website. %s Sa pamamagitan ng pag-click sa hilera ng table maari mong makita kung ano-ano ang hinahanap ng user sa partikular na search engine.",
"SocialFooterMessage": "Ito ay isang subset ng mga ulat ng website mula sa kaliwa. Ito ay nagsasala ng ibat-ibang website upang e-kumpara mismo sa mga referrer social network.",
"Socials": "Social Networks",
@@ -42,7 +42,7 @@
"ViewAllReferrers": "Tingnan ang lahat ng mga Referrer",
"ViewReferrersBy": "Tingnan ang mga Referrer sa pamamagitan ng %s",
"Websites": "Websites",
- "WebsitesDocumentation": "Ang mga bisita na mula sa ibang website na nagpunta sa iyong site. %s Tignan ang %s ulat para sa karagdatang detalye.",
+ "WebsitesDocumentation": "Ang mga bisita na mula sa ibang website na nagpunta sa iyong site. %1$s Tignan ang %2$s ulat para sa karagdatang detalye.",
"WebsitesReportDocumentation": "Sa table na ito maari mong makita kung saang websites galing ang iyong mga bisita papunta sa iyong websites. %s sa pamamagitan ng pag click sa isang hilera sa table maari mong makita kung aling mga URLs ang mga naka nakalink sa iyong website.",
"WidgetExternalWebsites": "Mga website referrer",
"WidgetGetAll": "Lahat ng mga Referrer",
diff --git a/plugins/Referrers/lang/vi.json b/plugins/Referrers/lang/vi.json
index d558ea90d7..af32eac253 100644
--- a/plugins/Referrers/lang/vi.json
+++ b/plugins/Referrers/lang/vi.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "Báo cáo này cho thấy tất cả sự chỉ dẫn của bạn trong một báo cáo, liệt kê tất cả các trang web, từ khóa tìm kiếm và Chiến dịch được sử dụng bởi khách truy cập để tìm trang web của bạn.",
"Campaigns": "Các chiến dịch",
- "CampaignsDocumentation": "Khách truy cập đã tới trang web của bạn như là kết quả của một chiến dịch. %s Xem báo cáo %s để biết thêm chi tiết.",
- "CampaignsReportDocumentation": "Báo cáo này cho thấy các chiến dịch dẫn khách truy cập vào trang web của bạn. %s Để biết thêm thông tin về các chiến dịch theo dõi, đọc tài liệu chiến dịch %s trên %s piwik.org",
+ "CampaignsDocumentation": "Khách truy cập đã tới trang web của bạn như là kết quả của một chiến dịch. %1$s Xem báo cáo %2$s để biết thêm chi tiết.",
+ "CampaignsReportDocumentation": "Báo cáo này cho thấy các chiến dịch dẫn khách truy cập vào trang web của bạn. %1$s Để biết thêm thông tin về các chiến dịch theo dõi, đọc tài liệu chiến dịch %2$s trên %3$s piwik.org",
"ColumnCampaign": "Chiến dịch",
"ColumnSearchEngine": "Công cụ tìm kiếm",
"ColumnSocial": "Mạng xã hội",
@@ -25,7 +25,7 @@
"Referrers": "giới thiệu",
"ReferrersOverview": "Tổng quan các người được giới thiệu",
"SearchEngines": "Các công cụ tìm kiếm",
- "SearchEnginesDocumentation": "Một du khách được chỉ dẫn đến trang web của bạn bởi một công cụ tìm kiếm. %s Xem báo cáo %s để biết thêm chi tiết.",
+ "SearchEnginesDocumentation": "Một du khách được chỉ dẫn đến trang web của bạn bởi một công cụ tìm kiếm. %1$s Xem báo cáo %2$s để biết thêm chi tiết.",
"SearchEnginesReportDocumentation": "Báo cáo này cho thấy những công cụ tìm kiếm đã chỉ dẫn người dùng tới website của bạn. %s bằng cách click trên một hàng trong bảng, bạn có thể thấy những người dùng đã tìm kiếm để sử dụng một công cụ tìm kiếm cụ thể.",
"SocialFooterMessage": "Đây là một tập hợp các trang web báo cáo bên trái. Nó lọc ra các trang web khác để bạn có thể so sánh trực tiếp các sự chỉ dẫn mạng xã hội của bạn.",
"Socials": "Các mạng xã hội",
@@ -42,7 +42,7 @@
"ViewAllReferrers": "Xem tất cả các Referrer",
"ViewReferrersBy": "Xem các Referrer bằng %s",
"Websites": "Websites",
- "WebsitesDocumentation": "Người truy cập đã theo một liên kết trên trang web khác dẫn đến trang web của bạn. %s Xem báo cáo %s để biết thêm chi tiết.",
+ "WebsitesDocumentation": "Người truy cập đã theo một liên kết trên trang web khác dẫn đến trang web của bạn. %1$s Xem báo cáo %2$s để biết thêm chi tiết.",
"WebsitesReportDocumentation": "Trong bảng này, bạn có thể thấy những website đã chỉ dẫn khách truy cập tới trang web của bạn. %s bằng cách click trên một hàng trong bảng, bạn có thể thấy những URL mà các link tới website của bạn đã dùng.",
"WidgetExternalWebsites": "Các Website Referrer",
"WidgetGetAll": "Tất cả các người được giới thiệu",
diff --git a/plugins/Referrers/lang/zh-cn.json b/plugins/Referrers/lang/zh-cn.json
index 983f89210b..8657ceda11 100644
--- a/plugins/Referrers/lang/zh-cn.json
+++ b/plugins/Referrers/lang/zh-cn.json
@@ -2,8 +2,8 @@
"Referrers": {
"AllReferrersReportDocumentation": "本报表集中显示所有访问来源,列出了访客用于查找您的网站而用到的所有的网站、搜索关键词和广告。",
"Campaigns": "广告活动",
- "CampaignsDocumentation": "广告活动带来的访客。%s 查看 %s 报表了解详情。",
- "CampaignsReportDocumentation": "本报表显示哪些广告活动带来了访客,%s 广告跟踪的详情,请看 %s piwik.org 上的广告活动文档 %s",
+ "CampaignsDocumentation": "广告活动带来的访客。%1$s 查看 %2$s 报表了解详情。",
+ "CampaignsReportDocumentation": "本报表显示哪些广告活动带来了访客,%1$s 广告跟踪的详情,请看 %2$s piwik.org 上的广告活动文档 %3$s",
"ColumnCampaign": "广告活动",
"ColumnSearchEngine": "搜索引擎名称",
"ColumnSocial": "社交网络",
@@ -27,7 +27,7 @@
"ReferrersOverview": "来源总表",
"ReferrerTypes": "引荐类型",
"SearchEngines": "搜索引擎",
- "SearchEnginesDocumentation": "访客来自搜索引擎。%s 查看 %s 报表了解详情。",
+ "SearchEnginesDocumentation": "访客来自搜索引擎。%1$s 查看 %2$s 报表了解详情。",
"SearchEnginesReportDocumentation": "本报表显示哪些搜索引擎给您带来了访客。%s 点击表中的一行,可查看访客使用该搜索引擎搜索的内容。",
"SocialFooterMessage": "这是左边的网站报表的子集,过滤了其他的网站,这样您就能直接比较社交网络来源。",
"Socials": "社交网络",
@@ -44,7 +44,7 @@
"ViewAllReferrers": "查看所有来源",
"ViewReferrersBy": "查看来源 %s",
"Websites": "网站",
- "WebsitesDocumentation": "访客在另外一个网站上点击链接来到您的网站。%s 查看 %s 报表了解详情。",
+ "WebsitesDocumentation": "访客在另外一个网站上点击链接来到您的网站。%1$s 查看 %2$s 报表了解详情。",
"WebsitesReportDocumentation": "本报表显示哪些网站给您带来了访客, %s 点击表中的一行,可查看来源链接的网址。",
"WidgetExternalWebsites": "来源网站",
"WidgetGetAll": "所有来源",
diff --git a/plugins/Referrers/tests/System/expected/test_Referrers_getReferrerType__API.getProcessedReport_day.xml b/plugins/Referrers/tests/System/expected/test_Referrers_getReferrerType__API.getProcessedReport_day.xml
index 58601dc41b..52262c275a 100644
--- a/plugins/Referrers/tests/System/expected/test_Referrers_getReferrerType__API.getProcessedReport_day.xml
+++ b/plugins/Referrers/tests/System/expected/test_Referrers_getReferrerType__API.getProcessedReport_day.xml
@@ -875,249 +875,311 @@
<result prettyDate="Wednesday, February 3, 2010"/>
<result prettyDate="Thursday, February 4, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Friday, February 5, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Saturday, February 6, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Sunday, February 7, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Monday, February 8, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Tuesday, February 9, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Wednesday, February 10, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Thursday, February 11, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Friday, February 12, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Saturday, February 13, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Sunday, February 14, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Monday, February 15, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Tuesday, February 16, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Wednesday, February 17, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Thursday, February 18, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Friday, February 19, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Saturday, February 20, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Sunday, February 21, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Monday, February 22, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Tuesday, February 23, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Wednesday, February 24, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Thursday, February 25, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Friday, February 26, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Saturday, February 27, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Sunday, February 28, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Monday, March 1, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Tuesday, March 2, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Wednesday, March 3, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Thursday, March 4, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Friday, March 5, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
<result prettyDate="Saturday, March 6, 2010">
<row>
+ <segment>referrerType==search</segment>
<idsubdatatable>2</idsubdatatable>
</row>
<row>
+ <segment>referrerType==website</segment>
<idsubdatatable>3</idsubdatatable>
</row>
</result>
diff --git a/plugins/ScheduledReports/API.php b/plugins/ScheduledReports/API.php
index aeef2f2ffb..3391b581c8 100644
--- a/plugins/ScheduledReports/API.php
+++ b/plugins/ScheduledReports/API.php
@@ -733,7 +733,7 @@ class API extends \Piwik\Plugin\API
private static function validateReportHour($hour)
{
if (!is_numeric($hour) || $hour < 0 || $hour > 23) {
- throw new Exception('Invalid hour schedule. Should be anything from 0 to 23 inclusive.');
+ throw new Exception('Invalid hour schedule. Should be anything from 0 to 23 inclusive.');
}
}
diff --git a/plugins/ScheduledReports/lang/ar.json b/plugins/ScheduledReports/lang/ar.json
index 8929db69bc..175654515b 100644
--- a/plugins/ScheduledReports/lang/ar.json
+++ b/plugins/ScheduledReports/lang/ar.json
@@ -2,7 +2,7 @@
"ScheduledReports": {
"AlsoSendReportToTheseEmails": "أرسل التقرير إلى هذه العناوين أيضاً (عنوان لكل سطر):",
"AreYouSureDeleteReport": "هل ترغب حقاً في حذف هذا التقرير وجدولته الزمنية؟",
- "CancelAndReturnToReports": "إلغاء و%s رجوع إلى قائمة التقارير%s",
+ "CancelAndReturnToReports": "إلغاء و%1$s رجوع إلى قائمة التقارير%2$s",
"CreateAndScheduleReport": "أنشئ وأعد جدولاً لتقرير",
"CreateReport": "إنشاء تقرير",
"DescriptionOnFirstPage": "وصف التقرير سيتم عرضه في الصفحة الأولى من التقرير.",
diff --git a/plugins/ScheduledReports/lang/be.json b/plugins/ScheduledReports/lang/be.json
index d3a488895c..53b6c6720a 100644
--- a/plugins/ScheduledReports/lang/be.json
+++ b/plugins/ScheduledReports/lang/be.json
@@ -2,7 +2,7 @@
"ScheduledReports": {
"AlsoSendReportToTheseEmails": "Акрамя таго, адправіць справаздачу на гэтыя электронныя адрасы (па аднаму ў радку):",
"AreYouSureDeleteReport": "Вы сапраўды жадаеце выдаліць гэты даклад і яго расклад?",
- "CancelAndReturnToReports": "Адмяніць і %sвярнуцца да спісу справаздач %s",
+ "CancelAndReturnToReports": "Адмяніць і %1$sвярнуцца да спісу справаздач %2$s",
"CreateAndScheduleReport": "Стварыць справаздачу і зрабіць расклад",
"CreateReport": "Стварыць справаздачу",
"DescriptionOnFirstPage": "Апісанне справаздачы будзе адлюстроўвацца на першай старонцы справаздачы.",
@@ -12,7 +12,7 @@
"FrontPage": "Галоўная старонка",
"MonthlyScheduleHelp": "Штомесячны расклад: справаздача будзе адпраўлена першым днём кожнага месяца.",
"MustBeLoggedIn": "Вы павінны ўвайсці ў сістэму для стварэння і планавання карыстацкіх справаздач.",
- "Pagination": "Старонка %s з %s",
+ "Pagination": "Старонка %1$s з %2$s",
"PiwikReports": "Piwik справаздачы",
"PleaseFindAttachedFile": "Вы можаце знайсці ў прыкладаемым файле вашу %1$s справаздачу для %2$s.",
"PleaseFindBelow": "Ніжэй вы знойдзеце вашу %1$s справаздачу для %2$s.",
diff --git a/plugins/ScheduledReports/lang/bg.json b/plugins/ScheduledReports/lang/bg.json
index a9a322edf4..528614f8fc 100644
--- a/plugins/ScheduledReports/lang/bg.json
+++ b/plugins/ScheduledReports/lang/bg.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(по подразбиране) Покажи таблицата с отчетите (Графики само за ключови метрични данни)",
"AlsoSendReportToTheseEmails": "Също така изпраща доклада до тези имейли (по един на ред):",
"AreYouSureDeleteReport": "Сигурни ли сте че искате да изтриете този доклад и разписание?",
- "CancelAndReturnToReports": "Откажи и се %s върни в списъка с отчети %s",
+ "CancelAndReturnToReports": "Откажи и се %1$s върни в списъка с отчети %2$s",
"CreateAndScheduleReport": "Създайте доклад и разписание",
"CreateReport": "Създайте доклад",
"CustomVisitorSegment": "Персонализиран посетителски сегмент:",
@@ -20,7 +20,7 @@
"MonthlyScheduleHelp": "Месечен график: докладът ще бъде изпратен на първия ден от всеки месец.",
"MustBeLoggedIn": "Трябва да сте влязъл, за да създавате и планирате персонализирани отчети.",
"NoRecipients": "Този доклад все още няма получатели",
- "Pagination": "Страница %s от %s",
+ "Pagination": "Страница %1$s от %2$s",
"PiwikReports": "Piwik доклади",
"PleaseFindAttachedFile": "Моля, вижте в прикачения си файл %1$s доклад за %2$s.",
"PleaseFindBelow": "Моля намерете по-долу вашият %1$s отчет за %2$s.",
diff --git a/plugins/ScheduledReports/lang/ca.json b/plugins/ScheduledReports/lang/ca.json
index 9f88b079d1..3e5a3934f7 100644
--- a/plugins/ScheduledReports/lang/ca.json
+++ b/plugins/ScheduledReports/lang/ca.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(per defecte) Mostra les taules d'informe (Gràfiques només per les mètriques clau)",
"AlsoSendReportToTheseEmails": "Envía també l'informe als seguents correus electrònics (un per línia):",
"AreYouSureDeleteReport": "Esteu segurs que voleu eliminar aquest informe i la seva programació?",
- "CancelAndReturnToReports": "Cancela i %storna a la llista d'informes%s",
+ "CancelAndReturnToReports": "Cancela i %1$storna a la llista d'informes%2$s",
"CreateAndScheduleReport": "Crear i programar un informe",
"CreateReport": "Crear un informe",
"DescriptionOnFirstPage": "La descripció del informes es mostrarà a la primera pàgina del informe.",
@@ -19,7 +19,7 @@
"MonthlyScheduleHelp": "Programació mensual: L'informe s'enviarà el primer día de cada més.",
"MustBeLoggedIn": "Heu d'estar identificat per crear i programar informes personalitzats",
"NoRecipients": "Aquest informe no té destinataris",
- "Pagination": "Pàgina %s de %s",
+ "Pagination": "Pàgina %1$s de %2$s",
"PiwikReports": "Informes Piwik",
"PleaseFindAttachedFile": "Podeu trobar al fitxer adjunt el vostre informe %1$s per a %2$s.",
"PleaseFindBelow": "A continuació podeu trobar el vostre informe %1$s per a %2$s.",
diff --git a/plugins/ScheduledReports/lang/cs.json b/plugins/ScheduledReports/lang/cs.json
index caa1cb992e..1eea0758c1 100644
--- a/plugins/ScheduledReports/lang/cs.json
+++ b/plugins/ScheduledReports/lang/cs.json
@@ -4,45 +4,45 @@
"AggregateReportsFormat_GraphsOnly": "Pouze zobrazit grafy (ne tabulky hlášení)",
"AggregateReportsFormat_TablesAndGraphs": "Zobrazit tabulky hlášení a grafy pro všechna hlášení",
"AggregateReportsFormat_TablesOnly": "(Výchozí) zobrazit tabulky hlášení (grafy pouze pro klíčová měření)",
- "AlsoSendReportToTheseEmails": "Odesílat hlášení také na tyto emaily (jeden email na řádek):",
+ "AlsoSendReportToTheseEmails": "Odesílat hlášení také na tyto e-maily (jeden e-mail na řádek):",
"AreYouSureDeleteReport": "Opravdu chcete odstranit toto hlášení a jeho plán?",
- "CancelAndReturnToReports": "Zrušit a %svrátit se k seznamu hlášení%s",
+ "CancelAndReturnToReports": "Zrušit a %1$svrátit se k seznamu hlášení%2$s",
"CreateAndScheduleReport": "Vytvořit a naplánovat hlášení",
"CreateReport": "Vytvořit hlášení",
"CustomVisitorSegment": "Vlastní segment návštěvníka",
"DescriptionOnFirstPage": "Popis hlášení bude zobrazen na první jeho straně.",
"DisplayFormat_TablesOnly": "Pouze zobrazit tabulky (žádné grafy)",
"EmailHello": "Ahoj,",
- "EmailReports": "Poslat hlášení na email",
+ "EmailReports": "E-mailová hlášení",
"EmailSchedule": "Plánování zasílání hlášení",
"EvolutionGraph": "Zobrazit historické grafy pro %s nejvyšších hodnot",
"FrontPage": "Hlavní strana",
- "PersonalEmailReports": "Osobní emailová hlášení",
+ "PersonalEmailReports": "Osobní e-mailová hlášení",
"MonthlyScheduleHelp": "Měsíční plán: hlášení bude odesláno první den měsíce",
"MustBeLoggedIn": "Musíte být přihlášen, abyste mohl vytvářet vlastní hlášení.",
"NoRecipients": "Toto hlášení nemá příjemce",
- "Pagination": "Stránka %s z %s",
+ "Pagination": "Stránka %1$s z %2$s",
"PiwikReports": "Hlášení Piwiku",
"PleaseFindAttachedFile": "Prosím najděte v přiloženém souboru %1$s hlášení pro %2$s",
"SentFromX": "Odesláno z %s.",
"PleaseFindBelow": "Najděte níže vaše %1$s hlášení pro %2$s.",
- "PluginDescription": "Vytvořte vlastní emailová hlášení a naplánujte jejich zaslání denně, týdně nebo měsíčně jednomu nebo více lidem. Je podporováno mnoho formátů (HTML, PDF, CSV, obrázky).",
+ "PluginDescription": "Vytvořte vlastní e-mailová hlášení a naplánujte jejich zaslání denně, týdně nebo měsíčně jednomu nebo více lidem. Je podporováno několik formátů (HTML, PDF, CSV, obrázky).",
"ReportFormat": "Formát hlášení",
"ReportHour": "Odeslat hlášení v %s hodin",
- "ReportIncludeNWebsites": "Hlášení bude obsahovat hlavní měření pro webové stránky, které mají aspoň jednnu návštěvu z %s aktuálně dostupných stránek.",
+ "ReportIncludeNWebsites": "Hlášení bude obsahovat hlavní měření pro všechny weby, které mají aspoň jednu návštěvu (z %s aktuálně dostupných webů).",
"ReportSent": "Hlášení posláno",
"ReportsIncluded": "Zahrnuté statistiky",
"ReportType": "Odeslat hlášení pomocí",
"ReportUpdated": "Hlášení aktualizováno",
- "Segment_Deletion_Error": "Tento segment nemůže být smazán nebo zneviditelněn, protože se používá k vytváření emailových hlášení %s. Zkuste to znovu poté, co ho z těchto hlášení odstraníte.",
- "Segment_Help": "Můžete zvolit existující segment, který bude aplikován na data v tomto emailovém hlášení. Segmenty můžete vytvářet a upravovat vlastní segmenty na vaší nástěnce %s(klikněte zde pro otevření)%s, pak klikněte na box \"%s\", pak \"%s\".",
+ "Segment_Deletion_Error": "Tento segment nemůže být smazán nebo zneviditelněn, protože se používá k vytváření e-mailových hlášení %s. Zkuste to znovu poté, co jej z těchto hlášení odstraníte.",
+ "Segment_Help": "Můžete zvolit existující segment, který bude aplikován na data v tomto e-mailovém hlášení. Segmenty můžete vytvářet a upravovat vlastní segmenty na vaší nástěnce %1$s(klikněte zde pro otevření)%2$s, pak klikněte na box \"%3$s\", pak \"%4$s\".",
"SegmentAppliedToReports": "Segment %s je aplikován na hlášení.",
"SendReportNow": "Odeslat hlášení ihned",
"SendReportTo": "Odeslat hlášení",
"SentToMe": "Odeslat hlášení mně",
"TableOfContent": "Seznam hlášení",
"ThereIsNoReportToManage": "Pro stránky %s neexistuje žádné hlášení, které lze spravovat",
- "TopLinkTooltip": "Vytvářejte vlastní hlášení, která budou automaticky doručena na vaši nebo zákazníkovu emailovou adresu.",
+ "TopLinkTooltip": "Vytvářejte vlastní hlášení, která budou automaticky doručena na vaši nebo zákazníkovu e-mailovou adresu.",
"TopOfReport": "Zpět nahoru",
"UpdateReport": "Aktualizovat hlášení",
"WeeklyScheduleHelp": "Týdenní plán: hlášení bude odesláno každé pondělí"
diff --git a/plugins/ScheduledReports/lang/da.json b/plugins/ScheduledReports/lang/da.json
index 14014a1873..6df700fd82 100644
--- a/plugins/ScheduledReports/lang/da.json
+++ b/plugins/ScheduledReports/lang/da.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(standard) Vis tabeller (diagrammer kun for nøglemålinger)",
"AlsoSendReportToTheseEmails": "Send også rapporten til disse e-mails (en e-mail pr linje):",
"AreYouSureDeleteReport": "Er du sikker på du vil slette rapporten og tidsplanen?",
- "CancelAndReturnToReports": "Annuller og %sretur til listen over rapporter%s",
+ "CancelAndReturnToReports": "Annuller og %1$sretur til listen over rapporter%2$s",
"CreateAndScheduleReport": "Opret og planlæg rapport",
"CreateReport": "Opret rapport",
"CustomVisitorSegment": "Brugerdefineret besøgssegment:",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "Månedlig tidsplan: Rapporten vil blive sendt den første dag i hver måned.",
"MustBeLoggedIn": "Du skal være logget på for at oprette og planlægge brugerdefinerede rapporter.",
"NoRecipients": "Denne rapport har ingen modtagere",
- "Pagination": "Side %s af %s",
+ "Pagination": "Side %1$s af %2$s",
"PiwikReports": "Piwik rapporter",
"PleaseFindAttachedFile": "Vedlagt i vedhæftede fil din %1$s rapport for %2$s.",
"PleaseFindBelow": "Find rapporten nedenfor %1$s for %2$s.",
@@ -32,7 +32,7 @@
"ReportType": "Send rapport via",
"ReportUpdated": "Rapport opdateret",
"Segment_Deletion_Error": "Dette segment kan ikke slettes eller gøres usynligt for andre, da det bruges til at generere e-mailrapporter %s. Fjern evt. dette segment fra disse rapporter og prøv igen.",
- "Segment_Help": "Du kan vælge et eksisterende brugerdefineret segment til anvendelse på oplysninger i e-mail rapporten. Du kan oprette og redigere brugerdefinerede segmenter i kontrolpanelet %s (klik her for at åbne) %s, og klik derefter på \"%s\" feltet, \"%s\".",
+ "Segment_Help": "Du kan vælge et eksisterende brugerdefineret segment til anvendelse på oplysninger i e-mail rapporten. Du kan oprette og redigere brugerdefinerede segmenter i kontrolpanelet %1$s (klik her for at åbne) %2$s, og klik derefter på \"%3$s\" feltet, \"%4$s\".",
"SegmentAppliedToReports": "Segmentet '%s' anvendes til rapporterne.",
"SendReportNow": "Send rapport nu",
"SendReportTo": "Send rapport til",
diff --git a/plugins/ScheduledReports/lang/de.json b/plugins/ScheduledReports/lang/de.json
index 7e4ed30e0b..05da1537f2 100644
--- a/plugins/ScheduledReports/lang/de.json
+++ b/plugins/ScheduledReports/lang/de.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(Standard) Tabellenberichte anzeigen (Graphen nur für die wichtigsten Metriken)",
"AlsoSendReportToTheseEmails": "Bericht zusätzlich an folgende E-Mail-Adressen senden (eine Adresse pro Zeile):",
"AreYouSureDeleteReport": "Sind Sie sicher, dass Sie diesen Bericht und dessen Zeitplan löschen möchten?",
- "CancelAndReturnToReports": "Abbrechen und %szur Liste der Berichte zurückkehren%s",
+ "CancelAndReturnToReports": "Abbrechen und %1$szur Liste der Berichte zurückkehren%2$s",
"CreateAndScheduleReport": "Einen Bericht erstellen und planen",
"CreateReport": "Bericht erstellen",
"CustomVisitorSegment": "Benutzerdefiniertes Besuchersegment:",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "Monatlich: Bericht wird immer am ersten Tag des Monats verschickt.",
"MustBeLoggedIn": "Sie müssen angemeldet sein, um Berichte anlegen und versenden zu können.",
"NoRecipients": "Dieser Bericht hat keine Empfänger",
- "Pagination": "Seite %s von %s",
+ "Pagination": "Seite %1$s von %2$s",
"PiwikReports": "Piwik-Berichte",
"PleaseFindAttachedFile": "Sie finden in der angehängten Datei Ihren Bericht (Intervall: %1$s) für %2$s.",
"SentFromX": "Gesendet von %s",
@@ -35,7 +35,7 @@
"ReportType": "Bericht versenden via",
"ReportUpdated": "Bericht aktualisiert",
"Segment_Deletion_Error": "Dieses Segment kann nicht gelöscht oder für andere Benutzer unsichtbar gemacht werden, da es zur Generierung der E-Mail-Berichte %s verwendet wird. Bitte versuchen Sie es erneut, nachdem Sie dieses Segment aus den Berichten entfernt haben.",
- "Segment_Help": "Sie können ein Segment wählen das auf die Daten des E-Mail-Berichts angewendet werden soll. Sie können Segmente auf dem Dashboard anlegen oder bearbeiten %s(hier klicken zum öffnen)%s, klicken Sie dann auf die \"%s\" Box und dann auf \"%s\".",
+ "Segment_Help": "Sie können ein Segment wählen das auf die Daten des E-Mail-Berichts angewendet werden soll. Sie können Segmente auf dem Dashboard anlegen oder bearbeiten %1$s(hier klicken zum öffnen)%2$s, klicken Sie dann auf die \"%3$s\" Box und dann auf \"%4$s\".",
"SegmentAppliedToReports": "Das Segment '%s' wird auf die Berichte angewendet.",
"SendReportNow": "Bericht jetzt senden",
"SendReportTo": "Bericht senden an",
diff --git a/plugins/ScheduledReports/lang/el.json b/plugins/ScheduledReports/lang/el.json
index cea172536b..5c5ea4b5ec 100644
--- a/plugins/ScheduledReports/lang/el.json
+++ b/plugins/ScheduledReports/lang/el.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(προεπιλογή) Προβολή Πινάκων Αναφορών (Διαγράμματα μόνο για μετρήσεις κλειδιού)",
"AlsoSendReportToTheseEmails": "Να αποσταλεί η αναφορά και σε αυτές τις ηλεκτρονικές διευθύνσεις (μία σε κάθε γραμμή):",
"AreYouSureDeleteReport": "Θέλετε σίγουρα να διαγράψετε αυτή την αναφορά και τον προγραμματισμό της;",
- "CancelAndReturnToReports": "Άκυρο και %sεπιστροφή στη λίστα αναφορών%s",
+ "CancelAndReturnToReports": "Άκυρο και %1$sεπιστροφή στη λίστα αναφορών%2$s",
"CreateAndScheduleReport": "Δημιουργήστε και Προγραμματίστε μια αναφορά",
"CreateReport": "Δημιουργία Αναφοράς",
"CustomVisitorSegment": "Προσαρμοσμένο Τμήμα Επισκεπτών:",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "Μηνιαίος προγραμματισμός: η αναφορά θα αποσταλεί την πρώτη μέρα κάθε μήνα.",
"MustBeLoggedIn": "Πρέπει να έχετε συνδεθεί για να δημιουργήσετε και να προγραμματίσετε προσαρμοσμένες αναφορές.",
"NoRecipients": "Αυτή η αναφορά δεν έχει παραλήπτες",
- "Pagination": "Σελίδα %s από %s",
+ "Pagination": "Σελίδα %1$s από %2$s",
"PiwikReports": "Αναφορές Piwik",
"PleaseFindAttachedFile": "Βρείτε στο συνημμένο αρχείο την αναφορά %1$s για %2$s.",
"SentFromX": "Στάλθηκε από %s.",
@@ -35,7 +35,7 @@
"ReportType": "Αποστολή αναφοράς μέσω",
"ReportUpdated": "Η αναφορά ενημερώθηκε",
"Segment_Deletion_Error": "Δεν είναι δυνατό να διαγραφεί το τμήμα ή να γίνει αόρατο σε άλλους χρήστες επειδή χρησιμοποιείται για τη δημιουργία των αναφορών ηλ. ταχυδρομείου %s. Παρακαλούμε δοκιμάστε πάλι αφού αφαιρέσετε το τμήμα αυτό από την αναφορά.",
- "Segment_Help": "Μπορείτε να επιλέξετε ένα υπάρχον προσαρμοσμένο τμήμα για να χρησιμοποιηθεί στα δεδομένα σε αυτή την αναφορά e-mail. Μπορείτε να δημιουργήσετε και να επεξεργαστείτε προσαρμοσμένα τμήματα στον πίνακα ελέγχου σας %s(κάντε κλικ για άνοιγμα)%s, μετά να κάνετε κλικ στο κουτί \"%s\" και μετά \"%s\".",
+ "Segment_Help": "Μπορείτε να επιλέξετε κάποιο υπάρχον προσαρμοσμένο τμήμα που θα εφαρμοστεί στα δεδομένα σε αυτή την αναφορά e-mail. Μπορείτε να δημιουργήσετε ή τροποποιήσετε προσαρμοσμένα τμήματα στον πίνακα ελέγχου σας %1$s(κάντε κλικ για άνοιγμα)%2$s, μετά κλικ στο πλήκτρο \"%3$s\" και μετά \"%4$s\".",
"SegmentAppliedToReports": "Το τμήμα '%s' εφαρμόζεται στις αναφορές.",
"SendReportNow": "Αποστολή Αναφοράς τώρα",
"SendReportTo": "Αποστολή αναφοράς σε",
diff --git a/plugins/ScheduledReports/lang/en.json b/plugins/ScheduledReports/lang/en.json
index f6b41cbe51..a1ef702c9a 100644
--- a/plugins/ScheduledReports/lang/en.json
+++ b/plugins/ScheduledReports/lang/en.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(default) Display Report tables (Graphs only for key metrics)",
"AlsoSendReportToTheseEmails": "Also send the report to these emails (one email per line):",
"AreYouSureDeleteReport": "Are you sure you want to delete this report and its schedule?",
- "CancelAndReturnToReports": "Cancel and %sreturn to the list of reports%s",
+ "CancelAndReturnToReports": "Cancel and %1$sreturn to the list of reports%2$s",
"CreateAndScheduleReport": "Create and Schedule a report",
"CreateReport": "Create Report",
"CustomVisitorSegment": "Custom Visitor Segment:",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "Monthly schedule: report will be sent the first day of each month.",
"MustBeLoggedIn": "You must be logged in to create and schedule custom reports.",
"NoRecipients": "This report has no recipients",
- "Pagination": "Page %s of %s",
+ "Pagination": "Page %1$s of %2$s",
"PiwikReports": "Piwik Reports",
"PleaseFindAttachedFile": "Please find in attached file your %1$s report for %2$s.",
"SentFromX": "Sent from %s.",
@@ -35,7 +35,7 @@
"ReportType": "Send report via",
"ReportUpdated": "Report updated",
"Segment_Deletion_Error": "This segment cannot be deleted or made invisible to other users because it is used to generate email report(s) %s. Please retry after removing this segment from this report(s).",
- "Segment_Help": "You can select an existing custom segment to apply to data in this email report. You may create and edit custom segments in your dashboard %s(click here to open)%s, then click on the \"%s\" box, then \"%s\".",
+ "Segment_Help": "You can select an existing custom segment to apply to data in this email report. You may create and edit custom segments in your dashboard %1$s(click here to open)%2$s, then click on the \"%3$s\" box, then \"%4$s\".",
"SegmentAppliedToReports": "The segment '%s' is applied to the reports.",
"SendReportNow": "Send Report now",
"SendReportTo": "Send report to",
diff --git a/plugins/ScheduledReports/lang/es.json b/plugins/ScheduledReports/lang/es.json
index b2d67c4f14..451bafb8ea 100644
--- a/plugins/ScheduledReports/lang/es.json
+++ b/plugins/ScheduledReports/lang/es.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(por defecto) Mostrar Reporte de tablas (gráficas sólo para mediciones clave)",
"AlsoSendReportToTheseEmails": "También enviar el informe a estos correos electrónicos (uno por línea):",
"AreYouSureDeleteReport": "¿Está seguro que desea eliminar este informe y su envío programado?",
- "CancelAndReturnToReports": "Cancelar y %svolver a la lista de informes%s",
+ "CancelAndReturnToReports": "Cancelar y %1$svolver a la lista de informes%2$s",
"CreateAndScheduleReport": "Crear y programar un informe",
"CreateReport": "Crear informe",
"CustomVisitorSegment": "Segmento de visitante personalizado:",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "Envío mensual: los informes serán enviados el primer día de cada mes.",
"MustBeLoggedIn": "Debe haber iniciado sesión para crear y programar informes personalizados.",
"NoRecipients": "Este informe no tiene destinatarios",
- "Pagination": "Página %s de %s",
+ "Pagination": "Página %1$s de %2$s",
"PiwikReports": "Informes Piwik",
"PleaseFindAttachedFile": "Encuentre el informe en el archivo adjunto su %1$s informe por %2$s.",
"PleaseFindBelow": "Por favor encuentre debajo su %1$s informe para %2$s.",
@@ -33,7 +33,7 @@
"ReportType": "Enviar informe vía",
"ReportUpdated": "Informe actualizado",
"Segment_Deletion_Error": "Este segmento no puede ser eliminado o hacerse invisible para otros usuarios porque es utilizado para crear informe(s) por correo electrónico %s. Por favor elimine este segmento del informe(s) y vuelva a intentar.",
- "Segment_Help": "Puede elegir un segmento personalizado existente para aplicar a los datos de este informe por correo electrónico. Puede crear y modificar segmentos personalizados en su tablero %s (haga clic aquí para abrir)%s, haciendo clic en la casilla \"%s\" y luego en \"%s\".",
+ "Segment_Help": "Puede elegir un segmento personalizado existente para aplicar a los datos de este informe por correo electrónico. Puede crear y modificar segmentos personalizados en su tablero %1$s (haga clic aquí para abrir)%2$s, haciendo clic en la casilla \"%3$s\" y luego en \"%4$s\".",
"SegmentAppliedToReports": "El segmento '%s' está siendo aplicado a los informes.",
"SendReportNow": "Enviar informe ahora",
"SendReportTo": "Enviar informe a",
diff --git a/plugins/ScheduledReports/lang/et.json b/plugins/ScheduledReports/lang/et.json
index 826b335795..f3e3e743cf 100644
--- a/plugins/ScheduledReports/lang/et.json
+++ b/plugins/ScheduledReports/lang/et.json
@@ -5,7 +5,7 @@
"AggregateReportsFormat_TablesAndGraphs": "Kuva tabelid ja graafikud kõikidele raportitele",
"AggregateReportsFormat_TablesOnly": "(vaikimisi) Kuva raportite tabelid (ja olulistele mõõdikutele ka graafikud)",
"AlsoSendReportToTheseEmails": "Saada raport ka järgnevatele e-posti aadressitele (iga aadress eraldi real):",
- "CancelAndReturnToReports": "Katkesta ja %snaase raportite nimekirja%s",
+ "CancelAndReturnToReports": "Katkesta ja %1$snaase raportite nimekirja%2$s",
"CreateAndScheduleReport": "Loo ja ajasta raporti käivitumine",
"CreateReport": "Loo raport",
"CustomVisitorSegment": "Kohandatud külastaja segment:",
@@ -13,7 +13,7 @@
"EmailReports": "E-posti raportid",
"EmailSchedule": "E-posti ajastamine",
"FrontPage": "Esileht",
- "Pagination": "Lehekülg %s \/ %s",
+ "Pagination": "Lehekülg %1$s \/ %2$s",
"PiwikReports": "Piwiku raportid",
"PleaseFindAttachedFile": "Manusest leiad oma %1$s raporti %2$s jaoks.",
"ReportFormat": "Raporti formaat",
diff --git a/plugins/ScheduledReports/lang/fa.json b/plugins/ScheduledReports/lang/fa.json
index 75c956962d..5d9fb1af8e 100644
--- a/plugins/ScheduledReports/lang/fa.json
+++ b/plugins/ScheduledReports/lang/fa.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(پیش فرض) نمایش جدول گزارش (نمودار فقط برای معیارهای کلیدی)",
"AlsoSendReportToTheseEmails": "همچنین گزارش به این ایمیل ها فرستاده می شود (هر ایمیل در یک خط):",
"AreYouSureDeleteReport": "آیا شما مطمئن هستید که میخواهید این گزارش و زمانبندی را حذف کنید؟",
- "CancelAndReturnToReports": "لغو و بازگشت%s به لیست گزارشات%s",
+ "CancelAndReturnToReports": "لغو و بازگشت%1$s به لیست گزارشات%2$s",
"CreateAndScheduleReport": "ایجاد و زمانبندی یک گزارش",
"CreateReport": "ایجاد گزارش",
"CustomVisitorSegment": "بخش سفارشی بازدید کنندگان:",
@@ -20,7 +20,7 @@
"MonthlyScheduleHelp": "زمانبندی ماهانه: گزارش در اولین روز هر ماه فرستاده خواهد شد.",
"MustBeLoggedIn": "برای ساخت و زمانبندی گزارشات دلخواه باید ابتدا وارد شوید",
"NoRecipients": "این گزارش هیچ دریافت کننده ای ندارد.",
- "Pagination": "صفحه %s از %s",
+ "Pagination": "صفحه %1$s از %2$s",
"PiwikReports": "گزارش های Piwik",
"PleaseFindBelow": "لطفا در زیر پیدا نمایید %1$s گزارش برای %2$s.",
"ReportFormat": "فرمت گزارش",
diff --git a/plugins/ScheduledReports/lang/fi.json b/plugins/ScheduledReports/lang/fi.json
index 15225c4e42..28cece703c 100644
--- a/plugins/ScheduledReports/lang/fi.json
+++ b/plugins/ScheduledReports/lang/fi.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(oletus) Näytä rapottien taulukot (kuvaajat vain tärkeimmille arvoille)",
"AlsoSendReportToTheseEmails": "Lähetä raportti myös näihin osoitteisiin (yksi osoite per rivi):",
"AreYouSureDeleteReport": "Haluatko varmasti poistaa tämän raportin?",
- "CancelAndReturnToReports": "Peruuta ja %spalaa raporttilistaan%s",
+ "CancelAndReturnToReports": "Peruuta ja %1$spalaa raporttilistaan%2$s",
"CreateAndScheduleReport": "Luo ja ajasta raportti",
"CreateReport": "Luo raportti",
"CustomVisitorSegment": "Asiakasryhmä:",
@@ -20,7 +20,7 @@
"MonthlyScheduleHelp": "Kuukausittainen aikataulu: raportti lähetetään kuun ensimmäisenä päivänä.",
"MustBeLoggedIn": "Sinun täytyy olla kirjautuneena sisään ennen kustomoitujen raporttien luomista ja ajastamista.",
"NoRecipients": "Tällä raportilla ei ole vastaanottajia",
- "Pagination": "Sivu %s\/%s",
+ "Pagination": "Sivu %1$s\/%2$s",
"PiwikReports": "Piwikin raportit",
"PleaseFindAttachedFile": "Liitteenä on raporttisi %1$s sivulle %2$s.",
"PleaseFindBelow": "Alla on raporttisi %1$s sivulle %2$s.",
@@ -31,7 +31,7 @@
"ReportType": "Lähetä raportti",
"ReportUpdated": "Raportti päivitetty",
"Segment_Deletion_Error": "Tätä ryhmää ei voida poistaa tai tehdä näkymättömäksi muille käyttäjille, koska sitä käytetään sähköpostiraportin tai -raporttien %s luomiseen. Yritä uudelleen poistettuasi tämä ryhmä raport(e)ista.",
- "Segment_Help": "Voit valita olemassa olevan kävijäryhmän sovellettavaksi dataan tässä sähköpostiraportissa. Voit luoda ja muokata kävijäryhmiä ohjauspaneelista %s(klikkaa tästä avataksesi)%s, klikkaa sitten ruutua \"%s%, sen jälkeen \"%s\".",
+ "Segment_Help": "Voit valita olemassa olevan kävijäryhmän sovellettavaksi dataan tässä sähköpostiraportissa. Voit luoda ja muokata kävijäryhmiä ohjauspaneelista %1$s(klikkaa tästä avataksesi)%2$s, klikkaa sitten ruutua \"%3$s, sen jälkeen \"%4$s\".",
"SegmentAppliedToReports": "Segmentti '%s' on asetettu raportteihin.",
"SendReportNow": "Lähetä raportti nyt",
"SendReportTo": "Lähetä raportti osoitteeseen",
diff --git a/plugins/ScheduledReports/lang/fr.json b/plugins/ScheduledReports/lang/fr.json
index 97521be39a..25681b63fc 100644
--- a/plugins/ScheduledReports/lang/fr.json
+++ b/plugins/ScheduledReports/lang/fr.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(défaut) afficher les tableaux de rapport (Graphique uniquement pour les indicateurs clés)",
"AlsoSendReportToTheseEmails": "Envoyer le rapport aussi à ces adresses e-mail (une par ligne) :",
"AreYouSureDeleteReport": "Êtes-vous sûr de vouloir supprimer ce rapport et sa planification?",
- "CancelAndReturnToReports": "Annuler et %s retourner à la liste des rapports%s",
+ "CancelAndReturnToReports": "Annuler et %1$s retourner à la liste des rapports%2$s",
"CreateAndScheduleReport": "Créer et planifier un rapport",
"CreateReport": "Créer le rapport",
"CustomVisitorSegment": "Segment de visiteur personnalisé :",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "Planification mensuelle : le rapport sera envoyé le premier jour de chaque mois.",
"MustBeLoggedIn": "Vous devez être connecté pour créer et planifier des rapports personnalisés.",
"NoRecipients": "Ce rapport n'a aucun destinataire",
- "Pagination": "Page %s sur %s",
+ "Pagination": "Page %1$s sur %2$s",
"PiwikReports": "Rapports Piwik",
"PleaseFindAttachedFile": "Veuillez trouver en pièce jointe votre rapport %1$s pour %2$s.",
"SentFromX": "Envoyé depuis %s.",
@@ -35,7 +35,7 @@
"ReportType": "Envoyer le rapport via",
"ReportUpdated": "Rapport mis à jour",
"Segment_Deletion_Error": "Ce segment ne peut pas être supprimé ou rendu invisible aux autres utilisateurs car il est utilisé dans un ou plusieurs rapport(s) par courriel %s. Veuillez essayer à nouveau après avoir supprimé ce segment de ce(s) rapport(s).",
- "Segment_Help": "Vous pouvez sélectionner un segment personnalisé existant pour l'appliquer à des données dans ce rapport par courriel. Vous pouvez créer et modifier les segments personnalisés depuis votre tableau de bord %s(cliquez ici pour l'ouvrir)%s, cliquez ensuite sur la zone \"%s\", puis \"%s\".",
+ "Segment_Help": "Vous pouvez sélectionner un segment personnalisé existant pour l'appliquer à des données dans ce rapport par courriel. Vous pouvez créer et modifier les segments personnalisés depuis votre tableau de bord %1$s(cliquez ici pour l'ouvrir)%2$s, cliquez ensuite sur la zone \"%3$s\", puis \"%4$s\".",
"SegmentAppliedToReports": "Le segment '%s' est appliqué au rapport.",
"SendReportNow": "Envoyer le rapport maintenant",
"SendReportTo": "Envoyer le(s) rapport(s) à",
diff --git a/plugins/ScheduledReports/lang/hi.json b/plugins/ScheduledReports/lang/hi.json
index 90a935b5ee..9edabca7fb 100644
--- a/plugins/ScheduledReports/lang/hi.json
+++ b/plugins/ScheduledReports/lang/hi.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(डिफ़ॉल्ट) प्रदर्शन की रिपोर्ट तालिकाएँ(केवल प्रमुख मैट्रिक का रेखाचित्र)",
"AlsoSendReportToTheseEmails": "इसके अलावा इन ईमेल (प्रति पंक्ति एक ईमेल) को रिपोर्ट भेजने के लिए:",
"AreYouSureDeleteReport": "क्या आप इस रिपोर्ट को और इसके निर्धारित समय को हटाना चाहते हैं?",
- "CancelAndReturnToReports": "रद्द करें और %sरिपोर्ट की सूची पर वापस%s जाए",
+ "CancelAndReturnToReports": "रद्द करें और %1$sरिपोर्ट की सूची पर वापस%2$s जाए",
"CreateAndScheduleReport": "एक रिपोर्ट तैयार करें और कार्यक्रम तय करे",
"CreateReport": "रिपोर्ट बनाएँ",
"CustomVisitorSegment": "विशिष्ट आगंतुक खंड",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "मासिक अनुसूची: रिपोर्ट प्रत्येक माह के पहले दिन भेजी जाएगी.",
"MustBeLoggedIn": "तुम्हें विशिष्ट प्रतिवेदन बनाने और अनुसूची करने के लिए लॉग इन होना चाहिए.",
"NoRecipients": "इस रिपोर्ट में कोई प्राप्तकर्ता नहीं हैं",
- "Pagination": "%s का %s पृष्ठ",
+ "Pagination": "%1$s का %2$s पृष्ठ",
"PiwikReports": "Piwik प्रतिवेदन",
"PleaseFindAttachedFile": "संलग्न फाइल में %2$s के लिए अपने %1$s रिपोर्ट मिल दें",
"PleaseFindBelow": "%2$s के लिए अपने %1$s रिपोर्ट के नीचे खोजे .",
@@ -29,7 +29,7 @@
"ReportIncludeNWebsites": "रिपोर्ट में कम से कम एक यात्रा (वेबसाइटों से %sवर्तमान में उपलब्ध) है कि सभी वेबसाइटों के मुख्य मैट्रिक्स शामिल होंगे.",
"ReportsIncluded": "सांख्यिकी शामिल",
"ReportType": "के माध्यम से रिपोर्ट भेजें",
- "Segment_Help": "आप इस ईमेल रिपोर्ट में डेटा को लागू करने के लिए एक मौजूदा विशिष्ट खंड का चयन कर सकते हैं. तुम्हें अपने डैशबोर्ड में विशिष्ट खंडों %s(खोलने के लिए यहां क्लिक करें)%s बना सकते हैं और संपादित कर सकते हैं, तो \"%s\", फिर \"%s\" के बॉक्स पर क्लिक करें.",
+ "Segment_Help": "आप इस ईमेल रिपोर्ट में डेटा को लागू करने के लिए एक मौजूदा विशिष्ट खंड का चयन कर सकते हैं. तुम्हें अपने डैशबोर्ड में विशिष्ट खंडों %1$s(खोलने के लिए यहां क्लिक करें)%2$s बना सकते हैं और संपादित कर सकते हैं, तो \"%3$s\", फिर \"%4$s\" के बॉक्स पर क्लिक करें.",
"SegmentAppliedToReports": "खंड '%s' को रिपोर्ट करने के लिए लागू किया जाता है.",
"SendReportNow": "अब रिपोर्ट भेजें",
"SendReportTo": "को रिपोर्ट भेजें",
diff --git a/plugins/ScheduledReports/lang/id.json b/plugins/ScheduledReports/lang/id.json
index 3d589736a1..a3a23bca06 100644
--- a/plugins/ScheduledReports/lang/id.json
+++ b/plugins/ScheduledReports/lang/id.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(asali) Tampilkan tabel Laporan (Grafik hanya kunci metrik)",
"AlsoSendReportToTheseEmails": "Juga kirim laporan kepada surel berikut (satu surel tiap baris):",
"AreYouSureDeleteReport": "Apakah Anda yakin menghapus laporan dan jadwal ini?",
- "CancelAndReturnToReports": "Batalkan dan %skembali ke daftar laporan%s",
+ "CancelAndReturnToReports": "Batalkan dan %1$skembali ke daftar laporan%2$s",
"CreateAndScheduleReport": "Buat dan Jadwalkan laporan",
"CreateReport": "Buat Laporan",
"CustomVisitorSegment": "pecahan pengunjung kustom:",
@@ -20,7 +20,7 @@
"MonthlyScheduleHelp": "Laporan bulanan: laporan akan dikirim satiap hari pertama tiap bulan.",
"MustBeLoggedIn": "Anda harus masuk-log untuk membuat dan mengatur jadwal laporan.",
"NoRecipients": "Laporan ini tidak memiliki penerima",
- "Pagination": "Halaman %s dari %s",
+ "Pagination": "Halaman %1$s dari %2$s",
"PiwikReports": "Laporan Piwik",
"PleaseFindAttachedFile": "Silakan temukan berkas lampiran laporan %1$s Anda untuk %2$s.",
"PleaseFindBelow": "Silakan temukan di bawah laporan %1$s Anda untuk %2$s.",
@@ -28,7 +28,7 @@
"ReportIncludeNWebsites": "Laporan akan dimasukkan dalam matriks utama untuk setiap situs dengan sekurangnya satu kunjungan (dari situs %s saat ini yang tersedia).",
"ReportsIncluded": "Sertakan Statistik",
"ReportType": "Kirim laporan melalui",
- "Segment_Help": "Anda dapat menyeleksi pecahan kustom untuk diterapkan pada laporan surel ini. Anda dapat membuat dan menyunting pecahan kustom dalam panel kendali Anda %s(klik di sini untuk membuka)%s, lalu klik di kotak \"%s\", kemudian \"%s\".",
+ "Segment_Help": "Anda dapat menyeleksi pecahan kustom untuk diterapkan pada laporan surel ini. Anda dapat membuat dan menyunting pecahan kustom dalam panel kendali Anda %1$s(klik di sini untuk membuka)%2$s, lalu klik di kotak \"%3$s\", kemudian \"%4$s\".",
"SegmentAppliedToReports": "Pecahan '%s' telah diterapkan pada laporan.",
"SendReportNow": "Kirim Laporan sekarang",
"SendReportTo": "Kirim laporan ke",
diff --git a/plugins/ScheduledReports/lang/it.json b/plugins/ScheduledReports/lang/it.json
index bf796fd1c3..447e4fe26c 100644
--- a/plugins/ScheduledReports/lang/it.json
+++ b/plugins/ScheduledReports/lang/it.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(predefinito) Mostra tabelle (Grafici solo per le metriche chiave)",
"AlsoSendReportToTheseEmails": "Manda il report anche a questi indirizzi email (un indirizzo email per riga):",
"AreYouSureDeleteReport": "Sei sicuro di voler eliminare questo report e la sua programmazione?",
- "CancelAndReturnToReports": "Annulla e %storna alla lista dei report%s",
+ "CancelAndReturnToReports": "Annulla e %1$storna alla lista dei report%2$s",
"CreateAndScheduleReport": "Crea e programma un report",
"CreateReport": "Crea Report",
"CustomVisitorSegment": "Segento Personalizzato Visitatore:",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "Pianificazione mensile: il report verrà inviato il primo giorno di ogni mese.",
"MustBeLoggedIn": "Devi avere effettuato l'accesso per creare e pianificare i report personalizzati.",
"NoRecipients": "Questo report non ha destinatari",
- "Pagination": "Pagina %s di %s",
+ "Pagination": "Pagina %1$s di %2$s",
"PiwikReports": "Report di Piwik",
"PleaseFindAttachedFile": "Potete trovare nel file allegato il tuo %1$s report per %2$s.",
"SentFromX": "Inviato da %s",
@@ -35,7 +35,7 @@
"ReportType": "Invia report tramite",
"ReportUpdated": "Report aggiornato",
"Segment_Deletion_Error": "Questo segmento non può essere eliminato o reso invisibile agli altri utenti perchè è utilizzato per generare %s report(s) email. Si prega di riprovare dopo aver rimosso questo segmento da questo report.",
- "Segment_Help": "È possibile selezionare un segmento personalizzato esistente da applicare ai dati in questo report e-mail. È possibile creare e modificare segmenti personalizzati nella tua dashboard %s(clicca qui per aprire)%s, quindi clicca sulla casella di controllo \"%s\", quindi su \"%s\".",
+ "Segment_Help": "È possibile selezionare un segmento personalizzato esistente da applicare ai dati in questo report e-mail. È possibile creare e modificare segmenti personalizzati nella vostra dashboard%1$s (clicca qui per aprire)%2$s, quindi fare clic sulla casella di controllo \"%3$s\", quindi su \"%4$s\".",
"SegmentAppliedToReports": "Ai report è applicato il segmento'%s'.",
"SendReportNow": "Invia report adesso",
"SendReportTo": "Invia il report a",
diff --git a/plugins/ScheduledReports/lang/ja.json b/plugins/ScheduledReports/lang/ja.json
index 677a778017..b3231e5abb 100644
--- a/plugins/ScheduledReports/lang/ja.json
+++ b/plugins/ScheduledReports/lang/ja.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(デフォルト)リポート表を表示(グラフはキーメトリックスのみ)",
"AlsoSendReportToTheseEmails": "以下のメールアドレスにも送信(1行ごとに1アドレス)",
"AreYouSureDeleteReport": "このリポートとスケジュールを削除しますか?",
- "CancelAndReturnToReports": "キャンセルして%sリポート一覧へ戻る%s",
+ "CancelAndReturnToReports": "キャンセルして%1$sリポート一覧へ戻る%2$s",
"CreateAndScheduleReport": "リポートの作成とスケジュール",
"CreateReport": "リポートの作成",
"CustomVisitorSegment": "カスタムビジターセグメント:",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "月間スケジュール: リポートは毎月1日に送信されます。",
"MustBeLoggedIn": "カスタムリポートの作成とスケジュールにはログインする必要があります。",
"NoRecipients": "このレポートは、受取人がいません",
- "Pagination": "%s の %s ページ",
+ "Pagination": "%1$s の %2$s ページ",
"PiwikReports": "Piwik リポート",
"PleaseFindAttachedFile": "%2$s の %1$s のリポートを添付しています。",
"SentFromX": "%s から送信されます。",
@@ -35,7 +35,7 @@
"ReportType": "経由でレポートを送信",
"ReportUpdated": "アップデートされたレポート",
"Segment_Deletion_Error": "このセグメントは、E メールレポート %s の作成に使用されるため、削除したり、他のユーザーに対し非表示にすることができません。このレポートからこのセグメントを削除した後、再度お試しください。",
- "Segment_Help": "この E メールレポートでデータを適用するには、既存のカスタムセグメントを選択してください。ダッシュボード %s (ここをクリックして開く) %s でカスタムセグメントの作成、編集が可能です。次に、\"%s\" ボックスをクリックし、\"%s\"。",
+ "Segment_Help": "この E メールレポートでデータを適用するには、既存のカスタムセグメントを選択してください。ダッシュボード %1$s (ここをクリックして開く) %2$s でカスタムセグメントの作成、編集が可能です。次に、\"%3$s\" ボックスをクリックし、\"%4$s\"。",
"SegmentAppliedToReports": "セグメント '%s' はレポートに適用されました。",
"SendReportNow": "ただちにリポートを送信",
"SendReportTo": "リポートの送信先",
diff --git a/plugins/ScheduledReports/lang/ko.json b/plugins/ScheduledReports/lang/ko.json
index cdbfd197bf..d9976eb6e4 100644
--- a/plugins/ScheduledReports/lang/ko.json
+++ b/plugins/ScheduledReports/lang/ko.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(기본) 보고표 표시 (그래프는 키 메트릭스만)",
"AlsoSendReportToTheseEmails": "다음 이메일 주소로 전송 (한 줄에 하나의 주소):",
"AreYouSureDeleteReport": "이 보고서 및 일정을 삭제 하시겠습니까?",
- "CancelAndReturnToReports": "취소하고 %s보고서 목록으로 이동%s",
+ "CancelAndReturnToReports": "취소하고 %1$s보고서 목록으로 이동%2$s",
"CreateAndScheduleReport": "보고서 작성 및 일정",
"CreateReport": "보고서 생성",
"CustomVisitorSegment": "맞춤형 방문자 세그먼트:",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "월간 스케줄: 보고서는 매월 1일에 발송됩니다.",
"MustBeLoggedIn": "보고서 작성 및 일정을 사용자정의하려면 로그인해야합니다.",
"NoRecipients": "이 보고서의 수신자가 없음",
- "Pagination": "페이지 %s \/ %s",
+ "Pagination": "페이지 %1$s \/ %2$s",
"PiwikReports": "Piwik 보고서",
"PleaseFindAttachedFile": "%2$s의 %1$s의 보고서를 첨부합니다.",
"SentFromX": "%s에서 보내기",
@@ -35,7 +35,7 @@
"ReportType": "보고서 발송 via",
"ReportUpdated": "보고서 업데이트",
"Segment_Deletion_Error": "이 세그멘트는 다른 사용자들이 삭제나 감추도록 할 수 없습니다. 왜냐하면 %s의 이메일 보고서(들)를 만드는데 사용되기 때문입니다. 해당 보고서(들)에서 이 세그먼트를 제거하신 후 다시 시도하시길 바랍니다.",
- "Segment_Help": "존재하는 맞춤형 세그멘트를 해당 이메일 보고서에 선택하여 적용할 수 있습니다. 대쉬보드 %s(열기)%s에서 맞춤형 세그멘트를 만들거나 수정하신 후 \"%s\" 박스를 클릭하세요. 그 후 \"%s\"하세요.",
+ "Segment_Help": "존재하는 맞춤형 세그멘트를 해당 이메일 보고서에 선택하여 적용할 수 있습니다. 대쉬보드 %1$s(열기)%2$s에서 맞춤형 세그멘트를 만들거나 수정하신 후 \\\"%3$s\\\" 박스를 클릭하세요. 그 후 \\\"%4$s\\\"하세요.",
"SegmentAppliedToReports": "세그먼트 '%s'는 보고서에 적용됩니다.",
"SendReportNow": "보고서 즉시 제출",
"SendReportTo": "보고서를 전송할 대상",
diff --git a/plugins/ScheduledReports/lang/lt.json b/plugins/ScheduledReports/lang/lt.json
index 34906945ba..73a1536acf 100644
--- a/plugins/ScheduledReports/lang/lt.json
+++ b/plugins/ScheduledReports/lang/lt.json
@@ -8,7 +8,7 @@
"EmailSchedule": "Siuntimo tvarkaraštis",
"FrontPage": "Pirminis puslapis",
"MonthlyScheduleHelp": "Kas mėnesį: ataskaita bus išsiųsta kiekvieno mėnesio pirmąją dieną.",
- "Pagination": "Puslapis %s iš %s",
+ "Pagination": "Puslapis %1$s iš %2$s",
"PiwikReports": "Piwik ataskaitos",
"PleaseFindAttachedFile": "Prašome peržiūrėti %1$s ataskaitų failą skirtą %2$s.",
"ReportFormat": "Ataskaitos formatas",
diff --git a/plugins/ScheduledReports/lang/lv.json b/plugins/ScheduledReports/lang/lv.json
index 51fbad5cdf..9efdf00bc2 100644
--- a/plugins/ScheduledReports/lang/lv.json
+++ b/plugins/ScheduledReports/lang/lv.json
@@ -4,7 +4,7 @@
"EmailHello": "Sveiki,",
"EmailReports": "E-pasta atskaites",
"FrontPage": "Pirmā lapa",
- "Pagination": "%s. lapa no %s",
+ "Pagination": "%1$s. lapa no %2$s",
"PiwikReports": "Piwik atskaites",
"ReportFormat": "Atskaites formāts",
"ReportsIncluded": "Iekļautā statistika",
diff --git a/plugins/ScheduledReports/lang/nb.json b/plugins/ScheduledReports/lang/nb.json
index 5e9517a0d0..8cebd44bfa 100644
--- a/plugins/ScheduledReports/lang/nb.json
+++ b/plugins/ScheduledReports/lang/nb.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(standard) Vis rapporttabeller (grafer kun for nøkkeltall)",
"AlsoSendReportToTheseEmails": "Send også rapporten til disse e-postadressene (en adresse per linje):",
"AreYouSureDeleteReport": "Er du sikker på at du vil slette denne rapporten og timeplanen?",
- "CancelAndReturnToReports": "Avbryt og %sreturner til listen over rapporter%s",
+ "CancelAndReturnToReports": "Avbryt og %1$sreturner til listen over rapporter%2$s",
"CreateAndScheduleReport": "Lag og planlegg en rapport",
"CreateReport": "Lag rapport",
"CustomVisitorSegment": "Tilpasset besøkssegment:",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "Månedsplan: Rapportene blir sendt første dag i hver måned.",
"MustBeLoggedIn": "Du må være logget inn for å lage og planlegge tilpassede rapporter.",
"NoRecipients": "Denne rapporten har ingen mottakere",
- "Pagination": "Side %s av %s",
+ "Pagination": "Side %1$s av %2$s",
"PiwikReports": "Piwik-rapporter",
"PleaseFindAttachedFile": "I den vedlagte filen finner du din %1$s rapport for %2$s.",
"SentFromX": "Sendt fra %s.",
@@ -35,7 +35,7 @@
"ReportType": "Send rapport via",
"ReportUpdated": "Rapport oppdatert",
"Segment_Deletion_Error": "Dette segmentet kan ikke slettes eller gjøres usynlig for andre brukere fordi det brukes for å generere e-postrapporten(e) %s. Vennligst prøv igjen etter å ha fjernet segmentet fra denne (disse) rapportene.",
- "Segment_Help": "Du kan velge et eksisterende tilpasset segment som skal brukes på dataene i denne e-postrapporten. Du kan lage og redigere tilpassede segmenter i din oversikt %s(klikk her for å åpne)%s, så klikker du på boksen «%s», så «%s».",
+ "Segment_Help": "Du kan velge et eksisterende tilpasset segment som skal brukes på dataene i denne e-postrapporten. Du kan lage og redigere tilpassede segmenter i din oversikt %1$s(klikk her for å åpne)%2$s, så klikker du på boksen «%3$s», så «%4$s».",
"SegmentAppliedToReports": "Segmentet «%s» er applisert til rapportene.",
"SendReportNow": "Send rapport nå",
"SendReportTo": "Send rapport til",
diff --git a/plugins/ScheduledReports/lang/nl.json b/plugins/ScheduledReports/lang/nl.json
index 05a9c9d430..b1843bb88e 100644
--- a/plugins/ScheduledReports/lang/nl.json
+++ b/plugins/ScheduledReports/lang/nl.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(standaard) Toon tabellen (grafieken alleen voor belangrijke gegevens)",
"AlsoSendReportToTheseEmails": "Verzend het rapport tevens naar de volgende e-mail adressen (één per lijn):",
"AreYouSureDeleteReport": "Weet u zeker dat u dit rapport en tijdsschema wilt verwijderen?",
- "CancelAndReturnToReports": "Annuleren en %s terug naar de lijst met rapporten%s",
+ "CancelAndReturnToReports": "Annuleren en %1$s terug naar de lijst met rapporten%2$s",
"CreateAndScheduleReport": "Maak en plan een rapport",
"CreateReport": "Maak een rapport",
"CustomVisitorSegment": "Aangepast bezoekers segment:",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "Maandelijks versturen: Rapport zal worden verzonden elke eerste dag van de maand.",
"MustBeLoggedIn": "U moet ingelogd zijn om aangepaste rapporten te maken en in te plannen.",
"NoRecipients": "Dit rapport heeft geen ontvangers",
- "Pagination": "Pagina %s van %s",
+ "Pagination": "Pagina %1$s van %2$s",
"PiwikReports": "Piwik rapporten",
"PleaseFindAttachedFile": "In de bijlage treft u uw %1$s rapport voor %2$s.",
"SentFromX": "Verzonden vanaf %s.",
diff --git a/plugins/ScheduledReports/lang/pl.json b/plugins/ScheduledReports/lang/pl.json
index d4406d95be..ba349d0aeb 100644
--- a/plugins/ScheduledReports/lang/pl.json
+++ b/plugins/ScheduledReports/lang/pl.json
@@ -5,7 +5,7 @@
"AggregateReportsFormat_TablesAndGraphs": "Wyświetlane tabeli i wykresów dla wszystkich raportów",
"AggregateReportsFormat_TablesOnly": "(domyślny) Wyświetlane tabele raportu (wykresy tylko dla kluczowych wskaźników)",
"AlsoSendReportToTheseEmails": "Również wyślij raport na podane adresy e-mail (jeden na linię):",
- "CancelAndReturnToReports": "Anuluj i %spowróć do listy raportów%s",
+ "CancelAndReturnToReports": "Anuluj i %1$spowróć do listy raportów%2$s",
"CreateAndScheduleReport": "Utwórz i zaplanuj raport",
"CreateReport": "Utwórz raport",
"DescriptionOnFirstPage": "Opis będzie wyświetlany na pierwszej stronie raportu.",
diff --git a/plugins/ScheduledReports/lang/pt-br.json b/plugins/ScheduledReports/lang/pt-br.json
index d81731b770..e12cfc3eed 100644
--- a/plugins/ScheduledReports/lang/pt-br.json
+++ b/plugins/ScheduledReports/lang/pt-br.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(padrão) Exibir relatório em tabelas (Gráficos apenas para as principais métricas)",
"AlsoSendReportToTheseEmails": "Também enviar o relatório para esses e-mails (um e-mail por linha):",
"AreYouSureDeleteReport": "Tem certeza de que deseja excluir este relatório e sua programação?",
- "CancelAndReturnToReports": "Cancelar e %svoltar a lista de relatórios%s",
+ "CancelAndReturnToReports": "Cancelar e %1$svoltar a lista de relatórios%2$s",
"CreateAndScheduleReport": "Criar e agendar um relatório",
"CreateReport": "Criar relatório",
"CustomVisitorSegment": "Segmento de visitantes personalizado:",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "Programação mensal: relatório será enviado no primeiro dia de cada mês.",
"MustBeLoggedIn": "Você precisa estar logado para criar e agendar relatórios personalizados.",
"NoRecipients": "Este relatório não tem destinatários",
- "Pagination": "Página %s de %s",
+ "Pagination": "Página %1$s de %2$s",
"PiwikReports": "Relatórios Piwik",
"PleaseFindAttachedFile": "Por favor, encontrar no arquivo anexo o relatório %1$s para %2$s.",
"SentFromX": "Enviado de %s.",
@@ -35,7 +35,7 @@
"ReportType": "Enviar relatório via",
"ReportUpdated": "Relatório atualizado",
"Segment_Deletion_Error": "Este segmento não pode ser apagado ou tornado invisível para outros usuários por ser usado para gerar o relatório de e-mail(s) %s. Por favor, tente novamente após remover este segmento deste relatório(s).",
- "Segment_Help": "Você pode selecionar um segmento personalizado existente para aplicar aos dados deste relatório de e-mail. Você pode criar e editar segmentos personalizados em seu painel de controle %s (clique aqui para abrir) %s , em seguida, clique na caixa de \"%s\", então \"%s\".",
+ "Segment_Help": "Você pode selecionar um segmento personalizado existente para aplicar aos dados deste relatório de e-mail. Você pode criar e editar segmentos personalizados em seu painel de controle %1$s (clique aqui para abrir) %2$s , em seguida, clique na caixa de \"%3$s\", então \"%4$s\".",
"SegmentAppliedToReports": "O Segmento %s foi aplicado aos relatórios.",
"SendReportNow": "Enviar relatório agora",
"SendReportTo": "Enviar relatório para",
diff --git a/plugins/ScheduledReports/lang/pt.json b/plugins/ScheduledReports/lang/pt.json
index 3c2e889c4d..18c1db9140 100644
--- a/plugins/ScheduledReports/lang/pt.json
+++ b/plugins/ScheduledReports/lang/pt.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(por omissão) Visualização de tabelas de relatórios (gráficos apenas para métricas chave)",
"AlsoSendReportToTheseEmails": "Também enviar o relatório para estes emails (um email por linha):",
"AreYouSureDeleteReport": "Tem certeza de que deseja excluir este relatório e o seu agendamento?",
- "CancelAndReturnToReports": "Cancelar e %sretornar para a lista de relatórios %s",
+ "CancelAndReturnToReports": "Cancelar e %1$sretornar para a lista de relatórios %2$s",
"CreateAndScheduleReport": "Criar e agendar um relatório",
"CreateReport": "Criar um relatório",
"DescriptionOnFirstPage": "A descrição do relatório será exibido na primeira página do relatório.",
@@ -16,7 +16,7 @@
"FrontPage": "Primeira Página",
"MonthlyScheduleHelp": "Agenda mensal: o relatório será enviado no primeiro dia de cada mês.",
"MustBeLoggedIn": "Deve estar autenticado para criar e agendar relatórios personalizados.",
- "Pagination": "Página %s de %s",
+ "Pagination": "Página %1$s de %2$s",
"PiwikReports": "Relatórios Piwik",
"PleaseFindAttachedFile": "Por favor encontre anexado o seu %1$s relatório para %2$s.",
"PleaseFindBelow": "Veja abaixo o relatório %1$s para %2$s.",
diff --git a/plugins/ScheduledReports/lang/ro.json b/plugins/ScheduledReports/lang/ro.json
index ecb7b82451..5fb7404789 100644
--- a/plugins/ScheduledReports/lang/ro.json
+++ b/plugins/ScheduledReports/lang/ro.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(implicit) Raport tabele de afișare (Diagramele numai pentru indicatorii cheie)",
"AlsoSendReportToTheseEmails": "De asemenea, trimite raportul la aceste e-mailuri (un e-mail pe linie):",
"AreYouSureDeleteReport": "Sigur doriți să ștergeți acest raport și programul său?",
- "CancelAndReturnToReports": "Anuleaza și %sreveni-o la lista de rapoarte%s",
+ "CancelAndReturnToReports": "Anuleaza și %1$sreveni-o la lista de rapoarte%2$s",
"CreateAndScheduleReport": "Creați și Programați un raport",
"CreateReport": "Creare raport",
"CustomVisitorSegment": "Segment personalizat de vizitatori",
@@ -20,7 +20,7 @@
"MonthlyScheduleHelp": "Program lunar: Raportul va fi trimis în prima zi a fiecărei luni.",
"MustBeLoggedIn": "Trebuie să fii logat pentru a crea și programa rapoarte personalizate.",
"NoRecipients": "Acest raport nu are destinatari",
- "Pagination": "Pagina %s din %s",
+ "Pagination": "Pagina %1$s din %2$s",
"PiwikReports": "Rapoarte Piwik",
"PleaseFindAttachedFile": "Vă rugăm să găsiți în fișierul tau atașat %1$s raportul pentru %2$s.",
"PleaseFindBelow": "Va rugam sa gasiti mai jos raport ul tau de %1$s pentru %2$s.",
@@ -31,7 +31,7 @@
"ReportType": "Expediază raportul prin",
"ReportUpdated": "Raport actualizat",
"Segment_Deletion_Error": "Acest segment nu poate fi șters sau făcut invizibil pentru alți utilizatori, deoarece este folosit pentru a genera un raport de e-mail (e)%s. Vă rugăm să încercați din nou după eliminarea acestui segment din acest raport .",
- "Segment_Help": "Puteți selecta un segment personalizat existent pentru a aplica la datele din acest email raport . Puteți crea și edita segmente personalizate în tabloul de bord %s(click aici pentru a deschide)%s, apoi faceți clic pe caseta \"%s\", apoi \"%s\".",
+ "Segment_Help": "Puteți selecta un segment personalizat existent pentru a aplica la datele din acest email raport . Puteți crea și edita segmente personalizate în tabloul de bord %1$s(click aici pentru a deschide)%2$s, apoi faceți clic pe caseta \"%3$s\", apoi \"%4$s\".",
"SegmentAppliedToReports": "Segmentul '%s' este aplicat la rapoarte.",
"SendReportNow": "Expediază raportul imediat",
"SendReportTo": "Exediază raportul către",
diff --git a/plugins/ScheduledReports/lang/ru.json b/plugins/ScheduledReports/lang/ru.json
index 081d34710d..d29d3b263e 100644
--- a/plugins/ScheduledReports/lang/ru.json
+++ b/plugins/ScheduledReports/lang/ru.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(по умолчанию) Отображать таблицы отчетов (графики только для ключевых показетелей)",
"AlsoSendReportToTheseEmails": "Также отправлять отчеты на слудующие e-mail адреса (по одному в каждой строке):",
"AreYouSureDeleteReport": "Вы уверены, что хотите удалить отчет и его расписание?",
- "CancelAndReturnToReports": "Отменить и %sвернуться к списку отчетов%s",
+ "CancelAndReturnToReports": "Отменить и %1$sвернуться к списку отчетов%2$s",
"CreateAndScheduleReport": "Создать и настроить расписание отчетов",
"CreateReport": "Создать отчетность",
"DescriptionOnFirstPage": "Описание отчета будет отображено на первой страние отчета.",
@@ -20,7 +20,7 @@
"MonthlyScheduleHelp": "Ежемесячное расписание: отчеты будут рассылаться каждый первый день месяца.",
"MustBeLoggedIn": "Вы должны быть авторизованы для создания и редактирования расписания отчетов.",
"NoRecipients": "У этого отчета нет получателей",
- "Pagination": "Страница %s из %s",
+ "Pagination": "Страница %1$s из %2$s",
"PiwikReports": "Отчеты Веб-аналитики",
"PleaseFindAttachedFile": "К этому письму прикреплен файл %1$s, являющийся отчетом для %2$s.",
"PleaseFindBelow": "Пожалуйста, ниже вашего %1$s отчет за %2$s.",
@@ -31,7 +31,7 @@
"ReportsIncluded": "Данные, включенные в отчет",
"ReportType": "Отправить отчет с помощью",
"ReportUpdated": "Отчёт обновлён",
- "Segment_Help": "Вы можете выбрать существующий пользовательский сегмент для применения к данным для этого отчёта. Вы можете создавать и редактировать пользовательские сегменты на панели инструментов %s(нажмите здесь, чтобы открыть)%s, далее нажмите на \"%s\", затем \"%s\".",
+ "Segment_Help": "Вы можете выбрать существующий пользовательский сегмент для применения к данным для этого отчёта. Вы можете создавать и редактировать пользовательские сегменты на панели инструментов %1$s(нажмите здесь, чтобы открыть)%2$s, далее нажмите на \"%3$s\", затем \"%4$s\".",
"SendReportNow": "Отправить отчет сейчас",
"SendReportTo": "Получатели",
"SentToMe": "Отправить мне",
diff --git a/plugins/ScheduledReports/lang/sl.json b/plugins/ScheduledReports/lang/sl.json
index 6867ebf308..6d88992f8c 100644
--- a/plugins/ScheduledReports/lang/sl.json
+++ b/plugins/ScheduledReports/lang/sl.json
@@ -9,7 +9,7 @@
"EmailSchedule": "Urnik Emailov",
"FrontPage": "Prva Stran",
"MonthlyScheduleHelp": "Mesečno poročilo: poročilo bo poslano vsak prvi dan v mesecu.",
- "Pagination": "Stran %s od %s",
+ "Pagination": "Stran %1$s od %2$s",
"PiwikReports": "Piwik Poročila",
"ReportFormat": "Format poročila",
"ReportsIncluded": "Statistika vključena",
diff --git a/plugins/ScheduledReports/lang/sq.json b/plugins/ScheduledReports/lang/sq.json
index c6e658cd13..2adc7d6ab3 100644
--- a/plugins/ScheduledReports/lang/sq.json
+++ b/plugins/ScheduledReports/lang/sq.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(parazgjedhje) Shfaq tabela Raporti (Grafikë vetëm për matjet kyçe)",
"AlsoSendReportToTheseEmails": "Dërgoje raportin edhe te këto email-e (një email për rresht):",
"AreYouSureDeleteReport": "Jeni i sigurt se doni të fshihet ky raport dhe planifikimi për të?",
- "CancelAndReturnToReports": "Anuloje dhe %skthehu te lista e raporteve%s",
+ "CancelAndReturnToReports": "Anuloje dhe %1$skthehu te lista e raporteve%2$s",
"CreateAndScheduleReport": "Krijoni dhe Planifikoni një raport",
"CreateReport": "Krijoje Raportin",
"DescriptionOnFirstPage": "Përshkrimi i raportit do të shfaqet te faqja e parë e raportit.",
@@ -16,7 +16,7 @@
"FrontPage": "Faqja Ballore",
"MonthlyScheduleHelp": "Planifikim mujor: raporti do të dërgohet ditën e parë të çdo muaji.",
"MustBeLoggedIn": "Duhet të jeni i futur që të krijoni dhe të planifikoni raporte të personalizuar.",
- "Pagination": "Faqja %s nga %s",
+ "Pagination": "Faqja %1$s nga %2$s",
"PiwikReports": "Raporte Piwik",
"PleaseFindAttachedFile": "Ju lutem, shihni te kartela bashkangjitur %1$s raportin tuaj për %2$s.",
"PleaseFindBelow": "Ju lutem, shihni më poshtë raportin tuaj %1$s për %2$s.",
diff --git a/plugins/ScheduledReports/lang/sr.json b/plugins/ScheduledReports/lang/sr.json
index e3666b4c53..4361ff7d96 100644
--- a/plugins/ScheduledReports/lang/sr.json
+++ b/plugins/ScheduledReports/lang/sr.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "Prikaži tabele izveštaja i grafikone za ključne metrike (podrazumevano)",
"AlsoSendReportToTheseEmails": "Izveštaje pošalji i na sledeće adrese (jedna elektronska adresa po liniji):",
"AreYouSureDeleteReport": "Da li ste sigurni da želite da obrišete ovaj izveštaj i njegovu zakazanu dinamiku slanja?",
- "CancelAndReturnToReports": "Prekini i %svrati se na spisak izveštaja%s",
+ "CancelAndReturnToReports": "Prekini i %1$svrati se na spisak izveštaja%2$s",
"CreateAndScheduleReport": "Kreiraj i zakaži izveštaj",
"CreateReport": "Kreiraj izveštaj",
"CustomVisitorSegment": "Korisnički definisan segment posetilaca:",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "Mesečno zakazivanje: izveštaj će biti poslat svakog prvog u mesecu.",
"MustBeLoggedIn": "Morate biti prijavljeni na sistem kako biste kreirali i zakazivali izveštaje.",
"NoRecipients": "Nije definisan primaoc",
- "Pagination": "Strana %s od %s",
+ "Pagination": "Strana %1$s od %2$s",
"PiwikReports": "Piwik izveštaji",
"PleaseFindAttachedFile": "u prilogu se nalazi vaš %1$s izveštaj za %2$s.",
"SentFromX": "Poslato od strane %s.",
@@ -35,7 +35,7 @@
"ReportType": "Pošalji izveštaj preko",
"ReportUpdated": "Izveštaj je ažuriran",
"Segment_Deletion_Error": "Ovaj segment nije moguće obrisati ili učiniti nevidljivim ostalim korisnicima pošto se on koristi za generisanje elektronskih izveštaja %s. Pokušajte ponovo nakon što ga uklonite iz izveštaja.",
- "Segment_Help": "Možete da izaberete postojeći segment kako biste ga primenili na podatke u ovom elektronskom izveštaju. Segmente možete kreirati i menjati preko konzole %s(kliknite ovde)%s, a zatim kliknite na \"%s\", pa na \"%s\".",
+ "Segment_Help": "Možete da izaberete postojeći segment kako biste ga primenili na podatke u ovom elektronskom izveštaju. Segmente možete kreirati i menjati preko konzole %1$s(kliknite ovde)%2$s, a zatim kliknite na \"%3$s\", pa na \"%4$s\".",
"SegmentAppliedToReports": "Segment '%s' je primenjen na izveštaje.",
"SendReportNow": "Pošalji sad",
"SendReportTo": "Pošalji na",
diff --git a/plugins/ScheduledReports/lang/sv.json b/plugins/ScheduledReports/lang/sv.json
index fe6835f27c..f454b002aa 100644
--- a/plugins/ScheduledReports/lang/sv.json
+++ b/plugins/ScheduledReports/lang/sv.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(standard) Visa rapporttabeller (Diagram endast för nyckeltal)",
"AlsoSendReportToTheseEmails": "Skicka också rapporterna till dessa e-postadresser (en e-postadress per rad):",
"AreYouSureDeleteReport": "Är du säker på att du vill ta bort denna rapport och dess schemaläggning?",
- "CancelAndReturnToReports": "Avbryt och %såtergå till listan över rapporter%s",
+ "CancelAndReturnToReports": "Avbryt och %1$såtergå till listan över rapporter%2$s",
"CreateAndScheduleReport": "Skapa och schemalägg en rapport",
"CreateReport": "Skapa rapport",
"CustomVisitorSegment": "Kundbesökssegment:",
@@ -20,9 +20,10 @@
"MonthlyScheduleHelp": "Månatligt schema: Rapporten kommer att skickas ut den första dagen i varje månad.",
"MustBeLoggedIn": "Du måste vara inloggad för att skapa och schemalägga anpassade rapporter.",
"NoRecipients": "Rapporten har ingen mottagare",
- "Pagination": "Sida %s av %s",
+ "Pagination": "Sida %1$s av %2$s",
"PiwikReports": "Piwik Rapporter",
"PleaseFindAttachedFile": "Du finner din rapport %1$s i den bifogade filen för %2$s.",
+ "SentFromX": "Skickat från %s.",
"PleaseFindBelow": "Nedan hittar du din %1$s rapport för %2$s.",
"ReportFormat": "Rapportformat",
"ReportIncludeNWebsites": "Rapporten kommer att innehålla viktiga mättal för alla webbplatser som har minst ett besök (från %s webbsidorna som för tillfället är tillgängliga).",
@@ -31,7 +32,7 @@
"ReportType": "Skicka rapport via",
"ReportUpdated": "Rapporten har uppdaterats",
"Segment_Deletion_Error": "Det här segmentet kan inte raderas eller göras osynligt för andra användare eftersom det genererar mailrapporter (s) %s. Pröva igen efter att du har tagit bort det här segmentet från rapporten (s).",
- "Segment_Help": "Du kan välja ett befintligt kundsegment för att applicera data i den här mailrapporten. Du kan skapa och redigera kundsegment på ditt skrivbord %s (klicka här för att öppna)%s, efter det klickar du på \"%s\" lådan, efter det \"%s\".",
+ "Segment_Help": "Du kan välja ett befintligt kundsegment för att applicera data i den här mailrapporten. Du kan skapa och redigera kundsegment på ditt skrivbord %1$s (klicka här för att öppna)%2$s, efter det klickar du på \"%3$s\" lådan, efter det \"%4$s\".",
"SegmentAppliedToReports": "Segmentet '%s' har applicerats till rapporterna.",
"SendReportNow": "Skicka rapport nu",
"SendReportTo": "Skicka rapport till",
diff --git a/plugins/ScheduledReports/lang/th.json b/plugins/ScheduledReports/lang/th.json
index d502575ee3..fca3ca7734 100644
--- a/plugins/ScheduledReports/lang/th.json
+++ b/plugins/ScheduledReports/lang/th.json
@@ -6,7 +6,7 @@
"EmailReports": "รายงานอีเมล์",
"EmailSchedule": "ตารางการทำงานของอีเมล์",
"MonthlyScheduleHelp": "ตารางเวลารายเดือน: รายงานจะถูกส่งไปวันแรกของแต่ละเดือน",
- "Pagination": "หน้า %s จาก %s",
+ "Pagination": "หน้า %1$s จาก %2$s",
"PiwikReports": "รายงาน Piwik",
"PleaseFindAttachedFile": "กรุณาหาในไฟล์แนบของคุณ %1$s รายงานสำหรับ %2$s",
"ReportFormat": "รูปแบบรายงาน",
diff --git a/plugins/ScheduledReports/lang/tl.json b/plugins/ScheduledReports/lang/tl.json
index ffefbac8ab..8cb29c4914 100644
--- a/plugins/ScheduledReports/lang/tl.json
+++ b/plugins/ScheduledReports/lang/tl.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(default) Ipakita ang mga table ng Report(mga graph lamang para sa mga key metric)",
"AlsoSendReportToTheseEmails": "Magpadala rin ng mga ulat sa mga email na ito (isang email sa bawat linya).",
"AreYouSureDeleteReport": "Sigurado ka bang gusto mong burahin ang ulat at ang iskedyul nito?",
- "CancelAndReturnToReports": "Ikansela at ibalik ang %s sa listahan ng mga ulat %s",
+ "CancelAndReturnToReports": "Ikansela at ibalik ang %1$s sa listahan ng mga ulat %2$s",
"CreateAndScheduleReport": "Lumikha at Mag-iskedyul ng ulat",
"CreateReport": "Lumikha ng ulat",
"CustomVisitorSegment": "Custom na segment ng pagbisita:",
@@ -20,7 +20,7 @@
"MonthlyScheduleHelp": "Buwanang iskedyul: ang ulat ay ipapadala sa unang araw ng bawat buwan.",
"MustBeLoggedIn": "Kailangang naka-log in upang gumawa at mag-iskedyul ng mga pasadyang ulat",
"NoRecipients": "Wala pang makakatanggap sa ulat na ito",
- "Pagination": "Pahina %s ng %s",
+ "Pagination": "Pahina %1$s ng %2$s",
"PiwikReports": "Mga ulat ng Piwik",
"PleaseFindAttachedFile": "Pakihanap sa naka-attach na file ang iyong %1$s ulat para sa %2$s.",
"PleaseFindBelow": "Mangyaring hanapin sa ibaba ang iyong %1$s ulat para sa %2$s.",
@@ -31,7 +31,7 @@
"ReportType": "Magpadala ng ulat sa pamamagitan ng",
"ReportUpdated": "update ng Ulat",
"Segment_Deletion_Error": "Ang segment na ito ay hindi matatanggal o makikita ng ibang user dahil ito ay ginagamit para bumuo ng ulat sa email %s. Mangyaring subukan ulit pagkatapos itong alisin sa segment na mula sa ulat na ito.",
- "Segment_Help": "Maari kang pumili ng nakatakdang custom segments upang ilagay sa data sa email report na ito. Maari kang gumawa at mag edit ng custom segments sa iyong dashboard %s(click here to open)%s pagkatapos ay i-click ang \"%s\" na box pagktapos \"%s\".",
+ "Segment_Help": "Maari kang pumili ng nakatakdang custom segments upang ilagay sa data sa email report na ito. Maari kang gumawa at mag edit ng custom segments sa iyong dashboard %1$s(click here to open)%2$s pagkatapos ay i-click ang \"%3$s\" na box pagktapos \"%4$s\".",
"SegmentAppliedToReports": "Ang bahagi ng '%s' ay ginamit sa mga ulat.",
"SendReportNow": "Magpadala ng Ulat ngayon",
"SendReportTo": "Ipadala ang ulat upang",
diff --git a/plugins/ScheduledReports/lang/tr.json b/plugins/ScheduledReports/lang/tr.json
index 04e359c5a4..fbe69ab8da 100644
--- a/plugins/ScheduledReports/lang/tr.json
+++ b/plugins/ScheduledReports/lang/tr.json
@@ -1,14 +1,48 @@
{
"ScheduledReports": {
"AggregateReportsFormat": "Ekran seçenekleri (isteğe bağlı)",
+ "AggregateReportsFormat_GraphsOnly": "Sadece Grafikleri Göster (tabloları gösterme)",
+ "AggregateReportsFormat_TablesAndGraphs": "Rapor Tabloları ve Grafileri tüm raporlar için göster",
+ "AggregateReportsFormat_TablesOnly": "(varsayılan) Rapor Tablolarını Göster (Grafikler için sadece anahtar metrikler)",
+ "AlsoSendReportToTheseEmails": "Ayrıca raporu şu maillere gönder (her satır için bir mail)",
+ "AreYouSureDeleteReport": "Raporu ve Zamanlayıcıyı silmek istediğinizden emin misiniz?",
+ "CancelAndReturnToReports": "İptal ve %1$s rapor listesine geri dön%2$s",
+ "CreateAndScheduleReport": "Raporu Yarat ve Zamanla",
"CreateReport": "Rapor Oluştur",
+ "CustomVisitorSegment": "Özelleşmiş Ziyaretçi Dilimi",
+ "DescriptionOnFirstPage": "Rapor tanımı raporun ilk sayfasında gösterilecektir.",
+ "DisplayFormat_TablesOnly": "Yanlızca Tabloları Göster (grafikler yok)",
"EmailHello": "Merhaba,",
"EmailReports": "Raporları epostala",
+ "EmailSchedule": "E-Mail Zamanla",
+ "EvolutionGraph": "En yüksek %s değerleri için tarih bazlı grafikler gönder",
+ "FrontPage": "Ön Sayfa",
+ "PersonalEmailReports": "Kişisel E-Mail Raporları",
+ "MonthlyScheduleHelp": "Aylık Plan: rapor her haftanın ilk günü gönderilecektir",
+ "MustBeLoggedIn": "Rapor yaratmak ve zamanlaymak için giriş yapmış olmalısınız.",
+ "NoRecipients": "Bu raporun hiç alıcısı yok",
+ "Pagination": "%1$s sayfa içerisnde %2$s",
+ "PiwikReports": "Piwik Raporları",
+ "PleaseFindAttachedFile": "Lütfen %2$s için %1$s de eklenen dosyayı bul",
+ "SentFromX": "%s'den gönder",
+ "PluginDescription": "Özelleşmiş rapor yarat ve onları günlük, aylık veya yıllık olarak bir veya daha fazla kişiye gönderilmek üzere zamanla. Birçok rapor formatı desteklenmektedir (html, pdf, csv, images)",
"ReportFormat": "Rapor Formatı",
+ "ReportHour": "Raporu %s'de gönder",
+ "ReportIncludeNWebsites": "Bu rapor en az 1 kere ziyaret edilmiş tüm websitelerni ana metriklerini içerecektir( şuan itibari ile %s websitesi uygundur)",
+ "ReportSent": "Rapor gönderildi",
+ "ReportsIncluded": "İstatistikler dahil",
+ "ReportType": "Raporu aracılığı ile gönder",
"ReportUpdated": "Rapor güncellendi",
+ "Segment_Deletion_Error": "Bu segment silinemez veya görünmez hale getirilemez çünkü %s raporu(lar) üretimi için kullanılmaktadır. Lütfen rapor(lar) dan bu segmenti çıkartıkdan sonra tekrar deneyin.",
+ "SegmentAppliedToReports": "Rapor sadece '%s' bölümü için hazırlanacaktır.",
"SendReportNow": "Raporu şimdi gönder",
+ "SendReportTo": "Raporu gönder",
+ "SentToMe": "Bana da Gönder",
"TableOfContent": "Rapor listesi",
+ "ThereIsNoReportToManage": "%s websitesi için hiç rapor yok",
+ "TopLinkTooltip": "E-mail'ine veya müşteri email adresine otomatik gönderilmek üzere E-Mail Raporları yarat!",
"TopOfReport": "Başa dön",
- "UpdateReport": "Raporu Güncelle"
+ "UpdateReport": "Raporu Güncelle",
+ "WeeklyScheduleHelp": "Haftalık Plan: rapor her haftanın pazartesi günü gönderilecektir."
}
} \ No newline at end of file
diff --git a/plugins/ScheduledReports/lang/vi.json b/plugins/ScheduledReports/lang/vi.json
index 4839fa5645..1ea0d5984f 100644
--- a/plugins/ScheduledReports/lang/vi.json
+++ b/plugins/ScheduledReports/lang/vi.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(mặc định) Hiển thị các bảng báo cáo (Các đồ thị chỉ dành cho các số liệu chính)",
"AlsoSendReportToTheseEmails": "Cũng có thể gửi báo cáo cho những email này (một email cho mỗi dòng):",
"AreYouSureDeleteReport": "Bạn có chắc chắn muốn xóa báo cáo này và lịch trình của nó?",
- "CancelAndReturnToReports": "Hủy và %s trả lại danh sách báo cáo %s",
+ "CancelAndReturnToReports": "Hủy và %1$s trả lại danh sách báo cáo %2$s",
"CreateAndScheduleReport": "Tạo và lập lịch một báo cáo",
"CreateReport": "Tạo một báo cáo",
"CustomVisitorSegment": "Tùy chỉnh phân đoạn khách truy cập:",
@@ -20,7 +20,7 @@
"MonthlyScheduleHelp": "Lịch trình hàng tháng: báo cáo sẽ được gửi vào ngày đầu tiên của mỗi tháng.",
"MustBeLoggedIn": "Bạn phải đăng nhập để tạo và lập lịch các báo cáo tùy chỉnh.",
"NoRecipients": "Báo cáo này không có người nhận",
- "Pagination": "Trang %s của %s",
+ "Pagination": "Trang %1$s của %2$s",
"PiwikReports": "Các báo cáo Piwik",
"PleaseFindAttachedFile": "Hãy tìm trong tập tin đính kèm %1$s báo cáo của bạn cho %2$s.",
"PleaseFindBelow": "Hãy tìm dưới đây %1$s báo cáo của bạn cho %2$s.",
@@ -31,7 +31,7 @@
"ReportType": "Gửi báo cáo qua",
"ReportUpdated": "Báo cáo cập nhật",
"Segment_Deletion_Error": "Phân đoạn này không thể bị xóa hoặc làm ẩn đi đối với những người dùng khác bởi vì nó được sử dụng để tạo ra các %s báo cáo(s) email. Vui lòng thử lại sau khi gỡ bỏ phân đoạn này từ báo cáo(s) này.",
- "Segment_Help": "Bạn có thể chọn một phân đoạn tùy chỉnh hiện có để áp dụng cho dữ liệu trong báo cáo email này. Bạn có thể tạo và chỉnh sửa phân đoạn tuỳ chỉnh trong %s bảng điều khiển của bạn (click vào đây để mở) %s, sau đó click vào hộp \"%s\", sau đó \"%s\".",
+ "Segment_Help": "Bạn có thể chọn một phân đoạn tùy chỉnh hiện có để áp dụng cho dữ liệu trong báo cáo email này. Bạn có thể tạo và chỉnh sửa phân đoạn tuỳ chỉnh trong %1$s bảng điều khiển của bạn (click vào đây để mở) %2$s, sau đó click vào hộp \"%3$s\", sau đó \"%4$s\".",
"SegmentAppliedToReports": "Phân đoạn '%s' được áp dụng cho các báo cáo.",
"SendReportNow": "Gửi báo cáo ngay",
"SendReportTo": "Gửi báo cáo tới",
diff --git a/plugins/ScheduledReports/lang/zh-cn.json b/plugins/ScheduledReports/lang/zh-cn.json
index f9b79ebf69..4966be70e1 100644
--- a/plugins/ScheduledReports/lang/zh-cn.json
+++ b/plugins/ScheduledReports/lang/zh-cn.json
@@ -6,7 +6,7 @@
"AggregateReportsFormat_TablesOnly": "(默认) 显示报表 (图形仅显示关键指标)",
"AlsoSendReportToTheseEmails": "抄送报表到这些邮箱 (每行一个邮箱):",
"AreYouSureDeleteReport": "您确认要删除这个报表和定时任务吗?",
- "CancelAndReturnToReports": "取消 %s 并返回报表列表 %s",
+ "CancelAndReturnToReports": "取消 %1$s 并返回报表列表 %2$s",
"CreateAndScheduleReport": "创建报表和定时任务",
"CreateReport": "生成报表",
"CustomVisitorSegment": "自定义访客分段",
@@ -21,7 +21,7 @@
"MonthlyScheduleHelp": "每月计划: 报表将会在每月的第一天寄出。",
"MustBeLoggedIn": "登录后才能创建和自定义报表。",
"NoRecipients": "这个报表没有收件人",
- "Pagination": "第 %s 页,共 %s 页",
+ "Pagination": "第 %1$s 页,共 %2$s 页",
"PiwikReports": "Piwik 报表",
"PleaseFindAttachedFile": "您的 %2$s 的 %1$s 报表在附件中。",
"SentFromX": "来自%s发送。",
@@ -35,7 +35,7 @@
"ReportType": "发送报表通过",
"ReportUpdated": "报告已更新",
"Segment_Deletion_Error": "这个分段不能删除,也不能对其他用户隐藏,因为它用在通用邮件报表 %s。请从这个报表中删除这个分段后重试。",
- "Segment_Help": "您可以选择已有的自定义分段用在这个邮件报表的数据中。创建和修改自定义分段在报表面板%s(点这里打开)%s,然后点 \"%s\" 方框,接着 \"%s\"。",
+ "Segment_Help": "您可以选择已有的自定义分段用在这个邮件报表的数据中。创建和修改自定义分段在报表面板%1$s(点这里打开)%2$s,然后点 \"%3$s\" 方框,接着 \"%4$s\"。",
"SegmentAppliedToReports": "分段 '%s' 已应用到报表。",
"SendReportNow": "现在发送报表",
"SendReportTo": "报表收件人",
diff --git a/plugins/SecurityInfo b/plugins/SecurityInfo
-Subproject 6a977f29c06633bb0e188f172b212aee5eae43c
+Subproject 8647523ae5de07f5dbfc9f50476c9bb661a51b3
diff --git a/plugins/SegmentEditor/API.php b/plugins/SegmentEditor/API.php
index 358f0d2b3e..ad4098775c 100644
--- a/plugins/SegmentEditor/API.php
+++ b/plugins/SegmentEditor/API.php
@@ -351,16 +351,53 @@ class API extends \Piwik\Plugin\API
$userLogin = Piwik::getCurrentUserLogin();
$model = $this->getModel();
- if (empty($idSite)) {
- $segments = $model->getAllSegments($userLogin);
+ if(Piwik::hasUserSuperUserAccess()) {
+ $segments = $model->getAllSegmentsForAllUsers($idSite);
} else {
- $segments = $model->getAllSegmentsForSite($idSite, $userLogin);
+ if (empty($idSite)) {
+ $segments = $model->getAllSegments($userLogin);
+ } else {
+ $segments = $model->getAllSegmentsForSite($idSite, $userLogin);
+ }
}
+ $segments = $this->sortSegmentsCreatedByUserFirst($segments);
+
return $segments;
}
/**
+ * Sorts segment in a particular order:
+ *
+ * 1) my segments
+ * 2) segments created by the super user that were shared with all users
+ * 3) segments created by other users (which are visible to all super users)
+ *
+ * @param $segments
+ * @return array
+ */
+ private function sortSegmentsCreatedByUserFirst($segments)
+ {
+ $orderedSegments = array();
+ foreach($segments as $id => &$segment) {
+ if($segment['login'] == Piwik::getCurrentUserLogin()) {
+ $orderedSegments[] = $segment;
+ unset($segments[$id]);
+ }
+ }
+ foreach($segments as $id => &$segment) {
+ if($segment['enable_all_users'] == 1) {
+ $orderedSegments[] = $segment;
+ unset($segments[$id]);
+ }
+ }
+ foreach($segments as $id => &$segment) {
+ $orderedSegments[] = $segment;
+ }
+ return $orderedSegments;
+ }
+
+ /**
* @return string
*/
private function getMessageCannotEditSegmentCreatedBySuperUser()
diff --git a/plugins/SegmentEditor/Model.php b/plugins/SegmentEditor/Model.php
index 7f312557f9..7e73b6a1ab 100644
--- a/plugins/SegmentEditor/Model.php
+++ b/plugins/SegmentEditor/Model.php
@@ -98,6 +98,27 @@ class Model
return $segments;
}
+ /**
+ * This should be used _only_ by Super Users
+ * @param $idSite
+ * @return array
+ */
+ public function getAllSegmentsForAllUsers($idSite = false)
+ {
+ $bind = array();
+ $sqlWhereCondition = '';
+
+ if(!empty($idSite)) {
+ $bind = array($idSite);
+ $sqlWhereCondition = '(enable_only_idsite = ? OR enable_only_idsite = 0) AND';
+ }
+
+ $sqlWhereCondition = $this->buildQuerySortedByName($sqlWhereCondition . ' deleted = 0');
+ $segments = $this->getDb()->fetchAll($sqlWhereCondition, $bind);
+
+ return $segments;
+ }
+
public function deleteSegment($idSegment)
{
$db = $this->getDb();
diff --git a/plugins/SegmentEditor/SegmentEditor.php b/plugins/SegmentEditor/SegmentEditor.php
index 0d7c84ed7a..1e6e4d3ec7 100644
--- a/plugins/SegmentEditor/SegmentEditor.php
+++ b/plugins/SegmentEditor/SegmentEditor.php
@@ -88,5 +88,7 @@ class SegmentEditor extends \Piwik\Plugin
public function getClientSideTranslationKeys(&$translationKeys)
{
$translationKeys[] = 'SegmentEditor_CustomSegment';
+ $translationKeys[] = 'SegmentEditor_VisibleToSuperUser';
+ $translationKeys[] = 'SegmentEditor_SharedWithYou';
}
}
diff --git a/plugins/SegmentEditor/images/edit_segment.png b/plugins/SegmentEditor/images/edit_segment.png
index dba29e188b..6eb039254d 100644
--- a/plugins/SegmentEditor/images/edit_segment.png
+++ b/plugins/SegmentEditor/images/edit_segment.png
Binary files differ
diff --git a/plugins/SegmentEditor/javascripts/Segmentation.js b/plugins/SegmentEditor/javascripts/Segmentation.js
index 2ffd7dac57..ce3c166cf1 100644
--- a/plugins/SegmentEditor/javascripts/Segmentation.js
+++ b/plugins/SegmentEditor/javascripts/Segmentation.js
@@ -80,14 +80,14 @@ Segmentation = (function($) {
var currentDecoded = piwikHelper.htmlDecode(current);
var selector = 'div.segmentList ul li[data-definition="'+currentDecoded+'"]';
var foundItems = $(selector, this.target);
- var title = $('<strong></strong>');
+
if( foundItems.length > 0) {
- var name = $(foundItems).first().find("span.segname").text();
- title.text(name);
+ var idSegment = $(foundItems).first().attr('data-idsegment');
+ var title = getSegmentName( getSegmentFromId(idSegment));
} else {
- title.text(_pk_translate('SegmentEditor_CustomSegment'));
+ title = _pk_translate('SegmentEditor_CustomSegment');
}
- segmentationTitle.html(title);
+ segmentationTitle.addClass('segment-clicked').html( title );
}
else {
$(this.content).find(".segmentationTitle").text(this.translations['SegmentEditor_DefaultAllVisits']);
@@ -199,14 +199,42 @@ Segmentation = (function($) {
var html = self.editorTemplate.find("> .listHtml").clone();
var segment, injClass;
var listHtml = '<li data-idsegment="" ' +
- (self.currentSegmentStr == "" ? " class='segmentSelected' " : "")
- + ' data-definition=""><span class="segname">' + self.translations['SegmentEditor_DefaultAllVisits']
- + ' ' + self.translations['General_DefaultAppended']
- + '</span></li> ';
+ (self.currentSegmentStr == "" ? " class='segmentSelected' " : "")
+ + ' data-definition=""><span class="segname">' + self.translations['SegmentEditor_DefaultAllVisits']
+ + ' ' + self.translations['General_DefaultAppended']
+ + '</span></li> ';
+
+ var isVisibleToSuperUserNoticeAlreadyDisplayedOnce = false;
+ var isVisibleToSuperUserNoticeShouldBeClosed = false;
+
+ var isSharedWithMeBySuperUserNoticeAlreadyDisplayedOnce = false;
+ var isSharedWithMeBySuperUserNoticeShouldBeClosed = false;
+
if(self.availableSegments.length > 0) {
+
for(var i = 0; i < self.availableSegments.length; i++)
{
segment = self.availableSegments[i];
+
+ if(isSegmentSharedWithMeBySuperUser(segment) && !isSharedWithMeBySuperUserNoticeAlreadyDisplayedOnce) {
+ isSharedWithMeBySuperUserNoticeAlreadyDisplayedOnce = true;
+ isSharedWithMeBySuperUserNoticeShouldBeClosed = true;
+ listHtml += '<span class="segmentsSharedWithMeBySuperUser"><hr> ' + _pk_translate('SegmentEditor_SharedWithYou') + ':<br/><br/>';
+ }
+
+ if(isSegmentVisibleToSuperUserOnly(segment) && !isVisibleToSuperUserNoticeAlreadyDisplayedOnce) {
+ // close <span class="segmentsSharedWithMeBySuperUser">
+ if(isSharedWithMeBySuperUserNoticeShouldBeClosed) {
+ isSharedWithMeBySuperUserNoticeShouldBeClosed = false;
+ listHtml += '</span>';
+ }
+
+ isVisibleToSuperUserNoticeAlreadyDisplayedOnce = true;
+ isVisibleToSuperUserNoticeShouldBeClosed = true;
+ listHtml += '<span class="segmentsVisibleToSuperUser"><hr> ' + _pk_translate('SegmentEditor_VisibleToSuperUser') + ':<br/><br/>';
+ }
+
+
injClass = "";
var checkSelected = segment.definition;
if(!$.browser.mozilla) {
@@ -217,12 +245,21 @@ Segmentation = (function($) {
injClass = 'class="segmentSelected"';
}
listHtml += '<li data-idsegment="'+segment.idsegment+'" data-definition="'+ (segment.definition).replace(/"/g, '&quot;') +'" '
- +injClass+' title="'+segment.name+'"><span class="segname">'+segment.name+'</span>';
+ +injClass+' title="'+ getSegmentTooltipEnrichedWithUsername(segment) +'"><span class="segname">'+getSegmentName(segment)+'</span>';
if(self.segmentAccess == "write") {
listHtml += '<span class="editSegment" title="'+ self.translations['General_Edit'].toLocaleLowerCase() +'"></span>';
}
listHtml += '</li>';
}
+
+ if(isVisibleToSuperUserNoticeShouldBeClosed) {
+ listHtml += '</span>';
+ }
+
+ if(isSharedWithMeBySuperUserNoticeShouldBeClosed) {
+ listHtml += '</span>';
+ }
+
$(html).find(".segmentList > ul").append(listHtml);
if(self.segmentAccess === "write"){
$(html).find(".add_new_segment").html(self.translations['SegmentEditor_AddNewSegment']);
@@ -238,20 +275,58 @@ Segmentation = (function($) {
return html;
};
+ var isSegmentVisibleToSuperUserOnly = function(segment) {
+ return hasSuperUserAccessAndSegmentCreatedByAnotherUser(segment)
+ && segment.enable_all_users == 0;
+ };
+
+ var isSegmentSharedWithMeBySuperUser = function(segment) {
+ return segment.login != piwik.userLogin
+ && segment.enable_all_users == 1;
+ };
+
+ var hasSuperUserAccessAndSegmentCreatedByAnotherUser = function(segment) {
+ return piwik.hasSuperUserAccess && segment.login != piwik.userLogin;
+ };
+
+ var getSegmentTooltipEnrichedWithUsername = function(segment) {
+ var segmentName = segment.name;
+ if(hasSuperUserAccessAndSegmentCreatedByAnotherUser(segment)) {
+ segmentName += ' (';
+ segmentName += _pk_translate('General_CreatedByUser', [segment.login]);
+
+ if(segment.enable_all_users == 0) {
+ segmentName += ', ' + _pk_translate('SegmentEditor_VisibleToSuperUser');
+ }
+
+ segmentName += ')';
+ }
+ return sanitiseSegmentName(segmentName);
+ };
+
+ var getSegmentName = function(segment) {
+ return sanitiseSegmentName(segment.name);
+ };
+
+ var sanitiseSegmentName = function(segment) {
+ segment = piwikHelper.escape(segment);
+ return segment;
+ }
+
var getFormHtml = function() {
var html = self.editorTemplate.find("> .segment-element").clone();
// set left margin to center form
var segmentsDropdown = $(html).find(".available_segments_select");
var segment, newOption;
newOption = '<option data-idsegment="" data-definition="" title="'
- + self.translations['SegmentEditor_AddNewSegment']
- + '">' + self.translations['SegmentEditor_AddNewSegment']
- + '</option>';
+ + self.translations['SegmentEditor_AddNewSegment']
+ + '">' + self.translations['SegmentEditor_AddNewSegment']
+ + '</option>';
segmentsDropdown.append(newOption);
for(var i = 0; i < self.availableSegments.length; i++)
{
segment = self.availableSegments[i];
- newOption = '<option data-idsegment="'+segment.idsegment+'" data-definition="'+(segment.definition).replace(/"/g, '&quot;')+'" title="'+segment.name+'">'+segment.name+'</option>';
+ newOption = '<option data-idsegment="'+segment.idsegment+'" data-definition="'+(segment.definition).replace(/"/g, '&quot;')+'" title="'+getSegmentTooltipEnrichedWithUsername(segment)+'">'+getSegmentName(segment)+'</option>';
segmentsDropdown.append(newOption);
}
$(html).find(".segment-content > h3").after(getInitialStateRowsHtml()).show();
@@ -324,10 +399,15 @@ Segmentation = (function($) {
var openEditForm = function(segment){
addForm("edit", segment);
- $(self.form).find(".segment-content > h3 > span").text(segment.name);
+ $(self.form).find(".segment-content > h3 > span")
+ .html( getSegmentName(segment) )
+ .prop('title', getSegmentTooltipEnrichedWithUsername(segment));
+
$(self.form).find('.available_segments_select > option[data-idsegment="'+segment.idsegment+'"]').prop("selected",true);
- $(self.form).find('.available_segments a.dropList').text(segment.name);
+ $(self.form).find('.available_segments a.dropList')
+ .html( getSegmentName(segment) )
+ .prop( 'title', getSegmentTooltipEnrichedWithUsername(segment));
if(segment.definition != ""){
revokeInitialStateRows();
@@ -343,6 +423,12 @@ Segmentation = (function($) {
doDragDropBindings();
};
+ var displayFormAddNewSegment = function (e) {
+ closeAllOpenLists();
+ addForm("new");
+ doDragDropBindings();
+ };
+
var filterSegmentList = function (keyword) {
var curTitle;
clearFilterSegmentList();
@@ -360,6 +446,13 @@ Segmentation = (function($) {
$(self.target).find(".segmentList li:first")
.before("<li class=\"filterNoResults grayed\">" + self.translations['General_SearchNoResults'] + "</li>");
}
+
+ if ($(self.target).find(".segmentList .segmentsVisibleToSuperUser li:visible").length == 0) {
+ $(self.target).find(".segmentList .segmentsVisibleToSuperUser").hide();
+ }
+ if ($(self.target).find(".segmentList .segmentsSharedWithMeBySuperUser li:visible").length == 0) {
+ $(self.target).find(".segmentList .segmentsSharedWithMeBySuperUser").hide();
+ }
}
var clearFilterSegmentList = function () {
@@ -367,6 +460,8 @@ Segmentation = (function($) {
$(self.target).find(".segmentList li").each(function () {
$(this).show();
});
+ $(self.target).find(".segmentList .segmentsVisibleToSuperUser").show();
+ $(self.target).find(".segmentList .segmentsSharedWithMeBySuperUser").show();
}
var bindEvents = function () {
@@ -407,23 +502,19 @@ Segmentation = (function($) {
self.target.on("click", ".segmentList li", function (e) {
if ($(e.currentTarget).hasClass("grayed") !== true) {
- var segment = {};
- segment.idsegment = $(this).attr("data-idsegment");
- segment.definition = $(this).data("definition");
- segment.name = $(this).attr("title");
+ var idsegment = $(this).attr("data-idsegment");
+ segmentDefinition = $(this).data("definition");
- self.setSegment(segment.definition);
+ self.setSegment(segmentDefinition);
self.markCurrentSegment();
- self.segmentSelectMethod( segment.definition );
- toggleLoadingMessage(segment.definition.length);
+ self.segmentSelectMethod( segmentDefinition );
+ toggleLoadingMessage(segmentDefinition.length);
}
});
self.target.on('click', '.add_new_segment', function (e) {
e.stopPropagation();
- closeAllOpenLists();
- addForm("new");
- doDragDropBindings();
+ displayFormAddNewSegment(e);
});
self.target.on('change', "select.metricList", function (e, persist) {
@@ -748,20 +839,15 @@ Segmentation = (function($) {
};
function openEditFormGivenSegment(option) {
- var segment = {};
- segment.idsegment = option.attr("data-idsegment");
+ var idsegment = option.attr("data-idsegment");
- var segmentExtra = getSegmentFromId(segment.idsegment);
- for(var item in segmentExtra)
- {
- segment[item] = segmentExtra[item];
+ if(idsegment.length == 0) {
+ displayFormAddNewSegment();
+ } else {
+ var segment = getSegmentFromId(idsegment);
+ segment.definition = option.data("definition");
+ openEditForm(segment);
}
-
- segment.name = option.attr("title");
-
- segment.definition = option.data("definition");
-
- openEditForm(segment);
}
var doDragDropBindings = function(){
@@ -815,7 +901,7 @@ Segmentation = (function($) {
// 1 - do most obvious selection -> mark whole categories matching search string
// also expand whole category
$(self.form).find('.segment-nav div > ul > li').each( function(){
- curStr = normalizeSearchString($(this).find("a.metric_category").text());
+ curStr = normalizeSearchString($(this).find("a.metric_category").text());
if(curStr.indexOf(search) > -1) {
$(this).addClass("searchFound");
$(this).find("ul").show();
@@ -823,7 +909,7 @@ Segmentation = (function($) {
$(this).show();
}
}
- );
+ );
// 2 - among all unselected categories find metrics which match and mark parent as search result
$(self.form).find(".segment-nav div > ul > li:not(.searchFound)").each(function(){
@@ -872,8 +958,8 @@ Segmentation = (function($) {
}
search = search.replace(/[^a-z0-9 -]/g, '') // remove invalid chars
- .replace(/\s+/g, '_') // collapse whitespace and replace by underscore
- .replace(/-+/g, '-'); // collapse dashes
+ .replace(/\s+/g, '_') // collapse whitespace and replace by underscore
+ .replace(/-+/g, '-'); // collapse dashes
return search;
};
@@ -900,7 +986,12 @@ Segmentation = (function($) {
placeSegmentationFormControls();
if(mode == "edit") {
- $(self.form).find('.enable_all_users_select > option[value="'+segment.enable_all_users+'"]').prop("selected",true);
+ var userSelector = $(self.form).find('.enable_all_users_select > option[value="' + segment.enable_all_users + '"]').prop("selected",true);
+
+ // Replace "Visible to me" by "Visible to $login" when user is super user
+ if(hasSuperUserAccessAndSegmentCreatedByAnotherUser(segment)) {
+ $(self.form).find('.enable_all_users_select > option[value="' + 0 + '"]').text(segment.login);
+ }
$(self.form).find('.visible_to_website_select > option[value="'+segment.enable_only_idsite+'"]').prop("selected",true);
$(self.form).find('.auto_archive_select > option[value="'+segment.auto_archive+'"]').prop("selected",true);
@@ -991,43 +1082,43 @@ Segmentation = (function($) {
var makeDropList = function(spanId, selectId){
var select = $(self.form).find(selectId).hide();
var dropList = $( '<a class="dropList dropdown">' )
- .insertAfter( select )
- .text( select.children(':selected').text() )
- .autocomplete({
- delay: 0,
- minLength: 0,
- appendTo: "body",
- source: function( request, response ) {
- response( select.children( "option" ).map(function() {
- var text = $( this ).text();
- return {
- label: text,
- value: this.value,
- option: this
- };
- }) );
- },
- select: function( event, ui ) {
- event.preventDefault();
- ui.item.option.selected = true;
- // Mark original select>option
- $(spanId + ' option[value="' + ui.item.value + '"]', self.editorTemplate).prop('selected', true);
- dropList.text(ui.item.label);
- $(self.form).find(selectId).trigger("change");
- }
- })
- .click(function() {
- // close all other droplists made by this form
- $("a.dropList").autocomplete("close");
- // close if already visible
- if ( $(this).autocomplete( "widget" ).is(":visible") ) {
- $(this).autocomplete("close");
- return;
- }
- // pass empty string as value to search for, displaying all results
- $(this).autocomplete( "search", "" );
+ .insertAfter( select )
+ .text( select.children(':selected').text() )
+ .autocomplete({
+ delay: 0,
+ minLength: 0,
+ appendTo: "body",
+ source: function( request, response ) {
+ response( select.children( "option" ).map(function() {
+ var text = $( this ).text();
+ return {
+ label: text,
+ value: this.value,
+ option: this
+ };
+ }) );
+ },
+ select: function( event, ui ) {
+ event.preventDefault();
+ ui.item.option.selected = true;
+ // Mark original select>option
+ $(spanId + ' option[value="' + ui.item.value + '"]', self.editorTemplate).prop('selected', true);
+ dropList.text(ui.item.label);
+ $(self.form).find(selectId).trigger("change");
+ }
+ })
+ .click(function() {
+ // close all other droplists made by this form
+ $("a.dropList").autocomplete("close");
+ // close if already visible
+ if ( $(this).autocomplete( "widget" ).is(":visible") ) {
+ $(this).autocomplete("close");
+ return;
+ }
+ // pass empty string as value to search for, displaying all results
+ $(this).autocomplete( "search", "" );
- });
+ });
$('body').on('mouseup',function (e) {
if (!$(e.target).parents(spanId).length
&& !$(e.target).is(spanId)
@@ -1166,7 +1257,7 @@ $(document).ready(function() {
}
}
- self.props.availableSegments[idx] = params;
+ $.extend( self.props.availableSegments[idx], params);
self.rebuild();
self.impl.setSegment(params.definition);
@@ -1222,8 +1313,8 @@ $(document).ready(function() {
};
var segmentFromRequest = encodeURIComponent(self.props.selectedSegment)
- || broadcast.getValueFromHash('segment')
- || broadcast.getValueFromUrl('segment');
+ || broadcast.getValueFromHash('segment')
+ || broadcast.getValueFromUrl('segment');
if($.browser.mozilla) {
segmentFromRequest = decodeURIComponent(segmentFromRequest);
}
diff --git a/plugins/SegmentEditor/lang/bg.json b/plugins/SegmentEditor/lang/bg.json
index ec6793cdee..12a7871a3e 100644
--- a/plugins/SegmentEditor/lang/bg.json
+++ b/plugins/SegmentEditor/lang/bg.json
@@ -16,7 +16,6 @@
"SegmentDisplayedThisWebsiteOnly": "само този уебсайт",
"SegmentIsDisplayedForWebsite": "и се показва за",
"SegmentNotApplied": "Сегмент '%s' не е приложен",
- "SelectSegmentOfVisitors": "Изберете сегмент на посетителите:",
"ThisSegmentIsVisibleTo": "Този сегмент е видим за:",
"VisibleToAllUsers": "всички потребители",
"VisibleToMe": "аз",
diff --git a/plugins/SegmentEditor/lang/cs.json b/plugins/SegmentEditor/lang/cs.json
index c5752de9e2..20a1dccf7f 100644
--- a/plugins/SegmentEditor/lang/cs.json
+++ b/plugins/SegmentEditor/lang/cs.json
@@ -15,16 +15,18 @@
"OperatorAND": "AND",
"OperatorOR": "OR",
"SaveAndApply": "Uložit a použít",
- "SegmentDisplayedAllWebsites": "Všechny webové stránky",
- "SegmentDisplayedThisWebsiteOnly": "Pouze tyto webové stránky",
+ "SegmentDisplayedAllWebsites": "všechny weby",
+ "SegmentDisplayedThisWebsiteOnly": "pouze tento web",
"SegmentIsDisplayedForWebsite": "A zobrazený po",
"SegmentNotApplied": "Segment %s není aplikován",
"SegmentNotAppliedMessage": "Požadujete data pro vlastní segment %s, ale konfigurace Piwiku aktuálně nedovoluje z důvodů výkonu zpracování hlášení v reálném čase.",
- "SelectSegmentOfVisitors": "Vyberte segment návštěvníků",
+ "SelectSegmentOfVisits": "Vyberte segment návštěv:",
"ThisSegmentIsVisibleTo": "Tento segment je viditelný",
"VisibleToAllUsers": "Všem uživatelům",
"VisibleToMe": "Mně",
- "YouMayChangeSetting": "Jinak můžete nastavení změnit v souboru %s, nebo můžete upravit tento segment a zvolit %s.",
+ "YouMayChangeSetting": "Jinak můžete nastavení změnit v souboru %1$s, nebo můžete upravit tento segment a zvolit %2$s.",
+ "VisibleToSuperUser": "Viditelný, protože máte super-uživatelský přístup",
+ "SharedWithYou": "Sdíleno s vámi",
"YouMustBeLoggedInToCreateSegments": "Pro vytváření a úpravu vlastních segmentů návštěvníků musíte být přihlášen.",
"YouDontHaveAccessToCreateSegments": "Pro vytváření a úpravu segmentů nemáte požadovanou přístupovou úroveň.",
"AddingSegmentForAllWebsitesDisabled": "Přidávání segmentů pro všechny stránky bylo zakázáno.",
diff --git a/plugins/SegmentEditor/lang/da.json b/plugins/SegmentEditor/lang/da.json
index 7d35c3b7cb..6420bc5ebf 100644
--- a/plugins/SegmentEditor/lang/da.json
+++ b/plugins/SegmentEditor/lang/da.json
@@ -18,11 +18,10 @@
"SegmentIsDisplayedForWebsite": "og vises for",
"SegmentNotApplied": "Segment '%s' anvendes ikke",
"SegmentNotAppliedMessage": "Du beder om data til brugerdefineret segment '%s', Piwik konfigurationen forhindrer tidstro behandling af rapporter pga ydeevne grunde.",
- "SelectSegmentOfVisitors": "Vælg et segment af besøgende:",
"ThisSegmentIsVisibleTo": "Segmentet er synligt for:",
"VisibleToAllUsers": "Alle brugere",
"VisibleToMe": "mig",
- "YouMayChangeSetting": "Alternativt kan du ændre indstillingen i konfigurationsfilen (%s), eller redigere dette segment og vælg '%s'.",
+ "YouMayChangeSetting": "Alternativt kan du ændre indstillingen i konfigurationsfilen (%1$s), eller redigere dette segment og vælg '%2$s'.",
"YouMustBeLoggedInToCreateSegments": "Du skal være logget ind for at oprette og anvende brugerdefinerede besøgssegmenter.",
"YouDontHaveAccessToCreateSegments": "Du har ikke det nødvendige adgangsniveau til at oprette og redigere segmenter.",
"AddingSegmentForAllWebsitesDisabled": "Tilføjelse af segmenter for alle websteder er blevet deaktiveret."
diff --git a/plugins/SegmentEditor/lang/de.json b/plugins/SegmentEditor/lang/de.json
index 05ec7674bb..ffd8bf2321 100644
--- a/plugins/SegmentEditor/lang/de.json
+++ b/plugins/SegmentEditor/lang/de.json
@@ -20,13 +20,17 @@
"SegmentIsDisplayedForWebsite": "und wird angezeigt für",
"SegmentNotApplied": "Segment '%s' nicht angewendet",
"SegmentNotAppliedMessage": "Sie fragen Daten für das benutzerdefinierte Segment '%s' an, die Piwik-Konfiguration verhindert jedoch aktuell Echtzeit-Verarbeitung von Berichten aus Performance-Gründen.",
- "SelectSegmentOfVisitors": "Wählen Sie ein Segment an Besuchern aus:",
"ThisSegmentIsVisibleTo": "Dieses Segment ist sichtbar für:",
"VisibleToAllUsers": "alle Benutzer",
"VisibleToMe": "mich",
- "YouMayChangeSetting": "Alternativ können Sie die Einstellung in der Konfigurationsdatei (%s) ändern, oder ändern Sie dieses Segment und wählen '%s'.",
+ "YouMayChangeSetting": "Alternativ können Sie die Einstellung in der Konfigurationsdatei (%1$s) ändern, oder ändern Sie dieses Segment und wählen '%2$s'.",
+ "SharedWithYou": "Mit dir geteilt",
"YouMustBeLoggedInToCreateSegments": "Sie müssen sich anmelden um eigene Besuchersegmente anzulegen oder zu bearbeiten.",
"YouDontHaveAccessToCreateSegments": "Sie haben nicht die benötigten Berechtigungen um Segmente anzulegen und zu bearbeiten.",
- "AddingSegmentForAllWebsitesDisabled": "Das Hinzufügen von Segmenten wurde für alle Websites deaktiviert."
+ "AddingSegmentForAllWebsitesDisabled": "Das Hinzufügen von Segmenten wurde für alle Websites deaktiviert.",
+ "SegmentXIsAUnionOf": "%s ist eine Vereinigung dieser Segmente:",
+ "CustomSegment": "Benutzerdefiniertes Segment",
+ "SegmentOperatorIsNullOrEmpty": "Ist NULL oder leer",
+ "SegmentOperatorIsNotNullNorEmpty": "Ist weder NULL noch leer"
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/el.json b/plugins/SegmentEditor/lang/el.json
index 72d3659543..d4ed54b977 100644
--- a/plugins/SegmentEditor/lang/el.json
+++ b/plugins/SegmentEditor/lang/el.json
@@ -20,11 +20,13 @@
"SegmentIsDisplayedForWebsite": "και εμφανίζεται για",
"SegmentNotApplied": "Το τμήμα '%s' δεν εφαρμόζεται",
"SegmentNotAppliedMessage": "Ζητάτε δεδομένα για το Προσαρμοσμένο Τμήμα '%s', ωστόσο η τρέχουσα παραμετροποίηση του Piwik εμποδίζει την σε πραγματικό χρόνο επεξεργασία των αναφορών για λόγους απόδοσης.",
- "SelectSegmentOfVisitors": "Επιλέξτε ένα τμήμα επισκεπτών:",
+ "SelectSegmentOfVisits": "Επιλέξτε ένα τμήμα επισκέψεων:",
"ThisSegmentIsVisibleTo": "Το τμήμα αυτό είναι ορατό σε:",
"VisibleToAllUsers": "όλους τους χρήστες",
"VisibleToMe": "εμένα",
- "YouMayChangeSetting": "Εναλλακτικά, μπορείτε να αλλάξετε τη ρύθμιση στο αρχείο ρυθμίσεων (%s), ή να τροποποιήσετε το Τμήμα αυτό και να επιλέξετε '%s'.",
+ "YouMayChangeSetting": "Εναλλακτικά, μπορείτε να αλλάξετε τη ρύθμιση στο αρχείο ρυθμίσεων (%1$s), ή να τροποποιήσετε το Τμήμα αυτό και να επιλέξετε '%2$s'.",
+ "VisibleToSuperUser": "Ορατό σε εσάς επειδή έχετε πρόσβαση Υπερ Χρήστη",
+ "SharedWithYou": "Κοινόχρηστο για εσάς",
"YouMustBeLoggedInToCreateSegments": "Θα πρέπει να έχετε κάνει είσοδο για να δημιουργήσετε και να επεξεργαστείτε προσαρμοσμένα τμήματα επισκεπτών.",
"YouDontHaveAccessToCreateSegments": "Δεν διαθέτετε την απαιτούμενη πρόσβαση ασφαλείας για να δημιουργείτε και να τροποποιείτε τμήματα.",
"AddingSegmentForAllWebsitesDisabled": "Η προσθήκη τμημάτων έχει απενεργοποιηθεί για όλους τους ιστοτόπους.",
diff --git a/plugins/SegmentEditor/lang/en.json b/plugins/SegmentEditor/lang/en.json
index 8651afeecd..e847e3ed4b 100644
--- a/plugins/SegmentEditor/lang/en.json
+++ b/plugins/SegmentEditor/lang/en.json
@@ -20,11 +20,13 @@
"SegmentIsDisplayedForWebsite": "and displayed for",
"SegmentNotApplied": "Segment '%s' not applied",
"SegmentNotAppliedMessage": "You are requesting data for the Custom Segment '%s', this Piwik configuration currently prevents real time processing of reports for performance reasons.",
- "SelectSegmentOfVisitors": "Select a segment of visitors:",
+ "SelectSegmentOfVisits": "Select a segment of visits:",
"ThisSegmentIsVisibleTo": "This segment is visible to:",
"VisibleToAllUsers": "all users",
"VisibleToMe": "me",
- "YouMayChangeSetting": "Alternatively you may change the setting in the config file (%s), or edit this Segment and choose '%s'.",
+ "YouMayChangeSetting": "Alternatively you may change the setting in the config file (%1$s), or edit this Segment and choose '%2$s'.",
+ "VisibleToSuperUser": "Visible to you because you have Super User access",
+ "SharedWithYou": "Shared with you",
"YouMustBeLoggedInToCreateSegments": "You must be logged in to create and edit custom visitor segments.",
"YouDontHaveAccessToCreateSegments": "You don't have the required access level to create and edit segments.",
"AddingSegmentForAllWebsitesDisabled": "Adding segments for all websites has been disabled.",
diff --git a/plugins/SegmentEditor/lang/es.json b/plugins/SegmentEditor/lang/es.json
index ab3c7a8a4e..fc050c4710 100644
--- a/plugins/SegmentEditor/lang/es.json
+++ b/plugins/SegmentEditor/lang/es.json
@@ -19,11 +19,10 @@
"SegmentIsDisplayedForWebsite": "y mostrado para",
"SegmentNotApplied": "Segmento '%s' no aplicado",
"SegmentNotAppliedMessage": "Está solicitando datos para el segmento personalizado '%s', esta configuración de Piwik actualmente impide el proceso en tiempo real de informes por razones de rendimiento.",
- "SelectSegmentOfVisitors": "Seleccione un segmento de visitantes:",
"ThisSegmentIsVisibleTo": "Este segmento es visible para:",
"VisibleToAllUsers": "todos los usuarios",
"VisibleToMe": "yo",
- "YouMayChangeSetting": "Alternativamente puede cambiar la configuración en el archivo config (%s) o modificar este segmento y elegir '%s'.",
+ "YouMayChangeSetting": "Alternativamente puede cambiar la configuración en el archivo config (%1$s) o modificar este segmento y elegir '%2$s'.",
"YouMustBeLoggedInToCreateSegments": "Debe estar conectado para crear y editar segmentos de usuario personalizados.",
"YouDontHaveAccessToCreateSegments": "No posee el nivel de acceso requerido para crear y editar segmentos.",
"AddingSegmentForAllWebsitesDisabled": "Añadir segmentos para todos los sitios de internet se ha deshabilitado."
diff --git a/plugins/SegmentEditor/lang/et.json b/plugins/SegmentEditor/lang/et.json
index abc05305a9..da1876cfd7 100644
--- a/plugins/SegmentEditor/lang/et.json
+++ b/plugins/SegmentEditor/lang/et.json
@@ -13,7 +13,6 @@
"SegmentDisplayedAllWebsites": "kõik veebilehed",
"SegmentDisplayedThisWebsiteOnly": "ainult see veebileht",
"SegmentIsDisplayedForWebsite": "ja kuvatakse veebilehele",
- "SelectSegmentOfVisitors": "Vali külastajate segment:",
"ThisSegmentIsVisibleTo": "Antud segment on nähtav:",
"VisibleToAllUsers": "kõik kasutajad",
"VisibleToMe": "mina"
diff --git a/plugins/SegmentEditor/lang/fa.json b/plugins/SegmentEditor/lang/fa.json
index 9805a6e585..b81b7bd060 100644
--- a/plugins/SegmentEditor/lang/fa.json
+++ b/plugins/SegmentEditor/lang/fa.json
@@ -15,7 +15,6 @@
"SegmentDisplayedAllWebsites": "تمام وب سایت ها",
"SegmentDisplayedThisWebsiteOnly": "این وب سایت فقط",
"SegmentIsDisplayedForWebsite": "و برای نمایش داده",
- "SelectSegmentOfVisitors": "انتخاب بخشی از بازدید کنندگان:",
"ThisSegmentIsVisibleTo": "این بخش قابل رؤیت است:",
"VisibleToAllUsers": "تمام کاربران",
"VisibleToMe": "من",
diff --git a/plugins/SegmentEditor/lang/fi.json b/plugins/SegmentEditor/lang/fi.json
index 3e5767df27..2f0f64fa5f 100644
--- a/plugins/SegmentEditor/lang/fi.json
+++ b/plugins/SegmentEditor/lang/fi.json
@@ -17,11 +17,10 @@
"SegmentDisplayedThisWebsiteOnly": "vain tällä verkkosivulla",
"SegmentIsDisplayedForWebsite": "näytetään vain",
"SegmentNotApplied": "Segmenttiä '%s' ei sovelleta",
- "SelectSegmentOfVisitors": "Valitse kävijäsegmentti:",
"ThisSegmentIsVisibleTo": "Tämä segmentti näytetään seuraaville:",
"VisibleToAllUsers": "kaikki käyttäjät",
"VisibleToMe": "minä",
- "YouMayChangeSetting": "Vaihtoehtoisesti voit vaihtaa asetuksen tiedostosta %s, tai muuttaa tätä segmenttiä ja valita '%s'.",
+ "YouMayChangeSetting": "Vaihtoehtoisesti voit vaihtaa asetuksen tiedostosta %1$s, tai muuttaa tätä segmenttiä ja valita '%2$s'.",
"YouMustBeLoggedInToCreateSegments": "Sinun täytyy olla sisäänkirjautuneena voidaksesi luoda tai muokata kävijäsegmenttejä."
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/fr.json b/plugins/SegmentEditor/lang/fr.json
index f7e407b0c9..52ea2941df 100644
--- a/plugins/SegmentEditor/lang/fr.json
+++ b/plugins/SegmentEditor/lang/fr.json
@@ -20,11 +20,13 @@
"SegmentIsDisplayedForWebsite": "et affiché pour",
"SegmentNotApplied": "Segment \"%s\" non appliqué",
"SegmentNotAppliedMessage": "Vous êtes en train de demander des données for le segment personnalisé '%s', la configuration actuelle de Piwik empêche la génération en temps réelle de rapport pour des raisons de performance.",
- "SelectSegmentOfVisitors": "Choisir un segment de visiteurs :",
+ "SelectSegmentOfVisits": "Sélectionnez un segment de visites :",
"ThisSegmentIsVisibleTo": "Ce segment est visible pour :",
"VisibleToAllUsers": "tous les utilisateurs",
"VisibleToMe": "moi",
- "YouMayChangeSetting": "Vous pouvez ou changer le paramètre depuis le fichier de configuration (%s) ou bien modifier ce segment et choisir '%s'.",
+ "YouMayChangeSetting": "Vous pouvez ou changer le paramètre depuis le fichier de configuration (%1$s) ou bien modifier ce segment et choisir '%2$s'.",
+ "VisibleToSuperUser": "Vous est visible car vous avez un accès Super Utilisateur",
+ "SharedWithYou": "Partagé avec vous",
"YouMustBeLoggedInToCreateSegments": "Vous devez être identifié(e) pour créer et modifier des segments de visiteurs personnalisés.",
"YouDontHaveAccessToCreateSegments": "Vous n'avez pas les permissions requises pour créer et modifier des segments.",
"AddingSegmentForAllWebsitesDisabled": "Ajouter des segments pour tous les sites a été désactivé.",
diff --git a/plugins/SegmentEditor/lang/hi.json b/plugins/SegmentEditor/lang/hi.json
index b2570eb098..f293d5017d 100644
--- a/plugins/SegmentEditor/lang/hi.json
+++ b/plugins/SegmentEditor/lang/hi.json
@@ -18,7 +18,6 @@
"SegmentDisplayedThisWebsiteOnly": "यह वेबसाइट केवल",
"SegmentIsDisplayedForWebsite": "और के लिए प्रदर्शित",
"SegmentNotApplied": "खंड '%s' को लागू नहीं",
- "SelectSegmentOfVisitors": "दर्शकों के एक वर्ग का चयन करें:",
"ThisSegmentIsVisibleTo": "इस खंड के लिए दिख रहा है:",
"VisibleToAllUsers": "सभी उपयोगकर्ताओं",
"VisibleToMe": "मुझे",
diff --git a/plugins/SegmentEditor/lang/id.json b/plugins/SegmentEditor/lang/id.json
index 7b48c501b5..13a73eedfb 100644
--- a/plugins/SegmentEditor/lang/id.json
+++ b/plugins/SegmentEditor/lang/id.json
@@ -15,7 +15,6 @@
"SegmentDisplayedAllWebsites": "seluruh situs",
"SegmentDisplayedThisWebsiteOnly": "hanya situs ini",
"SegmentIsDisplayedForWebsite": "dan ditampilkan untuk",
- "SelectSegmentOfVisitors": "Pilih sebuah pecahan pengunjung:",
"ThisSegmentIsVisibleTo": "Pecahan ini tampak untuk:",
"VisibleToAllUsers": "seluruh pengunjung",
"VisibleToMe": "saya",
diff --git a/plugins/SegmentEditor/lang/it.json b/plugins/SegmentEditor/lang/it.json
index 28b4b9f3ed..ef05248b2d 100644
--- a/plugins/SegmentEditor/lang/it.json
+++ b/plugins/SegmentEditor/lang/it.json
@@ -20,11 +20,13 @@
"SegmentIsDisplayedForWebsite": "e mostrato per",
"SegmentNotApplied": "Segmento '%s' non applicato",
"SegmentNotAppliedMessage": "Stai richiedendo i dati per il Segmento Personalizzato '%s', questa configurazione di Piwik attualmente esclude l'elaborazione in tempo reale dei report per ragioni di velocità.",
- "SelectSegmentOfVisitors": "Seleziona un segmento di visitatori:",
+ "SelectSegmentOfVisits": "Seleziona un segmento di visite:",
"ThisSegmentIsVisibleTo": "Questo segmento è visibile a:",
"VisibleToAllUsers": "tutti gli utenti",
"VisibleToMe": "me",
- "YouMayChangeSetting": "In alternativa, puoi cambiare le impostazioni nel file di configurazione (%s) o modificare questo Segmento e scegliere '%s'.",
+ "YouMayChangeSetting": "In alternativa, puoi cambiare le impostazioni nel file di configurazione (%1$s) o modificare questo Segmento e scegliere '%2$s'.",
+ "VisibleToSuperUser": "Visibile a te perché hai un accesso da Super User",
+ "SharedWithYou": "Condiviso con te",
"YouMustBeLoggedInToCreateSegments": "Devi avere effettuato l'accesso per creare e modificare i segmenti personalizzati dei visitatori.",
"YouDontHaveAccessToCreateSegments": "Non hai un livello d'accesso adeguato per creare e modificare i segmenti.",
"AddingSegmentForAllWebsitesDisabled": "L'aggiunta di segmenti per tutti i siti è stata disabilitata.",
diff --git a/plugins/SegmentEditor/lang/ja.json b/plugins/SegmentEditor/lang/ja.json
index 0156de56ab..d612e9594c 100644
--- a/plugins/SegmentEditor/lang/ja.json
+++ b/plugins/SegmentEditor/lang/ja.json
@@ -19,11 +19,10 @@
"SegmentIsDisplayedForWebsite": "表示対象の選択:",
"SegmentNotApplied": "セグメント '%s' が適用されませんでした",
"SegmentNotAppliedMessage": "カスタムセグメント '%s' のデータをリクエストしました。この Piwik の構成は現在、パフォーマンス上の理由からレポートのリアルタイム処理をおこないません。",
- "SelectSegmentOfVisitors": "ビジターのセグメントを選択:",
"ThisSegmentIsVisibleTo": "このセグメント設定の表示:",
"VisibleToAllUsers": "すべてのユーザー",
"VisibleToMe": "自分",
- "YouMayChangeSetting": "別の方法としては設定ファイル (%s) で設定を変更するか、このセグメント '%s' を選択し編集することができます。",
+ "YouMayChangeSetting": "別の方法としては設定ファイル (%1$s) で設定を変更するか、このセグメント '%2$s' を選択し編集することができます。",
"YouMustBeLoggedInToCreateSegments": "ビジターのカスタムセグメントの作成と編集にはログインが必要です。",
"YouDontHaveAccessToCreateSegments": "セグメントの作成および編集に必要なレベルのアクセス権限を持っていません。",
"AddingSegmentForAllWebsitesDisabled": "全ウェブサイトに対するセグメントは追加できませんでした。",
diff --git a/plugins/SegmentEditor/lang/lt.json b/plugins/SegmentEditor/lang/lt.json
new file mode 100644
index 0000000000..bd373755e1
--- /dev/null
+++ b/plugins/SegmentEditor/lang/lt.json
@@ -0,0 +1,5 @@
+{
+ "SegmentEditor": {
+ "OperatorAND": "IR"
+ }
+} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/nb.json b/plugins/SegmentEditor/lang/nb.json
index 79c0034940..00e9c985ce 100644
--- a/plugins/SegmentEditor/lang/nb.json
+++ b/plugins/SegmentEditor/lang/nb.json
@@ -9,7 +9,6 @@
"SegmentDisplayedAllWebsites": "alle nettsteder",
"SegmentDisplayedThisWebsiteOnly": "kun dette nettstedet",
"SegmentIsDisplayedForWebsite": "og vises for",
- "SelectSegmentOfVisitors": "Velg et segment av besøkende:",
"ThisSegmentIsVisibleTo": "Dette segmentet er synlig for:",
"VisibleToAllUsers": "alle brukere",
"VisibleToMe": "meg"
diff --git a/plugins/SegmentEditor/lang/nl.json b/plugins/SegmentEditor/lang/nl.json
index 32ca610e78..50f8c52718 100644
--- a/plugins/SegmentEditor/lang/nl.json
+++ b/plugins/SegmentEditor/lang/nl.json
@@ -19,11 +19,10 @@
"SegmentIsDisplayedForWebsite": "en getoond voor",
"SegmentNotApplied": "Segment '%s' niet toegepast",
"SegmentNotAppliedMessage": "Je probeert data op te vragen voor aangepast segment '%s', deze Piwik omgeving is op dit moment, vanwege performance redenen, ingericht om geen rapporten in realtime te verwerken.",
- "SelectSegmentOfVisitors": "Selecteer een segment van bezoekers:",
"ThisSegmentIsVisibleTo": "Dit segment is zichtbaar voor:",
"VisibleToAllUsers": "alle gebruikers",
"VisibleToMe": "mij",
- "YouMayChangeSetting": "Als alternatief kun je er voor kiezen om de instelling binnen het configuratie bestand (%s) aan te passen, of wijzig dit Segment en kies '%s'.",
+ "YouMayChangeSetting": "Als alternatief kun je er voor kiezen om de instelling binnen het configuratie bestand (%1$s) aan te passen, of wijzig dit Segment en kies '%2$s'.",
"YouMustBeLoggedInToCreateSegments": "Je moet ingelogd zijn om Bezoekers segmenten te bewerken of aan te maken.",
"YouDontHaveAccessToCreateSegments": "U heeft niet het benodigde toegangsniveau om segmenten te maken en bewerken.",
"AddingSegmentForAllWebsitesDisabled": "Het toevoegen van segmenten voor alle websites is uitgeschakeld."
diff --git a/plugins/SegmentEditor/lang/pt-br.json b/plugins/SegmentEditor/lang/pt-br.json
index eb7a8919d2..96efec50fe 100644
--- a/plugins/SegmentEditor/lang/pt-br.json
+++ b/plugins/SegmentEditor/lang/pt-br.json
@@ -20,11 +20,13 @@
"SegmentIsDisplayedForWebsite": "e exibidos para",
"SegmentNotApplied": "Segmento '%s' não aplicado",
"SegmentNotAppliedMessage": "Você está solicitando dados para o Segmento Personalizado '%s', e esta configuração Piwik atualmente impede o processamento em tempo real de relatórios por motivos de desempenho.",
- "SelectSegmentOfVisitors": "Selecione um segmento de visitantes:",
+ "SelectSegmentOfVisits": "Selecione um segmento de visitas:",
"ThisSegmentIsVisibleTo": "Este segmento é visível para:",
"VisibleToAllUsers": "Todos os Usuários",
"VisibleToMe": "mim",
- "YouMayChangeSetting": "Alternativamente, você pode alterar a configuração no arquivo de configuração (%s), ou editar este Segmento e escolher %s.",
+ "YouMayChangeSetting": "Alternativamente, você pode alterar a configuração no arquivo de configuração (%1$s), ou editar este Segmento e escolher %2$s.",
+ "VisibleToSuperUser": "Visível pra você porque você tem acesso Super Usuário",
+ "SharedWithYou": "Compartilhado com você",
"YouMustBeLoggedInToCreateSegments": "Você precisa estar logado para criar e editar segmentos personalizados de visitantes.",
"YouDontHaveAccessToCreateSegments": "Você não tem o nível de acesso necessário para criar e editar segmentos.",
"AddingSegmentForAllWebsitesDisabled": "Adicionar segmentos para todos os sites foi desativado.",
diff --git a/plugins/SegmentEditor/lang/ro.json b/plugins/SegmentEditor/lang/ro.json
index b59f7357ef..af9fd478db 100644
--- a/plugins/SegmentEditor/lang/ro.json
+++ b/plugins/SegmentEditor/lang/ro.json
@@ -18,11 +18,10 @@
"SegmentIsDisplayedForWebsite": "și afișate pentru",
"SegmentNotApplied": "Segmentul '%s' nu se aplica",
"SegmentNotAppliedMessage": "Vi se solicită date pentru segmentul personalizat '%s', această configurație Piwik împiedică în prezent prelucrarea în timp real a rapoartelor pentru motive de performanță.",
- "SelectSegmentOfVisitors": "Selecteaza un segment de vizitatori:",
"ThisSegmentIsVisibleTo": "Acest segment este vizibil către:",
"VisibleToAllUsers": "tuturor utilizatorilor",
"VisibleToMe": "mie",
- "YouMayChangeSetting": "Alternativ, puteți schimba setările în fișierul de configurare (%s), sau pentru a edita acest segment și alegeți '%s'.",
+ "YouMayChangeSetting": "Alternativ, puteți schimba setările în fișierul de configurare (%1$s), sau pentru a edita acest segment și alegeți '%2$s'.",
"YouMustBeLoggedInToCreateSegments": "Trebuie să fii logat pentru a crea și edita segmente de vizitatori personalizate.",
"YouDontHaveAccessToCreateSegments": "Nu ai nivelul de acces necesar pentru a crea și edita segmente."
}
diff --git a/plugins/SegmentEditor/lang/ru.json b/plugins/SegmentEditor/lang/ru.json
index 939b09e1f6..eb0f9c3c05 100644
--- a/plugins/SegmentEditor/lang/ru.json
+++ b/plugins/SegmentEditor/lang/ru.json
@@ -14,7 +14,6 @@
"SegmentDisplayedThisWebsiteOnly": "только этот сайт",
"SegmentIsDisplayedForWebsite": "и отображается для",
"SegmentNotAppliedMessage": "Вы запрашиваете данные для пользовательского сегмента '%s', эта конфигурация Piwik в данный момент препятствует обработке отчетов в реальном времени по соображениям производительности.",
- "SelectSegmentOfVisitors": "Выберите сегмент посетителей:",
"ThisSegmentIsVisibleTo": "Этот сегмент видим для:",
"VisibleToAllUsers": "все пользователи",
"VisibleToMe": "меня",
diff --git a/plugins/SegmentEditor/lang/sr.json b/plugins/SegmentEditor/lang/sr.json
index 82102c610e..2be5a7457c 100644
--- a/plugins/SegmentEditor/lang/sr.json
+++ b/plugins/SegmentEditor/lang/sr.json
@@ -19,11 +19,10 @@
"SegmentIsDisplayedForWebsite": "i prikazan za",
"SegmentNotApplied": "Segment '%s' nije primenjen.",
"SegmentNotAppliedMessage": "Zahtevali ste podatke za korisnički definisani segment '%s' a trenutne postavke Piwik-a sprečavaju procesiranje izveštaja u realnom vremenu zbog očuvanja nivoa performansi.",
- "SelectSegmentOfVisitors": "Izaberite segment posetilaca:",
"ThisSegmentIsVisibleTo": "Ovaj segment je vidljiv:",
"VisibleToAllUsers": "svi korisnici",
"VisibleToMe": "meni",
- "YouMayChangeSetting": "Takođe možete promeniti podešavanja i u datoteci %s ili izmenom segmenta i izborom '%s'.",
+ "YouMayChangeSetting": "Takođe možete promeniti podešavanja i u datoteci %1$s ili izmenom segmenta i izborom '%2$s'.",
"YouMustBeLoggedInToCreateSegments": "Morate biti prijavljeni kako biste mogli da kreirate i menjate segmente.",
"YouDontHaveAccessToCreateSegments": "Nemate odgovarajući nivo pristupa da biste kreirali i menjali segmente.",
"AddingSegmentForAllWebsitesDisabled": "Dodavanje segmenata za sve sajtove je onemogućeno."
diff --git a/plugins/SegmentEditor/lang/sv.json b/plugins/SegmentEditor/lang/sv.json
index d88071b374..9e81fa0995 100644
--- a/plugins/SegmentEditor/lang/sv.json
+++ b/plugins/SegmentEditor/lang/sv.json
@@ -18,12 +18,14 @@
"SegmentIsDisplayedForWebsite": "och visas för",
"SegmentNotApplied": "Segment '%s' tillämpas inte",
"SegmentNotAppliedMessage": "Du begär data för det Anpassade Segmentet '%s', denna Piwik konfiguration förhindrar realtidsbearbetning av rapporter pga prestandaskäl.",
- "SelectSegmentOfVisitors": "Välj ett besökarsegment",
"ThisSegmentIsVisibleTo": "Det här segmentet är synligt för:",
"VisibleToAllUsers": "alla användare",
"VisibleToMe": "jag",
- "YouMayChangeSetting": "Alternativt kan du ändra inställningarna i konfigurationsfilen (%s), eller redigera detta Segment och välj '%s'.",
+ "YouMayChangeSetting": "Alternativt kan du ändra inställningarna i konfigurationsfilen (%1$s), eller redigera detta Segment och välj '%2$s'.",
"YouMustBeLoggedInToCreateSegments": "Du måste vara inloggad för att skapa och redigera besökssegment.",
- "YouDontHaveAccessToCreateSegments": "Du har inte rättigheter för att skapa och redigera segment."
+ "YouDontHaveAccessToCreateSegments": "Du har inte rättigheter för att skapa och redigera segment.",
+ "CustomSegment": "Anpassat segment",
+ "SegmentOperatorIsNullOrEmpty": "är null eller tom",
+ "SegmentOperatorIsNotNullNorEmpty": "är inte null och inte tom"
}
} \ No newline at end of file
diff --git a/plugins/SegmentEditor/lang/tl.json b/plugins/SegmentEditor/lang/tl.json
index 2919911036..7e3b4a8f79 100644
--- a/plugins/SegmentEditor/lang/tl.json
+++ b/plugins/SegmentEditor/lang/tl.json
@@ -16,11 +16,10 @@
"SegmentDisplayedThisWebsiteOnly": "ang website na ito lamang",
"SegmentIsDisplayedForWebsite": "at ipinapakita para sa",
"SegmentNotApplied": "Hindi nai-apply ang Segment '%s'",
- "SelectSegmentOfVisitors": "Pumili ng isang segment sa mga bisita:",
"ThisSegmentIsVisibleTo": "Ang segment na ito ay makikita sa:",
"VisibleToAllUsers": "lahat ng mga user",
"VisibleToMe": "ako",
- "YouMayChangeSetting": "Maaari mo ring baguhin ang settings sa config file (%s) o i-edit ang mga Segment at piliin ang '%s'.",
+ "YouMayChangeSetting": "Maaari mo ring baguhin ang settings sa config file (%1$s) o i-edit ang mga Segment at piliin ang '%2$s'.",
"YouMustBeLoggedInToCreateSegments": "Kailangan mong mag log-in upang gumawa at mag-edit ng custom visitor segments.",
"YouDontHaveAccessToCreateSegments": "Wala kang mga kinakailangang access level upang lumikha at mag edit ng mga segment.",
"AddingSegmentForAllWebsitesDisabled": "Ang pagdagdag ng bahagi para sa lahat ng website ay hindi na pinagana."
diff --git a/plugins/SegmentEditor/lang/vi.json b/plugins/SegmentEditor/lang/vi.json
index b6630be6c9..78a7a6dc80 100644
--- a/plugins/SegmentEditor/lang/vi.json
+++ b/plugins/SegmentEditor/lang/vi.json
@@ -15,7 +15,6 @@
"SegmentDisplayedAllWebsites": "Tất cả các website",
"SegmentDisplayedThisWebsiteOnly": "Chỉ website này",
"SegmentIsDisplayedForWebsite": "và hiển thị cho",
- "SelectSegmentOfVisitors": "Chọn một phân đoạn của khách truy cập:",
"ThisSegmentIsVisibleTo": "Phân đoạn này có thể nhìn thấy:",
"VisibleToAllUsers": "Tất cả người dùng",
"VisibleToMe": "Tôi",
diff --git a/plugins/SegmentEditor/lang/zh-cn.json b/plugins/SegmentEditor/lang/zh-cn.json
index 4f5e3b5d0b..ff6c9f1c3d 100644
--- a/plugins/SegmentEditor/lang/zh-cn.json
+++ b/plugins/SegmentEditor/lang/zh-cn.json
@@ -15,7 +15,6 @@
"SegmentDisplayedAllWebsites": "所有网站",
"SegmentDisplayedThisWebsiteOnly": "仅这个网站",
"SegmentIsDisplayedForWebsite": "显示",
- "SelectSegmentOfVisitors": "选择一个访客分段",
"ThisSegmentIsVisibleTo": "这个分段对其可见:",
"VisibleToAllUsers": "所有用户",
"VisibleToMe": "我",
diff --git a/plugins/SegmentEditor/stylesheets/segmentation.less b/plugins/SegmentEditor/stylesheets/segmentation.less
index 125a0c9f56..afc79b3a9b 100644
--- a/plugins/SegmentEditor/stylesheets/segmentation.less
+++ b/plugins/SegmentEditor/stylesheets/segmentation.less
@@ -174,7 +174,7 @@ div.scrollable {
}
.segment-element .segment-nav div > ul > li a {
- color: #5d5342;
+ color: @theme-color-text-light;
font-size: 11px;
font-weight: bold;
text-decoration: none;
@@ -454,7 +454,7 @@ div.scrollable {
}
.segmentationContainer .submenu ul {
- color: #5D5342;
+ color: @theme-color-text-light;
float: none;
font-size: 11px;
font-weight: normal;
@@ -466,19 +466,14 @@ div.scrollable {
}
.segmentationContainer .submenu ul li {
- padding: 2px 0px 1px 6px;
+ padding: 2px 0 1px 6px;
margin: 3px 0 0 0;
cursor: pointer;
}
.segmentationContainer .submenu ul li:hover {
color: #255792;
- margin: 0;
- margin-left: -3px;
- border: 1px solid #d5d2c6;
- border-bottom: 2px solid #918f88;
- border-radius: 4px;
- background: #eae8e3;
+ background: @color-silver-l95;
}
.segmentationContainer ul.submenu {
@@ -496,6 +491,11 @@ div.scrollable {
background: url(plugins/SegmentEditor/images/edit_segment.png) no-repeat;
width: 16px;
height: 16px;
+ .opacity(0.5);
+
+ &:hover {
+ .opacity(1);
+ }
}
.segmentEditorPanel.expanded .segmentationContainer {
@@ -572,7 +572,7 @@ body > a.ddmetric {
cursor: move;
padding: 1px 0 2px 18px;
background: #eae8e3 url(plugins/SegmentEditor/images/segment-move.png) 100% 50% no-repeat;
- color: #5d5342;
+ color: @theme-color-text-light;
font-weight: normal;
font-size: 11px;
text-decoration: none;
@@ -723,6 +723,10 @@ a.metric_category {
max-width: 170px;
}
+.segment-clicked {
+ font-weight: bold;
+}
+
.segmentEditorPanel a.title {
padding-bottom: 8px;
}
@@ -759,3 +763,11 @@ a.metric_category {
display: inline-block;
vertical-align: sub;
}
+
+.segmentsVisibleToSuperUser, .segmentsSharedWithMeBySuperUser {
+ font-style: italic;
+
+ li {
+ font-style: normal;
+ }
+}
diff --git a/plugins/SegmentEditor/templates/_segmentSelector.twig b/plugins/SegmentEditor/templates/_segmentSelector.twig
index dc269dc8b9..8d03b6d5bd 100644
--- a/plugins/SegmentEditor/templates/_segmentSelector.twig
+++ b/plugins/SegmentEditor/templates/_segmentSelector.twig
@@ -1,13 +1,13 @@
<div class="SegmentEditor" style="display:none;">
<div class="segmentationContainer listHtml" title="{{ 'SegmentEditor_ChooseASegment'|translate|e('html_attr') }}. {{ 'SegmentEditor_CurrentlySelectedSegment'|translate(segmentDescription)|e('html_attr') }}">
- <a class="title"><span class="icon icon-segment"></span><span class="segmentationTitle"></span></a>
+ <a class="title" tabindex="4"><span class="icon icon-segment"></span><span class="segmentationTitle"></span></a>
<div class="dropdown dropdown-body">
<div class="segmentFilterContainer">
<input class="segmentFilter" type="text" value="{{ 'General_Search'|translate }}"/>
<span/>
</div>
<ul class="submenu">
- <li>{{ 'SegmentEditor_SelectSegmentOfVisitors'|translate }}
+ <li>{{ 'SegmentEditor_SelectSegmentOfVisits'|translate }}
<div class="segmentList">
<ul>
</ul>
@@ -18,6 +18,7 @@
{% if authorizedToCreateSegments %}
<a class="add_new_segment btn">{{ 'SegmentEditor_AddNewSegment'|translate }}</a>
{% else %}
+ <hr/>
<ul class="submenu">
<li>
{% if isUserAnonymous %}
@@ -26,6 +27,7 @@
{% endif %}
</li>
</ul>
+ <br/><br/>
{% endif %}
</div>
</div>
diff --git a/plugins/SegmentEditor/tests/Integration/ApiTest.php b/plugins/SegmentEditor/tests/Integration/ApiTest.php
new file mode 100644
index 0000000000..c58ec7a8cd
--- /dev/null
+++ b/plugins/SegmentEditor/tests/Integration/ApiTest.php
@@ -0,0 +1,221 @@
+<?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\SegmentEditor\tests\Integration;
+
+use Piwik\Plugins\SegmentEditor\API;
+use Piwik\Tests\Framework\Fixture;
+use Piwik\Tests\Framework\Mock\FakeAccess;
+use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
+
+/**
+ * @group SegmentEditor
+ * @group ApiTest
+ * @group Plugins
+ */
+class ApiTest extends IntegrationTestCase
+{
+ /**
+ * @var API
+ */
+ private $api;
+
+ public function setUp()
+ {
+ parent::setUp();
+
+ $this->api = API::getInstance();
+
+ Fixture::createSuperUser();
+ if (!Fixture::siteCreated(1)) {
+ Fixture::createWebsite('2012-01-01 00:00:00');
+ }
+ if (!Fixture::siteCreated(2)) {
+ Fixture::createWebsite('2012-01-01 00:00:00');
+ }
+
+ }
+
+ public function test_getAll_forOneWebsite_returnsSortedSegments()
+ {
+ $this->createAdminUser();
+ $this->createSegments();
+ $this->setAdminUser();
+
+ $expectedOrder = array(
+ // 1) my segments
+ 'segment 1',
+ 'segment 3',
+ 'segment 7',
+
+ // 2) segments created by a super user that were shared with all users
+ 'segment 5',
+ 'segment 9',
+
+ // 3) segments created by other users (which are visible to all super users)
+ // not a super user, so can't see those
+ );
+
+ $segments = $this->api->getAll($idSite = 1);
+ $segmentNames = $this->getNamesFromSegments($segments);
+ $this->assertSame($expectedOrder, $segmentNames);
+ }
+
+ public function test_getAll_forAllWebsites_returnsSortedSegments()
+ {
+ $this->createAdminUser();
+ $this->createSegments();
+ $this->setAdminUser();
+
+ $expectedOrder = array(
+ // 1) my segments
+ 'segment 1',
+ 'segment 2',
+ 'segment 3',
+ 'segment 7',
+
+ // 2) segments created by a super user that were shared with all users
+ 'segment 5',
+ 'segment 6',
+ 'segment 9',
+
+ // 3) segments created by other users (which are visible to all super users)
+ // not a super user, so can't see those
+ );
+
+ $segments = $this->api->getAll();
+ $segmentNames = $this->getNamesFromSegments($segments);
+ $this->assertSame($expectedOrder, $segmentNames);
+ }
+
+ public function test_getAll_forAllWebsites_returnsSortedSegments_asSuperUser()
+ {
+ $this->createAdminUser();
+ $this->createSegments();
+ $this->setAnotherSuperUser();
+
+ $expectedOrder = array(
+ // 1) my segments
+ 'segment 9',
+
+ // 2) segments created by a super user that were shared with all users
+ 'segment 5',
+ 'segment 6',
+
+ // 3) segments created by other users (which are visible to all super users)
+ 'segment 1',
+ 'segment 2',
+ 'segment 3',
+ 'segment 4',
+ 'segment 7',
+ 'segment 8',
+ );
+
+ $segments = $this->api->getAll();
+ $segmentNames = $this->getNamesFromSegments($segments);
+ $this->assertSame($expectedOrder, $segmentNames);
+ }
+
+ public function test_getAll_forOneWebsite_returnsSortedSegments_asSuperUser()
+ {
+ $this->createAdminUser();
+ $this->createSegments();
+ $this->setAnotherSuperUser();
+
+ $expectedOrder = array(
+ // 1) my segments
+ 'segment 9',
+
+ // 2) segments created by a super user that were shared with all users
+ 'segment 5',
+
+ // 3) segments created by other users (which are visible to all super users)
+ 'segment 1',
+ 'segment 3',
+ 'segment 4',
+ 'segment 7',
+ 'segment 8',
+ );
+
+ $segments = $this->api->getAll($idSite = 1);
+ $segmentNames = $this->getNamesFromSegments($segments);
+ $this->assertSame($expectedOrder, $segmentNames);
+ }
+
+ /**
+ * @return bool|int
+ */
+ protected function createSegments()
+ {
+ $this->setAdminUser();
+ $this->api->add('segment 1', 'visitCount<2', $idSite = 1, $autoArchive = true, $enableAllUsers = false);
+ $this->api->add('segment 2', 'countryCode==fr', $idSite = 2, $autoArchive = false, $enableAllUsers = false);
+ $this->api->add('segment 3', 'visitCount<2', $idSite = 1, $autoArchive = true, $enableAllUsers = false);
+
+ $this->setSuperUser();
+ $this->api->add('segment 4', 'countryCode!=fr', $idSite = false, $autoArchive = false, $enableAllUsers = false);
+ $this->api->add('segment 5', 'countryCode!=fr', $idSite = 1, $autoArchive = false, $enableAllUsers = true);
+ $this->api->add('segment 6', 'visitCount<2', $idSite = 2, $autoArchive = true, $enableAllUsers = true);
+
+ $this->setAdminUser();
+ $this->api->add('segment 7', 'visitCount<2', $idSite = 1, $autoArchive = true, $enableAllUsers = false);
+
+ $this->setAnotherAdminUser();
+ $this->api->add('segment 8', 'visitCount<2', $idSite = 1, $autoArchive = true, $enableAllUsers = false);
+
+ $this->setAnotherSuperUser();
+ $this->api->add('segment 9', 'countryCode!=fr', $idSite = false, $autoArchive = false, $enableAllUsers = true);
+
+ }
+
+ protected function setSuperUser($userName = 'superUserLogin')
+ {
+ FakeAccess::clearAccess($superUser = true, $idSitesAdmin = array(), $idSitesView = array(), $userName);
+ }
+
+ protected function setAnotherSuperUser()
+ {
+ $this->setSuperUser('anotherSuperUser');
+ }
+
+ protected function setAdminUser($userName = 'myUserLogin')
+ {
+ FakeAccess::clearAccess($superUser = false, $idSitesAdmin = array(1,2), $idSitesView = array(1,2), $userName);
+ }
+
+ protected function setAnotherAdminUser()
+ {
+ $this->setAdminUser('anotherUserWithAdmin');
+ }
+
+ public function provideContainerConfig()
+ {
+ return array(
+ 'Piwik\Access' => new FakeAccess()
+ );
+ }
+
+ protected function createAdminUser()
+ {
+ \Piwik\Plugins\UsersManager\API::getInstance()->addUser('myUserLogin', 'password', 'test@test.com');
+ }
+
+ /**
+ * @param $segments
+ * @return array
+ */
+ protected function getNamesFromSegments($segments)
+ {
+ $segmentNames = array();
+ foreach ($segments as $segment) {
+ $segmentNames[] = $segment['name'];
+ }
+ return $segmentNames;
+ }
+
+}
diff --git a/plugins/SitesManager/SitesManager.php b/plugins/SitesManager/SitesManager.php
index ca3f2757b9..5ebc5898f6 100644
--- a/plugins/SitesManager/SitesManager.php
+++ b/plugins/SitesManager/SitesManager.php
@@ -293,6 +293,7 @@ class SitesManager extends \Piwik\Plugin
$translationKeys[] = "SitesManager_AliasUrlHelp";
$translationKeys[] = "SitesManager_OnlyMatchedUrlsAllowed";
$translationKeys[] = "SitesManager_OnlyMatchedUrlsAllowedHelp";
+ $translationKeys[] = "SitesManager_OnlyMatchedUrlsAllowedHelpExamples";
$translationKeys[] = "SitesManager_KeepURLFragmentsLong";
$translationKeys[] = "SitesManager_HelpExcludedIps";
$translationKeys[] = "SitesManager_ListOfQueryParametersToExclude";
diff --git a/plugins/SitesManager/angularjs/sites-manager/sites-manager.controller.js b/plugins/SitesManager/angularjs/sites-manager/sites-manager.controller.js
index 5e0fcbb6e2..b5d7ec0213 100644
--- a/plugins/SitesManager/angularjs/sites-manager/sites-manager.controller.js
+++ b/plugins/SitesManager/angularjs/sites-manager/sites-manager.controller.js
@@ -159,7 +159,7 @@
$scope.timezones.push({
group: timezoneGroup,
code: code,
- label: label
+ label: label
});
});
});
diff --git a/plugins/SitesManager/lang/ar.json b/plugins/SitesManager/lang/ar.json
index e2f60cbdd8..362c0bb945 100644
--- a/plugins/SitesManager/lang/ar.json
+++ b/plugins/SitesManager/lang/ar.json
@@ -12,8 +12,8 @@
"DeleteConfirm": "هل ترغب حقاً في حذف هذا الموقع %s؟",
"ExceptionDeleteSite": "لا يمكنك حذف هذا الموقع، فهو الوحيد المسجل لديك. أضف موقعاً جديداً ثم قم بحذف هذا الموقع.",
"ExceptionEmptyName": "لا يمكن ترك حقل اسم الموقع فارغاً.",
- "ExceptionInvalidCurrency": "العملة \"%s\" غير صالحة. الرجاء إدخال رمز عملة صالح (مثل %s).",
- "ExceptionInvalidIPFormat": "عنوان IP المستثنى \"%s\" لا يوافق صيغة عنوان IP صحيحة (مثل %s).",
+ "ExceptionInvalidCurrency": "العملة \"%1$s\" غير صالحة. الرجاء إدخال رمز عملة صالح (مثل %2$s).",
+ "ExceptionInvalidIPFormat": "عنوان IP المستثنى \"%1$s\" لا يوافق صيغة عنوان IP صحيحة (مثل %2$s).",
"ExceptionInvalidTimezone": "المنقطة الزمنية \"%s\" غير صالحة. الرجاء إدخال منطقة زمنية صالحة.",
"ExceptionInvalidUrl": "الرابط \"%s\" غير صالح.",
"ExceptionNoUrl": "يجب عليك أن تحدد رابط ويب وحيد على الأقل للموقع.",
diff --git a/plugins/SitesManager/lang/be.json b/plugins/SitesManager/lang/be.json
index 0ce685219b..327f5f635e 100644
--- a/plugins/SitesManager/lang/be.json
+++ b/plugins/SitesManager/lang/be.json
@@ -14,8 +14,8 @@
"EnableEcommerce": "Электронная камерцыя уключана",
"ExceptionDeleteSite": "Немагчыма выдаліць, бо гэта адзіны сайт у вашым спісе. Дадайце яшчэ які-небудзь сайт для выдалення дадзенага.",
"ExceptionEmptyName": "Назва сайта не можа быць пустое.",
- "ExceptionInvalidCurrency": "Валюта \"%s\" з'яўляецца недапушчальнай. Калі ласка, увядзіце правільны сімвал валюты (напр., %s)",
- "ExceptionInvalidIPFormat": "IP-адрас для выключэння \"%s\" не мае правільны фармат IP-адраса (напр., %s).",
+ "ExceptionInvalidCurrency": "Валюта \"%1$s\" з'яўляецца недапушчальнай. Калі ласка, увядзіце правільны сімвал валюты (напр., %2$s)",
+ "ExceptionInvalidIPFormat": "IP-адрас для выключэння \"%1$s\" не мае правільны фармат IP-адраса (напр., %2$s).",
"ExceptionInvalidTimezone": "Гадзінны пояс \"%s\" з'яўляецца недапушчальным. Калі ласка, увядзіце правільны гадзінны пояс.",
"ExceptionInvalidUrl": "URL '%s' не дакладны.",
"ExceptionNoUrl": "Вы павінны паказаць хоць бы адзін URL для гэтага сайта.",
@@ -34,7 +34,7 @@
"NotFound": "Няма знойдзеных сайтаў",
"NoWebsites": "Вы не маеце ніводнага сайта на ўліку.",
"OnlyOneSiteAtTime": "Вы можаце рэдагаваць толькі адзін вэб-сайт за адзін раз. Калі ласка, захаваце ці адмяніце змены ў бягучым сайце %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik прапаноўвае пашыранае адсочванне і рэпартаванне для камерцыйных вэб-сайтаў. Даведайцеся больш пра %s Аналітыку Электронна-камерцыйных сайтаў%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik прапаноўвае пашыранае адсочванне і рэпартаванне для камерцыйных вэб-сайтаў. Даведайцеся больш пра %1$s Аналітыку Электронна-камерцыйных сайтаў%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik аўтаматычна выключае агульныя параметры сесіі (%s).",
"SelectACity": "Абярыце горад",
"SelectDefaultCurrency": "Вы можаце выбраць валюту для ўстаноўкі па змаўчанні для новых вэб-сайтаў.",
diff --git a/plugins/SitesManager/lang/bg.json b/plugins/SitesManager/lang/bg.json
index 7c7c3e3810..45f35a7fbc 100644
--- a/plugins/SitesManager/lang/bg.json
+++ b/plugins/SitesManager/lang/bg.json
@@ -16,8 +16,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Ако има нужда, могат да се изключат различни потребителски агенти, за различни сайтове. За целта активирайте тази отметка, щракнете „Запази“ и %1$sдобави потребителските агенти по-горе%2$s.",
"ExceptionDeleteSite": "Не е възможно да изтриете този сайт, защото той е единствения регистриран в системата. Преди да изтриете този сайт е нужно да добавите нов сайт.",
"ExceptionEmptyName": "Полето за име на сайт не може да бъде празно.",
- "ExceptionInvalidCurrency": "Валутата \"%s\" не е валидна. Моля, въведете валиден символ за валутата (например %s)",
- "ExceptionInvalidIPFormat": "IP адресът за изключване \"%s\" не е във валиден IP формат (например %s)",
+ "ExceptionInvalidCurrency": "Валутата \"%1$s\" не е валидна. Моля, въведете валиден символ за валутата (например %2$s)",
+ "ExceptionInvalidIPFormat": "IP адресът за изключване \"%1$s\" не е във валиден IP формат (например %2$s)",
"ExceptionInvalidTimezone": "Времевата зона \"%s\" не е валидна. Моля, въведете валидна времева зона.",
"ExceptionInvalidUrl": "Адреса '%s' не е валиден.",
"ExceptionNoUrl": "Необходимо е да въведете поне един адрес (URL) за сайта.",
@@ -37,7 +37,7 @@
"NotFound": "Не са намерени уеб сайтове",
"NoWebsites": "Вие нямате сайт, който да администрирате.",
"OnlyOneSiteAtTime": "Не можете да променяте едновременно два сайта. Моля Запазете или Откажете вашата текуща модификация на този уеб сайт %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik позволява задълбочено проследяване и анализ на Електронна търговия. Научете повече относно %s Електронна търговия анализ %s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik позволява задълбочено проследяване и анализ на Електронна търговия. Научете повече относно %1$s Електронна търговия анализ %2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik автоматично ще изключи общите параметри на сесията (%s).",
"SearchKeywordLabel": "Параметър за заявката",
"SearchKeywordParametersDesc": "Въведете списък, разделен със запетаи, за имената на всички заявки съдържащи търсени ключови думи в сайта.",
@@ -47,7 +47,7 @@
"ShowTrackingTag": "покажи кода за вмъкване",
"Sites": "Сайтове",
"SiteSearchUse": "Можете да използвате Piwik да следи и докладва това, което посетителите търсят, посредством търсачката на сайта.",
- "SuperUserAccessCan": "Потребител с права „привилигирован потребител“ може да достъпва също %sзадаване на глобални настройки%s за новите сайтове.",
+ "SuperUserAccessCan": "Потребител с права „привилигирован потребител“ може да достъпва също %1$sзадаване на глобални настройки%2$s за новите сайтове.",
"Timezone": "Часова зона",
"TrackingTags": "Проследяване на етикети за %s",
"Urls": "Адреси",
diff --git a/plugins/SitesManager/lang/ca.json b/plugins/SitesManager/lang/ca.json
index 29b228a40d..37d076ed72 100644
--- a/plugins/SitesManager/lang/ca.json
+++ b/plugins/SitesManager/lang/ca.json
@@ -18,8 +18,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Si necessiteu excluïr diferents user-agent per a diferents llocs webs, marque aquesta opció, guardeu les opcions i %1$s afegiu user-agents a continuaicó %2$s.",
"ExceptionDeleteSite": "No és possible eliminar aquest lloc ja que és l'únic configurat. Afegiu un altre lloc primer i, llavors, ja esborrareu aquest.",
"ExceptionEmptyName": "El nom del lloc no pot estar buit.",
- "ExceptionInvalidCurrency": "La moneda \"%s\" no es vàlida. Sisplau, introduïu un símbol de moneda vàlid (p.e. %s)",
- "ExceptionInvalidIPFormat": "La IP a excloure \"%s\" no te un format IP vàlid (p.e. %s).",
+ "ExceptionInvalidCurrency": "La moneda \"%1$s\" no es vàlida. Sisplau, introduïu un símbol de moneda vàlid (p.e. %2$s)",
+ "ExceptionInvalidIPFormat": "La IP a excloure \"%1$s\" no te un format IP vàlid (p.e. %2$s).",
"ExceptionInvalidTimezone": "La zona horària \"%s\" no es vàlida. Sisplau introduïu una zona horària vàlida.",
"ExceptionInvalidUrl": "L'adreça '%s' no és vàlida.",
"ExceptionNoUrl": "Heu d'especificar una URL com a mínim.",
@@ -43,7 +43,7 @@
"NotFound": "No s'han trobat llocs web per",
"NoWebsites": "No teniu cap lloc que pugueu administrar",
"OnlyOneSiteAtTime": "Només podeu editar un lloc web a la vegada. Sisplau, Guardeu o Canceleu les modificacions al lloc web %s.",
- "PiwikOffersEcommerceAnalytics": "EL Piwik permet analítiques avançades per a Eccomerce. Sabeu més de les %s Analítiques per a Ecommerce %s.",
+ "PiwikOffersEcommerceAnalytics": "EL Piwik permet analítiques avançades per a Eccomerce. Sabeu més de les %1$s Analítiques per a Ecommerce %2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik exclourà automàticament els paràmetres de sessió comuns (%s).",
"SearchCategoryDesc": "El Piwik també pot gestionar la categoria de Cerca per cada una de les paraules clau de la carca interna.",
"SearchCategoryLabel": "Paràmetre de la categoria",
@@ -52,7 +52,7 @@
"SearchKeywordParametersDesc": "Introduïu una llista separada per comes de paràmetres que conte la paraula clau de cerca al lloc web.",
"SearchParametersNote": "Nota: Els parametres de cerca i categoria de cerca només s'utilitzaran per llocs webs que tenen la Cerca al lloc activada pero que tenen aquest paràmetres en blanc.",
"SearchParametersNote2": "Per deshabilitar la Cerca al lloc per als nous llocs web, deixeu aquest dos camps en blanc.",
- "SearchUseDefault": "Utilitzar els paràmetres de Cerca al Lloc %s per defecte %s",
+ "SearchUseDefault": "Utilitzar els paràmetres de Cerca al Lloc %1$s per defecte %2$s",
"SelectACity": "Seleccioneu una ciutat",
"SelectDefaultCurrency": "Podeu seleccionar la moneda per defecte dels nous llocs web.",
"SelectDefaultTimezone": "Podeu seleccionar la zona horària per defecte dels nous llocs web.",
diff --git a/plugins/SitesManager/lang/cs.json b/plugins/SitesManager/lang/cs.json
index 6854eadf75..3edb945e24 100644
--- a/plugins/SitesManager/lang/cs.json
+++ b/plugins/SitesManager/lang/cs.json
@@ -16,11 +16,11 @@
"EnableEcommerce": "Obchod zapnutý",
"EnableSiteSearch": "Sledování vyhledávání na stránkách je povoleno",
"EnableSiteSpecificUserAgentExclude": "Povolit vynechání user agentů specifické pro stránky.",
- "EnableSiteSpecificUserAgentExclude_Help": "Pokud pro různé webové stránky potřebujete vyloučit různé uživatelské agenty, zaškrtněte toto pole, klikněte na uložit a pak %1$spřidejte uživatelské agenty výše%2$s.",
+ "EnableSiteSpecificUserAgentExclude_Help": "Pokud potřebujete pro různé weby vyloučit různé uživatelské agenty, zaškrtněte toto pole, klikněte na uložit a pak %1$spřidejte uživatelské agenty výše%2$s.",
"ExceptionDeleteSite": "Není možné vymazat toto Web, protože je jediné registrované. Nejprve přidejte nový web, poté jej vymažte.",
"ExceptionEmptyName": "Jméno Webu nemůže zůstat prázdné.",
- "ExceptionInvalidCurrency": "Měna %s je neplatná. Prosím zadejte platný symbol měny. (např.: %s)",
- "ExceptionInvalidIPFormat": "IP adresa k vynechání \"%s\" není v platném formátu (např.: %s)",
+ "ExceptionInvalidCurrency": "Měna %1$s je neplatná. Prosím zadejte platný symbol měny. (např.: %2$s)",
+ "ExceptionInvalidIPFormat": "IP adresa k vynechání \"%1$s\" není v platném formátu (např.: %2$s)",
"ExceptionInvalidTimezone": "Časová zóna %s je neplatná. Prozím zadejte platnou zónu.",
"ExceptionInvalidUrl": "URL '%s' není platné URL.",
"ExceptionNoUrl": "Musíte zadat alespoň jednu URL pro web.",
@@ -33,7 +33,7 @@
"GlobalListExcludedQueryParameters": "Globální seznam vynechaných URL parametrů",
"GlobalListExcludedUserAgents": "Globální seznam uživatelských agentů k vyloučení",
"GlobalListExcludedUserAgents_Desc": "Pokud řetězec uživatelského agenta obsahuje některý ze zadaných řetězců, tento návštěvník bude vyloučen z Piwiku.",
- "GlobalWebsitesSettings": "Globální nastavení sídel",
+ "GlobalWebsitesSettings": "Nastavení globálních webových stránek",
"HelpExcludedIps": "Zatejte seznam IP adrese, jednu na řádek, které chcete vynechat ze záznamů Piwiku. Můžete použít zástupné znaky např. %1$s nebo %2$s",
"JsTrackingTagHelp": "Zde je JavaScriptový zaznamenávací tag pro vložení na všechny vaše stránky",
"KeepURLFragments": "Sledování URL fragmentů stránek",
@@ -48,17 +48,17 @@
"NotFound": "Žádné www nenalezený pro",
"NoWebsites": "Nemáte žádný Weby k administraci.",
"OnlyOneSiteAtTime": "Můžete upravit zároveň pouze jednu stránku. Uložte nebo zrušte současné úpravy stránky %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik povolen pro rozšířenou analytiku a měření stránek typu Obchod. Číst o %s analytice %s více.",
+ "PiwikOffersEcommerceAnalytics": "Piwik povolen pro rozšířenou analytiku a měření stránek typu Obchod. Číst o %1$s analytice %2$s více.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik automaticky vynechá běžné parametry sezení (%s)",
- "PluginDescription": "Správa webových stránek vám umožňuje přidat novou webovou stránku a upravit již existující.",
+ "PluginDescription": "Správa webů vám umožňuje přidat nový web a upravit již existující weby.",
"SearchCategoryDesc": "Piwik může také sledovat kategorii vyhledávánípro každé klíčové slovo interního vyhledávání.",
"SearchCategoryLabel": "Parametr kategorie",
"SearchCategoryParametersDesc": "Můžete zadat seznam parametrů dotazu oddělených čárkou, které určují kategorii.",
"SearchKeywordLabel": "Parametr dotazu",
"SearchKeywordParametersDesc": "Vložte seznam všech parametrů dotazu oddělených čárkou, které obsahují klíčové slovo stránek.",
- "SearchParametersNote": "Poznámka: Parametry dotazu a kategorie budou pouze pro webové stránky, které mají vyhledávání na stránkách povolené, ale tyto parametry jsou prázdné.",
+ "SearchParametersNote": "Poznámka: Parametry dotazu a kategorie budou použity pouze pro weby, které mají povolené vyhledávání na stránkách, ale tyto parametry jsou prázdné.",
"SearchParametersNote2": "Pokud chcete zakázat vyhledávání na stránkách pro nové stránky, nechte tato dvě pole prázdná.",
- "SearchUseDefault": "Použít %svýchozí%s parametry vyhledávání na stránkách",
+ "SearchUseDefault": "Použít %1$svýchozí%2$s parametry vyhledávání na stránkách",
"SelectACity": "Zvolte město",
"SelectDefaultCurrency": "Můžete zvolit výchozí měnu pro nové weby",
"SelectDefaultTimezone": "Můžete zvolit výchozí časovou zónu pro nové weby",
@@ -67,16 +67,19 @@
"SiteSearchUse": "Piwik můžete použít ke sledování a hlášení toho, co návštěvníci hledají pomocí interního vyhledávače.",
"SiteWithoutDataTitle": "Zatím nebyla zaznamenána žádná data",
"SiteWithoutDataDescription": "Pro tuto stránku nebyla zatím zaznamenána žádná analytická data.",
- "SiteWithoutDataSetupTracking": "Prosím, nastavte %1$ssledovací javascriptový kód %2$s na vašich webových stránkách, a pak stránku obnovte.",
- "SuperUserAccessCan": "Uživatel se super uživatelským přístupem může také %sspecifikovat globální nastavení%s pro nové webové stránky.",
+ "SiteWithoutDataSetupTracking": "Nastavte prosím %1$sJavaScript sledovací kód%2$s na svém webu, pokud jste tak již neučinili.",
+ "SiteWithoutDataMessageDisappears": "Tato zpráva zmizí jakmile dojde k nahrání nějakých dat pro tento web.",
+ "SiteWithoutDataSetupGoals": "Mezitím byste možná chtěli %1$snastavit nějaké cíle%2$s.",
+ "SuperUserAccessCan": "Uživatel se super-uživatelským přístupem může také %1$sspecifikovat globální nastavení%2$s pro nové weby.",
"Timezone": "Časová zóna",
"TrackingSiteSearch": "Sledování interního vyhledávání na stránkách",
"TrackingTags": "Zaznamenávací tagy pro %s",
"Urls": "URL",
"UTCTimeIs": "UTC čas je %s",
"OnlyMatchedUrlsAllowed": "Sledovat návštěvy a akce pouze tehdy, pokud URL akce začíná jednou z výše uvedených URL.",
- "OnlyMatchedUrlsAllowedHelp": "Pokud je povoleno, Piwik bude sledovat interní akce pouze tehdy, když je URL stránky jednou ze známých URL vašich webových stránek. To zabrání lidem, aby zahltili analýzu URL jiných stránek.",
- "WebsitesManagement": "Nastavení Web sídel",
+ "OnlyMatchedUrlsAllowedHelp": "Pokud je povoleno, Piwik bude sledovat interní akce pouze tehdy, když je URL stránky jednou ze známých URL vašeho webu. To zabrání lidem, aby zahltili analýzu URL jiných stránek.",
+ "OnlyMatchedUrlsAllowedHelpExamples": "Doména a cesta se musí přesně shodovat a každou platnou subdoménu je třeba určit odděleně. Pokud jsou například známé URL 'http:\/\/domena.cz\/cesta' a 'http:\/\/dobra.domena.cz', požadavky na sledování z 'http:\/\/domena.cz\/jinacesta' nebo 'http:\/\/zla.domena.cz' budou ignorovány.",
+ "WebsitesManagement": "Nastavení webových stránek",
"XManagement": "Spravovat %s",
"ChooseMeasurableTypeHeadline": "Co byste chtěl měřit?",
"YouCurrentlyHaveAccessToNWebsites": "Momentálně máte přístup k %s stránce\/stránkám.",
diff --git a/plugins/SitesManager/lang/da.json b/plugins/SitesManager/lang/da.json
index 665295c1a5..688c93caac 100644
--- a/plugins/SitesManager/lang/da.json
+++ b/plugins/SitesManager/lang/da.json
@@ -18,8 +18,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Hvis du har brug at udelukke forskellige brugeragenter for forskellige hjemmesider, Marker dette felt, Klik på Gem og %1$stilføj brugeragenterne ovenfor%2$s.",
"ExceptionDeleteSite": "Det er ikke muligt at slette hjemmesiden. Det er den eneste oprettede. Tilføj en ny hjemmeside, og slet så denne.",
"ExceptionEmptyName": "Hjemmesidens navn kan ikke være tomt.",
- "ExceptionInvalidCurrency": "Valutaen \"%s\" er ikke gyldig. Angiv et gyldigt valutasymbol (f.eks. %s)",
- "ExceptionInvalidIPFormat": "IP-adressen der skal udelukkes \"%s\" har ikke et gyldigt IP-format (f.eks. %s).",
+ "ExceptionInvalidCurrency": "Valutaen \"%1$s\" er ikke gyldig. Angiv et gyldigt valutasymbol (f.eks. %2$s)",
+ "ExceptionInvalidIPFormat": "IP-adressen der skal udelukkes \"%1$s\" har ikke et gyldigt IP-format (f.eks. %2$s).",
"ExceptionInvalidTimezone": "Tidszonen \"%s\" er ikke gyldig. Angiv en gyldig tidszone.",
"ExceptionInvalidUrl": "URL'en '%s' er ikke gyldig.",
"ExceptionNoUrl": "Angiv mindst én URL til hjemmesiden.",
@@ -47,7 +47,7 @@
"NotFound": "Ingen hjemmesider for",
"NoWebsites": "Du har ingen hjemmesider at administrere.",
"OnlyOneSiteAtTime": "Du kan kun redigere en hjemmesider ad gangen. Gem eller Annullér de aktuelle ændringer på hjemmesiden %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik giver mulighed for avancerede e-handel analysesporing og rapportering. Lær mere om %s E-handel analyse%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik giver mulighed for avancerede e-handel analysesporing og rapportering. Lær mere om %1$s E-handel analyse%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik vil automatisk udelukke den fælles session parametre (%s).",
"PluginDescription": "Hjemmeside administration kan tilføje en ny hjemmeside og redigere eksisterende hjemmesider.",
"SearchCategoryDesc": "Piwik kan også spore søgekategori for hver interne hjemmeside søgeord.",
@@ -57,14 +57,14 @@
"SearchKeywordParametersDesc": "Indtast en kommasepareret liste over alle søgeparameter navne, der indeholdende webstedet søgeord.",
"SearchParametersNote": "Bemærk: søge- og kategoriparametre vil kun blive anvendt på hjemmesider, som har søg aktiveret, men lod disse parametre være tomme.",
"SearchParametersNote2": "For at deaktivere webstedssøgning for nye hjemmesider, efterlad disse to felter tomme.",
- "SearchUseDefault": "Brug %sstandard%s websteds søgeparametre",
+ "SearchUseDefault": "Brug %1$sstandard%2$s websteds søgeparametre",
"SelectACity": "Vælg en by",
"SelectDefaultCurrency": "Vælg standard valuta for nye hjemmesider.",
"SelectDefaultTimezone": "Vælg standard tidszone for nye hjemmesider.",
"ShowTrackingTag": "Vis sporingskode",
"Sites": "Hjemmesider",
"SiteSearchUse": "Du kan bruge Piwik til at spore og rapportere hvad besøgende søger efter i hjemmesidens interne søgemaskine.",
- "SuperUserAccessCan": "En bruger med superbruger adgang kan også %s angive globale indstillinger %s for nye hjemmesider.",
+ "SuperUserAccessCan": "En bruger med superbruger adgang kan også %1$s angive globale indstillinger %2$s for nye hjemmesider.",
"Timezone": "Tidszone",
"TrackingSiteSearch": "Sporing af intern webstedssøgning",
"TrackingTags": "Sporingskode for %s",
diff --git a/plugins/SitesManager/lang/de.json b/plugins/SitesManager/lang/de.json
index 159a7a74b2..e5248d2e60 100644
--- a/plugins/SitesManager/lang/de.json
+++ b/plugins/SitesManager/lang/de.json
@@ -19,8 +19,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Falls Sie unterschiedliche User-Agents bei unterschiedlichen Websites ausschließen wollen, aktivieren und Speichern Sie diese Option und %1$sfügen Sie User-Agents oben hinzu%2$s.",
"ExceptionDeleteSite": "Diese Website kann nicht gelöscht werden, da sie die einzige registrierte Website ist. Bitte fügen Sie zunächst eine weitere Website hinzu, erst dann kann diese gelöscht werden.",
"ExceptionEmptyName": "Der Name der Website darf nicht leer sein.",
- "ExceptionInvalidCurrency": "Die Währung \"%s\" ist nicht gültig. Bitte geben Sie ein gültiges Währungssymbol ein (z.B. %s)",
- "ExceptionInvalidIPFormat": "Die auszuschließende IP \"%s\" hat kein gültiges IP-Format (z.B. %s).",
+ "ExceptionInvalidCurrency": "Die Währung \"%1$s\" ist nicht gültig. Bitte geben Sie ein gültiges Währungssymbol ein (z.B. %2$s)",
+ "ExceptionInvalidIPFormat": "Die auszuschließende IP \"%1$s\" hat kein gültiges IP-Format (z.B. %2$s).",
"ExceptionInvalidTimezone": "Die Zeitzone \"%s\" ist nicht gültig. Bitte geben Sie eine gültige Zeitzone ein.",
"ExceptionInvalidUrl": "Die Adresse '%s' ist keine gültige URL.",
"ExceptionNoUrl": "Sie müssen mindestens eine URL für diese Website angeben.",
@@ -48,7 +48,7 @@
"NotFound": "Keine Websites gefunden für",
"NoWebsites": "Es ist noch keine Website zum administrieren vorhanden.",
"OnlyOneSiteAtTime": "Sie können immer nur eine Website zur gleichen Zeit bearbeiten. Zunächst müssen Sie die aktuellen Änderungen an der Website %s speichern oder verwerfen.",
- "PiwikOffersEcommerceAnalytics": "Mit Piwik können Sie Ihre Ecommerce Website tracken und erhalten spezielle Ecommerce Berichte. Weitere Informationen %sfinden Sie hier%s.",
+ "PiwikOffersEcommerceAnalytics": "Mit Piwik können Sie Ihre Ecommerce Website tracken und erhalten spezielle Ecommerce Berichte. Weitere Informationen %1$sfinden Sie hier%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik wird automatisch typische Session-Parameter ignorieren (%s).",
"PluginDescription": "Websites management lässt Sie eine neue Website hinzufügen und bestehende Websites ändern.",
"SearchCategoryDesc": "Piwik kann auch die Kategorie auswerten, die in der internen Suche gewählt wird.",
@@ -58,7 +58,7 @@
"SearchKeywordParametersDesc": "Geben Sie eine durch Komma getrennte Liste der Namen aller URL-Parameter ein, welche den Suchbegriff enthalten können.",
"SearchParametersNote": "Hinweis: Die URL-Parameter für Suchbegriffe und -kategorien werden nur auf Websites verwendet, bei denen die interne Suche aktiviert ist aber die Parameter leergelassen wurden.",
"SearchParametersNote2": "Um die interne Suche für neue Websites nicht auszuwerten, lassen Sie diese beiden Felder leer.",
- "SearchUseDefault": "Die %sStandard Parameter%s für die interne Suche verwenden",
+ "SearchUseDefault": "Die %1$sStandard Parameter%2$s für die interne Suche verwenden",
"SelectACity": "Wählen Sie eine Stadt",
"SelectDefaultCurrency": "Sie können eine Währung auswählen, die standardmäßig für neue Websites ausgewählt wird.",
"SelectDefaultTimezone": "Sie können eine Zeitzone auswählen, die standardmäßig für neue Websites ausgewählt wird.",
@@ -67,8 +67,10 @@
"SiteSearchUse": "Piwik kann auswerten, wonach Besucher in der internen Suche der Website suchen.",
"SiteWithoutDataTitle": "Bisher wurden keine Daten aufgezeichnet",
"SiteWithoutDataDescription": "Für diese Website wurden bisher noch keine Analysedaten aufgezeichnet.",
- "SiteWithoutDataSetupTracking": "Bitte den %1$sJavaScript Tracking Code%2$s auf Ihrer Website einrichten und die Seite neu laden.",
- "SuperUserAccessCan": "Ein Nutzer mit Hauptadministrator-Berechtigung kann ebenfalls %sglobale Einstellungen%s für neue Websites vornehmen.",
+ "SiteWithoutDataSetupTracking": "Bitte fügen Sie den %1$sJavaScript Tracking Code%2$s auf ihrer Website ein, insofern Sie dies noch nicht getan haben.",
+ "SiteWithoutDataMessageDisappears": "Diese Nachricht wird verschwinden sobald die ersten Daten für diese Website aufgezeichnet wurden.",
+ "SiteWithoutDataSetupGoals": "In den Zwischenzeit können Sie bereits %1$sZiele aufsetzen%2$s.",
+ "SuperUserAccessCan": "Ein Nutzer mit Hauptadministrator-Berechtigung kann ebenfalls %1$sglobale Einstellungen%2$s für neue Websites vornehmen.",
"Timezone": "Zeitzone",
"TrackingSiteSearch": "Die interne Suche auswerten",
"TrackingTags": "Tracking-Code für %s",
@@ -76,6 +78,7 @@
"UTCTimeIs": "UTC-Zeit ist %s.",
"OnlyMatchedUrlsAllowed": "Zeichne Besuche und Aktionen nur auf wenn die Aktions-URL mit einer der oben genannten URLs beginnt.",
"OnlyMatchedUrlsAllowedHelp": "Wenn aktiviert zeichnet Piwik nur noch interne Aktionen auf bei denen die Seiten-URL eine der bekannten URLs der Website ist. Dies hindert andere daran Ihre Analyse mit URLs von anderen Websites zu verfälschen.",
+ "OnlyMatchedUrlsAllowedHelpExamples": "Die Domain und Pfadangabe muss exakt übereinstimmen und jede gültige Subdomain muss separat definiert werden. Sind die bekannten URLs beispielsweise 'http:\/\/example.com\/path' und 'http:\/\/good.example.com', werden Tracking-Anfragen von 'http:\/\/example.com\/otherpath' oder 'http:\/\/bad.example.com' ignoriert.",
"WebsitesManagement": "Websiteverwaltung",
"XManagement": "%s verwalten",
"ChooseMeasurableTypeHeadline": "Was möchten Sie messen?",
diff --git a/plugins/SitesManager/lang/el.json b/plugins/SitesManager/lang/el.json
index 2670247d27..bac074df01 100644
--- a/plugins/SitesManager/lang/el.json
+++ b/plugins/SitesManager/lang/el.json
@@ -3,7 +3,7 @@
"AddSite": "Προσθήκη ιστοσελίδας",
"AddMeasurable": "Προσθήκη νέου μετρούμενου",
"AdvancedTimezoneSupportNotFound": "Η προηγμένη υποστήριξη για ζώνες ώρας δεν βρέθηκε στην PHP σας (υποστηρίζεται από την έκδοση 5.2 ή νεότερη). Μπορείτε να επιλέξετε διαφορά ώρας χειροκίνητα.",
- "AliasUrlHelp": "Προτείνεται, αλλά δεν απαιτείται, να ορίσετε τα διάφορα URLs που χρησιμοποιούν οι επισκέπτες σας στη συγκεκριμένη ιστοσελίδα.nΤα URLs με μάσκα για μια ιστοσελίδα δεν θα εμφανίζονται στο μενού Αναφορείς > Αναφορά ιστοσελίδων.nΣημειώστε ότι δεν είναι απαραίτητο να ορίσετε τα URLs με και χωρίς «www» καθώς το Piwik τα θεωρεί και τα δύο ως δεδομένα.",
+ "AliasUrlHelp": "Προτείνεται, αλλά δεν απαιτείται, να ορίσετε τα διάφορα URLs που χρησιμοποιούν οι επισκέπτες σας στη συγκεκριμένη ιστοσελίδα.nΤα URLs με μάσκα για μια ιστοσελίδα δεν θα εμφανίζονται στο μενού Αναφορείς > Αναφορά ιστοσελίδων. Σημειώστε ότι δεν είναι απαραίτητο να ορίσετε τα URLs με και χωρίς «www» καθώς το Piwik τα θεωρεί και τα δύο ως δεδομένα.",
"ChangingYourTimezoneWillOnlyAffectDataForward": "Αλλάζοντας τη ζώνη ώρας σας θα επηρεάσει μόνο τα δεδομένα που θα ακολουθήσουν και δεν θα εφαρμοστεί αναδρομικά.",
"ChooseCityInSameTimezoneAsYou": "Επιλέξτε μια πόλη στην ίδια ζώνη ώρας όπως εσείς.",
"Currency": "Νόμισμα",
@@ -19,8 +19,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Αν χρειαστεί να αποκλείσετε διάφορους user agents για διάφορες ιστοσελίδες, επιλέξτε αυτό το πλαίσιο, κάντε κλικ στο Αποθήκευση και %1$sπροσθέσετε τους user agents παραπάνω%2$s.",
"ExceptionDeleteSite": "Δεν είναι δυνατό να διαγράψετε αυτή την ιστοσελίδα διότι είναι η μοναδική εγγεγραμμένη. Προσθέστε πρώτα μια νέα ιστοσελίδα και μετά διαγράψτε την πρώτη.",
"ExceptionEmptyName": "Το όνομα της ιστοσελίδας δεν πρέπει να είναι κενό.",
- "ExceptionInvalidCurrency": "Το νόμισμα «%s» δεν είναι έγκυρο. Εισάγετε ένα έγκυρο σύμβολο νομίσματος (π.χ. %s)",
- "ExceptionInvalidIPFormat": "Η IP που είναι να αποκλειστεί «%s» δεν έχει έγκυρη μορφή (π.χ. %s).",
+ "ExceptionInvalidCurrency": "Η τιμή για το νόμισμα \"%1$s\" δεν είναι έγκυρη. Παρακαλώ εισάγετε μια έγκυρη τιμή νομίσματος (πχ. %2$s)",
+ "ExceptionInvalidIPFormat": "Η διεύθυνση IP για αποκλεισμό \"%1$s\" δεν είναι έγκυρη διεύθυνση (πχ. %2$s).",
"ExceptionInvalidTimezone": "Η ζώνη ώρας «%s» δεν είναι έγκυρη. Εισάγετε μια έγκυρη ζώνη ώρας.",
"ExceptionInvalidUrl": "Το url «%s» δεν είναι ένα έγκυρο URL.",
"ExceptionNoUrl": "Πρέπει να συμπληρώσετε τουλάχιστον ένα URL για την ιστοσελίδα σας.",
@@ -48,7 +48,7 @@
"NotFound": "Δεν βρέθηκαν ιστοσελίδες για",
"NoWebsites": "Δεν έχετε κάποια ιστοσελίδα για να διαχειριστείτε.",
"OnlyOneSiteAtTime": "Μπορείτε να επεξεργαστείτε μόνο μια ιστοσελίδα τη φορά. Αποθηκεύστε ή Ακυρώστε τις τρέχουσες αλλαγές για την ιστοσελίδα %s.",
- "PiwikOffersEcommerceAnalytics": "Το Piwik επιτρέπει την καταγραφή και αναφορά προηγμένων Στατιστικών Ηλεκτρονικού Εμπορίου. Μάθετε περισσότερα για τα %sΣτατιστικά Ηλεκτρονικού Εμπορίου%s.",
+ "PiwikOffersEcommerceAnalytics": "Το Piwik επιτρέπει την παρακολούθηση για Αναλυτικά Εμπορίου & αναφορές. Δείτε περισσότερα σχετικά με τα %1$s Αναλυτικά Εμπορίου%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Το Piwik θα αποκλείσει αυτόματα τις παραμέτρους κοινής συνεδρίας (%s).",
"PluginDescription": "Η διαχείριση ιστοτόπων επιτρέπει την προσθήκη νέου ιστοτόπου και την επεξεργασία υπαρχόντων.",
"SearchCategoryDesc": "Το Piwik μπορεί να παρακολουθεί επίσης την κατηγορία αναζήτησης για κάθε λέξη-κλειδί εσωτερικής αναζήτησης στην ιστοσελίδα.",
@@ -58,7 +58,7 @@
"SearchKeywordParametersDesc": "Εισάγετε λίστα διαχωρισμένη με κόμμα, με τα ονόματα των παραμέτρων ερωτημάτων που περιέχουν τη λέξη-κλειδί αναζήτησης του site.",
"SearchParametersNote": "Σημείωση: οι παράμετροι Ερωτημάτων και οι παράμετροι Κατηγοριών θα χρησιμοποιηθούν μόνο για ιστοσελίδες που έχουν τη δυνατότητα Αναζήτησης Ιστότοπου, αλλά είχανε αυτές τις παραμέτρους του κενές.",
"SearchParametersNote2": "Για να απενεργοποιήσετε την Αναζήτηση στον ιστότοπο για νέες ιστοσελίδες, αφήστε αυτά τα δύο πεδία κενά.",
- "SearchUseDefault": "Χρήση %sπροεπιλεγμένων%s παραμέτρων Αναζήτησης Ιστοσελίδας",
+ "SearchUseDefault": "Χρήση των %1$sπροκαθορισμένων%2$s παραμέτρων Αναζήτησης Ιστοτόπου",
"SelectACity": "Επιλέξτε πόλη",
"SelectDefaultCurrency": "Μπορείτε να επιλέξετε το νόμισμα το οποίο θα είναι προεπιλογή για τις νέες ιστοσελίδες.",
"SelectDefaultTimezone": "Μπορείτε να επιλέξετε τη ζώνη ώρας η οποία θα είναι προεπιλογή για τις νέες ιστοσελίδες.",
@@ -67,15 +67,18 @@
"SiteSearchUse": "Μπορείτε να χρησιμοποιήσετε το Piwik για να παρακολουθείτε και να έχετε αναφορές για το τι ψάχνουν οι επισκέπτες στην εσωτερική μηχανή αναζήτησης της ιστοσελίδας σας.",
"SiteWithoutDataTitle": "Δεν έχουν καταγραφεί ακόμη δεδομένα",
"SiteWithoutDataDescription": "Δεν έχουν ακόμη καταγραφεί δεδομένα αναλυτικών για τον ιστοτόπο αυτόν ακόμη.",
- "SiteWithoutDataSetupTracking": "Παρακαλούμε εισάγετε τον %1$sκώδικα παρακολούθησης JavaScript%2$s στον ιστοτόπο σας και ανανεώστε την ιστοσελίδα.",
- "SuperUserAccessCan": "Ένας χρήστης με δικαίωμα Υπερ-Χρήστη μπορεί επίσης να %sπροσαρμόζει τις γενικές ρυθμίσεις%s για νέους ιστοτόπους.",
+ "SiteWithoutDataSetupTracking": "Παρακαλώ εισάγετε τον %1$sκώδικα παρακολούθησης JavaScript%2$s για τον ιστοτόπο σας αν δεν το έχετε ήδη κάνει.",
+ "SiteWithoutDataMessageDisappears": "Το μήνυμα θα εξαφανιστεί με το που θα καταχωρηθούν δεδομένα παρακολούθησης για τον ιστοτόπο αυτό.",
+ "SiteWithoutDataSetupGoals": "Στο μεταξύ, μπορεί να θέλετε να %1$sορίσετε μερικούς στόχους%2$s.",
+ "SuperUserAccessCan": "Ένας χρήστης με πρόσβαση Υπερ Χρήστη μπορεί επίσης να %1$s ορίσει τις καθολικές παραμέτρους%2$s για νέους ιστοτόπους.",
"Timezone": "Ζώνη ώρας",
"TrackingSiteSearch": "Καταγραφή Εσωτερικής Αναζήτησης Ιστοσελίδας",
"TrackingTags": "Κώδικας εποπτείας για %s",
"Urls": "Διευθύνσεις URL",
"UTCTimeIs": "Ο Παγκόσμιος χρόνος είναι %s.",
- "OnlyMatchedUrlsAllowed": "Να παρακολυθούνται επισκέψεις και οι ενέργειες μόνο όταν η διεύθυνση URL ξεκινάει με μία από τις παραπάνω διευθύνσεις URL.",
+ "OnlyMatchedUrlsAllowed": "Να παρακολουθούνται οι επισκέψεις και οι ενέργειες μόνο όταν η διεύθυνση URL ξεκινάει με μία από τις παραπάνω διευθύνσεις URL.",
"OnlyMatchedUrlsAllowedHelp": "Όταν είναι ενεργοποιημένο, το Piwik θα παρακολουθεί εσωτερικές ενέργειες όταν η διεύθυνση URL είναι μία από τις γνωστές διευθύνσεις URL για τον ιστοτόπο σας. Αυτό αποτρέπει τρίτους από ανεπιθύμητη κίνηση στα αναλυτικά σας με διευθύνσεις URL από τρίτους ιστοτόπους.",
+ "OnlyMatchedUrlsAllowedHelpExamples": "Το όνομα και η διαδρομή πρέπει να ταιριάζουν και κάθε υπο-όνομα χώρου πρέπει να ορίζεται ξεχωριστά. Για παράδειγμα, όταν οι γνωστές διευθύνσεις URL είναι 'http:\/\/example.com\/path' και 'http:\/\/good.example.com', οι αιτήσεις για παρακολούθηση για τα 'http:\/\/example.com\/otherpath' ή 'http:\/\/bad.example.com' αγνοούνται.",
"WebsitesManagement": "Διαχείριση ιστοσελίδων",
"XManagement": "Διαχείριση του %s",
"ChooseMeasurableTypeHeadline": "Τι θέλετε να μετρήσετε;",
diff --git a/plugins/SitesManager/lang/en.json b/plugins/SitesManager/lang/en.json
index 0916869ce0..a7ea1da8c9 100644
--- a/plugins/SitesManager/lang/en.json
+++ b/plugins/SitesManager/lang/en.json
@@ -19,8 +19,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "If you need to exclude different user agents for different websites, check this box, click save and %1$sadd the user agents above%2$s.",
"ExceptionDeleteSite": "It is not possible to delete this website as it is the only registered website. Add a new website first, then delete this one.",
"ExceptionEmptyName": "The website name can't be empty.",
- "ExceptionInvalidCurrency": "The currency \"%s\" is not valid. Please enter a valid currency symbol (eg. %s)",
- "ExceptionInvalidIPFormat": "The IP to exclude \"%s\" does not have a valid IP format (eg. %s).",
+ "ExceptionInvalidCurrency": "The currency \"%1$s\" is not valid. Please enter a valid currency symbol (eg. %2$s)",
+ "ExceptionInvalidIPFormat": "The IP to exclude \"%1$s\" does not have a valid IP format (eg. %2$s).",
"ExceptionInvalidTimezone": "The timezone \"%s\" is not valid. Please enter a valid timezone.",
"ExceptionInvalidUrl": "The url '%s' is not a valid URL.",
"ExceptionNoUrl": "You must specify at least one URL for the website.",
@@ -48,7 +48,7 @@
"NotFound": "No websites found for",
"NoWebsites": "You don't have any website to administrate.",
"OnlyOneSiteAtTime": "You can only edit one website at a time. Please Save or Cancel your current modifications to the website %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik allows for advanced Ecommerce Analytics tracking & reporting. Learn more about %s Ecommerce Analytics%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik allows for advanced Ecommerce Analytics tracking & reporting. Learn more about %1$s Ecommerce Analytics%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik will automatically exclude the common session parameters (%s).",
"PluginDescription": "Websites management lets you add a new website and edit existing websites. ",
"SearchCategoryDesc": "Piwik can also track the Search category for each internal site search keyword.",
@@ -58,7 +58,7 @@
"SearchKeywordParametersDesc": "Enter a comma separated list of all query parameter names containing the site search keyword.",
"SearchParametersNote": "Note: the Query parameters and Category parameters will be used only for websites which have Site Search enabled but left these parameters empty.",
"SearchParametersNote2": "To disable Site Search for new websites, leave these two fields empty.",
- "SearchUseDefault": "Use %sdefault%s Site Search parameters",
+ "SearchUseDefault": "Use %1$sdefault%2$s Site Search parameters",
"SelectACity": "Select a city",
"SelectDefaultCurrency": "You can select the currency to set by default for new websites.",
"SelectDefaultTimezone": "You can select the time zone to select by default for new websites.",
@@ -70,7 +70,7 @@
"SiteWithoutDataSetupTracking": "Please set up the %1$sJavaScript tracking code%2$s on your website if you haven't done that already.",
"SiteWithoutDataMessageDisappears": "This message will disappear as soon as some data was tracked for this website.",
"SiteWithoutDataSetupGoals": "In the meantime, maybe you would like to %1$sset up some goals%2$s.",
- "SuperUserAccessCan": "A user with Super User access can also %s specify global settings%s for new websites.",
+ "SuperUserAccessCan": "A user with Super User access can also %1$s specify global settings%2$s for new websites.",
"Timezone": "Time zone",
"TrackingSiteSearch": "Tracking Internal Site Search",
"TrackingTags": "Tracking code for %s",
@@ -78,10 +78,11 @@
"UTCTimeIs": "UTC time is %s.",
"OnlyMatchedUrlsAllowed": "Only track visits and actions when the action URL starts with one of the above URLs.",
"OnlyMatchedUrlsAllowedHelp": "When enabled, Piwik will only track internal actions when the Page URL is one of the known URLs for your website. This prevents people from spamming your analytics with URLs for other websites.",
+ "OnlyMatchedUrlsAllowedHelpExamples": "The domain and the path has to be an exact match and each valid subdomain has to be specified separately. For example when the known URLs are 'http:\/\/example.com\/path' and 'http:\/\/good.example.com', tracking requests for 'http:\/\/example.com\/otherpath' or 'http:\/\/bad.example.com' are ignored.",
"WebsitesManagement": "Websites Management",
"XManagement": "Manage %s",
"ChooseMeasurableTypeHeadline": "What would you like to measure?",
"YouCurrentlyHaveAccessToNWebsites": "You currently have access to %s websites.",
"YourCurrentIpAddressIs": "Your current IP address is %s"
}
-}
+} \ No newline at end of file
diff --git a/plugins/SitesManager/lang/es.json b/plugins/SitesManager/lang/es.json
index aea11a2cb8..434f0d5815 100644
--- a/plugins/SitesManager/lang/es.json
+++ b/plugins/SitesManager/lang/es.json
@@ -19,8 +19,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Si necesita excluir diferentes agentes de usuario para diferentes sitios de internet, marque esta casilla, clic en guardar y %1$sagregue los agentes de usuario de arriba%2$s.",
"ExceptionDeleteSite": "No es posible eliminar este sitio ya que es el único que tiene registrado. Primero agregue un nuevo sitio, luego elimine éste.",
"ExceptionEmptyName": "El nombre del sitio no puede estar vacío.",
- "ExceptionInvalidCurrency": "La moneda \"%s\" no es válida. Por favor ingrese un símbolo de moneda válido (ej. %s)",
- "ExceptionInvalidIPFormat": "La IP a excluir \"%s\" no tiene un formato válido de IP (por ejemplo, %s).",
+ "ExceptionInvalidCurrency": "La moneda \"%1$s\" no es válida. Por favor ingrese un símbolo de moneda válido (ej. %2$s)",
+ "ExceptionInvalidIPFormat": "La IP a excluir \"%1$s\" no tiene un formato válido de IP (por ejemplo, %2$s).",
"ExceptionInvalidTimezone": "La zona horaria \"%s\" no es válida Por favor ingrese una zona horaria válida.",
"ExceptionInvalidUrl": "La URL '%s' no es una URL válida.",
"ExceptionNoUrl": "Debe especificar al menos una URL para el sitio de internet.",
@@ -48,7 +48,7 @@
"NotFound": "Ningún sitio de internet encontrado",
"NoWebsites": "No posee ningún sitio de internet para administrar.",
"OnlyOneSiteAtTime": "Puede editar un sitio de internet a la vez. Por favor guarde o cancele sus modificaciones actuales para el sitio de internet %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik permite el rastreo avanzado de análisis de comercio electrónico e Informes. Aprenda más acerca de %s Análisis de comercio electrónico%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik permite el rastreo avanzado de análisis de comercio electrónico e Informes. Aprenda más acerca de %1$s Análisis de comercio electrónico%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik automáticamente excluirá los parámetros de sesión (%s).",
"PluginDescription": "La administración de sitios de internet le permite agregar un nuevo sitio de y editar los existentes.",
"SearchCategoryDesc": "Piwik puede rastrear la categoría Buscar y cada palabra clave del buscador interno del sitio.",
@@ -58,7 +58,7 @@
"SearchKeywordParametersDesc": "Ingrese una lista en un formato del tipo separado por comas de todos los nombres de los parámetros de consulta conteniendo las palabras clave del buscador interno del sitio.",
"SearchParametersNote": "Nota: los parámetros de consulta y de categoría serán utilizados solo en aquellos sitios de internet que habilitaron Buscar en el sitio pero dejaron estos parámetros vacíos.",
"SearchParametersNote2": "Para deshabilitar Búsqueda interna en sitio para los nuevos sitios, deje estos dos campos vacíos.",
- "SearchUseDefault": "Utilizar parámetros de Buscar en el sitio %spredeterminados%s",
+ "SearchUseDefault": "Utilizar parámetros de Buscar en el sitio %1$spredeterminados%2$s",
"SelectACity": "Seleccione una ciudad",
"SelectDefaultCurrency": "Puede seleccionar la moneda predeterminada para los nuevos sitios de internet",
"SelectDefaultTimezone": "Puede seleccionar la zona horaria predeterminada para los nuevos sitios de internet.",
@@ -67,8 +67,7 @@
"SiteSearchUse": "Puede utilizar Piwik para rastrear y obtener un informe que es lo que están buscando sus visitantes en el motor de búsqueda interno de su sitio de internet.",
"SiteWithoutDataTitle": "Aun no se han grabado datos",
"SiteWithoutDataDescription": "Aun no se han registrado datos analíticos para este sitio de internet.",
- "SiteWithoutDataSetupTracking": "Por favor configure el %1$scódigo de seguimiento JavaScript%2$s para su sitio de internet y actualice la página.",
- "SuperUserAccessCan": "Un usuario con acceso Super Usuario también puede %s especificar la configuración global%s para nuevos sitios de internet.",
+ "SuperUserAccessCan": "Un usuario con acceso Super Usuario también puede %1$s especificar la configuración global%2$s para nuevos sitios de internet.",
"Timezone": "Zona Horaria",
"TrackingSiteSearch": "Seguimiento en el Buscador interno del sitio",
"TrackingTags": "Código de seguimiento para %s",
diff --git a/plugins/SitesManager/lang/et.json b/plugins/SitesManager/lang/et.json
index f1d495190a..6926245b40 100644
--- a/plugins/SitesManager/lang/et.json
+++ b/plugins/SitesManager/lang/et.json
@@ -18,7 +18,7 @@
"MainDescription": "Sinu veebianalüütika vajab veebilehti, mida hallata! Lisa, uuenda, kustuta veebilehti, ja näita Javascript koodi mida lisada veebilehtedele.",
"NotAnEcommerceSite": "Ei ole e-äri lehekülg",
"NoWebsites": "Sul pole veebilehti, mida administreerida.",
- "PiwikOffersEcommerceAnalytics": "Piwik võimaldab detailsemat e-äri analüüsi ja raporteid. Loe rohkem %s e-äri analüüsist%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik võimaldab detailsemat e-äri analüüsi ja raporteid. Loe rohkem %1$s e-äri analüüsist%2$s.",
"SearchCategoryLabel": "Kategooria parameeter",
"SearchKeywordLabel": "Päringu parameeter",
"SelectACity": "Vali linn",
diff --git a/plugins/SitesManager/lang/fa.json b/plugins/SitesManager/lang/fa.json
index b2951a59e7..8bc0eb2cd5 100644
--- a/plugins/SitesManager/lang/fa.json
+++ b/plugins/SitesManager/lang/fa.json
@@ -17,7 +17,7 @@
"EnableSiteSpecificUserAgentExclude": "فعال کردن وب سایت کاربر محرومیت عامل خاص.",
"ExceptionDeleteSite": "ممکن است به حذف این وب سایت، آن را به عنوان تنها وب سایت ثبت نام است. اضافه کردن یک وب سایت جدید برای اولین بار، پس این یکی را حذف کنید.",
"ExceptionEmptyName": "نام سایت نمی تواند خالی باشد.",
- "ExceptionInvalidCurrency": "واحد پولی \"%s\" درست نیست. لطفا یک واحد پول صحیح را وارد نمایید. (مانند. %s)",
+ "ExceptionInvalidCurrency": "واحد پولی \"%1$s\" درست نیست. لطفا یک واحد پول صحیح را وارد نمایید. (مانند. %2$s)",
"ExceptionInvalidUrl": "آدرس %s معتبر نمی باشد.",
"ExceptionNoUrl": "شما حداقل باید یک لینک برای سایت مشخص کنید",
"ExcludedIps": "به غیر از آی پی های",
@@ -43,7 +43,7 @@
"SearchKeywordLabel": "پارامتر پرس و جو",
"SearchParametersNote": "توجه: پارامترهای پرس و جو و پارامترهای مجموعه فقط برای وبسایت هایی استفاده خواهند شد که جستجوی سایت را فعال کرده اند ولی این پارامترها را خالی باقی گذاشته اند.",
"SearchParametersNote2": "برای غیر فعال کردن جستجوی وبسایت های جدید , این دو فیلد را خالی رها کنید.",
- "SearchUseDefault": "پارامترهای %sپیشفرض%s جستجوی سایت را به کار ببرید",
+ "SearchUseDefault": "پارامترهای %1$sپیشفرض%2$s جستجوی سایت را به کار ببرید",
"SelectACity": "انتخاب یک شهر",
"SelectDefaultCurrency": "شما می توانید نرخ ارز را به طور پیش فرض برای وب سایت های جدید را انتخاب کنید.",
"SelectDefaultTimezone": "شما می توانید منطقه زمانی به طور پیش فرض برای وب سایت جدید را انتخاب کنید را انتخاب کنید.",
diff --git a/plugins/SitesManager/lang/fi.json b/plugins/SitesManager/lang/fi.json
index 0dd331e8eb..5043dc99b6 100644
--- a/plugins/SitesManager/lang/fi.json
+++ b/plugins/SitesManager/lang/fi.json
@@ -18,8 +18,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Jos haluat sulkea pois eri käyttäjäagentteja eri verkkosivuilla, rastita tämä ruutu, klikkaa tallenna ja %1$slisää käyttäjäagentit yläpuolelle%2$s.",
"ExceptionDeleteSite": "Sivua ei voi poistaa, sillä se on ainoa rekisteröity sivu. Lisää ensin uusi sivu.",
"ExceptionEmptyName": "Sivun nimi ei voi olla tyhjä.",
- "ExceptionInvalidCurrency": "Valuutta \"%s\" ei kelpaa. Valitse oikea valuutan symboli (esim. %s)",
- "ExceptionInvalidIPFormat": "IP \"%s\" ei ole hyväksyttävässä muodossa (esim. %s).",
+ "ExceptionInvalidCurrency": "Valuutta \"%1$s\" ei kelpaa. Valitse oikea valuutan symboli (esim. %2$s)",
+ "ExceptionInvalidIPFormat": "IP \"%1$s\" ei ole hyväksyttävässä muodossa (esim. %2$s).",
"ExceptionInvalidTimezone": "Aikavyöhyke '%s' ei kelpaa. Valitse uusi aikavyöhyke.",
"ExceptionInvalidUrl": "Sivun url '%s' ei ole oikein muotoiltu URL.",
"ExceptionNoUrl": "Sivuilla täytyy olla vähintään yksi verkkosivu.",
@@ -47,7 +47,7 @@
"NotFound": "Sivuja ei löydy",
"NoWebsites": "Sinulla ei ole yhtään verkkosivua hallinnoitavana.",
"OnlyOneSiteAtTime": "Voit muokata vain yhtä verkkosivua kerrallaan. Tallenna tai peru muutoksesi sivuun %s.",
- "PiwikOffersEcommerceAnalytics": "Piwikillä voi seurata verkkokauppaa tarkasti. Lue lisää %s verkkokauppa-analytiikasta%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwikillä voi seurata verkkokauppaa tarkasti. Lue lisää %1$s verkkokauppa-analytiikasta%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik jättää automaattisesti huomiotta yleiset istuntoparametrit (%s).",
"SearchCategoryDesc": "Piwik voi myös seurata haun kategoriaa jokaiselle sivun sisäiselle hakusanalle.",
"SearchCategoryLabel": "Kategoriaparametri",
@@ -56,14 +56,14 @@
"SearchKeywordParametersDesc": "Ilmoita pilkuilla erotettu lista kaikista parametrinimistä sisältäen verkkosivuhaun avainsana.",
"SearchParametersNote": "Huom: kysymysparametrejä ja kategoriaparametrejä käytetään ainoastaan verkkkosivuilla, joilla verkkosivuhaku on aktivoitu mutta nämä parametrit on jätetty tyhjiksi.",
"SearchParametersNote2": "Jätä nämä kaksi kenttää tyhjäksi poistaaksesi verkkosivuhaun käytöstä uusilla verkkosivuilla.",
- "SearchUseDefault": "Käytä %soletusparametrejä%s verkkohaussa",
+ "SearchUseDefault": "Käytä %1$soletusparametrejä%2$s verkkohaussa",
"SelectACity": "Valitse kaupunki",
"SelectDefaultCurrency": "Voit valita oletusvaluutan uusille verkkosivuille.",
"SelectDefaultTimezone": "Voit valita oletusaikavyöhykkeen uusille verkkosivuille.",
"ShowTrackingTag": "näytä seurantakoodi",
"Sites": "Sivustot",
"SiteSearchUse": "Voit käyttää Piwikiä seurataksesi ja raportoidaksesi, mitä kävijät etsivät verkkosivusi sisäisellä hakukoneella.",
- "SuperUserAccessCan": "Superkäyttäjän oikeudet omaava käyttäjä voi myös %s määritellä globaaleja asetuksia%s uusille verkkosivuille.",
+ "SuperUserAccessCan": "Superkäyttäjän oikeudet omaava käyttäjä voi myös %1$s määritellä globaaleja asetuksia%2$s uusille verkkosivuille.",
"Timezone": "Aikavyöhyke",
"TrackingSiteSearch": "Verkkosivun sisäisen haun seuranta",
"TrackingTags": "Seurantatagit %s:lle",
diff --git a/plugins/SitesManager/lang/fr.json b/plugins/SitesManager/lang/fr.json
index 2372187f6c..b4157d71b1 100644
--- a/plugins/SitesManager/lang/fr.json
+++ b/plugins/SitesManager/lang/fr.json
@@ -19,8 +19,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Si vous avez besoin d'exclure différents navigateurs pour différents sites web, cochez cette case, cliquez sur enregistrer et %1$sajoutez les navigateurs (user agents) ci-dessous%2$s.",
"ExceptionDeleteSite": "Impossible de supprimer le site car c'est le seul site enregistré dans Piwik. Vous pouvez d'abord en ajouter un nouveau, puis supprimez celui-ci.",
"ExceptionEmptyName": "Le nom du site ne peut être vide.",
- "ExceptionInvalidCurrency": "La monnaie '%s' n'est pas valide. Veuillez entrer un symbole monétaire valide (ex. %s)",
- "ExceptionInvalidIPFormat": "L'IP à exclure '%s' n'a pas un format valide (ex. %s).",
+ "ExceptionInvalidCurrency": "La monnaie '%1$s' n'est pas valide. Veuillez entrer un symbole monétaire valide (ex. %2$s)",
+ "ExceptionInvalidIPFormat": "L'IP à exclure \"%1$s\" n'a pas un format valide (ex: %2$s).",
"ExceptionInvalidTimezone": "Le fuseau horaire '%s' n'est pas valide. Veuillez entrer un fuseau horaire valide.",
"ExceptionInvalidUrl": "L'url '%s' n'est pas une URL valide.",
"ExceptionNoUrl": "Vous devez spécifier au moins une URL pour le site.",
@@ -48,7 +48,7 @@
"NotFound": "Aucun site trouvé pour",
"NoWebsites": "Vous n'avez aucun site Internet à administrer.",
"OnlyOneSiteAtTime": "Vous pouvez éditer un site web à la fois. Veuillez Enregistrer ou Annuler vos modifications courantes sur le site web %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik permet un suivi et un rapport avancé des statistiques E-commerce. Apprenez-en plus à propos %s des statistiques E-commerce%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik permet un suivi et un rapport avancé des statistiques E-commerce. Apprenez-en plus à propos %1$s des statistiques E-commerce%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik exclura automatiquement les paramètres de session communs (%s).",
"PluginDescription": "La gestion des sites web vous permet d'ajouter des nouveaux sites web et d'en modifier des existants.",
"SearchCategoryDesc": "Piwik peut aussi effectuer le suivi de la catégorie de recherche pour chaque mot-clé de recherche interne.",
@@ -58,7 +58,7 @@
"SearchKeywordParametersDesc": "Entrez une liste séparée par des virgules de tous les paramètres de requête contenant des mots-clés de recherche.",
"SearchParametersNote": "Note : les paramètres de requête et de catégorie seront utilisés uniquement pour les sites web qui ont la recherche activée et ces paramètres laissés vides.",
"SearchParametersNote2": "Pour désactiver la recherche sur les nouveaux sites web, laissez ces deux champs vides.",
- "SearchUseDefault": "Utiliser les paramètres de recherche par %sdéfaut%s",
+ "SearchUseDefault": "Utiliser les paramètres de recherche par %1$sdéfaut%2$s",
"SelectACity": "Sélectionnez une ville",
"SelectDefaultCurrency": "Vous pouvez sélectionner la devise par défaut pour les nouveaux sites web.",
"SelectDefaultTimezone": "Vous pouvez sélectionner le fuseau horaire par défaut pour les nouveaux sites web.",
@@ -67,8 +67,10 @@
"SiteSearchUse": "Vous pouvez utiliser Piwik pour suivre et effectuer un rapport sur ce que vos visiteurs cherchent sur le moteur de recherche interne de votre site web.",
"SiteWithoutDataTitle": "Aucune donnée enregistrée pour le moment",
"SiteWithoutDataDescription": "Aucune donnée d'analyse n'a été enregistrée pour ce site pour le moment.",
- "SiteWithoutDataSetupTracking": "Veuillez mettre en place le %1$sCode de suivi JavaScript%2$s sur votre site web et rafraîchir la page.",
- "SuperUserAccessCan": "Un utilisateur avec un accès super utilisateur peut aussi %sconfigurer les paramètres globaux%s pour les nouveaux sites web.",
+ "SiteWithoutDataSetupTracking": "Veuillez configurer le %1$scode de suivit JavaScript%2$s sur votre site web si vous ne l'avez pas déjà fait.",
+ "SiteWithoutDataMessageDisappears": "Ce message disparaitra dès lors que certaines données auront été enregistrées pour ce site web.",
+ "SiteWithoutDataSetupGoals": "Pendant ce temps, peut être voudriez vous %1$sdéfinir des objectifs%2$s.",
+ "SuperUserAccessCan": "Un utilisateur avec un accès super utilisateur peut aussi %1$sconfigurer les paramètres globaux%2$s pour les nouveaux sites web.",
"Timezone": "Fuseau horaire",
"TrackingSiteSearch": "Suivi de la recherche interne sur le site",
"TrackingTags": "Code de suivi pour %s",
diff --git a/plugins/SitesManager/lang/hi.json b/plugins/SitesManager/lang/hi.json
index c408da6fc5..d51a19037b 100644
--- a/plugins/SitesManager/lang/hi.json
+++ b/plugins/SitesManager/lang/hi.json
@@ -19,8 +19,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "अगर आप की जरूरत है अलग वेबसाइटों के लिए अलग अलग उपयोगकर्ता एजेंटों को बाहर करने की, इस बॉक्स की जाँच करें, सहेजें क्लिक करें और %1$sइसके बाद संस्करण उपयोगकर्ता एजेंट%2$s जोड़ें।",
"ExceptionDeleteSite": "यह केवल पंजीकृत वेबसाइट है जैसा कि इस वेबसाइट को हटाना संभव नहीं है. पहले एक नई वेबसाइट जोड़ें, तो यह नष्ट करे.",
"ExceptionEmptyName": "वेबसाइट का नाम खाली नहीं हो सकता.",
- "ExceptionInvalidCurrency": "मुद्रा मान्य \"%s\" नहीं है. एक वैध मुद्रा प्रतीक (जैसे %s) दर्ज करें",
- "ExceptionInvalidIPFormat": "\"%s\" को बाहर करने के लिए आईपी एक वैध आईपी प्रारूप (जैसे %s) नहीं है.",
+ "ExceptionInvalidCurrency": "मुद्रा मान्य \"%1$s\" नहीं है. एक वैध मुद्रा प्रतीक (जैसे %2$s) दर्ज करें",
+ "ExceptionInvalidIPFormat": "\"%1$s\" को बाहर करने के लिए आईपी एक वैध आईपी प्रारूप (जैसे %2$s) नहीं है.",
"ExceptionInvalidTimezone": "समय क्षेत्र \"%s\" मान्य नहीं है. एक वैध समयक्षेत्र दर्ज करें.",
"ExceptionInvalidUrl": "यूआरएल '%s' एक मान्य URL नहीं है.",
"ExceptionNoUrl": "आपको वेबसाइट के लिए कम से कम एक URL निर्दिष्ट करना होगा.",
@@ -48,7 +48,7 @@
"NotFound": "वेबसाइटों के लिए नहीं मिला",
"NoWebsites": "आपके पास प्रबंधन के लिए कोई भी वेबसाइट नहीं है.",
"OnlyOneSiteAtTime": "आप केवल एक समय में एक वेबसाइट को संपादित कर सकते हैं. वेबसाइट %sके लिए अपने मौजूदा संशोधनों सहेजें या रद्द करें.",
- "PiwikOffersEcommerceAnalytics": "Piwik ट्रैकिंग और रिपोर्टिंग उन्नत ईकॉमर्स एनालिटिक्स के लिए अनुमति देता है. %sईकॉमर्स एनालिटिक्स%s के बारे में अधिक जानें.",
+ "PiwikOffersEcommerceAnalytics": "Piwik ट्रैकिंग और रिपोर्टिंग उन्नत ईकॉमर्स एनालिटिक्स के लिए अनुमति देता है. %1$sईकॉमर्स एनालिटिक्स%2$s के बारे में अधिक जानें.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik स्वतः सामान्य सत्र के मापदंडों(%s) से अलग रहेगा",
"SearchCategoryDesc": "Piwik भी एक आंतरिक साइट खोज कीवर्ड के लिए खोज श्रेणी ट्रैक कर सकता हैं.",
"SearchCategoryLabel": "श्रेणी पैरामीटर",
@@ -57,7 +57,7 @@
"SearchKeywordParametersDesc": "साइट खोज कीवर्ड वाली सभी प्रश्न को पैरामीटर नाम की एक अल्पविराम से अलग सूची दर्ज करें.",
"SearchParametersNote": "नोट: क्वेरी पैरामीटर और श्रेणी मापदंडों वेबसाइटों के लिए ही इस्तेमाल किया जाएगा जो साइट खोज सक्षम लेकिन इन मानकों को खाली छोड़ दिया है.",
"SearchParametersNote2": "नई वेबसाइटों के लिए साइट खोज को निष्क्रिय करने के लिए, इन दो क्षेत्रों को खाली छोड़ दें.",
- "SearchUseDefault": "%sडिफ़ॉल्ट%s साइट खोज मापदंडों का उपयोग करें",
+ "SearchUseDefault": "%1$sडिफ़ॉल्ट%2$s साइट खोज मापदंडों का उपयोग करें",
"SelectACity": "कोई नगर चुनें",
"SelectDefaultCurrency": "आप नई वेबसाइट को डिफ़ॉल्ट रूप से स्थापित करने के लिए मुद्रा का चयन कर सकते हैं.",
"SelectDefaultTimezone": "आप नई वेबसाइट के लिए डिफ़ॉल्ट रूप से चयन करने के लिए समय क्षेत्र का चयन कर सकते हैं.",
diff --git a/plugins/SitesManager/lang/hu.json b/plugins/SitesManager/lang/hu.json
index 585d1fad32..e946294898 100644
--- a/plugins/SitesManager/lang/hu.json
+++ b/plugins/SitesManager/lang/hu.json
@@ -12,8 +12,8 @@
"DeleteConfirm": "Biztosan törölni akarod a következő weboldalt: %s?",
"ExceptionDeleteSite": "Nem lehetséges a weboldal törlése mindaddig, amíg ez az egyetlen regisztrált weboldal. Előbb adj meg egy újat, és csak aztán törölheted ezt.",
"ExceptionEmptyName": "A weboldal neve nem lehet üres.",
- "ExceptionInvalidCurrency": "A pénznem: \"%s\" nem létezik. Kérjük, adja meg egy létező pénznem rövidítését (pl. %s)",
- "ExceptionInvalidIPFormat": "A kizárni kívánt IP-cím: \"%s\" nem megfelelő formátumú (pl. %s)",
+ "ExceptionInvalidCurrency": "A pénznem: \"%1$s\" nem létezik. Kérjük, adja meg egy létező pénznem rövidítését (pl. %2$s)",
+ "ExceptionInvalidIPFormat": "A kizárni kívánt IP-cím: \"%1$s\" nem megfelelő formátumú (pl. %2$s)",
"ExceptionInvalidTimezone": "Az időzóna: \"%s\" nem létezik.",
"ExceptionInvalidUrl": "Az URL: \"%s\" nem megfelelő.",
"ExceptionNoUrl": "Meg kell adnod legalább egy URL-t a weboldalhoz.",
diff --git a/plugins/SitesManager/lang/id.json b/plugins/SitesManager/lang/id.json
index af4ce5c6ef..825b84de17 100644
--- a/plugins/SitesManager/lang/id.json
+++ b/plugins/SitesManager/lang/id.json
@@ -18,8 +18,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Bila Anda ingin mengecualikan agen pengguna tertentu untuk situs berbeda, centang kotak ini, klik simpan dan %1$stambah agen pengguna di atas%2$s.",
"ExceptionDeleteSite": "Tak mungkin menghapus situs yang tidak terdaftar. Tambahkan situs baru telebih dahulu, lalu hapus situs tersebut.",
"ExceptionEmptyName": "Nama Situs tidak boleh kosong.",
- "ExceptionInvalidCurrency": "Mata uang \"%s\" tidak sahih. Silakan masukkan mata uang yang sesuai (misalnya %s)",
- "ExceptionInvalidIPFormat": "IP yang dikecualikan \"%s\" bukan merupakan bentuk IP yang sahih (misalnya %s).",
+ "ExceptionInvalidCurrency": "Mata uang \"%1$s\" tidak sahih. Silakan masukkan mata uang yang sesuai (misalnya %2$s)",
+ "ExceptionInvalidIPFormat": "IP yang dikecualikan \"%1$s\" bukan merupakan bentuk IP yang sahih (misalnya %2$s).",
"ExceptionInvalidTimezone": "Wilayah waktu \"%s\" tidak sahih. Silakan masukkkam wilayah waktu yang sesuai.",
"ExceptionInvalidUrl": "URL '%s' merupakan URL tak sahih.",
"ExceptionNoUrl": "Anda harus menentukan setidaknya satu URL untuk situs.",
@@ -47,7 +47,7 @@
"NotFound": "Tak ada situs yang ditemukan",
"NoWebsites": "Anda tidak memiliki situs untuk dikelola.",
"OnlyOneSiteAtTime": "Anda hanya dapat menyunting satu situs dalam sekali waktu. Silakan Simpam atau Batalkan perubahan terhadap situs %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik mungkinkan pelaporan dan pelacakan Analisis Niaga-E. Pelajari tentang %s Analisis Niaga-E%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik mungkinkan pelaporan dan pelacakan Analisis Niaga-E. Pelajari tentang %1$s Analisis Niaga-E%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik akan otomatis kecualikan parameter sesi umum (%s).",
"SearchCategoryDesc": "Piwik juga dapat melacak kategori Pencarian untuk setiap kata kunci pencarian situs dalam.",
"SearchCategoryLabel": "Parameter kategori",
@@ -56,7 +56,7 @@
"SearchKeywordParametersDesc": "Masukkan daftar dipisah koma seluruh daftar nama parameter kueri yang mengandung kata kunci pencarian situs.",
"SearchParametersNote": "Catatan: Parameter Kueri dan parameter Kategori akan digunakan hanya untuk situs dengan Pencarian Situs diaktifkan tapi hanya meninggalkan parameter tersebut kosong.",
"SearchParametersNote2": "Untuk mematikan Pencarian Situs untuk situs baru, biarkan dua isian itu kosong.",
- "SearchUseDefault": "Gunakan parameter Pencarian Situs %sasali%s",
+ "SearchUseDefault": "Gunakan parameter Pencarian Situs %1$sasali%2$s",
"SelectACity": "Pilih kota",
"SelectDefaultCurrency": "Anda dapat Mata Uang yang diatur secara asali untuk situs baru.",
"SelectDefaultTimezone": "Anda dapat memilih yang dipilih secara asali untuk situs baru.",
diff --git a/plugins/SitesManager/lang/it.json b/plugins/SitesManager/lang/it.json
index 6456771c7d..6a98627981 100644
--- a/plugins/SitesManager/lang/it.json
+++ b/plugins/SitesManager/lang/it.json
@@ -19,8 +19,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Se è necessario escludere diversi user agent per diversi siti web, seleziona questa casella, clicca su Salva e%1$saggiungi qui sopra gli user agent%2$s.",
"ExceptionDeleteSite": "Non è possibile cancellare questo sito web perché è l'unico registrato. Aggiungi prima un nuovo sito, quindi puoi cancellare questo.",
"ExceptionEmptyName": "Il nome del sito non può essere vuoto.",
- "ExceptionInvalidCurrency": "La valuta \"%s\" non è valida. Inserisci un simbolo di valuta valido (es. %s)",
- "ExceptionInvalidIPFormat": "L'indirizzo IP da escludere \"%s\" non ha un formato IP valido (per esempio %s).",
+ "ExceptionInvalidCurrency": "La valuta \"%1$s\" non è valida. Inserisci un simbolo di valuta valido (es. %2$s)",
+ "ExceptionInvalidIPFormat": "L'indirizzo IP da escludere \"%1$s\" non ha un formato IP valido (per esempio %2$s).",
"ExceptionInvalidTimezone": "Il fuso orario \"%s\" non è valido. Per favore inseriscine uno valido.",
"ExceptionInvalidUrl": "L'indirizzo \"%s\" non è un URL valido.",
"ExceptionNoUrl": "Devi specificare almeno un URL per questo sito.",
@@ -48,7 +48,7 @@
"NotFound": "Nessun sito trovato per",
"NoWebsites": "Non hai configurato alcun sito web da amministrare.",
"OnlyOneSiteAtTime": "Puoi modificare solo un sito per volta. Per favore Salva o Annulla le attuali modifiche al sito %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik permette statistiche Ecommerce avanzate di monitoraggio e reporting. Vai, per saperne di più, su%s Statistiche Ecommerce%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik permette statistiche Ecommerce avanzate di monitoraggio e reporting. Vai, per saperne di più, su %1$sStatistiche Ecommerce%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik escluderà automaticamente i parametri di sessioni comuni (%s).",
"PluginDescription": "La Gestione dei Siti ti permette di aggiungere e modificare i siti web esistenti.",
"SearchCategoryDesc": "Piwik può anche monitorare la categoria Ricerca per ogni parola chiave di ricerca interna al sito.",
@@ -58,7 +58,7 @@
"SearchKeywordParametersDesc": "Immetti un elenco separato da virgola di tutti i nomi dei parametri di ricerca che contengono la parola chiave di ricerca del sito.",
"SearchParametersNote": "Nota: parametri di ricerca e parametri di categoria saranno utilizzati solo per i siti web che hanno la Ricerca nel Sito abilitata ma hanno lasciato questi parametri vuoti.",
"SearchParametersNote2": "Per disabilitare la Ricerca nel Sito per i nuovi siti web, lascia vuoti questi due campi.",
- "SearchUseDefault": "Usa i parametri %spredefiniti%s di Ricerca nel Sito",
+ "SearchUseDefault": "Usa i parametri %1$spredefiniti%2$s di Ricerca nel Sito",
"SelectACity": "Seleziona una città",
"SelectDefaultCurrency": "È possibile selezionare la valuta predefinita da impostare per i nuovi siti web.",
"SelectDefaultTimezone": "Puoi selezionare il fuso orario predefinito da caricare per i nuovi siti.",
@@ -67,8 +67,10 @@
"SiteSearchUse": "È possibile utilizzare Piwik per monitorare e creare dei report su ciò che i visitatori stanno cercando nel motore di ricerca interno del tuo sito web.",
"SiteWithoutDataTitle": "Non è stato ancora registrato alcun dato",
"SiteWithoutDataDescription": "Per questo sito non sono ancora stati tracciati dati statistici.",
- "SiteWithoutDataSetupTracking": "Imposta il %1$scodice di tracciamento JavaScript%2$s nel sito e ricarica la pagina.",
- "SuperUserAccessCan": "Un utente con accesso Super User può anche %sspecificare le impostazioni globali%s per i nuovi siti.",
+ "SiteWithoutDataSetupTracking": "Si prega di impostare il %1$sCodice di Tracciamento JavaScript%2$s sul tuo sito, se già non lo hai fatto.",
+ "SiteWithoutDataMessageDisappears": "Questo messaggio scomparirà non appena dei dati di questo sito saranno raccolti.",
+ "SiteWithoutDataSetupGoals": "Nel frattempo, può essere che tu voglia %1$simpostare alcuni goal%2$s.",
+ "SuperUserAccessCan": "Un utente con accesso Super User può anche %1$sspecificare le impostazioni globali%2$s per i nuovi siti.",
"Timezone": "Fuso orario",
"TrackingSiteSearch": "Tracciamento Ricerca Interna Sito",
"TrackingTags": "Codice traking per %s",
@@ -76,6 +78,7 @@
"UTCTimeIs": "Tempo UTC è %s.",
"OnlyMatchedUrlsAllowed": "Traccia visite e azioni solo quando l'URL del visitatore comincia con uno degli URL qui sopra.",
"OnlyMatchedUrlsAllowedHelp": "Quando abilitato, Piwik traccerà le azioni interne solo quando l'URL Pagina è una delle URL conosciute del sito. Questo evita che la gente spammi le tue statistiche con URL di altri siti web.",
+ "OnlyMatchedUrlsAllowedHelpExamples": "Il dominio e il percorso devono essere in perfetta corrispondenza e ciascun sottodominio valido deve essere specificato separatamente. Per esempio quando le URL conosciute sono 'http:\/\/example.com\/path' e 'http:\/\/good.example.com', le richieste di tracking per 'http:\/\/example.com\/otherpath' o 'http:\/\/bad.example.com' verranno ignorate.",
"WebsitesManagement": "Gestisci siti web",
"XManagement": "Gestione %s",
"ChooseMeasurableTypeHeadline": "Cosa intendi misurare",
diff --git a/plugins/SitesManager/lang/ja.json b/plugins/SitesManager/lang/ja.json
index b1d3a73a83..d1c82342b1 100644
--- a/plugins/SitesManager/lang/ja.json
+++ b/plugins/SitesManager/lang/ja.json
@@ -19,8 +19,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "異なるウェブサイトの異なるユーザーエージェントを除外する必要がある場合、このボックスにチェックをし、[ 保存 ] をクリックしてください。次に %1$sadd the user agents above%2$s してください。",
"ExceptionDeleteSite": "登録された唯一のウェブサイトであるため、このウェブサイトを削除することはできません。 はじめに新しいウェブサイトを追加し、その後でこれを削除してください。",
"ExceptionEmptyName": "サイト名を空欄にはできません。",
- "ExceptionInvalidCurrency": "通貨 \"%s\" は有効ではありません。 有効な通貨文字(例:%s)を入力してください。",
- "ExceptionInvalidIPFormat": "除外する IP \"%s\" は有効な IP 形式(例:%s)ではありません。",
+ "ExceptionInvalidCurrency": "通貨 \"%1$s\" は有効ではありません。 有効な通貨文字(例:%2$s)を入力してください。",
+ "ExceptionInvalidIPFormat": "除外する IP \"%1$s\" は有効な IP 形式(例:%2$s)ではありません。",
"ExceptionInvalidTimezone": "タイムゾーン \"%s\" は有効ではありません。 有効なタイムゾーンを入力してください。",
"ExceptionInvalidUrl": "URL '%s' は有効なURLではありません。",
"ExceptionNoUrl": "サイト用のURLを最低でも1つ指定する必要があります。",
@@ -48,7 +48,7 @@
"NotFound": "ウェブサイトが見つかりませんでした:",
"NoWebsites": "管理できるウェブサイトがありません。",
"OnlyOneSiteAtTime": "一度にウェブサイトは一つだけ編集できます。ウェブサイト %s への変更を保存するか、キャンセルしてください。",
- "PiwikOffersEcommerceAnalytics": "Piwikは、高度なeコマース分析、トラッキング&リポーティング、が可能になります。%s eコマース分析 %s について詳しく知る。",
+ "PiwikOffersEcommerceAnalytics": "Piwikは、高度なeコマース分析、トラッキング&リポーティング、が可能になります。%1$s eコマース分析 %2$s について詳しく知る。",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "一般的なセッションパラメータ(%s)は、Piwik が自動的に除外します。",
"PluginDescription": "Web サイト管理では、新しい web サイトを追加し、既存の web サイトを編集することができます。",
"SearchCategoryDesc": "Piwik は、各内部サイト内検索キーワードに対する検索カテゴリを追跡することもできます。",
@@ -58,7 +58,7 @@
"SearchKeywordParametersDesc": "サイト内検索キーワードを含むすべてのクエリパラメーター名リストをコンマ区切りで入力してください。",
"SearchParametersNote": "注) クエリパラメーターとカテゴリーパラメーターは、サイト内検索が有効であり、かつ各パラメーターが空の状態のウェブサイトに対してのみ使用されます。",
"SearchParametersNote2": "新しいウェブサイトのサイト内検索を無効にするには、これら 2 つのフィールドを空のままにしておいてください。",
- "SearchUseDefault": "%sdefault%s サイト内検索パラメーターを使用してください",
+ "SearchUseDefault": "%1$sdefault%2$s サイト内検索パラメーターを使用してください",
"SelectACity": "都市を選択",
"SelectDefaultCurrency": "新しいウェブサイトのデフォルトとして設定される、通貨を選択します。",
"SelectDefaultTimezone": "新しいウェブサイトのデフォルトとして選択される、タイムゾーンを選択します。",
@@ -67,8 +67,7 @@
"SiteSearchUse": "Piwik を利用して、ビジターがウェブサイトの内部検索エンジンで検索しているものを追跡およびレポートすることができます。",
"SiteWithoutDataTitle": "まだデータは記録されていません",
"SiteWithoutDataDescription": "まだこのウエブサイトの分析データは追跡されていません。",
- "SiteWithoutDataSetupTracking": "あなたのウェブサイトに %1$s JavaScrip トラッキング コード %2$s を設定して、ページを更新してください。",
- "SuperUserAccessCan": "スーパーユーザーアクセス権限を持つユーザーは、新しいウェブサイトに対し %s グローバルリストを指定 %s することもできます。",
+ "SuperUserAccessCan": "スーパーユーザーアクセス権限を持つユーザーは、新しいウェブサイトに対し %1$s グローバルリストを指定 %2$s することもできます。",
"Timezone": "タイムゾーン",
"TrackingSiteSearch": "サイト内検索のトラッキング",
"TrackingTags": "%s 用トラッキングタグ",
diff --git a/plugins/SitesManager/lang/ko.json b/plugins/SitesManager/lang/ko.json
index dc44ef9dfb..ece14f44c0 100644
--- a/plugins/SitesManager/lang/ko.json
+++ b/plugins/SitesManager/lang/ko.json
@@ -19,8 +19,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "다른 웹사이트에 대해 서로 다른 사용자 에이전트를 제외해야하는 경우, 이 확인란을 선택하여 저장하고 %1$s사용자 에이전트를 추가%2$s합니다.",
"ExceptionDeleteSite": "이 웹사이트만 등록되있기에 이 웹사이트를 삭제할 수 없습니다. 새 웹사이트를 먼저 추가하시고 이 웹사이트를 삭제하세요.",
"ExceptionEmptyName": "웹사이트명은 빈칸으로 둘 수 없습니다.",
- "ExceptionInvalidCurrency": "통화 \"%s\"는 유효하지 않습니다. 유효한 통화 문자 (예: %s)를 입력하세요.",
- "ExceptionInvalidIPFormat": "제외 IP \"%s\"는 유효한 IP 형식 (예: %s)가 없습니다.",
+ "ExceptionInvalidCurrency": "통화 \"%1$s\"는 유효하지 않습니다. 유효한 통화 문자 (예: %2$s)를 입력하세요.",
+ "ExceptionInvalidIPFormat": "제외 IP \"%1$s\"는 유효한 IP 형식 (예: %2$s)가 없습니다.",
"ExceptionInvalidTimezone": "시간대 \"%s\"는 유효하지 않습니다. 유효한 표준 시간대를 입력하세요.",
"ExceptionInvalidUrl": "URL '%s' 은(는) 유효한 URL이 아닙니다.",
"ExceptionNoUrl": "최소한 하나의 웹사이트 URL을 넣어주셔야 합니다.",
@@ -48,7 +48,7 @@
"NotFound": "웹사이트를 찾을 수 없습니다:",
"NoWebsites": "관리할 웹사이트를 가지고 있지 않습니다.",
"OnlyOneSiteAtTime": "일단 웹사이트는 하나만 편집할 수 있습니다. 웹사이트 %s의 변경 사항을 저장하거나 취소하세요.",
- "PiwikOffersEcommerceAnalytics": "Piwik은 고급 전자상거래 분석 및 추적 그리고 리포팅할 수 있습니다. %s전자상거래 분석%s에 대하여 더 알아보세요.",
+ "PiwikOffersEcommerceAnalytics": "Piwik은 고급 전자상거래 분석 및 추적 그리고 리포팅할 수 있습니다. %1$s전자상거래 분석%2$s에 대하여 더 알아보세요.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "일반적인 세션 매개 변수 (%s)는 Piwik가 자동으로 제외합니다.",
"PluginDescription": "웹사이트 관리에서 새로운 웹사이트를 추가하고 기존의 웹사이트를 수정할 수 있습니다.",
"SearchCategoryDesc": "Piwik는 내부 사이트 검색어에 대한 검색 카테고리를 추적할 수 있습니다.",
@@ -58,7 +58,7 @@
"SearchKeywordParametersDesc": "사이트 검색 키워드를 지정하는 모든 쿼리 매개변수 이름을 쉼표로 구분하여 모두 입력합니다.",
"SearchParametersNote": "참고: 사이트 검색을 추적하도록 설정한 웹사이트는 쿼리 매개변수 및 카테고리 매개변수가 사용되어야 하지만 매개변수가 비어있습니다.",
"SearchParametersNote2": "새로운 웹사이트에 대한 사이트 검색을 사용하지 않도록 설정하려면 다음 두 필드를 비워 둡니다.",
- "SearchUseDefault": "사이트 검색의 %s기본%s 매개변수 사용",
+ "SearchUseDefault": "사이트 검색의 %1$s기본%2$s 매개변수 사용",
"SelectACity": "도시 선택",
"SelectDefaultCurrency": "새로운 웹사이트의 기본으로 설정되는 통화를 선택합니다.",
"SelectDefaultTimezone": "새로운 웹사이트에서 기본으로 사용되는 시간대를 선택합니다​​.",
@@ -67,8 +67,10 @@
"SiteSearchUse": "당신은 Piwik를 사용하여 웹사이트의 내부검색 엔진에서 방문자가 어떤 검색을 했는지 추적하고 보고받을 수 있습니다.",
"SiteWithoutDataTitle": "아직 아무런 데이터가 기록되지 않았습니다.",
"SiteWithoutDataDescription": "아직 해당 사이트를 추적하여 분석한 데이터가 없습니다.",
- "SiteWithoutDataSetupTracking": "%1$s자바스크립트 트래킹 코드%2$s를 당신의 웹사이트에 추가하시고, 페이지를 새로고침해 주세요.",
- "SuperUserAccessCan": "슈퍼 유저는 새로운 사이트에 대해서 %s일반 웹사이트 설정%s을 통해 관리할 수 있습니다.",
+ "SiteWithoutDataSetupTracking": "만약 %1$s자바스크립트 추적 코드%2$s를 당신의 웹사이트에 설정하지 않았다면 이를 수행해주세요.",
+ "SiteWithoutDataMessageDisappears": "이 글귀는 해당 웹사이트에서 데이터가 추적되어지는 즉시 사라질 것이다.",
+ "SiteWithoutDataSetupGoals": "한편, 당신은 %1$s목표 설정%2$s을 하고 싶을 것이다.",
+ "SuperUserAccessCan": "슈퍼 유저는 새로운 사이트에 대해서 %1$s일반 웹사이트 설정%2$s을 통해 관리할 수 있습니다.",
"Timezone": "시간대",
"TrackingSiteSearch": "사이트 내부 검색 추적",
"TrackingTags": "%s의 추적 코드",
diff --git a/plugins/SitesManager/lang/lt.json b/plugins/SitesManager/lang/lt.json
index e6060fdd14..6f9cffbcac 100644
--- a/plugins/SitesManager/lang/lt.json
+++ b/plugins/SitesManager/lang/lt.json
@@ -13,8 +13,8 @@
"EnableEcommerce": "Komercinė svetainė",
"ExceptionDeleteSite": "Neįmanoma pašalinti svetainės, nes tai yra vienintelė registruota svetainė. Pirmiausia pridėkite naują svetainę, o vėliau ištrinkite šią.",
"ExceptionEmptyName": "Svetainės pavadinimas negali būti tuščias.",
- "ExceptionInvalidCurrency": "\"%s\" valiuta nurodyta neteisingai. prašome teisingai nurodyti valiutą (pvz. %s)",
- "ExceptionInvalidIPFormat": "Išimtinis IP \"%s\" nurodytas netinkamu IP formatu (pvz.. %s).",
+ "ExceptionInvalidCurrency": "\"%1$s\" valiuta nurodyta neteisingai. prašome teisingai nurodyti valiutą (pvz. %2$s)",
+ "ExceptionInvalidIPFormat": "Išimtinis IP \"%1$s\" nurodytas netinkamu IP formatu (pvz.. %2$s).",
"ExceptionInvalidTimezone": "\"%s\" laiko juosta nurodyta neteisingai. Prašome nurodyti laiko juostą teisingai.",
"ExceptionInvalidUrl": "Adresas (URL) '%s' netinkamas.",
"ExceptionNoUrl": "Turite nurodyti bent vieną adresą (URL) svetainei.",
diff --git a/plugins/SitesManager/lang/lv.json b/plugins/SitesManager/lang/lv.json
index 494eb54b8b..b827d7a835 100644
--- a/plugins/SitesManager/lang/lv.json
+++ b/plugins/SitesManager/lang/lv.json
@@ -9,8 +9,8 @@
"DeleteConfirm": "Vai tiešām vēlaties dzēst vietni %s?",
"EnableEcommerce": "E-komercija ieslēgta",
"ExceptionEmptyName": "Vietnes nosaukums nedrīkst būt tukšs.",
- "ExceptionInvalidCurrency": "Valūta \"%s\" nav pareizi ievadīta. Lūdzu ievadiet pareizu valūtas simbolu (piem., %s)",
- "ExceptionInvalidIPFormat": "Izlaižamajai IP \"%s\" nav pareizs IP formāts (piem., %s).",
+ "ExceptionInvalidCurrency": "Valūta \"%1$s\" nav pareizi ievadīta. Lūdzu ievadiet pareizu valūtas simbolu (piem., %2$s)",
+ "ExceptionInvalidIPFormat": "Izlaižamajai IP \"%1$s\" nav pareizs IP formāts (piem., %2$s).",
"ExceptionInvalidTimezone": "Laika zona \"%s\" nav pareizi ievadīta. Lūdzu izvēlieties pareizu laika zonu.",
"ExceptionInvalidUrl": "URL '%s' nav pareizs URL.",
"ExceptionNoUrl": "Jums jānorāda vismaz viens vietnes URL.",
diff --git a/plugins/SitesManager/lang/nb.json b/plugins/SitesManager/lang/nb.json
index d0ba30edaf..14a065fd9a 100644
--- a/plugins/SitesManager/lang/nb.json
+++ b/plugins/SitesManager/lang/nb.json
@@ -19,8 +19,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Hvis du må ekskludere ulike brukeragenter for ulike nettsteder, huk av denne boksen, klikk lagre og %1$slegg til brukeragentene over%2$s.",
"ExceptionDeleteSite": "Det er ikke mulig å slette dette nettstedet, da det er det eneste registrerte nettstedet. Legg til et nytt nettsted, og slett deretter dette.",
"ExceptionEmptyName": "Nettstedets navn kan ikke være tomt.",
- "ExceptionInvalidCurrency": "Valutaen «%s» er ikke gyldig. Vennligst skriv inn et gyldig valutasymbol (f.eks %s)",
- "ExceptionInvalidIPFormat": "IP-en for å ekskludere «%s» virker ikke å ha et gyldig IP-format (f.eks. %s).",
+ "ExceptionInvalidCurrency": "Valutaen «%1$s» er ikke gyldig. Vennligst skriv inn et gyldig valutasymbol (f.eks %2$s)",
+ "ExceptionInvalidIPFormat": "IP-en for å ekskludere «%1$s» virker ikke å ha et gyldig IP-format (f.eks. %2$s).",
"ExceptionInvalidTimezone": "Tidssonen «%s» er ugyldig. Vennligst skriv inn en gyldig tidssone.",
"ExceptionInvalidUrl": "URL-en «%s» er ikke en gyldig URL.",
"ExceptionNoUrl": "Du må spesifisere minst én URL til nettstedet.",
@@ -48,7 +48,7 @@
"NotFound": "Ingen nettsteder funnet for",
"NoWebsites": "Du har ingen nettsteder å administrere.",
"OnlyOneSiteAtTime": "Du kan bare redigere ett nettsted av gangen. Vennligst lagre eller avbryt dine gjeldende modifikasjoner for nettstedet %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik legger til rette for avansert e-handelssporing og rapportering. Lær mer om %s Ecommerce Analytics%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik legger til rette for avansert e-handelssporing og rapportering. Lær mer om %1$s Ecommerce Analytics%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik vil automatisk ekskludere vanlige sesjonsparametere (%s).",
"PluginDescription": "Nettstedsadministrasjon lar deg legge til et nytt nettsted og redigere eksisterende nettsteder.",
"SearchCategoryDesc": "Piwik kan også spore søkekategorier for alle interne nettstedssøk.",
@@ -58,7 +58,7 @@
"SearchKeywordParametersDesc": "Skriv inn en kommaseparert liste med alle spørreparameternavn som inneholder nettstedssøkeord.",
"SearchParametersNote": "Merk: Spørreparametere og kategoriparametere vil kun brukes for nettsteder som har nettstedssøk aktivert, men som har latt disse parameterne være tomme.",
"SearchParametersNote2": "For å deaktivere nettstedssøk for nye nettsteder, la disse to feltene være tomme.",
- "SearchUseDefault": "Bruk %sstandard%s nettstedssøkeparametere",
+ "SearchUseDefault": "Bruk %1$sstandard%2$s nettstedssøkeparametere",
"SelectACity": "Velg en by",
"SelectDefaultCurrency": "Du kan velge standard valuta for nye nettsteder.",
"SelectDefaultTimezone": "Du kan velge standard tidssone for nye nettsteder.",
@@ -67,8 +67,10 @@
"SiteSearchUse": "Du kan bruke Piwik for å spore og rapportere hva besøkere søker etter i ditt nettsteds interne søkemotor.",
"SiteWithoutDataTitle": "Ingen data har blitt samlet inn ennå",
"SiteWithoutDataDescription": "Ingen analysedata har blitt sporet for dette nettstedet ennå.",
- "SiteWithoutDataSetupTracking": "Vennligst sett opp %1$sJavaScript-sporingskoden%2$s på ditt nettsted og last inn siden på nytt.",
- "SuperUserAccessCan": "En bruker med superbrukertilgang kan også %s spesifisere globale innstillinger%s for nye nettster.",
+ "SiteWithoutDataSetupTracking": "Vennligst sett opp %1$sJavaScript-sporingskoden%2$s på ditt nettsted hvis du ikke har gjort det allerede.",
+ "SiteWithoutDataMessageDisappears": "Denne meldingen vil forsvinne så snart noe data har blitt registrert for dette nettstedet.",
+ "SiteWithoutDataSetupGoals": "I mellomtiden vil du kanskje %1$ssette opp noen mål%2$s.",
+ "SuperUserAccessCan": "En bruker med superbrukertilgang kan også %1$s spesifisere globale innstillinger%2$s for nye nettsteder.",
"Timezone": "Tidssone",
"TrackingSiteSearch": "Sporer interne nettstedssøk",
"TrackingTags": "Sporingskode for %s",
@@ -76,6 +78,7 @@
"UTCTimeIs": "UTC-tid er %s.",
"OnlyMatchedUrlsAllowed": "Spor kun besøk og handlinger når URL-en starter med en av URL-ene over.",
"OnlyMatchedUrlsAllowedHelp": "Når dette er aktivert vil Piwik kun spore interne handlinger når side-URL-en er en av de kjente URL-ene for ditt nettsted. Dette forhindrer folk fra å spamme dine analyser med URL-er for andre nettsteder.",
+ "OnlyMatchedUrlsAllowedHelpExamples": "Domenen og stien må være en eksakt match og hvert gyldig subdomene må være spesifisert individuelt. For eksempel, når de kjente URL-ene er « http:\/\/example.com\/path» og « http:\/\/good.example.com», vil sporingsspørringer for « http:\/\/example.com\/otherpath» eller « http:\/\/bad.example.com» bli ignorert.",
"WebsitesManagement": "Administrasjon av nettsteder",
"XManagement": "Administrer %s",
"ChooseMeasurableTypeHeadline": "Hva vil du måle?",
diff --git a/plugins/SitesManager/lang/nl.json b/plugins/SitesManager/lang/nl.json
index 8acbfa3042..b8a5df4e16 100644
--- a/plugins/SitesManager/lang/nl.json
+++ b/plugins/SitesManager/lang/nl.json
@@ -18,8 +18,8 @@
"EnableSiteSpecificUserAgentExclude": "Maak per website uitgesloten user agents mogelijk",
"ExceptionDeleteSite": "Het is niet mogelijk deze website te verwijderen aangezien het de enige geregistreerde website is. Voeg eerst een nieuwe website toe alvorens deze te verwijderen.",
"ExceptionEmptyName": "De website dient een naam te hebben.",
- "ExceptionInvalidCurrency": "De munteenheid \"%s\" is niet geldig. Voer een geldig valuta symbool in (bijv. %s)",
- "ExceptionInvalidIPFormat": "Het IP om \"%s\" uit te sluiten heeft geen geldig IP-formaat (bijv. %s).",
+ "ExceptionInvalidCurrency": "De munteenheid \"%1$s\" is niet geldig. Voer een geldig valuta symbool in (bijv. %2$s)",
+ "ExceptionInvalidIPFormat": "Het IP om \"%1$s\" uit te sluiten heeft geen geldig IP-formaat (bijv. %2$s).",
"ExceptionInvalidTimezone": "De tijdzone \"%s\" is ongeldig. Voer een geldige tijdzone in.",
"ExceptionInvalidUrl": "De url '%s' is niet geldig.",
"ExceptionNoUrl": "U moet minimaal één url bepalen voor deze website.",
@@ -45,7 +45,7 @@
"NotFound": "Geen websites gevonden voor",
"NoWebsites": "U heeft geen enkele websites in beheer.",
"OnlyOneSiteAtTime": "U kunt slechts één website tegelijkertijd bewerken. Sla uw wijzigingen voor website %s op of annuleer de wijzigingen.",
- "PiwikOffersEcommerceAnalytics": "In Piwik is een geavanceerde Ecommerce Analytics tracking & rapportage mogelijk. Leer meer over %s Ecommerce Analytics%s.",
+ "PiwikOffersEcommerceAnalytics": "In Piwik is een geavanceerde Ecommerce Analytics tracking & rapportage mogelijk. Leer meer over %1$s Ecommerce Analytics%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik sluit automatisch veelvoorkomende sessie parameters uit (%s).",
"PluginDescription": "Website beheer laat je toe nieuwe",
"SearchCategoryDesc": "Piwik kan ook de zoekcategorieën bijhouden voor elk zoekwoord gebruikt op de lokale zoekmachine.",
diff --git a/plugins/SitesManager/lang/pl.json b/plugins/SitesManager/lang/pl.json
index 24e8b1f376..8605049117 100644
--- a/plugins/SitesManager/lang/pl.json
+++ b/plugins/SitesManager/lang/pl.json
@@ -12,8 +12,8 @@
"DeleteConfirm": "Czy jesteś pewien, że chcesz skasować stronę %s?",
"ExceptionDeleteSite": "Nie jest możliwe skasowanie tej strony jako takiej tylko zarejestrowanej strony. Najpierw dodaj nową stronę, a wtedy dopiero skasuj tę jedną.",
"ExceptionEmptyName": "Nazwa strony internetowej nie może być pusta.",
- "ExceptionInvalidCurrency": "Podana waluta \"%s\" jest nieprawidłowa. Proszę wprowadzić poprawny symbol waluty (np. %s)",
- "ExceptionInvalidIPFormat": "Adres IP do wykluczenia \"%s\" nie ma prawidłowego formatu IP (np. %s).",
+ "ExceptionInvalidCurrency": "Podana waluta \"%1$s\" jest nieprawidłowa. Proszę wprowadzić poprawny symbol waluty (np. %2$s)",
+ "ExceptionInvalidIPFormat": "Adres IP do wykluczenia \"%1$s\" nie ma prawidłowego formatu IP (np. %2$s).",
"ExceptionInvalidTimezone": "Strefa czasowa \"%s\" jest niepoprawna. Proszę wprowadzić poprawną strefę czasową.",
"ExceptionInvalidUrl": "Adres url '%s' nie jest poprawnym adresem URL.",
"ExceptionNoUrl": "Musisz określić przynajmniej jeden adres URL dla strony serwisu.",
diff --git a/plugins/SitesManager/lang/pt-br.json b/plugins/SitesManager/lang/pt-br.json
index 8a369406ff..db3421b966 100644
--- a/plugins/SitesManager/lang/pt-br.json
+++ b/plugins/SitesManager/lang/pt-br.json
@@ -19,8 +19,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Se você precisa excluir diferentes user agents para websites distintos, marque esta caixa, clique em salvar e %1$sadicione os user agents acima%2$s.",
"ExceptionDeleteSite": "Não é possível excluir este website já que ele é o único website registrado. Adiicone um novo website primeiro, depois exclua este.",
"ExceptionEmptyName": "O nome do site não pode ficar vazio.",
- "ExceptionInvalidCurrency": "A moeda \"%s\" não é válida. Por favor inserir um símbolo monetário válido (ex. %s)",
- "ExceptionInvalidIPFormat": "O IP para excluir \"%s\" não tem um formatio de IP válido (ex. %s)",
+ "ExceptionInvalidCurrency": "A moeda \"%1$s\" não é válida. Por favor inserir um símbolo monetário válido (ex. %2$s)",
+ "ExceptionInvalidIPFormat": "O IP para excluir \"%1$s\" não tem um formatio de IP válido (ex. %2$s)",
"ExceptionInvalidTimezone": "O fuso-horário \"%s\" não é válido. Por favor inserir um fuso-horário válido.",
"ExceptionInvalidUrl": "A URL '%s' não é uma URL válida.",
"ExceptionNoUrl": "Você precisa especificar no mínimo uma URL para o site.",
@@ -48,7 +48,7 @@
"NotFound": "Nenhum site encontrado para",
"NoWebsites": "Você não tem nenhum site para administrar.",
"OnlyOneSiteAtTime": "Você pode editar um website por vez. Por favor salve ou cancele as modificações do website atual %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik permite análises avançadas de rastreamento e relatórios de comércio eletrônico. Saiba mais sobre %s Análise de E-comerce%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik permite análises avançadas de rastreamento e relatórios de comércio eletrônico. Saiba mais sobre %1$s Análise de E-comerce%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik excluirá automaticamente a sessão comum de parâmetros (%s).",
"PluginDescription": "Gerenciamento de sites permite que você adicione um novo site e edite sites existentes.",
"SearchCategoryDesc": "Piwik também pode acompanhar a categoria de Busca para cada Palavra-chave de busca interna no site.",
@@ -58,7 +58,7 @@
"SearchKeywordParametersDesc": "Insira uma lista separada por vírgulas de todos os nomes de parâmetro de consulta que contenham a palavra-chave de busca do site.",
"SearchParametersNote": "Nota: os parâmetros de consulta e parâmetros Categoria serão usados apenas para sites que possuem Site Search ativado, mas deixou esses parâmetros vazio.",
"SearchParametersNote2": "Para desativar Site Search para novos sites, deixe esses dois campos vazios.",
- "SearchUseDefault": "Usar parâmetros de pesquisa %spadrão%s",
+ "SearchUseDefault": "Usar parâmetros de pesquisa %1$spadrão%2$s",
"SelectACity": "Selecione uma cidade",
"SelectDefaultCurrency": "Você pode selecionar a moeda corrente para ser setada como padrão para novos websites",
"SelectDefaultTimezone": "Você pode selecionar o fuso-horário para ser selecionado como padrão pra novos websites.",
@@ -67,8 +67,10 @@
"SiteSearchUse": "Você pode utilizar o Piwik para acompanhar e informar o que os visitantes estão procurando no motor de pesquisa interna do seu site.",
"SiteWithoutDataTitle": "Ainda não há dados gravados",
"SiteWithoutDataDescription": "Ainda não há dados de análises de rastreamentos para este website",
- "SiteWithoutDataSetupTracking": "Por favor configure o %1$scódigo de rastreamento JavaScript%2$s no seu website e recarregue a página.",
- "SuperUserAccessCan": "Um usuário com privilégio de Super Usuário também pode %s especificar configurações globais%s para novos sites.",
+ "SiteWithoutDataSetupTracking": "Por favor, configure o %1$scódigo de rastreamento JavaScript%2$s em seu website, caso ainda não tenha feito.",
+ "SiteWithoutDataMessageDisappears": "Esta mensagem vai desaparecer assim que alguns dados foram rastreados para este site.",
+ "SiteWithoutDataSetupGoals": "Por enquanto, talvez você queira %1$sdefinir algumas metas%2$s.",
+ "SuperUserAccessCan": "Um usuário com privilégio de Super Usuário também pode %1$s especificar configurações globais%2$s para novos sites.",
"Timezone": "Fuso horário",
"TrackingSiteSearch": "Acompanhamento de pesquisa interna do site",
"TrackingTags": "Rastreando tags para %s",
@@ -76,6 +78,7 @@
"UTCTimeIs": "UTC tempo é %s.",
"OnlyMatchedUrlsAllowed": "Rastreia visitas e ações apenas quando a URL da ação começa com uma das URLs acima.",
"OnlyMatchedUrlsAllowedHelp": "Quando ativado, Piwik só irá rastrear ações internas quando a URL da página for uma das URLs reconhecidas para o seu website. Isso impede que pessoas enviem spams para a sua análise com URLs de outros websites.",
+ "OnlyMatchedUrlsAllowedHelpExamples": "O domínio e o caminho têm que corresponder exatamente e cada subdomínio válido tem de ser especificado separadamente. Por exemplo, quando as URLs são 'http:\/\/example.com\/path' e 'http:\/\/good.example.com', solicitações de rastreamento para http:\/\/example.com\/otherpath' ou 'http:\/\/bad.example.com' são ignoradas.",
"WebsitesManagement": "Gerenciamento de Sites",
"XManagement": "Gerenciar %s",
"ChooseMeasurableTypeHeadline": "O que você gostaria de medir?",
diff --git a/plugins/SitesManager/lang/pt.json b/plugins/SitesManager/lang/pt.json
index 02634e1c22..9beb152bfd 100644
--- a/plugins/SitesManager/lang/pt.json
+++ b/plugins/SitesManager/lang/pt.json
@@ -14,8 +14,8 @@
"EnableEcommerce": "Comércio Electrónico activado",
"ExceptionDeleteSite": "Não é possível eliminar este website visto ser o único website registado. Adicione um novo website primeiro, depois elimine este.",
"ExceptionEmptyName": "O nome do website não pode ficar vazio.",
- "ExceptionInvalidCurrency": "A moeda \"%s\" não é válida. Por favor introduza um símbolo de moeda válido (por ex. %s).",
- "ExceptionInvalidIPFormat": "O IP para excluir \"%s\" não tem um formato de IP válido (por ex. %s).",
+ "ExceptionInvalidCurrency": "A moeda \"%1$s\" não é válida. Por favor introduza um símbolo de moeda válido (por ex. %2$s).",
+ "ExceptionInvalidIPFormat": "O IP para excluir \"%1$s\" não tem um formato de IP válido (por ex. %2$s).",
"ExceptionInvalidTimezone": "O fuso horário \"%s\" não é válido. Por favor introduza um fuso horário válido.",
"ExceptionInvalidUrl": "O endereço '%s' não é válido.",
"ExceptionNoUrl": "Tem de especificar no mínimo um endereço para o website.",
@@ -34,7 +34,7 @@
"NotFound": "Nenhum website encontrado para",
"NoWebsites": "Não tem nenhum website para administrar.",
"OnlyOneSiteAtTime": "Você só pode editar um site de cada vez. Por favor, Salvar ou Cancelar as modificações atuais para o website %s.",
- "PiwikOffersEcommerceAnalytics": "O Piwik permite a análise e relatórios avançados de rastreamento de Comércio Electrónico . Saiba mais sobre %s Rastreamento de Comércio Electrónico %s.",
+ "PiwikOffersEcommerceAnalytics": "O Piwik permite a análise e relatórios avançados de rastreamento de Comércio Electrónico . Saiba mais sobre %1$s Rastreamento de Comércio Electrónico %2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik exclui automaticamente parâmetros comuns de sessões (%s).",
"SelectACity": "Seleccione uma cidade",
"SelectDefaultCurrency": "Pode seleccionar a moeda para ser pré-definida em websites novos.",
diff --git a/plugins/SitesManager/lang/ro.json b/plugins/SitesManager/lang/ro.json
index 7ebe9f0be2..17d34f7ba6 100644
--- a/plugins/SitesManager/lang/ro.json
+++ b/plugins/SitesManager/lang/ro.json
@@ -18,8 +18,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Dacă aveți nevoie să excludeți diferiti agentii utilizator d pentru diferite site-uri, bifați această casetă, faceți clic pe Salvare și % %1$s adaugati agenții de utilizator de mai sus %2$s.",
"ExceptionDeleteSite": "Nu este posibil să ștergeți acest site, acesta este singurul website-ul înregistrat. Adauga un nou site web în primul rând, apoi ștergel pe asta.",
"ExceptionEmptyName": "The site name can't be empty.",
- "ExceptionInvalidCurrency": "Moneda \"%s\" nu este valida. Vă rugăm să introduceți un simbol monetar valabil (de exemplu %s)",
- "ExceptionInvalidIPFormat": "IP de a exclude \"%s\" nu are un format valid de IP (de exemplu %s).",
+ "ExceptionInvalidCurrency": "Moneda \"%1$s\" nu este valida. Vă rugăm să introduceți un simbol monetar valabil (de exemplu %2$s)",
+ "ExceptionInvalidIPFormat": "IP de a exclude \"%1$s\" nu are un format valid de IP (de exemplu %2$s).",
"ExceptionInvalidTimezone": "Fusul orar \"%s\" nu este valid. Vă rugăm să introduceți un fus orar valid.",
"ExceptionInvalidUrl": "Url-ul '%s' nu este o adresă URL validă.",
"ExceptionNoUrl": "You must specify at least one URL for the site.",
@@ -47,7 +47,7 @@
"NotFound": "Nu sunt website-uri găsite pentru",
"NoWebsites": "Nu aveți nici un site web pentru a administra.",
"OnlyOneSiteAtTime": "Puteți edita un singur site-ul la un moment dat. Vă rugăm să salvați sau anulati modificările dvs. curente de pe site-ul %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik permite pentru comerț electronic analiza de urmărire și de raportare. Aflați mai multe despre %s comerț electronic %s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik permite pentru comerț electronic analiza de urmărire și de raportare. Aflați mai multe despre %1$s comerț electronic %2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik va exclude în mod automat parametrii comuni de sesiune (%s).",
"SearchCategoryDesc": "Piwik poate urmări, de asemenea, categoria de căutare pentru fiecare website cuvânt cheie din cautarea interna.",
"SearchCategoryLabel": "Parametru categorie",
@@ -56,14 +56,14 @@
"SearchKeywordParametersDesc": "Introduceți o virgula pentru a separa lista de toti parametrilor de interogare care conțin cuvantul cheie cautat te website.",
"SearchParametersNote": "Notă: parametrii de interogare și parametrii Categorie vor fi folosite numai pentru site-urile care au functia de Cautare activata dar a lăsat acești parametri goli.",
"SearchParametersNote2": "Pentru a dezactiva cautare Site pentru site-uri noi, lăsați aceste două câmpuri goale.",
- "SearchUseDefault": "Utiliza %simplicite%s parametri site cautare",
+ "SearchUseDefault": "Utiliza %1$simplicite%2$s parametri site cautare",
"SelectACity": "Selectează un oraş",
"SelectDefaultCurrency": "Puteți selecta moneda în mod implicit pentru site-uri noi",
"SelectDefaultTimezone": "Puteți selecta fusul orar pentru a selecta în mod implicit pentru noul site.",
"ShowTrackingTag": "Vizionare cod de urmarire",
"Sites": "Siteuri",
"SiteSearchUse": "Puteți utiliza Piwik pentru a urmări și raporta ceea ce vizitatorii cauta în motorul de căutare intern al site-ul dvs..",
- "SuperUserAccessCan": "Un utilizator cu acces la Super Utilizatorul poate, de asemenea,%s specifica setări globale%s pentru site-uri noi.",
+ "SuperUserAccessCan": "Un utilizator cu acces la Super Utilizatorul poate, de asemenea,%1$s specifica setări globale%2$s pentru site-uri noi.",
"Timezone": "Fus orar",
"TrackingSiteSearch": "Urmărire cautare interna a site-lui",
"TrackingTags": "Codul de urmărire pentru %s",
diff --git a/plugins/SitesManager/lang/ru.json b/plugins/SitesManager/lang/ru.json
index d266cb457e..db55be9cfc 100644
--- a/plugins/SitesManager/lang/ru.json
+++ b/plugins/SitesManager/lang/ru.json
@@ -18,8 +18,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Если нужно исключить разные агенты пользователей (user agents) для различных веб-сайтов, установите этот флажок, нажмите кнопку сохранить и %1$sдобавьте пользовательские агенты сверху%2$s.",
"ExceptionDeleteSite": "Невозможно удалить, так как это единственный сайт в вашем списке. Добавьте еще какой-нибудь сайт для удаления данного.",
"ExceptionEmptyName": "Название сайта не может быть пустое.",
- "ExceptionInvalidCurrency": "Валюта \"%s\" не верна. Пожалуйста, введите правильный символ валюты (напр., %s)",
- "ExceptionInvalidIPFormat": "IP для сключения \"%s\" не имеет правильный IP формат (напр., %s).",
+ "ExceptionInvalidCurrency": "Валюта \"%1$s\" не верна. Пожалуйста, введите правильный символ валюты (напр., %2$s)",
+ "ExceptionInvalidIPFormat": "IP для сключения \"%1$s\" не имеет правильный IP формат (напр., %2$s).",
"ExceptionInvalidTimezone": "Часовой пояс \"%s\" не верен. Пожалуйста, введите правильный.",
"ExceptionInvalidUrl": "URL '%s' не верен.",
"ExceptionNoUrl": "Вы должны указать хотя бы один URL для этого сайта.",
@@ -47,7 +47,7 @@
"NotFound": "Не найдено сайтов для",
"NoWebsites": "Вы не имеете ни одного сайта на учете.",
"OnlyOneSiteAtTime": "Вы можете только редактировать один сайт в одно и то же время. Пожалуйста, сохраните или отмените ваши текущие изменения к сайту %s.",
- "PiwikOffersEcommerceAnalytics": "Эта опция может быть использована для аналитики интернет-магазинов и электронных заказов. Больше информации – здесь: %s Аналитика эл. коммерции%s.",
+ "PiwikOffersEcommerceAnalytics": "Эта опция может быть использована для аналитики интернет-магазинов и электронных заказов. Больше информации – здесь: %1$s Аналитика эл. коммерции%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Веб-аналитика будет автоматически изымать необходимые параметры сессии (%s).",
"PluginDescription": "Управление вебсайтами позволяет добавлять и редактировать их.",
"SearchCategoryDesc": "Piwik также может отслеживать категорию поиска для каждого слова, которое ищут на вашем сайте в поиске.",
@@ -57,14 +57,14 @@
"SearchKeywordParametersDesc": "Введите список параметров, которые содержат ключевые слова поиска по сайту (через запятую).",
"SearchParametersNote": "Подсказка: параметры запроса и категории будут использованы только для сайтов, которые имеют внутренний поиск и включили отслеживание поиска, но оставили эти параметры пустыми (нетронутыми).",
"SearchParametersNote2": "Чтобы отключить функции отслеживания поиска по сайту для новых сайтов, оставьте эти два поля пустыми.",
- "SearchUseDefault": "Использовать %sдефолтные%s параметры поиска по сайту",
+ "SearchUseDefault": "Использовать %1$sдефолтные%2$s параметры поиска по сайту",
"SelectACity": "Выбрать город",
"SelectDefaultCurrency": "Вы можете установить валюту по умолчанию для новых сайтов.",
"SelectDefaultTimezone": "Вы можете установить часовой пояс по умолчанию для новых сайтов.",
"ShowTrackingTag": "Показать код",
"Sites": "Сайты",
"SiteSearchUse": "Вы можете использовать Piwik для отслеживания и отображения аналитики по тому, что ищут посетители на вашем сайте используя функционал для внутреннего поиска по сайту.",
- "SuperUserAccessCan": "Пользователь с правами суперпользователя может также %sуказать общие настройки%s для новых веб-сайтов.",
+ "SuperUserAccessCan": "Пользователь с правами суперпользователя может также %1$sуказать общие настройки%2$s для новых веб-сайтов.",
"Timezone": "Часовой пояс",
"TrackingSiteSearch": "Отслеживать внутренний поиск по сайту",
"TrackingTags": "Код отслеживания для %s",
diff --git a/plugins/SitesManager/lang/sq.json b/plugins/SitesManager/lang/sq.json
index f13986480d..cef6614882 100644
--- a/plugins/SitesManager/lang/sq.json
+++ b/plugins/SitesManager/lang/sq.json
@@ -17,8 +17,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Nëse ju duhet të përjashtoni agjentë të ndryshëm përdoruesi për sajte të ndryshëm, i vini shenjë kësaj kutize, klikoni mbi Ruaje dhe %1$sshtojeni agjentin e përdoruesi më sipër%2$s.",
"ExceptionDeleteSite": "Heqja e këtij sajti s’është e mundur, ngaqë është i vetmi sajt i regjistruar. Së pari, shtoni një sajt të ri, mandej hiqni këtë këtu.",
"ExceptionEmptyName": "Sajti s’mund të jetë i zbrazët.",
- "ExceptionInvalidCurrency": "Monedha \"%s\" nuk është një nga të vlefshmet. Ju lutemi, jepni një simbol monedhe të vlefshme (p.sh. %s).",
- "ExceptionInvalidIPFormat": "IP-ja që duhet përjashtuar \"%s\" s’ka format të vlefshëm IP-sh (p.sh. %s).",
+ "ExceptionInvalidCurrency": "Monedha \"%1$s\" nuk është një nga të vlefshmet. Ju lutemi, jepni një simbol monedhe të vlefshme (p.sh. %2$s).",
+ "ExceptionInvalidIPFormat": "IP-ja që duhet përjashtuar \"%1$s\" s’ka format të vlefshëm IP-sh (p.sh. %2$s).",
"ExceptionInvalidTimezone": "Zona kohore \"%s\" s’është një nga të vlefshmet. Ju lutemi, jepni një zonë kohore të vlefshme.",
"ExceptionInvalidUrl": "Url-ja '%s' s’është URL e vlefshme.",
"ExceptionNoUrl": "Duhet të tregoni të paktën një URL për sajtin.",
@@ -43,7 +43,7 @@
"NotFound": "S’u gjetën sajte për",
"NoWebsites": "S’keni ndonjë sajt për ta administruar.",
"OnlyOneSiteAtTime": "Mund të përpunoni vetëm një sajt në herë. Ju lutemt, Ruani ose Anuloni ndryshimet tuaja të tanishme te sajti %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik-u ju mundëson ndjekje & raportim të thelluar Analizash E-tregtie. Mësoni më tepër rreth %s Analizash E-tregtie%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik-u ju mundëson ndjekje & raportim të thelluar Analizash E-tregtie. Mësoni më tepër rreth %1$s Analizash E-tregtie%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik-u do t’i përjashtojë vetvetiu parametrat e zakonshëm të sesioneve (%s).",
"PluginDescription": "Administrimi i sajteve ju lejon të shtoni sajt të ri dhe të përpunoni sajte ekzistues.",
"SearchCategoryLabel": "Parametër kategorie",
@@ -51,7 +51,7 @@
"SearchKeywordLabel": "Parametër kërkese",
"SearchKeywordParametersDesc": "Jepni një listë emrash parametrash kërkese fjalëkyçesh kërkimi në sajt, ndarë me presje.",
"SearchParametersNote2": "Për ta çaktivizuar për sajtet e reja Kërkimin te Sajti, lërini të zbrazëta këto dy fusha.",
- "SearchUseDefault": "Përdor parametra %sparazgjedhje%s Kërkimi në Sajt",
+ "SearchUseDefault": "Përdor parametra %1$sparazgjedhje%2$s Kërkimi në Sajt",
"SelectACity": "Përzgjidhni një qytet",
"SelectDefaultCurrency": "Mund të përzgjidhni monedhën parazgjedhje për sajtet e rinj.",
"SelectDefaultTimezone": "Mund të përzgjidhni zonën kohore parazgjedhje për sajtet e rinj.",
diff --git a/plugins/SitesManager/lang/sr.json b/plugins/SitesManager/lang/sr.json
index 5d6605c4aa..06529fa19c 100644
--- a/plugins/SitesManager/lang/sr.json
+++ b/plugins/SitesManager/lang/sr.json
@@ -19,8 +19,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Ukoliko želite da isključite različite korisničke agente za različite sajtove, kliknite ovde, kliknite na Sačuvaj i %1$sdodajte korisničke agente%2$s.",
"ExceptionDeleteSite": "Nije moguće obrisati ovaj sajt pošto je to jedini prijavljeni sajt. Najpre dodajte novi sajt pa tek onda obrišite ovaj.",
"ExceptionEmptyName": "Naziv sajta ne može biti prazan.",
- "ExceptionInvalidCurrency": "Valuta '%s' nije validna. Molimo vas da upišete validan simbol za valutu (npr. %s)",
- "ExceptionInvalidIPFormat": "IP adresa \"%s\" nije u validnom obliku (npr. %s).",
+ "ExceptionInvalidCurrency": "Valuta '%1$s' nije validna. Molimo vas da upišete validan simbol za valutu (npr. %2$s)",
+ "ExceptionInvalidIPFormat": "IP adresa \"%1$s\" nije u validnom obliku (npr. %2$s).",
"ExceptionInvalidTimezone": "Vremenska zona '%s' nije validna. Molimo vas da upišete validnu vremensku zonu.",
"ExceptionInvalidUrl": "Adresa '%s' nije validna.",
"ExceptionNoUrl": "Morate navesti barem jednu adresu po sajtu.",
@@ -48,7 +48,7 @@
"NotFound": "Nije nađen nijedan sajt za",
"NoWebsites": "Nemate nijedan sajt",
"OnlyOneSiteAtTime": "U jednom trenutku možete raditi samo sa jednim sajtom. Molimo vas da snimite ili poništite izmene vezane za sajt %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik omogućuje napredno praćenje i izveštavanje u pogledu elektronskih porudžbina. Saznajte više na %s Ecommerce Analytics%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik omogućuje napredno praćenje i izveštavanje u pogledu elektronskih porudžbina. Saznajte više na %1$s Ecommerce Analytics%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik će automatski izuzeti uobičajene parametre sesije (%s)",
"PluginDescription": "Upravljanje sajtovima vam omogućuje da dodajete nove sajtove i menjate postojeće,",
"SearchCategoryDesc": "Piwik takođe može i da prati kategorije pretrage za svaku ključnu reč.",
@@ -58,7 +58,7 @@
"SearchKeywordParametersDesc": "Upišite sve parametre upita koji sadrže ključne reči pretrage razdvojene zarezima.",
"SearchParametersNote": "Pažnja: parametri upita i kategorija će biti korišćeni samo za sajtove koji imaju uključeno pretraživanje-",
"SearchParametersNote2": "Ukoliko želite da isključite pretraživanje za nove sajtove, ostavite ova dva polja prazna.",
- "SearchUseDefault": "Koristi %spodrazumevana%s podešavanja za pretraživanje",
+ "SearchUseDefault": "Koristi %1$spodrazumevana%2$s podešavanja za pretraživanje",
"SelectACity": "Izaberite grad",
"SelectDefaultCurrency": "Možete izabrati koja će biti podrazumevana valuta za nove sajtove.",
"SelectDefaultTimezone": "Možete izabrati koja će biti podrazumevana vremenska zona za nove sajtove.",
@@ -67,8 +67,7 @@
"SiteSearchUse": "Možete koristiti Piwik za praćenje i kreiranje izveštaja o tome šta posetioci traže na vašem sajtu koristeći polje za pretragu.",
"SiteWithoutDataTitle": "Nikakvi podaci do sad nisu zabeleženi",
"SiteWithoutDataDescription": "Još uvek nema analitičkih podataka za ova sajt.",
- "SiteWithoutDataSetupTracking": "Molimo vas da podesite %1$sJavaScript kod za praćenje%2$s na vašem sajtu i da ponovo učitate stranicu.",
- "SuperUserAccessCan": "Korisnik sa superkorisničkim nivoom pristupa može i da %spostavi globalna podešavanja%s za nove sajtove.",
+ "SuperUserAccessCan": "Korisnik sa superkorisničkim nivoom pristupa može i da %1$spostavi globalna podešavanja%2$s za nove sajtove.",
"Timezone": "Vremenska zona",
"TrackingSiteSearch": "Praćenje pretraživanja sajta",
"TrackingTags": "Kod za praćenje za %s",
diff --git a/plugins/SitesManager/lang/sv.json b/plugins/SitesManager/lang/sv.json
index 90f8f357fb..556eb2f3ac 100644
--- a/plugins/SitesManager/lang/sv.json
+++ b/plugins/SitesManager/lang/sv.json
@@ -19,8 +19,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Kryssa i den här rutan om du vill utesluta olika användaraganter (user agents) för olika webbplatser, klicka sen på spara och %1$slägg till användaragenterna här ovanför%2$s.",
"ExceptionDeleteSite": "Det är inte möjligt att radera denna webbplats eftersom det är det enda registrerade webbplatsen. Lägg till en ny webbplats först och ta sedan bort den här.",
"ExceptionEmptyName": "Webbplatsens namn kan inte vara tomt.",
- "ExceptionInvalidCurrency": "Valutan \"%s\" är inte giltig. Vänligen ange en giltig valutasymbol (t.ex. %s)",
- "ExceptionInvalidIPFormat": "IP-adresser som ska exkluderas \"%s\" har inte ett giltig format (t.ex. %s).",
+ "ExceptionInvalidCurrency": "Valutan \"%1$s\" är inte giltig. Vänligen ange en giltig valutasymbol (t.ex. %2$s)",
+ "ExceptionInvalidIPFormat": "IP-adresser som ska exkluderas \"%1$s\" har inte ett giltig format (t.ex. %2$s).",
"ExceptionInvalidTimezone": "Tidszonen \"%s\" är inte giltig. Vänligen ange en giltig tidszon.",
"ExceptionInvalidUrl": "Den angivna URL'n är inte giltig: '%s'.",
"ExceptionNoUrl": "Du måste åtminstone specifiera en URL för denna webbplats.",
@@ -48,7 +48,7 @@
"NotFound": "Inga webbplatser funna",
"NoWebsites": "Du har inga webbplatser att administrera.",
"OnlyOneSiteAtTime": "Du kan endast redigera en webbplats åt gången. Vänligen spara eller avbryt dina ändringar för denna webbplats (%s).",
- "PiwikOffersEcommerceAnalytics": "Piwik möjliggör för avancerad e-handelsspårning och rapportering. Läs mer om %s E-handelsspårning%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik möjliggör för avancerad e-handelsspårning och rapportering. Läs mer om %1$s E-handelsspårning%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik kommer automatiskt att exkludera de vanligaste sessions parametrarna (%s).",
"PluginDescription": "Webbplatsadministration låter dig skapa nya webbplatser och redigera befintliga.",
"SearchCategoryDesc": "Piwik kan även spåra kategorierna för varje nyckelord i webbplatssökningar.",
@@ -58,7 +58,7 @@
"SearchKeywordParametersDesc": "Ange en kommaseparerad lista med alla parameternamn som innehåller webbplatssökningens nyckelord.",
"SearchParametersNote": "Notera: Parametrar för frågor och kategori kommer endast användas för webbplatser som har webbplatssökning aktiverat men lämnade dessa parametrar tomma.",
"SearchParametersNote2": "Lämna dom här två fälten tomma för att avaktivera webbplatssökning för nya webbplatser.",
- "SearchUseDefault": "Använd %sstandardparametrar%s för webbplatssökning",
+ "SearchUseDefault": "Använd %1$sstandardparametrar%2$s för webbplatssökning",
"SelectACity": "Välj en stad",
"SelectDefaultCurrency": "Du kan välja standardvaluta för nya webbplatser.",
"SelectDefaultTimezone": "Du kan välja standard tidszon för nya webbplatser.",
@@ -67,8 +67,8 @@
"SiteSearchUse": "Du kan använda Piwik för att spåra och rapportera om vad besökarna söker efter med din webbplats interna sökmotor.",
"SiteWithoutDataTitle": "Inga data har samlats in än",
"SiteWithoutDataDescription": "Inga data har samlats in för denna webbplats än.",
- "SiteWithoutDataSetupTracking": "Lägg till %1$sJavaScript spårningskod%2$s i din webbplats och ladda om sidan.",
- "SuperUserAccessCan": "En användare med Superbehörighet kan också %s specificera globala inställningar%s för nya webbsidor.",
+ "SiteWithoutDataMessageDisappears": "Detta meddelande kommer visas tills data samlats in för denna webbsida.",
+ "SuperUserAccessCan": "En användare med Superbehörighet kan också %1$s specificera globala inställningar%2$s för nya webbsidor.",
"Timezone": "Tidszon",
"TrackingSiteSearch": "Spåra webbplatsens interna sökfunktion",
"TrackingTags": "Spårningskod för %s",
diff --git a/plugins/SitesManager/lang/th.json b/plugins/SitesManager/lang/th.json
index 1dd6f91257..6fd7767c4a 100644
--- a/plugins/SitesManager/lang/th.json
+++ b/plugins/SitesManager/lang/th.json
@@ -12,8 +12,8 @@
"DeleteConfirm": "คุณแน่ใจที่จะลบเว็บไซต์ %s หรือไม่?",
"ExceptionDeleteSite": "ไม่สามารถลบได้ หากคุณมีเว็บไซต์ที่ลงทะเบียนไว้เพียงเว็บเดียว เพิ่มเว็บไซต์ใหม่ก่อนที่จะทำการลบเว็บไซต์นี้",
"ExceptionEmptyName": "ชื่อของไซต์ไม่สามารถเว้นว่างไว้ได้",
- "ExceptionInvalidCurrency": "สกุลเงินที่ \"%s\" ไม่ถูกต้อง กรุณาป้อนสัญลักษณ์สกุลเงินที่ถูกต้อง (เช่น %s)",
- "ExceptionInvalidIPFormat": "IP เพื่อแยก \"%s\" ไม่มีรูปแบบ IP ที่ถูกต้อง (เช่น %s)",
+ "ExceptionInvalidCurrency": "สกุลเงินที่ \"%1$s\" ไม่ถูกต้อง กรุณาป้อนสัญลักษณ์สกุลเงินที่ถูกต้อง (เช่น %2$s)",
+ "ExceptionInvalidIPFormat": "IP เพื่อแยก \"%1$s\" ไม่มีรูปแบบ IP ที่ถูกต้อง (เช่น %2$s)",
"ExceptionInvalidTimezone": "โซนเวลา \"%s\" นั้นไม่ถูกต้อง กรุณากรอกให้ถูกต้องด้วย",
"ExceptionInvalidUrl": "URL ดังกล่าว '%s' ไม่สามารถใช้ได้",
"ExceptionNoUrl": "คุณต้องระบุ URL เว็บไซต์อย่างน้อย 1 URL",
diff --git a/plugins/SitesManager/lang/tl.json b/plugins/SitesManager/lang/tl.json
index 77d782e4b5..ba3f5ee3d6 100644
--- a/plugins/SitesManager/lang/tl.json
+++ b/plugins/SitesManager/lang/tl.json
@@ -18,8 +18,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Kung kailangan mo upang ibukod ang iba't ibang mga user agent na gumagamit para sa iba't ibang mga website e-check ang box na ito i-click ang save at %1$sidagdag ang user agents sa itaas%2$s",
"ExceptionDeleteSite": "Ito ay hindi pwedeng tanggalin sa website dahil ito ay ang tanging kaisa-isahang rehistradong wesbite. Mag-dagdag muna ng isang bagong website pagkatapos tanggalin na ang isang ito.",
"ExceptionEmptyName": "Ang pangalan ng website ay hindi maaring walang laman.",
- "ExceptionInvalidCurrency": "Ang currency \"%s\" ay hindi tama. Mangyarin ilagay ang tamang currency symbol (hal. %s).",
- "ExceptionInvalidIPFormat": "Ang IP upang ibukod ang \"%s\" ay walang wastong format ng IP (hal. %s).",
+ "ExceptionInvalidCurrency": "Ang currency \"%1$s\" ay hindi tama. Mangyarin ilagay ang tamang currency symbol (hal. %2$s).",
+ "ExceptionInvalidIPFormat": "Ang IP upang ibukod ang \"%1$s\" ay walang wastong format ng IP (hal. %2$s).",
"ExceptionInvalidTimezone": "Ang timezone \"%s\" ay hindi wasto. Mangyaring magpasok ng wastong timezone.",
"ExceptionInvalidUrl": "Ang url '%s' ay hindi isang tamang URL.",
"ExceptionNoUrl": "Dapat mong tukuyin kahit isang URL para sa website.",
@@ -46,7 +46,7 @@
"NotFound": "Walang nahanap para sa mga website",
"NoWebsites": "Wala kang anumang website na pamamahalaan.",
"OnlyOneSiteAtTime": "Maaari mo lamang i-edit ang isang website ng isang beses. Mangyaring I-save o Kanselahin iyong kasalukuyang mga pagbabago sa website %s.",
- "PiwikOffersEcommerceAnalytics": "Ang Piwik ay mayroon rin para sa advanced na Ecommerce Analytics tracking & pag-uulat. Matuto nang higit pa tungkol sa %s Ecommerce Analytics%s.",
+ "PiwikOffersEcommerceAnalytics": "Ang Piwik ay mayroon rin para sa advanced na Ecommerce Analytics tracking & pag-uulat. Matuto nang higit pa tungkol sa %1$s Ecommerce Analytics%2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Awtomatikong ibubukod ng Piwik ang mga karaniwang mga session parameter (%s).",
"SearchCategoryDesc": "Ang Piwik ay maaari ring masubaybayan ang mga kategorya ng Paghahanap para sa bawat keyword sa loob na paghahanap sa site.",
"SearchCategoryLabel": "Kategorya ng parameter",
@@ -55,14 +55,14 @@
"SearchKeywordParametersDesc": "Magpasok ng isang comma separated list ng mga pangalan ng lahat ng parameter ng query na naglalaman ng mga keyword sa paghahanap sa site.",
"SearchParametersNote": "Tandaan: ang mga Query parameters at kategorya ng paremeters ay maaari lamang gamitin sa website na may Site Search enabled ngunit hayaang walang mga nakalagay sa mga parameters na ito.",
"SearchParametersNote2": "Upang i-disable ang Site Search para sa mga bagong website iwanan ang dalawang field na ito ng walang laman",
- "SearchUseDefault": "Gamitin ang %sdefault%s na Site Search parameters.",
+ "SearchUseDefault": "Gamitin ang %1$sdefault%2$s na Site Search parameters.",
"SelectACity": "Pumili ng lungsod",
"SelectDefaultCurrency": "Maaari mong piliin ang currency upang i-set ng default para sa mga bagong website.",
"SelectDefaultTimezone": "Maaari mong piliin ang time zone upang piliin ng default para sa mga bagong website.",
"ShowTrackingTag": "Tingnan code ang tracking code",
"Sites": "Websites",
"SiteSearchUse": "Maaari mong gamitin ang Piwik upang sumubay-bay at mag ulat kung ano ang hinahanap ng iyong bisita sa iyong website.",
- "SuperUserAccessCan": "Ang user na may Super User access ay maaari rin na %s mag specify ng global settings%s para sa bagong website.",
+ "SuperUserAccessCan": "Ang user na may Super User access ay maaari rin na %1$s mag specify ng global settings%2$s para sa bagong website.",
"Timezone": "Time zone",
"TrackingSiteSearch": "Pag track sa panloob na paghahanap sa site",
"TrackingTags": "Ang tracking code para sa %s",
diff --git a/plugins/SitesManager/lang/uk.json b/plugins/SitesManager/lang/uk.json
index 9eac2a6812..3557821ede 100644
--- a/plugins/SitesManager/lang/uk.json
+++ b/plugins/SitesManager/lang/uk.json
@@ -12,8 +12,8 @@
"DeleteConfirm": "Видалити веб-сайт %s?",
"ExceptionDeleteSite": "Неможливо видалити цей сайт, так як це єдиний зареєстрований сайт. Додайте новий сайт, і після цього ви отримаєте можливість видалити цей.",
"ExceptionEmptyName": "Назва сайту не може бути порожною.",
- "ExceptionInvalidCurrency": "Валюта \"%s\" не вірна. Введіть вірне позначення валют (напр. %s)",
- "ExceptionInvalidIPFormat": "IP-адреса для виключення \"%s\" має неправильний формат IP адреси (напр. %s).",
+ "ExceptionInvalidCurrency": "Валюта \"%1$s\" не вірна. Введіть вірне позначення валют (напр. %2$s)",
+ "ExceptionInvalidIPFormat": "IP-адреса для виключення \"%1$s\" має неправильний формат IP адреси (напр. %2$s).",
"ExceptionInvalidTimezone": "Часовий пояс \"%s\" невірний. Введіть правильний часовий пояс.",
"ExceptionInvalidUrl": "URL-адреса невірна: \"%s\".",
"ExceptionNoUrl": "Ви маєте вказати хоча б одину URL-адресу для сайту.",
diff --git a/plugins/SitesManager/lang/vi.json b/plugins/SitesManager/lang/vi.json
index 59516d369e..3734423888 100644
--- a/plugins/SitesManager/lang/vi.json
+++ b/plugins/SitesManager/lang/vi.json
@@ -18,8 +18,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "Nếu bạn cần phải loại bỏ các đại lý khác nhau cho các trang web khác nhau, kiểm tra ô này, bấm lưu và %1$s thêm các đại lý người dùng %2$s trên .",
"ExceptionDeleteSite": "Nó không thể xóa trang web này vì nó là trang web chỉ đăng ký. Thêm một trang web mới đầu tiên, sau đó xóa nó.",
"ExceptionEmptyName": "Tên trang web không thể để trống.",
- "ExceptionInvalidCurrency": "Loại tiền tệ \"%s\" không hợp lệ. Xin vui lòng nhập một biểu tượng tiền tệ hợp lệ (ví dụ: %s)",
- "ExceptionInvalidIPFormat": "IP để loại trừ \"%s\" không có một định dạng IP hợp lệ (ví dụ: %s).",
+ "ExceptionInvalidCurrency": "Loại tiền tệ \"%1$s\" không hợp lệ. Xin vui lòng nhập một biểu tượng tiền tệ hợp lệ (ví dụ: %2$s)",
+ "ExceptionInvalidIPFormat": "IP để loại trừ \"%1$s\" không có một định dạng IP hợp lệ (ví dụ: %2$s).",
"ExceptionInvalidTimezone": "Múi giờ \"%s\" không hợp lệ. Hãy nhập múi giờ hợp lệ.",
"ExceptionInvalidUrl": "Url '%s' không phải là một URL hợp lệ.",
"ExceptionNoUrl": "Bạn phải chỉ định ít nhất một URL cho trang web.",
@@ -47,7 +47,7 @@
"NotFound": "Không có website được tìm thấy cho",
"NoWebsites": "Bạn không có trang web nào để quản trị",
"OnlyOneSiteAtTime": "Bạn chỉ có thể sửa một website tại một thời điểm. Hãy lưu hoặc hủy thay đổi hiện tại của bạn đến trang web %s.",
- "PiwikOffersEcommerceAnalytics": "Piwik cho phép theo dõi và báo cáo chi tiết với phân tích thương mại điện tử. Tìm hiểu thêm về phân tích thương mại điện tử %s%s.",
+ "PiwikOffersEcommerceAnalytics": "Piwik cho phép theo dõi và báo cáo chi tiết với phân tích thương mại điện tử. Tìm hiểu thêm về %1$sphân tích thương mại điện tử %2$s.",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik sẽ tự động loại bỏ các tham số phiên chung (%s).",
"SearchCategoryDesc": "Piwik cũng có thể theo dõi các danh mục tìm kiếm cho mỗi từ khóa tìm kiếm trang nội bộ.",
"SearchCategoryLabel": "Tham số Mục",
@@ -56,7 +56,7 @@
"SearchKeywordParametersDesc": "Nhập một danh sách ngăn bởi dấu phẩy của tất cả tên tham số truy vấn có chứa từ khóa trang web tìm kiếm.",
"SearchParametersNote": "Lưu ý: các tham số truy vấn và tham số Danh mục này sẽ chỉ được sử dụng cho các website có trang web tìm kiếm được kích hoạt nhưng đã để lại các tham số trống này.",
"SearchParametersNote2": "Để vô hiêu hóa trang web tìm kiếm cho trang web mới, để 2 trường này trống.",
- "SearchUseDefault": "Sử dụng %s mặc định %s các tham số trang tim kiếm",
+ "SearchUseDefault": "Sử dụng %1$s mặc định %2$s các tham số trang tim kiếm",
"SelectACity": "Chọn một thành phố",
"SelectDefaultCurrency": "Bạn có thể chọn tiền tệ để thiết lập mặc định cho một trang web mới.",
"SelectDefaultTimezone": "Bạn có thể chọn múi giờ để mặc định cho một trang web mới.",
diff --git a/plugins/SitesManager/lang/zh-cn.json b/plugins/SitesManager/lang/zh-cn.json
index 7f91fe76aa..131854fe47 100644
--- a/plugins/SitesManager/lang/zh-cn.json
+++ b/plugins/SitesManager/lang/zh-cn.json
@@ -18,8 +18,8 @@
"EnableSiteSpecificUserAgentExclude_Help": "如果不同的网站要排除不同的用户代理,选中这个复选框,点击保存并 %1$s增加上面的用户代理%2$s。",
"ExceptionDeleteSite": "不可能删除这个网站,因为它是唯一注册的网站!",
"ExceptionEmptyName": "网站名称不可为空!",
- "ExceptionInvalidCurrency": "货币 \"%s\" 不正确。请输入正确的货币符号(例如 %s)",
- "ExceptionInvalidIPFormat": "欲排除的 IP \"%s\" 地址格式不正确(例如 %s)。",
+ "ExceptionInvalidCurrency": "货币 \"%1$s\" 不正确。请输入正确的货币符号(例如 %2$s)",
+ "ExceptionInvalidIPFormat": "欲排除的 IP \"%1$s\" 地址格式不正确(例如 %2$s)。",
"ExceptionInvalidTimezone": "时区 \"%s\" 不正确。请输入正确的时区。",
"ExceptionInvalidUrl": "网址 '%s' 不正确!",
"ExceptionNoUrl": "您必须为此网站指定至少一个网址!",
@@ -47,7 +47,7 @@
"NotFound": "找不到网站",
"NoWebsites": "您没有任何网站可管理!",
"OnlyOneSiteAtTime": "每次只能修改一个网站,请保持或取消当前对网站 %s 的修改。",
- "PiwikOffersEcommerceAnalytics": "Piwik 可以使用高级电商分析和报表,了解更多的 %s 电商分析%s。",
+ "PiwikOffersEcommerceAnalytics": "Piwik 可以使用高级电商分析和报表,了解更多的 %1$s 电商分析%2$s。",
"PiwikWillAutomaticallyExcludeCommonSessionParameters": "Piwik 会自动排除常见的会话参数(%s)",
"SearchCategoryDesc": "Piwik 也可以统计每个站内搜索关键字的搜索分类。",
"SearchCategoryLabel": "分类参数",
@@ -56,7 +56,7 @@
"SearchKeywordParametersDesc": "输入用逗号分开的包含站内搜索关键字的所有搜索参数名称的列表。",
"SearchParametersNote": "提示: 搜索参数和分类参数仅用于启用了站内搜索但这些参数为空的网站。",
"SearchParametersNote2": "要禁用新站的站内搜索,这两个字段留空。",
- "SearchUseDefault": "使用 %s默认%s 的站内搜索参数",
+ "SearchUseDefault": "使用 %1$s默认%2$s 的站内搜索参数",
"SelectACity": "选择一个城市",
"SelectDefaultCurrency": "新网站可以选择默认的货币。",
"SelectDefaultTimezone": "新网站可以选择默认的时区。",
diff --git a/plugins/SitesManager/lang/zh-tw.json b/plugins/SitesManager/lang/zh-tw.json
index 6a4cd32d52..bdb8e17ef0 100644
--- a/plugins/SitesManager/lang/zh-tw.json
+++ b/plugins/SitesManager/lang/zh-tw.json
@@ -12,8 +12,8 @@
"DeleteConfirm": "你確定要刪除網站 %s 嗎?",
"ExceptionDeleteSite": "不可能刪除這個網站,因為它是唯一註冊的網站。請先增加新的網站,然後在刪除它。",
"ExceptionEmptyName": "網站名稱不可為空。",
- "ExceptionInvalidCurrency": "貨幣 \"%s\" 無效。請輸入正確的貨幣符號(例如 %s)",
- "ExceptionInvalidIPFormat": "欲排除的 IP \"%s\" 不符合有效的 IP 格式(例如 %s)。",
+ "ExceptionInvalidCurrency": "貨幣 \"%1$s\" 無效。請輸入正確的貨幣符號(例如 %2$s)",
+ "ExceptionInvalidIPFormat": "欲排除的 IP \"%1$s\" 不符合有效的 IP 格式(例如 %2$s)。",
"ExceptionInvalidTimezone": "時區 \"%s\" 無效。請輸入正確的時區。",
"ExceptionInvalidUrl": "此 URL 位址 '%s' 並非一個有效的 URL 位址。",
"ExceptionNoUrl": "你必須為此網站指定至少一個 URL 位址。",
diff --git a/plugins/SitesManager/templates/help/timezone-help.html b/plugins/SitesManager/templates/help/timezone-help.html
index a0fd96d099..0308b783b5 100644
--- a/plugins/SitesManager/templates/help/timezone-help.html
+++ b/plugins/SitesManager/templates/help/timezone-help.html
@@ -10,7 +10,7 @@
<br/>
- {{ 'SitesManager_UTCTimeIs'| translate : (utcTime | date : 'yyyy-MM-dd HH:mm:ss') }}
+ {{ 'SitesManager_UTCTimeIs'| translate : (utcTime | date : 'yyyy-MM-dd HH:mm:ss') }}
<br/>
diff --git a/plugins/SitesManager/templates/sites-list/site-fields.html b/plugins/SitesManager/templates/sites-list/site-fields.html
index dada85cc22..200e935e27 100644
--- a/plugins/SitesManager/templates/sites-list/site-fields.html
+++ b/plugins/SitesManager/templates/sites-list/site-fields.html
@@ -85,6 +85,7 @@
<div class="form-help">
{{ 'SitesManager_OnlyMatchedUrlsAllowedHelp' | translate }}
+ {{ 'SitesManager_OnlyMatchedUrlsAllowedHelpExamples' | translate }}
</div>
<label class="checkbox">
<input type="checkbox" ng-model="site.exclude_unknown_urls" ng-true-value="1" ng-false-value="0"> {{ 'SitesManager_OnlyMatchedUrlsAllowed' | translate:'':'' }}
diff --git a/plugins/TasksTimetable b/plugins/TasksTimetable
-Subproject 5ea1e7ab52db8f33782b297bf1386f2d86fbee5
+Subproject 813a8e3dc65c3c6cca088d7f3f358ebc71a0d4c
diff --git a/plugins/Transitions/lang/bg.json b/plugins/Transitions/lang/bg.json
index cac4559b09..494bfbf445 100644
--- a/plugins/Transitions/lang/bg.json
+++ b/plugins/Transitions/lang/bg.json
@@ -15,12 +15,12 @@
"LoopsInline": "%s страница се презарежда",
"NoDataForAction": "Няма информация за %s",
"OutgoingTraffic": "Изходящ трафик",
- "ShareOfAllPageviews": "Тази страница има %s разглеждания (от всички %s разглеждания)",
+ "ShareOfAllPageviews": "Тази страница има %1$s разглеждания (от всички %2$s разглеждания)",
"ToFollowingPages": "Към вътрешни страници",
"ToFollowingPagesInline": "%s за вътрешни страници",
"ToFollowingSiteSearches": "Външни търсения",
"ToFollowingSiteSearchesInline": "%s вътрешни търсения",
"XOfAllPageviews": "%s на всички показания за тази страница",
- "XOutOfYVisits": "%s (от %s)"
+ "XOutOfYVisits": "%1$s (от %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/ca.json b/plugins/Transitions/lang/ca.json
index 0f70fa5fc7..ba5c04c55c 100644
--- a/plugins/Transitions/lang/ca.json
+++ b/plugins/Transitions/lang/ca.json
@@ -16,12 +16,12 @@
"NoDataForAction": "No hi ha informació per %s",
"NoDataForActionDetails": "O l'acció no ha estat vista cap vegada durant el període %s o és invàlida.",
"OutgoingTraffic": "Tràfic surtint",
- "ShareOfAllPageviews": "Aquesta pàgina ha tingut %s visites (%s de totes les visites)",
+ "ShareOfAllPageviews": "Aquesta pàgina ha tingut %1$s visites (%2$s de totes les visites)",
"ToFollowingPages": "A pàgines internes",
"ToFollowingPagesInline": "%s a pàgines internes",
"ToFollowingSiteSearches": "Cerques internes",
"ToFollowingSiteSearchesInline": "%s cerques internes",
"XOfAllPageviews": "%s de totes les visualitzacions d'aquesta pàgina",
- "XOutOfYVisits": "%s (de %s)"
+ "XOutOfYVisits": "%1$s (de %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/cs.json b/plugins/Transitions/lang/cs.json
index 30790aff23..3f23cbf3ab 100644
--- a/plugins/Transitions/lang/cs.json
+++ b/plugins/Transitions/lang/cs.json
@@ -17,12 +17,12 @@
"NoDataForActionDetails": "Buď akce neměla za období %s žádné zobrazení stránky, nebo je neplatná.",
"OutgoingTraffic": "Odchozí provoz",
"PluginDescription": "V novém hlášení přechodů hlásí předchozí a následující akci pro každou URL, je dostupný přes novou ikonu v hlášení akcí.",
- "ShareOfAllPageviews": "Tato stránka měla %s zobrazení (%s všech zobrazení)",
+ "ShareOfAllPageviews": "Tato stránka měla %1$s zobrazení (%2$s všech zobrazení)",
"ToFollowingPages": "Na interní stránky",
"ToFollowingPagesInline": "%s na interní stránky",
"ToFollowingSiteSearches": "Interní vyhledávání",
"ToFollowingSiteSearchesInline": "%s interních vyhledávání",
"XOfAllPageviews": "%s ze všech zobrazení této stránky",
- "XOutOfYVisits": "%s (z %s)"
+ "XOutOfYVisits": "%1$s (z %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/da.json b/plugins/Transitions/lang/da.json
index 53ceb6c2d8..2bae9b5e0c 100644
--- a/plugins/Transitions/lang/da.json
+++ b/plugins/Transitions/lang/da.json
@@ -16,12 +16,12 @@
"NoDataForAction": "Der er ingen data for %s",
"NoDataForActionDetails": "Enten havde handlingen ingen sidevisninger i perioden %s eller den er ugyldig.",
"OutgoingTraffic": "Udgående trafik",
- "ShareOfAllPageviews": "Denne side havde %s sidevisninger (%s af alle sidevisninger)",
+ "ShareOfAllPageviews": "Denne side havde %1$s sidevisninger (%2$s af alle sidevisninger)",
"ToFollowingPages": "Til interne sider",
"ToFollowingPagesInline": "%s til interne sider",
"ToFollowingSiteSearches": "Interne søgninger",
"ToFollowingSiteSearchesInline": "%s interne søgninger",
"XOfAllPageviews": "%s af alle visninger af denne side",
- "XOutOfYVisits": "%s (ud af %s)"
+ "XOutOfYVisits": "%1$s (ud af %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/de.json b/plugins/Transitions/lang/de.json
index e0f27788ea..a14d88fd16 100644
--- a/plugins/Transitions/lang/de.json
+++ b/plugins/Transitions/lang/de.json
@@ -17,12 +17,12 @@
"NoDataForActionDetails": "Entweder hatte diese Aktion während des Zeitraums %s keine Seitenansichten oder sie ist ungültig.",
"OutgoingTraffic": "Ausgehender Traffic",
"PluginDescription": "Berichte über vergangene und zukünftige Aktionen für jede Seiten-URL in einem neuen Transitions-Bericht, aufrufbar im Aktionen-Bericht über ein neues Icon.",
- "ShareOfAllPageviews": "Diese Seite wurde %s mal angesehen (%s aller Seitenansichten)",
+ "ShareOfAllPageviews": "Diese Seite wurde %1$s mal angesehen (%2$s aller Seitenansichten)",
"ToFollowingPages": "Zu internen Seiten",
"ToFollowingPagesInline": "%s zu internen Seiten",
"ToFollowingSiteSearches": "Interne Suchen",
"ToFollowingSiteSearchesInline": "%s interne Suchen",
"XOfAllPageviews": "%s von allen Seitenansichten",
- "XOutOfYVisits": "%s (von insgesamt %s)"
+ "XOutOfYVisits": "%1$s (von insgesamt %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/el.json b/plugins/Transitions/lang/el.json
index 86409350c2..f30597667d 100644
--- a/plugins/Transitions/lang/el.json
+++ b/plugins/Transitions/lang/el.json
@@ -17,12 +17,12 @@
"NoDataForActionDetails": "Είτε η ενέργεια δεν είχε προβολές σελίδας (pageviews) κατά τη διάρκεια της περιόδου %s ή δεν είναι έγκυρη.",
"OutgoingTraffic": "Εξερχόμενη κίνηση",
"PluginDescription": "Αναφέρει προηγούμενες και επόμενες ενέργειες για κάθε σελίδα στην αναφορά για νέες Μεταβάσεις, διαθέσιμη στις αναφορές Ενεργειών από ένα νέο εικονίδιο.",
- "ShareOfAllPageviews": "Αυτή η σελίδα είχε %s προβολές σελίδων (%s από όλες τις προβολές σελίδων)",
+ "ShareOfAllPageviews": "Η σελίδα είχε %1$s αναγνώσεις (%2$s από όλες τις αναγνώσεις σελίδων)",
"ToFollowingPages": "Προς Εσωτερικές Σελίδες",
"ToFollowingPagesInline": "%s προς εσωτερικές σελίδες",
"ToFollowingSiteSearches": "Εσωτερικές Αναζητήσεις",
"ToFollowingSiteSearchesInline": "%s εσωτερικές αναζητήσεις",
"XOfAllPageviews": "%s από όλες τις προβολές αυτής της σελίδας",
- "XOutOfYVisits": "%s (από %s)"
+ "XOutOfYVisits": "%1$s (από %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/en.json b/plugins/Transitions/lang/en.json
index af45334071..1b0c7fc9ba 100644
--- a/plugins/Transitions/lang/en.json
+++ b/plugins/Transitions/lang/en.json
@@ -20,12 +20,12 @@
"NoDataForActionDetails": "Either the action had no pageviews during the period %s or it is invalid.",
"OutgoingTraffic": "Outgoing traffic",
"PluginDescription": "Reports previous and following actions for each page URL in a new Transitions report, available in the Actions reports via a new icon.",
- "ShareOfAllPageviews": "This page had %s pageviews (%s of all pageviews)",
+ "ShareOfAllPageviews": "This page had %1$s pageviews (%2$s of all pageviews)",
"ToFollowingPages": "To Internal Pages",
"ToFollowingPagesInline": "%s to internal pages",
"ToFollowingSiteSearches": "Internal Searches",
"ToFollowingSiteSearchesInline": "%s internal searches",
"XOfAllPageviews": "%s of all views of this page",
- "XOutOfYVisits": "%s (out of %s)"
+ "XOutOfYVisits": "%1$s (out of %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/es.json b/plugins/Transitions/lang/es.json
index 65c02dbdb0..c8c2722c3e 100644
--- a/plugins/Transitions/lang/es.json
+++ b/plugins/Transitions/lang/es.json
@@ -17,12 +17,12 @@
"NoDataForActionDetails": "O la acción no tuvo vistas de páginas durante el período %s o es inválida.",
"OutgoingTraffic": "Tráfico saliente",
"PluginDescription": "Anteriores informes y las siguientes acciones para cada URL de página en un nuevo informe Transiciones, disponible en los informes Acciones vía un nuevo ícono.",
- "ShareOfAllPageviews": "Esta página tuvo %s vistas de página (%s de todas las vistas de páginas)",
+ "ShareOfAllPageviews": "Esta página tuvo %1$s vistas de página (%2$s de todas las vistas de páginas)",
"ToFollowingPages": "A páginas internas",
"ToFollowingPagesInline": "%s a páginas internas",
"ToFollowingSiteSearches": "Búsquedas internas",
"ToFollowingSiteSearchesInline": "%s búsquedas internas",
"XOfAllPageviews": "%s de todas las vistas de esta página",
- "XOutOfYVisits": "%s (de %s)"
+ "XOutOfYVisits": "%1$s (de %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/et.json b/plugins/Transitions/lang/et.json
index 5f125d4798..f67589adf8 100644
--- a/plugins/Transitions/lang/et.json
+++ b/plugins/Transitions/lang/et.json
@@ -14,12 +14,12 @@
"LoopsInline": "%s lehe korduvat laadimist",
"NoDataForAction": "Tegevuse %s kohta puuduvad andmed",
"OutgoingTraffic": "Väljuv liiklus",
- "ShareOfAllPageviews": "See leht sai %s vaatamist (%s kõigist vaatamistest)",
+ "ShareOfAllPageviews": "See leht sai %1$s vaatamist (%2$s kõigist vaatamistest)",
"ToFollowingPages": "Sisemistele lehtedele",
"ToFollowingPagesInline": "%s läks sisemistele lehtedele",
"ToFollowingSiteSearches": "Sisemised otsingud",
"ToFollowingSiteSearchesInline": "%s sisemist otsingut",
"XOfAllPageviews": "%s kõigist antud lehe vaatamistest",
- "XOutOfYVisits": "%s (%s kõigist)"
+ "XOutOfYVisits": "%1$s (%2$s kõigist)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/fa.json b/plugins/Transitions/lang/fa.json
index df91ccd169..cb2db896bb 100644
--- a/plugins/Transitions/lang/fa.json
+++ b/plugins/Transitions/lang/fa.json
@@ -15,12 +15,12 @@
"LoopsInline": "%s بارگذاری مجدد صفحه",
"NoDataForAction": "هیچ داده ای وجود ندارد برای %s",
"OutgoingTraffic": "ترافیک خروجی",
- "ShareOfAllPageviews": "این صفحه %s بازدیدازصفحه دارد(%s از تمام بازدیدازصفحه ها)",
+ "ShareOfAllPageviews": "این صفحه %1$s بازدیدازصفحه دارد(%2$s از تمام بازدیدازصفحه ها)",
"ToFollowingPages": "به صفحه های داخلی",
"ToFollowingPagesInline": "%s به صفحه های داخلی",
"ToFollowingSiteSearches": "جستجوهای داخلی",
"ToFollowingSiteSearchesInline": "%s جستجوهای داخلی",
"XOfAllPageviews": "%s از همه ی بازدیدهای این صفحه",
- "XOutOfYVisits": "%s (از %s)"
+ "XOutOfYVisits": "%1$s (از %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/fi.json b/plugins/Transitions/lang/fi.json
index 01fa2d4235..246303c4df 100644
--- a/plugins/Transitions/lang/fi.json
+++ b/plugins/Transitions/lang/fi.json
@@ -16,12 +16,12 @@
"NoDataForAction": "%s:lle ei ole tietoja",
"NoDataForActionDetails": "Joko toiminnolle ei ole tietoja aikavälille %s tai toiminto on virheellinen.",
"OutgoingTraffic": "Lähtevä liikenne",
- "ShareOfAllPageviews": "Tällä sivulla on %s sivunavausta (%s kaikista)",
+ "ShareOfAllPageviews": "Tällä sivulla on %1$s sivunavausta (%2$s kaikista)",
"ToFollowingPages": "Sisäisille sivuille",
"ToFollowingPagesInline": "%s sisäisille sivuille",
"ToFollowingSiteSearches": "Sisäisiä hakuja",
"ToFollowingSiteSearchesInline": "%s sisäistä hakua",
"XOfAllPageviews": "%s kaikista tämän sivun katseluista",
- "XOutOfYVisits": "%s (%s:stä)"
+ "XOutOfYVisits": "%1$s (%2$s:stä)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/fr.json b/plugins/Transitions/lang/fr.json
index e0028e3265..40144865d8 100644
--- a/plugins/Transitions/lang/fr.json
+++ b/plugins/Transitions/lang/fr.json
@@ -17,12 +17,12 @@
"NoDataForActionDetails": "L'action n'a eu aucune visite de page durant la période %s ou bien elle est invalide.",
"OutgoingTraffic": "Trafic sortant",
"PluginDescription": "Rapporte les actions précédentes et suivantes pour chacune des URL's de page dans un nouveau rapport de Transitions, disponible depuis le rapports des Actions via un nouvel icône.",
- "ShareOfAllPageviews": "Cette page a eu %s affichages (%s de tous les affichages)",
+ "ShareOfAllPageviews": "Cette page a eu %1$s affichages (%2$s de tous les affichages)",
"ToFollowingPages": "Vers des pages internes",
"ToFollowingPagesInline": "%s vers des pages internes",
"ToFollowingSiteSearches": "Recherches internes",
"ToFollowingSiteSearchesInline": "%s recherches internes",
"XOfAllPageviews": "%s de toutes les pages vues",
- "XOutOfYVisits": "%s (de %s)"
+ "XOutOfYVisits": "%1$s (de %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/hi.json b/plugins/Transitions/lang/hi.json
index c38be90fc5..90d226d07e 100644
--- a/plugins/Transitions/lang/hi.json
+++ b/plugins/Transitions/lang/hi.json
@@ -16,12 +16,12 @@
"NoDataForAction": "%s के लिए कोई डेटा नहीं है",
"NoDataForActionDetails": "या तो कार्रवाई की अवधि %s के दौरान कोई पेज देखा गया था या यह अवैध है.",
"OutgoingTraffic": "निवर्तमान यातायात",
- "ShareOfAllPageviews": "यह पृष्ठ का %s पृष्ठ दृश्य (सभी पृष्ठ दृश्य का %s)किया था",
+ "ShareOfAllPageviews": "यह पृष्ठ का %1$s पृष्ठ दृश्य (सभी पृष्ठ दृश्य का %2$s)किया था",
"ToFollowingPages": "आंतरिक पृष्ठ",
"ToFollowingPagesInline": "%s आंतरिक पृष्ठ",
"ToFollowingSiteSearches": "आंतरिक खोजें",
"ToFollowingSiteSearchesInline": "%s आंतरिक खोजें",
"XOfAllPageviews": "इस पृष्ठ के सभी दृश्यों का %s",
- "XOutOfYVisits": "%s (बाहर %s)"
+ "XOutOfYVisits": "%1$s (बाहर %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/id.json b/plugins/Transitions/lang/id.json
index 8a0c64ea45..c9a2860398 100644
--- a/plugins/Transitions/lang/id.json
+++ b/plugins/Transitions/lang/id.json
@@ -16,12 +16,12 @@
"NoDataForAction": "Tidak tersedia data untuk %s",
"NoDataForActionDetails": "Tidak ada tindakan memiliki tampilan halaman selama periode %s atau ini tidak sahih.",
"OutgoingTraffic": "Lalu lintas keluar",
- "ShareOfAllPageviews": "Halaman ini memiliki %s tampilan halaman (%s dari semua tampilan halaman)",
+ "ShareOfAllPageviews": "Halaman ini memiliki %1$s tampilan halaman (%2$s dari semua tampilan halaman)",
"ToFollowingPages": "Menuju Halaman Dalam",
"ToFollowingPagesInline": "%s menuju halaman dalam",
"ToFollowingSiteSearches": "Pencarian Dalam",
"ToFollowingSiteSearchesInline": "%s pencarian dalam",
"XOfAllPageviews": "%s dari selruh tanpilan dari halaman ini",
- "XOutOfYVisits": "%s (di luar dari %s)"
+ "XOutOfYVisits": "%1$s (di luar dari %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/it.json b/plugins/Transitions/lang/it.json
index c1c76543b1..39961913f6 100644
--- a/plugins/Transitions/lang/it.json
+++ b/plugins/Transitions/lang/it.json
@@ -17,12 +17,12 @@
"NoDataForActionDetails": "O l'azione non ha avuto pagine viste durante il periodo di %s o non è valida.",
"OutgoingTraffic": "Traffico uscente",
"PluginDescription": "Restituisce le azioni precedenti e seguenti per ciascun URL di pagina in un nuovo report Transizioni, disponibile tra i report Azioni con una nuova icona.",
- "ShareOfAllPageviews": "Questa pagina ha %s visualizzazioni (%s di tutte le visualizzazioni)",
+ "ShareOfAllPageviews": "Questa pagina ha %1$s visualizzazioni (%2$s di tutte le visualizzazioni)",
"ToFollowingPages": "A Pagine Interne",
"ToFollowingPagesInline": "%s a pagine interne",
"ToFollowingSiteSearches": "Ricerche Interne",
"ToFollowingSiteSearchesInline": "%s ricerche interne",
"XOfAllPageviews": "%s di tutte le visualizzazioni di questa pagina",
- "XOutOfYVisits": "%s (su %s)"
+ "XOutOfYVisits": "%1$s (su %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/ja.json b/plugins/Transitions/lang/ja.json
index 90e2c11528..aad51e6ba8 100644
--- a/plugins/Transitions/lang/ja.json
+++ b/plugins/Transitions/lang/ja.json
@@ -17,12 +17,12 @@
"NoDataForActionDetails": "アクションが %s の期間ページビューが無かったか、無効です。",
"OutgoingTraffic": "送信トラフィック",
"PluginDescription": "新しいアイコンを通して Actions レポートで利用可能な、新しい Transitions レポートのそれぞれのページURL に対する遷移をレポートします。",
- "ShareOfAllPageviews": "このページは、%s ページビューでした ( 全ページビューの %s )",
+ "ShareOfAllPageviews": "このページは、%1$s ページビューでした ( 全ページビューの %2$s )",
"ToFollowingPages": "内部ページへ",
"ToFollowingPagesInline": "内部ページへの %s",
"ToFollowingSiteSearches": "内部検索",
"ToFollowingSiteSearchesInline": "%s 内部検索",
"XOfAllPageviews": "このページの全ビューの %s",
- "XOutOfYVisits": "(%s の内の) %s"
+ "XOutOfYVisits": "(%2$s の内の) %1$s"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/ko.json b/plugins/Transitions/lang/ko.json
index 1acc59cff6..77229645bb 100644
--- a/plugins/Transitions/lang/ko.json
+++ b/plugins/Transitions/lang/ko.json
@@ -17,12 +17,12 @@
"NoDataForActionDetails": "특정 동작은 %s을 하는 기간 동안 페이지뷰가 일어나지 않거나 유효하지 않습니다.",
"OutgoingTraffic": "나가는 트래픽",
"PluginDescription": "새로운 변화에 대한 보고서 내 각 페이지 URL에 대한 이전 및 다음의 보고서는 새 아이콘을 통한 동작 보고서에서 확인할 수 있습니다.",
- "ShareOfAllPageviews": "이 페이지의 페이지뷰 %s (전체 페이지뷰 수 %s)",
+ "ShareOfAllPageviews": "이 페이지의 페이지뷰 %1$s (전체 페이지뷰 수 %2$s)",
"ToFollowingPages": "내부 페이지로",
"ToFollowingPagesInline": "%s 내부 페이지",
"ToFollowingSiteSearches": "내부 검색",
"ToFollowingSiteSearchesInline": "%s 내부 검색",
"XOfAllPageviews": "이 페이지의 모든 보기 중 %s",
- "XOutOfYVisits": "%s (%s 나감)"
+ "XOutOfYVisits": "%1$s (%2$s 나감)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/lt.json b/plugins/Transitions/lang/lt.json
new file mode 100644
index 0000000000..ca4035da6c
--- /dev/null
+++ b/plugins/Transitions/lang/lt.json
@@ -0,0 +1,5 @@
+{
+ "Transitions": {
+ "FromPreviousSiteSearches": "Iš vidinės paieškos"
+ }
+} \ No newline at end of file
diff --git a/plugins/Transitions/lang/nb.json b/plugins/Transitions/lang/nb.json
index 67a4f32b49..984f4c32ed 100644
--- a/plugins/Transitions/lang/nb.json
+++ b/plugins/Transitions/lang/nb.json
@@ -17,12 +17,12 @@
"NoDataForActionDetails": "Enten har handlingen ingen sidevisninger i perioden %s eller så er den ugyldig.",
"OutgoingTraffic": "Utgående trafikk",
"PluginDescription": "Rapporterer forrige og neste handlinger for hver URL i en ny Overganger-rapport, tilgjengelig i Handlinger-rapporten og via et nytt ikon.",
- "ShareOfAllPageviews": "Denne siden hadde %s sidevisninger (%s av alle sidevisninger)",
+ "ShareOfAllPageviews": "Denne siden hadde %1$s sidevisninger (%2$s av alle sidevisninger)",
"ToFollowingPages": "Til interne sider",
"ToFollowingPagesInline": "%s til interne sider",
"ToFollowingSiteSearches": "Interne søk",
"ToFollowingSiteSearchesInline": "%s interne søk",
"XOfAllPageviews": "%s av alle besøk på denne siden",
- "XOutOfYVisits": "%s (av %s)"
+ "XOutOfYVisits": "%1$s (av %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/nl.json b/plugins/Transitions/lang/nl.json
index cb0b01e80f..621e66d06e 100644
--- a/plugins/Transitions/lang/nl.json
+++ b/plugins/Transitions/lang/nl.json
@@ -17,12 +17,12 @@
"NoDataForActionDetails": "Deze actie had geen paginaweergaves gedurende de periode %s, of is ongeldig.",
"OutgoingTraffic": "Uitgaand verkeer",
"PluginDescription": "Voor elke pagina URL in het Transities rapport zijn de voorgaande en volgende acties beschikbaar in de Acties rapportage met een nieuw icoontje.",
- "ShareOfAllPageviews": "Deze pagina had %s paginaweergaves (%s van alle paginaweergaves)",
+ "ShareOfAllPageviews": "Deze pagina had %1$s paginaweergaves (%2$s van alle paginaweergaves)",
"ToFollowingPages": "Naar Interne Pagina's",
"ToFollowingPagesInline": "%s naar interne pagina's",
"ToFollowingSiteSearches": "Interne Zoekopdrachten",
"ToFollowingSiteSearchesInline": "%s interne zoekopdrachten",
"XOfAllPageviews": "%s van alle weergaves van deze pagina",
- "XOutOfYVisits": "%s (van de %s)"
+ "XOutOfYVisits": "%1$s (van de %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/pl.json b/plugins/Transitions/lang/pl.json
index 07eb95002b..91a1aa43d1 100644
--- a/plugins/Transitions/lang/pl.json
+++ b/plugins/Transitions/lang/pl.json
@@ -11,6 +11,6 @@
"OutgoingTraffic": "Ruch wychodzący",
"ToFollowingSiteSearches": "Wyszukania Wewnętrzne",
"ToFollowingSiteSearchesInline": "%s wewnętrzne wyszukiwania",
- "XOutOfYVisits": "%s (z %s)"
+ "XOutOfYVisits": "%1$s (z %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/pt-br.json b/plugins/Transitions/lang/pt-br.json
index 6397a2899c..1337a9abf9 100644
--- a/plugins/Transitions/lang/pt-br.json
+++ b/plugins/Transitions/lang/pt-br.json
@@ -17,12 +17,12 @@
"NoDataForActionDetails": "Ou a ação não tinha visualizações de página durante o período de %s ou é inválido.",
"OutgoingTraffic": "O tráfego de saída",
"PluginDescription": "Informa ações anteriores e seguintes para cada URL da página em um novo relatório de Transições, disponível nos relatórios de Ações através de um novo ícone.",
- "ShareOfAllPageviews": "Esta página teve %s exibições (%s de todos as exibições)",
+ "ShareOfAllPageviews": "Esta página teve %1$s exibições (%2$s de todos as exibições)",
"ToFollowingPages": "Para páginas internas",
"ToFollowingPagesInline": "%s para páginas internas",
"ToFollowingSiteSearches": "Pesquisas internas",
"ToFollowingSiteSearchesInline": "%s pesquisas internas",
"XOfAllPageviews": "%s de todas as visualizações desta página",
- "XOutOfYVisits": "%s (fora de %s)"
+ "XOutOfYVisits": "%1$s (fora de %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/ro.json b/plugins/Transitions/lang/ro.json
index 1a8f4d00cb..83ec73f889 100644
--- a/plugins/Transitions/lang/ro.json
+++ b/plugins/Transitions/lang/ro.json
@@ -16,12 +16,12 @@
"NoDataForAction": "Nu este nici o data pentru %s",
"NoDataForActionDetails": "Fie acțiunea nu a avut nici o afișări de pagină în timpul perioadei%s sau este invalida.",
"OutgoingTraffic": "traficul de ieșire",
- "ShareOfAllPageviews": "Această pagină a avut vizualizări de %s pagini (%s din toate vizualizări de pagini)",
+ "ShareOfAllPageviews": "Această pagină a avut vizualizări de %1$s pagini (%2$s din toate vizualizări de pagini)",
"ToFollowingPages": "Catre paginile interne",
"ToFollowingPagesInline": "%s la pagini interne",
"ToFollowingSiteSearches": "Cautari interne",
"ToFollowingSiteSearchesInline": "%s căutări interne",
"XOfAllPageviews": "%s toate vizualizarile de pe aceasta pagina",
- "XOutOfYVisits": "%s (din %s)"
+ "XOutOfYVisits": "%1$s (din %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/ru.json b/plugins/Transitions/lang/ru.json
index 75ce05c052..a5cd6f62f2 100644
--- a/plugins/Transitions/lang/ru.json
+++ b/plugins/Transitions/lang/ru.json
@@ -16,12 +16,12 @@
"NoDataForAction": "Нет данныз для %s",
"NoDataForActionDetails": "Не было совершено таких действий %s или они неправильны.",
"OutgoingTraffic": "Исходящий трафик",
- "ShareOfAllPageviews": "У этой страницы %s просмотров (%s из просмотров всех страниц)",
+ "ShareOfAllPageviews": "У этой страницы %1$s просмотров (%2$s из просмотров всех страниц)",
"ToFollowingPages": "на внутренние страницы",
"ToFollowingPagesInline": "%s на внутренние страницы",
"ToFollowingSiteSearches": "внутренних поисков по сайту",
"ToFollowingSiteSearchesInline": "%s внутренних поисков по сайту",
"XOfAllPageviews": "%s из всех просмотров страницы",
- "XOutOfYVisits": "%s (из %s)"
+ "XOutOfYVisits": "%1$s (из %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/sl.json b/plugins/Transitions/lang/sl.json
index 2fb5767b8a..1169266cc7 100644
--- a/plugins/Transitions/lang/sl.json
+++ b/plugins/Transitions/lang/sl.json
@@ -8,11 +8,11 @@
"FromSearchEngines": "S spletnih iskalnikov",
"NoDataForAction": "Ni podatkov za %s",
"OutgoingTraffic": "Izhodni promet",
- "ShareOfAllPageviews": "Ta stran je imela %s ogledov strani (%s od vseh ogledov strani)",
+ "ShareOfAllPageviews": "Ta stran je imela %1$s ogledov strani (%2$s od vseh ogledov strani)",
"ToFollowingPages": "Na notranje strani",
"ToFollowingPagesInline": "%s na notranje strani",
"ToFollowingSiteSearches": "Notranja iskanja",
"ToFollowingSiteSearchesInline": "%s notranjih iskanj",
- "XOutOfYVisits": "%s (od %s)"
+ "XOutOfYVisits": "%1$s (od %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/sr.json b/plugins/Transitions/lang/sr.json
index 51b1d55e2f..e5f227c4b1 100644
--- a/plugins/Transitions/lang/sr.json
+++ b/plugins/Transitions/lang/sr.json
@@ -17,12 +17,12 @@
"NoDataForActionDetails": "Ili akcija nema nijedan pregled stranica za dati period %s ili ona nije validna.",
"OutgoingTraffic": "Odlazni saobraćaj",
"PluginDescription": "Izveštaj o prethodnoj i sledećoj akciji za svaki URL",
- "ShareOfAllPageviews": "Ova stranica ima %s pregleda (%s od svih pregleda)",
+ "ShareOfAllPageviews": "Ova stranica ima %1$s pregleda (%2$s od svih pregleda)",
"ToFollowingPages": "Ka internim stranicama",
"ToFollowingPagesInline": "%s ka drugim stranicama",
"ToFollowingSiteSearches": "Pretraživanja sajta",
"ToFollowingSiteSearchesInline": "%s pretraživanja sajta",
"XOfAllPageviews": "%s od svih pregleda ove strane",
- "XOutOfYVisits": "%s (od %s)"
+ "XOutOfYVisits": "%1$s (od %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/sv.json b/plugins/Transitions/lang/sv.json
index dc33d2e808..7e318dfdac 100644
--- a/plugins/Transitions/lang/sv.json
+++ b/plugins/Transitions/lang/sv.json
@@ -16,12 +16,12 @@
"NoDataForAction": "Det finns inga data för %s",
"NoDataForActionDetails": "Antingen har händelsen inte haft några sidvisningar under perioden %s eller så är den ogiltig.",
"OutgoingTraffic": "Utgående trafik",
- "ShareOfAllPageviews": "Den här sidan hade %s sidvisningar (%s av alla sidvisningar)",
+ "ShareOfAllPageviews": "Den här sidan hade %1$s sidvisningar (%2$s av alla sidvisningar)",
"ToFollowingPages": "Till interna sidor",
"ToFollowingPagesInline": "%s till interna sidor",
"ToFollowingSiteSearches": "Interna Sökningar",
"ToFollowingSiteSearchesInline": "%s interna sökningar",
"XOfAllPageviews": "%s av alla sidvisningar",
- "XOutOfYVisits": "%s (av %s)"
+ "XOutOfYVisits": "%1$s (av %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/tl.json b/plugins/Transitions/lang/tl.json
index de57b8ea32..1da24d18da 100644
--- a/plugins/Transitions/lang/tl.json
+++ b/plugins/Transitions/lang/tl.json
@@ -16,12 +16,12 @@
"NoDataForAction": "Walang data para sa %s",
"NoDataForActionDetails": "Maaaring ang aksyon ay walang pageview sa panahon ng %s o ito ay hindi wasto.",
"OutgoingTraffic": "Mga outgoing na traffic",
- "ShareOfAllPageviews": "Ang pahinang ito ay may %s na pageview (%s ng lahat ng mga pageview)",
+ "ShareOfAllPageviews": "Ang pahinang ito ay may %1$s na pageview (%2$s ng lahat ng mga pageview)",
"ToFollowingPages": "Sa mga panloob na mga pahina",
"ToFollowingPagesInline": "%s panloob na mga pahina",
"ToFollowingSiteSearches": "Panloob na paghahanap",
"ToFollowingSiteSearchesInline": "panloob na paghahanap %s",
"XOfAllPageviews": "%s ng lahat ng mga tanawin ng pahinang ito",
- "XOutOfYVisits": "%s (mula sa %s)"
+ "XOutOfYVisits": "%1$s (mula sa %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/vi.json b/plugins/Transitions/lang/vi.json
index 484c864088..cfa74fecff 100644
--- a/plugins/Transitions/lang/vi.json
+++ b/plugins/Transitions/lang/vi.json
@@ -16,12 +16,12 @@
"NoDataForAction": "Không có dữ liệu cho %s",
"NoDataForActionDetails": "Hay là hành động không có lượt xem trang trong thời gian %s hoặc không hợp lệ.",
"OutgoingTraffic": "Lưu lượng truy cập đi",
- "ShareOfAllPageviews": "Trang này đã có %s lượt xem trang (%s của tất cả các lượt xem trang)",
+ "ShareOfAllPageviews": "Trang này đã có %1$s lượt xem trang (%2$s của tất cả các lượt xem trang)",
"ToFollowingPages": "Tới các trang nội bộ",
"ToFollowingPagesInline": "%s tới các trang nội bộ",
"ToFollowingSiteSearches": "Các tìm kiếm nội bộ",
"ToFollowingSiteSearchesInline": "%s Các tìm kiếm nội bộ",
"XOfAllPageviews": "%s của tất cả các lượt xem của trang này",
- "XOutOfYVisits": "%s (trong số %s)"
+ "XOutOfYVisits": "%1$s (trong số %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/Transitions/lang/zh-cn.json b/plugins/Transitions/lang/zh-cn.json
index 61a7bc5e29..a0aa96af78 100644
--- a/plugins/Transitions/lang/zh-cn.json
+++ b/plugins/Transitions/lang/zh-cn.json
@@ -17,12 +17,12 @@
"NoDataForActionDetails": "本活动在 %s 期间没有被访问过或者不正确。",
"OutgoingTraffic": "出口流量",
"PluginDescription": "以前的报告并为每个页面的URL在一个新的过渡报告,在操作报告中提供一个新的图标来通过操作。",
- "ShareOfAllPageviews": "本页面被访问 %s 次 (总访问量的 %s)",
+ "ShareOfAllPageviews": "本页面被访问 %1$s 次 (总访问量的 %2$s)",
"ToFollowingPages": "转向站内页面",
"ToFollowingPagesInline": "%s 次转向站内页面",
"ToFollowingSiteSearches": "站内搜索",
"ToFollowingSiteSearchesInline": "%s 次站内搜索",
"XOfAllPageviews": "%s 的本页浏览量",
- "XOutOfYVisits": "%s (共 %s)"
+ "XOutOfYVisits": "%1$s (共 %2$s)"
}
} \ No newline at end of file
diff --git a/plugins/UserCountry/lang/cs.json b/plugins/UserCountry/lang/cs.json
index 821069f8d4..1cb446b3c0 100644
--- a/plugins/UserCountry/lang/cs.json
+++ b/plugins/UserCountry/lang/cs.json
@@ -35,7 +35,7 @@
"GeoIpLocationProviderDesc_Pecl1": "Tento poskytovatel umístění používá GeoIP databázi a PECl modul k přesnému a efektivnímu nalezení umístění vašich návštěvníků.",
"GeoIpLocationProviderDesc_Pecl2": "Tento poskytovatel nemá žádná omezení, takže to je ten, kterého doporučujeme používat.",
"GeoIpLocationProviderDesc_Php1": "Tento poskytovatel umístění je nejjednodušší na instalaci, protože nevyžaduje žádnou konfiguraci serveru (ideální pro sdílené hostingy). K přesnému určení umístění návštěvníků používá GeoIP databázi a MaxMind php API.",
- "GeoIpLocationProviderDesc_Php2": "Pokud mají vaše webové stránky velký provoz, můžete zjistit, že je tento poskytovatel polohy pomalý. V takovém případě nainstalujte %1$srozšíření PECl%2$s nebo %3$sserverový modul%4$s.",
+ "GeoIpLocationProviderDesc_Php2": "Pokud má váš web velký provoz, můžete zjistit, že je tento poskytovatel polohy pomalý. V takovém případě nainstalujte %1$srozšíření PECl%2$s nebo %3$sserverový modul%4$s.",
"GeoIpLocationProviderDesc_ServerBased1": "Tento poskytovatel umístění využívá GeoIP modul, který byl instalován ve vašem HTTP serveru. Tento poskytovatel je přesný a rychlý, ale může být použit pouze s %1$snormálním sledování prohlížečů.%2$s",
"GeoIpLocationProviderDesc_ServerBased2": "Pokud musíte importovat logy nebo dělat něco jiného, co vyžaduje nastavování IP adres, použijte %1$sPECl implementaci GeoIP (doporučeno%2$s nebo %3$sPHP implementaci GeoIP.%4$s",
"GeoIpLocationProviderDesc_ServerBasedAnonWarn": "Poznámka: Anonimizace IP adres nemá vliv na umístění hlášené tímto poskytovatelem. Před jeho používáním ověřte, že to neodporuje žádným zákonům.",
diff --git a/plugins/UserCountry/lang/en.json b/plugins/UserCountry/lang/en.json
index b859e89af7..772342fa36 100644
--- a/plugins/UserCountry/lang/en.json
+++ b/plugins/UserCountry/lang/en.json
@@ -95,4 +95,4 @@
"UpdaterWillRunNext": "It is next scheduled to run on %s.",
"WidgetLocation": "Visitor Location"
}
-}
+} \ No newline at end of file
diff --git a/plugins/UserCountry/lang/lt.json b/plugins/UserCountry/lang/lt.json
index 2a39977d59..569e72fa91 100644
--- a/plugins/UserCountry/lang/lt.json
+++ b/plugins/UserCountry/lang/lt.json
@@ -9,6 +9,9 @@
"country_o1": "Kita šalis",
"DistinctCountries": "%s atskirti šalis",
"DownloadingDb": "Atsiunčiama %s",
+ "GeoIPDatabases": "GeoIP duomenų bazės",
+ "HowToInstallApacheModule": "Kaip man įdiegti Apache skirtą GeoIP modulį?",
+ "IWantToDownloadFreeGeoIP": "Aš noriu atsisiųsti nemokamą GeoIP duomenų bazę...",
"Latitude": "Platuma",
"Location": "Vietovė",
"Longitude": "Ilguma",
diff --git a/plugins/UserCountryMap/Controller.php b/plugins/UserCountryMap/Controller.php
index a93a9622f5..b86d45f1f8 100644
--- a/plugins/UserCountryMap/Controller.php
+++ b/plugins/UserCountryMap/Controller.php
@@ -225,15 +225,20 @@ class Controller extends \Piwik\Plugin\Controller
$params['format'] = 'json';
$params['showRawMetrics'] = 1;
if (empty($params['segment'])) {
- $segment = \Piwik\API\Request::getRawSegmentFromRequest();
+ $segment = Request::getRawSegmentFromRequest();
if (!empty($segment)) {
- $params['segment'] = urldecode($segment);
+ $params['segment'] = $segment;
}
}
+ if (!empty($params['segment'])) {
+ $params['segment'] = urldecode($params['segment']);
+ }
+
if ($encode) {
$params = json_encode($params);
}
+
return $params;
}
diff --git a/plugins/UserCountryMap/lang/el.json b/plugins/UserCountryMap/lang/el.json
index a9a442b8be..ae8c041332 100644
--- a/plugins/UserCountryMap/lang/el.json
+++ b/plugins/UserCountryMap/lang/el.json
@@ -15,7 +15,7 @@
"Regions": "Περιοχές",
"Searches": "%s αναζητήσεις",
"SecondsAgo": "πριν %s δευτερόλεπτα",
- "ShowingVisits": "Επισκέψεις με γεωτοποθεσία από τις τελευταίες",
+ "ShowingVisits": "Επισκέψεις με γεωτοποθεσία στα τελευταία",
"Unlocated": "<b>%s<\/b> %p από τις επισκέψεις από %c δεν ήταν δυνατόν να χαρακτηριστούν με γεωτοποθεσία.",
"VisitorMap": "Χάρτης Επισκεπτών",
"WorldWide": "Παγκοσμίως",
diff --git a/plugins/UserCountryMap/lang/sv.json b/plugins/UserCountryMap/lang/sv.json
index 9896f51c71..7ce29ed627 100644
--- a/plugins/UserCountryMap/lang/sv.json
+++ b/plugins/UserCountryMap/lang/sv.json
@@ -1,5 +1,6 @@
{
"UserCountryMap": {
+ "PluginDescription": "Denna plugin ger dig widgetarna besökskarta och realtidskarta. Notera: Kräver aktiverad UserCountry-plugin.",
"AndNOthers": "och %s andra",
"Cities": "Städer",
"Countries": "Länder",
@@ -17,6 +18,7 @@
"ShowingVisits": "Geolokaliserade besök de senaste",
"Unlocated": "<b>%s<\/b> %p av besöken från %c kunde inte geolokaliseras.",
"VisitorMap": "Besökskarta",
- "WorldWide": "Hela världen"
+ "WorldWide": "Hela världen",
+ "WithUnknownCity": "%s med okänd stad"
}
} \ No newline at end of file
diff --git a/plugins/UserLanguage/lang/lt.json b/plugins/UserLanguage/lang/lt.json
index ca65af2cc1..43fc797cb2 100644
--- a/plugins/UserLanguage/lang/lt.json
+++ b/plugins/UserLanguage/lang/lt.json
@@ -1,5 +1,6 @@
{
"UserLanguage": {
+ "BrowserLanguage": "Naršyklės kalba",
"LanguageCode": "Kalbos kodas"
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/API.php b/plugins/UsersManager/API.php
index ec900ff65d..c1f5965f96 100644
--- a/plugins/UsersManager/API.php
+++ b/plugins/UsersManager/API.php
@@ -342,7 +342,7 @@ class API extends \Piwik\Plugin\API
}
/**
- * Returns the user information (login, password md5, alias, email, date_registered, etc.)
+ * Returns the user information (login, password hash, alias, email, date_registered, etc.)
*
* @param string $userLogin the user login
*
@@ -359,7 +359,7 @@ class API extends \Piwik\Plugin\API
}
/**
- * Returns the user information (login, password md5, alias, email, date_registered, etc.)
+ * Returns the user information (login, password hash, alias, email, date_registered, etc.)
*
* @param string $userEmail the user email
*
@@ -783,15 +783,12 @@ class API extends \Piwik\Plugin\API
* Generates a unique MD5 for the given login & password
*
* @param string $userLogin Login
- * @param string $md5Password MD5ied string of the password
- * @throws Exception
+ * @param string $md5Password hashed string of the password (using current hash function; MD5-named for historical reasons)
* @return string
*/
public function getTokenAuth($userLogin, $md5Password)
{
- if (strlen($md5Password) != 32) {
- throw new Exception(Piwik::translate('UsersManager_ExceptionPasswordMD5HashExpected'));
- }
+ UsersManager::checkPasswordHash($md5Password, Piwik::translate('UsersManager_ExceptionPasswordMD5HashExpected'));
return md5($userLogin . $md5Password);
}
diff --git a/plugins/UsersManager/UsersManager.php b/plugins/UsersManager/UsersManager.php
index 344faf107a..d8a038eb56 100644
--- a/plugins/UsersManager/UsersManager.php
+++ b/plugins/UsersManager/UsersManager.php
@@ -157,6 +157,20 @@ class UsersManager extends \Piwik\Plugin
return md5($password);
}
+ /**
+ * Checks the password hash length. Used as a sanity check.
+ *
+ * @param string $passwordHash The password hash to check.
+ * @param string $exceptionMessage Message of the exception thrown.
+ * @throws Exception if the password hash length is incorrect.
+ */
+ public static function checkPasswordHash($passwordHash, $exceptionMessage)
+ {
+ if (strlen($passwordHash) != 32) { // MD5 hash length
+ throw new Exception($exceptionMessage);
+ }
+ }
+
public function getClientSideTranslationKeys(&$translationKeys)
{
$translationKeys[] = "General_OrCancel";
diff --git a/plugins/UsersManager/javascripts/usersManager.js b/plugins/UsersManager/javascripts/usersManager.js
index eb0452013c..a05e602c35 100644
--- a/plugins/UsersManager/javascripts/usersManager.js
+++ b/plugins/UsersManager/javascripts/usersManager.js
@@ -272,7 +272,7 @@ $(document).ready(function () {
newRowId = 'row' + newRowId;
$($.parseHTML(' <tr id="' + newRowId + '">\
- <td><input id="useradd_login" placeholder="login" size="10" /></td>\
+ <td><input id="useradd_login" placeholder="username" size="10" /></td>\
<td><input id="useradd_password" placeholder="password" size="10" /></td>\
<td><input id="useradd_email" placeholder="email@domain.com" size="15" /></td>\
<td><input id="useradd_alias" placeholder="alias" size="15" /></td>\
diff --git a/plugins/UsersManager/lang/am.json b/plugins/UsersManager/lang/am.json
index cc061ae06d..e2ce9981a8 100644
--- a/plugins/UsersManager/lang/am.json
+++ b/plugins/UsersManager/lang/am.json
@@ -4,7 +4,6 @@
"Alias": "ተለዋጭ ስም",
"AllWebsites": "ሁሉንም ድር ጣቢያዎች",
"ApplyToAllWebsites": "በሁሉም ድር ጣቢያዎች ላይ ተግብር",
- "ChangeAllConfirm": "እርግጠኛ ነህ '%s' የሁሉንም ድር ጣቢያዎች ፈቃድ መቀየር ትፈልጋለህ?",
"DeleteConfirm": "እርግጠኛ ነህ ተጠቃሚዎቹን መሰረዝ ትፈልጋለህ %s?",
"Email": "ኢ-ሜይል",
"ExceptionAccessValues": "የግቤት መድረሻ ከሚከተሉት አንዱ እሴት ሊኖረው ይገባል: [ %s ]",
@@ -13,9 +12,6 @@
"ExceptionEditAnonymous": "ያልታወቀው ተጠቃሚን መሰረዝ ወይም አርትእ አይቻልም። በፒዊክ ያልገባን ተጤቃሚ ለመግለፅ ይጠቅማል። ለምሳሌ የርስዎን ስታቲስቲክ 'የትይታ' ፈቃድ 'ላልታወቀ' ተጠቃሚ በመስጠት ግልፅ ማድረግ ትችላለህ።",
"ExceptionEmailExists": "በዚህ ኢ-ሜይል ተጠቃሚ '%s'አለ.",
"ExceptionInvalidEmail": "ኢ-ሜይሉ ትክክለኛ ቅርፀት የለውም",
- "ExceptionInvalidLoginFormat": "ገባ በ %1$s እና %2$s በ ቁምፊ መካከል መሆን አለበት እንዲሁም ፊደላት፣ቁጥሮች ወይም ቁምፊ ብቻ መያዝ አለበት '_' ወይም '-' ወይም '.'",
- "ExceptionLoginExists": "ግባ '%s' አስቀድሞ ማለት.",
- "MainDescription": "የትኞቹ ተጠቃሚዎች የትኛው በድር ጣቢያህ ላይ የፒዊክ መድረሻ እንዳላቸው ወስን። በሁሉም ድር ጣቢያዎች ላይ ፈቃዳቸውን በአንድ ጊዜ ማዘጋጀት ይቻላል።",
"ManageAccess": "መድረሻ መንጅ",
"MenuUsers": "ተጠቃሚዎች",
"PrivAdmin": "አስተዳዳሪ",
diff --git a/plugins/UsersManager/lang/ar.json b/plugins/UsersManager/lang/ar.json
index dbf2d4f923..9ccbc9fb4d 100644
--- a/plugins/UsersManager/lang/ar.json
+++ b/plugins/UsersManager/lang/ar.json
@@ -4,7 +4,6 @@
"Alias": "اللقب",
"AllWebsites": "كافة المواقع",
"ApplyToAllWebsites": "تطبيق على كافة المواقع",
- "ChangeAllConfirm": "هل ترغب حقاً في تعديل صلاحيات '%s' في كافة المواقع؟",
"ClickHereToDeleteTheCookie": "انقر هنا لحذف الكوكيز وليتتبع Piwik زياراتك",
"DeleteConfirm": "هل ترغب حقاً في حذف المستخدم %s؟",
"Email": "البريد الإلكتروني",
@@ -14,15 +13,12 @@
"ExceptionEditAnonymous": "لا يمكن تحرير أو حذف المستخدم \"مجهول\"، فهو يستخدم من قبل Piwik لتعريف المستخدم الذي لم يقم بتسجيل الدخول بعد. على سبيل المثال، يمكنك جعل صفحة الإحصائيات عامة من خلال منح المستخدم \"مجهول\" صلاحيات \"المشاهدة\".",
"ExceptionEmailExists": "المستخدم بعنوان البريد '%s' موجود مسبقاً.",
"ExceptionInvalidEmail": "صيغة البريد الإلكتروني غير صحيحة",
- "ExceptionInvalidLoginFormat": "اسم المستخدم يجب أن يكون بين %1$s و %2$s رمزاً ويتضمن الحروف، الأرقام والرموز \"_\" أو \"-\" أو \".\" أو \"@\" أو \"+\" فقط.",
"ExceptionInvalidPassword": "يجب أن يكون طول كلمة المرور بين %1$s و %2$s رمزاً.",
- "ExceptionLoginExists": "اسم المستخدم '%s' موجود مسبقاً.",
"ExceptionPasswordMD5HashExpected": "يتوقع UsersManager.getTokenAuth كلمة مرور مشفرة باستخدام MD5 (طولها 32 رمزاً). الرجاء استدعاء الدالة md5() لكلمة المرور قبل استدعاء هذه الدالة.",
"ExceptionUserDoesNotExist": "المستخدم '%s' غير موجود.",
"ExcludeVisitsViaCookie": "استثني زياراتك باستخدام Cookies",
"ForAnonymousUsersReportDateToLoadByDefault": "للمستخدمين المجهولين، حدد تاريخ التقرير",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "إذا كنت ترغب في تغيير كلمة المرور، اكتب واحدة جديدة، أو اتركها فارغة لعدم تغييرها.",
- "MainDescription": "قرر أي المستخدمين لديه أي صلاحيات في Piwik. يمكنك أيضاً إعداد الصلاحيات لكل موقع على حدة أو لكل المواقع دفعة واحدة.",
"ManageAccess": "إدارة صلاحيات الوصول",
"MenuAnonymousUserSettings": "إعدادات المستخدمين المجهولين",
"MenuUsers": "المستخدمون",
@@ -40,7 +36,7 @@
"UsersManagementMainDescription": "أنشئ متسخدم جديد أو قم بتحديث مستخدم قائم. يمكنك أن تضبط صلاحياتهم بالأعلى.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "عندما لا يسجل المستخدمون دخولهم ويزورون Piwik،فسيمكنهم الوصول إلى",
"YourUsernameCannotBeChanged": "لا يمكن تغيير اسم المستخدم الخاص بك.",
- "YourVisitsAreIgnoredOnDomain": "%s زياراتك يتم تجاهلها في Piwik%s %s(تم العثور على كوكيز التجاهل في متصفحك).",
- "YourVisitsAreNotIgnored": "%s لا يتم تجاهل زياراتك في Piwik%s (كوكيز التجاهل غير موجودة في متصفحك)."
+ "YourVisitsAreIgnoredOnDomain": "%1$s زياراتك يتم تجاهلها في Piwik%2$s %3$s(تم العثور على كوكيز التجاهل في متصفحك).",
+ "YourVisitsAreNotIgnored": "%1$s لا يتم تجاهل زياراتك في Piwik%2$s (كوكيز التجاهل غير موجودة في متصفحك)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/be.json b/plugins/UsersManager/lang/be.json
index 46ff5f96ff..717bab0ab3 100644
--- a/plugins/UsersManager/lang/be.json
+++ b/plugins/UsersManager/lang/be.json
@@ -4,7 +4,6 @@
"Alias": "Аліас",
"AllWebsites": "Усе сайты",
"ApplyToAllWebsites": "Ужыць да ўсіх сайтаў",
- "ChangeAllConfirm": "Вы сапраўды жадаеце змяніць правы '%s' на ўсе вэбсайты?",
"ChangePasswordConfirm": "Зменяючы парол, вы таксама зменяеце token_auth карыстальніка. Вы сапраўды жадаеце працягнуць?",
"ClickHereToDeleteTheCookie": "Націсніце тут, каб выдаліць cookie і пачаць адсочванне вашых наведванняў Piwik",
"ClickHereToSetTheCookieOnDomain": "Націсніце тут, каб усталяваць cookie, які выключыць адсочванне вашых наведванняў на вэб-сайтах з Piwik на %s",
@@ -15,15 +14,12 @@
"ExceptionEditAnonymous": "Ананімны карыстач не можа быць выдалены. Ён неабходзен Piwik для ідэнтыфікацыі карыстачоў, якія не ўвайшлі ў сістэму. Дапушчальна, вы можаце зрабіць статыстыку публічнай, падаючы права 'Прагляд' ананімнаму карыстачу.",
"ExceptionEmailExists": "Карыстач з Email '%s' ужо існуе.",
"ExceptionInvalidEmail": "Email няправільнага фармату",
- "ExceptionInvalidLoginFormat": "Лагін павінен быць даўжынёй ад %1$s да %2$s знакаў, а таксама ўтрымоўваць толькі літары, лічбы ці знакі '_', '-', '.'",
"ExceptionInvalidPassword": "Даўжыня пароля павінна быць паміж %1$s і %2$s знакаў.",
- "ExceptionLoginExists": "Лагін '%s' ужо існуе.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth партабуе MD5-хэшаваны пароль ( даужыней ў 32 знака). Калі ласка, запытайце md5() функцыю перад выклікам гэтага метаду.",
"ExceptionUserDoesNotExist": "Карыстач '%s' не існуе.",
"ExcludeVisitsViaCookie": "Сключыць вашыя наведванні выкарыстоўваючы cookie",
"ForAnonymousUsersReportDateToLoadByDefault": "Дата справаздачы для загрузкі па змаўчанні, для ананімных карыстальнікаў",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Калі вы жадаеце змяніць пароль, то ўвядзіце новы. У адваротным выпадку пакіньце поле пустым.",
- "MainDescription": "Пакажыце, якія карыстачы маюць доступ да Piwik на Вашым сайце. Таксама Вы можаце задаць правы доступу на ўсе сайты.",
"ManageAccess": "Кіраванне правамі дазволу",
"MenuAnonymousUserSettings": "Ананімныя карыстацкія наладкі",
"MenuUsers": "Карыстачы",
@@ -41,7 +37,7 @@
"UsersManagementMainDescription": "Стварэнне новых карыстачоў ці рэдагаванне існуючых. Таксама Вы можаце задаць правы дазволу для карыстача.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Калі карыстальнікі не аўтарызаваны і наведваюць Piwik, яны павінны атрымліваць доступ да",
"YourUsernameCannotBeChanged": "Ваша імя карыстальніка не можа быць зменена.",
- "YourVisitsAreIgnoredOnDomain": "%sВашы наведванні ігнаруюцца Piwik на %s %s (Piwik знайшоў ў вашым браўзэры ігнаруючыя cookie).",
- "YourVisitsAreNotIgnored": "%sВашы наведванні не ігнаруюцца Piwik%s (Piwik не знайшоў ў вашым браўзэры ігнаруючыя cookie)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sВашы наведванні ігнаруюцца Piwik на %2$s %3$s (Piwik знайшоў ў вашым браўзэры ігнаруючыя cookie).",
+ "YourVisitsAreNotIgnored": "%1$sВашы наведванні не ігнаруюцца Piwik%2$s (Piwik не знайшоў ў вашым браўзэры ігнаруючыя cookie)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/bg.json b/plugins/UsersManager/lang/bg.json
index 1cd539b54c..855b45c501 100644
--- a/plugins/UsersManager/lang/bg.json
+++ b/plugins/UsersManager/lang/bg.json
@@ -6,7 +6,6 @@
"AnonymousUserHasViewAccess": "Забележка: потребител %1$s има %2$s достъп до този сайт.",
"AnonymousUserHasViewAccess2": "Аналитичните доклади и информацията за посетителите, са публично видими.",
"ApplyToAllWebsites": "Запомни за всички сайтове",
- "ChangeAllConfirm": "Сигурен ли сте, че искате да промените на '%s' правата за всички сайтове?",
"ChangePasswordConfirm": "Промяната на паролата ще промени и токена за верификация на потребителя. Желаете ли да продължите?",
"ClickHereToDeleteTheCookie": "Натиснете тук, за да изтриете бисквитката и Piwik да отчита Вашите посещения",
"ClickHereToSetTheCookieOnDomain": "Натиснете тук, за да зададете бисквитка, която ще Ви гарантира, че Вашите посещения няма да се отчитат от Piwik в %s",
@@ -20,9 +19,7 @@
"ExceptionEditAnonymous": "Анонимният потребител не може да бъде редактиран или изтрит. Piwik по този начин дефинира в система потребители, които не са влезли. Например можете да направите данните на брояча ви публични, като зададете 'преглед' права на 'анонимен' потребител.",
"ExceptionEmailExists": "Потребител с имейл '%s' вече съществува.",
"ExceptionInvalidEmail": "Е-пощата, който сте въвели не е валиден.",
- "ExceptionInvalidLoginFormat": "Потребителското име трябва да бъде между %1$s и %2$s символа дълго и може да съдържа само букви, цифри и\/или символите '_' и\/или '-' и\/или '.'",
"ExceptionInvalidPassword": "Дължината на паролата трябва да бъде между %1$s и %2$s символа.",
- "ExceptionLoginExists": "Потребител с име '%s' вече съществува.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth очаква MD5-хеширана парола (32 символа дълъг низ). Моля, извикайте md5() функцията на паролата преди да извикате този метод.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Премахването на права на привилигирован потребител за потребител '%s' не е възможно.",
"ExceptionUserDoesNotExist": "Потребителя '%s' не съществува.",
@@ -32,7 +29,6 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Ако желаете да промените паролата си, въведете нова. В противен случай оставете полето празно.",
"InjectedHostCannotChangePwd": "В момента вие посещавате страница от неизвестен хост(%1$s). Не можете да смените паролата, преди да отстраните този проблем.",
"LastSeen": "Последно видяно",
- "MainDescription": "Можете да управлявате правата на потребителите в Piwik, които да имат достъп до статистиките на вашия сайт. Също така можете да зададете права над всички сайтове.",
"ManageAccess": "Управление на правата",
"MenuAnonymousUserSettings": "Настройки на анонимните потребители",
"MenuUsers": "Потребители",
@@ -55,7 +51,7 @@
"UsersManagementMainDescription": "Създайте нови потребители или управлявайте вече съществуващи. Също така и можете да задавате правата за достъп.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Когато потребителите не са влезли и посетят Piwik, те се нуждаят от достъп",
"YourUsernameCannotBeChanged": "Потребителското име не може да се променя.",
- "YourVisitsAreIgnoredOnDomain": "%sВашите посещения са игнорирани от Piwik в %s %s (Piwik игнорира бисквитката, намерена във Вашият браузър).",
- "YourVisitsAreNotIgnored": "%sВашите посещения не се игнорират от Piwik %s(Бисквитката за игнориране на Вашите посещения, не е открита във Вашият браузър)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sВашите посещения са игнорирани от Piwik в %2$s %3$s (Piwik игнорира бисквитката, намерена във Вашият браузър).",
+ "YourVisitsAreNotIgnored": "%1$sВашите посещения не се игнорират от Piwik %2$s(Бисквитката за игнориране на Вашите посещения, не е открита във Вашият браузър)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/ca.json b/plugins/UsersManager/lang/ca.json
index 8ed17dd8c4..9b0ec65585 100644
--- a/plugins/UsersManager/lang/ca.json
+++ b/plugins/UsersManager/lang/ca.json
@@ -4,7 +4,6 @@
"Alias": "Àlies",
"AllWebsites": "Tots els llocs",
"ApplyToAllWebsites": "Aplica a tots els llocs",
- "ChangeAllConfirm": "Realment voleu canviar els permisos de '%s' a tots els llocs web?",
"ChangePasswordConfirm": "Canviar la contrasenya implica canviar el toquen d'autenticació del 'usuari. Esteu segurs que voleu continuar?",
"ClickHereToDeleteTheCookie": "Feu click aquí per eliminar la galeta i permetre al Piwik rastrejar les vostres visites.",
"ClickHereToSetTheCookieOnDomain": "Feu click aquí per guardar una galeta que exclourà les vostres visitis al Piwik de %s",
@@ -17,15 +16,12 @@
"ExceptionEditAnonymous": "L'usuari anònim no es pot editar o esborrar. El Piwik el fa servir per als usuaris que no han iniciat encara la sessió. Per exemple, podeu fer públiques les vostres estadístiques garantint el permís 'vista' a l'usuari 'anonymous' (anònim).",
"ExceptionEmailExists": "La direcció de correu-e '%s' ja està en un altre compte.",
"ExceptionInvalidEmail": "La direcció de correu-e no té un format vàlid.",
- "ExceptionInvalidLoginFormat": "El nom d'usuari ha de tenir una longitud d'entre %1$s i %2$s caràcters i estar format únicament per lletres, xifres o els caràcters '_', '-' o '.'",
"ExceptionInvalidPassword": "La longitud de la contrasenya ha de estar entre %1$s i %2$s caràcters.",
- "ExceptionLoginExists": "L'usuari '%s' ja existeix.",
"ExceptionUserDoesNotExist": "L'usuari '%s' no existeix.",
"ExcludeVisitsViaCookie": "Exclou les teues visites utilitzant cookies",
"ForAnonymousUsersReportDateToLoadByDefault": "Pels usuaris anònims, introduïu la data dels informes per defecte",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Si voleu canviar la contrasenya teclegeu-n'hi una de nova, sinó deixeu-ho en blanc.",
"InjectedHostCannotChangePwd": "Actualment esteu visitan amb un host desconegut (%1$s). No podeu canviar la vostra contrasenya fins que corregiu aquest problema.",
- "MainDescription": "Decidiu quin tipus d'accés té cada usuari al Piwik. També podeu configurar tots els llocs web de cop.",
"ManageAccess": "Gestiona els permisos",
"MenuAnonymousUserSettings": "Preferències de l'usuari anònim",
"MenuUsers": "Usuaris",
@@ -44,7 +40,7 @@
"UsersManagementMainDescription": "Creeu nous usuaris o actualitzeu els existents. Podeu configurar els seus permisos a dalt.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Quan un usuari no esta identificat i visita el Piwik, han d'accedir",
"YourUsernameCannotBeChanged": "No es pot canviar el vostre nom d'usuari",
- "YourVisitsAreIgnoredOnDomain": "%sLes vostres visites són ignorades pel Piwik %s %s (la galeta d'ignorància del Piwik s'ha trobat al vostre navegador).",
- "YourVisitsAreNotIgnored": "%sLes vostres visites no són ignorades pel Piwik%s (la galeta d'ignorància del Piwik no s'ha trobat al vostre navegador)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sLes vostres visites són ignorades pel Piwik %2$s %3$s (la galeta d'ignorància del Piwik s'ha trobat al vostre navegador).",
+ "YourVisitsAreNotIgnored": "%1$sLes vostres visites no són ignorades pel Piwik%2$s (la galeta d'ignorància del Piwik no s'ha trobat al vostre navegador)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/cs.json b/plugins/UsersManager/lang/cs.json
index 80aab2ca4c..8cae69b171 100644
--- a/plugins/UsersManager/lang/cs.json
+++ b/plugins/UsersManager/lang/cs.json
@@ -7,37 +7,43 @@
"AnonymousUserHasViewAccess": "Poznámka: %1$s uživatel má právo k přístupu k %2$s",
"AnonymousUserHasViewAccess2": "Vaše analytická hlášení a informace o návštěvnících jsou veřejně dostupná.",
"ApplyToAllWebsites": "Použít na všechny weby",
- "ChangeAllConfirm": "Jste si jistí, že chcete změnit '%s' oprávnění pro všechny weby?",
+ "ChangeAllConfirm": "Opravdu chcete uživateli '%s' povolit přístup ke všem webům?",
"ChangePasswordConfirm": "Změna hesla také změní uživatelův token_auth. Opravdu chcete pokračovat?",
"ClickHereToDeleteTheCookie": "Klinětě zde pro vymazání cookie a zaznamenávání vaších návštěv",
"ClickHereToSetTheCookieOnDomain": "Klikněte zde pro nastavení cookie, která vynechá vaše návštěvy na webech monitorováných Piwikem na %s",
- "ConfirmGrantSuperUserAccess": "Opravdu chcete uživateli %s povolit super uživatelský přístup?",
- "ConfirmProhibitMySuperUserAccess": "%s, opravdu chcete odstranit svůjvlastn í super uživatelský přístup? Přijdete o všechna oprávnění a o přístup k datům stránek a budete odhlášen z Piwiku.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Opravdu chcete odstranit super uživatelský přístup pro %s? Tento uživatel přijde o všechna práva a o přístup ke všem stránkám. Nezapomeňte mu povolit přístup k těm, které potřebuje, je-li to nutné.",
+ "ConfirmGrantSuperUserAccess": "Opravdu chcete uživateli %s povolit super-uživatelský přístup?",
+ "ConfirmProhibitMySuperUserAccess": "%s, opravdu chcete odstranit svůjvlastn í super-uživatelský přístup? Přijdete o všechna oprávnění a o přístup k datům stránek a budete odhlášen z Piwiku.",
+ "ConfirmProhibitOtherUsersSuperUserAccess": "Opravdu chcete odstranit super-uživatelský přístup pro '%s'? Tento uživatel přijde o všechna práva a o přístup ke všem stránkám. Nezapomeňte mu poté povolit přístup k těm které potřebuje, je-li to nutné.",
"DeleteConfirm": "Jste si jistí, že chcete vymazat uživatele %s?",
- "Email": "Email",
- "EmailYourAdministrator": "%1$sPošlete administrátorovi email o tomto problému%2$s.",
+ "Email": "E-mail",
+ "EmailYourAdministrator": "%1$sPošlete administrátorovi e-mail o tomto problému%2$s.",
+ "EnterUsernameOrEmail": "Zadejte uživatelské jméno nebo e-mailovou adresu",
"ExceptionAccessValues": "Parametr přístupu musí mít jednu z následujících hodnot: [ %s ]",
"ExceptionAdminAnonymous": "Nemůžete dát 'admin' přístup 'anonymous' uživateli.",
"ExceptionDeleteDoesNotExist": "Uživatel '%s' neexistuje a proto nemůže být vymazán.",
"ExceptionDeleteOnlyUserWithSuperUserAccess": "Smazání uživatele %s není možné.",
"ExceptionEditAnonymous": "'Anonymous' uživatel nemůže být upraven, nebo vymazán. Je použit Piwikem k definici uživatele, který ještě není přihlášen. Například můžete zveřejnit vaše statistiky udělením oprávnění 'view' uživateli 'anonymous'.",
- "ExceptionEmailExists": "Uživatel s emailem '%s' již existuje.",
- "ExceptionInvalidEmail": "Email nemá platný formát.",
- "ExceptionInvalidLoginFormat": "Přihlašovací jméno musí obsahovat mezi %1$s a %2$s znaky a obsahovat pouze písmena, čísla, nebo znaky '_' nebo '-' nebo '.'",
+ "ExceptionEmailExists": "Uživatel s e-mailem '%s' již existuje.",
+ "ExceptionInvalidEmail": "E-mail nemá platný formát.",
+ "ExceptionInvalidLoginFormat": "Uživatelské jméno musí být v rozmezí %1$s až %2$s znaků a obsahovat pouze písmena, čísla, či následující znaky '_' '-' '.' '@' '+'",
"ExceptionInvalidPassword": "Délka hesla musí být mezi %1$s a %2$s znaky.",
- "ExceptionLoginExists": "Uživatelské jméno '%s' již existuje.",
+ "ExceptionLoginExists": "Uživatel '%s' již existuje.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth očekává heslo v podobě MD5 hashe (32 znaků dlouhého řetězce). Prosím nejprve zavoltejte metodu md5() na tomto hesle.",
- "ExceptionRemoveSuperUserAccessOnlySuperUser": "Odstranění super uživatelského přístupu uživateli %s není možné.",
- "ExceptionSuperUserAccess": "Tento uživatel již má super uživatelský přístup, takže má přístup k datům všech stránek. Můžete super uživatelský přístup odstranit a zkusit to znovu.",
+ "ExceptionRemoveSuperUserAccessOnlySuperUser": "Odebrání super-uživatelského přístupu uživateli %s není možné.",
+ "ExceptionSuperUserAccess": "Tento uživatel již má super-uživatelský přístup, takže má přístup k datům všech stránek. Můžete super uživatelský přístup odstranit a zkusit to znovu.",
"ExceptionUserDoesNotExist": "Uživatel '%s' neexistuje.",
- "ExceptionYouMustGrantSuperUserAccessFirst": "Musí zůstat alespoň jeden uživatel se super uživatelským přístupem. Nejdříve ho někomu přidělte.",
+ "ExceptionYouMustGrantSuperUserAccessFirst": "Musí zůstat alespoň jeden uživatel se super-uživatelským přístupem. Nejdříve ho někomu přidělte.",
+ "ExceptionUserHasViewAccessAlready": "Tento uživatel má již přístup k této webové stránce.",
+ "ExceptionNoValueForUsernameOrEmail": "Zadejte prosím uživatelské jméno nebo e-mailovou adresu.",
"ExcludeVisitsViaCookie": "Vynechat vaše navštěvy pomocí cookie",
"ForAnonymousUsersReportDateToLoadByDefault": "Datum hlášení, které se má načíst jako výchozí pro anonymní uživatele",
+ "GiveViewAccess": "Povolit přístup pro čtení",
+ "GiveViewAccessTitle": "Povolí existujícímu uživateli zobrazování hlášení pro %s",
+ "GiveViewAccessInstructions": "Pro přiřazení práv k zobrazení %s existujícímu uživateli, zadejte jeho uživatelské jméno nebo e-mailovou adresu",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Pokud chcete změnit heslo, zapiště jej. Jinak jej nevyplňujte.",
"InjectedHostCannotChangePwd": "Aktuálně navštěvujete Piwik s neznámým hostitelem %1$s. Dokud tento problém nevyřešíte, nemůžete změnit heslo.",
"LastSeen": "Naposledy spatřen",
- "MainDescription": "Nastavení, kteří uživatelé mají přístup k Piwik statistikám na vaších stránkách. Můžete také nastavit oprávnění ke všem stránkám najednou.",
+ "MainDescription": "Rozhodněte, kteří uživatelé mají přístup k vašim webům. Můžete také povolit přístup ke všem webům najednou volbou \"Použít na všechny weby\" z výběru webů.",
"ManageAccess": "Správa přístupu",
"MenuAnonymousUserSettings": "Nastavení anonymního uživatele",
"MenuUsers": "Uživatelé",
@@ -46,15 +52,15 @@
"PersonalSettings": "Osobní nastavení",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Poznámka: Nemůžete měnit nastavení v této sekci, protože žádná z vašich stránek nemůže být zobrazena anonymním uživatelem.",
"NoUsersExist": "Zatím nejsou žádní uživatelé.",
- "PluginDescription": "Správa uživatelů vám umožňuje přidávat nové uživatele, upravovat existující a přiřazovat práva ke správě nebo zobrazení webových stránek.",
+ "PluginDescription": "Správa uživatelů vám umožňuje přidávat nové uživatele, upravovat existující a přidávat oprávnění k zobrazování nebo správě webových stránek.",
"PrivAdmin": "Administrátor",
"PrivNone": "Žádné oprávnění",
"PrivView": "Zobrazit",
"ReportDateToLoadByDefault": "Datum hlášení, které se má načíst jako výchozí",
"ReportToLoadByDefault": "Hlášení, které se má načíst jako výchozí",
- "SuperUserAccessManagement": "Spravovat super uživatelský přístup",
- "SuperUserAccessManagementGrantMore": "Zde můžete přidělit super uživatelský přístup jiným uživatelům Piwiku. Používejte tuto funkci opatrně.",
- "SuperUserAccessManagementMainDescription": "Super uživatelé mají nejvyšší oprávnění. Mohou vykonávat všechny administrativní operace, jako je přidávání stránek k monitorování, přidávání uživatelů, změna uživatelských oprávnění, povolování a zakazování zásuvných modulů, dokonce jejich instalace z obchodu.",
+ "SuperUserAccessManagement": "Spravovat super-uživatelský přístup",
+ "SuperUserAccessManagementGrantMore": "Zde můžete přidělovat super-uživatelský přístup jiným uživatelům Piwiku. Používejte tuto funkci opatrně.",
+ "SuperUserAccessManagementMainDescription": "Super-uživatelé mají nejvyšší oprávnění. Mohou vykonávat všechny administrativní operace, jako je přidávání stránek k monitorování, přidávání uživatelů, změna uživatelských oprávnění, povolování a zakazování zásuvných modulů a dokonce jejich instalace z obchodu.",
"TheLoginScreen": "Přihlašovací obrazovka",
"ThereAreCurrentlyNRegisteredUsers": "Aktuálně je %s registrovaných uživatelů.",
"TypeYourPasswordAgain": "Zapiště vaše nové heslo znova",
@@ -63,7 +69,7 @@
"UsersManagementMainDescription": "Vytvořte nové uživatele, nebo aktualizujte existující. Níže můžete nastavit jejich oprávnění.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Když uživatelé nejsou přihlášeni do Piwiku, mohou přistupovat k",
"YourUsernameCannotBeChanged": "Vaše uživatelské jméno nemůže být změněno",
- "YourVisitsAreIgnoredOnDomain": "%sVaše návštěvy jsou vynechávány Piwikem na %s %s (cookie pro vynechání byla nalezena ve vašem prohlížeči).",
- "YourVisitsAreNotIgnored": "%sVaše návštěvy nejsou vynechávány Piwikem%s (cookie pro vynechání nebyla nalezena ve vašem prohlížeči)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sVaše návštěvy jsou vynechávány Piwikem na %2$s %3$s (cookie pro vynechání byla nalezena ve vašem prohlížeči).",
+ "YourVisitsAreNotIgnored": "%1$sVaše návštěvy nejsou vynechávány Piwikem%2$s (cookie pro vynechání nebyla nalezena ve vašem prohlížeči)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/da.json b/plugins/UsersManager/lang/da.json
index 428a8998fa..3cac5ca9ea 100644
--- a/plugins/UsersManager/lang/da.json
+++ b/plugins/UsersManager/lang/da.json
@@ -7,13 +7,11 @@
"AnonymousUserHasViewAccess": "Bemærk: %1$s bruger har %2$s adgang til hjemmesiden.",
"AnonymousUserHasViewAccess2": "Analyserapporter og besøgendes oplysninger er offentligt tilgængelige.",
"ApplyToAllWebsites": "Tilføj til alle hjemmesider",
- "ChangeAllConfirm": "Bekræft ændring af '%s' tilladelse på alle hjemmesiderne?",
"ChangePasswordConfirm": "Ændring af adgangskoden vil også ændre brugerens token_auth. Vil du fortsætte?",
"ClickHereToDeleteTheCookie": "Klik her for at slette cookie og få Piwik til at spore dine besøg",
"ClickHereToSetTheCookieOnDomain": "Klik her for at sætte en cookie og udeluk egne besøg på hjemmesider der spores af Piwik på %s",
"ConfirmGrantSuperUserAccess": "Vil du at give '%s' Superbruger adgang? Advarsel: brugeren vil have adgang til alle hjemmesider og vil være i stand til at udføre administrative opgaver.",
"ConfirmProhibitMySuperUserAccess": "%s, vil du virkelig fjerne din egen superbruger adgang? Du mister alle tilladelser og adgang til alle hjemmesider og vil blive logget ud af Piwik.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Vil du fjerne superbruger adgang fra '%s'? Brugeren vil miste alle tilladelser og adgang til alle hjemmesider. Sørg for at indstille tilladelser til nødvendige hjemmesider bagefter, hvis det er nødvendigt.",
"DeleteConfirm": "Bekræft sletning af bruger %s?",
"Email": "E-mail",
"EmailYourAdministrator": "%1$sE-mail din administrator om dette problem%2$s.",
@@ -24,9 +22,7 @@
"ExceptionEditAnonymous": "Anonyme brugere kan ikke redigeres eller slettet. Anvendes af Piwik til at definere en bruger, som ikke er blevet logget på endnu. F. eks. kan du gøre statistikken offentlig ved at give 'se' adgang til 'anonym' bruger",
"ExceptionEmailExists": "Bruger med e-mail '%s' findes allerede.",
"ExceptionInvalidEmail": "E-mailadressen er ikke i gyldigt format.",
- "ExceptionInvalidLoginFormat": "Brugernavn skal være mellem %1$s og %2$s tegn og kan kun indeholde bogstaver, tal og tegnene '_' eller '-' eller '.' eller '@' eller '+'",
"ExceptionInvalidPassword": "Længden på adgangskoden skal være mellem %1$s og %2$s tegn.",
- "ExceptionLoginExists": "Brugernavn '%s' eksisterer allerede.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth forventer et MD5-hashet kodeord (32 tegn lang streng). Kald md5() funktionen på kodeordet, før denne metode kaldes.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Det er ikke muligt at fjerne superbruger adgang f0r brugeren '%s'.",
"ExceptionSuperUserAccess": "Brugeren har superbrugeradgang og har allerede tilladelse til at få adgang til og ændre alle hjemmesider i Piwik. Du kan fjerne superbrugeradgang fra brugeren, og prøve igen.",
@@ -37,7 +33,6 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Hvis du ønsker at ændre adgangskode skriv en ny. Ellers lad være blank.",
"InjectedHostCannotChangePwd": "Du besøger med en ukendt vært (%1$s). Du kan ikke ændre din adgangskode, før problemet er løst.",
"LastSeen": "Sidst set",
- "MainDescription": "Bestem hvilke brugere der har hvilken Piwik adgang til hjemmesiderne. Adgang kan også sættes på alle hjemmesider på en gang.",
"ManageAccess": "Administrer adgang",
"MenuAnonymousUserSettings": "Anonym bruger indstilling",
"MenuUsers": "Brugere",
@@ -46,7 +41,6 @@
"PersonalSettings": "Personlige indstillinger",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Bemærk: Indstillingerne kan ikke ændres i denne del, fordi der ikke er en hjemmeside, der kan tilgås af den anonyme bruger.",
"NoUsersExist": "Der er endnu ingen brugere.",
- "PluginDescription": "Brugeradministration kan tilføje nye brugere, redigere eksisterende brugere og tildele dem rettigheder til at få vist eller administrere hjemmesider.",
"PrivAdmin": "Administration",
"PrivNone": "Ingen adgang",
"PrivView": "Vis",
@@ -63,7 +57,7 @@
"UsersManagementMainDescription": "Opret nye brugere eller opdater eksisterende. Efterfølgende kan tilladelser ændres.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Når ingen brugere er logget på Piwik bør de tilgå",
"YourUsernameCannotBeChanged": "Brugernavnet kan ikke ændres.",
- "YourVisitsAreIgnoredOnDomain": "%sDine besøg ignoreres af Piwik på %s %s (Piwik ignorer cookie blev fundet i netlæseren).",
- "YourVisitsAreNotIgnored": "%sDine besøg bliver ikke ignoreret af Piwik%s (Piwik ignorer cookie blev ikke fundet i netlæseren)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sDine besøg ignoreres af Piwik på %2$s %3$s (Piwik ignorer cookie blev fundet i netlæseren).",
+ "YourVisitsAreNotIgnored": "%1$sDine besøg bliver ikke ignoreret af Piwik%2$s (Piwik ignorer cookie blev ikke fundet i netlæseren)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/de.json b/plugins/UsersManager/lang/de.json
index 7f5ef26861..e1ce9fd356 100644
--- a/plugins/UsersManager/lang/de.json
+++ b/plugins/UsersManager/lang/de.json
@@ -7,16 +7,15 @@
"AnonymousUserHasViewAccess": "Hinweis: Der Benutzer %1$s hat %2$s Zugriff auf diese Website.",
"AnonymousUserHasViewAccess2": "Ihre Analytiks-Berichte und Besucherinformationen sind öffentlich einsehbar.",
"ApplyToAllWebsites": "Für alle Websites anwenden",
- "ChangeAllConfirm": "Sollen '%s' Berechtigungen für alle Websites wirklich geändert werden?",
"ChangePasswordConfirm": "Das Ändern des Kennworts ändert ebenso das token_auth des Benutzers. Wirklich fortfahren?",
"ClickHereToDeleteTheCookie": "Klicken Sie hier, um das Cookie zu löschen und Ihre Besuche wieder zu zählen",
"ClickHereToSetTheCookieOnDomain": "Klicken Sie hier, um ein Cookie zu setzen, damit Ihre Besuche auf Websites ignoriert werden, die Piwik auf %s trackt.",
"ConfirmGrantSuperUserAccess": "Wollen Sie wirklich '%s' Hauptadministrator-Berechtigungen gewähren? Warnung: Der Nutzer wird Zugriff zu allen Websites haben und in der Lage sein, administrative Tätigkeiten durchzuführen.",
"ConfirmProhibitMySuperUserAccess": "%s, wollen Sie wirklich ihre eigenen Hauptadministrator-Berechtigungen entfernen? Sie werden alle Berechtigungen und Zugriff zu allen Websites verlieren und von Piwik abgemeldet werden.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Wollen Sie wirklich dem Nutzer '%s' Hauptadministrator-Berechtigungen entziehen? Der Nutzer wird alle Berechtigungen und Zugriff zu allen Websites verlieren. Bitte vergeben Sie danach, wenn notwendig, die Berechtigungen zu benötigten Websites.",
"DeleteConfirm": "Soll der Benutzer %s wirklich gelöscht werden?",
"Email": "E-Mail",
"EmailYourAdministrator": "%1$sBitte berichten Sie diesen Fehler ihrem Administrator via E-Mail%2$s.",
+ "EnterUsernameOrEmail": "Geben Sie einen Benutzernamen oder eine E-Mail-Adresse ein",
"ExceptionAccessValues": "Der Parameter access muss einen der folgenden Werte enthalten: [ %s ]",
"ExceptionAdminAnonymous": "Das 'admin'-Recht kann nicht an 'anonymous' Benutzer vergeben werden.",
"ExceptionDeleteDoesNotExist": "Der Benutzer '%s' existiert nicht und kann daher auch nicht gelöscht werden.",
@@ -24,7 +23,7 @@
"ExceptionEditAnonymous": "Der anonyme Benutzer kann nicht bearbeitet oder gelöscht werden. Er wird von Piwik benutzt, um einen Benutzer zu definieren, der sich noch nicht angemeldet hat. Zum Beispiel können Sie Ihre Statistiken öffentlich machen, indem Sie dem Benutzer 'anonymous' das Recht 'view' geben.",
"ExceptionEmailExists": "Ein Benutzer mit der E-Mail-Adresse '%s' existiert bereits.",
"ExceptionInvalidEmail": "Die E-Mail-Adresse hat ein ungültiges Format.",
- "ExceptionInvalidLoginFormat": "Das Login muss zwischen %1$s und %2$s Zeichen lang sein und darf nur Buchstaben, Zahlen oder die Zeichen '_' oder '-' oder '.' enthalten.",
+ "ExceptionInvalidLoginFormat": "Der Benutzername muss zwischen %1$s und %2$s Zeichen lang sein und darf nur Buchstaben, Zahlen oder die Zeichen '_', '-', '.', '@' oder '+' enthalten.",
"ExceptionInvalidPassword": "Das Passwort muss zwischen %1$s und %2$s Zeichen lang sein.",
"ExceptionLoginExists": "Der Benutzername '%s' existiert bereits.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth erwartet ein MD5-verschlüsseltes Passwort (32 Zeichen). Bitte wenden Sie die md5()-Funktion auf das Passwort an, bevor Sie diese Methode aufrufen.",
@@ -32,12 +31,13 @@
"ExceptionSuperUserAccess": "Dieser Nutzer hat bereits Hauptadministrator-Berechtigungen und Erlaubnis, alle Websites in Piwik aufzurufen und zu bearbeiten. Sie können den Super User Zugriff von diesem Nutzer entfernen und es im Anschluss noch einmal versuchen.",
"ExceptionUserDoesNotExist": "Der Benutzer '%s' existiert nicht.",
"ExceptionYouMustGrantSuperUserAccessFirst": "Es muss mindestens ein Hauptadministrator existieren. Bitte geben Sie zuerst einem anderen Nutzer Hauptadministrator-Berechtigungen.",
+ "ExceptionUserHasViewAccessAlready": "Dieser Benutzer hat bereits Zugriff auf diese Website.",
+ "ExceptionNoValueForUsernameOrEmail": "Bitte geben Sie einen Benutzernamen oder eine E-Mail-Adresse ein.",
"ExcludeVisitsViaCookie": "Ihre Besuche von der Erfassung via Cookie ausschließen",
"ForAnonymousUsersReportDateToLoadByDefault": "Bericht, der für Gast-Besucher (\"anonymous\") standardmäßig geladen wird",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Wenn Sie Ihr Passwort ändern möchten, geben Sie ein neues ein. Ansonsten lassen Sie dieses Feld frei.",
"InjectedHostCannotChangePwd": "Ihr Besuch erfolgt aktuell durch einen unbekannten Hostnamen (%1$s). Es ist somit nicht möglich Ihr Kennwort zu ändert bis dieser Umstand behoben ist.",
"LastSeen": "Zuletzt gesehen",
- "MainDescription": "Hier kann Zugriff auf bestimmte Websites innerhalb von Piwik erteilt werden. Es ist auch möglich, Zugriff für alle Websites auf einmal zu erlauben.",
"ManageAccess": "Zugriffsverwaltung",
"MenuAnonymousUserSettings": "Gast-Besucher (\"anonymous\") Einstellungen",
"MenuUsers": "Benutzer",
@@ -46,7 +46,6 @@
"PersonalSettings": "Persönliche Einstellungen",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Hinweis: Sie können die Einstellungen in diesem Bereich nicht ändern, weil Sie keine Website eingerichtet haben, die vom anonymen Benutzer angezeigt werden kann.",
"NoUsersExist": "Bisher keine Benutzer vorhanden.",
- "PluginDescription": "Benutzermanagement lässt Sie neue Benutzer hinzufügen, bestehende ändern und die Rechte für die Ansicht oder die Administration von Websites definieren.",
"PrivAdmin": "Administrator",
"PrivNone": "Kein Zugriff",
"PrivView": "Ansicht",
@@ -63,7 +62,7 @@
"UsersManagementMainDescription": "Erstellen Sie neue Benutzer oder aktualisieren Sie bereits existierende Benutzer. Die Berechtigungen können dann oben gesetzt werden.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Wenn Benutzer nicht angemeldet sind und Piwik besuchen, sollten sie Zugriff haben auf",
"YourUsernameCannotBeChanged": "Ihr Benutzername kann nicht geändert werden.",
- "YourVisitsAreIgnoredOnDomain": "%sIhre Besuche auf %s werden von Piwik ignoriert %s (das Piwik-Cookie zum Ignorieren von Besuchen wurde in Ihrem Browser gefunden).",
- "YourVisitsAreNotIgnored": "%sIhre Besuche werden von Piwik nicht ignoriert %s (das Piwik-Cookie zum Ignorieren von Besuchen wurde nicht in Ihrem Browser gefunden)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sIhre Besuche auf %2$s werden von Piwik ignoriert %3$s (das Piwik-Cookie zum Ignorieren von Besuchen wurde in Ihrem Browser gefunden).",
+ "YourVisitsAreNotIgnored": "%1$sIhre Besuche werden von Piwik nicht ignoriert %2$s (das Piwik-Cookie zum Ignorieren von Besuchen wurde nicht in Ihrem Browser gefunden)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/el.json b/plugins/UsersManager/lang/el.json
index 74f4ff1447..b4430f85ee 100644
--- a/plugins/UsersManager/lang/el.json
+++ b/plugins/UsersManager/lang/el.json
@@ -7,16 +7,17 @@
"AnonymousUserHasViewAccess": "Σημείωση: ο %1$s χρήστης έχει %2$s πρόσβαση στον ιστοτόπο.",
"AnonymousUserHasViewAccess2": "Οι αναφορές στατιστικών σας και οι πληροφορίες για τους επισκέπτες είναι δημόσια προσπελάσιμες.",
"ApplyToAllWebsites": "Εφαρμογή σε όλες τις ιστοσελίδες",
- "ChangeAllConfirm": "Είστε σίγουρος ότι θέλετε να αλλάξετε «%s» δικαιώματα σε όλες τις ιστοσελίδες;",
+ "ChangeAllConfirm": "Είστε σίγουροι ότι θέλετε να δώσετε πρόσβαση σε όλους τους ιστοτόπους στο '%s';",
"ChangePasswordConfirm": "Η αλλαγή του κωδικού πρόσβασης συνεπάγεται αλλαγή του πειστηρίου πιστοποίησης των χρηστών (token_auth). Θέλετε να συνεχίσετε;",
"ClickHereToDeleteTheCookie": "Πατήστε εδώ για να διαγράψετε το cookie και αφήστε το Piwik να καταγράφει τις επισκέψεις σας",
"ClickHereToSetTheCookieOnDomain": "Πατήστε εδώ για να ορίσετε ένα cookie που θα αποκλείει τις επισκέψεις σας στις ιστοσελίδες που ανιχνεύονται από το Piwik στο %s",
"ConfirmGrantSuperUserAccess": "Είστε σίγουροι ότι θέλετε να δώσετε δικαίωμα Υπερ-Χρήστη στον '%s'; Προσοχή: ο χρήστης θα έχει δικαίωμα πρόσβασης σε όλους τους ιστοτόπους και θα μπορεί να εκτελεί διαχειριστικές εργασίες.",
"ConfirmProhibitMySuperUserAccess": "%s, είστε σίγουροι ότι θέλετε να αφαιρέσετε το δικαίωμα Υπερ-Χρήστη από τον εαυτό σας; Θα χάσετε για πάντα όλα τα δικαιώματα και την πρόσβαση σε όλους τους ιστοτόπους και θα σας γίνει αυτόματα έξοδος από το Piwik.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Είστε σίγουροι ότι θέλετε να αφαιρέσετε το δικαίωμα Υπερ-Χρήστη από τον '%s'; Ο χρήστης θα χάσει όλα τα δικαιώματα και την πρόσβαση σε όλους τους ιστοτόπους. Βεβαιωθείτε στη συνέχεια να ορίσετε τα απαιτούμενα δικαιώματα στους ιστοτόπους που χρειάζεται.",
+ "ConfirmProhibitOtherUsersSuperUserAccess": "Είστε σίγουροι ότι θέλετε να αφαιρέσετε την πρόσβαση Υπερ-Χρήστη από τον '%s'; Ο χρήστης θα χάσει όλα τα δικαιώματα και την πρόσβαση σε όλους τους ιστοτόπους. Βεβαιωθείτε μετά ότι δώσατε πρόσβαση στους απαραίτητους ιστοτόπους αν αυτό απατείται.",
"DeleteConfirm": "Είστε σίγουρος ότι θέλετε να διαγράψετε τον\/ην χρήστη %s;",
"Email": "Ηλεκτρονική Διεύθυνση",
"EmailYourAdministrator": "%1$sΣτείλτε e-mail στον διαχειριστή σχετικά με το πρόβλημα %2$s.",
+ "EnterUsernameOrEmail": "Εισάγετε ένα όνομα χρήστη ή διεύθυνση ηλ. ταχυδρομείου",
"ExceptionAccessValues": "Η πρόσβαση παραμέτρου πρέπει να έχει τις ακόλουθες τιμές: [ %s ]",
"ExceptionAdminAnonymous": "Δεν μπορείτε να δώσετε δικαιώματα διαχειριστή στον «ανώνυμο» χρήστη.",
"ExceptionDeleteDoesNotExist": "Ο χρήστης «%s» δεν υπάρχει και άρα δεν μπορεί να διαγραφεί.",
@@ -24,20 +25,25 @@
"ExceptionEditAnonymous": "Ο ανώνυμος χρήστης δεν μπορεί να διαγραφεί ή να δεχθεί τροποποίηση. Χρησιμοποιείται από το Piwik για τον ορισμό του χρήστη που δεν έχει συνδεθεί ακόμα. Για παράδειγμα, μπορείτε να κάνετε τα στατιστικά σας δημόσια δίνοντας δικαίωμα «προβολής» στον «ανώνυμο» χρήστη.",
"ExceptionEmailExists": "Χρήστης με την ηλεκτρονική διεύθυνση «%s» υπάρχει ήδη.",
"ExceptionInvalidEmail": "Η ηλεκτρονική διεύθυνση δεν φαίνεται να είναι σωστή.",
- "ExceptionInvalidLoginFormat": "Η σύνδεση πρέπει να είναι μεταξύ %1$s και %2$s χαρακτήρες και να περιέχει μόνο γράμματα, αριθμούς ή τους χαρακτήρες «_» ή «-» ή «.»",
+ "ExceptionInvalidLoginFormat": "Το όνομα χρήστη πρέπει να έχει αριθμό χαρακτήρων από %1$s έως %2$s και να περιέχει μόνο γράμματα, αριθμούς, ή τους χαρακτήρες '_' ή '-' ή '.' ή '@' ή '+'",
"ExceptionInvalidPassword": "Το μήκος του κωδικού πρόσβασης πρέπει να είναι μεταξύ %1$s και %2$s χαρακτήρες.",
- "ExceptionLoginExists": "Ο χρήστης «%s» υπάρχει ήδη.",
+ "ExceptionLoginExists": "Το όνομα χρήστη '%s' υπάρχει ήδη.",
"ExceptionPasswordMD5HashExpected": "Το UsersManager.getTokenAuth αναμένει έναν κωδικό πρόσβασης ως αριθμό MD5 (μήκος 32 χαρακτήρων). Ανακαλέστε τη συνάρτηση md5() στον κωδικό πρόσβασης πριν ανακαλέσετε τη μέθοδο.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Η αφαίρεση του δικαιώματος Υπερ-Χρήστη από το χρήστη '%s' δεν είναι δυνατή.",
"ExceptionSuperUserAccess": "Ο χρήστης έχει το δικαίωμα Υπερ-Χρήστη και έχει ήδη πρόσβαση για να τροποποιεί όλους τους ιστοτόπους στο Piwik. Μπορείτε να αφαιρέσετε το δικαίωμα Υπερ-Χρήστη από το χρήστη και να ξαναδοκιμάσετε.",
"ExceptionUserDoesNotExist": "Ο χρήστης «%s» δεν υπάρχει.",
"ExceptionYouMustGrantSuperUserAccessFirst": "Πρέπει να υπάρχει τουλάχιστον ένας χρήστης με το δικαίωμα Υπερ-Χρήστη. Παρακαλούμε δώστε πρώτα το δικαίωμα Υπερ-Χρήστη σε κάποιον άλλο χρήστη.",
+ "ExceptionUserHasViewAccessAlready": "Ο χρήστης έχει ήδη πρόσβαση στον ιστοτόπο.",
+ "ExceptionNoValueForUsernameOrEmail": "Παρακαλώ εισάγετε ένα όνομα χρήστη ή διεύθυνση ηλ. ταχυδρομείου.",
"ExcludeVisitsViaCookie": "Αποκλείστε τις επισκέψεις σας με χρήση cookie",
"ForAnonymousUsersReportDateToLoadByDefault": "Για ανώνυμους χρήστες, αναφορά ημερομηνίας που θα φορτώνεται ως προεπιλογή",
+ "GiveViewAccess": "Να δοθεί δικαίωμα εμφάνισης",
+ "GiveViewAccessTitle": "Να δοθεί σε υπάρχοντα χρήστη δικαίωμα να βλέπει τις αναφορές για το %s",
+ "GiveViewAccessInstructions": "Για να δώσετε σε υπάρχοντα χρήστη δικαίωμα πρόσβασης στο %s εισάγετε το όνομα χρήστη ή την διεύθυνση ηλ. ταχυδρομείου του χρήστη",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Αν θέλετε να αλλάξετε τον κωδικό πρόσβασης εισάγετε ένα νέο. Διαφορετικά αφήστε το κενό.",
"InjectedHostCannotChangePwd": "Αυτή τη στιγμή είστε επισκέπτης από ένα άγνωστο υπολογιστή (%1$s). Δεν μπορείτε να αλλάξετε το συνθηματικό σας μέχρι να διορθωθεί αυτό το πρόβλημα.",
"LastSeen": "Τελευταία ειδώθηκε",
- "MainDescription": "Ρυθμίστε ποιοι χρήστες θα έχουν πρόσβαση σε ποιες ιστοσελίδες. Μπορείτε επίσης να ρυθμίσετε τα δικαιώματα για όλες τις ιστοσελίδες με μία κίνηση.",
+ "MainDescription": "Αποφασίστε ποιοι χρήστες θα έχουν πρόσβαση σε όλους τους ιστοτόπους. Μπορείτε επίσης να δώσετε πρόσβαση σε όλους τους ιστοτόπους με τη μία επιλέγοντας \"Εφαρμογή σε όλους τους ιστοτόπους\" στον επιλογέα ιστοτόπων.",
"ManageAccess": "Διαχείριση πρόσβασης",
"MenuAnonymousUserSettings": "Ρυθμίσεις ανώνυμου χρήστη",
"MenuUsers": "Χρήστες",
@@ -46,7 +52,7 @@
"PersonalSettings": "Προσωπικές ρυθμίσεις",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Σημείωση: Δεν μπορείτε να αλλάξετε τις ρυθμίσεις σε αυτό τον τομέα γιατί δεν έχετε κάποια ιστοσελίδα που μπορείτε να έχετε πρόσβαση ως ανώνυμος χρήστης.",
"NoUsersExist": "Δεν υπάρχουν ακόμη χρήστες.",
- "PluginDescription": "Η Διαχείριση Χρηστών επιτρέπει την προσθήκη νέων χρηστών, την επεξεργασία υπάρχοντων και τον ορισμό αδειών πρόσβασης για ανάγνωση ή διαχείριση των ιστοτόπων.",
+ "PluginDescription": "Η Διαχείριση χρηστών επιτρέπει την προσθήκη νέων χρηστών, την επεξεργασία υπαρχόντων και η πρόσβαση για εμφάνιση ή διαχείριση των ιστοτόπων.",
"PrivAdmin": "Διαχείριση",
"PrivNone": "Χωρίς πρόσβαση",
"PrivView": "Προβολή",
@@ -63,7 +69,7 @@
"UsersManagementMainDescription": "Δημιουργήστε νέους χρήστες ή ενημερώστε τους υπάρχοντες. Μπορείτε επίσης να αλλάξετε τα δικαιώματά τους (παραπάνω).",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Όταν οι χρήστες δεν έχουν συνδεθεί και επισκέπτονται το Piwik, θα έχουν πρόσβαση",
"YourUsernameCannotBeChanged": "Το όνομα χρήστη δεν μπορεί να αλλαχτεί.",
- "YourVisitsAreIgnoredOnDomain": "%sΟι επισκέψεις σας παραβλέπονται από το Piwik στο %s %s (το Piwik παραβλέπει το cookie που βρέθηκε στον φυλλομετρητή σας).",
- "YourVisitsAreNotIgnored": "%sΟι επισκέψεις δεν αγνοούνται από το Piwik%s (δεν βρέθηκε cookie αγνόησης του Piwik στον φυλλομετρητή σας)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sΟι επισκέψεις σας παραβλέπονται από το Piwik στο %2$s %3$s (το Piwik παραβλέπει το cookie που βρέθηκε στον φυλλομετρητή σας).",
+ "YourVisitsAreNotIgnored": "%1$sΟι επισκέψεις δεν αγνοούνται από το Piwik%2$s (δεν βρέθηκε το cookie αγνόησης του Piwik στον φυλλομετρητή σας)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/en.json b/plugins/UsersManager/lang/en.json
index 144b66ec03..a4a07421c0 100644
--- a/plugins/UsersManager/lang/en.json
+++ b/plugins/UsersManager/lang/en.json
@@ -7,13 +7,13 @@
"AnonymousUserHasViewAccess": "Note: the %1$s user has %2$s access to this website.",
"AnonymousUserHasViewAccess2": "Your analytics reports and your visitors information are publicly viewable.",
"ApplyToAllWebsites": "Apply to all websites",
- "ChangeAllConfirm": "Are you sure you want to change '%s' permissions on all the websites?",
+ "ChangeAllConfirm": "Are you sure you want to give '%s' access to all the websites?",
"ChangePasswordConfirm": "Changing the password will also change the user's token_auth. Do you really want to continue?",
"ClickHereToDeleteTheCookie": "Click here to delete the cookie and have Piwik track your visits",
"ClickHereToSetTheCookieOnDomain": "Click here to set a cookie that will exclude your visits on websites tracked by Piwik on %s",
"ConfirmGrantSuperUserAccess": "Do you really want to grant '%s' Super User access? Warning: the user will have access to all websites and will be able to perform administrative tasks.",
"ConfirmProhibitMySuperUserAccess": "%s, do you really want to remove your own Super User access? You will lose all permissions and access to all websites and will be logged out from Piwik.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Do you really want to remove Super User access from '%s'? The user will lose all permissions and access to all websites. Make sure to set permissions to needed websites afterwards if necessary.",
+ "ConfirmProhibitOtherUsersSuperUserAccess": "Do you really want to remove Super User access from '%s'? The user will lose all permissions and access to all websites. Make sure to give access to needed websites afterwards if necessary.",
"DeleteConfirm": "Are you sure you want to delete the user %s?",
"Email": "Email",
"EmailYourAdministrator": "%1$sE-mail your administrator about this problem%2$s.",
@@ -25,9 +25,9 @@
"ExceptionEditAnonymous": "The anonymous user cannot be edited or deleted. It is used by Piwik to define a user that has not logged in yet. For example, you can make your statistics public by granting the 'view' access to the 'anonymous' user.",
"ExceptionEmailExists": "User with email '%s' already exists.",
"ExceptionInvalidEmail": "The email doesn't have a valid format.",
- "ExceptionInvalidLoginFormat": "The login must be between %1$s and %2$s characters long and contain only letters, numbers, or the characters '_' or '-' or '.' or '@' or '+'",
+ "ExceptionInvalidLoginFormat": "The username must be between %1$s and %2$s characters long and contain only letters, numbers, or the characters '_' or '-' or '.' or '@' or '+'",
"ExceptionInvalidPassword": "The password length must be between %1$s and %2$s characters.",
- "ExceptionLoginExists": "Login '%s' already exists.",
+ "ExceptionLoginExists": "Username '%s' already exists.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth is expecting a MD5-hashed password (32 chars long string). Please call the md5() function on the password before calling this method.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Removing the Super User access from user '%s' is not possible.",
"ExceptionSuperUserAccess": "This user has Super User access and has already permission to access and modify all websites in Piwik. You may remove the Super User access from this user and try again.",
@@ -43,7 +43,7 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "If you would like to change the password type a new one. Otherwise leave this blank.",
"InjectedHostCannotChangePwd": "You are currently visiting with an unknown host (%1$s). You cannot change your password until this problem is fixed.",
"LastSeen": "Last seen",
- "MainDescription": "Decide which users have which Piwik access on your Websites. You can also set the permissions on all the Websites at once.",
+ "MainDescription": "Decide which users have access to your websites. You can also give access to all the websites at once by choosing \"Apply to all websites\" in the website selector.",
"ManageAccess": "Manage access",
"MenuAnonymousUserSettings": "Anonymous user settings",
"MenuUsers": "Users",
@@ -52,7 +52,7 @@
"PersonalSettings": "Personal settings",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Note: You cannot change the settings in this section, because you do not have any website that can be accessed by the anonymous user.",
"NoUsersExist": "There are no users yet.",
- "PluginDescription": "Users Management lets you add new users, edit existing users and assign them permissions to view or administrate websites. ",
+ "PluginDescription": "Users Management lets you add new users, edit existing users and give them access to view or administrate websites. ",
"PrivAdmin": "Admin",
"PrivNone": "No access",
"PrivView": "View",
@@ -69,7 +69,7 @@
"UsersManagementMainDescription": "Create new users or update the existing users. You can then set their permissions above.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "When users are not logged in and visit Piwik, they should access",
"YourUsernameCannotBeChanged": "Your username cannot be changed.",
- "YourVisitsAreIgnoredOnDomain": "%sYour visits are ignored by Piwik on %s %s (the Piwik ignore cookie was found in your browser).",
- "YourVisitsAreNotIgnored": "%sYour visits are not ignored by Piwik%s (the Piwik ignore cookie was not found in your browser)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sYour visits are ignored by Piwik on %2$s %3$s (the Piwik ignore cookie was found in your browser).",
+ "YourVisitsAreNotIgnored": "%1$sYour visits are not ignored by Piwik%2$s (the Piwik ignore cookie was not found in your browser)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/es.json b/plugins/UsersManager/lang/es.json
index 9ec8323ffc..99a253b942 100644
--- a/plugins/UsersManager/lang/es.json
+++ b/plugins/UsersManager/lang/es.json
@@ -7,13 +7,11 @@
"AnonymousUserHasViewAccess": "Nota: el usuario %1$s tiene acceso para %2$s en este sitio de internet.",
"AnonymousUserHasViewAccess2": "Sus informes de análisis y la información de sus visitantes son vistos públicamente.",
"ApplyToAllWebsites": "Aplicar a todos los sitios",
- "ChangeAllConfirm": "¿Está seguro que desea cambiar '%s' permisos en todos los sitios de internet?",
"ChangePasswordConfirm": "Cambiar la contraseña también cambiará el token_auth del usuario. ¿Desea continuar?",
"ClickHereToDeleteTheCookie": "Haga clic aquí para borrar la cookie y permitir que Piwik realice un seguimiento de sus visitas",
"ClickHereToSetTheCookieOnDomain": "Haga clic aquí para configurar la cookie que excluirá sus visitas a los sitios de internet a los que Piwik realiza seguimiento en %s",
"ConfirmGrantSuperUserAccess": "¿Estás seguro que desea conceder acceso 'Super User' a '%s'? Atención: el usuario tendrá acceso a todos los sitios de internet y podrá realizar tareas administrativas.",
"ConfirmProhibitMySuperUserAccess": "¿%s, está seguro que desea eliminar su acceso Super Usuario? Perderá todos los permisos y accesos a todos los sitios de internet y será desconectado de Piwik.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "¿Está seguro que desea eliminar el acceso Super Usuario a '%s'? El usuario perderá todos los permisos y accesos a todos los sitios de internet. Asegúrese de configurar los permisos a sitios si así fuese necesario.",
"DeleteConfirm": "¿Está seguro que desea eliminar al usuario %s?",
"Email": "Correo electrónico",
"EmailYourAdministrator": "%1$sEnviar un correo electrónico a su administrador acerca de este problema%2$s.",
@@ -24,9 +22,7 @@
"ExceptionEditAnonymous": "El usuario anónimo no puede ser borrado o editado. Piwik lo utiliza para definir un usuario que no se ha conectado todavía. Por ejemplo, puede hacer públicas sus estadísticas mediante el acceso 'ver' al usuario 'anónimo'.",
"ExceptionEmailExists": "Ya existe un usuario con el correo electrónico '%s'.",
"ExceptionInvalidEmail": "El correo electrónico no tiene un formato válido.",
- "ExceptionInvalidLoginFormat": "El inicio de sesión debe estar entre %1$s y %2$s caracteres de longitud y contener solo letras, números o los caracteres '_' o '-' o '.' o '@' or '+'",
"ExceptionInvalidPassword": "La extensión de la contraseña debe ser entre %1$s y %2$s caracteres.",
- "ExceptionLoginExists": "El usuario '%s' ya existe.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth está a la espera de una contraseña con algoritmo hash MD5 (32 caracteres de longitud). Por favor demande la función md5() en la contraseña antes de reclamar a este método.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Eliminar el acceso Super Usuario del usuario '%s' no es posible.",
"ExceptionSuperUserAccess": "Este usuario tiene acceso Super Usuario y ya posee permiso para acceder y modificar todos los sitios de internet de Piwik. Puede eliminar el acceso Super Usuario a este usuario y volver a probar.",
@@ -37,7 +33,6 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Si desea cambiar la contraseña ingrese una nueva. Si no, déjelo vacío.",
"InjectedHostCannotChangePwd": "Está actualmente visitando con un medio desconocido (%1$s). No puede cambiar su contraseña hasta que el problema esté soluionado.",
"LastSeen": "Última visita",
- "MainDescription": "Decida que usuarios de Piwik tienen acceso a sus sitios de internet. También puede configurar los permisos en todos los sitios de una vez.",
"ManageAccess": "Administrar el acceso",
"MenuAnonymousUserSettings": "Configuración de usuario anónimo",
"MenuUsers": "Usuarios",
@@ -46,7 +41,6 @@
"PersonalSettings": "Ajustes personales",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Nota: No puede modificar la configuración en esta sección, debido a que no posee ningún sitio de internet que pueda ser contactado por un usuario anónimo.",
"NoUsersExist": "Todavía no hay usuarios.",
- "PluginDescription": "Administración de usuarios le permite añadir nuevos usuarios, modificar actuales usuarios y asignarles permisos de visualización o administrar sitios de internet.",
"PrivAdmin": "Administrador",
"PrivNone": "Sin acceso",
"PrivView": "Ver",
@@ -63,7 +57,7 @@
"UsersManagementMainDescription": "Cree nuevos usuarios o actualice los actuales. Luego puede configurar sus permisos.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Cuando los usuarios no están identificados y visitan Piwik, deberían poder acceder",
"YourUsernameCannotBeChanged": "Su nombre de usuario no puede ser cambiado.",
- "YourVisitsAreIgnoredOnDomain": "%sSus visitas son ignoradas por Piwik en %s %s (la cookie de ignorar a Piwik fue encontrada en su navegador).",
- "YourVisitsAreNotIgnored": "%sSus visitas no son ignoradas por Piwik%s (la cookie de ignorar a Piwik no fue encontrada en su navegador)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sSus visitas son ignoradas por Piwik en %2$s %3$s (la cookie de ignorar a Piwik fue encontrada en su navegador).",
+ "YourVisitsAreNotIgnored": "%1$sSus visitas no son ignoradas por Piwik%2$s (la cookie de ignorar a Piwik no fue encontrada en su navegador)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/et.json b/plugins/UsersManager/lang/et.json
index 56b94db5b0..dfad50ee8e 100644
--- a/plugins/UsersManager/lang/et.json
+++ b/plugins/UsersManager/lang/et.json
@@ -4,7 +4,6 @@
"Alias": "Alias",
"AllWebsites": "Kõik veebilehed",
"ApplyToAllWebsites": "Laienda kõigile veebilehtedele",
- "ChangeAllConfirm": "Kas sa oled kindel soovis anda '%s' õigused kõigile veebilehtedele?",
"ClickHereToSetTheCookieOnDomain": "Vajuta siia, et käesolevasse veebisirvikusse tekitada küpsis, mis ei lase sinu külastusi arvestada veebilehel %s",
"DeleteConfirm": "Kas oled kindel, et soovid %s kustutada?",
"Email": "E-post",
@@ -13,11 +12,9 @@
"ExceptionEditAnonymous": "Anonüümset kasutajat ei saa muuta ega kustutada. Piwik kasutab seda määratlemaks kasutajat, kes ei ole veel sisse loginud. Näiteks, saad teha statistika lubada 'view' statistikat õigused 'anonymous' kasutajale.",
"ExceptionEmailExists": "Sellise e-mailiga '%s' kasutaja on olemas.",
"ExceptionInvalidEmail": "Emaili aadress ei ole õiges formaadis.",
- "ExceptionLoginExists": "Kasutajanimi '%s' on kasutusel.",
"ExceptionUserDoesNotExist": "Kasutaja '%s' puudub.",
"ExcludeVisitsViaCookie": "Arva ennast külastajate hulgast välja kasutades küpsist",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Kui soovid salasõna vahetada, siis sisesta siia uus. Vastasel korral jäta tühjaks.",
- "MainDescription": "Otsusta millistel kasutajatel on ligipääs analüütikale. Saad seada õigused kõigile veebilehtedele korraga.",
"ManageAccess": "Halda ligipääsu",
"MenuAnonymousUserSettings": "Tundmatu kasutaja seaded",
"MenuUsers": "Kasutajaid",
@@ -37,6 +34,6 @@
"UsersManagement": "Kasutajate haldamine",
"UsersManagementMainDescription": "Loo uusi kasutajakontosid või uuenda olemasolevaid. Saad seada nende õigused ülalpool.",
"YourUsernameCannotBeChanged": "Sinu kasutajanime ei saa muuta.",
- "YourVisitsAreNotIgnored": "%sPiwik ei arva sinu külastusi statistikast välja%s (ignoreerimiseks vajalikku küpsist ei leitud sirvikust)."
+ "YourVisitsAreNotIgnored": "%1$sPiwik ei arva sinu külastusi statistikast välja%2$s (ignoreerimiseks vajalikku küpsist ei leitud sirvikust)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/eu.json b/plugins/UsersManager/lang/eu.json
index 37a285675f..1d1a76f05a 100644
--- a/plugins/UsersManager/lang/eu.json
+++ b/plugins/UsersManager/lang/eu.json
@@ -4,7 +4,6 @@
"Alias": "Alias",
"AllWebsites": "Webgune guztiak",
"ApplyToAllWebsites": "Aplikatu webgune guztiei",
- "ChangeAllConfirm": "Ziur zaude '%s'(r)en baimenak aldatu nahi dituzula webgune guztietan?",
"DeleteConfirm": "Ziur zaude %s erabiltzailea ezabatu nahi duzula?",
"Email": "E-posta",
"ExceptionAccessValues": "access parametroak ondorengo balioetako bat izan behar du: [ %s ]",
@@ -13,10 +12,7 @@
"ExceptionEditAnonymous": "anonymous erabiltzailea ezin da editatu edo ezabatu. Saioa hasi gabeko erabiltzaileak definitzeko erabiltzen du Piwik-ek. Adibidez, estatistikak publiko egiteko 'ikusi' atzipena eman besterik ez duzu 'anonymous' erabiltzailearentzat.",
"ExceptionEmailExists": "'%s' helbide elektronikoa duen erabiltzailea badago.",
"ExceptionInvalidEmail": "Helbide elektronikoaren formatua baliogabea da.",
- "ExceptionInvalidLoginFormat": "Erabiltzaile-izenak %1$s eta %2$s karaktere artekoa izan behar du luzeran eta letrak, zenbakiak edo '_' edo '-' edo '.' karaktereak izan ditzake soilik.",
- "ExceptionLoginExists": "'%s' erabiltzaile-izena badago.",
"ExceptionUserDoesNotExist": "'%s' erabiltzailea ez dago.",
- "MainDescription": "Erabaki zein erabiltzailek atzi dezaketen Piwik zure webguneetan. Webgune guztietarako baimenak ere ezar ditzakezu ekintza bakarrean.",
"ManageAccess": "Kudeatu atzipena",
"MenuUsers": "Erabiltzaileak",
"PrivAdmin": "Kudeatu",
diff --git a/plugins/UsersManager/lang/fa.json b/plugins/UsersManager/lang/fa.json
index 97d3bc09bb..199137d411 100644
--- a/plugins/UsersManager/lang/fa.json
+++ b/plugins/UsersManager/lang/fa.json
@@ -5,7 +5,6 @@
"AllWebsites": "همه وب سایت ها",
"AnonymousUserHasViewAccess2": "گزارش تجزیه و تحلیل و اطلاعات بازدید کنندگان خود را علنی قابل مشاهده است.",
"ApplyToAllWebsites": "اعمال بر روی تمام وبسایت ها",
- "ChangeAllConfirm": "آیا شما مطمئن هستید که می خواهید دسترسی های \"%s\" را در تمام وبسایت ها تغییر دهید؟",
"ChangePasswordConfirm": "تغییر رمز عبور به نیز token_auth کاربر را تغییر دهید. آیا شما واقعا میخواهید ادامه دهید؟",
"ClickHereToDeleteTheCookie": "اینجا را کلیک کنید کوکی را برای حذف و Piwik پیگیری بازدیدکننده داشته است خود را",
"ClickHereToSetTheCookieOnDomain": "اینجا کلیک کنید تا یک کوکی تنظیم شود که مانع ردیابی بازدیدهای شما از سایت هایی شود که توسط پیویک ردیابی می شوند روی %s",
@@ -18,9 +17,7 @@
"ExceptionEditAnonymous": "کاربر گمنامی را نمی توان به ویرایش و یا حذف شده است. توسط Piwik مورد استفاده قرار می گیرد برای تعریف یک کاربر است که هنوز وارد سایت نشده هنوز. به عنوان مثال، شما می توانید آمار خود را عمومی و با اعطای 'مشاهده' دسترسی به \"کاربر ناشناس.",
"ExceptionEmailExists": "کاربر با ایمیل \"%s\" هم اکنون وجود دارد.",
"ExceptionInvalidEmail": "ایمیل به فرمت معتبر نیست.",
- "ExceptionInvalidLoginFormat": "نام کاربری باید بین %1$s و %2$s کاراکتر باشد و فقط شامل حروف ، اعداد یا کاراکترهای '_' یا '-' یا '.' یا '@' یا'+' باشد.",
"ExceptionInvalidPassword": "اندازه رمزعبور باید بین %1$s و %2$s کاراکتر باشد.",
- "ExceptionLoginExists": "نام کاربری '%s' هم اکنون وجود دارد.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth انتظار رمز عبور MD5-hashed (32 کاراکتر رشته طولانی). لطفا تماس بگیرید تابع md5 () از رمز عبور را قبل از فراخوانی این روش.",
"ExceptionUserDoesNotExist": "کاربر \"%s\" وجود ندارد.",
"ExcludeVisitsViaCookie": "محروم بازدیدکننده داشته است خود را با استفاده از کوکی برای نگهداری اطلاعات استفاده می",
@@ -28,7 +25,6 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "اگر می خواهید از نوع رمز عبور را تغییر جدید است. در غیر این صورت این قسمت را خالی بگذارید.",
"InjectedHostCannotChangePwd": "شما هم اکنون در حال بازدید توسط یک میزبان ناشناخته هستید(%1$s). شما نمی توانید رمز عبورتان را تغییر دهید تا زمانی که این مشکل را حل نکرده اید.",
"LastSeen": "آخرین بازدید",
- "MainDescription": "تصمیم بگیرید که کاربران که دسترسی Piwik را روی وب سایت خود را دارند. شما همچنین می توانید مجوز در تمام وب سایت در یک بار تنظیم شده است.",
"ManageAccess": "مدیریت دسترسی",
"MenuAnonymousUserSettings": "تنظیمات کاربران ناشناس",
"MenuUsers": "کاربران",
diff --git a/plugins/UsersManager/lang/fi.json b/plugins/UsersManager/lang/fi.json
index d5a2c941df..8a39276cae 100644
--- a/plugins/UsersManager/lang/fi.json
+++ b/plugins/UsersManager/lang/fi.json
@@ -6,13 +6,11 @@
"AnonymousUserHasViewAccess": "Huom: käyttäjällä %1$s on %2$s pääsy tälle verkkosivulle.",
"AnonymousUserHasViewAccess2": "Analyysiraporttisi ja kävijätietosi ovat julkisia.",
"ApplyToAllWebsites": "Päivitä kaikille sivuille",
- "ChangeAllConfirm": "Haluatko varmasti vaihtaa käyttäjän \"%s\" oikeudet kaikille sivuille?",
"ChangePasswordConfirm": "Salasanan vaihtaminen vaihtaa myös käyttäjän token_auth:n. Haluatko varmasti jatkaa?",
"ClickHereToDeleteTheCookie": "Paina tästä poistaaksesi cookie",
"ClickHereToSetTheCookieOnDomain": "Paina tästä luodaksesi cookie sivulle %s",
"ConfirmGrantSuperUserAccess": "Haluatko varmasti antaa käyttäjälle '%s' Superkäyttäjäoikeudet? Varoitus: käyttäjä saa pääsyn kaikille verkkosivuille ja voi suorittaa hallinnollisia toimenpiteitä.",
"ConfirmProhibitMySuperUserAccess": "%s, haluatko varmasti poistaa omat Superkäyttäjäoikeutesi? Menetät kaikki oikeudet ja pääsyn kaikille verkkosivuille sekä kirjaudut ulos Piwikistä.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Haluatko varmasti poistaa Superkäyttäjäoikeudet käyttäjältä '%s'? Käyttäjä menettää kaikki oikeudet ja pääsyn kaikille verkkosivuille. Muista asettaa oikeudet tarvittaville verkkosivuille jälkikäteen, mikäli tarpeellista.",
"DeleteConfirm": "Haluatko varmasti poistaa käyttäjän %s?",
"Email": "Sähköposti",
"EmailYourAdministrator": "%1$sLähetä ylläpitäjällesi sähköpostia ongelmasta%2$s.",
@@ -23,9 +21,7 @@
"ExceptionEditAnonymous": "Anonyymikäyttäjää ei voi muokata tai poistaa. Se on Piwikin sisäinen tunnus käyttäjälle, joka ei ole kirjautunut sisään. Voit esimerkiksi julkaista tilastoja kaikille sallimalla anonyymikäyttäjälle katsomisoikeuden.",
"ExceptionEmailExists": "Käyttäjä sähköpostilla '%s' on jo olemassa.",
"ExceptionInvalidEmail": "Sähköposti ei ole kelvollinen.",
- "ExceptionInvalidLoginFormat": "Tunnus täytyy olla %1$s-%2$s merkkiä pitkä ja saa siältää vain kirjaimia, numeroita ja merkkejä '_', '-' ja '.'",
"ExceptionInvalidPassword": "Salasanan pituuden täytyy olla %1$s ja %2$s välillä.",
- "ExceptionLoginExists": "Tunnus '%s' on jo olemassa.",
"ExceptionPasswordMD5HashExpected": "UserManager.getTokenAuth haluaa MD5-tiivisteen salasanastasi (32 merkkiä pitkä merkkijono). Kutsu md5()-funktiota salasanallesi ennen kutsumista.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Superkäyttäjäoikeuksien poistaminen käyttäjältä '%s' ei ole mahdollista.",
"ExceptionSuperUserAccess": "Tällä käyttäjällä on jo Superkäyttäjäoikeudet ja oikeudet muokata kaikkia verkkosivuja Piwikissä. Voit poistaa Superkäyttäjäoikeudet tältä käyttäjältä ja yrittää uudelleen.",
@@ -36,7 +32,6 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Jos haluat vaihtaa salasanan, kirjoita uusi. Muuten jätä tyhjäksi.",
"InjectedHostCannotChangePwd": "Olet sivulla tällä hetkellä tuntemattoman isännän kautta (%1$s). Et voi vaihtaa salasanaasi ennen kuin tämä ongelma on korjattu.",
"LastSeen": "Nähty viimeeksi",
- "MainDescription": "Määrittele, millä käyttäjillä on oikeus verkkosivulle. Voit asettaa oikeuksia kaikille sivuille yhdellä kertaa.",
"ManageAccess": "Hallitse oikeuksia",
"MenuAnonymousUserSettings": "Anonyymin käyttäjän asetukset",
"MenuUsers": "Käyttäjät",
@@ -59,7 +54,7 @@
"UsersManagementMainDescription": "Lisää uusia käyttäjiä tai päivitä olemassaolevia. Voit asettaa oikeudet alla.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Kun käyttäjä ei ole kirjautunut sisään ja käy Piwikissä, heillä on pääsy",
"YourUsernameCannotBeChanged": "Käyttäjätunnusta ei voi vaihtaa.",
- "YourVisitsAreIgnoredOnDomain": "%sPiwik ei seuraa käyntejäsi sivulla %s %s (Piwikin cookie löytyi selaimestasi).",
- "YourVisitsAreNotIgnored": "%sPiwik seuraa käyntejäsi%s (Piwikin cookieta ei löytynyt selaimestasi)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sPiwik ei seuraa käyntejäsi sivulla %2$s %3$s (Piwikin cookie löytyi selaimestasi).",
+ "YourVisitsAreNotIgnored": "%1$sPiwik seuraa käyntejäsi%2$s (Piwikin cookieta ei löytynyt selaimestasi)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/fr.json b/plugins/UsersManager/lang/fr.json
index 4be4e7e10f..d0f0719220 100644
--- a/plugins/UsersManager/lang/fr.json
+++ b/plugins/UsersManager/lang/fr.json
@@ -7,16 +7,15 @@
"AnonymousUserHasViewAccess": "Note : l'utilisateur %1$s a un accès en %2$s à ce site web.",
"AnonymousUserHasViewAccess2": "Vos rapports d'analyse et les informations de vos visiteurs sont visibles publiquement.",
"ApplyToAllWebsites": "Appliquer à tous les sites",
- "ChangeAllConfirm": "Êtes-vous sûr de vouloir changer les permissions de '%s' sur tous les sites Internet?",
"ChangePasswordConfirm": "Modifier le mot de passe modifiera aussi la clef d'authentification des utilisateurs. Voulez-vous vraiment continuer?",
"ClickHereToDeleteTheCookie": "Cliquez ici pour supprimer le cookie et pour que Piwik prenne en compte vos visites",
"ClickHereToSetTheCookieOnDomain": "Cliquez ici pour mettre en place un cookie qui exclura vos visites sur ceux de vos sites web qui sont analysés par Piwik sur %s",
"ConfirmGrantSuperUserAccess": "Voulez vous vraiment donner un accès super utilisateur à '%s'? Attention : cet utilisateur va avoir accès à tous les sites web et sera capable d'effectuer des tâches administratives.",
"ConfirmProhibitMySuperUserAccess": "%s, voulez-vous vraiment supprimer votre accès super utilisateur? Vous allez perdre toutes les permissions et accès aux sites web et serez déconnecté(e) de Piwik.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Souhaitez vous réellement retirer l'accès super utilisateur à \"%s\"? L'utilisateur va perdre toutes les permissions d'accès à l'ensemble des sites web. Assurez vous de lui accorder les permissions requises après si nécessaire.",
"DeleteConfirm": "Êtes-vous sûr de vouloir supprimer l'utilisateur %s?",
"Email": "Courriel",
"EmailYourAdministrator": "%1$sEnvoyez un courriel à votre administrateur à propos de ce problème%2$s.",
+ "EnterUsernameOrEmail": "Entrez un nom d'usager ou une adresse courriel",
"ExceptionAccessValues": "Le paramètre access doit contenir une des valeurs suivantes: [ %s ]",
"ExceptionAdminAnonymous": "Vous ne pouvez pas autoriser l'accès administrateur à l'utilisateur Anonyme.",
"ExceptionDeleteDoesNotExist": "L'utilisateur '%s' est inexistant, il n'a pu être supprimé.",
@@ -24,20 +23,23 @@
"ExceptionEditAnonymous": "L'utilisateur Anonyme ne peut être édité ou supprimé. Il est utilisé pour identifier un utilisateur qui ne s'est pas encore connecté. Par exemple vous pouvez rendre vos statistiques publiques en accordant l'accès 'vue' à l'utilisateur 'anonyme'.",
"ExceptionEmailExists": "L'utilisateur avec l'e-mail '%s' existe déjà.",
"ExceptionInvalidEmail": "L'adresse courriel est invalide.",
- "ExceptionInvalidLoginFormat": "Le login doit contenir entre %1$s et %2$s caractères et être composé uniquement de lettres, chiffres, ou les caractères '_' ou '-' ou '.' ou '@' ou '+'",
"ExceptionInvalidPassword": "La longueur du mot de passe doit être entre %1$s et %2$s caractères.",
- "ExceptionLoginExists": "Le login '%s' existe déjà.",
+ "ExceptionLoginExists": "Le nom d'usager \"%s\" existe déjà.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth attend un mot de passe haché en MD5 (chaine de 32 caractères). Veuillez appeler la fonction md5() sur le mot de passe avant d'appeler cette méthode.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Retirer l'accès Super Utilisateur à l'utilisateur \"%s\" est impossible.",
"ExceptionSuperUserAccess": "Cet utilisateur possède un accès super utilisateur et a déjà la permission d'accéder et de modifier tous les sites au sein de Piwik. Vous devez supprimer l'accès super utilisateur de cet utilisateur et essayer à nouveau.",
"ExceptionUserDoesNotExist": "L'utilisateur '%s' est inexistant.",
"ExceptionYouMustGrantSuperUserAccessFirst": "Il doit y avoir au moins un utilisateur avec l'accès Super Utilisateur. Veuillez accorder l'accès super utilisateur à un autre utilisateur d'abord.",
+ "ExceptionUserHasViewAccessAlready": "Cet utilisateur a déjà accès à ce site web.",
+ "ExceptionNoValueForUsernameOrEmail": "Veuillez entrer un nom d'usager ou une adresse courriel.",
"ExcludeVisitsViaCookie": "Excluez vos visites en utilisant un cookie",
"ForAnonymousUsersReportDateToLoadByDefault": "Pour les utilisateurs anonymes, date du rapport à charger par défaut",
+ "GiveViewAccess": "Donner un accès de visualisation",
+ "GiveViewAccessTitle": "Donner un accès à un utilisateur existant pour afficher les rapports de %s",
+ "GiveViewAccessInstructions": "Pour donner un accès en visualisation à utilisateur existant à %s entrez son nom d'utilisateur ou adresse courriel",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Si vous souhaitez modifier votre mot de passe tapez en un nouveau. Sinon laissez le champ vide.",
"InjectedHostCannotChangePwd": "Vous êtes actuellement connecté depuis un hôte inconnu (%1$s). Vous ne pourrez modifier votre mot de passe tant que ce problème ne sera pas corrigé.",
"LastSeen": "Vu pour la dernière fois",
- "MainDescription": "Décidez quels utilisateurs ont accès à quels sites. Vous pouvez aussi changer les permissions de tous les sites d'un seul coup.",
"ManageAccess": "Gestion des accès utilisateurs",
"MenuAnonymousUserSettings": "Paramètres utilisateurs anonymes",
"MenuUsers": "Utilisateurs",
@@ -46,7 +48,7 @@
"PersonalSettings": "Paramètres Personnels",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Note : Vous ne pouvez pas modifier les paramètres dans cette section, ce parce que vous n'avez aucun site web accessible par des utilisateurs anonymes.",
"NoUsersExist": "Il n'y a pas encore d'utilisateurs.",
- "PluginDescription": "La Gestion des utilisateurs vous permet d'ajouter des nouveaux utilisateurs, de modifier des existants et de leur assigner des persmissions pour voir ou administrer les sites web.",
+ "PluginDescription": "La gestion des utilisateurs vous permet d'ajouter de nouveaux utilisateurs, de modifier les existants et leur donner accès pour afficher ou administrer des sites web.",
"PrivAdmin": "Administration",
"PrivNone": "Pas d'accès",
"PrivView": "Vue",
@@ -63,7 +65,7 @@
"UsersManagementMainDescription": "Créez de nouveaux utilisateurs ou modifiez-les. Vous pourrez ensuite changer leurs permissions ci-dessus.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Quand les utilisateurs ne sont pas connectés et accèdent à Piwik, ils verront",
"YourUsernameCannotBeChanged": "Votre nom d'utilisateur ne peut pas être modifié.",
- "YourVisitsAreIgnoredOnDomain": "%sVos visites sont ignorées par Piwik sur %s %s(Le cookie d'exclusion de Piwik est présent sur votre navigateur)",
- "YourVisitsAreNotIgnored": "%sVos visites sont prises en compte par Piwik%s (le cookie d'exclusion de Piwik n'a pas été trouvé sur votre navigateur)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sVos visites sont ignorées par Piwik sur %2$s %3$s(Le cookie d'exclusion de Piwik est présent sur votre navigateur)",
+ "YourVisitsAreNotIgnored": "%1$sVos visites sont prises en compte par Piwik%2$s (le cookie d'exclusion de Piwik n'a pas été trouvé sur votre navigateur)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/gl.json b/plugins/UsersManager/lang/gl.json
index 361e2a6376..e9d99ac7d8 100644
--- a/plugins/UsersManager/lang/gl.json
+++ b/plugins/UsersManager/lang/gl.json
@@ -4,7 +4,6 @@
"Alias": "Alias",
"AllWebsites": "Todas as webs",
"ApplyToAllWebsites": "Aplicar a todos os sitios",
- "ChangeAllConfirm": "Está seguro que quere cambiar '%s' permisos en todas as páxinas web?",
"DeleteConfirm": "Está seguro de que desexa eliminar ao usuario %s?",
"Email": "Enderezo electrónico",
"ExceptionAccessValues": "O parámetro debe ter acceso a un dos seguintes valores: [%s]",
@@ -12,7 +11,6 @@
"ExceptionDeleteDoesNotExist": "O usuario '%s' non existe, polo que non pode ser eliminado.",
"ExceptionEditAnonymous": "O usuario anónimo non pode ser eliminado ou modificado, xa que é empregado por Piwik para identificar a usuarios non conectados. Por exemplo, pode facer as súas estatísticas públicas dando acceso á 'visión' aos visitantes 'anónimos'.",
"ExceptionInvalidEmail": "O enderezo electrónico non ten un formato correcto.",
- "ExceptionLoginExists": "O nome de usuario '%s' xa existe.",
"ExceptionUserDoesNotExist": "O usuario '%s' non existe.",
"ManageAccess": "Administrar o acceso",
"MenuUsers": "Usuario",
diff --git a/plugins/UsersManager/lang/hr.json b/plugins/UsersManager/lang/hr.json
index 5cd41ddfdb..a26e505771 100644
--- a/plugins/UsersManager/lang/hr.json
+++ b/plugins/UsersManager/lang/hr.json
@@ -2,7 +2,6 @@
"UsersManager": {
"ExceptionEmailExists": "Korisnik sa istim emailom '%s' već postoji.",
"ExceptionInvalidEmail": "Nije dobar format emaila.",
- "ExceptionLoginExists": "Korisnik '%s' već postoji.",
"MenuUsers": "Korisnici",
"MenuUserSettings": "Korisničke postavke",
"TypeYourPasswordAgain": "Ponovi novu lozinku.",
diff --git a/plugins/UsersManager/lang/hu.json b/plugins/UsersManager/lang/hu.json
index 0d5e19acf7..6e69ddd97e 100644
--- a/plugins/UsersManager/lang/hu.json
+++ b/plugins/UsersManager/lang/hu.json
@@ -4,7 +4,6 @@
"Alias": "Felhasználói név",
"AllWebsites": "Összes weboldal",
"ApplyToAllWebsites": "Alkalmazás minden weboldalra",
- "ChangeAllConfirm": "Biztosan meg akarod változtatni a(z) '%s' jogosultságot az összes weboldalon?",
"ClickHereToDeleteTheCookie": "Kattints ide a szűrés érdekében lementett süti törléséhez, hogy a továbbiakban a Piwik regisztrálja látogatásaid.",
"ClickHereToSetTheCookieOnDomain": "Kattints ide egy, a %s weboldalon történő látogatásaid kiszűréséhez szükséges süti böngésződben történő elmentéséhez.",
"DeleteConfirm": "Biztosan törölni akarod a következő felhasználót: %s?",
@@ -15,14 +14,11 @@
"ExceptionEditAnonymous": "'Névtelen' felhasználó nem szerkeszthető vagy törölhető. Ezt a Piwik használja a be nem lépett felhasználók azonosítására. Nyilvánossá teheted például statisztikáidat, ha 'megtekintési' jogosultságot adsz a 'névtelen' felhasználók számára.",
"ExceptionEmailExists": "'%s' e-mail címmel már létezik felhasználó.",
"ExceptionInvalidEmail": "Az e-mail cím nem megfelelő formátumú",
- "ExceptionInvalidLoginFormat": "A felhasználói név csak %1$s-%2$s karakter hosszúságú lehet, és csak betűket, számokat, aláhúzás, kötőjel és pont karaktereket tartalmazhat.",
- "ExceptionLoginExists": "'%s' nevű felhasználó már létezik.",
"ExceptionPasswordMD5HashExpected": "Az UsersManager.getTokenAuth funkció MD5-hashed jelszót vár (32 karakter hosszúságban). Kérjük, alkalmazd a md5() funkciót a jelszón, mielőtt meghívod ezt a metódust.",
"ExceptionUserDoesNotExist": "'%s' nevű felhasználó nem létezik.",
"ExcludeVisitsViaCookie": "Saját látogatások kiszűrése süti segítségével",
"ForAnonymousUsersReportDateToLoadByDefault": "A névtelen felhasználók számára alkalmazott alapértelmezett időintervallum",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Ha szeretnéd megváltoztatni a jelszót, írd ide be az újat. Egyéb esetben hagyd üresen ezt a mezőt.",
- "MainDescription": "Döntsd el, melyik felhasználónak milyen Piwik jogosultságokat biztosítasz a weboldaladon. Beállíthatod a jogosultságokat akár az összes weboldalhoz is egyszerre.",
"ManageAccess": "Hozzáférési jogosultságok kezelése",
"MenuAnonymousUserSettings": "Névtelen felhasználók beállításai",
"MenuUsers": "Felhasználók",
@@ -39,7 +35,7 @@
"UsersManagementMainDescription": "Új felhasználó hozzáadása, vagy a meglévők beállítása. Feljebb beállíthatod a jogosultságaikat.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Amikor a felhasználók nincsenek belépve a Piwik-be és így keresik fel a Piwik-et, akkor a következőhöz férjenek hozzá:",
"YourUsernameCannotBeChanged": "Felhasználói nevedet nem lehet megváltoztatni",
- "YourVisitsAreIgnoredOnDomain": "%sLátogatásaidat nem veszi figyelembe a Piwik itt: %s %s (a Piwik megfelelő sütijét megtaláltuk a böngésződben lementve).",
- "YourVisitsAreNotIgnored": "%sLátogatásaid nem kerültek ignorálásra a Piwik által%s (Az ehhez szükséges süti nem volt megtalálható a böngésződben.)"
+ "YourVisitsAreIgnoredOnDomain": "%1$sLátogatásaidat nem veszi figyelembe a Piwik itt: %2$s %3$s (a Piwik megfelelő sütijét megtaláltuk a böngésződben lementve).",
+ "YourVisitsAreNotIgnored": "%1$sLátogatásaid nem kerültek ignorálásra a Piwik által%2$s (Az ehhez szükséges süti nem volt megtalálható a böngésződben.)"
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/id.json b/plugins/UsersManager/lang/id.json
index 9f65524a42..f7d1755dd0 100644
--- a/plugins/UsersManager/lang/id.json
+++ b/plugins/UsersManager/lang/id.json
@@ -6,7 +6,6 @@
"AnonymousUserHasViewAccess": "Catatan: pengguna %1$s memiliki akses %2$s di situs ini.",
"AnonymousUserHasViewAccess2": "Laporan analitis dan informasi pengunjung Anda dapat dilihat secara terbuka.",
"ApplyToAllWebsites": "Terapkan ke seluruh situs",
- "ChangeAllConfirm": "Apakah Anda yakin mengubah perizinan '%s' seluruh situs?",
"ChangePasswordConfirm": "Mengubah sandi juga mengubah token_auth pengguba. Yakin melanjutkan?",
"ClickHereToDeleteTheCookie": "Klik di sini untuk menghapus kuki dan mengizinkan Piwik melacak kunjungan Anda",
"ClickHereToSetTheCookieOnDomain": "Klik di sini untuk mengatur kuki yang akan mengecualikan kunjungan Anda ke situs yang dilacak oleh Piwik %s",
@@ -19,16 +18,13 @@
"ExceptionEditAnonymous": "Pengguna anonim tidak dapat dihapus atau disunting. Piwik menggunakan pengguna ini untuk menjelaskan pengguna yang belum masuk. Misalnya, Anda dapat membuat statistik publik Anda dengan memberi hak `Tampil` untuk pengguna 'anonim'.",
"ExceptionEmailExists": "Pengguna dengan surel '%s' telah tersedia.",
"ExceptionInvalidEmail": "Surel tidak memiliki bentuk sahih.",
- "ExceptionInvalidLoginFormat": "Nama-id harus memiliki panjang antara %1$s dan %2$s karakter dan mengandung hanya huruf, angka, atau karakter '_' atau '-' atau '.' atau '@' atau '+'",
"ExceptionInvalidPassword": "Panjang sandi harus antara %1$s dan %2$s karakter.",
- "ExceptionLoginExists": "Nama-id '%s' telah tersedia.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth membutuhkan sandi acak MD5 (32 karakter larik panjang). Silakan panggil fungsi md5() dalam sandi sebelum memanggil metode ini.",
"ExceptionUserDoesNotExist": "Pengguan '%s' tida ada.",
"ExcludeVisitsViaCookie": "Kecualikan kunjungan Anda menggunakan kuki",
"ForAnonymousUsersReportDateToLoadByDefault": "Tanggal laporan yang dimuat secara asali untuk pengguna anonim",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Bila Anda ingin mengganti sandi, ketik sandi baru. Bila tidak, biarkan ini kosong.",
"InjectedHostCannotChangePwd": "Sekarang Anda berkunjung dengan inang yang tidak dikenal (%1$s). Anda tidak dapat mengubah sandi Anda hingga masalah ini diperbaiki.",
- "MainDescription": "Tentukan pengguna yang memilik akses Piwik ke situs Anda. Anda juga dapat mengatur perizinan seluruh Situs dalam satu kali.",
"ManageAccess": "Atur akses",
"MenuAnonymousUserSettings": "Pengaturan pengguna anonim",
"MenuUsers": "Pengguna",
@@ -47,7 +43,7 @@
"UsersManagementMainDescription": "Menciptakan pengguna baru atau memperbarui pengguna yang telah ada. Anda dapat mengatur perizinan di atas.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Bila pengguna tidak masuk-log dan mengunjungi Piwik, mereka harus mengakses",
"YourUsernameCannotBeChanged": "Nama-id Anda tidak dapat diubah.",
- "YourVisitsAreIgnoredOnDomain": "%sKunjungan Anda diabaikan oleh Piwik dalam %s %s (kuki pengecualian ditemukan dalam peramban Anda).",
- "YourVisitsAreNotIgnored": "%sKunjungan Anda tidak diabaikan oleh Piwik%s (kuki pengecualian tidak ditemukan dalam peramban Anda)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sKunjungan Anda diabaikan oleh Piwik dalam %2$s %3$s (kuki pengecualian ditemukan dalam peramban Anda).",
+ "YourVisitsAreNotIgnored": "%1$sKunjungan Anda tidak diabaikan oleh Piwik%2$s (kuki pengecualian tidak ditemukan dalam peramban Anda)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/it.json b/plugins/UsersManager/lang/it.json
index 0b65789416..aad1358da8 100644
--- a/plugins/UsersManager/lang/it.json
+++ b/plugins/UsersManager/lang/it.json
@@ -7,16 +7,17 @@
"AnonymousUserHasViewAccess": "Nota: l'utente %1$s ha un accesso %2$s a questo sito.",
"AnonymousUserHasViewAccess2": "I tuoi report statistici e le informazioni sui tuoi visitatori sono visibili pubblicamente.",
"ApplyToAllWebsites": "Applica a tutti i siti",
- "ChangeAllConfirm": "Sei sicuro di voler cambiare i permessi di '%s' in tutti i siti?",
+ "ChangeAllConfirm": "Sei sicuro di voler dare accesso '%s' a tutti i siti web?",
"ChangePasswordConfirm": "Il cambio password cambierà anche il token_auth dell'utente. Vuoi veramente continuare?",
"ClickHereToDeleteTheCookie": "Cancella il cookie affinché Piwik tracci nuovamente le tue visite",
"ClickHereToSetTheCookieOnDomain": "Crea un cookie che escluderà le tue visite dai siti monitorati con Piwik %s",
"ConfirmGrantSuperUserAccess": "Vuoi veramente dare a '%s' l'accesso Super User? Attenzione: l'utente avrà accesso a tutti i siti web e potrà eseguire attività amministrative.",
"ConfirmProhibitMySuperUserAccess": "%s, vuoi veramente rimuovere il tuo accesso Super User? Perderai tutti i permessi e l'accesso a tutti i siti web e verrai escluso da Piwik.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Vuoi veramente togliere l'accesso Super User a '%s'? L'utente perderà tutti i permessi e l'accesso a tutti i siti web. Assicurati di impostare, se necessario, i permessi in seguito.",
+ "ConfirmProhibitOtherUsersSuperUserAccess": "Vuoi veramente togliere l'accesso Super User a '%s'? L'utente perderà tutti i permessi e l'accesso a tutti i siti web. Assicurati di dare successivamente l'accesso ai siti richiesti, se necessario.",
"DeleteConfirm": "Sei sicuro di voler cancellare l'utente '%s'?",
"Email": "Email",
"EmailYourAdministrator": "%1$sManda un'email al tuo amministratore su questo problema%2$s.",
+ "EnterUsernameOrEmail": "Inserisci nome utente o indirizzo email",
"ExceptionAccessValues": "Il parametro per l'accesso deve avere uno dei seguenti valori: [ %s ]",
"ExceptionAdminAnonymous": "Non puoi dare privilegi da amministratore agli utenti anonimi.",
"ExceptionDeleteDoesNotExist": "L'utente '%s' non esiste, di conseguenza non può essere eliminato.",
@@ -26,18 +27,23 @@
"ExceptionInvalidEmail": "L'e-mail inserita non è valida.",
"ExceptionInvalidLoginFormat": "Il nome utente deve essere lungo tra %1$s e %2$s caratteri e contenere solo lettere, numeri o i caratteri '_' o '-' o '.' o '@' o '+'",
"ExceptionInvalidPassword": "La lunghezza della password deve essere tra %1$s e %2$s caratteri.",
- "ExceptionLoginExists": "L'utente '%s' già esiste.",
+ "ExceptionLoginExists": "Il nome utente '%s' esiste già.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth si aspetta una password MD5 hash (stringa lunga 32 caratteri). Si prega di richiamare la funzione md5() sulla password prima di richiamare questo metodo.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "È impossibile togliere l'accesso Super User all'utente '%s'.",
"ExceptionSuperUserAccess": "Questo utente ha l'accesso Super User e ha già i permessi per accedere e modificare tutti i siti web in Piwik. Puoi togliere l'accesso Super User a questo utente e provare di nuovo.",
"ExceptionUserDoesNotExist": "L'utente '%s' non esiste.",
"ExceptionYouMustGrantSuperUserAccessFirst": "Ci deve essere almeno un utente con l'accesso Super User. Si prega di dare prima l'accesso Super User a un altro utente.",
+ "ExceptionUserHasViewAccessAlready": "Questo utente ha già accesso a questo sito.",
+ "ExceptionNoValueForUsernameOrEmail": "Per favore inserisci un nome utente o un indirizzo email.",
"ExcludeVisitsViaCookie": "Escludi le tue visite usando un cookie",
"ForAnonymousUsersReportDateToLoadByDefault": "Per utenti anonimi, data report da caricare di default",
+ "GiveViewAccess": "Dai l'accesso in lettura",
+ "GiveViewAccessTitle": "Dai a un utente esistente l'accesso per vedere i report per %s",
+ "GiveViewAccessInstructions": "Per dare a un utente esistente l'accesso in visione per %s inserisci il nome utente o l'indirizzo email di un utente esistente",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Se vuoi cambiare la password scrivine qui una nuova. Altrimenti lascia pure in bianco.",
"InjectedHostCannotChangePwd": "Al momento stai navigando da un host sconosciuto (%1$s). Non è possibile modificare la password fino a quando questo problema non verrà risolto.",
"LastSeen": "Visto l'ultima volta",
- "MainDescription": "Decidi quali utenti possono accedere alle statistiche Piwik dei siti web. Puoi anche impostare i permessi di tutti i siti in una volta sola.",
+ "MainDescription": "Decidi quali utenti devono avere accesso ai tuoi siti web. Puoi anche dare l'accesso a tutti i siti web in una volta sola scegliendo \"Applica a tutti i siti web\" nel selettore dei siti web.",
"ManageAccess": "Amministra l'accesso",
"MenuAnonymousUserSettings": "Impostazioni utente anonimo",
"MenuUsers": "Utenti",
@@ -46,7 +52,7 @@
"PersonalSettings": "Impostazioni personali",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Nota: Non puoi cambiare le impostazioni in questa sezione perché nessun sito è accessibile dagli utenti anonimi.",
"NoUsersExist": "Non ci sono ancora utenti.",
- "PluginDescription": "La Gestione Utenti ti permette di aggiungere nuovi utenti, modificare quelli esistenti e assegnare loro i permessi per vedere o amministrare i siti web.",
+ "PluginDescription": "La Gestione Utenti ti permette di aggiungere nuovi utenti, modificare utenti esistenti e dare loro l'accesso per vedere o amministrare i siti web.",
"PrivAdmin": "Amministra Piwik",
"PrivNone": "Nessun accesso",
"PrivView": "Vista",
@@ -63,7 +69,7 @@
"UsersManagementMainDescription": "Crea nuovi utenti o aggiorna quelli esistenti. Puoi anche scegliere quali operazioni permettere tramite la tabella qui sopra.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Quando gli utenti non si sono autenticati in Piwik, possono accedere a",
"YourUsernameCannotBeChanged": "Il tuo nome utente non può essere cambiato.",
- "YourVisitsAreIgnoredOnDomain": "%sLe tue visite sono ignorate da Piwik su %s %s (il cookie 'ignora visite' è stato trovato nel tuo browser).",
- "YourVisitsAreNotIgnored": "%sLe tue visite non sono ignorate da Piwik%s (il cookie 'ignora visite' non è stato trovato nel tuo browser)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sLe tue visite sono ignorate da Piwik %2$s %3$s (il cookie 'ignora visite' di Piwik è stato trovato nel tuo browser).",
+ "YourVisitsAreNotIgnored": "%1$sLe tue visite non sono ignorate da Piwik%2$s (il cookie 'ignora visite' di Piwik non è stato trovato nel tuo browser)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/ja.json b/plugins/UsersManager/lang/ja.json
index 2d1bf2acb5..a6943e10e9 100644
--- a/plugins/UsersManager/lang/ja.json
+++ b/plugins/UsersManager/lang/ja.json
@@ -7,13 +7,11 @@
"AnonymousUserHasViewAccess": "注) %1$s ユーザーはウェブサイトへの %2$s アクセス権を持っています。",
"AnonymousUserHasViewAccess2": "あなたの解析レポートとビジター情報は、誰でも閲覧可能です。",
"ApplyToAllWebsites": "全ウェブサイトに適用",
- "ChangeAllConfirm": "本当に全ウェブサイトでの '%s' のパーミッションを変更しますか?",
"ChangePasswordConfirm": "パスワードを変更すると、トークンも変更されます。本当に続けますか?",
"ClickHereToDeleteTheCookie": "Cookie を削除し、Piwik があなた自身のビジットもトラッキングするようにするには、ここをクリックします。",
"ClickHereToSetTheCookieOnDomain": "%s の Piwik にトラッキングされるウェブサイトでの、あなた自身のビジットを除外するための Cookie をセットするには、ここをクリックします。",
"ConfirmGrantSuperUserAccess": "'%s' に対し、スーパーユーザーアクセス権を本当に付与してよろしいですか? 警告:スーパーユーザーアクセス権を付与されたユーザーは、すべてのウェブサイトへのアクセス権を持ち、あらゆる管理タスクを実行できるようになります。",
"ConfirmProhibitMySuperUserAccess": "%s、あなた自身のスーパーユーザーアクセス権を本当に削除してよろしいですか? 削除後、すべてのウェブサイトへの全権限とアクセスを失い、Piwik からログアウトされます。",
- "ConfirmProhibitOtherUsersSuperUserAccess": "スーパーユーザーアクセス権を '%s' から本当に削除してよろしいですか? スーパーユーザーアクセス権を削除されたユーザーは、すべてのウェブサイトへの全権限とアクセスを失います。削除後は、必要に応じて各ウェブサイトへの権限を設定してください。",
"DeleteConfirm": "本当にユーザー %s を削除しますか?",
"Email": "メール",
"EmailYourAdministrator": "%1$sE-mail your administrator about this problem%2$s 。",
@@ -24,9 +22,7 @@
"ExceptionEditAnonymous": "anonymous ユーザーは、Piwik がログインしていないユーザーを定義するために使用するため、編集や削除はできません。 例えば、'anonymous' ユーザーに '表示' 権限を与えることによって、統計をパブリックにすることができます。",
"ExceptionEmailExists": "メールアドレスが '%s' のユーザーはすでに存在します。",
"ExceptionInvalidEmail": "メールアドレスが有効な形式ではありません。",
- "ExceptionInvalidLoginFormat": "ユーザー名は、英数字、'_'(アンダーバー)、'-'(ハイフン)、'@'(アットマーク)のみを含む、%1$s~%2$s 文字である必要があります。",
"ExceptionInvalidPassword": "パスワードの長さは %1$s〜%2$s 文字である必要があります。",
- "ExceptionLoginExists": "ユーザー名 '%s' はすでに存在します。",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth は、MD5 ハッシュ値のパスワード(32文字長の文字列)を想定しています。 このメソッドをコールする前に、パスワードに対して md5() 関数をコールしてください。",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "スーパーユーザーアクセスをユーザー '%s' から削除することができません。",
"ExceptionSuperUserAccess": "このユーザーはスーパーユーザーアクセス権を持ち、既に Piwik の全ウェブサイトへのアクセスおよび修正の権限を持っています。このユーザーからスーパーユーザーアクセス権を削除し、再度試すことができます。",
@@ -37,7 +33,6 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "パスワードを変更したい場合は、新しいパスワードを入力します。 変更しない場合は、空欄のままにします。",
"InjectedHostCannotChangePwd": "現在未知のホスト (%1$s) で訪問しています。この問題が解決するまで、パスワードの変更ができません。",
"LastSeen": "最終表示",
- "MainDescription": "各ユーザーのウェブサイト上での Piwik 権限を決定します。 また、全ウェブサイトのパーミッションを一度に設定することもできます。",
"ManageAccess": "権限の管理",
"MenuAnonymousUserSettings": "anonymous ユーザーの設定",
"MenuUsers": "ユーザー",
@@ -46,7 +41,6 @@
"PersonalSettings": "個人設定",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "注) 匿名ユーザーがアクセスできるウェブサイトをお持ちでないため、このセクションでは設定の変更ができません。",
"NoUsersExist": "まだユーザーがいません。",
- "PluginDescription": "ユーザー管理では、新しいユーザーの追加、既存ユーザーの編集、および web サイトの管理や閲覧の権限を設定できます。",
"PrivAdmin": "管理",
"PrivNone": "権限なし",
"PrivView": "ビュー",
@@ -63,7 +57,7 @@
"UsersManagementMainDescription": "新規ユーザーの作成や、既存ユーザーを更新します。 その後、上でユーザーのパーミッションの設定ができます。",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "未ログインのユーザーが Piwik にアクセスした際に表示する画面",
"YourUsernameCannotBeChanged": "あなたのユーザー名を変更することはできません。",
- "YourVisitsAreIgnoredOnDomain": "%sあなた自身のビジットは、%s の Piwik に無視されています%s(ブラウザで Piwik 無視用の Cookie が見つかりました)。",
- "YourVisitsAreNotIgnored": "%sあなた自身のビジットは、Piwik に無視されていません%s(ブラウザで Piwik 無視用の Cookie が見つかりませんでした)。"
+ "YourVisitsAreIgnoredOnDomain": "%1$sあなた自身のビジットは、%2$s の Piwik に無視されています%3$s(ブラウザで Piwik 無視用の Cookie が見つかりました)。",
+ "YourVisitsAreNotIgnored": "%1$sあなた自身のビジットは、Piwik に無視されていません%2$s(ブラウザで Piwik 無視用の Cookie が見つかりませんでした)。"
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/ko.json b/plugins/UsersManager/lang/ko.json
index 98522e9e37..1826f9914e 100644
--- a/plugins/UsersManager/lang/ko.json
+++ b/plugins/UsersManager/lang/ko.json
@@ -3,49 +3,66 @@
"AddUser": "새 사용자 추가",
"Alias": "별명",
"AllWebsites": "모든 웹사이트",
+ "AnonymousUser": "익명 사용자",
+ "AnonymousUserHasViewAccess": "참고: %1$s 사용자는 이 웹사이트의 %2$s 접근을 가집니다.",
+ "AnonymousUserHasViewAccess2": "당신의 분석 보고서와 방문자 정보가 공개됩니다.",
"ApplyToAllWebsites": "모든 웹사이트에 적용",
- "ChangeAllConfirm": "모든 웹사이트에 대한 '%s' 권한을 변경하시겠습니까?",
"ChangePasswordConfirm": "비밀번호를 변경하면 토큰도 변경됩니다. 정말 계속 하시겠습니까?",
"ClickHereToDeleteTheCookie": "Cookie를 삭제하고 Piwik이 당신의 방문도 추적하려면 여기를 클릭합니다.",
"ClickHereToSetTheCookieOnDomain": "%s의 Piwik에 추적하는 웹사이트에서 자신의 방문을 제외하는 Cookie를 설정하려면 여기를 클릭합니다.",
+ "ConfirmGrantSuperUserAccess": "정말 '%s'에게 슈퍼 유저 권한을 부여하시겠습니까? 경고: 해당 사용자는 모든 웹사이트에 대해 접근이 가능하며 관리자가 할 수 있는 일을 할 수 있습니다.",
+ "ConfirmProhibitMySuperUserAccess": "%s, 정말 당신의 슈퍼 유저 권한을 제거하시겠습니까? 당신은 모든 사이트에 대한 모든 권한과 접근이 제거되고 Piwik에서 로그아웃이 진행됩니다.",
"DeleteConfirm": "사용자 %s 님을 삭제하시겠습니까?",
"Email": "이메일",
"EmailYourAdministrator": "%1$s이 문제를 관리자에게 이메일로 보내기%2$s.",
+ "EnterUsernameOrEmail": "사용자 이름 혹은 이메일 주소를 넣어주세요.",
"ExceptionAccessValues": "파라미터 접근은 다음과 같은 값중에 하나여야 합니다: [ %s ]",
"ExceptionAdminAnonymous": "'관리자' 권한을 '익명' 사용자에게 줄 수 없습니다.",
"ExceptionDeleteDoesNotExist": "사용자 '%s' 님은 존재하지 않아서 삭제가 불가능합니다.",
+ "ExceptionDeleteOnlyUserWithSuperUserAccess": "사용자 '%s'를 제거할 수 없습니다.",
"ExceptionEditAnonymous": "익명 사용자는 편집이나 삭제를 할 수 없습니다. Piwik에서 아직 로그인하지 않은 사용자를 골라낼 때 사용하기 때문입니다. 예를 들어, '보기' 접근을 '익명' 사용자에게 주어서 당신의 상태를 공개할 수 있습니다.",
"ExceptionEmailExists": "'%s' 의 이메일을 가진 사용자는 이미 존재합니다.",
"ExceptionInvalidEmail": "이메일이 유효한 형식이 아닙니다.",
- "ExceptionInvalidLoginFormat": "아이디는 %1$s 에서 %2$s 사이의 글자 수여야 하고 오직 문자,숫자, 또는 '_' 나 '-' 또는 '.'만 포함해야 합니다.",
"ExceptionInvalidPassword": "비밀번호 길이는 %1$s〜%2$s 문자이어야합니다.",
- "ExceptionLoginExists": "'%s' 님은 이미 존재합니다.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth는 MD5 해시 값의 비밀번호 (32자 길이의 문자열)을 사용하고 있습니다. 이 메소드를 호출하기 전에 암호에 md5() 함수를 호출합니다.",
+ "ExceptionRemoveSuperUserAccessOnlySuperUser": "사용자 '%s'의 슈퍼 유저 권한 제거가 가능하지 않습니다.",
+ "ExceptionSuperUserAccess": "해당 사용자는 슈퍼 유저 권한을 가지고 있기에 Piwik 내 모든 웹사이트에 대해서 접근 가능하고 수정 역시 가능합니다. 해당 유저의 슈퍼 유저 권한을 제거한 후 다시 시도해보세요.",
"ExceptionUserDoesNotExist": "사용자 '%s' 님은 존재하지 않습니다.",
+ "ExceptionYouMustGrantSuperUserAccessFirst": "최소 한 명의 사용자가 슈퍼 유저 권한을 가져야 합니다. 다른 사용자에게 먼저 슈퍼 유저 권한을 부여해주세요.",
+ "ExceptionUserHasViewAccessAlready": "이미 해당 사용자는 해당 웹사이트에 접근이 가능합니다.",
+ "ExceptionNoValueForUsernameOrEmail": "사용자 이름 혹은 이메일 주소를 넣어주세요.",
"ExcludeVisitsViaCookie": "자신의 방문 제외 (Cookie 사용)",
"ForAnonymousUsersReportDateToLoadByDefault": "anonymous 사용자를 위한 기본 보고서 날짜",
+ "GiveViewAccess": "보기 권한 주기",
+ "GiveViewAccessTitle": "%s 보고서를 볼 수 있는 권한을 현 사용자에게 부여",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "비밀번호를 변경하려면 새 비밀번호를 입력합니다. 변경하지 않으면 비워 둡니다.",
"InjectedHostCannotChangePwd": "현재 알 수 없는 호스트 (%1$s)로 방문했습니다. 이 문제가 해결될 때까지 사용자는 자신의 비밀번호를 변경할 수 없습니다.",
- "MainDescription": "어떤 사용자가 어떤 Piwik 접근을 할 지 결정할 수 있습니다. 모든 웹사이트의 권한을 한번에 설정할 수 있습니다.",
+ "LastSeen": "최근 본",
"ManageAccess": "관리 접근",
"MenuAnonymousUserSettings": "anonymous 사용자 설정",
"MenuUsers": "사용자",
"MenuUserSettings": "사용자 설정",
+ "MenuPersonal": "개인",
+ "PersonalSettings": "개인 설정",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "참고: 익명 사용자가 접근할 수있는 웹사이트가 없기 때문에 당신은 이 섹션의 설정을 변경할 수 없습니다.",
+ "NoUsersExist": "아직 사용자가 없습니다.",
"PrivAdmin": "관리자",
"PrivNone": "접근할 수 없음",
"PrivView": "보기",
"ReportDateToLoadByDefault": "기본 보고서 날짜",
"ReportToLoadByDefault": "기본 보고서",
+ "SuperUserAccessManagement": "슈퍼 유저 권한 관리",
+ "SuperUserAccessManagementGrantMore": "Piwik 내 다른 사용자에게 슈퍼 유저 권한을 줄 수 있습니다. 이 기능을 조심히 사용해주세요.",
+ "SuperUserAccessManagementMainDescription": "슈퍼 유저는 가장 높은 권한을 가집니다. 그들은 모든 관리 업무를 수행할 수 있습니다. 여기에는 감시할 새로운 웹사이트 추가, 새로운 사용자 추가, 사용자 권한 변경, 플러그인 활성화 및 비활성화, 마켓플레이스에서 새로운 플러그인 설치까지 가능합니다.",
"TheLoginScreen": "로그인 화면",
"ThereAreCurrentlyNRegisteredUsers": "현재 %s명의 사용자가 등록되어 있습니다.",
"TypeYourPasswordAgain": "새 비밀번호를 다시 입력합니다.",
"User": "사용자",
"UsersManagement": "사용자 관리",
"UsersManagementMainDescription": "새로운 사용자를 생성하거나 또는 존재하는 사용자를 업데이트할 수 있습니다. 그리고 위에서 그들의 권한을 설정할 수 있습니다.",
- "WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "로그인 않한 사용자가 Piwik에 접근할 때 표시하는 화면",
+ "WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "로그인 하지 않은 사용자가 Piwik에 접근할 때 표시하는 화면",
"YourUsernameCannotBeChanged": "당신의 사용자 이름을 변경할 수 없습니다.",
- "YourVisitsAreIgnoredOnDomain": "%s당신의 방문은%s Piwik에 무시됩니다%s (브라우저에서 Piwik 무시 용 Cookie 발견).",
- "YourVisitsAreNotIgnored": "%s당신의 방문은 Piwik에 무시하지 않습니다%s (브라우저에서 Piwik 무시의 Cookie를 찾을 수 없습니다)."
+ "YourVisitsAreIgnoredOnDomain": "%1$s당신의 방문은%2$s Piwik에 무시됩니다%3$s (브라우저에서 Piwik 무시 용 Cookie 발견).",
+ "YourVisitsAreNotIgnored": "%1$s당신의 방문은 Piwik에 무시하지 않습니다%2$s (브라우저에서 Piwik 무시의 Cookie를 찾을 수 없습니다)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/lt.json b/plugins/UsersManager/lang/lt.json
index 6a869a00ec..a16a9f5f9a 100644
--- a/plugins/UsersManager/lang/lt.json
+++ b/plugins/UsersManager/lang/lt.json
@@ -3,38 +3,49 @@
"AddUser": "Pridėti naują naudotoją",
"Alias": "Alternatyvus vardas",
"AllWebsites": "Visos svetainės",
+ "AnonymousUser": "Anoniminis naudotojas",
+ "AnonymousUserHasViewAccess2": "Jūsų analitikos ataskaitos ir jūsų naudotojų informacija yra viešai matoma.",
"ApplyToAllWebsites": "Taikyti visoms svetainėms",
- "ChangeAllConfirm": "Ar tikrai norite pakeisti '%s' leidimus visoms svetainėms?",
+ "ChangeAllConfirm": "Ar tikrai norite suteikti \"%s\" prieigą prie visų svetainių?",
+ "ChangePasswordConfirm": "Slaptažodžio pakeitimas taip pat pakeis naudotojo token_auth. Ar tikrai norite tęsti?",
"ClickHereToDeleteTheCookie": "Spauskite čia, kad ištrintumėte slapuką ir Piwik stebėtų Jūsų apsilankymus",
"ClickHereToSetTheCookieOnDomain": "Spauskite čia, kad sukurtumėte slapuką, kuris neleis Piwik sekti Jūsų apsilankymų %s",
+ "ConfirmGrantSuperUserAccess": "Ar tikrai norite suteikti \"%s\" Super naudotojo prieigą? Įspėjimas: naudotojoas turės prieigą prie visų svetainių ir galės atlikti valdymo užduotis.",
+ "ConfirmProhibitMySuperUserAccess": "%s, ar tikrai norite pašalinti savo paties Super naudotojo prieigą? Jūs prarasite visus leidimus ir prieigą prie visų svetainių bei būsite atjungti nuo Piwik.",
"DeleteConfirm": "Ar tikrai norite pašalinti naudotoją %s?",
"Email": "El. paštas",
"ExceptionAccessValues": "Parametras access privalo turėti vieną iš šių reikšmių: [ %s ]",
"ExceptionAdminAnonymous": "Negalite priskirti 'administratorius' teisių 'anonimas' naudotojui.",
"ExceptionDeleteDoesNotExist": "Naudotojas '%s' neegzistuoja, todėl negali būti ištrintas.",
+ "ExceptionDeleteOnlyUserWithSuperUserAccess": "Naudotojo \"%s\" ištrynimas yra negalimas.",
"ExceptionEditAnonymous": "Naudotojas 'anonimas' negali būti keičiamas ar šalinamas. Jis naudojamas nustatyti naudotoją, kuris dar neprisijungęs. Pavyzdžiui, Jūs galite padaryti savo statistinius duomenis viešais suteikdami 'matyti' teises naudotojui 'anonimas'.",
"ExceptionEmailExists": "Naudotojas su tokiu el. paštu '%s' jau yra.",
"ExceptionInvalidEmail": "Netinkamas el. pašto formatas.",
- "ExceptionInvalidLoginFormat": "Registracijos vardas turi būti sudarytas iš %1$s - %2$s simbolių ir gali turėti raides, skaičius, arba simbolius '_', '-', '.'",
- "ExceptionLoginExists": "Registracijos vardas '%s' jau yra.",
+ "ExceptionInvalidPassword": "Slaptažodžio ilgis privalo būti tarp %1$s ir %2$s simbolių.",
+ "ExceptionLoginExists": "Naudotojo vardas \"%s\" jau yra.",
+ "ExceptionRemoveSuperUserAccessOnlySuperUser": "Super naudotojo prieigos teisių pašalinimas iš naudotojo \"%s\" yra negalimas.",
"ExceptionUserDoesNotExist": "Naudotojas '%s' neegzistuoja.",
+ "ExceptionUserHasViewAccessAlready": "Šis naudotojas jau turi prieigą prie šios svetainės.",
"ExcludeVisitsViaCookie": "Neįtraukite savo apsilankymų pasinaudoję slapuku",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Jei norite pakeisti slaptažodį, įrašykite naują. Jei ne, palikite laukelį tuščią.",
- "MainDescription": "Nuspręskite kuris naudotojas kokias Piwik teises turės Jūsų svetainei. Taip pat galite sukurti leidimus visoms svetainėms iš karto.",
"ManageAccess": "Administruoti teises",
"MenuAnonymousUserSettings": "Anonimo nustatymai",
"MenuUsers": "Naudotojai",
"MenuUserSettings": "Naudotojo nustatymai",
+ "PersonalSettings": "Asmeniniai nustatymai",
+ "NoUsersExist": "Naudotojų kol kas nėra.",
"PrivAdmin": "Administruoti",
"PrivNone": "Neleidžiama",
"PrivView": "Matyti",
"TheLoginScreen": "Prisijungimo langas",
+ "ThereAreCurrentlyNRegisteredUsers": "Šiuo metu yra %s registruotų naudotojų.",
"TypeYourPasswordAgain": "Pakartokite savo naują slaptažodį.",
"User": "Naudotojas",
"UsersManagement": "Naudotojų valdymas",
"UsersManagementMainDescription": "Kurkite naujus naudotojus arba keiskite jau esančius. Po to aukščiau galite parinkti jiems leidimus.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Kai naudotojai neprisijungę apsilanko Piwik, jie turi pasiekti",
"YourUsernameCannotBeChanged": "Jūsų naudotojo vardas negali būti pakeistas.",
- "YourVisitsAreIgnoredOnDomain": "%sJūsų apsilankymai yra ignoruojami Piwik %s %s (Piwik ignoravimo slapukas buvo aptiktas Jūsų naršyklėje)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sJūsų apsilankymai yra ignoruojami Piwik %2$s %3$s (Piwik ignoravimo slapukas buvo aptiktas Jūsų naršyklėje).",
+ "YourVisitsAreNotIgnored": "%1$sJūsų apsilankymai nėra ignoruojami Piwik%2$s (Piwik ignoravimo slapukas jūsų naršyklėje nebuvo aptiktas)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/lv.json b/plugins/UsersManager/lang/lv.json
index 782a6bd555..4e21dca9b0 100644
--- a/plugins/UsersManager/lang/lv.json
+++ b/plugins/UsersManager/lang/lv.json
@@ -4,7 +4,6 @@
"Alias": "Aizstājējvārds",
"AllWebsites": "Visas vietnes",
"ApplyToAllWebsites": "Apstipriniet visām vietnēm",
- "ChangeAllConfirm": "Vai tiešām vēlaties mainīt '%s' pieejas atļaujas visām vietnēm?",
"ChangePasswordConfirm": "Mainot lietotāja paroli, tiks izmainīts arī lietotāja token_auth. Vai tiešām vēlaties turpināt?",
"ClickHereToDeleteTheCookie": "Klikšķiniet šeit, lai dzēstu sīkdatni un atļautu Piwik izsekot Jūsu pašu apmeklējumus",
"ClickHereToSetTheCookieOnDomain": "Klikšķiniet šeit, lai iestatītu sīkdatni, kas aizliegs izsekot Jūsu pašu apmeklējumus %s",
@@ -16,15 +15,12 @@
"ExceptionEditAnonymous": "Anonīmo lietotāju nav iespējams labot vai dzēst. Tas tiek izmantots, lai definētu lietotāju, kurš vēl nav pieteicies. Piemēram, Jūs varat publiskot statistiku atļaujot apskates pieeju anonīmajam lietotājam.",
"ExceptionEmailExists": "Lietotājs ar e-pasta adresi '%s' jau eksistē.",
"ExceptionInvalidEmail": "E-pasta adresei nav pareizs formāts",
- "ExceptionInvalidLoginFormat": "Lietotājvārdam jābūt garumā no %1$s līdz %2$s simboliem un jāsatur tikai cipari, burti vai simboli '_', '-', '.', '@', '+'",
"ExceptionInvalidPassword": "Parolei jābūt garumā no %1$s līdz %2$s simboliem.",
- "ExceptionLoginExists": "Lietotājvārds '%s' jau eksistē.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth sagaida MD5 kodētu paroli (32 simbolu garu tekstu). Lūdzu pielietojiet md5() metodi parolei pirms izsaucat šo metodi.",
"ExceptionUserDoesNotExist": "Lietotājs '%s' neeksistē.",
"ExcludeVisitsViaCookie": "Neiekļaut Jūsu pašu apmeklējumus izmantojot sīkdatni",
"ForAnonymousUsersReportDateToLoadByDefault": "Atskaite, kuru ielādēt pēc noklusējuma anonīmiem lietotājiem",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Ja vēlaties mainīt paroli, ievadiet jauno. Pretējā gadījumā atstājiet tukšu.",
- "MainDescription": "Izlemjiet kuriem lietotājiem ir kādas Piwik pieejas atļaujas Jūsu vietnēm. Jūs varat arī uzstādīt pieejas atļaujas visām vietnēm vienlaicīgi.",
"ManageAccess": "Pārvaldiet pieejas",
"MenuAnonymousUserSettings": "Anonīmu lietotāju iestatījumi",
"MenuUsers": "Lietotāji",
@@ -42,6 +38,6 @@
"UsersManagementMainDescription": "Izveidojiet jaunus vai labojiet esošu lietotāju iestatījumus. Augstāk Jūs varat uzstādīt šo lietotāju pieejas atļaujas.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Kad lietotāji nav pieteikušies un apmeklē Piwik, tiem rādam",
"YourUsernameCannotBeChanged": "Jūsu lietotājvārdu nav iespējams izmainīt.",
- "YourVisitsAreIgnoredOnDomain": "%sJūsu apmeklējumi tiek ignorēti %s %s (pārlūkā tika atrasta Piwik ignorēšanas sīkdatne)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sJūsu apmeklējumi tiek ignorēti %2$s %3$s (pārlūkā tika atrasta Piwik ignorēšanas sīkdatne)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/nb.json b/plugins/UsersManager/lang/nb.json
index a73b5ee55f..718a8855e5 100644
--- a/plugins/UsersManager/lang/nb.json
+++ b/plugins/UsersManager/lang/nb.json
@@ -7,13 +7,12 @@
"AnonymousUserHasViewAccess": "Merk: brukeren %1$s har %2$s tilgang til dette nettstedet.",
"AnonymousUserHasViewAccess2": "Dine analyserapporter og informasjon om dine besøkere er offentlig tilgjengelig.",
"ApplyToAllWebsites": "Legg til alle nettsteder",
- "ChangeAllConfirm": "Er du sikker på at du vil endre «%s» rettigheter på alle nettstedene?",
+ "ChangeAllConfirm": "Er du sikker på at du vil gi «%s» tilgang til alle nettsteder?",
"ChangePasswordConfirm": "Endrer du passordet vil du også endre brukerens token_auth. Vil du virkelig fortsette?",
"ClickHereToDeleteTheCookie": "Klikk her for å slette informasjonskapselen og la Piwik spore dine besøk",
"ClickHereToSetTheCookieOnDomain": "Klikk her for å sette en informasjonskapsel som vil ekskludere dine besøk på nettsteder som spores av Piwik på %s",
"ConfirmGrantSuperUserAccess": "Vil du virkelig gi «%s» superbrukertilgang? Advarsel: brukeren vil ha tilgang til alle nettsteder og være i stand til å utføre administrative oppgaver.",
"ConfirmProhibitMySuperUserAccess": "%s, vil du virkelig fjerne din egen superbrukertilgang? Du vil miste alle rettigheter og tilgang til alle nettsteder og bli logget ut av Piwik.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Vil du virkelig fjerne superbrukertilgangen til «%s»? Brukeren vil miste alle rettigheter og tilgang til alle nettsteder. Forsikre deg om at du setter rettigheter som nødvendig til ulike nettsteder etterpå.",
"DeleteConfirm": "Er du sikker på at du vil slette brukeren %s?",
"Email": "E-post",
"EmailYourAdministrator": "%1$sSend e-post til din administrator om dette problemet%2$s.",
@@ -24,9 +23,7 @@
"ExceptionEditAnonymous": "Den anonyme brukeren kan ikke bli redigert eller slettet. Den blir brukt av Piwik for å definere en bruker som ikke har blitt logget inn ennå. Du kan for eksempel gjøre statistikken din offentlig ved å gi 'view'-tilgang til 'anonymous'-brukeren.",
"ExceptionEmailExists": "Bruker med e-post «%s» eksisterer allerede.",
"ExceptionInvalidEmail": "Epost-adressen er ikke i gyldig format.",
- "ExceptionInvalidLoginFormat": "Brukernavnet må være mellom %1$s og %2$s tegn langt og inneholde kun bokstaver, tall eller tegnene _ - . @ +",
"ExceptionInvalidPassword": "Passordet må være mellom %1$s og %2$s tegn.",
- "ExceptionLoginExists": "Brukernavnet «%s» eksisterer allerede.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth forventer et MD5-hashet passord (32 tegn lang streng). Vennligst kall md5()-funksjonen på passordet før du kaller denne metoden.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Det er ikke mulig å fjerne superbrukertilgang fra brukeren «%s».",
"ExceptionSuperUserAccess": "Denne brukeren har superbrukertilgang og har allerede tilgang til å se og modifisere alle nettsteder i Piwik. Du kan også fjerne superbrukertilgangen fra denne brukeren og prøve igjen.",
@@ -37,7 +34,6 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Hvis du vil endre passordet, skriv inn et nytt. Hvis ikke, lar du feltet være tomt.",
"InjectedHostCannotChangePwd": "Du besøker nå med et ukjent vertsnavn (%1$s). Du kan ikke endre passord før problemet er rettet opp.",
"LastSeen": "Sist sett",
- "MainDescription": "Bestem hvilke brukere som har tilgang til Piwik på dine nettsteder. Du kan også sette rettighetene på alle dine nettsteder på en gang.",
"ManageAccess": "Administrer tilgang",
"MenuAnonymousUserSettings": "Innstillinger for anonym bruker",
"MenuUsers": "Brukere",
@@ -46,7 +42,6 @@
"PersonalSettings": "Personlige innstillinger",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Merk: Du kan ikke endre innstillingene i denne seksjonen fordi du ikke har noen nettsteder som kan nås av en anonym bruker.",
"NoUsersExist": "Det er ingen brukere ennå.",
- "PluginDescription": "Brukerhåndtering lar deg legge til nye brukere, redigere eksisterende brukere og gi dem tilganger til å se eller administrere nettsteder.",
"PrivAdmin": "Admin",
"PrivNone": "Ingen tilgang",
"PrivView": "Vis",
@@ -63,7 +58,7 @@
"UsersManagementMainDescription": "Opprett nye brukere eller oppdater eksisterende. Du kan sette deres rettigheter over.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Brukere som ikke er logget og besøker Piwik, skal sendes til",
"YourUsernameCannotBeChanged": "Brukernavnet ditt kan ikke endres.",
- "YourVisitsAreIgnoredOnDomain": "%sDine besøk blir ignorert av Piwik på %s %s (informasjonskapselen for ekskludering fra Piwik ble funnet i din nettleser).",
- "YourVisitsAreNotIgnored": "%sDine besøk blir ikke ignorert av Piwik%s (informasjonskapselen for ekskludering fra Piwik ble ikke funnet i din nettleser)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sDine besøk blir ignorert av Piwik på %2$s %3$s (informasjonskapselen for ekskludering fra Piwik ble funnet i din nettleser).",
+ "YourVisitsAreNotIgnored": "%1$sDine besøk blir ikke ignorert av Piwik%2$s (informasjonskapselen for ekskludering fra Piwik ble ikke funnet i din nettleser)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/nl.json b/plugins/UsersManager/lang/nl.json
index e46b9d6dd9..a34f2600aa 100644
--- a/plugins/UsersManager/lang/nl.json
+++ b/plugins/UsersManager/lang/nl.json
@@ -7,13 +7,11 @@
"AnonymousUserHasViewAccess": "Opmerking: de %1$s gebruiker heeft %2$s toegang tot deze website.",
"AnonymousUserHasViewAccess2": "Je Analyse rapporten en je bezoekers informatie zijn publiek beschikbaar.",
"ApplyToAllWebsites": "Pas toe op elke website",
- "ChangeAllConfirm": "Weet u zeker dat u de rechten van '%s' voor alle websites wilt wijzigen?",
"ChangePasswordConfirm": "Als het wachtwoord wordt gewijzigd, zal ook de gebruikers token_auth wijzigen. Wilt u echt doorgaan?",
"ClickHereToDeleteTheCookie": "Klik hier om de cookie te verwijderen en laat Piwik uw bezoeken volgen.",
"ClickHereToSetTheCookieOnDomain": "Klik hier om een cookie te plaatsen dat uw bezoeken uitsluit van Piwik op %s",
"ConfirmGrantSuperUserAccess": "Weet u zeker dat u '%s' Super Gebruiker toegang wilt geven? Waarschuwing: deze gebruiker heeft toegang tot alle websites en kan administratieve taken uitvoeren.",
"ConfirmProhibitMySuperUserAccess": "%s, wilt u echt uw eigen Super gebruiker rechten wegnemen? U verliest alle rechten en toegang tot alle websites en wordt bij Piwik uitgelogd.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Wilt u echt alle Super Gebruiker rechten voor %s wegnemen? Deze gebruiker zal alle rechten en toegang tot alle websites verliezen. U dient achteraf, rechten voor benodigde websites toe te kennen.",
"DeleteConfirm": "Weet u zeker dat u de volgende gebruiker wilt verwijderen: %s?",
"Email": "E-mail",
"EmailYourAdministrator": "%1$sE-mail de beheerder over dit probleem%2$s.",
@@ -24,9 +22,7 @@
"ExceptionEditAnonymous": "De anonieme gebruiker kan niet gewijzigd of verwijderd worden. Deze wordt door Piwik gebruikt voor gebruikers die nog niet zijn ingelogd. U kunt bijvoorbeeld uw statistieken publiekelijk maken door de 'anonieme' gebruiker 'kijkers rechten' te geven.",
"ExceptionEmailExists": "Er is reeds een gebruiker met '%s' als e-mail adres.",
"ExceptionInvalidEmail": "Het e-mail adres is ongeldig.",
- "ExceptionInvalidLoginFormat": "De gebruikersnaam moet tussen de %1$s en %2$s karakters lang zijn en mag alleen letters, cijfers of de karaketers _ , - , . bevatten",
"ExceptionInvalidPassword": "De lengte van het wachtwoord moet tussen %1$s en %2$s tekens lang zijn.",
- "ExceptionLoginExists": "Login '%s' bestaat reeds.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth verwacht een MD5-hash wachtwoord (32 tekens lange reeks). Vraag de md5()functie op het wachtwoord op alvorens deze methode aan te roepen.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Het verwijderen van de Super User rechten van gebruiker '%s' is niet toegestaan.",
"ExceptionUserDoesNotExist": "Gebruiker '%s' bestaat niet.",
@@ -35,7 +31,6 @@
"ForAnonymousUsersReportDateToLoadByDefault": "Voor anonieme gebruikers, Standaard rapport datum bij laden pagina.",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Als u het wachtwoord wilt wijzigen, geef dan een nieuwe op. Laat het anders leeg.",
"LastSeen": "Laatst gezien",
- "MainDescription": "Stel in welke gebruikers toegang hebben tot de Piwik rapporten van deze website. U kan de toegangsrechten voor alle websites tegelijk bepalen door deze optie te kiezen in de dropdown.",
"ManageAccess": "Toegangsbeheer",
"MenuAnonymousUserSettings": "Anonieme gebruikers instellingen",
"MenuUsers": "Gebruikers",
@@ -57,7 +52,7 @@
"UsersManagementMainDescription": "Creëer nieuwe of actualiseer bestaande gebruikers",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Wanneer gebruikers niet ingelogd zijn en Piwik bezoeken, moeten ze toegang krijgen",
"YourUsernameCannotBeChanged": "Uw gebruikersnaam kan niet worden gewijzigd.",
- "YourVisitsAreIgnoredOnDomain": "%s Uw Piwik bezoeken worden genegeerd door Piwik op %s %s (Piwik negeer cookie is gevonden in uw browser).",
- "YourVisitsAreNotIgnored": "%sUw bezoeken worden niet genegeerd door Piwik%s (de Piwik negeer cookie is niet gevonden in uw browser)."
+ "YourVisitsAreIgnoredOnDomain": "%1$s Uw Piwik bezoeken worden genegeerd door Piwik op %2$s %3$s (Piwik negeer cookie is gevonden in uw browser).",
+ "YourVisitsAreNotIgnored": "%1$sUw bezoeken worden niet genegeerd door Piwik%2$s (de Piwik negeer cookie is niet gevonden in uw browser)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/nn.json b/plugins/UsersManager/lang/nn.json
index 626080a823..4f44c6ec9a 100644
--- a/plugins/UsersManager/lang/nn.json
+++ b/plugins/UsersManager/lang/nn.json
@@ -4,7 +4,6 @@
"Alias": "Alias",
"AllWebsites": "Alle nettstader",
"ApplyToAllWebsites": "Gjer gjeldande for alle nettstader",
- "ChangeAllConfirm": "Er du sikker på at du vil endra '%s' tilgangar på alle nettstadene?",
"ClickHereToDeleteTheCookie": "Klikk her for å sletta informasjonskapselen slik at Piwik loggar dine vitjingar",
"DeleteConfirm": "Er du sikker på at du vil fjerna brukar %s?",
"Email": "Epost",
@@ -14,12 +13,10 @@
"ExceptionEditAnonymous": "Den anonyme brukaren kan ikkje bli endra eller sletta. Den er brukt av Piwik for å definera ein brukar som ikkje hev logga inn. Til døme kan du gjera statistikken offentleg tilgjengeleg ved å gjeva lesetilgang til den anonyme brukaren.",
"ExceptionEmailExists": "Ein bukar med eposten '%s' finst allereie.",
"ExceptionInvalidEmail": "Eposten hev eit ugyldig format.",
- "ExceptionLoginExists": "Brukar '%s' finst allereie.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth forventar eit MD5-hasja passord (ein 32 teikn lang streng). Nytt md5()-funksjonen på passord før du kallar denne metoden.",
"ExceptionUserDoesNotExist": "Brukar '%s' finst ikkje.",
"ExcludeVisitsViaCookie": "Utelukk dine vitjingar frå Piwik med ein informasjonskapsel.",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Om du ønskjer å bytte passordet, skriv inn eit nytt et. Ellers skriv du ingenting.",
- "MainDescription": "Bestem kven av brukarane som hev korleis tilgang til dine nettstader. Du kan òg setja tilgang til alle nettstadene på ein gong.",
"ManageAccess": "Bestem tilgang",
"MenuAnonymousUserSettings": "Innstillingar for anonyme brukarar",
"MenuUsers": "Brukarar",
@@ -34,7 +31,7 @@
"UsersManagementMainDescription": "Lag nye brukarar eller oppdater eksisterande brukarar. Du kan deretter setta deira tilgangar ovanfor.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Når brukarar vitjar Piwik uten å vera innlogga, skal dei ha tilgang til",
"YourUsernameCannotBeChanged": "Brukarnamnet ditt kan ikkje endrast.",
- "YourVisitsAreIgnoredOnDomain": "%sDine vitjingar blir ignorert av Piwik på %s %s (Informasjonskapselen frå Piwik vart funnen i din nettlesar).",
- "YourVisitsAreNotIgnored": "%sDine vitjingar blir ikkje ignorert av Piwik%s (Informasjonskapselen frå Piwik vart ikkje funnen i din nettlesar)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sDine vitjingar blir ignorert av Piwik på %2$s %3$s (Informasjonskapselen frå Piwik vart funnen i din nettlesar).",
+ "YourVisitsAreNotIgnored": "%1$sDine vitjingar blir ikkje ignorert av Piwik%2$s (Informasjonskapselen frå Piwik vart ikkje funnen i din nettlesar)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/pl.json b/plugins/UsersManager/lang/pl.json
index b60c6ecc83..57bbaea3e0 100644
--- a/plugins/UsersManager/lang/pl.json
+++ b/plugins/UsersManager/lang/pl.json
@@ -4,7 +4,6 @@
"Alias": "Alias",
"AllWebsites": "Wszystkie strony",
"ApplyToAllWebsites": "Zastosuj dla wszystkich stron",
- "ChangeAllConfirm": "Czy masz pewność, że chcesz zmienić '%s' prawa dostępu do wszystkich stron?",
"ClickHereToDeleteTheCookie": "kliknij tutaj by skasować ciasteczko cookie i umożliwić dla Piwik śledzenie twoich wizyt na stronie",
"ClickHereToSetTheCookieOnDomain": "Kliknij tutaj by ustawić ciasteczko cookie, które będzie wykluczało zliczanie twoich wizyt na stronie, gdy Piwik będzie je śledził na %s",
"DeleteConfirm": "Czy masz pewność, że chcesz skasować konto użytkownika %s?",
@@ -16,16 +15,13 @@
"ExceptionEditAnonymous": "Konto użytkownika anonimowego nie może być zmienione czy skasowane. Jest stosowane przez Piwik by zdefiniować użytkownika, który się nie loguje. Dla przykładu, możesz uczynić swoje statystyki powszechnie publiczne, udzielając prawa 'podglądu' dla 'anonimowego' użytkownika.",
"ExceptionEmailExists": "Użytkownik z takim adresem e-mail '%s' już istnieje.",
"ExceptionInvalidEmail": "Adres e-mail nie posiada poprawnego formatu.",
- "ExceptionInvalidLoginFormat": "Login powinien zawierać od %1$s do %2$s znaków długości i składać się wyłącznie z liter, numerów liczb, lub znaków: '_' '-' '.' '@' '+'",
"ExceptionInvalidPassword": "Długość hasła powinien zawierać od %1$s do %2$s znaków.",
- "ExceptionLoginExists": "Podany login '%s' już istnieje.",
"ExceptionPasswordMD5HashExpected": "Metoda UsersManager.getTokenAuth oczekuje hasła z hashem MD5 (łańcuch o długości 32 znaków). Wywołaj funkcję md5() z parametrem hasła, by wygenerować hash przed wywołaniem tej metody.",
"ExceptionUserDoesNotExist": "Użytkownik '%s' nie istnieje.",
"ExcludeVisitsViaCookie": "Wyklucz swoje wizyty stosując ciasteczka cookie",
"ForAnonymousUsersReportDateToLoadByDefault": "Dla użytkowników anonimowych, data raportu jako domyślna do wczytania",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Jeśli chcesz zmienić hasło, wpisz nowe. W innym przypadku pozostaw puste pole.",
"LastSeen": "Ostatnio widziany",
- "MainDescription": "Możesz zadecydować, którzy użytkownicy będą mieć dostęp do Piwik w twoim serwisie internetowym. Możesz także ustawić prawa dostępu do całości serwisu od razu.",
"ManageAccess": "Zarządzanie uprawnieniami dostępu",
"MenuAnonymousUserSettings": "Konfiguracja użytkownika anonimowego",
"MenuUsers": "Użytkownicy",
@@ -47,7 +43,7 @@
"UsersManagementMainDescription": "Utworzenie nowych użytkowników lub aktualizacja istniejących. Ponadto możesz ustawić im poziom uprawnień.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Kiedy użytkownicy nie są zalogowani i odwiedzają Piwik, powinny wyświetlić się",
"YourUsernameCannotBeChanged": "Twoja nazwa użytkownika nie może być zmieniona.",
- "YourVisitsAreIgnoredOnDomain": "%sTwoje odwiedziny są ignorowane przez Piwik na %s %s (Piwik zignoruje ciasteczka cookie które znajdzie w twojej przeglądarce).",
- "YourVisitsAreNotIgnored": "%sTwoje odwiedziny nie będą ignorowane przez Piwik%s (Piwik nie odnalazł właściwego dla wykluczenia ciasteczka cookie w twojej przeglądarce)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sTwoje odwiedziny są ignorowane przez Piwik na %2$s %3$s (Piwik zignoruje ciasteczka cookie które znajdzie w twojej przeglądarce).",
+ "YourVisitsAreNotIgnored": "%1$sTwoje odwiedziny nie będą ignorowane przez Piwik%2$s (Piwik nie odnalazł właściwego dla wykluczenia ciasteczka cookie w twojej przeglądarce)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/pt-br.json b/plugins/UsersManager/lang/pt-br.json
index e446c320ed..7baf55be48 100644
--- a/plugins/UsersManager/lang/pt-br.json
+++ b/plugins/UsersManager/lang/pt-br.json
@@ -7,16 +7,17 @@
"AnonymousUserHasViewAccess": "Nota: o usuário %1$s tem acesso %2$s para este site.",
"AnonymousUserHasViewAccess2": "Seus relatórios de análise e suas informações de visitantes são visíveis publicamente.",
"ApplyToAllWebsites": "Aplicar a todos os websites",
- "ChangeAllConfirm": "Você tem certeza que deseja alterar as permissões de %s em todos os websites?",
+ "ChangeAllConfirm": "Você tem certeza que quer dar acesso a '%s' para todos os websites?",
"ChangePasswordConfirm": "Alterando a senha também vai mudar token_auth do usuário. Você realmente quer continuar?",
"ClickHereToDeleteTheCookie": "Clique aqui para deletar o cookie e deixar o Piwik rastrear suas visitas",
"ClickHereToSetTheCookieOnDomain": "Clique aqui para setar um cookie que excluirá suas visitas em websites rastrados pelo Piwik em %s",
"ConfirmGrantSuperUserAccess": "Você realmente deseja conceder a '%s' o acesso de Super Usuário? Aviso: o usuário terá acesso a todos os sites e será capaz de executar tarefas administrativas.",
"ConfirmProhibitMySuperUserAccess": "%s, você realmente deseja remover o seu próprio acesso de Super Usuário? Você perderá todas as permissões e acessos a todos os sites e será desconectado do Piwik.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Você realmente deseja remover o acesso de Super Usuário do usuário '%s'? O usuário perderá todas as permissões e acesso a todos os websites. Certifique-se de definir as permissões para os websites necessários depois, se necessário.",
+ "ConfirmProhibitOtherUsersSuperUserAccess": "Você realmente deseja remover o acesso de Super Usuário de '%s'? O usuário perderá todas as permissões e acesso a todos os sites. Certifique-se de dar acesso a sites necessários mais tarde, se for preciso.",
"DeleteConfirm": "Tem certeza que deseja apagar o usuário %s?",
"Email": "E-mail",
"EmailYourAdministrator": "%1$s E-mail a seu administrador sobre este problema %2$s.",
+ "EnterUsernameOrEmail": "Digite um nome de usuário ou endereço de e-mail",
"ExceptionAccessValues": "O parâmetro de acesso deve conter os seguintes valores: [ %s ]",
"ExceptionAdminAnonymous": "Você não pode conceder acesso 'admin' para o usuário 'anonymous' .",
"ExceptionDeleteDoesNotExist": "O usuário '%s' não existe assim não é possível excluí-lo.",
@@ -24,20 +25,25 @@
"ExceptionEditAnonymous": "O usuário anonymous não pode ser editado ou apagado. Ele é usado pelo sistema para definir um usuário que ainda não não entrou. Por examplo, você pode tornar as estatísticas públicas concedendo acesso 'view' para o usuário 'anonymous'.",
"ExceptionEmailExists": "Usuário com o e-mail '%s' já existe.",
"ExceptionInvalidEmail": "O e-mail não tem um formato válido.",
- "ExceptionInvalidLoginFormat": "O login deve conter entre %1$s e %2$s caracteres e conter apenas letras, números ou os caracteres '_' ou'.'",
+ "ExceptionInvalidLoginFormat": "O nome de usuário deve ter entre %1$s e %2$s caracteres e conter apenas letras, números ou os caracteres '_' or '-' or '.' or '@' or '+'",
"ExceptionInvalidPassword": "A senha deve conter entre %1$s e %2$s caracteres.",
- "ExceptionLoginExists": "Usuário '%s' já existe.",
+ "ExceptionLoginExists": "O nome de usuário '%s' já existe.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth está esperando por uma senha MD5-hashed (32 caracteres). Por favor, chame a função md5() na senha antes de chamar este método.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Não é possível remover o acesso de Super Usuário do usuário '%s'",
"ExceptionSuperUserAccess": "Este usuário tem acesso Super Usuário e já tem permissão para acessar e modificar todos os websites no Piwik. Você pode remover o acesso de Super Usuário deste usuário e tentar novamente.",
"ExceptionUserDoesNotExist": "Usuário '%s' não existe.",
"ExceptionYouMustGrantSuperUserAccessFirst": "É preciso haver pelo menos um usuário com acesso de Super Usuário. Por favor, conceda acesso de Super Usuário para outro usuário primeiro.",
+ "ExceptionUserHasViewAccessAlready": "Esse usuário já tem acesso a este website.",
+ "ExceptionNoValueForUsernameOrEmail": "Por favor, digite um nome de usuário ou endereço de e-mail.",
"ExcludeVisitsViaCookie": "Excluir suas visitas usando cookie",
"ForAnonymousUsersReportDateToLoadByDefault": "Para usuários anônimos, reportar dara para carregar por padrão",
+ "GiveViewAccess": "Permitir acesso de visualização",
+ "GiveViewAccessTitle": "Dar a usuário existente acesso para visualizar relatórios de %s",
+ "GiveViewAccessInstructions": "Para dar acesso a um usuário existente para %s digite o nome de usuário ou endereço de e-mail de um usuário existente",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Se você quiser mudar a senha, digite uma nova. Caso contrário, deixe em branco.",
"InjectedHostCannotChangePwd": "Você está visitando com um host desconhecido (%1$s). Você não pode mudar sua senha até que este problema seja resolvido.",
"LastSeen": "Último visto",
- "MainDescription": "Decida quais usuários terão acesso ao Piwik nos seus websites. Você pode também ajustar as permissões em todos os websites de uma só vez.",
+ "MainDescription": "Decida quais usuários têm acesso a seus sites. Você também pode dar acesso a todos os sites de uma só vez, escolhendo \"Aplicar a todos os websites\" no seletor de website.",
"ManageAccess": "Gerenciar acesso",
"MenuAnonymousUserSettings": "Configurações de usuário anônimo",
"MenuUsers": "Usuários",
@@ -46,7 +52,7 @@
"PersonalSettings": "Configurações pessoais",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Nota: Você não pode alterar as configurações nesta seção, porque você não tem nenhum site que pode ser acessado pelo usuário anônimo.",
"NoUsersExist": "Não há usúarios ainda.",
- "PluginDescription": "Gerenciamento de Usuários permite adicionar novos usuários, editar usuários existentes e atribuir-lhes permissões para visualizar ou administrar websites.",
+ "PluginDescription": "O Gerenciamento de Usuários permite que você adicione novos usuários, edite usuários existentes e dá-lhes acesso para visualizar ou administrar websites.",
"PrivAdmin": "Administrador",
"PrivNone": "Sem acesso",
"PrivView": "Visualização",
@@ -63,7 +69,7 @@
"UsersManagementMainDescription": "Crie novos usuários ou atualize os usuários existentes. Você poderá então ajustar as permissões deles acima.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Quando usuários não estão logados e visitam o Piwik, eles deveriam acessar",
"YourUsernameCannotBeChanged": "Seu nome de usuário não pode ser alterado.",
- "YourVisitsAreIgnoredOnDomain": "%s Suas visitas são ignoradas pelo Piwik em %s %s (o Piwik ignora o cookie encontrado em seu navegador).",
- "YourVisitsAreNotIgnored": "%sSuas visitas não são ignoradas pelo Piwik%s (o Piwik ignora o cookie não encotrado em seu navegador)"
+ "YourVisitsAreIgnoredOnDomain": "%1$s Suas visitas são ignoradas pelo Piwik em %2$s %3$s (o Piwik ignora o cookie encontrado em seu navegador).",
+ "YourVisitsAreNotIgnored": "%1$sSuas visitas não são ignoradas pelo Piwik%2$s (o Piwik ignora o cookie não encotrado em seu navegador)"
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/pt.json b/plugins/UsersManager/lang/pt.json
index 4be271b257..fa8097d1ed 100644
--- a/plugins/UsersManager/lang/pt.json
+++ b/plugins/UsersManager/lang/pt.json
@@ -6,7 +6,6 @@
"AnonymousUser": "Utilizador anónimo",
"AnonymousUserHasViewAccess": "Nota: o utilizador %1$s tem %2$s acessos a este website.",
"ApplyToAllWebsites": "Aplicar a todos os websites",
- "ChangeAllConfirm": "Tem a certeza que deseja alterar '%s' permissões em todos os websites?",
"ChangePasswordConfirm": "Alterar a senha também mudará o token_auth do utilizador. Você deseja continuar?",
"ClickHereToDeleteTheCookie": "Clique aqui para eliminar o cookie e permitir a Piwik monitorizar as suas visitas.",
"ClickHereToSetTheCookieOnDomain": "Clique aqui para definir um cookie que excluirá todas as suas visitas de serem monitorizadas por Piwik em %s",
@@ -18,16 +17,13 @@
"ExceptionEditAnonymous": "O utilizador anónimo não pode ser editado ou apagado. Ele é usado pelo sistema para definir um utilizador que ainda não entrou. Por examplo, pode tornar as suas estatísticas públicas concedendo acesso 'ver' ao utilizador 'anónimo'.",
"ExceptionEmailExists": "Um utilizador com o e-mail '%s' já existe.",
"ExceptionInvalidEmail": "O e-mail não tem um formato válido.",
- "ExceptionInvalidLoginFormat": "O nome de utilizador deve conter entre %1$s e %2$s caracteres e conter apenas letras, números ou os caracteres '_' ou '-' ou '.'",
"ExceptionInvalidPassword": "O senha deve ter entre %1$s e %2$s caracteres.",
- "ExceptionLoginExists": "O nome de utilizador '%s' já existe.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth está à espera de uma palavra-passe codificada em MD5 (cadeia de 32 caracteres). Por favor chame a função md5() sobre a palavra-passe antes de chamar este método.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "A remoção do acesso Super Utilizador do utilizador '%s' não é possível.",
"ExceptionUserDoesNotExist": "Utilizador '%s' não existe.",
"ExcludeVisitsViaCookie": "Exclua as suas visitas com um cookie",
"ForAnonymousUsersReportDateToLoadByDefault": "Para utilizadores anónimos, data de relatório pré-definida para carregar",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Se deseja alterar a sua palavra-passe, introduza uma nova. Caso contrário deixe isto em branco.",
- "MainDescription": "Decidir quais utilizadores têm acesso a Piwik nos seus Websites. Também pode definir permissões para todos os Websites duma só vez.",
"ManageAccess": "Gerir acesso",
"MenuAnonymousUserSettings": "Definições de utilizadores anónimos",
"MenuUsers": "Utilizadores",
@@ -46,7 +42,7 @@
"UsersManagementMainDescription": "Criar novos utilizadores ou actualizar utilizadores existentes. Depois pode definir as permissões deles acima.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Quando utilizadores não entraram e visitam Piwik, devem poder aceder a",
"YourUsernameCannotBeChanged": "O seu nome de utilizador não pode ser alterado.",
- "YourVisitsAreIgnoredOnDomain": "%sAs suas visitas são ignoradas por Piwik em %s %s (o cookie Piwik de ignorar foi encontrado no seu navegador).",
- "YourVisitsAreNotIgnored": "%sAs suas visitas não são ignoradas por Piwik%s (o cookie Piwik de ignorar não foi encontrado no seu navegador)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sAs suas visitas são ignoradas por Piwik em %2$s %3$s (o cookie Piwik de ignorar foi encontrado no seu navegador).",
+ "YourVisitsAreNotIgnored": "%1$sAs suas visitas não são ignoradas por Piwik%2$s (o cookie Piwik de ignorar não foi encontrado no seu navegador)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/ro.json b/plugins/UsersManager/lang/ro.json
index 9c01402606..cad0f073bf 100644
--- a/plugins/UsersManager/lang/ro.json
+++ b/plugins/UsersManager/lang/ro.json
@@ -6,13 +6,11 @@
"AnonymousUserHasViewAccess": "Notă: utilizatorul %1$s are acces %2$s la acest website.",
"AnonymousUserHasViewAccess2": "Rapoartele de analiză și informațiile dvs. despre vizitatori sunt facute publice.",
"ApplyToAllWebsites": "Aplica tuturor siteurilor",
- "ChangeAllConfirm": "Esti sigur ca vrei sa scimbi '%s' permisiunile tuturor siteurilor?",
"ChangePasswordConfirm": "Schimbarea parolei va modifica token_auth al utilizatorului. Într-adevăr doreşti să continui?",
"ClickHereToDeleteTheCookie": "Click aici pentru a șterge cookie-ul și puenti-l pe Piwik sa urmăreasca vizitele",
"ClickHereToSetTheCookieOnDomain": "Click aici pentru a stabili un cookie care va exclude vizitele dvs. de pe site-urile urmărite cu Piwik pe %s",
"ConfirmGrantSuperUserAccess": "Chiar vrei să se acorde '%s' acces de Super utilizator? Avertisment: utilizatorul va avea acces la toate site-urile și va fi capabil de a efectua sarcini administrative.",
"ConfirmProhibitMySuperUserAccess": "%s, chiar vrei să eliminați propriul Super acces utilizator? Veți pierde toate permisiunile și acces la toate site-urile și vei fi deconectat de la Piwik.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Chiar doriți să eliminați accesul Super utilizator de la \"%s\"? Utilizatorul va pierde toate permisiunile și acces la toate site-urile. Asigurați-vă că pentru a seta permisiuni la site-urile necesare , dacă este necesar.",
"DeleteConfirm": "Eşti sigur că vrei să ştergi utilizatorul %s?",
"Email": "Email",
"EmailYourAdministrator": "%1$sTrimite email administratorului despre aceasta problema%2$s.",
@@ -23,9 +21,7 @@
"ExceptionEditAnonymous": "Userul anonim nu poate fi editat sau sters.De exemplu poti face ca statisticile tale sa fie publice autorizand 'view' accesul la 'anonymous' user.",
"ExceptionEmailExists": "Deja există un utilizator cu adresa '%s'.",
"ExceptionInvalidEmail": "Emailul nu are un format valid.",
- "ExceptionInvalidLoginFormat": "The login must be between %1$s and %2$s characters long and contain only letters, numbers, or the characters '_' or '-' or '.'",
"ExceptionInvalidPassword": "Lungimea parolei trebuie să fie între %1$s şi %2$s simboluri.",
- "ExceptionLoginExists": "Login '%s' există deja.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth se așteaptă la o parolă distribuita-MD5 (32 de caractere șir lung). Vă rugăm să apelati la funcția md5 () la parola înainte de a apela această metodă.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Scoaterea accesul utilizatorului Super de la utilizator '%s' nu este posibil.",
"ExceptionSuperUserAccess": "Acest utilizator are acces la Super utilizator și are deja permisiunea de a accesa și modifica toate site-urile din Piwik. Puteți scoate Super accesul utilizatorului la acest utilizator și încercați din nou.",
@@ -36,7 +32,6 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Dacă doriți să modificați parolă taastati una noua. În caz contrar, lăsați spatiul gol.",
"InjectedHostCannotChangePwd": "Daca în prezent vizitati o gazdă necunoscuta (%1$s). Nu puteți schimba parola până când această problemă nu este rezolvata.",
"LastSeen": "Ultima data vazut",
- "MainDescription": "Decide userul ce are acces la propriul website . Poti de asemenea seta permisiunile la toate siteurile in acelasi timp.",
"ManageAccess": "Manageriaza accesul",
"MenuAnonymousUserSettings": "Setările utilizatorului anonim",
"MenuUsers": "Utilizatori",
@@ -59,7 +54,7 @@
"UsersManagementMainDescription": "Creaza user nou sau actualizeaza userul existent. Poti seta permisiunile lor.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Atunci când utilizatorii nu sunt logati și viziteaza Piwik, acestea ar trebui să acceseze",
"YourUsernameCannotBeChanged": "Numele tău de utilizator nu poate fi schimbat.",
- "YourVisitsAreIgnoredOnDomain": "%svizitele tale sunt ignorate de Piwik pe %s%s (piwik ignora cookie care a fost găsit în browser-ul dvs.).",
- "YourVisitsAreNotIgnored": "%s Vizitele tale nu sunt ignorate de Piwik%s (piwik ignora cookie care nu au fost găsite în browser-ul dvs.)."
+ "YourVisitsAreIgnoredOnDomain": "%1$svizitele tale sunt ignorate de Piwik pe %2$s%3$s (piwik ignora cookie care a fost găsit în browser-ul dvs.).",
+ "YourVisitsAreNotIgnored": "%1$s Vizitele tale nu sunt ignorate de Piwik%2$s (piwik ignora cookie care nu au fost găsite în browser-ul dvs.)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/ru.json b/plugins/UsersManager/lang/ru.json
index 0be6eaac52..965f2ae904 100644
--- a/plugins/UsersManager/lang/ru.json
+++ b/plugins/UsersManager/lang/ru.json
@@ -7,13 +7,11 @@
"AnonymousUserHasViewAccess": "Примечание: пользователь %1$s имеет %2$s доступ к этому сайту.",
"AnonymousUserHasViewAccess2": "Отчеты и данные о посетителях общедоступны.",
"ApplyToAllWebsites": "Применить ко всем сайтам",
- "ChangeAllConfirm": "Вы действительно желаете изменить права '%s' на все сайты?",
"ChangePasswordConfirm": "Смена пароля также изменит пользовательский token_auth. Вы действительно хотите продолжить?",
"ClickHereToDeleteTheCookie": "Нажмите здесь, чтобы удалить cookie игнорирования, и разрешить системе Веб-аналитики отслеживать ваши посещения",
"ClickHereToSetTheCookieOnDomain": "Нажмите здесь, чтобы установить cookie игнорирования Веб-аналитики, после установки которого система Вас будет игнорировать при посещении %s",
"ConfirmGrantSuperUserAccess": "Вы действительно хотите пользователя «%s» повысить до суперпользователя? Внимание: пользователь будет иметь доступ ко всем веб-сайтам и сможет выполнять административные задачи.",
"ConfirmProhibitMySuperUserAccess": "%s, Вы действительно хотите удалить у себя права суперпользователя? Вы потеряете все разрешения и доступ ко всем сайтам и будете разлогинены из Piwik.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Вы действительно хотите понизить суперпользователя «%s» до обычного пользователя? Он потеряет все права и доступ ко всем сайтам. Убедитесь в том, что не забыли добавить разрешения для необходимых ему веб-сайтов, если это необходимо.",
"DeleteConfirm": "Вы уверены, что хотите удалить пользователя %s?",
"Email": "Email",
"EmailYourAdministrator": "%1$sНапишите вашему администратору об этой проблеме%2$s.",
@@ -24,9 +22,7 @@
"ExceptionEditAnonymous": "Анонимный пользователь не может быть удален. Он необходим системе Веб-аналитики для идентификации пользователей, которые не вошли в систему. Допустим, вы можете сделать статистику публичной, предоставляя право 'Просмотр' анонимному пользователю.",
"ExceptionEmailExists": "Пользователь с Email '%s' уже существует.",
"ExceptionInvalidEmail": "Email неправильного формата",
- "ExceptionInvalidLoginFormat": "Логин должен быть длиной от %1$s до %2$s символов, а также содержать только буквы, цифры или символы '_', '-', '.'",
"ExceptionInvalidPassword": "Длина пароля должна быть от %1$s до %2$s символов.",
- "ExceptionLoginExists": "Логин '%s' уже существует.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth ожидает MD5-хэшированный пароль (строка в 32 символа). Пожалуйста, вызовите функцию md5() к паролю перед вызовом этого метода.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Удаление прав суперпользователя у пользователя «%s» не представляется возможным.",
"ExceptionSuperUserAccess": "Этот пользователь уже имеет статус суперпользователя и разрешение на изменение всех веб-сайты в Piwik. Вы можете удалить права суперпользователя у этого пользователя, и попробовать снова.",
@@ -37,7 +33,6 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Если вы хотите сменить пароль, введите новый. Иначе оставьте поле пустым.",
"InjectedHostCannotChangePwd": "В данный момент вы находитесь в Piwik с неизвестного хоста (%1$s). Вы не можете изменить пароль, пока эта проблема не будет решена.",
"LastSeen": "Последнее посещение",
- "MainDescription": "Укажите, какие пользователи имеют доступ к Piwik на вашем сайте. Также Вы можете задать права доступа на все сайты.",
"ManageAccess": "Управление правами доступа",
"MenuAnonymousUserSettings": "Настройки анонимности",
"MenuUsers": "Пользователи",
@@ -46,7 +41,6 @@
"PersonalSettings": "Персональные настройки",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Подсказка: Вы не можете сменить эти настройки, потому что у вас нет ни одного веб-сайта, к которому бы имел доступ анонимный пользователь.",
"NoUsersExist": "Пока нет пользователей.",
- "PluginDescription": "Управление пользователями позволяет Вам добавить нового пользователя, редактировать существующего пользователя и разрешить ему право на просмотр или администрирование веб-сайта.",
"PrivAdmin": "Админ",
"PrivNone": "Нет доступа",
"PrivView": "Просмотр",
@@ -63,7 +57,7 @@
"UsersManagementMainDescription": "Создание новых пользователей или редактирование существующих. Также Вы можете задать права доступа для пользователя.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Когда незарегистрированные пользователи посещают систему Piwik, они должны видеть",
"YourUsernameCannotBeChanged": "Имя вашего пользователя не может быть изменено.",
- "YourVisitsAreIgnoredOnDomain": "%sВаши посещения игнорируются Piwik на %s %s (cookie игнорирования Веб-аналитики обнаружен в браузере).",
- "YourVisitsAreNotIgnored": "%sВаши посещения не игнорируются Piwik%s (cookie игнорирования Веб-аналитики не обнаружен в браузере)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sВаші відвідування ігноруються системою Piwik в %2$s %3$s (Piwik знашов cookie у вашому браузері з вказівкою ігнорувати).",
+ "YourVisitsAreNotIgnored": "%1$sВаші відвідування відслідковуються системою Piwik %2$s (Piwik не знашов cookie у вашому браузері)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/sk.json b/plugins/UsersManager/lang/sk.json
index 3e711a2719..1c153c47a5 100644
--- a/plugins/UsersManager/lang/sk.json
+++ b/plugins/UsersManager/lang/sk.json
@@ -5,7 +5,6 @@
"AllWebsites": "Všetky webstránky",
"AnonymousUser": "Anonymný používateľ",
"ApplyToAllWebsites": "Použiť na všetky webstránky",
- "ChangeAllConfirm": "Ste si istý, že chcete zmeniť '%s' práva pre všetky webstránky?",
"DeleteConfirm": "Ste si istý, že chcete odstrániť používateľa %s?",
"Email": "E-mail",
"ExceptionAccessValues": "Parameter prístupu musí mať jednu z nasledujúcich hodnôt: [ %s ]",
@@ -14,10 +13,7 @@
"ExceptionEditAnonymous": "Anonymný používateľ nemôže byť odstránený alebo upravený. Piwik ho používa na definovanie používateľa, ktorý sa ešte prihlásil. Anonymného používateľa môžete použiť na zverejnenie svojich štatistík, a to priradeným mu práv na prezeranie.",
"ExceptionEmailExists": "Používateľ s e-mailom '%s' už existuje.",
"ExceptionInvalidEmail": "E-mailová adresa nemá platný formát.",
- "ExceptionInvalidLoginFormat": "Počet znakov pre Používateľ (login) musí byť medzi %1$s a %2$s a obsahovať iba písmená, číslice alebo znaky '_', '-', a '.'",
- "ExceptionLoginExists": "Používateľ (login) '%s' už existuje.",
"ExceptionUserDoesNotExist": "Používateľ '%s' neexistuje.",
- "MainDescription": "Rozhodnite sa, ktorí používatelia budú môcť pristupovať k jednotlivým stránkam. Tiež im môžete umožniť prístup na všetky vaše stránky.",
"ManageAccess": "Správa prístupov",
"MenuAnonymousUserSettings": "Nastavenie pre anonymného užívateľa",
"MenuUsers": "Používatelia",
diff --git a/plugins/UsersManager/lang/sl.json b/plugins/UsersManager/lang/sl.json
index 9151bf5d86..fe88be3be9 100644
--- a/plugins/UsersManager/lang/sl.json
+++ b/plugins/UsersManager/lang/sl.json
@@ -11,7 +11,6 @@
"ExceptionEmailExists": "Uporabnik z emailom \"%s\" že obstaja.",
"ExceptionInvalidEmail": "Email ni veljavnega formata.",
"ExceptionInvalidPassword": "Dolžina gesla mora biti med %1$s in %2$s znaki.",
- "ExceptionLoginExists": "Vpis '%s' že obstaja.",
"ExceptionUserDoesNotExist": "Uporabnik \"%s\" ne obstaja.",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Če bi radi spremenili geslo, vpišite novega. Če ne, to pustite prazno.",
"ManageAccess": "Upravljaj dostop",
diff --git a/plugins/UsersManager/lang/sq.json b/plugins/UsersManager/lang/sq.json
index 677865b33b..78301c8d1c 100644
--- a/plugins/UsersManager/lang/sq.json
+++ b/plugins/UsersManager/lang/sq.json
@@ -7,13 +7,11 @@
"AnonymousUserHasViewAccess": "Shënim: përdoruesi %1$s ka hyrje %2$s te ky sajt.",
"AnonymousUserHasViewAccess2": "Raportet analitike dhe të dhënat e vizitorëve tuaj janë të dukshme publikisht.",
"ApplyToAllWebsites": "Zbatoje për tërë sajtet",
- "ChangeAllConfirm": "Jeni i sigurt se doni të ndryshoni lejet e '%s' në tërë sajtet?",
"ChangePasswordConfirm": "Ndryshimi i fjalëkalimit do të sjellë gjithashtu ndryshimin e “token_auth” të përdoruesit. Doni vërtet të vazhdohet?",
"ClickHereToDeleteTheCookie": "Klikoni këtu që të fshihet \"cookie\" dhe që ta bëni Piwik-un të gjurmojë vizitat tuaja",
"ClickHereToSetTheCookieOnDomain": "Klikoni këtu që të vendoset një \"cookie\" që do të përjashtojë vizitat tuaja në sajte të gjurmuar nga Piwik-u %s",
"ConfirmGrantSuperUserAccess": "Doni t’i akordoni '%s' hyrje Supepërdoruesi? Kujdes: përdoruesi do të ketë hyrje në krejt sajtet dhe do të jetë në gjendje të kryejë veprime administratori.",
"ConfirmProhibitMySuperUserAccess": "%s, doni vërtet t’i hiqni vetes të drejta Superpërdoruesi? Do të humbni krejt lejet dhe hyrjen në krejt sajtet dhe do të dilni nga Piwik-u.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Doni vërtet t’i hiqni të drejtat e Superpërdoruesit prej '%s'? Përdoruesi do të humbë krejt lejet dhe hyrjet në krejt sajtet. Sigurohuni t’i jepni më pas leje për sajtet e nevojshëm, nëse duhet.",
"DeleteConfirm": "Jeni i sigurt se doni të fshihet përdoruesi %s?",
"Email": "Email",
"EmailYourAdministrator": "%1$sDërgojini përgjegjësit tuaj email rreth këtij problemi%2$s.",
@@ -24,9 +22,7 @@
"ExceptionEditAnonymous": "Përdoruesi anonim nuk mund të fshihet apo përpunohet të dhënat e tij. Përdoret nga Piwik-u për të përkufizuar një përdorues që nuk ka bërë ende hyrjen. Për shembull, mund t'i bëni statistikat tuaja publike duke lejuar hyrje për 'parje' për përdoruesin 'anonim'.",
"ExceptionEmailExists": "Ka tashmë një përdorues me email-in '%s'.",
"ExceptionInvalidEmail": "Email-i s'është në format të vlefshëm.",
- "ExceptionInvalidLoginFormat": "Hyrja duhet të jetë ndërmjet %1$s dhe %2$s shenjash e gjatë, dhe duhet të përmbajë vetëm shkronja, numra, ose shenjat '_' or '-' or '.' or '@' or '+'",
"ExceptionInvalidPassword": "Fjalëkalimi duhet të jetë nga %1$s deri në %2$s shenja i gjatë.",
- "ExceptionLoginExists": "Ka tashmë një hyrje për '%s'.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth pret një fjalëkalim hash MD5 (varg 32 shenja të gjatë). Ju lutemi, zbatojeni funksionin md5() mbi fjalëkalimin përpara zbatimit të kësaj metode",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Heqja e lejeve Superpërdoruesi për përdoruesin '%s' s’është e mundur.",
"ExceptionSuperUserAccess": "Ky përdorues ka hyrje Superpërdoruesi dhe ka tashmë leje të hyjë dhe modifikojë krejt sajtet në këtë instalim Piwik-u. Mund t’ia hiqni të drejtat e Superpërdoruesit këtij përdoruesi dhe të riprovoni.",
@@ -37,7 +33,6 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Nëse dëshironi të ndryshoni fjalëkalimin, shtypni një të ri. Përndryshe lëreni të zbrazët.",
"InjectedHostCannotChangePwd": "Po e vizitoni me një strehë të panjohur (%1$s). S’mund ta ndryshoni fjalëkaliminm, pa ndrequr këtë problem.",
"LastSeen": "Këndej pari së fundi më",
- "MainDescription": "Vendosni cilët përdorues kanë hyrje Piwik në sajtet tuaj. Mundet edhe të caktoni njëherazi lejet mbi tërë sajtet.",
"ManageAccess": "Administroni hyrjet",
"MenuAnonymousUserSettings": "Rregullime përdoruesi anonim",
"MenuUsers": "Përdorues",
@@ -46,7 +41,6 @@
"PersonalSettings": "Rregullime personale",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Shënim: Nuk mund të ndryshoni rregullimet në këtë ndarje, ngaqë s’keni ndonjë sajt ku mund të hyhet si përdorues anonim.",
"NoUsersExist": "Ende nuk ka përdorues",
- "PluginDescription": "Administrimi i Përdoruesve ju lejon të shtoni përdorues të rinj, të përpunoni të dhëna përdoruesish ekzistues dhe t’u caktoni leje për parje apo administrim sajtesh.",
"PrivAdmin": "Admin",
"PrivNone": "Pa hyrje",
"PrivView": "Pamje",
@@ -63,7 +57,7 @@
"UsersManagementMainDescription": "Krijoni përdoruesa të rinj ose përditësoni përdoruesit ekzistues. Mandej mund t’u caktoni lejet më sipër.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Kur përdoruesit nuk janë të futur dhe vizitojnë Piwik-un, do të duhej të hynin",
"YourUsernameCannotBeChanged": "Emri juaj i përdoruesit s’mund të ndryshohet.",
- "YourVisitsAreIgnoredOnDomain": "%sVizitat tuaja te %s %s janë shpërfillur nga Piwik-u (te shfletuesi juaj u gjet \"cookie\" për shpërfillje nga Piwik-u).",
- "YourVisitsAreNotIgnored": "%sVizitat tuaja s’janë shpërfillur nga Piwik-u%s (te shfletuesi juaj s’u gjet \"cookie\" për shpërfillje nga Piwik-u)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sVizitat tuaja te %2$s %3$s janë shpërfillur nga Piwik-u (te shfletuesi juaj u gjet \"cookie\" për shpërfillje nga Piwik-u).",
+ "YourVisitsAreNotIgnored": "%1$sVizitat tuaja nuk janë shpërfillur nga Piwik-u%2$s (te shfletuesi juaj nuk u gjet \"cookie\" për shpërfillje nga Piwik-u)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/sr.json b/plugins/UsersManager/lang/sr.json
index b5bbdb9d2b..b0dfca35b4 100644
--- a/plugins/UsersManager/lang/sr.json
+++ b/plugins/UsersManager/lang/sr.json
@@ -7,13 +7,11 @@
"AnonymousUserHasViewAccess": "Pažnja: korisnik %1$s ima %2$s nivo pristupa ovom sajtu.",
"AnonymousUserHasViewAccess2": "Vaši analitički podaci i informacije o vašim posetiocima su javno vidljivi.",
"ApplyToAllWebsites": "Primeni na sve sajtove",
- "ChangeAllConfirm": "Da li ste sigurni da želite da promenite '%s' privilegije na svim sajtovima?",
"ChangePasswordConfirm": "Promena lozinke će prouzrokovati i promenu korisnikovog token_auth. Da li ste sigurni da želite da nastavite?",
"ClickHereToDeleteTheCookie": "Kliknite ovde kako biste obrisali kolačić i time omogućili Piwik da prati i vaše posete",
"ClickHereToSetTheCookieOnDomain": "Kliknite ovde kako biste postavili kolačić i time onemogućili Piwik da prati i vaše posete %s",
"ConfirmGrantSuperUserAccess": "Da li zaista želite da '%s' dodelite superkorisnički nivo pristupa? Pažnja: korisnik će dobiti pristup svim sajtovima i moći će da vrši administrativne zadatke.",
"ConfirmProhibitMySuperUserAccess": "%s, da li zaista želite sebi da uklonite superkorisnički nivo pristupa? Izgubićete sva prava i pristup svim sajtovima i bićete odjavljeni sa Piwik-a.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Da li zaista želite da uklonite superkorisnički nivo pristupa korisniku '%s'? Ovaj korisnik će izgubiti sva prava i pristup sajtovima. Postarajte se da psole toga dodelite prava pristupa sajtovima ukoliko je to potrebno.",
"DeleteConfirm": "Da li ste sigurni da želite da obrišete korisnika %s?",
"Email": "Elektronska adresa",
"EmailYourAdministrator": "%1$sObavestite administratora o ovom problemu%2$s.",
@@ -24,9 +22,7 @@
"ExceptionEditAnonymous": "Podaci o anonimnom korisniku ne mogu biti menjani ili obrisani. Anonimni korisnik služi da bi Piwik mogao da razlikuje korisnika koji se još nije prijavio na sistem. Primera radi, svoju statistiku možete učiniti javnom tako što ćete anonimnom korisniku dozvoliti 'prikaz' pristup.",
"ExceptionEmailExists": "Korisnik sa elektronskom adresom '%s' već postoji.",
"ExceptionInvalidEmail": "Elektronska adresa nije validna.",
- "ExceptionInvalidLoginFormat": "Korisničko ime mora biti dugačko između %1$s i %2$s znakova i mora da sadrži samo slova, brojeve ili znkove '_' ili '-' ili '.' ili '@'",
"ExceptionInvalidPassword": "Dužina lozinke mora biti između %1$s i %2$s znakova.",
- "ExceptionLoginExists": "Korisničko ime '%s' već postoji.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth očekuje MD5 hash lozinku (niz od 32 znaka). Molimo vas da primenite funkciju md5() nad lozinkom pre poziva ovog metoda. Hvala.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Uklanjanje superkorisničkog nivoa pristupa korisniku '%s' nije moguće.",
"ExceptionSuperUserAccess": "Ovaj korisnik već ima superkorisnički nivo pristupa. Možete mu ukloniti taj nivo i pokušati ponovo.",
@@ -37,7 +33,6 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Ukoliko želite da promenite lozinku, upišite novu. U suprotnom ostavite polje prazno",
"InjectedHostCannotChangePwd": "Trenutno pristupate sa nepoznatog hosta (%1$s). Lozinku ne možete promeniti dok ovo ne ispravite.",
"LastSeen": "Poslednji put viđen",
- "MainDescription": "Određivanje koji korisnici imaju pristup sajtovima.",
"ManageAccess": "Kontrola pristupa",
"MenuAnonymousUserSettings": "Podešavanja anonimnih korisnika",
"MenuUsers": "Korisnici",
@@ -46,7 +41,6 @@
"PersonalSettings": "Lična podešavanja",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Ne možete menjati podešavanja u ovoj sekciji zato što nemate nijedan sajt kojem se može pristupiti kao anonimni korisnik.",
"NoUsersExist": "Još uvek nema korisnika.",
- "PluginDescription": "Upravljanje korisnicima vam omogućuje dodavanje novih korisnika, menjanje postojećih kao i dodelu privilegija za pregled i administriranje sajtova.",
"PrivAdmin": "Administracija",
"PrivNone": "Nema pristup",
"PrivView": "Prikaz",
@@ -63,7 +57,7 @@
"UsersManagementMainDescription": "Dodavanje novih i promena postojećih korisničkih naloga, dodeljivanje privilegija.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Kada korisnik koji nije prijavljen pokuša da otvori Piwik, trebalo bi da se otvori:",
"YourUsernameCannotBeChanged": "Vaše korisničko ime ne može biti promenjeno.",
- "YourVisitsAreIgnoredOnDomain": "%s Piwik ignoriše vaše posete %s %s (pronađen je specijalni kolačić u vašem brauzeru).",
- "YourVisitsAreNotIgnored": "%s Piwik ne ignoriše vaše posete%s (nije pronađen kolačić u vašem brauzeru)."
+ "YourVisitsAreIgnoredOnDomain": "%1$s Piwik ignoriše vaše posete %2$s %3$s (pronađen je specijalni kolačić u vašem brauzeru).",
+ "YourVisitsAreNotIgnored": "%1$s Piwik ne ignoriše vaše posete%2$s (nije pronađen kolačić u vašem brauzeru)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/sv.json b/plugins/UsersManager/lang/sv.json
index 89d4806863..51bb38f20d 100644
--- a/plugins/UsersManager/lang/sv.json
+++ b/plugins/UsersManager/lang/sv.json
@@ -7,16 +7,16 @@
"AnonymousUserHasViewAccess": "Observera: Användare %1$s och användare %2$s har nu tillgång till den här webbsidan.",
"AnonymousUserHasViewAccess2": "Dina analysrapporter och informationen om dina besökare är publika.",
"ApplyToAllWebsites": "Använd för alla webbplatser",
- "ChangeAllConfirm": "Är du säker på att du vill ändra '%s' behörigheterna på alla webbplatser?",
"ChangePasswordConfirm": "Vid byte av lösenord kommer också användarens token_auth att ändras. Vill du verkligen fortsätta?",
"ClickHereToDeleteTheCookie": "Klicka här för att ta bort kakan så att Piwik börjar spåra dina besök igen",
"ClickHereToSetTheCookieOnDomain": "Klicka här för att sätta kakan som exkluderar dina besök spårade av Piwik för webbplatsen %s",
"ConfirmGrantSuperUserAccess": "Vill du verkligen bevilja '%s' Superanvändarbehörighet? Varning: Användaren kommer ha tillgång till alla dina webbsidor och ha möjlighet att utföra administrativa uppdrag.",
"ConfirmProhibitMySuperUserAccess": "%s, vill du verkligen ta bort din egen Superanvändarbehörighet? Du kommer att förlora behörigheten till alla dina webbsidor och loggas ut från Piwik.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Vill du verkligen ta bort Superanvändarbehörigheten från '%s'? Användaren kommer inte längre ha åtkomst till alla webbsidor. Kom ihåg att ställa in tillåtelse till alla webbsidor efteråt om det är nödvändigt.",
+ "ConfirmProhibitOtherUsersSuperUserAccess": "Vill du verkligen radera Super User behörigheten från '%s'? Användaren kommer förlora alla behörigheter till alla webbsidor. Säkerställ att eventuell behörighet ges till valda webbsidor efteråt.",
"DeleteConfirm": "Är du säker på att du vill ta bort användaren %s?",
"Email": "E-post",
"EmailYourAdministrator": "%1$sE-posta din administratör om det här problemet%2$s.",
+ "EnterUsernameOrEmail": "Ange ett användarnamn eller en e-postadress.",
"ExceptionAccessValues": "Parameter-tillgången måste ha ett av följande värden: [ %s ]",
"ExceptionAdminAnonymous": "Du kan inte bevilja 'admin' tillgång för \"anonyma\" användare.",
"ExceptionDeleteDoesNotExist": "Användaren '%s' finns inte och kan därför inte tas bort.",
@@ -24,20 +24,23 @@
"ExceptionEditAnonymous": "Den anonyma användaren kan inte redigeras eller tas bort. Den används av Piwik för att definiera en användare som inte har loggat in ännu. Till exempel kan du göra din statistik publik genom att bevilja \"Visa\" tillgång till \"anonyma\" användare.",
"ExceptionEmailExists": "Användaren med e-postadressen '%s' finns redan.",
"ExceptionInvalidEmail": "E-postadressen har inte ett giltigt format.",
- "ExceptionInvalidLoginFormat": "Inloggningen måste vara mellan %1$s och %2$s tecken långt och får endast innehålla bokstäver, siffror eller tecknen '_', '-', '.' eller \"@\"",
+ "ExceptionInvalidLoginFormat": "Användarnamnet måste vara mellan %1$s och %2$s tecken långt och får endast innehålla bokstäver, siffror och tecknen _ - . @ +",
"ExceptionInvalidPassword": "Lösenordets längd måste vara mellan %1$s och %2$s tecken.",
- "ExceptionLoginExists": "Inloggningen '%s' finns redan.",
+ "ExceptionLoginExists": "Användaren '%s' finns redan.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth förväntar sig MD5-hashar av lösenorden (32 tecken lång sträng). Anropa gärna md5() funktionen på lösenord innan du anropar den här metoden.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Att ta bort Superanvändarbehörigheten från användare '%s' är inte möjligt.",
"ExceptionSuperUserAccess": "Den här användaren har redan Superanvändarbehörighet och tillåtelse att ändra alla sidor i Piwik. Du kan ta bort Superanvändarbehörigheten från den här användaren och försöka igen.",
"ExceptionUserDoesNotExist": "Användaren '%s' finns inte.",
"ExceptionYouMustGrantSuperUserAccessFirst": "Det måste finnas minst en användare med Superanvändarbehörighet. Var vänlig och bevilja Superanvändarbehörighet till en annan användare först.",
+ "ExceptionUserHasViewAccessAlready": "Denna användare har redan behörighet till denna webbsida.",
+ "ExceptionNoValueForUsernameOrEmail": "Ange ett användarnamn eller en e-postadress.",
"ExcludeVisitsViaCookie": "Exkludera spårning av dina besök",
"ForAnonymousUsersReportDateToLoadByDefault": "Rapport som laddas som standard för anonyma användare.",
+ "GiveViewAccess": "Ge visningsbehörighet",
+ "GiveViewAccessTitle": "Ge en existerande användare behörighet att visa rapporter för %s",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Om du vill ändra ditt lösenord så skriver du in det nya, annars lämnar du fältet tomt.",
"InjectedHostCannotChangePwd": "Du besöker för närvarande sidan genom ett okänt värdnamn (%1$s). Du kan inte ändra ditt lösenord innan det här prblemet är åtgärdat.",
"LastSeen": "Senast sedd",
- "MainDescription": "Välj vilka användare som ska ha vilken åtkomst till dina webbplatser. Du kan sätta rättigheter på samtliga webbplatser samtidigt.",
"ManageAccess": "Hantera rättigheter",
"MenuAnonymousUserSettings": "Inställningar för anonyma användare",
"MenuUsers": "Användare",
@@ -46,7 +49,6 @@
"PersonalSettings": "Personliga inställningar",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "Notera: Eftersom att inga webbplaster tillåter anonym åtkomst till analysdata, så kan inga ändringar göras i den här sektionen.",
"NoUsersExist": "Det finns inga användare än.",
- "PluginDescription": "Användarhanteringen låter dig skapa nya användare, redigera befintliga användare och tilldela dem rättigheter till webbplatser.",
"PrivAdmin": "Administratör",
"PrivNone": "Inga rättigheter",
"PrivView": "Visa",
@@ -63,7 +65,7 @@
"UsersManagementMainDescription": "Skapa eller ändra befintliga användare. Du kan sedan ändra deras rättigheter ovan.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "När användare inte är inloggade och besöker Piwik, ska de komma åt",
"YourUsernameCannotBeChanged": "Ditt användarnamn kan inte ändras.",
- "YourVisitsAreIgnoredOnDomain": "%sDina besök ignoreras av Piwik för webbplatsen %s %s (Piwiks kaka hittades i din webbläsare).",
- "YourVisitsAreNotIgnored": "%sDina besök ignoreras inte av Piwik för webbplatsen %s (Piwiks kaka hittades inte i din webbläsare)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sDina besök ignoreras av Piwik för webbplatsen %2$s %3$s (Piwiks kaka hittades i din webbläsare).",
+ "YourVisitsAreNotIgnored": "%1$sSus visitas no son ignoradas por Piwik%2$s (la cookie de ignorar a Piwik no fue encontrada en su navegador)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/te.json b/plugins/UsersManager/lang/te.json
index d799f6092f..3b2dff2b9d 100644
--- a/plugins/UsersManager/lang/te.json
+++ b/plugins/UsersManager/lang/te.json
@@ -6,7 +6,6 @@
"Email": "ఈమెయిలు",
"ExceptionEmailExists": "'%s' అనే ఈమెయిలుతో వాడుకరి ఇప్పటికే ఉన్నారు.",
"ExceptionInvalidEmail": "ఈ ఈమెయిలు సరైన రీతిలో లేదు.",
- "ExceptionLoginExists": "'%s' వాడుకరి ఇప్పటికే ఉన్నారు.",
"ExceptionUserDoesNotExist": "'%s' వాడుకరి లేనే లేరు.",
"MenuAnonymousUserSettings": "ఆజ్ఞాత వాడుకరుల అమరికలు",
"MenuUsers": "వాడుకరులు",
diff --git a/plugins/UsersManager/lang/th.json b/plugins/UsersManager/lang/th.json
index 10033d8bc8..fd46913e7b 100644
--- a/plugins/UsersManager/lang/th.json
+++ b/plugins/UsersManager/lang/th.json
@@ -4,7 +4,6 @@
"Alias": "นามแฝง",
"AllWebsites": "เว็บไซต์ทั้งหมด",
"ApplyToAllWebsites": "กระทำกับเว็บไซต์ทั้งหมด",
- "ChangeAllConfirm": "คุณแน่ใจหรือไม่ว่าคุณต้องการเปลี่ยนแปลงสิทธิ์ '%s' บนเว็บไซต์ทั้งหมด",
"ClickHereToDeleteTheCookie": "คลิกที่นี่เพื่อลบคุกกี้ และมี Piwik ติดตามเข้าชมของคุณ",
"ClickHereToSetTheCookieOnDomain": "คลิกที่นี่เพื่อตั้งค่าคุกกี้ ที่จะไม่รวมการเข้าชมของคุณบนเว็บไซต์ที่ถูกติดตาม โดย Piwik บน %s",
"DeleteConfirm": "คุณแน่ใจหรือไม่ที่จะลบผู้ใช้ %s ?",
@@ -15,14 +14,11 @@
"ExceptionEditAnonymous": "ผู้ใช้งานที่ไม่ระบุชื่อไม่สามารถแก้ไขหรือลบได้ มันถูกใช้งานโดย Piwik เพื่อระบุผู้ใช้ที่ไม่ได้เข้าสู่ระบบยัง ตัวอย่างเช่น คุณสามารถอนุญาตให้ผู้ใช้งานทั่วไปสามารถดูสถิติของเว็บคุณได้",
"ExceptionEmailExists": "ผู้ใช้มีอีเมล์ '%s' อยู่แล้ว",
"ExceptionInvalidEmail": "รูปแบบของอีเมล์ไม่ถูกต้อง",
- "ExceptionInvalidLoginFormat": "ชือเข้าระบบจะต้องยาว %1$s และ %2$s ซึ่งจะประกอบไปด้วยตัวอักษร, ตัวเลขหรือเครื่องหมาย '_' หรือ '-' หรือ '.' เป็นต้น",
- "ExceptionLoginExists": "ชื่อผู้ใช้ '%s' มีอยู่แล้ว",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth คือต้องการรหัสผ่านแบบ MD5-hashed (มีความยาว 32 อักขระ) กรุณาเรียกใช้ฟังก์ชัน md5() ซึ่งจะมีรหัสผ่านก่อนที่จะเรียกวิธีการนี้",
"ExceptionUserDoesNotExist": "ผู้ใช้ '%s' ไม่มีในระบบ",
"ExcludeVisitsViaCookie": "ไม่รวมการเข้าชมของคุณโดยใช้คุกกี้",
"ForAnonymousUsersReportDateToLoadByDefault": "สำหรับผู้ใช้ที่ไม่ระบุชื่อ รายงานวันที่โหลด โดยค่าเริ่มต้น",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "ถ้าคุณต้องการที่จะเปลี่ยนชนิดของรหัสผ่านใหม่ มิฉะนั้นให้ปล่อยนี้ว่างไว้",
- "MainDescription": "การตัดสินใจว่าผู้ใช้รายใดที่ Piwik เข้าถึงเว็บไซต์ของคุณ นอกจากนี้คุณยังสามารถกำหนดสิทธิในเว็บไซต์ทั้งหมดในครั้งเดียว",
"ManageAccess": "จัดการการเข้าถึง",
"MenuAnonymousUserSettings": "การตั้งค่าผู้ใช้ที่ไม่ระบุชื่อ",
"MenuUsers": "ผู้ใช้",
@@ -39,7 +35,7 @@
"UsersManagementMainDescription": "สร้างผู้ใช้ใหม่หรืออัพเดตผู้ใช้ที่มีอยู่ จากนั้นคุณสามารถกำหนดสิทธิ์ของพวกเขาได้",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "เมื่อผู้ใช้เข้าสู่ระบบและเข้าชม Piwik พวกเขาควรจะเข้าถึงได้",
"YourUsernameCannotBeChanged": "ชื่อผู้ใช้ของคุณไม่สามารถเปลี่ยนแปลงได้",
- "YourVisitsAreIgnoredOnDomain": "%s ผู้เข้าชมของคุณจะถูกละเว้น โดย Piwik บน %s %s (Piwik ละเว้นการที่พบคุกกี้ในเบราว์เซอร์ของคุณ)",
- "YourVisitsAreNotIgnored": "%s ผู้เข้าชมของคุณจะถูกละเว้นโดย Piwik %s (Piwik ละเว้นไม่พบคุกกี้ในเบราว์เซอร์ของคุณ)"
+ "YourVisitsAreIgnoredOnDomain": "%1$s ผู้เข้าชมของคุณจะถูกละเว้น โดย Piwik บน %2$s %3$s (Piwik ละเว้นการที่พบคุกกี้ในเบราว์เซอร์ของคุณ)",
+ "YourVisitsAreNotIgnored": "%1$s ผู้เข้าชมของคุณจะถูกละเว้นโดย Piwik %2$s (Piwik ละเว้นไม่พบคุกกี้ในเบราว์เซอร์ของคุณ)"
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/tl.json b/plugins/UsersManager/lang/tl.json
index c137ea1b1b..e36ce6ab3f 100644
--- a/plugins/UsersManager/lang/tl.json
+++ b/plugins/UsersManager/lang/tl.json
@@ -6,13 +6,11 @@
"AnonymousUserHasViewAccess": "Tandaan: ang %1$s user ay may %2$s na access sa website na ito",
"AnonymousUserHasViewAccess2": "Ang iyong ulat na pang analytics at ang mga impormasyon ng iyong mga bisita ay makikita ng publiko.",
"ApplyToAllWebsites": "Mai-aapply sa lahat ng mga website",
- "ChangeAllConfirm": "Sigurado ka bang gusto mong baguhin ang mga permission sa '%s' sa lahat ng website?",
"ChangePasswordConfirm": "Kasamang ring mapapalitan ang user's token_auth kapag ikaw ay nagpalita ng password. Gusto mo ba talang ituloy ito?",
"ClickHereToDeleteTheCookie": "Pindutin dito upang burahin ang cookie at matala ng Piwik ang iyong pagbisita.",
"ClickHereToSetTheCookieOnDomain": "I-click dito upang magtakda ng cookie na mag buibukod sa iyong mga pagbisita sa mga website na sinusubaybayan ng Piwik sa %s.",
"ConfirmGrantSuperUserAccess": "Nais mo bang bigyan '%s' Super User access? Babala: ang user ay mag kakaroon ng access sa lahat ng websites at makakagawa ng pang administratibong gawain.",
"ConfirmProhibitMySuperUserAccess": "%s gusto mo bang alisin ang iyong Super User access? Maaring mawala lahat ang iyong permiso at access sa lahat ng websites at ikaw ay malala log-out sa Piwik.",
- "ConfirmProhibitOtherUsersSuperUserAccess": "Gusto mo ba talagang alisin ang Super User access mula kay '%s'? Ang user na ito ay mawawala ang lahat ng permiso at access sa lahat ng websites. Tiyakin na i-set ang mga permiso sa mga website na kailagan at kung itoy kinakailangan.",
"DeleteConfirm": "Sigurado ka bang gusto mong tanggalin ang user %s?",
"Email": "Email",
"EmailYourAdministrator": "%1$s I-e-mail sa iyong administrator tungkol sa problemang ito %2$s.",
@@ -24,7 +22,6 @@
"ExceptionEmailExists": "Ang email na '%s' para sa user na ito ay may iba nang gumagamit.",
"ExceptionInvalidEmail": "Ang e-mail ay walang wastong format.",
"ExceptionInvalidPassword": "Ang haba ng password ay dapat nasa pagitan ng %1$s at %2$s na character.",
- "ExceptionLoginExists": "Meron ng tulad nitong login '%s'.",
"ExceptionPasswordMD5HashExpected": "Ang UserManager.get Token Auth ay kinikilala lamang ang MD5-hashed password (32 chars long string). Mangyaring gamitin ang md5() function sa password bago gamitin ang method na ito.",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "Ang pag-alis sa Super User access mula sa user '%s' ay hindi posible.",
"ExceptionSuperUserAccess": "Ang user na ito ay mayroong Super User access at meroong permiso na e-access at magbago sa lahat ng website na nasa Piwik. Maari mong alisin ang Super User access mula sa user na ito at subukang muli.",
@@ -35,7 +32,6 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Kung nais mong baguhin ang iyong passoword mag type ng bago. Kung hindi man iwan itong blangko.",
"InjectedHostCannotChangePwd": "Ikaw ay kasalukuyang bumibisita sa isang hindi kilalang host (%1$s). Hindi mo maaaring baguhin ang iyong password hanggat hindi naayos ang problemang ito.",
"LastSeen": "Huling nakita",
- "MainDescription": "Magpasya kung aling mga gumagamit ay may na Piwik access sa iyong mga website. Maaari mong e-set ang mga permiso sa lahat ng website ng sabay-sabay.",
"ManageAccess": "Pamahalaan ang access",
"MenuAnonymousUserSettings": "Mga settings ng anonymous na user",
"MenuUsers": "Users",
@@ -58,7 +54,7 @@
"UsersManagementMainDescription": "Lumikha ng mga bagong user o i-update ang mga mayroon nang user. Pagkatapos ay maaari mong itakda ang kanilang mga permiso sa itaas.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Kung ang gumagamit ay hindi naka log-in at bumisita sa Piwik kailangan nilang mag-access",
"YourUsernameCannotBeChanged": "Hindi maaaring mabago ang iyong username.",
- "YourVisitsAreIgnoredOnDomain": "%s Ang iyong bisita ay hindi na-ignore ng Piwik %s %s (ang Piwik ignore cookie ay hindi nakita sa iyong browser).",
- "YourVisitsAreNotIgnored": "%s Ang iyong bisita ay hindi na-ignore ng Piwik%s (ang Piwik ignore cookie ay hindi nakita sa iyong browser)."
+ "YourVisitsAreIgnoredOnDomain": "%1$s Ang iyong bisita ay hindi na-ignore ng Piwik %2$s %3$s (ang Piwik ignore cookie ay hindi nakita sa iyong browser).",
+ "YourVisitsAreNotIgnored": "%1$s Ang iyong bisita ay hindi na-ignore ng Piwik%2$s (ang Piwik ignore cookie ay hindi nakita sa iyong browser)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/tr.json b/plugins/UsersManager/lang/tr.json
index 3342bbbde7..aa3fab8c00 100644
--- a/plugins/UsersManager/lang/tr.json
+++ b/plugins/UsersManager/lang/tr.json
@@ -4,7 +4,6 @@
"Alias": "Diğer Ad",
"AllWebsites": "Tüm Websiteler",
"ApplyToAllWebsites": "Tüm websitelere uygula",
- "ChangeAllConfirm": "Tüm websitelerin '%s' izinlerini değiştirmektesiniz, emin misiniz?",
"ClickHereToDeleteTheCookie": "Çerezleri silmek ve sizin ziyaretlerinizi takip etmek için burayi tıklayınız",
"DeleteConfirm": "%s kullanıcısını silmekten emin misiniz?",
"Email": "Eposta",
@@ -30,7 +29,7 @@
"UsersManagement": "Kullanıcı Yönetimleri",
"UsersManagementMainDescription": "Yeni kullanıcı yaratın yada var olan kullanıcıyı güncelleyin. Yukaridaki izinleri ayarlayabilirsiniz.",
"YourUsernameCannotBeChanged": "Kullanıcı adınız değiştirilemez.",
- "YourVisitsAreIgnoredOnDomain": "%sSizin ziyaretleriniz Piwik tarafından %s hariç tutulmuyor%s (Piwik tarayınızdaki çerezleri bulamamiştir. O nedenle hariç tutulmuyorsunuz).",
- "YourVisitsAreNotIgnored": "%sSizin ziyaretleriniz Piwik tarafından hariç tutulmuyor%s (Piwik tarayınızdaki çerezleri bulamamiştir. O nedenle hariç tutulmuyorsunuz)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sSizin ziyaretleriniz Piwik tarafından %2$s hariç tutulmuyor%3$s (Piwik tarayınızdaki çerezleri bulamamiştir. O nedenle hariç tutulmuyorsunuz).",
+ "YourVisitsAreNotIgnored": "%1$sSizin ziyaretleriniz Piwik tarafından hariç tutulmuyor%2$s (Piwik tarayınızdaki çerezleri bulamamiştir. O nedenle hariç tutulmuyorsunuz)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/uk.json b/plugins/UsersManager/lang/uk.json
index 52b3b72acd..e429bb4983 100644
--- a/plugins/UsersManager/lang/uk.json
+++ b/plugins/UsersManager/lang/uk.json
@@ -4,7 +4,6 @@
"Alias": "Псевдонім",
"AllWebsites": "Всі веб-сайти",
"ApplyToAllWebsites": "Застосувати до всіх веб-сайтів",
- "ChangeAllConfirm": "Змінити права \"%s\" для всіх вебсайтів?",
"ClickHereToDeleteTheCookie": "Клацніть щоб видалити cookie та дозволити Piwik відслідковувати ваші візити",
"ClickHereToSetTheCookieOnDomain": "Клацніть щоб встановити cookie який слугуватиме вказівкою для ігнорування ваших візитів при відслідковуванні на веб-сайті %s",
"DeleteConfirm": "Видалити користувача %s?",
@@ -15,14 +14,11 @@
"ExceptionEditAnonymous": "Анонімний користувач не може бути відредагований або видалений. Цей тип користувачів Piwik застосовує для користувачів, які не представились системі. Наприклад, Ви можете зробити Вашу статистику публічною надаючи права \"перегляду\" анонімномим користувачам.",
"ExceptionEmailExists": "Користувач з адресою e-mail \"%s\" вже існує.",
"ExceptionInvalidEmail": "Невірний e-mail.",
- "ExceptionInvalidLoginFormat": "Ім’я користувача повинно бути довжиною від %1$s до %2$s символів та містити тільки букви, цифри, символи \"_\", \"-\" та \".\"",
- "ExceptionLoginExists": "Ім'я користувача \"%s\" вже існує.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth приймає на вхід пароль хешований MD5 (стрічку довжиною в 32 символи). Викличте функцію md5() перед визовом даного методу.",
"ExceptionUserDoesNotExist": "Користувач \"%s\" не існує.",
"ExcludeVisitsViaCookie": "Виключити ваші відвідування використовуючи cookie",
"ForAnonymousUsersReportDateToLoadByDefault": "Для анонімних користувачів повідомляти дату завантаження за замовчування",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Якщо необхідно змінити пароль, введіть новий сюди. В іншому випадку залиште поле незаповненим.",
- "MainDescription": "Встановіть який рівень Piwik доступу має кожен користувач на ваших веб-сайтах.",
"ManageAccess": "Управління доступом",
"MenuAnonymousUserSettings": "Налаштування анонімного користувача",
"MenuUsers": "Користувачі",
@@ -39,7 +35,7 @@
"UsersManagementMainDescription": "Створіть нових користувачів або редагуйте існуючих. Також нижче можна задати права доступу для них.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Якщо користувачі не увійшли в систему і відвідують Piwik, то овни повинні мати можливість отримати доступ",
"YourUsernameCannotBeChanged": "Ім’я користувача не можу бути змінене.",
- "YourVisitsAreIgnoredOnDomain": "%sВаші відвідування ігноруються системою Piwik в %s %s (Piwik знашов cookie у вашому браузері з вказівкою ігнорувати).",
- "YourVisitsAreNotIgnored": "%sВаші відвідування відслідковуються системою Piwik %s (Piwik не знашов cookie у вашому браузері)."
+ "YourVisitsAreIgnoredOnDomain": "%1$sВаші відвідування ігноруються системою Piwik в %2$s %3$s (Piwik знашов cookie у вашому браузері з вказівкою ігнорувати).",
+ "YourVisitsAreNotIgnored": "%1$sВаші відвідування відслідковуються системою Piwik %2$s (Piwik не знашов cookie у вашому браузері)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/vi.json b/plugins/UsersManager/lang/vi.json
index 8170967580..33b12cb874 100644
--- a/plugins/UsersManager/lang/vi.json
+++ b/plugins/UsersManager/lang/vi.json
@@ -6,7 +6,6 @@
"AnonymousUserHasViewAccess": "Lưu ý: Người dùng %1$s có truy cập %2$s đến website này.",
"AnonymousUserHasViewAccess2": "Các báo cáo phân tích của bạn và thông tin các khách truy cập của bạn là công khai có thể xem được.",
"ApplyToAllWebsites": "Áp dụng cho tất cả các website",
- "ChangeAllConfirm": "Bạn có chắc chắn bạn muốn thay đổi '%s' quyền truy cập trên tất cả các trang web?",
"ChangePasswordConfirm": "Thay đổi mật khẩu cũng sẽ thay đổi token_auth của người dùng. Bạn có thực sự muốn tiếp tục?",
"ClickHereToDeleteTheCookie": "Click vào đây để xóa các cookie và đã Piwik theo dõi truy cập của bạn",
"ClickHereToSetTheCookieOnDomain": "Click vào đây để thiết lập một cookie sẽ loại trừ các lượt truy cập của bạn trên các trang web được theo dõi bởi Piwik trên %s",
@@ -19,16 +18,13 @@
"ExceptionEditAnonymous": "Người dùng ẩn danh không thể chỉnh sửa hoặc xóa. Nó được sử dụng bởi Piwik để xác định một người dùng đã không đăng nhập lúc này. Ví dụ, bạn có thể làm cho số liệu thống kê công cộng(public) của bạn bằng cách cho phép truy cập \"xem\" đến người dùng 'ẩn danh'.",
"ExceptionEmailExists": "Người dùng với email '%s' đã tồn tại.",
"ExceptionInvalidEmail": "Email không có một định dạng hợp lệ.",
- "ExceptionInvalidLoginFormat": "Đăng nhập phải từ %1$s và %2$s character long and chỉ chứa chữ cái, số, hoặc các ký tự '_' hoặc '-' hoặc '.' hoặc '@' hoặc '+'",
"ExceptionInvalidPassword": "Độ dài mật khẩu phải từ %1$s và %2$s ký tự.",
- "ExceptionLoginExists": "Đăng nhập '%s' đã tồn tại.",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth là yêu cầu một mật khẩu băm MD5 (chuỗi 32 char long). Xin vui lòng gọi hàm md5() trên mật khẩu trước khi gọi phương thức này.",
"ExceptionUserDoesNotExist": "Người dùng '%s' không tồn tại.",
"ExcludeVisitsViaCookie": "Loại bỏ các truy cập của bạn sử dụng một cookie",
"ForAnonymousUsersReportDateToLoadByDefault": "Đối với người dùng ẩn danh, báo cáo thep ngày nạp theo mặc định",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "Nếu bạn muốn thay đổi các loại mật khẩu thành một cái mới. Nếu không thì để trống.",
"InjectedHostCannotChangePwd": "Bạn đang truy cập với một máy chủ không xác định (%1$s). Bạn không thể thay đổi mật khẩu của bạn cho đến khi vấn đề này được xử lý.",
- "MainDescription": "Quyết định người dùng nào đó có truy cập Piwik nào đó trên trang web của bạn. Bạn cũng có thể thiết lập quyền truy cập trên tất cả các trang web cùng một lúc.",
"ManageAccess": "Quản lý truy cập",
"MenuAnonymousUserSettings": "Thiết lập người dùng ẩn danh",
"MenuUsers": "Các người dùng",
@@ -47,7 +43,7 @@
"UsersManagementMainDescription": "Tạo người dùng mới hoặc cập nhật các người dùng hiện tại. Sau đó bạn có thể thiết lập quyền của họ.",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "Khi người dùng không đăng nhập và thăm Piwik, họ nên truy cập",
"YourUsernameCannotBeChanged": "Tên đăng nhập của bạn không thể thay đổi.",
- "YourVisitsAreIgnoredOnDomain": "%s lượt truy cập của bạn sẽ được bỏ qua bởi Piwik trên %s %s (cookie Piwik bỏ qua đã được tìm thấy trong trình duyệt của bạn).",
- "YourVisitsAreNotIgnored": "%s lượt truy cập của bạn không được bỏ qua bởi Piwik %s (cookie Piwik bỏ qua đã không tìm thấy trong trình duyệt của bạn)."
+ "YourVisitsAreIgnoredOnDomain": "%1$s lượt truy cập của bạn sẽ được bỏ qua bởi Piwik trên %2$s %3$s (cookie Piwik bỏ qua đã được tìm thấy trong trình duyệt của bạn).",
+ "YourVisitsAreNotIgnored": "%1$s lượt truy cập của bạn không được bỏ qua bởi Piwik %2$s (cookie Piwik bỏ qua đã không tìm thấy trong trình duyệt của bạn)."
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/zh-cn.json b/plugins/UsersManager/lang/zh-cn.json
index 2fbd74e8da..50bb92f4be 100644
--- a/plugins/UsersManager/lang/zh-cn.json
+++ b/plugins/UsersManager/lang/zh-cn.json
@@ -6,7 +6,6 @@
"AnonymousUserHasViewAccess": "提示: 用户 %1$s 可以 %2$s 这个网站。",
"AnonymousUserHasViewAccess2": "您的分析报表和访客信息是公开的。",
"ApplyToAllWebsites": "应用至所有网站",
- "ChangeAllConfirm": "您确定要在所有网站上修改 '%s' 的权限吗?",
"ChangePasswordConfirm": "修改密码同时也会修改用户的授权号 token_auth,要继续吗?",
"ClickHereToDeleteTheCookie": "点击这里刪除 cookie 并让 Piwik 跟踪您的访问记录",
"ClickHereToSetTheCookieOnDomain": "点击这里设定一个 cookie 让 %s 的 Piwik 排除您的访问记录",
@@ -19,16 +18,13 @@
"ExceptionEditAnonymous": "anonymous 用户不能被修改或删除,因为他是被 Piwik 使用来定义一个还未登入的用户!例如,您可以把 '查看' 权限授予 'anonymous' 用户以公开您的统计资料!",
"ExceptionEmailExists": "使用邮箱 '%s' 的用户已存在!",
"ExceptionInvalidEmail": "邮箱格式不正确!",
- "ExceptionInvalidLoginFormat": "登录帐号的长度必须介于 %1$s 至 %2$s 个字符之间,并且只能包含字母、数字或字符 '_' 或 '-' 或 '.' 。",
"ExceptionInvalidPassword": "密码长度必须介于 %1$s 和 %2$s 个字符之间。",
- "ExceptionLoginExists": "登录帐号 '%s' 已存在!",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth 是以MD5加密的密码(32 个字符)。使用此方法请请先调用 md5()函数。",
"ExceptionUserDoesNotExist": "用户 '%s' 不存在!",
"ExcludeVisitsViaCookie": "用 cookie 排除您自己的访问记录",
"ForAnonymousUsersReportDateToLoadByDefault": "匿名访客默认加载的报表日期",
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "如果您要修改密码,请输入新的密码,否则留空。",
"InjectedHostCannotChangePwd": "您正在访问的主机名 (%1$s) 未知,修复这个问题后才能修改密码。",
- "MainDescription": "设置在您网站上的哪个用户具有哪些 Piwik 权限。 您也可以一次设定所有网站的权限。",
"ManageAccess": "权限管理",
"MenuAnonymousUserSettings": "匿名用户参数",
"MenuUsers": "用户管理",
@@ -47,7 +43,7 @@
"UsersManagementMainDescription": "添加用户或修改用户,然后在上面设定权限。",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "如果访客没有登录,访问 Piwik 时打开",
"YourUsernameCannotBeChanged": "不能修改用户名。",
- "YourVisitsAreIgnoredOnDomain": "%s您的访问记录已在 %s %s 被 Piwik 忽略(在您的浏览器找到 Piwik 拒绝 cookie)",
- "YourVisitsAreNotIgnored": "%s您的访问记录沒有被 Piwik 忽略%s (您的浏览器中没有 Piwik 忽略 cookie)"
+ "YourVisitsAreIgnoredOnDomain": "%1$s您的访问记录已在 %2$s %3$s 被 Piwik 忽略(在您的浏览器找到 Piwik 拒绝 cookie)",
+ "YourVisitsAreNotIgnored": "%1$s您的访问记录沒有被 Piwik 忽略%2$s (您的浏览器中没有 Piwik 忽略 cookie)"
}
} \ No newline at end of file
diff --git a/plugins/UsersManager/lang/zh-tw.json b/plugins/UsersManager/lang/zh-tw.json
index 32d24cf10a..db5f835832 100644
--- a/plugins/UsersManager/lang/zh-tw.json
+++ b/plugins/UsersManager/lang/zh-tw.json
@@ -7,13 +7,11 @@
"AnonymousUserHasViewAccess": "注意:這個 %1$s 使用者有 %2$s 訪問該網站。",
"AnonymousUserHasViewAccess2": "您的分析報告跟你的訪客信息是公開可查看。",
"ApplyToAllWebsites": "套用至所有網站",
- "ChangeAllConfirm": "你確定要在所有網站上變更 '%s' 的權限嗎?",
"ChangePasswordConfirm": "變更密碼也會更改用戶的token_auth。你真的要繼續嗎?",
"ClickHereToDeleteTheCookie": "點擊這裡刪除 cookie 並讓 Piwik 追蹤你的訪問紀錄",
"ClickHereToSetTheCookieOnDomain": "點擊這裡設定一個 cookie 讓 %s 的 Piwik 排除你的訪問紀錄",
"ConfirmGrantSuperUserAccess": "你真的要授予 '%s' 超級用戶訪問權限?警告:該用戶將有權訪問所有的網站,並能夠執行管理任務。",
"ConfirmProhibitMySuperUserAccess": "%s,你真的要刪除自己的超級用戶訪問權限?你將失去所有的權限和訪問所有網站,並會從Piwik註銷。",
- "ConfirmProhibitOtherUsersSuperUserAccess": "你真的要刪除 '%s' 的超級用戶訪問權限?用戶將失去所有的權限和訪問所有網站。請確保在做這樣的動作之前已經設置了必要的權限。",
"DeleteConfirm": "你確定要刪除使用者 %s 嗎?",
"Email": "E-mail",
"EmailYourAdministrator": "%1$s 郵寄給您的系統管理員並針對這個問題 %2$s。",
@@ -24,9 +22,7 @@
"ExceptionEditAnonymous": "匿名用戶不能修改或刪除。因為 Piwik 用來定義一個還未登入的使用者。舉例來說,你可以把'檢視'權限給匿名用戶來公開你的統計資料。",
"ExceptionEmailExists": "使用 '%s' E-mail 的使用者已經存在。",
"ExceptionInvalidEmail": "此 E-mail 地址格式無效。",
- "ExceptionInvalidLoginFormat": "登入帳號的長度必須介於 %1$s 至 %2$s 字元之間,並且只能包含字母、數字或字元 '_' 或 '-' 或 '.' 。",
"ExceptionInvalidPassword": "密碼長度必須是介於 %1$s 跟 %2$s 字符之間。",
- "ExceptionLoginExists": "登入帳號 '%s' 已經存在。",
"ExceptionPasswordMD5HashExpected": "UsersManager.getTokenAuth 是以MD5加密的密碼(32個字元字串)。在使用此方法前請先呼叫 md5() 函式。",
"ExceptionRemoveSuperUserAccessOnlySuperUser": "刪除用戶 '%s' 的超級用戶訪問權限是不可能的。",
"ExceptionSuperUserAccess": "該用戶擁有超級用戶訪問權限,並且已有權限訪問和修改的所有網站的Piwik。您可以刪除該用戶的超級用戶訪問權限,然後再試一次。",
@@ -37,7 +33,6 @@
"IfYouWouldLikeToChangeThePasswordTypeANewOne": "如果你要變更密碼時請輸入新的密碼。否則留空。",
"InjectedHostCannotChangePwd": "當前正處於一個未知的主機 (%1$s)。您不能更改您的密碼直到這個問題得到解決。",
"LastSeen": "最近看到",
- "MainDescription": "決定在你網站上的哪個使用者具有何種 Piwik 存取權。 你也可以一次設定所有網站的權限。",
"ManageAccess": "管理權限",
"MenuAnonymousUserSettings": "匿名用戶設定",
"MenuUsers": "使用者",
@@ -46,7 +41,6 @@
"PersonalSettings": "個人化設定",
"NoteNoAnonymousUserAccessSettingsWontBeUsed2": "注意:您不能更改這些設置在本區塊中,因為你沒有可以由匿名用戶訪問的任何網站。",
"NoUsersExist": "還沒有用戶呢。",
- "PluginDescription": "用戶管理可讓您添加新用戶,編輯現有用戶並為其指定權限查看或管理的網站。",
"PrivAdmin": "管理員",
"PrivNone": "無存取權限",
"PrivView": "檢視",
@@ -63,7 +57,7 @@
"UsersManagementMainDescription": "建立新使用者或更新現存的使用者。然後你就可以將他們設定為以上權限。",
"WhenUsersAreNotLoggedInAndVisitPiwikTheyShouldAccess": "當使用者未登入且訪問 Piwik 時,他們應該前往",
"YourUsernameCannotBeChanged": "你的使用者名稱無法變更。",
- "YourVisitsAreIgnoredOnDomain": "%s你的訪問紀錄已在 %s %s 被 Piwik 忽略(在你的瀏覽器找到 Piwik 拒絕 cookie)",
- "YourVisitsAreNotIgnored": "%s你的訪問紀錄沒有被 Piwik 忽略%s(在你的瀏覽器找不到 Piwik 拒絕 cookie)"
+ "YourVisitsAreIgnoredOnDomain": "%1$s你的訪問紀錄已在 %2$s %3$s 被 Piwik 忽略(在你的瀏覽器找到 Piwik 拒絕 cookie)",
+ "YourVisitsAreNotIgnored": "%1$s你的訪問紀錄沒有被 Piwik 忽略%2$s(在你的瀏覽器找不到 Piwik 拒絕 cookie)"
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/be.json b/plugins/VisitTime/lang/be.json
index 9eaf161f2b..aec8bf6ed2 100644
--- a/plugins/VisitTime/lang/be.json
+++ b/plugins/VisitTime/lang/be.json
@@ -7,8 +7,8 @@
"ServerTime": "Наведванняў па серверным часе",
"SubmenuTimes": "Па часе",
"WidgetLocalTime": "Наведванняў па мясцовым часе",
- "WidgetLocalTimeDocumentation": "Гэты графік паказвае, які %s час быў у наведвальніка %s пад час наведвання веб-сайту.",
+ "WidgetLocalTimeDocumentation": "Гэты графік паказвае, які %1$s час быў у наведвальніка %2$s пад час наведвання веб-сайту.",
"WidgetServerTime": "Наведванняў па серверным часе",
- "WidgetServerTimeDocumentation": "Гэты графік паказвае, які %s час быў на серверы %s пад час наведвання веб-сайту."
+ "WidgetServerTimeDocumentation": "Гэты графік паказвае, які %1$s час быў на серверы %2$s пад час наведвання веб-сайту."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/bg.json b/plugins/VisitTime/lang/bg.json
index 31f10e4014..bceb1102a1 100644
--- a/plugins/VisitTime/lang/bg.json
+++ b/plugins/VisitTime/lang/bg.json
@@ -10,8 +10,8 @@
"VisitsByDayOfWeek": "Посещения по ден от седмицата",
"WidgetByDayOfWeekDocumentation": "Графиката показва посещенията за всеки ден от седмицата.",
"WidgetLocalTime": "Посещения по локално време",
- "WidgetLocalTimeDocumentation": "Тази графика показва колко е бил часът в %s часовия пояс на потребителите %s по време на посещенията им.",
+ "WidgetLocalTimeDocumentation": "Тази графика показва колко е бил часът в %1$s часовия пояс на потребителите %2$s по време на посещенията им.",
"WidgetServerTime": "Посещения по сървърно време",
- "WidgetServerTimeDocumentation": "Тази графика показва колко е бил часът в %s часовия пояс използван от сървъра %s по време на посещенията."
+ "WidgetServerTimeDocumentation": "Тази графика показва колко е бил часът в %1$s часовия пояс използван от сървъра %2$s по време на посещенията."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/ca.json b/plugins/VisitTime/lang/ca.json
index 39fdd4e8fb..4a6042a101 100644
--- a/plugins/VisitTime/lang/ca.json
+++ b/plugins/VisitTime/lang/ca.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Visites per día de la setmana",
"WidgetByDayOfWeekDocumentation": "Aquest gràfic mostre el nombre de visites que ha rebut el vostre lloc web cada dia de la setmana.",
"WidgetLocalTime": "Visites segons l'hora local",
- "WidgetLocalTimeDocumentation": "Aquest gràfic mostra a quina hora era a %s la zona horària del visitant %s durant la seva visita.",
+ "WidgetLocalTimeDocumentation": "Aquest gràfic mostra a quina hora era a %1$s la zona horària del visitant %2$s durant la seva visita.",
"WidgetServerTime": "Visites segons l'hora del servidor",
- "WidgetServerTimeDocumentation": "Aquest gràfic quina hora era a la %s zona horària del servidor %s durant la visita."
+ "WidgetServerTimeDocumentation": "Aquest gràfic quina hora era a la %1$s zona horària del servidor %2$s durant la visita."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/cs.json b/plugins/VisitTime/lang/cs.json
index c49f2bc6a6..061bcda4ea 100644
--- a/plugins/VisitTime/lang/cs.json
+++ b/plugins/VisitTime/lang/cs.json
@@ -1,7 +1,7 @@
{
"VisitTime": {
"ColumnLocalTime": "Lokální čas",
- "ColumnServerTime": "Serverový čas",
+ "ColumnServerTime": "Čas serveru",
"DayOfWeek": "Dny v týdnu",
"LocalTime": "Návštěvy podle lokálního času",
"NHour": "%sh",
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Návštěvy podle dnů v týdnu",
"WidgetByDayOfWeekDocumentation": "Tento graf zobrazuje, kolik návštěv obdržela vaše stránka každý den v týdnu.",
"WidgetLocalTime": "Návštěvy podle lokálního času",
- "WidgetLocalTimeDocumentation": "Tento graf ukazuje čas v %s návštěvníkovo časové zóně %s během jěho návštěvy.",
+ "WidgetLocalTimeDocumentation": "Tento graf ukazuje čas v %1$s návštěvníkovo časové zóně %2$s během jěho návštěvy.",
"WidgetServerTime": "Návštěvy podle času na serveru",
- "WidgetServerTimeDocumentation": "Tento graf ukazuje jaký čas byl na %s serveru časové zóny %s během návstěvy."
+ "WidgetServerTimeDocumentation": "Tento graf ukazuje jaký čas byl na %1$s serveru časové zóny %2$s během návstěvy."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/da.json b/plugins/VisitTime/lang/da.json
index 3101f2eedf..679d610916 100644
--- a/plugins/VisitTime/lang/da.json
+++ b/plugins/VisitTime/lang/da.json
@@ -10,8 +10,8 @@
"VisitsByDayOfWeek": "Besøg efter ugedag",
"WidgetByDayOfWeekDocumentation": "Denne graf viser antallet af besøg hjemmesiden har modtaget på hver dag i ugen.",
"WidgetLocalTime": "Besøg (lokaltid)",
- "WidgetLocalTimeDocumentation": "Diagrammet viser, hvad klokken var i %s besøgendes tidszone %s under deres besøg.",
+ "WidgetLocalTimeDocumentation": "Diagrammet viser, hvad klokken var i %1$s besøgendes tidszone %2$s under deres besøg.",
"WidgetServerTime": "Besøg (servertid)",
- "WidgetServerTimeDocumentation": "Diagrammet viser, hvad klokken var i %s serverens tidszone %s under besøgene."
+ "WidgetServerTimeDocumentation": "Diagrammet viser, hvad klokken var i %1$s serverens tidszone %2$s under besøgene."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/de.json b/plugins/VisitTime/lang/de.json
index cdce77f1dd..27d38c5ff1 100644
--- a/plugins/VisitTime/lang/de.json
+++ b/plugins/VisitTime/lang/de.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Besuche nach Wochentagen",
"WidgetByDayOfWeekDocumentation": "Dieser Graph zeigt die Anzahl der Besuche Ihrer Website nach Wochentagen.",
"WidgetLocalTime": "Besuche nach lokaler Zeit",
- "WidgetLocalTimeDocumentation": "Dieser Graph zeigt, wie viel Uhr es %s in der Zeitzone des Besuchers %s war, als er die Seite besuchte.",
+ "WidgetLocalTimeDocumentation": "Dieser Graph zeigt, wie viel Uhr es %1$s in der Zeitzone des Besuchers %2$s war, als er die Seite besuchte.",
"WidgetServerTime": "Besuche nach Server-Zeit",
- "WidgetServerTimeDocumentation": "Dieser Graph zeigt, wie viel Uhr es %s in der Zeitzone des Servers %s war, als die Seite besucht wurde."
+ "WidgetServerTimeDocumentation": "Dieser Graph zeigt, wie viel Uhr es %1$s in der Zeitzone des Servers %2$s war, als die Seite besucht wurde."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/el.json b/plugins/VisitTime/lang/el.json
index 7a7b502c5f..3a0ab4b156 100644
--- a/plugins/VisitTime/lang/el.json
+++ b/plugins/VisitTime/lang/el.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Επισκέψεις ανά Ημέρα της Εβδομάδας",
"WidgetByDayOfWeekDocumentation": "Αυτό το διάγραμμα δείχνει τον αριθμό των επισκέψεων που είχε η ιστοσελίδα σας κάθε ημέρα της εβδομάδας.",
"WidgetLocalTime": "Επισκέψεις ανά τοπική ώρα",
- "WidgetLocalTimeDocumentation": "Αυτό το διάγραμμα δείχνει τι ώρα ήταν στη %sζώνη ώρας των επισκεπτών%s κατά τις επισκέψεις τους.",
+ "WidgetLocalTimeDocumentation": "Το γράφημα δείχνει την ακριβή ώρα στην %1$s ώρα ζώνης των επισκεπτών %2$s κατά την διάρκεια της επίσκεψής τους.",
"WidgetServerTime": "Επισκέψεις ανά ώρα διακομιστή",
- "WidgetServerTimeDocumentation": "Αυτό το διάγραμμα δείχνει τι ώρα ήταν στη %sζώνη ώρας του διακομιστή%s κατά τις επισκέψεις τους."
+ "WidgetServerTimeDocumentation": "Το γράφημα δείχνει την ακριβή ώρα στην %1$s ώρα ζώνης του διακομιστή %2$s κατά την διάρκεια των επισκέψεων."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/en.json b/plugins/VisitTime/lang/en.json
index df2f6b6734..15fb00915c 100644
--- a/plugins/VisitTime/lang/en.json
+++ b/plugins/VisitTime/lang/en.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Visits by Day of Week",
"WidgetByDayOfWeekDocumentation": "This graph shows the number of visits your website received on each day of the week.",
"WidgetLocalTime": "Visits by Local Time",
- "WidgetLocalTimeDocumentation": "This graph shows what time it was in the %s visitors' time zones %s during their visits.",
+ "WidgetLocalTimeDocumentation": "This graph shows what time it was in the %1$s visitors' time zones %2$s during their visits.",
"WidgetServerTime": "Visits by Server Time",
- "WidgetServerTimeDocumentation": "This graph shows what time it was in the %s server's time zone %s during the visits."
+ "WidgetServerTimeDocumentation": "This graph shows what time it was in the %1$s server's time zone %2$s during the visits."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/es.json b/plugins/VisitTime/lang/es.json
index 34f58c4898..ab312e358b 100644
--- a/plugins/VisitTime/lang/es.json
+++ b/plugins/VisitTime/lang/es.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Visitas por día de la semana",
"WidgetByDayOfWeekDocumentation": "Este gráfico muestra el número de visitas que su sitio de internet recibió en cada día de la semana.",
"WidgetLocalTime": "Visitas por hora local",
- "WidgetLocalTimeDocumentation": "Este gráfico muestra que horario fue %sen las zonas horarias de los visitantes %s durante sus visitas.",
+ "WidgetLocalTimeDocumentation": "Este gráfico muestra que horario fue %1$sen las zonas horarias de los visitantes %2$s durante sus visitas.",
"WidgetServerTime": "Visitas por hora del servidor",
- "WidgetServerTimeDocumentation": "Este gráfico muestra cual fue el horario en la %s zona horaria del servidor %s durante las visitas."
+ "WidgetServerTimeDocumentation": "Este gráfico muestra cual fue el horario en la %1$s zona horaria del servidor %2$s durante las visitas."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/fi.json b/plugins/VisitTime/lang/fi.json
index 70569fb1f3..14e8b8856b 100644
--- a/plugins/VisitTime/lang/fi.json
+++ b/plugins/VisitTime/lang/fi.json
@@ -10,8 +10,8 @@
"VisitsByDayOfWeek": "Käynnit viikonpäivän mukaan",
"WidgetByDayOfWeekDocumentation": "Tämä kuvaaja näyttää käyntien määrän sivuilla viikonpäivien mukaan",
"WidgetLocalTime": "Käyntejä (paikallinen aika)",
- "WidgetLocalTimeDocumentation": "Tämä kuvaaja näyttää, mikä aika oli %s kävijöiden aikavyöhykkeellä %s käyntien aikana.",
+ "WidgetLocalTimeDocumentation": "Tämä kuvaaja näyttää, mikä aika oli %1$s kävijöiden aikavyöhykkeellä %2$s käyntien aikana.",
"WidgetServerTime": "Käyntejä (palvelimen aika)",
- "WidgetServerTimeDocumentation": "Tämä kuvaaja näyttää, mikä aika oli %s palvelimen aikavyöhykkeellä %s käyntien aikana."
+ "WidgetServerTimeDocumentation": "Tämä kuvaaja näyttää, mikä aika oli %1$s palvelimen aikavyöhykkeellä %2$s käyntien aikana."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/fr.json b/plugins/VisitTime/lang/fr.json
index 6b5e0768bd..17dcea648a 100644
--- a/plugins/VisitTime/lang/fr.json
+++ b/plugins/VisitTime/lang/fr.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Visites par Jour de la Semaine",
"WidgetByDayOfWeekDocumentation": "Ce graphique affiche le nombre de visites que votre site web a reçu durant chaque jour de la semaine.",
"WidgetLocalTime": "Visites par fuseau horaire local",
- "WidgetLocalTimeDocumentation": "Ce graphique affiche la répartition horaire basée sur le %s fuseau horaire du visiteur %s.",
+ "WidgetLocalTimeDocumentation": "Ce graphique affiche la répartition horaire basée sur le %1$s fuseau horaire du visiteur %2$s.",
"WidgetServerTime": "Visites par fuseau horaire du serveur",
- "WidgetServerTimeDocumentation": "Ce graphique affiche la répartition horaire basée sur le %s fuseau horaire du serveur %s."
+ "WidgetServerTimeDocumentation": "Ce graphique affiche la répartition horaire basée sur le %1$s fuseau horaire du serveur %2$s."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/id.json b/plugins/VisitTime/lang/id.json
index f06dcfb3e7..066fa2f0b0 100644
--- a/plugins/VisitTime/lang/id.json
+++ b/plugins/VisitTime/lang/id.json
@@ -10,8 +10,8 @@
"VisitsByDayOfWeek": "Kunjungan berdasar Hari dalam Sepekan",
"WidgetByDayOfWeekDocumentation": "Grafik ini menampilkan jumlah kunjungan yang diperoleh situs Anda dalam setiap hari dalam sepekan.",
"WidgetLocalTime": "Kunjungan berdasar waktu lokal",
- "WidgetLocalTimeDocumentation": "Grafik ini menampilkan waktu pengunjung %s saat ini dalam wilayah waktu %s selama kunjungan.",
+ "WidgetLocalTimeDocumentation": "Grafik ini menampilkan waktu pengunjung %1$s saat ini dalam wilayah waktu %2$s selama kunjungan.",
"WidgetServerTime": "Kunjungan berdasar waktu peladen",
- "WidgetServerTimeDocumentation": "Grafik ini menampilkan waktu peladen %s saat ini dalam wilayah waktu %s selama kunjungan."
+ "WidgetServerTimeDocumentation": "Grafik ini menampilkan waktu peladen %1$s saat ini dalam wilayah waktu %2$s selama kunjungan."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/it.json b/plugins/VisitTime/lang/it.json
index 2671412557..c458a1aeba 100644
--- a/plugins/VisitTime/lang/it.json
+++ b/plugins/VisitTime/lang/it.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Visite per giorno della settimana",
"WidgetByDayOfWeekDocumentation": "Il grafico mostra il numero di visite che il tuo sito ha ricevuto in ciascun giorno della settimana.",
"WidgetLocalTime": "Visite per ora locale",
- "WidgetLocalTimeDocumentation": "Questo grafico mostra che ora era nei %sfusi orari dei visitatori%s durante le loro visite.",
+ "WidgetLocalTimeDocumentation": "Questo grafico mostra che ora era nei %1$sfusi orari dei visitatori%2$s durante le loro visite.",
"WidgetServerTime": "Visite per ora del server",
- "WidgetServerTimeDocumentation": "Questo grafico mostra che ora era nel %sfuso orario del server%s durante le visite."
+ "WidgetServerTimeDocumentation": "Questo grafico mostra che ora era nel %1$s fuso orario del server %2$s durante le visite."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/ja.json b/plugins/VisitTime/lang/ja.json
index 57c3356e39..a690e2b9b8 100644
--- a/plugins/VisitTime/lang/ja.json
+++ b/plugins/VisitTime/lang/ja.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "曜日別訪問数",
"WidgetByDayOfWeekDocumentation": "このグラフは、曜日ごとのウェブサイト訪問数を表示します",
"WidgetLocalTime": "ローカルタイム単位のビジット",
- "WidgetLocalTimeDocumentation": "このグラフは、訪問中の %s ビジターの時間帯 %s を表示します。",
+ "WidgetLocalTimeDocumentation": "このグラフは、訪問中の %1$s ビジターの時間帯 %2$s を表示します。",
"WidgetServerTime": "サーバタイム単位のビジット",
- "WidgetServerTimeDocumentation": "このグラフは、訪問中の %s サーバー時間帯 %s を表示します。"
+ "WidgetServerTimeDocumentation": "このグラフは、訪問中の %1$s サーバー時間帯 %2$s を表示します。"
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/ko.json b/plugins/VisitTime/lang/ko.json
index 216933c951..01b8577e1d 100644
--- a/plugins/VisitTime/lang/ko.json
+++ b/plugins/VisitTime/lang/ko.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "요일별 방문수",
"WidgetByDayOfWeekDocumentation": "이 그래프는 각 요일별로 웹사이트에 방문한 수를 보여줍니다.",
"WidgetLocalTime": "현지 시간 기준 방문 수",
- "WidgetLocalTimeDocumentation": "이 그래프는 %s현지 시간대%s에 기준하여 시간별 방문수를 보여줍니다.",
+ "WidgetLocalTimeDocumentation": "이 그래프는 %1$s현지 시간대%2$s에 기준하여 시간별 방문수를 보여줍니다.",
"WidgetServerTime": "서버 시간 기준 방문 수",
- "WidgetServerTimeDocumentation": "이 그래프는 %s서버 시간대%s에 기준하여 시간별 방문수를 보여줍니다."
+ "WidgetServerTimeDocumentation": "이 그래프는 %1$s서버 시간대%2$s에 기준하여 시간별 방문수를 보여줍니다."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/nb.json b/plugins/VisitTime/lang/nb.json
index 3a3aa77d30..e00af2d201 100644
--- a/plugins/VisitTime/lang/nb.json
+++ b/plugins/VisitTime/lang/nb.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Besøk etter ukedag",
"WidgetByDayOfWeekDocumentation": "Denne grafen viser antall besøk nettstedet ditt mottatt på de ulike dagene i uken.",
"WidgetLocalTime": "Besøk etter lokaltid",
- "WidgetLocalTimeDocumentation": "Denne grafen viser hvilken tid det var i %s besøkeres tidssoner %s da besøkene skjedde.",
+ "WidgetLocalTimeDocumentation": "Denne grafen viser hvilken tid det var i %1$s besøkeres tidssoner %2$s da besøkene skjedde.",
"WidgetServerTime": "Besøk etter servertid",
- "WidgetServerTimeDocumentation": "Denne grafen viser hvilken tid det var i %s serverens tidssone %s da besøkene skjedde."
+ "WidgetServerTimeDocumentation": "Denne grafen viser hvilken tid det var i %1$s serverens tidssone %2$s da besøkene skjedde."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/nl.json b/plugins/VisitTime/lang/nl.json
index 6695cbfe51..618df9944f 100644
--- a/plugins/VisitTime/lang/nl.json
+++ b/plugins/VisitTime/lang/nl.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Bezoeken per dag van de week",
"WidgetByDayOfWeekDocumentation": "Deze grafiek toont het aantal bezoeken op elke dag van de week.",
"WidgetLocalTime": "Uur van de dag (tijdzone bezoeker)",
- "WidgetLocalTimeDocumentation": "Deze grafiek laat zien hoe laat het was in bezoekers 'de %s tijdzones%s tijdens hun bezoeken.",
+ "WidgetLocalTimeDocumentation": "Deze grafiek laat zien hoe laat het was in bezoekers 'de %1$s tijdzones%2$s tijdens hun bezoeken.",
"WidgetServerTime": "Uur van de dag (tijdzone server)",
- "WidgetServerTimeDocumentation": "Deze grafiek laat zien hoe laat het was in de tijd van de%s server zone%s tijdens de bezoeken."
+ "WidgetServerTimeDocumentation": "Deze grafiek laat zien hoe laat het was in de tijd van de%1$s server zone%2$s tijdens de bezoeken."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/pl.json b/plugins/VisitTime/lang/pl.json
index 03afb0a4c4..fe764cd36b 100644
--- a/plugins/VisitTime/lang/pl.json
+++ b/plugins/VisitTime/lang/pl.json
@@ -10,8 +10,8 @@
"VisitsByDayOfWeek": "Odwiedziny w poszczególnych dniach tygodnia",
"WidgetByDayOfWeekDocumentation": "Ten wykres pokazuje liczbe odwiedzin twojej stony otrzymanych każdego dnia tygodnia",
"WidgetLocalTime": "Odwiedziny według lokalnego czasu",
- "WidgetLocalTimeDocumentation": "Ten wykres pokazuje jaki czas był %s w strefie czasowej odwiedzających %s podczas ich wizyty.",
+ "WidgetLocalTimeDocumentation": "Ten wykres pokazuje jaki czas był %1$s w strefie czasowej odwiedzających %2$s podczas ich wizyty.",
"WidgetServerTime": "Odwiedziny według czasu serwera",
- "WidgetServerTimeDocumentation": "Ten wykres pokazuje jaki czas był w %s strefie czasowej serwera %s podczas odwiedzin."
+ "WidgetServerTimeDocumentation": "Ten wykres pokazuje jaki czas był w %1$s strefie czasowej serwera %2$s podczas odwiedzin."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/pt-br.json b/plugins/VisitTime/lang/pt-br.json
index 6f1aadd7fd..8f48889cba 100644
--- a/plugins/VisitTime/lang/pt-br.json
+++ b/plugins/VisitTime/lang/pt-br.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Visitas por dia da semana",
"WidgetByDayOfWeekDocumentation": "Este gráfico mostra o número de visitas que seu site recebeu, em cada dia da semana.",
"WidgetLocalTime": "Visitas pelo horário local",
- "WidgetLocalTimeDocumentation": "Este gráfico mostra o tempo que estava no %s fuso horário dos visitantes %s durante suas visitas.",
+ "WidgetLocalTimeDocumentation": "Este gráfico mostra o tempo que estava no %1$s fuso horário dos visitantes %2$s durante suas visitas.",
"WidgetServerTime": "Visitas pelo horário do servidor",
- "WidgetServerTimeDocumentation": "Este gráfico mostra o tempo que estava no %s fuso horário do servidor %s durante as visitas."
+ "WidgetServerTimeDocumentation": "Este gráfico mostra o tempo que estava no %1$s fuso horário do servidor %2$s durante as visitas."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/pt.json b/plugins/VisitTime/lang/pt.json
index eab254997d..d8e9918edf 100644
--- a/plugins/VisitTime/lang/pt.json
+++ b/plugins/VisitTime/lang/pt.json
@@ -7,8 +7,8 @@
"ServerTime": "Vistas por hora do servidor",
"SubmenuTimes": "Horas",
"WidgetLocalTime": "Visitas pela hora local",
- "WidgetLocalTimeDocumentation": "Este gráfico mostra que horas eram no %s fuso horário dos visitantes %s durante suas visitas.",
+ "WidgetLocalTimeDocumentation": "Este gráfico mostra que horas eram no %1$s fuso horário dos visitantes %2$s durante suas visitas.",
"WidgetServerTime": "Vistas pela hora do servidor",
- "WidgetServerTimeDocumentation": "Este gráfico mostra que horas eram no %s fuso horário do servidor %s durante suas visitas."
+ "WidgetServerTimeDocumentation": "Este gráfico mostra que horas eram no %1$s fuso horário do servidor %2$s durante suas visitas."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/ro.json b/plugins/VisitTime/lang/ro.json
index d20d7335a3..58e2a25c1b 100644
--- a/plugins/VisitTime/lang/ro.json
+++ b/plugins/VisitTime/lang/ro.json
@@ -10,8 +10,8 @@
"VisitsByDayOfWeek": "Vizite ordonate după ziua săptămânii",
"WidgetByDayOfWeekDocumentation": "Acest grafic arată numărul de vizite primite de site-ul dvs. în fiecare zi a săptămânii.",
"WidgetLocalTime": "Vizite dupa timpul local",
- "WidgetLocalTimeDocumentation": "Acest grafic arată ce timp a fost în zonele %s vizitatorilor' \"fus orar %s în timpul vizitei lor.",
+ "WidgetLocalTimeDocumentation": "Acest grafic arată ce timp a fost în zonele %1$s vizitatorilor' \"fus orar %2$s în timpul vizitei lor.",
"WidgetServerTime": "Vizite dupa timpul serverului",
- "WidgetServerTimeDocumentation": "Acest grafic arată ce ora a fost în zona de %s server %s în timpul vizitelor."
+ "WidgetServerTimeDocumentation": "Acest grafic arată ce ora a fost în zona de %1$s server %2$s în timpul vizitelor."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/ru.json b/plugins/VisitTime/lang/ru.json
index be8e2e0e7c..491e67d299 100644
--- a/plugins/VisitTime/lang/ru.json
+++ b/plugins/VisitTime/lang/ru.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Посещения по дням недели",
"WidgetByDayOfWeekDocumentation": "Этот график показывает число посещений по каждому дню в неделе.",
"WidgetLocalTime": "Посещений по местному времени",
- "WidgetLocalTimeDocumentation": "Этот график показывает, какое время было у %s посетителя в его временной зоне %s во время его посещения.",
+ "WidgetLocalTimeDocumentation": "Этот график показывает, какое время было у %1$s посетителя в его временной зоне %2$s во время его посещения.",
"WidgetServerTime": "Посещений по времени на сервере",
- "WidgetServerTimeDocumentation": "Этот график показывает, какое время было на %s сервере в его временной зоне %s во время посещения сайта."
+ "WidgetServerTimeDocumentation": "Этот график показывает, какое время было на %1$s сервере в его временной зоне %2$s во время посещения сайта."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/sk.json b/plugins/VisitTime/lang/sk.json
index a32c959d1f..5feae5c108 100644
--- a/plugins/VisitTime/lang/sk.json
+++ b/plugins/VisitTime/lang/sk.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Návštevy podľa dňa v týždni",
"WidgetByDayOfWeekDocumentation": "Tento graf zobrazuje množstvo návštev, ktoré vaša web stránka prijala v každom dni týždňa.",
"WidgetLocalTime": "Návštevníci podľa lokálneho času",
- "WidgetLocalTimeDocumentation": "Tento graf zobrazuje koľko hodín bolo %s podľa časového pásma návštevníka %s počas návštevy.",
+ "WidgetLocalTimeDocumentation": "Tento graf zobrazuje koľko hodín bolo %1$s podľa časového pásma návštevníka %2$s počas návštevy.",
"WidgetServerTime": "Návštevníci podľa serverového času",
- "WidgetServerTimeDocumentation": "Tento graf zobrazuje koľko hodín bolo %s podľa časového pásma servera %s počas návštevy."
+ "WidgetServerTimeDocumentation": "Tento graf zobrazuje koľko hodín bolo %1$s podľa časového pásma servera %2$s počas návštevy."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/sq.json b/plugins/VisitTime/lang/sq.json
index 60bf55d239..cfe9e5b673 100644
--- a/plugins/VisitTime/lang/sq.json
+++ b/plugins/VisitTime/lang/sq.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Vizita sipas Ditëve të Javës",
"WidgetByDayOfWeekDocumentation": "Ky grafik shfaq numrin e vizitave që pati sajti juaj në çdo ditë të javës.",
"WidgetLocalTime": "Vizita sipas kohës vendore",
- "WidgetLocalTimeDocumentation": "Ky grafik shfaq kohën sipas %s zonës kohore të vizitorit %s kur ka ndodhur një vizitë.",
+ "WidgetLocalTimeDocumentation": "Ky grafik shfaq kohën sipas %1$s zonës kohore të vizitorit %2$s kur ka ndodhur një vizitë.",
"WidgetServerTime": "Vizita sipas Kohës së Shërbyesit",
- "WidgetServerTimeDocumentation": "Ky grafik shfaq kohën sipas %s zonës kohore të shërbyesit %s kur ka ndodhur një vizitë."
+ "WidgetServerTimeDocumentation": "Ky grafik shfaq kohën sipas %1$s zonës kohore të shërbyesit %2$s kur ka ndodhur një vizitë."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/sr.json b/plugins/VisitTime/lang/sr.json
index 82c4442cf2..c98402334a 100644
--- a/plugins/VisitTime/lang/sr.json
+++ b/plugins/VisitTime/lang/sr.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "Posete po danu u nedelji",
"WidgetByDayOfWeekDocumentation": "Ovaj grafikon prikazuje broj poseta po danu u nedelji",
"WidgetLocalTime": "Broj poseta po lokalnom vremenu",
- "WidgetLocalTimeDocumentation": "Ovaj grafikon prikazuje vreme u %s vremenskoj zoni posetilaca %s za vreme njihovih poseta",
+ "WidgetLocalTimeDocumentation": "Ovaj grafikon prikazuje vreme u %1$s vremenskoj zoni posetilaca %2$s za vreme njihovih poseta",
"WidgetServerTime": "Broj poseta po serverskom vremenu",
- "WidgetServerTimeDocumentation": "Ovaj grafikon prikazuje vreme u %s vremenskoj zoni servera %s za vreme poseta"
+ "WidgetServerTimeDocumentation": "Ovaj grafikon prikazuje vreme u %1$s vremenskoj zoni servera %2$s za vreme poseta"
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/sv.json b/plugins/VisitTime/lang/sv.json
index c7e751baa6..6a6d7e4d80 100644
--- a/plugins/VisitTime/lang/sv.json
+++ b/plugins/VisitTime/lang/sv.json
@@ -10,8 +10,8 @@
"VisitsByDayOfWeek": "Besök efter veckodag",
"WidgetByDayOfWeekDocumentation": "Den här grafen visar antalet besök din webbplats fått per veckodag.",
"WidgetLocalTime": "Besök efter lokal tid",
- "WidgetLocalTimeDocumentation": "Denna graf visar vad klockan var i %s besökarens tidszon %s vid deras besök.",
+ "WidgetLocalTimeDocumentation": "Denna graf visar vad klockan var i %1$s besökarens tidszon %2$s vid deras besök.",
"WidgetServerTime": "Besök efter servertid",
- "WidgetServerTimeDocumentation": "Denna graf visar vad klockan var i %s serverns tidszon %s vid besöket."
+ "WidgetServerTimeDocumentation": "Denna graf visar vad klockan var i %1$s serverns tidszon %2$s vid besöket."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/tl.json b/plugins/VisitTime/lang/tl.json
index 76f7fd23ed..0ef4d9e415 100644
--- a/plugins/VisitTime/lang/tl.json
+++ b/plugins/VisitTime/lang/tl.json
@@ -10,8 +10,8 @@
"VisitsByDayOfWeek": "Mga pagbisita araw-araw",
"WidgetByDayOfWeekDocumentation": "Ipinapakita ng graph na ito ang bilang ng mga pagbisita na natanggap ng iyong website sa bawat araw sa loob ng isang linggo.",
"WidgetLocalTime": "Mga pagbisita sa pamamagitan ng Lokal na Oras",
- "WidgetLocalTimeDocumentation": "Ang graph na ito ay nagpapakita kung anong oras sa lugar ng iyong %s bisita %s habang sila ay nasa iyong website.",
+ "WidgetLocalTimeDocumentation": "Ang graph na ito ay nagpapakita kung anong oras sa lugar ng iyong %1$s bisita %2$s habang sila ay nasa iyong website.",
"WidgetServerTime": "Mga pagbisita ng may oras na mula sa Server",
- "WidgetServerTimeDocumentation": "Ang graph na ito ay nagpapakita kung anong oras ito sa %s server time zone %s habang bumibisita."
+ "WidgetServerTimeDocumentation": "Ang graph na ito ay nagpapakita kung anong oras ito sa %1$s server time zone %2$s habang bumibisita."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/vi.json b/plugins/VisitTime/lang/vi.json
index 7f5a275f38..aec3afada4 100644
--- a/plugins/VisitTime/lang/vi.json
+++ b/plugins/VisitTime/lang/vi.json
@@ -10,8 +10,8 @@
"VisitsByDayOfWeek": "Các lượt truy cập theo ngày trong tuần",
"WidgetByDayOfWeekDocumentation": "Đồ thị này cho thấy số lần truy cập mà trang web của bạn nhận được mỗi ngày trong tuần.",
"WidgetLocalTime": "Các lượt truy cập theo giờ địa phương (Local)",
- "WidgetLocalTimeDocumentation": "Đồ thị này cho thấy thời điểm nào nó đã ở trong %s múi giờ của khách truy cập %s trong các lượt truy cập của họ.",
+ "WidgetLocalTimeDocumentation": "Đồ thị này cho thấy thời điểm nào nó đã ở trong %1$s múi giờ của khách truy cập %2$s trong các lượt truy cập của họ.",
"WidgetServerTime": "Các lượt truy cập bởi giờ Server",
- "WidgetServerTimeDocumentation": "Đồ thị này cho thấy thời điểm nào nó đã ở trong %s múi giờ của Server %s trong các lượt truy cập."
+ "WidgetServerTimeDocumentation": "Đồ thị này cho thấy thời điểm nào nó đã ở trong %1$s múi giờ của Server %2$s trong các lượt truy cập."
}
} \ No newline at end of file
diff --git a/plugins/VisitTime/lang/zh-cn.json b/plugins/VisitTime/lang/zh-cn.json
index 96f998405e..cb14c83155 100644
--- a/plugins/VisitTime/lang/zh-cn.json
+++ b/plugins/VisitTime/lang/zh-cn.json
@@ -11,8 +11,8 @@
"VisitsByDayOfWeek": "周报表",
"WidgetByDayOfWeekDocumentation": "本图形显示一周内网站每天的访问次数。",
"WidgetLocalTime": "依客户端时间记录的访问",
- "WidgetLocalTimeDocumentation": "本报表显示根据%s 访客所在时区 %s的时间的统计。",
+ "WidgetLocalTimeDocumentation": "本报表显示根据%1$s 访客所在时区 %2$s的时间的统计。",
"WidgetServerTime": "依服务器时间记录的访问次数",
- "WidgetServerTimeDocumentation": "本报表显示根据%s 服务器的时区 %s的时间的统计。"
+ "WidgetServerTimeDocumentation": "本报表显示根据%1$s 服务器的时区 %2$s的时间的统计。"
}
} \ No newline at end of file
diff --git a/plugins/VisitorGenerator b/plugins/VisitorGenerator
-Subproject c3abd090cf8a89894ce427b56312920f794e612
+Subproject 4c18db6600e189a691d48693a1238f7806b9d70
diff --git a/plugins/VisitorInterest/lang/nb.json b/plugins/VisitorInterest/lang/nb.json
index 19c38738f5..a9ffa04657 100644
--- a/plugins/VisitorInterest/lang/nb.json
+++ b/plugins/VisitorInterest/lang/nb.json
@@ -1,15 +1,24 @@
{
"VisitorInterest": {
"BetweenXYMinutes": "%1$s – %2$s min",
- "BetweenXYSeconds": "%1$s-%2$ss",
- "ColumnPagesPerVisit": "Sider pr. besøk",
+ "BetweenXYSeconds": "%1$s–%2$ss",
+ "ColumnPagesPerVisit": "Sider per besøk",
"ColumnVisitDuration": "Besøksvarighet",
"Engagement": "Engasjement",
"NPages": "%s sider",
"OnePage": "1 side",
- "VisitsPerDuration": "Besøk pr. besøksvarighet",
- "VisitsPerNbOfPages": "Besøk pr. antall sider",
+ "PluginDescription": "Rapporter om besøkeres interesse: antall sider som ble vist, tid brukt på nettstedet, dager siden siste besøk, og mer.",
+ "VisitNum": "Besøksnummer",
+ "VisitsByDaysSinceLast": "Besøk etter dager siden siste besøk",
+ "visitsByVisitCount": "Besøk etter besøksnummer",
+ "VisitsPerDuration": "Besøk per besøksvarighet",
+ "VisitsPerNbOfPages": "Besøk per antall sider",
"WidgetLengths": "Besøkslengde",
- "WidgetPages": "Sider pr. besøk"
+ "WidgetLengthsDocumentation": "I denne rapporten kan du se hvor mange besøk som hadde en bestemt totallengde. I utgangspunktet vises rapporten som en stikkordsky, hvor mer vanlige lengder vises med større skrift.",
+ "WidgetPages": "Sider per besøk",
+ "WidgetPagesDocumentation": "I denne rapporten kan du se hvor mange besøk som involverte et bestemt antall sidevisninger. I utgangspunktet vises rapporten som en stikkordsky, hvor mer vanlige antall sidevisninger vises med større skrift.",
+ "WidgetVisitsByDaysSinceLast": "Besøk etter dager siden siste besøk",
+ "WidgetVisitsByDaysSinceLastDocumentation": "I denne rapporten kan du se hvor mange besøk som kom fra besøkere som var på nettstedet for et visst antall dager siden.",
+ "WidgetVisitsByNumDocumentation": "I denne rapporten kan du se antallet besøk som var det N-te besøket, altså besøkere som besøkte ditt nettsted minst N ganger."
}
} \ No newline at end of file
diff --git a/plugins/VisitsSummary/lang/th.json b/plugins/VisitsSummary/lang/th.json
index e5e89bed68..9c423dd601 100644
--- a/plugins/VisitsSummary/lang/th.json
+++ b/plugins/VisitsSummary/lang/th.json
@@ -1,5 +1,6 @@
{
"VisitsSummary": {
+ "AverageGenerationTime": "%s เวลาเฉลี่ยในการผลิต",
"AverageVisitDuration": "เฉลี่ยระยะเวลาการเข้าชม %s",
"GenerateQueries": "%s การค้นหา",
"GenerateTime": "%s วินาทีที่ใช้",
@@ -7,8 +8,10 @@
"NbActionsDescription": "%s ดำเนินการ(เข้าชม ดาวน์โหลดและลิงค์ออก)",
"NbActionsPerVisit": "%s ดำเนินต่อเข้าชม",
"NbDownloadsDescription": "%s ดาวน์โหลด",
+ "NbKeywordsDescription": "%s คีย์เวิร์ดที่ไม่ซ้ำกัน",
"NbOutlinksDescription": "%s ลิงค์ที่ออก",
"NbPageviewsDescription": "%s จำนวนหน้าที่มีการเปิด",
+ "NbSearchesDescription": "รวมผลการค้นหาทั้งหมด %s รายการ ในเว็บไซต์ของคุณ",
"NbUniqueDownloadsDescription": "%s จำนวนดาวน์โหลดที่ไม่ซ้ำกันน",
"NbUniqueOutlinksDescription": "%s จำนวนลิงค์ที่ออกโดยไม่ซ้ำกัน",
"NbUniquePageviewsDescription": "%s จำนวนหน้าที่มีการเปิดที่ไม่ซ้ำกัน",
diff --git a/plugins/WebsiteMeasurable/lang/cs.json b/plugins/WebsiteMeasurable/lang/cs.json
index abc772a6da..a6f744a3b8 100644
--- a/plugins/WebsiteMeasurable/lang/cs.json
+++ b/plugins/WebsiteMeasurable/lang/cs.json
@@ -1,7 +1,7 @@
{
"WebsiteMeasurable": {
- "Website": "Webová stránka",
- "Websites": "Webové stránky",
- "WebsiteDescription": "Webová stránka se skládá ze stránek, většinou umístěných na jedné doméně."
+ "Website": "Web",
+ "Websites": "Weby",
+ "WebsiteDescription": "Web se skládá ze stránek zpravidla umístěných na jedné doméně."
}
} \ No newline at end of file
diff --git a/plugins/WebsiteMeasurable/lang/en.json b/plugins/WebsiteMeasurable/lang/en.json
index 05414e3b1d..65cee92859 100644
--- a/plugins/WebsiteMeasurable/lang/en.json
+++ b/plugins/WebsiteMeasurable/lang/en.json
@@ -1,7 +1,7 @@
{
- "WebsiteMeasurable": {
- "Website": "Website",
- "Websites": "Websites",
- "WebsiteDescription": "A website consists of web pages typically served from a single web domain."
- }
+ "WebsiteMeasurable": {
+ "Website": "Website",
+ "Websites": "Websites",
+ "WebsiteDescription": "A website consists of web pages typically served from a single web domain."
+ }
} \ No newline at end of file
diff --git a/plugins/WebsiteMeasurable/lang/lt.json b/plugins/WebsiteMeasurable/lang/lt.json
new file mode 100644
index 0000000000..d81aeffc69
--- /dev/null
+++ b/plugins/WebsiteMeasurable/lang/lt.json
@@ -0,0 +1,5 @@
+{
+ "WebsiteMeasurable": {
+ "Website": "Svetainė"
+ }
+} \ No newline at end of file
diff --git a/plugins/Widgetize/tests/System/WidgetTest.php b/plugins/Widgetize/tests/System/WidgetTest.php
index 005491630a..72861e6faf 100644
--- a/plugins/Widgetize/tests/System/WidgetTest.php
+++ b/plugins/Widgetize/tests/System/WidgetTest.php
@@ -1264,10 +1264,108 @@ class WidgetTest extends SystemTestCase
'action' => 'widgetGoalReport',
'idGoal' => 'ecommerceOrder',
),
- )
+ ),
+ array (
+ 'name' => 'Ecommerce Log',
+ 'uniqueId' => 'widgetEcommercegetEcommerceLog',
+ 'parameters' =>
+ array (
+ 'module' => 'Ecommerce',
+ 'action' => 'getEcommerceLog',
+ ),
+ ),
+ array (
+ 'name' => 'Insights Overview',
+ 'uniqueId' => 'widgetInsightsgetInsightsOverview',
+ 'parameters' =>
+ array (
+ 'module' => 'Insights',
+ 'action' => 'getInsightsOverview',
+ ),
+ ),
+ array (
+ 'name' => 'Movers and Shakers',
+ 'uniqueId' => 'widgetInsightsgetOverallMoversAndShakers',
+ 'parameters' =>
+ array (
+ 'module' => 'Insights',
+ 'action' => 'getOverallMoversAndShakers',
+ ),
+ ),
+ array (
+ 'name' => 'Top Keywords for Page URL',
+ 'uniqueId' => 'widgetReferrersgetKeywordsForPage',
+ 'parameters' =>
+ array (
+ 'module' => 'Referrers',
+ 'action' => 'getKeywordsForPage',
+ ),
+ ),
+ array (
+ 'name' => 'SEO Rankings',
+ 'uniqueId' => 'widgetSEOgetRank',
+ 'parameters' =>
+ array (
+ 'module' => 'SEO',
+ 'action' => 'getRank',
+ ),
+ ),
+ array (
+ 'name' => 'Support Piwik!',
+ 'uniqueId' => 'widgetCoreHomegetDonateForm',
+ 'parameters' =>
+ array (
+ 'module' => 'CoreHome',
+ 'action' => 'getDonateForm',
+ ),
+ ),
+ array (
+ 'name' => 'Welcome!',
+ 'uniqueId' => 'widgetCoreHomegetPromoVideo',
+ 'parameters' =>
+ array (
+ 'module' => 'CoreHome',
+ 'action' => 'getPromoVideo',
+ ),
+ ),
+ array (
+ 'name' => 'Piwik.org Blog',
+ 'uniqueId' => 'widgetExampleRssWidgetrssPiwik',
+ 'parameters' =>
+ array (
+ 'module' => 'ExampleRssWidget',
+ 'action' => 'rssPiwik',
+ ),
+ ),
+ array (
+ 'name' => 'Piwik Changelog',
+ 'uniqueId' => 'widgetExampleRssWidgetrssChangelog',
+ 'parameters' =>
+ array (
+ 'module' => 'ExampleRssWidget',
+ 'action' => 'rssChangelog',
+ ),
+ ),
+ array (
+ 'name' => 'Piwik PRO Blog',
+ 'uniqueId' => 'widgetPiwikProrssPiwikPro',
+ 'parameters' =>
+ array (
+ 'module' => 'PiwikPro',
+ 'action' => 'rssPiwikPro',
+ ),
+ ),
+ array (
+ 'name' => 'Piwik PRO: Advanced Analytics & Services',
+ 'uniqueId' => 'widgetPiwikPropromoPiwikProPiwikPro',
+ 'parameters' =>
+ array (
+ 'module' => 'PiwikPro',
+ 'action' => 'promoPiwikPro',
+ ),
+ )
);
}
-
}
diff --git a/tests/PHPUnit/Fixtures/InvalidVisits.php b/tests/PHPUnit/Fixtures/InvalidVisits.php
index 5518a7a163..da1038eba2 100644
--- a/tests/PHPUnit/Fixtures/InvalidVisits.php
+++ b/tests/PHPUnit/Fixtures/InvalidVisits.php
@@ -112,6 +112,12 @@ class InvalidVisits extends Fixture
$t->setUrl("http://their.stuff.com/back/to/the/future");
$t->doTrackPageView("ignored, not from my.stuff.com");
+ // undo exclude unknown urls change (important when multiple fixtures are setup together, as is done in OmniFixture)
+ API::getInstance()->updateSite($idSite, $siteName = null, $urls, $ecommerce = null, $siteSearch = null,
+ $searchKeywordParameters = null, $searchCategoryParameters = null, $excludedIps = null, $excludedQueryParams = null,
+ $timezone = null, $currency = null, $group = null, $startDate = null, $excludedUserAgents = null,
+ $keepUrlFragments = null, $type = null, $settings = null, $excludeUnknownUrls = 0);
+
try {
@$t->setAttributionInfo(array());
self::fail();
diff --git a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php
index ce454b38d2..8fb67f261a 100644
--- a/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php
+++ b/tests/PHPUnit/Fixtures/ManyVisitsWithGeoIP.php
@@ -41,6 +41,17 @@ class ManyVisitsWithGeoIP extends Fixture
'103.29.196.229', // in Indonesia (Bali), (only Indonesia will show up)
);
+ public $userAgents = array(
+ 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.136 Mobile Safari/537.36',
+ 'Mozilla/5.0 (Linux; U; Android 2.3.7; fr-fr; HTC Desire Build/GRI40; MildWild CM-8.0 JG Stable) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1',
+ 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36',
+ 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6.3; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)',
+ 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; MDDSJS; rv:11.0) like Gecko',
+ 'Mozilla/5.0 (Linux; Android 4.1.1; SGPT13 Build/TJDS0170) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.114 Safari/537.36',
+ 'Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; SM-N9006 Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.0 Mobile Safari/537.36',
+ 'Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.14) Gecko/2009090216 Ubuntu/9.04 (jaunty) Firefox/3.0.14'
+ );
+
protected $idGoal;
protected $idGoal2;
@@ -107,6 +118,8 @@ class ManyVisitsWithGeoIP extends Fixture
$t->setVisitorId( substr(md5($i + $calledCounter * 1000), 0, $t::LENGTH_VISITOR_ID));
if ($setIp) {
$t->setIp(current($this->ips));
+ $t->setUserAgent(current($this->userAgents));
+ next($this->userAgents);
next($this->ips);
} else {
$t->setIp("1.2.4.$i");
diff --git a/tests/PHPUnit/Fixtures/OmniFixture.php b/tests/PHPUnit/Fixtures/OmniFixture.php
index cd6fc0fb34..e37afea8db 100644
--- a/tests/PHPUnit/Fixtures/OmniFixture.php
+++ b/tests/PHPUnit/Fixtures/OmniFixture.php
@@ -7,13 +7,12 @@
*/
namespace Piwik\Tests\Fixtures;
+use Piwik\API\Request;
use Piwik\Date;
-use Piwik\Access;
use Piwik\Option;
use ReflectionClass;
-use Piwik\Plugins\VisitsSummary\API as VisitsSummaryAPI;
+use Piwik\Plugins\SitesManager\API as SitesManagerAPI;
use Piwik\Tests\Framework\Fixture;
-use Piwik\Tests\Framework\OverrideLogin;
/**
* This fixture is the combination of every other fixture defined by Piwik. Should be used
@@ -21,15 +20,24 @@ use Piwik\Tests\Framework\OverrideLogin;
*/
class OmniFixture extends Fixture
{
+ const DEFAULT_SEGMENT = "browserCode==FF";
+
public $month = '2012-01';
public $idSite = 'all';
public $dateTime = '2012-02-01';
+
+ /**
+ * @var Date
+ */
public $now = null;
- public $segment = "browserCode==FF";
+ public $segment = self::DEFAULT_SEGMENT;
// Visitor profile screenshot test needs visitor id
public $visitorIdDeterministic = null;
+ /**
+ * @var Fixture[]
+ */
public $fixtures = array();
private function requireAllFixtures()
@@ -114,18 +122,18 @@ class OmniFixture extends Fixture
public function setUp()
{
+ $firstFixture = array_shift($this->fixtures);
+ $this->setUpFixture($firstFixture);
+
+ $initialSitesProperties = SitesManagerAPI::getInstance()->getAllSites();
+
foreach ($this->fixtures as $fixture) {
- echo "Setting up " . get_class($fixture) . "...\n";
+ $this->restoreSitesProperties($initialSitesProperties);
- $fixture->setUp();
+ $this->setUpFixture($fixture);
}
Option::set("Tests.forcedNowTimestamp", $this->now->getTimestamp());
-
- // launch archiving so tests don't run out of time
- $date = Date::factory($this->dateTime)->toString();
- VisitsSummaryAPI::getInstance()->get($this->idSite, 'year', $date);
- VisitsSummaryAPI::getInstance()->get($this->idSite, 'year', $date, urlencode($this->segment));
}
public function tearDown()
@@ -136,4 +144,34 @@ class OmniFixture extends Fixture
$fixture->tearDown();
}
}
+
+ private function setUpFixture(Fixture $fixture)
+ {
+ echo "Setting up " . get_class($fixture) . "...\n";
+ $fixture->setUp();
+ }
+
+ private function restoreSitesProperties($initialSitesProperties)
+ {
+ foreach ($initialSitesProperties as $idSite => $properties) {
+ Request::processRequest('SitesManager.updateSite', array(
+ 'idSite' => $idSite,
+ 'siteName' => $properties['name'],
+ 'ecommerce' => $properties['ecommerce'],
+ 'siteSearch' => $properties['sitesearch'],
+ 'searchKeywordParameters' => $properties['sitesearch_keyword_parameters'],
+ 'searchCategoryParameters' => $properties['sitesearch_category_parameters'],
+ 'excludedIps' => $properties['excluded_ips'],
+ 'excludedQueryParameters' => $properties['excluded_parameters'],
+ 'timezone' => $properties['timezone'],
+ 'currency' => $properties['currency'],
+ 'group' => $properties['group'],
+ 'startDate' => $properties['ts_created'],
+ 'excludedUserAgents' => $properties['excluded_user_agents'],
+ 'keepURLFragments' => $properties['keep_url_fragment'],
+ 'type' => $properties['type'],
+ 'excludeUnknownUrls' => $properties['exclude_unknown_urls']
+ ));
+ }
+ }
} \ No newline at end of file
diff --git a/tests/PHPUnit/Fixtures/SomeVisitsCustomVariablesCampaignsNotHeuristics.php b/tests/PHPUnit/Fixtures/SomeVisitsCustomVariablesCampaignsNotHeuristics.php
index a32129c93b..03cb78f9da 100644
--- a/tests/PHPUnit/Fixtures/SomeVisitsCustomVariablesCampaignsNotHeuristics.php
+++ b/tests/PHPUnit/Fixtures/SomeVisitsCustomVariablesCampaignsNotHeuristics.php
@@ -10,6 +10,7 @@ namespace Piwik\Tests\Fixtures;
use Piwik\Date;
use Piwik\Plugins\Goals\API;
use Piwik\Tests\Framework\Fixture;
+use Piwik\Tests\Framework\TestingEnvironmentVariables;
use PiwikTracker;
/**
@@ -36,7 +37,7 @@ class SomeVisitsCustomVariablesCampaignsNotHeuristics extends Fixture
private function setPiwikEnvironmentOverrides()
{
- $env = $this->getTestEnvironment();
+ $env = new TestingEnvironmentVariables();
$env->overrideConfig('Tracker', 'create_new_visit_when_website_referrer_changes', 1);
$env->save();
}
diff --git a/tests/PHPUnit/Fixtures/SomeVisitsManyPageviewsWithTransitions.php b/tests/PHPUnit/Fixtures/SomeVisitsManyPageviewsWithTransitions.php
index ed0647f64c..3a91bf6a91 100644
--- a/tests/PHPUnit/Fixtures/SomeVisitsManyPageviewsWithTransitions.php
+++ b/tests/PHPUnit/Fixtures/SomeVisitsManyPageviewsWithTransitions.php
@@ -9,6 +9,7 @@ namespace Piwik\Tests\Fixtures;
use Piwik\Date;
use Piwik\Tests\Framework\Fixture;
+use PiwikTracker;
/**
* Adds one site and tracks a couple visits with many pageviews. The
diff --git a/tests/PHPUnit/Fixtures/SqlDump.php b/tests/PHPUnit/Fixtures/SqlDump.php
index b360d162b3..f5ebc7b364 100644
--- a/tests/PHPUnit/Fixtures/SqlDump.php
+++ b/tests/PHPUnit/Fixtures/SqlDump.php
@@ -13,6 +13,7 @@ use Piwik\Config;
use Piwik\Db;
use Piwik\Tests\Framework\Fixture;
use Exception;
+use Piwik\Tests\Framework\TestingEnvironmentVariables;
/**
* Reusable fixture. Loads a SQL dump into the DB.
@@ -74,12 +75,13 @@ class SqlDump extends Fixture
// reload access
Access::getInstance()->reloadAccess();
- $this->getTestEnvironment()->configOverride = array(
+ $testVars = new TestingEnvironmentVariables();
+ $testVars->configOverride = array(
'database' => array(
'tables_prefix' => $this->tablesPrefix
)
);
- $this->getTestEnvironment()->save();
+ $testVars->save();
}
/**
diff --git a/tests/PHPUnit/Fixtures/UITestFixture.php b/tests/PHPUnit/Fixtures/UITestFixture.php
index 623e7e388d..0792a4e448 100644
--- a/tests/PHPUnit/Fixtures/UITestFixture.php
+++ b/tests/PHPUnit/Fixtures/UITestFixture.php
@@ -69,13 +69,14 @@ class UITestFixture extends SqlDump
// create non super user
UsersManagerAPI::getInstance()->addUser('oliverqueen', 'smartypants', 'oli@queenindustries.com');
UsersManagerAPI::getInstance()->setUserAccess('oliverqueen', 'view', array(1));
-
- // launch archiving so UI test requests don't launch it
- VisitsSummaryAPI::getInstance()->get('all', 'year', '2012-08-09');
}
public function performSetUp($setupEnvironmentOnly = false)
{
+ $this->extraTestEnvVars = array(
+ 'loadRealTranslations' => 1,
+ );
+
parent::performSetUp($setupEnvironmentOnly);
$this->createSegments();
@@ -96,6 +97,12 @@ class UITestFixture extends SqlDump
$this->testEnvironment->forcedNowTimestamp = $forcedNowTimestamp;
$this->testEnvironment->save();
+
+ // launch archiving so tests don't run out of time
+ print("Archiving in fixture set up...");
+ VisitsSummaryAPI::getInstance()->get('all', 'year', '2012-08-09');
+ VisitsSummaryAPI::getInstance()->get('all', 'year', '2012-08-09', urlencode(OmniFixture::DEFAULT_SEGMENT));
+ print("Done.");
}
private function addOverlayVisits()
@@ -245,6 +252,7 @@ class UITestFixture extends SqlDump
|| $widget['uniqueId'] == 'widgetReferrersgetKeywordsForPage'
|| $widget['uniqueId'] == 'widgetLivegetVisitorProfilePopup'
|| $widget['uniqueId'] == 'widgetActionsgetPageTitles'
+ || $widget['uniqueId'] == 'widgetPiwikProrssPiwikPro'
|| strpos($widget['uniqueId'], 'widgetExample') === 0
) {
continue;
diff --git a/tests/PHPUnit/Framework/Fixture.php b/tests/PHPUnit/Framework/Fixture.php
index f421ba5658..9ef26bbb67 100644
--- a/tests/PHPUnit/Framework/Fixture.php
+++ b/tests/PHPUnit/Framework/Fixture.php
@@ -199,6 +199,7 @@ class Fixture extends \PHPUnit_Framework_Assert
}
$testEnv = $this->getTestEnvironment();
+ $testEnv->delete();
$testEnv->testCaseClass = $this->testCaseClass;
$testEnv->fixtureClass = get_class($this);
$testEnv->dbName = $this->dbName;
@@ -303,11 +304,16 @@ class Fixture extends \PHPUnit_Framework_Assert
}
}
+ /**
+ * NOTE: This method should not be used to get a TestingEnvironmentVariables instance.
+ * Instead just create a new instance.
+ *
+ * @return null|\Piwik\Tests\Framework\TestingEnvironmentVariables
+ */
public function getTestEnvironment()
{
if ($this->testEnvironment === null) {
$this->testEnvironment = new TestingEnvironmentVariables();
- $this->testEnvironment->delete();
if (getenv('PIWIK_USE_XHPROF') == 1) {
$this->testEnvironment->useXhprof = true;
@@ -606,6 +612,7 @@ class Fixture extends \PHPUnit_Framework_Assert
self::assertEquals($expectedResponse, $response, "Expected GIF beacon, got: <br/>\n"
. var_export($response, true)
. "\n If you are stuck, you can enable [Tracker] debug=1; in config.ini.php to get more debug info."
+ . "\n\n Also, please try to restart your webserver, and run the test again, this may help!"
. base64_encode($response)
. $url
);
diff --git a/tests/PHPUnit/Framework/Mock/FakeConfig.php b/tests/PHPUnit/Framework/Mock/FakeConfig.php
new file mode 100644
index 0000000000..cab4955a13
--- /dev/null
+++ b/tests/PHPUnit/Framework/Mock/FakeConfig.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Piwik\Tests\Framework\Mock;
+
+use Piwik\Config;
+
+class FakeConfig extends Config
+{
+ private $configValues = array();
+
+ public function __construct($configValues = array())
+ {
+ $this->configValues = $configValues;
+ }
+
+ public function &__get($name)
+ {
+ if (isset($this->configValues[$name])) {
+ return $this->configValues[$name];
+ }
+ }
+
+ public function __set($name, $value)
+ {
+ $this->configValues[$name] = $value;
+ }
+
+}
diff --git a/tests/PHPUnit/Framework/Mock/PiwikPro/Advertising.php b/tests/PHPUnit/Framework/Mock/PiwikPro/Advertising.php
new file mode 100644
index 0000000000..b1de8c4899
--- /dev/null
+++ b/tests/PHPUnit/Framework/Mock/PiwikPro/Advertising.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+namespace Piwik\Tests\Framework\Mock\PiwikPro;
+
+class Advertising extends \Piwik\PiwikPro\Advertising
+{
+ public function __construct()
+ {
+ }
+
+ public function arePiwikProAdsEnabled()
+ {
+ return true;
+ }
+} \ No newline at end of file
diff --git a/tests/PHPUnit/Framework/Mock/Plugin/Manager.php b/tests/PHPUnit/Framework/Mock/Plugin/Manager.php
new file mode 100644
index 0000000000..3cfbd5320a
--- /dev/null
+++ b/tests/PHPUnit/Framework/Mock/Plugin/Manager.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace Piwik\Tests\Framework\Mock\Plugin;
+
+class Manager extends \Piwik\Plugin\Manager
+{
+ private $pluginsToActivate = array();
+
+ public function __construct()
+ {
+ }
+
+ public function setActivatedPlugins($pluginsList)
+ {
+ $this->pluginsToActivate = $pluginsList;
+ }
+
+ public function isPluginActivated($pluginName)
+ {
+ return in_array($pluginName, $this->pluginsToActivate);
+ }
+
+}
diff --git a/tests/PHPUnit/Integration/ArchiveProcessingTest.php b/tests/PHPUnit/Integration/ArchiveProcessingTest.php
index 42e95d4b43..358528270f 100644
--- a/tests/PHPUnit/Integration/ArchiveProcessingTest.php
+++ b/tests/PHPUnit/Integration/ArchiveProcessingTest.php
@@ -17,6 +17,7 @@ use Piwik\DataAccess\ArchiveTableCreator;
use Piwik\Date;
use Piwik\Db;
use Piwik\Db\BatchInsert;
+use Piwik\DbHelper;
use Piwik\Period;
use Piwik\Piwik;
use Piwik\Plugins\SitesManager\API;
@@ -306,11 +307,12 @@ class ArchiveProcessingTest extends IntegrationTestCase
$didWeUseBulk = BatchInsert::tableInsertBatch($table,
array('idsite', 'url'),
$data,
- $throwException = true);
+ $throwException = true, 'utf8');
} catch (Exception $e) {
$didWeUseBulk = $e->getMessage();
}
+
$this->_checkLoadDataInFileWasUsed($didWeUseBulk);
if ($didWeUseBulk === true) {
@@ -377,7 +379,7 @@ class ArchiveProcessingTest extends IntegrationTestCase
$didWeUseBulk = BatchInsert::tableInsertBatch($table,
array('idarchive', 'name', 'idsite', 'date1', 'date2', 'period', 'ts_archived', 'value'),
$data,
- $throwException = true);
+ $throwException = true, $charset = 'latin1');
} catch (Exception $e) {
$didWeUseBulk = $e->getMessage();
}
@@ -388,7 +390,7 @@ class ArchiveProcessingTest extends IntegrationTestCase
$this->_checkTableIsExpectedBlob($table, $data);
}
// INSERT again the bulk. Because we use keyword LOCAL the data will be REPLACED automatically (see mysql doc)
- $didWeUseBulk = BatchInsert::tableInsertBatch($table, array('idarchive', 'name', 'idsite', 'date1', 'date2', 'period', 'ts_archived', 'value'), $data);
+ $didWeUseBulk = BatchInsert::tableInsertBatch($table, array('idarchive', 'name', 'idsite', 'date1', 'date2', 'period', 'ts_archived', 'value'), $data, $throw = false, $charset = 'latin1');
if ($didWeUseBulk === true) {
$this->_checkTableIsExpectedBlob($table, $data);
}
@@ -421,9 +423,10 @@ class ArchiveProcessingTest extends IntegrationTestCase
protected function _checkTableIsExpected($table, $data)
{
$fetched = Db::fetchAll('SELECT * FROM ' . $table);
+
foreach ($data as $id => $row) {
- $this->assertEquals($fetched[$id]['idsite'], $data[$id][0], "record $id is not {$data[$id][0]}");
- $this->assertEquals($fetched[$id]['url'], $data[$id][1], "Record $id bug, not {$data[$id][1]} BUT {$fetched[$id]['url']}");
+ $this->assertEquals($data[$id][0], $fetched[$id]['idsite'], "record $id is not {$data[$id][0]}");
+ $this->assertEquals($data[$id][1], $fetched[$id]['url'], "Record $id bug, not {$data[$id][1]} BUT {$fetched[$id]['url']}");
}
}
@@ -484,6 +487,7 @@ class ArchiveProcessingTest extends IntegrationTestCase
for ($i = 0; $i < 256; $i++) {
$str .= chr($i);
}
+
$array[] = array(1, 'bytes 0-255', 1, '2011-03-31', '2011-03-31', Piwik::$idPeriods['day'], $ts, $str);
$array[] = array(2, 'compressed string', 1, '2011-03-31', '2011-03-31', Piwik::$idPeriods['day'], $ts, gzcompress(" \n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942\n \r \t teste eigaj oegheao geaoh guoea98742983 2 342942"));
diff --git a/tests/PHPUnit/Integration/CronArchiveTest.php b/tests/PHPUnit/Integration/CronArchiveTest.php
index c64f0c3e62..c8f97754fc 100644
--- a/tests/PHPUnit/Integration/CronArchiveTest.php
+++ b/tests/PHPUnit/Integration/CronArchiveTest.php
@@ -8,7 +8,6 @@
namespace Piwik\Tests\Integration;
-use Piwik\Archiver\Request;
use Piwik\CliMulti;
use Piwik\Container\StaticContainer;
use Piwik\CronArchive;
diff --git a/tests/PHPUnit/Integration/DataAccess/ArchiveInvalidatorTest.php b/tests/PHPUnit/Integration/DataAccess/ArchiveInvalidatorTest.php
index c0b9baf438..2743305832 100644
--- a/tests/PHPUnit/Integration/DataAccess/ArchiveInvalidatorTest.php
+++ b/tests/PHPUnit/Integration/DataAccess/ArchiveInvalidatorTest.php
@@ -284,8 +284,7 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
/**
* @dataProvider getTestDataForMarkArchivesAsInvalidated
*/
- public function test_markArchivesAsInvalidated_MarksCorrectArchivesAsInvalidated($idSites, $dates, $period, $segment, $cascadeDown,
- $expectedIdArchives)
+ public function test_markArchivesAsInvalidated_MarksCorrectArchivesAsInvalidated($idSites, $dates, $period, $segment, $cascadeDown, $expectedIdArchives)
{
$dates = array_map(array('Piwik\Date', 'factory'), $dates);
@@ -302,11 +301,17 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
$this->assertEquals($dates, $result->processedDates);
$idArchives = $this->getInvalidatedArchives();
+
+ // Remove empty values (some new empty entries may be added each month)
+ $idArchives = array_filter($idArchives);
+ $expectedIdArchives = array_filter($expectedIdArchives);
+
$this->assertEquals($expectedIdArchives, $idArchives);
}
public function getTestDataForMarkArchivesAsInvalidated()
{
+ // $idSites, $dates, $period, $segment, $cascadeDown, $expectedIdArchives
return array(
// day period, multiple sites, multiple dates across tables, cascade = true
array(
@@ -316,8 +321,6 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
null,
true,
array(
- '2014_01' => array(),
- '2015_03' => array(),
'2015_04' => array(
'1.2015-04-30.2015-04-30.1.done3736b708e4d20cfc10610e816a1b2341.UserCountry',
'2.2015-04-30.2015-04-30.1.done5447835b0a861475918e79e932abdfd8',
@@ -326,7 +329,6 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
'1.2015-04-01.2015-04-30.3.done3736b708e4d20cfc10610e816a1b2341.UserCountry',
'2.2015-04-01.2015-04-30.3.done5447835b0a861475918e79e932abdfd8',
),
- '2014_12' => array(),
'2015_01' => array(
'1.2015-01-01.2015-01-01.1.done3736b708e4d20cfc10610e816a1b2341',
'2.2015-01-01.2015-01-01.1.done.VisitsSummary',
@@ -344,9 +346,6 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
'1.2015-02-01.2015-02-28.3.done.VisitsSummary',
'2.2015-02-01.2015-02-28.3.done3736b708e4d20cfc10610e816a1b2341.UserCountry',
),
- '2015_05' => array(),
- '2015_06' => array(),
- '2015_07' => array(),
),
),
@@ -358,18 +357,10 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
null,
false,
array(
- '2014_01' => array(),
- '2014_12' => array(),
'2015_01' => array(
'1.2015-01-01.2015-01-31.3.done3736b708e4d20cfc10610e816a1b2341',
'1.2015-01-01.2015-12-31.4.done5447835b0a861475918e79e932abdfd8',
),
- '2015_02' => array(),
- '2015_03' => array(),
- '2015_04' => array(),
- '2015_05' => array(),
- '2015_06' => array(),
- '2015_07' => array(),
),
),
@@ -381,7 +372,6 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
null,
true,
array(
- '2014_01' => array(),
'2014_12' => array(
'1.2014-12-29.2015-01-04.2.done3736b708e4d20cfc10610e816a1b2341',
@@ -429,12 +419,6 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
'1.2015-01-01.2015-12-31.4.done5447835b0a861475918e79e932abdfd8',
'1.2015-01-01.2015-01-10.5.done.VisitsSummary',
),
- '2015_02' => array(),
- '2015_03' => array(),
- '2015_04' => array(),
- '2015_05' => array(),
- '2015_06' => array(),
- '2015_07' => array(),
),
),
@@ -446,7 +430,6 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
null,
true,
array(
- '2014_01' => array(),
'2014_12' => array(
'1.2014-12-29.2014-12-29.1.done',
'1.2014-12-30.2014-12-30.1.done3736b708e4d20cfc10610e816a1b2341.UserCountry',
@@ -475,11 +458,6 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
'1.2015-02-01.2015-02-01.1.done3736b708e4d20cfc10610e816a1b2341',
'1.2015-02-01.2015-02-28.3.done.VisitsSummary',
),
- '2015_03' => array(),
- '2015_04' => array(),
- '2015_05' => array(),
- '2015_06' => array(),
- '2015_07' => array(),
),
),
@@ -491,20 +469,13 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
null,
true,
array(
- '2014_01' => array(),
- '2014_12' => array(),
'2015_01' => array(
'1.2015-01-01.2015-01-10.5.done.VisitsSummary',
),
- '2015_02' => array(),
'2015_03' => array(
'1.2015-03-04.2015-03-05.5.done.VisitsSummary',
'1.2015-03-05.2015-03-10.5.done3736b708e4d20cfc10610e816a1b2341.UserCountry',
),
- '2015_04' => array(),
- '2015_05' => array(),
- '2015_06' => array(),
- '2015_07' => array(),
),
),
@@ -516,7 +487,6 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
self::TEST_SEGMENT_1,
true,
array(
- '2014_01' => array(),
'2014_12' => array(
'1.2014-12-29.2015-01-04.2.done3736b708e4d20cfc10610e816a1b2341',
),
@@ -537,12 +507,6 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
'1.2015-01-26.2015-02-01.2.done3736b708e4d20cfc10610e816a1b2341.UserCountry',
'1.2015-01-01.2015-01-31.3.done3736b708e4d20cfc10610e816a1b2341',
),
- '2015_02' => array(),
- '2015_03' => array(),
- '2015_04' => array(),
- '2015_05' => array(),
- '2015_06' => array(),
- '2015_07' => array(),
),
),
@@ -554,21 +518,14 @@ class ArchiveInvalidatorTest extends IntegrationTestCase
null,
false,
array(
- '2014_01' => array(),
- '2014_12' => array(),
'2015_01' => array(
'1.2015-01-01.2015-12-31.4.done5447835b0a861475918e79e932abdfd8',
),
- '2015_02' => array(),
- '2015_03' => array(),
- '2015_04' => array(),
'2015_05' => array(
'1.2015-05-05.2015-05-05.1.done3736b708e4d20cfc10610e816a1b2341.UserCountry',
'1.2015-05-04.2015-05-10.2.done5447835b0a861475918e79e932abdfd8',
'1.2015-05-01.2015-05-31.3.done3736b708e4d20cfc10610e816a1b2341',
),
- '2015_06' => array(),
- '2015_07' => array(),
),
),
);
diff --git a/tests/PHPUnit/Integration/Http/Post.php b/tests/PHPUnit/Integration/Http/Post.php
new file mode 100644
index 0000000000..8745bcebfe
--- /dev/null
+++ b/tests/PHPUnit/Integration/Http/Post.php
@@ -0,0 +1,29 @@
+<?php
+
+// used in integration tests to see if POST method works.
+// for security reasons we allow max 3 post vars, each key and value is only allowed to have max 6 hex characters
+
+function accept($key)
+{
+ if (ctype_xdigit($key) && strlen($key) <= 6) {
+ return $key;
+ }
+}
+
+if (count($_POST) > 4) {
+ exit;
+}
+
+$values = array();
+foreach ($_POST as $key => $value) {
+ if (accept($key) && accept($value)) {
+ $values[$key] = $value;
+ }
+}
+
+if (!empty($_SERVER['REQUEST_METHOD']) && strtolower($_SERVER['REQUEST_METHOD']) === 'post') {
+ $values['method'] = 'post';
+}
+
+echo json_encode($values);
+exit;
diff --git a/tests/PHPUnit/Integration/HttpTest.php b/tests/PHPUnit/Integration/HttpTest.php
index 1f2ff373bb..417a98599d 100644
--- a/tests/PHPUnit/Integration/HttpTest.php
+++ b/tests/PHPUnit/Integration/HttpTest.php
@@ -170,6 +170,58 @@ class HttpTest extends \PHPUnit_Framework_TestCase
/**
* @dataProvider getMethodsToTest
*/
+ public function testHttpPost_ViaString($method)
+ {
+ $result = Http::sendHttpRequestBy(
+ $method,
+ Fixture::getRootUrl() . 'tests/PHPUnit/Integration/Http/Post.php',
+ 30,
+ $userAgent = null,
+ $destinationPath = null,
+ $file = null,
+ $followDepth = 0,
+ $acceptLanguage = false,
+ $acceptInvalidSslCertificate = false,
+ $byteRange = false,
+ $getExtendedInfo = false,
+ $httpMethod = 'POST',
+ $httpUsername = '',
+ $httpPassword = '',
+ 'abc12=43&abfec=abcdef'
+ );
+
+ $this->assertEquals('{"abc12":"43","abfec":"abcdef","method":"post"}', $result);
+ }
+
+ /**
+ * @dataProvider getMethodsToTest
+ */
+ public function testHttpPost_ViaArray($method)
+ {
+ $result = Http::sendHttpRequestBy(
+ $method,
+ Fixture::getRootUrl() . 'tests/PHPUnit/Integration/Http/Post.php',
+ 30,
+ $userAgent = null,
+ $destinationPath = null,
+ $file = null,
+ $followDepth = 0,
+ $acceptLanguage = false,
+ $acceptInvalidSslCertificate = false,
+ $byteRange = false,
+ $getExtendedInfo = false,
+ $httpMethod = 'POST',
+ $httpUsername = '',
+ $httpPassword = '',
+ array('adf2' => '44', 'afc23' => 'ab12')
+ );
+
+ $this->assertEquals('{"adf2":"44","afc23":"ab12","method":"post"}', $result);
+ }
+
+ /**
+ * @dataProvider getMethodsToTest
+ */
public function testHttpsWorksWithValidCertificate($method)
{
$result = Http::sendHttpRequestBy($method, 'https://builds.piwik.org/LATEST', 10);
diff --git a/tests/PHPUnit/Integration/MailTest.php b/tests/PHPUnit/Integration/MailTest.php
new file mode 100644
index 0000000000..876804c52f
--- /dev/null
+++ b/tests/PHPUnit/Integration/MailTest.php
@@ -0,0 +1,32 @@
+<?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\Tests\Integration;
+
+use Piwik\Mail;
+
+class MailTest extends \PHPUnit_Framework_TestCase
+{
+
+ public function getEmailFilenames()
+ {
+ return array(
+ array('January 3 – 9, 2010', 'January 3 - 9, 2010'),
+ array('Report <The><< ’s Coves - week January 18 – 24, 2016', 'Report <The><< \'s Coves - week January 18 - 24, 2016'),
+ );
+ }
+
+ /**
+ * @dataProvider getEmailFilenames
+ */
+ public function test_EmailFilenamesAreSanitised($raw, $expected)
+ {
+ $mail = new Mail;
+ $this->assertEquals($expected, $mail->sanitiseString($raw));
+ }
+}
diff --git a/tests/PHPUnit/Integration/PiwikPro/AdvertisingTest.php b/tests/PHPUnit/Integration/PiwikPro/AdvertisingTest.php
new file mode 100644
index 0000000000..5d3c9c27d0
--- /dev/null
+++ b/tests/PHPUnit/Integration/PiwikPro/AdvertisingTest.php
@@ -0,0 +1,149 @@
+<?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\Tests\Integration\PiwikPro;
+
+use Piwik\Config;
+use Piwik\PiwikPro\Advertising;
+use Piwik\Plugin;
+use Piwik\Tests\Framework\Mock\FakeConfig;
+use Piwik\Tests\Framework\Mock\Plugin\Manager;
+use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
+
+/**
+ * @group PiwikPro
+ * @group Advertising
+ * @group Integration
+ */
+class AdvertisingTest extends IntegrationTestCase
+{
+ /**
+ * @var Advertising
+ */
+ private $advertising;
+
+ /**
+ * @var Config
+ */
+ private $config;
+
+ /**
+ * @var Manager
+ */
+ private $pluginManager;
+
+ private $exampleUrl = 'https://piwik.pro/test';
+
+ public function setUp()
+ {
+ $this->config = new FakeConfig(array('General' => array('piwik_pro_ads_enabled' => '1')));
+ $this->pluginManager = new Manager();
+
+ $this->advertising = $this->buildAdvertising($this->config);
+ }
+
+ public function test_arePiwikProAdsEnabled_ActuallyEnabled()
+ {
+ $enabled = $this->advertising->arePiwikProAdsEnabled();
+
+ $this->assertTrue($enabled);
+ }
+
+ public function test_arePiwikProAdsEnabled_Disabled()
+ {
+ $this->config->General = array('piwik_pro_ads_enabled' => '0');
+
+ $enabled = $this->advertising->arePiwikProAdsEnabled();
+
+ $this->assertFalse($enabled);
+ }
+
+ public function test_arePiwikProAdsEnabled_shouldBeDisabledWhenCloudPluginIsInstalled()
+ {
+ $enabled = $this->advertising->arePiwikProAdsEnabled();
+ $this->assertTrue($enabled);
+
+ $this->pluginManager->setActivatedPlugins(array('CloudAdmin'));
+
+ $enabled = $this->advertising->arePiwikProAdsEnabled();
+ $this->assertFalse($enabled);
+ }
+
+ public function test_arePiwikProAdsEnabled_shouldBeDisabledWhenEnterprisePluginIsInstalled()
+ {
+ $enabled = $this->advertising->arePiwikProAdsEnabled();
+ $this->assertTrue($enabled);
+
+ $this->pluginManager->setActivatedPlugins(array('EnterpriseAdmin'));
+
+ $enabled = $this->advertising->arePiwikProAdsEnabled();
+ $this->assertFalse($enabled);
+ }
+
+ public function test_shouldBeEnabledByDefault()
+ {
+ $enabled = $this->buildAdvertising(Config::getInstance());
+
+ $this->assertTrue($enabled->arePiwikProAdsEnabled());
+ }
+
+ public function test_getPromoUrlForOnPremises_WithoutContent()
+ {
+ $link = $this->advertising->getPromoUrlForOnPremises('Installation_End');
+
+ $this->assertSame('https://piwik.pro/c/upgrade/?pk_campaign=Upgrade_to_Pro&pk_medium=Installation_End&pk_source=Piwik_App', $link);
+ }
+
+ public function test_getPromoUrlForOnPremises_WithContent()
+ {
+ $link = $this->advertising->getPromoUrlForOnPremises('Installation_End', 'TestContent');
+
+ $this->assertSame('https://piwik.pro/c/upgrade/?pk_campaign=Upgrade_to_Pro&pk_medium=Installation_End&pk_source=Piwik_App&pk_content=TestContent', $link);
+ }
+
+ public function test_getPromoUrlForCloud_WithoutContent()
+ {
+ $link = $this->advertising->getPromoUrlForCloud('Installation_End');
+
+ $this->assertSame('https://piwik.pro/cloud/?pk_campaign=Upgrade_to_Cloud&pk_medium=Installation_End&pk_source=Piwik_App', $link);
+ }
+
+ public function test_getPromoUrlForCloud_WithContent()
+ {
+ $link = $this->advertising->getPromoUrlForCloud('Installation_End', 'TestContent');
+
+ $this->assertSame('https://piwik.pro/cloud/?pk_campaign=Upgrade_to_Cloud&pk_medium=Installation_End&pk_source=Piwik_App&pk_content=TestContent', $link);
+ }
+
+ public function test_addPromoCampaignParametersToUrl_withoutContentWithoutQuery()
+ {
+ $link = $this->advertising->addPromoCampaignParametersToUrl($this->exampleUrl, 'MyName', 'Installation_Start');
+
+ $this->assertSame($this->exampleUrl . '?pk_campaign=MyName&pk_medium=Installation_Start&pk_source=Piwik_App', $link);
+ }
+
+ public function test_addPromoCampaignParametersToUrl_withContentWithoutQuery()
+ {
+ $link = $this->advertising->addPromoCampaignParametersToUrl($this->exampleUrl, 'MyName', 'Installation_Start', 'MyContent');
+
+ $this->assertSame($this->exampleUrl . '?pk_campaign=MyName&pk_medium=Installation_Start&pk_source=Piwik_App&pk_content=MyContent', $link);
+ }
+
+ public function test_addPromoCampaignParametersToUrl_withQuery()
+ {
+ $url = $this->exampleUrl . '?foo=bar';
+ $link = $this->advertising->addPromoCampaignParametersToUrl($url, 'MyName', 'Installation_Start');
+
+ $this->assertSame($url . '&pk_campaign=MyName&pk_medium=Installation_Start&pk_source=Piwik_App', $link);
+ }
+
+ private function buildAdvertising($config)
+ {
+ return new Advertising($this->pluginManager, $config);
+ }
+}
diff --git a/tests/PHPUnit/Integration/ReleaseCheckListTest.php b/tests/PHPUnit/Integration/ReleaseCheckListTest.php
index 58970199f0..fcda0177be 100644
--- a/tests/PHPUnit/Integration/ReleaseCheckListTest.php
+++ b/tests/PHPUnit/Integration/ReleaseCheckListTest.php
@@ -184,6 +184,30 @@ class ReleaseCheckListTest extends \PHPUnit_Framework_TestCase
}
}
+ public function test_jsfilesDoNotContainFakeSpaces()
+ {
+ $js = Filesystem::globr(PIWIK_INCLUDE_PATH, '*.js');
+ $this->checkFilesDoNotHaveWeirdSpaces($js);
+ }
+
+ public function test_phpfilesDoNotContainFakeSpaces()
+ {
+ $js = Filesystem::globr(PIWIK_INCLUDE_PATH, '*.php');
+ $this->checkFilesDoNotHaveWeirdSpaces($js);
+ }
+
+ public function test_twigfilesDoNotContainFakeSpaces()
+ {
+ $js = Filesystem::globr(PIWIK_INCLUDE_PATH, '*.twig');
+ $this->checkFilesDoNotHaveWeirdSpaces($js);
+ }
+
+ public function test_htmlfilesDoNotContainFakeSpaces()
+ {
+ $js = Filesystem::globr(PIWIK_INCLUDE_PATH, '*.html');
+ $this->checkFilesDoNotHaveWeirdSpaces($js);
+ }
+
public function test_directoriesShouldBeChmod755()
{
$pluginsPath = realpath(PIWIK_INCLUDE_PATH . '/plugins/');
@@ -422,7 +446,7 @@ class ReleaseCheckListTest extends \PHPUnit_Framework_TestCase
}
// in build-package.sh we have: `find ./ -iname 'tests' -type d -prune -exec rm -rf {} \;`
- if(stripos($file, "/tests/") !== false) {
+ if($this->isFileBelongToTests($file)) {
return false;
}
if(strpos($file, PIWIK_INCLUDE_PATH . "/tmp/") !== false) {
@@ -586,4 +610,52 @@ class ReleaseCheckListTest extends \PHPUnit_Framework_TestCase
}
return $filesizes;
}
+
+ /**
+ * @param $files
+ * @throws Exception
+ */
+ protected function checkFilesDoNotHaveWeirdSpaces($files)
+ {
+ $weirdSpace = ' ';
+ $this->assertEquals('c2a0', bin2hex($weirdSpace), "Checking that this test file was not tampered with");
+ $this->assertEquals('20', bin2hex(' '), "Checking that this test file was not tampered with");
+
+ $errors = array();
+ $countFileChecked = 0;
+ foreach ($files as $file) {
+
+ if($this->isFileBelongToTests($file)) {
+ continue;
+ }
+
+ if(strpos($file, 'vendor/php-di/php-di/website/') !== false) {
+ continue;
+ }
+
+ $content = file_get_contents($file);
+ $posWeirdSpace = strpos($content, $weirdSpace);
+ if ($posWeirdSpace !== false) {
+ $around = substr($content, $posWeirdSpace - 20, 40);
+ $around = trim($around);
+ $errors[] = "File $file contains an unusual space character, please remove it from here: ...$around...";
+ }
+
+ $countFileChecked++;
+ }
+ $this->assertTrue($countFileChecked > 100, "expected to test at least 100 files, but tested only " . $countFileChecked);
+
+ if (!empty($errors)) {
+ throw new Exception(implode(",\n\n ", $errors));
+ }
+ }
+
+ /**
+ * @param $file
+ * @return bool
+ */
+ private function isFileBelongToTests($file)
+ {
+ return stripos($file, "/tests/") !== false;
+ }
}
diff --git a/tests/PHPUnit/Integration/Settings/SystemSettingTest.php b/tests/PHPUnit/Integration/Settings/SystemSettingTest.php
index ecc694cc88..f3655ed919 100644
--- a/tests/PHPUnit/Integration/Settings/SystemSettingTest.php
+++ b/tests/PHPUnit/Integration/Settings/SystemSettingTest.php
@@ -8,7 +8,9 @@
namespace Piwik\Tests\Integration\Settings;
+use Piwik\Config;
use Piwik\Db;
+use Piwik\Plugin\Settings;
use Piwik\Settings\SystemSetting;
/**
@@ -19,6 +21,12 @@ use Piwik\Settings\SystemSetting;
class SystemSettingTest extends IntegrationTestCase
{
+ public function tearDown()
+ {
+ Config::getInstance()->MyPluginName = array();
+ parent::tearDown();
+ }
+
public function test_constructor_shouldNotEstablishADatabaseConnection()
{
$this->assertNotDbConnectionCreated();
@@ -113,6 +121,74 @@ class SystemSettingTest extends IntegrationTestCase
$this->assertEquals('', $setting->getValue());
}
+ public function test_getSettingValue_fromConfig_IfOneIsConfiguredInsteadOfTheValueFromDatabase()
+ {
+ $this->setSuperUser();
+ $setting = $this->addSystemSetting('myusersetting', 'mytitle');
+ $setting->setPluginName('MyPluginName');
+ $setting->setValue('test');
+ $this->assertEquals('test', $setting->getValue());
+
+ Config::getInstance()->MyPluginName = array('myusersetting' => 'mynewvalue');
+ $value = $setting->getValue();
+ $this->assertEquals('mynewvalue', $value);
+ }
+
+ public function test_getSettingValue_fromConfig_ShouldConvertToTheSpecifiedType()
+ {
+ $this->setSuperUser();
+ $setting = $this->addSystemSetting('myusersetting', 'mytitle');
+ $setting->setPluginName('MyPluginName');
+
+ Config::getInstance()->MyPluginName = array('myusersetting' => '1');
+
+ $this->assertSame('1', $setting->getValue());
+
+ $setting->type = Settings::TYPE_BOOL;
+ $this->assertTrue($setting->getValue());
+ }
+
+ public function test_getSettingValue_fromConfig_isCaseSensitive()
+ {
+ $this->setSuperUser();
+ $setting = $this->addSystemSetting('myUsersetting', 'mytitle');
+ $setting->setPluginName('MyPluginName');
+
+ Config::getInstance()->MyPluginName = array('myusersetting' => '1');
+
+ $this->assertNull($setting->getValue());
+
+ Config::getInstance()->MyPluginName = array('myUsersetting' => '1');
+
+ $this->assertSame('1', $setting->getValue());
+ }
+
+ public function test_getSettingsValue_fromConfig_ShouldSetObjectToNotWritableAsSoonAsAValueIsConfigured()
+ {
+ $this->setSuperUser();
+ $setting = $this->addSystemSetting('myusersetting', 'mytitle');
+ $setting->setPluginName('MyPluginName');
+
+ $this->assertTrue($setting->isWritableByCurrentUser());
+
+ Config::getInstance()->MyPluginName = array('myusersetting' => '0');
+ $this->assertFalse($setting->isWritableByCurrentUser());
+ }
+
+ /**
+ * @expectedException \Exception
+ * @expectedExceptionMessage CoreAdminHome_PluginSettingChangeNotAllowed
+ */
+ public function test_setSettingsValue_shouldNotBePossible_AsSoonAsAConfigValueIsConfigured()
+ {
+ $this->setSuperUser();
+ $setting = $this->addSystemSetting('myusersetting', 'mytitle');
+ $setting->setPluginName('MyPluginName');
+
+ Config::getInstance()->MyPluginName = array('myusersetting' => '0');
+ $setting->setValue('test');
+ }
+
/**
* @expectedException \Exception
* @expectedExceptionMessage CoreAdminHome_PluginSettingChangeNotAllowed
diff --git a/tests/PHPUnit/Integration/Tracker/PingRequestTest.php b/tests/PHPUnit/Integration/Tracker/PingRequestTest.php
index 75e8c10c1a..586283d9bf 100644
--- a/tests/PHPUnit/Integration/Tracker/PingRequestTest.php
+++ b/tests/PHPUnit/Integration/Tracker/PingRequestTest.php
@@ -47,7 +47,7 @@ class PingRequestTest extends IntegrationTestCase
$pingTime = '2012-01-05 00:20:00';
$this->doPingRequest($tracker, $pingTime, $setNewDimensionValues = false);
- $this->assertInitialVisitIsExtended($pingTime, self::FIRST_VISIT_TIME, $checkModifiedDimensions = false);
+ $this->assertInitialVisitIsNotExtended(self::FIRST_VISIT_TIME, $checkModifiedDimensions = false, 1201);
}
public function test_PingWithinThirtyMinutes_AndChangedDimensionValues_ExtendsExistingVisit_AndChangesAppropriateDimensions()
@@ -63,7 +63,7 @@ class PingRequestTest extends IntegrationTestCase
$pingTime = '2012-01-05 00:20:00';
$this->doPingRequest($tracker, $pingTime, $setNewDimensionValues = true);
- $this->assertInitialVisitIsExtended($pingTime, self::FIRST_VISIT_TIME, $checkModifiedDimensions = true);
+ $this->assertInitialVisitIsNotExtended(self::FIRST_VISIT_TIME, $checkModifiedDimensions = true, 1201);
}
public function test_PingWithinThirtyMinutes_DoesNotTriggerGoalConversion()
@@ -82,7 +82,7 @@ class PingRequestTest extends IntegrationTestCase
$tracker->setDebugStringAppend('&idgoal=1');
$this->doPingRequest($tracker, $pingTime, $setNewDimensionValues = true);
- $this->assertInitialVisitIsExtended($pingTime, self::FIRST_VISIT_TIME, $checkModifiedDimensions = true);
+ $this->assertInitialVisitIsNotExtended(self::FIRST_VISIT_TIME, $checkModifiedDimensions = true, 1201);
$this->assertGoalConversionCount(1);
}
@@ -163,11 +163,17 @@ class PingRequestTest extends IntegrationTestCase
return Db::fetchOne("SELECT MAX(server_time) FROM " . Common::prefixTable('log_link_visit_action') . " WHERE idvisit = ?", array($idVisit));
}
+ private function getVisitTotalTime($idVisit)
+ {
+ return Db::fetchOne("SELECT MAX(visit_total_time) FROM " . Common::prefixTable('log_visit') . " WHERE idvisit = ?", array($idVisit));
+ }
+
private function assertInitialVisitIsCorrect()
{
$this->assertVisitCount(1);
$this->assertActionCount(1);
$this->assertGoalConversionCount(1);
+ $this->assertEquals(0, $this->getVisitTotalTime($idVisit= 1));
$this->assertVisitPropertiesAreUnchanged($idVisit = 1);
}
@@ -192,17 +198,20 @@ class PingRequestTest extends IntegrationTestCase
return $response;
}
- private function assertInitialVisitIsExtended($newEndTime, $lastActionTime, $checkPropertiesModified)
+ private function assertInitialVisitIsNotExtended($firstActionTime, $checkPropertiesModified, $expectedTotalTime)
{
$this->assertVisitCount(1);
$this->assertActionCount(1);
$this->assertGoalConversionCount(1);
$visitEndTime = $this->getVisitLastActionTime($idVisit = 1);
- $this->assertEquals($newEndTime, $visitEndTime);
+ $this->assertEquals($firstActionTime, $visitEndTime);
$actionTime = $this->getLatestActionTime($idVisit = 1);
- $this->assertEquals($lastActionTime, $actionTime);
+ $this->assertEquals($firstActionTime, $actionTime);
+
+ $visitTotalTime = $this->getVisitTotalTime($idVisit = 1);
+ $this->assertEquals($expectedTotalTime, $visitTotalTime);
if ($checkPropertiesModified) {
$this->assertVisitPropertiesAreChanged($idVisit = 1, $checkUnchangeable = false);
diff --git a/tests/PHPUnit/Integration/WidgetsListTest.php b/tests/PHPUnit/Integration/WidgetsListTest.php
index 4ca355ffe5..8af1095b98 100644
--- a/tests/PHPUnit/Integration/WidgetsListTest.php
+++ b/tests/PHPUnit/Integration/WidgetsListTest.php
@@ -44,15 +44,14 @@ class WidgetsListTest extends IntegrationTestCase
'Dashboard_Dashboard' => 1,
'General_Actions' => 15,
'General_Visitors' => 34,
- 'Example Widgets' => 5,
'SEO' => 2,
'Goals_Goals' => 3,
'Live!' => 2,
'Insights_WidgetCategory' => 2,
'ExampleUI_UiFramework' => 8,
'Referrers_Referrers' => 9,
+ 'About Piwik' => 7,
);
-
// number of main categories
$this->assertEquals(count($numberOfWidgets), count($widgetsPerCategory));
diff --git a/tests/PHPUnit/System/TwoVisitsWithCustomVariablesSegmentMatchNONETest.php b/tests/PHPUnit/System/TwoVisitsWithCustomVariablesSegmentMatchNONETest.php
index 482b0d12d8..f2b8e2e632 100755
--- a/tests/PHPUnit/System/TwoVisitsWithCustomVariablesSegmentMatchNONETest.php
+++ b/tests/PHPUnit/System/TwoVisitsWithCustomVariablesSegmentMatchNONETest.php
@@ -73,6 +73,11 @@ class TwoVisitsWithCustomVariablesSegmentMatchNONETest extends SystemTestCase
if ($segment == 'deviceType') {
$matchNone = $segment . '==car%20browser';
}
+
+ if ($segment == 'deviceBrand') {
+ $matchNone = $segment . '==Yarvik';
+ }
+
$segmentExpression[] = $matchNone;
}
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_noOptions__VisitsSummary.get_month.xml b/tests/PHPUnit/System/expected/test_ArchiveCronTest_noOptions__VisitsSummary.get_month.xml
index 51252ac498..e36e5d53df 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_noOptions__VisitsSummary.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_noOptions__VisitsSummary.get_month.xml
@@ -2,7 +2,7 @@
<results>
<result idSite="1">
<nb_uniq_visitors>28</nb_uniq_visitors>
- <nb_users>0</nb_users>
+ <nb_users>1</nb_users>
<nb_visits>28</nb_visits>
<nb_actions>31</nb_actions>
<nb_visits_converted>26</nb_visits_converted>
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_noOptions__VisitsSummary.get_week.xml b/tests/PHPUnit/System/expected/test_ArchiveCronTest_noOptions__VisitsSummary.get_week.xml
index 22528b0939..f1ce3d1ac1 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_noOptions__VisitsSummary.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_noOptions__VisitsSummary.get_week.xml
@@ -2,7 +2,7 @@
<results>
<result idSite="1">
<nb_uniq_visitors>26</nb_uniq_visitors>
- <nb_users>0</nb_users>
+ <nb_users>1</nb_users>
<nb_visits>26</nb_visits>
<nb_actions>29</nb_actions>
<nb_visits_converted>24</nb_visits_converted>
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchivedWithUrlEncoding_noOptions__VisitsSummary.get_month.xml b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchivedWithUrlEncoding_noOptions__VisitsSummary.get_month.xml
index 744ab64e8e..d7fbf8c040 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchivedWithUrlEncoding_noOptions__VisitsSummary.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchivedWithUrlEncoding_noOptions__VisitsSummary.get_month.xml
@@ -2,7 +2,7 @@
<results>
<result idSite="1">
<nb_uniq_visitors>27</nb_uniq_visitors>
- <nb_users>0</nb_users>
+ <nb_users>1</nb_users>
<nb_visits>27</nb_visits>
<nb_actions>30</nb_actions>
<nb_visits_converted>25</nb_visits_converted>
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchivedWithUrlEncoding_noOptions__VisitsSummary.get_week.xml b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchivedWithUrlEncoding_noOptions__VisitsSummary.get_week.xml
index 22528b0939..f1ce3d1ac1 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchivedWithUrlEncoding_noOptions__VisitsSummary.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchivedWithUrlEncoding_noOptions__VisitsSummary.get_week.xml
@@ -2,7 +2,7 @@
<results>
<result idSite="1">
<nb_uniq_visitors>26</nb_uniq_visitors>
- <nb_users>0</nb_users>
+ <nb_users>1</nb_users>
<nb_visits>26</nb_visits>
<nb_actions>29</nb_actions>
<nb_visits_converted>24</nb_visits_converted>
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchived_noOptions__VisitsSummary.get_month.xml b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchived_noOptions__VisitsSummary.get_month.xml
index 744ab64e8e..d7fbf8c040 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchived_noOptions__VisitsSummary.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchived_noOptions__VisitsSummary.get_month.xml
@@ -2,7 +2,7 @@
<results>
<result idSite="1">
<nb_uniq_visitors>27</nb_uniq_visitors>
- <nb_users>0</nb_users>
+ <nb_users>1</nb_users>
<nb_visits>27</nb_visits>
<nb_actions>30</nb_actions>
<nb_visits_converted>25</nb_visits_converted>
diff --git a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchived_noOptions__VisitsSummary.get_week.xml b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchived_noOptions__VisitsSummary.get_week.xml
index 22528b0939..f1ce3d1ac1 100644
--- a/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchived_noOptions__VisitsSummary.get_week.xml
+++ b/tests/PHPUnit/System/expected/test_ArchiveCronTest_segmentPreArchived_noOptions__VisitsSummary.get_week.xml
@@ -2,7 +2,7 @@
<results>
<result idSite="1">
<nb_uniq_visitors>26</nb_uniq_visitors>
- <nb_users>0</nb_users>
+ <nb_users>1</nb_users>
<nb_visits>26</nb_visits>
<nb_actions>29</nb_actions>
<nb_visits_converted>24</nb_visits_converted>
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserCode__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserCode__API.getSuggestedValuesForSegment.xml
index 5ffae0691e..2479501ff3 100644
--- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserCode__API.getSuggestedValuesForSegment.xml
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserCode__API.getSuggestedValuesForSegment.xml
@@ -2,5 +2,10 @@
<result>
<row>FF</row>
<row>UNK</row>
+ <row>CM</row>
+ <row>QQ</row>
+ <row>AN</row>
+ <row>CH</row>
+ <row>IE</row>
<row>SF</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserCode__VisitsSummary.get_range.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserCode__VisitsSummary.get_range.xml
index 602805c283..e7e79a4222 100644
--- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserCode__VisitsSummary.get_range.xml
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserCode__VisitsSummary.get_range.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
- <nb_visits>27</nb_visits>
- <nb_actions>73</nb_actions>
- <nb_visits_converted>27</nb_visits_converted>
- <bounce_count>14</bounce_count>
- <sum_visit_length>21073</sum_visit_length>
+ <nb_visits>20</nb_visits>
+ <nb_actions>55</nb_actions>
+ <nb_visits_converted>20</nb_visits_converted>
+ <bounce_count>10</bounce_count>
+ <sum_visit_length>16210</sum_visit_length>
<max_actions>5</max_actions>
- <bounce_rate>52%</bounce_rate>
- <nb_actions_per_visit>2.7</nb_actions_per_visit>
- <avg_time_on_site>780</avg_time_on_site>
+ <bounce_rate>50%</bounce_rate>
+ <nb_actions_per_visit>2.8</nb_actions_per_visit>
+ <avg_time_on_site>811</avg_time_on_site>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserEngine__VisitsSummary.get_range.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserEngine__VisitsSummary.get_range.xml
index dfa3a20623..c0631c362b 100644
--- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserEngine__VisitsSummary.get_range.xml
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserEngine__VisitsSummary.get_range.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
- <nb_visits>1</nb_visits>
- <nb_actions>1</nb_actions>
- <nb_visits_converted>1</nb_visits_converted>
- <bounce_count>1</bounce_count>
- <sum_visit_length>0</sum_visit_length>
- <max_actions>1</max_actions>
- <bounce_rate>100%</bounce_rate>
- <nb_actions_per_visit>1</nb_actions_per_visit>
- <avg_time_on_site>0</avg_time_on_site>
+ <nb_visits>5</nb_visits>
+ <nb_actions>12</nb_actions>
+ <nb_visits_converted>5</nb_visits_converted>
+ <bounce_count>3</bounce_count>
+ <sum_visit_length>3242</sum_visit_length>
+ <max_actions>5</max_actions>
+ <bounce_rate>60%</bounce_rate>
+ <nb_actions_per_visit>2.4</nb_actions_per_visit>
+ <avg_time_on_site>648</avg_time_on_site>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserVersion__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserVersion__API.getSuggestedValuesForSegment.xml
index abcc43c819..c3c7ec0152 100644
--- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserVersion__API.getSuggestedValuesForSegment.xml
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserVersion__API.getSuggestedValuesForSegment.xml
@@ -1,4 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>3.6</row>
+ <row>33</row>
+ <row>5</row>
+ <row>3</row>
+ <row>32</row>
+ <row>34</row>
+ <row>11</row>
+ <row>8</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserVersion__VisitsSummary.get_range.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserVersion__VisitsSummary.get_range.xml
index 602805c283..780ddda63a 100644
--- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserVersion__VisitsSummary.get_range.xml
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_browserVersion__VisitsSummary.get_range.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
- <nb_visits>27</nb_visits>
- <nb_actions>73</nb_actions>
- <nb_visits_converted>27</nb_visits_converted>
- <bounce_count>14</bounce_count>
- <sum_visit_length>21073</sum_visit_length>
+ <nb_visits>18</nb_visits>
+ <nb_actions>50</nb_actions>
+ <nb_visits_converted>18</nb_visits_converted>
+ <bounce_count>9</bounce_count>
+ <sum_visit_length>14589</sum_visit_length>
<max_actions>5</max_actions>
- <bounce_rate>52%</bounce_rate>
- <nb_actions_per_visit>2.7</nb_actions_per_visit>
- <avg_time_on_site>780</avg_time_on_site>
+ <bounce_rate>50%</bounce_rate>
+ <nb_actions_per_visit>2.8</nb_actions_per_visit>
+ <avg_time_on_site>811</avg_time_on_site>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_deviceBrand__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_deviceBrand__API.getSuggestedValuesForSegment.xml
new file mode 100644
index 0000000000..e421ad0903
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_deviceBrand__API.getSuggestedValuesForSegment.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <row>Unknown</row>
+ <row>HTC</row>
+ <row>Samsung</row>
+ <row>Google</row>
+ <row>Dell</row>
+ <row>Sony</row>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_deviceBrand__VisitsSummary.get_range.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_deviceBrand__VisitsSummary.get_range.xml
new file mode 100644
index 0000000000..828ec1e21b
--- /dev/null
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_deviceBrand__VisitsSummary.get_range.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<result>
+ <nb_visits>27</nb_visits>
+ <nb_actions>76</nb_actions>
+ <nb_visits_converted>27</nb_visits_converted>
+ <bounce_count>13</bounce_count>
+ <sum_visit_length>22694</sum_visit_length>
+ <max_actions>5</max_actions>
+ <bounce_rate>48%</bounce_rate>
+ <nb_actions_per_visit>2.8</nb_actions_per_visit>
+ <avg_time_on_site>841</avg_time_on_site>
+</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_deviceType__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_deviceType__API.getSuggestedValuesForSegment.xml
index 4f5796903a..7b9c37df18 100644
--- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_deviceType__API.getSuggestedValuesForSegment.xml
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_deviceType__API.getSuggestedValuesForSegment.xml
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>Desktop</row>
+ <row>Smartphone</row>
+ <row>Phablet</row>
+ <row>Tablet</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemCode__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemCode__API.getSuggestedValuesForSegment.xml
index f32d4c4dc1..90e7df368b 100644
--- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemCode__API.getSuggestedValuesForSegment.xml
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemCode__API.getSuggestedValuesForSegment.xml
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
<row>WIN</row>
+ <row>AND</row>
<row>UNK</row>
+ <row>UBT</row>
+ <row>MLD</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemCode__VisitsSummary.get_range.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemCode__VisitsSummary.get_range.xml
index 3ce6d98183..fc9d2e2c5a 100644
--- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemCode__VisitsSummary.get_range.xml
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemCode__VisitsSummary.get_range.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
- <nb_visits>28</nb_visits>
- <nb_actions>74</nb_actions>
- <nb_visits_converted>28</nb_visits_converted>
- <bounce_count>15</bounce_count>
- <sum_visit_length>21073</sum_visit_length>
+ <nb_visits>22</nb_visits>
+ <nb_actions>54</nb_actions>
+ <nb_visits_converted>22</nb_visits_converted>
+ <bounce_count>13</bounce_count>
+ <sum_visit_length>14589</sum_visit_length>
<max_actions>5</max_actions>
- <bounce_rate>54%</bounce_rate>
- <nb_actions_per_visit>2.6</nb_actions_per_visit>
- <avg_time_on_site>753</avg_time_on_site>
+ <bounce_rate>59%</bounce_rate>
+ <nb_actions_per_visit>2.5</nb_actions_per_visit>
+ <avg_time_on_site>663</avg_time_on_site>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemVersion__API.getSuggestedValuesForSegment.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemVersion__API.getSuggestedValuesForSegment.xml
index 0abf9e4246..efcc22ca70 100644
--- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemVersion__API.getSuggestedValuesForSegment.xml
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemVersion__API.getSuggestedValuesForSegment.xml
@@ -2,4 +2,12 @@
<result>
<row>XP</row>
<row>UNK</row>
+ <row>4.4</row>
+ <row>4.3</row>
+ <row>9.04</row>
+ <row>8</row>
+ <row>8.1</row>
+ <row>4.1</row>
+ <row>7</row>
+ <row>Vista</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemVersion__VisitsSummary.get_range.xml b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemVersion__VisitsSummary.get_range.xml
index 3ce6d98183..abb563f023 100644
--- a/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemVersion__VisitsSummary.get_range.xml
+++ b/tests/PHPUnit/System/expected/test_AutoSuggestAPITest_operatingSystemVersion__VisitsSummary.get_range.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
- <nb_visits>28</nb_visits>
- <nb_actions>74</nb_actions>
- <nb_visits_converted>28</nb_visits_converted>
- <bounce_count>15</bounce_count>
- <sum_visit_length>21073</sum_visit_length>
+ <nb_visits>19</nb_visits>
+ <nb_actions>51</nb_actions>
+ <nb_visits_converted>19</nb_visits_converted>
+ <bounce_count>10</bounce_count>
+ <sum_visit_length>14589</sum_visit_length>
<max_actions>5</max_actions>
- <bounce_rate>54%</bounce_rate>
- <nb_actions_per_visit>2.6</nb_actions_per_visit>
- <avg_time_on_site>753</avg_time_on_site>
+ <bounce_rate>53%</bounce_rate>
+ <nb_actions_per_visit>2.7</nb_actions_per_visit>
+ <avg_time_on_site>768</avg_time_on_site>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_month.xml
index 2bb1a15667..798759bcea 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_month.xml
@@ -762,6 +762,48 @@
<segment>entryPageUrl==http%3A%2F%2Fpiwik.net%2Fto-an-error</segment>
</row>
<row>
+ <label>api</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>1</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+ <min_time_generation>0.009</min_time_generation>
+ <max_time_generation>0.009</max_time_generation>
+ <entry_nb_visits>1</entry_nb_visits>
+ <entry_nb_actions>1</entry_nb_actions>
+ <entry_sum_visit_length>0</entry_sum_visit_length>
+ <entry_bounce_count>1</entry_bounce_count>
+ <exit_nb_visits>1</exit_nb_visits>
+ <avg_time_on_page>0</avg_time_on_page>
+ <bounce_rate>100%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <avg_time_generation>0.009</avg_time_generation>
+ <subtable>
+ <row>
+ <label>/fútbol-user-agent</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>1</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+ <min_time_generation>0.009</min_time_generation>
+ <max_time_generation>0.009</max_time_generation>
+ <entry_nb_visits>1</entry_nb_visits>
+ <entry_nb_actions>1</entry_nb_actions>
+ <entry_sum_visit_length>0</entry_sum_visit_length>
+ <entry_bounce_count>1</entry_bounce_count>
+ <exit_nb_visits>1</exit_nb_visits>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+ <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+ <avg_time_on_page>0</avg_time_on_page>
+ <bounce_rate>100%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <avg_time_generation>0.009</avg_time_generation>
+ <url>http://piwik.net/api/fútbol-user-agent</url>
+ </row>
+ </subtable>
+ </row>
+ <row>
<label>download</label>
<nb_visits>1</nb_visits>
<nb_hits>1</nb_hits>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_range.xml
index d1c53283d0..ed79501504 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_range.xml
@@ -13,7 +13,7 @@
<entry_sum_visit_length>54</entry_sum_visit_length>
<entry_bounce_count>8</entry_bounce_count>
<exit_nb_visits>8</exit_nb_visits>
- <avg_time_on_page>17</avg_time_on_page>
+ <avg_time_on_page>13</avg_time_on_page>
<bounce_rate>89%</bounce_rate>
<exit_rate>80%</exit_rate>
<avg_time_generation>0.389</avg_time_generation>
@@ -31,7 +31,7 @@
<entry_sum_visit_length>54</entry_sum_visit_length>
<entry_bounce_count>5</entry_bounce_count>
<exit_nb_visits>5</exit_nb_visits>
- <avg_time_on_page>24</avg_time_on_page>
+ <avg_time_on_page>17</avg_time_on_page>
<bounce_rate>83%</bounce_rate>
<exit_rate>71%</exit_rate>
<avg_time_generation>0.443</avg_time_generation>
@@ -49,7 +49,7 @@
<entry_sum_visit_length>54</entry_sum_visit_length>
<entry_bounce_count>4</entry_bounce_count>
<exit_nb_visits>4</exit_nb_visits>
- <avg_time_on_page>30</avg_time_on_page>
+ <avg_time_on_page>22</avg_time_on_page>
<bounce_rate>80%</bounce_rate>
<exit_rate>80%</exit_rate>
<avg_time_generation>0.089</avg_time_generation>
@@ -70,7 +70,7 @@
<sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>5</sum_daily_entry_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>4</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>30</avg_time_on_page>
+ <avg_time_on_page>22</avg_time_on_page>
<bounce_rate>80%</bounce_rate>
<exit_rate>80%</exit_rate>
<avg_time_generation>0.089</avg_time_generation>
@@ -91,7 +91,7 @@
<entry_sum_visit_length>0</entry_sum_visit_length>
<entry_bounce_count>1</entry_bounce_count>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>8</avg_time_on_page>
+ <avg_time_on_page>5</avg_time_on_page>
<bounce_rate>100%</bounce_rate>
<exit_rate>50%</exit_rate>
<avg_time_generation>0.974</avg_time_generation>
@@ -112,7 +112,7 @@
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>8</avg_time_on_page>
+ <avg_time_on_page>5</avg_time_on_page>
<bounce_rate>100%</bounce_rate>
<exit_rate>50%</exit_rate>
<avg_time_generation>0.974</avg_time_generation>
@@ -542,7 +542,7 @@
<entry_sum_visit_length>0</entry_sum_visit_length>
<entry_bounce_count>4</entry_bounce_count>
<exit_nb_visits>5</exit_nb_visits>
- <avg_time_on_page>10</avg_time_on_page>
+ <avg_time_on_page>7</avg_time_on_page>
<bounce_rate>100%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.255</avg_time_generation>
@@ -563,7 +563,7 @@
<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>3</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>17</avg_time_on_page>
+ <avg_time_on_page>10</avg_time_on_page>
<bounce_rate>100%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.255</avg_time_generation>
@@ -1123,6 +1123,48 @@
<segment>entryPageUrl==http%3A%2F%2Fpiwik.net%2Fto-an-error</segment>
</row>
<row>
+ <label>api</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>1</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+ <min_time_generation>0.009</min_time_generation>
+ <max_time_generation>0.009</max_time_generation>
+ <entry_nb_visits>1</entry_nb_visits>
+ <entry_nb_actions>1</entry_nb_actions>
+ <entry_sum_visit_length>0</entry_sum_visit_length>
+ <entry_bounce_count>1</entry_bounce_count>
+ <exit_nb_visits>1</exit_nb_visits>
+ <avg_time_on_page>0</avg_time_on_page>
+ <bounce_rate>100%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <avg_time_generation>0.009</avg_time_generation>
+ <subtable>
+ <row>
+ <label>/fútbol-user-agent</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>1</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+ <min_time_generation>0.009</min_time_generation>
+ <max_time_generation>0.009</max_time_generation>
+ <entry_nb_visits>1</entry_nb_visits>
+ <entry_nb_actions>1</entry_nb_actions>
+ <entry_sum_visit_length>0</entry_sum_visit_length>
+ <entry_bounce_count>1</entry_bounce_count>
+ <exit_nb_visits>1</exit_nb_visits>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+ <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+ <avg_time_on_page>0</avg_time_on_page>
+ <bounce_rate>100%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <avg_time_generation>0.009</avg_time_generation>
+ <url>http://piwik.net/api/fútbol-user-agent</url>
+ </row>
+ </subtable>
+ </row>
+ <row>
<label>changelog</label>
<nb_visits>1</nb_visits>
<nb_hits>1</nb_hits>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_month.xml
index 05350333b8..edf1ae59e6 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_month.xml
@@ -756,6 +756,48 @@
<segment>exitPageUrl==http%3A%2F%2Fpiwik.net%2Fto-an-error</segment>
</row>
<row>
+ <label>api</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>1</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+ <min_time_generation>0.009</min_time_generation>
+ <max_time_generation>0.009</max_time_generation>
+ <entry_nb_visits>1</entry_nb_visits>
+ <entry_nb_actions>1</entry_nb_actions>
+ <entry_sum_visit_length>0</entry_sum_visit_length>
+ <entry_bounce_count>1</entry_bounce_count>
+ <exit_nb_visits>1</exit_nb_visits>
+ <avg_time_on_page>0</avg_time_on_page>
+ <bounce_rate>100%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <avg_time_generation>0.009</avg_time_generation>
+ <subtable>
+ <row>
+ <label>/fútbol-user-agent</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>1</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+ <min_time_generation>0.009</min_time_generation>
+ <max_time_generation>0.009</max_time_generation>
+ <entry_nb_visits>1</entry_nb_visits>
+ <entry_nb_actions>1</entry_nb_actions>
+ <entry_sum_visit_length>0</entry_sum_visit_length>
+ <entry_bounce_count>1</entry_bounce_count>
+ <exit_nb_visits>1</exit_nb_visits>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+ <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+ <avg_time_on_page>0</avg_time_on_page>
+ <bounce_rate>100%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <avg_time_generation>0.009</avg_time_generation>
+ <url>http://piwik.net/api/fútbol-user-agent</url>
+ </row>
+ </subtable>
+ </row>
+ <row>
<label>download</label>
<nb_visits>1</nb_visits>
<nb_hits>1</nb_hits>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_range.xml
index e5240da081..7973b3e001 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_range.xml
@@ -13,7 +13,7 @@
<entry_sum_visit_length>54</entry_sum_visit_length>
<entry_bounce_count>8</entry_bounce_count>
<exit_nb_visits>8</exit_nb_visits>
- <avg_time_on_page>17</avg_time_on_page>
+ <avg_time_on_page>13</avg_time_on_page>
<bounce_rate>89%</bounce_rate>
<exit_rate>80%</exit_rate>
<avg_time_generation>0.389</avg_time_generation>
@@ -31,7 +31,7 @@
<entry_sum_visit_length>54</entry_sum_visit_length>
<entry_bounce_count>5</entry_bounce_count>
<exit_nb_visits>5</exit_nb_visits>
- <avg_time_on_page>24</avg_time_on_page>
+ <avg_time_on_page>17</avg_time_on_page>
<bounce_rate>83%</bounce_rate>
<exit_rate>71%</exit_rate>
<avg_time_generation>0.443</avg_time_generation>
@@ -49,7 +49,7 @@
<entry_sum_visit_length>54</entry_sum_visit_length>
<entry_bounce_count>4</entry_bounce_count>
<exit_nb_visits>4</exit_nb_visits>
- <avg_time_on_page>30</avg_time_on_page>
+ <avg_time_on_page>22</avg_time_on_page>
<bounce_rate>80%</bounce_rate>
<exit_rate>80%</exit_rate>
<avg_time_generation>0.089</avg_time_generation>
@@ -70,7 +70,7 @@
<sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>5</sum_daily_entry_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>4</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>30</avg_time_on_page>
+ <avg_time_on_page>22</avg_time_on_page>
<bounce_rate>80%</bounce_rate>
<exit_rate>80%</exit_rate>
<avg_time_generation>0.089</avg_time_generation>
@@ -91,7 +91,7 @@
<entry_sum_visit_length>0</entry_sum_visit_length>
<entry_bounce_count>1</entry_bounce_count>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>8</avg_time_on_page>
+ <avg_time_on_page>5</avg_time_on_page>
<bounce_rate>100%</bounce_rate>
<exit_rate>50%</exit_rate>
<avg_time_generation>0.974</avg_time_generation>
@@ -112,7 +112,7 @@
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>8</avg_time_on_page>
+ <avg_time_on_page>5</avg_time_on_page>
<bounce_rate>100%</bounce_rate>
<exit_rate>50%</exit_rate>
<avg_time_generation>0.974</avg_time_generation>
@@ -542,7 +542,7 @@
<entry_sum_visit_length>0</entry_sum_visit_length>
<entry_bounce_count>4</entry_bounce_count>
<exit_nb_visits>5</exit_nb_visits>
- <avg_time_on_page>10</avg_time_on_page>
+ <avg_time_on_page>7</avg_time_on_page>
<bounce_rate>100%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.255</avg_time_generation>
@@ -563,7 +563,7 @@
<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>3</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>17</avg_time_on_page>
+ <avg_time_on_page>10</avg_time_on_page>
<bounce_rate>100%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.255</avg_time_generation>
@@ -1117,6 +1117,48 @@
<segment>exitPageUrl==http%3A%2F%2Fpiwik.net%2Fto-an-error</segment>
</row>
<row>
+ <label>api</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>1</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+ <min_time_generation>0.009</min_time_generation>
+ <max_time_generation>0.009</max_time_generation>
+ <entry_nb_visits>1</entry_nb_visits>
+ <entry_nb_actions>1</entry_nb_actions>
+ <entry_sum_visit_length>0</entry_sum_visit_length>
+ <entry_bounce_count>1</entry_bounce_count>
+ <exit_nb_visits>1</exit_nb_visits>
+ <avg_time_on_page>0</avg_time_on_page>
+ <bounce_rate>100%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <avg_time_generation>0.009</avg_time_generation>
+ <subtable>
+ <row>
+ <label>/fútbol-user-agent</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>1</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+ <min_time_generation>0.009</min_time_generation>
+ <max_time_generation>0.009</max_time_generation>
+ <entry_nb_visits>1</entry_nb_visits>
+ <entry_nb_actions>1</entry_nb_actions>
+ <entry_sum_visit_length>0</entry_sum_visit_length>
+ <entry_bounce_count>1</entry_bounce_count>
+ <exit_nb_visits>1</exit_nb_visits>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+ <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+ <avg_time_on_page>0</avg_time_on_page>
+ <bounce_rate>100%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <avg_time_generation>0.009</avg_time_generation>
+ <url>http://piwik.net/api/fútbol-user-agent</url>
+ </row>
+ </subtable>
+ </row>
+ <row>
<label>contact</label>
<nb_visits>1</nb_visits>
<nb_hits>1</nb_hits>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_month.xml
index a56dd22637..4265021a1b 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_month.xml
@@ -2,17 +2,17 @@
<result>
<row>
<label>Page Name not defined</label>
- <nb_visits>27</nb_visits>
- <nb_hits>28</nb_hits>
+ <nb_visits>28</nb_visits>
+ <nb_hits>29</nb_hits>
<sum_time_spent>0</sum_time_spent>
- <nb_hits_with_time_generation>6</nb_hits_with_time_generation>
+ <nb_hits_with_time_generation>7</nb_hits_with_time_generation>
<min_time_generation>0.001</min_time_generation>
<max_time_generation>0.359</max_time_generation>
- <sum_daily_nb_uniq_visitors>26</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_uniq_visitors>27</sum_daily_nb_uniq_visitors>
<avg_time_on_page>0</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
- <avg_time_generation>0.156</avg_time_generation>
+ <avg_time_generation>0.135</avg_time_generation>
</row>
<row>
<label>301</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_range.xml
index 9ac6ea68c2..24291fc91a 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_range.xml
@@ -2,17 +2,17 @@
<result>
<row>
<label>Page Name not defined</label>
- <nb_visits>28</nb_visits>
- <nb_hits>38</nb_hits>
+ <nb_visits>29</nb_visits>
+ <nb_hits>39</nb_hits>
<sum_time_spent>0</sum_time_spent>
- <nb_hits_with_time_generation>16</nb_hits_with_time_generation>
+ <nb_hits_with_time_generation>17</nb_hits_with_time_generation>
<min_time_generation>0.001</min_time_generation>
<max_time_generation>1.324</max_time_generation>
- <sum_daily_nb_uniq_visitors>27</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_uniq_visitors>28</sum_daily_nb_uniq_visitors>
<avg_time_on_page>0</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
- <avg_time_generation>0.3</avg_time_generation>
+ <avg_time_generation>0.283</avg_time_generation>
</row>
<row>
<label> Liberate Web Analytics - Analytics - Piwik</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_day.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_day.xml
index ce5ec3dc77..27aff1019b 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_day.xml
@@ -12,7 +12,7 @@
<entry_nb_actions>10</entry_nb_actions>
<entry_sum_visit_length>54</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
- <avg_time_on_page>83</avg_time_on_page>
+ <avg_time_on_page>33</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<avg_time_generation>0.443</avg_time_generation>
@@ -29,7 +29,7 @@
<entry_nb_actions>10</entry_nb_actions>
<entry_sum_visit_length>54</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
- <avg_time_on_page>83</avg_time_on_page>
+ <avg_time_on_page>33</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<avg_time_generation>0.443</avg_time_generation>
@@ -42,7 +42,7 @@
<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
<min_time_generation>0.624</min_time_generation>
<max_time_generation>1.324</max_time_generation>
- <avg_time_on_page>15</avg_time_on_page>
+ <avg_time_on_page>8</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<avg_time_generation>0.974</avg_time_generation>
@@ -56,7 +56,7 @@
<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
<min_time_generation>0.624</min_time_generation>
<max_time_generation>1.324</max_time_generation>
- <avg_time_on_page>15</avg_time_on_page>
+ <avg_time_on_page>8</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<avg_time_generation>0.974</avg_time_generation>
@@ -76,7 +76,7 @@
<entry_nb_actions>10</entry_nb_actions>
<entry_sum_visit_length>54</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
- <avg_time_on_page>151</avg_time_on_page>
+ <avg_time_on_page>50</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<avg_time_generation>0.089</avg_time_generation>
@@ -95,7 +95,7 @@
<entry_nb_actions>10</entry_nb_actions>
<entry_sum_visit_length>54</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
- <avg_time_on_page>151</avg_time_on_page>
+ <avg_time_on_page>50</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<avg_time_generation>0.089</avg_time_generation>
@@ -161,7 +161,7 @@
<min_time_generation>0.234</min_time_generation>
<max_time_generation>0.294</max_time_generation>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>52</avg_time_on_page>
+ <avg_time_on_page>17</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.255</avg_time_generation>
@@ -177,7 +177,7 @@
<max_time_generation>0.294</max_time_generation>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>52</avg_time_on_page>
+ <avg_time_on_page>17</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.255</avg_time_generation>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_month.xml
index cf6cb6491a..5a2fb28be8 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_month.xml
@@ -793,6 +793,48 @@
<segment>pageUrl==http%3A%2F%2Fpiwik.net%2Fto-an-error</segment>
</row>
<row>
+ <label>api</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>1</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+ <min_time_generation>0.009</min_time_generation>
+ <max_time_generation>0.009</max_time_generation>
+ <entry_nb_visits>1</entry_nb_visits>
+ <entry_nb_actions>1</entry_nb_actions>
+ <entry_sum_visit_length>0</entry_sum_visit_length>
+ <entry_bounce_count>1</entry_bounce_count>
+ <exit_nb_visits>1</exit_nb_visits>
+ <avg_time_on_page>0</avg_time_on_page>
+ <bounce_rate>100%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <avg_time_generation>0.009</avg_time_generation>
+ <subtable>
+ <row>
+ <label>/fútbol-user-agent</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>1</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+ <min_time_generation>0.009</min_time_generation>
+ <max_time_generation>0.009</max_time_generation>
+ <entry_nb_visits>1</entry_nb_visits>
+ <entry_nb_actions>1</entry_nb_actions>
+ <entry_sum_visit_length>0</entry_sum_visit_length>
+ <entry_bounce_count>1</entry_bounce_count>
+ <exit_nb_visits>1</exit_nb_visits>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+ <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+ <avg_time_on_page>0</avg_time_on_page>
+ <bounce_rate>100%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <avg_time_generation>0.009</avg_time_generation>
+ <url>http://piwik.net/api/fútbol-user-agent</url>
+ </row>
+ </subtable>
+ </row>
+ <row>
<label>download</label>
<nb_visits>1</nb_visits>
<nb_hits>1</nb_hits>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_range.xml
index 6cad9e0d80..6ed96aef32 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_range.xml
@@ -13,7 +13,7 @@
<entry_sum_visit_length>54</entry_sum_visit_length>
<entry_bounce_count>8</entry_bounce_count>
<exit_nb_visits>8</exit_nb_visits>
- <avg_time_on_page>17</avg_time_on_page>
+ <avg_time_on_page>13</avg_time_on_page>
<bounce_rate>89%</bounce_rate>
<exit_rate>80%</exit_rate>
<avg_time_generation>0.389</avg_time_generation>
@@ -31,7 +31,7 @@
<entry_sum_visit_length>54</entry_sum_visit_length>
<entry_bounce_count>5</entry_bounce_count>
<exit_nb_visits>5</exit_nb_visits>
- <avg_time_on_page>24</avg_time_on_page>
+ <avg_time_on_page>17</avg_time_on_page>
<bounce_rate>83%</bounce_rate>
<exit_rate>71%</exit_rate>
<avg_time_generation>0.443</avg_time_generation>
@@ -49,7 +49,7 @@
<entry_sum_visit_length>54</entry_sum_visit_length>
<entry_bounce_count>4</entry_bounce_count>
<exit_nb_visits>4</exit_nb_visits>
- <avg_time_on_page>30</avg_time_on_page>
+ <avg_time_on_page>22</avg_time_on_page>
<bounce_rate>80%</bounce_rate>
<exit_rate>80%</exit_rate>
<avg_time_generation>0.089</avg_time_generation>
@@ -70,7 +70,7 @@
<sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>5</sum_daily_entry_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>4</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>30</avg_time_on_page>
+ <avg_time_on_page>22</avg_time_on_page>
<bounce_rate>80%</bounce_rate>
<exit_rate>80%</exit_rate>
<avg_time_generation>0.089</avg_time_generation>
@@ -91,7 +91,7 @@
<entry_sum_visit_length>0</entry_sum_visit_length>
<entry_bounce_count>1</entry_bounce_count>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>8</avg_time_on_page>
+ <avg_time_on_page>5</avg_time_on_page>
<bounce_rate>100%</bounce_rate>
<exit_rate>50%</exit_rate>
<avg_time_generation>0.974</avg_time_generation>
@@ -112,7 +112,7 @@
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>8</avg_time_on_page>
+ <avg_time_on_page>5</avg_time_on_page>
<bounce_rate>100%</bounce_rate>
<exit_rate>50%</exit_rate>
<avg_time_generation>0.974</avg_time_generation>
@@ -542,7 +542,7 @@
<entry_sum_visit_length>0</entry_sum_visit_length>
<entry_bounce_count>4</entry_bounce_count>
<exit_nb_visits>5</exit_nb_visits>
- <avg_time_on_page>10</avg_time_on_page>
+ <avg_time_on_page>7</avg_time_on_page>
<bounce_rate>100%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.255</avg_time_generation>
@@ -563,7 +563,7 @@
<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
<sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>3</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>17</avg_time_on_page>
+ <avg_time_on_page>10</avg_time_on_page>
<bounce_rate>100%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.255</avg_time_generation>
@@ -1173,6 +1173,48 @@
<segment>pageUrl==http%3A%2F%2Fpiwik.net%2Fto-an-error</segment>
</row>
<row>
+ <label>api</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>1</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+ <min_time_generation>0.009</min_time_generation>
+ <max_time_generation>0.009</max_time_generation>
+ <entry_nb_visits>1</entry_nb_visits>
+ <entry_nb_actions>1</entry_nb_actions>
+ <entry_sum_visit_length>0</entry_sum_visit_length>
+ <entry_bounce_count>1</entry_bounce_count>
+ <exit_nb_visits>1</exit_nb_visits>
+ <avg_time_on_page>0</avg_time_on_page>
+ <bounce_rate>100%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <avg_time_generation>0.009</avg_time_generation>
+ <subtable>
+ <row>
+ <label>/fútbol-user-agent</label>
+ <nb_visits>1</nb_visits>
+ <nb_hits>1</nb_hits>
+ <sum_time_spent>0</sum_time_spent>
+ <nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+ <min_time_generation>0.009</min_time_generation>
+ <max_time_generation>0.009</max_time_generation>
+ <entry_nb_visits>1</entry_nb_visits>
+ <entry_nb_actions>1</entry_nb_actions>
+ <entry_sum_visit_length>0</entry_sum_visit_length>
+ <entry_bounce_count>1</entry_bounce_count>
+ <exit_nb_visits>1</exit_nb_visits>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+ <sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+ <avg_time_on_page>0</avg_time_on_page>
+ <bounce_rate>100%</bounce_rate>
+ <exit_rate>100%</exit_rate>
+ <avg_time_generation>0.009</avg_time_generation>
+ <url>http://piwik.net/api/fútbol-user-agent</url>
+ </row>
+ </subtable>
+ </row>
+ <row>
<label>changelog</label>
<nb_visits>1</nb_visits>
<nb_hits>1</nb_hits>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_month.xml
index a9f37fee84..23f5051f83 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_month.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
- <nb_pageviews>39</nb_pageviews>
- <nb_uniq_pageviews>38</nb_uniq_pageviews>
+ <nb_pageviews>40</nb_pageviews>
+ <nb_uniq_pageviews>39</nb_uniq_pageviews>
<nb_downloads>4</nb_downloads>
<nb_uniq_downloads>4</nb_uniq_downloads>
<nb_outlinks>0</nb_outlinks>
<nb_uniq_outlinks>0</nb_uniq_outlinks>
<nb_searches>0</nb_searches>
<nb_keywords>0</nb_keywords>
- <avg_time_generation>0.206</avg_time_generation>
+ <avg_time_generation>0.184</avg_time_generation>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_range.xml
index f06074a2b3..bf02fbd84b 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_range.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
- <nb_pageviews>63</nb_pageviews>
- <nb_uniq_pageviews>56</nb_uniq_pageviews>
+ <nb_pageviews>64</nb_pageviews>
+ <nb_uniq_pageviews>57</nb_uniq_pageviews>
<nb_downloads>5</nb_downloads>
<nb_uniq_downloads>5</nb_uniq_downloads>
<nb_outlinks>1</nb_outlinks>
<nb_uniq_outlinks>1</nb_uniq_outlinks>
<nb_searches>0</nb_searches>
<nb_keywords>0</nb_keywords>
- <avg_time_generation>0.273</avg_time_generation>
+ <avg_time_generation>0.264</avg_time_generation>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getCustomVariables_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getCustomVariables_month.xml
index 3746937e85..5996574d1f 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getCustomVariables_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getCustomVariables_month.xml
@@ -2,7 +2,7 @@
<result>
<row>
<label>HTTP-code</label>
- <nb_actions>44</nb_actions>
+ <nb_actions>45</nb_actions>
<slots>
<row>
<scope>page</scope>
@@ -17,9 +17,9 @@
<subtable>
<row>
<label>200</label>
- <nb_visits>33</nb_visits>
- <nb_actions>35</nb_actions>
- <sum_daily_nb_uniq_visitors>33</sum_daily_nb_uniq_visitors>
+ <nb_visits>34</nb_visits>
+ <nb_actions>36</nb_actions>
+ <sum_daily_nb_uniq_visitors>34</sum_daily_nb_uniq_visitors>
</row>
<row>
<label>301</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getUsagesOfSlots.xml b/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getUsagesOfSlots.xml
index 55ef69079d..190fff01c2 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getUsagesOfSlots.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getUsagesOfSlots.xml
@@ -72,7 +72,7 @@
<row>
<name>HTTP-code</name>
<nb_visits>0</nb_visits>
- <nb_actions>70</nb_actions>
+ <nb_actions>71</nb_actions>
</row>
<row>
<name>Generation Time</name>
@@ -99,7 +99,7 @@
<row>
<name>HTTP-code</name>
<nb_visits>0</nb_visits>
- <nb_actions>70</nb_actions>
+ <nb_actions>71</nb_actions>
</row>
</usages>
</row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml
index 08840cc821..0adfc71aee 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml
@@ -9,8 +9,9 @@
<bounce_count>31</bounce_count>
<nb_visits_converted>31</nb_visits_converted>
<sum_daily_nb_uniq_visitors>33</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>1</sum_daily_nb_users>
+ <sum_daily_nb_users>2</sum_daily_nb_users>
<logo>plugins/DevicesDetection/images/brand/Unknown.ico</logo>
+ <segment>deviceBrand==Unknown</segment>
</row>
<row>
<label>HTC</label>
@@ -23,6 +24,20 @@
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
<logo>plugins/DevicesDetection/images/brand/HTC.ico</logo>
+ <segment>deviceBrand==HTC</segment>
+ </row>
+ <row>
+ <label>Apple</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <max_actions>1</max_actions>
+ <sum_visit_length>0</sum_visit_length>
+ <bounce_count>1</bounce_count>
+ <nb_visits_converted>1</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ <logo>plugins/DevicesDetection/images/brand/Apple.ico</logo>
+ <segment>deviceBrand==Apple</segment>
</row>
<row>
<label>Samsung</label>
@@ -35,5 +50,6 @@
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>1</sum_daily_nb_users>
<logo>plugins/DevicesDetection/images/brand/Samsung.ico</logo>
+ <segment>deviceBrand==Samsung</segment>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserEngines_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserEngines_month.xml
index 4c4cb49892..26b425d530 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserEngines_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserEngines_month.xml
@@ -9,7 +9,7 @@
<bounce_count>16</bounce_count>
<nb_visits_converted>17</nb_visits_converted>
<sum_daily_nb_uniq_visitors>18</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>0</sum_daily_nb_users>
+ <sum_daily_nb_users>1</sum_daily_nb_users>
<segment>browserEngine==WebKit</segment>
</row>
<row>
@@ -38,13 +38,13 @@
</row>
<row>
<label>Unknown</label>
- <nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
+ <nb_visits>5</nb_visits>
+ <nb_actions>5</nb_actions>
<max_actions>1</max_actions>
<sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
- <nb_visits_converted>1</nb_visits_converted>
- <sum_daily_nb_uniq_visitors>4</sum_daily_nb_uniq_visitors>
+ <bounce_count>5</bounce_count>
+ <nb_visits_converted>2</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
<segment>browserEngine==</segment>
</row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserFamilies_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserFamilies_month.xml
index d1231b5bb1..9ec764ffe6 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserFamilies_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserFamilies_month.xml
@@ -9,7 +9,7 @@
<bounce_count>9</bounce_count>
<nb_visits_converted>10</nb_visits_converted>
<sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>1</sum_daily_nb_users>
+ <sum_daily_nb_users>2</sum_daily_nb_users>
<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
</row>
<row>
@@ -50,13 +50,13 @@
</row>
<row>
<label>Unknown</label>
- <nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
+ <nb_visits>5</nb_visits>
+ <nb_actions>5</nb_actions>
<max_actions>1</max_actions>
<sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
- <nb_visits_converted>1</nb_visits_converted>
- <sum_daily_nb_uniq_visitors>4</sum_daily_nb_uniq_visitors>
+ <bounce_count>5</bounce_count>
+ <nb_visits_converted>2</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
<logo>plugins/DevicesDetection/images/browsers/UNK.gif</logo>
</row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserVersions_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserVersions_month.xml
index 8d82c019fc..fb459cbb95 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserVersions_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserVersions_month.xml
@@ -100,7 +100,7 @@
<bounce_count>2</bounce_count>
<nb_visits_converted>2</nb_visits_converted>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>0</sum_daily_nb_users>
+ <sum_daily_nb_users>1</sum_daily_nb_users>
<segment>browserCode==CH;browserVersion==20.0</segment>
<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
</row>
@@ -208,4 +208,17 @@
<segment>browserCode==IE;browserVersion==8.0</segment>
<logo>plugins/DevicesDetection/images/browsers/IE.gif</logo>
</row>
+ <row>
+ <label>Unknown</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <max_actions>1</max_actions>
+ <sum_visit_length>0</sum_visit_length>
+ <bounce_count>1</bounce_count>
+ <nb_visits_converted>1</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>browserCode==UNK;browserVersion==1.0</segment>
+ <logo>plugins/DevicesDetection/images/browsers/UNK.gif</logo>
+ </row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowsers_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowsers_month.xml
index 34e9fb7630..cce03cafcc 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowsers_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowsers_month.xml
@@ -9,7 +9,7 @@
<bounce_count>9</bounce_count>
<nb_visits_converted>10</nb_visits_converted>
<sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>1</sum_daily_nb_users>
+ <sum_daily_nb_users>2</sum_daily_nb_users>
<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
<segment>browserCode==CH</segment>
</row>
@@ -54,13 +54,13 @@
</row>
<row>
<label>Unknown</label>
- <nb_visits>4</nb_visits>
- <nb_actions>4</nb_actions>
+ <nb_visits>5</nb_visits>
+ <nb_actions>5</nb_actions>
<max_actions>1</max_actions>
<sum_visit_length>0</sum_visit_length>
- <bounce_count>4</bounce_count>
- <nb_visits_converted>1</nb_visits_converted>
- <sum_daily_nb_uniq_visitors>4</sum_daily_nb_uniq_visitors>
+ <bounce_count>5</bounce_count>
+ <nb_visits_converted>2</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
<logo>plugins/DevicesDetection/images/browsers/UNK.gif</logo>
<segment>browserCode==UNK</segment>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getModel_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getModel_month.xml
index f330ccb30f..6a19338c7d 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getModel_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getModel_month.xml
@@ -9,7 +9,7 @@
<bounce_count>31</bounce_count>
<nb_visits_converted>31</nb_visits_converted>
<sum_daily_nb_uniq_visitors>33</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>1</sum_daily_nb_users>
+ <sum_daily_nb_users>2</sum_daily_nb_users>
</row>
<row>
<label>HTC - Vision</label>
@@ -23,6 +23,17 @@
<sum_daily_nb_users>0</sum_daily_nb_users>
</row>
<row>
+ <label>Apple - iPhone</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <max_actions>1</max_actions>
+ <sum_visit_length>0</sum_visit_length>
+ <bounce_count>1</bounce_count>
+ <nb_visits_converted>1</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ </row>
+ <row>
<label>Samsung - GALAXY S5</label>
<nb_visits>1</nb_visits>
<nb_actions>3</nb_actions>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsFamilies_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsFamilies_month.xml
index c7234f8606..9eee07e117 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsFamilies_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsFamilies_month.xml
@@ -21,7 +21,7 @@
<bounce_count>10</bounce_count>
<nb_visits_converted>11</nb_visits_converted>
<sum_daily_nb_uniq_visitors>11</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>0</sum_daily_nb_users>
+ <sum_daily_nb_users>1</sum_daily_nb_users>
<logo>plugins/DevicesDetection/images/os/WIN.gif</logo>
</row>
<row>
@@ -72,4 +72,16 @@
<sum_daily_nb_users>0</sum_daily_nb_users>
<logo>plugins/DevicesDetection/images/os/UNK.gif</logo>
</row>
+ <row>
+ <label>iOS</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <max_actions>1</max_actions>
+ <sum_visit_length>0</sum_visit_length>
+ <bounce_count>1</bounce_count>
+ <nb_visits_converted>1</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ <logo>plugins/DevicesDetection/images/os/IOS.gif</logo>
+ </row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsVersions_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsVersions_month.xml
index 8ff1d6faee..f20b32cd47 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsVersions_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsVersions_month.xml
@@ -22,7 +22,7 @@
<bounce_count>7</bounce_count>
<nb_visits_converted>7</nb_visits_converted>
<sum_daily_nb_uniq_visitors>7</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>0</sum_daily_nb_users>
+ <sum_daily_nb_users>1</sum_daily_nb_users>
<segment>operatingSystemCode==WIN;operatingSystemVersion==7</segment>
<logo>plugins/DevicesDetection/images/os/WIN.gif</logo>
</row>
@@ -118,6 +118,19 @@
<logo>plugins/DevicesDetection/images/os/UNK.gif</logo>
</row>
<row>
+ <label>iOS 7.1</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <max_actions>1</max_actions>
+ <sum_visit_length>0</sum_visit_length>
+ <bounce_count>1</bounce_count>
+ <nb_visits_converted>1</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>operatingSystemCode==IOS;operatingSystemVersion==7.1</segment>
+ <logo>plugins/DevicesDetection/images/os/IOS.gif</logo>
+ </row>
+ <row>
<label>Mac</label>
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getType_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getType_month.xml
index 875400f578..9215886300 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getType_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getType_month.xml
@@ -9,11 +9,24 @@
<bounce_count>27</bounce_count>
<nb_visits_converted>30</nb_visits_converted>
<sum_daily_nb_uniq_visitors>29</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>1</sum_daily_nb_users>
+ <sum_daily_nb_users>2</sum_daily_nb_users>
<segment>deviceType==desktop</segment>
<logo>plugins/DevicesDetection/images/screens/normal.gif</logo>
</row>
<row>
+ <label>Smartphone</label>
+ <nb_visits>4</nb_visits>
+ <nb_actions>6</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>2</sum_visit_length>
+ <bounce_count>3</bounce_count>
+ <nb_visits_converted>4</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>4</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>1</sum_daily_nb_users>
+ <segment>deviceType==smartphone</segment>
+ <logo>plugins/DevicesDetection/images/screens/smartphone.png</logo>
+ </row>
+ <row>
<label>Unknown</label>
<nb_visits>4</nb_visits>
<nb_actions>4</nb_actions>
@@ -26,19 +39,6 @@
<logo>plugins/DevicesDetection/images/screens/unknown.gif</logo>
</row>
<row>
- <label>Smartphone</label>
- <nb_visits>3</nb_visits>
- <nb_actions>5</nb_actions>
- <max_actions>3</max_actions>
- <sum_visit_length>2</sum_visit_length>
- <bounce_count>2</bounce_count>
- <nb_visits_converted>3</nb_visits_converted>
- <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>1</sum_daily_nb_users>
- <segment>deviceType==smartphone</segment>
- <logo>plugins/DevicesDetection/images/screens/smartphone.png</logo>
- </row>
- <row>
<label>Camera</label>
<nb_visits>0</nb_visits>
<segment>deviceType==camera</segment>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getDaysToConversion_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getDaysToConversion_month.xml
index d6f76b939e..b4efda3138 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getDaysToConversion_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getDaysToConversion_month.xml
@@ -2,7 +2,7 @@
<result>
<row>
<label>0 days</label>
- <nb_conversions>33</nb_conversions>
+ <nb_conversions>34</nb_conversions>
</row>
<row>
<label>1 day</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getMetrics_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getMetrics_month.xml
index d97c3eb0d0..603f674615 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getMetrics_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getMetrics_month.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
- <nb_conversions>34</nb_conversions>
- <nb_visits_converted>34</nb_visits_converted>
- <revenue>170</revenue>
- <conversion_rate>89.47%</conversion_rate>
+ <nb_conversions>35</nb_conversions>
+ <nb_visits_converted>35</nb_visits_converted>
+ <revenue>175</revenue>
+ <conversion_rate>89.74%</conversion_rate>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getVisitsUntilConversion_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getVisitsUntilConversion_month.xml
index fcd1e7c56b..c25b8275f0 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getVisitsUntilConversion_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getVisitsUntilConversion_month.xml
@@ -2,7 +2,7 @@
<result>
<row>
<label>1 visit</label>
- <nb_conversions>34</nb_conversions>
+ <nb_conversions>35</nb_conversions>
</row>
<row>
<label>2 visits</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml
index 73154bb53f..9c8f8990b0 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
- <nb_conversions>34</nb_conversions>
- <nb_visits_converted>34</nb_visits_converted>
- <revenue>170</revenue>
- <conversion_rate>89.47%</conversion_rate>
- <nb_conversions_new_visit>31</nb_conversions_new_visit>
- <nb_visits_converted_new_visit>31</nb_visits_converted_new_visit>
- <revenue_new_visit>155</revenue_new_visit>
- <conversion_rate_new_visit>88.57%</conversion_rate_new_visit>
+ <nb_conversions>35</nb_conversions>
+ <nb_visits_converted>35</nb_visits_converted>
+ <revenue>175</revenue>
+ <conversion_rate>89.74%</conversion_rate>
+ <nb_conversions_new_visit>32</nb_conversions_new_visit>
+ <nb_visits_converted_new_visit>32</nb_visits_converted_new_visit>
+ <revenue_new_visit>160</revenue_new_visit>
+ <conversion_rate_new_visit>88.89%</conversion_rate_new_visit>
<nb_conversions_returning_visit>3</nb_conversions_returning_visit>
<nb_visits_converted_returning_visit>3</nb_visits_converted_returning_visit>
<revenue_returning_visit>15</revenue_returning_visit>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
index 84ba4e506d..2087b56cee 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
@@ -2114,7 +2114,7 @@
</row>
<row>
<idSite>1</idSite>
- <idVisit>67</idVisit>
+ <idVisit>68</idVisit>
<visitIp>173.5.0.0</visitIp>
<actionDetails>
@@ -2123,7 +2123,7 @@
<goalName>all</goalName>
<goalId>1</goalId>
<revenue>5</revenue>
- <goalPageId>93</goalPageId>
+ <goalPageId>94</goalPageId>
<url>http://hello.example.com/hello/from/another/world/6,681965</url>
<icon>plugins/Morpheus/images/goal.png</icon>
@@ -2135,7 +2135,7 @@
<pageTitle />
<pageIdAction>61</pageIdAction>
- <pageId>93</pageId>
+ <pageId>94</pageId>
<customVariables>
<row>
<customVariablePageName1>Generation Time</customVariablePageName1>
@@ -2293,7 +2293,7 @@
<pageTitle />
<pageIdAction>56</pageIdAction>
- <pageId>90</pageId>
+ <pageId>91</pageId>
<customVariables>
<row>
<customVariablePageName1>Generation Time</customVariablePageName1>
@@ -2512,7 +2512,7 @@
<pageTitle>404/URL = http%3A%2F%2Fhello.example.com%2Fhello%2Fworld%2F6%2C681965</pageTitle>
<pageIdAction>60</pageIdAction>
- <pageId>92</pageId>
+ <pageId>93</pageId>
<customVariables>
<row>
<customVariablePageName1>Generation Time</customVariablePageName1>
@@ -2638,7 +2638,7 @@
</row>
<row>
<idSite>1</idSite>
- <idVisit>66</idVisit>
+ <idVisit>67</idVisit>
<visitIp>70.95.32.0</visitIp>
<actionDetails>
@@ -2647,7 +2647,7 @@
<goalName>all</goalName>
<goalId>1</goalId>
<revenue>5</revenue>
- <goalPageId>91</goalPageId>
+ <goalPageId>92</goalPageId>
<url>http://example.hello.com/Topic/hw43061</url>
<icon>plugins/Morpheus/images/goal.png</icon>
@@ -2659,7 +2659,7 @@
<pageTitle>301/URL = http%3A%2F%2Fexample.hello.com%2FTopic%2Fhw43061</pageTitle>
<pageIdAction>58</pageIdAction>
- <pageId>91</pageId>
+ <pageId>92</pageId>
<customVariables>
<row>
<customVariablePageName1>Generation Time</customVariablePageName1>
@@ -3133,6 +3133,115 @@
</row>
<row>
<idSite>1</idSite>
+ <idVisit>66</idVisit>
+ <visitIp>73.77.55.45</visitIp>
+
+ <actionDetails>
+ <row>
+ <type>goal</type>
+ <goalName>all</goalName>
+ <goalId>1</goalId>
+ <revenue>5</revenue>
+ <goalPageId>90</goalPageId>
+
+ <url>http://piwik.net/api/fútbol-user-agent</url>
+ <icon>plugins/Morpheus/images/goal.png</icon>
+
+ </row>
+ <row>
+ <type>action</type>
+ <url>http://piwik.net/api/fútbol-user-agent</url>
+ <pageTitle />
+ <pageIdAction>71</pageIdAction>
+
+ <pageId>90</pageId>
+ <customVariables>
+ <row>
+ <customVariablePageName1>HTTP-code</customVariablePageName1>
+ <customVariablePageValue1>200</customVariablePageValue1>
+ </row>
+ </customVariables>
+ <generationTime>0.009s</generationTime>
+ <icon />
+
+ </row>
+ </actionDetails>
+ <goalConversions>1</goalConversions>
+ <siteCurrency>USD</siteCurrency>
+ <siteCurrencySymbol>$</siteCurrencySymbol>
+
+
+
+
+ <userId />
+ <visitorType>new</visitorType>
+ <visitorTypeIcon />
+ <visitConverted>1</visitConverted>
+ <visitConvertedIcon>plugins/Morpheus/images/goal.png</visitConvertedIcon>
+ <visitCount>1</visitCount>
+
+ <visitEcommerceStatus>none</visitEcommerceStatus>
+ <visitEcommerceStatusIcon />
+ <daysSinceFirstVisit>0</daysSinceFirstVisit>
+ <daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+ <visitDuration>0</visitDuration>
+ <visitDurationPretty>0s</visitDurationPretty>
+ <searches>0</searches>
+ <actions>1</actions>
+ <referrerType>direct</referrerType>
+ <referrerTypeName>Direct Entry</referrerTypeName>
+ <referrerName />
+ <referrerKeyword />
+ <referrerKeywordPosition />
+ <referrerUrl />
+ <referrerSearchEngineUrl />
+ <referrerSearchEngineIcon />
+ <languageCode />
+ <language>Unknown</language>
+ <deviceType>Smartphone</deviceType>
+ <deviceTypeIcon>plugins/DevicesDetection/images/screens/smartphone.png</deviceTypeIcon>
+ <deviceBrand>Apple</deviceBrand>
+ <deviceModel>iPhone</deviceModel>
+ <operatingSystem>iOS 7.1</operatingSystem>
+ <operatingSystemName>iOS</operatingSystemName>
+ <operatingSystemIcon>plugins/DevicesDetection/images/os/IOS.gif</operatingSystemIcon>
+ <operatingSystemCode>IOS</operatingSystemCode>
+ <operatingSystemVersion>7.1</operatingSystemVersion>
+ <browserFamily />
+ <browserFamilyDescription>Unknown</browserFamilyDescription>
+ <browser>Unknown</browser>
+ <browserName>Unknown</browserName>
+ <browserIcon>plugins/DevicesDetection/images/browsers/UNK.gif</browserIcon>
+ <browserCode>UNK</browserCode>
+ <browserVersion>1.0</browserVersion>
+ <events>0</events>
+ <continent>North America</continent>
+ <continentCode>amn</continentCode>
+ <country>United States</country>
+ <countryCode>us</countryCode>
+ <countryFlag>plugins/UserCountry/images/flags/us.png</countryFlag>
+ <region>New Jersey</region>
+ <regionCode>NJ</regionCode>
+ <city>Mount Laurel</city>
+ <location>Mount Laurel, New Jersey, United States</location>
+ <latitude>39.957001</latitude>
+ <longitude>-74.916000</longitude>
+ <visitLocalTime>12:20:31</visitLocalTime>
+ <visitLocalHour>12</visitLocalHour>
+ <daysSinceLastVisit>0</daysSinceLastVisit>
+ <customVariables>
+ </customVariables>
+ <resolution>unknown</resolution>
+ <plugins />
+ <pluginsIcons />
+
+
+
+
+
+ </row>
+ <row>
+ <idSite>1</idSite>
<idVisit>64</idVisit>
<visitIp>192.0.2.222</visitIp>
@@ -4409,7 +4518,7 @@
- <userId />
+ <userId>commonuser</userId>
<visitorType>new</visitorType>
<visitorTypeIcon />
<visitConverted>1</visitConverted>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml
index 8485ac465c..fd2d4e58ad 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml
@@ -2,10 +2,10 @@
<result>
<row>
<label>Piwik test</label>
- <nb_visits>38</nb_visits>
- <nb_actions>45</nb_actions>
- <nb_pageviews>39</nb_pageviews>
- <revenue>170</revenue>
+ <nb_visits>39</nb_visits>
+ <nb_actions>46</nb_actions>
+ <nb_pageviews>40</nb_pageviews>
+ <revenue>175</revenue>
<visits_evolution>100%</visits_evolution>
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getOne_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getOne_month.xml
index 9b9cc1efd7..5adcb351b8 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getOne_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getOne_month.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
- <nb_visits>38</nb_visits>
- <nb_actions>45</nb_actions>
+ <nb_visits>39</nb_visits>
+ <nb_actions>46</nb_actions>
<visits_evolution>100%</visits_evolution>
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
<revenue_evolution>100%</revenue_evolution>
- <nb_pageviews>39</nb_pageviews>
- <revenue>170</revenue>
+ <nb_pageviews>40</nb_pageviews>
+ <revenue>175</revenue>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.getReferrerType_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.getReferrerType_month.xml
index a1e8fd0e9d..8131944987 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.getReferrerType_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.getReferrerType_month.xml
@@ -2,23 +2,24 @@
<result>
<row>
<label>Direct Entry</label>
- <nb_visits>34</nb_visits>
- <nb_actions>39</nb_actions>
+ <nb_visits>35</nb_visits>
+ <nb_actions>40</nb_actions>
<max_actions>3</max_actions>
<sum_visit_length>549</sum_visit_length>
- <bounce_count>30</bounce_count>
+ <bounce_count>31</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>30</nb_conversions>
- <nb_visits_converted>30</nb_visits_converted>
- <revenue>150</revenue>
+ <nb_conversions>31</nb_conversions>
+ <nb_visits_converted>31</nb_visits_converted>
+ <revenue>155</revenue>
</row>
</goals>
- <nb_conversions>30</nb_conversions>
- <revenue>150</revenue>
- <sum_daily_nb_uniq_visitors>32</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>1</sum_daily_nb_users>
+ <nb_conversions>31</nb_conversions>
+ <revenue>155</revenue>
+ <sum_daily_nb_uniq_visitors>33</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>2</sum_daily_nb_users>
<nb_visits_converted>0</nb_visits_converted>
+ <segment>referrerType==direct</segment>
</row>
<row>
<label>Websites</label>
@@ -38,6 +39,7 @@
<revenue>20</revenue>
<sum_daily_nb_uniq_visitors>4</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>1</sum_daily_nb_users>
+ <segment>referrerType==website</segment>
<subtable>
<row>
<label>example.com</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getConfiguration_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getConfiguration_month.xml
index 55471df8f7..06ad7df1f9 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getConfiguration_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getConfiguration_month.xml
@@ -64,7 +64,7 @@
<bounce_count>3</bounce_count>
<nb_visits_converted>3</nb_visits_converted>
<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>0</sum_daily_nb_users>
+ <sum_daily_nb_users>1</sum_daily_nb_users>
</row>
<row>
<label>Android / Android Browser / unknown</label>
@@ -111,6 +111,17 @@
<sum_daily_nb_users>0</sum_daily_nb_users>
</row>
<row>
+ <label>iOS / Unknown / unknown</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <max_actions>1</max_actions>
+ <sum_visit_length>0</sum_visit_length>
+ <bounce_count>1</bounce_count>
+ <nb_visits_converted>1</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ </row>
+ <row>
<label>GNU/Linux / Chrome / unknown</label>
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getResolution_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getResolution_month.xml
index 2dd3a3f0ff..d8f74a118c 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getResolution_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Resolution.getResolution_month.xml
@@ -2,14 +2,14 @@
<result>
<row>
<label>unknown</label>
- <nb_visits>36</nb_visits>
- <nb_actions>43</nb_actions>
+ <nb_visits>37</nb_visits>
+ <nb_actions>44</nb_actions>
<max_actions>3</max_actions>
<sum_visit_length>551</sum_visit_length>
- <bounce_count>31</bounce_count>
- <nb_visits_converted>32</nb_visits_converted>
- <sum_daily_nb_uniq_visitors>34</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>2</sum_daily_nb_users>
+ <bounce_count>32</bounce_count>
+ <nb_visits_converted>33</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>35</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>3</sum_daily_nb_users>
<segment>resolution==unknown</segment>
</row>
<row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCity_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCity_month.xml
index fa5433509b..4c6a424157 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCity_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCity_month.xml
@@ -17,7 +17,7 @@
<nb_conversions>27</nb_conversions>
<revenue>135</revenue>
<sum_daily_nb_uniq_visitors>29</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>2</sum_daily_nb_users>
+ <sum_daily_nb_users>3</sum_daily_nb_users>
<nb_visits_converted>0</nb_visits_converted>
<city_name>Unknown</city_name>
<city>xx</city>
@@ -84,6 +84,34 @@
<logo>plugins/UserCountry/images/flags/ca.png</logo>
</row>
<row>
+ <label>Mount Laurel, New Jersey, United States</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <max_actions>1</max_actions>
+ <sum_visit_length>0</sum_visit_length>
+ <bounce_count>1</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
+ </goals>
+ <nb_conversions>1</nb_conversions>
+ <revenue>5</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ <lat>39.957</lat>
+ <long>-74.916</long>
+ <segment>city==Mount+Laurel;regionCode==NJ;countryCode==us</segment>
+ <city_name>Mount Laurel</city_name>
+ <region>NJ</region>
+ <country>us</country>
+ <country_name>United States</country_name>
+ <region_name>New Jersey</region_name>
+ <logo>plugins/UserCountry/images/flags/us.png</logo>
+ </row>
+ <row>
<label>Seoul, Seoul-t&amp;#039;ukpyolsi, South Korea</label>
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getContinent_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getContinent_month.xml
index 054cf2e1d3..4d15ccdb89 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getContinent_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getContinent_month.xml
@@ -22,21 +22,21 @@
</row>
<row>
<label>North America</label>
- <nb_visits>11</nb_visits>
- <nb_actions>14</nb_actions>
+ <nb_visits>12</nb_visits>
+ <nb_actions>15</nb_actions>
<max_actions>3</max_actions>
<sum_visit_length>4</sum_visit_length>
- <bounce_count>9</bounce_count>
+ <bounce_count>10</bounce_count>
<goals>
<row idgoal='1'>
- <nb_conversions>11</nb_conversions>
- <nb_visits_converted>11</nb_visits_converted>
- <revenue>55</revenue>
+ <nb_conversions>12</nb_conversions>
+ <nb_visits_converted>12</nb_visits_converted>
+ <revenue>60</revenue>
</row>
</goals>
- <nb_conversions>11</nb_conversions>
- <revenue>55</revenue>
- <sum_daily_nb_uniq_visitors>9</sum_daily_nb_uniq_visitors>
+ <nb_conversions>12</nb_conversions>
+ <revenue>60</revenue>
+ <sum_daily_nb_uniq_visitors>10</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>2</sum_daily_nb_users>
<code>North America</code>
</row>
@@ -57,7 +57,7 @@
<nb_conversions>9</nb_conversions>
<revenue>45</revenue>
<sum_daily_nb_uniq_visitors>11</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>0</sum_daily_nb_users>
+ <sum_daily_nb_users>1</sum_daily_nb_users>
<nb_visits_converted>0</nb_visits_converted>
<code>Unknown</code>
</row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCountry_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCountry_month.xml
index 98deda9945..70da83f4e9 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCountry_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCountry_month.xml
@@ -25,6 +25,30 @@
<logoHeight>11</logoHeight>
</row>
<row>
+ <label>United States</label>
+ <nb_visits>11</nb_visits>
+ <nb_actions>14</nb_actions>
+ <max_actions>3</max_actions>
+ <sum_visit_length>4</sum_visit_length>
+ <bounce_count>9</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>11</nb_conversions>
+ <nb_visits_converted>11</nb_visits_converted>
+ <revenue>55</revenue>
+ </row>
+ </goals>
+ <nb_conversions>11</nb_conversions>
+ <revenue>55</revenue>
+ <sum_daily_nb_uniq_visitors>9</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>2</sum_daily_nb_users>
+ <code>us</code>
+ <logo>plugins/UserCountry/images/flags/us.png</logo>
+ <segment>countryCode==us</segment>
+ <logoWidth>16</logoWidth>
+ <logoHeight>11</logoHeight>
+ </row>
+ <row>
<label>Unknown</label>
<nb_visits>11</nb_visits>
<nb_actions>12</nb_actions>
@@ -41,7 +65,7 @@
<nb_conversions>9</nb_conversions>
<revenue>45</revenue>
<sum_daily_nb_uniq_visitors>11</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>0</sum_daily_nb_users>
+ <sum_daily_nb_users>1</sum_daily_nb_users>
<nb_visits_converted>0</nb_visits_converted>
<code>xx</code>
<logo>plugins/UserCountry/images/flags/xx.png</logo>
@@ -50,30 +74,6 @@
<logoHeight>11</logoHeight>
</row>
<row>
- <label>United States</label>
- <nb_visits>10</nb_visits>
- <nb_actions>13</nb_actions>
- <max_actions>3</max_actions>
- <sum_visit_length>4</sum_visit_length>
- <bounce_count>8</bounce_count>
- <goals>
- <row idgoal='1'>
- <nb_conversions>10</nb_conversions>
- <nb_visits_converted>10</nb_visits_converted>
- <revenue>50</revenue>
- </row>
- </goals>
- <nb_conversions>10</nb_conversions>
- <revenue>50</revenue>
- <sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>2</sum_daily_nb_users>
- <code>us</code>
- <logo>plugins/UserCountry/images/flags/us.png</logo>
- <segment>countryCode==us</segment>
- <logoWidth>16</logoWidth>
- <logoHeight>11</logoHeight>
- </row>
- <row>
<label>Brazil</label>
<nb_visits>3</nb_visits>
<nb_actions>3</nb_actions>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getRegion_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getRegion_month.xml
index bdcfaeca3c..b9f8ff9295 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getRegion_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getRegion_month.xml
@@ -17,7 +17,7 @@
<nb_conversions>27</nb_conversions>
<revenue>135</revenue>
<sum_daily_nb_uniq_visitors>29</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>2</sum_daily_nb_users>
+ <sum_daily_nb_users>3</sum_daily_nb_users>
<nb_visits_converted>0</nb_visits_converted>
<region>xx</region>
<country>xx</country>
@@ -51,6 +51,31 @@
<logo>plugins/UserCountry/images/flags/us.png</logo>
</row>
<row>
+ <label>New Jersey, United States</label>
+ <nb_visits>1</nb_visits>
+ <nb_actions>1</nb_actions>
+ <max_actions>1</max_actions>
+ <sum_visit_length>0</sum_visit_length>
+ <bounce_count>1</bounce_count>
+ <goals>
+ <row idgoal='1'>
+ <nb_conversions>1</nb_conversions>
+ <nb_visits_converted>1</nb_visits_converted>
+ <revenue>5</revenue>
+ </row>
+ </goals>
+ <nb_conversions>1</nb_conversions>
+ <revenue>5</revenue>
+ <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>regionCode==NJ;countryCode==us</segment>
+ <region>NJ</region>
+ <country>us</country>
+ <country_name>United States</country_name>
+ <region_name>New Jersey</region_name>
+ <logo>plugins/UserCountry/images/flags/us.png</logo>
+ </row>
+ <row>
<label>Nunavut, Canada</label>
<nb_visits>1</nb_visits>
<nb_actions>1</nb_actions>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguageCode_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguageCode_month.xml
index da22c13a83..029f2ea4a7 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguageCode_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguageCode_month.xml
@@ -2,14 +2,14 @@
<result>
<row>
<label>Unknown (xx)</label>
- <nb_visits>38</nb_visits>
- <nb_actions>45</nb_actions>
+ <nb_visits>39</nb_visits>
+ <nb_actions>46</nb_actions>
<max_actions>3</max_actions>
<sum_visit_length>551</sum_visit_length>
- <bounce_count>33</bounce_count>
- <nb_visits_converted>34</nb_visits_converted>
- <sum_daily_nb_uniq_visitors>36</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>2</sum_daily_nb_users>
+ <bounce_count>34</bounce_count>
+ <nb_visits_converted>35</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>37</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>3</sum_daily_nb_users>
<segment>languageCode==xx</segment>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguage_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguage_month.xml
index d2c34aab1a..5a86d88387 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguage_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserLanguage.getLanguage_month.xml
@@ -2,14 +2,14 @@
<result>
<row>
<label>Unknown</label>
- <nb_visits>38</nb_visits>
- <nb_actions>45</nb_actions>
+ <nb_visits>39</nb_visits>
+ <nb_actions>46</nb_actions>
<max_actions>3</max_actions>
<sum_visit_length>551</sum_visit_length>
- <bounce_count>33</bounce_count>
- <nb_visits_converted>34</nb_visits_converted>
- <sum_daily_nb_uniq_visitors>36</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>2</sum_daily_nb_users>
+ <bounce_count>34</bounce_count>
+ <nb_visits_converted>35</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>37</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_users>3</sum_daily_nb_users>
<segment>languageCode==xx</segment>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getByDayOfWeek_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getByDayOfWeek_month.xml
index b381de56d6..cc47ebdc6e 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getByDayOfWeek_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getByDayOfWeek_month.xml
@@ -2,13 +2,13 @@
<result>
<row>
<label>Monday</label>
- <nb_visits>1</nb_visits>
- <nb_uniq_visitors>1</nb_uniq_visitors>
- <nb_actions>1</nb_actions>
+ <nb_visits>2</nb_visits>
+ <nb_uniq_visitors>2</nb_uniq_visitors>
+ <nb_actions>2</nb_actions>
<nb_users>0</nb_users>
<sum_visit_length>0</sum_visit_length>
- <bounce_count>1</bounce_count>
- <nb_visits_converted>1</nb_visits_converted>
+ <bounce_count>2</bounce_count>
+ <nb_visits_converted>2</nb_visits_converted>
<day_of_week>1</day_of_week>
</row>
<row>
@@ -54,7 +54,7 @@
<nb_visits>11</nb_visits>
<nb_uniq_visitors>11</nb_uniq_visitors>
<nb_actions>14</nb_actions>
- <nb_users>0</nb_users>
+ <nb_users>1</nb_users>
<sum_visit_length>305</sum_visit_length>
<bounce_count>9</bounce_count>
<nb_visits_converted>9</nb_visits_converted>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerLocalTime_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerLocalTime_month.xml
index e4f045cd9f..46f45bc7b3 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerLocalTime_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerLocalTime_month.xml
@@ -146,13 +146,13 @@
</row>
<row>
<label>12h</label>
- <nb_visits>2</nb_visits>
- <nb_actions>2</nb_actions>
+ <nb_visits>3</nb_visits>
+ <nb_actions>3</nb_actions>
<max_actions>1</max_actions>
<sum_visit_length>0</sum_visit_length>
- <bounce_count>2</bounce_count>
- <nb_visits_converted>2</nb_visits_converted>
- <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
+ <bounce_count>3</bounce_count>
+ <nb_visits_converted>3</nb_visits_converted>
+ <sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
<segment>visitLocalHour==12</segment>
</row>
@@ -189,7 +189,7 @@
<bounce_count>1</bounce_count>
<nb_visits_converted>1</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>0</sum_daily_nb_users>
+ <sum_daily_nb_users>1</sum_daily_nb_users>
<segment>visitLocalHour==15</segment>
</row>
<row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerServerTime_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerServerTime_month.xml
index fcc08ecee4..09be75ee74 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerServerTime_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerServerTime_month.xml
@@ -191,23 +191,23 @@
</row>
<row>
<label>12h</label>
- <nb_visits>1</nb_visits>
- <nb_actions>1</nb_actions>
+ <nb_visits>2</nb_visits>
+ <nb_actions>2</nb_actions>
<max_actions>1</max_actions>
<sum_visit_length>0</sum_visit_length>
- <bounce_count>1</bounce_count>
+ <bounce_count>2</bounce_count>
<nb_visits_converted>0</nb_visits_converted>
- <sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+ <sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
<goals>
<row idgoal='1'>
- <nb_conversions>1</nb_conversions>
- <nb_visits_converted>1</nb_visits_converted>
- <revenue>5</revenue>
+ <nb_conversions>2</nb_conversions>
+ <nb_visits_converted>2</nb_visits_converted>
+ <revenue>10</revenue>
</row>
</goals>
- <nb_conversions>1</nb_conversions>
- <revenue>5</revenue>
+ <nb_conversions>2</nb_conversions>
+ <revenue>10</revenue>
<segment>visitServerHour==12</segment>
</row>
<row>
@@ -252,7 +252,7 @@
<bounce_count>1</bounce_count>
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <sum_daily_nb_users>0</sum_daily_nb_users>
+ <sum_daily_nb_users>1</sum_daily_nb_users>
<goals>
<row idgoal='1'>
<nb_conversions>1</nb_conversions>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_month.xml
index 43027f77b0..c39484f83d 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_month.xml
@@ -2,7 +2,7 @@
<result>
<row>
<label>New visits</label>
- <nb_visits>35</nb_visits>
+ <nb_visits>36</nb_visits>
</row>
<row>
<label>0 days</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_range.xml
index a879d261b3..adb58e2a56 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_range.xml
@@ -2,7 +2,7 @@
<result>
<row>
<label>New visits</label>
- <nb_visits>39</nb_visits>
+ <nb_visits>40</nb_visits>
</row>
<row>
<label>0 days</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_month.xml
index 221a29c2b5..4eb8fddf65 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_month.xml
@@ -2,7 +2,7 @@
<result>
<row>
<label>1 visit</label>
- <nb_visits>38</nb_visits>
+ <nb_visits>39</nb_visits>
<nb_visits_percentage>100%</nb_visits_percentage>
</row>
<row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_range.xml
index 11fd85a144..f02d54dcf5 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_range.xml
@@ -2,8 +2,8 @@
<result>
<row>
<label>1 visit</label>
- <nb_visits>44</nb_visits>
- <nb_visits_percentage>86%</nb_visits_percentage>
+ <nb_visits>45</nb_visits>
+ <nb_visits_percentage>87%</nb_visits_percentage>
</row>
<row>
<label>2 visits</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_month.xml
index 0ca3284b5b..174a8d90d0 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_month.xml
@@ -2,7 +2,7 @@
<result>
<row>
<label>1 page</label>
- <nb_visits>33</nb_visits>
+ <nb_visits>34</nb_visits>
</row>
<row>
<label>2 pages</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_range.xml
index 51ed7da2eb..d771a07bc9 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_range.xml
@@ -2,7 +2,7 @@
<result>
<row>
<label>1 page</label>
- <nb_visits>42</nb_visits>
+ <nb_visits>43</nb_visits>
</row>
<row>
<label>2 pages</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_month.xml
index f3e2effb18..5809c92de9 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_month.xml
@@ -2,7 +2,7 @@
<result>
<row>
<label>0-10s</label>
- <nb_visits>35</nb_visits>
+ <nb_visits>36</nb_visits>
</row>
<row>
<label>11-30s</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_range.xml
index b62b79979b..6f5a23aa2a 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_range.xml
@@ -2,7 +2,7 @@
<result>
<row>
<label>0-10s</label>
- <nb_visits>45</nb_visits>
+ <nb_visits>46</nb_visits>
</row>
<row>
<label>11-30s</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getActions_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getActions_month.xml
index 05473b60f6..0e7e4e3d09 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getActions_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getActions_month.xml
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8" ?>
-<result>45</result> \ No newline at end of file
+<result>46</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getBounceCount_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getBounceCount_month.xml
index 95aa700980..5c61a82137 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getBounceCount_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getBounceCount_month.xml
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8" ?>
-<result>33</result> \ No newline at end of file
+<result>34</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUniqueVisitors_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUniqueVisitors_month.xml
index 8af80c337f..51a0bb8472 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUniqueVisitors_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUniqueVisitors_month.xml
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8" ?>
-<result>36</result> \ No newline at end of file
+<result>37</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUsers_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUsers_month.xml
index 13002b2017..15ef03fb49 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUsers_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUsers_month.xml
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8" ?>
-<result>2</result> \ No newline at end of file
+<result>3</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisitsConverted_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisitsConverted_month.xml
index 5c61a82137..8e4b837a62 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisitsConverted_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisitsConverted_month.xml
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8" ?>
-<result>34</result> \ No newline at end of file
+<result>35</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisits_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisits_month.xml
index 962fbe983a..f24432d1a4 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisits_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisits_month.xml
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8" ?>
-<result>38</result> \ No newline at end of file
+<result>39</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.get_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.get_month.xml
index a71746a977..94dde51493 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.get_month.xml
@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8" ?>
<result>
- <nb_uniq_visitors>36</nb_uniq_visitors>
- <nb_users>2</nb_users>
- <nb_visits>38</nb_visits>
- <nb_actions>45</nb_actions>
- <nb_visits_converted>34</nb_visits_converted>
- <bounce_count>33</bounce_count>
+ <nb_uniq_visitors>37</nb_uniq_visitors>
+ <nb_users>3</nb_users>
+ <nb_visits>39</nb_visits>
+ <nb_actions>46</nb_actions>
+ <nb_visits_converted>35</nb_visits_converted>
+ <bounce_count>34</bounce_count>
<sum_visit_length>551</sum_visit_length>
<max_actions>3</max_actions>
<bounce_rate>87%</bounce_rate>
<nb_actions_per_visit>1.2</nb_actions_per_visit>
- <avg_time_on_site>15</avg_time_on_site>
+ <avg_time_on_site>14</avg_time_on_site>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml
index 4e4c5a220b..94b54bf27a 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml
@@ -3,11 +3,11 @@
<result date="2012-08">
<row>
<label>Piwik test</label>
- <nb_visits>38</nb_visits>
- <nb_actions>45</nb_actions>
- <nb_pageviews>39</nb_pageviews>
- <revenue>170</revenue>
- <nb_conversions>34</nb_conversions>
+ <nb_visits>39</nb_visits>
+ <nb_actions>46</nb_actions>
+ <nb_pageviews>40</nb_pageviews>
+ <revenue>175</revenue>
+ <nb_conversions>35</nb_conversions>
<visits_evolution>100%</visits_evolution>
<actions_evolution>100%</actions_evolution>
<pageviews_evolution>100%</pageviews_evolution>
@@ -59,8 +59,8 @@
<revenue>5</revenue>
<nb_conversions>1</nb_conversions>
<visits_evolution>-97.4%</visits_evolution>
- <actions_evolution>-77.8%</actions_evolution>
- <pageviews_evolution>-74.4%</pageviews_evolution>
+ <actions_evolution>-78.3%</actions_evolution>
+ <pageviews_evolution>-75%</pageviews_evolution>
<revenue_evolution>-97.1%</revenue_evolution>
<nb_conversions_evolution>-97.1%</nb_conversions_evolution>
<idsite>1</idsite>
diff --git a/tests/PHPUnit/System/expected/test_LabelFilter_keywords_html__Referrers.getSearchEngines_day.xml b/tests/PHPUnit/System/expected/test_LabelFilter_keywords_html__Referrers.getSearchEngines_day.xml
index 411d2a2eb9..086e95965f 100644
--- a/tests/PHPUnit/System/expected/test_LabelFilter_keywords_html__Referrers.getSearchEngines_day.xml
+++ b/tests/PHPUnit/System/expected/test_LabelFilter_keywords_html__Referrers.getSearchEngines_day.xml
@@ -10,6 +10,7 @@
<sum_visit_length>1441</sum_visit_length>
<bounce_count>0</bounce_count>
<nb_visits_converted>0</nb_visits_converted>
+ <segment>referrerName==Google;referrerType==search;referrerKeyword==%3C%3E%26%5C%22the+pdo+extension+is+required+for+this+adapter+but+the+extension+is+not+loaded</segment>
<url>http://google.com/search?q=%3C%3E%26%5C%22the+pdo+extension+is+required+for+this+adapter+but+the+extension+is+not+loaded</url>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_LabelFilter_titles__Actions.getPageTitles_day.xml b/tests/PHPUnit/System/expected/test_LabelFilter_titles__Actions.getPageTitles_day.xml
index afffc60a48..79f1fd371f 100644
--- a/tests/PHPUnit/System/expected/test_LabelFilter_titles__Actions.getPageTitles_day.xml
+++ b/tests/PHPUnit/System/expected/test_LabelFilter_titles__Actions.getPageTitles_day.xml
@@ -14,7 +14,7 @@
<entry_nb_actions>9</entry_nb_actions>
<entry_sum_visit_length>1441</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
- <avg_time_on_page>1116</avg_time_on_page>
+ <avg_time_on_page>279</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<avg_time_generation>0.626</avg_time_generation>
diff --git a/tests/PHPUnit/System/expected/test_NonUnicode__Actions.getPageTitles_day.xml b/tests/PHPUnit/System/expected/test_NonUnicode__Actions.getPageTitles_day.xml
index 008d9e87fb..8b29b241d3 100644
--- a/tests/PHPUnit/System/expected/test_NonUnicode__Actions.getPageTitles_day.xml
+++ b/tests/PHPUnit/System/expected/test_NonUnicode__Actions.getPageTitles_day.xml
@@ -9,7 +9,7 @@
<nb_hits_following_search>2</nb_hits_following_search>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__DevicesDetection.getBrand_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__DevicesDetection.getBrand_day.xml
index 8b154c9334..4cf37854e3 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__DevicesDetection.getBrand_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__DevicesDetection.getBrand_day.xml
@@ -10,5 +10,6 @@
<bounce_count>1</bounce_count>
<nb_visits_converted>2</nb_visits_converted>
<logo>plugins/DevicesDetection/images/brand/Unknown.ico</logo>
+ <segment>deviceBrand==Unknown</segment>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Referrers.getReferrerType_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Referrers.getReferrerType_day.xml
index deb88da799..fd2de07373 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Referrers.getReferrerType_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits__Referrers.getReferrerType_day.xml
@@ -17,6 +17,7 @@
</goals>
<nb_conversions>1</nb_conversions>
<revenue>1</revenue>
+ <segment>referrerType==search</segment>
<subtable>
<row>
<label>purchase</label>
@@ -55,6 +56,7 @@
</goals>
<nb_conversions>1</nb_conversions>
<revenue>42</revenue>
+ <segment>referrerType==website</segment>
<subtable>
<row>
<label>referrer.com</label>
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__DevicesDetection.getBrand_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__DevicesDetection.getBrand_day.xml
index 8ff05bc8ff..a6ccba6e74 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__DevicesDetection.getBrand_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__DevicesDetection.getBrand_day.xml
@@ -11,5 +11,6 @@
<bounce_count>1</bounce_count>
<nb_visits_converted>2</nb_visits_converted>
<logo>plugins/DevicesDetection/images/brand/Unknown.ico</logo>
+ <segment>deviceBrand==Unknown</segment>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Referrers.getReferrerType_day.xml b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Referrers.getReferrerType_day.xml
index 2225e62fa0..e4b6ce2e00 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Referrers.getReferrerType_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitorTwoVisits_withCookieSupport__Referrers.getReferrerType_day.xml
@@ -18,6 +18,7 @@
</goals>
<nb_conversions>1</nb_conversions>
<revenue>1</revenue>
+ <segment>referrerType==search</segment>
<subtable>
<row>
<label>purchase</label>
@@ -58,6 +59,7 @@
</goals>
<nb_conversions>1</nb_conversions>
<revenue>42</revenue>
+ <segment>referrerType==website</segment>
<subtable>
<row>
<label>referrer.com</label>
diff --git a/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
index e00992d683..8d118edb9a 100644
--- a/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_OneVisitor_NoKeywordSpecified__Live.getLastVisitsDetails_day.xml
@@ -113,8 +113,8 @@
<pageIdAction>2</pageIdAction>
<pageId>1</pageId>
- <timeSpent>1080</timeSpent>
- <timeSpentPretty>18 min 0s</timeSpentPretty>
+ <timeSpent>1084</timeSpent>
+ <timeSpentPretty>18 min 4s</timeSpentPretty>
<icon />
</row>
diff --git a/tests/PHPUnit/System/expected/test_RowEvolution_LabelReservedCharactersHierarchical__API.getRowEvolution_day.xml b/tests/PHPUnit/System/expected/test_RowEvolution_LabelReservedCharactersHierarchical__API.getRowEvolution_day.xml
index 3b8bde9065..34447b169a 100644
--- a/tests/PHPUnit/System/expected/test_RowEvolution_LabelReservedCharactersHierarchical__API.getRowEvolution_day.xml
+++ b/tests/PHPUnit/System/expected/test_RowEvolution_LabelReservedCharactersHierarchical__API.getRowEvolution_day.xml
@@ -249,7 +249,7 @@
<change>-100%</change>
</nb_visits_1>
<nb_visits_2>
- <name>Google - justice )(&amp;^#%$ not &amp;#039;" corruption! (Visits)</name>
+ <name>Google - justice )(&amp;^#%$ not &amp;#039;&quot; corruption! (Visits)</name>
<min>0</min>
<max>1</max>
</nb_visits_2>
diff --git a/tests/PHPUnit/System/expected/test_RowEvolution_flatFilters__Referrers.getSearchEngines_month.xml b/tests/PHPUnit/System/expected/test_RowEvolution_flatFilters__Referrers.getSearchEngines_month.xml
index d97e75695c..a0555e1b4a 100644
--- a/tests/PHPUnit/System/expected/test_RowEvolution_flatFilters__Referrers.getSearchEngines_month.xml
+++ b/tests/PHPUnit/System/expected/test_RowEvolution_flatFilters__Referrers.getSearchEngines_month.xml
@@ -14,7 +14,7 @@
<logo>plugins/Referrers/images/searchEngines/google.com.png</logo>
</row>
<row>
- <label>Google - justice )(&amp;^#%$ not &amp;#039;" corruption!</label>
+ <label>Google - justice )(&amp;^#%$ not &amp;#039;&quot; corruption!</label>
<nb_visits>8</nb_visits>
<nb_actions>8</nb_actions>
<max_actions>1</max_actions>
diff --git a/tests/PHPUnit/System/expected/test_RowEvolution_multipleDates_lastNoData__API.getRowEvolution_month.xml b/tests/PHPUnit/System/expected/test_RowEvolution_multipleDates_lastNoData__API.getRowEvolution_month.xml
index 5730859763..10f622edda 100644
--- a/tests/PHPUnit/System/expected/test_RowEvolution_multipleDates_lastNoData__API.getRowEvolution_month.xml
+++ b/tests/PHPUnit/System/expected/test_RowEvolution_multipleDates_lastNoData__API.getRowEvolution_month.xml
@@ -33,7 +33,7 @@
<change>-100%</change>
</nb_visits_0>
<nb_visits_1>
- <name>justice )(&amp;^#%$ not &amp;#039;" corruption! (Visits)</name>
+ <name>justice )(&amp;^#%$ not &amp;#039;&quot; corruption! (Visits)</name>
<min>0</min>
<max>8</max>
<change>-100%</change>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_day.xml
index 4d574d9da9..3808a4f5b5 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_day.xml
@@ -75,7 +75,7 @@
<nb_visits>1</nb_visits>
<nb_hits>2</nb_hits>
<bounce_rate>0%</bounce_rate>
- <avg_time_on_page>00:03:36</avg_time_on_page>
+ <avg_time_on_page>00:01:48</avg_time_on_page>
<exit_rate>0%</exit_rate>
</row>
</result>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_month.xml b/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_month.xml
index 2c17c63452..f88c7b0657 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_month.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageTitles_firstSite_lastN__API.getProcessedReport_month.xml
@@ -75,7 +75,7 @@
<nb_visits>1</nb_visits>
<nb_hits>2</nb_hits>
<bounce_rate>0%</bounce_rate>
- <avg_time_on_page>00:03:36</avg_time_on_page>
+ <avg_time_on_page>00:01:48</avg_time_on_page>
<exit_rate>0%</exit_rate>
</row>
</result>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml
index e500a0aeef..9987853e36 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml
@@ -63,7 +63,7 @@
<nb_visits>1</nb_visits>
<nb_hits>2</nb_hits>
<bounce_rate>0%</bounce_rate>
- <avg_time_on_page>00:03:36</avg_time_on_page>
+ <avg_time_on_page>00:01:48</avg_time_on_page>
<exit_rate>0%</exit_rate>
</row>
</result>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_month.xml b/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_month.xml
index 0db09dbb26..062f55e0fd 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_month.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_month.xml
@@ -63,7 +63,7 @@
<nb_visits>1</nb_visits>
<nb_hits>2</nb_hits>
<bounce_rate>0%</bounce_rate>
- <avg_time_on_page>00:03:36</avg_time_on_page>
+ <avg_time_on_page>00:01:48</avg_time_on_page>
<exit_rate>0%</exit_rate>
</row>
</result>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitlesFollowingSiteSearch_day.xml b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitlesFollowingSiteSearch_day.xml
index 7ea5167dfd..fe61ab5004 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitlesFollowingSiteSearch_day.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitlesFollowingSiteSearch_day.xml
@@ -20,7 +20,7 @@
<nb_hits>2</nb_hits>
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitlesFollowingSiteSearch_month.xml b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitlesFollowingSiteSearch_month.xml
index 86ae401b60..e49e07c8a2 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitlesFollowingSiteSearch_month.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitlesFollowingSiteSearch_month.xml
@@ -20,7 +20,7 @@
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitles_day.xml b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitles_day.xml
index 9dc49472a7..5bc8b63f86 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitles_day.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitles_day.xml
@@ -32,7 +32,7 @@
<nb_hits>2</nb_hits>
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitles_month.xml b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitles_month.xml
index d9462f0f36..c4d37d733e 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitles_month.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageTitles_month.xml
@@ -32,7 +32,7 @@
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrlsFollowingSiteSearch_day.xml b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrlsFollowingSiteSearch_day.xml
index 74ece58337..8cdba28f3b 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrlsFollowingSiteSearch_day.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrlsFollowingSiteSearch_day.xml
@@ -21,7 +21,7 @@
<nb_hits>2</nb_hits>
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>http://example.org/index.htm?random=PAGEVIEW, NOT SEARCH&amp;mykwd=&amp;IS_FOLLOWING_SEARCH ONCE</url>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrlsFollowingSiteSearch_month.xml b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrlsFollowingSiteSearch_month.xml
index 1c66040802..2dda15648d 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrlsFollowingSiteSearch_month.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrlsFollowingSiteSearch_month.xml
@@ -21,7 +21,7 @@
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>http://example.org/index.htm?random=PAGEVIEW, NOT SEARCH&amp;mykwd=&amp;IS_FOLLOWING_SEARCH ONCE</url>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrls_day.xml b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrls_day.xml
index b001f1be29..2939c4da2b 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrls_day.xml
@@ -36,7 +36,7 @@
<nb_hits>2</nb_hits>
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>http://example.org/index.htm?random=PAGEVIEW, NOT SEARCH&amp;mykwd=&amp;IS_FOLLOWING_SEARCH ONCE</url>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrls_month.xml b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrls_month.xml
index ddae944352..5c9107743f 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrls_month.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getPageUrls_month.xml
@@ -36,7 +36,7 @@
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>http://example.org/index.htm?random=PAGEVIEW, NOT SEARCH&amp;mykwd=&amp;IS_FOLLOWING_SEARCH ONCE</url>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getSiteSearchKeywords_day.xml b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getSiteSearchKeywords_day.xml
index 4798b08e6e..4567e228f7 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getSiteSearchKeywords_day.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getSiteSearchKeywords_day.xml
@@ -8,7 +8,7 @@
<nb_hits>6</nb_hits>
<sum_time_spent>468</sum_time_spent>
<nb_pages_per_search>3</nb_pages_per_search>
- <avg_time_on_page>234</avg_time_on_page>
+ <avg_time_on_page>78</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
@@ -52,7 +52,7 @@
<nb_hits>2</nb_hits>
<sum_time_spent>54</sum_time_spent>
<nb_pages_per_search>2</nb_pages_per_search>
- <avg_time_on_page>54</avg_time_on_page>
+ <avg_time_on_page>27</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getSiteSearchKeywords_month.xml b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getSiteSearchKeywords_month.xml
index 5b6e7c4828..26e6e57fdf 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getSiteSearchKeywords_month.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_AllSites__Actions.getSiteSearchKeywords_month.xml
@@ -18,7 +18,7 @@
<nb_hits>6</nb_hits>
<sum_time_spent>468</sum_time_spent>
<nb_pages_per_search>3</nb_pages_per_search>
- <avg_time_on_page>234</avg_time_on_page>
+ <avg_time_on_page>78</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
@@ -50,7 +50,7 @@
<nb_hits>2</nb_hits>
<sum_time_spent>54</sum_time_spent>
<nb_pages_per_search>2</nb_pages_per_search>
- <avg_time_on_page>54</avg_time_on_page>
+ <avg_time_on_page>27</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitlesFollowingSiteSearch_day.xml b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitlesFollowingSiteSearch_day.xml
index 66f8e8a41d..b28a8b9c15 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitlesFollowingSiteSearch_day.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitlesFollowingSiteSearch_day.xml
@@ -18,7 +18,7 @@
<nb_hits>2</nb_hits>
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitlesFollowingSiteSearch_month.xml b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitlesFollowingSiteSearch_month.xml
index 450ab9b87a..6bcdb7bac8 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitlesFollowingSiteSearch_month.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitlesFollowingSiteSearch_month.xml
@@ -18,7 +18,7 @@
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitles_day.xml b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitles_day.xml
index 200b1c3565..68d4794fb7 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitles_day.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitles_day.xml
@@ -30,7 +30,7 @@
<nb_hits>2</nb_hits>
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitles_month.xml b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitles_month.xml
index 3adcd2fca8..5b7c76e160 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitles_month.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageTitles_month.xml
@@ -30,7 +30,7 @@
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrlsFollowingSiteSearch_day.xml b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrlsFollowingSiteSearch_day.xml
index 3fbf138c64..be73f3d714 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrlsFollowingSiteSearch_day.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrlsFollowingSiteSearch_day.xml
@@ -19,7 +19,7 @@
<nb_hits>2</nb_hits>
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>http://example.org/index.htm?random=PAGEVIEW, NOT SEARCH&amp;mykwd=&amp;IS_FOLLOWING_SEARCH ONCE</url>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrlsFollowingSiteSearch_month.xml b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrlsFollowingSiteSearch_month.xml
index 77a97cfa0b..336ef8382f 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrlsFollowingSiteSearch_month.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrlsFollowingSiteSearch_month.xml
@@ -19,7 +19,7 @@
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>http://example.org/index.htm?random=PAGEVIEW, NOT SEARCH&amp;mykwd=&amp;IS_FOLLOWING_SEARCH ONCE</url>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrls_day.xml b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrls_day.xml
index 5617717b0d..0c49416b27 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrls_day.xml
@@ -34,7 +34,7 @@
<nb_hits>2</nb_hits>
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>http://example.org/index.htm?random=PAGEVIEW, NOT SEARCH&amp;mykwd=&amp;IS_FOLLOWING_SEARCH ONCE</url>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrls_month.xml b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrls_month.xml
index 12b4aea3ad..cd21527e10 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrls_month.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getPageUrls_month.xml
@@ -34,7 +34,7 @@
<sum_time_spent>216</sum_time_spent>
<nb_hits_following_search>1</nb_hits_following_search>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
- <avg_time_on_page>216</avg_time_on_page>
+ <avg_time_on_page>108</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>http://example.org/index.htm?random=PAGEVIEW, NOT SEARCH&amp;mykwd=&amp;IS_FOLLOWING_SEARCH ONCE</url>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getSiteSearchKeywords_day.xml b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getSiteSearchKeywords_day.xml
index 588feafeea..7059d2638a 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getSiteSearchKeywords_day.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getSiteSearchKeywords_day.xml
@@ -6,7 +6,7 @@
<nb_hits>6</nb_hits>
<sum_time_spent>468</sum_time_spent>
<nb_pages_per_search>3</nb_pages_per_search>
- <avg_time_on_page>234</avg_time_on_page>
+ <avg_time_on_page>78</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getSiteSearchKeywords_month.xml b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getSiteSearchKeywords_month.xml
index 3e1015bd31..6cd43051cb 100644
--- a/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getSiteSearchKeywords_month.xml
+++ b/tests/PHPUnit/System/expected/test_SiteSearch_NotLastNPeriods__Actions.getSiteSearchKeywords_month.xml
@@ -16,7 +16,7 @@
<nb_hits>6</nb_hits>
<sum_time_spent>468</sum_time_spent>
<nb_pages_per_search>3</nb_pages_per_search>
- <avg_time_on_page>234</avg_time_on_page>
+ <avg_time_on_page>78</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
@@ -48,7 +48,7 @@
<nb_hits>2</nb_hits>
<sum_time_spent>54</sum_time_spent>
<nb_pages_per_search>2</nb_pages_per_search>
- <avg_time_on_page>54</avg_time_on_page>
+ <avg_time_on_page>27</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml
index a5ea296b53..207e2159fc 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_Actions.getPageUrls_firstSite_lastN__API.getProcessedReport_day.xml
@@ -89,7 +89,7 @@
<nb_visits>1</nb_visits>
<nb_hits>2</nb_hits>
<bounce_rate>0%</bounce_rate>
- <avg_time_on_page>00:06:00</avg_time_on_page>
+ <avg_time_on_page>00:03:00</avg_time_on_page>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.31s</avg_time_generation>
</row>
@@ -118,7 +118,7 @@
<nb_visits>1</nb_visits>
<nb_hits>2</nb_hits>
<bounce_rate>0%</bounce_rate>
- <avg_time_on_page>00:06:00</avg_time_on_page>
+ <avg_time_on_page>00:03:00</avg_time_on_page>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.31s</avg_time_generation>
</row>
@@ -147,7 +147,7 @@
<nb_visits>1</nb_visits>
<nb_hits>2</nb_hits>
<bounce_rate>0%</bounce_rate>
- <avg_time_on_page>00:06:00</avg_time_on_page>
+ <avg_time_on_page>00:03:00</avg_time_on_page>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.31s</avg_time_generation>
</row>
@@ -176,7 +176,7 @@
<nb_visits>1</nb_visits>
<nb_hits>2</nb_hits>
<bounce_rate>0%</bounce_rate>
- <avg_time_on_page>00:06:00</avg_time_on_page>
+ <avg_time_on_page>00:03:00</avg_time_on_page>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.31s</avg_time_generation>
</row>
@@ -205,7 +205,7 @@
<nb_visits>1</nb_visits>
<nb_hits>2</nb_hits>
<bounce_rate>0%</bounce_rate>
- <avg_time_on_page>00:06:00</avg_time_on_page>
+ <avg_time_on_page>00:03:00</avg_time_on_page>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.31s</avg_time_generation>
</row>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_day.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_day.xml
index c67d91399b..57f0b1452f 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_day.xml
@@ -99,7 +99,7 @@
<max_time_generation>0.452</max_time_generation>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
@@ -155,7 +155,7 @@
<max_time_generation>0.452</max_time_generation>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
@@ -211,7 +211,7 @@
<max_time_generation>0.452</max_time_generation>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
@@ -267,7 +267,7 @@
<max_time_generation>0.452</max_time_generation>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
@@ -323,7 +323,7 @@
<max_time_generation>0.452</max_time_generation>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_month.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_month.xml
index 08d1c90f9a..de92713eae 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_month.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_month.xml
@@ -51,7 +51,7 @@
<exit_nb_visits>8</exit_nb_visits>
<sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>8</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_week.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_week.xml
index fc85313690..e7008c40ff 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_week.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_week.xml
@@ -97,7 +97,7 @@
<exit_nb_visits>6</exit_nb_visits>
<sum_daily_nb_uniq_visitors>6</sum_daily_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>6</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
@@ -138,7 +138,7 @@
<exit_nb_visits>2</exit_nb_visits>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>2</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_year.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_year.xml
index 0d0f6aaca8..9cb3a82c02 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_year.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays__Actions.getPageUrls_year.xml
@@ -51,7 +51,7 @@
<exit_nb_visits>8</exit_nb_visits>
<sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>8</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_day.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_day.xml
index 4087b624e2..f7e7161700 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_day.xml
@@ -98,7 +98,7 @@
<max_time_generation>0.452</max_time_generation>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
@@ -154,7 +154,7 @@
<max_time_generation>0.452</max_time_generation>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
@@ -210,7 +210,7 @@
<max_time_generation>0.452</max_time_generation>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
@@ -266,7 +266,7 @@
<max_time_generation>0.452</max_time_generation>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
@@ -322,7 +322,7 @@
<max_time_generation>0.452</max_time_generation>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_month.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_month.xml
index 6e13a1e872..e68d67ec34 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_month.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_month.xml
@@ -50,7 +50,7 @@
<exit_nb_visits>8</exit_nb_visits>
<sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>8</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_week.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_week.xml
index 8366107a19..6f28680dc3 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_week.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_week.xml
@@ -96,7 +96,7 @@
<exit_nb_visits>6</exit_nb_visits>
<sum_daily_nb_uniq_visitors>6</sum_daily_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>6</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
@@ -137,7 +137,7 @@
<exit_nb_visits>2</exit_nb_visits>
<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>2</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_year.xml b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_year.xml
index fb02cf8629..266832e590 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_year.xml
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_idSiteOne___Actions.getPageUrls_year.xml
@@ -50,7 +50,7 @@
<exit_nb_visits>8</exit_nb_visits>
<sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>8</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<avg_time_generation>0.313</avg_time_generation>
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_csv__ScheduledReports.generateReport_month.original.csv b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_csv__ScheduledReports.generateReport_month.original.csv
index f0e58ae957..94a3e0f6fb 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_csv__ScheduledReports.generateReport_month.original.csv
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_csv__ScheduledReports.generateReport_month.original.csv
@@ -236,7 +236,7 @@ Page URLs
label,nb_visits,nb_hits,bounce_rate,avg_time_on_page,exit_rate,avg_time_generation
/index.htm,9,9,11%,00:05:20,11%,0.3s
Page URL not defined,9,17,0%,00:00:00,0%,0.22s
-/thankyou,8,16,0%,00:06:00,100%,0.31s
+/thankyou,8,16,0%,00:03:00,100%,0.31s
/products,1,1,100%,00:00:00,100%,0.15s
Entry pages
diff --git a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html
index fe254e0793..95c67bf1c7 100644
--- a/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html
+++ b/tests/PHPUnit/System/expected/test_TwoVisitors_twoWebsites_differentDays_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_month.original.html
@@ -4099,7 +4099,7 @@
8
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 00:06:00
+ 00:03:00
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
0%
diff --git a/tests/PHPUnit/System/expected/test_UrlNormalization_pagesSegmentedRef__Actions.getPageUrls_day.xml b/tests/PHPUnit/System/expected/test_UrlNormalization_pagesSegmentedRef__Actions.getPageUrls_day.xml
index 667ec31507..275f1a4987 100644
--- a/tests/PHPUnit/System/expected/test_UrlNormalization_pagesSegmentedRef__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/System/expected/test_UrlNormalization_pagesSegmentedRef__Actions.getPageUrls_day.xml
@@ -10,7 +10,7 @@
<entry_sum_visit_length>2161</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>630</avg_time_on_page>
+ <avg_time_on_page>420</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>25%</exit_rate>
<subtable>
@@ -25,7 +25,7 @@
<entry_nb_actions>8</entry_nb_actions>
<entry_sum_visit_length>2161</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
- <avg_time_on_page>1080</avg_time_on_page>
+ <avg_time_on_page>540</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>http://example.org/foo/bar.html</url>
@@ -36,7 +36,7 @@
<nb_uniq_visitors>1</nb_uniq_visitors>
<nb_hits>2</nb_hits>
<sum_time_spent>720</sum_time_spent>
- <avg_time_on_page>720</avg_time_on_page>
+ <avg_time_on_page>360</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>https://www.example.org/foo/bar2.html</url>
diff --git a/tests/PHPUnit/System/expected/test_UrlNormalization_pagesSegmented__Actions.getPageUrls_day.xml b/tests/PHPUnit/System/expected/test_UrlNormalization_pagesSegmented__Actions.getPageUrls_day.xml
index 2d5f40e9cb..1dd8c3190c 100644
--- a/tests/PHPUnit/System/expected/test_UrlNormalization_pagesSegmented__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/System/expected/test_UrlNormalization_pagesSegmented__Actions.getPageUrls_day.xml
@@ -5,7 +5,7 @@
<nb_visits>1</nb_visits>
<nb_hits>2</nb_hits>
<sum_time_spent>360</sum_time_spent>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<subtable>
@@ -15,7 +15,7 @@
<nb_uniq_visitors>1</nb_uniq_visitors>
<nb_hits>2</nb_hits>
<sum_time_spent>360</sum_time_spent>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>https://www.example.org/foo/bar2.html</url>
diff --git a/tests/PHPUnit/System/expected/test_UrlNormalization_titles__Actions.getPageTitles_day.xml b/tests/PHPUnit/System/expected/test_UrlNormalization_titles__Actions.getPageTitles_day.xml
index 0549176cb6..504018b6cd 100644
--- a/tests/PHPUnit/System/expected/test_UrlNormalization_titles__Actions.getPageTitles_day.xml
+++ b/tests/PHPUnit/System/expected/test_UrlNormalization_titles__Actions.getPageTitles_day.xml
@@ -89,7 +89,7 @@
<sum_time_spent>720</sum_time_spent>
<exit_nb_uniq_visitors>1</exit_nb_uniq_visitors>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>720</avg_time_on_page>
+ <avg_time_on_page>360</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
</row>
diff --git a/tests/PHPUnit/System/expected/test_UrlNormalization_urls__Actions.getPageUrls_day.xml b/tests/PHPUnit/System/expected/test_UrlNormalization_urls__Actions.getPageUrls_day.xml
index 667ec31507..275f1a4987 100644
--- a/tests/PHPUnit/System/expected/test_UrlNormalization_urls__Actions.getPageUrls_day.xml
+++ b/tests/PHPUnit/System/expected/test_UrlNormalization_urls__Actions.getPageUrls_day.xml
@@ -10,7 +10,7 @@
<entry_sum_visit_length>2161</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>630</avg_time_on_page>
+ <avg_time_on_page>420</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>25%</exit_rate>
<subtable>
@@ -25,7 +25,7 @@
<entry_nb_actions>8</entry_nb_actions>
<entry_sum_visit_length>2161</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
- <avg_time_on_page>1080</avg_time_on_page>
+ <avg_time_on_page>540</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>http://example.org/foo/bar.html</url>
@@ -36,7 +36,7 @@
<nb_uniq_visitors>1</nb_uniq_visitors>
<nb_hits>2</nb_hits>
<sum_time_spent>720</sum_time_spent>
- <avg_time_on_page>720</avg_time_on_page>
+ <avg_time_on_page>360</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>0%</exit_rate>
<url>https://www.example.org/foo/bar2.html</url>
diff --git a/tests/PHPUnit/System/expected/test_UserId_VisitorId__Live.getLastVisitsDetails_month.xml b/tests/PHPUnit/System/expected/test_UserId_VisitorId__Live.getLastVisitsDetails_month.xml
index b83a3d071d..ed2500e125 100644
--- a/tests/PHPUnit/System/expected/test_UserId_VisitorId__Live.getLastVisitsDetails_month.xml
+++ b/tests/PHPUnit/System/expected/test_UserId_VisitorId__Live.getLastVisitsDetails_month.xml
@@ -154,8 +154,8 @@
<pageIdAction>10</pageIdAction>
<serverTimePretty>Mar 6, 2010 16:28:33</serverTimePretty>
<pageId>9</pageId>
- <timeSpent>720</timeSpent>
- <timeSpentPretty>12 min 0s</timeSpentPretty>
+ <timeSpent>721</timeSpent>
+ <timeSpentPretty>12 min 1s</timeSpentPretty>
<icon />
<timestamp>1267892913</timestamp>
</row>
diff --git a/tests/PHPUnit/System/expected/test_VisitsInPast_InvalidateOldReportsWebsite2_OldReportsShouldAppear__Actions.getPageUrls_month.xml b/tests/PHPUnit/System/expected/test_VisitsInPast_InvalidateOldReportsWebsite2_OldReportsShouldAppear__Actions.getPageUrls_month.xml
index cd12df23f8..4201ab7dd3 100644
--- a/tests/PHPUnit/System/expected/test_VisitsInPast_InvalidateOldReportsWebsite2_OldReportsShouldAppear__Actions.getPageUrls_month.xml
+++ b/tests/PHPUnit/System/expected/test_VisitsInPast_InvalidateOldReportsWebsite2_OldReportsShouldAppear__Actions.getPageUrls_month.xml
@@ -11,7 +11,7 @@
<entry_sum_visit_length>361</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>120</avg_time_on_page>
+ <avg_time_on_page>72</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>33%</exit_rate>
<subtable>
@@ -50,7 +50,7 @@
<exit_nb_visits>1</exit_nb_visits>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<url>http://example.org/category/Pageyy</url>
diff --git a/tests/PHPUnit/System/expected/test_VisitsInPast_InvalidateOldReportsWebsite2_OldReportsShouldNotAppear__Actions.getPageUrls_month.xml b/tests/PHPUnit/System/expected/test_VisitsInPast_InvalidateOldReportsWebsite2_OldReportsShouldNotAppear__Actions.getPageUrls_month.xml
index cd12df23f8..4201ab7dd3 100644
--- a/tests/PHPUnit/System/expected/test_VisitsInPast_InvalidateOldReportsWebsite2_OldReportsShouldNotAppear__Actions.getPageUrls_month.xml
+++ b/tests/PHPUnit/System/expected/test_VisitsInPast_InvalidateOldReportsWebsite2_OldReportsShouldNotAppear__Actions.getPageUrls_month.xml
@@ -11,7 +11,7 @@
<entry_sum_visit_length>361</entry_sum_visit_length>
<entry_bounce_count>0</entry_bounce_count>
<exit_nb_visits>1</exit_nb_visits>
- <avg_time_on_page>120</avg_time_on_page>
+ <avg_time_on_page>72</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>33%</exit_rate>
<subtable>
@@ -50,7 +50,7 @@
<exit_nb_visits>1</exit_nb_visits>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
- <avg_time_on_page>360</avg_time_on_page>
+ <avg_time_on_page>180</avg_time_on_page>
<bounce_rate>0%</bounce_rate>
<exit_rate>100%</exit_rate>
<url>http://example.org/category/Pageyy</url>
diff --git a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
index 1a9ff120e6..9ba6330564 100644
--- a/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
+++ b/tests/PHPUnit/System/expected/test_apiGetReportMetadata__API.getSegmentsMetadata.xml
@@ -67,13 +67,6 @@
<permission>1</permission>
</row>
<row>
- <type>metric</type>
- <category>Actions</category>
- <name>Action Type</name>
- <segment>actionType</segment>
- <acceptedValues>A type of action, such as: pageviews, contents, sitesearches, events, outlinks, downloads</acceptedValues>
- </row>
- <row>
<type>dimension</type>
<category>Visit Location</category>
<name>City</name>
@@ -147,6 +140,13 @@
<row>
<type>dimension</type>
<category>Visit</category>
+ <name>Device brand</name>
+ <segment>deviceBrand</segment>
+ <acceptedValues>3Q, Acer, Ainol, Airness, Alcatel, Allview, Altech UEC, Arnova, Amazon, Amoi, Apple, Archos, ARRIS, Airties, Asus, Avvio, Audiovox, Axxion, BBK, Becker, Bird, Beetel, Bmobile, Barnes &amp; Noble, BangOlufsen, BenQ, BenQ-Siemens, Blu, Boway, bq, Brondi, Bush, CUBOT, Carrefour, Captiva, Casio, Cat, Celkon, ConCorde, Changhong, Cherry Mobile, Cricket, Crosscall, Compal, CnM, Crius Mea, CreNova, Capitel, Compaq, Coolpad, Cowon, Cube, Coby Kyros, Danew, Datang, Denver, Desay, Dbtel, DoCoMo, Dicam, Dell, DMM, Doogee, Doov, Dopod, Dune HD, E-Boda, EBEST, Ericsson, ECS, Ezio, Elephone, Easypix, Energy Sistem, Ericy, Eton, eTouch, Evertek, Ezze, Fly, Foxconn, Fujitsu, Garmin-Asus, Gateway, Gemini, Gionee, Gigabyte, Gigaset, GOCLEVER, Goly, Google, Gradiente, Grundig, Haier, Hasee, Hisense, Hi-Level, Hosin, HP, HTC, Huawei, Humax, Hyrican, Hyundai, Ikea, iBall, i-Joy, iBerry, iKoMo, i-mate, iOcean, Infinix, Innostream, Inkti, Intex, i-mobile, INQ, Intek, Inverto, iTel, Jiayu, Jolla, Karbonn, KDDI, Kingsun, Konka, Komu, Koobee, K-Touch, KT-Tech, KOPO, Koridy, Kumai, Kyocera, Kazam, Lava, Lanix, LCT, Lenovo, Lenco, Le Pan, LG, Lingwin, Loewe, Logicom, Lexibook, Majestic, Manta Multimedia, Mobistel, Mecer, Medion, MEEG, Meizu, Metz, MEU, MicroMax, Mediacom, MediaTek, Mio, Mpman, Mofut, Motorola, Microsoft, MSI, Memup, Mitsubishi, MLLED, M.T.T., MyPhone, NEC, Netgear, NGM, Nintendo, Noain, Nokia, Nomi, Nikon, Newgen, Nexian, NextBook, Onda, OnePlus, OPPO, Orange, O2, Ouki, OUYA, Opsson, Panasonic, PEAQ, Philips, Polaroid, Palm, phoneOne, Pantech, Point of View, PolyPad, Pomp, Positivo, Prestigio, ProScan, PULID, Qilive, Qtek, QMobile, Quechua, Overmax, Oysters, Ramos, RCA Tablets, Readboy, Rikomagic, RIM, Roku, Rover, Samsung, Sega, Sony Ericsson, Sencor, Softbank, SFR, Sagem, Sharp, Siemens, Sendo, Skyworth, Smartfren, Sony, Spice, SuperSonic, Selevision, Sanyo, Symphony, Smart, Star, Storex, Stonex, SunVan, Sumvision, Tesla, TCL, Telit, ThL, TiPhone, Tecno Mobile, Tesco, TIANYU, Telefunken, Telenor, T-Mobile, Thomson, Tolino, Toplux, Toshiba, TechnoTrend, Trevi, Tunisie Telecom, Turbo-X, TVC, TechniSat, teXet, Unowhy, Uniscope, UTStarcom, Vastking, Videocon, Vertu, Vitelcom, VK Mobile, ViewSonic, Vestel, Vivo, Voto, Voxtel, Vodafone, Vizio, Videoweb, Walton, Web TV, WellcoM, Wexler, Wiko, Wolder, Wonu, Woxter, Xiaomi, Xolo, Unknown, Yarvik, Yuandao, Yusun, Ytone, Zeemi, Zonda, Zopo, ZTE</acceptedValues>
+ </row>
+ <row>
+ <type>dimension</type>
+ <category>Visit</category>
<name>Device type</name>
<segment>deviceType</segment>
<acceptedValues>desktop, smartphone, tablet, feature phone, console, tv, car browser, smart display, camera, portable media player, phablet</acceptedValues>
@@ -222,7 +222,7 @@
<category>Visit</category>
<name>Visit ID</name>
<segment>visitId</segment>
- <acceptedValues>Any integer. </acceptedValues>
+ <acceptedValues>Any integer.</acceptedValues>
<permission>1</permission>
</row>
<row>
@@ -483,6 +483,13 @@
<row>
<type>dimension</type>
<category>Actions</category>
+ <name>Action Type</name>
+ <segment>actionType</segment>
+ <acceptedValues>A type of action, such as: pageviews, contents, sitesearches, events, outlinks, downloads</acceptedValues>
+ </row>
+ <row>
+ <type>dimension</type>
+ <category>Actions</category>
<name>Action URL</name>
<segment>actionUrl</segment>
<unionOfSegments>
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
index f6d30fd9ba..5b19eea90f 100755
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_LiveEcommerceStatusOrdered__Live.getLastVisitsDetails_day.xml
@@ -226,8 +226,8 @@
<customVariablePageValue5>Category TWO LEFT in cart</customVariablePageValue5>
</row>
</customVariables>
- <timeSpent>360</timeSpent>
- <timeSpentPretty>6 min 0s</timeSpentPretty>
+ <timeSpent>361</timeSpent>
+ <timeSpentPretty>6 min 1s</timeSpentPretty>
<icon />
</row>
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
index 730c0fc1a4..d391947a56 100755
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems__Live.getLastVisitsDetails_day.xml
@@ -87,8 +87,8 @@
<customVariablePageValue5>Category TWO LEFT in cart</customVariablePageValue5>
</row>
</customVariables>
- <timeSpent>360</timeSpent>
- <timeSpentPretty>6 min 0s</timeSpentPretty>
+ <timeSpent>361</timeSpent>
+ <timeSpentPretty>6 min 1s</timeSpentPretty>
<icon />
</row>
@@ -430,8 +430,8 @@
<customVariablePageValue5>Category TWO LEFT in cart</customVariablePageValue5>
</row>
</customVariables>
- <timeSpent>360</timeSpent>
- <timeSpentPretty>6 min 0s</timeSpentPretty>
+ <timeSpent>361</timeSpent>
+ <timeSpentPretty>6 min 1s</timeSpentPretty>
<icon />
</row>
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_csv__ScheduledReports.generateReport_week.original.csv b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_csv__ScheduledReports.generateReport_week.original.csv
index 50eeb9cc0e..c13ba3af27 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_csv__ScheduledReports.generateReport_week.original.csv
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_csv__ScheduledReports.generateReport_week.original.csv
@@ -224,7 +224,7 @@ Sunday,0,0%,0,00:00:00,0%,0
Page URLs
label,nb_visits,nb_hits,bounce_rate,avg_time_on_page,exit_rate
-/index.htm,4,16,0%,00:13:30,100%
+/index.htm,4,16,0%,00:03:23,100%
Entry pages
label,entry_nb_visits,entry_bounce_count,bounce_rate
@@ -236,7 +236,7 @@ label,nb_visits,exit_nb_visits,exit_rate
Page titles
label,nb_visits,nb_hits,bounce_rate,avg_time_on_page,exit_rate
- View product left in cart,3,9,0%,00:06:00,100%
+ View product left in cart,3,9,0%,00:02:00,100%
Another Product page,1,1,0%,00:06:00,0%
Another Product page with multiple categories,1,1,0%,00:00:00,100%
Another Product page with no category,1,1,0%,00:00:00,0%
diff --git a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html
index b2825b88ee..7f70fb99c1 100644
--- a/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html
+++ b/tests/PHPUnit/System/expected/test_ecommerceOrderWithItems_scheduled_report_in_html_tables_only__ScheduledReports.generateReport_week.original.html
@@ -3894,7 +3894,7 @@
4
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 00:13:30
+ 00:03:23
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
0%
@@ -4036,7 +4036,7 @@
3
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
- 00:06:00
+ 00:02:00
</td>
<td style="font-size: 13px; border-left: 1px solid rgb(217,217,217); padding: 5px 0 5px 5px;">
0%
diff --git a/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange__Referrers.getUrlsForSocial_range.xml b/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange__Referrers.getUrlsForSocial_range.xml
index 2b521b00a4..1ed4db4a84 100644
--- a/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange__Referrers.getUrlsForSocial_range.xml
+++ b/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange__Referrers.getUrlsForSocial_range.xml
@@ -10,6 +10,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Ffacebook.com%2Fwhatever</segment>
<url>http://facebook.com/whatever</url>
</row>
<row>
@@ -22,6 +23,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Ffb.me%2F%3Fq%3Dsdlfjs%26n%3Dslfjsd</segment>
<url>http://fb.me/?q=sdlfjs&amp;n=slfjsd</url>
</row>
<row>
@@ -34,6 +36,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Fwww.facebook.com%2Fanother%2Fpath</segment>
<url>http://www.facebook.com/another/path</url>
</row>
</result> \ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_noIdSubtable__Referrers.getUrlsForSocial_range.xml b/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_noIdSubtable__Referrers.getUrlsForSocial_range.xml
index 4649b78a18..d85c6fa7fa 100644
--- a/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_noIdSubtable__Referrers.getUrlsForSocial_range.xml
+++ b/tests/PHPUnit/System/expected/test_oneVisitor_oneWebsite_severalDays_DateRange_noIdSubtable__Referrers.getUrlsForSocial_range.xml
@@ -11,6 +11,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Ffacebook.com%2Fwhatever</segment>
<url>http://facebook.com/whatever</url>
</row>
<row>
@@ -23,6 +24,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Ffb.me%2F%3Fq%3Dsdlfjs%26n%3Dslfjsd</segment>
<url>http://fb.me/?q=sdlfjs&amp;n=slfjsd</url>
</row>
<row>
@@ -35,6 +37,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Fmixi.jp</segment>
<url>http://mixi.jp</url>
</row>
<row>
@@ -47,6 +50,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Fskyrock.com</segment>
<url>http://skyrock.com</url>
</row>
<row>
@@ -59,6 +63,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Ft.co%2Fid%2F%3Fy%3Ddsfs</segment>
<url>http://t.co/id/?y=dsfs</url>
</row>
<row>
@@ -71,6 +76,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Ftwitter.com%2Fwhatever2</segment>
<url>http://twitter.com/whatever2</url>
</row>
<row>
@@ -83,6 +89,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Fwww.facebook.com%2Fanother%2Fpath</segment>
<url>http://www.facebook.com/another/path</url>
</row>
<row>
@@ -95,6 +102,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Fwww.flickr.com</segment>
<url>http://www.flickr.com</url>
</row>
<row>
@@ -107,6 +115,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Fwww.twitter.com%2Findex%3Fa%3D2334</segment>
<url>http://www.twitter.com/index?a=2334</url>
</row>
<row>
@@ -119,6 +128,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Fxanga.com</segment>
<url>http://xanga.com</url>
</row>
</result>
@@ -133,6 +143,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Ft.co%2Fid%2F%3Fy%3Ddsfs</segment>
<url>http://t.co/id/?y=dsfs</url>
</row>
<row>
@@ -145,6 +156,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Ftwitter.com%2Fwhatever2</segment>
<url>http://twitter.com/whatever2</url>
</row>
<row>
@@ -157,6 +169,7 @@
<nb_visits_converted>0</nb_visits_converted>
<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
<sum_daily_nb_users>0</sum_daily_nb_users>
+ <segment>referrerUrl==http%3A%2F%2Fwww.facebook.com%2Fanother%2Fpath</segment>
<url>http://www.facebook.com/another/path</url>
</row>
</result>
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml
index ad8e93fed4..f15526855b 100644
--- a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI__Live.getVisitorProfile.xml
@@ -3,7 +3,11 @@
<totalVisits>2</totalVisits>
<totalVisitDuration>361</totalVisitDuration>
<totalActions>2</totalActions>
+ <totalEvents>0</totalEvents>
+ <totalOutlinks>1</totalOutlinks>
+ <totalDownloads>0</totalDownloads>
<totalSearches>0</totalSearches>
+ <totalPageViews>1</totalPageViews>
<totalPageViewsWithTiming>0</totalPageViewsWithTiming>
<totalGoalConversions>1</totalGoalConversions>
<totalConversionsByGoal>
@@ -34,14 +38,14 @@
<firstVisit>
- <daysAgo>0</daysAgo>
+
<referrerType>campaign</referrerType>
<referralSummary>Campaign: campaign name - yeah! - campaign keyword - right...</referralSummary>
</firstVisit>
<lastVisit>
- <daysAgo>0</daysAgo>
+
<referrerType>campaign</referrerType>
<referralSummary>Campaign: campaign name - yeah! - campaign keyword - right...</referralSummary>
</lastVisit>
diff --git a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getVisitorProfile.xml b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getVisitorProfile.xml
index ad8e93fed4..f15526855b 100644
--- a/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getVisitorProfile.xml
+++ b/tests/PHPUnit/System/expected/test_periodIsRange_dateIsLastN_MetadataAndNormalAPI_pagesegment__Live.getVisitorProfile.xml
@@ -3,7 +3,11 @@
<totalVisits>2</totalVisits>
<totalVisitDuration>361</totalVisitDuration>
<totalActions>2</totalActions>
+ <totalEvents>0</totalEvents>
+ <totalOutlinks>1</totalOutlinks>
+ <totalDownloads>0</totalDownloads>
<totalSearches>0</totalSearches>
+ <totalPageViews>1</totalPageViews>
<totalPageViewsWithTiming>0</totalPageViewsWithTiming>
<totalGoalConversions>1</totalGoalConversions>
<totalConversionsByGoal>
@@ -34,14 +38,14 @@
<firstVisit>
- <daysAgo>0</daysAgo>
+
<referrerType>campaign</referrerType>
<referralSummary>Campaign: campaign name - yeah! - campaign keyword - right...</referralSummary>
</firstVisit>
<lastVisit>
- <daysAgo>0</daysAgo>
+
<referrerType>campaign</referrerType>
<referralSummary>Campaign: campaign name - yeah! - campaign keyword - right...</referralSummary>
</lastVisit>
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting__Referrers.getReferrerType_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting__Referrers.getReferrerType_day.xml
index 1cecf66395..61f5ff50c5 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting__Referrers.getReferrerType_day.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting__Referrers.getReferrerType_day.xml
@@ -10,6 +10,7 @@
<sum_visit_length>0</sum_visit_length>
<bounce_count>55</bounce_count>
<nb_visits_converted>0</nb_visits_converted>
+ <segment>referrerType==direct</segment>
</row>
<row>
<label>Search Engines</label>
@@ -21,6 +22,7 @@
<sum_visit_length>0</sum_visit_length>
<bounce_count>12</bounce_count>
<nb_visits_converted>0</nb_visits_converted>
+ <segment>referrerType==search</segment>
<subtable>
<row>
<label>search term 2</label>
@@ -67,6 +69,7 @@
<sum_visit_length>0</sum_visit_length>
<bounce_count>8</bounce_count>
<nb_visits_converted>0</nb_visits_converted>
+ <segment>referrerType==website</segment>
<subtable>
<row>
<label>whatever0.com</label>
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Referrers.getReferrerType_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Referrers.getReferrerType_day.xml
index 4f21289bfd..d8646a11f5 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Referrers.getReferrerType_day.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting_flattened__Referrers.getReferrerType_day.xml
@@ -10,6 +10,7 @@
<sum_visit_length>0</sum_visit_length>
<bounce_count>55</bounce_count>
<nb_visits_converted>0</nb_visits_converted>
+ <segment>referrerType==direct</segment>
</row>
<row>
<label>Search Engines - Others</label>
diff --git a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Referrers.getReferrerType_day.xml b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Referrers.getReferrerType_day.xml
index 1cecf66395..61f5ff50c5 100644
--- a/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Referrers.getReferrerType_day.xml
+++ b/tests/PHPUnit/System/expected/test_reportLimiting_rankingQuery__Referrers.getReferrerType_day.xml
@@ -10,6 +10,7 @@
<sum_visit_length>0</sum_visit_length>
<bounce_count>55</bounce_count>
<nb_visits_converted>0</nb_visits_converted>
+ <segment>referrerType==direct</segment>
</row>
<row>
<label>Search Engines</label>
@@ -21,6 +22,7 @@
<sum_visit_length>0</sum_visit_length>
<bounce_count>12</bounce_count>
<nb_visits_converted>0</nb_visits_converted>
+ <segment>referrerType==search</segment>
<subtable>
<row>
<label>search term 2</label>
@@ -67,6 +69,7 @@
<sum_visit_length>0</sum_visit_length>
<bounce_count>8</bounce_count>
<nb_visits_converted>0</nb_visits_converted>
+ <segment>referrerType==website</segment>
<subtable>
<row>
<label>whatever0.com</label>
diff --git a/tests/PHPUnit/Unit/Period/DayTest.php b/tests/PHPUnit/Unit/Period/DayTest.php
index acc4992b1d..806dc53658 100644
--- a/tests/PHPUnit/Unit/Period/DayTest.php
+++ b/tests/PHPUnit/Unit/Period/DayTest.php
@@ -217,6 +217,7 @@ class DayTest extends BasePeriodTest
return array(
array('en', 'Wed, Oct 9'),
array('lt', '10-09, Tr'),
+ array('ru', 'Ср, 9 Окт.'),
array('zh-cn', '10月9日周三'),
);
}
diff --git a/tests/PHPUnit/Unit/UrlTest.php b/tests/PHPUnit/Unit/UrlTest.php
index 3153e43acc..6f9c50d614 100644
--- a/tests/PHPUnit/Unit/UrlTest.php
+++ b/tests/PHPUnit/Unit/UrlTest.php
@@ -13,12 +13,10 @@ use Piwik\Url;
/**
* @backupGlobals enabled
+ * @group Core
*/
class UrlTest extends \PHPUnit_Framework_TestCase
{
- /**
- * @group Core
- */
public function testAllMethods()
{
$this->assertEquals(Url::getCurrentQueryStringWithParametersModified(array()), Url::getCurrentQueryString());
@@ -63,7 +61,6 @@ class UrlTest extends \PHPUnit_Framework_TestCase
/**
* @dataProvider getCurrentHosts
- * @group Core
*/
public function testGetCurrentHost($description, $test)
{
@@ -132,8 +129,30 @@ class UrlTest extends \PHPUnit_Framework_TestCase
}
/**
+ * @dataProvider getIsLocalHost
+ */
+ public function test_isLocalHost($expectedIsLocal, $host)
+ {
+ $this->assertSame($expectedIsLocal, Url::isLocalHost($host));
+ }
+
+ public function getIsLocalHost()
+ {
+ return array(
+ array($isLocal = false, '127.0.0.2'),
+ array($isLocal = false, '192.168.1.1'),
+ array($isLocal = false, '10.1.1.1'),
+ array($isLocal = false, '172.30.1.1'),
+
+ array($isLocal = true, 'localhost'),
+ array($isLocal = true, '127.0.0.1'),
+ array($isLocal = true, '::1'),
+ array($isLocal = true, '[::1]'),
+ );
+ }
+
+ /**
* @dataProvider getLocalUrls
- * @group Core
*/
public function testIsLocalUrl($httphost, $scripturi, $requesturi, $testurl, $result)
{
@@ -161,7 +180,6 @@ class UrlTest extends \PHPUnit_Framework_TestCase
/**
* @dataProvider getCurrentUrlWithoutFilename
- * @group Core
*/
public function testGetCurrentUrlWithoutFilename($expected, $https, $host, $path)
{
@@ -182,9 +200,6 @@ class UrlTest extends \PHPUnit_Framework_TestCase
$this->assertEquals($expected, $url);
}
- /**
- * @group Core
- */
public function test_getCurrentScriptName()
{
$this->resetGlobalVariables();
@@ -238,7 +253,6 @@ class UrlTest extends \PHPUnit_Framework_TestCase
/**
* @dataProvider getValidHostData
- * @group Core
*/
public function testIsValidHost($expected, $host, $trustedHosts, $description)
{
@@ -247,9 +261,6 @@ class UrlTest extends \PHPUnit_Framework_TestCase
$this->assertEquals($expected, Url::isValidHost($host), $description);
}
- /**
- * @group Core
- */
public function testGetReferrer()
{
$_SERVER['HTTP_REFERER'] = 'http://www.piwik.org';
@@ -257,8 +268,6 @@ class UrlTest extends \PHPUnit_Framework_TestCase
}
/**
- * @group Core
- *
* @dataProvider getQueryParameters
*/
public function testGetQueryStringFromParameters($params, $queryString)
@@ -281,8 +290,6 @@ class UrlTest extends \PHPUnit_Framework_TestCase
}
/**
- * @group Core
- *
* @dataProvider getHostsFromUrl
*/
public function testGetHostsFromUrl($url, $expectedHost)
@@ -304,8 +311,6 @@ class UrlTest extends \PHPUnit_Framework_TestCase
}
/**
- * @group Core
- *
* @dataProvider getIsHostInUrls
*/
public function testIsHostInUrlsl($isHost, $host, $urls)
@@ -348,7 +353,6 @@ class UrlTest extends \PHPUnit_Framework_TestCase
}
/**
- * @group Core
* @dataProvider urlProvider
*/
public function testGetCurrentUrl($url, $pathInfo = null)
@@ -372,7 +376,6 @@ class UrlTest extends \PHPUnit_Framework_TestCase
}
/**
- * @group Core
* @dataProvider urlWithoutQueryStringProvider
*/
public function testGetCurrentUrlWithoutQueryString($url, $expected, $pathInfo = null)
@@ -387,7 +390,6 @@ class UrlTest extends \PHPUnit_Framework_TestCase
* Tests a use case that was reported by some users: Nginx is not properly configured and passes
* incorrect PATH_INFO values in $_SERVER.
* @link https://github.com/piwik/piwik/issues/6491
- * @group Core
*/
public function testMisconfiguredNginxPathInfo()
{
diff --git a/tests/PHPUnit/config.ini.travis.php b/tests/PHPUnit/config.ini.travis.php
deleted file mode 100644
index 0261a631e2..0000000000
--- a/tests/PHPUnit/config.ini.travis.php
+++ /dev/null
@@ -1,33 +0,0 @@
-; <?php exit; ?> DO NOT REMOVE THIS LINE
-; This configuration is used for automatic integration
-; tests on Travis-CI. Do not use this in production.
-
-[database]
-host = 127.0.0.1
-username = root
-password =
-dbname = piwik_tests
-adapter = PDO\MYSQL
-; no table prefix for tests on travis
-tables_prefix =
-;charset = utf8
-
-[tests]
-request_uri = "/"
-port = 3000
-
-[database_tests]
-host = 127.0.0.1
-username = root
-password =
-dbname = piwik_tests
-adapter = PDO\MYSQL
-; no table prefix for tests on travis
-tables_prefix =
-
-[log]
-log_writers[] = file
-log_level = info
-
-; leave this empty here
-[General]
diff --git a/tests/UI/expected-ui-screenshots b/tests/UI/expected-ui-screenshots
-Subproject 8423a15f21cffe1e0023c364de02ebe10e91a6d
+Subproject f52be03f1613724942f6fdc3430abd1743cd6c4
diff --git a/tests/UI/specs/ActionsDataTable_spec.js b/tests/UI/specs/ActionsDataTable_spec.js
index 2456e59397..4c149ce0c3 100644
--- a/tests/UI/specs/ActionsDataTable_spec.js
+++ b/tests/UI/specs/ActionsDataTable_spec.js
@@ -28,6 +28,9 @@ describe("ActionsDataTable", function () {
expect.screenshot('subtables_loaded').to.be.capture(function (page) {
page.click('tr.subDataTable:first');
page.click('tr.subDataTable:eq(2)');
+ page.evaluate(function () {
+ $('.foldDataTableFooterDrawer').click(); // open the footer icons controls
+ });
}, done);
});
@@ -38,8 +41,7 @@ describe("ActionsDataTable", function () {
}, done);
});
- // Test is skipped as it randomly fails http://builds-artifacts.piwik.org/ui-tests.master/2433.1/screenshot-diffs/diffviewer.html
- it.skip("should exclude low population rows when exclude low population link clicked", function (done) {
+ it("should exclude low population rows when exclude low population link clicked", function (done) {
expect.screenshot('exclude_low_population').to.be.capture(function (page) {
page.mouseMove('.tableConfiguration');
page.click('.dataTableExcludeLowPopulation');
@@ -48,10 +50,6 @@ describe("ActionsDataTable", function () {
it("should load normal view when switch to view hierarchical view link is clicked", function (done) {
expect.screenshot('unflattened').to.be.capture(function (page) {
- // exclude low population (copied from exclude_low_population test above as it was 'skipped')
- page.mouseMove('.tableConfiguration');
- page.click('.dataTableExcludeLowPopulation');
-
page.mouseMove('.tableConfiguration');
page.click('.dataTableFlatten');
}, done);
@@ -59,13 +57,13 @@ describe("ActionsDataTable", function () {
it("should display pageview percentages when hovering over pageviews column", function (done) {
expect.screenshot('pageview_percentages').to.be.capture(function (page) {
- page.mouseMove('tr:eq(2) td.column:eq(1)');
+ page.mouseMove('tr:contains("thankyou") td.column:eq(1)');
}, done);
});
it("should generate a proper title for the visitor log segmented by the current row", function (done) {
expect.screenshot('segmented_visitor_log_hover').to.be.capture(function (page) {
- var row = 'tr:eq(2) ';
+ var row = 'tr:contains("thankyou") ';
page.mouseMove(row + 'td.column:first');
page.mouseMove(row + 'td.label .actionSegmentVisitorLog');
}, done);
@@ -73,7 +71,7 @@ describe("ActionsDataTable", function () {
it("should open the visitor log segmented by the current row", function (done) {
expect.screenshot('segmented_visitor_log').to.be.capture(function (page) {
- page.click('tr:eq(2) td.label .actionSegmentVisitorLog');
+ page.click('tr:contains("thankyou") td.label .actionSegmentVisitorLog');
}, done);
});
@@ -81,7 +79,7 @@ describe("ActionsDataTable", function () {
expect.screenshot('unique_pageview_percentages').to.be.capture(function (page) {
page.click('.ui-widget .ui-dialog-titlebar-close');
- page.mouseMove('tr:eq(2) td.column:eq(2)');
+ page.mouseMove('tr:contains("thankyou") td.column:eq(2)');
}, done);
});
diff --git a/tests/UI/specs/Dashboard_spec.js b/tests/UI/specs/Dashboard_spec.js
index 9607b126ac..94b85fcc17 100644
--- a/tests/UI/specs/Dashboard_spec.js
+++ b/tests/UI/specs/Dashboard_spec.js
@@ -200,7 +200,7 @@ describe("Dashboard", function () {
}, done);
});
- it("should not fail when default widget selection changed", function (done) {
+ it.skip("should not fail when default widget selection changed", function (done) {
expect.screenshot("default_widget_selection_changed").to.be.capture(function (page) {
page.load(url);
page.click('.dashboard-manager .title');
@@ -209,7 +209,7 @@ describe("Dashboard", function () {
}, done);
});
- it("should create new dashboard with new default widget selection when create dashboard process completed", function (done) {
+ it.skip("should create new dashboard with new default widget selection when create dashboard process completed", function (done) {
expect.screenshot("create_new").to.be.capture(function (page) {
page.click('.dashboard-manager .title');
page.click('li[data-action=createDashboard]');
diff --git a/tests/UI/specs/Installation_spec.js b/tests/UI/specs/Installation_spec.js
index 6aca4b0b78..2ee77adfec 100644
--- a/tests/UI/specs/Installation_spec.js
+++ b/tests/UI/specs/Installation_spec.js
@@ -86,8 +86,19 @@ describe("Installation", function () {
}, done);
});
+ var pageUrl, pageUrlDe;
+
+ it("should show Piwik PRO GmbH when language is German", function (done) {
+ expect.screenshot("superuser_de").to.be.capture(function (page) {
+ pageUrl = page.getCurrentUrl();
+ pageUrlDe = pageUrl + '&language=de'
+ page.load(pageUrlDe);
+ }, done);
+ });
+
it("should fail when incorrect information is entered in the superuser configuration page", function (done) {
expect.screenshot("superuser_fail").to.be.capture(function (page) {
+ page.load(pageUrl);
page.click('.btn');
}, done);
});
@@ -144,4 +155,4 @@ describe("Installation", function () {
page.click('.btn');
}, done);
});
-}); \ No newline at end of file
+});
diff --git a/tests/UI/specs/PivotByDimension_spec.js b/tests/UI/specs/PivotByDimension_spec.js
index 938d298ef5..86a5815d53 100644
--- a/tests/UI/specs/PivotByDimension_spec.js
+++ b/tests/UI/specs/PivotByDimension_spec.js
@@ -22,6 +22,7 @@ describe("PivotByDimension", function () {
page.click('.expandDataTableFooterDrawer');
page.mouseMove('.tableConfiguration');
page.click('.dataTablePivotBySubtable');
+ page.mouseMove({x: -15, y: -15}); // make sure nothing is highlighted
}, done);
});
@@ -35,6 +36,7 @@ describe("PivotByDimension", function () {
page.click('.expandDataTableFooterDrawer');
page.mouseMove('.tableConfiguration');
page.click('.dataTablePivotBySubtable');
+ page.mouseMove({x: -15, y: -15}); // make sure nothing is highlighted
}, done);
});
}); \ No newline at end of file
diff --git a/tests/UI/specs/UIIntegration_spec.js b/tests/UI/specs/UIIntegration_spec.js
index 0849e5c8a2..c1c43d1366 100644
--- a/tests/UI/specs/UIIntegration_spec.js
+++ b/tests/UI/specs/UIIntegration_spec.js
@@ -158,6 +158,9 @@ describe("UIIntegrationTest", function () { // TODO: Rename to Piwik?
page.load("?" + urlBase + "#" + generalParams + "&module=Actions&action=menuGetPageUrls");
page.mouseMove('h2[piwik-enriched-headline]');
page.click(".helpIcon");
+ page.evaluate(function () {
+ $('.helpDate:visible').hide();
+ });
}, done);
});
@@ -489,6 +492,12 @@ describe("UIIntegrationTest", function () { // TODO: Rename to Piwik?
}, done);
});
+ it('should load the config file page correctly', function (done) {
+ expect.screenshot('admin_diagnostics_configfile').to.be.captureSelector('.pageWrap', function (page) {
+ page.load("?" + generalParams + "&module=Diagnostics&action=configfile");
+ }, done);
+ });
+
it('should load the Settings > Visitor Generator admin page correctly', function (done) {
expect.screenshot('admin_visitor_generator').to.be.captureSelector('.pageWrap', function (page) {
page.load("?" + generalParams + "&module=VisitorGenerator&action=index");
diff --git a/tests/UI/specs/ViewDataTable_spec.js b/tests/UI/specs/ViewDataTable_spec.js
index 279fe010f6..4dc412cad7 100644
--- a/tests/UI/specs/ViewDataTable_spec.js
+++ b/tests/UI/specs/ViewDataTable_spec.js
@@ -53,7 +53,7 @@ describe("ViewDataTableTest", function () { // TODO: should remove Test suffix f
it("should load bar graph when bar graph footer icon clicked", function (done) {
expect.screenshot('6_bar_graph').to.be.capture(function (page) {
- page.mouseMove('.tableIconsGroup:nth-child(2)');
+ page.mouseMove('.tableIconsGroup:nth-child(3)');
page.click('.tableIcon[data-footer-icon-id=graphVerticalBar]');
}, done);
});
@@ -67,7 +67,7 @@ describe("ViewDataTableTest", function () { // TODO: should remove Test suffix f
it("should load a tag cloud when tag cloud footer icon clicked", function (done) {
expect.screenshot('8_tag_cloud').to.be.capture(function (page) {
- page.mouseMove('.tableIconsGroup:nth-child(2)');
+ page.mouseMove('.tableIconsGroup:nth-child(3)');
page.click('.tableIcon[data-footer-icon-id=cloud]');
}, done);
});
@@ -75,6 +75,7 @@ describe("ViewDataTableTest", function () { // TODO: should remove Test suffix f
it("should load normal table when normal table footer icon clicked", function (done) {
expect.screenshot('9_normal_table').to.be.capture(function (page) {
page.click('.tableIcon[data-footer-icon-id=table]');
+ page.mouseMove({x: -10, y: -10}); // mae sure no row is highlighted
}, done);
});
diff --git a/tests/lib/screenshot-testing/support/app.js b/tests/lib/screenshot-testing/support/app.js
index 51ca56ad55..4617112baf 100644
--- a/tests/lib/screenshot-testing/support/app.js
+++ b/tests/lib/screenshot-testing/support/app.js
@@ -142,7 +142,7 @@ Application.prototype.loadTestModules = function () {
// we apply this option only if not a specific plugin or test suite was requested. Only there for travis to
// split tests into multiple jobs.
var numTestsFirstHalf = Math.round(mocha.suite.suites.length / 2);
- numTestsFirstHalf += 5; // run a few more test suits in first half as UiIntegrationTests contain many tests
+ numTestsFirstHalf += 7;
mocha.suite.suites = mocha.suite.suites.filter(function (suite, index) {
if (options['run-first-half-only'] && index < numTestsFirstHalf) {
return true;
diff --git a/tests/resources/Config/global.ini.php b/tests/resources/Config/global.ini.php
index 20271ed43d..87e1437453 100644
--- a/tests/resources/Config/global.ini.php
+++ b/tests/resources/Config/global.ini.php
@@ -3,10 +3,14 @@ key1 = value1
key2 = value2
[CategoryOnlyInGlobalFile]
+; test comment
key3 = "value3"
+; test comment 4
key4 = value4
[TestArray]
+; test comment 2
+; with multiple lines
installed[] = plugin1
installed[] = plugin4
diff --git a/tests/resources/OmniFixture-dump.sql.gz b/tests/resources/OmniFixture-dump.sql.gz
index 5466a04b88..80f9e7678e 100644
--- a/tests/resources/OmniFixture-dump.sql.gz
+++ b/tests/resources/OmniFixture-dump.sql.gz
Binary files differ
diff --git a/tests/resources/access-logs/fake_logs.log b/tests/resources/access-logs/fake_logs.log
index d901280f88..1fe459bda1 100644
--- a/tests/resources/access-logs/fake_logs.log
+++ b/tests/resources/access-logs/fake_logs.log
@@ -20,9 +20,9 @@
177.71.128.21 - - [10/Aug/2012:22:21:28 +0200] "GET /intranet-analytics/ HTTP/1.1" 200 3574 "-" "Mozilla/5.0 (X11; U; Linux x86_64; fr-FR) AppleWebKit/534.7 (KHTML, like Gecko) Epiphany/2.30.6 Safari/534.7"
177.71.128.21 - - [10/Aug/2012:22:22:08 +0200] "GET /blog/2012/08/survey-your-opinion-matters/ HTTP/1.1" 200 3574 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6"
50.112.00.28 - - [11/Aug/2012:15:49:46 +0200] "GET /faq/how-to-install/ HTTP/1.1" 200 3574 "-" "Mozilla/5.0 (X11; U; Linux x86_64; ca-ad) AppleWebKit/531.2+ (KHTML, like Gecko) Safari/531.2+ Epiphany/2.30.6"
-50.112.00.11 - - [11/Aug/2012:17:31:05 +0200] "GET /hosting/ HTTP/1.1" 200 3574 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6"
-50.112.00.11 - - [11/Aug/2012:17:31:56 +0200] "GET /thing.js HTTP/1.1" 200 3574 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6"
-50.112.00.11 - - [11/Aug/2012:17:33:01 +0200] "GET /thing.css HTTP/1.1" 200 3574 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6"
+50.112.00.11 - commonuser [11/Aug/2012:17:31:05 +0200] "GET /hosting/ HTTP/1.1" 200 3574 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6"
+50.112.00.11 - commonuser [11/Aug/2012:17:31:56 +0200] "GET /thing.js HTTP/1.1" 200 3574 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6"
+50.112.00.11 - commonuser [11/Aug/2012:17:33:01 +0200] "GET /thing.css HTTP/1.1" 200 3574 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6"
175.41.192.41 - - [11/Aug/2012:17:41:30 +0200] "GET /this/is/not/the/page/i/am/looking/for/ HTTP/1.1" 404 3574 "-" "Mozilla/5.0 (Linux; U; Android 2.3.5; en-us; HTC Vision Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
72.44.32.11 - - [11/Aug/2012:17:42:07 +0200] "GET /to-an-error HTTP/1.1" 500 3574 "-" "Mozilla/5.0 (compatible; MSIE 10.6; Windows NT 6.1; Trident/5.0; InfoPath.2; SLCC1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727) 3gpp-gba UNTRUSTED/1.0"
175.41.192.43 - - [11/Aug/2012:17:43:40 +0200] "GET /moved-permanently HTTP/1.1" 301 3574 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_7) AppleWebKit/534.24 (KHTML, like Gecko) RockMelt/0.9.58.494 Chrome/11.0.696.71 Safari/534.24"
diff --git a/tests/resources/access-logs/fake_logs_nginx_json.log b/tests/resources/access-logs/fake_logs_nginx_json.log
index 4cf39dfbb0..29d183086d 100644
--- a/tests/resources/access-logs/fake_logs_nginx_json.log
+++ b/tests/resources/access-logs/fake_logs_nginx_json.log
@@ -1 +1,2 @@
-{"ip": "72.45.67.32","host": "piwik.net","path": "/","status": "200","referrer": "https://www.test.nl/","user_agent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36","length": 915,"generation_time_milli": 0.001,"date": "2012-08-13T13:20:31+01:00"} \ No newline at end of file
+{"ip": "72.45.67.32","host": "piwik.net","path": "/","status": "200","referrer": "https://www.test.nl/","user_agent": "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36","length": 915,"generation_time_milli": 0.001,"date": "2012-08-13T13:20:31+01:00"}
+{"ip": "73.77.55.45","host": "piwik.net","path": "/api/f\xFAtbol-user-agent","status": "200","referrer": "-","user_agent": "F\xFAtbol/1.0 (iPhone; iOS 7.1; Scale/2.00)","length": 267,"generation_time_milli": 0.009,"date": "2012-08-13T13:20:31+01:00"} \ No newline at end of file
diff --git a/tests/resources/screenshot-override/override.css b/tests/resources/screenshot-override/override.css
index f74ae3545f..1e746d1d5d 100644
--- a/tests/resources/screenshot-override/override.css
+++ b/tests/resources/screenshot-override/override.css
@@ -6,7 +6,7 @@
display:none;
}
-.visitor-profile-important-visits>div>div>p:first-child>span {
+.visitor-profile-important-visits>div>div>p:first-child {
display:none;
}
diff --git a/tests/resources/screenshot-override/override.js b/tests/resources/screenshot-override/override.js
index 7113d0d134..054ff13de3 100644
--- a/tests/resources/screenshot-override/override.js
+++ b/tests/resources/screenshot-override/override.js
@@ -1,3 +1,5 @@
$(document).ready(function () {
$('.ui-inline-help:contains(UTC time is)').hide();
+
+ $('[notification-id=ControllerAdmin_HttpIsUsed]').hide();
}); \ No newline at end of file
diff --git a/tests/travis b/tests/travis
-Subproject 73a4b16ebb9a5db23bca53115195e8317ce6917
+Subproject 3e80077f810f8ab963be85fb5be032138328201